/* ============================================================
   Ganesh Insurance Solutions — website styles
   Brand: Navy #011031 · White · Gold #C6A02C
   Type:  Headings — Fraunces (display serif)
          Body     — Source Serif 4 (text serif)
          UI/labels— Inter (sans)
   ============================================================ */
:root{
  --navy:#011031; --navy-2:#0b1f4a; --navy-3:#16305f;
  --gold:#C6A02C; --gold-d:#A9821C; --gold-soft:#F6ECCE;
  --ink:#161F33; --slate:#5B6577; --line:#E7E3D8;
  --paper:#FFFFFF; --paper-2:#F7F5EF; --paper-3:#EFEBDF;
  --wa:#25D366; --wa-d:#1EBE5A;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;                 /* headings */
  --body:'Source Serif 4','Iowan Old Style',Georgia,'Times New Roman',serif; /* paragraphs */
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;/* UI / labels */
  --shadow-sm:0 1px 3px rgba(1,16,49,.06),0 1px 2px rgba(1,16,49,.04);
  --shadow:0 8px 24px rgba(1,16,49,.08);
  --shadow-lg:0 20px 50px rgba(1,16,49,.16);
  --container:1160px; --radius:14px; --header-h:74px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%; overflow-x:clip}
body{
  margin:0; font-family:var(--body); color:var(--ink);
  background:var(--paper); font-size:16.5px; line-height:1.7;
  max-width:100%; overflow-x:clip;  /* belt-and-suspenders against stray horizontal scroll (clip keeps sticky working) */
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif); font-weight:600; color:var(--navy); line-height:1.16; margin:0; text-wrap:balance}
p{margin:0}
ul{margin:0}
/* UI, labels & controls stay in the sans face for crispness */
.eyebrow,.btn,.nav-links a,.brand-sub,.mini-title,.card-link,
.field label,.field input,.field select,.field textarea,
.footer-col h4,.footer-col a,.footer-col li,.footer-bottom,
.trust-pill,.mobile-bar a,.radio-row label,.consent,
.contact-card .cc-sub,.contact-list .cl,.form-note,.prose .muted{font-family:var(--sans)}
:focus-visible{outline:2px solid var(--gold); outline-offset:2px; border-radius:3px}

/* ---------- layout helpers ---------- */
.container{width:100%; max-width:var(--container); margin:0 auto; padding:0 22px}
.section{padding:76px 0}
.section-tight{padding:52px 0}
.eyebrow{display:inline-block; font-size:12.5px; font-weight:700;
  letter-spacing:1.6px; text-transform:uppercase; color:var(--gold-d); margin-bottom:14px}
.section-head{max-width:720px; margin:0 auto 44px; text-align:center}
.section-head.left{margin-left:0; text-align:left}
.section-head h2{font-size:clamp(27px,4vw,40px)}
.section-head p{color:var(--slate); font-size:17px; margin-top:14px}
.lead{font-size:18px; color:var(--slate)}
.gold-rule{width:64px; height:3px; background:var(--gold); border-radius:2px; margin:16px auto 0}
.section-head.left .gold-rule{margin-left:0}
.center{text-align:center}

/* ---------- buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-weight:600; font-size:15px; line-height:1;
  padding:15px 26px; border-radius:10px; border:1.5px solid transparent; cursor:pointer;
  transition:transform .16s var(--ease), box-shadow .2s ease, background .2s ease, color .2s ease;
  white-space:nowrap;}
.btn svg{width:18px; height:18px; flex:0 0 auto}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-primary{background:var(--gold); color:var(--navy); box-shadow:0 6px 18px rgba(198,160,44,.28)}
.btn-primary:hover{background:var(--gold-d); color:#fff; box-shadow:0 10px 24px rgba(198,160,44,.34)}
.btn-secondary{background:var(--wa); color:#fff; box-shadow:0 6px 18px rgba(37,211,102,.24)}
.btn-secondary:hover{background:var(--wa-d); box-shadow:0 10px 24px rgba(37,211,102,.3)}
.btn-outline{background:transparent; color:var(--navy); border-color:var(--navy)}
.btn-outline:hover{background:var(--navy); color:#fff}
.btn-outline-light{background:transparent; color:#fff; border-color:rgba(255,255,255,.55)}
.btn-outline-light:hover{background:#fff; color:var(--navy); border-color:#fff}
.btn-lg{padding:17px 32px; font-size:16px}
.btn-block{width:100%}
.btn-row{display:flex; flex-wrap:wrap; gap:14px}
.btn-row.center{justify-content:center}

/* ---------- header ---------- */
.site-header{position:sticky; top:0; z-index:60; background:rgba(255,255,255,.9);
  backdrop-filter:saturate(180%) blur(10px); -webkit-backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line); transition:box-shadow .2s ease, background .2s ease}
