/*
 * Naturalize — Online Sessions Registration
 * Front-end styles.
 *
 * Everything is scoped under .nos-reg and written defensively: themes very
 * commonly force uppercase, centring and their own heading fonts onto anything
 * inside the content area, so the reset below neutralises that and the
 * component rules re-assert the design with !important where they must.
 */

/* ---------------------------------------------------------------
   Root
   --------------------------------------------------------------- */

.nos-reg {
	--nos-bg:        #f4f1ea;
	--nos-tint:      #ece7dd;
	--nos-paper:     #ffffff;
	--nos-dark:      #2b2a27;
	--nos-dark-2:    #353430;
	--nos-dark-line: rgba(244, 241, 234, 0.32);
	--nos-ink:       #2b2925;
	--nos-muted:     #625d54;
	--nos-soft:      #8f897f;
	--nos-line:      #dcd6ca;
	--nos-line-2:    #e7e2d8;
	--nos-accent:    #b4532f;
	--nos-accent-2:  #9a4426;
	--nos-price:     #c0432b;
	--nos-cream:     #f4f1ea;

	--nos-serif: "Cormorant Garamond", "Times New Roman", Georgia, serif;
	--nos-sans:  "Poppins", "Helvetica Neue", Helvetica, Arial, sans-serif;

	--nos-pad-x: clamp(16px, 5vw, 64px);
	--nos-max:   1120px;

	display: block;
	background: var(--nos-bg);
	font-family: var(--nos-sans);
	font-size: 16px;
	color: var(--nos-ink);
	text-align: left;
	-webkit-font-smoothing: antialiased;
}

.nos-reg *,
.nos-reg *::before,
.nos-reg *::after {
	box-sizing: border-box;
}

/* ---------------------------------------------------------------
   Theme reset
   --------------------------------------------------------------- */

.nos-reg h1, .nos-reg h2, .nos-reg h3, .nos-reg h4,
.nos-reg p, .nos-reg ol, .nos-reg ul, .nos-reg li,
.nos-reg label, .nos-reg span, .nos-reg small, .nos-reg s,
.nos-reg legend, .nos-reg fieldset, .nos-reg form,
.nos-reg button, .nos-reg input, .nos-reg textarea, .nos-reg select,
.nos-reg dl, .nos-reg dt, .nos-reg dd {
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--nos-sans) !important;
	font-size: inherit !important;
	font-weight: 400 !important;
	font-style: normal !important;
	line-height: 1.55 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
	text-align: left !important;
	text-shadow: none !important;
	color: inherit !important;
	float: none !important;
	border: 0;
	background: none;
	max-width: none;
}

.nos-reg section,
.nos-reg div {
	margin: 0;
	padding: 0;
	float: none !important;
}

.nos-reg ol,
.nos-reg ul {
	list-style: none !important;
}

.nos-reg li::before,
.nos-reg li::marker {
	content: none;
}

.nos-reg h1::before, .nos-reg h1::after,
.nos-reg h2::before, .nos-reg h2::after,
.nos-reg h3::before, .nos-reg h3::after {
	content: none;
	display: none;
}

.nos-reg [hidden] {
	display: none !important;
}

.nos-reg .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------------------------------------------------------------
   Layout — full-bleed bands, centred content
   --------------------------------------------------------------- */

.nos-reg .nos-band,
.nos-reg .nos-section {
	position: relative;
	display: block;
	width: 100%;
	overflow: hidden;
}

.nos-reg--bleed .nos-band,
.nos-reg--bleed .nos-section {
	width: var(--nos-bleed-width, 100%);
	margin-left: calc(var(--nos-bleed-left, 0px) * -1) !important;
}

.nos-reg .nos-wrap {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: calc(var(--nos-max) + var(--nos-pad-x) * 2);
	margin: 0 auto !important;
	padding: 0 var(--nos-pad-x) !important;
}

.nos-reg .nos-wrap--narrow {
	max-width: calc(820px + var(--nos-pad-x) * 2);
}

.nos-reg .nos-band--dark {
	background: var(--nos-dark) !important;
	color: var(--nos-cream) !important;
}

.nos-reg .nos-band--tint {
	background: var(--nos-tint) !important;
}

.nos-reg .nos-band--light {
	background: #f8f6f1 !important;
}

