/* =========================================================================
   Frisør Elite Billund — premium barbershop design system
   Palette: warm ink (dark) + cream paper (light), brass accent, olive CTA.
   Bands alternate dark/paper; components read --fe-text/--fe-muted/--fe-surface
   so they adapt per band. Class names preserved for theme JS + plugin shortcodes.
   ========================================================================= */

:root {
	/* Brand surfaces */
	--fe-ink: #14110d;          /* warm near-black — hero & dark bands */
	--fe-ink-2: #1b1712;        /* dark surface / cards */
	--fe-ink-3: #232019;        /* raised dark surface */
	--fe-paper: #f1e7d4;        /* cream band */
	--fe-paper-2: #ece0c9;      /* alt cream */
	--fe-espresso: #2a231b;     /* text on cream */
	--fe-espresso-muted: #6d6051;
	--fe-cream: #f6efe1;        /* text on dark */
	--fe-cream-muted: #c3b6a1;

	/* Accents */
	--fe-brass: #b58f4d;
	--fe-brass-soft: #cba968;
	--fe-brass-deep: #8f6f37;
	/* Channel triples for translucent tints — kept in sync with the admin colour
	   by the inline style in functions.php (see frisor_elite_rgb()). */
	--fe-brass-rgb: 181, 143, 77;
	--fe-brass-soft-rgb: 203, 169, 104;
	--fe-olive: #4d5a3e;
	--fe-olive-hover: #5c6b49;
	--fe-charcoal: #26221a;
	--fe-charcoal-hover: #322d23;

	/* Back-compat (admin still saves these; not used for primary surfaces) */
	--fe-red: #b58f4d;
	--fe-blue: #4d5a3e;

	/* Themed tokens — overridden per band */
	--fe-bg: var(--fe-ink);
	--fe-text: var(--fe-cream);
	--fe-muted: var(--fe-cream-muted);
	--fe-surface: var(--fe-ink-2);
	--fe-surface-2: var(--fe-ink-3);
	--fe-keyline: rgba(246, 239, 225, .14);
	--fe-keyline-strong: rgba(246, 239, 225, .26);

	--fe-font-display: "Playfair Display", Georgia, "Times New Roman", ui-serif, serif;
	--fe-font-body: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

	--fe-container: 1200px;
	--fe-radius: 12px;
	--fe-radius-sm: 8px;
	--fe-section-y: clamp(56px, 8vw, 104px);
	--fe-shadow: 0 24px 60px rgba(0, 0, 0, .4);
	--fe-shadow-soft: 0 16px 38px rgba(0, 0, 0, .28);
	--fe-ease-standard: cubic-bezier(.2, .8, .2, 1);
	--fe-ease-emphasis: cubic-bezier(.16, 1, .3, 1);
	--fe-motion-fast: 180ms;
	--fe-motion-medium: 460ms;
	--fe-motion-slow: 760ms;
}

* { box-sizing: border-box; }

html {
	background: var(--fe-ink);
	scroll-behavior: smooth;
}

body.fe-site {
	margin: 0;
	background: var(--fe-ink);
	color: var(--fe-cream);
	font-family: var(--fe-font-body);
	font-size: 16px;
	line-height: 1.62;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

body.fe-site.admin-bar .fe-site-header { top: 32px; }

body.fe-site a {
	color: inherit;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}

body.fe-site img {
	display: block;
	max-width: 100%;
	height: auto;
}

body.fe-site h1,
body.fe-site h2,
body.fe-site h3 {
	margin: 0;
	color: var(--fe-text);
	font-family: var(--fe-font-display);
	font-weight: 700;
	line-height: 1.06;
	letter-spacing: -.01em;
}

body.fe-site p { margin: 0; color: var(--fe-text); }

body.fe-site :focus-visible {
	outline: 3px solid var(--fe-brass-soft);
	outline-offset: 3px;
	border-radius: 4px;
}

.fe-container {
	width: min(100% - 40px, var(--fe-container));
	margin-inline: auto;
}

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

.fe-skip-link:focus {
	position: fixed;
	top: 16px; left: 16px;
	z-index: 10000;
	background: var(--fe-cream);
	color: var(--fe-ink);
	padding: 10px 14px;
	border-radius: 6px;
}

/* ---- Eyebrows / ornaments ---------------------------------------------- */

.fe-eyebrow {
	margin: 0 0 12px;
	color: var(--fe-brass);
	font-family: var(--fe-font-body);
	font-size: 13px;
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.fe-title-rule,
.fe-mustache-rule {
	display: flex;
	align-items: center;
	gap: 16px;
	width: min(360px, 100%);
	margin-top: 22px;
	color: var(--fe-brass);
}

.fe-title-rule::before,
.fe-title-rule::after,
.fe-mustache-rule::before,
.fe-mustache-rule::after {
	content: "";
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--fe-brass) 60%);
}

.fe-title-rule::before { background: linear-gradient(90deg, var(--fe-brass) 40%, transparent); }

.fe-mustache,
.fe-title-rule span {
	flex: 0 0 auto;
	width: 38px;
	height: 14px;
	background: var(--fe-brass);
	-webkit-mask: var(--fe-mustache-mask) center / contain no-repeat;
	mask: var(--fe-mustache-mask) center / contain no-repeat;
}

:root {
	--fe-mustache-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 34'%3E%3Cpath d='M50 13c5-7 11-11 19-11 8 0 14 5 14 13 0 9-8 16-19 16-6 0-11-2-14-6-3 4-8 6-14 6-11 0-19-7-19-16C17 7 23 2 31 2c8 0 14 4 19 11z'/%3E%3C/svg%3E");
}

/* Centered section ornament heading (PRISER) */
.fe-ornament-heading {
	text-align: center;
	margin-bottom: clamp(28px, 5vw, 52px);
}

.fe-ornament-heading .fe-eyebrow { margin-bottom: 6px; }