.site-header.scrolled{box-shadow:var(--shadow-sm); background:rgba(255,255,255,.96)}
.nav{display:flex; align-items:center; justify-content:space-between; height:var(--header-h)}
.brand{display:flex; align-items:center; gap:12px}
.brand img{width:46px; height:46px; border-radius:9px; box-shadow:var(--shadow-sm)}
.brand-text{display:flex; flex-direction:column; line-height:1.15}
.brand-name{font-family:var(--serif); font-weight:600; font-size:18px; color:var(--navy); letter-spacing:.2px}
.brand-sub{font-size:10.5px; letter-spacing:.8px; text-transform:uppercase; color:var(--gold-d); font-weight:600}
.nav-links{display:flex; align-items:center; gap:6px; list-style:none; margin:0; padding:0}
.nav-links a{font-size:14.5px; font-weight:500; color:var(--ink); padding:9px 13px; border-radius:8px;
  transition:color .15s, background .15s}
.nav-links a:hover{color:var(--navy); background:var(--paper-2)}
.nav-links a.active{color:var(--gold-d); font-weight:600}
.nav-cta{display:flex; align-items:center; gap:10px}
.nav-toggle{display:none; width:44px; height:44px; border:1px solid var(--line); background:#fff;
  border-radius:11px; cursor:pointer; align-items:center; justify-content:center; flex-direction:column; gap:5px;
  transition:border-color .2s, box-shadow .2s}
.nav-toggle:hover{border-color:var(--gold); box-shadow:var(--shadow-sm)}
.nav-toggle span{display:block; width:20px; height:2px; background:var(--navy); border-radius:2px; transition:transform .28s var(--ease), opacity .2s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- hero ---------- */
.hero{position:relative; overflow:hidden; color:#fff;
  background:radial-gradient(720px 340px at 90% 4%, rgba(198,160,44,.2), transparent 60%),
             radial-gradient(1200px 500px at 80% -10%, var(--navy-3), transparent 60%),
             linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 100%)}