/* Botanical sprigs in the corners of the dark bands */
.nos-reg .nos-leaves {
	position: absolute;
	z-index: 0;
	bottom: -18px;
	width: clamp(90px, 13vw, 170px);
	height: auto;
	color: rgba(244, 241, 234, 0.2);
	pointer-events: none;
}

.nos-reg .nos-leaves--left  { left: -10px; }
.nos-reg .nos-leaves--right { right: -10px; transform: scaleX(-1); }

/* ---------------------------------------------------------------
   Type
   --------------------------------------------------------------- */

.nos-reg .nos-eyebrow {
	display: block;
	font-family: var(--nos-sans) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: 0.2em !important;
	text-transform: uppercase !important;
	color: var(--nos-accent) !important;
}

.nos-reg .nos-eyebrow--ink {
	color: var(--nos-ink) !important;
}

.nos-reg .nos-band--dark .nos-eyebrow {
	color: #d38a63 !important;
}

.nos-reg .nos-eyebrow--sm {
	font-size: 12px !important;
}

.nos-reg .nos-section__title,
.nos-reg .nos-band__title,
.nos-reg .nos-group__title,
.nos-reg .nos-modal__title {
	font-family: var(--nos-serif) !important;
	font-weight: 400 !important;
	line-height: 1.12 !important;
	color: inherit !important;
}

.nos-reg .nos-section__title {
	margin-top: 6px !important;
	font-size: clamp(32px, 3.8vw, 42px) !important;
}

.nos-reg .nos-section__intro--wide {
	max-width: 560px;
}

.nos-reg .nos-section__intro,
.nos-reg .nos-group__intro {
	margin-top: 4px !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	color: var(--nos-muted) !important;
}

/* ---------------------------------------------------------------
   At a glance
   --------------------------------------------------------------- */

.nos-reg .nos-glance-band {
	padding: 26px 0 18px !important;
}

.nos-reg .nos-band__title {
	font-size: clamp(30px, 3.4vw, 36px) !important;
	text-align: center !important;
	color: var(--nos-cream) !important;
}

.nos-reg .nos-band__title--left {
	margin-top: 4px !important;
	text-align: left !important;
}

.nos-reg .nos-glance {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	max-width: 960px;
	margin: 20px auto 0 !important;
}

.nos-reg .nos-glance__col {
	padding: 2px clamp(16px, 3vw, 36px) !important;
	text-align: left !important;
}

.nos-reg .nos-glance__col + .nos-glance__col {
	border-left: 1px solid var(--nos-dark-line);
}

.nos-reg .nos-glance__col .nos-eyebrow {
	margin-bottom: 6px !important;
	text-align: left !important;
	color: #d38a63 !important;
}

.nos-reg .nos-glance__line {
	font-family: var(--nos-sans) !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	text-align: left !important;
	color: rgba(244, 241, 234, 0.92) !important;
}

.nos-reg .nos-glance__value {
	margin-bottom: 2px !important;
	font-family: var(--nos-serif) !important;
	font-size: 25px !important;
	line-height: 1.2 !important;
	text-align: left !important;
	color: var(--nos-cream) !important;
}

.nos-reg .nos-glance__footnote {
	margin-top: 18px !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	text-align: center !important;
	color: rgba(244, 241, 234, 0.85) !important;
}

/* Journey chooser — only when more than one is open */
.nos-reg .nos-chooser {
	max-width: 860px;
	margin: 22px auto 4px !important;
}

.nos-reg .nos-chooser__head {
	text-align: center !important;
	margin-bottom: 12px !important;
}

.nos-reg .nos-chooser__head .nos-eyebrow,
.nos-reg .nos-chooser__hint {
	text-align: center !important;
}

.nos-reg .nos-chooser__hint {
	margin-top: 4px !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	color: rgba(244, 241, 234, 0.7) !important;
}

.nos-reg .nos-chooser__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 12px;
}

