/* ========================================================================
   HOUSE OF REFORMER — BOOKING EXPERIENCE v0.69.2
   Premium customer booking UI. Intentionally owns its colours, controls and
   typography so WordPress/theme button/link/form defaults cannot bleed in.
   ======================================================================== */

.hor-has-booking-page,
.hor-has-booking-page .site,
.hor-has-booking-page .site-content,
.hor-has-booking-page .page-content,
.hor-has-booking-page main {
	background: #faf6f1;
}

.hor-has-booking-page .page-header {
	background: #faf6f1 !important;
	border: 0 !important;
	margin: 0 !important;
	padding: clamp(58px, 8vw, 92px) 22px 24px !important;
	text-align: center !important;
}

.hor-has-booking-page .page-header::before {
	content: "House of Reformer — Pilates · Movement · Community";
	display: block;
	margin-bottom: 14px;
	font: 700 10px/1.4 'Manrope', Arial, sans-serif;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: #8a7865;
}

.hor-has-booking-page .page-header .entry-title {
	margin: 0 !important;
	font-family: 'Noto Serif Display', Georgia, serif !important;
	font-size: clamp(38px, 6vw, 62px) !important;
	font-weight: 400 !important;
	font-style: italic !important;
	line-height: 1 !important;
	letter-spacing: -.025em !important;
	color: #211d18 !important;
}

.hor-fe {
	--hor-fe-bg: #faf6f1;
	--hor-fe-surface: #fffdf9;
	--hor-fe-surface-soft: #f1e9de;
	--hor-fe-surface-deep: #e7dbcd;
	--hor-fe-ink: #211d18;
	--hor-fe-ink-soft: #4f473f;
	--hor-fe-muted: #786d62;
	--hor-fe-faint: #9b8e80;
	--hor-fe-line: rgba(59, 49, 39, .13);
	--hor-fe-line-strong: rgba(59, 49, 39, .24);
	--hor-fe-accent: #a58d70;
	--hor-fe-accent-deep: #826a52;
	--hor-fe-accent-soft: #ded0bf;
	--hor-fe-success: #75806d;
	--hor-fe-success-soft: #e5e9e0;
	--hor-fe-warning: #a48358;
	--hor-fe-warning-soft: #f0e5d5;
	--hor-fe-danger: #986a62;
	--hor-fe-danger-soft: #f0dfdc;
	--hor-fe-serif: 'Noto Serif Display', Georgia, serif;
	--hor-fe-wordmark: 'Cormorant Garamond', Georgia, serif;
	--hor-fe-sans: 'Manrope', Arial, Helvetica, sans-serif;

	width: min(1180px, calc(100% - 28px));
	max-width: 1180px;
	margin: 0 auto clamp(70px, 8vw, 120px);
	padding: 0;
	font-family: var(--hor-fe-sans) !important;
	font-size: 15px;
	line-height: 1.55;
	color: var(--hor-fe-ink) !important;
	background: transparent;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.hor-fe *, .hor-fe *::before, .hor-fe *::after { box-sizing: border-box; }
.hor-fe img { max-width: 100%; }
.hor-fe button, .hor-fe input, .hor-fe select, .hor-fe textarea { font-family: var(--hor-fe-sans) !important; }
.hor-fe button { -webkit-appearance: none; appearance: none; }
.hor-fe a { color: var(--hor-fe-accent-deep) !important; }
.hor-fe [hidden] { display: none !important; }

/* ---- Shell ------------------------------------------------------------ */
.hor-fe-app-shell,
.hor-fe-login-shell {
	position: relative;
	isolation: isolate;
	border: 1px solid var(--hor-fe-line);
	border-radius: 28px;
	background: var(--hor-fe-surface);
	box-shadow: 0 30px 80px rgba(75, 60, 45, .09);
	overflow: hidden;
}

.hor-fe-app-shell::before,
.hor-fe-login-shell::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	opacity: .045;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E");
}

.hor-fe-app-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 28px 34px 24px;
	background: linear-gradient(135deg, #fffdf9 0%, #f4ece1 100%);
	border-bottom: 1px solid var(--hor-fe-line);
}

.hor-fe-app-wordmark,
.hor-fe-login-wordmark {
	font-family: var(--hor-fe-wordmark) !important;
	font-size: clamp(28px, 3.6vw, 43px);
	font-weight: 500;
	line-height: .95;
	letter-spacing: -.025em;
	color: var(--hor-fe-ink) !important;
}
.hor-fe-app-wordmark em,
.hor-fe-login-wordmark em { font-weight: 400; }

.hor-fe-section-eyebrow,
.hor-fe-eyebrow {
	margin: 0 0 10px !important;
	font: 700 9.5px/1.4 var(--hor-fe-sans) !important;
	letter-spacing: .22em !important;
	text-transform: uppercase !important;
	color: var(--hor-fe-accent-deep) !important;
}

.hor-fe-credits-bar {
	min-width: 148px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 11px 12px 11px 16px;
	border: 1px solid var(--hor-fe-line-strong);
	border-radius: 999px;
	background: rgba(255,253,249,.74) !important;
	color: var(--hor-fe-ink) !important;
}
.hor-fe-credits-label { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--hor-fe-muted); }
.hor-fe-credits-bar strong {
	min-width: 34px;
	height: 34px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--hor-fe-accent-deep) !important;
	color: #fffaf4 !important;
	font-size: 14px;
	font-weight: 700;
}

/* ---- Navigation ------------------------------------------------------- */
.hor-fe-tabs {
	position: sticky;
	top: 0;
	z-index: 20;
	display: flex;
	gap: 5px;
	overflow-x: auto;
	padding: 11px 18px;
	margin: 0 !important;
	background: rgba(255,253,249,.94) !important;
	border: 0 !important;
	border-bottom: 1px solid var(--hor-fe-line) !important;
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	scrollbar-width: none;
}
.hor-fe-tabs::-webkit-scrollbar { display: none; }
.hor-fe-tab {
	flex: 0 0 auto;
	margin: 0 !important;
	padding: 10px 15px !important;
	border: 1px solid transparent !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--hor-fe-muted) !important;
	box-shadow: none !important;
	font-size: 10.5px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: .055em !important;
	text-transform: uppercase !important;
	white-space: nowrap;
	cursor: pointer;
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.hor-fe-tab:hover { color: var(--hor-fe-ink) !important; background: var(--hor-fe-surface-soft) !important; }
.hor-fe-tab.active {
	background: var(--hor-fe-accent-deep) !important;
	border-color: var(--hor-fe-accent-deep) !important;
	color: #fffaf4 !important;
}

.hor-fe-panels { min-height: 520px; padding: clamp(28px, 4vw, 48px); }
.hor-fe-panel { display: none; }
.hor-fe-panel.active { display: block; animation: hor-fe-panel-in .45s cubic-bezier(.16,1,.3,1); }
@keyframes hor-fe-panel-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

.hor-fe-account-footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 18px 32px;
	border-top: 1px solid var(--hor-fe-line);
	background: var(--hor-fe-surface-soft);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--hor-fe-muted);
}
.hor-fe-account-footer a { text-decoration: none !important; border-bottom: 1px solid var(--hor-fe-accent-deep); }

/* ---- Section headings ------------------------------------------------- */
.hor-fe-section-head { max-width: 730px; margin: 0 0 clamp(26px, 4vw, 42px); }
.hor-fe-section-title {
	margin: 0 !important;
	font-family: var(--hor-fe-serif) !important;
	font-size: clamp(34px, 4.6vw, 55px) !important;
	font-weight: 400 !important;
	line-height: 1.02 !important;
	letter-spacing: -.035em !important;
	color: var(--hor-fe-ink) !important;
}
.hor-fe-section-title em { font-weight: 300; color: var(--hor-fe-accent-deep) !important; }
.hor-fe-section-copy {
	max-width: 570px;
	margin: 15px 0 0 !important;
	font-size: 14px;
	line-height: 1.75;
	color: var(--hor-fe-muted) !important;
}

/* ---- Home ------------------------------------------------------------- */
.hor-fe-home-hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0,1fr) 190px;
	align-items: center;
	gap: 34px;
	min-height: 285px;
	padding: clamp(30px, 5vw, 54px);
	margin-bottom: 22px;
	border: 1px solid var(--hor-fe-line);
	border-radius: 22px;
	background: linear-gradient(135deg, #f3eadf, #fffdf9 67%);
	overflow: hidden;
}
.hor-fe-home-hero h2 {
	max-width: 650px;
	margin: 0 !important;
	font: 400 clamp(38px, 5.4vw, 65px)/.98 var(--hor-fe-serif) !important;
	letter-spacing: -.04em;
	color: var(--hor-fe-ink) !important;
}
.hor-fe-home-hero h2 em { color: var(--hor-fe-accent-deep) !important; font-weight: 300; }
.hor-fe-home-hero p:last-child { max-width: 520px; margin: 18px 0 0; color: var(--hor-fe-muted); line-height: 1.75; }
.hor-fe-home-orbit {
	width: 170px;
	height: 170px;
	display: grid;
	place-items: center;
	border: 1px solid var(--hor-fe-line-strong);
	border-radius: 50%;
	position: relative;
}
.hor-fe-home-orbit::before, .hor-fe-home-orbit::after { content: ""; position: absolute; border: 1px solid var(--hor-fe-line); border-radius: 50%; }
.hor-fe-home-orbit::before { width: 126px; height: 126px; }
.hor-fe-home-orbit::after { width: 84px; height: 84px; }
.hor-fe-home-orbit span { font: italic 400 26px/1 var(--hor-fe-wordmark); color: var(--hor-fe-accent-deep); }

