:root {
  --fh-pine-950: #0b2620;
  --fh-pine-900: #10352d;
  --fh-pine-800: #17483d;
  --fh-pine-700: #235e4f;
  --fh-copper-600: #b85d35;
  --fh-copper-500: #d47745;
  --fh-copper-300: #e9aa82;
  --fh-cream-100: #fbf5e9;
  --fh-cream-200: #f3e7d2;
  --fh-ink: #17201e;
  --fh-muted: #5d6966;
  --fh-line: #d8ddd9;
  --fh-white: #fffdf8;
  --fh-shell: min(1180px, calc(100vw - 36px));
  --fh-shadow: 0 18px 50px rgba(11, 38, 32, .13);
}

html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { background: var(--fh-white); color: var(--fh-ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body, button, input, textarea { font-family: inherit; }
a { color: inherit; }
img { max-width: 100%; }
.fh-shell { width: var(--fh-shell); margin-inline: auto; }
.fh-site-main { margin: 0; overflow: clip; }
.fh-front-page .site-content { margin: 0; padding: 0; }
body.fh-front-page #content > .ast-container { display: block; width: 100%; max-width: none; padding: 0; }
.fh-front-page .content-area,
.fh-front-page .fh-site-main,
body.fh-front-page #primary { width: 100%; max-width: none; min-width: 0; margin: 0; flex: 0 0 100%; }
.fh-front-page .entry-content { margin: 0; }
.fh-system-message { min-height: 60vh; width: var(--fh-shell); margin: auto; padding-block: 140px; }

/* Astra header integration */
.site-header { position: sticky; top: 0; z-index: 100; border-bottom: 1px solid rgba(11, 38, 32, .08); transition: box-shadow .2s ease, background .2s ease; }
.site-header.fh-header--scrolled { box-shadow: 0 10px 32px rgba(11, 38, 32, .12); }
.ast-primary-header-bar { background: rgba(255, 253, 248, .97); backdrop-filter: blur(16px); }
.site-title a, .ast-site-title-wrap .site-title { color: var(--fh-pine-900); font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.25rem, 3vw, 1.7rem); font-weight: 700; letter-spacing: -.025em; }
.main-header-menu > .menu-item > .menu-link { color: var(--fh-ink); font-size: .86rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.main-header-menu > .menu-item > .menu-link:hover,
.main-header-menu > .current-menu-item > .menu-link { color: var(--fh-copper-600); }
.main-header-menu > .fh-menu-cta > .menu-link { min-height: 42px; margin-block: 8px; padding-inline: 19px; background: var(--fh-pine-900); color: #fff !important; border-radius: 4px; }
.ast-mobile-header-wrap .ast-button-wrap .menu-toggle.main-header-menu-toggle { color: var(--fh-pine-900); border: 1px solid var(--fh-line); border-radius: 4px; }

/* Shared typography and controls */
.fh-eyebrow { margin: 0 0 14px; color: var(--fh-copper-600); font-size: .76rem; font-weight: 800; letter-spacing: .16em; line-height: 1.35; text-transform: uppercase; }
.fh-eyebrow--light { color: var(--fh-copper-300); }
.fh-section { padding-block: clamp(72px, 10vw, 130px); }
.fh-section h1, .fh-section h2, .fh-section h3, .fh-page-hero h1, .fh-location-hero h1, .fh-final-cta h2, .fh-hero h1 { margin-top: 0; color: inherit; font-family: Georgia, "Times New Roman", serif; font-weight: 600; letter-spacing: -.035em; }
.fh-section h2 { max-width: 820px; margin-bottom: 18px; font-size: clamp(2rem, 6vw, 4.3rem); line-height: .99; }
.fh-section h3 { margin-bottom: 10px; font-size: clamp(1.25rem, 3vw, 1.75rem); line-height: 1.12; }
.fh-section p { color: var(--fh-muted); line-height: 1.75; }
.fh-section-heading { max-width: 850px; margin-bottom: 44px; }
.fh-section-heading--split { display: grid; gap: 18px; max-width: none; }
.fh-section-heading--split > p { max-width: 480px; margin: 0; }
.fh-section-copy > p { max-width: 640px; font-size: clamp(1rem, 2vw, 1.15rem); }
.fh-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.fh-button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 14px; padding: 13px 22px; border: 1px solid transparent; border-radius: 4px; font-size: .86rem; font-weight: 800; letter-spacing: .055em; line-height: 1.2; text-decoration: none; text-transform: uppercase; transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease; cursor: pointer; }
.fh-button:hover { transform: translateY(-2px); }
.fh-button--copper { background: var(--fh-copper-500); color: var(--fh-pine-950); }
.fh-button--copper:hover { background: #e08a57; color: var(--fh-pine-950); }
.fh-button--pine { background: var(--fh-pine-900); color: #fff; }
.fh-button--pine:hover { background: var(--fh-pine-700); color: #fff; }
.fh-button--cream { background: var(--fh-cream-100); color: var(--fh-pine-950); }
.fh-button--cream:hover { background: #fff; color: var(--fh-pine-950); }
.fh-button--ghost { border-color: rgba(255,255,255,.5); background: rgba(255,255,255,.04); color: #fff; }
.fh-button--ghost:hover { border-color: #fff; color: #fff; }
.fh-button--text { min-height: auto; padding-inline: 6px; color: inherit; }
.fh-button--text span { font-size: .75rem; font-weight: 600; opacity: .78; }
.fh-inline-link { display: inline-flex; align-items: center; gap: 12px; margin-top: 32px; color: var(--fh-pine-900); font-weight: 800; text-decoration: none; }
.fh-inline-link span { color: var(--fh-copper-600); font-size: 1.3rem; }

/* Hero */
.fh-hero { position: relative; isolation: isolate; min-height: min(820px, calc(100svh - 72px)); display: grid; align-content: end; background-image: var(--fh-hero-image); background-position: 63% center; background-size: cover; color: #fff; }
.fh-hero__veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(4,20,17,.94) 0%, rgba(4,20,17,.79) 42%, rgba(4,20,17,.2) 78%), linear-gradient(0deg, rgba(4,20,17,.7), transparent 42%); }
.fh-hero__content { padding-top: 90px; padding-bottom: 46px; }
.fh-hero h1 { max-width: 790px; margin-bottom: 20px; color: #fff; font-size: clamp(2.75rem, 8.4vw, 6.7rem); line-height: .92; text-wrap: balance; }
.fh-hero__lead { max-width: 620px; margin: 0 0 28px; color: rgba(255,255,255,.82); font-size: clamp(1rem, 2.5vw, 1.24rem); line-height: 1.65; }
.fh-actions--hero { max-width: 790px; }
.fh-actions--hero .fh-button:not(.fh-button--text) { flex: 1 1 180px; }
.fh-actions--hero .fh-button--text { flex-basis: 100%; justify-content: flex-start; color: #fff; }
.fh-hero__proof { display: grid; grid-template-columns: 1fr; gap: 0; padding-bottom: 22px; border-top: 1px solid rgba(255,255,255,.22); }
.fh-hero__proof span { display: grid; gap: 2px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.15); color: rgba(255,255,255,.62); font-size: .82rem; }
.fh-hero__proof strong { color: #fff; font-size: .98rem; }

/* Pricing and calculator */
.fh-pricing { background: var(--fh-cream-100); }
.fh-pricing__layout { display: grid; gap: 48px; }
.fh-price-strip { display: grid; grid-template-columns: repeat(3, 1fr); margin-block: 30px; border-block: 1px solid rgba(11,38,32,.2); }
.fh-price-strip > div { display: grid; gap: 3px; padding: 18px 10px 18px 0; }
.fh-price-strip > div + div { padding-left: 14px; border-left: 1px solid rgba(11,38,32,.16); }
.fh-price-strip span { color: var(--fh-copper-600); font-size: .68rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.fh-price-strip strong { color: var(--fh-pine-950); font-family: Georgia, serif; font-size: clamp(1.6rem, 4vw, 2.45rem); font-weight: 600; }
.fh-price-strip small { color: var(--fh-muted); font-size: .72rem; }
.fh-guide-link { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 15px; max-width: 560px; padding: 17px 18px; border: 1px solid rgba(11,38,32,.2); background: transparent; color: var(--fh-pine-950); text-decoration: none; }
.fh-guide-link > span:first-child { width: 42px; height: 42px; display: grid; place-items: center; background: var(--fh-pine-900); color: var(--fh-copper-300); border-radius: 50%; }
.fh-guide-link > span:nth-child(2) { display: grid; gap: 2px; font-weight: 750; }
.fh-guide-link small { color: var(--fh-copper-600); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.fh-guide-link b { color: var(--fh-copper-600); font-size: 1.2rem; }
.fh-calculator { align-self: start; padding: 24px; background: #fff; border: 1px solid rgba(11,38,32,.12); border-top: 5px solid var(--fh-copper-500); box-shadow: var(--fh-shadow); }
.fh-calculator__head { display: flex; justify-content: space-between; gap: 16px; align-items: baseline; margin-bottom: 10px; }
.fh-calculator__head span { color: var(--fh-pine-950); font-family: Georgia, serif; font-size: 1.45rem; }
.fh-calculator__head small { max-width: 130px; color: var(--fh-muted); font-size: .68rem; line-height: 1.35; text-align: right; }
.fh-counter { padding-block: 19px; border-bottom: 1px solid var(--fh-line); }
.fh-counter > div:first-child { display: flex; align-items: center; gap: 10px; }
.fh-counter > div:first-child > span:last-child { display: grid; }
.fh-counter__icon { width: 38px; height: 38px; display: grid; place-items: center; background: var(--fh-cream-100); color: var(--fh-copper-600); border-radius: 50%; font-weight: 800; }
.fh-counter strong { color: var(--fh-pine-950); font-size: .93rem; }
.fh-counter small { color: var(--fh-muted); font-size: .72rem; }
.fh-counter__controls { display: grid; grid-template-columns: 40px 36px 40px; align-items: center; justify-content: end; margin-top: -42px; }
.fh-counter__controls button { width: 38px; height: 34px; border: 0; background: var(--fh-copper-500); color: var(--fh-pine-950); border-radius: 17px; font-size: 1.25rem; cursor: pointer; }
.fh-counter__controls output { color: var(--fh-pine-950); font-weight: 800; text-align: center; }
.fh-counter input[type="range"] { width: 100%; margin-top: 18px; accent-color: var(--fh-copper-600); }
.fh-calculator__breakdown { display: grid; gap: 8px; padding-block: 18px; }
.fh-calculator__breakdown > div { display: flex; justify-content: space-between; gap: 14px; color: var(--fh-muted); font-size: .82rem; }
.fh-calculator__breakdown strong { color: var(--fh-ink); }
.fh-calculator__total { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 18px; background: var(--fh-cream-100); border-left: 3px solid var(--fh-copper-500); }
.fh-calculator__total span { display: grid; gap: 4px; }
.fh-calculator__total small { color: var(--fh-muted); font-size: .7rem; }
.fh-calculator__total strong { color: var(--fh-pine-950); font-family: Georgia, serif; font-size: 1.6rem; }
.fh-calculator__reveal { width: 100%; margin-top: 16px; }
.fh-calculator__fineprint { margin: 12px 0 0; color: var(--fh-muted); font-size: .7rem; line-height: 1.45; }
.fh-calculator__form { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--fh-line); }

/* Process */
.fh-process { background: var(--fh-white); }
.fh-process__steps { counter-reset: none; display: grid; margin: 0; padding: 0; list-style: none; }
.fh-process__steps li { display: grid; grid-template-columns: 58px 1fr; gap: 18px; padding-block: 24px; border-top: 1px solid var(--fh-line); }
.fh-process__steps li:last-child { border-bottom: 1px solid var(--fh-line); }
.fh-process__steps > li > span { color: var(--fh-copper-600); font-family: Georgia, serif; font-size: 1.55rem; }
.fh-process__steps h3 { margin: 0 0 7px; color: var(--fh-pine-950); font-family: inherit; font-size: 1.03rem; font-weight: 800; letter-spacing: 0; }
.fh-process__steps p { max-width: 520px; margin: 0; font-size: .9rem; line-height: 1.6; }

/* Occasions */
.fh-occasions { background: var(--fh-pine-950); color: #fff; }
.fh-occasions .fh-section-heading p { color: rgba(255,255,255,.66); }
.fh-occasions h2 { color: #fff; }
.fh-occasion-list { display: grid; }
.fh-occasion-list article { display: grid; grid-template-columns: 50px 1fr; gap: 16px; padding: 25px 0; border-top: 1px solid rgba(255,255,255,.18); }
.fh-occasion-list article:last-child { border-bottom: 1px solid rgba(255,255,255,.18); }
.fh-occasion-list article > span { color: var(--fh-copper-300); font-family: Georgia, serif; font-size: 1.3rem; }
.fh-occasion-list h3 { margin: 0 0 8px; color: #fff; font-family: inherit; font-size: 1.08rem; font-weight: 800; letter-spacing: 0; }
.fh-occasion-list p { max-width: 580px; margin: 0; color: rgba(255,255,255,.62); font-size: .9rem; line-height: 1.62; }

/* Gallery */
.fh-gallery-section { background: #f5f2ea; }
.fh-gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.fh-gallery-card { position: relative; aspect-ratio: 1 / 1.14; margin: 0; overflow: hidden; background: var(--fh-pine-900); }
.fh-gallery-card img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .4s ease; }
.fh-gallery-card:hover img { transform: scale(1.035); }
.fh-gallery-card figcaption { position: absolute; inset: auto 0 0; padding: 24px 12px 10px; background: linear-gradient(transparent, rgba(4,20,17,.86)); color: #fff; font-size: .75rem; font-weight: 700; }
.fh-gallery-placeholder { width: 100%; height: 100%; display: grid; place-content: center; gap: 8px; color: rgba(255,255,255,.72); text-align: center; background: radial-gradient(circle at 25% 20%, rgba(212,119,69,.54), transparent 28%), linear-gradient(145deg, var(--fh-pine-800), var(--fh-pine-950)); }
.fh-gallery-placeholder span { color: var(--fh-copper-300); font-family: Georgia, serif; font-size: 2rem; }
.fh-gallery-placeholder small { font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; }
.fh-gallery-card--2 .fh-gallery-placeholder { background: radial-gradient(circle at 80% 70%, rgba(233,170,130,.4), transparent 30%), linear-gradient(125deg, #3e2b24, #0b2620); }
.fh-gallery-card--3 .fh-gallery-placeholder { background: radial-gradient(circle at 10% 80%, rgba(184,93,53,.52), transparent 34%), linear-gradient(150deg, #235e4f, #101918); }
.fh-gallery-card--4 .fh-gallery-placeholder { background: radial-gradient(circle at 70% 15%, rgba(243,231,210,.27), transparent 26%), linear-gradient(130deg, #17372f, #5a3124); }
.fh-gallery-card--5 .fh-gallery-placeholder { background: radial-gradient(circle at 25% 25%, rgba(212,119,69,.46), transparent 20%), linear-gradient(145deg, #0f211d, #234a3e); }

/* Locations */
.fh-locations { background: var(--fh-white); }
.fh-location-grid { display: grid; gap: 12px; }
.fh-location-card { display: grid; grid-template-columns: 48px 1fr 24px; gap: 15px; align-items: center; padding: 20px 14px; border: 1px solid var(--fh-line); border-left: 4px solid var(--fh-copper-500); background: #fff; }
.fh-location-card__abbr { width: 46px; height: 46px; display: grid; place-items: center; background: var(--fh-pine-900); color: var(--fh-cream-100); font-size: .8rem; font-weight: 800; }
.fh-location-card small { color: var(--fh-copper-600); font-size: .66rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.fh-location-card h3 { margin: 4px 0; font-family: inherit; font-size: 1rem; font-weight: 800; letter-spacing: 0; }
.fh-location-card h3 a { color: var(--fh-pine-950); text-decoration: none; }
.fh-location-card p { margin: 0; font-size: .78rem; line-height: 1.45; }
.fh-location-card__arrow { color: var(--fh-copper-600); font-size: 1.3rem; text-decoration: none; }

/* Standalone pages */
.fh-page-hero { padding-block: clamp(80px, 11vw, 140px); background: var(--fh-pine-950); color: #fff; }
.fh-page-hero--booking { background: linear-gradient(115deg, var(--fh-pine-950), var(--fh-pine-800)); }
.fh-page-hero h1 { max-width: 850px; margin-bottom: 20px; color: #fff; font-size: clamp(2.6rem, 8vw, 6rem); line-height: .95; }
.fh-page-hero p:not(.fh-eyebrow) { max-width: 620px; margin: 0; color: rgba(255,255,255,.7); font-size: 1.05rem; line-height: 1.7; }
.fh-booking-layout { display: grid; gap: 38px; }
.fh-booking-layout aside { align-self: start; padding: 28px; background: var(--fh-cream-100); border-top: 4px solid var(--fh-copper-500); }
.fh-booking-layout aside h2 { margin-bottom: 22px; font-size: 2rem; }
.fh-booking-layout aside ol { display: grid; gap: 16px; margin: 0 0 20px; padding-left: 22px; }
.fh-booking-layout aside p { margin: 0; font-size: .8rem; }
.fh-contact-layout { display: grid; gap: 38px; }
.fh-contact-cards { display: grid; gap: 12px; }
.fh-contact-cards article { padding: 26px; border: 1px solid var(--fh-line); border-top: 4px solid var(--fh-pine-800); }
.fh-contact-cards article > span { color: var(--fh-copper-600); font-size: 1.5rem; }
.fh-contact-cards article h2 { margin: 10px 0; font-size: 1.7rem; }
.fh-contact-cards article p { font-size: .9rem; }
.fh-contact-cards article a { color: var(--fh-pine-900); font-weight: 800; }
.fh-contact-form { padding: 26px; background: var(--fh-cream-100); }
.fh-contact-form > h2 { font-size: 2rem; }
.fh-inquiry-form { display: grid; gap: 14px; }
.fh-inquiry-form label { display: grid; gap: 6px; }
.fh-inquiry-form label > span { color: var(--fh-pine-950); font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.fh-inquiry-form input, .fh-inquiry-form textarea { width: 100%; min-height: 46px; padding: 11px 12px; border: 1px solid #b8c0bc; border-radius: 0; background: #fff; color: var(--fh-ink); }
.fh-inquiry-form input:focus, .fh-inquiry-form textarea:focus { outline: 3px solid rgba(212,119,69,.25); border-color: var(--fh-copper-600); }
.fh-inquiry-form__wide, .fh-inquiry-form__guest-note, .fh-inquiry-form__submit, .fh-form-status { grid-column: 1 / -1; }
.fh-inquiry-form__guest-note { margin: 0; padding: 10px 12px; background: var(--fh-cream-100); color: var(--fh-pine-900); font-size: .78rem; }
.fh-honeypot { position: absolute; left: -10000px; }
.fh-form-status { min-height: 1.4em; margin: 0; font-size: .8rem; }
.fh-form-status.is-success { color: #176b43; }
.fh-form-status.is-error { color: #a32a1f; }

/* FAQ */
.fh-faq { background: #f5f2ea; }
.fh-faq__group + .fh-faq__group { margin-top: 64px; }
.fh-faq__group h2 { margin-bottom: 24px; font-size: clamp(2rem, 5vw, 3.35rem); }
.fh-accordion { display: grid; gap: 8px; }
.fh-accordion details { border: 1px solid var(--fh-line); background: #fff; }
.fh-accordion summary { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 18px; color: var(--fh-pine-950); font-weight: 750; list-style: none; cursor: pointer; }
.fh-accordion summary::-webkit-details-marker { display: none; }
.fh-accordion summary span { color: var(--fh-copper-600); font-size: 1.3rem; font-weight: 400; }
.fh-accordion details > div { padding: 0 18px 20px; color: var(--fh-muted); line-height: 1.7; }
.fh-accordion details > div p:last-child { margin-bottom: 0; }

/* Location landing */
.fh-location-hero { position: relative; isolation: isolate; min-height: 620px; display: grid; align-items: end; padding-block: 90px 60px; background: var(--fh-location-image) center/cover; color: #fff; }
.fh-location-hero__veil { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(4,20,17,.94), rgba(4,20,17,.56) 65%, rgba(4,20,17,.28)); }
.fh-location-hero h1 { max-width: 850px; margin-bottom: 18px; color: #fff; font-size: clamp(2.8rem, 8vw, 6.2rem); line-height: .94; }
.fh-location-hero p:not(.fh-eyebrow) { max-width: 650px; color: rgba(255,255,255,.78); font-size: 1.05rem; line-height: 1.7; }
.fh-location-intro { display: grid; gap: 36px; }
.fh-location-intro > div > h2 { font-size: clamp(2rem, 5vw, 3.8rem); }
.fh-location-intro aside { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 3px 14px; padding: 24px; background: var(--fh-cream-100); border-top: 4px solid var(--fh-copper-500); }
.fh-location-intro aside strong { color: var(--fh-pine-950); font-family: Georgia, serif; font-size: 2.1rem; font-weight: 600; }
.fh-location-intro aside span { color: var(--fh-muted); font-size: .77rem; text-transform: uppercase; }
.fh-location-intro aside small { grid-column: 1 / -1; margin-top: 14px; color: var(--fh-muted); line-height: 1.5; }
.fh-why { background: var(--fh-cream-100); }
.fh-why__grid { display: grid; gap: 1px; background: rgba(11,38,32,.16); border: 1px solid rgba(11,38,32,.16); }
.fh-why__grid article { padding: 24px; background: var(--fh-white); }
.fh-why__grid article > span { color: var(--fh-copper-600); font-family: Georgia, serif; font-size: 1.35rem; }
.fh-why__grid h3 { margin-top: 28px; font-family: inherit; font-size: 1rem; font-weight: 800; letter-spacing: 0; }
.fh-why__grid p { margin: 0; font-size: .86rem; }

/* Final CTA and footer */
.fh-final-cta { padding-block: 68px; background: var(--fh-copper-600); color: #fff; }
.fh-final-cta__inner { display: grid; gap: 26px; }
.fh-final-cta h2 { max-width: 720px; margin: 0; color: #fff; font-size: clamp(2.1rem, 6vw, 4.5rem); line-height: .98; }
.fh-mobile-bar { position: fixed; inset: auto 0 0; z-index: 90; display: grid; grid-template-columns: 1fr 1fr; padding: 8px; background: var(--fh-white); border-top: 1px solid var(--fh-line); box-shadow: 0 -12px 30px rgba(11,38,32,.14); }
.fh-mobile-bar a { min-height: 46px; display: grid; place-items: center; color: var(--fh-pine-950); font-size: .8rem; font-weight: 850; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.fh-mobile-bar a:last-child { background: var(--fh-pine-900); color: #fff; }
.fh-footer { padding-bottom: 62px; background: var(--fh-pine-950); color: #fff; }
.fh-footer__grid { display: grid; gap: 34px; padding-block: 60px; }
.fh-wordmark { display: inline-flex; align-items: center; gap: 10px; color: var(--fh-pine-950); font-family: Georgia, serif; font-size: 1.35rem; font-weight: 700; text-decoration: none; }
.fh-wordmark--light { color: #fff; }
.fh-wordmark__seal { width: 38px; height: 38px; display: grid; place-items: center; background: var(--fh-copper-500); color: var(--fh-pine-950); border-radius: 50%; font-family: inherit; font-size: .78rem; }
.fh-footer__brand p { max-width: 420px; margin: 18px 0 0; color: rgba(255,255,255,.58); font-size: .9rem; line-height: 1.65; }
.fh-footer__nav ul { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.fh-footer__nav a { color: rgba(255,255,255,.78); font-weight: 650; text-decoration: none; }
.fh-footer__nav a:hover { color: var(--fh-copper-300); }
.fh-footer__contact { display: grid; gap: 9px; align-content: start; }
.fh-footer__contact strong { margin-bottom: 5px; color: var(--fh-copper-300); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.fh-footer__contact a { color: #fff; text-decoration: none; }
.fh-footer__bottom { border-top: 1px solid rgba(255,255,255,.12); }
.fh-footer__bottom .fh-shell { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px 22px; padding-block: 18px; color: rgba(255,255,255,.45); font-size: .7rem; }

@media (min-width: 600px) {
  .fh-hero__proof { grid-template-columns: repeat(3, 1fr); }
  .fh-hero__proof span { padding: 18px; border-bottom: 0; }
  .fh-hero__proof span:first-child { padding-left: 0; }
  .fh-hero__proof span + span { border-left: 1px solid rgba(255,255,255,.16); }
  .fh-inquiry-form { grid-template-columns: repeat(2, 1fr); }
  .fh-gallery-grid { grid-template-columns: repeat(3, 1fr); }
  .fh-location-grid { grid-template-columns: repeat(2, 1fr); }
  .fh-footer__grid { grid-template-columns: 1.6fr 1fr; }
  .fh-footer__contact { grid-column: 1 / -1; }
}

@media (min-width: 760px) {
  :root { --fh-shell: min(1180px, calc(100vw - 72px)); }
  .fh-section-heading--split { grid-template-columns: minmax(0, 1.5fr) minmax(280px, .7fr); align-items: end; }
  .fh-actions--hero .fh-button:not(.fh-button--text) { flex: 0 0 auto; min-width: 190px; }
  .fh-actions--hero .fh-button--text { flex-basis: auto; }
  .fh-process__steps { grid-template-columns: repeat(2, 1fr); column-gap: 42px; }
  .fh-process__steps li:nth-child(2) { border-top-color: var(--fh-line); }
  .fh-process__steps li:nth-last-child(2) { border-bottom: 1px solid var(--fh-line); }
  .fh-occasion-list { grid-template-columns: repeat(2, 1fr); column-gap: 44px; }
  .fh-gallery-card:nth-child(1), .fh-gallery-card:nth-child(6) { grid-column: span 2; aspect-ratio: 2.02 / 1; }
  .fh-booking-layout, .fh-contact-layout, .fh-location-intro { grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); align-items: start; }
  .fh-why__grid { grid-template-columns: repeat(2, 1fr); }
  .fh-final-cta__inner { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .fh-footer__grid { grid-template-columns: 1.6fr .8fr 1fr; }
  .fh-footer__contact { grid-column: auto; }
}

@media (min-width: 1024px) {
  .fh-pricing__layout { grid-template-columns: minmax(0, 1.15fr) minmax(390px, .72fr); align-items: center; }
  .fh-calculator { padding: 32px; }
  .fh-process__steps { grid-template-columns: repeat(3, 1fr); column-gap: 34px; }
  .fh-process__steps li:nth-child(3) { border-top-color: var(--fh-line); }
  .fh-process__steps li:nth-last-child(-n+3) { border-bottom: 1px solid var(--fh-line); }
  .fh-gallery-grid { grid-template-columns: repeat(4, 1fr); gap: 12px; }
  .fh-gallery-card:nth-child(1) { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
  .fh-gallery-card:nth-child(6) { grid-column: auto; aspect-ratio: 1 / 1.14; }
  .fh-location-grid { grid-template-columns: repeat(3, 1fr); }
  .fh-why__grid { grid-template-columns: repeat(4, 1fr); }
  .fh-mobile-bar { display: none; }
  .fh-footer { padding-bottom: 0; }
}

@media (max-width: 599px) {
  .fh-hero { min-height: calc(100svh - 64px); background-position: 68% center; }
  .fh-hero__veil { background: linear-gradient(90deg, rgba(4,20,17,.94), rgba(4,20,17,.63) 78%), linear-gradient(0deg, rgba(4,20,17,.85), transparent 58%); }
  .fh-hero__content { padding-top: 72px; padding-bottom: 24px; }
  .fh-actions--hero .fh-button { width: 100%; }
  .fh-price-strip > div { min-width: 0; }
  .fh-price-strip > div + div { padding-left: 9px; }
  .fh-price-strip strong { font-size: 1.45rem; }
  .fh-price-strip small { font-size: .62rem; }
  .fh-calculator { margin-inline: -4px; padding: 20px 16px; }
  .fh-calculator__head { align-items: flex-start; }
  .fh-gallery-section .fh-section-heading--split > p { margin-bottom: 8px; }
  .fh-gallery-card figcaption { font-size: .66rem; }
  .fh-page-hero { position: relative; left: 50%; width: 100vw; margin-left: 0; padding-block: 72px; transform: translateX(-50vw); }
  .fh-page-hero h1 { font-size: clamp(2.35rem, 11vw, 3rem); line-height: .98; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