.fe-ornament {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(14px, 3vw, 26px);
}

.fe-ornament__rule {
	flex: 1;
	max-width: 220px;
	height: 1px;
	background: linear-gradient(90deg, transparent, var(--fe-brass));
}

.fe-ornament__rule + h2 + .fe-ornament__rule,
.fe-ornament > .fe-ornament__rule:last-child {
	background: linear-gradient(90deg, var(--fe-brass), transparent);
}

.fe-ornament h2 {
	font-size: clamp(26px, 4.4vw, 40px);
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
}

.fe-ornament__mark {
	width: 44px; height: 18px;
	background: var(--fe-brass);
	-webkit-mask: var(--fe-mustache-mask) center / contain no-repeat;
	mask: var(--fe-mustache-mask) center / contain no-repeat;
	flex: 0 0 auto;
}

.fe-section-heading { margin-bottom: clamp(24px, 4vw, 40px); }
.fe-section-heading--split {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
}
.fe-section-heading--center { text-align: center; }
.fe-section-heading h2 { font-size: clamp(26px, 4vw, 38px); }
.fe-section-heading--center .fe-mustache-rule { margin-inline: auto; }

/* ---- Header ------------------------------------------------------------- */

.fe-site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	background: rgba(20, 17, 13, .9);
	border-bottom: 1px solid rgba(246, 239, 225, .08);
	backdrop-filter: blur(14px);
	transition: box-shadow var(--fe-motion-fast) ease, background var(--fe-motion-fast) ease, border-color var(--fe-motion-fast) ease;
}

.fe-site-header.is-scrolled {
	background: rgba(16, 13, 10, .97);
	border-bottom-color: rgba(var(--fe-brass-rgb, 181, 143, 77), .28);
	box-shadow: 0 14px 40px rgba(0, 0, 0, .42);
}

.fe-site-header__inner {
	min-height: 84px;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 24px;
}

.fe-logo { display: inline-flex; align-items: center; text-decoration: none; }

.fe-logo img {
	width: 86px;
	max-width: none;
	height: auto;
	max-height: 66px;
	object-fit: contain;
	transition: filter var(--fe-motion-fast) ease, transform var(--fe-motion-fast) var(--fe-ease-standard);
}

.fe-logo:hover img,
.fe-logo:focus-visible img {
	filter: drop-shadow(0 6px 16px rgba(var(--fe-brass-rgb, 181, 143, 77), .35));
	transform: translateY(-1px);
}

.fe-primary-nav { justify-self: center; }

.fe-nav-list {
	display: flex;
	align-items: center;
	gap: 32px;
	margin: 0; padding: 0;
	list-style: none;
}

.fe-nav-list a {
	position: relative;
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	color: var(--fe-cream);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	text-decoration: none;
	transition: color var(--fe-motion-fast) ease;
}

.fe-nav-list a::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 8px;
	height: 2px;
	background: var(--fe-brass);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--fe-motion-fast) var(--fe-ease-emphasis);
}

.fe-nav-list a:hover,
.fe-nav-list a:focus-visible { color: #fff; }

.fe-nav-list a:hover::after,
.fe-nav-list a:focus-visible::after,
.fe-nav-list .current-menu-item > a::after,
.fe-nav-list .current_page_item > a::after { transform: scaleX(1); }

.fe-header-cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
}

.fe-menu-toggle {
	display: none;
	width: 48px; height: 48px;
	border: 1px solid var(--fe-keyline-strong);
	border-radius: 8px;
	background: transparent;
	color: var(--fe-cream);
	place-items: center;
	padding: 12px;
	transition: background var(--fe-motion-fast) ease, border-color var(--fe-motion-fast) ease;
}

.fe-menu-toggle:hover,
.fe-menu-toggle:focus-visible {
	background: rgba(246, 239, 225, .05);
	border-color: rgba(var(--fe-brass-rgb, 181, 143, 77), .55);
}

.fe-menu-toggle__bar {
	display: block;
	width: 22px; height: 2px;
	margin: 3px 0;
	background: currentColor;
	transform-origin: center;
	transition: opacity var(--fe-motion-fast) ease, transform var(--fe-motion-fast) var(--fe-ease-emphasis);
}

.fe-menu-toggle[aria-expanded="true"] .fe-menu-toggle__bar:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.fe-menu-toggle[aria-expanded="true"] .fe-menu-toggle__bar:nth-child(2) { opacity: 0; transform: scaleX(.3); }
.fe-menu-toggle[aria-expanded="true"] .fe-menu-toggle__bar:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

/* ---- Buttons ------------------------------------------------------------ */

.fe-btn,
.latepoint-book-button.fe-btn {
	position: relative;
	overflow: hidden;
	display: inline-flex;
	min-height: 50px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border: 1px solid transparent;
	border-radius: 8px;
	padding: 13px 24px;
	font-family: var(--fe-font-body);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: transform var(--fe-motion-fast) var(--fe-ease-standard), border-color var(--fe-motion-fast) ease, background var(--fe-motion-fast) ease, color var(--fe-motion-fast) ease, box-shadow var(--fe-motion-fast) ease;
}

.fe-btn__icon {
	width: 17px; height: 17px;
	flex: 0 0 auto;
	display: inline-block;
	background: currentColor;
	-webkit-mask-position: center; mask-position: center;
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-size: contain; mask-size: contain;
}
.fe-btn__icon--calendar { -webkit-mask-image: var(--fe-ico-cal); mask-image: var(--fe-ico-cal); }
.fe-btn__icon--phone { -webkit-mask-image: var(--fe-ico-phone); mask-image: var(--fe-ico-phone); }
.fe-btn__icon--pin { -webkit-mask-image: var(--fe-ico-pin); mask-image: var(--fe-ico-pin); }

