@font-face {
	font-family: "Cormorant CZ";
	src: url("../fonts/CormorantCZ-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant CZ";
	src: url("../fonts/CormorantCZ-Italic.woff2") format("woff2");
	font-weight: 400;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant CZ";
	src: url("../fonts/CormorantCZ-Medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant CZ";
	src: url("../fonts/CormorantCZ-SemiBold.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Cormorant CZ";
	src: url("../fonts/CormorantCZ-SemiBoldItalic.woff2") format("woff2");
	font-weight: 600;
	font-style: italic;
	font-display: swap;
}

@font-face {
	font-family: "Inter";
	src: url("../fonts/InterVariable.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

:root {
	--color-background: #f8f6f2;
	--color-text: #3f3b36;
	--color-olive: #8c9473;
	--color-primary: var(--color-olive);
	--safe-area-top: env(safe-area-inset-top, 0px);
	--safe-area-right: env(safe-area-inset-right, 0px);
	--safe-area-bottom: env(safe-area-inset-bottom, 0px);
	--safe-area-left: env(safe-area-inset-left, 0px);
	--color-warm-beige: #d8ccbc;
	--color-accent: #c89e6c;
	--color-white: #ffffff;
	--section-light: #faf9f6;
	--section-neutral: #f8f6f2;
	--section-warm: #f1ede6;
	--section-footer: #ede7df;
	--font-heading: "Cormorant CZ", Georgia, serif;
	--font-body: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--radius-small: 4px;
	--radius-medium: 16px;
	--radius-large: 24px;
	--shadow-soft: 0 20px 60px rgba(63, 59, 54, 0.08);
	--spacing-xs: 0.5rem;
	--spacing-sm: 1rem;
	--spacing-md: 1.5rem;
	--spacing-lg: 3rem;
	--spacing-xl: 5rem;
	--max-width: 1280px;
	--content-width: 1180px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--color-background);
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: clamp(1rem, 0.97rem + 0.14vw, 1.125rem);
	line-height: 1.7;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

img,
svg {
	display: block;
	max-width: 100%;
	height: auto;
}

a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

a:hover {
	color: var(--color-primary);
}

button,
input,
textarea,
select {
	font: inherit;
}

:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 4px;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus {
	top: var(--spacing-sm);
	left: var(--spacing-sm);
	z-index: 100000;
	width: auto;
	height: auto;
	padding: var(--spacing-xs) var(--spacing-sm);
	background: var(--color-white);
	clip: auto;
}

.ym-container {
	width: min(calc(100% - 2rem), var(--content-width));
	margin-inline: auto;
}

.ym-section {
	padding-block: clamp(4rem, 2.86rem + 4.86vw, 8rem);
}

.legal-page__content {
	max-width: 760px;
	margin-inline: auto;
}

.legal-page__content h1 {
	margin-bottom: 2.5rem;
	font-size: clamp(2.6rem, 4vw, 3.8rem);
	line-height: 1.02;
}

.legal-page__content h2 {
	margin-top: 2.5rem;
	font-size: clamp(1.8rem, 1.55rem + 1vw, 2.6rem);
}

.legal-page__content strong {
	font-weight: 700;
}

.legal-page__content ul {
	margin: 0 0 var(--spacing-md);
	padding-left: 1.4rem;
}

.legal-page__content hr {
	margin: 3rem 0;
	border: 0;
	border-top: 1px solid var(--color-warm-beige);
}

.legal-page__actions {
	max-width: 760px;
	margin: 3rem auto 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 var(--spacing-md);
	color: var(--color-text);
	font-family: var(--font-heading);
	font-weight: 500;
	line-height: 1.05;
}

h1 {
	font-size: clamp(3rem, 2.14rem + 3.64vw, 6rem);
}

h2 {
	font-size: clamp(2.25rem, 1.68rem + 2.43vw, 4.25rem);
}

p {
	margin: 0 0 var(--spacing-md);
}

.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3rem;
	padding: 0.75rem 1.25rem;
	border: 1px solid transparent;
	border-radius: var(--radius-small);
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: background-color 220ms ease, border-color 220ms ease, color 220ms ease;
}

.button--primary {
	background: var(--color-text);
	color: var(--color-background);
}

.button--primary:hover {
	background: var(--color-primary);
	color: var(--color-white);
}

.button--secondary {
	border-color: rgba(63, 59, 54, 0.25);
	color: var(--color-text);
}

.button--secondary:hover {
	border-color: var(--color-primary);
	color: var(--color-primary);
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(248, 246, 242, 0);
	transition: background-color 260ms ease, box-shadow 260ms ease;
}

.site-header.is-scrolled {
	background: rgba(248, 246, 242, 0.92);
	box-shadow: 0 1px 0 rgba(63, 59, 54, 0.08);
	backdrop-filter: blur(14px);
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--spacing-md);
	min-height: 5rem;
}

.site-header__toggle {
	display: none;
	width: 2.75rem;
	height: 2.75rem;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0;
	border: 1px solid rgba(63, 59, 54, 0.18);
	border-radius: var(--radius-small);
	background: transparent;
	color: var(--color-text);
}

.site-header__toggle-icon,
.site-header__toggle-icon::before,
.site-header__toggle-icon::after {
	display: block;
	width: 1.25rem;
	height: 1px;
	margin-inline: auto;
	background: currentColor;
	content: "";
	transition: transform 220ms ease, opacity 220ms ease;
}

.site-header__toggle-icon {
	position: relative;
	background: currentColor;
}

.site-header__toggle-icon::before,
.site-header__toggle-icon::after {
	position: absolute;
	left: 0;
	width: 100%;
}

.site-header__toggle-icon::before {
	top: -0.375rem;
	transform: none;
}

.site-header__toggle-icon::after {
	top: 0.375rem;
	transform: none;
}

.site-header.is-menu-open .site-header__toggle-icon {
	background: transparent;
}

.site-header.is-menu-open .site-header__toggle-icon::before {
	transform: rotate(45deg);
}

.site-header.is-menu-open .site-header__toggle-icon::after {
	transform: rotate(-45deg);
}

.site-header__toggle--account {
	position: relative;
	overflow: hidden;
	border-radius: 999px;
	background: var(--color-white);
}

.site-header__toggle-avatar {
	display: grid;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	place-items: center;
	overflow: hidden;
}

.site-header__toggle-avatar-image {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.site-header__toggle-initials {
	display: grid;
	width: 100%;
	height: 100%;
	place-items: center;
	background: var(--color-warm-beige);
	color: var(--color-text);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.site-branding {
	font-family: var(--font-heading);
	font-size: 1.5rem;
	font-weight: 600;
	text-decoration: none;
}

.site-navigation__menu,
.site-footer__menu {
	display: flex;
	align-items: center;
	gap: var(--spacing-md);
	padding: 0;
	margin: 0;
	list-style: none;
}

.site-navigation a,
.site-footer a {
	text-decoration: none;
}

.site-navigation__user {
	display: none;
}

.hero {
	min-height: calc(100vh - 5rem);
	display: grid;
	align-items: center;
}

.hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(2rem, 1.14rem + 3.64vw, 5rem);
	align-items: center;
}

.hero__eyebrow {
	margin-bottom: var(--spacing-sm);
	color: var(--color-primary);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.hero__text {
	max-width: 38rem;
	font-size: clamp(1.125rem, 1.02rem + 0.35vw, 1.375rem);
}

.hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--spacing-sm);
	margin-top: var(--spacing-lg);
}

.hero__media {
	margin: 0;
	aspect-ratio: 4 / 5;
	background: linear-gradient(145deg, var(--color-warm-beige), rgba(140, 148, 115, 0.45));
	border-radius: var(--radius-large);
	box-shadow: var(--shadow-soft);
	overflow: hidden;
}

.hero__media picture {
	display: block;
	width: 100%;
	height: 100%;
}

.hero__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.site-footer {
	padding-block: var(--spacing-lg);
	background: var(--color-text);
	color: var(--color-background);
}

.site-footer__inner {
	display: flex;
	justify-content: space-between;
	gap: var(--spacing-lg);
}

.site-footer__brand {
	margin-bottom: var(--spacing-xs);
	font-family: var(--font-heading);
	font-size: 1.5rem;
	line-height: 1.2;
}

.site-footer__text {
	max-width: 28rem;
	margin-bottom: 0;
	color: rgba(248, 246, 242, 0.78);
}

@media (max-width: 780px) {
	.site-header__inner {
		position: relative;
		min-height: 4.5rem;
	}

	.site-header__toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		order: 3;
	}

	.site-header__cta {
		display: none;
	}

	.site-navigation {
		position: absolute;
		top: calc(100% + 0.5rem);
		right: 0;
		left: 0;
		display: none;
		padding: var(--spacing-md);
		background: rgba(248, 246, 242, 0.98);
		border: 1px solid rgba(63, 59, 54, 0.08);
		border-radius: var(--radius-large);
		box-shadow: var(--shadow-soft);
	}

	.site-header.is-menu-open .site-navigation {
		display: block;
	}

	.site-navigation__menu {
		align-items: flex-start;
		flex-direction: column;
		gap: var(--spacing-sm);
	}

	.site-navigation__user {
		display: grid;
		gap: var(--spacing-sm);
		margin-top: var(--spacing-md);
		padding-top: var(--spacing-md);
		border-top: 1px solid rgba(63, 59, 54, 0.08);
	}

	.site-navigation__user-profile {
		display: grid;
		grid-template-columns: auto 1fr;
		gap: 0.75rem;
		align-items: center;
	}

	.site-navigation__user-avatar {
		display: grid;
		width: 3rem;
		height: 3rem;
		border-radius: 999px;
		overflow: hidden;
		background: var(--color-warm-beige);
		place-items: center;
	}

	.site-navigation__user-avatar-image {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	.site-navigation__user-initials {
		display: grid;
		width: 100%;
		height: 100%;
		place-items: center;
		color: var(--color-text);
		font-size: 0.95rem;
		font-weight: 700;
	}

	.site-navigation__user-copy {
		display: grid;
		gap: 0.15rem;
	}

	.site-navigation__user-name {
		font-weight: 600;
		line-height: 1.2;
	}

	.site-navigation__user-links {
		display: grid;
		gap: var(--spacing-xs);
	}

	.site-navigation__user-link {
		display: inline-flex;
		align-items: center;
		min-height: 2.75rem;
		padding: 0.5rem 0;
		font-weight: 500;
	}

	.site-navigation__user-link--logout {
		color: var(--color-primary);
	}

	.site-navigation__user-login {
		width: 100%;
		min-height: 2.75rem;
	}

	.hero {
		min-height: auto;
		padding-block: var(--spacing-xl);
	}

	.hero__inner,
	.site-footer__inner {
		grid-template-columns: 1fr;
		display: grid;
	}

	.hero__media {
		aspect-ratio: 16 / 11;
	}

	.site-footer__menu {
		align-items: flex-start;
		flex-direction: column;
		gap: var(--spacing-xs);
	}
}

/* Preview parity styles. */
body {
	min-height: 100vh;
	background: var(--color-background);
}

body.is-scroll-locked {
	overflow: hidden;
}

:root {
	--container-default: 1200px;
	--container-wide: 1400px;
}

.ym-container {
	width: min(calc(100% - 4rem), var(--container-default));
	margin-inline: auto;
}

.preview-header {
	position: relative;
	background: #ffffff;
	border-bottom: 1px solid rgba(63, 59, 54, 0.05);
}

.preview-header.is-scrolled {
	background: #ffffff;
	box-shadow: 0 1px 0 rgba(63, 59, 54, 0.05);
	backdrop-filter: none;
}

.preview-header .site-header__inner {
	width: min(calc(100% - 4rem), var(--container-wide));
	min-height: 6.25rem;
}

.preview-brand {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	color: var(--color-text);
	font-family: var(--font-body);
	text-decoration: none;
	text-transform: uppercase;
}

.preview-brand__copy {
	display: grid;
	min-width: 0;
}

.preview-brand__mark {
	display: grid;
	width: 2.35rem;
	height: 2.35rem;
	place-items: center;
	background-color: var(--color-primary);
	-webkit-mask: url("../icons/lotus.svg") center / contain no-repeat;
	mask: url("../icons/lotus.svg") center / contain no-repeat;
}

.preview-brand__name,
.preview-brand__place {
	display: block;
	letter-spacing: 0.16em;
	line-height: 1.2;
}

.preview-brand__name {
	font-size: 0.88rem;
	font-weight: 600;
}

.preview-brand__place {
	margin-top: 0.18rem;
	font-size: 0.62rem;
	font-weight: 500;
}

.preview-brand__rotator {
	display: block;
	min-width: 0;
	width: 17rem;
	max-width: 17rem;
	position: relative;
	min-height: 1.2em;
	font-size: 0.62rem;
	line-height: 1.2;
	overflow: hidden;
	contain: layout paint;
}

.preview-brand__subtitle {
	display: block;
	letter-spacing: 0.16em;
	line-height: 1.2;
}

@media (min-width: 768px) {
	.preview-brand__rotator {
		margin-top: 2px;
	}

	.preview-brand__subtitle {
		font-family: var(--font-body);
		font-size: 0.62rem;
		font-weight: 500;
		letter-spacing: 0.18em;
		line-height: 1.2;
	}
}

.preview-brand__rotator > span {
	position: absolute;
	inset-inline: 0;
	top: 0;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: inherit;
	margin-top: 0;
	opacity: 0;
	clip-path: inset(0 0 0 100%);
	transform: translateX(0.35rem);
	transition: clip-path 1400ms cubic-bezier(0.4, 0, 0.2, 1), opacity 1400ms ease, transform 1400ms cubic-bezier(0.4, 0, 0.2, 1);
	will-change: clip-path, opacity, transform;
	white-space: normal;
	line-height: inherit;
}

.preview-brand__rotator > span.is-active {
	opacity: 1;
	clip-path: inset(0 0 0 0);
	transform: translateX(0);
	z-index: 1;
}

.preview-brand__rotator > span.is-exiting {
	opacity: 0;
	clip-path: inset(0 0 0 100%);
	transform: translateX(-0.35rem);
	z-index: 0;
	pointer-events: none;
}

.preview-brand__rotator.is-static-subtitle > [data-preview-brand-item="place"] {
	animation: none;
	opacity: 0;
	clip-path: inset(0 0 0 100%);
	transform: translateX(-0.35rem);
}

.preview-brand__rotator.is-static-subtitle > [data-preview-brand-item="subtitle"] {
	animation: none;
	opacity: 1;
	clip-path: inset(0 0 0 0);
	transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
	.preview-brand__rotator > [data-preview-brand-item] {
		animation: none;
	}

	.preview-brand__rotator > [data-preview-brand-item="place"] {
		opacity: 0;
		clip-path: inset(0 0 0 100%);
		transform: translateX(-0.35rem);
	}

	.preview-brand__rotator > [data-preview-brand-item="subtitle"] {
		opacity: 1;
		clip-path: inset(0 0 0 0);
		transform: translateX(0);
	}
}

.preview-header .site-navigation__menu {
	gap: clamp(1.4rem, 2.1vw, 2.5rem);
}

.preview-header .site-navigation {
	order: 2;
}

.preview-header .site-header__cta {
	order: 3;
}

.preview-header .site-navigation a,
.preview-text-link,
.preview-feeling-card__link {
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-decoration: none;
	text-transform: uppercase;
}

.preview-header .button,
.preview-hero .button {
	min-height: 2.75rem;
	padding: 0.78rem 1.35rem;
	background: #777154;
	border-color: #777154;
	border-radius: var(--radius-small);
	color: var(--color-white);
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.preview-header .button:hover,
.preview-hero .button:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

.preview-header__mobile-actions,
.preview-mobile-menu,
.preview-mobile-menu__overlay {
	display: none;
}

.preview-header__mobile-actions {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	order: 4;
}

.preview-mobile-menu-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0;
	border: 1px solid rgba(63, 59, 54, 0.16);
	border-radius: 999px;
	background: var(--color-white);
	appearance: none;
	color: var(--color-text);
	flex: 0 0 auto;
}

.preview-mobile-menu-toggle .site-header__toggle-icon,
.preview-mobile-menu-toggle .site-header__toggle-icon::before,
.preview-mobile-menu-toggle .site-header__toggle-icon::after {
	display: block;
	width: 1.25rem;
	height: 1px;
	margin-inline: auto;
	background: currentColor;
	content: "";
	transition: transform 220ms ease, opacity 220ms ease;
}

.preview-mobile-menu-toggle .site-header__toggle-icon {
	position: relative;
	background: currentColor;
}

.preview-mobile-menu-toggle .site-header__toggle-icon::before,
.preview-mobile-menu-toggle .site-header__toggle-icon::after {
	position: absolute;
	left: 0;
	width: 100%;
}

.preview-mobile-menu-toggle .site-header__toggle-icon::before {
	top: -0.375rem;
}

.preview-mobile-menu-toggle .site-header__toggle-icon::after {
	top: 0.375rem;
}

.preview-mobile-menu-toggle[aria-expanded="true"] .site-header__toggle-icon {
	background: transparent;
}

.preview-mobile-menu-toggle[aria-expanded="true"] .site-header__toggle-icon::before {
	transform: rotate(45deg);
}

.preview-mobile-menu-toggle[aria-expanded="true"] .site-header__toggle-icon::after {
	transform: rotate(-45deg);
}

.preview-mobile-menu__overlay {
	position: fixed;
	inset: 0;
	z-index: 110;
	display: block;
	background: rgba(38, 35, 31, 0.56);
	opacity: 0;
	pointer-events: none;
	transition: opacity 350ms ease;
}

.preview-mobile-menu {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 120;
	display: block;
	width: min(92vw, 420px);
	height: 100vh;
	height: 100dvh;
	transform: translateX(102%);
	pointer-events: none;
	transition: transform 350ms ease;
}

.preview-mobile-menu.is-open {
	transform: translateX(0);
	pointer-events: auto;
}

.preview-mobile-menu__overlay.is-open {
	opacity: 1;
	pointer-events: auto;
}

.preview-mobile-menu__panel {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: max(1.1rem, env(safe-area-inset-top)) 1.35rem max(0.75rem, env(safe-area-inset-bottom)) 1.45rem;
	background: var(--color-background);
	box-shadow: -18px 0 50px rgba(63, 59, 54, 0.18);
	overflow-y: auto;
}

.preview-mobile-menu__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.preview-mobile-menu__brand {
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	min-width: 0;
	color: var(--color-text);
	text-decoration: none;
}

.preview-mobile-menu__brand-mark {
	display: grid;
	width: 2.15rem;
	height: 2.15rem;
	flex: 0 0 auto;
	overflow: visible;
	place-items: center;
	background-color: var(--color-primary);
	-webkit-mask: url("../icons/lotus.svg") center / contain no-repeat;
	mask: url("../icons/lotus.svg") center / contain no-repeat;
}

.preview-mobile-menu__brand-copy {
	display: grid;
	min-width: 0;
	gap: 0.16rem;
}

.preview-mobile-menu__brand-name {
	font-family: var(--font-body);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.2;
	text-transform: uppercase;
}

.preview-mobile-menu__brand-subtitle {
	font-size: 0.54rem;
	font-weight: 500;
	letter-spacing: 0.2em;
	line-height: 1.25;
	text-transform: uppercase;
	color: rgba(63, 59, 54, 0.72);
}

.preview-mobile-menu__close {
	display: grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	background: transparent;
	appearance: none;
	color: var(--color-text);
	font-size: 2.4rem;
	line-height: 1;
}

.preview-mobile-menu__nav {
	margin-top: 1.35rem;
}

.preview-mobile-menu__list {
	padding: 0;
	margin: 0;
	list-style: none;
	border-top: 1px solid rgba(63, 59, 54, 0.09);
}

.preview-mobile-menu__list li {
	border-bottom: 1px solid rgba(63, 59, 54, 0.09);
}

.preview-mobile-menu__link {
	display: block;
	padding: 1rem 0 0.95rem;
	color: var(--color-text);
	font-family: var(--font-heading);
	font-size: 1.5rem;
	line-height: 1.05;
	text-decoration: none;
}

.preview-mobile-menu__link.is-active {
	color: var(--color-primary);
}

.preview-mobile-menu__booking {
	width: 100%;
	min-height: 3.35rem;
	margin-top: 1.8rem;
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
	font-size: 0.76rem;
	letter-spacing: 0.18em;
}

.preview-mobile-menu__booking:hover {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-white);
}

.preview-mobile-menu__footer {
	display: grid;
	gap: 1rem;
	margin-top: auto;
	padding-top: 1.35rem;
	border-top: 1px solid rgba(63, 59, 54, 0.09);
}

.preview-mobile-menu__account {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 1rem;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	appearance: none;
	color: var(--color-text);
	text-align: left;
	text-decoration: none;
}

.preview-mobile-menu__account-avatar {
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 3.25rem;
	overflow: hidden;
	border: 1px solid rgba(63, 59, 54, 0.24);
	border-radius: 50%;
	background: transparent;
	color: var(--color-text);
}

.preview-mobile-menu__account-avatar svg {
	width: 1.35rem;
	height: 1.35rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.preview-mobile-menu__account-copy {
	display: grid;
	gap: 0.3rem;
	min-width: 0;
}

.preview-mobile-menu__account-title {
	font-family: var(--font-heading);
	font-size: 1.25rem;
	line-height: 1;
	color: inherit;
	text-decoration: none;
}

.preview-mobile-menu__account-text {
	font-size: 0.78rem;
	line-height: 1.45;
	color: rgba(63, 59, 54, 0.8);
}

.preview-mobile-menu__account-text a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

.preview-mobile-menu__account-register {
	padding-top: 1.35rem;
	border-top: 1px solid rgba(63, 59, 54, 0.09);
	font-size: 0.78rem;
	line-height: 1.45;
	color: rgba(63, 59, 54, 0.8);
}

.preview-mobile-menu__account-register a {
	color: inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

.preview-mobile-menu__logout {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 1rem;
	width: 100%;
	padding-top: 0.65rem;
	padding-bottom: 0.65rem;
	border-top: 1px solid rgba(63, 59, 54, 0.09);
	color: var(--color-text);
	text-decoration: none;
}

.preview-mobile-menu__logout-avatar {
	display: grid;
	place-items: center;
	width: 3.25rem;
	height: 2rem;
	color: var(--color-text);
}

.preview-mobile-menu__account-avatar--initials {
	border-color: var(--color-primary);
	background: var(--color-primary);
	color: var(--color-white);
	font-size: 0.9rem;
	font-weight: 700;
}

.preview-mobile-menu__logout-avatar svg {
	width: 1.35rem;
	height: 1.35rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.preview-mobile-menu__logout-label {
	font-size: 0.78rem;
	line-height: 1.45;
}

html:not(.ym-edit-mode-on) {
	margin-top: 0 !important;
}

html:not(.ym-edit-mode-on) #wpadminbar {
	display: none !important;
}

html:not(.ym-edit-mode-on) body.admin-bar {
	margin-top: 0 !important;
}

html.ym-edit-mode-on #wpadminbar {
	display: block !important;
}

.preview-mobile-menu__edit-mode {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 0.35rem;
	padding-top: 1.35rem;
	border-top: 1px solid rgba(63, 59, 54, 0.09);
	color: var(--color-text);
}

.preview-mobile-menu__edit-mode-label {
	font-size: 0.9rem;
}

.preview-mobile-menu__switch {
	position: relative;
	display: inline-flex;
	align-items: center;
	cursor: pointer;
}

.preview-mobile-menu__switch input {
	position: absolute;
	width: 1px;
	height: 1px;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	overflow: hidden;
	white-space: nowrap;
}

.preview-mobile-menu__switch-track {
	display: flex;
	align-items: center;
	width: 2.8rem;
	height: 1.55rem;
	padding: 0.2rem;
	border-radius: 999px;
	background: rgba(63, 59, 54, 0.24);
	transition: background-color 160ms ease;
}

.preview-mobile-menu__switch-thumb {
	width: 1.15rem;
	height: 1.15rem;
	border-radius: 50%;
	background: var(--color-white);
	box-shadow: 0 1px 3px rgba(63, 59, 54, 0.24);
	transition: transform 160ms ease;
}

.preview-mobile-menu__switch input:checked + .preview-mobile-menu__switch-track {
	background: var(--color-primary);
}

.preview-mobile-menu__switch input:checked + .preview-mobile-menu__switch-track .preview-mobile-menu__switch-thumb {
	transform: translateX(1.25rem);
}

.preview-mobile-menu__switch input:focus-visible + .preview-mobile-menu__switch-track {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
}

.preview-mobile-menu__close:focus-visible,
.preview-mobile-menu-toggle:focus-visible,
.preview-mobile-menu__link:focus-visible,
.preview-mobile-menu__booking:focus-visible,
.preview-mobile-menu__account:focus-visible,
.preview-mobile-menu__account-title:focus-visible,
.preview-mobile-menu__logout:focus-visible,
.preview-mobile-menu__brand:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
}

.preview-hero {
	position: relative;
	display: block;
	aspect-ratio: 1440 / 664;
	min-height: auto;
	padding-block: 0;
	background: rgba(63, 59, 54, 0.08) url("../images/hero/homepage-hero.webp") right center / 100% auto no-repeat;
	--preview-hero-bg: #f8f6f2;
	overflow: hidden;
}

.preview-hero .hero__inner {
	position: absolute;
	inset: 0;
	width: min(calc(100% - 4rem), var(--container-wide));
	margin-inline: auto;
	display: flex;
	align-items: center;
	z-index: 2;
}

.preview-hero .hero__content {
	width: min(31rem, 100%);
	position: relative;
	z-index: 2;
	padding-block: clamp(3.5rem, 6vw, 7rem);
}

.preview-hero h1 {
	max-width: 30rem;
	margin-bottom: 1.65rem;
	font-size: clamp(3.2rem, 5.6vw, 5.8rem);
	letter-spacing: 0;
	line-height: 0.98;
}

.preview-hero .hero__text {
	max-width: 28rem;
	margin-bottom: 0;
	color: rgba(63, 59, 54, 0.86);
	font-size: clamp(1rem, 1.25vw, 1.2rem);
	line-height: 1.85;
}

.preview-hero .hero__actions {
	margin-top: 2.25rem;
}

.preview-text-link {
	display: inline-flex;
	align-items: center;
	gap: 0.62rem;
	margin-top: 1.6rem;
	color: var(--color-text);
	transition: color 180ms ease;
}

.preview-text-link span {
	display: inline-block;
	transition: transform 180ms ease;
}

.preview-text-link:hover span,
.preview-feeling-card:hover .preview-feeling-card__link span {
	transform: translateX(4px);
}

.preview-hero-media {
	display: none;
	margin: 0;
}

.preview-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(
		90deg,
		#f8f6f2 0,
		#f8f6f2 250px,
		rgba(248, 246, 242, 0) 700px
	);
	pointer-events: none;
}

.preview-hero-media::before {
	content: none;
}

.preview-hero-media img {
	display: block;
	width: 100%;
	height: auto;
}

.preview-benefits {
	padding-block: clamp(3rem, 4.8vw, 5rem);
	background: var(--section-neutral);
}

.preview-benefits__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.5rem, 4vw, 4rem);
}