.nos-reg .nos-chooser__card {
	position: relative;
	display: block;
	padding: 16px 44px 16px 18px !important;
	border: 1px solid var(--nos-dark-line) !important;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.nos-reg .nos-chooser__card:hover,
.nos-reg .nos-chooser__card:has(.nos-chooser__radio:checked) {
	border-color: #d38a63 !important;
	background: rgba(244, 241, 234, 0.04);
}

.nos-reg .nos-chooser__radio {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.nos-reg .nos-chooser__dates,
.nos-reg .nos-chooser__title,
.nos-reg .nos-chooser__meta {
	display: block;
}

.nos-reg .nos-chooser__dates {
	font-family: var(--nos-serif) !important;
	font-size: 22px !important;
	color: var(--nos-cream) !important;
}

.nos-reg .nos-chooser__title {
	font-size: 15px !important;
	color: rgba(244, 241, 234, 0.85) !important;
}

.nos-reg .nos-chooser__meta {
	font-size: 14px !important;
	font-weight: 400 !important;
	color: rgba(244, 241, 234, 0.6) !important;
}

.nos-reg .nos-chooser__mark {
	position: absolute;
	top: 18px;
	right: 16px;
	width: 16px;
	height: 16px;
	border: 1px solid rgba(244, 241, 234, 0.6);
	border-radius: 50%;
}

.nos-reg .nos-chooser__radio:checked ~ .nos-chooser__mark {
	border-color: #d38a63;
	box-shadow: inset 0 0 0 3px var(--nos-dark), inset 0 0 0 8px #d38a63;
}

.nos-reg .nos-chooser__radio:focus-visible ~ .nos-chooser__mark {
	outline: 2px solid #d38a63;
	outline-offset: 3px;
}

/* ---------------------------------------------------------------
   Registration
   --------------------------------------------------------------- */

.nos-reg .nos-details {
	padding: clamp(28px, 4vw, 40px) 0 22px !important;
}

.nos-reg .nos-group {
	margin-top: 22px !important;
}

.nos-reg .nos-group + .nos-group {
	margin-top: 26px !important;
}

.nos-reg .nos-group__title {
	font-size: clamp(22px, 2.4vw, 27px) !important;
	color: var(--nos-ink) !important;
}

.nos-reg .nos-group__intro {
	margin-top: 0 !important;
	font-size: 16px !important;
}

/* Field grid */
.nos-reg .nos-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px clamp(16px, 3vw, 28px);
	margin-top: 10px !important;
}

.nos-reg .nos-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nos-reg .nos-field--full {
	grid-column: 1 / -1;
}

.nos-reg .nos-field {
	display: flex;
	flex-direction: column;
	gap: 5px;
}

.nos-reg .nos-field__label {
	font-size: 12px !important;
	font-weight: 500 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--nos-muted) !important;
}

.nos-reg .nos-field__req {
	color: var(--nos-accent) !important;
}

.nos-reg .nos-input {
	display: block;
	width: 100% !important;
	height: 38px;
	padding: 8px 12px !important;
	background: var(--nos-paper) !important;
	border: 1px solid var(--nos-line) !important;
	border-radius: 2px !important;
	box-shadow: none !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	color: var(--nos-ink) !important;
	outline: none;
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
	-webkit-appearance: none;
	appearance: none;
}

.nos-reg .nos-input--area {
	height: auto;
	min-height: 64px;
	resize: vertical;
}

.nos-reg .nos-input:focus {
	border-color: var(--nos-accent) !important;
	box-shadow: 0 0 0 3px rgba(180, 83, 47, 0.14) !important;
}

.nos-reg .nos-select {
	position: relative;
	display: block;
}

.nos-reg .nos-select::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 14px;
	width: 7px;
	height: 7px;
	margin-top: -5px;
	border-right: 1.5px solid var(--nos-muted);
	border-bottom: 1.5px solid var(--nos-muted);
	transform: rotate(45deg);
	pointer-events: none;
}

.nos-reg .nos-input--select {
	padding-right: 36px !important;
	cursor: pointer;
}

.nos-reg .nos-field.has-error .nos-input {
	border-color: var(--nos-price) !important;
}

.nos-reg .nos-field__error {
	display: block;
	min-height: 0;
	font-size: 14px !important;
	color: var(--nos-price) !important;
}

.nos-reg .nos-field__error:empty {
	display: none;
}

.nos-reg .nos-field__error--center {
	margin-top: 8px !important;
	text-align: center !important;
}

/* Consent checkboxes */
.nos-reg .nos-consent {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin-top: 22px !important;
}

.nos-reg .nos-consent__box {
	flex: 0 0 auto;
	width: 15px !important;
	height: 15px !important;
	margin-top: 2px !important;
	background: var(--nos-paper) !important;
	border: 1px solid var(--nos-soft) !important;
	border-radius: 2px !important;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	display: grid;
	place-content: center;
}

