/*
 * Naturalize — Online Sessions Registration
 * Front-end styles.
 *
 * Everything is scoped under .nss-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
   --------------------------------------------------------------- */

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

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

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

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

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

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

.nss-reg h1, .nss-reg h2, .nss-reg h3, .nss-reg h4,
.nss-reg p, .nss-reg ol, .nss-reg ul, .nss-reg li,
.nss-reg label, .nss-reg span, .nss-reg small, .nss-reg s,
.nss-reg legend, .nss-reg fieldset, .nss-reg form,
.nss-reg button, .nss-reg input, .nss-reg textarea, .nss-reg select,
.nss-reg dl, .nss-reg dt, .nss-reg dd {
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--nss-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;
}

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

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

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

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

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

.nss-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
   --------------------------------------------------------------- */

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

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

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

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

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

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

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

/* Botanical sprigs in the corners of the dark bands */
.nss-reg .nss-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;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.nss-reg .nss-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 */
.nss-reg .nss-chooser {
	max-width: 860px;
	margin: 22px auto 4px !important;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* ---------------------------------------------------------------
   Calendar booker
   --------------------------------------------------------------- */

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

.nss-reg .nss-booker {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.95fr) minmax(0, 1.2fr);
	gap: 8px;
	margin-top: 14px !important;
	align-items: stretch;
}

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

.nss-reg .nss-booker__panel--quiet {
	background: #faf8f4 !important;
}

.nss-reg .nss-booker__title {
	font-family: var(--nss-serif) !important;
	font-size: 22px !important;
	line-height: 1.2 !important;
	color: var(--nss-ink) !important;
}

.nss-reg .nss-booker__error {
	grid-column: 1 / -1;
}

.nss-reg .nss-booker.has-error .nss-booker__panel {
	border-color: rgba(192, 67, 43, 0.5) !important;
}

/* Month */
.nss-reg .nss-cal__nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 8px 0 6px !important;
}

.nss-reg .nss-cal__month {
	font-family: var(--nss-serif) !important;
	font-size: 21px !important;
	color: var(--nss-ink) !important;
}

.nss-reg .nss-cal__arrow {
	width: 30px;
	height: 30px;
	padding: 0 !important;
	border-radius: 50% !important;
	font-size: 25px !important;
	line-height: 1 !important;
	text-align: center !important;
	color: var(--nss-ink) !important;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.nss-reg .nss-cal__arrow:hover {
	background: var(--nss-tint) !important;
}

.nss-reg .nss-cal__arrow:disabled {
	color: var(--nss-line) !important;
	cursor: default;
	background: none !important;
}

.nss-reg .nss-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	row-gap: 4px;
}

.nss-reg .nss-cal__dow {
	padding: 4px 0 6px !important;
	font-size: 12.5px !important;
	text-align: center !important;
	color: var(--nss-muted) !important;
}

.nss-reg .nss-cal__day {
	justify-self: center;
	width: 32px;
	height: 32px;
	padding: 0 !important;
	border-radius: 50% !important;
	font-size: 15px !important;
	line-height: 32px !important;
	text-align: center !important;
	color: var(--nss-soft) !important;
	cursor: default;
}

.nss-reg .nss-cal__day.is-open {
	color: var(--nss-ink) !important;
	font-weight: 500 !important;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.nss-reg .nss-cal__day.is-open:hover {
	background: var(--nss-tint) !important;
}

.nss-reg .nss-cal__day.is-selected {
	background: var(--nss-accent) !important;
	color: #fff !important;
}

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

/* Times */
.nss-reg .nss-times__day {
	margin: 6px 0 10px !important;
	font-size: 14px !important;
	color: var(--nss-muted) !important;
}

.nss-reg .nss-times__list {
	display: grid;
	gap: 6px;
	max-height: 260px;
	overflow-y: auto;
}

.nss-reg .nss-time {
	display: block;
	width: 100%;
	padding: 6px 10px !important;
	background: var(--nss-paper) !important;
	border: 1px solid var(--nss-line) !important;
	border-radius: 2px !important;
	font-size: 15px !important;
	text-align: center !important;
	color: var(--nss-ink) !important;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.nss-reg .nss-time:hover {
	border-color: var(--nss-accent) !important;
}

.nss-reg .nss-time.is-selected {
	background: var(--nss-accent) !important;
	border-color: var(--nss-accent) !important;
	color: #fff !important;
}

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

.nss-reg .nss-times__empty {
	font-size: 14px !important;
	font-weight: 400 !important;
	color: var(--nss-muted) !important;
}

/* Selected */
.nss-reg .nss-chosen {
	display: flex;
	flex-direction: column;
}

.nss-reg .nss-chosen .nss-eyebrow {
	margin: 6px 0 10px !important;
}

.nss-reg .nss-chosen__row {
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr);
	gap: 8px;
	padding: 8px 0 !important;
	border-bottom: 1px solid var(--nss-line-2);
}

.nss-reg .nss-chosen__row dt,
.nss-reg .nss-chosen__row dd {
	font-size: 14px !important;
}

.nss-reg .nss-chosen__row dt {
	font-weight: 400 !important;
	color: var(--nss-muted) !important;
}

.nss-reg .nss-chosen__row dd {
	color: var(--nss-ink) !important;
}

.nss-reg .nss-chosen__note {
	margin-top: auto !important;
	padding-top: 18px !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.5 !important;
	color: var(--nss-muted) !important;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.nss-reg .nss-pay--single {
	grid-template-columns: minmax(0, 300px);
	justify-content: center;
}

.nss-reg .nss-pay--single .nss-pay__card {
	justify-content: center;
	padding: 12px 18px !important;
	border-color: rgba(244, 241, 234, 0.75) !important;
	cursor: default;
}

.nss-reg .nss-pay--single .nss-pay__mark {
	display: none;
}

.nss-reg .nss-pay--single .nss-pay__inner {
	align-items: center;
}

.nss-reg .nss-pay--single .nss-pay__inner > * {
	text-align: center !important;
}

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

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

.nss-reg .nss-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%;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

.nss-reg .nss-submit {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 260px;
	min-height: 42px;
	padding: 10px 28px !important;
	background: var(--nss-accent) !important;
	border: 1px solid var(--nss-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;
}

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

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

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

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

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

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

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

.nss-reg .nss-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)
   --------------------------------------------------------------- */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.nss-reg .nss-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(--nss-bg);
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
}

.nss-reg .nss-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(--nss-muted) !important;
	cursor: pointer;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.nss-reg .nss-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(--nss-muted) !important;
}

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

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

@media (max-width: 900px) {
	.nss-reg .nss-booker {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.nss-reg .nss-chosen {
		grid-column: 1 / -1;
	}
}

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

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

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

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

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

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

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

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

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

@media (max-width: 600px) {
	.nss-reg .nss-booker {
		grid-template-columns: 1fr;
	}
}

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