.preview-benefit {
	text-align: center;
}

.preview-benefit__icon {
	display: block;
	width: 2.25rem;
	height: 2.25rem;
	margin: 0 auto 1rem;
	background-color: var(--color-primary);
}

.preview-benefit__icon--leaf {
	-webkit-mask: url("../icons/benefit-leaf.svg") center / contain no-repeat;
	mask: url("../icons/benefit-leaf.svg") center / contain no-repeat;
}

.preview-benefit__icon--heart {
	-webkit-mask: url("../icons/benefit-heart.svg") center / contain no-repeat;
	mask: url("../icons/benefit-heart.svg") center / contain no-repeat;
}

.preview-benefit__icon--friendly {
	-webkit-mask: url("../icons/benefit-friendly-atmosphere.svg") center / contain no-repeat;
	mask: url("../icons/benefit-friendly-atmosphere.svg") center / contain no-repeat;
}

.preview-benefit__icon--location {
	-webkit-mask: url("../icons/benefit-location.svg") center / contain no-repeat;
	mask: url("../icons/benefit-location.svg") center / contain no-repeat;
}

.preview-benefit h2 {
	margin-bottom: 0.7rem;
	font-family: var(--font-body);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
}

.preview-benefit p {
	max-width: 15rem;
	margin: 0 auto;
	color: rgba(63, 59, 54, 0.78);
	font-size: 0.88rem;
	line-height: 1.75;
}

.preview-feelings.ym-section {
	padding-top: clamp(4rem, 5.5vw, 6rem);
	padding-bottom: clamp(3.5rem, 5vw, 5.5rem);
}

.preview-feelings {
	background: var(--section-light);
}

.preview-section-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: clamp(2rem, 4vw, 3.2rem);
}

.preview-section-heading h2 {
	margin-bottom: 0.7rem;
	font-size: clamp(2.6rem, 4vw, 3.8rem);
	line-height: 1.02;
}

.preview-section-heading p {
	max-width: 38rem;
	margin: 0;
	color: rgba(63, 59, 54, 0.78);
	font-size: 1rem;
	line-height: 1.75;
}

.preview-section-heading__link {
	flex: 0 0 auto;
	margin-top: 0;
}

.preview-reveal-mask {
	overflow: hidden;
}

.preview-reveal-text {
	display: block;
	opacity: 1;
	transform: none;
	will-change: opacity, transform;
}

.js .preview-section-heading.reveal-enabled.reveal-pending .preview-reveal-text {
	opacity: 0 !important;
	transform: translateY(110%) !important;
}

.preview-section-heading.is-revealed .preview-reveal-text {
	animation: preview-editorial-reveal 900ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.preview-section-heading.is-revealed .preview-reveal-mask:nth-child(2) .preview-reveal-text {
	animation-delay: 150ms;
}

.preview-section-heading.is-revealed .preview-section-heading__link .preview-reveal-text {
	animation-delay: 300ms;
}

@keyframes preview-editorial-reveal {
	from {
		opacity: 0;
		transform: translateY(110%);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.preview-feelings__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: clamp(1.2rem, 2vw, 1.75rem);
}

.preview-feeling-card {
	display: flex;
	min-width: 0;
	flex-direction: column;
	color: var(--color-text);
	text-decoration: none;
}

.preview-feeling-card.is-selected .preview-feeling-card__image {
	box-shadow: 0 0 0 2px rgba(140, 148, 115, 0.34);
}

.preview-feeling-card.is-selected .preview-feeling-card__link {
	color: #5f684a;
	font-weight: 600;
}

.preview-feeling-card__image {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: #e5ded2;
}

.preview-feeling-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 420ms ease;
}

.preview-feeling-card:hover .preview-feeling-card__image img {
	transform: scale(1.035);
}

.preview-feeling-card__content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding-top: 1.25rem;
}

.preview-feeling-card__title {
	margin-bottom: 0.5rem;
	font-family: var(--font-heading);
	font-size: clamp(1.45rem, 2vw, 1.75rem);
	line-height: 1.12;
}

.preview-feeling-card__text {
	margin-bottom: 1rem;
	color: rgba(63, 59, 54, 0.78);
	font-size: 0.92rem;
	line-height: 1.7;
}

.preview-feeling-card__link {
	margin-top: auto;
	color: #777154;
}

.preview-feelings__pagination {
	display: none;
}

.preview-testimonials {
	padding-block: clamp(3rem, 4.8vw, 5rem);
	background: var(--section-light);
}

.preview-testimonials__heading {
	margin-bottom: clamp(2rem, 4vw, 3rem);
}

.preview-testimonials__heading h2 {
	margin-bottom: 0;
	font-size: clamp(2.6rem, 4vw, 3.8rem);
	line-height: 1.02;
}

.preview-testimonials__grid {
	--testimonials-gap: clamp(1rem, 1.8vw, 1.5rem);
	display: flex;
	gap: var(--testimonials-gap);
	padding-bottom: 0.35rem;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	box-sizing: border-box;
	-webkit-user-select: none;
	user-select: none;
}

.preview-testimonials__grid::-webkit-scrollbar {
	display: none;
}

.preview-testimonial {
	flex: 0 0 calc((100% - (2 * var(--testimonials-gap))) / 3);
	min-width: 0;
	display: flex;
	flex-direction: column;
	padding: clamp(1.35rem, 2vw, 1.75rem);
	background: var(--section-light);
	border: 0;
	box-shadow: none;
	scroll-snap-align: start;
}

.preview-testimonial {
	--testimonial-delay: 0ms;
}

.preview-testimonial:nth-child(2) {
	--testimonial-delay: 120ms;
}

.preview-testimonial:nth-child(3) {
	--testimonial-delay: 240ms;
}

.preview-testimonial:nth-child(4) {
	--testimonial-delay: 360ms;
}

.preview-testimonial:nth-child(5) {
	--testimonial-delay: 480ms;
}

.preview-testimonial__text {
	margin-bottom: 0.85rem;
	color: rgba(63, 59, 54, 0.72);
	font-size: clamp(0.96rem, 1vw, 1.04rem);
	line-height: 1.82;
	opacity: 1;
	transform: none;
	transition: opacity 700ms ease, transform 700ms ease;
	will-change: opacity, transform;
}

.preview-testimonial__quote-mark {
	display: inline;
	font-family: var(--font-heading);
	font-size: 1.9rem;
	line-height: 0;
	font-style: italic;
	color: inherit;
}

.preview-testimonial__quote-copy {
	display: inline;
	font-size: inherit;
	font-style: italic;
	color: inherit;
	white-space: pre-line;
}

.preview-testimonial__name {
	margin-top: 0;
	font-family: var(--font-body);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-transform: uppercase;
	opacity: 1;
	transform: none;
	transition: opacity 700ms ease, transform 700ms ease;
	transition-delay: calc(var(--testimonial-delay) + 120ms);
	will-change: opacity, transform;
}

.preview-testimonials__pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
	padding-top: 1.25rem;
}

.preview-testimonials__pagination[hidden] {
	display: none;
}

.preview-testimonials__dot {
	width: 0.55rem;
	height: 0.55rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(63, 59, 54, 0.18);
	appearance: none;
	transition: transform 180ms ease, background-color 180ms ease, width 180ms ease;
}

.preview-testimonials__dot.is-active,
.preview-testimonials__dot[aria-current="true"] {
	width: 1.3rem;
	background: var(--color-primary);
}

.preview-testimonials__dot:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 4px;
}

.preview-feeling-card__link span {
	display: inline-block;
	transition: transform 180ms ease;
}

.preview-about {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: 0;
	background: var(--section-neutral);
}

.preview-about__inner::after {
	content: "";
	position: absolute;
	z-index: 2;
	right: 0;
	bottom: 0;
	left: 0;
	height: 48px;
	pointer-events: none;
	background: linear-gradient(
		to right,
		transparent 0%,
		transparent 30%,
		color-mix(in srgb, var(--color-accent) 25%, transparent) 100%
	);
}

.preview-about__inner {
	--about-container-edge: max(2rem, calc((100vw - var(--container-default)) / 2));
	--about-copy-offset: max(0rem, calc(22vw - var(--about-container-edge)));
	position: relative;
	display: grid;
	grid-template-columns: var(--about-container-edge) minmax(18rem, 21vw) minmax(0, 1fr);
	width: 100%;
	max-width: none;
	min-height: clamp(27.5rem, 31vw, 34rem);
	margin-inline: 0;
	background: var(--section-neutral);
}

.preview-about__media,
.preview-about__content {
	z-index: 1;
}

.preview-about__media {
	grid-column: 2;
	z-index: 4;
	min-height: 100%;
	margin: 0;
	overflow: hidden;
	background: var(--color-warm-beige);
}

.preview-about__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 42%;
}

.preview-about__content {
	position: relative;
	grid-column: 3;
	display: flex;
	align-items: flex-start;
	min-width: 0;
	padding: clamp(3.1rem, 4.2vw, 4.9rem) clamp(2rem, 4.2vw, 4.75rem);
	padding-left: calc(clamp(0.75rem, 1.5vw, 1.5rem) + var(--about-copy-offset));
	overflow: hidden;
	background: var(--section-neutral);
}

.preview-about__copy {
	position: relative;
	z-index: 3;
	width: min(100%, 37rem);
}

.preview-about__eyebrow,
.preview-price__eyebrow,
.preview-schedule__eyebrow {
	font-size: clamp(1rem, 1.55vw, 1.28rem);
	line-height: 1.55;
}

.preview-about__eyebrow {
	margin: 0 0 1.35rem;
	color: var(--color-primary);
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.preview-about h2 {
	max-width: 37rem;
	margin: 0;
	font-size: clamp(2.6rem, 4vw, 3.8rem);
	line-height: 1.02;
}

.preview-about h2 span {
	display: block;
}

.preview-about__text {
	max-width: 35.5rem;
	margin-top: clamp(1.45rem, 2vw, 1.9rem);
	color: rgba(63, 59, 54, 0.72);
	font-size: clamp(0.96rem, 1vw, 1.04rem);
	line-height: 1.82;
}

.preview-about__text p {
	margin: 0;
}

.preview-about__text p + p {
	margin-top: 1.15rem;
}

.preview-about__button {
	min-height: 2.95rem;
	margin-top: 1.9rem;
	padding: 0.85rem 1.85rem;
	background: var(--color-primary);
	border-color: var(--color-primary);
	border-radius: 999px;
	color: var(--color-white);
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.preview-about__button:hover {
	background: color-mix(in srgb, var(--color-primary) 84%, var(--color-text));
	border-color: color-mix(in srgb, var(--color-primary) 84%, var(--color-text));
	color: var(--color-white);
}

.preview-about__plant,
.preview-about__botanical,
.preview-about__candle {
	position: absolute;
	pointer-events: none;
	user-select: none;
}

.preview-about__plant {
	left: 0;
	bottom: 0;
	z-index: 3;
	width: clamp(28rem, 36vw, 48rem);
	max-width: none;
	height: min(118%, 42rem);
	object-fit: contain;
	object-position: left bottom;
	opacity: 0.7;
	filter: blur(5px);
}

.preview-about__botanical {
	top: clamp(2.4rem, 4.2vw, 4.6rem);
	right: clamp(-8rem, -5vw, -4rem);
	z-index: 3;
	width: clamp(17rem, 22vw, 28rem);
	max-width: none;
	color: var(--color-primary);
	opacity: 0.12;
}

.preview-about__candle {
	right: clamp(4rem, 8vw, 9rem);
	bottom: clamp(-2rem, -1vw, -0.5rem);
	z-index: 3;
	width: clamp(20rem, 27vw, 34rem);
	max-width: none;
	opacity: 0.92;
}

.preview-placeholder {
	padding-block: clamp(4rem, 6vw, 6rem);
	background: #eee8dd;
	border-top: 1px solid rgba(63, 59, 54, 0.08);
	text-align: center;
}

.preview-placeholder h2 {
	margin-bottom: 0.8rem;
	font-size: clamp(2rem, 3vw, 3rem);
}

.preview-placeholder p {
	max-width: 36rem;
	margin: 0 auto;
	color: rgba(63, 59, 54, 0.78);
}

.preview-price {
	position: relative;
	overflow: hidden;
	padding-top: clamp(3.75rem, 5vw, 5.5rem);
	padding-bottom: clamp(3rem, 4vw, 4.5rem);
	background: var(--section-warm);
}

.preview-price__decor {
	position: absolute;
	left: 0;
	bottom: 0;
	width: clamp(11rem, 15vw, 15rem);
	pointer-events: none;
	z-index: 0;
	line-height: 0;
}

.preview-price__decor img {
	display: block;
	width: 100%;
	height: auto;
	opacity: 0.8;
}

.preview-price__inner {
	position: relative;
	max-width: 1200px;
	z-index: 1;
}

.preview-price__heading {
	max-width: 58rem;
	margin-inline: auto;
	text-align: center;
}

.preview-price__eyebrow,
.preview-schedule__eyebrow {
	margin: 0;
	color: #777154;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.preview-price__heading-line {
	display: block;
	width: 2rem;
	height: 1px;
	margin: 1.3rem auto 1.6rem;
	background: #777154;
}

.preview-price__heading h2 {
	max-width: 70rem;
	margin: 0 auto 1.15rem;
	font-size: clamp(2.6rem, 4vw, 3.8rem);
	line-height: 1.02;
}

.preview-price__intro {
	margin: 0;
	color: rgba(63, 59, 54, 0.66);
	font-size: clamp(1rem, 1.55vw, 1.28rem);
	line-height: 1.55;
}

.preview-price__cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: clamp(1.35rem, 2.2vw, 2rem);
	margin-top: clamp(4rem, 5.8vw, 5rem);
}

.preview-price-card {
	--price-card-padding-x: clamp(1.6rem, 3vw, 2.9rem);
	--price-card-padding-bottom: 1.15rem;
	--price-card-ease: ease;
	position: relative;
	display: grid;
	grid-template-rows: 5.5rem 5.2rem 1px 4.45rem 2rem minmax(1.15rem, 1fr) 2.9rem;
	row-gap: 1.15rem;
	min-height: 27.5rem;
	align-items: center;
	justify-items: center;
	padding: clamp(2.5rem, 4vw, 3.65rem) var(--price-card-padding-x) var(--price-card-padding-bottom);
	background: rgba(255, 255, 255, 0.76);
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: var(--radius-large);
	box-shadow: 0 24px 70px rgba(63, 59, 54, 0.08);
	text-align: center;
	transition:
		transform 420ms var(--price-card-ease),
		box-shadow 420ms var(--price-card-ease),
		border-color 420ms var(--price-card-ease);
}

.preview-price-card--best {
	overflow: hidden;
}

.preview-price-card__badge,
.preview-price-card__footer {
	background: #777154;
	color: #ffffff;
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	line-height: 1.2;
	text-transform: uppercase;
}

.preview-price-card__badge {
	position: absolute;
	top: -1.45rem;
	left: 50%;
	width: min(15.8rem, calc(100% - 3rem));
	margin: 0;
	padding: 0.95rem 1rem;
	border-radius: var(--radius-large);
	transform: translateX(-50%);
}

.preview-price-card__icon,
.preview-price__note-icon {
	display: grid;
	flex: 0 0 auto;
	place-items: center;
	background: #eee8e0;
	border-radius: 50%;
}

.preview-price-card__icon {
	width: 5.5rem;
	height: 5.5rem;
	transform-origin: center;
	transition: transform 420ms var(--price-card-ease);
}

.preview-price-card__icon-mark,
.preview-price__note-icon-mark,
.preview-price-card__plant-mark {
	display: block;
	background-color: var(--color-primary);
}

.preview-price-card__icon-mark {
	width: 2.75rem;
	height: 2.75rem;
}

.preview-price-card__icon--lotus .preview-price-card__icon-mark {
	-webkit-mask: url("../icons/lotus-clean.svg") center / contain no-repeat;
	mask: url("../icons/lotus-clean.svg") center / contain no-repeat;
}

.preview-price-card__icon--calendar .preview-price-card__icon-mark {
	-webkit-mask: url("../icons/calendar.svg") center / contain no-repeat;
	mask: url("../icons/calendar.svg") center / contain no-repeat;
}

.preview-price-card__icon--calendar-star .preview-price-card__icon-mark {
	-webkit-mask: url("../icons/calendar-star.svg") center / contain no-repeat;
	mask: url("../icons/calendar-star.svg") center / contain no-repeat;
}

.preview-price-card__plant-mark {
	width: 1.35rem;
	height: 1.8rem;
	-webkit-mask: url("../icons/plant.svg") center / contain no-repeat;
	mask: url("../icons/plant.svg") center / contain no-repeat;
}

.preview-price-card__content {
	display: contents;
}

.preview-price__note-icon-mark {
	width: 2.25rem;
	height: 2.25rem;
	-webkit-mask: url("../icons/heart.svg") center / contain no-repeat;
	mask: url("../icons/heart.svg") center / contain no-repeat;
}

@media (max-width: 780px) {
	.site-footer {
		padding-block: var(--spacing-lg);
	}

	.preview-footer .site-footer__inner {
		gap: var(--spacing-lg);
	}

	.preview-footer .site-footer__brand {
		margin-bottom: var(--spacing-xs);
	}

	.preview-footer__contact {
		gap: 0.25rem;
	}

	.preview-footer .site-footer__menu {
		gap: 0.35rem;
	}
}

.preview-price__note-icon-mark--calendar {
	-webkit-mask-image: url("../icons/calendar.svg");
	mask-image: url("../icons/calendar.svg");
}

.preview-price-card h3 {
	align-self: start;
	margin: 0;
	font-size: clamp(2rem, 3vw, 2.55rem);
	line-height: 1.04;
}

.preview-price-card__divider {
	display: block;
	width: 100%;
	height: 1px;
	background: rgba(63, 59, 54, 0.12);
}

.preview-price-card__amount {
	margin: 0;
	color: #777154;
	font-family: var(--font-heading);
	font-size: clamp(3.3rem, 5.2vw, 4.45rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 0.95;
	transition:
		transform 420ms var(--price-card-ease),
		color 420ms var(--price-card-ease);
}

.preview-price-card.is-interacting {
	border-color: rgba(140, 148, 115, 0.3);
	box-shadow: 0 30px 88px rgba(63, 59, 54, 0.12);
	transform: translateY(-6px);
}

.preview-price-card.is-interacting .preview-price-card__icon {
	transform: scale(1.04);
}

.preview-price-card.is-interacting .preview-price-card__amount {
	color: #687248;
	transform: translateY(-2px);
}

.preview-price-card__pill {
	margin: 0;
	padding: 0.28rem 1.3rem;
	background: #eee8e0;
	border-radius: 999px;
	color: rgba(63, 59, 54, 0.88);
	font-size: 0.96rem;
	line-height: 1.45;
}

.preview-price-card__plant {
	display: flex;
	grid-row: 7;
	width: 100%;
	align-items: center;
	gap: 1rem;
	align-self: end;
	color: var(--color-text);
}

.preview-price-card__plant::before,
.preview-price-card__plant::after {
	content: "";
	height: 1px;
	flex: 1;
	background: rgba(63, 59, 54, 0.14);
}

.preview-price-card__footer {
	grid-row: 7;
	align-self: stretch;
	justify-self: stretch;
	display: grid;
	place-items: center;
	margin: 0 calc(var(--price-card-padding-x) * -1) calc(var(--price-card-padding-bottom) * -1);
	padding: 0.78rem 1rem;
	border-radius: 0 0 var(--radius-large) var(--radius-large);
}

.preview-price__note {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 1.25rem;
	width: min(100%, 48rem);
	margin: clamp(2.1rem, 3vw, 2.7rem) auto 0;
	padding: 1.45rem clamp(1.6rem, 5vw, 3.2rem);
	background: rgba(255, 255, 255, 0.34);
	border-radius: var(--radius-large);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.42);
}

.preview-price__note-icon {
	width: 4.5rem;
	height: 4.5rem;
	background: rgba(255, 255, 255, 0.64);
}

.preview-price__note-content {
	display: grid;
	gap: 0.2rem;
	text-align: left;
	min-width: 0;
}

.preview-price__note strong {
	color: rgba(63, 59, 54, 0.9);
	font-size: clamp(1rem, 1.6vw, 1.2rem);
	font-weight: 600;
	line-height: 1.3;
}

.preview-price__note span {
	color: rgba(63, 59, 54, 0.82);
	font-size: clamp(0.96rem, 1.5vw, 1.08rem);
	font-weight: 400;
	line-height: 1.45;
}

.preview-price__note-cta {
	justify-self: end;
	white-space: nowrap;
}

.preview-schedule {
	--schedule-card-background: #fbf8f3;
	position: relative;
	overflow: hidden;
	padding-top: clamp(3.5rem, 4.5vw, 5rem);
	padding-bottom: clamp(3.5rem, 4.5vw, 5rem);
	background: var(--section-neutral);
}

.preview-schedule__inner {
	max-width: 1200px;
}

.preview-schedule__heading {
	max-width: 62rem;
}

.preview-schedule__filter-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.38rem;
	min-height: 1.75rem;
	margin-inline: 0.22rem;
	padding: 0.12rem 0.2rem 0.12rem 0.7rem;
	background: rgba(200, 158, 108, 0.16);
	border: 1px solid rgba(200, 158, 108, 0.34);
	border-radius: 999px;
	color: #765636;
	font-size: 0.92em;
	font-weight: 600;
	line-height: 1.1;
	vertical-align: baseline;
	white-space: nowrap;
}

