:root {
  --hfn-ink: #172127;
  --hfn-plum: #3b2b35;
  --hfn-coral: #c87860;
  --hfn-sage: #a8b4a7;
  --hfn-champagne: #d8c39b;
  --hfn-porcelain: #f4f1eb;
  --hfn-paper: #fcfaf6;
  --hfn-mist: #dce3e1;
  --hfn-white: #fff;
  --hfn-shell: 1320px;
  --hfn-edge: clamp(18px, 3vw, 48px);
  --hfn-ease: cubic-bezier(.22, 1, .36, 1);
  --hfn-shadow: 0 30px 100px rgba(23, 33, 39, .18);
  --hfn-hero-progress: 0;
  --hfn-gallery-progress: 0;
}

* { box-sizing: border-box; }
html { scroll-padding-top: 88px; }
body { overflow-x: clip; }
body.admin-bar .hfn-site-header { top: 32px; }
img { display: block; }
::selection { color: var(--hfn-white); background: var(--hfn-coral); }

.hfn-accent { color: var(--hfn-coral); }
.hfn-kicker {
  margin: 0 0 1rem;
  font-size: .72rem;
  font-weight: 760;
  line-height: 1.2;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.hfn-kicker::before { content: ""; display: inline-block; width: 34px; height: 1px; margin-right: 12px; vertical-align: middle; background: currentColor; }

/* Header */
.hfn-site-header {
  position: sticky;
  z-index: 1000;
  top: 0;
  width: calc(100% + (2 * var(--hfn-edge)));
  margin-left: calc(-1 * var(--hfn-edge));
  margin-right: calc(-1 * var(--hfn-edge));
  padding-inline: var(--hfn-edge);
  color: var(--hfn-ink);
  background: rgba(244, 241, 235, .86);
  border-bottom: 1px solid rgba(23, 33, 39, .08);
  backdrop-filter: blur(18px) saturate(150%);
  transition: color .35s ease, background .35s ease, border-color .35s ease, transform .35s ease;
}
.home .hfn-site-header {
  position: fixed;
  color: var(--hfn-white);
  background: linear-gradient(to bottom, rgba(23, 33, 39, .55), transparent);
  border-color: transparent;
  backdrop-filter: none;
}
.home .hfn-site-header.is-scrolled {
  color: var(--hfn-ink);
  background: rgba(244, 241, 235, .92);
  border-color: rgba(23, 33, 39, .08);
  backdrop-filter: blur(18px) saturate(150%);
}
.hfn-site-header a { color: inherit; }
.hfn-header-inner { min-height: 48px; }
.hfn-brand { gap: 10px; }
.hfn-brand .wp-block-site-title { max-width: 160px; margin: 0; }
.hfn-brand .wp-block-site-title a { color: inherit; }
.hfn-site-header .wp-block-navigation-item__content { color: inherit; }
.hfn-site-header .wp-block-navigation__responsive-container-open { color: inherit; }
.hfn-site-header .wp-block-navigation__responsive-container.is-menu-open {
  color: var(--hfn-white);
  background: var(--hfn-ink);
}
.hfn-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding: 90px var(--hfn-edge) 40px; }
.hfn-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 22px; align-items: flex-start; font-size: clamp(1.65rem, 7vw, 3rem); text-transform: none; letter-spacing: -.03em; }
.hfn-nav-cta > a { padding: 10px 14px !important; color: var(--hfn-white) !important; background: var(--hfn-coral); border-radius: 5px; }

