
:root{
  --navy:#0c1b34;
  --navy-2:#132747;
  --green:#1a7a45;
  --gold:#c9a84c;
  --gold-soft:#e2cd92;
  --ink:#16202f;
  --body:#55637a;
  --line:#e3e7ee;
  --paper:#ffffff;
  --paper-2:#f6f8fb;
  --paper-3:#eef2f7;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --wrap:1200px;
  --heroimg-m:url("hero-mobile-v13.webp");
  --heroimg:url("hero-desktop-v13.webp");
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--body);background:var(--paper);line-height:1.7;font-size:16.5px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px}

/* ---------- shared type ---------- */
h1,h2,h3,h4{font-family:var(--serif);color:var(--navy);font-weight:600;line-height:1.15;letter-spacing:.01em}
.eyebrow{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.sec-head{text-align:center;max-width:720px;margin:0 auto 58px}
.sec-head h2{font-size:clamp(32px,4.2vw,46px);margin-bottom:18px}
.sec-head p{font-size:17px;color:var(--body)}
.rule{width:52px;height:2px;background:var(--gold);margin:22px auto 0;border-radius:2px}
.rule.left{margin-left:0}
section{padding:96px 0}
.tint{background:var(--paper-2)}
.texture{position:relative}
.texture::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle at 18% 22%,rgba(12,27,52,.045),transparent 42%),
                   radial-gradient(circle at 82% 12%,rgba(201,168,76,.07),transparent 40%),
                   radial-gradient(circle at 68% 88%,rgba(26,122,69,.045),transparent 45%);}
.texture>*{position:relative;z-index:1}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans);
  font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:16px 32px;
  border-radius:2px;transition:.25s ease;border:1.5px solid transparent;cursor:pointer;text-align:center}
.btn-gold{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.btn-gold:hover{background:#b8973f;border-color:#b8973f;transform:translateY(-2px);box-shadow:0 10px 24px rgba(201,168,76,.3)}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-navy:hover{background:var(--navy-2);transform:translateY(-2px);box-shadow:0 10px 24px rgba(12,27,52,.25)}
.btn-out{background:transparent;color:var(--navy);border-color:rgba(12,27,52,.28)}
.btn-out:hover{border-color:var(--navy);background:var(--navy);color:#fff}
.btn-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn-light:hover{background:#fff;color:var(--navy);border-color:#fff}

/* ---------- utility bar ---------- */
.util{background:var(--navy);color:rgba(255,255,255,.82);font-size:12.5px;letter-spacing:.04em}
.util .wrap{display:flex;justify-content:space-between;align-items:center;gap:20px;height:44px}
.util a:hover{color:var(--gold)}
.util-l{display:flex;gap:26px;align-items:center}
.util-r{display:flex;gap:8px;align-items:center;color:var(--gold-soft)}
.stars{letter-spacing:1px;color:var(--gold)}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:82px;gap:18px}
.logo{display:flex;flex-direction:column;align-items:flex-start;line-height:1}
.logo b{font-family:var(--serif);font-size:26px;font-weight:700;color:var(--navy);letter-spacing:.01em}
.logo b i{font-style:normal;color:var(--gold)}
.logo span{font-size:7.4px;letter-spacing:.163em;text-transform:uppercase;color:var(--body);margin-top:7px;font-weight:600;white-space:nowrap}
/* real logo asset — black line art on white, blended onto light nav */
.logo-img{height:44px;width:auto;flex:none;align-self:flex-start}
.f-logo-img{height:40px;width:auto;margin-bottom:6px}
.menu{display:flex;gap:22px;align-items:center}
.menu a{font-size:11.6px;font-weight:600;letter-spacing:.1em;white-space:nowrap;text-transform:uppercase;color:var(--navy);position:relative;padding:6px 0}
.menu a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;background:var(--gold);transition:.28s}
.menu a:hover::after{width:100%}
.nav-cta{display:flex;gap:12px;align-items:center}
.burger{display:none;background:none;border:0;font-size:24px;color:var(--navy);cursor:pointer;padding:6px}
.mobile{display:none;border-top:1px solid var(--line);background:#fff}
.mobile.open{display:block}
.mobile a{display:block;padding:15px 28px;border-bottom:1px solid var(--line);font-size:13px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--navy)}

/* ---------- hero ---------- */
.hero{position:relative;background:linear-gradient(170deg,#fff 0%,var(--paper-2) 55%,var(--paper-3) 100%);padding:108px 0 92px;overflow:hidden}

/* ===== VARIANT A — photographic hero ===== */
.hero-photo{display:none;position:absolute;inset:0;z-index:0;background-image:var(--heroimg);
  background-size:cover;background-position:50% 42%}
.hero-photo::after{content:"";position:absolute;inset:0;
  background:linear-gradient(92deg,rgba(8,18,36,.9) 0%,rgba(8,18,36,.8) 22%,rgba(8,18,36,.55) 40%,rgba(8,18,36,.3) 56%,rgba(8,18,36,.2) 74%,rgba(8,18,36,.36) 100%),
             linear-gradient(180deg,rgba(8,18,36,.4) 0%,rgba(8,18,36,.04) 30%,rgba(8,18,36,.06) 62%,rgba(8,18,36,.38) 100%)}
body.v-photo .hero{background:var(--navy);padding:120px 0 104px}
body.v-photo .hero::before{display:none}
body.v-photo .hero-photo{display:block}
body.v-photo .hero-grid{position:relative;z-index:2}
body.v-photo .hero h1{color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.3)}
body.v-photo .hero .lede{color:rgba(255,255,255,.9)}
body.v-photo .hero .sub{color:rgba(255,255,255,.72)}
body.v-photo .hero-trust{color:rgba(255,255,255,.8)}
body.v-photo .chip{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.26);color:#fff;
  backdrop-filter:blur(8px);box-shadow:none}
body.v-photo .hero .btn-out{color:#fff;border-color:rgba(255,255,255,.45)}
body.v-photo .hero .btn-out:hover{background:#fff;color:var(--navy);border-color:#fff}
body.v-photo .hero .btn-navy{background:#fff;color:var(--navy);border-color:#fff}
body.v-photo .hero .btn-navy:hover{background:var(--gold);border-color:var(--gold)}
body.v-photo .hero-card{box-shadow:0 34px 80px rgba(0,0,0,.5)}

.hero-grid>div{max-width:650px}
.hero h1{font-size:clamp(40px,5.4vw,66px);line-height:1.08;margin-bottom:26px;letter-spacing:-.005em}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero .lede{font-size:18.5px;max-width:540px;margin-bottom:20px}
.hero .sub{font-size:15.5px;color:var(--body);max-width:520px;margin-bottom:36px}
.hero-btns{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}
.hero-trust{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:12.5px;color:var(--body)}
.chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);
  border-radius:100px;padding:9px 17px;font-weight:500;box-shadow:0 2px 10px rgba(12,27,52,.05)}
.chip svg{flex-shrink:0}

/* hero card */
.hero-card{background:#fff;border:1px solid var(--line);border-radius:4px;padding:40px 38px;
  box-shadow:0 26px 60px rgba(12,27,52,.11);position:relative}
.hero-card::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--gold),var(--green));border-radius:4px 4px 0 0}
.hero-card .kicker{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--green);font-weight:700;margin-bottom:12px}
.hero-card h3{font-size:27px;margin-bottom:12px;line-height:1.25}
.hero-card p{font-size:14.5px;margin-bottom:24px}
.hero-card ul{list-style:none;margin-bottom:28px}
.hero-card li{display:flex;gap:11px;font-size:14.5px;padding:9px 0;border-bottom:1px dashed var(--line);color:var(--ink)}
.hero-card li:last-child{border:0}
.hero-card li b{color:var(--gold);font-weight:700;flex-shrink:0}
.hero-card .fine{font-size:11.5px;color:#8a95a6;margin-top:16px;line-height:1.55}

/* ---------- stat band ---------- */
.stats{background:var(--navy);color:#fff;padding:64px 0}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:34px;text-align:center}
.stat .ico{width:52px;height:52px;border-radius:50%;background:rgba(201,168,76,.16);border:1px solid rgba(201,168,76,.35);
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.stat b{display:block;font-family:var(--serif);font-size:40px;color:var(--gold);font-weight:600;line-height:1;margin-bottom:8px}
.stat span{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.68);font-weight:500}

/* ---------- two paths ---------- */
.paths{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:960px;margin:0 auto}
.path{background:#fff;border:1px solid var(--line);border-radius:4px;padding:42px 38px;position:relative;transition:.3s}
.path:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(12,27,52,.1)}
.path.feature{border-color:var(--gold);box-shadow:0 14px 40px rgba(201,168,76,.16)}
.path .tag{position:absolute;top:-12px;left:38px;background:var(--gold);color:var(--navy);
  font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:6px 15px;border-radius:2px}
.path h3{font-size:27px;margin-bottom:6px}
.path .when{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:18px}
.path p{font-size:15px;margin-bottom:22px}
.path ul{list-style:none}
.path li{font-size:14.5px;padding:8px 0 8px 26px;position:relative;color:var(--ink)}
.path li::before{content:"";position:absolute;left:0;top:16px;width:7px;height:7px;border-radius:50%;background:var(--green)}
.paths-note{text-align:center;max-width:720px;margin:44px auto 0;font-size:17px;
  font-family:var(--serif);font-style:italic;color:var(--navy);font-size:21px;line-height:1.6}

/* ---------- services ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.svc{background:#fff;border:1px solid var(--line);border-radius:4px;padding:36px 32px;transition:.3s;position:relative;overflow:hidden}
.svc::after{content:"";position:absolute;left:0;bottom:0;width:0;height:3px;background:var(--gold);transition:.35s}
.svc:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(12,27,52,.1);border-color:#d4dbe6}
.svc:hover::after{width:100%}
.svc .ico{width:50px;height:50px;border-radius:50%;background:var(--paper-3);display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.svc h3{font-size:22px;margin-bottom:11px}
.svc p{font-size:14.5px}

/* ---------- about ---------- */
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.portrait{position:relative}
.portrait-img{aspect-ratio:4/5;border-radius:4px;position:relative;overflow:hidden;
  background:linear-gradient(160deg,#eef2f7 0%,#dde4ee 55%,#cfd8e5 100%);border:1px solid var(--line);
  display:flex;align-items:flex-end;justify-content:center}
.portrait-img::after{content:"";position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);
  width:82%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.85),transparent 68%)}