.hero::before{content:''; position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.11) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.11) 1px,transparent 1px);
  background-size:46px 46px; mask-image:linear-gradient(180deg,rgba(0,0,0,.95),transparent 82%);
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.95),transparent 82%); pointer-events:none}
.hero-inner{position:relative; padding-top:92px; padding-bottom:96px; max-width:760px}
.hero h1{color:#fff; font-size:clamp(32px,5.4vw,54px); letter-spacing:-.5px}
.hero .kicker{display:inline-flex; align-items:center; gap:10px; font-family:var(--sans); font-weight:600; letter-spacing:1px;
  text-transform:uppercase; font-size:12.5px; color:var(--gold); margin-bottom:20px}
.hero .kicker .dot{width:6px; height:6px; border-radius:50%; background:var(--gold)}
.hero-sub{font-size:18.5px; color:rgba(255,255,255,.82); margin:22px 0 32px; max-width:620px}
.hero .btn-row{margin-bottom:34px}
.trust-badges{display:flex; flex-wrap:wrap; gap:14px}
.trust-pill{display:inline-flex; align-items:center; gap:9px; background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.16); padding:9px 15px; border-radius:30px; font-size:13.5px; font-weight:500; color:#fff}
.trust-pill svg{width:16px; height:16px; color:var(--gold); flex:0 0 auto}

/* entrance animation for hero content */
.hero-inner > *{animation:heroIn .7s var(--ease) both}
.hero-inner > *:nth-child(1){animation-delay:.02s}
.hero-inner > *:nth-child(2){animation-delay:.09s}
.hero-inner > *:nth-child(3){animation-delay:.16s}
.hero-inner > *:nth-child(4){animation-delay:.23s}
.hero-inner > *:nth-child(5){animation-delay:.3s}
@keyframes heroIn{from{opacity:0; transform:translateY(16px)} to{opacity:1; transform:none}}

/* ---------- generic cards ---------- */
.grid{display:grid; gap:22px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:30px 26px;
  box-shadow:var(--shadow-sm); transition:transform .2s var(--ease), box-shadow .25s ease, border-color .25s ease}
.card:hover{transform:translateY(-5px); box-shadow:var(--shadow); border-color:var(--gold-soft)}
.card h3{font-size:21px; margin-bottom:10px}
.card p{color:var(--slate); font-size:15.5px}
.card .card-link{display:inline-flex; align-items:center; gap:7px; margin-top:16px; color:var(--gold-d);
  font-weight:600; font-size:14.5px}
.card .card-link svg{width:15px; height:15px; transition:transform .18s var(--ease)}
.card:hover .card-link svg,.card .card-link:hover svg{transform:translateX(4px)}
.card-ico{width:52px; height:52px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(145deg,var(--navy),var(--navy-2)); margin-bottom:18px; transition:transform .2s var(--ease)}
.card:hover .card-ico{transform:scale(1.05) rotate(-3deg)}
.card-ico svg{width:26px; height:26px; color:var(--gold)}

.alt{background:var(--paper-2)}

/* ---------- about strip ---------- */
.approach{display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:center;
  font-family:var(--serif); font-size:clamp(20px,3vw,28px); color:var(--navy)}
.approach .arw{color:var(--gold); font-size:.8em}

/* ---------- feature list (why choose) ---------- */
.feature{display:flex; gap:16px; align-items:flex-start}
.feature .f-ico{flex:0 0 auto; width:44px; height:44px; border-radius:10px; background:var(--gold-soft);
  display:flex; align-items:center; justify-content:center; transition:transform .2s var(--ease)}
.feature:hover .f-ico{transform:translateY(-3px)}
.feature .f-ico svg{width:22px; height:22px; color:var(--gold-d)}
.feature h3{font-size:18px; margin-bottom:5px}
.feature p{color:var(--slate); font-size:14.5px}

/* ---------- steps ---------- */
.steps{counter-reset:step; display:grid; grid-template-columns:repeat(4,1fr); gap:22px}
.step{position:relative; padding-top:8px}
.step .step-n{width:44px; height:44px; border-radius:50%; background:var(--navy); color:var(--gold);
  font-family:var(--serif); font-weight:600; font-size:19px; display:flex; align-items:center; justify-content:center; margin-bottom:16px}
.step h3{font-size:17.5px; margin-bottom:7px}
.step p{color:var(--slate); font-size:14.5px}

/* ---------- CTA band ---------- */
.cta-band{position:relative; overflow:hidden; color:#fff; border-radius:0;
  background:radial-gradient(620px 320px at 92% 100%, rgba(198,160,44,.18), transparent 60%),
             radial-gradient(900px 400px at 15% 0%, var(--navy-3), transparent 60%),
             linear-gradient(135deg,var(--navy),var(--navy-2))}
.cta-band::before{content:''; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.1) 1px,transparent 1px);
  background-size:46px 46px; mask-image:radial-gradient(130% 130% at 50% 10%,rgba(0,0,0,1),transparent 78%);
  -webkit-mask-image:radial-gradient(130% 130% at 50% 10%,rgba(0,0,0,1),transparent 78%)}