.hor-fe-home-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.hor-fe-home-action {
	min-height: 142px;
	display: grid !important;
	grid-template-columns: auto 1fr auto;
	align-items: start;
	gap: 18px;
	padding: 24px !important;
	border: 1px solid var(--hor-fe-line) !important;
	border-radius: 18px !important;
	background: var(--hor-fe-surface) !important;
	color: var(--hor-fe-ink) !important;
	box-shadow: none !important;
	text-align: left !important;
	cursor: pointer;
	transition: transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease, border-color .35s ease, background .35s ease;
}
.hor-fe-home-action:hover { transform: translateY(-4px); border-color: var(--hor-fe-accent) !important; box-shadow: 0 18px 38px rgba(79,62,45,.09) !important; background: #fffaf4 !important; }
.hor-fe-home-action-index { font: italic 500 17px/1 var(--hor-fe-wordmark); color: var(--hor-fe-accent); }
.hor-fe-home-action-title { margin-top: -2px; font: 500 22px/1.15 var(--hor-fe-serif); letter-spacing: -.02em; }
.hor-fe-home-action-desc { margin-top: 9px; max-width: 280px; font-size: 12.5px; line-height: 1.55; color: var(--hor-fe-muted); }
.hor-fe-home-action b { font-size: 20px; font-weight: 400; color: var(--hor-fe-accent-deep); transition: transform .3s ease; }
.hor-fe-home-action:hover b { transform: translateX(5px); }

/* ---- Controls --------------------------------------------------------- */
.hor-fe-btn,
.hor-fe .hor-tour-submit {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	min-height: 44px;
	padding: 12px 19px !important;
	border: 1px solid var(--hor-fe-accent-deep) !important;
	border-radius: 999px !important;
	background: var(--hor-fe-accent-deep) !important;
	color: #fffaf4 !important;
	box-shadow: none !important;
	font-size: 10.5px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	white-space: nowrap;
	cursor: pointer;
	transition: transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
}
.hor-fe-btn:hover, .hor-fe .hor-tour-submit:hover { background: #6f5a46 !important; color: #fffaf4 !important; transform: translateY(-2px); box-shadow: 0 10px 24px rgba(79,62,45,.16) !important; }
.hor-fe-btn:active, .hor-fe .hor-tour-submit:active { transform: translateY(0) scale(.98); }
.hor-fe-btn:disabled, .hor-fe .hor-tour-submit:disabled { opacity: .48 !important; cursor: not-allowed !important; transform: none !important; box-shadow: none !important; }
.hor-fe-btn-outline { background: transparent !important; color: var(--hor-fe-accent-deep) !important; border-color: var(--hor-fe-line-strong) !important; }
.hor-fe-btn-outline:hover { background: var(--hor-fe-surface-soft) !important; color: var(--hor-fe-ink) !important; }
.hor-fe-btn-soft, .hor-fe-btn-membership { background: var(--hor-fe-surface-soft) !important; color: var(--hor-fe-ink) !important; border-color: var(--hor-fe-line) !important; }
.hor-fe-btn-soft:hover, .hor-fe-btn-membership:hover { background: var(--hor-fe-surface-deep) !important; color: var(--hor-fe-ink) !important; }
.hor-fe-btn-full { width: 100% !important; }
.hor-fe-btn.is-complete { background: var(--hor-fe-success) !important; border-color: var(--hor-fe-success) !important; }
.hor-fe-text-action,
.hor-fe-more-info-toggle,
.hor-fe-category-clear {
	padding: 0 !important;
	border: 0 !important;
	border-bottom: 1px solid currentColor !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--hor-fe-accent-deep) !important;
	box-shadow: none !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	cursor: pointer;
}

.hor-fe-field, .hor-tour-field { margin: 0; }
.hor-fe-field label, .hor-tour-field label {
	display: block;
	margin: 0 0 7px;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .13em;
	text-transform: uppercase;
	color: var(--hor-fe-muted);
}
.hor-fe-field input,
.hor-fe-field select,
.hor-tour-field input,
.hor-fe-filter-bar select,
.hor-fe-addon-controls select,
.hor-fe-gift-card input {
	width: 100%;
	min-height: 48px;
	padding: 11px 13px !important;
	border: 1px solid var(--hor-fe-line-strong) !important;
	border-radius: 11px !important;
	background: #fffdf9 !important;
	color: var(--hor-fe-ink) !important;
	box-shadow: none !important;
	font-size: 13px !important;
	line-height: 1.2;
	outline: none !important;
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.hor-fe-field input:focus,
.hor-fe-field select:focus,
.hor-tour-field input:focus,
.hor-fe-filter-bar select:focus,
.hor-fe-gift-card input:focus { border-color: var(--hor-fe-accent) !important; box-shadow: 0 0 0 3px rgba(165,141,112,.13) !important; background: #fff !important; }

/* ---- Login ------------------------------------------------------------ */
.hor-fe-login-shell { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 610px; }
.hor-fe-login-editorial {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(42px, 6vw, 78px);
	background: radial-gradient(circle at 10% 85%, rgba(165,141,112,.22), transparent 38%), linear-gradient(145deg, #ede2d4, #faf6f1 68%);
	overflow: hidden;
}
.hor-fe-login-editorial::after {
	content: "R";
	position: absolute;
	right: -20px;
	bottom: -78px;
	font: italic 400 310px/.8 var(--hor-fe-wordmark);
	color: rgba(130,106,82,.065);
	pointer-events: none;
}
.hor-fe-login-editorial h2 { max-width: 560px; margin: 54px 0 0 !important; font: 400 clamp(44px, 6vw, 76px)/.95 var(--hor-fe-serif) !important; letter-spacing: -.045em; color: var(--hor-fe-ink) !important; }
.hor-fe-login-editorial h2 em { color: var(--hor-fe-accent-deep) !important; font-weight: 300; }
.hor-fe-login-editorial > p:last-of-type { max-width: 470px; margin: 24px 0 0; color: var(--hor-fe-ink-soft); line-height: 1.8; }
.hor-fe-login-points { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 34px; }
.hor-fe-login-points span { padding: 7px 11px; border: 1px solid var(--hor-fe-line-strong); border-radius: 999px; background: rgba(255,253,249,.45); font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--hor-fe-muted); }
.hor-fe-login-card { display: flex; flex-direction: column; justify-content: center; padding: clamp(38px, 5vw, 64px); background: #fffdf9; }
.hor-fe-login-card h3, .hor-tour-title { margin: 0 0 10px !important; font: 400 clamp(31px, 3.4vw, 43px)/1 var(--hor-fe-serif) !important; letter-spacing: -.03em; color: var(--hor-fe-ink) !important; }
.hor-fe-login-copy { margin: 0 0 28px; max-width: 420px; color: var(--hor-fe-muted); font-size: 13px; line-height: 1.7; }
.hor-fe-login-card .hor-fe-field { margin-bottom: 15px; }
.hor-fe-tour-link { display: block; margin-top: 18px; text-align: center; font-size: 11px; text-decoration: none !important; }
.hor-fe-tour-link:hover { text-decoration: underline !important; }
.hor-fe-error, .hor-tour-error { min-height: 18px; margin: 7px 0 9px; color: var(--hor-fe-danger) !important; font-size: 11px; font-weight: 700; }
.hor-fe-login-shell--tour .hor-tour-form { padding: 0; border: 0; background: transparent; }

/* ---- Filters + date navigation --------------------------------------- */
.hor-fe-filter-bar {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 12px;
	margin: 0 0 22px;
	padding: 14px;
	border: 1px solid var(--hor-fe-line);
	border-radius: 16px;
	background: var(--hor-fe-surface-soft);
}
.hor-fe-filter-bar--single { grid-template-columns: minmax(220px, 360px); }
.hor-fe-filter-bar label > span { display: block; margin: 0 0 5px 3px; font-size: 8.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--hor-fe-muted); }
.hor-fe-filter-bar select { min-height: 42px; background-color: #fffdf9 !important; }

.hor-fe-date-strip { display: flex; gap: 9px; overflow-x: auto; padding: 3px 2px 16px; margin: 0 0 13px; scrollbar-width: none; scroll-snap-type: x proximity; }
.hor-fe-date-strip::-webkit-scrollbar { display: none; }
.hor-fe-date-chip {
	flex: 0 0 68px;
	min-height: 82px;
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0;
	padding: 9px 5px !important;
	border: 1px solid var(--hor-fe-line) !important;
	border-radius: 16px !important;
	background: var(--hor-fe-surface) !important;
	color: var(--hor-fe-ink) !important;
	box-shadow: none !important;
	cursor: pointer;
	scroll-snap-align: start;
	transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.hor-fe-date-chip:hover { transform: translateY(-2px); border-color: var(--hor-fe-accent) !important; }
.hor-fe-date-chip.active { background: var(--hor-fe-accent-deep) !important; border-color: var(--hor-fe-accent-deep) !important; color: #fffaf4 !important; }
.hor-fe-date-chip-day { font-size: 8.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--hor-fe-muted); }
.hor-fe-date-chip-num { font: 500 25px/1.05 var(--hor-fe-serif); }
.hor-fe-date-chip-month { font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--hor-fe-faint); }
.hor-fe-date-chip.active .hor-fe-date-chip-day, .hor-fe-date-chip.active .hor-fe-date-chip-month { color: rgba(255,250,244,.74); }

/* ---- Reusable cards --------------------------------------------------- */
.hor-fe-card {
	position: relative;
	margin: 0;
	padding: 0;
	border: 1px solid var(--hor-fe-line) !important;
	border-radius: 18px !important;
	background: var(--hor-fe-surface) !important;
	color: var(--hor-fe-ink) !important;
	box-shadow: 0 1px 0 rgba(71,56,42,.02) !important;
	overflow: hidden;
	transition: transform .35s cubic-bezier(.16,1,.3,1), border-color .3s ease, box-shadow .35s ease;
}
.hor-fe-card:hover { transform: translateY(-4px); border-color: rgba(130,106,82,.37) !important; box-shadow: 0 18px 38px rgba(75,60,45,.09) !important; }
.hor-fe-card.is-highlighted { border-color: var(--hor-fe-accent-deep) !important; box-shadow: 0 0 0 3px rgba(130,106,82,.12) !important; }
.hor-fe-card-body { padding: 20px; }
.hor-fe-card-media { position: relative; overflow: hidden; background: var(--hor-fe-surface-soft); }
.hor-fe-card-photo { display: block; width: 100%; height: 188px; object-fit: cover; transition: transform .8s cubic-bezier(.16,1,.3,1); }
.hor-fe-card:hover .hor-fe-card-photo { transform: scale(1.035); }
.hor-fe-card-media::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 65%, rgba(36,29,22,.24)); }
.hor-fe-card-media-label { position: absolute; left: 14px; bottom: 13px; z-index: 2; padding: 6px 10px; border: 1px solid rgba(255,255,255,.38); border-radius: 999px; background: rgba(255,253,249,.86); backdrop-filter: blur(7px); color: var(--hor-fe-ink); font-size: 8px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

.hor-fe-day-cards,
.hor-fe-category-session-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; align-items: stretch; }
.hor-fe-day-cards > .hor-fe-empty-state,
.hor-fe-category-session-list > .hor-fe-empty-state { grid-column: 1 / -1; }

.hor-fe-class-card { height: 100%; }
.hor-fe-class-card .hor-fe-card-media { aspect-ratio: 4 / 5; }
.hor-fe-class-card .hor-fe-card-photo { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hor-fe-class-card .hor-fe-card-body { display: flex; flex-direction: column; min-height: 258px; }
.hor-fe-class-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 17px; }
.hor-fe-class-time { display: flex; flex-direction: column; gap: 2px; }
.hor-fe-class-time small { font-size: 8px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--hor-fe-muted); }
.hor-fe-class-time strong { font: 500 29px/1 var(--hor-fe-serif); letter-spacing: -.02em; color: var(--hor-fe-ink); }
.hor-fe-class-name { margin: 0 !important; font: 500 23px/1.12 var(--hor-fe-serif) !important; letter-spacing: -.02em !important; color: var(--hor-fe-ink) !important; }
.hor-fe-class-meta-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin-top: 15px; }
.hor-fe-class-meta-list > span { padding: 9px 10px; border: 1px solid var(--hor-fe-line); border-radius: 10px; background: var(--hor-fe-surface-soft); color: var(--hor-fe-ink-soft); font-size: 11px; line-height: 1.35; }
.hor-fe-class-meta-list b { display: block; margin-bottom: 2px; font-size: 7.5px; letter-spacing: .11em; text-transform: uppercase; color: var(--hor-fe-muted); }
.hor-fe-sub-badge { display: inline-block; margin-left: 3px; font-style: normal; font-size: 7px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--hor-fe-accent-deep); }
.hor-fe-class-actions { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: auto; padding-top: 19px; }
.hor-fe-class-actions .hor-fe-btn { min-width: 124px; }
.hor-fe-more-info-panel { margin-top: 15px; padding: 15px; border: 1px solid var(--hor-fe-line); border-radius: 12px; background: var(--hor-fe-surface-soft); color: var(--hor-fe-ink-soft); font-size: 12px; line-height: 1.7; }
.hor-fe-more-info-panel p { margin: 0 0 10px !important; color: inherit !important; }
.hor-fe-more-info-panel p:last-child { margin-bottom: 0 !important; }
.hor-fe-instructor-mini { display: flex; align-items: center; gap: 10px; margin: 13px 0 8px; }
.hor-fe-instructor-mini img, .hor-fe-instructor-initial { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; object-fit: cover; }
.hor-fe-instructor-initial { display: grid; place-items: center; background: var(--hor-fe-accent-soft); font: 500 19px/1 var(--hor-fe-serif); }
.hor-fe-instructor-mini strong { display: block; font-size: 12px; }
.hor-fe-instructor-mini small { display: block; margin-top: 2px; color: var(--hor-fe-muted); font-size: 9px; }