.portrait-img img{position:relative;z-index:2;height:97%;width:auto;object-fit:contain;object-position:bottom;
  filter:grayscale(1) contrast(1.06);transition:filter .5s ease}
.portrait:hover .portrait-img img{filter:grayscale(0) contrast(1.02)}
.p-fallback{display:none;position:absolute;inset:0;z-index:3;flex-direction:column;align-items:center;
  justify-content:center;gap:12px;color:#7d8a9c;font-size:13px;text-align:center;padding:26px}
.portrait-badge{position:absolute;z-index:5;bottom:-26px;right:-26px;background:var(--navy);color:#fff;
  padding:20px 26px;border-radius:3px;box-shadow:0 16px 36px rgba(12,27,52,.28);max-width:210px}
.portrait-badge b{font-family:var(--serif);font-size:19px;color:var(--gold);display:block;line-height:1.25}
.portrait-badge span{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.about-grid h2{font-size:clamp(30px,3.8vw,42px);margin-bottom:20px}
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:32px}
.pillar h4{font-size:18px;margin-bottom:7px;display:flex;align-items:center;gap:9px}
.pillar h4::before{content:"";width:16px;height:2px;background:var(--gold);flex-shrink:0}
.pillar p{font-size:14px}

/* ---------- scorecard band ---------- */
.band{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.band::before{content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 15% 30%,rgba(201,168,76,.14),transparent 45%),
             radial-gradient(circle at 85% 75%,rgba(26,122,69,.16),transparent 45%)}
.band .wrap{position:relative;z-index:1}
.band-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:60px;align-items:center}
.band h2{color:#fff;font-size:clamp(30px,3.9vw,44px);margin-bottom:18px}
.band h2 em{font-style:italic;color:var(--gold)}
.band p{color:rgba(255,255,255,.78);font-size:16.5px;margin-bottom:14px}
.band .fine{font-size:12.5px;color:rgba(255,255,255,.5)}
.score-box{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.16);border-radius:4px;padding:34px}
.score-box .q{display:flex;gap:13px;align-items:flex-start;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.1);font-size:14.5px;color:rgba(255,255,255,.88)}
.score-box .q:last-of-type{border:0}
.score-box .q b{color:var(--gold);font-family:var(--serif);font-size:17px;flex-shrink:0;line-height:1.4}
.score-box .more{font-size:12.5px;color:rgba(255,255,255,.5);margin-top:14px;font-style:italic}

/* ---------- process ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;counter-reset:s}
.step{text-align:center;position:relative}
.step .n{width:60px;height:60px;border-radius:50%;background:#fff;border:1.5px solid var(--gold);
  display:flex;align-items:center;justify-content:center;margin:0 auto 20px;
  font-family:var(--serif);font-size:24px;color:var(--gold);font-weight:600}
.step h3{font-size:21px;margin-bottom:10px}
.step p{font-size:14.5px}

/* ---------- reviews carousel ---------- */
.rc{position:relative;max-width:1000px;margin:0 auto}
.rc-view{overflow:hidden;border-radius:4px;transition:height .55s cubic-bezier(.45,.05,.2,1)}
.rc-track{display:flex;align-items:flex-start;transition:transform .62s cubic-bezier(.45,.05,.2,1)}
.rc-slide{flex:0 0 100%;min-width:100%}
.rc-card{position:relative;min-height:330px;background:var(--navy);color:#fff;overflow:hidden;
  padding:56px 62px 48px;display:flex;flex-direction:column}
.rc-card::before{content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 10% 18%,rgba(201,168,76,.15),transparent 48%),
             radial-gradient(circle at 90% 84%,rgba(26,122,69,.17),transparent 48%)}
.rc-card>*{position:relative;z-index:1}
.rc-mark{position:absolute;top:-30px;right:44px;font-family:var(--serif);font-size:190px;
  color:rgba(201,168,76,.15);line-height:1;z-index:1;pointer-events:none}