.nos-reg .nos-consent__box::before {
	content: "";
	width: 8px;
	height: 8px;
	transform: scale(0);
	transition: transform 0.12s ease;
	background: var(--nos-accent);
	clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}

.nos-reg .nos-consent__box:checked {
	border-color: var(--nos-accent) !important;
}

.nos-reg .nos-consent__box:checked::before {
	transform: scale(1);
}

.nos-reg .nos-consent__box:focus-visible {
	outline: 2px solid var(--nos-accent);
	outline-offset: 2px;
}

.nos-reg .nos-consent__label {
	font-size: 15px !important;
	font-weight: 400 !important;
	color: var(--nos-muted) !important;
	cursor: pointer;
}

.nos-reg .nos-consent.has-error .nos-consent__box {
	border-color: var(--nos-price) !important;
}

/* ---------------------------------------------------------------
   Session picker
   --------------------------------------------------------------- */

.nos-reg .nos-group--sessions,
.nos-reg .nos-group--rule {
	padding-top: 24px !important;
	border-top: 1px solid var(--nos-line);
}

.nos-reg .nos-sessions {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(200px, 270px);
	gap: clamp(16px, 3vw, 28px);
	margin-top: 14px !important;
	align-items: start;
}

.nos-reg .nos-sessions__rows {
	display: grid;
	gap: 12px;
}

.nos-reg .nos-session {
	display: grid;
	grid-template-columns: 32px 76px minmax(0, 1fr) minmax(0, 1fr);
	gap: 4px 12px;
	align-items: center;
}

.nos-reg .nos-session[hidden] {
	display: none !important;
}

.nos-reg .nos-session__num,
.nos-reg .nos-picked__num {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--nos-tint);
	font-family: var(--nos-serif) !important;
	color: var(--nos-ink) !important;
}

.nos-reg .nos-session__num {
	width: 30px;
	height: 30px;
	font-size: 20px !important;
	line-height: 1 !important;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.nos-reg .nos-session.is-done .nos-session__num {
	background: var(--nos-accent);
	color: #fff !important;
}

.nos-reg .nos-session__label {
	font-size: 12px !important;
	font-weight: 500 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	color: var(--nos-ink) !important;
}

.nos-reg .nos-session__pick {
	position: relative;
	display: block;
}

.nos-reg .nos-session__pick::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 13px;
	width: 6px;
	height: 6px;
	margin-top: -4px;
	border-right: 1.5px solid var(--nos-muted);
	border-bottom: 1.5px solid var(--nos-muted);
	transform: rotate(45deg);
	pointer-events: none;
}

.nos-reg .nos-session__icon {
	position: absolute;
	top: 50%;
	left: 11px;
	width: 14px;
	height: 14px;
	margin-top: -7px;
	color: var(--nos-muted);
	pointer-events: none;
}

.nos-reg .nos-session__select {
	padding-left: 32px !important;
	padding-right: 30px !important;
	font-size: 15px !important;
	cursor: pointer;
}

.nos-reg .nos-session__select:disabled {
	cursor: not-allowed;
	background: #faf9f6 !important;
	color: var(--nos-soft) !important;
}

.nos-reg .nos-session.has-error .nos-input {
	border-color: var(--nos-price) !important;
}

.nos-reg .nos-session__error {
	grid-column: 3 / -1;
}

.nos-reg .nos-picked {
	padding: 14px 16px !important;
	background: var(--nos-paper) !important;
	border: 1px solid var(--nos-line) !important;
}

.nos-reg .nos-picked__list {
	margin-top: 8px !important;
}

.nos-reg .nos-picked__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 6px 0 !important;
	font-size: 15px !important;
}

.nos-reg .nos-picked__item + .nos-picked__item {
	border-top: 1px solid var(--nos-line-2);
}

.nos-reg .nos-picked__item[hidden] {
	display: none !important;
}

.nos-reg .nos-picked__num {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	font-size: 15px !important;
	line-height: 1 !important;
}

.nos-reg .nos-picked__item.is-done .nos-picked__num {
	background: var(--nos-accent);
	color: #fff !important;
}

.nos-reg .nos-picked__text {
	font-size: 15px !important;
	line-height: 1.35 !important;
	color: var(--nos-ink) !important;
}