.preview-schedule__filter-clear {
	display: inline-grid;
	width: 1.28rem;
	height: 1.28rem;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: inherit;
	cursor: pointer;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1;
	place-items: center;
	transition: background-color 160ms ease, color 160ms ease;
}

.preview-schedule__filter-clear:focus-visible {
	outline: 2px solid rgba(94, 102, 76, 0.55);
	outline-offset: 2px;
}





























.preview-testimonials__grid.is-dragging {
	cursor: grabbing !important;
	user-select: none;
	scroll-behavior: auto;
	-webkit-user-drag: none;
}

.preview-testimonials__grid.is-not-scrollable {
	overflow-x: hidden;
	cursor: default;
}



















@media (max-width: 560px) {

}


@media (min-width: 781px) {
}







.preview-schedule__note {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto auto;
	align-items: center;
	gap: clamp(1rem, 2.5vw, 2rem);
	margin-top: clamp(1.4rem, 2.5vw, 2rem);
	padding: clamp(1rem, 2vw, 1.35rem) clamp(1.35rem, 3vw, 2.4rem);
	background: rgba(255, 255, 255, 0.48);
	border-radius: var(--radius-large);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.48);
}

.preview-schedule__note-icon {
	display: grid;
	width: 4.5rem;
	height: 4.5rem;
	place-items: center;
	background: rgba(255, 255, 255, 0.72);
	border-radius: 50%;
}

.preview-schedule__note-icon::before {
	content: "";
	display: block;
	width: 2.4rem;
	height: 2.4rem;
	background-color: var(--color-primary);
	-webkit-mask: url("../icons/plant.svg") center / contain no-repeat;
	mask: url("../icons/plant.svg") center / contain no-repeat;
}

.preview-schedule__note-copy p {
	margin: 0 0 0.2rem;
	font-family: var(--font-heading);
	font-size: clamp(1.45rem, 2.2vw, 2rem);
	line-height: 1.1;
}

.preview-schedule__note-copy span {
	color: rgba(63, 59, 54, 0.78);
	font-size: clamp(0.95rem, 1.25vw, 1.08rem);
	line-height: 1.45;
}

.preview-schedule__sms {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.05rem;
	padding: 0.65rem 1.9rem;
	border: 1px solid #777154;
	border-radius: 999px;
	color: #777154;
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition:
		background-color 180ms ease,
		color 180ms ease;
}

.preview-schedule__phone {
	color: var(--color-text);
	font-family: var(--font-heading);
	font-size: clamp(1.45rem, 2.2vw, 2rem);
	line-height: 1;
	text-decoration: none;
	white-space: nowrap;
}

.preview-schedule-modal[hidden] {
	display: none;
}

.preview-schedule-modal {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: grid;
	place-items: center;
	padding: 1.5rem;
}

.preview-schedule-modal--confirm {
	z-index: 230;
}

.preview-schedule-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(63, 59, 54, 0.34);
}

.preview-schedule-modal__dialog {
	position: relative;
	width: min(100%, 32rem);
	max-height: calc(100vh - 2rem);
	padding: clamp(1.65rem, 4vw, 2.75rem);
	background: #fbf8f3;
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: var(--radius-large);
	box-shadow: 0 24px 70px rgba(63, 59, 54, 0.16);
	overflow-y: auto;
}

.preview-schedule-modal__dialog--confirm {
	width: min(100%, 27rem);
}

.preview-schedule-modal__dialog h3 {
	margin: 0;
	text-align: center;
	font-size: clamp(2rem, 4vw, 2.45rem);
}

.preview-schedule-modal__dialog p {
	margin: 0;
	color: rgba(63, 59, 54, 0.82);
}

.preview-schedule-modal__close {
	position: absolute;
	top: 0.85rem;
	right: 0.85rem;
	display: grid;
	width: 2.25rem;
	height: 2.25rem;
	place-items: center;
	background: transparent;
	border: 0;
	color: var(--color-text);
	cursor: pointer;
	font-size: 1.7rem;
	line-height: 1;
}

.preview-schedule-modal__content,
.preview-schedule-modal__confirm {
	display: grid;
	gap: 1.25rem;
}

.preview-schedule-modal__header {
	display: grid;
	gap: 0.75rem;
}

.preview-schedule-modal__reservation-choice[hidden] {
	display: none;
}

.preview-schedule-modal__reservation-choice {
	display: grid;
	gap: 0.55rem;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
}

.preview-schedule-modal__reservation-choice-label {
	color: var(--color-text);
	font-size: 0.95rem;
	font-weight: 600;
}

.preview-schedule-modal__reservation-choice-options {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.25rem;
	padding: 0.2rem;
	background: rgba(255, 255, 255, 0.42);
	border: 1px solid rgba(111, 118, 86, 0.16);
	border-radius: calc(var(--radius-small) - 0.1rem);
}

.preview-schedule-modal__reservation-choice-options button {
	min-height: 2.75rem;
	padding: 0.55rem 0.7rem;
	border: 1px solid transparent;
	border-radius: calc(var(--radius-small) - 0.2rem);
	background: transparent;
	color: rgba(63, 59, 54, 0.78);
	font: inherit;
	font-size: 0.95rem;
	font-weight: 600;
	cursor: pointer;
}

.preview-schedule-modal__reservation-choice-options button[aria-pressed="true"] {
	background: #e8e1d4;
	border-color: rgba(111, 118, 86, 0.34);
	color: #6f7656;
}

.preview-schedule-modal__reservation-choice-options button:focus-visible {
	outline: 2px solid #6f7656;
	outline-offset: 2px;
}

.preview-schedule-modal__error[hidden] {
	display: none;
}

.preview-schedule-modal__error {
	color: #8a4e43 !important;
}

.preview-schedule-modal__error strong,
.preview-schedule-modal__error span {
	display: block;
}

.preview-schedule-modal__error strong {
	margin-bottom: 0.25rem;
}

.preview-schedule-modal__business-help[hidden] {
	display: none;
}

.preview-schedule-modal__business-help {
	display: grid;
	gap: 0.45rem;
	margin-top: 0;
	color: var(--color-text);
}

.preview-mobile-menu__account-avatar > img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	object-position: center;
	transform: none;
}

.preview-schedule-modal__business-help-toggle {
	justify-self: start;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}

.preview-schedule-modal__business-help-detail {
	margin: 0;
	color: rgba(63, 59, 54, 0.72);
	font-size: 0.9rem;
	line-height: 1.5;
}

.preview-schedule-modal__confirm[hidden],
.preview-schedule-modal__danger[hidden] {
	display: none;
}

.preview-schedule-modal__lesson {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 1.25rem;
}

.preview-schedule-modal__lesson-icon {
	display: grid;
	width: 4.35rem;
	height: 4.35rem;
	place-items: center;
	background: #f1ede6;
	border-radius: 999px;
	color: #6f7656;
}

.preview-schedule-modal__lesson-icon::before {
	content: "";
	width: 2rem;
	height: 2rem;
	background: currentColor;
	-webkit-mask: url("../icons/booking.svg") center / contain no-repeat;
	mask: url("../icons/booking.svg") center / contain no-repeat;
}

.preview-schedule-modal__lesson-title {
	color: var(--color-text);
	font-family: var(--font-heading);
	font-size: clamp(1.8rem, 4vw, 2.25rem);
	line-height: 1.05;
}

.preview-schedule-modal__lesson-time {
	margin-top: 0.25rem;
	color: rgba(63, 59, 54, 0.78);
	font-size: 1rem;
}

.preview-schedule-modal__lesson-availability {
	margin-top: 0.15rem !important;
	color: #6f7656 !important;
	font-size: 0.92rem;
}

.preview-schedule-modal__lesson-availability.is-full {
	color: #8a4e43 !important;
}

.preview-schedule-modal__group {
	display: grid;
	gap: 0.65rem;
}

.preview-schedule-modal .preview-schedule-modal__group[data-reservation-registered-fields][hidden],
.preview-schedule-modal .preview-schedule-modal__group[data-reservation-guest-fields][hidden],
.preview-schedule-modal .preview-schedule-modal__info[data-reservation-registered-info][hidden],
.preview-schedule-modal .preview-schedule-modal__info[data-reservation-guest-info][hidden],
.preview-schedule-modal .preview-schedule-modal__guest-contact[data-reservation-guest-contact][hidden] {
	display: none !important;
}

.preview-schedule-modal__section-title {
	color: var(--color-text);
	font-size: 1.05rem;
}

.preview-reservation-row {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 1rem;
	min-height: 3.25rem;
	padding: 0.75rem 0.9rem;
	background: rgba(241, 237, 230, 0.72);
	border-radius: var(--radius-small);
	color: #25231f;
	cursor: pointer;
}

.preview-reservation-row--guests {
	grid-template-columns: auto minmax(0, 1fr) auto;
}

.preview-reservation-row__additional-guests {
	color: rgba(63, 59, 54, 0.62);
	font-size: 0.9em;
	font-weight: 400;
}

.reservation-success-toast {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 260;
	max-width: min(28rem, calc(100vw - 2.5rem));
	padding: 0.85rem 1rem;
	border: 1px solid rgba(111, 118, 86, 0.2);
	border-radius: var(--radius-small);
	background: #6f7656;
	box-shadow: 0 12px 30px rgba(63, 59, 54, 0.18);
	color: #ffffff;
	font-size: 0.92rem;
}

.preview-reservation-check {
	position: relative;
	display: grid;
	width: 1.5rem;
	height: 1.5rem;
	place-items: center;
}

.preview-reservation-check input {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	opacity: 0;
	cursor: inherit;
}

.preview-reservation-check span {
	display: grid;
	width: 1.5rem;
	height: 1.5rem;
	place-items: center;
	background: #ffffff;
	border: 1px solid rgba(63, 59, 54, 0.42);
	border-radius: var(--radius-small);
	color: #ffffff;
}

.preview-reservation-check input:checked + span {
	background: #6f7656;
	border-color: #6f7656;
}

.preview-schedule-modal__group.is-edit-hydrating .preview-reservation-check input:disabled:not(:checked) + span {
	background: rgba(63, 59, 54, 0.08);
	border-color: rgba(63, 59, 54, 0.24);
}

.preview-reservation-check input:checked + span::before {
	content: "✓";
	font-size: 1rem;
	line-height: 1;
}

.preview-reservation-stepper {
	display: inline-grid;
	grid-template-columns: 2rem 2rem 2rem;
	align-items: center;
	justify-items: center;
	color: #504c45;
}

.preview-reservation-stepper button {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	font-size: 1.4rem;
	line-height: 1;
}

.preview-reservation-stepper button:disabled,
.preview-reservation-stepper.is-disabled {
	color: rgba(63, 59, 54, 0.42);
}

.preview-schedule-modal__field {
	display: grid;
	gap: 0.55rem;
	color: var(--color-text);
}

.preview-schedule-modal__field small {
	margin-left: 0.35rem;
	color: rgba(63, 59, 54, 0.58);
	font-size: 0.88rem;
}

.preview-schedule-modal__field textarea {
	width: 100%;
	min-height: 0;
	height: auto;
	padding: 0.9rem 1rem;
	background: #ffffff;
	border: 1px solid rgba(63, 59, 54, 0.42);
	border-radius: var(--radius-small);
	color: var(--color-text);
	resize: none;
	overflow-y: hidden;
}

.preview-schedule-modal__field input {
	width: 100%;
	border: 1px solid #ddd9d2;
	border-radius: 4px;
	padding: 9px 11px;
	font: inherit;
	background: #fff;
}

.preview-schedule-modal__field--readonly input {
	background: #f8f6f1;
	border-color: #e3dfd7;
	color: rgba(63, 59, 54, 0.72);
	cursor: default;
}

.preview-schedule-modal__input-wrap {
	position: relative;
	display: block;
}

.preview-schedule-modal__input-icon {
	position: absolute;
	top: 50%;
	left: 0.85rem;
	z-index: 1;
	width: 1rem;
	height: 1rem;
	transform: translateY(-50%);
	background: #6f7656;
	pointer-events: none;
}

.preview-schedule-modal__input-icon--person {
	-webkit-mask: url("../icons/person-contact.svg") center / contain no-repeat;
	mask: url("../icons/person-contact.svg") center / contain no-repeat;
}

.preview-schedule-modal__input-icon--mail {
	-webkit-mask: url("../icons/mail.svg") center / contain no-repeat;
	mask: url("../icons/mail.svg") center / contain no-repeat;
}

.preview-schedule-modal__input-icon--phone {
	-webkit-mask: url("../icons/phone.svg") center / contain no-repeat;
	mask: url("../icons/phone.svg") center / contain no-repeat;
}

.preview-schedule-modal__input-wrap input {
	padding-left: 2.75rem;
}

.preview-schedule-modal__places {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	margin: 10px 0 0.25rem;
}

.preview-schedule-modal__places-control {
	display: flex;
	min-width: 0;
	max-width: 100%;
	flex-direction: column;
	align-items: flex-end;
	gap: 0.25rem;
}

.preview-schedule-modal__capacity-help {
	max-width: 100%;
	margin: 0;
	color: #8a4e43;
	font-size: 0.82rem;
	line-height: 1.35;
	text-align: right;
}

.preview-schedule-modal__first-lesson[hidden] {
	display: none;
}

.preview-schedule-modal__first-lesson {
	display: grid;
	gap: 0.55rem;
	margin: 0.85rem 0 0.25rem;
	padding: 0.9rem 1rem;
	background: rgba(200, 158, 108, 0.12);
	border: 1px solid rgba(200, 158, 108, 0.28);
	border-radius: var(--radius-small);
	color: var(--color-text);
}

.preview-schedule-modal__first-lesson strong {
	color: var(--color-primary);
}

.preview-schedule-modal__first-lesson-error {
	display: grid;
	gap: 0.2rem;
	margin: 0;
	font-size: 0.88rem;
	line-height: 1.4;
	color: var(--color-primary);
}

.preview-schedule-modal__first-lesson-check {
	display: flex;
	align-items: flex-start;
	gap: 0.55rem;
	font-size: 0.88rem;
	line-height: 1.4;
}

.preview-schedule-modal__first-lesson-check input {
	flex: 0 0 auto;
	margin-top: 0.15rem;
}

.preview-schedule-modal__first-lesson-check small {
	display: block;
	margin-top: 0.2rem;
	color: rgba(63, 59, 54, 0.68);
	font-size: 0.82rem;
	line-height: 1.35;
}

.preview-schedule-modal__guest-contact {
	text-align: center;
	margin-top: 18px;
	color: #5e6547;
}