/* Hero */
.hfn-hero {
  --hero-shift: calc(var(--hfn-hero-progress) * -6vh);
  min-height: 140svh !important;
  margin-top: calc(-1 * var(--hfn-edge));
  margin-left: calc(-1 * var(--hfn-edge));
  margin-right: calc(-1 * var(--hfn-edge));
  width: calc(100% + (2 * var(--hfn-edge)));
  max-width: none !important;
  overflow: clip;
  background: var(--hfn-ink);
}
.hfn-hero::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  pointer-events: none;
  background:
    radial-gradient(circle at 76% 28%, rgba(200, 120, 96, .26), transparent 34%),
    linear-gradient(105deg, rgba(23, 33, 39, .92) 0%, rgba(23, 33, 39, .63) 43%, rgba(59, 43, 53, .14) 82%, rgba(23, 33, 39, .22) 100%);
}
.hfn-hero > .wp-block-cover__image-background {
  position: absolute;
  height: 100%;
  object-position: 58% center;
  transform: scale(calc(1.06 - (var(--hfn-hero-progress) * .035)));
  filter: saturate(.88) contrast(1.02);
  transition: filter .4s ease;
  will-change: transform;
}
.hfn-hero > .wp-block-cover__inner-container {
  position: sticky;
  z-index: 2;
  top: 0;
  height: 100svh;
  color: var(--hfn-white);
}
.hfn-hero-content {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100svh;
  padding: clamp(112px, 14vh, 165px) var(--hfn-edge) clamp(48px, 8vh, 90px);
}
.hfn-hero-title {
  max-width: 1020px;
  margin: 0;
  color: var(--hfn-white);
  font-weight: 610;
  line-height: .87 !important;
  text-wrap: balance;
  transform: translateY(var(--hero-shift));
  opacity: calc(1 - (var(--hfn-hero-progress) * .28));
  will-change: transform, opacity;
}
.hfn-hero-subline {
  max-width: 760px;
  margin: clamp(22px, 3vh, 34px) 0 0;
  color: rgba(255,255,255,.86);
  transform: translateY(calc(var(--hfn-hero-progress) * -1.1vh));
  opacity: calc(1 - (var(--hfn-hero-progress) * .48));
}
.hfn-hero-bottom {
  width: min(1050px, 100%);
  margin-top: clamp(28px, 5vh, 58px);
  gap: 28px 52px;
  align-items: flex-end;
  transform: translateY(calc(var(--hfn-hero-progress) * -1.7vh));
  opacity: calc(1 - (var(--hfn-hero-progress) * .62));
}
.hfn-hero-actions { flex-shrink: 0; }
.hfn-hero-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  max-width: 540px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.hfn-hero-trust li {
  padding: 9px 12px;
  color: rgba(255,255,255,.84);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  backdrop-filter: blur(10px);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.hfn-hero .wp-block-button.is-style-outline .wp-block-button__link,
.hfn-final-cta .wp-block-button.is-style-outline .wp-block-button__link,
.hfn-location .wp-block-button.is-style-outline .wp-block-button__link,
.hfn-story .wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--hfn-white);
  border-color: rgba(255, 255, 255, .62);
  background: rgba(255, 255, 255, .04);
  backdrop-filter: blur(10px);
}
.hfn-hero-badge {
  position: absolute;
  left: 0;
  bottom: clamp(30px, 7vh, 72px);
  margin: 0;
  padding: 12px 15px;
  color: rgba(255, 255, 255, .88);
  border: 1px solid rgba(255, 255, 255, .26);
  border-radius: 99px;
  background: rgba(23, 33, 39, .22);
  backdrop-filter: blur(14px);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.hfn-hero-viewfinder,
.hfn-viewfinder {
  pointer-events: none;
}
.hfn-hero-viewfinder {
  position: absolute;
  right: clamp(6px, 2vw, 22px);
  bottom: clamp(112px, 15vh, 140px);
  z-index: 3;
  width: min(34vw, 430px);
  min-height: 260px;
  padding: 24px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  box-shadow: 0 28px 90px rgba(0,0,0,.18);
  backdrop-filter: blur(16px) saturate(120%);
  opacity: clamp(.52, calc(.4 + (var(--hfn-hero-progress) * 1.2)), .97);
  transform: translate3d(calc((1 - var(--hfn-hero-progress)) * 26px), calc((1 - var(--hfn-hero-progress)) * 36px), 0) scale(calc(.96 + (var(--hfn-hero-progress) * .04)));
  will-change: transform, opacity;
}
.hfn-vf-corner {
  position: absolute;
  width: 26px;
  height: 26px;
  border-color: rgba(255,255,255,.72);
  border-style: solid;
}
.hfn-vf-corner.tl { top: 16px; left: 16px; border-width: 2px 0 0 2px; }
.hfn-vf-corner.tr { top: 16px; right: 16px; border-width: 2px 2px 0 0; }
.hfn-vf-corner.bl { bottom: 16px; left: 16px; border-width: 0 0 2px 2px; }
.hfn-vf-corner.br { bottom: 16px; right: 16px; border-width: 0 2px 2px 0; }
.hfn-vf-bar {
  position: absolute;
  left: 24px;
  right: 24px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: .62rem;
  font-weight: 760;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.82);
}
.hfn-vf-bar-top { top: 24px; }
.hfn-vf-bar-bottom {
  bottom: 24px;
  align-items: flex-end;
  font-size: .6rem;
  letter-spacing: .08em;
}
.hfn-vf-bar-bottom strong {
  display: block;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: none;
}
.hfn-vf-bar-bottom small {
  display: block;
  margin-top: 4px;
  color: rgba(255,255,255,.74);
  font-size: .58rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.hfn-vf-focus {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 88px;
  height: 88px;
  border: 1px solid rgba(255,255,255,.58);
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.hfn-vf-focus::before,
.hfn-vf-focus::after {
  position: absolute;
  top: 50%;
  left: 50%;
  content: "";
  background: rgba(255,255,255,.75);
  transform: translate(-50%, -50%);
}
.hfn-vf-focus::before { width: 1px; height: 56px; }
.hfn-vf-focus::after { width: 56px; height: 1px; }
.hfn-scroll-cue { position: absolute; left: 0; bottom: 38px; display: flex; gap: 10px; align-items: center; color: rgba(255,255,255,.72); font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.hfn-scroll-cue span { position: relative; display: block; width: 1px; height: 46px; overflow: hidden; background: rgba(255, 255, 255, .28); }
.hfn-scroll-cue span::after { position: absolute; top: -18px; left: 0; width: 1px; height: 18px; content: ""; background: var(--hfn-white); animation: hfn-scroll-line 1.8s ease-in-out infinite; }
@keyframes hfn-scroll-line { to { transform: translateY(64px); } }

/* Buttons */
.wp-block-button__link { transition: transform .3s var(--hfn-ease), box-shadow .3s ease, background .3s ease, color .3s ease, border-color .3s ease; }
.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 15px 35px rgba(23, 33, 39, .18); }
.hfn-secondary-button .wp-block-button__link { font-size: .72rem; }
.hfn-magnetic { --mx: 0px; --my: 0px; transform: translate3d(var(--mx), var(--my), 0); transition: transform .25s var(--hfn-ease); }

/* Marquee */
.hfn-marquee {
  width: calc(100% + (2 * var(--hfn-edge)));
  max-width: none !important;
  margin-left: calc(-1 * var(--hfn-edge));
  margin-right: calc(-1 * var(--hfn-edge));
  overflow: hidden;
  border-block: 1px solid rgba(255,255,255,.14);
}
.hfn-marquee-track { display: flex; width: max-content; margin: 0; padding: 16px 0; animation: hfn-marquee 30s linear infinite; }
.hfn-marquee-track span { display: inline-flex; flex-shrink: 0; gap: 24px; padding-right: 24px; white-space: nowrap; font-size: .72rem; font-weight: 720; letter-spacing: .14em; text-transform: uppercase; }
.hfn-marquee-track i { color: var(--hfn-champagne); font-style: normal; }
@keyframes hfn-marquee { to { transform: translateX(-50%); } }

/* Camera capture section */
.hfn-capture { width: calc(100% + (2 * var(--hfn-edge))); max-width: none !important; margin-left: calc(-1 * var(--hfn-edge)); margin-right: calc(-1 * var(--hfn-edge)); padding-inline: var(--hfn-edge); }
.hfn-capture-layout { align-items: center !important; }
.hfn-capture-copy > p.has-large-font-size { max-width: 560px; color: rgba(23,33,39,.74); }
.hfn-capture-points { margin-block: 28px 34px; display: grid; gap: 12px; }
.hfn-capture-point { gap: 16px; padding: 16px 0; border-top: 1px solid rgba(23,33,39,.12); }
.hfn-capture-point:last-child { border-bottom: 1px solid rgba(23,33,39,.12); }
.hfn-capture-number { flex: 0 0 34px; margin: .2rem 0 0; font-size: .72rem; font-weight: 760; letter-spacing: .14em; }
.hfn-camera-stage {
  position: relative;
  min-height: 740px;
  padding: clamp(18px, 2vw, 30px);
  overflow: hidden;
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(23,33,39,.08), rgba(59,43,53,.06));
  box-shadow: var(--hfn-shadow);
}
.hfn-camera-stage::after {
  position: absolute;
  inset: auto -14% -24% auto;
  width: 48%;
  aspect-ratio: 1;
  content: "";
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,120,96,.22), transparent 66%);
  filter: blur(8px);
}
.hfn-camera-image { margin: 0; overflow: hidden; border-radius: 22px; }
.hfn-camera-image img {
  width: 100%;
  min-height: 680px;
  object-fit: cover;
  object-position: 56% center;
  transform: scale(1.04) translateY(var(--hfn-parallax-y, 0));
  transition: transform 1.1s var(--hfn-ease);
}
.hfn-viewfinder {
  position: absolute;
  inset: clamp(32px, 3vw, 40px);
  z-index: 2;
  border: 1px solid rgba(255,255,255,.36);
  border-radius: 24px;
}
.hfn-camera-note {
  position: absolute;
  left: clamp(24px, 3vw, 36px);
  bottom: clamp(26px, 3vw, 38px);
  z-index: 3;
  width: min(64%, 440px);
  padding: 22px 22px 18px;
  color: var(--hfn-white);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: rgba(23,33,39,.68);
  backdrop-filter: blur(16px);
  box-shadow: 0 18px 55px rgba(0,0,0,.18);
}
.hfn-camera-note h3 { margin: .45rem 0 .7rem; color: var(--hfn-white); }
.hfn-camera-note p:last-child { margin-bottom: 0; color: rgba(255,255,255,.75); }
.hfn-camera-note .hfn-kicker { margin-bottom: 0; }
.hfn-camera-detail {
  position: absolute;
  right: clamp(20px, 3vw, 34px);
  bottom: clamp(22px, 3vw, 36px);
  z-index: 4;
  width: min(25vw, 205px);
  margin: 0;
  overflow: hidden;
  border: 6px solid rgba(255,255,255,.96);
  box-shadow: 0 24px 60px rgba(0,0,0,.22);
  transform: translate3d(0, 6px, 0) rotate(3deg);
}
.hfn-camera-detail img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }


/* Scroll story */
.hfn-story { width: calc(100% + (2 * var(--hfn-edge))); max-width: none !important; margin-left: calc(-1 * var(--hfn-edge)); margin-right: calc(-1 * var(--hfn-edge)); padding-inline: var(--hfn-edge); }
.hfn-story-layout { align-items: flex-start !important; }
.hfn-story-heading { position: sticky; top: 145px; align-self: flex-start; }
.hfn-story-heading > p:last-of-type { max-width: 500px; color: rgba(255,255,255,.72); }
.hfn-story-cards { display: grid; gap: clamp(28px, 5vw, 72px); }
.hfn-story-card { overflow: hidden; border: 1px solid rgba(255,255,255,.13); background: rgba(255,255,255,.045); box-shadow: 0 28px 80px rgba(0,0,0,.18); }
.hfn-story-card:nth-child(even) { transform: translateX(-4vw); }
.hfn-story-image { overflow: hidden; margin: 0; }
.hfn-story-image img { width: 100%; aspect-ratio: 16/10; object-fit: cover; transform: scale(1.06); transition: transform 1.1s var(--hfn-ease); }
.hfn-story-card.is-visible .hfn-story-image img { transform: scale(1); }
.hfn-story-copy { gap: 20px; padding: clamp(20px, 3vw, 36px); }
.hfn-story-number { flex: 0 0 38px; margin: .25rem 0 0; font-size: .75rem; font-weight: 750; letter-spacing: .12em; }
.hfn-story-copy h3 { margin-top: 0; }
.hfn-story-copy p { color: rgba(255,255,255,.68); }

/* Principle */
.hfn-principle { width: calc(100% + (2 * var(--hfn-edge))); max-width: none !important; margin-left: calc(-1 * var(--hfn-edge)); margin-right: calc(-1 * var(--hfn-edge)); padding-inline: var(--hfn-edge); }
.hfn-statement { max-width: 1180px; margin: 0; }
.hfn-principle-bottom { align-items: flex-end !important; }
.hfn-stats { align-items: flex-end !important; }
.hfn-stats .wp-block-column { padding-top: 22px; border-top: 1px solid rgba(23,33,39,.16); }
.hfn-stats h3 { margin: 0 0 12px; color: var(--hfn-plum); }
.hfn-stats p { margin: 0; font-size: .78rem; font-weight: 650; line-height: 1.35; letter-spacing: .05em; text-transform: uppercase; }

/* Horizontal gallery */
.hfn-horizontal-gallery { position: relative; width: calc(100% + (2 * var(--hfn-edge))); max-width: none !important; min-height: 360svh; margin-left: calc(-1 * var(--hfn-edge)); margin-right: calc(-1 * var(--hfn-edge)); overflow: clip; }
.hfn-gallery-sticky { position: sticky; top: 0; display: flex; flex-direction: column; justify-content: center; height: 100svh; overflow: hidden; padding-inline: var(--hfn-edge); }
.hfn-gallery-head { flex-wrap: nowrap !important; margin-bottom: clamp(25px, 4vh, 52px); }
.hfn-gallery-head > div { max-width: 790px; }
.hfn-gallery-intro { max-width: 380px; margin: 0; }
.hfn-gallery-viewport { overflow: visible; }
.hfn-gallery-track { gap: clamp(16px, 2vw, 32px); width: max-content; padding-right: 10vw; transform: translate3d(calc(var(--hfn-gallery-progress) * var(--hfn-gallery-shift, -1000px)), 0, 0); will-change: transform; }
.hfn-gallery-card { flex: 0 0 clamp(260px, 31vw, 470px); }
.hfn-gallery-card.is-tall { flex-basis: clamp(230px, 25vw, 390px); }
.hfn-gallery-card figure { overflow: hidden; margin: 0 0 18px; background: var(--hfn-mist); }
.hfn-gallery-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; transition: transform .8s var(--hfn-ease), filter .8s ease; }
.hfn-gallery-card.is-tall img { aspect-ratio: 3/4; }
.hfn-gallery-card:hover img { transform: scale(1.035); filter: saturate(1.08); }
.hfn-gallery-card h3, .hfn-gallery-card p { margin-block: 0 5px; }
.hfn-gallery-card p { color: rgba(23,33,39,.62); letter-spacing: .06em; text-transform: uppercase; }
.hfn-gallery-progress { position: absolute; right: var(--hfn-edge); bottom: 34px; left: var(--hfn-edge); height: 1px; background: rgba(23,33,39,.18); }
.hfn-gallery-progress span { display: block; width: calc(var(--hfn-gallery-progress) * 100%); height: 2px; background: var(--hfn-coral); }