.nos-reg .nos-picked__text small {
	display: block;
	font-size: 13px !important;
	color: var(--nos-soft) !important;
}

.nos-reg .nos-picked__text .is-warn {
	color: var(--nos-accent) !important;
}

.nos-reg .nos-sessions__note,
.nos-reg .nos-sessions__zone {
	margin-top: 10px !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: var(--nos-muted) !important;
}

.nos-reg .nos-sessions__zone {
	margin-top: 4px !important;
}

.nos-reg .nos-sessions__zone:empty {
	display: none;
}

/* ---------------------------------------------------------------
   Waiver
   --------------------------------------------------------------- */

.nos-reg .nos-waiver {
	padding: clamp(24px, 3.4vw, 34px) 0 !important;
}

.nos-reg .nos-terms {
	columns: 2;
	column-gap: clamp(24px, 5vw, 64px);
	margin-top: 14px !important;
	counter-reset: nos-term;
}

.nos-reg .nos-terms__item {
	position: relative;
	display: block;
	padding-left: 24px !important;
	margin-bottom: 9px !important;
	break-inside: avoid;
	counter-increment: nos-term;
}

.nos-reg .nos-terms__item::before {
	content: counter(nos-term) ".";
	position: absolute;
	top: 0;
	left: 0;
	font-family: var(--nos-serif);
	font-size: 17px;
	line-height: 1.3;
	color: var(--nos-ink);
}

.nos-reg .nos-terms__title,
.nos-reg .nos-terms__body {
	display: block;
}

.nos-reg .nos-terms__title {
	font-family: var(--nos-serif) !important;
	font-size: 17px !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	color: var(--nos-ink) !important;
}

.nos-reg .nos-terms__body {
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: var(--nos-muted) !important;
}

.nos-reg .nos-waiver__foot {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	margin-top: 6px !important;
}

.nos-reg .nos-waiver__foot .nos-consent {
	margin-top: 0 !important;
}

.nos-reg .nos-draft-note {
	flex: 0 0 auto;
	font-size: 13px !important;
	font-style: italic !important;
	font-weight: 400 !important;
	text-align: right !important;
	color: var(--nos-soft) !important;
}

/* ---------------------------------------------------------------
   Payment
   --------------------------------------------------------------- */

.nos-reg .nos-payment {
	padding: clamp(18px, 2.5vw, 26px) 0 22px !important;
}

.nos-reg .nos-pay {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	margin-top: 12px !important;
}