:root {
	--fe-ico-cal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E");
	--fe-ico-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
	--fe-ico-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

.fe-btn::before,
.latepoint-book-button.fe-btn::before {
	content: "";
	position: absolute; inset: 0;
	pointer-events: none;
	background: linear-gradient(115deg, transparent 18%, rgba(255, 255, 255, .22) 44%, transparent 68%);
	transform: translateX(-120%);
	transition: transform 620ms var(--fe-ease-standard);
}

.fe-btn:hover, .latepoint-book-button.fe-btn:hover { transform: translateY(-2px); }
.fe-btn:hover::before, .latepoint-book-button.fe-btn:hover::before,
.fe-btn:focus-visible::before, .latepoint-book-button.fe-btn:focus-visible::before { transform: translateX(120%); }
.fe-btn:active, .latepoint-book-button.fe-btn:active { transform: translateY(0); }

.latepoint-book-button.fe-btn.is-trying-popup {
	border-color: rgba(var(--fe-brass-rgb, 181, 143, 77), .6);
	box-shadow: 0 0 0 3px rgba(var(--fe-brass-rgb, 181, 143, 77), .18);
}

.fe-btn--primary, .latepoint-book-button.fe-btn--primary {
	background: var(--fe-olive);
	border-color: rgba(246, 239, 225, .14);
	color: #f7f2e6;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 10px 24px rgba(31, 38, 22, .28);
}
.fe-btn--primary:hover, .latepoint-book-button.fe-btn--primary:hover {
	background: var(--fe-olive-hover);
	color: #fff;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 0 16px 34px rgba(31, 38, 22, .4);
}

.fe-btn--secondary, .latepoint-book-button.fe-btn--secondary,
.fe-btn--ghost, .latepoint-book-button.fe-btn--ghost {
	background: var(--fe-charcoal);
	border-color: rgba(var(--fe-brass-rgb, 181, 143, 77), .4);
	color: var(--fe-cream);
}
.fe-btn--secondary:hover, .fe-btn--ghost:hover {
	background: var(--fe-charcoal-hover);
	border-color: var(--fe-brass);
	color: #fff;
	box-shadow: 0 14px 28px rgba(0, 0, 0, .3);
}

/* Brass outline variant for use on paper bands */
.fe-band--paper .fe-btn--ghost,
.fe-band--paper .fe-btn--secondary {
	background: transparent;
	border-color: rgba(42, 35, 27, .35);
	color: var(--fe-espresso);
}
.fe-band--paper .fe-btn--ghost:hover,
.fe-band--paper .fe-btn--secondary:hover {
	background: var(--fe-charcoal);
	border-color: var(--fe-charcoal);
	color: var(--fe-cream);
}

.fe-btn--small { min-height: 48px; padding-inline: 20px; font-size: 13px; }
.fe-btn--compact { min-height: 44px; padding: 11px 18px; font-size: 13px; }
.fe-btn--full { width: 100%; }
.fe-btn--mobile { min-height: 48px; padding: 12px; font-size: 13px; }

.fe-btn span { font-weight: 500; letter-spacing: .02em; opacity: .82; text-transform: none; }

/* ---- Sections / bands --------------------------------------------------- */

.fe-main { background: var(--fe-ink); }

.fe-section {
	position: relative;
	padding-block: var(--fe-section-y);
}

.fe-band--dark {
	background: var(--fe-ink);
	background-image: radial-gradient(circle at 80% -10%, rgba(var(--fe-brass-rgb, 181, 143, 77), .1), transparent 30rem);
}

.fe-band--paper {
	background: var(--fe-paper);
	color: var(--fe-espresso);
	--fe-text: var(--fe-espresso);
	--fe-muted: var(--fe-espresso-muted);
	--fe-surface: #fbf3e2;
	--fe-surface-2: #fffdf7;
	--fe-keyline: rgba(42, 35, 27, .16);
	--fe-keyline-strong: rgba(42, 35, 27, .3);
}

.fe-band--paper p { color: var(--fe-espresso); }
.fe-band--paper .fe-muted { color: var(--fe-espresso-muted); }

.fe-band-divider { border: 0; height: 1px; margin: 0; background: var(--fe-keyline); }

/* ---- Hero --------------------------------------------------------------- */

.fe-hero {
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 12% 20%, rgba(var(--fe-brass-rgb, 181, 143, 77), .12), transparent 26rem),
		linear-gradient(180deg, #16120d 0%, #100d09 100%);
	border-bottom: 1px solid var(--fe-keyline);
}

.fe-hero__inner {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: minmax(390px, 480px) minmax(0, 1fr);
	align-items: center;
	gap: clamp(28px, 3.2vw, 42px);
	width: min(100% - clamp(40px, 9vw, 180px), 1310px);
	padding-block: 0;
	min-height: clamp(620px, 40vw, 668px);
}

.fe-hero__content {
	width: min(480px, 100%);
	align-self: center;
}

.fe-hero h1 {
	font-size: clamp(40px, 3.8vw, 58px);
	margin-top: 4px;
}

.fe-hero__content > p:not(.fe-eyebrow) {
	max-width: 560px;
	margin-top: 12px;
	color: var(--fe-cream);
	font-size: clamp(16px, 1.2vw, 17px);
	opacity: .92;
}

.fe-hero .fe-title-rule { margin-top: 18px; }

.fe-hero .fe-eyebrow {
	max-width: none;
	margin: 0 0 12px;
	color: var(--fe-cream);
	font-size: 13px;
	opacity: .96;
}

.fe-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	margin-top: 24px;
}

.fe-hero__media {
	position: relative;
	align-self: stretch;
	min-height: clamp(420px, 46vw, 560px);
	border-radius: var(--fe-radius);
	overflow: hidden;
	border: 1px solid rgba(var(--fe-brass-rgb, 181, 143, 77), .34);
	box-shadow: var(--fe-shadow);
	background: var(--fe-ink-2);
}