/* About */
.hfn-about { width: calc(100% + (2 * var(--hfn-edge))); max-width: none !important; margin-left: calc(-1 * var(--hfn-edge)); margin-right: calc(-1 * var(--hfn-edge)); padding-inline: var(--hfn-edge); overflow: clip; }
.hfn-about-grid { align-items: center !important; }
.hfn-about-media { position: relative; }
.hfn-about-media figure { overflow: hidden; margin: 0; box-shadow: var(--hfn-shadow); }
.hfn-about-media img { width: 100%; aspect-ratio: 4/5; object-fit: cover; transform: scale(1.08) translateY(var(--hfn-parallax-y, 0)); will-change: transform; }
.hfn-image-label { position: absolute; right: -28px; bottom: 34px; margin: 0; padding: 13px 18px; font-size: .7rem; font-weight: 720; letter-spacing: .1em; text-transform: uppercase; box-shadow: var(--hfn-shadow); }
.hfn-about-copy > p { max-width: 670px; }
.hfn-points { margin-top: 34px; border-top: 1px solid rgba(23,33,39,.16); }
.hfn-point { gap: 24px; padding: 19px 0; border-bottom: 1px solid rgba(23,33,39,.16); }
.hfn-point > p { flex: 0 0 32px; margin: .35rem 0 0; font-size: .7rem; font-weight: 750; letter-spacing: .1em; }
.hfn-point h3, .hfn-point p { margin-top: 0; margin-bottom: 5px; }

/* Location */
.hfn-location { width: calc(100% + (2 * var(--hfn-edge))); max-width: none !important; margin-left: calc(-1 * var(--hfn-edge)); margin-right: calc(-1 * var(--hfn-edge)); padding-inline: var(--hfn-edge); }
.hfn-location-head { margin-bottom: var(--wp--preset--spacing--40); }
.hfn-location-head > div { max-width: 780px; }
.hfn-location-intro { max-width: 440px; color: rgba(255,255,255,.72); }
.hfn-location-grid { align-items: stretch !important; }
.hfn-location-grid .wp-block-column { display: flex; }
.hfn-location-image { width: 100%; overflow: hidden; margin: 0; }
.hfn-location-image img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; transition: transform 1s var(--hfn-ease), filter .8s ease; }
.hfn-location-image:not(.is-main) img { filter: saturate(.7); }
.hfn-location-image:hover img { transform: scale(1.035); filter: saturate(1); }

.hfn-location-extra { margin-top: clamp(24px, 4vw, 36px); gap: 24px 28px; border-radius: 24px; box-shadow: 0 22px 70px rgba(0,0,0,.16); }
.hfn-location-extra-copy { max-width: 760px; }
.hfn-location-extra-copy h3 { margin: .45rem 0 .7rem; }
.hfn-location-extra-copy p:last-child { margin-bottom: 0; }
.hfn-location-extra-actions { flex-shrink: 0; }

/* Pricing */
.hfn-pricing { width: calc(100% + (2 * var(--hfn-edge))); max-width: none !important; margin-left: calc(-1 * var(--hfn-edge)); margin-right: calc(-1 * var(--hfn-edge)); padding-inline: var(--hfn-edge); }
.hfn-section-head { margin-bottom: var(--wp--preset--spacing--40); }
.hfn-section-head > div { max-width: 800px; }
.hfn-section-intro { max-width: 390px; margin: 0; }
.hfn-price-grid { align-items: stretch !important; }
.hfn-price-card { position: relative; display: flex; flex-direction: column; min-height: 610px; padding: clamp(24px, 3vw, 42px); border: 1px solid rgba(23,33,39,.14); background: rgba(255,255,255,.45); transition: transform .45s var(--hfn-ease), box-shadow .45s ease, border-color .45s ease; }
.hfn-price-card:hover { z-index: 2; transform: translateY(-10px); border-color: rgba(200,120,96,.5); box-shadow: var(--hfn-shadow); }
.hfn-price-card.is-featured { transform: translateY(-24px); border-color: transparent; box-shadow: var(--hfn-shadow); }
.hfn-price-card.is-featured:hover { transform: translateY(-34px); }
.hfn-price-meta { font-size: .7rem; font-weight: 720; letter-spacing: .08em; text-transform: uppercase; }
.hfn-price { margin-block: 14px 24px; letter-spacing: -.06em; }
.hfn-price-card.is-featured > p { color: rgba(255,255,255,.75); }
.hfn-feature-list { margin: 25px 0 34px; padding: 0; list-style: none; }
.hfn-feature-list li { position: relative; padding: 10px 0 10px 22px; border-bottom: 1px solid rgba(23,33,39,.1); font-size: .9rem; }
.hfn-feature-list li::before { position: absolute; left: 0; content: "✓"; color: var(--hfn-coral); font-weight: 800; }
.hfn-price-card.is-featured .hfn-feature-list li { border-color: rgba(255,255,255,.13); }
.hfn-price-card.is-featured .hfn-feature-list li::before { color: var(--hfn-champagne); }
.hfn-price-card .wp-block-buttons { margin-top: auto; }
.hfn-price-note { max-width: 930px; margin: 30px auto 22px; color: rgba(23,33,39,.62); }

/* FAQ */
.hfn-faq { width: calc(100% + (2 * var(--hfn-edge))); max-width: none !important; margin-left: calc(-1 * var(--hfn-edge)); margin-right: calc(-1 * var(--hfn-edge)); padding-inline: var(--hfn-edge); }
.hfn-faq-grid { align-items: flex-start !important; }
.hfn-faq-head { position: sticky; top: 135px; }
.hfn-faq-list details { border-color: rgba(23,33,39,.16); }
.hfn-faq-list summary { position: relative; padding-right: 38px; cursor: pointer; font-family: var(--wp--preset--font-family--display); font-size: clamp(1.15rem, 1rem + .5vw, 1.55rem); font-weight: 600; letter-spacing: -.02em; list-style: none; }
.hfn-faq-list summary::-webkit-details-marker { display: none; }
.hfn-faq-list summary::after { position: absolute; right: 4px; top: 50%; content: "+"; color: var(--hfn-coral); font-family: var(--wp--preset--font-family--body); font-size: 1.4rem; font-weight: 400; transform: translateY(-50%); transition: transform .3s ease; }
.hfn-faq-list details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.hfn-faq-list details p { max-width: 700px; color: rgba(23,33,39,.7); }

