/* ════════════════════════════════════════════════════════════════
   v3 polish layer — refined depth, motion & detailing
   (keeps original structure; overrides specific properties only)
   ════════════════════════════════════════════════════════════════ */

/* Smoother easing on the reveal animation */
.reveal{transition:opacity 1.05s cubic-bezier(.16,.84,.24,1),transform 1.05s cubic-bezier(.16,.84,.24,1);}

/* ─── HERO ─── subtle photographic atmosphere + refined type ─── */
.hero{
  /* Layered: dark gradient + subtle radial highlights + faint photo at low opacity */
  background:
    linear-gradient(180deg,rgba(13,46,80,0.78) 0%,rgba(8,34,64,0.92) 60%,#082240 100%),
    radial-gradient(120% 80% at 50% 0%, rgba(91,155,213,0.22) 0%, transparent 55%),
    radial-gradient(80% 60% at 50% 100%, rgba(201,169,110,0.10) 0%, transparent 65%),
    linear-gradient(180deg,#0D2E50 0%,#082240 100%);
  background-blend-mode:multiply,normal,normal,normal;
}
/* Faint background photo, sits behind the gradients via ::before */
.hero::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:url('img/hero-bg.jpg');
  background-size:cover;background-position:center 35%;
  opacity:0.22;
  filter:saturate(0.85) contrast(0.95);
  mix-blend-mode:luminosity;
  animation:heroDriftIn 1.6s cubic-bezier(.16,.84,.24,1) both;
}
@keyframes heroDriftIn{
  from{transform:scale(1.05);opacity:0;}
  to{transform:scale(1);opacity:0.22;}
}
.hero-inner{position:relative;z-index:2;}

/* Refined hero label: pulsing gold dot before the text */
.hero-label{
  position:relative;
  padding-left:1.85rem;
  border-color:rgba(255,255,255,0.20);
  background:rgba(255,255,255,0.05);
  font-weight:500;
  letter-spacing:2.8px;
}
.hero-label::before{
  content:'';position:absolute;left:0.9rem;top:50%;
  width:6px;height:6px;border-radius:50%;
  background:#C9A96E;
  transform:translateY(-50%);
  box-shadow:0 0 0 0 rgba(201,169,110,0.6);
  animation:heroPulse 2.4s ease-out infinite;
}
@keyframes heroPulse{
  0%{box-shadow:0 0 0 0 rgba(201,169,110,0.55);}
  60%{box-shadow:0 0 0 8px rgba(201,169,110,0);}
  100%{box-shadow:0 0 0 0 rgba(201,169,110,0);}
}

/* H1: a touch larger ceiling, tighter optics */
.hero h1{
  font-size:clamp(2.8rem,6.4vw,5.8rem);
  letter-spacing:-1.6px;
  text-shadow:0 1px 24px rgba(6,18,38,0.35);
}
.hero h1 em{
  /* warmer, slightly brighter italic accent */
  color:#B3D7F2;
  text-shadow:0 1px 18px rgba(91,155,213,0.25);
}
.hero h1::after{
  /* a touch longer and more elegant gold rule */
  width:56px;height:1.5px;background:#C9A96E;
  margin-top:1.9rem;opacity:0;
}
.reveal.visible .hero h1::after,
.hero-copy.reveal.visible h1::after{opacity:0.95;}

.hero-sub{max-width:580px;color:rgba(255,255,255,0.74);}

/* Subtle scroll cue at the bottom of hero (desktop only) */
.hero::after{
  content:'';position:absolute;left:50%;bottom:2.4rem;z-index:2;
  width:1px;height:38px;
  background:linear-gradient(180deg,rgba(255,255,255,0.55),transparent);
  transform-origin:top;
  animation:scrollCue 2.2s ease-in-out infinite;
}
@keyframes scrollCue{
  0%{transform:translateX(-50%) scaleY(0);transform-origin:top;}
  50%{transform:translateX(-50%) scaleY(1);transform-origin:top;}
  51%{transform:translateX(-50%) scaleY(1);transform-origin:bottom;}
  100%{transform:translateX(-50%) scaleY(0);transform-origin:bottom;}
}
@media (max-width:768px){.hero::after{display:none;}}

/* ─── BUTTONS ─── tighter shadow logic, smoother timing ────── */
.btn-dark{
  box-shadow:0 14px 32px -12px rgba(13,46,80,0.50),
             inset 0 0 0 1px rgba(13,46,80,0.04);
}
.btn-dark:hover{
  box-shadow:0 20px 44px -14px rgba(13,46,80,0.60),
             inset 0 0 0 1px rgba(13,46,80,0.04);
}
.btn-ghost{
  background:rgba(255,255,255,0.05);
  border-color:rgba(255,255,255,0.25);
  letter-spacing:0.2px;
}
.btn-ghost:hover{border-color:rgba(255,255,255,0.6);background:rgba(255,255,255,0.10);}
.btn-light{
  box-shadow:0 16px 36px -12px rgba(0,0,0,0.45),
             inset 0 0 0 1px rgba(13,46,80,0.05);
}
.btn-light:hover{box-shadow:0 22px 48px -12px rgba(0,0,0,0.55);}

.nav-cta{
  box-shadow:0 6px 18px -8px rgba(13,46,80,0.35),
             inset 0 0 0 1px rgba(255,255,255,0.04);
}
.nav-cta:hover{box-shadow:0 12px 26px -10px rgba(13,46,80,0.55);}

/* ─── NAV ─── crisper scrolled state ──────────────────────── */
nav.scrolled{
  background:rgba(255,255,255,0.86);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid rgba(13,46,80,0.06);
  box-shadow:0 6px 22px -12px rgba(13,46,80,0.10);
}
.nav-links a{transition:color 0.2s,opacity 0.2s;}
/* Subtle underline indicator on nav links */
.nav-links a{position:relative;}
.nav-links a::after{
  content:'';position:absolute;left:0;right:0;bottom:-4px;
  height:1px;background:#0D2E50;
  transform:scaleX(0);transform-origin:center;
  transition:transform 0.35s cubic-bezier(.16,.84,.24,1);
}
.nav-links a:hover{text-decoration:none;}
.nav-links a:hover::after{transform:scaleX(0.65);}

/* ─── INTRO ─── refined editorial spacing & pullquote ────── */
.intro{
  /* a hairline gold rule at the top of the warm section */
  position:relative;
}
.intro::before{
  content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:64px;height:1px;background:#C9A96E;opacity:0.6;
}
.intro h2{font-size:clamp(1.8rem,3vw,2.65rem);line-height:1.12;}
.intro-pullquote{
  border-left:2px solid #C9A96E;
  padding:0.85rem 0 0.85rem 1.6rem;
  margin:1.75rem 0;
  position:relative;
}
.intro-pullquote::before{
  content:'\201C';
  position:absolute;left:-2px;top:-1.1rem;
  font-family:'DM Serif Display',serif;font-size:3rem;line-height:1;
  color:rgba(201,169,110,0.30);
  pointer-events:none;
}
.intro-pullquote p{font-size:1.22rem;line-height:1.5;letter-spacing:-0.1px;}

/* ─── TESTIMONIALS ─── premium card detailing ─────────────── */
.testi-header h2.stitle{font-size:clamp(1.85rem,3vw,2.65rem);}
.testi-card{
  border-radius:16px;
  transition:transform 0.35s cubic-bezier(.16,.84,.24,1),
             box-shadow 0.35s cubic-bezier(.16,.84,.24,1),
             border-color 0.35s;
}
.testi-card:hover{transform:translateY(-4px);box-shadow:0 24px 60px -22px rgba(13,46,80,0.22);}
.testi-card.featured{
  position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(180deg,#13396B 0%,#0D2E50 100%);
  box-shadow:0 22px 52px -22px rgba(13,46,80,0.40);
}
.testi-card.featured::before{
  content:'\201C';position:absolute;left:1.15rem;top:0.4rem;z-index:0;
  font-family:'DM Serif Display',serif;font-size:11rem;line-height:1;
  color:rgba(255,255,255,0.05);
  pointer-events:none;
}
.testi-card.featured::after{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(80% 80% at 100% 0%, rgba(91,155,213,0.18) 0%, transparent 60%);
}
.testi-card.featured .testi-stars,
.testi-card.featured .testi-quote,
.testi-card.featured .testi-footer{position:relative;z-index:1;}
.testi-quote{font-size:1.13rem;letter-spacing:-0.1px;}
.testi-stars{letter-spacing:4px;color:#C9A96E;}

/* ─── CTA BAND ─── subtle grain so navy doesn't look flat ── */
.cta-band{
  position:relative;isolation:isolate;
}
.cta-band::after{
  content:'';position:absolute;inset:0;pointer-events:none;z-index:0;opacity:0.45;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='5'/><feColorMatrix values='0 0 0 0 1   0 0 0 0 1   0 0 0 0 1   0 0 0 .05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  background-size:200px 200px;
  mix-blend-mode:overlay;
}
.cta-band > *{position:relative;z-index:1;}
.cta-band h2{letter-spacing:-0.7px;}

/* ─── CREDENTIALS ─── refined hover with gold accent ─────── */
.credentials::before{
  content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:64px;height:1px;background:#C9A96E;opacity:0.5;
}
.credentials{position:relative;}
.cred-item{
  border-radius:14px;
  transition:transform 0.3s cubic-bezier(.16,.84,.24,1),
             box-shadow 0.3s cubic-bezier(.16,.84,.24,1),
             border-color 0.3s;
}
.cred-item:hover{
  transform:translateY(-3px);
  border-color:rgba(201,169,110,0.55);
  box-shadow:0 18px 40px -18px rgba(13,46,80,0.22);
}

/* ─── FOOTER ─── small spacing refinements ───────────────── */
.footer-brand-tag{font-size:0.98rem;line-height:1.45;}
.footer-col a{transition:color 0.2s,padding-left 0.2s;}
.footer-col a:hover{padding-left:3px;}

/* ─── Mobile refinement ─────────────────────────────────── */
@media (max-width:768px){
  .hero h1{font-size:clamp(2.4rem,9vw,3.2rem);letter-spacing:-0.6px;}
  .hero h1::after{margin:1.25rem 0 0;}
  .hero-label{padding-left:1.65rem;}
  .intro-pullquote p{font-size:1.12rem;}
  .testi-card{border-radius:14px;}
  .testi-card.featured::before{font-size:8rem;left:0.85rem;}
}

/* ════════════════════════════════════════════════════════════════
   v4 polish — billion-dollar refinements
   Fixes nav overflow, strengthens hero photography, refines rhythm
   ════════════════════════════════════════════════════════════════ */

/* Tokens — refined gold + softer surface */
:root{
  --gold:#B8956A;
  --gold-soft:#C9A96E;
  --ink:#0A1F38;
  --ink-deep:#061528;
  --cream:#FAF6EF;
  --line:rgba(13,46,80,0.10);
  --line-soft:rgba(13,46,80,0.06);
}

/* ─── NAV — compact, balanced, no overlap ─────────────────────── */
nav{
  /* Logo | links | CTA. Equal flexible side columns centre the whole
     links block on the page, with logo at the far left and CTA far right. */
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  padding:0 2.25rem;
  height:128px;
  /* Initial state: glassy over dark hero */
  background:rgba(10,21,40,0.18);
  backdrop-filter:blur(22px) saturate(180%);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  border-bottom:1px solid rgba(255,255,255,0.06);
}
/* Initial state over hero: light text */
.nav-logo-text .w1{color:rgba(255,255,255,0.96);}
.nav-logo-text .w2{color:rgba(201,169,110,0.95);}
.nav-logo svg{color:rgba(255,255,255,0.95);}
.nav-logo svg path{fill:rgba(255,255,255,0.95);}
.nav-links a{color:rgba(255,255,255,0.82);}
.nav-links a:hover{color:#FFFFFF;}
.nav-links a::after{background:#FFFFFF;}
.nav-cta{
  background:#FFFFFF;color:var(--ink);
  border:1px solid rgba(255,255,255,0.95);
  display:inline-flex;align-items:center;justify-content:center;
  white-space:nowrap;
  width:max-content;justify-self:end;
}
.nav-cta:hover{background:#F4ECDC;color:var(--ink);}
.hamburger span{background:#FFFFFF;}

/* Scrolled state: solid-ish white over light sections */
nav.scrolled{
  height:90px;
  background:rgba(255,255,255,0.78);
  backdrop-filter:blur(22px) saturate(190%);
  -webkit-backdrop-filter:blur(22px) saturate(190%);
  border-bottom:1px solid rgba(13,46,80,0.06);
  box-shadow:0 6px 22px -12px rgba(13,46,80,0.10);
}
nav.scrolled .nav-logo-text .w1{color:var(--ink);}
nav.scrolled .nav-logo-text .w2{color:var(--gold);}
nav.scrolled .nav-logo svg path{fill:var(--ink);}
nav.scrolled .nav-links a{color:#3B4858;}
nav.scrolled .nav-links a:hover{color:var(--ink);}
nav.scrolled .nav-links a::after{background:var(--ink);}
nav.scrolled .nav-cta{
  background:var(--ink);color:#FFFFFF;
  border-color:var(--ink);
  padding:0.78rem 1.7rem;font-size:0.98rem;
}
nav.scrolled .nav-cta:hover{background:#0E263F;}
nav.scrolled .hamburger span{background:var(--ink);}
nav.scrolled .nav-logo svg{width:82px;height:73px;}
nav.scrolled .nav-logo-text .w1{font-size:1.58rem;}
nav.scrolled .nav-logo-text .w2{font-size:0.72rem;}
.nav-logo{gap:18px;}
.nav-logo svg{width:130px;height:116px;}
.nav-logo-text .w1{font-size:2rem;letter-spacing:0.2px;line-height:1;}
.nav-logo-text .w2{font-size:0.82rem;letter-spacing:3.5px;margin-top:5px;}
.nav-links{gap:2.6rem;justify-self:center;}
.nav-links a{font-size:1.08rem;letter-spacing:0.1px;font-weight:400;}
.nav-cta{
  padding:0.92rem 2rem;font-size:1.04rem;font-weight:500;letter-spacing:0.15px;
}

/* Tablet-narrow desktop safety */
@media (max-width:1100px){
  nav{padding:0 1.5rem;height:116px;}
  .nav-links{gap:1.75rem;}
  .nav-links a{font-size:1rem;}
  .nav-logo svg{width:112px;height:100px;}
  .nav-logo-text .w1{font-size:1.7rem;}
}
@media (max-width:920px) and (min-width:769px){
  .nav-logo-text .w2{display:none;}
}
/* Mobile nav sizing — keep phones compact */
@media (max-width:768px){
  nav{height:74px;padding:0 1.25rem;}
  .nav-logo{gap:11px;}
  .nav-logo svg{width:60px;height:53px;}
  .nav-logo-text .w1{font-size:1.4rem;}
  .nav-logo-text .w2{font-size:0.62rem;letter-spacing:2.5px;margin-top:3px;}
  nav.scrolled{height:62px;}
  nav.scrolled .nav-logo svg{width:50px;height:44px;}
  nav.scrolled .nav-logo-text .w1{font-size:1.25rem;}
}

/* ─── HERO — above-the-fold visibility, photo as anchor ─── */
/* Don't reveal-fade above-the-fold content — show immediately */
.hero .reveal{opacity:1;transform:none;}
.hero .reveal.visible{opacity:1;transform:none;}

.hero{
  padding:9rem 4rem 8rem;
  min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  background:
    linear-gradient(180deg,rgba(10,31,56,0.42) 0%,rgba(8,21,40,0.62) 55%,rgba(6,18,38,0.85) 100%),
    linear-gradient(180deg,#0A1F38 0%,#061528 100%);
}
.hero::before{
  /* The photo is the texture beneath the gradient. */
  background-image:url('img/hero-bg.jpg');
  background-size:cover;background-position:center 30%;
  opacity:0.62;
  filter:saturate(0.78) contrast(1.06) brightness(0.95);
  mix-blend-mode:normal;
  animation:heroDriftIn 1.8s cubic-bezier(.16,.84,.24,1) both,
            heroKenBurns 28s ease-in-out infinite alternate 1.8s;
}
@keyframes heroDriftIn{
  from{transform:scale(1.08);opacity:0;}
  to{transform:scale(1.02);opacity:0.62;}
}
@keyframes heroKenBurns{
  from{transform:scale(1.02) translate(0,0);}
  to{transform:scale(1.08) translate(-1%,-2%);}
}
@media (prefers-reduced-motion:reduce){
  .hero::before{animation:none;transform:scale(1.02);opacity:0.62;}
}
/* Add a subtle vignette overlay */
.hero-inner::before{
  content:'';position:absolute;inset:-40% -10%;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 60% 50% at 50% 55%, rgba(10,31,56,0.55) 0%, transparent 70%);
}

.hero-inner{padding:0 1rem;}
.hero-label{
  font-size:0.68rem;letter-spacing:3px;
  padding:0.45rem 1rem 0.45rem 2rem;
  border:1px solid rgba(255,255,255,0.18);
  background:rgba(255,255,255,0.04);
  color:rgba(255,255,255,0.88);font-weight:500;
  margin-bottom:2.25rem;
}
.hero-label::before{
  left:0.85rem;width:5px;height:5px;background:var(--gold-soft);
}
.hero h1{
  font-size:clamp(2.6rem,5.6vw,5rem);
  letter-spacing:-1.2px;
  line-height:1.03;
  max-width:16ch;
  margin-bottom:1.5rem;
  text-shadow:0 1px 32px rgba(6,18,38,0.45);
}
.hero h1 em{color:#C5DDF0;font-style:italic;}
.hero h1::after{
  width:48px;height:1px;background:var(--gold-soft);
  margin-top:1.5rem;opacity:0.85;
  /* Always visible since reveal is bypassed in hero */
  transform:scaleX(1);
}
.hero-sub{
  font-size:1.18rem;line-height:1.55;
  color:rgba(255,255,255,0.88);
  max-width:580px;
  margin-top:1.75rem;margin-bottom:2.5rem;font-weight:300;
  letter-spacing:-0.1px;
}
.hero-sub strong{color:#FFFFFF;font-weight:500;}
.hero-btns{gap:0.85rem;}

/* Scroll cue: simpler, more confident */
.hero::after{
  width:1px;height:46px;bottom:2.2rem;
  background:linear-gradient(180deg,rgba(255,255,255,0.65),rgba(255,255,255,0));
}

/* ─── BUTTONS — billion-dollar precision ─────────────────── */
.btn-dark{
  background:#FFFFFF;color:var(--ink);
  font-weight:500;letter-spacing:0.15px;
  padding:1rem 2.1rem;font-size:0.92rem;
  border:1px solid rgba(255,255,255,0.95);
  box-shadow:0 16px 36px -14px rgba(0,0,0,0.55);
}
.btn-dark:hover{
  background:#F8F4EC;
  transform:translateY(-1px);
  box-shadow:0 22px 44px -14px rgba(0,0,0,0.6);
}
.btn-ghost{
  background:transparent;
  border:1px solid rgba(255,255,255,0.30);
  color:#FFFFFF;font-weight:400;
  padding:1rem 1.9rem;font-size:0.92rem;letter-spacing:0.15px;
}
.btn-ghost:hover{
  background:rgba(255,255,255,0.06);
  border-color:rgba(255,255,255,0.6);
}
.btn-light{
  background:#FFFFFF;color:var(--ink);
  font-weight:500;letter-spacing:0.15px;
  padding:1.05rem 2.25rem;font-size:0.93rem;
  border:1px solid rgba(255,255,255,0.95);
  white-space:nowrap;
}
.btn-dark,.btn-ghost{white-space:nowrap;}
.btn-ghost-light{
  border:1px solid var(--line);
  color:var(--ink);font-weight:500;
  padding:0.85rem 1.75rem;font-size:0.88rem;letter-spacing:0.15px;
  white-space:nowrap;
}
.btn-ghost-light:hover{
  border-color:var(--ink);background:transparent;
}

/* ─── INTRO — refined editorial pacing ───────────────────── */
.intro{
  background:#FAF7F1;
  padding:7rem 4rem;
  border-top:none;
}
.intro::before{display:none;}
.intro-inner{
  grid-template-columns:0.85fr 1.15fr;
  gap:6rem;
  align-items:start;
}
.intro-inner > div:first-child{position:relative;padding-top:0.5rem;}
.intro-inner > div:first-child::before{
  content:'';display:block;width:32px;height:1px;background:var(--gold);
  margin-bottom:1.6rem;
}
.intro h2{
  font-size:clamp(2rem,3.2vw,2.85rem);
  line-height:1.08;letter-spacing:-0.5px;
  color:var(--ink);
}
.intro-text > p:first-of-type{
  font-size:1.05rem;line-height:1.75;color:#3B4858;
  margin-bottom:1.5rem;
}
.intro-text > p:nth-of-type(2){
  font-size:0.98rem;line-height:1.75;color:#4A5568;
}
.intro-pullquote{
  border-left:2px solid var(--gold);
  padding:0.5rem 0 0.5rem 1.5rem;
  margin:2rem 0;
}
.intro-pullquote::before{display:none;}
.intro-pullquote p{
  font-family:'DM Serif Display',serif;
  font-size:1.35rem;line-height:1.45;
  color:var(--ink);font-style:italic;letter-spacing:-0.3px;
}
.intro .btn-ghost-light{
  margin-top:2rem!important;display:inline-flex;
}

/* ─── TESTIMONIALS — editorial composition ───────────────── */
.testi{
  background:#FFFFFF;
  padding:7rem 4rem;
  border-top:1px solid var(--line-soft);
}
.testi-inner{max-width:1240px;}
.testi-header{margin-bottom:3.5rem;align-items:flex-end;}
.slabel{
  font-size:0.66rem;letter-spacing:3px;
  color:var(--gold);font-weight:500;
}
.stitle{
  font-size:clamp(2rem,3.2vw,2.85rem);
  letter-spacing:-0.5px;line-height:1.08;
  color:var(--ink);
}
.testi-header p{
  font-size:0.95rem;color:#4A5568;line-height:1.65;
  max-width:520px;margin-top:0.75rem;
  text-wrap:pretty;
}

.testi-grid{
  gap:1.25rem;
  grid-template-columns:1.4fr 1fr 1fr;
}
.testi-card{
  border-radius:4px;
  border:1px solid var(--line-soft);
  padding:2.5rem 2.25rem 2rem;
  background:#FBFAF7;
  box-shadow:none;
}
.testi-card:hover{
  transform:translateY(-3px);
  box-shadow:0 24px 60px -28px rgba(13,46,80,0.18);
  border-color:var(--line);
}
.testi-card.featured{
  padding:2.75rem 2.5rem 2.25rem;
  background:
    radial-gradient(80% 80% at 100% 0%, rgba(91,155,213,0.16) 0%, transparent 60%),
    linear-gradient(180deg,#102E54 0%,#081C36 100%);
  border:1px solid rgba(255,255,255,0.05);
  box-shadow:0 26px 60px -28px rgba(8,28,54,0.5);
}
.testi-card.featured::before{
  font-size:9rem;left:1rem;top:0.6rem;
  color:rgba(255,255,255,0.06);
}
.testi-stars{
  font-size:0.72rem;letter-spacing:5px;
  color:var(--gold);
  margin-bottom:1.75rem;
}
.testi-card.featured .testi-stars{color:var(--gold-soft);}
.testi-quote{
  font-family:'DM Serif Display',serif;font-style:normal;
  font-size:1.12rem;line-height:1.5;letter-spacing:-0.2px;
  color:var(--ink);
  margin-bottom:2rem;
}
.testi-card.featured .testi-quote{
  color:rgba(255,255,255,0.95);
  font-size:1.22rem;line-height:1.55;
}
.testi-footer{
  padding-top:1.4rem;
  border-top:1px solid var(--line-soft);
}
.testi-card.featured .testi-footer{border-top-color:rgba(255,255,255,0.10);}
.testi-avatar{
  width:38px;height:38px;
  background:#F0E9DC;color:var(--gold);
  font-size:0.78rem;font-weight:500;
  border:1px solid #E8DEC9;
}
.testi-card.featured .testi-avatar{
  background:rgba(201,169,110,0.18);color:var(--gold-soft);
  border-color:rgba(201,169,110,0.3);
}
.testi-author{font-size:0.85rem;font-weight:500;letter-spacing:0.1px;}
.testi-role{font-size:0.72rem;color:var(--text-light);letter-spacing:0.2px;}
.testi-card.featured .testi-role{color:rgba(255,255,255,0.45);}

/* ─── CTA BAND — refined, single column ──────────────────── */
.cta-band{
  padding:8rem 4rem;
  background:
    linear-gradient(180deg,rgba(10,31,56,0.55) 0%,rgba(6,18,38,0.92) 100%),
    linear-gradient(180deg,#0A1F38 0%,#061528 100%);
}
.cta-band::after{opacity:0.35;}
.cta-band h2{
  font-size:clamp(2rem,3.6vw,3.1rem);
  letter-spacing:-0.6px;line-height:1.08;
  max-width:18ch;margin-bottom:1.25rem;
}
.cta-band p{
  font-size:1rem;color:rgba(255,255,255,0.62);
  max-width:460px;margin-bottom:2.75rem;
  font-weight:300;line-height:1.65;
}
.cta-band::before{
  content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:48px;height:1px;background:var(--gold-soft);opacity:0.6;
  z-index:2;
}

/* ─── CREDENTIALS — quiet, refined ───────────────────────── */
.credentials{
  background:#FAF7F1;
  padding:6rem 4rem;
  border-top:none;
}
.credentials::before{display:none;}
.credentials-heading{margin-bottom:3rem;}
.credentials-heading h3{
  font-size:clamp(1.5rem,2.4vw,2rem);
  letter-spacing:-0.4px;line-height:1.15;
  color:var(--ink);
}
.credentials-grid{gap:1rem;}
.cred-item{
  background:#FFFFFF;
  border:1px solid var(--line-soft);
  padding:1.85rem 1.65rem;
  border-radius:4px;
  gap:1rem;
}
.cred-item:hover{
  border-color:var(--gold);
  box-shadow:0 18px 40px -22px rgba(13,46,80,0.18);
}
.cred-icon{
  background:#F5EFE0;color:var(--gold);
  padding:8px;border-radius:6px;width:36px;height:36px;
}
.cred-item:hover .cred-icon{
  background:var(--gold);color:#FFFFFF;
}
.cred-line{
  font-size:0.6rem;letter-spacing:1.6px;
  color:#8B95A5;font-weight:500;
}
.cred-name{
  font-size:0.9rem;color:var(--ink);font-weight:500;
  letter-spacing:0.1px;line-height:1.3;
}

/* ─── FOOTER — refined link grid + brand mark ─────────────── */
footer{
  background:#061528;
  padding:6rem 4rem 2.5rem;
  position:relative;overflow:hidden;
}
footer::before{
  content:'Landfall';
  position:absolute;
  bottom:-7rem;left:50%;transform:translateX(-50%);
  font-family:'DM Serif Display',serif;
  font-size:18rem;line-height:1;
  color:rgba(255,255,255,0.018);
  pointer-events:none;
  letter-spacing:-6px;
  white-space:nowrap;
  z-index:0;
}
.footer-grid,.footer-bottom{position:relative;z-index:1;}
.footer-grid{
  max-width:1240px;
  grid-template-columns:1.5fr 1fr 1fr 1.1fr;
  gap:4rem;
  padding-bottom:3.5rem;
  border-bottom:1px solid rgba(255,255,255,0.06);
  position:relative;
}
.footer-brand-name{font-size:1.5rem;letter-spacing:0.3px;}
.footer-brand-tag{
  font-size:0.95rem;line-height:1.55;
  color:rgba(255,255,255,0.5);
  max-width:280px;
  font-family:'DM Serif Display',serif;font-style:italic;
}
.footer-contact a{
  font-size:0.88rem;color:rgba(255,255,255,0.7);
  transition:color 0.2s;
}
.footer-contact a:hover{color:#FFFFFF;}
.footer-col h4{
  font-size:0.66rem;letter-spacing:2.5px;
  color:rgba(255,255,255,0.4);font-weight:500;
  margin-bottom:1.4rem;
}
.footer-col ul{gap:0.85rem;}
.footer-col a{
  font-size:0.88rem;color:rgba(255,255,255,0.62);
  letter-spacing:0.1px;
}
.footer-col a:hover{color:#FFFFFF;padding-left:0;}
.footer-bottom{
  padding-top:2.25rem;
  max-width:1240px;
  position:relative;
}
.footer-legal{
  font-size:0.74rem;color:rgba(255,255,255,0.35);
  line-height:1.7;letter-spacing:0.2px;
}

/* ─── Mobile breakpoint refinements ──────────────────────── */
@media (max-width:768px){
  .intro{padding:5rem 1.5rem;}
  .intro-inner{grid-template-columns:1fr;gap:1.75rem;}
  .intro-inner > div:first-child::before{margin-bottom:1.25rem;}
  .testi{padding:5rem 0;background:#FBFAF7;}
  .credentials{padding:4rem 0;}
  .cta-band{padding:5rem 1.5rem;}
  .hero{padding:7rem 1.5rem 5rem;min-height:auto;}
  .hero h1{font-size:clamp(2.4rem,9vw,3.2rem);}
  .hero-sub{font-size:0.98rem;}
  footer{padding:4rem 1.5rem 5.5rem;}
  footer::before{font-size:8rem;bottom:-2rem;}
  .credentials-grid{touch-action:pan-x !important;overscroll-behavior-y:none;}
}

/* ════════════════════════════════════════════════════════════════
   Cross-page refinements — inner pages (page-hero, active link, etc.)
   ════════════════════════════════════════════════════════════════ */

/* Universal hero-label: don't wrap, dot accent works on inner pages too */
.hero-label{
  white-space:nowrap;
}

/* Nav: active link state for inner pages */
.nav-links a.active{
  color:#FFFFFF;
  text-decoration:none;
}
.nav-links a.active::after{
  background:#FFFFFF;
  transform:scaleX(0.65);
}
nav.scrolled .nav-links a.active{
  color:var(--ink);
  text-decoration:none;
}
nav.scrolled .nav-links a.active::after{
  background:var(--ink);
  transform:scaleX(0.65);
}

/* ─── PAGE-HERO (inner pages: about/how-it-works/etc.) ─── */
.page-hero{
  background:
    linear-gradient(180deg,rgba(10,31,56,0.55) 0%,rgba(8,21,40,0.75) 60%,rgba(6,18,38,0.92) 100%),
    radial-gradient(120% 80% at 85% 20%, rgba(91,155,213,0.22) 0%, transparent 55%),
    radial-gradient(80% 60% at 10% 90%, rgba(46,116,181,0.18) 0%, transparent 60%),
    linear-gradient(160deg,#0A1F38 0%,#0A1F38 55%,#061528 100%);
  padding:10rem 4rem 6rem;
  position:relative;overflow:hidden;
}
.page-hero::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='400' viewBox='0 0 1200 400'%3E%3Cg fill='none' stroke='rgba(255,255,255,0.04)' stroke-width='1'%3E%3Cpath d='M0 280 Q300 240 600 270 T1200 260'/%3E%3Cpath d='M0 320 Q300 280 600 310 T1200 300'/%3E%3Cpath d='M0 360 Q300 320 600 350 T1200 340'/%3E%3C/g%3E%3C/svg%3E");
  background-size:cover;background-position:bottom;
}
.page-hero-inner{max-width:760px;}
.page-hero .hero-label{
  font-size:0.68rem;letter-spacing:3px;
  padding:0.45rem 1rem 0.45rem 2rem;
  border:1px solid rgba(255,255,255,0.20);
  background:rgba(255,255,255,0.04);
  color:rgba(255,255,255,0.88);font-weight:500;
  margin-bottom:2rem;
  position:relative;
}
.page-hero .hero-label::before{
  content:'';position:absolute;left:0.85rem;top:50%;
  width:5px;height:5px;border-radius:50%;
  background:var(--gold-soft);
  transform:translateY(-50%);
  box-shadow:0 0 0 0 rgba(201,169,110,0.6);
  animation:heroPulse 2.4s ease-out infinite;
}
.page-hero h1{
  font-size:clamp(2.6rem,4.6vw,4.2rem);
  letter-spacing:-1px;line-height:1.05;
  margin-bottom:1.5rem;
  text-shadow:0 1px 24px rgba(6,18,38,0.4);
}
.page-hero h1 em{color:#C5DDF0;font-style:italic;}
.page-hero h1::after{
  content:'';display:block;width:48px;height:1px;
  background:var(--gold-soft);
  margin:1.75rem auto 0;
  opacity:0.85;
}
.page-hero p{
  font-size:1.08rem;line-height:1.65;
  color:rgba(255,255,255,0.78);
  font-weight:300;max-width:620px;
  margin:1.75rem auto 0;
  letter-spacing:-0.05px;
}

/* Mobile breakpoint for page-hero */
@media (max-width:768px){
  .page-hero{padding:7rem 1.5rem 4.5rem;}
  .page-hero-inner{padding:0;}
  .page-hero h1{font-size:clamp(2.2rem,8vw,3rem);}
  .page-hero h1::after{margin:1.25rem auto 0;}
  .page-hero p{font-size:1rem;margin-top:1.5rem;}
  .page-hero .hero-label{padding:0.4rem 0.9rem 0.4rem 1.7rem;margin-bottom:1.5rem;}
}

/* ─── STORY (about page) ─── */
.story{background:#FFFFFF;padding:6rem 4rem;}
.story-left h2{
  font-size:clamp(1.7rem,2.6vw,2.2rem);
  color:var(--ink);letter-spacing:-0.4px;line-height:1.15;
}
.story-left p{color:#6B7280;font-size:0.9rem;}
.story-left::before{
  content:'';display:block;width:32px;height:1px;
  background:var(--gold);margin-bottom:1.4rem;
}
.story-right p{color:#3B4858;font-size:0.95rem;line-height:1.85;}
.story-right strong{color:var(--ink);font-weight:500;}
.story-statement{
  border-left:2px solid var(--gold);
  padding:0.5rem 0 0.5rem 1.6rem;
  margin:2rem 0;
}
.story-statement p{
  font-family:'DM Serif Display',serif;
  font-size:1.32rem;line-height:1.45;
  color:var(--ink);font-style:italic;letter-spacing:-0.3px;
}

/* ─── PRINCIPLES (about page) ─── */
.principles{
  background:#FAF7F1;padding:6rem 4rem;
  border-top:none;
}
.principles-inner .section-header{
  text-align:center;margin-bottom:3rem;
}
.principles-inner .stitle{
  font-size:clamp(1.8rem,2.8vw,2.4rem);
  letter-spacing:-0.4px;
}
.principles-inner .ssub{
  color:#6B7280;font-size:0.95rem;
  max-width:500px;margin:0 auto;
}
.principles-grid{
  background:transparent;
  border:none;border-radius:0;overflow:visible;
  gap:1px;
}
.p-card{
  background:#FFFFFF;
  border:1px solid var(--line-soft);
  border-radius:4px;
  padding:2.25rem 2rem;
  transition:transform 0.3s cubic-bezier(.16,.84,.24,1),
             box-shadow 0.3s cubic-bezier(.16,.84,.24,1),
             border-color 0.3s;
}
.p-card:hover{
  background:#FFFFFF;
  transform:translateY(-3px);
  border-color:var(--gold);
  box-shadow:0 18px 40px -22px rgba(13,46,80,0.18);
}
.p-marker{
  width:32px;height:1px;background:var(--gold);
  margin-bottom:1.5rem;
}
.p-card:hover .p-marker{width:48px;background:var(--gold);}
.p-card h3{
  font-size:1.05rem;color:var(--ink);
  letter-spacing:-0.1px;font-weight:400;
  font-family:'DM Serif Display',serif;
  margin-bottom:0.65rem;
}
.p-card p{
  font-size:0.88rem;color:#4A5568;
  line-height:1.7;font-weight:400;
}

/* CTA band buttons cleanup for inner pages */
.cta-band .btn-light,
.cta-band .btn-outline-light{
  padding:1rem 2.25rem;font-size:0.93rem;
  min-height:48px;border-radius:var(--r-pill);
  white-space:nowrap;
}

@media (max-width:768px){
  .story{padding:4rem 1.5rem;}
  .story-inner{grid-template-columns:1fr;gap:2rem;}
  .story-left{position:static;}
  .principles{padding:4rem 1.5rem;}
  .principles-grid{grid-template-columns:1fr;gap:0.75rem;}
  .p-card{padding:1.85rem 1.6rem;}
}


/* ════════════════════════════════════════════════════════════════
   Light-nav variant — pages with a light hero (forms, legal, 404)
   ════════════════════════════════════════════════════════════════ */
body.light-nav nav{
  background:rgba(255,255,255,0.78);
  border-bottom:1px solid rgba(13,46,80,0.06);
}
body.light-nav .nav-logo-text .w1{color:var(--ink);}
body.light-nav .nav-logo-text .w2{color:var(--gold);}
body.light-nav .nav-logo svg path{fill:var(--ink);}
body.light-nav .nav-links a{color:#3B4858;}
body.light-nav .nav-links a:hover{color:var(--ink);}
body.light-nav .nav-links a::after{background:var(--ink);}
body.light-nav .nav-links a.active{color:var(--ink);}
body.light-nav .nav-links a.active::after{background:var(--ink);transform:scaleX(0.65);}
body.light-nav .nav-cta{
  background:var(--ink);color:#FFFFFF;
  border-color:var(--ink);
}
body.light-nav .nav-cta:hover{background:#0E263F;}
body.light-nav .hamburger span{background:var(--ink);}

/* Page-header (privacy-policy etc.) refinement */
.page-header{
  padding-top:9rem;
  background:#F8F9FB;
  border-bottom:1px solid var(--line-soft);
}
.page-header h1{
  font-size:clamp(2.2rem,3.6vw,3rem);
  color:var(--ink);letter-spacing:-0.5px;
  line-height:1.12;
}

/* Page-intro (questionnaire) for nicer headings */
.page-intro h1{
  color:var(--ink);
  font-size:clamp(2rem,3.2vw,2.8rem);
  letter-spacing:-0.4px;
}

/* Form polish — refined inputs */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
textarea,
select{
  font-family:inherit;
  border-radius:6px;
  border:1px solid var(--line);
  padding:0.85rem 1rem;
  font-size:0.95rem;
  transition:border-color 0.2s, box-shadow 0.2s;
  background:#FFFFFF;
}
input:focus,textarea:focus,select:focus{
  outline:none;
  border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(184,149,106,0.12);
}

/* Mobile light-nav adjustments */
@media (max-width:768px){
  body.light-nav nav{
    background:rgba(255,255,255,0.92);
  }
}


/* Light-nav pages: .hero-label needs dark text */
body.light-nav .hero-label{
  color:var(--ink);
  border:1px solid rgba(13,46,80,0.18);
  background:rgba(255,255,255,0.7);
}
body.light-nav .hero-label::before{
  background:var(--gold);
}

/* Light-nav pages: page-hero needs different padding */
body.light-nav .page-hero,
body.light-nav .page-header,
body.light-nav .page-intro,
body.light-nav main > section:first-child{
  padding-top:9rem;
}


/* ════════════════════════════════════════════════════════════════
   2026-05-19 — Inner-page hero refresh + mobile nav-cta fix
   ════════════════════════════════════════════════════════════════ */

/* 1) Mobile: hide the desktop nav CTA */
@media (max-width:768px){
  .nav-cta{display:none !important;}
}

/* 2) Mobile WhatsApp FAB → right side instead of left */
@media (max-width:768px){
  .fab-wa{
    left:auto !important;
    right:16px !important;
  }
}

/* 3) Inner-page hero — refined cool off-white variant
      Replaces the navy slab with a sophisticated, gallery-like
      neutral. Cool off-white base with a soft navy mesh glow in the
      top-right (Linear/Stripe style depth), a tightened editorial
      padding, a crisp ink-on-near-white headline, and a small gold
      accent rule beneath the title. No more cream-yellow tint. */
body.light-nav .page-hero{
  background:
    radial-gradient(60% 65% at 88% 0%, rgba(46,116,181,0.26) 0%, transparent 60%),
    radial-gradient(50% 70% at 6% 100%, rgba(13,46,80,0.14) 0%, transparent 65%),
    linear-gradient(180deg,#D5E3F2 0%,#A8BFD9 100%);
  padding:7.5rem 4rem 4.5rem;
  color:var(--ink);
  border-bottom:1px solid rgba(10,31,56,0.07);
  position:relative;
  isolation:isolate;
}
/* Hairline gold rule pinned to the top of the hero — much subtler */
body.light-nav .page-hero::before{
  content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:72px;height:1px;
  background:var(--gold);
  opacity:0.55;
  z-index:2;
}
/* Replace the heavy wave engraving with a single, refined horizon
   rule — quieter and more modern. */
body.light-nav .page-hero::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='400' viewBox='0 0 1200 400' preserveAspectRatio='none'%3E%3Cline x1='0' y1='340' x2='1200' y2='340' stroke='rgba(10,31,56,0.08)' stroke-width='1' stroke-dasharray='2 6'/%3E%3C/svg%3E");
  background-size:100% 100%;
  background-position:bottom;
  opacity:0.7;
}
body.light-nav .page-hero .hero-label{
  color:#4A5568;
  background:transparent;
  border:1px solid rgba(10,31,56,0.14);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  font-weight:500;
}
body.light-nav .page-hero .hero-label::before{
  background:var(--gold);
  box-shadow:0 0 0 0 rgba(184,149,106,0.5);
}
body.light-nav .page-hero h1{
  color:var(--ink);
  text-shadow:none;
  letter-spacing:-1px;
}
body.light-nav .page-hero h1 em{
  color:#2E74B5;
  font-style:italic;
}
body.light-nav .page-hero h1::after{
  background:var(--gold);
  opacity:0.95;
}
body.light-nav .page-hero p{
  color:#4A5568;
}
body.light-nav .page-hero .slabel{
  color:var(--gold);
}

/* 4) Mobile overrides — the inline mobile patch sets the dark
      gradient with !important, so we have to match that. */
@media (max-width:768px){
  body.light-nav .page-hero{
    background:
      radial-gradient(70% 60% at 90% 0%, rgba(46,116,181,0.26) 0%, transparent 60%),
      linear-gradient(180deg,#D5E3F2 0%,#A8BFD9 100%) !important;
    color:var(--ink) !important;
    padding:6rem 1.5rem 3.25rem !important;
  }
  body.light-nav .page-hero h1,
  body.light-nav .page-hero .ph-title{color:var(--ink) !important;}
  body.light-nav .page-hero p,
  body.light-nav .page-hero .ph-sub,
  body.light-nav .page-hero-sub,
  body.light-nav .page-hero-intro{color:#4A5568 !important;}
  body.light-nav .page-hero .hero-label,
  body.light-nav .page-hero-label{
    color:#4A5568 !important;
    background:transparent !important;
    border-color:rgba(10,31,56,0.14) !important;
  }
}

/* ════════════════════════════════════════════════════════════════
   v20260527 — Photo-hero subpages + dropdown nav + footer redesign
   ════════════════════════════════════════════════════════════════ */

/* ── body.photo-hero — subpages with a dark photo hero ───────────
   Inner pages (about, why-uk-property, how-it-works) now use a
   homepage-style dark photo hero. The nav needs to behave like the
   homepage: transparent over the hero, white once scrolled past. */
body.photo-hero nav{
  background:transparent;
  border-bottom:1px solid transparent;
}
body.photo-hero nav.scrolled{
  background:rgba(255,255,255,0.96);
  border-bottom:1px solid rgba(13,46,80,0.06);
}
/* On photo-hero pages, the nav text is white over the hero */
body.photo-hero:not(.menu-open) nav:not(.scrolled) .nav-links a{color:#FFFFFF;}
body.photo-hero:not(.menu-open) nav:not(.scrolled) .nav-logo-text .w1{color:#FFFFFF;}
body.photo-hero:not(.menu-open) nav:not(.scrolled) .nav-logo-text .w2{color:rgba(255,255,255,0.75);}
body.photo-hero:not(.menu-open) nav:not(.scrolled) .nav-logo svg path{fill:#FFFFFF;}
body.photo-hero:not(.menu-open) nav:not(.scrolled) .hamburger span{background:#FFFFFF;}
body.photo-hero:not(.menu-open) nav:not(.scrolled) .nav-cta{
  background:rgba(255,255,255,0.10);
  border:1px solid rgba(255,255,255,0.25);
  color:#FFFFFF;
}
body.photo-hero:not(.menu-open) nav:not(.scrolled) .nav-cta:hover{
  background:#FFFFFF;color:#06182E;
}
/* Mobile photo-hero: nav stays mostly transparent over the dark hero */
@media (max-width:768px){
  body.photo-hero nav{
    background:rgba(10,31,56,0.0) !important;
    border-bottom:none !important;
  }
  body.photo-hero nav.scrolled{
    background:rgba(255,255,255,0.96) !important;
    border-bottom:1px solid rgba(13,46,80,0.06) !important;
  }
}

/* ── Photo-hero polish — brand-consistent typography + accents ─── */
body.photo-hero .page-hero{
  /* A soft inner vignette adds depth around the headline */
  isolation:isolate;
}
body.photo-hero .page-hero .page-hero-inner{
  position:relative;
  z-index:2;
  /* Soft halo behind the title for legibility on any backdrop */
}
body.photo-hero .page-hero .page-hero-inner::before{
  content:'';
  position:absolute;
  inset:-30% -15%;
  z-index:-1;
  pointer-events:none;
  background:radial-gradient(ellipse 60% 55% at 50% 55%, rgba(6,18,38,0.40) 0%, transparent 70%);
}
body.photo-hero .page-hero h1{
  text-shadow:0 1px 28px rgba(6,18,38,0.55), 0 0 1px rgba(0,0,0,0.3);
  letter-spacing:-0.8px;
  line-height:1.05;
}
body.photo-hero .page-hero h1 em{
  color:#C5DDF0;
  font-style:italic;
}
body.photo-hero .page-hero h1::after{
  content:'';
  display:block;
  width:48px;height:1px;
  background:var(--gold-soft);
  margin:1.5rem auto 0;
  opacity:0.85;
}
body.photo-hero .page-hero p{
  text-shadow:0 1px 14px rgba(6,18,38,0.45);
  color:rgba(255,255,255,0.85);
  font-weight:300;
  line-height:1.6;
}
body.photo-hero .page-hero .hero-label{
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.22);
  color:rgba(255,255,255,0.92);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
body.photo-hero .page-hero .hero-label::before{
  background:var(--gold-soft);
}

/* Mobile: keep these working through the page's inline !important rules */
@media (max-width:768px){
  body.photo-hero .page-hero h1{
    font-size:clamp(2.3rem, 8.5vw, 3rem) !important;
    line-height:1.05 !important;
  }
  body.photo-hero .page-hero h1::after{
    margin-top:1.1rem;
    width:40px;
  }
  body.photo-hero .page-hero p{
    font-size:1rem !important;
    line-height:1.6 !important;
  }
  body.photo-hero .page-hero .hero-label{
    background:rgba(255,255,255,0.06) !important;
    border-color:rgba(255,255,255,0.22) !important;
    color:rgba(255,255,255,0.92) !important;
  }
}


/* ── SIDE-DRAWER MENU — light glass, modern ──────────────────────
   Slides in from the right as a frosted-white glass panel. Heavy
   backdrop-blur, dark text for sharp legibility, hairline rows,
   gold accents. Page dims behind. */
@media (max-width:768px){

  /* Lock the page beneath */
  body.menu-open{overflow:hidden !important;}

  /* Soft dim + blur behind the drawer */
  body.menu-open::after{
    content:'' !important;
    position:fixed !important;
    inset:0 !important;
    z-index:9990 !important;
    background:rgba(6,18,38,0.30) !important;
    backdrop-filter:blur(3px);
    -webkit-backdrop-filter:blur(3px);
    pointer-events:none;
    animation:lpDrawerDim 0.35s ease both;
  }
  @keyframes lpDrawerDim{ from{opacity:0;} to{opacity:1;} }

  /* THE DRAWER — right side, 85% width, full height */
  .mobile-menu,
  body .mobile-menu{
    position:fixed !important;
    inset:auto !important;
    top:0 !important;right:0 !important;bottom:0 !important;left:auto !important;

    width:min(340px, 88vw) !important;
    height:100% !important;
    max-height:none !important;
    border:none !important;
    border-left:1px solid rgba(255,255,255,0.55) !important;
    border-radius:0 !important;
    box-shadow:
      -28px 0 60px -12px rgba(13,46,80,0.35),
      inset 1px 0 0 rgba(255,255,255,0.55) !important;
    padding:0 !important;
    margin:0 !important;

    /* LIGHT BLUE FROSTED GLASS — soft, modern, transparent */
    background:linear-gradient(180deg,
      rgba(195,219,243,0.62) 0%,
      rgba(168,200,231,0.58) 100%) !important;
    backdrop-filter:blur(40px) saturate(190%) !important;
    -webkit-backdrop-filter:blur(40px) saturate(190%) !important;

    /* Slide in from the right */
    transform:translateX(100%) !important;
    opacity:1 !important;
    transition:transform 0.36s cubic-bezier(.2,.8,.2,1) !important;
    pointer-events:none !important;

    display:flex !important;
    flex-direction:column !important;
    overflow:hidden !important;
    z-index:10000 !important;
  }
  .mobile-menu.open,
  body .mobile-menu.open{
    transform:translateX(0) !important;
    pointer-events:auto !important;
  }

  /* Kill old decorative pseudos */
  .mobile-menu::before, .mobile-menu::after{display:none !important;content:none !important;}

  /* Header: logo + close button */
  .mobile-menu-header{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    padding:0 1.25rem !important;
    height:64px !important;
    flex:0 0 auto !important;
    border-bottom:1px solid rgba(13,46,80,0.07) !important;
    background:transparent !important;
    position:relative;
    z-index:2;
  }
  .mobile-menu-logo{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    text-decoration:none !important;
  }
  .mobile-menu-logo svg{width:32px !important;height:28px !important;}
  .mobile-menu-logo svg path{fill:#0A1F38 !important;}
  .mm-w1{
    color:#0A1F38 !important;
    font-family:'DM Serif Display',serif !important;
    font-size:1.05rem !important;
    line-height:1 !important;
  }
  .mm-w2{
    color:#B8956A !important;
    font-family:'DM Sans',sans-serif !important;
    font-size:0.56rem !important;
    letter-spacing:3px !important;
    line-height:1 !important;
    text-transform:uppercase !important;
    margin-top:3px !important;
  }

  .mobile-menu-close{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:40px !important;height:40px !important;
    background:rgba(255,255,255,0.65) !important;
    border:1px solid rgba(13,46,80,0.10) !important;
    border-radius:999px !important;
    color:#0A1F38 !important;
    font-size:0.95rem !important;
    font-weight:300 !important;
    cursor:pointer !important;
    transition:background 0.2s, border-color 0.2s, transform 0.3s !important;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    box-shadow:0 1px 3px rgba(13,46,80,0.06);
  }
  .mobile-menu-close:hover,
  .mobile-menu-close:active{
    background:#FFFFFF !important;
    border-color:rgba(13,46,80,0.18) !important;
    transform:rotate(90deg) !important;
  }

  /* Body */
  .mobile-menu-inner{
    padding:1rem 0 1.25rem !important;
    flex:1 1 auto !important;
    overflow-y:auto !important;
    overscroll-behavior:contain !important;
    display:flex !important;
    flex-direction:column !important;
    position:relative;
    z-index:1;
  }

  /* NAV LINKS — clean sans-serif rows with hairlines */
  .mobile-nav-links{
    list-style:none !important;
    margin:0 !important;
    padding:0.25rem 0 !important;
    display:flex !important;
    flex-direction:column !important;
    gap:0 !important;
  }
  .mobile-nav-links li{
    opacity:0;
    transform:translateX(12px);
    transition:opacity 0.4s ease, transform 0.45s cubic-bezier(.2,.85,.3,1) !important;
    border:none !important;
    border-bottom:1px solid rgba(13,46,80,0.06) !important;
  }
  .mobile-nav-links li:last-child{border-bottom:none !important;}
  .mobile-menu.open .mobile-nav-links li{
    opacity:1 !important;
    transform:translateX(0) !important;
  }
  .mobile-menu.open .mobile-nav-links li:nth-child(1){transition-delay:0.10s !important;}
  .mobile-menu.open .mobile-nav-links li:nth-child(2){transition-delay:0.15s !important;}
  .mobile-menu.open .mobile-nav-links li:nth-child(3){transition-delay:0.20s !important;}
  .mobile-menu.open .mobile-nav-links li:nth-child(4){transition-delay:0.25s !important;}

  .mobile-nav-links a{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    padding:1rem 1.5rem !important;
    color:#0A1F38 !important;
    font-family:'DM Sans',sans-serif !important;
    font-size:1rem !important;
    font-weight:500 !important;
    font-style:normal !important;
    letter-spacing:0.1px !important;
    line-height:1.3 !important;
    text-decoration:none !important;
    border-left:2px solid transparent !important;
    transition:background 0.2s, border-color 0.2s, color 0.2s, padding-left 0.2s !important;
    min-height:0 !important;
    transform:none !important;
    text-shadow:none !important;
    text-align:left !important;
  }
  .mobile-nav-links a::after{
    content:'' !important;
    display:inline-block !important;
    width:6px;height:6px;
    border-right:1.5px solid rgba(13,46,80,0.30) !important;
    border-top:1.5px solid rgba(13,46,80,0.30) !important;
    transform:rotate(45deg) !important;
    flex-shrink:0;
    background:none !important;
    position:static !important;
    transition:transform 0.2s, border-color 0.2s !important;
    filter:none !important;
  }
  .mobile-nav-links a::before{display:none !important;content:none !important;}

  .mobile-nav-links a:hover,
  .mobile-nav-links a:focus,
  .mobile-nav-links a:active{
    background:rgba(13,46,80,0.04) !important;
    color:#0A1F38 !important;
    border-left-color:#C9A96E !important;
    padding-left:1.65rem !important;
    transform:none !important;
  }
  .mobile-nav-links a:hover::after,
  .mobile-nav-links a:active::after{
    border-color:#C9A96E !important;
    transform:rotate(45deg) translateX(2px) !important;
  }
  .mobile-nav-links a.active{
    color:#0A1F38 !important;
    background:rgba(201,169,110,0.10) !important;
    border-left-color:#C9A96E !important;
  }
  .mobile-nav-links a.active::after{border-color:#C9A96E !important;}

  /* CTA SECTION — divider then solid navy CTA */
  .mobile-menu-cta{
    margin-top:auto !important;
    padding:1.5rem 1.5rem 0.5rem !important;
    border:none !important;
    border-top:1px solid rgba(13,46,80,0.08) !important;
    opacity:0;
    transform:translateY(8px);
    transition:opacity 0.5s ease 0.30s, transform 0.5s ease 0.30s !important;
    position:relative;
  }
  .mobile-menu.open .mobile-menu-cta{
    opacity:1 !important;
    transform:translateY(0) !important;
  }
  .mobile-menu-cta::before{display:none !important;content:none !important;}

  .mobile-menu-cta a{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0.95rem 1.25rem !important;
    background:#0A1F38 !important;
    color:#FFFFFF !important;
    font-family:'DM Sans',sans-serif !important;
    font-size:0.78rem !important;
    font-weight:500 !important;
    letter-spacing:2.5px !important;
    text-transform:uppercase !important;
    border:1px solid #0A1F38 !important;
    border-radius:999px !important;
    text-decoration:none !important;
    box-shadow:0 8px 22px -10px rgba(13,46,80,0.45) !important;
    min-height:48px;
    transition:background 0.25s, border-color 0.25s, color 0.25s, transform 0.2s !important;
  }
  .mobile-menu-cta a:hover,
  .mobile-menu-cta a:active{
    background:#C9A96E !important;
    border-color:#C9A96E !important;
    color:#FFFFFF !important;
    transform:translateY(-1px);
  }

  /* CONTACT */
  .mobile-menu-contact{
    margin:1rem 0 0 !important;
    padding:0 1.5rem 0.5rem !important;
    color:#4A5568 !important;
    font-family:'DM Sans',sans-serif !important;
    font-size:0.72rem !important;
    letter-spacing:0.4px !important;
    text-align:center !important;
    opacity:0;
    transition:opacity 0.5s ease 0.40s !important;
    text-shadow:none !important;
  }
  .mobile-menu.open .mobile-menu-contact{opacity:1 !important;}
  .mobile-menu-contact a{
    color:#B8956A !important;
    font-weight:500 !important;
    text-decoration:none !important;
  }

  /* Hamburger morphs to X above the drawer */
  .hamburger.open span{background:#0A1F38 !important;}
  .hamburger{z-index:10001 !important;}
}

/* Fallback: no backdrop-filter → make the glass more opaque */
@supports not ((backdrop-filter:blur(20px)) or (-webkit-backdrop-filter:blur(20px))){
  @media (max-width:768px){
    .mobile-menu,
    body .mobile-menu{
      background:linear-gradient(180deg,#DDE9F5 0%,#C2D6EA 100%) !important;
    }
    body.menu-open::after{
      backdrop-filter:none !important;
      -webkit-backdrop-filter:none !important;
    }
  }
}


/* ── MOBILE FOOTER — compact ─────────────────────────────────────
   2-col grid: brand full / Service + Company / Regulated full.
   Tightened padding + gaps so it doesn't feel long. */
@media (max-width:768px){

  footer{
    padding:2rem 1.25rem 4.5rem !important;
    background:#061528 !important;
  }
  footer::before{display:none !important;}

  .footer-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    column-gap:1.25rem !important;
    row-gap:1.5rem !important;
    padding-bottom:1.25rem !important;
    border-bottom:1px solid rgba(255,255,255,0.06) !important;
    align-items:start;
  }
  .footer-grid > .footer-brand{
    grid-column:1 / -1 !important;
    align-items:flex-start !important;
    gap:0.65rem !important;
  }
  .footer-grid > *:nth-child(4){grid-column:1 / -1 !important;}

  .footer-brand-logo svg{width:64px !important;height:56px !important;}
  .footer-brand-name{font-size:1.1rem !important;letter-spacing:0.2px !important;}
  .footer-brand-tag{
    font-size:0.88rem !important;
    line-height:1.45 !important;
    max-width:none !important;
    margin:0 !important;
  }

  .footer-contact{
    flex-direction:row !important;
    flex-wrap:wrap !important;
    gap:0.4rem !important;
    margin-top:0.1rem !important;
  }
  .footer-contact a{
    display:inline-flex !important;
    align-items:center !important;
    gap:7px !important;
    background:rgba(255,255,255,0.05) !important;
    border:1px solid rgba(255,255,255,0.10) !important;
    border-radius:999px !important;
    padding:0.4rem 0.75rem !important;
    font-size:0.76rem !important;
    color:#CFE3F5 !important;
    letter-spacing:0.1px;
    transition:background 0.2s, border-color 0.2s !important;
  }
  .footer-contact a:hover,
  .footer-contact a:active{
    background:rgba(255,255,255,0.10) !important;
    border-color:rgba(255,255,255,0.20) !important;
    color:#FFFFFF !important;
  }
  .footer-contact a[href^="mailto:"]{
    flex:0 0 auto;
    justify-content:flex-start;
  }

  .footer-col h4{
    font-size:0.6rem !important;
    letter-spacing:2.2px !important;
    margin-bottom:0.65rem !important;
    color:rgba(255,255,255,0.45) !important;
  }
  .footer-col ul{
    gap:0.5rem !important;
    padding:0 !important;
    margin:0 !important;
    list-style:none !important;
  }
  .footer-col a{
    font-size:0.85rem !important;
    color:rgba(255,255,255,0.72) !important;
  }
  .footer-col a:hover{padding-left:0 !important;color:#FFFFFF !important;}

  .footer-grid > *:nth-child(4) ul{gap:0.45rem !important;}
  .footer-grid > *:nth-child(4) li{
    font-size:0.82rem;
    color:rgba(255,255,255,0.6);
  }
  .footer-grid > *:nth-child(4) .footer-badge{
    margin-top:0.65rem !important;
    flex-direction:row !important;
    align-items:center !important;
    gap:0.65rem !important;
  }

  .footer-bottom{
    padding-top:1rem !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:0 !important;
  }
  .footer-legal{
    font-size:0.68rem !important;
    line-height:1.55 !important;
    color:rgba(255,255,255,0.4) !important;
    max-width:none !important;
  }

  .sticky-cta{
    background:rgba(255,255,255,0.78) !important;
    border-top:1px solid rgba(13,46,80,0.06) !important;
    box-shadow:0 -14px 40px -16px rgba(13,46,80,0.18) !important;
    padding:0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom,0px)) !important;
  }
  .sticky-cta a{
    min-height:44px !important;
    font-size:0.9rem !important;
    l