.fe-hero__media--composite {
	position: absolute;
	top: -23px;
	left: calc(480px + clamp(28px, 3.2vw, 42px) + clamp(-90px, -4.4vw, -56px));
	width: clamp(760px, 61vw, 1020px);
	aspect-ratio: 1448 / 1086;
	min-height: 0;
	height: auto;
	margin: 0;
	border: 0;
	border-radius: 0;
	overflow: visible;
	background: transparent;
	box-shadow: none;
}

.fe-hero__media::after {
	content: "";
	position: absolute; inset: 0;
	pointer-events: none;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06), inset 0 -90px 120px rgba(16, 13, 9, .5);
	border-radius: inherit;
}

.fe-hero__media--composite::after { display: none; }

/* Single dynamic hero image fills the brass-keyline frame (cover, house tone). */
.fe-hero__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	filter: saturate(.96) contrast(1.03);
}

.fe-hero__media--composite .fe-hero__img {
	object-fit: contain;
	object-position: center bottom;
	filter: saturate(1.02) contrast(1.03);
}

/* Back-compat: if the plugin slider is ever placed here again, keep it filling. */
.fe-hero__media .fe-home-slider,
.fe-hero__media .fe-home-slider__slides,
.fe-hero__media .fe-home-slider__slide { height: 100%; }

.fe-hero__accent {
	position: absolute;
	top: 0; bottom: 0;
	z-index: 1;
	width: 30px;
	/* Seamless diagonal brass stripes via a repeating gradient — ONE continuous
	   barber-pole spanning the full hero height (no tiled-image seams/segments).
	   Stripe period 16px along the 135° axis → vertical period 16·√2 ≈ 22.627px,
	   which the drift keyframe shifts by so the loop is perfectly seamless. */
	background-image: repeating-linear-gradient(
		135deg,
		rgba(var(--fe-brass-rgb, 181, 143, 77), .85) 0,
		rgba(var(--fe-brass-rgb, 181, 143, 77), .85) 4px,
		transparent 4px,
		transparent 16px
	);
	opacity: .5;
	pointer-events: none;
	animation: feBarberPoleDrift 7s linear infinite;
	will-change: background-position;
}
.fe-hero__accent--left { left: 0; }
/* Both edges share the identical stripe direction + drift so the accent reads as
   one consistent part (not a mirrored pair). */
.fe-hero__accent--right { right: 0; }

/* Hero entrance */
.fe-js .fe-hero__content > *,
.fe-js .fe-hero__media {
	opacity: 0;
	transform: translate3d(0, 22px, 0);
	animation: feHeroEntrance var(--fe-motion-slow) var(--fe-ease-emphasis) forwards;
	animation-delay: var(--fe-load-delay, 0ms);
	will-change: opacity, transform;
}
.fe-js .fe-hero h1 { --fe-load-delay: 90ms; }
.fe-js .fe-hero .fe-title-rule { --fe-load-delay: 180ms; }
.fe-js .fe-hero p { --fe-load-delay: 260ms; }
.fe-js .fe-hero__actions { --fe-load-delay: 350ms; }
.fe-js .fe-hero__media { --fe-load-delay: 200ms; transform: translate3d(26px, 0, 0); }

/* Home slider structure + controls live in the plugin stylesheet
   (frisor-elite-plugin.css), styled to fill .fe-hero__media. */

/* ---- PRISER price menu -------------------------------------------------- */

.fe-price-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 18px;
}

.fe-price-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 14px;
	padding: 30px 18px 26px;
	border: 1px solid var(--fe-keyline-strong);
	border-radius: var(--fe-radius);
	background: var(--fe-surface);
	text-decoration: none;
	color: var(--fe-text);
	box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset;
	transition: transform var(--fe-motion-fast) var(--fe-ease-standard), border-color var(--fe-motion-fast) ease, box-shadow var(--fe-motion-fast) ease;
}

.fe-price-card:hover,
.fe-price-card:focus-visible {
	transform: translateY(-4px);
	border-color: var(--fe-brass);
	box-shadow: 0 22px 40px rgba(42, 35, 27, .16);
}

.fe-price-card__icon {
	display: inline-flex;
	width: 64px; height: 64px;
	align-items: center; justify-content: center;
	border: 1px solid var(--fe-brass);
	border-radius: 50%;
	background: rgba(var(--fe-brass-rgb, 181, 143, 77), .08);
}
.fe-price-card__icon img {
	width: 34px; height: 34px;
	filter: invert(58%) sepia(36%) saturate(560%) hue-rotate(2deg) brightness(92%) contrast(86%);
}

.fe-price-card__name {
	font-family: var(--fe-font-body);
	font-size: 12px;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--fe-muted);
}

.fe-price-card__price {
	font-family: var(--fe-font-display);
	font-size: clamp(24px, 2.6vw, 30px);
	font-weight: 700;
	color: var(--fe-text);
	line-height: 1;
}
.fe-price-card__price span { font-size: .6em; font-weight: 600; opacity: .7; }

.fe-price-card__duration {
	margin-top: -4px;
	font-size: 12.5px;
	color: var(--fe-muted);
}

.fe-price-actions {
	margin-top: clamp(28px, 4vw, 44px);
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 14px;
}
.fe-price-actions p { color: var(--fe-muted); font-size: 15px; }

/* ---- Legacy services grid (used on inner /priser/ page) ----------------- */