.cta-inner{position:relative; text-align:center; max-width:680px; margin:0 auto}
.cta-inner h2{color:#fff; font-size:clamp(26px,4vw,38px)}
.cta-inner p{color:rgba(255,255,255,.82); font-size:17px; margin:14px 0 28px}

/* ---------- content / solutions page ---------- */
.solution-block{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:38px 34px; box-shadow:var(--shadow-sm); scroll-margin-top:96px}
.solution-block + .solution-block{margin-top:28px}
.solution-head{display:flex; align-items:center; gap:16px; margin-bottom:6px}
.solution-head .s-ico{width:56px; height:56px; border-radius:13px; flex:0 0 auto;
  background:linear-gradient(145deg,var(--navy),var(--navy-2)); display:flex; align-items:center; justify-content:center}
.solution-head .s-ico svg{width:28px; height:28px; color:var(--gold)}
.solution-head .eyebrow{margin:0}
.solution-head h2{font-size:26px}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:30px; margin-top:22px}
.mini-title{font-weight:700; font-size:13px; text-transform:uppercase;
  letter-spacing:.8px; color:var(--navy); margin-bottom:12px}
.ticks{list-style:none; padding:0; display:grid; gap:9px}
.ticks li{position:relative; padding-left:26px; font-size:15.5px; color:var(--ink)}
.ticks li::before{content:''; position:absolute; left:0; top:9px; width:15px; height:15px; border-radius:50%;
  background:var(--gold-soft); box-shadow:inset 0 0 0 4px var(--gold)}
.ticks.plain li::before{background:transparent; box-shadow:none; width:6px; height:6px; top:11px; left:5px; background:var(--gold)}

.notice{background:var(--paper-3); border:1px solid var(--line); border-left:4px solid var(--gold);
  border-radius:10px; padding:22px 24px}
.notice h3{font-size:17px; margin-bottom:8px}
.notice p{color:var(--slate); font-size:14.5px; margin-top:6px}

/* ---------- contact / form ---------- */
.contact-grid{display:grid; grid-template-columns:1.3fr .85fr; gap:34px; align-items:start}
.form-card{background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:32px 30px; box-shadow:var(--shadow)}
.form-card h2{font-size:23px; margin-bottom:6px}
.form-card > .lead{font-size:15px; margin-bottom:22px}
.field{margin-bottom:16px}
.field label{display:block; font-size:13.5px; font-weight:600; color:var(--navy); margin-bottom:6px}
.field label .opt{color:var(--slate); font-weight:500}
.field input,.field select,.field textarea{width:100%; font-size:15px; color:var(--ink);
  padding:12px 14px; border:1.5px solid var(--line); border-radius:9px; background:#fff; transition:border-color .15s, box-shadow .15s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--gold);
  box-shadow:0 0 0 3px rgba(198,160,44,.15)}
.field textarea{resize:vertical; min-height:96px}
.field-2{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.radio-row{display:flex; flex-wrap:wrap; gap:10px}
.radio-row label{display:inline-flex; align-items:center; gap:7px; font-weight:500; color:var(--ink);
  border:1.5px solid var(--line); border-radius:9px; padding:9px 14px; cursor:pointer; font-size:14px; margin:0;
  transition:border-color .15s, background .15s}
.radio-row label:hover{border-color:var(--gold)}
.radio-row input{width:auto; accent-color:var(--gold-d)}
.consent{display:flex; align-items:flex-start; gap:10px; font-size:14px; color:var(--slate); margin:6px 0 20px}
.consent input{width:18px; height:18px; margin-top:2px; accent-color:var(--gold-d); flex:0 0 auto}
.form-note{font-size:12.5px; color:var(--slate); margin-top:14px; text-align:center}

.contact-card{background:linear-gradient(145deg,var(--navy),var(--navy-2)); color:#fff; border-radius:var(--radius);
  padding:32px 30px; box-shadow:var(--shadow)}
.contact-card h3{color:#fff; font-size:20px}
.contact-card .cc-sub{color:var(--gold); font-size:13px; font-weight:600; margin:4px 0 20px; letter-spacing:.3px}
.contact-list{list-style:none; padding:0; display:grid; gap:16px; margin:0 0 24px}
.contact-list li{display:flex; align-items:flex-start; gap:13px}
.contact-list .ci{width:40px; height:40px; border-radius:10px; background:rgba(255,255,255,.09);
  display:flex; align-items:center; justify-content:center; flex:0 0 auto}
.contact-list .ci svg{width:19px; height:19px; color:var(--gold)}
.contact-list .cl{font-size:11.5px; text-transform:uppercase; letter-spacing:.6px; color:rgba(255,255,255,.6)}
.contact-list .cv{font-size:15.5px; color:#fff; font-weight:500; word-break:break-word}
.contact-list a.cv:hover{color:var(--gold)}

/* ---------- legal pages ---------- */
.page-hero{color:#fff; padding:64px 0 56px; position:relative; overflow:hidden;
  background:radial-gradient(560px 260px at 94% 0%, rgba(198,160,44,.2), transparent 58%),
             linear-gradient(135deg,var(--navy),var(--navy-2))}
.page-hero::before{content:''; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.11) 1px,transparent 1px);
  background-size:46px 46px; mask-image:linear-gradient(180deg,rgba(0,0,0,.95),transparent 86%);
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.95),transparent 86%)}
.page-hero .container{position:relative}
.page-hero h1{color:#fff; font-size:clamp(28px,4.6vw,44px)}
.page-hero p{color:rgba(255,255,255,.8); margin-top:12px; font-size:17px; max-width:640px}
.prose{max-width:820px; margin:0 auto}
.prose h2{font-size:23px; margin:34px 0 12px}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--ink); margin:12px 0}
.prose ul{margin:12px 0; padding-left:22px; color:var(--ink)}
.prose li{margin:7px 0}
.prose .muted{color:var(--slate); font-size:14px}