.preview-schedule-modal__guest-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem 1.25rem; align-items: center; }
.preview-schedule-modal__guest-actions a { display: inline-flex; align-items: center; gap: 0.35rem; color: inherit; text-decoration: none; white-space: nowrap; }
.preview-schedule-modal__guest-contact a { display: inline-flex; align-items: center; gap: 0.35rem; color: inherit; text-decoration: none; }
.preview-schedule-modal__contact-icon { width: 1rem; height: 1rem; fill: currentColor; vertical-align: -0.15em; }
.preview-schedule-modal__guest-contact small { display: block; margin-top: 16px; color: #777; line-height: 1.35; }
.preview-schedule-modal__privacy-link { padding: 0; border: 0; background: transparent; color: inherit; text-decoration: underline; cursor: pointer; font: inherit; }
.preview-schedule-modal__privacy-copy { display: grid; gap: 0.85rem; }
.preview-schedule-modal__privacy-copy p { line-height: 1.5; }
.preview-schedule-modal--privacy { z-index: 240; }
.preview-schedule-modal--privacy .preview-schedule-modal__secondary { min-height: 2.75rem; border: 1px solid rgba(63, 59, 54, 0.55); border-radius: var(--radius-small); }
.preview-schedule-modal__info--guest { align-items: flex-start; }

.preview-schedule-modal__info {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 0.8rem;
	font-size: 0.92rem;
}

.preview-schedule-modal__info span {
	display: grid;
	width: 1.25rem;
	height: 1.25rem;
	place-items: center;
	border: 1px solid currentColor;
	border-radius: 999px;
	color: #6f7656;
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1;
}

.preview-schedule-modal__primary,
.preview-schedule-modal__secondary,
.preview-schedule-modal__danger {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	border: 0;
	cursor: pointer;
}

.preview-schedule-modal__primary {
	min-height: 3.75rem;
	padding: 0.8rem 1rem;
	background: #6f7656;
	border-radius: var(--radius-small);
	color: #ffffff;
	font-size: 1.2rem;
}

.preview-schedule-modal__primary:disabled {
	background: rgba(111, 118, 86, 0.42);
	cursor: not-allowed;
}

.preview-schedule-modal__primary--danger {
	background: #8a4e43;
}

.preview-schedule-modal__secondary,
.preview-schedule-modal__danger {
	background: transparent;
	font-size: 1rem;
}

.preview-schedule-modal__secondary {
	margin-top: -0.35rem;
	padding: 0;
	color: #6f7656;
}

.preview-schedule-modal__danger {
	box-sizing: border-box;
	height: 3.75rem;
	min-height: 3.75rem;
	padding: 0.8rem 1rem;
	background: #8a4e43;
	border-radius: var(--radius-small);
	color: #ffffff;
	font-size: 1.2rem;
}

.preview-schedule-modal__danger.has-unsaved-changes {
	flex-direction: column;
	gap: 0.1rem;
	line-height: 1;
}

.preview-schedule-modal__danger-hint {
	font-size: 0.6875rem;
	font-weight: 400;
	line-height: 1;
}

.preview-schedule-modal__danger-hint[hidden] {
	display: none;
}

.preview-schedule-modal__danger:disabled,
.preview-schedule-modal__danger:disabled:hover,
.preview-schedule-modal__danger:disabled:active {
	background: rgba(138, 78, 67, 0.42);
	color: rgba(255, 255, 255, 0.72);
	cursor: not-allowed;
}

.preview-schedule-modal__confirm {
	padding-top: 1.2rem;
	text-align: center;
}

.preview-schedule-modal__confirm p {
	line-height: 1.7;
}







































@keyframes preview-schedule-fade {
	from {
		opacity: 0;
		transform: translateY(8px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (hover: hover) and (pointer: fine) {





	.preview-schedule__filter-clear:hover {
		background: rgba(94, 102, 76, 0.12);
		color: #4f573e;
	}



}

@media (prefers-reduced-motion: reduce) {
	.preview-section-heading.is-revealed .preview-reveal-text,
	.preview-section-heading.reveal-pending .preview-reveal-text,
	.preview-reveal-text {
		animation: none;
		opacity: 1;
		transform: none;
		will-change: auto;
	}

	.preview-price-card {
		transition:
			box-shadow 180ms ease,
			border-color 180ms ease;
	}

	.preview-price-card__icon,
	.preview-price-card__amount {
		transition: color 180ms ease;
	}

	.preview-price-card.is-interacting {
		border-color: rgba(140, 148, 115, 0.22);
		box-shadow: 0 26px 76px rgba(63, 59, 54, 0.1);
		transform: none;
	}

	.preview-price-card.is-interacting .preview-price-card__icon,
	.preview-price-card.is-interacting .preview-price-card__amount {
		transform: none;
	}


}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: reduce) {
	.preview-price-card:hover {
		border-color: rgba(140, 148, 115, 0.22);
		box-shadow: 0 26px 76px rgba(63, 59, 54, 0.1);
		transform: none;
	}

	.preview-price-card:hover .preview-price-card__icon,
	.preview-price-card:hover .preview-price-card__amount {
		transform: none;
	}
}

/* Desktop price-card flip. The contents-display fallback keeps mobile cards unchanged. */
.preview-price-card__flip,
.preview-price-card__front {
	display: contents;
}

.preview-price-card__back {
	display: none;
}

@media (min-width: 768px) {
	.preview-price-card {
		min-height: 27.5rem;
		height: calc(29.4375rem + clamp(2.5rem, 4vw, 3.65rem));
		display: block;
		padding: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
		perspective: 1200px;
		transform: none;
		transition: none;
		cursor: pointer;
	}

	.preview-price-card:focus-visible {
		outline: 3px solid rgba(111, 118, 86, 0.45);
		outline-offset: 4px;
	}

	.preview-price-card__flip {
		position: relative;
		display: block;
		width: 100%;
		height: 100%;
		min-height: inherit;
		transform-style: preserve-3d;
		-webkit-transform-style: preserve-3d;
	}

	.preview-price-card__front,
	.preview-price-card__back {
		position: absolute;
		inset: 0;
		box-sizing: border-box;
		backface-visibility: hidden;
		-webkit-backface-visibility: hidden;
		border: 1px solid rgba(255, 255, 255, 0.72);
		border-radius: var(--radius-large);
		box-shadow: 0 24px 70px rgba(63, 59, 54, 0.08);
	}

	.preview-price-card__front {
		display: grid;
		grid-template-rows: 5.5rem 5.2rem 1px 4.45rem 2rem minmax(1.15rem, 1fr) 2.9rem;
		row-gap: 1.15rem;
		align-items: center;
		justify-items: center;
		padding: clamp(2.5rem, 4vw, 3.65rem) var(--price-card-padding-x) var(--price-card-padding-bottom);
		background: rgba(255, 255, 255, 0.76);
		text-align: center;
	}

	.preview-price-card__back {
		display: grid;
		place-items: center;
		align-content: center;
		gap: 0.5rem;
		padding: 1.75rem 1.15rem;
		background: rgba(255, 255, 255, 0.92);
		text-align: center;
		transform: rotateY(180deg);
	}

	.preview-price-card__back h3 {
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 3.75rem;
		margin: 0;
		font-size: clamp(1.4rem, 2vw, 1.8rem);
		line-height: 1.08;
	}

	.preview-price-card__back .preview-price-card__amount {
		display: grid;
		min-height: 2.75rem;
		place-items: center;
		font-size: clamp(2.25rem, 3.5vw, 3.05rem);
	}

	.preview-price-card__qr {
		display: block;
		width: 230px;
		height: 230px;
		aspect-ratio: 1 / 1;
		flex-shrink: 0;
		object-fit: contain;
	}

	.preview-price-card__payment-label,
	.preview-price-card__account,
	.preview-price-card__instruction {
		margin: 0;
		line-height: 1.25;
	}

	.preview-price-card__payment-label {
		color: rgba(63, 59, 54, 0.64);
		font-size: 0.82rem;
	}

	.preview-price-card__account {
		color: #777154;
		font-size: 1.08rem;
		font-weight: 600;
		letter-spacing: 0.02em;
	}

	.preview-price-card__instruction {
		width: 100%;
		max-width: none;
		color: rgba(63, 59, 54, 0.68);
		font-size: 0.72rem;
	}

	.preview-price-card--best .preview-price-card__front {
		overflow: hidden;
	}

	.preview-price-card.is-flipping-forward .preview-price-card__flip {
		animation: preview-price-card-flip-forward 320ms linear both;
	}

	.preview-price-card.is-flipping-back .preview-price-card__flip {
		animation: preview-price-card-flip-back 320ms linear both;
	}

	.preview-price-card.is-flipped .preview-price-card__flip {
		transform: rotateY(180deg);
	}

	.preview-price-card.is-flipping-forward,
	.preview-price-card.is-flipping-back,
	.preview-price-card.is-flipped {
		transform: none;
	}

	@keyframes preview-price-card-flip-forward {
		0% { transform: rotateY(0deg); }
		12% { transform: rotateY(5deg); }
		50% { transform: rotateY(90deg); }
		86% { transform: rotateY(176deg); }
		95% { transform: rotateY(185deg); }
		97% { transform: rotateY(177deg); }
		100% { transform: rotateY(180deg); }
	}

	@keyframes preview-price-card-flip-back {
		0% { transform: rotateY(180deg); }
		14% { transform: rotateY(175deg); }
		50% { transform: rotateY(90deg); }
		84% { transform: rotateY(4deg); }
		95% { transform: rotateY(-5deg); }
		97% { transform: rotateY(3deg); }
		100% { transform: rotateY(0deg); }
	}
}

@media (min-width: 768px) and (prefers-reduced-motion: reduce) {
	.preview-price-card__flip {
		animation: none !important;
		transition: none;
	}
}

.preview-footer {
	background: var(--section-footer);
	color: var(--color-text);
}

.preview-footer .site-footer__inner {
	display: grid;
	grid-template-columns: 1.2fr 1fr 0.8fr;
	align-items: start;
}

.preview-footer .site-footer__brand {
	text-transform: uppercase;
	letter-spacing: 0.14em;
}

.preview-footer .site-footer__text,
.preview-footer__contact a,
.preview-footer__contact p,
.preview-footer__contact span,
.preview-footer .site-footer__menu a {
	color: rgba(63, 59, 54, 0.76);
}

.preview-footer__contact {
	display: grid;
	gap: 0.25rem;
	font-size: 0.9rem;
}

.preview-footer__contact p {
	margin: 0 0 0.35rem;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.preview-footer__contact a {
	text-decoration: none;
}

.preview-footer .site-footer__menu {
	display: grid;
	gap: 0.35rem;
	font-size: 0.9rem;
}

@media (max-width: 960px) {
	.preview-header .site-header__inner {
		min-height: 5.25rem;
	}

	.preview-header .site-navigation__menu {
		gap: 1.1rem;
	}

	.preview-hero {
		aspect-ratio: auto;
		min-height: clamp(30rem, 48vw, 38rem);
		background-size: cover;
		background-position: right center;
	}

	.preview-hero .hero__inner {
		position: relative;
		inset: auto;
		min-height: inherit;
	}

	.preview-feelings__grid,
	.preview-benefits__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.preview-testimonials__grid {
		flex-wrap: nowrap;
	}

	.preview-testimonial {
		flex-basis: calc((100% - var(--testimonials-gap)) / 2);
	}

	.preview-about__inner {
		--about-copy-offset: 0rem;
		grid-template-columns: minmax(0, 35fr) minmax(0, 65fr);
		min-height: 0;
	}

	.preview-about__media {
		grid-column: 1;
		aspect-ratio: 3 / 4;
		min-height: 0;
	}

	.preview-about__media img {
		object-position: 50% 34%;
	}

	.preview-about__content {
		grid-column: 2;
		padding: clamp(2.75rem, 7vw, 4.25rem) clamp(2rem, 6vw, 4rem);
	}

	.preview-about h2 {
		max-width: none;
		font-size: clamp(2.2rem, 3.5vw, 2.8rem);
	}

	.preview-about__botanical {
		width: 9rem;
		opacity: 0.09;
	}

	.preview-about__plant {
		width: 9rem;
		opacity: 0.2;
	}

	.preview-about__candle {
		width: 7rem;
		opacity: 0.72;
	}

	.preview-price__cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.preview-price-card--best {
		grid-column: 1 / -1;
		width: min(100%, 28rem);
		margin-inline: auto;
	}





	.preview-schedule__note {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.preview-schedule__sms,
	.preview-schedule__phone {
		justify-self: start;
	}
}

@media (max-width: 780px) {
	.preview-header .site-header__inner {
		min-height: 4.75rem;
	}

	.preview-header .site-navigation {
		background: #ffffff;
		box-shadow: none;
	}

	.preview-section-heading {
		display: block;
	}

	.preview-section-heading__link {
		margin-top: 1.25rem;
	}

	.preview-about__inner {
		width: min(calc(100% - 4rem), var(--container-default));
	}

	.preview-about h2 {
		max-width: 16rem;
		font-size: clamp(2.1rem, 9vw, 2.8rem);
		line-height: 1.05;
	}

	.preview-footer .site-footer__inner {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 767px) {
	.preview-price__cards {
		grid-template-columns: 1fr;
		gap: 1rem;
		margin-top: 2.4rem;
		--price-icon-column: 5.1rem;
		--price-column-gap: 1rem;
	}

	.preview-price-card,
	.preview-price-card--best {
		--price-card-padding-x: 1.15rem;
		--price-card-padding-bottom: 1.2rem;
		width: min(100%, 42rem);
		margin-inline: auto;
		min-height: 12.3rem;
		padding: 0;
		display: flex;
		flex-direction: column;
		gap: 0;
		align-items: stretch;
		text-align: left;
		background: rgba(255, 255, 255, 0.9);
		border: 0;
		box-shadow: 0 16px 38px rgba(63, 59, 54, 0.07);
	}

	.preview-price-card__badge {
		display: none;
	}

	.preview-price-card__icon {
		grid-column: 1;
		grid-row: 1 / 4;
		width: 4.85rem;
		height: 4.85rem;
	}

	.preview-price-card__divider {
		grid-column: 2;
		grid-row: 1 / 4;
		width: 1px;
		height: calc(100% - 0.9rem);
		justify-self: center;
		align-self: center;
	}

	.preview-price-card h3 {
		grid-column: 3;
		grid-row: 1;
		align-self: end;
		font-size: clamp(1.9rem, 6.6vw, 2.45rem);
		line-height: 1.04;
	}

	.preview-price-card__amount {
		grid-column: 3;
		grid-row: 2;
		font-size: clamp(2.9rem, 9.5vw, 3.6rem);
		line-height: 0.96;
	}

	.preview-price-card__pill {
		grid-column: 3;
		grid-row: 3;
		padding: 0.34rem 1rem;
		font-size: 0.86rem;
		line-height: 1.35;
	}

	.preview-price-card__plant {
		display: none;
	}

	.preview-price-card__content {
		flex: 1 1 auto;
		display: grid;
		width: 100%;
		box-sizing: border-box;
		grid-template-columns: var(--price-icon-column) 1px minmax(0, 1fr);
		grid-template-rows: auto auto auto;
		column-gap: var(--price-column-gap);
		row-gap: 0.62rem;
		align-items: center;
		justify-items: start;
		padding: 1.2rem var(--price-card-padding-x) var(--price-card-padding-bottom);
	}

	.preview-price-card--best {
		overflow: hidden;
	}

	.preview-price-card--best .preview-price-card__footer {
		position: static;
		align-self: stretch;
		flex-shrink: 0;
		width: auto;
		max-width: none;
		margin: 0;
		inset: auto;
		transform: none;
		box-sizing: border-box;
		border-radius: 0;
		background: var(--color-primary);
		padding: 0.82rem 1rem;
	}

	.preview-price__note {
		grid-template-columns: auto minmax(0, 1fr) auto;
		justify-items: start;
		gap: 0.8rem;
		width: min(100%, 48rem);
		padding: 1.15rem 1.1rem;
		background: rgba(255, 255, 255, 0.72);
		box-shadow: 0 14px 34px rgba(63, 59, 54, 0.06);
	}

	.preview-price__note-content {
		align-self: center;
	}

	.preview-price__note-cta {
		justify-self: end;
		min-height: 2.7rem;
		padding-block: 0.7rem;
		white-space: normal;
	}

	.preview-price-card:first-child {
		min-height: 12.3rem;
	}




























}

@media (min-width: 768px) and (max-width: 960px) and (min-height: 501px) {
	.preview-hero .hero__content {
		width: min(26rem, 100%);
		padding-block: clamp(2rem, 4vw, 2.5rem);
	}

	.preview-hero h1 {
		max-width: 24rem;
		font-size: clamp(2.72rem, 4.8vw, 2.9rem);
		text-wrap: balance;
	}

	.preview-hero .hero__text {
		max-width: 25rem;
		text-wrap: pretty;
	}

	.preview-about h2 {
		max-width: none;
	}
}

@media (min-width: 1000px) and (max-width: 1100px) and (pointer: coarse) {
	.preview-about__inner {
		--about-copy-offset: max(0rem, calc(8vw - var(--about-container-edge)));
	}
}

@media (max-width: 560px) {
	.preview-brand__mark {
		width: 2rem;
		height: 2rem;
	}

	.preview-brand__name {
		font-size: 0.78rem;
	}

	.preview-hero h1 {
		font-size: clamp(2.85rem, 12vw, 3.25rem);
		line-height: 0.98;
		letter-spacing: -0.025em;
		margin-bottom: 1.15rem;
	}

	.preview-hero-media {
		width: 100%;
	}

	.preview-hero-media img {
		width: 100%;
		height: auto;
	}

	.preview-hero .button {
		width: 100%;
		min-height: 3rem;
	}

	.preview-hero .hero__text {
		margin-bottom: 0;
	}

	.preview-hero .hero__actions {
		margin-top: 1.6rem;
	}

	.preview-section-heading h2 {
		max-width: 13rem;
		font-size: clamp(2.1rem, 9vw, 2.8rem);
		line-height: 1.05;
	}

	.preview-benefits__grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0;
		align-items: stretch;
	}

	.preview-benefit {
		display: flex;
		min-width: 0;
		min-height: 100%;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		padding: 1.7rem 0.82rem 1.85rem;
		text-align: center;
		border-right: 1px solid rgba(63, 59, 54, 0.08);
		border-bottom: 1px solid rgba(63, 59, 54, 0.08);
	}

	.preview-benefit:nth-child(2n) {
		border-right: 0;
	}

	.preview-benefit:nth-last-child(-n + 2) {
		border-bottom: 0;
	}

	.preview-benefit__icon {
		width: 1.85rem;
		height: 1.85rem;
		margin-bottom: 0.75rem;
	}

	.preview-benefit h2 {
		margin-bottom: 0.5rem;
		font-size: 0.64rem;
		line-height: 1.3;
		letter-spacing: 0.1em;
	}

	.preview-benefit p {
		max-width: none;
		font-size: 0.69rem;
		line-height: 1.42;
	}

	.preview-feelings__grid {
		grid-template-columns: 1fr;
	}

	.preview-about {
		padding-block: 4rem;
	}

	.preview-about__inner {
		width: min(calc(100% - 2rem), var(--container-default));
	}

	.preview-about__media {
		aspect-ratio: 4 / 3;
	}

	.preview-about__content {
		padding: 2.25rem 1.35rem 2.5rem;
	}

	.preview-about__eyebrow {
		margin-bottom: 1.15rem;
	}

	.preview-about__text {
		margin-top: 1.5rem;
		font-size: 0.96rem;
		line-height: 1.72;
	}

	.preview-about__button {
		width: 100%;
		min-height: 3rem;
	}

	.preview-about__plant,
	.preview-about__botanical {
		display: none;
	}

	.preview-about__candle {
		right: 0.9rem;
		bottom: 0.9rem;
		width: 5.8rem;
		opacity: 0.32;
	}

	.preview-price {
		padding-block: 4rem;
	}

	.preview-price .ym-container {
		width: min(calc(100% - 2rem), var(--container-default));
	}

	.preview-price__heading {
		max-width: 24rem;
	}

	.preview-price__heading-line {
		margin: 1rem auto 1.15rem;
	}

	.preview-price__heading h2 {
		max-width: 20rem;
		font-size: clamp(2.45rem, 10vw, 3.35rem);
		line-height: 0.95;
		letter-spacing: -0.01em;
	}

	.preview-price__intro {
		max-width: 24rem;
		font-size: clamp(1.02rem, 4vw, 1.22rem);
		line-height: 1.55;
	}

	.preview-price__intro br {
		display: none;
	}

	.preview-price__note {
		display: grid;
		grid-template-columns: auto 1fr;
		align-items: center;
		justify-items: start;
		gap: 1rem;
		padding: 1.35rem;
		text-align: left;
	}

	.preview-price__note-content {
		text-align: left;
	}

	.preview-price__note-cta {
		grid-column: 1 / -1;
		width: 100%;
		justify-self: stretch;
	}

	.preview-schedule {
		padding-block: 4rem;
	}

	.preview-schedule__heading h2 {
		max-width: 13rem;
		font-size: clamp(2.1rem, 9vw, 2.8rem);
		line-height: 1.05;
	}




















	.preview-schedule__note {
		grid-template-columns: 1fr;
		justify-items: center;
		gap: 0.85rem;
		padding: 1.35rem;
		text-align: center;
	}

	.preview-schedule__note-icon {
		width: 4rem;
		height: 4rem;
	}

	.preview-schedule__sms,
	.preview-schedule__phone {
		justify-self: center;
	}
}

@media (max-width: 767px) {
	.preview-header {
		padding-top: var(--safe-area-top);
	}

	.preview-header .site-header__inner {
		width: min(calc(100% - 2rem), var(--container-wide));
		min-height: 5rem;
	}

	.preview-header .site-navigation,
	.preview-header .site-header__cta {
		display: none;
	}

	.preview-header__mobile-actions {
		display: flex;
		align-items: center;
		gap: 0.5rem;
		margin-left: auto;
	}

	.preview-header .preview-brand {
		align-items: center;
		flex: 1 1 auto;
		min-width: 0;
		gap: 0.55rem;
	}

	.preview-header .preview-brand__copy {
		display: flex;
		flex-direction: column;
		min-width: 0;
	}

	.preview-header .preview-brand__mark {
		width: 2.45rem;
		height: 2.45rem;
		flex: 0 0 auto;
		overflow: visible;
	}

	.preview-header .preview-brand__name {
		font-size: 0.8rem;
		position: relative;
	    top: 4px;
	}

	.preview-header .preview-brand__rotator {
		position: relative;
		display: block;
		width: auto;
		margin-top: 2px;
		min-height: 2.45em;
		font-size: 0.55rem;
		line-height: 1.25;
		overflow: hidden;
		contain: layout paint;
	}

	.preview-header .preview-brand__rotator > span {
		position: absolute;
		inset-inline: 0;
		top: 0;
		display: flex;
		align-items: center;
		width: 100%;
		min-height: inherit;
		margin-top: 0;
		opacity: 0;
		clip-path: inset(0 0 0 100%);
		transform: translateX(0.35rem);
		transition: clip-path 1400ms cubic-bezier(0.4, 0, 0.2, 1), opacity 1400ms ease, transform 1400ms cubic-bezier(0.4, 0, 0.2, 1);
		will-change: clip-path, opacity, transform;
		white-space: normal;
		line-height: inherit;
	}

	.preview-header .preview-brand__place {
		font-size: inherit;
	}

	.preview-header .preview-brand__subtitle {
		display: block;
		font-family: var(--font-body);
		font-size: inherit;
		font-weight: 500;
		letter-spacing: 0.18em;
		line-height: inherit;
	}

	.preview-header .preview-brand__rotator > span.is-active {
		opacity: 1;
		clip-path: inset(0 0 0 0);
		transform: translateX(0);
		z-index: 1;
	}

	.preview-header .preview-brand__rotator > span.is-exiting {
		opacity: 0;
		clip-path: inset(0 0 0 100%);
		transform: translateX(-0.35rem);
		z-index: 0;
		pointer-events: none;
	}

	.preview-header .preview-brand__rotator.is-static-subtitle .preview-brand__place {
		opacity: 0;
		clip-path: inset(0 0 0 100%);
		transform: translateX(-0.35rem);
		pointer-events: none;
	}

	.preview-header .preview-brand__rotator.is-static-subtitle .preview-brand__subtitle {
		opacity: 1;
		clip-path: inset(0 0 0 0);
		transform: translateX(0);
		z-index: 1;
	}

	.preview-hero {
		display: flex;
		flex-direction: column;
		overflow-x: clip;
		padding: 3rem 0 0;
		min-height: min(calc(100vh - 5rem - var(--safe-area-top)), 48rem);
	}

	@supports (height: 100svh) {
		.preview-hero {
			min-height: min(calc(100svh - 5rem - var(--safe-area-top)), 48rem);
		}
	}

	.preview-hero .hero__inner {
		display: flex;
		flex: 1 1 auto;
		flex-direction: column;
		min-height: 0;
		gap: 0.5rem;
	}

	.preview-hero .hero__content {
		flex: 0 0 auto;
	}

	.preview-hero-media {
		display: block;
		width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		border: 0;
		border-radius: 0;
		box-shadow: none;
		overflow: hidden;
		aspect-ratio: 3 / 2;
		flex: 1 1 auto;
		min-height: calc(100vw * 2 / 3);
		max-height: 26rem;
	}

	.preview-hero-media picture {
		display: block;
		width: 100%;
		height: 100%;
	}

	.preview-hero-media img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center;
	}

	.preview-mobile-account {
		display: grid;
		place-items: center;
		width: 2.75rem;
		height: 2.75rem;
		padding: 0;
		border: 1px solid rgba(63, 59, 54, 0.16);
		border-radius: 999px;
		background: var(--color-white);
		appearance: none;
		color: var(--color-text);
		flex: 0 0 auto;
	}

	.preview-mobile-account__avatar {
		display: grid;
		place-items: center;
		width: 1.2rem;
		height: 1.2rem;
	}

	.preview-mobile-account__avatar svg {
		width: 100%;
		height: 100%;
		fill: none;
		stroke: currentColor;
		stroke-width: 1.5;
		stroke-linecap: round;
		stroke-linejoin: round;
	}

	.preview-mobile-menu-toggle {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 2.75rem;
		height: 2.75rem;
		min-width: 2.75rem;
		min-height: 2.75rem;
		padding: 0;
		border: 1px solid rgba(63, 59, 54, 0.16);
		border-radius: 999px;
		background: var(--color-white);
		appearance: none;
		color: var(--color-text);
		flex: 0 0 auto;
	}

	.preview-mobile-menu-toggle .site-header__toggle-icon,
	.preview-mobile-menu-toggle .site-header__toggle-icon::before,
	.preview-mobile-menu-toggle .site-header__toggle-icon::after {
		display: block;
		width: 1.25rem;
		height: 1px;
		margin-inline: auto;
		background: currentColor;
		content: "";
		transition: transform 220ms ease, opacity 220ms ease;
	}

	.preview-mobile-menu-toggle .site-header__toggle-icon {
		position: relative;
		background: currentColor;
	}

	.preview-mobile-menu-toggle .site-header__toggle-icon::before,
	.preview-mobile-menu-toggle .site-header__toggle-icon::after {
		position: absolute;
		left: 0;
		width: 100%;
	}

	.preview-mobile-menu-toggle .site-header__toggle-icon::before {
		top: -0.375rem;
	}

	.preview-mobile-menu-toggle .site-header__toggle-icon::after {
		top: 0.375rem;
	}

	.preview-mobile-menu-toggle[aria-expanded="true"] .site-header__toggle-icon {
		background: transparent;
	}

	.preview-mobile-menu-toggle[aria-expanded="true"] .site-header__toggle-icon::before {
		transform: rotate(45deg);
	}

	.preview-mobile-menu-toggle[aria-expanded="true"] .site-header__toggle-icon::after {
		transform: rotate(-45deg);
	}

	.preview-mobile-menu__overlay {
		position: fixed;
		inset: 0;
		z-index: 110;
		display: block;
		background: rgba(38, 35, 31, 0.56);
		opacity: 0;
		pointer-events: none;
		transition: opacity 350ms ease;
	}

	.preview-mobile-menu {
		position: fixed;
		top: 0;
		right: 0;
		z-index: 120;
		display: block;
		width: min(92vw, 380px);
		height: 100vh;
		height: 100dvh;
		transform: translateX(102%);
		pointer-events: none;
		transition: transform 350ms ease;
	}

	.preview-mobile-menu.is-open {
		transform: translateX(0);
		pointer-events: auto;
	}

	.preview-mobile-menu__overlay.is-open {
		opacity: 1;
		pointer-events: auto;
	}

	.preview-mobile-menu__panel {
		display: flex;
		flex-direction: column;
		height: 100%;
		padding: max(1.1rem, env(safe-area-inset-top)) 1.15rem max(0.75rem, env(safe-area-inset-bottom)) 1.35rem;
		background: var(--color-background);
		box-shadow: -18px 0 50px rgba(63, 59, 54, 0.18);
		overflow-y: auto;
	}

	.preview-mobile-menu__top {
		display: flex;
		align-items: flex-start;
		justify-content: space-between;
		gap: 1rem;
	}

	.preview-mobile-menu__brand {
		display: inline-flex;
		align-items: center;
		gap: 0.75rem;
		min-width: 0;
		color: var(--color-text);
		text-decoration: none;
	}

	.preview-mobile-menu__brand-mark {
		display: grid;
		width: 2.15rem;
		height: 2.15rem;
		flex: 0 0 auto;
		overflow: visible;
		place-items: center;
		background-color: var(--color-primary);
		-webkit-mask: url("../icons/lotus.svg") center / contain no-repeat;
		mask: url("../icons/lotus.svg") center / contain no-repeat;
	}

	.preview-mobile-menu__brand-copy {
		display: grid;
		min-width: 0;
		gap: 0.16rem;
	}

	.preview-mobile-menu__brand-name {
		font-family: var(--font-body);
		font-size: 0.8rem;
		font-weight: 600;
		letter-spacing: 0.16em;
		line-height: 1.2;
		text-transform: uppercase;
	}

	.preview-mobile-menu__brand-subtitle {
		font-size: 0.54rem;
		font-weight: 500;
		letter-spacing: 0.2em;
		line-height: 1.25;
		text-transform: uppercase;
		color: rgba(63, 59, 54, 0.72);
	}

	.preview-mobile-menu__close {
		display: grid;
		place-items: center;
		width: 2.75rem;
		height: 2.75rem;
		padding: 0;
		border: 0;
		background: transparent;
		appearance: none;
		color: var(--color-text);
		font-size: 2.4rem;
		line-height: 1;
	}

	.preview-mobile-menu__nav {
		margin-top: 1.35rem;
	}

	.preview-mobile-menu__list {
		padding: 0;
		margin: 0;
		list-style: none;
		border-top: 1px solid rgba(63, 59, 54, 0.09);
	}

	.preview-mobile-menu__list li {
		border-bottom: 1px solid rgba(63, 59, 54, 0.09);
	}

	.preview-mobile-menu__link {
		display: block;
		padding: 1rem 0 0.95rem;
		color: var(--color-text);
		font-family: var(--font-heading);
		font-size: clamp(1.35rem, 5.8vw, 1.5rem);
		line-height: 1.05;
		text-decoration: none;
	}

	.preview-mobile-menu__link.is-active {
		color: var(--color-primary);
	}

	.preview-mobile-menu__booking {
		width: 100%;
		min-height: 3.35rem;
		margin-top: 1.8rem;
		background: var(--color-primary);
		border-color: var(--color-primary);
		color: var(--color-white);
		font-size: 0.76rem;
		letter-spacing: 0.18em;
	}

	.preview-mobile-menu__booking:hover {
		background: var(--color-primary);
		border-color: var(--color-primary);
		color: var(--color-white);
	}

	.preview-mobile-menu__footer {
		margin-top: auto;
		padding-top: 1.35rem;
		border-top: 1px solid rgba(63, 59, 54, 0.09);
	}

	.preview-mobile-menu__account {
		display: grid;
		grid-template-columns: auto minmax(0, 1fr);
		align-items: center;
		gap: 1rem;
		width: 100%;
		padding: 0;
		border: 0;
		background: transparent;
		appearance: none;
		color: var(--color-text);
		text-align: left;
		text-decoration: none;
	}

	.preview-mobile-menu__account-avatar {
		display: grid;
		place-items: center;
		width: 3.25rem;
		height: 3.25rem;
		border: 1px solid rgba(63, 59, 54, 0.24);
		border-radius: 50%;
		background: transparent;
		color: var(--color-text);
	}

	.preview-mobile-menu__account-avatar svg {
		width: 1.35rem;
		height: 1.35rem;
		fill: none;
		stroke: currentColor;
		stroke-width: 1.5;
		stroke-linecap: round;
		stroke-linejoin: round;
	}

	.preview-mobile-menu__account-copy {
		display: grid;
		gap: 0.3rem;
		min-width: 0;
	}

	.preview-mobile-menu__account-title {
		font-family: var(--font-heading);
		font-size: 1.25rem;
		line-height: 1;
	}

	.preview-mobile-menu__account-text {
		font-size: 0.78rem;
		line-height: 1.45;
		color: rgba(63, 59, 54, 0.8);
	}

	.preview-mobile-menu__close:focus-visible,
	.preview-mobile-account:focus-visible,
	.preview-mobile-menu__link:focus-visible,
	.preview-mobile-menu__booking:focus-visible,
	.preview-mobile-menu__account:focus-visible,
	.preview-mobile-menu__brand:focus-visible {
		outline: 2px solid var(--color-primary);
		outline-offset: 3px;
	}
}

@media (max-width: 600px) {
	.preview-price__decor {
		width: 6.3rem;
		left: -0.7rem;
		bottom: -0.35rem;
	}

	.preview-price__decor img {
		opacity: 0.48;
	}
}

@media (max-width: 374px) {
	.preview-header .site-header__inner {
		gap: 0.5rem;
	}

	.preview-header .preview-brand__copy {
		flex: 1 1 0%;
	}

	.preview-header .preview-brand__name {
		white-space: nowrap;
	}

	.preview-header .preview-brand__rotator {
		width: 100%;
		max-width: 100%;
	}

	.preview-header .preview-brand__rotator > span {
		white-space: nowrap;
	}
}

@media (max-width: 359px) {
	.preview-header .preview-brand__name {
		font-size: clamp(0.74rem, calc(2.46vw + 4px), 0.8rem);
		letter-spacing: clamp(0.04em, calc(3.8vw - 11.6px), 0.16em);
	}

	.preview-header .preview-brand__rotator {
		font-size: clamp(0.52rem, calc(1.23vw + 0.274rem), 0.55rem);
	}

	.preview-header .preview-brand__rotator > span {
		letter-spacing: clamp(0.04em, calc(2.7vw - 8.32px), 0.16em);
	}
}

@media (max-width: 340px) {
	.preview-benefit {
		padding: 1.2rem 0.55rem 1.35rem;
	}

	.preview-benefit__icon {
		width: 1.65rem;
		height: 1.65rem;
		margin-bottom: 0.62rem;
	}

	.preview-benefit h2 {
		font-size: 0.64rem;
		line-height: 1.3;
		letter-spacing: 0.1em;
	}

	.preview-benefit p {
		font-size: 0.69rem;
		line-height: 1.42;
	}
}

@media (min-width: 381px) and (max-width: 560px) {
	.preview-benefit h2 {
		white-space: nowrap;
	}
}

@media (max-width: 560px) {
	.preview-benefit h2 {
		font-size: 0.75rem;
		line-height: 1.3;
		letter-spacing: 0.08em;
	}

	.preview-benefit p {
		font-size: 0.8125rem;
		line-height: 1.45;
	}
}

@media (min-width: 375px) and (max-width: 380px) {
	.preview-benefit h2 {
		letter-spacing: 0.06em;
		white-space: nowrap;
	}
}

@media (max-width: 374px) {
	.preview-benefit h2 {
		white-space: normal;
	}
}

@media (max-width: 420px) {
	.preview-price__decor {
		display: none;
	}

	.preview-price__cards {
		gap: 0.86rem;
	}

	.preview-price-card,
	.preview-price-card--best {
		--price-card-padding-x: 0.95rem;
		--price-card-padding-bottom: 1.1rem;
		min-height: 12.7rem;
	}

	.preview-price-card__icon {
		width: 4.45rem;
		height: 4.45rem;
	}

	.preview-price-card h3 {
		font-size: clamp(1.78rem, 6.2vw, 2.1rem);
		line-height: 1.02;
	}

	.preview-price-card__amount {
		font-size: clamp(2.55rem, 9vw, 3.2rem);
	}

	.preview-price-card__pill {
		padding: 0.33rem 0.95rem;
		font-size: 0.82rem;
	}

	.preview-price__note {
		grid-template-columns: auto minmax(0, 1fr);
		gap: 0.7rem;
		padding: 1rem 0.95rem;
	}

	.preview-price__note-cta {
		grid-column: 1 / -1;
		width: 100%;
		justify-self: stretch;
		min-height: 2.55rem;
		padding-block: 0.68rem;
	}

	.preview-price-card__content {
		row-gap: 0.55rem;
		padding-top: 1.1rem;
		padding-bottom: var(--price-card-padding-bottom);
	}

	.preview-price-card--best .preview-price-card__footer {
		padding-top: 0.82rem;
		padding-bottom: 0.82rem;
	}
}

@media (min-width: 391px) and (max-width: 430px) {
	.preview-price__decor {
		display: block;
		width: 6.8rem;
		left: -0.95rem;
		bottom: -0.55rem;
	}

	.preview-price__decor img {
		opacity: 0.5;
	}
}

@media (max-width: 767px) {
	.preview-benefits__grid {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 0;
		align-items: stretch;
	}

	.preview-benefit {
		min-width: 0;
		width: auto;
	}

	.preview-feelings {
		overflow-x: hidden;
	}

	.preview-testimonials {
		overflow-x: hidden;
	}

	.preview-feelings__grid {
		display: flex;
		width: 100vw;
		margin-left: calc(50% - 50vw);
		gap: 1rem;
		padding-inline: 1.5rem;
		padding-bottom: 1rem;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 1.5rem;
		overscroll-behavior-inline: contain;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		box-sizing: border-box;
	}

	.preview-feelings__grid::-webkit-scrollbar {
		display: none;
	}

	.preview-feelings__grid {
		transform: none;
		opacity: 1;
		transition: transform 700ms ease, opacity 700ms ease;
	}

	.preview-feelings__grid.reveal-pending {
		transform: translateY(10px) !important;
		opacity: 0 !important;
	}

	.preview-feelings__grid.is-in-view {
		transform: translateY(0);
		opacity: 1;
	}

	.preview-feelings__grid {
		align-items: stretch;
	}

	.preview-feeling-card {
		flex: 0 0 84vw;
		max-width: 340px;
		scroll-snap-align: start;
		scroll-snap-stop: always;
		height: auto;
	}

	.preview-feeling-card__content {
		flex: 1;
	}

	.preview-feelings .preview-section-heading h2 {
		max-width: 13rem;
		font-size: clamp(2.1rem, 9vw, 2.8rem);
		line-height: 1.05;
	}

	.preview-feelings__pagination {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.55rem;
		padding-top: 0.15rem;
	}

	.preview-feelings__dot {
		width: 0.55rem;
		height: 0.55rem;
		padding: 0;
		border: 0;
		border-radius: 999px;
		background: rgba(63, 59, 54, 0.18);
		appearance: none;
		transition: transform 180ms ease, background-color 180ms ease, width 180ms ease;
	}

	.preview-feelings__dot.is-active {
		width: 1.3rem;
		background: var(--color-primary);
	}

	.preview-feelings__dot:focus-visible {
		outline: 2px solid var(--color-primary);
		outline-offset: 4px;
	}

	.preview-testimonials__grid {
		display: flex;
		width: 100vw;
		margin-left: calc(50% - 50vw);
		gap: 1rem;
		padding-inline: 1.5rem;
		padding-bottom: 1rem;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-inline: 1.5rem;
		overscroll-behavior-inline: contain;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		box-sizing: border-box;
	}

	.preview-testimonials__grid::-webkit-scrollbar {
		display: none;
	}

	.preview-testimonial {
		flex: 0 0 84vw;
		max-width: 340px;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}

	.preview-testimonials__heading h2 {
		max-width: 18rem;
		font-size: clamp(2.1rem, 9vw, 2.8rem);
		line-height: 1.05;
	}

	.preview-testimonials__pagination {
		padding-top: 0.15rem;
	}
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
	.preview-feelings__grid {
		transform: none;
		opacity: 1;
		transition: none;
	}

}

@media (max-width: 767px) {
	.preview-about {
		position: relative;
		overflow: hidden;
	}

	.preview-about__inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		width: 100%;
		max-width: none;
		min-height: 0;
		margin-inline: 0;
		position: static;
	}

	.preview-about__inner::after {
		content: none;
	}

	.preview-about__content,
	.preview-about__copy {
		display: contents;
	}

	.preview-about__media,
	.preview-about__eyebrow,
	.preview-about h2,
	.preview-about__text,
	.preview-about__button {
		position: relative;
		z-index: 1;
	}

	.preview-about__eyebrow {
		grid-row: 1;
		margin: 0 0 0.9rem;
		padding-inline: 1.5rem;
	}

	.preview-about h2 {
		grid-row: 2;
		max-width: none;
		margin: 0;
		padding-inline: 1.5rem;
		line-height: 1.05;
	}

	.preview-about h2 span {
		white-space: nowrap;
	}

	.preview-about__media {
		grid-row: 3;
		width: 100vw;
		margin: 1.4rem calc(50% - 50vw) 1.45rem;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		overflow: hidden;
		aspect-ratio: 4 / 3;
		background: transparent;
	}

	.preview-about__media img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: 50% 34%;
		border-radius: 0;
	}

	.preview-about__text {
		grid-row: 4;
		max-width: none;
		margin-top: 0;
		padding-inline: 1.5rem;
		font-size: 0.96rem;
		line-height: 1.72;
	}

	.preview-about__text p + p {
		margin-top: 1rem;
	}

	.preview-about__button {
		grid-row: 5;
		display: inline-flex;
		align-items: center;
		justify-content: flex-start;
		width: fit-content;
		min-height: 2.75rem;
		margin: 1.35rem 0 0;
		padding: 0 1.5rem;
		background: none;
		border: 0;
		border-radius: 0;
		color: var(--color-primary);
		font-size: 0.78rem;
		letter-spacing: 0.08em;
		line-height: 1.2;
		text-decoration: underline;
		text-decoration-thickness: 1px;
		text-underline-offset: 0.24em;
		text-transform: none;
	}

	.preview-about__button:hover {
		background: none;
		color: color-mix(in srgb, var(--color-primary) 84%, var(--color-text));
	}

	.preview-about__button:focus-visible {
		outline: 2px solid var(--color-primary);
		outline-offset: 4px;
	}

	.preview-about__plant {
		display: none;
	}

	.preview-about__botanical {
		display: block;
		position: absolute;
		top: auto;
		right: 0;
		bottom: 0;
		left: auto;
		z-index: 0;
		width: clamp(9rem, 42vw, 12rem);
		max-width: none;
		opacity: 0.22;
		pointer-events: none;
	}

	.preview-about__candle {
		display: none;
	}
}

@media (max-width: 767px) and (orientation: portrait) {
	.preview-hero {
		padding-top: 1.25rem;
		background-image: none;
	}

	.preview-hero .hero__content {
		padding-block: 1.5rem 1rem;
	}
}

@media (orientation: landscape) and (max-width: 900px) and (max-height: 500px) and (pointer: coarse) {
	.preview-about {
		padding-block: 0;
	}

	.preview-about__inner {
		grid-template-columns: minmax(0, 35fr) minmax(0, 65fr);
		width: 100%;
		max-width: none;
		min-height: 0;
	}

	.preview-about__media {
		grid-column: 1;
		align-self: stretch;
		min-height: 100%;
		aspect-ratio: 3 / 4;
	}

	.preview-about__media img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: 50% 34%;
	}

	.preview-about__content {
		grid-column: 2;
		min-width: 0;
		padding: clamp(1.25rem, 4vh, 2rem) clamp(1rem, 3vw, 1.75rem);
		overflow: visible;
	}

	.preview-about__copy {
		width: 100%;
	}

	.preview-about__eyebrow {
		margin-bottom: 0.65rem;
		font-size: 0.72rem;
	}

	.preview-about h2 {
		font-size: clamp(1.65rem, 4.2vw, 2.2rem);
		line-height: 1.02;
	}

	.preview-about h2 span {
		white-space: normal;
	}

	.preview-about__text {
		margin-top: 0.8rem;
		font-size: clamp(0.78rem, 1.8vw, 0.9rem);
		line-height: 1.5;
	}

	.preview-about__text p + p {
		margin-top: 0.55rem;
	}

	.preview-about__button {
		min-height: 2.5rem;
		margin-top: 0.8rem;
		padding-inline: 1rem;
		font-size: 0.65rem;
	}

	.preview-about__plant,
	.preview-about__botanical,
	.preview-about__candle {
		display: none;
	}

	.preview-about__inner::after {
		content: none;
	}
}

@media (orientation: landscape) and (max-width: 767px) and (max-height: 500px) and (pointer: coarse) {
	.preview-hero {
		display: block;
		min-height: clamp(22rem, 82vh, 27rem);
		padding: 0;
		background-color: var(--preview-hero-bg);
		background-image: url("../images/hero/homepage-hero.webp");
		background-position: right center;
		background-size: cover;
		background-repeat: no-repeat;
	}

	.preview-hero .hero__inner {
		position: relative;
		inset: auto;
		width: min(calc(100% - 2rem), var(--container-wide));
		min-height: inherit;
		margin-inline: auto;
		align-items: flex-start;
		justify-content: center;
	}

	.preview-hero .hero__content {
		width: min(22rem, 72%);
		padding-block: 1.25rem;
	}

	.preview-hero h1 {
		max-width: 21rem;
		margin-bottom: 0.8rem;
		font-size: clamp(1.75rem, 4.4vw, 2.25rem);
		line-height: 1.02;
	}

	.preview-hero .hero__text {
		max-width: 22rem;
		font-size: clamp(0.82rem, 1.8vw, 0.95rem);
		line-height: 1.48;
	}

	.preview-hero .hero__actions {
		gap: 0.65rem;
		margin-top: 0.95rem;
	}

	.preview-hero .button {
		width: auto;
		min-height: 2.5rem;
		padding: 0.65rem 1rem;
		font-size: 0.64rem;
	}

	.preview-hero .preview-text-link {
		margin-top: 0.7rem;
		font-size: 0.78rem;
	}

	.preview-hero-media {
		display: none;
	}

	.preview-about__inner {
		grid-template-columns: minmax(0, 35fr) minmax(0, 65fr);
		column-gap: 0.85rem;
		width: 100%;
	}

	.preview-about__media {
		grid-column: 1;
		grid-row: auto;
		width: 100%;
		min-height: 0;
		margin: 0;
		align-self: start;
		aspect-ratio: 3 / 4;
	}

	.preview-about__content,
	.preview-about__copy {
		display: block;
		grid-column: 2;
		grid-row: auto;
		width: 100%;
		min-width: 0;
	}

	.preview-about__content {
		box-sizing: border-box;
		padding: 1.1rem 0.85rem 1.25rem 0;
		overflow: visible;
	}

	.preview-about__eyebrow {
		margin-bottom: 0.55rem;
		padding: 0;
		font-size: 0.64rem;
	}

	.preview-about h2 {
		max-width: none;
		padding: 0;
		font-size: clamp(1.45rem, 3.8vw, 1.8rem);
		line-height: 1.04;
	}

	.preview-about__text {
		max-width: none;
		margin-top: 0.7rem;
		padding: 0;
		font-size: clamp(0.76rem, 1.7vw, 0.86rem);
		line-height: 1.5;
	}

	.preview-about__text p + p {
		margin-top: 0.55rem;
	}

	.preview-about__button {
		grid-row: auto;
		min-height: 2.3rem;
		margin-top: 0.65rem;
		padding-inline: 0.85rem;
		font-size: 0.62rem;
	}
}


.registration-preview-page {
	min-width: 0;
	background:
		radial-gradient(circle at 50% 8rem, rgba(255, 255, 255, 0.76), transparent 30rem),
		var(--section-neutral);
	overflow-x: hidden;
}

.registration-header {
	position: sticky;
	background: #ffffff;
	border-bottom: 1px solid rgba(63, 59, 54, 0.05);
	box-shadow: 0 1px 0 rgba(63, 59, 54, 0.03);
}

.registration-header .registration-header__inner {
	width: min(calc(100% - 2rem), var(--container-wide));
	min-height: 5rem;
	justify-content: space-between;
}

.registration-back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.35rem;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0 0.75rem 0 0.45rem;
	border: 1px solid rgba(63, 59, 54, 0.12);
	border-radius: 999px;
	background: var(--color-white);
	color: rgba(63, 59, 54, 0.78);
	cursor: pointer;
	font-size: 0.88rem;
	font-weight: 600;
	line-height: 1;
	appearance: none;
	transition:
		border-color 180ms ease,
		color 180ms ease,
		background-color 180ms ease;
}