.fe-services-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.fe-service-card {
	position: relative;
	display: grid;
	grid-template-rows: auto auto 1fr auto;
	gap: 6px;
	min-height: 170px;
	border: 1px solid var(--fe-keyline);
	border-radius: var(--fe-radius);
	background: var(--fe-surface);
	padding: 22px;
	box-shadow: var(--fe-shadow-soft);
	transition: transform var(--fe-motion-fast) var(--fe-ease-standard), border-color var(--fe-motion-fast) ease, box-shadow var(--fe-motion-fast) ease;
}
.fe-service-card:hover, .fe-service-card:focus-within {
	transform: translateY(-3px);
	border-color: var(--fe-brass);
	box-shadow: 0 22px 44px rgba(0, 0, 0, .32);
}
.fe-service-card__top { display: grid; grid-template-columns: 54px 1fr; align-items: center; gap: 14px; }
.fe-service-card__icon {
	display: inline-flex; width: 54px; height: 54px;
	align-items: center; justify-content: center;
	border: 1px solid var(--fe-brass); border-radius: 50%;
	background: rgba(var(--fe-brass-rgb, 181, 143, 77), .08);
}
.fe-service-card__icon img { width: 30px; height: 30px; filter: invert(58%) sepia(36%) saturate(560%) hue-rotate(2deg) brightness(92%) contrast(86%); }
.fe-service-card h3 { font-size: 21px; overflow-wrap: anywhere; }
.fe-service-card__duration { color: var(--fe-muted); font-size: 14px; }
.fe-service-card__rule { width: 42px; height: 2px; margin: 14px 0 8px 68px; background: var(--fe-brass); }
.fe-service-card__meta { display: flex; justify-content: flex-end; align-items: end; margin-bottom: 12px; }
.fe-service-card__meta strong { font-family: var(--fe-font-display); font-size: 22px; }
.fe-service-card__button { min-height: 46px; font-size: 13px; }

/* ---- Om / Trust band ---------------------------------------------------- */

.fe-section--about { background: var(--fe-ink); }
.fe-section--about::before {
	content: "";
	position: absolute; inset: 0;
	background: url("../img/dark-texture.webp") center / cover no-repeat;
	opacity: .12;
	pointer-events: none;
}
.fe-about-inner { position: relative; z-index: 1; }

.fe-about-lede {
	max-width: 720px;
	margin: 18px auto 0;
	text-align: center;
	color: var(--fe-cream);
	opacity: .9;
	font-size: clamp(16px, 1.7vw, 18px);
}

.fe-pillars {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
	margin-top: clamp(34px, 5vw, 56px);
}

.fe-pillar {
	position: relative;
	overflow: hidden;
	text-align: center;
	padding: 32px 22px 30px;
	border: 1px solid var(--fe-keyline);
	border-radius: var(--fe-radius);
	background: rgba(27, 23, 18, .7);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
	transition: transform var(--fe-motion-fast) var(--fe-ease-standard), border-color var(--fe-motion-fast) ease, box-shadow var(--fe-motion-fast) ease;
}
/* Hairline gold top-accent so pillars read as brushed-brass card stock,
   matching the price-card material quality (design spec §pillars). */
.fe-pillar::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(var(--fe-brass-rgb, 181, 143, 77), .55) 50%, transparent);
}
.fe-pillar:hover {
	transform: translateY(-3px);
	border-color: rgba(var(--fe-brass-rgb, 181, 143, 77), .42);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 18px 38px rgba(0, 0, 0, .26);
}

.fe-pillar__icon {
	display: inline-flex;
	width: 56px; height: 56px;
	margin-bottom: 16px;
	align-items: center; justify-content: center;
	border: 1px solid var(--fe-brass);
	border-radius: 50%;
	color: var(--fe-brass);
	font-size: 22px;
	background: rgba(var(--fe-brass-rgb, 181, 143, 77), .08);
}
.fe-pillar h3 {
	position: relative;
	font-size: 20px;
	margin-bottom: 18px;
	padding-bottom: 14px;
}
/* Brass divider under each pillar heading. */
.fe-pillar h3::after {
	content: "";
	position: absolute;
	left: 50%; bottom: 0;
	width: 38px; height: 2px;
	transform: translateX(-50%);
	background: var(--fe-brass);
	opacity: .85;
	border-radius: 999px;
}
.fe-pillar p { color: var(--fe-cream-muted); font-size: 15px; }

/* legacy about layout (kept for inner pages / back-compat) */
.fe-about { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1fr); gap: 0; align-items: stretch; }
.fe-about__image { min-height: 360px; overflow: hidden; border-radius: var(--fe-radius); }
.fe-about__image img { width: 100%; height: 100%; object-fit: cover; }
.fe-about__content { padding: clamp(24px, 4vw, 54px) clamp(16px, 4vw, 60px); }
.fe-about__content p:not(.fe-eyebrow) { max-width: 660px; margin-top: 16px; }
.fe-badges { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 30px; }
.fe-badges div { border-left: 2px solid var(--fe-brass); padding-left: 14px; }
.fe-badges strong { display: block; }
.fe-badges span { display: block; margin-top: 4px; color: var(--fe-muted); font-size: 14px; }

/* ---- Gallery ------------------------------------------------------------ */

.fe-section--gallery { background: var(--fe-ink); padding-block: clamp(48px, 7vw, 88px); }
.fe-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px;
}
.fe-gallery__item {
	position: relative;
	overflow: hidden;
	border-radius: var(--fe-radius-sm);
	border: 1px solid var(--fe-keyline);
	aspect-ratio: 1 / 1;
	background: var(--fe-ink-2);
}
.fe-gallery__item img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform var(--fe-motion-medium) var(--fe-ease-standard), filter var(--fe-motion-medium) ease;
	filter: saturate(.95) contrast(1.03);
}
.fe-gallery__item:hover img { transform: scale(1.06); filter: saturate(1.05) contrast(1.05); }

/* ---- Reviews ------------------------------------------------------------ */