.rc-card .st{color:var(--gold);font-size:16px;letter-spacing:3.5px;margin-bottom:22px}
.rc-card p{font-family:var(--serif);font-size:20.5px;line-height:1.62;color:rgba(255,255,255,.9);margin-bottom:15px}
.rc-card p b{color:#fff;font-weight:600}
.rc-card .who{margin-top:auto;padding-top:24px;font-family:var(--sans);font-size:13.5px;
  font-weight:600;color:#fff;letter-spacing:.05em}
.rc-card .who span{display:block;font-weight:400;color:var(--gold-soft);font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;margin-top:5px}

.rc-nav{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:30px}
.rc-arrow{width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(12,27,52,.2);
  background:#fff;color:var(--navy);cursor:pointer;display:flex;align-items:center;
  justify-content:center;transition:.25s;flex:none}
.rc-arrow:hover{background:var(--navy);border-color:var(--navy);color:#fff;transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(12,27,52,.22)}
.rc-dots{display:flex;gap:9px;align-items:center}
.rc-dot{width:8px;height:8px;border-radius:50%;background:rgba(12,27,52,.2);border:0;padding:0;
  cursor:pointer;transition:.25s}
.rc-dot.on{background:var(--gold);width:26px;border-radius:100px}
.rc-cta{text-align:center;margin-top:34px}
.rev-note{text-align:center;font-size:12px;color:#8a95a6;margin-top:20px;max-width:720px;
  margin-left:auto;margin-right:auto;line-height:1.6}
@media(max-width:680px){
  .rc-card{padding:38px 26px 32px}
  .rc-card p{font-size:17.5px}
  .rc-mark{font-size:120px;right:16px;top:-18px}
  .rc-nav{gap:14px}
}

/* ---------- insights ---------- */
.ins-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ins{background:#fff;border:1px solid var(--line);border-radius:4px;padding:30px 28px;transition:.3s;border-left:3px solid var(--gold)}
.ins:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(12,27,52,.09)}
.ins .cat{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--green);font-weight:700;margin-bottom:11px}
.ins h3{font-size:20px;margin-bottom:9px;line-height:1.3}
.ins p{font-size:14px}

/* ---------- advance ---------- */
.adv{background:linear-gradient(135deg,var(--green),#12histoire);background:linear-gradient(135deg,#1a7a45,#125c34);color:#fff;border-radius:4px;padding:52px 48px;
  display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:center}
.adv h2{color:#fff;font-size:clamp(27px,3.4vw,38px);margin-bottom:14px}
.adv p{color:rgba(255,255,255,.85);font-size:16px;margin-bottom:10px}
.adv .fine{font-size:11.5px;color:rgba(255,255,255,.62);line-height:1.55}
.adv-right{text-align:center}

/* ---------- newsletter ---------- */
.nl{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:4px;padding:54px 56px;
  box-shadow:0 18px 46px rgba(12,27,52,.07);position:relative;overflow:hidden}
.nl::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--gold),var(--green))}
.nl-left h2{font-size:clamp(27px,3.2vw,36px);margin-bottom:16px;line-height:1.18}
.nl-left p{font-size:16px;margin-bottom:24px}
.nl-topics{list-style:none}
.nl-topics li{position:relative;padding:8px 0 8px 28px;font-size:14.5px;color:var(--ink)}
.nl-topics li::before{content:"";position:absolute;left:0;top:15px;width:12px;height:2px;background:var(--gold)}
.nl-form{background:var(--paper-2);border:1px solid var(--line);border-radius:4px;padding:34px 32px;box-shadow:none}
.nl-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(26,122,69,.08);
  border:1px solid rgba(26,122,69,.2);color:var(--green);border-radius:100px;padding:7px 15px;
  font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:18px}