.registration-back:hover {
	border-color: rgba(140, 148, 115, 0.42);
	color: var(--color-primary);
}

.registration-back:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 4px;
}

.registration-back__icon {
	width: 1.35rem;
	height: 1.35rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.registration-header__brand {
	display: inline-flex;
	align-items: center;
	gap: 0.55rem;
	min-width: 0;
	color: var(--color-text);
	font-family: var(--font-heading);
	font-size: clamp(1.14rem, 5vw, 1.42rem);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
}

.registration-header__brand-mark {
	display: block;
	width: 1.65rem;
	height: 1.65rem;
	flex: 0 0 auto;
	overflow: visible;
	background-color: var(--color-primary);
	-webkit-mask: url("../icons/lotus.svg") center / contain no-repeat;
	mask: url("../icons/lotus.svg") center / contain no-repeat;
}

.registration-header__brand:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 4px;
}

.registration-main {
	padding-bottom: clamp(2.5rem, 6vw, 5rem);
}

.registration-hero {
	padding: clamp(4.3rem, 10vw, 5.6rem) 1rem 2.35rem;
	text-align: center;
}

.registration-hero__inner {
	width: min(100%, 39rem);
	margin-inline: auto;
}

.registration-hero h1 {
	margin: 0 0 1.25rem;
	font-family: var(--font-heading);
	font-size: clamp(2.5rem, 12vw, 2.8rem);
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.02;
}