/* Final CTA */
.hfn-final-cta { width: calc(100% + (2 * var(--hfn-edge))); max-width: none !important; margin-left: calc(-1 * var(--hfn-edge)); margin-right: calc(-1 * var(--hfn-edge)); overflow: hidden; }
.hfn-final-cta > img { transform: scale(1.05); transition: transform 8s ease; }
.hfn-final-cta.is-visible > img { transform: scale(1); }
.hfn-final-cta-inner { color: var(--hfn-white); }
.hfn-final-cta-inner h2 { color: var(--hfn-white); }
.hfn-availability { margin-top: 28px; font-size: .7rem; font-weight: 720; letter-spacing: .1em; text-transform: uppercase; }

/* Footer */
.hfn-footer { width: calc(100% + (2 * var(--hfn-edge))); max-width: none !important; margin-left: calc(-1 * var(--hfn-edge)); margin-right: calc(-1 * var(--hfn-edge)); padding-inline: var(--hfn-edge); }
.hfn-footer a { color: inherit; }
.hfn-footer a:hover { color: var(--hfn-champagne); }
.hfn-footer-nav .wp-block-navigation-item { width: 100%; }
.hfn-footer-nav .wp-block-navigation__container { gap: 8px; align-items: flex-start; }
.hfn-footer-separator { opacity: .18; }
.hfn-footer-bottom { color: rgba(255,255,255,.62); }