.nos-reg .nos-pay__card {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 16px;
	padding: 14px 18px !important;
	border: 1px solid var(--nos-dark-line) !important;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.nos-reg .nos-pay__card:hover,
.nos-reg .nos-pay__card:has(.nos-pay__radio:checked) {
	border-color: rgba(244, 241, 234, 0.75) !important;
	background: rgba(244, 241, 234, 0.04);
}

.nos-reg .nos-pay__card.is-disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.nos-reg .nos-pay__radio {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.nos-reg .nos-pay__mark {
	flex: 0 0 auto;
	width: 15px;
	height: 15px;
	margin-top: 8px;
	border: 1px solid rgba(244, 241, 234, 0.75);
	border-radius: 50%;
}

.nos-reg .nos-pay__radio:checked + .nos-pay__mark {
	box-shadow: inset 0 0 0 3px var(--nos-dark), inset 0 0 0 8px var(--nos-cream);
}

.nos-reg .nos-pay__radio:focus-visible + .nos-pay__mark {
	outline: 2px solid #d38a63;
	outline-offset: 3px;
}

.nos-reg .nos-pay__inner {
	display: flex;
	flex-direction: column;
}

.nos-reg .nos-pay__card .nos-eyebrow {
	color: #d38a63 !important;
}

.nos-reg .nos-pay__amount {
	margin: 4px 0 2px !important;
	font-family: var(--nos-serif) !important;
	font-size: 25px !important;
	line-height: 1.15 !important;
	color: var(--nos-cream) !important;
}

.nos-reg .nos-pay__tax {
	margin-top: 4px !important;
	font-size: 14px !important;
	color: #d38a63 !important;
}

.nos-reg .nos-pay__note {
	font-size: 14px !important;
	font-weight: 400 !important;
	color: rgba(244, 241, 234, 0.75) !important;
}

.nos-reg .nos-pay__fine {
	font-size: 14px !important;
	font-weight: 400 !important;
	text-align: center !important;
	color: rgba(244, 241, 234, 0.82) !important;
}

.nos-reg .nos-pay__fine--first {
	margin-top: 16px !important;
}

.nos-reg .nos-pay__fine--warn {
	margin-top: 10px !important;
	color: #f0b39a !important;
}

.nos-reg .nos-form-error {
	display: none;
	margin-top: 14px !important;
	font-size: 15px !important;
	text-align: center !important;
	color: #f0b39a !important;
}

.nos-reg .nos-form-error.is-visible {
	display: block;
}

.nos-reg .nos-submit-row {
	display: flex;
	justify-content: center;
	margin-top: 14px !important;
}

.nos-reg .nos-submit {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 260px;
	min-height: 42px;
	padding: 10px 28px !important;
	background: var(--nos-accent) !important;
	border: 1px solid var(--nos-accent) !important;
	border-radius: 2px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	text-align: center !important;
	color: #fff !important;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.nos-reg .nos-submit:hover,
.nos-reg .nos-submit:focus-visible {
	background: var(--nos-accent-2) !important;
	border-color: var(--nos-accent-2) !important;
}

.nos-reg .nos-submit:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.nos-reg .nos-submit__label,
.nos-reg .nos-submit__busy {
	color: inherit !important;
	letter-spacing: inherit !important;
	text-transform: inherit !important;
	font-weight: inherit !important;
	text-align: center !important;
}

.nos-reg .nos-submit__busy {
	display: none;
}

.nos-reg .nos-submit.is-busy {
	cursor: progress;
	opacity: 0.85;
}

.nos-reg .nos-submit.is-busy .nos-submit__label {
	display: none;
}

.nos-reg .nos-submit.is-busy .nos-submit__busy {
	display: inline;
}

.nos-reg .nos-pay__after {
	margin-top: 12px !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	text-align: center !important;
	color: rgba(244, 241, 234, 0.85) !important;
}

/* ---------------------------------------------------------------
   Notice (nothing open)
   --------------------------------------------------------------- */

.nos-reg .nos-notice {
	padding: clamp(40px, 6vw, 72px) 0 !important;
}

.nos-reg .nos-notice .nos-band__title {
	margin-top: 8px !important;
}

.nos-reg .nos-notice .nos-eyebrow {
	text-align: center !important;
}

.nos-reg .nos-closed__intro {
	margin-top: 24px !important;
	font-size: 16px !important;
	text-align: center !important;
	color: rgba(244, 241, 234, 0.75) !important;
}

.nos-reg .nos-closed__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 12px;
	max-width: 760px;
	margin: 14px auto 0 !important;
}

.nos-reg .nos-closed__item {
	padding: 16px 18px !important;
	border: 1px solid var(--nos-dark-line);
}

.nos-reg .nos-closed__item span {
	display: block;
}

.nos-reg .nos-closed__dates {
	font-family: var(--nos-serif) !important;
	font-size: 22px !important;
	color: var(--nos-cream) !important;
}

.nos-reg .nos-closed__title,
.nos-reg .nos-closed__meta {
	font-size: 15px !important;
	color: rgba(244, 241, 234, 0.7) !important;
}

/* ---------------------------------------------------------------
   Checkout modal
   --------------------------------------------------------------- */

body.nos-modal-open {
	overflow: hidden;
}

.nos-reg .nos-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px !important;
}

.nos-reg .nos-modal[hidden] {
	display: none !important;
}

.nos-reg .nos-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(30, 29, 26, 0.72);
}

.nos-reg .nos-modal__dialog {
	position: relative;
	width: 100%;
	max-width: 520px;
	max-height: calc(100vh - 32px);
	overflow-y: auto;
	padding: clamp(24px, 4vw, 36px) !important;
	background: var(--nos-bg);
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
}

.nos-reg .nos-modal__close {
	position: absolute !important;
	top: 10px;
	right: 12px;
	width: 34px;
	height: 34px;
	font-size: 28px !important;
	line-height: 1 !important;
	text-align: center !important;
	color: var(--nos-muted) !important;
	cursor: pointer;
}

.nos-reg .nos-modal__close[hidden] {
	display: none !important;
}

.nos-reg .nos-modal__title {
	margin-top: 6px !important;
	font-size: 34px !important;
	color: var(--nos-ink) !important;
}

