
/* ============================================================
   NEXUS TOWERS — modern homepage
   Brand: deep harbor navy + signal gold + antenna teal
   ============================================================ */
:root{
  --ink:        #06222F;
  --navy:       #0A3246;
  --navy-2:     #0E3E57;
  --navy-3:     #123;
  --gold:       #FAD778;
  --gold-deep:  #E5B94E;
  --teal:       #32B0A6;
  --teal-dark:  #16746C;
  --ice:        #EAF5FB;
  --paper:      #F6FAFC;
  --text:       #0B2A2D;
  --muted:      #4A6168;
  --muted-ice:  #A8C4D4;
  --line:       rgba(10,50,70,.10);
  --line-gold:  rgba(229,185,78,.45);
  --shadow-lg:  0 24px 60px -18px rgba(6,34,47,.25);
  --shadow-sm:  0 10px 30px -12px rgba(6,34,47,.18);
  --r:          18px;
  --font-display:'Cabinet Grotesk', sans-serif;
  --font-body:  'Switzer', sans-serif;
  --gutter:     clamp(1.25rem, 4vw, 3rem);
  --max:        1240px;
}
*{margin:0;padding:0;box-sizing:border-box}
/* the [hidden] attribute must always win, even over component display rules */
[hidden]{display:none !important}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{
  font-family:var(--font-body);
  color:var(--text);
  background:var(--paper);
  font-size:1.0625rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
::selection{background:var(--gold);color:var(--ink)}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;line-height:1.08;letter-spacing:-.015em;color:var(--ink)}

.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}

/* ---------- shared atoms ---------- */
.eyebrow{
  display:inline-flex;align-items:center;gap:.55rem;
  font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--teal-dark);
}
.eyebrow::before{content:"";width:2rem;height:2px;background:var(--gold-deep);border-radius:2px}
.dark .eyebrow{color:var(--gold)}
.section-title{font-size:clamp(2rem,4.2vw,3.25rem);max-width:21ch}
.section-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:clamp(2.5rem,5vw,4rem)}
.section-head p{max-width:46ch;color:var(--muted)}

.btn{
  position:relative;display:inline-flex;align-items:center;gap:.65rem;
  font-family:var(--font-body);font-weight:600;font-size:.95rem;
  padding:1rem 1.65rem;border-radius:999px;border:1px solid transparent;
  cursor:pointer;transition:transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s;
  white-space:nowrap;
}
.btn svg{width:1rem;height:1rem;transition:transform .25s ease}
.btn:hover svg{transform:translateX(4px)}
.btn-gold{background:linear-gradient(135deg,var(--gold) 0%,var(--gold-deep) 100%);color:var(--ink);box-shadow:0 10px 26px -10px rgba(229,185,78,.6)}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 16px 34px -10px rgba(229,185,78,.75)}
.btn-ghost{border-color:rgba(234,245,251,.35);color:var(--ice);background:rgba(234,245,251,.04);backdrop-filter:blur(6px)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}
.btn-navy{background:var(--navy);color:var(--ice)}
.btn-navy:hover{background:var(--ink);transform:translateY(-2px);box-shadow:var(--shadow-sm)}