.registration-hero p {
	max-width: 37rem;
	margin: 0 auto;
	color: rgba(63, 59, 54, 0.72);
	font-family: var(--font-body);
	font-size: clamp(1rem, 4.4vw, 1.08rem);
	line-height: 1.65;
}

.registration-section {
	padding: 0 1rem;
}

.registration-form {
	position: relative;
	isolation: isolate;
	width: min(calc(100vw - 2rem), 40rem);
	margin-inline: auto;
	padding: 1.5rem;
	overflow: hidden;
	background: rgba(255, 255, 255, 0.78);
	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: var(--radius-large);
	box-shadow: 0 22px 68px rgba(63, 59, 54, 0.08);
}

.registration-form__content {
	position: relative;
	z-index: 1;
}

.registration-form__intro {
	margin-bottom: 1.55rem;
}

.registration-form__intro h2 {
	margin: 0;
	font-size: clamp(1.5rem, 3.5vw, 1.85rem);
}

.registration-form__intro p {
	margin: 0.55rem 0 0;
	color: rgba(63, 59, 54, 0.72);
	font-size: 0.98rem;
	line-height: 1.5;
}

.registration-form--registration-success .registration-form__intro {
	margin-bottom: 0;
}

.registration-form--registration-success .registration-form__intro h2 {
	font-size: clamp(1.25rem, 3vw, 1.55rem);
}

.registration-success__icon {
	display: block;
	width: 1.7rem;
	height: 1.7rem;
	margin-bottom: 0.8rem;
	background-color: var(--color-primary);
	-webkit-mask: url("../icons/mail.svg") center / contain no-repeat;
	mask: url("../icons/mail.svg") center / contain no-repeat;
	opacity: 0.78;
}

.registration-form--registration-success .registration-success__message {
	margin: 0.55rem 0 0;
	color: rgba(63, 59, 54, 0.78);
	font-size: 0.98rem;
	line-height: 1.5;
	max-width: 34rem;
}

.registration-success__heading {
	display: flex;
	align-items: center;
	gap: 0.8rem;
}

.registration-success__heading h2 {
	margin: 0;
}

.registration-success__heading .registration-success__icon {
	flex: 0 0 1.7rem;
	margin: 0;
}

.registration-success__important {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: 0.9rem;
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(140, 148, 115, 0.28);
}

.registration-success__important-icon,
.registration-success__secondary-icon {
	display: grid;
	place-items: center;
	color: var(--color-primary);
}

.registration-success__important-icon {
	width: 2rem;
	height: 2rem;
	margin-top: 0.05rem;
}

.registration-success__important-icon svg,
.registration-success__secondary-icon svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

.registration-success__instruction {
	margin: 0;
	color: rgba(63, 59, 54, 0.9);
	font-size: 1rem;
	line-height: 1.55;
}

.registration-success__instruction strong {
	font-weight: 650;
}

.registration-success__help {
	margin-top: 1rem;
	color: rgba(63, 59, 54, 0.72);
	font-size: 0.88rem;
}

.registration-success__secondary {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: start;
	gap: 0.85rem;
	margin-top: 1.75rem;
	padding: 1rem 1.1rem;
	border-radius: 0.9rem;
	background: rgba(140, 148, 115, 0.065);
}

.registration-success__secondary-icon {
	width: 1.55rem;
	height: 1.55rem;
	margin-top: 0.05rem;
}

.registration-success__secondary .registration-success__help {
	margin: 0;
	color: rgba(63, 59, 54, 0.62);
	font-size: 0.86rem;
	line-height: 1.5;
}

.registration-success__secondary .registration-success__help + .registration-success__help {
	margin-top: 0.45rem;
}

@media (min-width: 768px) {
	.registration-form.registration-form--registration-success {
		width: min(100%, 44rem);
	}
}

.registration-main .registration-form.login-form h2 {
	font-size: clamp(1.25rem, 3vw, 1.55rem);
}

.registration-main .registration-form.login-form.registration-form--confirmation h2 {
	font-size: clamp(1.25rem, 3vw, 1.55rem);
}

.registration-form__decor {
	position: absolute;
	right: -4.5rem;
	bottom: -1.5rem;
	z-index: 0;
	width: 16.5rem;
	max-width: none;
	opacity: 0.06;
	pointer-events: none;
	user-select: none;
}

.registration-field {
	display: grid;
	gap: 0.55rem;
}

.registration-honeypot {
	position: absolute;
	left: -10000px;
	top: auto;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.registration-field + .registration-field,
.registration-consent {
	margin-top: 1.15rem;
}

.registration-label {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.3rem;
	width: fit-content;
	color: rgba(63, 59, 54, 0.9);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.35;
}

.registration-field__header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.registration-label__main {
	display: inline;
}

.registration-control__icon svg,
.registration-password-toggle svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.registration-control {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	min-height: 3.5rem;
	background: rgba(255, 255, 255, 0.76);
	border: 1px solid rgba(63, 59, 54, 0.18);
	border-radius: 0.85rem;
	transition:
		border-color 180ms ease,
		box-shadow 180ms ease,
		background-color 180ms ease;
}

.registration-control:focus-within {
	background: #ffffff;
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(140, 148, 115, 0.16);
}

.registration-field.is-invalid .registration-control,
.registration-consent.is-invalid input {
	border-color: #9d4d42;
	outline: 2px solid rgba(157, 77, 66, 0.62);
	outline-offset: 1px;
	box-shadow: 0 0 0 3px rgba(157, 77, 66, 0.14);
}

.registration-field.is-invalid .registration-label,
.registration-consent.is-invalid label {
	color: #7c392f;
}

.registration-control__icon {
	display: none;
}

.registration-control__icon svg {
	width: 1.45rem;
	height: 1.45rem;
	stroke-width: 1.85;
}

.registration-control input {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	min-height: 3.35rem;
	padding: 0.75rem 0.95rem;
	border: 0;
	background: transparent;
	color: var(--color-text);
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.35;
	outline: 0;
}

.registration-control input:-webkit-autofill,
.registration-control input:-webkit-autofill:hover,
.registration-control input:-webkit-autofill:focus,
.registration-control input:autofill {
	box-sizing: border-box;
	border-radius: inherit;
	-webkit-box-shadow: 0 0 0 1000px rgba(255, 255, 255, 0.76) inset;
	box-shadow: 0 0 0 1000px rgba(255, 255, 255, 0.76) inset;
	-webkit-text-fill-color: var(--color-text);
	caret-color: var(--color-text);
	font-family: var(--font-body);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.35;
}

.registration-control--password input {
	padding-right: 3.05rem;
}

.registration-control input::placeholder {
	color: rgba(63, 59, 54, 0.6);
	opacity: 1;
}

.registration-password-toggle {
	position: absolute;
	right: 0.3rem;
	top: 50%;
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	place-items: center;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: rgba(63, 59, 54, 0.8);
	cursor: pointer;
	appearance: none;
	transform: translateY(-50%);
}

.registration-password-toggle:hover {
	color: var(--color-primary);
}

.registration-password-toggle:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

.registration-password-toggle svg {
	width: 1.32rem;
	height: 1.32rem;
	stroke-width: 1.85;
}

.registration-help {
	margin: -0.05rem 0 0;
	color: rgba(63, 59, 54, 0.68);
	font-size: 0.84rem;
	line-height: 1.45;
}

.registration-help + .registration-field {
	margin-top: 1.15rem;
}

.registration-help--alias {
	margin-top: -0.12rem;
	color: rgba(63, 59, 54, 0.62);
	font-size: 0.8rem;
	line-height: 1.4;
}

.password-generate {
	display: inline-block;
	flex: 0 1 auto;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--color-primary);
	font: inherit;
	font-size: 0.84rem;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.password-generate__mobile {
	display: none;
}

.password-generate:hover,
.password-generate:focus-visible {
	color: var(--color-text);
}

.password-generate:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 3px;
}

.password-strength {
	display: grid;
	gap: 0.35rem;
	margin-top: 0.8rem;
	color: rgba(63, 59, 54, 0.68);
	font-size: 0.8rem;
	line-height: 1.35;
}

.password-strength__track {
	width: 100%;
	height: 0.25rem;
	overflow: hidden;
	border-radius: 999px;
	background: rgba(63, 59, 54, 0.12);
}

.password-strength__bar {
	display: block;
	height: 100%;
	border-radius: inherit;
	transition: width 160ms ease, background-color 160ms ease;
}

.password-strength[data-strength="weak"] .password-strength__bar {
	background: #a85c4d;
}

.password-strength[data-strength="medium"] .password-strength__bar {
	background: #b78345;
}

.password-strength[data-strength="strong"] .password-strength__bar {
	background: #657c55;
}

.registration-optional {
	color: rgba(63, 59, 54, 0.62);
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0;
	white-space: nowrap;
}

.registration-error {
	display: none;
	margin: -0.08rem 0 0;
	color: #7c392f;
	font-size: 0.84rem;
	font-weight: 500;
	line-height: 1.42;
}

.registration-error[hidden] {
	display: none !important;
}

.registration-error:not(:empty) {
	display: block;
}

.registration-error.registration-error--reserved {
	display: none;
}

.registration-error.registration-error--reserved.is-visible {
	display: block;
}

.registration-consent {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	align-items: flex-start;
}

.registration-consent input:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 4px;
}

.registration-consent label {
	display: block;
	flex: 1 1 0;
	min-width: 0;
	color: rgba(63, 59, 54, 0.9);
	font-size: 0.8rem;
	font-weight: 500;
	line-height: 1.4;
}

.registration-consent a,
.registration-login a,
.login-forgot {
	color: #687248;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.login-forgot,
.login-form .registration-login a {
	font-size: 0.98rem;
	font-weight: 600;
	line-height: 1.35;
}

.registration-consent a {
	text-underline-offset: 0.15em;
}

.registration-consent .registration-error {
	flex: 0 1 100%;
	width: 100%;
	box-sizing: border-box;
	margin: 0;
}

.registration-submit {
	width: 100%;
	min-height: 3.55rem;
	margin-top: 1.45rem;
	padding: 0.9rem 1.5rem;
	background: linear-gradient(90deg, #75805f, var(--color-primary), #6f7959);
	border-color: transparent;
	border-radius: 999px;
	color: var(--color-white);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	box-shadow: 0 14px 28px rgba(103, 112, 83, 0.2);
	transition:
		transform 180ms ease,
		box-shadow 180ms ease,
		filter 180ms ease;
}

.registration-submit:hover {
	background: linear-gradient(90deg, #6e7957, #828c6a, #66714f);
	color: var(--color-white);
	filter: saturate(1.02);
	box-shadow: 0 16px 34px rgba(103, 112, 83, 0.25);
}

.registration-submit:active {
	transform: translateY(1px);
	box-shadow: 0 10px 22px rgba(103, 112, 83, 0.2);
}

.registration-submit:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 4px;
}

.password-reset-submit:disabled,
.password-reset-submit:disabled:hover,
.password-reset-submit:disabled:active,
.registration-submit:disabled,
.registration-submit:disabled:hover,
.registration-submit:disabled:active,
.registration-submit.is-loading,
.registration-submit.is-loading:hover,
.registration-submit.is-loading:active {
	background: rgba(63, 59, 54, 0.16);
	border-color: transparent;
	color: rgba(63, 59, 54, 0.52);
	cursor: not-allowed;
	filter: none;
	box-shadow: none;
	transform: none;
}

.registration-status {
	min-height: 1.3rem;
	margin: 0.7rem 0 0;
	color: rgba(63, 59, 54, 0.68);
	font-size: 0.86rem;
	line-height: 1.45;
	text-align: center;
}

.registration-form > .registration-form__content > .registration-status--error:not(.login-alert) {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	width: 100%;
	min-height: 0;
	padding: 0.65rem 0.75rem;
	background: rgba(248, 232, 227, 0.72);
	border: 1px solid rgba(124, 57, 47, 0.2);
	border-radius: var(--radius-small);
	color: #6f342c;
	font-size: 0.86rem;
	line-height: 1.45;
}

.registration-form > .registration-form__content > .registration-status--error:not(.login-alert)::before {
	display: grid;
	flex: 0 0 1.05rem;
	width: 1.05rem;
	height: 1.05rem;
	margin-top: 0.05rem;
	place-items: center;
	border: 1px solid rgba(124, 57, 47, 0.48);
	border-radius: 50%;
	color: #8a493e;
	content: "!";
	font-size: 0.7rem;
	font-weight: 700;
	line-height: 1;
}

.registration-form > .registration-form__content > .registration-status--error:not(.login-alert) {
	margin: 0 0 1.15rem;
	text-align: left;
}

.login-alert {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	width: 100%;
	margin: 0 0 1.15rem;
	padding: 0.75rem;
	background: rgba(248, 232, 227, 0.72);
	border: 1px solid rgba(124, 57, 47, 0.2);
	border-radius: var(--radius-small);
	color: #6f342c;
	font-size: 0.86rem;
	line-height: 1.45;
	text-align: left;
}

.login-alert[hidden] {
	display: none !important;
}

.login-alert__icon {
	display: block;
	flex: 0 0 1.15rem;
	width: 1.15rem;
	height: 1.15rem;
	margin-top: 0.05rem;
	color: #8a493e;
}

.login-alert__icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.6;
}

.login-alert__text {
	min-width: 0;
}

.login-alert strong {
	font-weight: 700;
}

.login-turnstile {
	min-width: 0;
	margin-top: 1rem;
	text-align: left;
}

.registration-turnstile {
	margin-top: 1.35rem;
}

.login-turnstile__message {
	margin: 0 0 0.55rem;
	color: rgba(63, 59, 54, 0.72);
	font-size: 0.84rem;
	line-height: 1.45;
}

.login-turnstile .cf-turnstile {
	max-width: 100%;
	min-height: 3.5rem;
	overflow: hidden;
}

@media (min-width: 40rem) {
	.login-alert {
		gap: 0.7rem;
		margin-bottom: 1.3rem;
		padding: 0.85rem 0.9rem;
	}
}

.login-form .registration-submit {
	margin-top: 1.25rem;
}

.registration-submit.is-loading {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
}

.login-submit__spinner {
	display: inline-block;
	flex: 0 0 0.95rem;
	width: 0.95rem;
	height: 0.95rem;
	border: 2px solid rgba(255, 255, 255, 0.48);
	border-top-color: var(--color-white);
	border-radius: 50%;
	animation: login-submit-spin 720ms linear infinite;
}

@keyframes login-submit-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (prefers-reduced-motion: reduce) {
	.login-submit__spinner {
		animation: none;
	}
}

.registration-consent input {
	flex: 0 0 1.5rem;
	width: 1.5rem;
	height: 1.5rem;
	margin: 0;
	border: 1px solid rgba(63, 59, 54, 0.32);
	border-radius: 0.32rem;
	accent-color: var(--color-primary);
}

.login-forgot:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 4px;
}

.login-forgot {
	display: flex;
	width: fit-content;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	margin: 1rem auto 0;
	padding-inline: 0.35rem;
}

.login-form .registration-status:empty {
	min-height: 0;
	margin: 0;
}

.registration-login {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.35rem;
	align-items: center;
	margin-top: 1.35rem;
	text-align: center;
}

.registration-login__line {
	display: block;
	height: 1px;
	background: rgba(63, 59, 54, 0.28);
}

.registration-login p {
	margin: 0;
	color: rgba(63, 59, 54, 0.72);
	font-size: 0.98rem;
	line-height: 1.35;
}

.registration-login a {
	font-weight: 600;
}

.login-form .registration-login {
	display: flex;
	align-items: baseline;
	justify-content: center;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin-top: 1.6rem;
	padding: 0 0 0.75rem;
	border-top: 0;
	text-align: center;
}

.login-form .registration-login__line {
	display: none;
}

.login-form .registration-login p {
	margin: 0;
}

.login-form .registration-login a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2rem;
	margin-top: 0;
	padding-inline: 0.15rem;
}

@media (max-width: 767px) {
	.registration-hero {
		padding-top: 2.5rem;
		padding-bottom: 1.75rem;
	}

	.registration-hero h1 {
		font-size: clamp(2rem, 8.5vw, 2.35rem);
		line-height: 1.05;
		margin-bottom: 0.75rem;
	}

	.registration-hero p {
		margin-bottom: 0;
		line-height: 1.45;
	}

	.registration-form {
		margin-top: 0;
	}

	.password-generate__desktop {
		display: none;
	}

	.password-generate__mobile {
		display: inline;
	}

	.registration-consent {
		gap: 0.6rem;
		font-size: 0.8125rem;
		line-height: 1.4;
	}

	.registration-consent label {
		font-size: inherit;
		line-height: inherit;
	}

	.registration-login,
	.login-form .registration-login {
		display: flex;
		align-items: baseline;
		justify-content: center;
		flex-wrap: wrap;
		gap: 0.35rem;
		margin-top: 1.35rem;
		padding: 0 0 0.75rem;
		border-top: 0;
		text-align: center;
	}

	.registration-login__line,
	.login-form .registration-login__line {
		display: none;
	}

	.registration-login p,
	.login-form .registration-login p {
		margin: 0;
	}

	.registration-login a,
	.login-form .registration-login a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 2rem;
		margin-top: 0;
		padding-inline: 0.15rem;
	}

	.registration-login,
	.login-form .registration-login {
		gap: 0.35rem;
	}
}

@media (min-width: 768px) {
	.registration-header .registration-header__inner {
		width: min(calc(100% - 4rem), var(--container-wide));
		min-height: 6.25rem;
	}

	.registration-header__brand {
		font-size: 1.62rem;
	}

	.registration-header__brand-mark {
		width: 1.9rem;
		height: 1.9rem;
	}

	.registration-hero {
		padding-top: clamp(4.75rem, 7vw, 6.25rem);
	}

	.registration-hero h1 {
		font-size: clamp(3rem, 5vw, 4rem);
	}

	.registration-hero p {
		font-size: 1.12rem;
	}

	.registration-section {
		padding-inline: 2rem;
	}

	.registration-form {
		width: min(100%, 40rem);
		padding: 2.05rem 2.35rem 2.1rem;
	}

	.registration-form__decor {
		right: -7.4rem;
		bottom: -4.6rem;
		width: 20rem;
	}

}

@media (max-width: 380px) {
	.registration-section {
		padding-inline: 0.75rem;
	}

	.registration-field__header {
		align-items: flex-start;
	}

	.registration-field--new-password .password-generate {
		flex-basis: 100%;
		text-align: left;
	}

	.registration-form {
		width: min(calc(100vw - 1.5rem), 40rem);
		padding: 1.25rem;
	}

	.registration-submit {
		letter-spacing: 0.18em;
	}
}

@media (max-width: 360px) {
	.registration-header__brand span:last-child {
		max-width: 8.6rem;
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}

}

@media (prefers-reduced-motion: reduce) {
	.registration-back,
	.registration-control,
	.registration-submit,
	.registration-password-toggle {
		transition: none;
	}
}

.registration-status--error {
	color: #7c392f;
}

.registration-status--success {
	color: #4f663f;
}

.account-main {
	background: var(--section-neutral);
}

.account-section {
	padding: clamp(2.5rem, 6vw, 5rem) 1rem;
}

.account-layout {
	display: grid;
	gap: 1.5rem;
	align-items: start;
}

.account-sidebar,
.account-panel {
	background: rgba(255, 255, 255, 0.82);
	border: 1px solid rgba(63, 59, 54, 0.1);
	border-radius: var(--radius-medium);
	box-shadow: 0 18px 48px rgba(63, 59, 54, 0.07);
}

.account-sidebar {
	padding: 1rem;
}

.account-user {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0.85rem;
	align-items: center;
	padding: 0.4rem 0.35rem 1rem;
	border-bottom: 1px solid rgba(63, 59, 54, 0.1);
}

.account-user__avatar {
	display: grid;
	width: 3rem;
	height: 3rem;
	overflow: hidden;
	place-items: center;
	border-radius: 999px;
	background: var(--color-primary);
	color: var(--color-white);
	font-weight: 700;
}

.account-user__name,
.account-user__email {
	margin: 0;
	overflow-wrap: anywhere;
	line-height: 1.35;
}

.account-user__name {
	font-weight: 700;
}

.account-user__email {
	color: rgba(63, 59, 54, 0.66);
	font-size: 0.88rem;
}

.account-nav {
	display: grid;
	gap: 0.25rem;
	padding-top: 1rem;
}

.account-nav__link {
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	padding: 0.65rem 0.85rem;
	border-radius: 0.65rem;
	color: rgba(63, 59, 54, 0.82);
	font-weight: 600;
	text-decoration: none;
}

.account-nav__link:hover,
.account-nav__link.is-active {
	background: rgba(140, 148, 115, 0.13);
	color: var(--color-text);
}

.account-nav__link--logout {
	color: #7c392f;
}

.account-panel {
	padding: clamp(1.25rem, 4vw, 2rem);
}

.account-panel h2 {
	margin: 0 0 0.8rem;
	font-family: var(--font-heading);
	font-size: clamp(2rem, 5vw, 2.75rem);
	font-weight: 500;
	line-height: 1.05;
}

.account-panel p {
	margin: 0 0 1rem;
	color: rgba(63, 59, 54, 0.72);
}