.nl-form h3{font-size:24px;margin-bottom:20px}
.nl-fine{font-size:11.5px;color:#8a95a6;line-height:1.6;margin-top:16px}
.nl-ok{display:none;background:rgba(26,122,69,.09);border:1px solid rgba(26,122,69,.3);color:var(--green);
  padding:13px;border-radius:3px;font-size:13.5px;margin-top:14px;text-align:center;font-weight:500}
.nl-ok.show{display:block}
@media(max-width:980px){.nl{grid-template-columns:1fr;gap:38px;padding:40px 32px}}
@media(max-width:680px){.nl{padding:32px 22px}.nl-form{padding:26px 22px}}

/* ---------- contact ---------- */
.ct-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px}
.ct-info h2{font-size:clamp(30px,3.8vw,42px);margin-bottom:18px}
.ct-list{margin-top:32px}
.ct-item{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}
.ct-item .ico{width:42px;height:42px;border-radius:50%;background:var(--paper-3);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ct-item h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--body);font-family:var(--sans);font-weight:600;margin-bottom:4px}
.ct-item p{font-size:15.5px;color:var(--navy);font-weight:500}
.ct-item p small{display:block;font-size:13px;color:var(--body);font-weight:400;margin-top:3px}
form{background:#fff;border:1px solid var(--line);border-radius:4px;padding:40px 38px;box-shadow:0 14px 40px rgba(12,27,52,.07)}
form h3{font-size:24px;margin-bottom:6px}
form .fs{font-size:14px;margin-bottom:26px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fld{margin-bottom:16px}
.fld label{display:block;font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--body);font-weight:600;margin-bottom:7px}
.fld input,.fld select,.fld textarea{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:2px;
  font-family:var(--sans);font-size:15px;color:var(--ink);background:#fff;transition:.2s}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.14)}
.fld textarea{resize:vertical;min-height:100px}
.consent{display:flex;gap:11px;align-items:flex-start;margin:22px 0;padding:16px;background:var(--paper-2);border-radius:3px;border:1px solid var(--line)}
.consent input{margin-top:3px;flex-shrink:0;width:16px;height:16px;accent-color:var(--gold)}
.consent label{font-size:12px;color:var(--body);line-height:1.6}
form button{width:100%}
.form-ok{display:none;background:rgba(26,122,69,.09);border:1px solid rgba(26,122,69,.3);color:var(--green);
  padding:14px;border-radius:3px;font-size:14px;margin-top:16px;text-align:center;font-weight:500}
.form-ok.show{display:block}

/* ---------- footer ---------- */
footer{background:var(--navy);color:rgba(255,255,255,.62);padding:72px 0 0;font-size:14px}
.f-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:44px;padding-bottom:48px}
.f-logo b{font-family:var(--serif);font-size:26px;color:#fff;font-weight:700;display:block}
.f-logo b i{font-style:normal;color:var(--gold)}
.f-logo span{font-size:7.6px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.5);display:block;margin-top:6px}
.f-grid p{font-size:14px;margin-top:18px;line-height:1.7}
footer h4{color:#fff;font-family:var(--sans);font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:20px;font-weight:600}
footer li{list-style:none;margin-bottom:11px}
footer a:hover{color:var(--gold)}
.f-hours span{display:block;margin-bottom:8px;font-size:13.5px}
.f-hours b{color:#fff;font-weight:500}
.f-bot{border-top:1px solid rgba(255,255,255,.11);padding:26px 0;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:12.5px}
.disclaimer{background:rgba(0,0,0,.22);padding:22px 0;font-size:11.5px;color:rgba(255,255,255,.42);line-height:1.65}

/* ---------- concept ribbon ---------- */
.ribbon{background:#16202f;color:#e2cd92;text-align:center;padding:11px 20px;font-size:12px;letter-spacing:.06em}
.ribbon b{color:#fff}

@media(max-width:1120px){
  .menu{display:none}
  .burger{display:block}
  .nav-cta .btn{display:none}
}
@media(max-width:980px){
  .hero-grid,.about-grid,.band-grid,.ct-grid,.adv{grid-template-columns:1fr;gap:44px}
  .stat-grid{grid-template-columns:repeat(2,1fr);gap:38px}
  .svc-grid,.rev-grid,.ins-grid,.steps{grid-template-columns:1fr}
  .paths{grid-template-columns:1fr}
  .pillars{grid-template-columns:1fr}
  .menu{display:none}
  .burger{display:block}
  .nav-cta .btn{display:none}
  .portrait-badge{right:12px;bottom:-18px}
  section{padding:72px 0}
  .util-l{gap:16px}
  .util .wrap{font-size:11.5px}
}
@media(max-width:680px){
  .util-r{display:none}
  .row{grid-template-columns:1fr}
  .hero{padding:64px 0 56px}
  /* ART DIRECTION — phones get a dedicated portrait crop in its own band,
     stacked BELOW the copy. Text sits on solid navy (fully legible) and the
     photo is shown at full strength instead of being buried under a scrim. */
  body.v-photo .hero{display:flex;flex-direction:column;padding:64px 0 0;background:var(--navy)}
  body.v-photo .hero-grid{order:1;padding-bottom:8px}
  body.v-photo .hero-photo{order:2;position:relative;inset:auto;width:100%;
    aspect-ratio:4/5;background-image:var(--heroimg-m);background-position:50% 26%;
    background-size:cover;margin-top:36px}
  body.v-photo .hero-photo::after{
    background:linear-gradient(180deg,rgba(8,18,36,.55) 0%,rgba(8,18,36,.06) 26%,
                                      rgba(8,18,36,.04) 62%,rgba(8,18,36,.28) 100%)}
  body.v-photo .hero .hero-trust{margin-bottom:4px}
  .hero-card{padding:30px 26px}
  form{padding:30px 24px}
  .adv{padding:38px 28px}
  .f-grid{grid-template-columns:1fr;gap:34px}
}

/* ---------- interior page header ---------- */
.phead{background:var(--navy);color:#fff;padding:74px 0 66px;position:relative;overflow:hidden}
.phead::before{content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 12% 20%,rgba(201,168,76,.15),transparent 46%),
             radial-gradient(circle at 88% 84%,rgba(26,122,69,.16),transparent 46%)}
.phead .wrap{position:relative;z-index:1;max-width:900px}
.phead h1{color:#fff;font-size:clamp(34px,4.6vw,52px);line-height:1.12;margin-bottom:18px}
.phead h1 em{font-style:italic;color:var(--gold)}
.phead-lede{color:rgba(255,255,255,.8);font-size:18px;max-width:660px}
.crumb{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);
  margin-bottom:22px;display:flex;gap:10px;align-items:center}
.crumb a{color:rgba(255,255,255,.72)}
.crumb a:hover{color:var(--gold)}
.crumb span{color:rgba(255,255,255,.3)}
.menu a.on{color:var(--gold)}
.menu a.on::after{width:100%}

/* ---------- service detail rows ---------- */
.srow{display:grid;grid-template-columns:.9fr 1.1fr;gap:52px;align-items:start;
  padding:52px 0;border-bottom:1px solid var(--line)}
.srow:last-child{border-bottom:0}
.srow.feature{background:#fff;border:1px solid var(--gold);border-radius:4px;
  padding:48px 46px;box-shadow:0 16px 44px rgba(201,168,76,.14);margin-bottom:14px;position:relative}
.srow.feature .tag{position:absolute;top:-12px;left:46px;background:var(--gold);color:var(--navy);
  font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:6px 15px;border-radius:2px}
.srow-l h3{font-size:29px;margin-bottom:10px;line-height:1.2}
.srow-l .who{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:16px}
.srow-l p{font-size:15.5px}
.srow-r h4{font-family:var(--sans);font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--body);font-weight:600;margin-bottom:16px}
.srow-r ul{list-style:none;columns:2;column-gap:32px}
.srow-r li{font-size:14.5px;padding:7px 0 7px 24px;position:relative;color:var(--ink);break-inside:avoid}
.srow-r li::before{content:"";position:absolute;left:0;top:15px;width:8px;height:8px;border-radius:50%;
  border:1.5px solid var(--green)}

/* ---------- who we serve ---------- */
.seg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.seg{background:#fff;border:1px solid var(--line);border-radius:4px;padding:30px 26px;transition:.3s}
.seg:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(12,27,52,.09)}
.seg .ico{width:44px;height:44px;border-radius:50%;background:var(--paper-3);display:flex;
  align-items:center;justify-content:center;margin-bottom:16px}
.seg h3{font-size:19px;margin-bottom:8px}
.seg p{font-size:14px}

/* ---------- faq ---------- */
.faq{max-width:840px;margin:0 auto}
.faq details{background:#fff;border:1px solid var(--line);border-radius:4px;margin-bottom:12px;overflow:hidden}
.faq summary{cursor:pointer;padding:22px 26px;font-family:var(--serif);font-size:20px;color:var(--navy);
  font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:18px;align-items:center;transition:.2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-size:22px;color:var(--gold);flex:none;font-weight:300}
.faq details[open] summary::after{content:"–"}
.faq summary:hover{background:var(--paper-2)}
.faq .ans{padding:0 26px 24px;font-size:15px;color:var(--body)}
.faq .ans p+p{margin-top:12px}

/* ---------- credentials ---------- */
.cred-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.cred{text-align:center;background:#fff;border:1px solid var(--line);border-radius:4px;padding:32px 22px}
.cred .ico{width:52px;height:52px;border-radius:50%;background:rgba(201,168,76,.12);
  border:1px solid rgba(201,168,76,.3);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.cred b{display:block;font-family:var(--serif);font-size:21px;color:var(--navy);margin-bottom:7px;line-height:1.25}
.cred p{font-size:13.5px}

/* ---------- story ---------- */
.story{display:grid;grid-template-columns:.82fr 1.18fr;gap:60px;align-items:start}
.story-body p{font-size:16.5px;margin-bottom:18px}
.story-body p.first::first-letter{font-family:var(--serif);font-size:60px;float:left;line-height:.82;
  padding:6px 12px 0 0;color:var(--gold);font-weight:600}
.pullquote{border-left:3px solid var(--gold);padding:6px 0 6px 24px;margin:30px 0;
  font-family:var(--serif);font-style:italic;font-size:23px;line-height:1.5;color:var(--navy)}

@media(max-width:980px){
  .srow,.story{grid-template-columns:1fr;gap:26px}
  .srow.feature{padding:36px 28px}
  .seg-grid,.cred-grid{grid-template-columns:repeat(2,1fr)}
  .srow-r ul{columns:1}
  .phead{padding:54px 0 48px}
}
@media(max-width:680px){
  .seg-grid,.cred-grid{grid-template-columns:1fr}
  .faq summary{font-size:17.5px;padding:18px 20px}
  .faq .ans{padding:0 20px 20px}
  .pullquote{font-size:20px}
}

/* ---------- map ---------- */
.mapwrap{position:relative;background:var(--paper-3);overflow:hidden}
.mapwrap iframe{display:block;width:100%;height:100%;border:0;filter:saturate(.85) contrast(1.04)}
.mapband{height:440px;position:relative}
.mapcard{position:absolute;top:50%;left:max(28px,calc(50% - 600px));transform:translateY(-50%);
  background:#fff;border:1px solid var(--line);border-radius:4px;padding:32px 30px;max-width:340px;
  box-shadow:0 22px 54px rgba(12,27,52,.2);z-index:2}
.mapcard::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--gold),var(--green));border-radius:4px 4px 0 0}
.mapcard .eyebrow{margin-bottom:10px}
.mapcard h3{font-size:23px;margin-bottom:12px;line-height:1.25}
.mapcard p{font-size:14.5px;margin-bottom:6px;color:var(--ink)}
.mapcard .hrs{font-size:13px;color:var(--body);margin:14px 0 20px;line-height:1.7}
.mapcard .hrs b{color:var(--navy);font-weight:600}
.map-inline{aspect-ratio:4/5;border:1px solid var(--line);border-radius:4px;min-height:420px}
@media(max-width:980px){
  .mapband{height:auto;display:flex;flex-direction:column-reverse}
  .mapband .mapwrap-inner{position:relative !important;inset:auto !important;height:330px}
  .mapcard{position:static;transform:none;max-width:none;border-radius:0;border-left:0;border-right:0;
    box-shadow:none;padding:32px 28px}
  .map-inline{aspect-ratio:auto;min-height:320px}
}
.map-fallback{position:absolute;inset:0;z-index:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:8px;text-align:center;padding:30px;
  background:linear-gradient(150deg,#e6ebf2,#cfd8e5);color:#6c7b8f}
.map-fallback b{font-family:var(--serif);font-size:19px;color:var(--navy)}
.map-fallback span{font-size:13.5px}
.map-fallback a{margin-top:8px;font-size:12px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--navy);border-bottom:1.5px solid var(--gold);padding-bottom:3px}
.mapwrap iframe{position:relative;z-index:1}
.map-link{display:block;text-align:center;margin-top:14px;font-size:12px;font-weight:600;
  letter-spacing:.1em;text-transform:uppercase;color:var(--body)}
.map-link:hover{color:var(--gold)}

/* ---------- three pillars ---------- */
.paths-3{grid-template-columns:repeat(3,1fr);max-width:1180px;gap:22px}
.paths-3 .path{padding:38px 30px}
.paths-3 .path h3{font-size:24px}
.paths-3 .path .tag{left:30px}
.tag-green{background:var(--green) !important;color:#fff !important}
.when-green{color:var(--green) !important}
@media(max-width:1000px){.paths-3{grid-template-columns:1fr;max-width:640px}}

/* ---------- team ---------- */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;max-width:1180px;margin:0 auto}
.tcard{background:#fff;border:1px solid var(--line);border-radius:4px;overflow:hidden;transition:.3s}
.tcard:hover{transform:translateY(-5px);box-shadow:0 20px 46px rgba(12,27,52,.11)}
.tphoto{aspect-ratio:4/5;background:linear-gradient(160deg,#eef2f7,#cfd8e5);overflow:hidden;position:relative}
.tphoto img{width:100%;height:100%;object-fit:cover;object-position:center top;
  filter:grayscale(1) contrast(1.05);transition:filter .5s ease}
.tcard:hover .tphoto img{filter:grayscale(0) contrast(1.02)}
.tphoto-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#8d9aad}
.tphoto-ph span{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.tbody{padding:24px 20px 26px}
.tbody h3{font-size:21px;margin-bottom:5px}
.trole{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);margin-bottom:13px}
.tbody p{font-size:13.8px}
.team-cta{text-align:center;margin-top:38px}
@media(max-width:1100px){.team-grid{grid-template-columns:repeat(2,1fr);max-width:720px}}
@media(max-width:620px){.team-grid{grid-template-columns:1fr;max-width:400px}}

/* ---------- about bios ---------- */
.bio{display:grid;grid-template-columns:300px 1fr;gap:44px;align-items:start;
  background:#fff;border:1px solid var(--line);border-radius:4px;padding:38px 40px;margin-bottom:22px}
.bio-photo{aspect-ratio:4/5;border-radius:3px;overflow:hidden;
  background:linear-gradient(160deg,#eef2f7,#cfd8e5);position:relative}
.bio-photo img{width:100%;height:100%;object-fit:cover;object-position:center top;
  filter:grayscale(1) contrast(1.05);transition:filter .5s ease}
.bio:hover .bio-photo img{filter:grayscale(0) contrast(1.02)}
.bio-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#8d9aad}
.bio-ph span{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.bio-body h3{font-size:29px;margin-bottom:6px}
.bio-role{font-size:11.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.bio-body p{font-size:15.5px;margin-bottom:14px}
.bio-body p:last-child{margin-bottom:0}
@media(max-width:820px){.bio{grid-template-columns:1fr;gap:26px;padding:28px 24px}
  .bio-photo{max-width:260px}}
.when-foot{margin-top:20px;padding-top:16px;border-top:1px solid var(--line);margin-bottom:0}

/* ---------- pillar timeframe band ---------- */
.paths-3 .path{padding-top:0;overflow:hidden}
.pspan{margin:0 -30px 26px;padding:14px 20px;text-align:center;background:var(--paper-3);
  color:var(--navy);font-family:var(--sans);font-size:12.5px;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid var(--line)}
.pspan-gold{background:var(--gold);color:var(--navy);border-bottom-color:var(--gold)}
.pspan-green{background:var(--green);color:#fff;border-bottom-color:var(--green)}
.paths-3 .path.feature{padding-top:0}
@media(max-width:1000px){.pspan{margin:0 -30px 24px}}

/* ---------- condensed credentials row ---------- */
.credrow{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.credchip{display:inline-flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);
  border-radius:100px;padding:12px 22px;font-size:13.5px;color:var(--body);
  box-shadow:0 2px 10px rgba(12,27,52,.05)}
.credchip b{font-family:var(--serif);font-size:18px;color:var(--navy);font-weight:700;letter-spacing:.01em}
@media(max-width:620px){.credrow{flex-direction:column}.credchip{justify-content:center}}


/* ---------- service pages: 4-up process ---------- */
.steps-4{grid-template-columns:repeat(4,1fr);gap:26px}
@media(max-width:980px){.steps-4{grid-template-columns:repeat(2,1fr);gap:30px}}
@media(max-width:560px){.steps-4{grid-template-columns:1fr}}

/* ---------- pillar link ---------- */
.plink{display:inline-block;margin-top:18px;font-family:var(--sans);font-size:13.5px;
  font-weight:600;color:var(--navy);border-bottom:1.5px solid var(--gold);padding-bottom:2px}
.plink:hover{color:var(--green);border-bottom-color:var(--green)}

/* ---------- portrait beside the closing CTA ---------- */
.ctapor{background:var(--navy);padding:64px 0}
.ctapor .wrap{display:grid;grid-template-columns:210px 1fr;gap:46px;align-items:center;max-width:900px}
.ctapor img{width:210px;height:262px;object-fit:cover;object-position:center top;border-radius:3px}
.ctapor h2{font-family:var(--serif);font-size:clamp(26px,3.4vw,36px);color:#fff;font-weight:600;margin:0 0 12px;line-height:1.15}
.ctapor .rl{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.ctapor p{color:rgba(255,255,255,.78);font-size:16px;line-height:1.65;margin:0 0 26px}
.ctapor-btns{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:760px){.ctapor .wrap{grid-template-columns:1fr;gap:26px}
  .ctapor img{width:150px;height:188px}}

/* ---------- layout B: card grid ---------- */
.cgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.ccard{background:#fff;border:1px solid var(--line);padding:32px 30px;display:flex;flex-direction:column}
.ccard .cico{width:44px;height:44px;border-radius:50%;background:var(--paper-3);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.ccard h3{font-family:var(--serif);font-size:24px;font-weight:600;margin:0 0 6px}
.ccard .cwhen{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.ccard > p{font-size:15px;line-height:1.62;margin:0 0 18px;color:var(--body)}
.ccard ul{list-style:none;margin:0;padding:16px 0 0;border-top:1px solid var(--line);display:grid;gap:7px}
.ccard li{font-family:var(--sans);font-size:13.5px;color:var(--body);padding-left:16px;position:relative}
.ccard li:before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;background:var(--gold);border-radius:50%}
.ccard.hero{background:var(--navy);border-color:var(--navy)}
.ccard.hero h3{color:#fff}
.ccard.hero > p,.ccard.hero li{color:rgba(255,255,255,.8)}
.ccard.hero .cwhen{color:var(--gold)}
.ccard.hero .cico{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
.ccard.hero .cico svg{stroke:#fff}
.ccard.hero ul{border-top-color:rgba(255,255,255,.18)}
@media(max-width:860px){.cgrid{grid-template-columns:1fr}}

/* ---------- layout C: accordion ---------- */
.acc{max-width:920px;margin:0 auto;border-top:1px solid var(--line)}
.acc details{border-bottom:1px solid var(--line)}
.acc summary{list-style:none;cursor:pointer;padding:24px 46px 24px 0;position:relative;
  display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:26px;align-items:baseline}
.acc summary::-webkit-details-marker{display:none}
.acc summary h3{font-family:var(--serif);font-size:24px;font-weight:600;margin:0}
.acc summary .sum{font-family:var(--sans);font-size:14.5px;color:var(--body);margin:0}
.acc summary:after{content:"+";position:absolute;right:8px;top:24px;font-family:var(--serif);
  font-size:26px;color:var(--gold);line-height:1}
.acc details[open] summary:after{content:"\2013"}
.acc details[open] summary h3{color:var(--green)}
.acc details[open] summary .sum{display:none}
.acc summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.accbody{padding:0 46px 30px 0;display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:26px}
.accbody p{font-size:15.5px;line-height:1.7;margin:0;color:var(--body)}
.accbody ul{list-style:none;margin:0;padding:0;columns:2;column-gap:26px}
.accbody li{font-family:var(--sans);font-size:13.5px;color:var(--body);padding-left:16px;position:relative;
  margin-bottom:9px;break-inside:avoid}
.accbody li:before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;background:var(--gold);border-radius:50%}
@media(max-width:820px){.acc summary,.accbody{grid-template-columns:1fr;gap:8px}.accbody ul{columns:1}}

/* ---------- service area: three columns ---------- */
.sa2{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.sa2 .col{background:#fff;padding:30px 28px}
.sa2 .col.home{background:var(--navy)}
.sa2 .col.home h3,.sa2 .col.home li{color:#fff}
.sa2 .col.home .note{color:var(--gold)}
.sa2 .col.home li:before{background:var(--gold)}
.sa2 h3{font-family:var(--serif);font-size:23px;font-weight:600;margin:0 0 6px}
.sa2 .note{font-family:var(--sans);font-size:12.5px;line-height:1.5;color:var(--body);margin:0 0 20px;min-height:38px}
.sa2 ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.sa2 li{font-family:var(--sans);font-size:14px;color:var(--body);padding-left:15px;position:relative}
.sa2 li:before{content:"";position:absolute;left:0;top:8px;width:4px;height:4px;background:var(--navy);border-radius:50%}
@media(max-width:840px){.sa2{grid-template-columns:1fr}.sa2 .note{min-height:0}}

/* ---------- resources: photo + copy split ---------- */
.rsplit{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center}
.rsplit .pframe{position:relative}
.rsplit .pframe img{width:100%;height:auto;display:block;border-radius:3px}
.rsplit .pframe:before{content:"";position:absolute;left:-16px;top:-16px;width:120px;height:120px;
  border-left:3px solid var(--gold);border-top:3px solid var(--gold);z-index:2}
@media(max-width:900px){.rsplit{grid-template-columns:1fr;gap:34px}
  .rsplit .pframe:before{display:none}}
.seg-grid.three{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.seg-grid.three{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.seg-grid.three{grid-template-columns:1fr}}

/* ---------- scorecard band: photo background (C1) ---------- */
.band.photo{background-image:url("scorecard-bg.webp");background-size:cover;background-position:50% 40%}
.band.photo::before{
  background:linear-gradient(95deg,rgba(8,18,36,.97) 0%,rgba(8,18,36,.92) 36%,
                                   rgba(8,18,36,.84) 62%,rgba(8,18,36,.76) 100%)}
@media(max-width:900px){
  .band.photo{background-position:60% 40%}
  .band.photo::before{background:rgba(8,18,36,.93)}
}

/* ---------- refund advance: split card with photo panel (D3) ---------- */
.advsplit{display:grid;grid-template-columns:1.15fr .85fr;border-radius:4px;overflow:hidden;
  background:linear-gradient(135deg,#1a7a45,#125c34);color:#fff}
.advsplit .adv-l{padding:52px 44px}
.advsplit .adv-ph{background-image:url("refund-family.webp");background-size:cover;
  background-position:50% 22%;min-height:395px;position:relative;display:flex;
  align-items:flex-end;justify-content:center;padding:34px}
.advsplit .adv-ph::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(18,92,52,.9) 100%)}
.advsplit .adv-ph .btn{position:relative;z-index:2;width:100%}
.advsplit h2{color:#fff;font-size:clamp(26px,3.2vw,36px);margin-bottom:14px}
.advsplit p{color:rgba(255,255,255,.88);font-size:16px;margin-bottom:10px}
.advsplit .fine{font-size:11.5px;color:rgba(255,255,255,.66);line-height:1.55}
@media(max-width:820px){
  .advsplit{grid-template-columns:1fr}
  .advsplit .adv-l{padding:38px 28px}
  .advsplit .adv-ph{min-height:300px;background-position:50% 18%}
}

/* ---------- Our Services: photo header band (E1) ---------- */
.svchead{position:relative;background-image:url("svc-header-v14.webp");background-size:cover;
  background-position:50% 55%;padding:96px 0;overflow:hidden}
.svchead::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,18,36,.82) 0%,rgba(8,18,36,.72) 60%,rgba(8,18,36,.86) 100%)}
.svchead .wrap{position:relative;z-index:2;text-align:center;max-width:820px}
.svchead .eyebrow{text-align:center}
.svchead h2{color:#fff;font-size:clamp(32px,4.2vw,46px);margin-bottom:16px}
.svchead p{color:rgba(255,255,255,.82);font-size:17px;margin:0}
@media(max-width:820px){.svchead{padding:64px 0;background-position:60% 55%}}

/* ---------- How It Works: portrait + vertical timeline (F1) ---------- */
.hw1{display:grid;grid-template-columns:.82fr 1.18fr;gap:56px;align-items:center}
.hw1 .ph{position:relative}
.hw1 .ph img{width:100%;height:auto;display:block;border-radius:3px}
.hw1 .ph::before{content:"";position:absolute;left:-16px;top:-16px;width:110px;height:110px;
  border-left:3px solid var(--gold);border-top:3px solid var(--gold);z-index:2}
.tl{position:relative;padding-left:56px}
.tl::before{content:"";position:absolute;left:19px;top:12px;bottom:12px;width:2px;background:var(--line)}
.tl .tlrow{position:relative;padding-bottom:34px}
.tl .tlrow:last-child{padding-bottom:0}
.tl .num{position:absolute;left:-56px;top:-2px;width:40px;height:40px;border-radius:50%;background:#fff;
  border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:17px;color:var(--navy);font-weight:600;z-index:2}
.tl h3{font-family:var(--serif);font-size:22px;margin:0 0 7px}
.tl p{font-size:15.5px;margin:0;color:var(--body)}
@media(max-width:900px){
  .hw1{grid-template-columns:1fr;gap:38px}
  .hw1 .ph::before{display:none}
  .tl{padding-left:50px}
  .tl::before{left:16px}
  .tl .num{left:-50px;width:34px;height:34px;font-size:15px}
}

/* ---------- reusable photo band behind a section heading ---------- */
.pband{position:relative;padding:92px 0;overflow:hidden;background-size:cover;background-position:center}
.pband::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,18,36,.84) 0%,rgba(8,18,36,.70) 55%,rgba(8,18,36,.88) 100%)}
.pband .wrap{position:relative;z-index:2;text-align:center;max-width:820px}
.pband .eyebrow{text-align:center}
.pband h2{color:#fff;font-size:clamp(30px,4vw,44px);margin-bottom:14px}
.pband p{color:rgba(255,255,255,.82);font-size:16.5px;margin:0}
@media(max-width:820px){.pband{padding:60px 0}}

/* ---------- page hero over a photograph ---------- */
/* The header is navy with white text, so the photo sits under an angled gradient
   that stays near solid on the left where the breadcrumb, eyebrow and headline
   live, and opens up toward the right. */
.phead.photo{background-size:cover;background-position:center}
.phead.photo::before{
  background:linear-gradient(100deg,
    rgba(8,18,36,.95) 0%,
    rgba(8,18,36,.88) 38%,
    rgba(8,18,36,.68) 70%,
    rgba(8,18,36,.55) 100%)}
/* On a phone the copy spans the full width, so the angle stops working.
   Go vertical and heavier so the text keeps its contrast. */
@media(max-width:820px){
  .phead.photo::before{
    background:linear-gradient(175deg,
      rgba(8,18,36,.93) 0%,
      rgba(8,18,36,.86) 55%,
      rgba(8,18,36,.78) 100%)}
}

/* ---------- crosslink section turned dark over a photograph ---------- */
.xband{position:relative;padding:78px 0;overflow:hidden;
  background-size:cover;background-position:center}
.xband::before{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,
    rgba(8,18,36,.82) 0%,
    rgba(8,18,36,.58) 50%,
    rgba(8,18,36,.86) 100%)}
.xband .wrap{position:relative;z-index:2;max-width:820px;text-align:center}
.xband .eyebrow{text-align:center}
.xband h2{color:#fff;font-size:clamp(26px,3.4vw,34px);margin-bottom:18px}
.xband p{color:rgba(255,255,255,.82);font-size:17.5px;margin-bottom:16px}
.xband p strong{color:#fff}
@media(max-width:820px){.xband{padding:58px 0}}

/* ---------- form failure message ---------- */
/* Deliberately loud. A form that fails quietly is the bug we are fixing. */
.form-err{display:none;background:rgba(176,42,42,.07);border:1px solid rgba(176,42,42,.35);
  color:#8f2020;padding:14px 16px;border-radius:3px;font-size:14.5px;line-height:1.6;
  margin-top:18px}
.form-err.show{display:block}
/* The honeypot must be unreachable for a human but present for a bot. */
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;
  overflow:hidden!important}

/* ---------- inline newsletter signup (homepage, below the contact form) ---------- */
.nlinline{background:var(--navy);padding:44px 0}
.nlinline .wrap{display:grid;grid-template-columns:1fr 380px;gap:46px;
  align-items:center;max-width:1000px}
.nlinline .eyebrow{color:var(--gold);margin-bottom:8px}
.nlinline h3{font-family:var(--serif);color:#fff;font-size:clamp(22px,2.6vw,29px);
  font-weight:600;margin:0 0 9px;line-height:1.2}
.nlinline p{color:rgba(255,255,255,.74);font-size:15.5px;margin:0 0 4px;line-height:1.6}
.nlinline .fine2{color:rgba(255,255,255,.5);font-size:12.5px;margin-top:12px}
.nlbox{background:#fff;border-radius:4px;padding:22px}
.nlbox .fld{margin-bottom:13px}
.nlbox .fld label{font-size:11px}
.nlbox .nl-ok,.nlbox .form-err{margin-top:14px}
@media(max-width:820px){.nlinline{padding:38px 0}
  .nlinline .wrap{grid-template-columns:1fr;gap:26px}}

/* ---------- newsletter band over a photograph ---------- */
/* The signup card covers the right half and the copy covers much of the left, so a
   photograph here has almost nowhere to be seen. Two concessions make it visible:
   the band runs wider and the card runs narrower than the base .nlinline rule, and
   the gradient falls away toward the right instead of staying near-solid across.
   Treat the image as texture. A subject placed centre-right would simply be covered. */
.nlinline.photo{background-size:cover;background-position:center;position:relative}
.nlinline.photo::before{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(8,18,36,.93) 0%,
    rgba(8,18,36,.86) 30%,
    rgba(8,18,36,.58) 58%,
    rgba(8,18,36,.50) 100%)}
.nlinline.photo .wrap{position:relative;z-index:2;
  max-width:1120px;grid-template-columns:1fr 340px;gap:56px}

@media(max-width:820px){
  /* .nlinline.photo .wrap (0,3,0) outranks the base .nlinline .wrap mobile rule (0,2,0),
     so without this the 340px card column survives onto phones and pushes the whole page
     sideways. This override MUST keep matching specificity or the overflow comes back. */
  .nlinline.photo .wrap{max-width:100%;grid-template-columns:1fr;gap:26px}
  .nlinline.photo::before{background:linear-gradient(180deg,
    rgba(8,18,36,.92) 0%,rgba(8,18,36,.86) 60%,rgba(8,18,36,.90) 100%)}
}

/* ---------- contact section over a photograph ---------- */
/* The form is the conversion element on this page, so it does not inherit the dark
   treatment. It lifts off the background as a white card instead, which keeps every
   field, label and the consent text on the same light ground they were tested on.
   The photo is texture: the card covers the right column and the contact details
   cover the left, so there is nowhere for a subject to be read. */
#contact.photo{background-size:cover;background-position:center;position:relative}
#contact.photo::before{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,
    rgba(8,18,36,.94) 0%,
    rgba(8,18,36,.88) 38%,
    rgba(8,18,36,.66) 66%,
    rgba(8,18,36,.72) 100%)}
#contact.photo .wrap{position:relative;z-index:2}

#contact.photo .ct-info h2{color:#fff}
#contact.photo .ct-info .eyebrow{color:var(--gold)}
#contact.photo .ct-info > p{color:rgba(255,255,255,.78)}
#contact.photo .ct-item{border-bottom-color:rgba(255,255,255,.16)}
#contact.photo .ct-item h4{color:rgba(255,255,255,.62)}
#contact.photo .ct-item p,
#contact.photo .ct-item p a{color:#fff}
#contact.photo .ct-item p a:hover{color:var(--gold)}
#contact.photo .ct-item p small{color:rgba(255,255,255,.62)}
#contact.photo .ct-item .ico{background:rgba(255,255,255,.1)}
#contact.photo .ct-item .ico svg{stroke:var(--gold)}

#contact.photo form{background:#fff;padding:30px;border-radius:4px;
  box-shadow:0 18px 50px rgba(0,0,0,.30)}

@media(max-width:980px){
  /* On one column the left-to-right gradient stops working, because the copy and the
     card both span the full width. */
  #contact.photo::before{background:linear-gradient(180deg,
    rgba(8,18,36,.93) 0%,rgba(8,18,36,.87) 55%,rgba(8,18,36,.90) 100%)}
}
@media(max-width:680px){
  #contact.photo form{padding:22px}
}


/* ================= TAX SCORECARD (scorecard.html) =================
   A standalone page: no nav, no footer. Every link left on screen mid-quiz is a
   way out, and completion is the point. The .fld / .btn / .form-ok / .form-err
   rules are already defined above and are reused as-is, so the form on this page
   behaves exactly like the contact form. */
/* ---------------- shell ---------------- */
.sc-page{min-height:100vh;background:var(--navy);
 background-image:linear-gradient(160deg,#0c1b34 0%,#132747 60%,#0c1b34 100%);
 padding:0 0 60px}
.sc-top{padding:22px 20px;border-bottom:1px solid rgba(255,255,255,.10)}
.sc-top .in{max-width:760px;margin:0 auto;display:flex;align-items:center;
 justify-content:space-between;gap:16px}
.sc-logo{font-family:var(--serif);color:#fff;font-size:19px;font-weight:600;letter-spacing:.01em;
 text-decoration:none}
.sc-logo span{display:block;font-family:var(--sans);font-size:8.5px;letter-spacing:.19em;
 text-transform:uppercase;color:rgba(255,255,255,.45);margin-top:2px}
.sc-exit{font-size:13px;color:rgba(255,255,255,.55);text-decoration:none}
.sc-exit:hover{color:#fff}

.sc-wrap{max-width:760px;margin:0 auto;padding:0 20px}

/* ---------------- progress ---------------- */
.sc-prog{margin:30px 0 6px;display:flex;align-items:center;gap:14px}
.sc-bar{flex:1;height:3px;background:rgba(255,255,255,.14);border-radius:99px;overflow:hidden}
.sc-bar i{display:block;height:100%;background:var(--gold);width:0;transition:width .35s ease}
.sc-count{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);
 white-space:nowrap;font-weight:600}

/* ---------------- question ---------------- */
.sc-card{margin-top:26px}
.sc-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
 color:var(--gold);margin-bottom:14px}
.sc-q{font-family:var(--serif);color:#fff;font-size:clamp(26px,4.4vw,36px);font-weight:600;
 line-height:1.2;margin-bottom:10px}
.sc-help{color:rgba(255,255,255,.62);font-size:15px;margin-bottom:26px}
.sc-opts{display:flex;flex-direction:column;gap:11px}
.sc-opt{display:flex;align-items:center;gap:15px;width:100%;text-align:left;cursor:pointer;
 background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);border-radius:4px;
 padding:17px 19px;color:#fff;font-family:var(--sans);font-size:16px;line-height:1.45;
 transition:background .15s,border-color .15s,transform .08s}
.sc-opt:hover{background:rgba(255,255,255,.10);border-color:rgba(201,168,76,.55)}
.sc-opt:active{transform:translateY(1px)}
.sc-opt .k{flex-shrink:0;width:26px;height:26px;border-radius:3px;border:1px solid rgba(255,255,255,.28);
 display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;
 color:rgba(255,255,255,.6)}
.sc-opt.on{background:rgba(201,168,76,.16);border-color:var(--gold)}
.sc-opt.on .k{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.sc-back{margin-top:24px;background:none;border:0;color:rgba(255,255,255,.5);font-size:13.5px;
 cursor:pointer;font-family:var(--sans);padding:4px 0}
.sc-back:hover{color:#fff}
.sc-next{margin-top:22px}

/* ---------------- result ---------------- */
.sc-res-h{text-align:center;margin-bottom:30px}
.sc-res-h .sc-eyebrow{color:var(--gold)}
.sc-res-h h2{font-family:var(--serif);color:#fff;font-size:clamp(28px,4.6vw,40px);font-weight:600;
 line-height:1.18;margin-bottom:12px}
.sc-res-h p{color:rgba(255,255,255,.72);font-size:16.5px;max-width:600px;margin:0 auto}
.sc-band{display:inline-block;padding:9px 20px;border-radius:99px;font-size:11.5px;font-weight:800;
 letter-spacing:.15em;text-transform:uppercase;margin-bottom:18px;border:1px solid}
.sc-band.hi{background:rgba(201,168,76,.2);color:var(--gold-soft);border-color:rgba(201,168,76,.5)}
.sc-band.mid{background:rgba(201,168,76,.12);color:var(--gold-soft);border-color:rgba(201,168,76,.32)}
.sc-band.lo{background:rgba(255,255,255,.08);color:rgba(255,255,255,.65);border-color:rgba(255,255,255,.2)}
.sc-find{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.13);border-radius:4px;
 padding:22px 24px;margin-bottom:13px;border-left:3px solid var(--gold)}
.sc-find.low{border-left-color:rgba(255,255,255,.22)}
.sc-find h3{font-family:var(--serif);color:#fff;font-size:21px;font-weight:600;margin-bottom:7px}
.sc-find p{color:rgba(255,255,255,.72);font-size:15.5px;margin:0}
.sc-find .tag{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.15em;
 text-transform:uppercase;padding:4px 9px;border-radius:99px;margin-bottom:10px;
 background:rgba(201,168,76,.2);color:var(--gold-soft)}
.sc-find.low .tag{background:rgba(255,255,255,.1);color:rgba(255,255,255,.6)}

.sc-cta{background:#fff;border-radius:5px;padding:30px;margin-top:28px}
.sc-cta h3{font-family:var(--serif);font-size:25px;color:var(--navy);font-weight:600;margin-bottom:8px}
.sc-cta > p{color:var(--body);font-size:15.5px;margin-bottom:22px}
.fld{margin-bottom:14px}
.fld label{display:block;font-size:11px;letter-spacing:.13em;text-transform:uppercase;
 color:var(--body);font-weight:600;margin-bottom:7px}
.fld input{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:2px;
 font-family:var(--sans);font-size:15.5px;color:var(--ink)}
.fld input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.14)}
.btn{display:inline-block;padding:15px 26px;border:1px solid transparent;border-radius:2px;
 font-family:var(--sans);font-size:12.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;
 cursor:pointer;text-decoration:none;text-align:center;transition:.15s}
.btn-gold{background:var(--gold);color:var(--navy);border-color:var(--gold)}
.btn-gold:hover{background:#b8973f}
.btn-navy{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn-navy:hover{background:var(--navy-2)}
.btn-ghost{background:transparent;color:rgba(255,255,255,.85);border-color:rgba(255,255,255,.3)}
.btn-ghost:hover{border-color:#fff;color:#fff}
.sc-or{text-align:center;color:var(--body);font-size:12.5px;letter-spacing:.1em;
 text-transform:uppercase;margin:18px 0}
.sc-fine{color:rgba(255,255,255,.45);font-size:12.5px;margin-top:24px;text-align:center;
 max-width:560px;margin-left:auto;margin-right:auto}
.sc-ok{display:none;background:rgba(26,122,69,.1);border:1px solid rgba(26,122,69,.35);
 color:var(--green);padding:14px 16px;border-radius:3px;font-size:14.5px;margin-top:16px}
.sc-ok.show{display:block}
.sc-page .hide{display:none}