.fe-reviews-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 20px; }
.fe-review-card {
	position: relative;
	margin: 0;
	border: 1px solid var(--fe-keyline);
	border-radius: var(--fe-radius);
	background: var(--fe-surface);
	padding: 26px 24px;
	min-height: 168px;
	transition: transform var(--fe-motion-fast) var(--fe-ease-standard), border-color var(--fe-motion-fast) ease, box-shadow var(--fe-motion-fast) ease;
}
.fe-review-card::before {
	content: "\201C";
	position: absolute; top: 10px; right: 20px;
	font-family: var(--fe-font-display);
	font-size: 64px; line-height: 1;
	color: var(--fe-brass);
	opacity: .28;
}
.fe-review-card:hover, .fe-review-card:focus-within {
	transform: translateY(-3px);
	border-color: var(--fe-brass);
	box-shadow: 0 18px 36px rgba(0, 0, 0, .26);
}
.fe-band--paper .fe-review-card:hover { box-shadow: 0 18px 36px rgba(42, 35, 27, .14); }
.fe-stars { color: var(--fe-brass); font-size: 17px; letter-spacing: 2px; }
.fe-review-card blockquote { margin: 12px 0 18px; color: var(--fe-text); font-style: italic; line-height: 1.5; }
.fe-review-card figcaption { color: var(--fe-text); font-weight: 600; }
/* Muted monochrome brass Google glyph — calms the multicolor noise on the
   cream review grid (design spec §reviews). Color text is replaced by a quiet
   brass ring + "G" so it reads as a subtle source mark, not a logo. */
.fe-google-mark {
	position: absolute; right: 20px; bottom: 18px;
	width: 26px; height: 26px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%;
	background: transparent;
	border: 1px solid rgba(var(--fe-brass-rgb, 181, 143, 77), .45);
	color: var(--fe-brass-deep); font-weight: 800; font-family: var(--fe-font-body); font-size: 13px;
	opacity: .8;
}
.fe-reviews-cta { margin-top: 28px; text-align: center; }

/* ---- Booking banner ----------------------------------------------------- */