/* ---------- footer ---------- */
.site-footer{position:relative; overflow:hidden; color:rgba(255,255,255,.72); padding:60px 0 0;
  background:radial-gradient(760px 320px at 100% 0%, rgba(198,160,44,.16), transparent 58%),
             radial-gradient(700px 300px at 0% 100%, var(--navy-3), transparent 62%),
             var(--navy)}
.site-footer::before{content:''; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px);
  background-size:46px 46px; mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 72%);
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 72%)}
.site-footer .container{position:relative; z-index:1}
.footer-grid{display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:34px; padding-bottom:44px}
.footer-brand .brand-name{color:#fff}
.footer-brand img{width:48px; height:48px; border-radius:10px; margin-bottom:16px}
.footer-brand p{font-size:14px; color:rgba(255,255,255,.66); margin-top:12px; max-width:300px}
.footer-brand .lines{color:var(--gold); font-size:13.5px; font-weight:600; margin-top:14px}
.footer-col{min-width:0}   /* let the grid track shrink so a long token (email) can't force overflow */
.footer-col h4{color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:.8px; margin-bottom:16px}
.footer-col ul{list-style:none; padding:0; display:grid; gap:10px}
.footer-col a,.footer-col li{font-size:14.5px; color:rgba(255,255,255,.72); transition:color .15s; overflow-wrap:anywhere}
.footer-col a:hover{color:var(--gold)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12); padding:20px 0; display:flex;
  flex-wrap:wrap; gap:10px; justify-content:space-between; font-size:13px; color:rgba(255,255,255,.55)}
.footer-bottom a:hover{color:var(--gold)}

/* ---------- mobile sticky action bar ---------- */
.mobile-bar{position:fixed; left:0; right:0; bottom:0; z-index:70; display:none;
  background:#fff; border-top:1px solid var(--line); box-shadow:0 -4px 20px rgba(1,16,49,.1);
  padding:8px 10px calc(8px + env(safe-area-inset-bottom)); gap:8px}