.hor-fe-pill { display: inline-flex; align-items: center; min-height: 24px; padding: 5px 9px; border: 1px solid transparent; border-radius: 999px; font-size: 8px; font-weight: 700; line-height: 1; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; }
.hor-fe-pill-green { background: var(--hor-fe-success-soft) !important; border-color: rgba(117,128,109,.2) !important; color: #596451 !important; }
.hor-fe-pill-red { background: var(--hor-fe-danger-soft) !important; border-color: rgba(152,106,98,.2) !important; color: #7d554e !important; }
.hor-fe-pill-warm { background: var(--hor-fe-warning-soft) !important; border-color: rgba(164,131,88,.22) !important; color: #7b603e !important; }
.hor-fe-pill-neutral { background: var(--hor-fe-surface-soft) !important; border-color: var(--hor-fe-line) !important; color: var(--hor-fe-muted) !important; }

/* Focused class type */
.hor-fe-category-focus {
	display: grid;
	grid-template-columns: minmax(230px,.7fr) 1fr;
	gap: clamp(24px, 4vw, 46px);
	align-items: center;
	margin-bottom: 20px;
	padding: clamp(20px, 3vw, 30px);
	border: 1px solid var(--hor-fe-line);
	border-radius: 22px;
	background: linear-gradient(135deg, var(--hor-fe-surface-soft), #fffdf9);
}
.hor-fe-category-focus > img { width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: center; border-radius: 16px; }
.hor-fe-category-focus h2 { margin: 0 !important; font: 400 clamp(34px,4.2vw,54px)/1 var(--hor-fe-serif) !important; letter-spacing: -.035em; color: var(--hor-fe-ink) !important; }
.hor-fe-category-focus > div > p:not(.hor-fe-section-eyebrow) { max-width: 580px; margin: 13px 0 0; color: var(--hor-fe-muted); font-size: 13px; line-height: 1.7; }
.hor-fe-category-focus-meta { display: flex; flex-wrap: wrap; gap: 7px; margin: 16px 0; }
.hor-fe-category-focus-meta span { padding: 6px 9px; border: 1px solid var(--hor-fe-line); border-radius: 999px; background: rgba(255,253,249,.72); font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--hor-fe-muted); }
.hor-fe-focused-date { display: flex; flex-direction: column; gap: 3px; }
.hor-fe-focused-date strong { font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--hor-fe-muted); }
.hor-fe-focused-date span { font: 500 29px/1 var(--hor-fe-serif); color: var(--hor-fe-ink); }



/* ---- Studio-first booking journey ------------------------------------- */
.hor-fe-booking-steps {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 10px;
	margin: -2px 0 24px;
}
.hor-fe-booking-step {
	display: flex;
	align-items: center;
	gap: 11px;
	min-height: 52px;
	padding: 10px 14px;
	border: 1px solid var(--hor-fe-line);
	border-radius: 14px;
	background: rgba(255,253,249,.52);
	color: var(--hor-fe-faint);
}
.hor-fe-booking-step b {
	display: grid;
	place-items: center;
	width: 29px;
	height: 29px;
	flex: 0 0 29px;
	border: 1px solid var(--hor-fe-line);
	border-radius: 50%;
	font: 700 8px/1 var(--hor-fe-sans);
	letter-spacing: .06em;
}
.hor-fe-booking-step span {
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}
.hor-fe-booking-step.is-active {
	border-color: rgba(130,106,82,.3);
	background: var(--hor-fe-surface-soft);
	color: var(--hor-fe-ink);
}
.hor-fe-booking-step.is-active b {
	border-color: var(--hor-fe-accent);
	background: var(--hor-fe-accent-deep);
	color: #fffaf4;
}

.hor-fe-studio-category-context {
	display: grid;
	grid-template-columns: 86px 1fr;
	gap: 16px;
	align-items: center;
	margin: 0 0 18px;
	padding: 12px;
	border: 1px solid var(--hor-fe-line);
	border-radius: 16px;
	background: linear-gradient(135deg, #fffdf9, var(--hor-fe-surface-soft));
}
.hor-fe-studio-category-context img {
	width: 86px;
	height: auto;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: center;
	border-radius: 11px;
}
.hor-fe-studio-category-context strong {
	display: block;
	font: 500 22px/1.05 var(--hor-fe-serif);
	color: var(--hor-fe-ink);
}
.hor-fe-studio-category-context span {
	display: block;
	margin-top: 5px;
	color: var(--hor-fe-muted);
	font-size: 11px;
}
.hor-fe-studio-category-context .hor-fe-section-eyebrow { margin-bottom: 5px; }

.hor-fe-studio-picker {
	display: grid;
	grid-template-columns: repeat(2,minmax(0,1fr));
	gap: 16px;
}
.hor-fe-studio-choice {
	display: grid !important;
	grid-template-columns: minmax(150px,.78fr) 1fr;
	min-height: 230px;
	padding: 0 !important;
	overflow: hidden;
	border: 1px solid var(--hor-fe-line) !important;
	border-radius: 20px !important;
	background: var(--hor-fe-surface) !important;
	color: var(--hor-fe-ink) !important;
	box-shadow: 0 1px 0 rgba(71,56,42,.02) !important;
	text-align: left !important;
	cursor: pointer;
	transition: transform .35s cubic-bezier(.16,1,.3,1), border-color .3s ease, box-shadow .35s ease !important;
}
.hor-fe-studio-choice:hover,
.hor-fe-studio-choice:focus-visible {
	transform: translateY(-5px);
	border-color: rgba(130,106,82,.42) !important;
	box-shadow: 0 22px 46px rgba(75,60,45,.11) !important;
	outline: none !important;
}
.hor-fe-studio-choice-media {
	position: relative;
	min-height: 230px;
	overflow: hidden;
	background: linear-gradient(145deg, var(--hor-fe-surface-deep), var(--hor-fe-accent-soft));
}
.hor-fe-studio-choice-media img {
	width: 100%;
	height: 100%;
	min-height: 230px;
	object-fit: cover;
	display: block;
	transition: transform .8s cubic-bezier(.16,1,.3,1);
}
.hor-fe-studio-choice:hover .hor-fe-studio-choice-media img { transform: scale(1.045); }
.hor-fe-studio-choice-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg,transparent 48%,rgba(40,31,23,.28));
	pointer-events: none;
}
.hor-fe-studio-choice-media > span {
	position: absolute;
	z-index: 2;
	left: 14px;
	bottom: 13px;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 1px solid rgba(255,255,255,.52);
	border-radius: 50%;
	background: rgba(255,253,249,.88);
	backdrop-filter: blur(8px);
	font-size: 8px;
	font-weight: 800;
	letter-spacing: .08em;
	color: var(--hor-fe-ink);
}
.hor-fe-studio-choice-media--empty {
	display: grid;
	place-items: center;
	padding: 22px;
}
.hor-fe-studio-choice-media--empty b {
	position: relative;
	z-index: 2;
	font: 500 25px/1 var(--hor-fe-wordmark);
	color: var(--hor-fe-ink);
}
.hor-fe-studio-choice-copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 24px;
}
.hor-fe-studio-choice-copy h3 {
	margin: 0 !important;
	font: 500 clamp(27px,3vw,37px)/1 var(--hor-fe-serif) !important;
	letter-spacing: -.03em !important;
	color: var(--hor-fe-ink) !important;
}
.hor-fe-studio-choice-copy > p:not(.hor-fe-section-eyebrow) {
	margin: 11px 0 22px !important;
	color: var(--hor-fe-muted) !important;
	font-size: 11.5px !important;
	line-height: 1.6 !important;
}
.hor-fe-studio-choice-copy > span {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-top: auto;
	padding-top: 15px;
	border-top: 1px solid var(--hor-fe-line);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .11em;
	text-transform: uppercase;
	color: var(--hor-fe-accent-deep);
}
.hor-fe-studio-choice-copy > span b {
	font: 500 19px/1 var(--hor-fe-serif);
	transition: transform .25s ease;
}
.hor-fe-studio-choice:hover .hor-fe-studio-choice-copy > span b { transform: translateX(4px); }