.fe-booking-banner {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: clamp(28px, 4vw, 44px);
	padding: clamp(24px, 3vw, 38px);
	border: 1px solid rgba(var(--fe-brass-rgb, 181, 143, 77), .4);
	border-radius: var(--fe-radius);
	background:
		radial-gradient(circle at 90% 10%, rgba(var(--fe-brass-rgb, 181, 143, 77), .16), transparent 18rem),
		linear-gradient(120deg, var(--fe-ink-3), var(--fe-ink));
	color: var(--fe-cream);
}
.fe-booking-banner::before {
	content: "";
	position: absolute; top: 0; bottom: 0; left: 0;
	width: 5px;
	background: repeating-linear-gradient(135deg, var(--fe-brass) 0 8px, #f6efe1 8px 16px, var(--fe-olive) 16px 24px, var(--fe-brass) 24px 32px);
	background-size: 5px 46px;
	opacity: .9;
	transition: background-position var(--fe-motion-medium) linear;
}
.fe-booking-banner:hover::before, .fe-booking-banner:focus-within::before { background-position: 0 46px; }
.fe-booking-banner > * { position: relative; z-index: 1; }
.fe-booking-banner h2 { color: var(--fe-cream); font-size: clamp(22px, 3vw, 32px); }
.fe-booking-banner .fe-eyebrow { color: var(--fe-brass-soft); }
.fe-booking-banner p:not(.fe-eyebrow) { margin-top: 8px; color: var(--fe-cream-muted); }

/* ---- Contact (canonical block) ------------------------------------------ */

.fe-contact-card {
	display: grid;
	grid-template-columns: 1.05fr .85fr minmax(240px, .95fr);
	gap: 20px;
	align-items: stretch;
}
.fe-contact-card > div, .fe-map-card {
	border: 1px solid var(--fe-keyline-strong);
	border-radius: var(--fe-radius);
	background: var(--fe-surface);
	padding: 26px;
	transition: transform var(--fe-motion-fast) var(--fe-ease-standard), border-color var(--fe-motion-fast) ease, box-shadow var(--fe-motion-fast) ease;
}
.fe-contact-card > div:hover, .fe-map-card:hover, .fe-map-card:focus-visible {
	transform: translateY(-2px);
	border-color: var(--fe-brass);
	box-shadow: 0 18px 36px rgba(42, 35, 27, .14);
}
.fe-contact-card h2 { margin-bottom: 14px; font-size: 22px; }
.fe-contact-card p { color: var(--fe-text); }
.fe-contact-card p + p { margin-top: 8px; }
.fe-contact-card a { color: var(--fe-text); }
.fe-contact-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.fe-contact-social {
	display: inline-flex; align-items: center;
	min-height: 44px; padding: 10px 14px;
	border: 1px solid var(--fe-keyline-strong);
	border-radius: 8px;
	font-size: 13px; font-weight: 700; letter-spacing: .04em;
	text-decoration: none;
	transition: border-color var(--fe-motion-fast) ease, background var(--fe-motion-fast) ease;
}
.fe-contact-social:hover { border-color: var(--fe-brass); background: rgba(var(--fe-brass-rgb, 181, 143, 77), .1); }

.fe-hours { margin: 0; }
.fe-hours div { display: grid; grid-template-columns: 1fr auto; gap: 16px; padding: 7px 0; border-bottom: 1px dashed var(--fe-keyline); }
.fe-hours div:last-child { border-bottom: 0; }
.fe-hours dt, .fe-hours dd { margin: 0; color: var(--fe-text); }
.fe-hours dd { font-variant-numeric: tabular-nums; font-weight: 600; }
.fe-hours .is-closed dt, .fe-hours .is-closed dd { color: var(--fe-brass-deep); font-weight: 700; }
.fe-band--paper .fe-hours .is-closed dt, .fe-band--paper .fe-hours .is-closed dd { color: #a9742a; }

.fe-map-card {
	display: flex; align-items: center; gap: 14px;
	min-height: 150px; text-decoration: none;
	background:
		radial-gradient(circle at 80% 20%, rgba(var(--fe-brass-rgb, 181, 143, 77), .14), transparent 14rem),
		var(--fe-surface);
}
.fe-map-card__pin {
	width: 18px; height: 18px;
	border-radius: 50% 50% 50% 0;
	background: var(--fe-brass);
	transform: rotate(-45deg);
	flex: 0 0 auto;
	box-shadow: 0 0 0 0 rgba(var(--fe-brass-rgb, 181, 143, 77), .35);
	transition: box-shadow var(--fe-motion-fast) ease, transform var(--fe-motion-fast) var(--fe-ease-standard);
}
.fe-map-card:hover .fe-map-card__pin, .fe-map-card:focus-visible .fe-map-card__pin {
	box-shadow: 0 0 0 8px rgba(var(--fe-brass-rgb, 181, 143, 77), .14);
	transform: translateY(-2px) rotate(-45deg);
}
.fe-map-card strong, .fe-map-card small { display: block; }
.fe-map-card small { color: var(--fe-muted); }

/* ---- Footer (compact, non-duplicative) ---------------------------------- */

.fe-site-footer {
	background: #100d09;
	color: var(--fe-cream);
	border-top: 1px solid rgba(var(--fe-brass-rgb, 181, 143, 77), .26);
}

.fe-site-footer__inner {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr;
	gap: clamp(28px, 5vw, 56px);
	padding-block: clamp(40px, 5vw, 60px);
	align-items: start;
}

.fe-footer-brand .fe-logo--footer img { width: 98px; max-width: none; height: auto; max-height: 76px; }
.fe-footer-brand p { max-width: 320px; margin-top: 14px; color: var(--fe-cream-muted); }
.fe-footer-contact { margin-top: 16px; color: var(--fe-cream-muted); font-size: 14.5px; line-height: 1.7; }
.fe-footer-contact a { color: var(--fe-cream); text-decoration: none; }
.fe-footer-contact a:hover { color: var(--fe-brass-soft); }

.fe-footer-col h2 {
	margin-bottom: 16px;
	font-family: var(--fe-font-body);
	font-size: 13px; font-weight: 800;
	letter-spacing: .16em; text-transform: uppercase;
	color: var(--fe-brass);
}

.fe-footer-nav, .fe-footer-list { margin: 0; padding: 0; list-style: none; }
.fe-footer-nav li + li, .fe-footer-list li + li { margin-top: 10px; }
.fe-footer-nav a, .fe-footer-list a { color: var(--fe-cream-muted); text-decoration: none; transition: color var(--fe-motion-fast) ease; }
.fe-footer-nav a:hover, .fe-footer-list a:hover { color: var(--fe-cream); }

.fe-footer-social { display: flex; gap: 10px; margin-top: 4px; flex-wrap: wrap; }
.fe-footer-social a {
	display: inline-flex; align-items: center;
	min-height: 42px; padding: 9px 14px;
	border: 1px solid var(--fe-keyline-strong);
	border-radius: 8px;
	color: var(--fe-cream);
	font-size: 13px; font-weight: 700;
	text-decoration: none;
	transition: border-color var(--fe-motion-fast) ease, background var(--fe-motion-fast) ease;
}
.fe-footer-social a:hover { border-color: var(--fe-brass); background: rgba(var(--fe-brass-rgb, 181, 143, 77), .1); }

.fe-site-footer__bottom {
	border-top: 1px solid rgba(246, 239, 225, .08);
	padding-block: 18px;
	color: var(--fe-cream-muted);
	font-size: 13.5px;
}
.fe-site-footer__bottom .fe-container { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* ---- Mobile sticky CTA -------------------------------------------------- */

.fe-mobile-cta {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 1001;
	display: none;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	padding: 10px 14px max(10px, env(safe-area-inset-bottom));
	background: rgba(16, 13, 9, .96);
	border-top: 1px solid rgba(var(--fe-brass-rgb, 181, 143, 77), .3);
	backdrop-filter: blur(12px);
	transition: transform .2s ease, opacity .2s ease;
}
.fe-mobile-cta.is-hidden-over-hero { opacity: 0; pointer-events: none; transform: translateY(calc(100% + 2px)); }

/* ---- Inner (non-home) pages -------------------------------------------- */

body:not(.home) #content, body:not(.home) .site-content { background: var(--fe-ink); }
body:not(.home) .site-content { width: min(100% - 32px, 960px); margin: 0 auto; padding: 58px 0 72px; }
body:not(.home) .inside-article, body:not(.home) .page-header {
	border: 1px solid var(--fe-keyline);
	border-radius: var(--fe-radius);
	background: var(--fe-ink-2);
	padding: 32px;
}
body:not(.home) .entry-title { font-size: clamp(30px, 5vw, 40px); }
body:not(.home) .entry-content p { color: var(--fe-cream); }
body:not(.home) .entry-content p + p,
body:not(.home) .entry-content .fe-services-grid,
body:not(.home) .entry-content .fe-contact-card { margin-top: 22px; }

.latepoint-lightbox-w { color: #1a1a1a; }

/* ---- Reveal-on-scroll --------------------------------------------------- */

.fe-js .fe-section-heading,
.fe-js .fe-ornament-heading,
.fe-js .fe-price-card,
.fe-js .fe-service-card,
.fe-js .fe-about-lede,
.fe-js .fe-pillar,
.fe-js .fe-about__image,
.fe-js .fe-about__content,
.fe-js .fe-badges > div,
.fe-js .fe-gallery__item,
.fe-js .fe-review-card,
.fe-js .fe-booking-banner,
.fe-js .fe-contact-card > div,
.fe-js .fe-map-card,
.fe-js .fe-site-footer__inner > div {
	opacity: 0;
	transform: translate3d(0, 24px, 0);
	transition: opacity var(--fe-motion-medium) ease, transform var(--fe-motion-medium) var(--fe-ease-emphasis);
	transition-delay: var(--fe-reveal-delay, 0ms);
	will-change: opacity, transform;
}

.fe-js .fe-section-heading.is-visible,
.fe-js .fe-ornament-heading.is-visible,
.fe-js .fe-price-card.is-visible,
.fe-js .fe-service-card.is-visible,
.fe-js .fe-about-lede.is-visible,
.fe-js .fe-pillar.is-visible,
.fe-js .fe-about__image.is-visible,
.fe-js .fe-about__content.is-visible,
.fe-js .fe-badges > div.is-visible,
.fe-js .fe-gallery__item.is-visible,
.fe-js .fe-review-card.is-visible,
.fe-js .fe-booking-banner.is-visible,
.fe-js .fe-contact-card > div.is-visible,
.fe-js .fe-map-card.is-visible,
.fe-js .fe-site-footer__inner > div.is-visible {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}

@keyframes feHeroEntrance {
	from { opacity: 0; transform: translate3d(0, 22px, 0); }
	to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes feBarberPoleDrift {
	from { background-position: 0 0; }
	to { background-position: 0 -22.627px; }
}

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

@media (max-width: 1099px) {
	.fe-price-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
	.fe-site-header__inner { grid-template-columns: auto auto; justify-content: space-between; }
	.fe-menu-toggle { display: grid; }
	.fe-primary-nav {
		position: absolute; left: 0; right: 0; top: calc(100% + 10px);
		grid-column: 1 / -1; justify-self: stretch;
		display: block; width: auto;
		margin-inline: 16px;
		border: 1px solid var(--fe-keyline-strong);
		border-radius: var(--fe-radius);
		background: rgba(16, 13, 9, .99);
		box-shadow: var(--fe-shadow);
		opacity: 0; pointer-events: none; transform: translateY(-6px); visibility: hidden;
		transition: opacity var(--fe-motion-fast) ease, transform var(--fe-motion-fast) var(--fe-ease-standard), visibility 0s linear var(--fe-motion-fast);
	}
	.fe-primary-nav.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); visibility: visible; transition-delay: 0s; }
	.fe-nav-list { display: grid; gap: 0; padding: 10px; }
	.fe-nav-list a { width: 100%; padding-inline: 12px; }
	.fe-header-cta { display: none; }

	.fe-hero__inner {
		grid-template-columns: 1fr;
		gap: 34px;
		width: min(100% - 40px, var(--fe-container));
		min-height: 0;
		padding-block: 42px 0;
		align-items: stretch;
	}
	.fe-hero__content { order: 1; }
	.fe-hero__media { min-height: 0; height: clamp(240px, 56vw, 380px); order: 2; }
	.fe-hero__media--composite {
		position: relative;
		top: auto;
		left: auto;
		justify-self: center;
		width: min(100%, 720px);
		height: auto;
		margin: 0;
		aspect-ratio: 1448 / 1086;
	}
	.fe-hero__content { width: 100%; align-self: stretch; }

	.fe-contact-card { grid-template-columns: 1fr 1fr; }
	.fe-map-card { grid-column: 1 / -1; }
	.fe-site-footer__inner { grid-template-columns: 1fr 1fr; }
	.fe-footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
	body.fe-site { padding-bottom: 72px; }
	body.fe-site.admin-bar .fe-site-header { top: 0; }
	.fe-container { width: min(100% - 32px, var(--fe-container)); }
	.fe-site-header__inner { min-height: 70px; }
	.fe-site-header .fe-logo img { width: 74px; max-width: none; height: auto; max-height: 58px; }
	.fe-hero__accent { display: none; }
	.fe-hero__inner { width: min(100% - 32px, var(--fe-container)); }
	.fe-hero__content { padding-bottom: 0; }

	.fe-hero h1 { font-size: clamp(34px, 9vw, 46px); }
	.fe-hero__actions { flex-direction: column; align-items: stretch; }
	.fe-hero__actions .fe-btn { width: 100%; }

	.fe-section-heading--split { flex-direction: column; align-items: stretch; }
	.fe-ornament__rule { max-width: 40px; }
	.fe-ornament h2 { font-size: clamp(22px, 7vw, 30px); }

	.fe-price-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
	.fe-services-grid, .fe-reviews-grid, .fe-pillars { grid-template-columns: 1fr; }
	.fe-about { grid-template-columns: 1fr; }
	.fe-badges { grid-template-columns: 1fr; }

	.fe-booking-banner { flex-direction: column; align-items: stretch; text-align: left; }
	.fe-booking-banner .fe-btn { width: 100%; }
	.fe-contact-card { grid-template-columns: 1fr; }

	.fe-site-footer__inner { grid-template-columns: 1fr; }
	.fe-site-footer__bottom .fe-container { flex-direction: column; text-align: center; gap: 8px; }

	.fe-mobile-cta { display: grid; }
}

@media (max-width: 400px) {
	.fe-price-grid { grid-template-columns: 1fr; }
	.fe-btn, .latepoint-book-button.fe-btn { padding-inline: 16px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	.fe-hero__accent, .fe-btn::before, .latepoint-book-button.fe-btn::before {
		animation: none !important; display: none !important; transform: none !important;
	}
	.fe-js .fe-hero__content > *, .fe-js .fe-hero__media,
	.fe-js .fe-section-heading, .fe-js .fe-ornament-heading, .fe-js .fe-price-card,
	.fe-js .fe-service-card, .fe-js .fe-about-lede, .fe-js .fe-pillar,
	.fe-js .fe-about__image, .fe-js .fe-about__content, .fe-js .fe-badges > div,
	.fe-js .fe-gallery__item, .fe-js .fe-review-card, .fe-js .fe-booking-banner,
	.fe-js .fe-contact-card > div, .fe-js .fe-map-card, .fe-js .fe-site-footer__inner > div {
		opacity: 1 !important; transform: none !important;
	}
}