.mobile-bar a{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  font-size:11.5px; font-weight:600; padding:8px 4px; border-radius:9px; text-align:center; transition:transform .12s var(--ease)}
.mobile-bar a:active{transform:scale(.96)}
.mobile-bar a svg{width:20px; height:20px}
.mobile-bar .mb-call{color:var(--navy)}
.mobile-bar .mb-wa{color:#fff; background:var(--wa)}
.mobile-bar .mb-quote{color:var(--navy); background:var(--gold)}

/* ---------- scroll reveal (progressive enhancement) ---------- */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s var(--ease)}
.reveal.in{opacity:1; transform:none}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:1000px){
  .grid-3{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  /* Footer: brand banner on top, then two clean columns —
     Quick Links on the left (spans both rows), Contact + Legal stacked
     on the right with no orphaned gap. */
  .footer-grid{grid-template-columns:1fr 1fr; gap:24px 30px; align-items:start}
  .footer-brand{grid-column:1 / -1}
  .footer-grid > :nth-child(2){grid-column:1; grid-row:2 / span 2}  /* Quick Links */
  .footer-grid > :nth-child(3){grid-column:2; grid-row:2}           /* Contact */
  .footer-grid > :nth-child(4){grid-column:2; grid-row:3}           /* Legal */
}
@media (max-width:900px){
  /* ----- mobile navigation: floating panel + scrim ----- */
  .nav-toggle{display:flex}
  .nav-cta .btn:not(.nav-toggle){display:none}
  .nav-links{position:fixed; inset:calc(var(--header-h) + 8px) 12px auto 12px;
    flex-direction:column; align-items:stretch; gap:3px;
    background:#fff; border:1px solid var(--line); border-radius:16px;
    padding:10px; box-shadow:var(--shadow-lg);
    transform:translateY(-12px) scale(.985); transform-origin:top center;
    opacity:0; pointer-events:none; visibility:hidden;
    transition:transform .24s var(--ease), opacity .2s ease, visibility .24s}
  .nav-links.open{transform:none; opacity:1; pointer-events:auto; visibility:visible}
  .nav-links::before{content:''; position:fixed; inset:0; z-index:-1;
    background:rgba(1,16,49,.32); opacity:0; transition:opacity .24s ease}
  .nav-links.open::before{opacity:1}
  .nav-links a{font-size:16px; font-weight:600; color:var(--navy); padding:14px 16px; border-radius:11px;
    display:flex; align-items:center; justify-content:space-between; transition:background .15s, color .15s}
  .nav-links a::after{content:''; width:7px; height:7px; border-right:2px solid var(--slate);
    border-bottom:2px solid var(--slate); transform:rotate(-45deg); opacity:.5; transition:.15s}
  .nav-links a:hover,.nav-links a:focus-visible{background:var(--paper-2)}
  .nav-links a.active{background:var(--gold-soft); color:var(--gold-d)}
  .nav-links a.active::after{border-color:var(--gold-d); opacity:1}
}
@media (max-width:820px){
  .contact-grid{grid-template-columns:1fr}
  .two-col{grid-template-columns:1fr; gap:22px}
}
@media (max-width:760px){
  .section{padding:54px 0}
  .grid-3,.grid-2{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr}
  .field-2{grid-template-columns:1fr}
  .mobile-bar{display:flex}
  body{padding-bottom:70px}
  .solution-block{padding:26px 22px}
  .solution-head{gap:13px}
  .solution-head .s-ico{width:48px; height:48px}
  .solution-head h2{font-size:23px}
  .brand-sub{display:none}
}
@media (max-width:640px){
  .container{padding:0 18px}
  .hero-inner{padding-top:52px; padding-bottom:60px; max-width:none}
  .hero-sub{font-size:16.5px; margin:18px 0 28px}
  .trust-badges{gap:10px}
  .trust-pill{font-size:12.5px; padding:8px 13px}
  .page-hero{padding:48px 0 42px}
  .section-head{margin-bottom:34px}
  /* Button groups: primary CTA full-width, secondary actions share one clean row */
  .hero .btn-row,.cta-inner .btn-row{flex-wrap:wrap; gap:11px}
  .hero .btn-row > .btn-primary,.cta-inner .btn-row > .btn-primary{flex:1 0 100%}
  .hero .btn-row > .btn:not(.btn-primary),
  .cta-inner .btn-row > .btn:not(.btn-primary){flex:1 1 0; min-width:0}
  .btn-lg{padding:15px 18px; font-size:15px}
}
@media (max-width:420px){
  .brand-name{font-size:16px}
  .btn{padding:14px 20px}
  .card{padding:26px 22px}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto !important; transition:none !important; animation:none !important}
  .reveal{opacity:1 !important; transform:none !important}
}