/* ---------- reveal on scroll ---------- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.65,.3,1), transform .8s cubic-bezier(.2,.65,.3,1)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}
.reveal[data-d="5"]{transition-delay:.40s}.reveal[data-d="6"]{transition-delay:.48s}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none}
  *{animation-duration:.001s !important}
}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:100;
  transition:background .35s ease, box-shadow .35s ease, padding .35s ease;
  padding:1.1rem 0;
}
.site-header.scrolled{background:rgba(6,34,47,.88);backdrop-filter:blur(14px);box-shadow:0 8px 30px -12px rgba(0,0,0,.5);padding:.65rem 0}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem}
.logo{display:flex;align-items:center;gap:.6rem}
.logo svg{height:30px;width:auto;max-width:60vw}
.main-nav ul{display:flex;gap:.25rem}
.main-nav a{
  display:block;padding:.55rem .95rem;border-radius:999px;
  font-size:.83rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ice);
  transition:color .2s, background .2s;
}
.main-nav a:hover{color:var(--gold);background:rgba(234,245,251,.06)}
.main-nav a[aria-current="page"]{color:var(--gold)}
/* services dropdowns (hover/focus reveal on desktop) */
.nav-has-sub{position:relative}
.nav-has-sub > a::after{content:"";display:inline-block;width:.42em;height:.42em;margin-left:.4em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.7}
.nav-sub{
  position:absolute;top:calc(100% - .2rem);left:0;min-width:230px;display:flex;flex-direction:column;gap:.1rem;
  padding:.4rem;margin:0;list-style:none;border-radius:14px;
  background:var(--navy,#0A3246);box-shadow:0 18px 44px rgba(6,34,47,.34);
  opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .18s, transform .18s, visibility .18s;z-index:120;
}
.nav-has-sub:hover .nav-sub,
.nav-has-sub:focus-within .nav-sub{opacity:1;visibility:visible;transform:translateY(0)}
.nav-sub a{font-size:.78rem;letter-spacing:.04em;text-transform:none;color:var(--ice);padding:.5rem .7rem;white-space:nowrap}
.nav-sub a:hover{color:var(--gold);background:rgba(234,245,251,.08)}
.header-cta{display:flex;align-items:center;gap:.9rem}
.phone-link{
  display:inline-flex;align-items:center;gap:.55rem;white-space:nowrap;flex-shrink:0;
  font-weight:700;font-size:.92rem;color:var(--ink);
  background:linear-gradient(135deg,var(--gold),var(--gold-deep));
  padding:.65rem 1.2rem;border-radius:999px;
  box-shadow:0 8px 22px -8px rgba(229,185,78,.55);
  transition:transform .25s, box-shadow .25s;
}
.phone-link:hover{transform:translateY(-2px);box-shadow:0 14px 30px -8px rgba(229,185,78,.7)}
.phone-link svg{width:.95rem;height:.95rem}
.nav-toggle{display:none;background:none;border:0;cursor:pointer;padding:.4rem;z-index:110}
.nav-toggle span{display:block;width:26px;height:2px;background:var(--ice);margin:6px 0;border-radius:2px;transition:transform .3s, opacity .3s}
.nav-open .nav-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-open .nav-toggle span:nth-child(2){opacity:0}
.nav-open .nav-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
/* backdrop-filter would make the header the containing block for the
   fixed fullscreen nav, clipping it — drop it while the menu is open */
body.nav-open{overflow:hidden}
body.nav-open .site-header,body.nav-open .site-header.scrolled{backdrop-filter:none;background:rgba(4,24,31,.97)}

/* ============================================================
   VALUE STATEMENT + LOGO MARQUEE
   ============================================================ */
.value-band{background:#fff;padding:clamp(3.5rem,7vw,5.5rem) 0 0;border-bottom:1px solid var(--line)}
.value-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:3rem;align-items:center;padding-bottom:clamp(3rem,6vw,4.5rem)}
.value-grid h2{font-size:clamp(1.6rem,2.9vw,2.4rem);font-weight:700;line-height:1.25;letter-spacing:-.01em}
.value-grid h2 .hl{color:var(--teal-dark)}
.value-grid h2 .gd{box-shadow:inset 0 -0.45em 0 rgba(250,215,120,.55)}
.endorse{border-left:2px solid var(--gold-deep);padding-left:1.6rem}
.endorse p{color:var(--muted);font-size:.95rem;margin-bottom:1rem}
.rating-row{display:flex;flex-wrap:wrap;gap:.7rem}
.rating-chip{display:inline-flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:12px;padding:.5rem .7rem;background:var(--paper);white-space:nowrap}
.rating-chip svg{width:20px;height:20px;flex:none}
.rating-chip b{font-size:.95rem}
.rating-chip small{display:block;font-size:.68rem;color:var(--muted);line-height:1.25}
.rating-chip .stars{color:#8A6A1F;font-size:.68rem;letter-spacing:.06em}
.rating-chip .bbb-mark{font-size:.85rem;padding:.12rem .4rem}
.bbb-chip{background:var(--navy);color:#fff;border-color:var(--navy)}
.bbb-chip small{color:var(--muted-ice)}

/* shared trust band (client logos) — used on home/buyout/consult/contact */
.bo-trust{background:#fff}
.bo-trust .trust-line,.trust-line{text-align:center;font-size:.78rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);padding:0 var(--gutter) 1.4rem}
.trust-note{text-align:center;font-size:.95rem;color:var(--muted);padding:1.1rem 0 1.6rem}
.trust-note b{color:var(--text)}

.marquee{position:relative;overflow:hidden;padding:1.6rem 0;background:var(--paper);border-top:1px solid var(--line)}
.marquee::before,.marquee::after{
  content:"";position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none;
}
.marquee::before{left:0;background:linear-gradient(90deg,var(--paper),transparent)}
.marquee::after{right:0;background:linear-gradient(-90deg,var(--paper),transparent)}
.marquee-track{display:flex;width:max-content;animation:scroll 36s linear infinite}
.marquee-set{display:flex;align-items:center;gap:4.5rem;padding-right:4.5rem;flex:none}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes scroll{to{transform:translateX(calc(-100%/3))}}
.marquee-track img{
  height:54px;width:auto;max-width:230px;object-fit:contain;flex:none;
  filter:grayscale(1);opacity:.62;mix-blend-mode:multiply;
  transition:filter .3s, opacity .3s;
}
.marquee-track img:hover{filter:grayscale(0);opacity:1}
.marquee-label{text-align:center;font-size:.72rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);padding:1.5rem 0 .25rem;background:var(--paper);border-top:1px solid var(--line)}

/* ============================================================
   ADVANTAGE
   ============================================================ */
.advantage{padding:clamp(4.5rem,9vw,7.5rem) 0;background:#fff}
.adv-grid{display:grid;grid-template-columns:minmax(300px,.85fr) 1.6fr;gap:clamp(2rem,4vw,4rem);align-items:start}
.adv-intro{
  position:sticky;top:7rem;
  background:
    radial-gradient(420px 260px at 85% -10%, rgba(50,176,166,.25), transparent 65%),
    linear-gradient(160deg,var(--ink), var(--navy) 70%, var(--navy-2));
  color:var(--ice);border-radius:24px;padding:clamp(1.8rem,3vw,2.6rem);
  overflow:hidden;
}
.adv-intro::after{
  content:"";position:absolute;right:-40px;bottom:-40px;width:220px;height:220px;border-radius:50%;
  border:1px solid rgba(250,215,120,.25);
  box-shadow:0 0 0 36px rgba(250,215,120,.05), 0 0 0 80px rgba(250,215,120,.03);
}
.adv-intro h2{color:#fff;font-size:clamp(1.7rem,2.6vw,2.3rem);margin:1.1rem 0 .9rem}
.adv-intro p{color:var(--muted-ice);font-size:.98rem;margin-bottom:1.8rem}
.adv-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}
.adv-card{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:1.7rem 1.6rem;transition:transform .3s ease, box-shadow .3s ease, border-color .3s;
  overflow:hidden;
}
.adv-card::before{
  content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(var(--gold),var(--gold-deep));
  transform:scaleY(0);transform-origin:top;transition:transform .35s ease;
}
.adv-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm);border-color:var(--line-gold)}
.adv-card:hover::before{transform:scaleY(1)}
.adv-icon{
  width:46px;height:46px;border-radius:12px;display:grid;place-items:center;margin-bottom:1.1rem;
  background:linear-gradient(140deg, rgba(50,176,166,.12), rgba(234,245,251,.6));
  color:var(--teal-dark);
}
.adv-icon svg{width:23px;height:23px}
.adv-card h3{font-size:1.13rem;font-weight:700;margin-bottom:.5rem}
.adv-card p{font-size:.92rem;color:var(--muted);line-height:1.6}
.adv-num{position:absolute;top:1.3rem;right:1.4rem;font-family:var(--font-display);font-weight:800;font-size:.85rem;color:rgba(10,50,70,.18)}

/* ============================================================
   WHO WE SERVE
   ============================================================ */
.serve{padding:clamp(4.5rem,9vw,7rem) 0;background:var(--paper);position:relative;overflow:hidden}
.serve::before{
  content:"";position:absolute;top:-120px;right:-120px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle, rgba(50,176,166,.1), transparent 70%);
}
.serve-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-bottom:2.4rem}
.serve-tile{
  display:flex;align-items:center;gap:1rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--r);padding:1.25rem 1.4rem;
  transition:transform .3s, box-shadow .3s, border-color .3s;
}
.serve-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-sm);border-color:var(--line-gold)}
.serve-tile .ico{width:42px;height:42px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:var(--gold)}
.serve-tile .ico svg{width:20px;height:20px}
.serve-tile h3{font-size:1.02rem;font-weight:700;line-height:1.3}
.serve-note{text-align:center;font-size:1.15rem;color:var(--muted)}
.serve-note b{color:var(--text)}