.account-profile-form {
	display: grid;
	gap: 1rem;
}

.account-field {
	display: grid;
	gap: 0.45rem;
	font-weight: 600;
}

.account-field input {
	width: 100%;
	min-height: 3.1rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid rgba(63, 59, 54, 0.18);
	border-radius: 0.75rem;
	background: rgba(255, 255, 255, 0.82);
	color: var(--color-text);
}

.account-profile-form__email {
	font-size: 0.92rem;
}

.account-avatar-manager {
	display: grid;
	gap: 0.75rem;
	margin: 0.25rem 0 0.7rem;
	padding: 0 0 1.25rem;
	border-bottom: 1px solid rgba(63, 59, 54, 0.12);
}

.account-avatar-manager__heading {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.account-avatar-manager__heading h2 {
	margin: 0 0 0.35rem;
	font-family: var(--font-heading);
	font-size: clamp(2rem, 5vw, 2.75rem);
	font-weight: 500;
	line-height: 1.05;
}

.account-avatar-manager__trigger {
	position: relative;
	display: inline-grid;
	flex: 0 0 auto;
	width: 5rem;
	height: 5rem;
	place-items: center;
	padding: 0.25rem;
	border: 0;
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
}

.account-avatar-manager__trigger:focus-visible {
	outline: 3px solid rgba(140, 148, 115, 0.55);
	outline-offset: 3px;
}

.account-avatar-manager__preview {
	display: grid;
	width: 4.5rem;
	height: 4.5rem;
	place-items: center;
	border: 2px solid var(--color-white);
	border-radius: 50%;
	background: var(--color-primary) center / cover no-repeat;
	box-shadow: 0 0 0 1px rgba(63, 59, 54, 0.12), 0 10px 24px rgba(63, 59, 54, 0.1);
	color: var(--color-white);
	font-family: var(--font-heading);
	font-size: 1.5rem;
}

.account-avatar-manager__edit-icon {
	position: absolute;
	right: 0.05rem;
	bottom: 0.05rem;
	display: grid;
	width: 1.65rem;
	height: 1.65rem;
	place-items: center;
	border: 2px solid var(--color-white);
	border-radius: 50%;
	background: var(--color-white);
	box-shadow: 0 2px 8px rgba(63, 59, 54, 0.2);
	color: var(--color-primary);
}

.account-avatar-manager__edit-icon svg {
	width: 0.85rem;
	height: 0.85rem;
	fill: currentColor;
}

.account-avatar-manager__preview--modal {
	width: 6rem;
	height: 6rem;
	margin: 0 auto;
	font-size: 1.9rem;
}
.button--text {
	border: 0;
	background: transparent;
	color: #7c392f;
}

.button--text:hover,
.button--text:focus-visible {
	background: rgba(124, 57, 47, 0.08);
}

.account-avatar-manager__file {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.account-avatar-manager__status {
	color: var(--color-primary) !important;
	font-size: 0.9rem !important;
}

.account-avatar-manager__status.is-error,
.account-avatar-modal__error {
	color: #8b3f35 !important;
}

.account-avatar-gallery {
	display: grid;
	min-width: 0;
	max-width: 100%;
	gap: 0.7rem;
	padding-top: 0.35rem;
}

.account-avatar-gallery h4 {
	margin: 0 0 0.1rem;
	font-family: var(--font-heading);
	font-size: 1.35rem;
	font-weight: 500;
}

.account-avatar-gallery__grid {
	display: flex;
	gap: 0.6rem;
	padding-block: 0.25rem;
}

.account-avatar-picker {
	position: relative;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.account-avatar-gallery__viewport {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-behavior: smooth;
	scrollbar-width: none;
}

.account-avatar-gallery__viewport::-webkit-scrollbar {
	display: none;
}

.account-avatar-picker::before,
.account-avatar-picker::after {
	position: absolute;
	z-index: 2;
	top: 0;
	bottom: 0;
	width: 2.25rem;
	pointer-events: none;
	content: "";
	opacity: 0;
	transition: opacity 180ms ease;
}

.account-avatar-picker::before {
	left: 0;
	background: linear-gradient(to right, var(--color-white), rgba(255, 255, 255, 0));
}

.account-avatar-picker::after {
	right: 0;
	background: linear-gradient(to left, var(--color-white), rgba(255, 255, 255, 0));
}

.account-avatar-picker.has-overflow-left::before,
.account-avatar-picker.has-overflow-right::after {
	opacity: 1;
}

@media (hover: hover) and (pointer: fine) {
	.account-avatar-gallery__viewport {
		cursor: grab;
		touch-action: pan-x;
		user-select: none;
		-webkit-user-select: none;
	}

	.account-avatar-gallery__viewport.is-dragging {
		cursor: grabbing;
		scroll-behavior: auto;
		user-select: none;
		-webkit-user-select: none;
		-webkit-user-drag: none;
	}
}

/* Keep the compact header usable until the full desktop navigation has room. */
@media (min-width: 768px) and (max-width: 1199px) {
	.preview-header .site-header__inner {
		justify-content: flex-start;
		gap: 1rem;
	}

	.preview-header .site-navigation {
		display: none;
	}

	.preview-header .site-header__cta {
		display: inline-flex;
		flex: 0 0 auto;
		margin-left: auto;
		white-space: nowrap;
	}

	.preview-header__mobile-actions {
		display: flex;
		flex: 0 0 auto;
	}
}

@media (max-width: 780px) {
	.account-avatar-gallery__viewport {
		touch-action: pan-x;
		-webkit-overflow-scrolling: touch;
		overscroll-behavior-x: contain;
	}
}

.account-avatar-choice {
	flex: 0 0 3.5rem;
}

.account-avatar-choice {
	position: relative;
	width: 100%;
	aspect-ratio: 1;
	padding: 0;
	border: 3px solid transparent;
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
	transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.account-avatar-choice img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	object-fit: cover;
}

.account-avatar-choice:hover,
.account-avatar-choice:focus-visible {
	border-color: var(--color-accent);
	box-shadow: 0 0 0 3px rgba(140, 148, 115, 0.2);
}

@media (hover: hover) and (pointer: fine) {
	.account-avatar-choice:hover,
	.account-avatar-choice:focus-visible {
		transform: translateY(-2px);
	}
}

.account-avatar-choice.is-selected {
	border-color: var(--color-primary);
	box-shadow: 0 0 0 3px rgba(140, 148, 115, 0.28);
}

.account-avatar-modal {
	position: fixed;
	z-index: 1000;
	inset: 0;
	display: grid;
	place-items: center;
	padding: 1rem;
}

/* The component has display:grid, so explicitly preserve the HTML hidden state. */
.account-avatar-modal[hidden] {
	display: none !important;
}

.account-avatar-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(35, 32, 28, 0.62);
}

.account-avatar-modal__panel {
	position: relative;
	display: grid;
	width: min(100%, 31rem);
	max-height: min(100%, 42rem);
	overflow: auto;
	gap: 1rem;
	padding: clamp(1.25rem, 4vw, 2rem);
	border: 1px solid rgba(63, 59, 54, 0.12);
	border-radius: 1.35rem;
	background: var(--color-white);
	box-shadow: 0 24px 70px rgba(35, 32, 28, 0.25);
}

.account-avatar-modal__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.account-avatar-modal__header h3 {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 1.45rem;
	font-weight: 500;
	line-height: 1;
	white-space: nowrap;
}

@media (max-width: 379px) {
	.account-avatar-modal__header h3 {
		font-size: 1.35rem;
	}
}

@media (min-width: 768px) {
	.account-avatar-modal__header h3 {
		font-size: 1.9rem;
		white-space: nowrap;
	}
}

.account-avatar-modal__close {
	display: grid;
	width: 2.5rem;
	height: 2.5rem;
	place-items: center;
	border: 1px solid rgba(63, 59, 54, 0.14);
	border-radius: 50%;
	background: transparent;
	color: var(--color-text);
	font-size: 1.5rem;
	cursor: pointer;
}

.account-avatar-modal__close svg {
	display: block;
	width: 0.95rem;
	height: 0.95rem;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-width: 1.6;
}

.account-avatar-modal__hint {
	margin: 0;
	color: rgba(63, 59, 54, 0.72);
	font-size: 0.92rem;
}

.account-avatar-modal__current {
	display: grid;
	place-items: center;
	gap: 0.5rem;
	padding: 0.1rem 0 0.8rem;
}


.account-avatar-modal__avatar-actions {
	display: flex;
	justify-content: center;
	gap: 0.55rem;
}

.account-avatar-icon-button {
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	place-items: center;
	padding: 0;
	border: 1px solid rgba(63, 59, 54, 0.16);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	box-shadow: 0 3px 10px rgba(63, 59, 54, 0.1);
	color: var(--color-primary);
	cursor: pointer;
	transition: background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, color 0.18s ease;
}

.account-avatar-icon {
	display: block;
	width: 1.2rem;
	height: 1.2rem;
	background-color: currentColor;
	mask-repeat: no-repeat;
	mask-position: center;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: center;
	-webkit-mask-size: contain;
}

.account-avatar-icon--camera {
	width: 1.3rem;
	height: 1.3rem;
	-webkit-mask-image: url("../icons/profile/camera.svg");
	mask-image: url("../icons/profile/camera.svg");
}

.account-avatar-icon--trash {
	-webkit-mask-image: url("../icons/profile/trash.svg");
	mask-image: url("../icons/profile/trash.svg");
}

.account-avatar-icon-button--delete {
	color: #8b554c;
}

.account-avatar-icon-button:hover,
.account-avatar-icon-button:focus-visible {
	border-color: var(--color-primary);
	background: rgba(140, 148, 115, 0.13);
	box-shadow: 0 0 0 3px rgba(140, 148, 115, 0.18);
	outline: none;
}

.account-avatar-icon-button--delete:hover,
.account-avatar-icon-button--delete:focus-visible {
	border-color: #8b554c;
	background: rgba(139, 85, 76, 0.1);
	box-shadow: 0 0 0 3px rgba(139, 85, 76, 0.14);
}

.account-avatar-icon-button[hidden] {
	display: none !important;
}

.account-avatar-crop {
	position: relative;
	--avatar-crop-inset: 10px;
	width: min(100%, 18.5rem);
	aspect-ratio: 1;
	margin: 0 auto;
	overflow: hidden;
	border: 1px solid rgba(35, 32, 28, 0.3);
	border-radius: 0.8rem;
	background: #342f2b;
	box-shadow: 0 8px 22px rgba(35, 32, 28, 0.14);
	touch-action: none;
	cursor: grab;
}

.account-avatar-crop::after {
	position: absolute;
	inset: var(--avatar-crop-inset);
	border: 2px solid var(--color-white);
	border-radius: 50%;
	box-shadow: 0 0 0 9999px rgba(22, 20, 18, 0.43);
	content: "";
	pointer-events: none;
}

.account-avatar-crop.is-dragging {
	cursor: grabbing;
}

.account-avatar-crop img {
	position: absolute;
	max-width: none;
	user-select: none;
	pointer-events: none;
}

.account-avatar-zoom {
	display: grid;
	gap: 0.45rem;
	font-weight: 600;
}

.account-avatar-zoom__control {
	display: grid;
	grid-template-columns: 2rem minmax(0, 1fr) 2rem;
	gap: 0.45rem;
	align-items: center;
}

.account-avatar-zoom__button {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	border: 1px solid rgba(63, 59, 54, 0.14);
	border-radius: 50%;
	background: transparent;
	color: var(--color-text);
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
}

.account-avatar-zoom__button:hover,
.account-avatar-zoom__button:focus-visible {
	border-color: var(--color-primary);
	background: rgba(140, 148, 115, 0.12);
}

.account-avatar-zoom input {
	width: 100%;
	accent-color: var(--color-primary);
}

.account-avatar-modal__error {
	margin: 0;
	font-size: 0.9rem;
}

.account-avatar-modal__instruction {
	margin: -0.35rem 0 0;
	color: rgba(63, 59, 54, 0.62);
	font-size: 0.82rem;
	text-align: center;
}

.account-avatar-modal__actions {
	display: flex;
	justify-content: flex-end;
	gap: 0.65rem;
}

.account-avatar-modal__footer {
	display: flex;
	justify-content: space-between;
	gap: 0.65rem;
	padding-top: 0.9rem;
	border-top: 1px solid rgba(63, 59, 54, 0.1);
}

.account-avatar-modal__footer[hidden] {
	display: none !important;
}

.account-avatar-modal__panel:has([data-profile-avatar-modal-crop]:not([hidden])) {
	gap: 0.75rem;
	max-height: calc(100vh - 2rem);
	padding: 1.25rem 1.5rem;
}

body:has(.account-avatar-modal:not([hidden])) {
	overflow: hidden;
}

@media (max-width: 560px) {
	.account-avatar-manager {
		padding-bottom: 1rem;
	}

	.account-avatar-manager__heading {
		gap: 0.8rem;
	}

	.account-avatar-manager__trigger {
		width: 4.25rem;
		height: 4.25rem;
	}

	.account-avatar-manager__trigger .account-avatar-manager__preview {
		width: 3.8rem;
		height: 3.8rem;
	}

	.account-avatar-manager__preview--modal {
		width: 6rem !important;
		height: 6rem !important;
	}

	.account-avatar-gallery__grid {
		gap: 0.7rem;
	}

	.account-avatar-choice {
		flex-basis: 3.25rem;
	}

	.account-avatar-icon-button {
		width: 2.75rem;
		height: 2.75rem;
	}

	.account-avatar-modal {
		align-items: end;
		padding: 0;
	}

	.account-avatar-modal__panel {
		width: 100%;
		max-height: calc(100% - env(safe-area-inset-top));
		padding: 1.25rem 1rem calc(1.25rem + env(safe-area-inset-bottom));
		border-radius: 1.35rem 1.35rem 0 0;
	}

	.account-avatar-crop {
		width: min(100%, 25rem);
	}

	.account-avatar-modal__actions {
		padding-bottom: 0.1rem;
	}

	.account-avatar-modal__footer {
		padding-bottom: 0.1rem;
	}

	.account-avatar-modal__actions .button {
		flex: 1;
		min-height: 3.2rem;
	}
}

.my-reservations__status {
	color: rgba(63, 59, 54, 0.72);
}

.my-reservations__groups {
	display: grid;
	gap: 2rem;
}

.my-reservations__section {
	display: grid;
	gap: 0.8rem;
}

.my-reservations__section-title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 1.8rem;
	font-weight: 500;
}

.my-reservations__list {
	display: grid;
	gap: 0.85rem;
}

.my-reservations__card {
	display: grid;
	gap: 0.45rem;
	padding: 1rem;
	border: 1px solid rgba(63, 59, 54, 0.12);
	border-radius: 0.85rem;
	background: rgba(255, 255, 255, 0.6);
}

.my-reservations__lesson,
.my-reservations__datetime,
.my-reservations__places,
.my-reservations__message,
.my-reservations__cancellation-message,
.my-reservations__empty {
	margin: 0;
}

.my-reservations__lesson {
	font-size: 1.12rem;
	font-weight: 700;
}

.my-reservations__datetime,
.my-reservations__places {
	color: rgba(63, 59, 54, 0.74);
}

.my-reservations__status {
	font-weight: 700;
}

.my-reservations__status--cancelled,
.my-reservations__error {
	color: #7c392f;
}

.my-reservations__cancellation-message {
	color: rgba(63, 59, 54, 0.78);
}

.my-reservations__message {
	margin-top: 0.35rem;
}

.my-reservations__edit {
	justify-self: start;
	margin-top: 0.45rem;
}

.instructor-lessons__status,
.instructor-lesson-detail__status {
	color: rgba(63, 59, 54, 0.72);
}

.instructor-lessons__attendance-legend {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.45rem 0.8rem;
	margin: 0.75rem 0 0.2rem;
}

.instructor-lessons__attendance-legend-items {
	display: flex;
	flex-wrap: nowrap;
	flex: 1 1 auto;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	min-width: 0;
}

.instructor-lessons__attendance-legend-title {
	flex: 0 0 auto;
	font-size: 0.8rem;
	font-weight: 700;
	white-space: nowrap;
}

.instructor-lessons__attendance-legend[hidden] {
	display: none;
}

.instructor-lessons__attendance-legend-item {
	min-width: 0;
	font-size: 0.8rem;
	font-weight: 400;
}

.instructor-lessons__attendance-legend-label {
	min-width: 0;
	color: rgba(63, 59, 54, 0.78);
	font-weight: 400;
}

.instructor-lessons__attendance-legend-label-mobile {
	display: none;
}

@media (max-width: 767px) {
	.instructor-lessons__attendance-legend {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		gap: 0.4rem;
	}

	.instructor-lessons__attendance-legend-items {
		width: 100%;
		gap: 0.1rem;
	}

	.instructor-lessons__attendance-legend-item {
		white-space: nowrap;
	}

	.instructor-lessons__attendance-legend-label-full {
		display: none;
	}

	.instructor-lessons__attendance-legend-label-mobile {
		display: inline;
	}
}

.instructor-lessons__groups {
	display: grid;
	gap: 2rem;
	margin-top: 0.75rem;
}

.instructor-lessons__section,
.instructor-detail__history,
.instructor-detail__participants {
	display: grid;
	gap: 0.8rem;
}

.instructor-lessons__section-title,
.instructor-detail__heading {
	margin: 0;
	font-family: var(--font-heading);
	font-size: 1.8rem;
	font-weight: 500;
}

.instructor-lessons__list,
.instructor-detail__reservations {
	display: grid;
	gap: 0.85rem;
}

.instructor-lessons__card,
.instructor-detail__reservation {
	display: grid;
	gap: 0.45rem;
	padding: 1rem;
	border: 1px solid rgba(63, 59, 54, 0.12);
	border-radius: 0.85rem;
	background: rgba(255, 255, 255, 0.6);
}

.instructor-lessons__card {
	gap: 0.4rem;
}

.instructor-lessons__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.instructor-lessons__badge {
	display: inline-flex;
	padding: 0.18rem 0.5rem;
	border: 1px solid rgba(63, 59, 54, 0.14);
	border-radius: 999px;
	background: var(--section-warm);
	color: var(--color-primary);
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.3;
}

.instructor-lessons__title,
.instructor-lessons__datetime,
.instructor-detail__title,
.instructor-detail__datetime,
.instructor-detail__reservation-name,
.instructor-detail__reservation-places,
.instructor-detail__reservation-source,
.instructor-detail__reservation-contact,
.instructor-detail__reservation-message,
.instructor-detail__empty,
.instructor-lessons__empty {
	margin: 0;
}

.instructor-detail__reservation-name {
	font-size: 1.12rem;
	font-weight: 700;
}

.instructor-lessons__title {
	font-family: var(--font-heading);
	font-size: 1.625rem;
	font-weight: 600;
	line-height: 1.15;
	overflow-wrap: anywhere;
}

.instructor-lessons__datetime {
	font-family: var(--font-body);
	font-size: 0.875rem;
}

.account-panel .instructor-lessons__datetime {
	margin: 0 0 0.4rem;
}

.account-user__avatar img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	object-fit: cover;
	object-position: center;
}

.instructor-detail__reservation-name-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.45rem 0.65rem;
}

.instructor-detail__reservation-promo {
	display: inline-flex;
	max-width: 100%;
	padding: 0.18rem 0.5rem;
	border: 1px solid rgba(63, 59, 54, 0.14);
	border-radius: 999px;
	background: var(--section-warm);
	color: var(--color-primary);
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1.3;
}

.instructor-lessons__datetime,
.instructor-detail__datetime,
.instructor-detail__reservation-places,
.instructor-detail__reservation-source,
.instructor-detail__reservation-contact {
	color: rgba(63, 59, 54, 0.74);
}

.instructor-lessons__occupancy {
	display: flex;
	flex-wrap: wrap;
	gap: 0.15rem 0.4rem;
	align-items: baseline;
	font-family: var(--font-body);
}

.instructor-lessons__occupancy-total {
	white-space: nowrap;
}

.instructor-lessons__occupancy-label,
.instructor-lessons__occupancy-availability,
.instructor-lessons__occupancy-availability strong {
	color: rgba(63, 59, 54, 0.72);
	font-size: 0.86rem;
	font-weight: 500;
}

.instructor-lessons__occupancy-count {
	font-size: 0.95rem;
	font-weight: 600;
}

.instructor-lessons__occupancy-availability {
	white-space: nowrap;
}

.instructor-lessons__participants {
	margin-top: 0.5rem;
}

.instructor-lessons__participants-title {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 600;
}

.instructor-lessons__participants-empty,
.instructor-lessons__participants-list {
	margin: 0.2rem 0 0;
	color: rgba(63, 59, 54, 0.78);
	font-family: var(--font-body);
	font-size: 0.875rem;
}

.instructor-lessons__participants-list {
	display: grid;
	gap: 0.25rem;
	padding: 0;
	list-style: none;
}

.instructor-lessons__participant {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	gap: 0.5rem;
	min-width: 0;
}

.instructor-lessons__participant-group {
	min-width: 0;
}

.instructor-lessons__participant-primary-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	min-width: 0;
}

.instructor-lessons__participant-compact,
.instructor-lessons__reservation-header {
	display: block;
	min-width: 0;
}

.instructor-lessons__participant-identity,
.instructor-lessons__participant-copy,
.instructor-lessons__reservation-identity {
	display: grid;
	width: 100%;
	min-width: 0;
}

.instructor-lessons__participant-leading {
	display: flex;
	flex: 0 0 16px;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
}

.instructor-lessons__participant-leading > .instructor-lessons__attendance-status {
	width: 16px;
	height: 16px;
	justify-content: center;
	margin-top: 0;
}

.instructor-lessons__reservation-button {
	display: inline-flex;
	flex: 0 1 auto;
	align-items: center;
	justify-content: flex-start;
	gap: 0.5rem;
	min-width: 0;
	min-height: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

.instructor-lessons__reservation-button .instructor-lessons__reservation-owner {
	display: inline;
}

.instructor-lessons__reservation-chevron {
	display: block;
	width: 0.55rem;
	height: 0.55rem;
	flex: 0 0 0.55rem;
	background: currentColor;
	-webkit-mask: url('../icons/back-chevron.svg') center / contain no-repeat;
	mask: url('../icons/back-chevron.svg') center / contain no-repeat;
	transform: rotate(-90deg);
	transition: transform 0.18s ease;
}

.instructor-lessons__reservation-button[aria-expanded="true"] .instructor-lessons__reservation-chevron {
	transform: rotate(90deg);
}

.instructor-lessons__reservation-button:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
	border-radius: 0.2rem;
}