.nos-reg .nos-modal__journey {
	margin-top: 6px !important;
	font-family: var(--nos-serif) !important;
	font-size: 20px !important;
	color: var(--nos-muted) !important;
}

.nos-reg .nos-modal__journey:empty {
	display: none;
}

.nos-reg .nos-modal__summary {
	margin: 18px 0 !important;
	padding: 12px 16px !important;
	background: var(--nos-tint);
}

.nos-reg .nos-modal__row {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 4px 0 !important;
	font-size: 15px !important;
}

.nos-reg .nos-modal__row span,
.nos-reg .nos-modal__row strong {
	font-size: 15px !important;
}

.nos-reg .nos-modal__row strong {
	font-weight: 500 !important;
}

.nos-reg .nos-modal__row--muted {
	color: var(--nos-muted) !important;
}

.nos-reg .nos-modal__row--total {
	margin-top: 6px !important;
	padding-top: 8px !important;
	border-top: 1px solid var(--nos-line);
}

.nos-reg .nos-modal__element {
	min-height: 120px;
}

.nos-reg .nos-modal__error {
	margin-top: 12px !important;
	font-size: 15px !important;
	color: var(--nos-price) !important;
}

.nos-reg .nos-modal__error:empty {
	display: none;
}

.nos-reg .nos-modal__pay {
	width: 100%;
	margin-top: 18px !important;
}

.nos-reg .nos-modal__note {
	margin-top: 12px !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	text-align: center !important;
	color: var(--nos-soft) !important;
}

.nos-reg .nos-modal__step--thanks {
	text-align: center;
}

.nos-reg .nos-modal__step--thanks > * {
	text-align: center !important;
}

.nos-reg .nos-modal__check {
	display: block;
	width: 52px;
	height: 52px;
	margin: 0 auto 16px !important;
	border: 1px solid var(--nos-accent);
	border-radius: 50%;
	position: relative;
}

.nos-reg .nos-modal__check::after {
	content: "";
	position: absolute;
	top: 15px;
	left: 19px;
	width: 11px;
	height: 18px;
	border-right: 2px solid var(--nos-accent);
	border-bottom: 2px solid var(--nos-accent);
	transform: rotate(45deg);
}

.nos-reg .nos-modal__message {
	margin-top: 10px !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	color: var(--nos-muted) !important;
}

.nos-reg .nos-modal__ref {
	margin-top: 8px !important;
	font-size: 14px !important;
	letter-spacing: 0.12em !important;
	color: var(--nos-soft) !important;
}

.nos-reg .nos-modal__schedule h3 {
	margin-top: 18px !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: 0.16em !important;
	text-transform: uppercase !important;
	text-align: center !important;
	color: var(--nos-muted) !important;
}

.nos-reg .nos-modal__redirect {
	margin-top: 12px !important;
	font-size: 14px !important;
	color: var(--nos-soft) !important;
}

/* ---------------------------------------------------------------
   Responsive
   --------------------------------------------------------------- */

@media (max-width: 900px) {
	.nos-reg .nos-sessions {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	.nos-reg .nos-glance {
		grid-template-columns: 1fr;
		gap: 14px;
	}

	.nos-reg .nos-glance__col + .nos-glance__col {
		border-left: 0;
		border-top: 1px solid var(--nos-dark-line);
		padding-top: 14px !important;
	}

	.nos-reg .nos-grid,
	.nos-reg .nos-grid--3 {
		grid-template-columns: 1fr;
	}

	.nos-reg .nos-terms {
		columns: 1;
	}

	.nos-reg .nos-waiver__foot {
		flex-direction: column;
		align-items: stretch;
	}

	.nos-reg .nos-draft-note {
		text-align: left !important;
	}

	.nos-reg .nos-pay {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.nos-reg .nos-submit {
		width: 100%;
		min-width: 0;
	}

	.nos-reg .nos-leaves {
		opacity: 0.5;
	}
}

@media (max-width: 560px) {
	.nos-reg .nos-session {
		grid-template-columns: 30px minmax(0, 1fr);
	}

	.nos-reg .nos-session__pick,
	.nos-reg .nos-session__error {
		grid-column: 1 / -1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nos-reg *,
	.nos-reg *::before,
	.nos-reg *::after {
		transition: none !important;
	}
}