/* Standard content */
.hfn-content-shell { min-height: 55vh; }
.hfn-content-shell :where(p, li) { max-width: 760px; }
.hfn-content-shell .alignwide, .hfn-content-shell .alignfull { max-width: var(--hfn-shell); }
.hfn-query .wp-block-post-template { gap: clamp(24px, 4vw, 55px); }
.hfn-post-card { padding-bottom: 28px; border-bottom: 1px solid rgba(23,33,39,.14); }
.hfn-post-card .wp-block-post-featured-image { overflow: hidden; margin-bottom: 20px; }
.hfn-post-card img { transition: transform .7s var(--hfn-ease); }
.hfn-post-card:hover img { transform: scale(1.03); }
.hfn-post-card .wp-block-post-date { color: var(--hfn-coral); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.hfn-single > .wp-block-post-title { max-width: 1100px; }
.hfn-single > .wp-block-post-featured-image { overflow: hidden; }

/* Reveal and cursor-aware effects */
.hfn-reveal { opacity: 0; transform: translateY(42px); transition: opacity .8s ease, transform .9s var(--hfn-ease); }
.hfn-reveal.is-visible { opacity: 1; transform: none; }
.hfn-story-card.hfn-reveal:nth-child(2), .hfn-price-card.hfn-reveal:nth-child(2) { transition-delay: .08s; }
.hfn-story-card.hfn-reveal:nth-child(3), .hfn-price-card.hfn-reveal:nth-child(3) { transition-delay: .16s; }

/* Mobile */
@media (max-width: 1023px) {
  body.admin-bar .hfn-site-header { top: 46px; }
  .hfn-navigation .wp-block-navigation__container { gap: 15px; }
  .hfn-hero { min-height: 112svh !important; }
  .hfn-hero > .wp-block-cover__image-background { object-position: 61% center; }
  .hfn-hero-title { max-width: 790px; }
  .hfn-hero-trust { max-width: 100%; }
  .hfn-hero-viewfinder { width: min(40vw, 340px); min-height: 220px; right: 0; bottom: 126px; }
  .hfn-hero-badge { left: var(--hfn-edge); }
  .hfn-capture-layout { gap: 28px !important; }
  .hfn-camera-stage { min-height: 640px; }
  .hfn-camera-image img { min-height: 600px; }
  .hfn-camera-note { width: min(72%, 420px); }
  .hfn-story-heading, .hfn-faq-head { position: static; }
  .hfn-story-card:nth-child(even) { transform: none; }
  .hfn-horizontal-gallery { min-height: 100vh; }
  .hfn-gallery-sticky { position: relative; height: auto; overflow: visible; padding-block: 0; }
  .hfn-gallery-head { flex-wrap: wrap !important; }
  .hfn-gallery-track { gap: 16px; width: auto; max-width: 100%; padding: 0 var(--hfn-edge) 20px 0; overflow-x: auto; scroll-snap-type: x mandatory; transform: none !important; scrollbar-width: none; }
  .hfn-gallery-track::-webkit-scrollbar { display: none; }
  .hfn-gallery-card { flex-basis: min(76vw, 410px); scroll-snap-align: start; }
  .hfn-gallery-card.is-tall { flex-basis: min(68vw, 350px); }
  .hfn-gallery-progress { display: none; }
  .hfn-about-media { margin-bottom: 30px; }
  .hfn-image-label { right: -8px; }
  .hfn-price-card.is-featured { transform: none; }
  .hfn-price-card.is-featured:hover { transform: translateY(-10px); }
}

@media (max-width: 781px) {
  .hfn-site-header { width: calc(100% + (2 * var(--hfn-edge))); }
  .home .hfn-site-header { padding-block: 4px !important; }
  .hfn-brand .wp-block-site-title { font-size: .84rem !important; }
  .hfn-hero { min-height: 100svh !important; }
  .hfn-hero::after { background: linear-gradient(180deg, rgba(23,33,39,.52), rgba(23,33,39,.18) 34%, rgba(23,33,39,.92) 88%); }
  .hfn-hero > .wp-block-cover__image-background { object-position: 57% center; }
  .hfn-hero-content { justify-content: flex-end; padding-top: 115px; padding-bottom: 48px; }
  .hfn-hero-title { font-size: clamp(3.1rem, 15vw, 5.4rem) !important; line-height: .89 !important; }
  .hfn-hero-subline { font-size: 1.05rem !important; }
  .hfn-hero-bottom { display: block !important; margin-top: 24px; }
  .hfn-hero-actions { margin-top: 0; }
  .hfn-hero-trust { margin-top: 18px; }
  .hfn-hero-viewfinder {
    position: relative;
    right: auto;
    bottom: auto;
    width: 100%;
    max-width: 360px;
    min-height: 190px;
    margin-top: 22px;
    padding: 20px;
  }
  .hfn-vf-bar { left: 18px; right: 18px; }
  .hfn-vf-focus { width: 72px; height: 72px; }
  .hfn-hero-badge { position: static; width: fit-content; margin-top: 20px; font-size: .6rem; }
  .hfn-scroll-cue { display: none; }
  .hfn-story, .hfn-principle, .hfn-about, .hfn-location, .hfn-pricing, .hfn-faq, .hfn-capture { padding-inline: var(--hfn-edge); }
  .hfn-capture-copy { margin-bottom: 12px; }
  .hfn-camera-stage { min-height: auto; padding: 14px; border-radius: 22px; }
  .hfn-camera-image img { min-height: 460px; }
  .hfn-viewfinder { inset: 18px; border-radius: 18px; }
  .hfn-camera-note { position: static; width: auto; max-width: none; margin-top: 14px; }
  .hfn-camera-detail { display: none; }
  .hfn-location-extra { border-radius: 18px; }
  .hfn-story-heading { margin-bottom: 25px; }
  .hfn-story-copy { gap: 12px; }
  .hfn-principle-bottom { gap: 32px; }
  .hfn-stats { gap: 18px; }
  .hfn-stats .wp-block-column { flex-basis: 100% !important; }
  .hfn-gallery-head { margin-bottom: 25px; }
  .hfn-gallery-intro { max-width: 100%; }
  .hfn-about-media img { aspect-ratio: 4/4.5; }
  .hfn-location-grid { gap: 16px !important; }
  .hfn-location-image img { min-height: 300px; }
  .hfn-location-grid .wp-block-column:not(:first-child) .hfn-location-image img { min-height: 220px; }
  .hfn-price-grid { gap: 18px !important; }
  .hfn-price-card { min-height: auto; }
  .hfn-section-intro { max-width: 100%; }
  .hfn-final-cta { min-height: 80svh !important; }
  .hfn-footer .wp-block-columns { gap: 36px; }
  .hfn-query .wp-block-post-template { grid-template-columns: 1fr !important; }
}

@media (max-width: 480px) {
  .hfn-hero-actions .wp-block-button { width: 100%; }
  .hfn-hero-actions .wp-block-button__link { width: 100%; text-align: center; }
  .hfn-hero-viewfinder { max-width: 100%; }
  .hfn-vf-bar { font-size: .56rem; }
  .hfn-kicker::before { width: 20px; margin-right: 8px; }
  .hfn-gallery-card { flex-basis: 84vw; }
  .hfn-gallery-card.is-tall { flex-basis: 78vw; }
  .hfn-image-label { font-size: .58rem; }
}


/* Mobile-first motion system 2.3 */
.hfn-mobile-menu-toggle,
.hfn-mobile-menu-panel,
.hfn-mobile-progress {
  display: none;
}

@media (max-width: 781px) {
  :root {
    --hfn-edge: clamp(24px, 6.4vw, 32px);
    --hfn-capture-progress: 0;
  }

  body {
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .wp-site-blocks {
    padding-right: var(--hfn-edge) !important;
    padding-left: var(--hfn-edge) !important;
  }

  .hfn-site-header,
  .hfn-hero,
  .hfn-marquee,
  .hfn-capture,
  .hfn-story,
  .hfn-principle,
  .hfn-horizontal-gallery,
  .hfn-about,
  .hfn-location,
  .hfn-pricing,
  .hfn-faq,
  .hfn-final-cta,
  .hfn-footer {
    width: auto !important;
    max-width: none !important;
  }

  .hfn-header-inner {
    width: 100%;
  }

  .home .hfn-site-header {
    right: 0;
    left: 0;
    width: auto !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: var(--hfn-edge);
    padding-left: var(--hfn-edge);
  }

  body.hfn-menu-open {
    overflow: hidden !important;
    touch-action: none;
  }

  /* Reliable mobile navigation independent of the Core block breakpoint. */
  .hfn-js-ready .hfn-navigation {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
  }

  .hfn-mobile-menu-toggle {
    position: relative;
    z-index: 3002;
    display: inline-grid;
    grid-template-columns: 24px auto;
    grid-template-rows: 8px 8px;
    align-items: center;
    column-gap: 10px;
    min-width: 82px;
    min-height: 44px;
    padding: 8px 10px;
    color: inherit;
    border: 0;
    border-radius: 6px;
    background: rgba(255,255,255,.08);
    font: inherit;
    cursor: pointer;
    backdrop-filter: blur(12px);
    -webkit-tap-highlight-color: transparent;
  }

  .home .hfn-site-header.is-scrolled .hfn-mobile-menu-toggle,
  body:not(.home) .hfn-mobile-menu-toggle {
    background: rgba(23,33,39,.06);
  }

  .hfn-menu-line {
    grid-column: 1;
    display: block;
    width: 22px;
    height: 1.5px;
    background: currentColor;
    transform-origin: center;
    transition: transform .32s var(--hfn-ease), opacity .22s ease;
  }

  .hfn-menu-line:first-child { grid-row: 1; align-self: end; }
  .hfn-menu-line:nth-child(2) { grid-row: 2; align-self: start; }

  .hfn-menu-label {
    grid-column: 2;
    grid-row: 1 / span 2;
    font-size: .67rem;
    font-weight: 760;
    letter-spacing: .11em;
    text-transform: uppercase;
  }

  .hfn-mobile-menu-toggle.is-open {
    color: var(--hfn-white) !important;
    background: rgba(255,255,255,.08) !important;
  }
  .hfn-mobile-menu-toggle.is-open .hfn-menu-line:first-child {
    transform: translateY(4px) rotate(45deg);
  }
  .hfn-mobile-menu-toggle.is-open .hfn-menu-line:nth-child(2) {
    transform: translateY(-4px) rotate(-45deg);
  }

  .hfn-mobile-menu-panel {
    position: fixed;
    z-index: 2800;
    inset: 0;
    display: grid;
    align-items: end;
    padding: max(110px, calc(env(safe-area-inset-top) + 88px)) var(--hfn-edge) max(34px, calc(env(safe-area-inset-bottom) + 24px));
    color: var(--hfn-white);
    background:
      radial-gradient(circle at 82% 18%, rgba(200,120,96,.32), transparent 35%),
      linear-gradient(145deg, #172127 0%, #2b2830 58%, #3b2b35 100%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-18px);
    transition: opacity .3s ease, visibility .3s ease, transform .45s var(--hfn-ease);
  }

  .hfn-mobile-menu-panel::before {
    position: absolute;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px), linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 72px 72px;
    mask-image: linear-gradient(to bottom, rgba(0,0,0,.6), transparent 72%);
  }

  .hfn-mobile-menu-panel.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }

  .hfn-mobile-menu-inner {
    position: relative;
    z-index: 1;
    width: min(100%, 560px);
  }

  .hfn-mobile-menu-kicker {
    margin: 0 0 22px;
    color: var(--hfn-champagne);
    font-size: .66rem;
    font-weight: 760;
    letter-spacing: .15em;
    text-transform: uppercase;
  }

  .hfn-mobile-menu-links {
    display: grid;
    border-top: 1px solid rgba(255,255,255,.18);
  }

  .hfn-mobile-menu-links a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px 0;
    color: var(--hfn-white);
    border-bottom: 1px solid rgba(255,255,255,.16);
    font-family: var(--wp--preset--font-family--display);
    font-size: clamp(1.48rem, 7.3vw, 2.4rem);
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: -.035em;
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .38s ease calc(var(--hfn-menu-index, 0) * 45ms + 80ms), transform .5s var(--hfn-ease) calc(var(--hfn-menu-index, 0) * 45ms + 80ms), color .2s ease;
  }

  .hfn-mobile-menu-links a::after {
    content: "↗";
    color: var(--hfn-champagne);
    font-family: var(--wp--preset--font-family--body);
    font-size: .9rem;
    font-weight: 500;
  }

  .hfn-mobile-menu-links a.is-cta {
    color: var(--hfn-champagne);
  }

  .hfn-mobile-menu-panel.is-open .hfn-mobile-menu-links a {
    opacity: 1;
    transform: none;
  }

  .hfn-mobile-menu-note {
    max-width: 360px;
    margin: 22px 0 0;
    color: rgba(255,255,255,.62);
    font-size: .75rem;
    line-height: 1.55;
  }

  body.hfn-menu-open .hfn-site-header {
    z-index: 3000;
    color: var(--hfn-white) !important;
    background: transparent !important;
    border-color: transparent !important;
    backdrop-filter: none !important;
  }

  .hfn-mobile-progress {
    position: fixed;
    z-index: 2200;
    top: 0;
    right: 0;
    left: 0;
    display: block;
    height: 3px;
    overflow: hidden;
    pointer-events: none;
    opacity: 0;
    background: rgba(244, 241, 235, .18);
    transition: opacity .25s ease;
  }
  .hfn-mobile-progress.is-active { opacity: 1; }
  .hfn-mobile-progress span {
    display: block;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, var(--hfn-champagne), var(--hfn-coral));
    transform: scaleX(var(--hfn-page-progress, 0));
    transform-origin: left center;
    will-change: transform;
  }

  /* Short, visible hero motion without an empty scroll corridor. */
  .hfn-hero {
    min-height: 116svh !important;
  }
  .hfn-hero > .wp-block-cover__image-background {
    object-position: 59% center;
    clip-path: inset(
      calc(var(--hfn-hero-progress) * 1.8%)
      calc(var(--hfn-hero-progress) * 2.8%)
      calc(var(--hfn-hero-progress) * 1.8%)
      calc(var(--hfn-hero-progress) * 2.8%)
      round calc(var(--hfn-hero-progress) * 22px)
    );
    transform: scale(calc(1.085 - (var(--hfn-hero-progress) * .055)));
    filter: saturate(calc(.88 + (var(--hfn-hero-progress) * .1))) contrast(1.03);
  }
  .hfn-hero::after {
    opacity: calc(1 - (var(--hfn-hero-progress) * .14));
  }
  .hfn-hero-content {
    padding-right: var(--hfn-edge);
    padding-left: var(--hfn-edge);
  }
  .hfn-hero-title {
    max-width: 100%;
    transform: translate3d(0, calc(var(--hfn-hero-progress) * -15px), 0);
    opacity: calc(1 - (var(--hfn-hero-progress) * .24));
  }
  .hfn-hero-subline {
    max-width: 100%;
    transform: translate3d(0, calc(var(--hfn-hero-progress) * -9px), 0);
    opacity: calc(1 - (var(--hfn-hero-progress) * .3));
  }
  .hfn-hero-bottom {
    transform: translate3d(0, calc(var(--hfn-hero-progress) * -5px), 0);
  }
  .hfn-hero-viewfinder {
    position: absolute;
    z-index: 0;
    top: 88px;
    right: 0;
    bottom: 156px;
    left: 0;
    width: auto;
    max-width: none;
    min-height: 0;
    margin: 0;
    padding: 0;
    border-color: rgba(255,255,255,.26);
    border-radius: calc(12px + (var(--hfn-hero-progress) * 12px));
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    opacity: calc(.7 + (var(--hfn-hero-progress) * .2));
    transform: scale(calc(1 - (var(--hfn-hero-progress) * .025)));
  }
  .hfn-hero-viewfinder .hfn-vf-focus {
    top: 42%;
    left: 70%;
    width: calc(90px - (var(--hfn-hero-progress) * 18px));
    height: calc(90px - (var(--hfn-hero-progress) * 18px));
    transform: translate(-50%, -50%) rotate(calc(var(--hfn-hero-progress) * 18deg));
  }
  .hfn-hero-viewfinder .hfn-vf-bar-top { top: 18px; }
  .hfn-hero-viewfinder .hfn-vf-bar-bottom { right: 18px; bottom: 18px; left: 18px; }
  .hfn-hero-title,
  .hfn-hero-subline,
  .hfn-hero-bottom,
  .hfn-hero-badge {
    position: relative;
    z-index: 2;
  }
  .hfn-hero-badge {
    max-width: 100%;
    line-height: 1.45;
  }

  /* Camera scene remains in normal document flow: no dead sticky scroll. */
  .hfn-capture {
    --hfn-capture-progress: 0;
  }
  .hfn-capture-layout {
    display: block !important;
  }
  .hfn-capture-copy {
    margin-bottom: clamp(30px, 9vw, 48px);
  }
  .hfn-capture-visual {
    min-height: 0 !important;
  }
  .hfn-camera-stage {
    position: relative !important;
    top: auto !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 12px;
    border-radius: 24px;
    box-shadow: 0 25px 80px rgba(23,33,39,.22);
  }
  .hfn-camera-image {
    height: auto !important;
  }
  .hfn-camera-image img {
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 5;
    object-position: 58% center;
    transform: scale(calc(1.055 - (var(--hfn-capture-progress) * .035))) translateY(calc((.5 - var(--hfn-capture-progress)) * 8px));
    filter: saturate(calc(.88 + (var(--hfn-capture-progress) * .1)));
  }
  .hfn-viewfinder {
    inset: 24px 24px auto;
    height: min(64vw, 250px);
    border-radius: 19px;
    opacity: calc(.6 + (var(--hfn-capture-progress) * .35));
    transform: scale(calc(1.025 - (var(--hfn-capture-progress) * .025)));
  }
  .hfn-viewfinder .hfn-vf-focus {
    transform: translate(-50%, -50%) scale(calc(1.14 - (var(--hfn-capture-progress) * .22)));
  }
  .hfn-camera-note {
    position: relative !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: auto !important;
    max-width: none !important;
    margin: 14px 0 0 !important;
    padding: 20px clamp(20px, 5.5vw, 26px);
    opacity: calc(.76 + (var(--hfn-capture-progress) * .24));
    transform: translateY(calc((1 - var(--hfn-capture-progress)) * 12px));
  }
  .hfn-camera-note p:last-child {
    font-size: .92rem;
    line-height: 1.55;
  }
  .hfn-camera-detail { display: none; }

  /* Every visible card reacts while scrolling; no artificial section height. */
  .hfn-story-cards {
    gap: clamp(38px, 11vw, 64px);
  }
  .hfn-story-card {
    position: relative;
    opacity: .66;
    transform: scale(.96) !important;
    transform-origin: center center;
    transition: opacity .42s ease, transform .58s var(--hfn-ease), box-shadow .48s ease;
  }
  .hfn-story-card::after {
    position: absolute;
    z-index: 3;
    inset: 0;
    content: "";
    pointer-events: none;
    background: linear-gradient(110deg, rgba(255,255,255,.12), rgba(255,255,255,0) 46%);
    transform: translateX(-115%);
    transition: transform .8s var(--hfn-ease);
  }
  .hfn-story-card.is-current {
    opacity: 1;
    transform: scale(1) !important;
    box-shadow: 0 30px 90px rgba(0,0,0,.3);
  }
  .hfn-story-card.is-current::after { transform: translateX(115%); }
  .hfn-story-image img {
    clip-path: inset(3% 0 3% 0 round 10px);
    transition: transform .9s var(--hfn-ease), clip-path .65s var(--hfn-ease);
  }
  .hfn-story-card.is-current .hfn-story-image img { clip-path: inset(0 round 0); }

  .hfn-gallery-track {
    gap: 18px;
    margin-right: calc(-1 * var(--hfn-edge));
    padding-right: var(--hfn-edge);
    scroll-padding-inline: 4px var(--hfn-edge);
  }
  .hfn-gallery-card {
    opacity: .5;
    transform: scale(.92);
    transform-origin: center center;
    transition: opacity .35s ease, transform .5s var(--hfn-ease);
  }
  .hfn-gallery-card.is-active {
    opacity: 1;
    transform: scale(1);
  }
  .hfn-gallery-card figure {
    border-radius: 16px;
    box-shadow: 0 18px 50px rgba(23,33,39,.12);
  }

  /* Consistent mobile breathing room. */
  .hfn-story-copy,
  .hfn-price-card,
  .hfn-location-extra,
  .hfn-camera-note {
    padding-right: clamp(20px, 5.5vw, 26px);
    padding-left: clamp(20px, 5.5vw, 26px);
  }
  .hfn-final-cta-inner,
  .hfn-gallery-head,
  .hfn-location-head,
  .hfn-section-head,
  .hfn-faq-grid,
  .hfn-about-grid,
  .hfn-principle > .wp-block-group,
  .hfn-footer > .wp-block-group {
    padding-right: 0;
    padding-left: 0;
  }
  .hfn-location-extra-actions,
  .hfn-location-extra-actions .wp-block-button,
  .hfn-location-extra-actions .wp-block-button__link {
    width: 100%;
  }
  .hfn-location-extra-actions .wp-block-button__link { text-align: center; }
}