.instructor-lessons__reservation-header {
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
}

.instructor-lessons__reservation-people[hidden] {
	display: none;
}

.instructor-lessons__reservation-owner {
	display: block;
	font-weight: 600;
}

.instructor-lessons__reservation-meta {
	color: rgba(63, 59, 54, 0.62);
	font-size: 0.76rem;
	line-height: 1.35;
}

.instructor-lessons__reservation-places {
	flex: 0 1 auto;
	color: rgba(63, 59, 54, 0.7);
	font-size: 0.76rem;
	text-align: right;
	white-space: nowrap;
}

.instructor-lessons__reservation-people {
	display: grid;
	gap: 0.2rem;
	margin: 0.3rem 0 0 1rem;
	padding: 0;
	list-style: none;
}

@media (max-width: 767px) {
	.instructor-lessons__reservation-button {
		min-height: 2.75rem;
	}
}

.instructor-lessons__participant-name {
	flex: 1 1 0;
	min-width: 0;
	overflow-wrap: anywhere;
}

.instructor-lessons__attendance-status {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	align-self: flex-start;
	gap: 0.32rem;
	margin-top: 0.18em;
	font-family: var(--font-body);
	font-size: 0.82rem;
	line-height: 1.3;
}

.instructor-lessons__attendance-status--confirmed {
	color: #52765b;
	font-weight: 500;
}

.instructor-lessons__attendance-status--unconfirmed {
	color: #706d66;
}

.instructor-lessons__attendance-status--reversed {
	color: #96622f;
	font-weight: 500;
}

.instructor-lessons__attendance-icon,
.instructor-lessons__attendance-icon svg {
	display: block;
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
}

.instructor-lessons__attendance-icon svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 2.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.instructor-lessons__history {
	display: block;
	margin-top: 0.05rem;
	font-family: var(--font-body);
}

.instructor-lessons__history-title {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 600;
}

.instructor-lessons__history-list {
	display: grid;
	gap: 0.45rem;
	margin-top: 0.3rem;
}

.instructor-lessons__history-entry {
	display: grid;
	grid-template-columns: 16px minmax(0, 1fr);
	align-items: start;
	gap: 0.5rem;
	font-size: 0.84rem;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.instructor-lessons__history-entry--neutral .instructor-lessons__history-summary {
	color: rgba(63, 59, 54, 0.78);
}

.instructor-lessons__history-entry--neutral .instructor-lessons__history-icon {
	color: rgba(63, 59, 54, 0.72);
}

.instructor-lessons__history-entry--blue .instructor-lessons__history-summary,
.instructor-lessons__history-entry--blue .instructor-lessons__history-icon {
	color: #2775ae;
}



.instructor-lessons__history-entry--terracotta .instructor-lessons__history-summary {
	color: #96622f;
}

.instructor-lessons__history-entry--terracotta .instructor-lessons__history-icon {
	color: #96622f;
}

.instructor-lessons__history-icon,
.instructor-lessons__history-icon svg {
	display: block;
	width: 16px;
	height: 16px;
}

.instructor-lessons__history-entry .instructor-lessons__history-icon {
	transform: translateY(1px);
}

.instructor-lessons__history-icon svg {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.instructor-lessons__history-copy {
	display: grid;
	min-width: 0;
}

.instructor-lessons__history-date {
	color: rgba(63, 59, 54, 0.64);
	font-size: 0.78rem;
}

.account-panel .instructor-lessons__history-entry {
	margin: 0;
}

.instructor-lessons__actions {
	margin-top: 0.5rem;
}

.instructor-lessons__warning,
.instructor-detail__warning,
.instructor-lessons__error,
.instructor-detail__error,
.instructor-detail__status--cancelled,
.instructor-detail__reservation-status {
	color: #7c392f;
	font-weight: 700;
}

.instructor-lessons__link {
	justify-self: start;
	min-height: 44px;
	margin-top: 0;
	padding: 0.55rem 0.9rem;
	border-color: rgba(63, 59, 54, 0.2);
	border-radius: 0.6rem;
	font-family: var(--font-body);
	font-size: 0.84rem;
	font-weight: 500;
}

.instructor-view__back {
	display: inline-block;
	margin-bottom: 1.5rem;
	color: var(--color-primary);
	font-weight: 600;
	text-decoration: none;
}

.instructor-detail__title {
	margin-bottom: 0.45rem;
	font-family: var(--font-heading);
	font-size: clamp(2rem, 5vw, 2.75rem);
	font-weight: 500;
}

.instructor-detail__status,
.instructor-detail__cancellation,
.instructor-detail__warning {
	margin: 0 0 1rem;
}

.instructor-detail__stats {
	display: grid;
	grid-template-columns: minmax(8rem, auto) 1fr;
	gap: 0.55rem 1rem;
	margin: 1.5rem 0;
}

.instructor-detail__stats dt {
	color: rgba(63, 59, 54, 0.72);
}

.instructor-detail__stats dd {
	margin: 0;
	font-weight: 700;
}

.instructor-detail__history {
	margin: 2rem 0;
}

.instructor-detail__history ul {
	display: grid;
	gap: 0.8rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.instructor-detail__history li {
	display: grid;
	gap: 0.15rem;
	padding-left: 0.85rem;
	border-left: 2px solid rgba(140, 148, 115, 0.45);
}

.instructor-detail__event-date {
	font-size: 0.85rem;
	color: rgba(63, 59, 54, 0.62);
}

.instructor-detail__subheading {
	margin: 0;
	font-size: 1rem;
}

.instructor-detail__reservation--cancelled {
	opacity: 0.72;
	background: rgba(124, 57, 47, 0.04);
}

.instructor-detail__reservation-message q {
	color: rgba(63, 59, 54, 0.78);
}

.instructor-detail__manual-panel {
	margin: 1rem 0;
	padding: 1rem;
	border: 1px solid rgba(63, 59, 54, 0.18);
	border-radius: 0.75rem;
	background: rgba(255, 255, 255, 0.72);
}

.instructor-detail__manual-form,
.instructor-detail__manual-field {
	display: grid;
	gap: 0.45rem;
}

.instructor-detail__manual-form {
	gap: 0.85rem;
}

.instructor-detail__manual-field input,
.instructor-detail__manual-field select,
.instructor-detail__manual-field textarea {
	width: 100%;
	padding: 0.65rem;
	border: 1px solid rgba(63, 59, 54, 0.22);
	border-radius: 0.35rem;
	font: inherit;
}

.instructor-detail__manual-field textarea {
	min-height: 5rem;
	resize: vertical;
}

.instructor-detail__manual-actions,
.instructor-detail__reservation-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

.instructor-detail__manual-total {
	margin: 0;
	font-weight: 700;
}

@media (min-width: 860px) {
	.account-layout {
		grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr);
	}
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
	.preview-header .preview-brand__rotator > span {
		transition: none;
		transform: none;
	}

	.preview-header .preview-brand__place {
		opacity: 0;
		clip-path: inset(0 0 0 100%);
		pointer-events: none;
	}

	.preview-header .preview-brand__subtitle {
		display: block;
		opacity: 1;
		clip-path: inset(0 0 0 0);
		pointer-events: auto;
	}
}
.lesson-occurrence-modal { position: fixed; z-index: 1100; inset: 0; display: grid; place-items: center; padding: 1rem; }
.lesson-occurrence-modal[hidden] { display: none; }
.lesson-occurrence-modal__backdrop { position: absolute; inset: 0; background: rgba(35,32,28,.62); }
.lesson-occurrence-modal__dialog { display: grid; gap: 1.25rem; width: min(100%, 32rem); padding: clamp(1.65rem, 4vw, 2.75rem); border-radius: var(--radius-large); background: #fbf8f3; box-shadow: 0 24px 70px rgba(63,59,54,.16); }
.lesson-occurrence-modal__header { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); align-items: center; gap: .9rem; padding-right: 1.5rem; }
.lesson-occurrence-modal__icon { width: 3.25rem; height: 3.25rem; border-radius: 50%; background: rgba(111,118,86,.13); color: #6f7656; -webkit-mask: none; mask: none; }
.lesson-occurrence-modal__icon::before { content: ""; display: block; width: 100%; height: 100%; background: currentColor; -webkit-mask: center/1.35rem no-repeat; mask: center/1.35rem no-repeat; }
.lesson-occurrence-modal__icon--cancel::before { -webkit-mask-image: url('../icons/bookings/booking-cancel.svg'); mask-image: url('../icons/bookings/booking-cancel.svg'); }
.lesson-occurrence-modal__icon--restore { background: var(--color-primary); color: #fff; }
.lesson-occurrence-modal__icon--restore::before { -webkit-mask-image: url('../icons/bookings/booking-renew.svg'); mask-image: url('../icons/bookings/booking-renew.svg'); }
.lesson-occurrence-modal__dialog h2 { margin: 0 0 .3rem; font-family: var(--font-heading); font-size: clamp(2rem, 4vw, 2.45rem); font-weight: 500; line-height: 1.05; }
.lesson-occurrence-modal__close { color: var(--color-text); }
.lesson-occurrence-modal__identity, .lesson-occurrence-modal__reservations { margin: 0; color: rgba(63,59,54,.75); font-size: .95rem; line-height: 1.45; }
.lesson-occurrence-modal__reservations { padding: .75rem .9rem; border-radius: var(--radius-small); background: rgba(111,118,86,.09); color: rgba(63,59,54,.82); }
.lesson-occurrence-modal__fields { display: grid; gap: 1.25rem; }
.lesson-occurrence-modal__fields[hidden] { display: none; }
.lesson-occurrence-modal__fields label { display: block; color: var(--color-text); }
.lesson-occurrence-modal__fields label>span { display: inline; color: var(--color-text); }
.lesson-occurrence-modal__fields label span small, .lesson-occurrence-modal__fields small { color: rgba(63,59,54,.58); font-size: .88rem; font-weight: 400; }
.lesson-occurrence-modal__fields textarea { display: block; width: 100%; min-height: 6rem; margin-top: .55rem; padding: .9rem 1rem; border: 1px solid rgba(63,59,54,.42); border-radius: var(--radius-small); background: #fff; color: var(--color-text); resize: vertical; }
.lesson-occurrence-modal__fields textarea:focus { border-color: #6f7656; outline: 0; box-shadow: 0 0 0 3px rgba(111,118,86,.16); }
.lesson-occurrence-modal__reason { display: grid; gap: .45rem; }
.lesson-occurrence-modal__reason[hidden] { display: none; }
.lesson-occurrence-modal__reason p { margin: 0; }
.lesson-occurrence-modal__reason p { color: rgba(63,59,54,.58); font-size: .88rem; }
.lesson-occurrence-modal__reason-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; }
.lesson-occurrence-modal__reason-option { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-width: 0; gap: .4rem; min-height: 2.2rem; padding: .35rem .7rem; border: 1px solid rgba(63,59,54,.2); border-radius: 999px; background: transparent; color: rgba(63,59,54,.78); font: inherit; font-size: .9rem; cursor: pointer; }
.lesson-occurrence-modal__reason-option[aria-pressed="true"] { border-color: var(--color-primary); background: rgba(140,148,115,.12); color: var(--color-primary); }
.lesson-occurrence-modal__reason-icon { display: block; width: 1.05rem; height: 1.05rem; flex: 0 0 1.05rem; background: currentColor; -webkit-mask: center / contain no-repeat; mask: center / contain no-repeat; }
.lesson-occurrence-modal__reason-option--health .lesson-occurrence-modal__reason-icon { -webkit-mask-image: url('../icons/reason-health.svg'); mask-image: url('../icons/reason-health.svg'); }
.lesson-occurrence-modal__reason-option--operational .lesson-occurrence-modal__reason-icon { -webkit-mask-image: url('../icons/reason-operational.svg'); mask-image: url('../icons/reason-operational.svg'); }
.lesson-occurrence-modal__reason-option--technical .lesson-occurrence-modal__reason-icon { -webkit-mask-image: url('../icons/reason-technical.svg'); mask-image: url('../icons/reason-technical.svg'); }
.lesson-occurrence-modal__actions { display: flex; flex-direction: column; gap: .7rem; padding-top: .1rem; }
.lesson-occurrence-modal__submit { order: 1; }
.lesson-occurrence-modal__submit--danger { background: #8b554c; border-color: #8b554c; color: #fff; }
.lesson-occurrence-modal__back { order: 2; min-height: 2rem; border: 0; background: transparent; color: #6f7656; cursor: pointer; font: inherit; }
.lesson-occurrence-modal__error { margin: 0; color: #8b3f35; }
.instructor-detail__lesson-actions { display: flex; gap: .65rem; margin: .8rem 0 1rem; }

@media (max-width: 780px) {
	.lesson-occurrence-modal__dialog { width: 100%; padding: 1.55rem; border-radius: 2.25rem 0 0 0; align-self: end; }
}

@media (min-width: 781px) {





}












@media (max-width: 780px) {






}

/* Mobile price-card payment overlay. Desktop flip rules remain separate above. */
@media (max-width: 767px) {
	.preview-price-card.is-interacting {
		transform: none;
	}

	.preview-price-card.is-interacting .preview-price-card__icon,
	.preview-price-card.is-interacting .preview-price-card__amount {
		transform: none;
	}

	.preview-price-card.is-mobile-price-source-hidden {
		visibility: hidden;
	}

	.preview-price-mobile-overlay {
		--safe-area-top: env(safe-area-inset-top, 0px);
		--safe-area-bottom: env(safe-area-inset-bottom, 0px);
		position: fixed;
		inset: 0;
		display: none;
		z-index: 1000;
		pointer-events: none;
		-webkit-perspective: 1100px;
		perspective: 1100px;
	}

	.preview-price-mobile-overlay.is-open {
		display: block;
		pointer-events: auto;
	}

	.preview-price-mobile-overlay__backdrop {
		position: fixed;
		inset: 0;
		background: var(--section-warm);
		opacity: 0;
		pointer-events: auto;
	}

	.preview-price-card--mobile-overlay-card {
		--price-icon-column: 5.1rem;
		--price-column-gap: 1rem;
		--price-card-padding-x: 1.15rem;
		--price-card-padding-bottom: 1.2rem;
		position: fixed !important;
		z-index: 1;
		display: block !important;
		box-sizing: border-box;
		min-width: 0 !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 0;
		box-shadow: none !important;
		text-align: left;
		transform-origin: center center;
		transition: none !important;
		-webkit-transform-style: preserve-3d;
		transform-style: preserve-3d;
		-webkit-backface-visibility: visible;
		backface-visibility: visible;
		cursor: pointer;
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__flip {
		position: relative;
		display: block !important;
		width: 100%;
		height: 100%;
		min-height: 0;
		transform-style: preserve-3d;
		-webkit-transform-style: preserve-3d;
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__front,
	.preview-price-card--mobile-overlay-card .preview-price-card__back {
		position: absolute;
		inset: 0;
		box-sizing: border-box;
		width: 100%;
		height: 100%;
		margin: 0;
		border-radius: var(--radius-large);
		-webkit-backface-visibility: hidden;
		backface-visibility: hidden;
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__front {
		display: flex !important;
		flex-direction: column;
		align-items: stretch;
		padding: 0;
		background: rgba(255, 255, 255, 0.9);
		box-shadow: 0 16px 38px rgba(63, 59, 54, 0.07);
		transform: rotateX(0deg);
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__front .preview-price-card__content {
		flex: 1 1 auto;
		display: grid !important;
		width: 100%;
		box-sizing: border-box;
		grid-template-columns: var(--price-icon-column) 1px minmax(0, 1fr);
		grid-template-rows: auto auto auto;
		column-gap: var(--price-column-gap);
		row-gap: 0.62rem;
		align-items: center;
		justify-items: start;
		padding: 1.2rem var(--price-card-padding-x) var(--price-card-padding-bottom);
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__back {
		display: flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: flex-start;
		gap: 0.45rem;
		overflow: hidden;
		padding: 1.15rem 0.8rem;
		background: rgba(255, 255, 255, 0.96);
		box-shadow: 0 20px 55px rgba(63, 59, 54, 0.14);
		text-align: center;
		transform: rotateX(180deg);
	}

	.preview-price-card--mobile-overlay-card.is-mobile-price-measuring {
		height: auto !important;
		visibility: hidden;
	}

	.preview-price-card--mobile-overlay-card.is-mobile-price-measuring .preview-price-card__flip {
		height: auto !important;
	}

	.preview-price-card--mobile-overlay-card.is-mobile-price-measuring .preview-price-card__front {
		display: none !important;
	}

	.preview-price-card--mobile-overlay-card.is-mobile-price-measuring .preview-price-card__back {
		position: static;
		inset: auto;
		height: auto;
		min-height: 0;
		transform: none;
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__back h3 {
		display: flex;
		align-items: center;
		justify-content: center;
		align-self: center;
		width: 100%;
		min-height: 3.1rem;
		margin: 0;
		font-size: clamp(1.4rem, 6vw, 1.8rem);
		line-height: 1.06;
		text-align: center;
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__back .preview-price-card__amount {
		min-height: 0;
		margin: 0;
		font-size: clamp(2rem, 9vw, 2.7rem);
		line-height: 0.98;
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__back .preview-price-card__qr {
		display: block;
		width: clamp(140px, 42vw, 190px);
		height: clamp(140px, 42vw, 190px);
		aspect-ratio: 1 / 1;
		flex: 0 0 auto;
		object-fit: contain;
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__payment-label,
	.preview-price-card--mobile-overlay-card .preview-price-card__account,
	.preview-price-card--mobile-overlay-card .preview-price-card__instruction {
		width: 100%;
		margin: 0;
		line-height: 1.25;
		text-align: center;
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__payment-label {
		color: rgba(63, 59, 54, 0.64);
		font-size: 0.78rem;
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__account {
		color: #777154;
		font-size: 1rem;
		font-weight: 600;
		letter-spacing: 0.02em;
	}

	.preview-price-card--mobile-overlay-card .preview-price-card__instruction {
		max-width: 19rem;
		color: rgba(63, 59, 54, 0.68);
		font-size: 0.7rem;
	}

	.preview-price-card--mobile-overlay-card.is-mobile-price-opening .preview-price-card__flip {
		animation: preview-price-mobile-open-first 160ms cubic-bezier(0.42, 0, 0.75, 0.45) both;
	}

	.preview-price-card--mobile-overlay-card.is-mobile-price-opening {
		animation: preview-price-mobile-shell-open-first 160ms ease-in-out both;
	}

	.preview-price-mobile-overlay.is-mobile-price-opening .preview-price-mobile-overlay__backdrop {
		animation: preview-price-mobile-backdrop-open-first 160ms ease-out both;
	}

	.preview-price-mobile-overlay.is-mobile-price-opening-second .preview-price-mobile-overlay__backdrop {
		animation: preview-price-mobile-backdrop-open-second 160ms ease-in-out both;
	}

	.preview-price-card--mobile-overlay-card.is-mobile-price-opening-second .preview-price-card__flip {
		animation: preview-price-mobile-open-second 160ms cubic-bezier(0.25, 0.55, 0.58, 1) both;
	}

	.preview-price-card--mobile-overlay-card.is-mobile-price-closing .preview-price-card__flip {
		animation: preview-price-mobile-close-first 160ms cubic-bezier(0.42, 0, 0.75, 0.45) both;
	}

	.preview-price-card--mobile-overlay-card.is-mobile-price-closing {
		animation: preview-price-mobile-shell-close-first 160ms ease-in-out both;
	}

	.preview-price-mobile-overlay.is-mobile-price-closing .preview-price-mobile-overlay__backdrop {
		animation: preview-price-mobile-backdrop-close-first 160ms ease-in-out both;
	}

	.preview-price-mobile-overlay.is-mobile-price-closing-second .preview-price-mobile-overlay__backdrop {
		animation: preview-price-mobile-backdrop-close-second 160ms ease-out both;
	}

	.preview-price-card--mobile-overlay-card.is-mobile-price-closing-second .preview-price-card__flip {
		animation: preview-price-mobile-close-second 160ms cubic-bezier(0.25, 0.55, 0.58, 1) both;
	}

	.preview-price-card--mobile-overlay-card.is-mobile-price-open .preview-price-card__flip {
		transform: perspective(1100px) rotateX(180deg);
	}

	@keyframes preview-price-mobile-open-first {
		0% { transform: perspective(1100px) rotateX(0deg); }
		100% { transform: perspective(1100px) rotateX(90deg); }
	}

	@keyframes preview-price-mobile-shell-open-first {
		0% {
			top: var(--mobile-source-top);
			left: var(--mobile-source-left);
		}
		100% {
			top: var(--mobile-target-top);
			left: var(--mobile-target-left);
		}
	}

	@keyframes preview-price-mobile-open-second {
		0% { transform: perspective(1100px) rotateX(90deg); }
		100% { transform: perspective(1100px) rotateX(180deg); }
	}

	@keyframes preview-price-mobile-close-first {
		0% { transform: perspective(1100px) rotateX(180deg); }
		100% { transform: perspective(1100px) rotateX(90deg); }
	}

	@keyframes preview-price-mobile-shell-close-first {
		0% {
			top: var(--mobile-target-top);
			left: var(--mobile-target-left);
		}
		100% {
			top: var(--mobile-source-top);
			left: var(--mobile-source-left);
		}
	}

	@keyframes preview-price-mobile-backdrop-open-first {
		0% { opacity: 0; }
		100% { opacity: 0.58; }
	}

	@keyframes preview-price-mobile-backdrop-open-second {
		0% { opacity: 0.58; }
		72% { opacity: 0.97; }
		100% { opacity: 1; }
	}

	@keyframes preview-price-mobile-backdrop-close-first {
		0% { opacity: 1; }
		100% { opacity: 0.58; }
	}

	@keyframes preview-price-mobile-backdrop-close-second {
		0% { opacity: 0.58; }
		68% { opacity: 0.06; }
		100% { opacity: 0; }
	}

	@keyframes preview-price-mobile-close-second {
		0% { transform: perspective(1100px) rotateX(90deg); }
		100% { transform: none; }
	}
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
	.preview-price-card--mobile-overlay-card.is-mobile-price-opening .preview-price-card__flip,
	.preview-price-card--mobile-overlay-card.is-mobile-price-opening-second .preview-price-card__flip,
	.preview-price-card--mobile-overlay-card.is-mobile-price-closing .preview-price-card__flip,
	.preview-price-card--mobile-overlay-card.is-mobile-price-closing-second .preview-price-card__flip {
		animation: none !important;
	}
}