.hor-fe-studio-context {
	display: grid;
	grid-template-columns: 94px minmax(0,1fr) auto;
	gap: 17px;
	align-items: center;
	margin: 0 0 22px;
	padding: 13px;
	border: 1px solid var(--hor-fe-line);
	border-radius: 18px;
	background: linear-gradient(135deg,var(--hor-fe-surface-soft),#fffdf9);
}
.hor-fe-studio-context > img,
.hor-fe-studio-context-placeholder {
	width: 94px;
	height: 76px;
	border-radius: 12px;
	object-fit: cover;
}
.hor-fe-studio-context-placeholder {
	display: grid;
	place-items: center;
	background: var(--hor-fe-accent-soft);
	font: 600 17px/1 var(--hor-fe-wordmark);
	color: var(--hor-fe-accent-deep);
}
.hor-fe-studio-context h2 {
	margin: 0 !important;
	font: 500 28px/1.05 var(--hor-fe-serif) !important;
	letter-spacing: -.025em !important;
	color: var(--hor-fe-ink) !important;
}
.hor-fe-studio-context > div > p:not(.hor-fe-section-eyebrow) {
	margin: 6px 0 0 !important;
	color: var(--hor-fe-muted) !important;
	font-size: 10.5px !important;
	line-height: 1.55 !important;
}
.hor-fe-studio-context .hor-fe-section-eyebrow { margin-bottom: 5px; }
.hor-fe-studio-switch {
	min-height: 38px;
	padding: 9px 13px !important;
	border: 1px solid var(--hor-fe-line-strong) !important;
	border-radius: 999px !important;
	background: rgba(255,253,249,.72) !important;
	color: var(--hor-fe-accent-deep) !important;
	box-shadow: none !important;
	font-size: 8px !important;
	font-weight: 800 !important;
	letter-spacing: .1em !important;
	text-transform: uppercase !important;
	cursor: pointer;
}
.hor-fe-studio-switch:hover {
	background: var(--hor-fe-accent-deep) !important;
	border-color: var(--hor-fe-accent-deep) !important;
	color: #fffaf4 !important;
}
.hor-fe-studio-timetable-tools .hor-fe-filter-bar {
	width: min(100%,360px);
}
.hor-fe-category-focus--studio { margin-top: 4px; }

/* ---- 1:1 -------------------------------------------------------------- */
.hor-fe-1on1-instructors { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
.hor-fe-1on1-card .hor-fe-card-body { padding: 19px; }
.hor-fe-1on1-photo { display: block; width: 100%; aspect-ratio: 4/4.6; object-fit: cover; }
.hor-fe-card-subtitle { margin: 6px 0 0 !important; color: var(--hor-fe-muted) !important; font-size: 11px; }
.hor-fe-slot-preview { display: flex; flex-wrap: wrap; gap: 6px; margin: 16px 0; }
.hor-fe-1on1-slot-chip { padding: 7px 9px !important; border: 1px solid var(--hor-fe-line) !important; border-radius: 999px !important; background: var(--hor-fe-surface-soft) !important; color: var(--hor-fe-ink-soft) !important; box-shadow: none !important; font-size: 8px !important; font-weight: 700 !important; cursor: pointer; }
.hor-fe-1on1-slot-chip:hover { background: var(--hor-fe-accent-soft) !important; }
.hor-fe-muted-note { color: var(--hor-fe-muted); font-size: 10px; }
.hor-fe-1on1-picker { margin-top: 22px; padding: 24px; border: 1px solid var(--hor-fe-line); border-radius: 18px; background: var(--hor-fe-surface-soft); }
.hor-fe-picker-head h3 { margin: 0 0 18px !important; font: 500 27px/1.1 var(--hor-fe-serif) !important; color: var(--hor-fe-ink) !important; }
.hor-fe-time-grid { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }
.hor-fe-time-button { min-height: 48px; padding: 10px !important; border: 1px solid var(--hor-fe-line-strong) !important; border-radius: 11px !important; background: var(--hor-fe-surface) !important; color: var(--hor-fe-ink) !important; box-shadow: none !important; font-size: 12px !important; font-weight: 700 !important; cursor: pointer; transition: background .2s ease, color .2s ease, transform .2s ease; }
.hor-fe-time-button:hover { background: var(--hor-fe-accent-deep) !important; color: #fffaf4 !important; transform: translateY(-2px); }

/* ---- My bookings ------------------------------------------------------ */
.hor-fe-bookings-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.hor-fe-bookings-grid > .hor-fe-empty-state { grid-column: 1 / -1; }
.hor-fe-booking-card { display: grid; grid-template-columns: 112px 1fr; min-height: 178px; }
.hor-fe-booking-date { display: flex; flex-direction: column; justify-content: center; padding: 20px; background: var(--hor-fe-surface-soft); border-right: 1px solid var(--hor-fe-line); }
.hor-fe-booking-date strong { font-size: 9px; font-weight: 700; line-height: 1.45; letter-spacing: .06em; text-transform: uppercase; color: var(--hor-fe-muted); }
.hor-fe-booking-date span { margin-top: 6px; font: 500 30px/1 var(--hor-fe-serif); color: var(--hor-fe-ink); }
.hor-fe-booking-main { display: flex; flex-direction: column; align-items: flex-start; padding: 20px; }
.hor-fe-booking-main h3 { margin: 12px 0 18px !important; font: 500 21px/1.16 var(--hor-fe-serif) !important; color: var(--hor-fe-ink) !important; }
.hor-fe-booking-main .hor-fe-text-action { margin-top: auto; }

/* ---- Events ----------------------------------------------------------- */
.hor-fe-events-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.hor-fe-events-grid > .hor-fe-empty-state { grid-column: 1 / -1; }
.hor-fe-event-card { display: grid; grid-template-columns: 120px 1fr; min-height: 230px; }
.hor-fe-event-date { display: flex; flex-direction: column; justify-content: flex-end; padding: 22px 18px; background: linear-gradient(160deg, #e7dbcd, #f5eee5); border-right: 1px solid var(--hor-fe-line); }
.hor-fe-event-date strong { font: italic 500 17px/1.25 var(--hor-fe-wordmark); color: var(--hor-fe-accent-deep); }
.hor-fe-event-date span { margin-top: 7px; font: 500 28px/1 var(--hor-fe-serif); }
.hor-fe-event-body { display: flex; flex-direction: column; align-items: flex-start; padding: 22px; }
.hor-fe-event-body h3 { margin: 0 0 8px !important; font: 500 24px/1.12 var(--hor-fe-serif) !important; color: var(--hor-fe-ink) !important; }
.hor-fe-event-body > p:not(.hor-fe-section-eyebrow) { margin: 0 0 13px; color: var(--hor-fe-muted); font-size: 11px; }
.hor-fe-event-body .hor-fe-btn { margin-top: auto; }

/* ---- Memberships / packs --------------------------------------------- */
.hor-fe-owned-section { margin-bottom: 26px; padding: 20px; border: 1px solid var(--hor-fe-line); border-radius: 18px; background: var(--hor-fe-surface-soft); }
.hor-fe-subsection-head { margin-bottom: 14px; }
.hor-fe-subsection-head h3 { margin: 0 !important; font: 500 25px/1.1 var(--hor-fe-serif) !important; color: var(--hor-fe-ink) !important; }
.hor-fe-owned-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.hor-fe-owned-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px; border: 1px solid var(--hor-fe-line); border-radius: 12px; background: var(--hor-fe-surface); }
.hor-fe-owned-card strong { display: block; font-size: 12px; }
.hor-fe-owned-card > div > span { display: block; margin-top: 4px; color: var(--hor-fe-muted); font-size: 9.5px; }
.hor-fe-package-toolbar { display: flex; justify-content: flex-start; margin-bottom: 16px; }
.hor-fe-segmented { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border: 1px solid var(--hor-fe-line); border-radius: 999px; background: var(--hor-fe-surface-soft); }
.hor-fe-segmented button { padding: 8px 13px !important; border: 0 !important; border-radius: 999px !important; background: transparent !important; color: var(--hor-fe-muted) !important; box-shadow: none !important; font-size: 9px !important; font-weight: 700 !important; letter-spacing: .07em !important; text-transform: uppercase !important; cursor: pointer; }
.hor-fe-segmented button.active { background: var(--hor-fe-surface) !important; color: var(--hor-fe-ink) !important; box-shadow: 0 1px 5px rgba(72,56,42,.08) !important; }
.hor-fe-package-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.hor-fe-package-grid > .hor-fe-empty-state { grid-column: 1 / -1; }
.hor-fe-package-card { height: 100%; }
.hor-fe-package-card .hor-fe-card-body { display: flex; flex-direction: column; min-height: 285px; }
.hor-fe-package-name { margin: 0 !important; font: 500 25px/1.08 var(--hor-fe-serif) !important; letter-spacing: -.025em; color: var(--hor-fe-ink) !important; }
.hor-fe-package-description { margin: 10px 0 0 !important; color: var(--hor-fe-muted) !important; font-size: 11px; line-height: 1.6; }
.hor-fe-package-value { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; margin: auto 0 17px; padding-top: 22px; }
.hor-fe-package-value strong { font: 500 30px/1 var(--hor-fe-serif); color: var(--hor-fe-ink); }
.hor-fe-package-value strong small { font: 600 9px/1 var(--hor-fe-sans); color: var(--hor-fe-muted); }
.hor-fe-package-value > span { font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--hor-fe-muted); text-align: right; }
.hor-fe-gift-card { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 30px; margin-top: 24px; padding: 25px; border: 1px solid var(--hor-fe-line); border-radius: 18px; background: linear-gradient(135deg, var(--hor-fe-surface-soft), #fffdf9); }
.hor-fe-gift-card h3 { margin: 0 !important; font: 500 27px/1.1 var(--hor-fe-serif) !important; color: var(--hor-fe-ink) !important; }
.hor-fe-gift-card p:not(.hor-fe-section-eyebrow) { margin: 8px 0 0; color: var(--hor-fe-muted); font-size: 11px; }
.hor-fe-gift-card-form { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.hor-fe-gift-card-form .hor-fe-error { grid-column: 1 / -1; margin: 0; }
.hor-fe-gift-card input { text-transform: uppercase; }

/* ---- Booking add-on --------------------------------------------------- */
.hor-fe-addon-prompt { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 14px; margin-top: 17px; padding: 15px; border: 1px solid var(--hor-fe-line); border-radius: 13px; background: var(--hor-fe-surface-soft); }
.hor-fe-addon-prompt .hor-fe-section-eyebrow { margin-bottom: 4px !important; }
.hor-fe-addon-prompt strong { display: block; font-size: 12px; }
.hor-fe-addon-prompt small { display: block; margin-top: 3px; color: var(--hor-fe-muted); font-size: 10px; }
.hor-fe-addon-controls { display: flex; align-items: center; gap: 6px; }
.hor-fe-addon-controls select { min-width: 62px; width: 62px; min-height: 40px; }

/* ---- Studio tour ------------------------------------------------------ */
.hor-fe .hor-tour-form { max-width: 820px; margin: 0; padding: 0; background: transparent; color: var(--hor-fe-ink); }
.hor-fe .hor-tour-back { display: inline-block; margin-bottom: 28px; font-size: 10px; font-weight: 700; letter-spacing: .06em; text-decoration: none !important; }
.hor-fe .hor-tour-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin: 22px 0 18px; }
.hor-fe .hor-tour-field--wide { grid-column: 1 / -1; }
.hor-fe .hor-tour-success { display: flex; flex-direction: column; gap: 5px; margin-top: 16px; padding: 19px; border: 1px solid rgba(117,128,109,.22); border-radius: 14px; background: var(--hor-fe-success-soft); color: #596451; }
.hor-fe .hor-tour-success strong { font: 500 22px/1 var(--hor-fe-serif); }
.hor-fe .hor-tour-success span { font-size: 11px; }

/* ---- Empty / loading states ------------------------------------------ */
.hor-fe-loading { min-height: 170px; display: flex; align-items: center; justify-content: center; gap: 6px; padding: 35px; color: var(--hor-fe-muted); }
.hor-fe-loading span { width: 7px; height: 7px; border-radius: 50%; background: var(--hor-fe-accent); animation: hor-fe-dot 1.1s ease-in-out infinite; }
.hor-fe-loading span:nth-child(2) { animation-delay: .13s; }
.hor-fe-loading span:nth-child(3) { animation-delay: .26s; }
.hor-fe-loading p { margin: 0 0 0 7px !important; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--hor-fe-muted) !important; }
@keyframes hor-fe-dot { 0%,100% { transform: translateY(0); opacity: .35; } 50% { transform: translateY(-5px); opacity: 1; } }
.hor-fe-empty-state { min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 38px; border: 1px dashed var(--hor-fe-line-strong); border-radius: 18px; background: rgba(241,233,222,.45); text-align: center; }
.hor-fe-empty-state > span { width: 42px; height: 42px; display: grid; place-items: center; margin-bottom: 13px; border: 1px solid var(--hor-fe-line-strong); border-radius: 50%; color: var(--hor-fe-accent-deep); font: 500 22px/1 var(--hor-fe-serif); }
.hor-fe-empty-state h3 { margin: 0 !important; font: 500 25px/1.1 var(--hor-fe-serif) !important; color: var(--hor-fe-ink) !important; }
.hor-fe-empty-state p { max-width: 420px; margin: 9px auto 0 !important; color: var(--hor-fe-muted) !important; font-size: 11px; line-height: 1.6; }
.hor-fe-empty-state .hor-fe-btn { margin-top: 17px; }
.hor-fe-empty-state--compact { min-height: 145px; padding: 24px; }
.hor-fe-empty-state--error > span { background: var(--hor-fe-danger-soft); color: var(--hor-fe-danger); }

/* ---- Modal confirmation ---------------------------------------------- */
.hor-fe-modal-open { overflow: hidden !important; }
.hor-fe-modal { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 20px; opacity: 0; visibility: hidden; transition: opacity .22s ease, visibility .22s ease; }
.hor-fe-modal.is-open { opacity: 1; visibility: visible; }
.hor-fe-modal-backdrop { position: absolute; inset: 0; background: rgba(43,35,28,.44); backdrop-filter: blur(5px); }
.hor-fe-modal-sheet { position: relative; width: min(500px,100%); padding: 31px; border: 1px solid rgba(255,255,255,.45); border-radius: 22px; background: #fffdf9; box-shadow: 0 30px 90px rgba(43,35,28,.26); color: #211d18; transform: translateY(15px) scale(.98); transition: transform .28s cubic-bezier(.16,1,.3,1); font-family: 'Manrope',Arial,sans-serif; }
.hor-fe-modal.is-open .hor-fe-modal-sheet { transform: translateY(0) scale(1); }
.hor-fe-modal-sheet h3 { margin: 0 !important; padding-right: 38px; font: 400 34px/1.02 'Noto Serif Display',Georgia,serif !important; letter-spacing: -.03em; color: #211d18 !important; }
.hor-fe-modal-copy { margin: 12px 0 0 !important; color: #786d62 !important; font-size: 12px; line-height: 1.65; }
.hor-fe-modal-close { position: absolute; top: 16px; right: 17px; width: 34px; height: 34px; display: grid; place-items: center; padding: 0 !important; border: 1px solid rgba(59,49,39,.13) !important; border-radius: 50% !important; background: #f1e9de !important; color: #4f473f !important; font-size: 22px !important; line-height: 1 !important; cursor: pointer; }
.hor-fe-modal-details { margin-top: 20px; padding: 14px 16px; border: 1px solid rgba(59,49,39,.13); border-radius: 13px; background: #f6f0e8; }
.hor-fe-booking-confirm-media { position: relative; margin: -14px -16px 14px; overflow: hidden; border-radius: 13px 13px 9px 9px; background: #eee5da; aspect-ratio: 16 / 8; }
.hor-fe-booking-confirm-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hor-fe-booking-confirm-media::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 62%, rgba(46,37,29,.18)); }
.hor-fe-modal-details dl { margin: 0; }
.hor-fe-modal-details dl > div { display: flex; justify-content: space-between; gap: 20px; padding: 7px 0; border-top: 1px solid rgba(59,49,39,.09); }
.hor-fe-modal-details dl > div:first-child { border-top: 0; }
.hor-fe-modal-details dt { font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #8a7865; }
.hor-fe-modal-details dd { margin: 0; font-size: 11px; font-weight: 700; text-align: right; color: #211d18; }
.hor-fe-modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 22px; }
.hor-fe-modal-actions .hor-fe-btn { min-width: 130px; }

/* ---- Toasts ----------------------------------------------------------- */
.hor-fe-toast-stack { position: fixed; z-index: 100001; right: 18px; bottom: 18px; display: grid; gap: 8px; width: min(390px,calc(100vw - 36px)); pointer-events: none; }
.hor-fe-toast { display: grid; grid-template-columns: 32px 1fr; align-items: center; gap: 11px; padding: 13px 15px; border: 1px solid rgba(59,49,39,.13); border-radius: 14px; background: #fffdf9; box-shadow: 0 18px 46px rgba(43,35,28,.17); color: #211d18; font: 600 11px/1.5 'Manrope',Arial,sans-serif; opacity: 0; transform: translateY(12px); transition: opacity .24s ease, transform .24s ease; }
.hor-fe-toast.is-visible { opacity: 1; transform: translateY(0); }
.hor-fe-toast-mark { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50%; background: #e5e9e0; color: #596451; font-weight: 800; }
.hor-fe-toast--error .hor-fe-toast-mark { background: #f0dfdc; color: #7d554e; }

/* ---- Responsive ------------------------------------------------------- */
/* ---- Compact desktop timetable ---------------------------------------
   Keep the phone experience roomy, but let desktop users scan a full day at
   a glance. These rules intentionally affect class/session cards only. */
@media (min-width: 1200px) {
	.hor-fe-day-cards,
	.hor-fe-category-session-list { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
	.hor-fe-class-card { border-radius: 12px !important; }
	.hor-fe-class-card:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(75,60,45,.07) !important; }
	.hor-fe-class-card .hor-fe-card-media { aspect-ratio: 16 / 9; max-height: 132px; }
	.hor-fe-class-card .hor-fe-card-body { min-height: 176px; padding: 12px 13px 13px; }
	.hor-fe-class-card-head { gap: 8px; margin-bottom: 8px; }
	.hor-fe-class-time { gap: 0; }
	.hor-fe-class-time small { font-size: 7px; letter-spacing: .1em; }
	.hor-fe-class-time strong { font-size: 22px; }
	.hor-fe-class-card .hor-fe-pill { min-height: 20px; padding: 4px 7px; font-size: 6.8px; }
	.hor-fe-class-name { font-size: 17px !important; line-height: 1.08 !important; }
	.hor-fe-class-meta-list { gap: 5px; margin-top: 9px; }
	.hor-fe-class-meta-list > span { padding: 6px 7px; border-radius: 7px; font-size: 9px; line-height: 1.25; }
	.hor-fe-class-meta-list b { margin-bottom: 1px; font-size: 6.5px; }
	.hor-fe-class-actions { gap: 7px; padding-top: 10px; }
	.hor-fe-class-actions .hor-fe-btn { min-width: 92px; min-height: 34px; padding: 8px 10px !important; font-size: 9px !important; }
	.hor-fe-more-info-toggle { font-size: 8.5px !important; }
	.hor-fe-more-info-panel { margin-top: 9px; padding: 10px; border-radius: 8px; font-size: 10px; line-height: 1.5; }
	.hor-fe-card-media-label { left: 9px; bottom: 8px; padding: 4px 7px; font-size: 6.5px; }
}

@media (min-width: 760px) and (max-width: 1199px) {
	.hor-fe-day-cards,
	.hor-fe-category-session-list { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
	.hor-fe-class-card .hor-fe-card-media { aspect-ratio: 16 / 10; }
	.hor-fe-class-card .hor-fe-card-body { min-height: 205px; padding: 15px; }
	.hor-fe-class-card-head { margin-bottom: 10px; }
	.hor-fe-class-time strong { font-size: 24px; }
	.hor-fe-class-name { font-size: 19px !important; }
	.hor-fe-class-meta-list { margin-top: 10px; }
	.hor-fe-class-meta-list > span { padding: 7px 8px; font-size: 10px; }
	.hor-fe-class-actions { padding-top: 12px; gap: 9px; }
	.hor-fe-class-actions .hor-fe-btn { min-width: 104px; }
}

@media (max-width: 980px) {
	.hor-fe-package-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.hor-fe-1on1-instructors { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.hor-fe-time-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}

@media (max-width: 759px) {
	.hor-fe { width: min(100% - 20px, 720px); margin-bottom: 70px; }
	.hor-fe-app-shell, .hor-fe-login-shell { border-radius: 20px; }
	.hor-fe-app-head { padding: 20px; }
	.hor-fe-app-wordmark { font-size: 28px; }
	.hor-fe-credits-bar { min-width: 0; padding-left: 12px; }
	.hor-fe-credits-label { display: none; }
	.hor-fe-tabs { padding: 9px 11px; }
	.hor-fe-panels { padding: 25px 18px 30px; }
	.hor-fe-day-cards, .hor-fe-category-session-list, .hor-fe-bookings-grid, .hor-fe-events-grid { grid-template-columns: 1fr; }
	.hor-fe-home-actions { grid-template-columns: 1fr; }
	.hor-fe-home-hero { grid-template-columns: 1fr; min-height: 0; }
	.hor-fe-home-orbit { display: none; }
	.hor-fe-category-focus { grid-template-columns: 1fr; }
	.hor-fe-category-focus > img { aspect-ratio: 4/5; }
	.hor-fe-filter-bar { grid-template-columns: 1fr; }

	.hor-fe-studio-picker { grid-template-columns: 1fr; }
	.hor-fe-studio-choice { grid-template-columns: 180px 1fr; }
	.hor-fe-package-grid { grid-template-columns: 1fr; }
	.hor-fe-owned-grid { grid-template-columns: 1fr; }
	.hor-fe-gift-card { grid-template-columns: 1fr; }
	.hor-fe-login-shell { grid-template-columns: 1fr; }
	.hor-fe-login-editorial { min-height: 360px; padding: 38px 30px; }
	.hor-fe-login-editorial h2 { margin-top: 34px !important; }
	.hor-fe-login-card { padding: 34px 26px; }
	.hor-fe-time-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
	.hor-fe-account-footer { padding: 17px 20px; }
}

@media (max-width: 560px) {
	.hor-has-booking-page .page-header { padding-top: 48px !important; }
	.hor-fe { width: calc(100% - 16px); }
	.hor-fe-app-head { align-items: flex-start; }
	.hor-fe-section-title { font-size: 36px !important; }
	.hor-fe-home-hero { padding: 27px 22px; }
	.hor-fe-home-hero h2 { font-size: 42px !important; }
	.hor-fe-home-action { min-height: 0; padding: 20px !important; grid-template-columns: auto 1fr auto; }
	.hor-fe-home-action-title { font-size: 20px; }
	.hor-fe-card-photo { height: 168px; }
	.hor-fe-class-card .hor-fe-card-photo { height: 100%; }
	.hor-fe-class-meta-list { grid-template-columns: 1fr; }

	.hor-fe-booking-steps { gap: 7px; }
	.hor-fe-booking-step { min-height: 46px; padding: 8px 10px; }
	.hor-fe-booking-step span { font-size: 7.5px; }
	.hor-fe-studio-category-context { grid-template-columns: 68px 1fr; }
	.hor-fe-studio-category-context img { width: 68px; height: auto; aspect-ratio: 4 / 5; }
	.hor-fe-studio-choice { grid-template-columns: 1fr; min-height: 0; }
	.hor-fe-studio-choice-media, .hor-fe-studio-choice-media img { min-height: 0; height: 180px; }
	.hor-fe-studio-choice-copy { padding: 20px; }
	.hor-fe-studio-context { grid-template-columns: 72px 1fr; }
	.hor-fe-studio-context > img, .hor-fe-studio-context-placeholder { width: 72px; height: 66px; }
	.hor-fe-studio-context .hor-fe-studio-switch { grid-column: 1 / -1; width: 100%; }
	.hor-fe-class-actions { align-items: stretch; flex-direction: column-reverse; }
	.hor-fe-class-actions .hor-fe-btn { width: 100% !important; }
	.hor-fe-more-info-toggle { align-self: flex-start; }
	.hor-fe-1on1-instructors { grid-template-columns: 1fr; }
	.hor-fe-1on1-photo { aspect-ratio: 16/12; }
	.hor-fe-booking-card, .hor-fe-event-card { grid-template-columns: 96px 1fr; }
	.hor-fe-booking-date, .hor-fe-event-date { padding: 16px 13px; }
	.hor-fe-booking-main, .hor-fe-event-body { padding: 17px; }
	.hor-fe-package-value { align-items: flex-start; flex-direction: column; }
	.hor-fe-gift-card-form { grid-template-columns: 1fr; }
	.hor-fe .hor-tour-fields { grid-template-columns: 1fr; }
	.hor-fe .hor-tour-field--wide { grid-column: auto; }
	.hor-fe-time-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.hor-fe-modal { align-items: end; padding: 10px; }
	.hor-fe-modal-sheet { border-radius: 22px 22px 14px 14px; padding: 28px 20px 20px; }
	.hor-fe-modal-actions { flex-direction: column-reverse; }
	.hor-fe-modal-actions .hor-fe-btn { width: 100% !important; }
	.hor-fe-addon-prompt { grid-template-columns: 1fr; }
	.hor-fe-addon-controls { justify-content: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
	.hor-fe *, .hor-fe *::before, .hor-fe *::after,
	.hor-fe-modal, .hor-fe-modal-sheet, .hor-fe-toast { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}


/* v0.93 — canonical House of Reformer wordmark. */
.logo{
  font-family:'Bodoni Moda',Didot,'Times New Roman',serif!important;
  font-weight:400!important;
  font-style:normal!important;
  font-size:40px!important;
  line-height:.9!important;
  letter-spacing:-.05em!important;
  text-transform:none!important;
  white-space:nowrap!important;
}
.logo em{font-style:italic!important;font-weight:400!important;text-transform:none!important;margin:0 .28em!important;}

/* v0.93 — waiver / agreement flow */
.hor-fe-waiver-modal .hor-fe-waiver-sheet{width:min(720px,calc(100vw - 28px));max-height:min(88vh,820px);display:flex;flex-direction:column}
.hor-fe-waiver-sheet>h3{margin:4px 48px 0 0!important;font:500 clamp(28px,4vw,38px)/1.02 'Noto Serif Display',Georgia,serif!important;color:#302820!important}
.hor-fe-waiver-copy{margin:18px 0 16px;padding:17px 18px 7px;max-height:330px;overflow:auto;overscroll-behavior:contain;border:1px solid rgba(65,50,38,.12);border-radius:16px;background:#faf6f0;-webkit-overflow-scrolling:touch}
.hor-fe-waiver-copy p{margin:0 0 12px!important;color:#55483e!important;font:500 12px/1.65 'Manrope',Arial,sans-serif!important}
.hor-fe-waiver-copy strong{font-weight:750}.hor-fe-waiver-copy ul,.hor-fe-waiver-copy ol{margin:0 0 12px 20px;color:#55483e;font:500 12px/1.65 'Manrope',Arial,sans-serif}
.hor-fe-waiver-check{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:center;margin:0;padding:14px 15px;border:1px solid rgba(65,50,38,.13);border-radius:14px;background:#fff;cursor:pointer}
.hor-fe-waiver-check input{position:absolute;opacity:0;pointer-events:none}.hor-fe-waiver-check>span{width:30px;height:30px;display:grid;place-items:center;border:1px solid rgba(65,50,38,.24);border-radius:9px;background:#fbf7f1;color:transparent;font-weight:800}.hor-fe-waiver-check input:checked+span{border-color:#6f5743;background:#6f5743;color:#fff}.hor-fe-waiver-check b{font:700 12px/1.45 'Manrope',Arial,sans-serif;color:#342b24}
.hor-fe-waiver-sign>label{display:block}.hor-fe-waiver-sign>label>span{display:block;margin:0 0 7px;color:#8a7564;font:750 9px/1.2 'Manrope',Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}.hor-fe-waiver-sign input{box-sizing:border-box;width:100%;height:48px;padding:0 14px;border:1px solid rgba(65,50,38,.15);border-radius:13px;background:#fff;color:#302820;font:600 13px 'Manrope',Arial,sans-serif;outline:none}.hor-fe-waiver-sign input:focus{border-color:#8a6b50;box-shadow:0 0 0 3px rgba(138,107,80,.11)}
.hor-fe-waiver-or{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;margin:12px 0}.hor-fe-waiver-or span{height:1px;background:rgba(65,50,38,.11)}.hor-fe-waiver-or em{color:#9a8878;font:600 10px 'Manrope',Arial,sans-serif;font-style:normal}
.hor-fe-waiver-pad{position:relative;height:126px;overflow:hidden;border:1px solid rgba(65,50,38,.15);border-radius:14px;background:#fff}.hor-fe-waiver-pad canvas{display:block;width:100%;height:100%;touch-action:none}.hor-fe-waiver-pad button{position:absolute;top:8px;right:8px;min-height:30px;padding:0 10px;border:0;border-radius:9px;background:#f3ece4;color:#6f6257;font:700 10px 'Manrope',Arial,sans-serif;cursor:pointer}
.hor-fe-waiver-error{min-height:18px;margin:9px 0 0!important;color:#8a3e35!important;font:650 11px/1.4 'Manrope',Arial,sans-serif!important}
@media(max-width:560px){.hor-fe-waiver-modal{padding:0!important}.hor-fe-waiver-modal .hor-fe-waiver-sheet{width:100%;max-height:94dvh;border-radius:24px 24px 0 0!important;padding:24px 18px calc(18px + env(safe-area-inset-bottom))!important}.hor-fe-waiver-copy{max-height:36dvh;padding:14px 14px 4px}.hor-fe-waiver-copy p,.hor-fe-waiver-copy ul,.hor-fe-waiver-copy ol{font-size:11px!important}.hor-fe-waiver-pad{height:108px}.hor-fe-waiver-sheet>h3{font-size:29px!important}}


/* v1.4.1 — Memberships and Class Packs are deliberately image-free. */
.hor-fe-package-card .hor-fe-card-media{display:none!important}
.hor-fe-package-card--text-only{overflow:hidden}
.hor-fe-card-body--plan-text-only{padding-top:22px!important}
.hor-fe-plan-kicker{display:inline-block;margin-bottom:8px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--hor-accent,#8b6f59)}


/* Membership purchase choices: deliberately typography-led; memberships and
   Class Packs do not use product imagery. */
.hor-fe-plan-choices{display:grid;gap:10px;margin-top:14px}.hor-fe-plan-note{margin:10px 0 0;font-size:13px;line-height:1.5;opacity:.72}.hor-fe-package-annual{display:block;margin-top:6px;font-size:13px;line-height:1.35;opacity:.78}

/* 1.6.3 — zero-credit access / intro-offer emphasis */
.hor-fe-package-card--intro {
	background: linear-gradient(145deg,#5f4939 0%,#49372d 100%) !important;
	border-color: rgba(255,255,255,.12) !important;
	box-shadow: 0 20px 50px rgba(58,43,33,.18) !important;
}
.hor-fe-package-card--intro .hor-fe-card-body,
.hor-fe-package-card--intro .hor-fe-package-name,
.hor-fe-package-card--intro .hor-fe-package-value strong { color:#fff !important; }
.hor-fe-package-card--intro .hor-fe-section-eyebrow,
.hor-fe-package-card--intro .hor-fe-package-description,
.hor-fe-package-card--intro .hor-fe-package-value span,
.hor-fe-package-card--intro .hor-fe-plan-note { color:rgba(255,255,255,.72) !important; }
.hor-fe-package-card--intro .hor-fe-plan-kicker { color:#f1dfcf !important; }
.hor-fe-package-card--intro .hor-fe-btn { background:#f4ece4 !important; color:#352a23 !important; border-color:#f4ece4 !important; }

/* ========================================================================
   HOR 1.8.0 — MEMBER EXPERIENCE REBUILD
   The website owns the brand/header; the booking shortcode is now a quiet,
   compact member workspace. Desktop classes render as a timetable rather
   than a gallery of oversized cards. Existing JS/API/security logic remains
   the source of truth.
   ======================================================================== */

/* Remove the theme/title layer from dedicated booking pages. The global House
   header already tells customers where they are. */
.hor-has-booking-page .page-header{display:none!important}
.hor-has-booking-page main.site-main,
.hor-has-booking-page .page-content{padding-top:0!important}

.hor-fe{
  --hor-fe-bg:#f8f3ed;
  --hor-fe-surface:#fffdfa;
  --hor-fe-surface-soft:#f3ece4;
  --hor-fe-surface-deep:#e9dfd4;
  --hor-fe-ink:#29221c;
  --hor-fe-ink-soft:#51483f;
  --hor-fe-muted:#817468;
  --hor-fe-faint:#a39588;
  --hor-fe-line:rgba(54,43,34,.11);
  --hor-fe-line-strong:rgba(54,43,34,.20);
  --hor-fe-accent:#a78b6f;
  --hor-fe-accent-deep:#745b46;
  --hor-fe-serif:'Cormorant Garamond',Georgia,serif;
  width:min(1460px,calc(100% - 34px));
  max-width:1460px;
  margin:clamp(22px,3.5vw,52px) auto clamp(60px,8vw,110px);
  font-size:14px;
}

.hor-fe-app-shell--v2{
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.hor-fe-app-shell--v2::before{display:none!important}

/* Member utility line: compact enough to sit naturally beneath the site nav. */
.hor-fe-memberbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 0 14px;
  padding:13px 15px 13px 18px;
  border:1px solid var(--hor-fe-line);
  border-radius:16px;
  background:rgba(255,253,250,.88);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.hor-fe-memberbar-copy{display:flex;align-items:baseline;gap:13px;min-width:0}
.hor-fe-memberbar-copy>span{
  color:var(--hor-fe-muted);
  font-size:8px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  white-space:nowrap;
}
.hor-fe-memberbar-copy>strong{
  overflow:hidden;
  color:var(--hor-fe-ink);
  font:500 18px/1 var(--hor-fe-serif);
  letter-spacing:-.01em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.hor-fe-memberbar-actions{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.hor-fe-memberbar .hor-fe-credits-bar{
  min-width:92px;
  padding:5px 5px 5px 10px;
  gap:9px;
  border-color:var(--hor-fe-line);
  background:var(--hor-fe-surface-soft)!important;
}
.hor-fe-memberbar .hor-fe-credits-label{font-size:8px;letter-spacing:.1em}
.hor-fe-memberbar .hor-fe-credits-bar strong{width:28px;min-width:28px;height:28px;font-size:12px}
.hor-fe-memberbar-bookings,
.hor-fe-memberbar #hor-fe-logout{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  padding:0 12px!important;
  border:1px solid var(--hor-fe-line)!important;
  border-radius:999px!important;
  background:transparent!important;
  color:var(--hor-fe-ink-soft)!important;
  box-shadow:none!important;
  font:700 8.5px/1 var(--hor-fe-sans)!important;
  letter-spacing:.08em!important;
  text-decoration:none!important;
  text-transform:uppercase!important;
  cursor:pointer;
}
.hor-fe-memberbar-bookings:hover,
.hor-fe-memberbar #hor-fe-logout:hover{background:var(--hor-fe-surface-soft)!important;color:var(--hor-fe-ink)!important}

/* True desktop workspace: quiet nav rail + content surface. */
.hor-fe-workspace{
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
  gap:14px;
  align-items:start;
}
.hor-fe-app-shell--v2 .hor-fe-tabs{
  position:sticky;
  top:18px;
  z-index:10;
  display:flex;
  flex-direction:column;
  gap:3px;
  overflow:visible;
  padding:13px!important;
  border:1px solid var(--hor-fe-line)!important;
  border-radius:18px!important;
  background:rgba(255,253,250,.9)!important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.hor-fe-nav-heading{
  display:block;
  padding:7px 9px 8px;
  color:var(--hor-fe-faint);
  font-size:7.5px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.hor-fe-nav-heading--secondary{margin-top:8px;padding-top:13px;border-top:1px solid var(--hor-fe-line)}
.hor-fe-app-shell--v2 .hor-fe-tab{
  width:100%;
  min-height:42px;
  display:grid!important;
  grid-template-columns:24px 1fr;
  align-items:center;
  gap:9px;
  padding:9px 10px!important;
  border:0!important;
  border-radius:11px!important;
  text-align:left!important;
  color:var(--hor-fe-ink-soft)!important;
  font-size:10px!important;
  letter-spacing:.015em!important;
  text-transform:none!important;
}
.hor-fe-app-shell--v2 .hor-fe-tab>span{
  color:var(--hor-fe-faint);
  font:500 9px/1 var(--hor-fe-serif);
}
.hor-fe-app-shell--v2 .hor-fe-tab:hover{transform:none;background:var(--hor-fe-surface-soft)!important}
.hor-fe-app-shell--v2 .hor-fe-tab.active{
  background:var(--hor-fe-ink)!important;
  color:#fffaf4!important;
}
.hor-fe-app-shell--v2 .hor-fe-tab.active>span{color:rgba(255,250,244,.55)}
.hor-fe-app-shell--v2 .hor-fe-tab--secondary{min-height:36px;font-size:9.5px!important}

.hor-fe-app-shell--v2 .hor-fe-panels{
  min-width:0;
  min-height:640px;
  padding:clamp(22px,2.5vw,36px)!important;
  border:1px solid var(--hor-fe-line);
  border-radius:20px;
  background:var(--hor-fe-surface);
  box-shadow:0 18px 48px rgba(62,48,37,.055);
}
.hor-fe-app-shell--v2 .hor-fe-panel.active{animation:hor-fe-panel-in .28s ease-out}
.hor-fe-app-shell--v2 .hor-fe-section-head{max-width:760px;margin:0 0 24px}
.hor-fe-app-shell--v2 .hor-fe-section-title{
  font-family:var(--hor-fe-serif)!important;
  font-size:clamp(31px,3.3vw,46px)!important;
  font-weight:500!important;
  line-height:.98!important;
}
.hor-fe-app-shell--v2 .hor-fe-section-copy{margin-top:9px!important;font-size:12px;line-height:1.6}
.hor-fe-app-shell--v2 .hor-fe-section-eyebrow{margin-bottom:7px!important;font-size:8px!important;letter-spacing:.16em!important}

/* Overview replaces the old ornamental dashboard. Every block has a job. */
.hor-fe-overview-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  padding:4px 0 26px;
  border-bottom:1px solid var(--hor-fe-line);
}
.hor-fe-overview-head h2{margin:0!important;color:var(--hor-fe-ink)!important;font:500 clamp(34px,4vw,52px)/.95 var(--hor-fe-serif)!important;letter-spacing:-.025em}
.hor-fe-overview-head>div>p:last-child{max-width:560px;margin:9px 0 0;color:var(--hor-fe-muted);font-size:12px;line-height:1.6}
.hor-fe-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.hor-fe-overview-card{
  min-height:180px;
  display:flex;
  flex-direction:column;
  padding:19px;
  border:1px solid var(--hor-fe-line);
  border-radius:16px;
  background:#fffdfa;
}
.hor-fe-overview-card--credits{background:var(--hor-fe-ink);color:#fffaf4}
.hor-fe-overview-label{margin-bottom:18px;color:var(--hor-fe-muted);font-size:8px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.hor-fe-overview-card--credits .hor-fe-overview-label{color:rgba(255,250,244,.5)}
.hor-fe-overview-card>strong{display:block;margin:0 0 7px;color:inherit;font:500 24px/1.02 var(--hor-fe-serif);letter-spacing:-.015em}
.hor-fe-overview-credit-number{font-size:48px!important;line-height:.75!important}
.hor-fe-overview-card>p{margin:0 0 16px;color:var(--hor-fe-muted);font-size:11px;line-height:1.55}
.hor-fe-overview-card--credits>p{color:rgba(255,250,244,.62)}
.hor-fe-overview-card>button{
  margin-top:auto;
  align-self:flex-start;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--hor-fe-accent-deep)!important;
  font:700 8.5px/1 var(--hor-fe-sans)!important;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.hor-fe-overview-card--credits>button{color:#f0dfcf!important}
.hor-fe-overview-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}
.hor-fe-overview-shortcuts button{
  min-height:68px;
  display:flex!important;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:3px;
  padding:12px 14px!important;
  border:1px solid var(--hor-fe-line)!important;
  border-radius:13px!important;
  background:var(--hor-fe-surface-soft)!important;
  color:var(--hor-fe-ink)!important;
  text-align:left!important;
  cursor:pointer;
}
.hor-fe-overview-shortcuts span{font-size:7.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--hor-fe-muted)}
.hor-fe-overview-shortcuts strong{font-size:10.5px;font-weight:600}
.hor-fe-overview-shortcuts button:hover{background:var(--hor-fe-surface-deep)!important}

/* Booking flow: no fake step rail and no large studio hero inside the app. */
.hor-fe-booking-steps{display:none!important}
.hor-fe-studio-context--compact{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 14px!important;
  padding:12px 14px!important;
  border:1px solid var(--hor-fe-line)!important;
  border-radius:14px!important;
  background:var(--hor-fe-surface-soft)!important;
}
.hor-fe-studio-context--compact>div{min-width:0}
.hor-fe-studio-context--compact h2{display:inline;margin:0 8px 0 0!important;font:600 18px/1 var(--hor-fe-serif)!important}
.hor-fe-studio-context--compact>div>p:not(.hor-fe-section-eyebrow){display:inline;margin:0!important;color:var(--hor-fe-muted);font-size:9.5px;white-space:pre-line}
.hor-fe-studio-context--compact .hor-fe-section-eyebrow{display:none}
.hor-fe-studio-context--compact .hor-fe-studio-switch{
  flex:0 0 auto;
  min-height:32px;
  padding:0 11px!important;
  border:1px solid var(--hor-fe-line-strong)!important;
  border-radius:999px!important;
  background:#fffdfa!important;
  color:var(--hor-fe-ink-soft)!important;
  font:700 8px/1 var(--hor-fe-sans)!important;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.hor-fe-studio-timetable-tools .hor-fe-filter-bar{
  margin:0 0 9px!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
}
.hor-fe-studio-timetable-tools .hor-fe-filter-bar--single{grid-template-columns:minmax(190px,260px)!important}
.hor-fe-studio-timetable-tools .hor-fe-filter-bar select{min-height:36px!important;padding:8px 34px 8px 11px!important;border-radius:10px!important;font-size:10.5px!important}
.hor-fe-studio-timetable-tools .hor-fe-filter-bar label>span{font-size:7.5px!important}

/* Compact calendar rail. */
.hor-fe-date-strip{gap:6px!important;margin:0 0 11px!important;padding:2px 0 9px!important}
.hor-fe-date-chip{
  flex-basis:54px!important;
  min-height:58px!important;
  gap:1px!important;
  padding:6px 4px!important;
  border-radius:11px!important;
  background:#fffdfa!important;
}
.hor-fe-date-chip:hover{transform:none!important;border-color:var(--hor-fe-accent)!important}
.hor-fe-date-chip.active{background:var(--hor-fe-ink)!important;border-color:var(--hor-fe-ink)!important;color:#fffaf4!important}
.hor-fe-date-chip-day{font-size:6.7px!important;letter-spacing:.08em!important}
.hor-fe-date-chip-num{font:600 18px/1 var(--hor-fe-serif)!important}
.hor-fe-date-chip-month{font-size:6.7px!important}

/* The actual timetable: one calm, information-dense row per session. */
.hor-fe-day-cards,
.hor-fe-category-session-list{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
.hor-fe-class-row{
  min-height:82px;
  display:grid!important;
  grid-template-columns:70px 60px minmax(180px,1fr) 84px 150px;
  align-items:center;
  column-gap:12px;
  row-gap:0;
  padding:9px 10px!important;
  border:1px solid var(--hor-fe-line)!important;
  border-radius:13px!important;
  background:#fffdfa!important;
  box-shadow:none!important;
  overflow:visible!important;
  transition:border-color .18s ease,background .18s ease!important;
}
.hor-fe-class-row:hover{transform:none!important;border-color:var(--hor-fe-line-strong)!important;background:#fffcf7!important;box-shadow:none!important}
.hor-fe-class-row-time{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding-left:3px}
.hor-fe-class-row-time>span{margin-bottom:2px;color:var(--hor-fe-muted);font-size:7.5px;font-weight:700;line-height:1.2;letter-spacing:.03em;text-transform:uppercase}
.hor-fe-class-row-time>strong{color:var(--hor-fe-ink);font:600 24px/.95 var(--hor-fe-serif);letter-spacing:-.02em}
.hor-fe-class-row-time>small{color:var(--hor-fe-muted);font-size:8px}
.hor-fe-class-row-media{width:56px;height:56px;overflow:hidden;border-radius:10px;background:var(--hor-fe-surface-soft)}
.hor-fe-class-row-media img{width:100%;height:100%;object-fit:cover}
.hor-fe-class-row-media--empty{position:relative;background:linear-gradient(145deg,#eee4d9,#f9f3ec)}
.hor-fe-class-row-media--empty::before,.hor-fe-class-row-media--empty::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(116,91,70,.15)}
.hor-fe-class-row-media--empty::before{inset:11px}.hor-fe-class-row-media--empty::after{inset:19px}
.hor-fe-class-row-main{min-width:0}
.hor-fe-class-row-titleline{display:flex;align-items:center;gap:8px;min-width:0}
.hor-fe-class-type{
  flex:0 0 auto;
  padding:3px 6px;
  border-radius:999px;
  background:var(--hor-fe-surface-soft);
  color:var(--hor-fe-muted);
  font-size:6.5px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.hor-fe-class-row .hor-fe-class-name{
  overflow:hidden;
  margin:0!important;
  color:var(--hor-fe-ink)!important;
  font:600 19px/1.05 var(--hor-fe-serif)!important;
  letter-spacing:-.015em!important;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.hor-fe-class-row-meta{display:flex;align-items:center;gap:7px;margin-top:5px;color:var(--hor-fe-muted);font-size:9.5px}
.hor-fe-class-row-meta span+span::before{content:"·";margin-right:7px;color:var(--hor-fe-faint)}
.hor-fe-class-row-availability{display:flex;justify-content:flex-end}
.hor-fe-class-row .hor-fe-pill{min-height:24px;padding:5px 8px!important;font-size:7px!important;white-space:nowrap}
.hor-fe-class-row .hor-fe-class-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:9px!important;margin:0!important}
.hor-fe-class-row .hor-fe-class-actions .hor-fe-btn{min-height:34px!important;padding:9px 13px!important;font-size:8px!important}
.hor-fe-class-row .hor-fe-more-info-toggle{font-size:7.5px!important;letter-spacing:.06em!important}
.hor-fe-class-row .hor-fe-more-info-panel{
  grid-column:1/-1;
  margin:8px -1px -1px!important;
  padding:13px 14px 5px!important;
  border-top:1px solid var(--hor-fe-line);
  color:var(--hor-fe-muted);
  font-size:10.5px;
  line-height:1.6;
}
.hor-fe-class-row .hor-fe-more-info-panel p{margin:0 0 10px!important}
.hor-fe-class-row .hor-fe-instructor-mini{margin-top:10px}

/* Studio chooser is still visual, but no longer a full-page prelude. */
.hor-fe-studio-picker{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
.hor-fe-studio-choice{grid-template-columns:118px 1fr!important;min-height:132px!important;border-radius:14px!important}
.hor-fe-studio-choice-media,.hor-fe-studio-choice-media img{min-height:132px!important;height:132px!important}
.hor-fe-studio-choice-copy{padding:16px!important}
.hor-fe-studio-choice-copy h3{font-size:26px!important}
.hor-fe-studio-choice-copy p{font-size:10px!important;line-height:1.5!important}

/* Booking diary becomes a list, not another gallery. */
.hor-fe-bookings-grid{display:grid!important;grid-template-columns:1fr!important;gap:7px!important}
.hor-fe-booking-card{
  min-height:0!important;
  grid-template-columns:92px minmax(0,1fr)!important;
  border-radius:13px!important;
  box-shadow:none!important;
}
.hor-fe-booking-date{padding:14px!important}
.hor-fe-booking-date strong{font-size:13px!important}.hor-fe-booking-date span{font-size:22px!important}
.hor-fe-booking-main{padding:13px 15px!important}
.hor-fe-booking-main h3{margin:7px 0 6px!important;font-size:20px!important}

/* Memberships/packs stay editorial but stop dominating the page. */
.hor-fe-package-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
.hor-fe-package-card{border-radius:15px!important;box-shadow:none!important}
.hor-fe-package-card .hor-fe-card-body{min-height:0!important;padding:18px!important}
.hor-fe-card-body--plan-text-only{padding-top:18px!important}
.hor-fe-package-name{font-size:27px!important;line-height:1!important}
.hor-fe-package-description{font-size:10.5px!important;line-height:1.55!important}
.hor-fe-package-value{margin-top:15px!important;padding-top:13px!important}
.hor-fe-package-value strong{font-size:27px!important}
.hor-fe-package-card .hor-fe-btn{min-height:38px!important}
.hor-fe-owned-section{margin-bottom:18px!important}
.hor-fe-owned-card{min-height:64px!important;padding:11px 13px!important}
.hor-fe-gift-card{margin-top:16px!important;padding:17px!important;border-radius:15px!important}

/* 1:1 and event cards also inherit the denser member-workspace rhythm. */
.hor-fe-1on1-instructors{gap:9px!important}
.hor-fe-1on1-card{border-radius:14px!important;box-shadow:none!important}
.hor-fe-1on1-card .hor-fe-card-body{padding:16px!important}
.hor-fe-1on1-photo{aspect-ratio:16/10!important}
.hor-fe-events-grid{gap:8px!important}
.hor-fe-event-card{border-radius:13px!important;box-shadow:none!important}

/* Controls: less pill-heavy, more like the rest of the House site. */
.hor-fe-app-shell--v2 .hor-fe-btn,
.hor-fe-app-shell--v2 .hor-tour-submit{
  min-height:38px;
  padding:10px 15px!important;
  border-radius:10px!important;
  font-size:8.5px!important;
  letter-spacing:.065em!important;
}
.hor-fe-app-shell--v2 .hor-fe-btn:hover,.hor-fe-app-shell--v2 .hor-tour-submit:hover{transform:none!important;box-shadow:none!important}

/* Login is still welcoming, but it no longer resembles a second website. */
.hor-fe--login{max-width:1040px!important}
.hor-fe-login-shell{min-height:520px!important;border-radius:20px!important;box-shadow:0 18px 50px rgba(62,48,37,.06)!important}
.hor-fe-login-editorial{padding:clamp(34px,5vw,58px)!important;background:linear-gradient(145deg,#efe5da,#faf6f1 78%)!important}
.hor-fe-login-editorial::after{display:none!important}
.hor-fe-login-wordmark{font-family:'Cormorant Garamond',Georgia,serif!important;font-size:34px!important;letter-spacing:-.035em!important}
.hor-fe-login-editorial h2{margin-top:36px!important;font-family:var(--hor-fe-serif)!important;font-size:clamp(40px,5vw,61px)!important}
.hor-fe-login-card{padding:clamp(32px,4vw,50px)!important}

/* Medium desktop. */
@media (max-width:1120px){
  .hor-fe-workspace{grid-template-columns:180px minmax(0,1fr)}
  .hor-fe-class-row{grid-template-columns:66px 48px minmax(150px,1fr) 76px 135px;column-gap:9px}
  .hor-fe-class-row-media{width:46px;height:46px}
  .hor-fe-class-row .hor-fe-class-name{font-size:17px!important}
  .hor-fe-overview-grid{grid-template-columns:1fr 1fr}.hor-fe-overview-card--credits{grid-row:span 2}
}

/* Tablet/mobile: same information hierarchy, no desktop rail. */
@media (max-width:859px){
  .hor-fe{width:min(100% - 18px,820px);margin-top:16px}
  .hor-fe-memberbar{padding:10px 11px;margin-bottom:9px}
  .hor-fe-memberbar-copy>span{display:none}
  .hor-fe-memberbar-copy>strong{font-size:17px}
  .hor-fe-memberbar-bookings{display:none!important}
  .hor-fe-memberbar #hor-fe-logout{padding:0 9px!important}
  .hor-fe-workspace{display:block}
  .hor-fe-app-shell--v2 .hor-fe-tabs{
    position:sticky;
    top:0;
    z-index:40;
    flex-direction:row;
    gap:4px;
    overflow-x:auto;
    margin:0 0 9px!important;
    padding:7px!important;
    border-radius:13px!important;
    scrollbar-width:none;
  }
  .hor-fe-app-shell--v2 .hor-fe-tabs::-webkit-scrollbar{display:none}
  .hor-fe-nav-heading{display:none}
  .hor-fe-app-shell--v2 .hor-fe-tab{width:auto;min-height:34px;display:block!important;padding:8px 11px!important;white-space:nowrap;font-size:8.5px!important}
  .hor-fe-app-shell--v2 .hor-fe-tab>span{display:none}
  .hor-fe-app-shell--v2 .hor-fe-tab--secondary{min-height:34px}
  .hor-fe-app-shell--v2 .hor-fe-panels{min-height:560px;padding:20px!important;border-radius:16px}
  .hor-fe-overview-grid{grid-template-columns:1fr 1fr}.hor-fe-overview-card--credits{grid-row:auto}
  .hor-fe-overview-shortcuts{grid-template-columns:1fr 1fr}
  .hor-fe-class-row{grid-template-columns:64px 46px minmax(0,1fr) 72px;column-gap:8px}
  .hor-fe-class-row .hor-fe-class-actions{grid-column:1/-1;justify-content:flex-end!important;padding-top:7px;border-top:1px solid var(--hor-fe-line)}
  .hor-fe-class-row .hor-fe-more-info-panel{grid-row:auto}
  .hor-fe-package-grid{grid-template-columns:1fr 1fr!important}
}

@media (max-width:620px){
  .hor-fe{width:calc(100% - 12px);margin-top:10px;margin-bottom:50px}
  .hor-fe-memberbar{border-radius:12px}
  .hor-fe-memberbar .hor-fe-credits-label{display:none}
  .hor-fe-memberbar .hor-fe-credits-bar{min-width:38px;padding:4px!important;background:transparent!important;border:0!important}
  .hor-fe-app-shell--v2 .hor-fe-panels{padding:17px 13px 22px!important;border-radius:14px}
  .hor-fe-app-shell--v2 .hor-fe-section-head{margin-bottom:17px}
  .hor-fe-app-shell--v2 .hor-fe-section-title{font-size:34px!important}
  .hor-fe-overview-head{align-items:flex-start;flex-direction:column;padding-bottom:19px}
  .hor-fe-overview-head h2{font-size:39px!important}
  .hor-fe-overview-grid{grid-template-columns:1fr}
  .hor-fe-overview-card{min-height:145px}
  .hor-fe-overview-shortcuts{grid-template-columns:1fr 1fr}
  .hor-fe-studio-context--compact{align-items:flex-start!important}
  .hor-fe-studio-context--compact h2{display:block;margin-bottom:5px!important}
  .hor-fe-studio-context--compact>div>p:not(.hor-fe-section-eyebrow){display:block;font-size:8.5px}
  .hor-fe-date-chip{flex-basis:50px!important;min-height:55px!important}
  .hor-fe-class-row{
    grid-template-columns:62px minmax(0,1fr) auto;
    padding:10px!important;
    row-gap:7px;
  }
  .hor-fe-class-row-time{grid-row:1/3}
  .hor-fe-class-row-media{display:none}
  .hor-fe-class-row-main{grid-column:2}
  .hor-fe-class-row-availability{grid-column:3;grid-row:1/3;align-self:center}
  .hor-fe-class-row .hor-fe-class-actions{grid-column:1/-1;grid-row:3;margin-top:1px!important}
  .hor-fe-class-row .hor-fe-more-info-panel{grid-column:1/-1;grid-row:4}
  .hor-fe-class-row-titleline{display:block}
  .hor-fe-class-type{display:inline-block;margin-bottom:4px}
  .hor-fe-class-row .hor-fe-class-name{font-size:18px!important;white-space:normal}
  .hor-fe-class-row-meta{flex-wrap:wrap;font-size:8.5px}
  .hor-fe-class-row-time>strong{font-size:22px}
  .hor-fe-studio-picker{grid-template-columns:1fr!important}
  .hor-fe-studio-choice{grid-template-columns:92px 1fr!important;min-height:105px!important}
  .hor-fe-studio-choice-media,.hor-fe-studio-choice-media img{height:105px!important;min-height:105px!important}
  .hor-fe-studio-choice-copy{padding:13px!important}.hor-fe-studio-choice-copy h3{font-size:23px!important}
  .hor-fe-package-grid{grid-template-columns:1fr!important}
  .hor-fe-package-card .hor-fe-card-body{padding:16px!important}
  .hor-fe-booking-card{grid-template-columns:78px minmax(0,1fr)!important}
  .hor-fe-login-shell{grid-template-columns:1fr!important}
  .hor-fe-login-editorial{min-height:250px!important;padding:30px 24px!important}
  .hor-fe-login-editorial h2{margin-top:25px!important;font-size:43px!important}
  .hor-fe-login-points{display:none!important}
  .hor-fe-login-card{padding:29px 22px!important}
}
.hor-fe-commerce-tools{margin:14px 0 10px;padding:12px;border:1px solid rgba(75,58,45,.12);border-radius:14px;background:rgba(122,96,72,.05);display:grid;gap:8px}.hor-fe-commerce-tools label>span{display:block;font-size:11px;font-weight:700;margin-bottom:5px}.hor-fe-commerce-tools input[type=text]{width:100%;min-height:40px;border:1px solid rgba(75,58,45,.16);border-radius:10px;padding:0 11px;background:#fff}.hor-fe-commerce-tools .hor-fe-gift-toggle{display:flex;align-items:center;gap:7px;font-size:12px}.hor-fe-commerce-tools .hor-fe-gift-toggle span{display:inline;margin:0}.hor-fe-commerce-tools small{font-size:10px;line-height:1.4;opacity:.72}

/* ========================================================================
   LAUNCH POLISH — 2026-09-21
   Final public booking-page integration. Presentation only: no endpoint,
   checkout, credit, membership or booking behaviour is changed here.
   ======================================================================== */
.hor-has-booking-page,
.hor-has-booking-page :is(.site,.site-content,#content,.content-area,#primary,main.site-main,article.page,.entry-content,.page-content,.wp-block-post-content){
  background:#f8f3ed!important;
}
.hor-has-booking-page :is(.entry-content,.page-content,.wp-block-post-content){padding:0!important;margin-top:0!important}
.hor-has-booking-page :is(.entry-header,.page-header,.page-title,.wp-block-post-title,.elementor-page-title,.elementor-widget-theme-post-title){display:none!important}

/* The member area should read as the page itself rather than an embedded app. */
.hor-fe{
  width:min(1420px,calc(100% - clamp(22px,4vw,56px)))!important;
  margin:0 auto!important;
  padding:clamp(28px,4vw,54px) 0 clamp(72px,8vw,118px)!important;
}
.hor-fe-app-shell--v2{width:100%}
.hor-fe-memberbar{
  border-radius:14px!important;
  box-shadow:0 10px 34px rgba(62,48,37,.035)!important;
}
.hor-fe-app-shell--v2 .hor-fe-tabs,
.hor-fe-app-shell--v2 .hor-fe-panels{
  box-shadow:0 14px 44px rgba(62,48,37,.045)!important;
}
.hor-fe-app-shell--v2 .hor-fe-panels{border-radius:18px!important}
.hor-fe-app-shell--v2 .hor-fe-tabs{border-radius:16px!important}

/* Calm, deliberate interaction states — visible keyboard focus without the
   theme's default pink/brand colour bleeding into the booking experience. */
.hor-fe :where(button,a,input,select,textarea):focus-visible{
  outline:2px solid var(--hor-fe-accent-deep)!important;
  outline-offset:3px!important;
}
.hor-fe a:not(.hor-fe-btn):visited{color:var(--hor-fe-accent-deep)!important}
.hor-fe button:disabled,.hor-fe .hor-fe-btn:disabled{cursor:not-allowed!important;filter:saturate(.7);opacity:.58!important}

/* Cleaner login landing when the page title has been removed by the shell. */
.hor-fe--login{padding-top:clamp(32px,5vw,70px)!important;padding-bottom:clamp(70px,8vw,120px)!important}
.hor-fe-login-shell{
  overflow:hidden!important;
  border:1px solid var(--hor-fe-line)!important;
  background:var(--hor-fe-surface)!important;
}
.hor-fe-login-card input,
.hor-fe-login-card select,
.hor-fe-login-card textarea{
  border-radius:10px!important;
  box-shadow:none!important;
}

/* Timetable feels like a native editorial schedule rather than nested cards. */
.hor-fe-class-row{box-shadow:none!important}
.hor-fe-class-row .hor-fe-btn{white-space:nowrap}
.hor-fe-date-strip{scroll-padding-inline:4px}
.hor-fe-date-chip{scroll-snap-align:start}
.hor-fe-empty-state{border-radius:14px!important;box-shadow:none!important}

/* Prevent the sticky member rail from sitting under the WordPress admin bar. */
body.admin-bar .hor-fe-app-shell--v2 .hor-fe-tabs{top:50px}

@media(max-width:859px){
  .hor-fe{width:calc(100% - 18px)!important;padding-top:16px!important}
  .hor-fe-app-shell--v2 .hor-fe-tabs{top:8px!important}
  body.admin-bar .hor-fe-app-shell--v2 .hor-fe-tabs{top:54px!important}
  .hor-fe-app-shell--v2 .hor-fe-panels{box-shadow:none!important}
}
@media(max-width:620px){
  .hor-fe{width:100%!important;padding:10px 6px 54px!important}
  .hor-fe-memberbar{margin-left:2px!important;margin-right:2px!important}
  .hor-fe-app-shell--v2 .hor-fe-tabs{border-radius:12px!important}
  .hor-fe-app-shell--v2 .hor-fe-panels{border-radius:14px!important}
}

/* Launch booking flow: class first, booking second. */
.hor-fe-class-row--openable{cursor:pointer!important}
.hor-fe-class-row--openable:focus-visible{outline:2px solid var(--hor-fe-accent)!important;outline-offset:3px!important}
.hor-fe-class-row--openable .hor-fe-view-class{min-width:118px!important}
.hor-fe-class-row--openable:hover .hor-fe-view-class{transform:translateY(-1px)}

.hor-fe-modal--class-detail .hor-fe-modal-sheet{width:min(680px,100%);padding:0;overflow:hidden}
.hor-fe-modal--class-detail .hor-fe-modal-close{z-index:3;background:rgba(255,253,249,.94)!important}
.hor-fe-modal--class-detail .hor-fe-section-eyebrow,
.hor-fe-modal--class-detail .hor-fe-modal-sheet>h3,
.hor-fe-modal--class-detail .hor-fe-modal-copy,
.hor-fe-modal--class-detail .hor-fe-modal-actions{margin-left:30px!important;margin-right:30px!important}
.hor-fe-modal--class-detail .hor-fe-section-eyebrow{margin-top:28px!important}
.hor-fe-modal--class-detail .hor-fe-modal-sheet>h3{font-size:clamp(34px,5vw,48px)!important;max-width:560px}
.hor-fe-modal--class-detail .hor-fe-modal-copy{margin-top:9px!important}
.hor-fe-modal--class-detail .hor-fe-modal-details{margin:22px 0 0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important}
.hor-fe-class-detail-media{width:100%;aspect-ratio:16/7;overflow:hidden;background:var(--hor-fe-surface-soft)}
.hor-fe-class-detail-media img{width:100%;height:100%;object-fit:cover;display:block}
.hor-fe-class-detail-intro{padding:22px 30px 17px;border-bottom:1px solid rgba(59,49,39,.11)}
.hor-fe-class-detail-intro p{max-width:570px;margin:9px 0 0!important;color:#6f655c!important;font-size:12px;line-height:1.75}
.hor-fe-class-detail-level{display:inline-flex;align-items:center;min-height:24px;padding:5px 8px;border-radius:999px;background:#efe7de;color:#746354;font-size:7px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.hor-fe-modal-details .hor-fe-class-detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0!important;padding:8px 30px 0}
.hor-fe-modal-details .hor-fe-class-detail-facts>div{display:block!important;padding:13px 0!important;border-top:1px solid rgba(59,49,39,.09)!important}
.hor-fe-modal-details .hor-fe-class-detail-facts>div:nth-child(odd){padding-right:22px!important}
.hor-fe-modal-details .hor-fe-class-detail-facts>div:nth-child(even){padding-left:22px!important;border-left:1px solid rgba(59,49,39,.09)!important}
.hor-fe-modal-details .hor-fe-class-detail-facts dt{margin-bottom:4px;font-size:7px!important;letter-spacing:.11em!important}
.hor-fe-modal-details .hor-fe-class-detail-facts dd{margin:0!important;text-align:left!important;font:600 16px/1.25 var(--hor-fe-serif)!important;color:#211d18!important}
.hor-fe-modal--class-detail .hor-fe-modal-actions{margin-top:18px!important;margin-bottom:28px!important;padding-top:18px;border-top:1px solid rgba(59,49,39,.11)}
.hor-fe-modal--class-detail .hor-fe-modal-actions .hor-fe-btn{min-height:46px!important}

@media(max-width:640px){
  .hor-fe-modal--class-detail{padding:8px!important;align-items:end}
  .hor-fe-modal--class-detail .hor-fe-modal-sheet{max-height:92vh;overflow-y:auto;border-radius:22px 22px 14px 14px!important}
  .hor-fe-modal--class-detail .hor-fe-section-eyebrow,
  .hor-fe-modal--class-detail .hor-fe-modal-sheet>h3,
  .hor-fe-modal--class-detail .hor-fe-modal-copy,
  .hor-fe-modal--class-detail .hor-fe-modal-actions{margin-left:20px!important;margin-right:20px!important}
  .hor-fe-modal--class-detail .hor-fe-section-eyebrow{margin-top:24px!important}
  .hor-fe-class-detail-media{aspect-ratio:16/9}
  .hor-fe-class-detail-intro{padding:18px 20px 14px}
  .hor-fe-modal-details .hor-fe-class-detail-facts{grid-template-columns:1fr;padding:4px 20px 0}
  .hor-fe-modal-details .hor-fe-class-detail-facts>div{padding:11px 0!important;border-left:0!important}
  .hor-fe-modal-details .hor-fe-class-detail-facts dd{font-size:15px!important}
  .hor-fe-modal--class-detail .hor-fe-modal-actions{margin-bottom:20px!important}
}