@media (max-width: 480px) {
  :root {
    --hfn-edge: clamp(22px, 6.5vw, 28px);
  }
  .hfn-mobile-menu-toggle {
    min-width: 72px;
    padding-inline: 8px;
  }
  .hfn-menu-label { font-size: .61rem; }
  .hfn-hero-title {
    max-width: 100%;
    font-size: clamp(2.75rem, 13.6vw, 4.55rem) !important;
  }
  .hfn-hero-subline {
    max-width: 100%;
    font-size: 1rem !important;
  }
  .hfn-hero-trust { gap: 8px; }
  .hfn-hero-trust li {
    padding: 8px 10px;
    font-size: .61rem;
  }
  .hfn-hero-trust li:nth-child(3) { display: none; }
  .hfn-hero-viewfinder {
    top: 82px;
    bottom: 172px;
  }
  .hfn-hero-viewfinder .hfn-vf-bar-bottom small { display: none; }
  .hfn-camera-note h3 { font-size: 1.25rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .hfn-reveal { opacity: 1; transform: none; }
  .hfn-gallery-track, .hfn-hero-title, .hfn-hero-bottom, .hfn-hero-subline, .hfn-hero-viewfinder, .hfn-hero > .wp-block-cover__image-background, .hfn-camera-image img, .hfn-viewfinder, .hfn-camera-note, .hfn-story-card, .hfn-gallery-card { transform: none !important; }
  .hfn-hero > .wp-block-cover__image-background, .hfn-story-image img { clip-path: none !important; }
}