.cta-band{
  margin-top:clamp(2.5rem,5vw,4rem);
  background:
    radial-gradient(600px 300px at 15% 120%, rgba(50,176,166,.25), transparent 60%),
    radial-gradient(500px 260px at 90% -30%, rgba(250,215,120,.12), transparent 60%),
    linear-gradient(120deg, var(--ink), var(--navy));
  border-radius:26px;color:#fff;text-align:center;
  padding:clamp(2.6rem,5vw,4rem) var(--gutter);
  position:relative;overflow:hidden;
}
.cta-band h2{color:#fff;font-size:clamp(1.7rem,3.4vw,2.6rem);margin-bottom:1.6rem}
.cta-band .signal-deco{position:absolute;top:50%;width:240px;height:240px;border-radius:50%;border:1px solid rgba(234,245,251,.1);pointer-events:none}
.cta-band .signal-deco::before,.cta-band .signal-deco::after{content:"";position:absolute;inset:30px;border-radius:50%;border:1px solid rgba(234,245,251,.12)}
.cta-band .signal-deco::after{inset:62px;border-color:rgba(250,215,120,.2)}
.cta-band .signal-deco.left{left:-90px;transform:translateY(-50%)}
.cta-band .signal-deco.right{right:-90px;transform:translateY(-50%)}

/* ============================================================
   ADVOCATE (we're 100% on your side) — light show-stopper
   ============================================================ */
.advocate{
  position:relative;overflow:hidden;
  background:linear-gradient(180deg,#fff 0%, var(--ice) 78%, #E2F0F8 100%);
  padding:clamp(4.5rem,9vw,7.5rem) 0 clamp(5rem,10vw,8rem);
}
.advocate-watermark{
  position:absolute;top:clamp(.5rem,3vw,1.5rem);left:50%;transform:translateX(-50%);
  font-family:var(--font-display);font-weight:800;line-height:1;
  font-size:clamp(7rem,19vw,16rem);
  color:transparent;-webkit-text-stroke:1.5px rgba(10,50,70,.06);
  pointer-events:none;user-select:none;white-space:nowrap;z-index:0;
}
.advocate-bg{position:absolute;right:0;bottom:0;width:clamp(110px,15vw,220px);opacity:.65;pointer-events:none}
.advocate-bg svg{display:block;width:100%;height:auto}
.advocate .wrap{position:relative;z-index:1}
.advocate .eyebrow{justify-content:center}
.advocate-head{text-align:center;max-width:900px;margin:0 auto clamp(3rem,6vw,4.5rem)}
.advocate-head h2{font-size:clamp(2.1rem,4.8vw,3.7rem);margin-top:1.1rem}
.advocate-head .strike{position:relative;white-space:nowrap}
.advocate-head .strike::after{
  content:"";position:absolute;left:-3%;right:-3%;top:53%;height:.085em;border-radius:99px;
  background:#D95757;transform:scaleX(0);transform-origin:left center;
  transition:transform .55s cubic-bezier(.2,.65,.3,1) .55s;
}
.advocate-head h2.in .strike.s2::after{transition-delay:.95s}
.advocate-head h2.in .strike::after{transform:scaleX(1)}
.advocate-head .marker{
  font-style:normal;display:inline-block;padding:0 .12em;
  background-image:linear-gradient(to top, rgba(250,215,120,.6) 36%, transparent 36%);
  background-repeat:no-repeat;background-size:0% 100%;
  transition:background-size .7s cubic-bezier(.2,.65,.3,1) 1.5s;
}
.advocate-head h2.in .marker{background-size:100% 100%}
/* the stage: rejected stack vs the one promise */
.vs-stage{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(1.2rem,3vw,2.4rem);max-width:1080px;margin:0 auto;align-items:stretch}
.vs-col{position:relative}
.vs-label{font-family:var(--font-display);font-weight:800;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;margin-bottom:1.3rem;display:flex;align-items:center;gap:.6rem}
.vs-col.never .vs-label{color:#C84A4A}
.vs-col.always .vs-label{color:var(--gold)}
.vs-col.never{display:flex;flex-direction:column;gap:1.1rem}
.no-card{
  display:flex;align-items:center;gap:1rem;
  background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:1.15rem 1.4rem;box-shadow:0 14px 30px -14px rgba(10,50,70,.18);
  font-weight:600;font-size:1.02rem;line-height:1.4;
  transition:transform .3s ease, box-shadow .3s ease;
}
.no-card:nth-child(odd){transform:rotate(-1.1deg)}
.no-card:nth-child(even){transform:rotate(1deg)}
.no-card:hover{transform:rotate(0) translateY(-3px);box-shadow:0 20px 40px -16px rgba(10,50,70,.26)}
.no-card .mark{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(217,87,87,.12);color:#C84A4A}
.no-card .mark svg{width:14px;height:14px}
.vs-mid{display:flex;flex-direction:column;align-items:center;gap:.6rem}
.vs-mid::before,.vs-mid::after{content:"";flex:1;width:0;border-left:2px dashed rgba(10,50,70,.18)}
.vs-badge{
  flex:none;width:58px;height:58px;border-radius:50%;
  background:#fff;border:2px solid var(--line-gold);
  display:grid;place-items:center;
  font-family:var(--font-display);font-weight:800;font-size:.95rem;color:var(--gold-deep);
  box-shadow:0 12px 30px -10px rgba(229,185,78,.45);
}
.vs-col.always .promise{
  position:relative;height:100%;display:flex;flex-direction:column;
  background:
    radial-gradient(420px 260px at 90% -10%, rgba(50,176,166,.25), transparent 60%),
    linear-gradient(160deg,#082A3B, var(--navy) 55%, #0C3850);
  color:var(--ice);border-radius:22px;border:1px solid rgba(250,215,120,.3);
  padding:clamp(1.6rem,3vw,2.2rem);
  box-shadow:0 34px 70px -22px rgba(6,34,47,.5);
}
.yes-item{display:flex;gap:1rem;align-items:flex-start;padding:.9rem 0}
.yes-item + .yes-item{border-top:1px solid rgba(234,245,251,.1)}
.yes-item .mark{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:rgba(50,176,166,.2);color:#7FD1CB;margin-top:.1rem}
.yes-item .mark svg{width:15px;height:15px}
.yes-item p{font-size:1.06rem;font-weight:500;line-height:1.5}
.yes-item p b{color:var(--gold)}
.vs-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-top:auto;padding-top:1.4rem;border-top:1px solid rgba(234,245,251,.12);text-align:center}
.vs-stats b{display:block;font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,2.4vw,2rem);color:var(--gold);line-height:1.1}
.vs-stats small{font-size:.74rem;color:var(--muted-ice);line-height:1.3;display:block}
.advocate-cta{text-align:center;margin-top:clamp(2.6rem,5vw,3.6rem)}
.advocate-cta h4{color:var(--muted);font-family:var(--font-body);font-weight:500;font-size:1.05rem;margin-bottom:1.2rem}

/* ============================================================
   HOW IT WORKS — dark process showcase
   ============================================================ */
.how{padding:clamp(3.5rem,7vw,5.5rem) 0;background:#fff}
.how-shell{
  position:relative;overflow:hidden;border-radius:34px;color:var(--ice);
  padding:clamp(2.8rem,6vw,4.4rem) clamp(1.5rem,4.5vw,4rem) clamp(2.6rem,5vw,3.8rem);
  background:
    radial-gradient(800px 400px at 82% 0%, rgba(50,176,166,.16), transparent 60%),
    radial-gradient(620px 320px at 8% 100%, rgba(250,215,120,.08), transparent 60%),
    linear-gradient(160deg,#051E2A, var(--navy) 60%, #0C3850);
  box-shadow:0 44px 90px -30px rgba(5,30,42,.55);
}
/* faint window grids in the lower corners, like the staging card */
.how-shell::before,.how-shell::after{
  content:"";position:absolute;bottom:0;width:300px;height:250px;pointer-events:none;
  background:conic-gradient(at 42% 42%, rgba(234,245,251,.08) 25%, transparent 0);
  background-size:26px 26px;
  -webkit-mask-image:linear-gradient(to top,#000 15%,transparent 85%);
  mask-image:linear-gradient(to top,#000 15%,transparent 85%);
}
.how-shell::before{left:0}
.how-shell::after{right:0}
.how-head{position:relative;z-index:1;text-align:center;max-width:660px;margin:0 auto clamp(2.8rem,5vw,3.8rem)}
.how-head .eyebrow{justify-content:center;color:var(--gold)}
.how-head .eyebrow::before{background:var(--gold)}
.how-head h2{color:#fff;font-size:clamp(1.9rem,3.8vw,2.9rem);margin:1rem 0 .9rem}
.how-head p{color:var(--muted-ice)}
.how-steps{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.4rem,3vw,2.6rem)}
.how-line{position:absolute;top:31px;left:16.6%;right:16.6%;border-top:2px dashed rgba(234,245,251,.18)}
.how-step{position:relative;text-align:center;padding:0 .4rem}
.step-num{
  position:relative;z-index:1;width:62px;height:62px;margin:0 auto 1.1rem;border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--font-display);font-weight:800;font-size:1.5rem;color:var(--navy);
  background:linear-gradient(135deg,var(--gold) 5%, #9FD9C9 95%);
  box-shadow:0 0 0 8px rgba(234,245,251,.06), 0 16px 34px -10px rgba(0,0,0,.5);
  transition:transform .3s ease;
}
.how-step:hover .step-num{transform:translateY(-4px)}
.step-when{
  display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);background:rgba(250,215,120,.1);border:1px solid rgba(250,215,120,.3);
  border-radius:999px;padding:.3rem .85rem;margin-bottom:.95rem;
}
.how-step h3{color:#fff;font-size:1.22rem;font-weight:700;margin-bottom:.6rem}
.how-step p{font-size:.95rem;color:var(--muted-ice)}
.how-cta{position:relative;z-index:1;text-align:center;margin-top:clamp(2.4rem,5vw,3.2rem)}

/* ============================================================
   SERVICES
   ============================================================ */
.services{padding:clamp(4.5rem,9vw,7.5rem) 0;background:var(--paper)}
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.svc-card{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:1.8rem 1.6rem;min-height:300px;
  transition:transform .3s, box-shadow .3s, border-color .3s;
}
.svc-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--line-gold)}
.svc-icon{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:var(--navy);color:var(--gold);margin-bottom:1.3rem}
.svc-icon svg{width:24px;height:24px}
.svc-card h3{font-size:1.16rem;font-weight:700;margin-bottom:.6rem}
.svc-card p{font-size:.92rem;color:var(--muted);flex:1}
.svc-link{
  display:inline-flex;align-items:center;gap:.5rem;margin-top:1.4rem;
  font-weight:600;font-size:.92rem;color:var(--teal-dark);
}
.svc-link svg{width:.9rem;height:.9rem;transition:transform .25s}
.svc-card:hover .svc-link{color:var(--gold-deep)}
.svc-card:hover .svc-link svg{transform:translateX(4px)}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.results{padding:clamp(4.5rem,9vw,7.5rem) 0;background:#fff}
.quote-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.quote-card{
  display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r);padding:1.8rem 1.6rem;
  transition:transform .3s, box-shadow .3s, border-color .3s;
}
.quote-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm);border-color:var(--line-gold)}
.quote-card .stars{color:#8A6A1F;letter-spacing:.18em;font-size:.85rem;margin-bottom:1.1rem}
.quote-card blockquote{flex:1;font-family:var(--font-display);font-weight:700;font-size:1.18rem;line-height:1.35;color:var(--ink)}
.quote-card blockquote .amt{color:var(--teal-dark)}
.quote-who{display:flex;align-items:center;gap:.8rem;margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.avatar{
  width:42px;height:42px;flex:none;border-radius:50%;display:grid;place-items:center;
  font-family:var(--font-display);font-weight:800;font-size:.9rem;color:#fff;
}
.av1{background:linear-gradient(140deg,#0E5168,#32B0A6)}
.av2{background:linear-gradient(140deg,#8A6A1F,#E5B94E)}
.av3{background:linear-gradient(140deg,#0A3246,#5A7E92)}
.av4{background:linear-gradient(140deg,#1E8A82,#FAD778)}
.quote-who b{display:block;font-size:.95rem}
.quote-who small{font-size:.78rem;color:var(--muted)}
/* Google reviews carousel (reused on home + testimonial) */
.reviews-link{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink);font-weight:600;font-size:.9rem}
.reviews-link .g-mark{width:22px;height:22px;flex:none}
.reviews-link .rl-text b{display:block;color:var(--ink);font-size:.82rem}
.reviews-link:hover{color:var(--teal-dark)}
.rev-carousel{position:relative}
.rev-track{
  display:flex;gap:1.1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:.4rem .15rem 1rem;-webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.rev-track::-webkit-scrollbar{display:none}
.rev-track > .quote-card{scroll-snap-align:start;flex:0 0 clamp(270px,31%,360px)}
.quote-card{position:relative}
.quote-card .g-mark{position:absolute;top:1.3rem;right:1.4rem;width:22px;height:22px}
.rev-controls{display:flex;justify-content:center;gap:.8rem;margin-top:.2rem}
.rev-btn{
  width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;
  display:grid;place-items:center;color:var(--ink);transition:background .2s,border-color .2s,transform .2s;
}
.rev-btn svg{width:20px;height:20px}
.rev-btn:hover{background:var(--paper);border-color:var(--line-gold);transform:translateY(-2px)}

/* ============================================================
   BLOG
   ============================================================ */
.learn{padding:clamp(4.5rem,9vw,7.5rem) 0;background:var(--paper)}
.post-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem}
.post-card{
  display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);
  padding:1.7rem 1.5rem;transition:transform .3s, box-shadow .3s, border-color .3s;
}
.post-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-sm);border-color:var(--line-gold)}
.post-tag{
  align-self:flex-start;font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--teal-dark);background:rgba(50,176,166,.1);border-radius:999px;padding:.35rem .8rem;margin-bottom:1.1rem;
}
.post-card h3{font-size:1.06rem;font-weight:700;line-height:1.35;margin-bottom:.7rem}
.post-card h3 a{transition:color .2s}
.post-card:hover h3 a{color:var(--teal-dark)}
.post-card p{font-size:.88rem;color:var(--muted);flex:1}
.post-meta{display:flex;align-items:center;justify-content:space-between;margin-top:1.3rem;padding-top:1rem;border-top:1px solid var(--line);font-size:.78rem;color:var(--muted)}
.post-meta .read{display:inline-flex;align-items:center;gap:.4rem;font-weight:600;color:var(--gold-deep)}
.post-meta .read svg{width:.8rem;height:.8rem;transition:transform .25s}
.post-card:hover .read svg{transform:translateX(3px)}
.learn-cta{text-align:center;margin-top:2.6rem}

/* ============================================================
   FINAL CTA
   ============================================================ */
.final-cta{
  position:relative;overflow:hidden;color:#fff;text-align:center;
  background:
    radial-gradient(1000px 500px at 50% 130%, rgba(50,176,166,.22), transparent 65%),
    linear-gradient(170deg,#051E2A, var(--navy));
  padding:clamp(5rem,10vw,8rem) 0;
}
.final-cta::before{
  content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:760px;height:760px;border-radius:50%;border:1px solid rgba(234,245,251,.07);
  box-shadow:0 0 0 110px rgba(234,245,251,.025), 0 0 0 230px rgba(234,245,251,.018);
  pointer-events:none;
}
.final-cta h2{color:#fff;font-size:clamp(2rem,4.6vw,3.4rem);max-width:18ch;margin:0 auto 1.1rem}
.final-cta h2 em{font-style:normal;color:var(--gold)}
.final-cta p{color:var(--muted-ice);max-width:52ch;margin:0 auto 2.2rem;font-size:1.08rem}
.final-actions{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;position:relative;z-index:1}
.call-line{display:inline-flex;align-items:center;gap:.6rem;color:var(--ice);font-weight:600}
.call-line svg{width:1rem;height:1rem;color:var(--gold)}
.call-line a:hover{color:var(--gold)}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:#04181F;color:var(--muted-ice);padding:clamp(3.5rem,7vw,5rem) 0 0;position:relative;overflow:hidden}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(2rem,4vw,3.5rem);padding-bottom:3rem}
.footer-brand .logo{margin-bottom:1.2rem}
.footer-brand p{font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--ice);line-height:1.4;max-width:24ch;margin-bottom:1.6rem}
.footer-social{display:flex;gap:.7rem}
.footer-social a{
  width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  border:1px solid rgba(234,245,251,.15);color:var(--ice);transition:all .25s;
}
.footer-social a:hover{background:var(--gold);border-color:var(--gold);color:var(--ink);transform:translateY(-3px)}
.footer-social svg{width:16px;height:16px}
.footer-col h2{font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem;font-family:var(--font-body)}
.footer-col li{margin-bottom:.55rem}
.footer-col a{font-size:.9rem;color:var(--muted-ice);transition:color .2s, padding-left .2s}
.footer-col a:hover{color:var(--gold);padding-left:4px}
.footer-bottom{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;
  border-top:1px solid rgba(234,245,251,.08);padding:1.4rem 0 1.6rem;font-size:.82rem;
}
.footer-bottom ul{display:flex;gap:1.6rem}
.footer-bottom a:hover{color:var(--gold)}
.footer-watermark{
  position:absolute;left:50%;bottom:-.18em;transform:translateX(-50%);
  font-family:var(--font-display);font-weight:800;font-size:clamp(6rem,18vw,15rem);line-height:1;
  color:transparent;-webkit-text-stroke:1px rgba(234,245,251,.045);
  pointer-events:none;user-select:none;white-space:nowrap;
}



/* ==== shared overlays (widget/modal/reveal) ==== */
/* video popup */
.video-modal{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:clamp(1rem,4vw,3rem)}
.video-modal[hidden]{display:none}
.video-backdrop{position:absolute;inset:0;background:rgba(3,16,22,.9);backdrop-filter:blur(8px)}
.video-frame{position:relative;z-index:1;width:min(1040px,100%);animation:modalIn .35s cubic-bezier(.2,.65,.3,1)}
@keyframes modalIn{from{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}
.video-ratio{aspect-ratio:16/9;background:#000;border-radius:18px;overflow:hidden;box-shadow:0 40px 120px rgba(0,0,0,.6);border:1px solid rgba(234,245,251,.14)}
.video-ratio iframe{width:100%;height:100%;border:0;display:block}
.video-close{position:absolute;top:-46px;right:0;display:inline-flex;align-items:center;gap:.5rem;background:none;border:0;color:var(--ice);font-family:var(--font-body);font-weight:600;font-size:.9rem;cursor:pointer;opacity:.85}
.video-close:hover{opacity:1;color:var(--gold)}
.video-close svg{width:20px;height:20px}
body.video-open{overflow:hidden}
/* Lead-capture popup (formModal.njk) — opened by [data-open-form] CTAs */
.form-modal{position:fixed;inset:0;z-index:400;display:grid;place-items:center;padding:clamp(1rem,4vw,2.5rem)}
.form-modal[hidden]{display:none}
.form-modal-backdrop{position:absolute;inset:0;background:rgba(3,16,22,.78);backdrop-filter:blur(7px)}
.form-modal-dialog{position:relative;z-index:1;width:min(560px,100%);max-height:92vh;overflow-y:auto;background:#fff;color:var(--text);border-radius:24px;padding:clamp(1.9rem,3.6vw,2.6rem);box-shadow:0 40px 110px -30px rgba(0,0,0,.6);animation:modalIn .35s cubic-bezier(.2,.65,.3,1)}
.form-modal .fm-eyebrow{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-dark);margin-bottom:.5rem}
.form-modal h3{font-size:1.5rem;line-height:1.15;margin-bottom:.35rem}
.form-modal .fm-sub{font-size:.92rem;color:var(--muted);margin-bottom:1.5rem}
.form-modal-close{position:absolute;top:.9rem;right:.9rem;width:38px;height:38px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--paper);color:var(--muted);cursor:pointer;transition:background .2s,color .2s;z-index:2}
.form-modal-close:hover{background:var(--navy);color:var(--gold)}
.form-modal-close svg{width:18px;height:18px}
body.modal-open{overflow:hidden}

/* floating trust widget */
.trust-float{
  position:fixed;left:1.1rem;bottom:1.1rem;z-index:90;
  display:flex;align-items:center;gap:.65rem;
  background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:.5rem 1rem .5rem .7rem;box-shadow:0 14px 38px rgba(6,34,47,.22);
  transition:transform .25s ease, box-shadow .25s ease;
}
.trust-float:hover{transform:translateY(-3px);box-shadow:0 18px 44px rgba(6,34,47,.3)}
.trust-float svg{width:20px;height:20px;flex:none}
.trust-float .tf-text{line-height:1.2;font-size:.72rem;color:var(--muted);white-space:nowrap}
.trust-float .tf-text b{display:block;font-size:.8rem;color:var(--text)}
.trust-float .tf-bbb{font-family:var(--font-display);font-weight:800;font-size:.68rem;color:#fff;background:var(--navy);border-radius:6px;padding:.2rem .45rem;white-space:nowrap}

/* hero load stagger */
.hero [data-h]{opacity:0;transform:translateY(24px);animation:heroIn .9s cubic-bezier(.2,.65,.3,1) forwards}
[data-h="1"]{animation-delay:.1s}[data-h="2"]{animation-delay:.22s}[data-h="3"]{animation-delay:.34s}
[data-h="4"]{animation-delay:.46s}[data-h="5"]{animation-delay:.58s}[data-h="6"]{animation-delay:.5s}
@keyframes heroIn{to{opacity:1;transform:none}}


@media (max-width:620px){.trust-float{left:.7rem;bottom:.7rem;padding:.4rem .75rem .4rem .55rem}}

/* ============================================================
   SHARED MINI-HERO (bo-hero pattern) — used on contact/faq/reviews/
   testimonial/videos/privacy/sms + the buyout/consult/about/landing
   subpages. Page-specific deltas (text-wrap, padding, margins) stay in
   the per-page CSS as overrides loaded after this file.
   ============================================================ */
.bo-hero{
  position:relative;overflow:hidden;color:var(--ice);padding:9.5rem 0 0;
  background:
    radial-gradient(1100px 540px at 75% 12%, rgba(50,176,166,.16), transparent 60%),
    radial-gradient(800px 460px at 12% 88%, rgba(229,185,78,.08), transparent 60%),
    linear-gradient(178deg,#051E2A 0%, var(--navy) 55%, #0C3850 100%);
}
.bo-hero .wrap{position:relative;z-index:2;text-align:center;max-width:920px;padding-bottom:clamp(3.5rem,7vw,5.5rem)}
.bo-kicker{display:inline-flex;align-items:center;gap:.7rem;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:rgba(168,196,212,.75);margin-bottom:1.5rem}
.bo-kicker::before,.bo-kicker::after{content:"";width:2rem;height:1px;background:rgba(229,185,78,.5)}
.bo-hero h1{font-size:clamp(2.4rem,5vw,4rem);color:#fff;margin-bottom:1.2rem}
.bo-hero h1 em{font-style:normal;background:linear-gradient(110deg,var(--gold) 20%, #FFE9AE 50%, var(--gold-deep) 80%);-webkit-background-clip:text;background-clip:text;color:transparent}
.bo-sub{max-width:58ch;margin:0 auto;color:var(--muted-ice);font-size:1.08rem}
.bo-actions{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}
.bo-hero [data-h]{opacity:0;transform:translateY(24px);animation:heroIn .9s cubic-bezier(.2,.65,.3,1) forwards}

/* ============================================================
   SHARED LEAD FORM COMPONENT — bo-form section shell + the lead-form
   card (inputs, radio pills, submit, success). Used on about/buyout/
   consult/contact/home/landing. (page-landing.css keeps its .ld-form
   card variant separately.)
   ============================================================ */
.bo-form{
  position:relative;overflow:hidden;color:var(--ice);padding:clamp(4.5rem,9vw,7rem) 0;
  background:
    radial-gradient(800px 480px at 8% 10%, rgba(50,176,166,.13), transparent 60%),
    linear-gradient(160deg,#051E2A, var(--navy) 65%, var(--navy-2));
}
.bo-form-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(2.5rem,6vw,5rem);align-items:center}
.bo-form .lead-copy .eyebrow{color:var(--gold)}
.bo-form .lead-copy .eyebrow::before{background:var(--gold)}
.bo-form h2{color:#fff;font-size:clamp(1.9rem,3.8vw,2.9rem);margin:1rem 0 1.1rem}
.bo-form .lead-copy > p{color:var(--muted-ice);margin-bottom:1.6rem;max-width:48ch}
.bo-assure{display:grid;gap:.75rem;margin-bottom:1.8rem}
.bo-assure li{display:flex;gap:.7rem;align-items:flex-start;font-weight:500;font-size:.98rem;color:var(--ice)}
.bo-assure svg{flex:none;width:16px;height:16px;color:var(--teal);margin-top:.3rem}
.bo-call{display:inline-flex;align-items:center;gap:.55rem;color:var(--muted-ice);font-size:.95rem}
.bo-call svg{width:16px;height:16px;color:var(--gold)}
.bo-call a{color:#fff;font-weight:700}

.lead-form{
  background:#fff;border-radius:24px;color:var(--text);
  padding:clamp(1.8rem,3.5vw,2.8rem);box-shadow:0 40px 90px -30px rgba(0,0,0,.5);
  position:relative;
}
.lead-form::before{
  content:"";position:absolute;inset:auto 0 100% 0;height:5px;margin:0 2rem;
  background:linear-gradient(90deg,var(--teal),var(--gold));border-radius:5px 5px 0 0;
}
.lead-form h3{font-size:1.55rem;margin-bottom:.4rem}
.lead-form .form-sub{font-size:.92rem;color:var(--muted);margin-bottom:1.6rem}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.lead-form input,.lead-form textarea,.form-modal-dialog input,.form-modal-dialog textarea{
  width:100%;font-family:var(--font-body);font-size:.95rem;color:var(--text);
  background:var(--paper);border:1px solid var(--line);border-radius:12px;
  padding:.95rem 1.1rem;margin-bottom:.9rem;transition:border-color .2s, box-shadow .2s;
}
.lead-form input:focus,.lead-form textarea:focus,.form-modal-dialog input:focus,.form-modal-dialog textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(50,176,166,.15)}
.lead-form textarea,.form-modal-dialog textarea{min-height:96px;resize:vertical}
.radio-q{font-size:.9rem;font-weight:600;margin:.2rem 0 .6rem}
.radio-row{display:flex;gap:.45rem;margin-bottom:1.2rem}
.radio-pill{position:relative;cursor:pointer;flex:1 1 0;min-width:0}
.radio-pill input{position:absolute;opacity:0;inset:0;cursor:pointer}
.radio-pill span{
  display:block;text-align:center;padding:.55rem .5rem;border-radius:999px;border:1px solid var(--line);
  font-size:.82rem;font-weight:600;line-height:1.2;color:var(--muted);
  white-space:nowrap;transition:all .2s;
}
/* Phones: four equal pills get too cramped — fall back to a 2×2 grid. */
@media (max-width:520px){
  .radio-row{flex-wrap:wrap}
  .radio-pill{flex:1 1 calc(50% - .25rem)}
}
.radio-pill:hover span{border-color:var(--teal);color:var(--teal-dark)}
.radio-pill input:checked + span{background:var(--navy);border-color:var(--navy);color:var(--gold)}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;pointer-events:none}
/* Turnstile uses data-size="flexible" so the widget fills the form width and
   lines up flush with the inputs and the submit button. */
.cf-turnstile{margin-bottom:.9rem}
.submit-btn{
  width:100%;border:0;cursor:pointer;border-radius:999px;
  font-family:var(--font-display);font-weight:800;font-size:1rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink);background:linear-gradient(135deg,var(--gold),var(--gold-deep));
  padding:1.1rem;transition:transform .25s, box-shadow .25s;
  box-shadow:0 14px 30px -10px rgba(229,185,78,.55);
}
.submit-btn:hover{transform:translateY(-2px);box-shadow:0 20px 40px -10px rgba(229,185,78,.7)}
.form-success{display:none;text-align:center;padding:2rem 0}
.form-success .ico{width:64px;height:64px;margin:0 auto 1.2rem;border-radius:50%;background:rgba(50,176,166,.14);color:var(--teal-dark);display:grid;place-items:center}
.form-success .ico svg{width:30px;height:30px}
.form-success h3,.form-success h4{font-size:1.4rem;margin-bottom:.5rem}
.form-success p{color:var(--muted);font-size:.95rem}

/* ============================================================
   SHARED RESPONSIVE CHROME — header/nav mobile overlay + footer
   collapse. Previously duplicated in ~13 page CSS files; now the single
   source. Pages add their own section-specific @media rules on top.
   ============================================================ */
@media (max-width:1080px){
  .footer-grid{grid-template-columns:1fr 1fr}
  .bo-form-grid{grid-template-columns:1fr}
  /* Tablet & below: the full 6-item nav no longer fits beside the logo and
     the phone CTA, so collapse the nav into the hamburger overlay here (this
     used to trigger at 880px). The phone NUMBER pill stays visible — it's the
     primary call CTA — and there's ample room once the nav is hidden. */
  .header-inner{gap:1.25rem}
  .main-nav{
    position:fixed;inset:0;background:rgba(4,24,31,.97);backdrop-filter:blur(12px);
    display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .3s;
  }
  .main-nav ul{flex-direction:column;text-align:center;gap:.6rem}
  .main-nav a{font-size:1.3rem;text-transform:none;letter-spacing:0;font-family:var(--font-display);font-weight:700}
  /* dropdowns flatten into a static indented list inside the overlay */
  .nav-has-sub > a::after{display:none}
  .nav-sub{position:static;opacity:1;visibility:visible;transform:none;background:none;box-shadow:none;padding:.1rem 0 .3rem;min-width:0;align-items:center}
  .nav-sub a{font-size:.95rem;font-family:var(--font-body);font-weight:500;color:var(--muted,#9fc2d2);padding:.25rem .5rem}
  .nav-open .main-nav{opacity:1;pointer-events:auto;overflow-y:auto}
  .nav-toggle{display:block}
}
@media (max-width:620px){
  .footer-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;text-align:center}
  .form-row{grid-template-columns:1fr}
}
/* Small phones: logo + hamburger + full number pill stop fitting on one row,
   so collapse the phone CTA to a clean round icon button (landing pages do the
   same via page-landing.css). */
@media (max-width:480px){
  body:not(.landing) .header-cta .phone-link{
    width:44px;height:44px;padding:0;justify-content:center;border-radius:50%;
  }
  body:not(.landing) .header-cta .phone-link span{display:none}
  body:not(.landing) .header-cta .phone-link svg{width:1.15rem;height:1.15rem}
}
/* CMS image alignment (blog post bodies) */
.post-prose img{max-width:100%;height:auto;border-radius:8px}
.post-prose img.aligncenter{display:block;margin:1.4rem auto}
.post-prose img.alignleft{float:left;margin:.4rem 1.6rem 1rem 0;max-width:48%}
.post-prose img.alignright{float:right;margin:.4rem 0 1rem 1.6rem;max-width:48%}
.post-prose img.alignwide{display:block;width:100%;margin:1.6rem 0}
.post-prose figure{margin:1.6rem 0}
.post-prose figcaption{font-size:.88rem;color:var(--muted);text-align:center;margin-top:.5rem}
