/* =========================================================
   CallRank Digital (India) — main stylesheet
   Palette: Indian tricolour — saffron, white, India green, navy
   ========================================================= */
:root{
  --saffron:#FF9933;        /* fills, buttons, accents */
  --saffron-dark:#F2820A;   /* hover */
  --saffron-ink:#B35300;    /* saffron TEXT on white (AA contrast) */
  --saffron-tint:#FFF4E8;   /* section background */
  --green:#138808;          /* fills, buttons */
  --green-dark:#0E6B06;     /* hover */
  --green-ink:#0F6E06;      /* green TEXT on white (AA contrast) */
  --green-tint:#EEF8EC;     /* section background */
  --navy:#000080;           /* headings, dark bands */
  --navy-deep:#0A1450;
  --ink:#151A33;            /* body text */
  --soft:#4A5170;           /* secondary text */
  --line:#E3E6EF;
  --white:#FFFFFF;
  --fd:'Sora',system-ui,-apple-system,'Segoe UI',sans-serif;
  --fb:'Mukta',system-ui,-apple-system,'Segoe UI',sans-serif;
  --r:14px;
  --maxw:1180px;
  --shadow:0 18px 40px -22px rgba(0,0,64,.28);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--fb);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img,svg,canvas{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{font-family:var(--fd);color:var(--navy);margin:0;line-height:1.12;letter-spacing:-.02em;}
h1{font-size:clamp(36px,5.6vw,64px);font-weight:800;}
h2{font-size:clamp(28px,3.8vw,44px);font-weight:700;}
h3{font-size:20px;font-weight:700;}
p{margin:0;color:var(--soft);}
ul,ol{margin:0;}
button,input,select,textarea{font:inherit;}
:focus-visible{outline:3px solid var(--saffron);outline-offset:3px;border-radius:4px;}
::selection{background:var(--saffron);color:var(--navy);}

.hl-s{color:var(--saffron-ink);}   /* saffron-coloured words */
.hl-g{color:var(--green-ink);}     /* green-coloured words */
.hl-n{color:var(--navy);}

.skip{position:absolute;left:-999px;top:0;background:var(--navy);color:#fff;padding:10px 16px;z-index:100;}
.skip:focus{left:12px;top:12px;}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px;}
.sec{padding:92px 0;}
.sec-white{background:var(--white);}
.sec-saffron{background:var(--saffron-tint);}
.sec-green{background:var(--green-tint);}
.sec-navy{background:var(--navy);color:#fff;}
.sec-navy h2,.sec-navy h3{color:#fff;}
.sec-navy p{color:rgba(255,255,255,.82);}
.sec-navy .hl-s{color:var(--saffron);}
.sec-navy .hl-g{color:#6BD66B;}
.sec-head{max-width:720px;margin-bottom:46px;}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.sec-head p{margin-top:14px;font-size:18px;}
.kicker{display:inline-block;font-family:var(--fd);font-size:13px;font-weight:700;letter-spacing:.04em;color:var(--green-ink);margin-bottom:12px;}

/* tricolour stripe */
.tricolor{height:6px;background:linear-gradient(to bottom,var(--saffron) 0 33.3%,#fff 33.3% 66.6%,var(--green) 66.6% 100%);}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:100px;font-family:var(--fd);font-weight:700;font-size:15px;border:2px solid transparent;cursor:pointer;transition:transform .18s,background .18s,box-shadow .18s;line-height:1.2;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--saffron);color:var(--navy);box-shadow:0 10px 24px -12px rgba(242,130,10,.8);}
.btn-primary:hover{background:var(--saffron-dark);}
.btn-green{background:var(--green);color:#fff;}
.btn-green:hover{background:var(--green-dark);}
.btn-outline{border-color:var(--navy);color:var(--navy);background:transparent;}
.btn-outline:hover{background:var(--navy);color:#fff;}
.btn-sm{padding:10px 18px;font-size:14px;}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px;}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:box-shadow .2s;}
.site-header.scrolled{box-shadow:0 6px 24px -14px rgba(0,0,64,.35);}
.nav{position:relative;display:flex;align-items:center;gap:26px;padding:14px 22px;max-width:var(--maxw);margin:0 auto;}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--fd);font-weight:800;font-size:19px;color:var(--navy);white-space:nowrap;}
.logo svg{width:34px;height:34px;flex:none;}
.logo span b{color:var(--saffron-ink);font-weight:800;}
.logo span i{font-style:normal;color:var(--green-ink);}
.menu{display:flex;gap:22px;margin-left:auto;list-style:none;padding:0;}
.menu a{font-family:var(--fd);font-size:14.5px;font-weight:600;color:var(--ink);padding:6px 0;border-bottom:2px solid transparent;}
.menu a:hover,.menu a[aria-current="page"]{color:var(--navy);border-bottom-color:var(--saffron);}
.nav-tel{font-family:var(--fd);font-weight:700;font-size:14px;color:var(--green-ink);white-space:nowrap;}
.menu-toggle{display:none;margin-left:auto;background:none;border:2px solid var(--line);border-radius:10px;padding:8px 10px;cursor:pointer;color:var(--navy);}
.menu-toggle svg{width:22px;height:22px;}

/* ---------- home hero ---------- */
.hero{position:relative;overflow:hidden;padding:56px 0 80px;
  background:
    radial-gradient(640px 420px at 0% 0%,rgba(255,153,51,.16),transparent 70%),
    radial-gradient(640px 420px at 100% 100%,rgba(19,136,8,.13),transparent 70%),
    #fff;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center;}
.badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--fd);font-size:13px;font-weight:700;padding:7px 14px;border-radius:100px;background:#fff;border:1.5px solid var(--saffron);color:var(--saffron-ink);margin-bottom:20px;}
.badge::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green);}
.lede{font-size:clamp(17px,1.9vw,20px);max-width:52ch;margin-top:20px;color:var(--soft);}
.ticks{list-style:none;padding:0;margin:24px 0 0;display:grid;gap:10px;}
.ticks li{position:relative;padding-left:32px;font-weight:600;color:var(--ink);}
.ticks li::before{content:"";position:absolute;left:0;top:3px;width:21px;height:21px;border-radius:50%;background:var(--green);}
.ticks li::after{content:"";position:absolute;left:7px;top:9px;width:8px;height:4px;border-left:2.5px solid #fff;border-bottom:2.5px solid #fff;transform:rotate(-45deg);}
.hero-3d{position:relative;height:540px;}
.hero-3d canvas{position:absolute;inset:0;width:100%;height:100%;
  -webkit-mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 62%,transparent 100%);
  mask-image:radial-gradient(ellipse 50% 50% at 50% 50%,#000 62%,transparent 100%);}
.hero-3d .fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}
.hero-3d.ready .fallback{display:none;}

/* ---------- inner page hero ---------- */
.page-hero{padding:64px 0 70px;background:
  radial-gradient(520px 300px at 100% 0%,rgba(19,136,8,.12),transparent 70%),
  radial-gradient(520px 300px at 0% 100%,rgba(255,153,51,.14),transparent 70%),#fff;}
.page-hero .lede{max-width:62ch;}
.crumbs{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0 0 22px;font-size:14px;color:var(--soft);}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--saffron-ink);}
.crumbs a{color:var(--green-ink);font-weight:600;}

/* ---------- trust strip ---------- */
.trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;}
.trust-in{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding:22px;max-width:var(--maxw);margin:0 auto;font-family:var(--fd);font-size:14px;font-weight:700;color:var(--soft);}
.trust-in .stars{color:var(--saffron-ink);}

/* ---------- grids & cards ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px;border-top:4px solid var(--saffron);transition:transform .2s,box-shadow .2s;}
.card:nth-child(3n+2){border-top-color:var(--navy);}
.card:nth-child(3n+3){border-top-color:var(--green);}
a.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.card h3{margin:14px 0 10px;}
.card p{font-size:16px;}
.card .more{display:inline-block;margin-top:16px;font-family:var(--fd);font-weight:700;font-size:14px;color:var(--green-ink);}
.icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--saffron-tint);color:var(--saffron-ink);}
.card:nth-child(3n+2) .icon{background:#EEF0FB;color:var(--navy);}
.card:nth-child(3n+3) .icon{background:var(--green-tint);color:var(--green-ink);}
.icon svg{width:26px;height:26px;}

.pain h3{color:var(--saffron-ink);margin-bottom:10px;}
.pain{padding:26px;border-radius:var(--r);background:#fff;border:1px solid var(--line);}

/* why-us split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.checklist{list-style:none;padding:0;display:grid;gap:18px;}
.checklist li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;}
.checklist .num{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-weight:800;background:var(--green);color:#fff;}
.checklist li:nth-child(2n) .num{background:var(--saffron);color:var(--navy);}
.checklist b{display:block;font-family:var(--fd);color:var(--navy);font-size:17.5px;}
.checklist span{color:var(--soft);font-size:16px;}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;text-align:center;}
.stat b{display:block;font-family:var(--fd);font-weight:800;font-size:clamp(34px,4.4vw,52px);line-height:1;color:var(--saffron);}
.stat:nth-child(2n) b{color:#6BD66B;}
.stat span{display:block;margin-top:10px;color:rgba(255,255,255,.85);font-size:15px;}
.note{font-size:13px;opacity:.75;margin-top:22px;text-align:center;}

/* case studies */
.case{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:28px;}
.case b{display:block;font-family:var(--fd);font-size:46px;font-weight:800;line-height:1;color:var(--green-ink);}
.case:nth-child(3n+2) b{color:var(--saffron-ink);}
.case:nth-child(3n+3) b{color:var(--navy);}
.case .what{display:block;margin-top:8px;font-family:var(--fd);font-weight:700;color:var(--ink);}
.case p{margin-top:10px;font-size:15px;}

.quote{margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:34px 28px 28px;font-size:18px;color:var(--ink);line-height:1.6;position:relative;}
.quote::before{content:"\201C";position:absolute;top:-4px;left:20px;font-family:Georgia,serif;font-size:64px;color:var(--saffron);line-height:1;}
.quote cite{display:block;margin-top:14px;font-style:normal;font-size:15px;font-weight:700;color:var(--green-ink);}

/* offer band */
.offer{background:var(--saffron);}
.offer h2{color:var(--navy);}
.offer p{color:var(--navy-deep);}
.offer-in{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;}
.offer .btn-primary{background:var(--navy);color:#fff;box-shadow:none;}
.offer .btn-primary:hover{background:var(--navy-deep);}

/* steps */
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:s;}
.steps li{counter-increment:s;background:#fff;border-radius:var(--r);padding:28px;border:1px solid var(--line);}
.steps li::before{content:counter(s);display:flex;width:42px;height:42px;border-radius:50%;align-items:center;justify-content:center;font-family:var(--fd);font-weight:800;background:var(--navy);color:#fff;margin-bottom:16px;}
.steps li:nth-child(2)::before{background:var(--saffron);color:var(--navy);}
.steps li:nth-child(3)::before{background:var(--green);}
.steps b{display:block;font-family:var(--fd);font-size:19px;color:var(--navy);margin-bottom:8px;}
.steps span{color:var(--soft);font-size:16px;}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:10px;}
.chips.center{justify-content:center;}
.chips a,.chips span{padding:10px 18px;border-radius:100px;background:#fff;border:1.5px solid var(--line);font-family:var(--fd);font-weight:600;font-size:14.5px;color:var(--navy);}
.chips a:hover{border-color:var(--saffron);color:var(--saffron-ink);}

/* faq */
.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;}
details{border-bottom:1px solid var(--line);padding:18px 0;}
summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;font-family:var(--fd);font-weight:700;font-size:17px;color:var(--navy);}
summary::-webkit-details-marker{display:none;}
summary::after{content:"+";color:var(--saffron-ink);font-size:24px;line-height:1;flex:none;}
details[open] summary::after{content:"\2212";color:var(--green-ink);}
details p{margin-top:12px;}

/* included list */
.inc{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;}
.inc li{position:relative;padding-left:30px;color:var(--ink);font-weight:500;}
.inc li::before{content:"";position:absolute;left:0;top:7px;width:14px;height:14px;border-radius:4px;background:var(--saffron);}
.inc li:nth-child(2n)::before{background:var(--green);}

/* forms */
.lead{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.form-card{background:#fff;border-radius:calc(var(--r) + 4px);padding:32px;box-shadow:var(--shadow);border:1px solid var(--line);border-top:6px solid var(--saffron);}
.form-card h3{font-size:24px;margin-bottom:6px;}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;}
.form-grid .full{grid-column:1/-1;}
label{display:block;font-family:var(--fd);font-size:13.5px;font-weight:700;color:var(--navy);margin-bottom:6px;}
input,select,textarea{width:100%;padding:13px 14px;border-radius:10px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font-size:16px;transition:border-color .2s;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--saffron);box-shadow:0 0 0 3px rgba(255,153,51,.2);}
textarea{min-height:110px;resize:vertical;}
.consent{display:flex;gap:10px;align-items:flex-start;font-family:var(--fb);font-weight:400;font-size:14px;color:var(--soft);}
.consent input{width:auto;margin-top:5px;flex:none;}
.form-note{font-size:13px;color:var(--soft);margin-top:12px;}
.form-msg{margin-top:8px;font-weight:600;color:#B3261E;}
.contact-list{list-style:none;padding:0;display:grid;gap:16px;margin-top:26px;}
.contact-list li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:center;}
.contact-list .icon{width:44px;height:44px;}
.contact-list b{display:block;font-family:var(--fd);color:var(--navy);font-size:15px;}
.map-box{margin-top:28px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);aspect-ratio:16/10;background:var(--green-tint);display:flex;align-items:center;justify-content:center;color:var(--soft);font-size:14px;text-align:center;padding:20px;}

/* article / prose */
.prose{max-width:760px;}
.prose h2{font-size:clamp(24px,3vw,32px);margin:44px 0 14px;}
.prose h3{margin:28px 0 10px;}
.prose p{margin:0 0 16px;color:var(--ink);}
.prose ul,.prose ol{padding-left:22px;margin:0 0 18px;color:var(--ink);}
.prose li{margin-bottom:8px;}
.prose a{color:var(--green-ink);font-weight:600;text-decoration:underline;}
.meta{font-size:14px;color:var(--soft);margin-top:14px;}
.tip{background:var(--saffron-tint);border-left:5px solid var(--saffron);padding:18px 22px;border-radius:10px;margin:22px 0;}
.tip p{margin:0;}
.post-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .2s,box-shadow .2s;}
.post-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.post-card .thumb{height:150px;background:linear-gradient(to bottom,var(--saffron) 0 33.3%,#fff 33.3% 66.6%,var(--green) 66.6%);}
.post-card:nth-child(2) .thumb{background:linear-gradient(135deg,var(--navy),#2B3BB0);}
.post-card:nth-child(3) .thumb{background:linear-gradient(135deg,var(--green),#48B83E);}
.post-card .body{padding:22px;}
.post-card h3{font-size:18px;margin-bottom:8px;}
.post-card p{font-size:15px;}

.legal .prose h2{font-size:22px;margin-top:34px;}

/* final CTA */
.final{background:var(--green-tint);}

/* ---------- footer ---------- */
.site-footer{background:var(--navy-deep);color:rgba(255,255,255,.8);padding:70px 0 30px;font-size:15px;}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px;}
.site-footer h4{color:#fff;font-size:15px;margin-bottom:16px;}
.site-footer ul{list-style:none;padding:0;display:grid;gap:10px;}
.site-footer a:hover{color:var(--saffron);}
.site-footer .logo{color:#fff;}
.site-footer .logo span b{color:var(--saffron);}
.site-footer .logo span i{color:#6BD66B;}
.site-footer p{color:rgba(255,255,255,.72);margin-top:14px;}
.social{display:flex;gap:10px;margin-top:18px;}
.social a{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);}
.social a:hover{background:var(--saffron);color:var(--navy);}
.social svg{width:18px;height:18px;}
.foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);font-size:14px;}
/* "Find us" map section — standalone .sec, right above the footer on every page
   (see partials/map-section.php). The heading stays inside .wrap; .foot-map sits
   outside it so the map itself spans the full viewport width. */
.foot-map{margin-top:48px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.foot-map iframe{display:block;width:100%;height:400px;border:0;}
@media (max-width:900px){.foot-map iframe{height:320px;}}
@media (max-width:620px){.foot-map iframe{height:250px;}}

/* ---------- floating action-button stack (call / whatsapp / scroll-to-top) ----------
   Fixed bottom-right, same 3 circular buttons on every viewport — see partials/floaters.php. */
.fab-stack{position:fixed;right:20px;bottom:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;align-items:center;}
.fab{width:54px;height:54px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px -10px rgba(0,0,0,.45);transition:transform .2s ease,opacity .25s ease,visibility .25s;}
.fab:hover{transform:scale(1.08);}
.fab svg{width:24px;height:24px;}
.fab-call{background:var(--saffron);color:var(--navy);}
.fab-wa{background:#25D366;color:#fff;}
.fab-top{background:var(--navy);color:#fff;opacity:0;visibility:hidden;transform:translateY(12px) scale(.85);}
.fab-top.show{opacity:1;visibility:visible;transform:translateY(0) scale(1);}
@media (max-width:480px){.fab-stack{right:14px;bottom:14px;gap:10px;}.fab{width:48px;height:48px;}.fab svg{width:21px;height:21px;}}

/* ---------- 404 / thank-you ---------- */
.nf{text-align:center;padding:110px 0;}
.nf > .wrap > b{display:block;font-family:var(--fd);font-weight:800;font-size:clamp(90px,16vw,160px);line-height:1;background:linear-gradient(to bottom,var(--saffron) 0 36%,var(--navy) 36% 64%,var(--green) 64%);-webkit-background-clip:text;background-clip:text;color:transparent;}
.nf .lede{margin-left:auto;margin-right:auto;}
.nf .btns{justify-content:center;}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease;}
.rv.in{opacity:1;transform:none;}
.no-js .rv{opacity:1;transform:none;}

/* ---------- responsive ---------- */
@media (max-width:1040px){
  .menu{gap:16px;}
  .nav-tel{display:none;}
  .foot-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:900px){
  .menu-toggle{display:block;}
  .menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:#fff;padding:8px 22px 18px;box-shadow:0 20px 30px -20px rgba(0,0,64,.4);}
  .menu.open{display:flex;}
  .menu a{display:block;padding:13px 0;border-bottom:1px solid var(--line);}
  .nav > .btn{display:none;}
  /* hero: same 3D scene, shown above the headline */
  .hero{padding:10px 0 60px;}
  .hero-grid{grid-template-columns:1fr;gap:6px;}
  .hero-3d{order:-1;height:44svh;min-height:300px;max-height:420px;}
  .grid-3,.grid-4{grid-template-columns:1fr 1fr;}
  .split,.lead,.faq{grid-template-columns:1fr;gap:34px;}
  .stats{grid-template-columns:1fr 1fr;gap:34px;}
  .steps{grid-template-columns:1fr;}
}
@media (max-width:620px){
  body{font-size:16.5px;}
  .sec{padding:66px 0;}
  .grid-3,.grid-4,.grid-2,.inc,.form-grid{grid-template-columns:1fr;}
  .form-card{padding:24px 20px;}
  .foot-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .rv{opacity:1;transform:none;transition:none;}
  .btn:hover,a.card:hover,.post-card:hover{transform:none;}
}

/* =========================================================
   BEACON THEME OVERRIDE — dark teal · sunflower · mint
   (Concept 9 palette applied over the same structure)
   ========================================================= */
:root{
  --saffron:#FFC940;        /* sunflower: buttons, fills */
  --saffron-dark:#F5B72A;
  --saffron-ink:#FFC940;    /* sunflower TEXT on dark */
  --saffron-tint:#0A272E;   /* alternate section surface */
  --green:#5FD8CF;          /* mint: secondary fills */
  --green-dark:#49C4BB;
  --green-ink:#5FD8CF;      /* mint TEXT on dark */
  --green-tint:#092A31;
  --navy:#EAF6F5;           /* headings are now light */
  --navy-deep:#041A20;      /* footer */
  --ink:#EAF6F5;
  --soft:#9BBDBF;
  --line:rgba(234,246,245,.14);
  --white:#062026;          /* page background */
  --surface:#0C2C33;        /* cards, forms, panels */
  --on-accent:#10231B;      /* dark text on yellow/mint */
  --shadow:0 20px 44px -24px rgba(0,0,0,.65);
}
::selection{background:var(--saffron);color:var(--on-accent);}
.tricolor{background:linear-gradient(90deg,var(--saffron),var(--green));height:4px;}

/* surfaces */
.site-header{background:rgba(6,32,38,.92);}
.site-header.scrolled{box-shadow:0 8px 26px -14px rgba(0,0,0,.7);}
.menu{background:var(--surface);}
.card,.pain,.case,.steps li,.quote,.post-card,.form-card,.chips a,.chips span,
.rules li,.badge{background:var(--surface);}
.trust{background:var(--white);}
.badge{border-color:var(--saffron);}
input,select,textarea{background:#08252B;color:var(--ink);}
input::placeholder,textarea::placeholder{color:#6F9296;}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px rgba(255,201,64,.22);}

/* accent text needs dark ink on yellow / mint fills */
.btn-primary{color:var(--on-accent);box-shadow:0 12px 26px -14px rgba(255,201,64,.75);}
.btn-green{color:var(--on-accent);}
.btn-outline{border-color:var(--green);color:var(--ink);}
.btn-outline:hover{background:var(--green);color:var(--on-accent);}
.ticks li::after{border-left-color:var(--on-accent);border-bottom-color:var(--on-accent);}
.checklist .num{color:var(--on-accent);}
.checklist li:nth-child(2n) .num{color:var(--on-accent);}
.steps li::before{background:var(--green);color:var(--on-accent);}
.steps li:nth-child(2)::before{background:var(--saffron);color:var(--on-accent);}
.steps li:nth-child(3)::before{background:#0B6E75;color:var(--ink);}
.fab-call{color:var(--on-accent);}
.fab-top{background:var(--green);color:var(--on-accent);}

/* bands */
.sec-navy{background:var(--surface);}
.sec-navy p{color:var(--soft);}
.sec-navy .hl-g{color:var(--green);}
.offer{background:var(--saffron);}
.offer h2,.offer p{color:var(--on-accent);}
.offer .btn-primary{background:var(--on-accent);color:var(--saffron);}
.offer .btn-primary:hover{background:#061C16;}
.final{background:var(--green-tint);}

/* icons */
.icon{background:rgba(255,201,64,.14);color:var(--saffron);}
.card:nth-child(3n+2) .icon{background:rgba(95,216,207,.14);color:var(--green);}
.card:nth-child(3n+3) .icon{background:rgba(255,255,255,.07);color:var(--ink);}
.contact-list .icon{background:rgba(255,201,64,.14);color:var(--saffron);}

/* hero glow */
.hero{background:
  radial-gradient(700px 460px at 8% 0%,rgba(255,201,64,.16),transparent 70%),
  radial-gradient(700px 460px at 100% 100%,rgba(95,216,207,.12),transparent 70%),
  var(--white);}
.page-hero{background:
  radial-gradient(560px 320px at 100% 0%,rgba(95,216,207,.12),transparent 70%),
  radial-gradient(560px 320px at 0% 100%,rgba(255,201,64,.14),transparent 70%),var(--white);}

/* misc */
.post-card .thumb{background:linear-gradient(135deg,var(--saffron),#0B6E75);}
.post-card:nth-child(2) .thumb{background:linear-gradient(135deg,var(--green),#0B6E75);}
.post-card:nth-child(3) .thumb{background:linear-gradient(135deg,#0B6E75,var(--saffron));}
.tip{background:rgba(255,201,64,.10);border-left-color:var(--saffron);}
.map-box{background:var(--surface);}
.nf > .wrap > b{background:linear-gradient(to bottom,var(--saffron) 0 50%,var(--green) 50%);-webkit-background-clip:text;background-clip:text;}
.site-footer{background:var(--navy-deep);}
.site-footer .logo span b{color:var(--saffron);}
.site-footer .logo span i{color:var(--green);}
.social a:hover{background:var(--saffron);color:var(--on-accent);}
.stat:nth-child(2n) b{color:var(--green);}
.stat span{color:var(--soft);}
.form-msg{color:#FF8B8B;}

/* =========================================================
   SITE EXTENSION — nav dropdowns for Services / Industries
   (beacon's own package only has flat top-level nav items;
   this project has 10 service pages + 18 industry pages that
   need a mega-menu, styled to match the Beacon surface/palette)
   ========================================================= */
.menu li.has-sub{position:relative;}
.menu li.has-sub>a{display:flex;align-items:center;gap:6px;}
.menu li.has-sub>a::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.7;}
.menu .sub{display:none;position:absolute;top:100%;left:0;min-width:260px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:10px;box-shadow:var(--shadow);z-index:60;margin-top:8px;}
.menu .sub.wide{min-width:540px;column-count:2;column-gap:4px;}
.menu li.has-sub:hover>.sub,.menu li.has-sub:focus-within>.sub{display:block;}
.menu .sub a{display:block;padding:9px 12px;border-radius:8px;font-weight:600;font-size:14px;color:var(--ink);border:none;break-inside:avoid;}
.menu .sub a:hover{background:rgba(255,201,64,.14);color:var(--saffron);}
@media (max-width:900px){
  .menu li.has-sub>.sub{position:static;display:block;box-shadow:none;border:none;background:transparent;padding:0 0 0 14px;column-count:1;margin-top:0;}
  .menu li.has-sub>a{justify-content:space-between;}
}

/* home hero: brand logo mark used inside the 3D-hero fallback / no-WebGL state */
.hero-3d .fallback img{width:180px;height:180px;object-fit:contain;opacity:.9;}

/* =========================================================
   SITE EXTENSION — fixed social-media rail (left edge)
   Admin-managed links (Admin > Settings > Social Links); only the
   platforms with a URL saved are rendered — see partials/social-rail.php.
   Left edge so it never collides with .fab-stack (right/bottom).
   ========================================================= */
.social-rail{position:fixed;top:50%;left:16px;transform:translateY(-50%);z-index:58;
  display:flex;flex-direction:column;gap:10px;background:var(--surface);
  padding:10px 7px;border-radius:999px;box-shadow:var(--shadow);}
.social-rail a{display:flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:50%;color:var(--ink);border:1.5px solid var(--line);background:transparent;
  transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease,border-color .2s ease;}
.social-rail svg{width:17px;height:17px;fill:currentColor;pointer-events:none;}
.social-rail a:hover,.social-rail a:focus-visible{transform:scale(1.12);background:var(--saffron);
  border-color:var(--saffron);color:var(--on-accent);box-shadow:0 0 14px 1px rgba(255,201,64,.55);outline:none;}
@media (max-width:900px){.social-rail{display:none;}}  /* decluttered off small screens, alongside .fab-stack */
@media (prefers-reduced-motion:reduce){.social-rail a{transition:none;}.social-rail a:hover{transform:none;}}

/* =========================================================
   SITE FIX — .btn-primary vs. the legacy assets/css/style.css class of the
   same name (still loaded first, for the un-migrated blog/thank-you pages
   and content-block CTAs — see its own "NOTE" comment on .btn-primary).
   That legacy rule forces color:#fff !important plus an uppercase transform
   and letter-spacing that Beacon's own .btn-primary never asked for. Scoped
   to the compound .btn.btn-primary selector Beacon markup always uses (the
   legacy rule's callers never pair it with .btn), with !important only
   because that is the sole way to out-rank another !important declaration.
   ========================================================= */
.btn.btn-primary{color:var(--on-accent) !important;text-transform:none !important;letter-spacing:normal !important;}
.offer .btn.btn-primary{color:var(--saffron) !important;}

/* =========================================================
   SITE FIX — a very long single word in a heading (e.g. "Ophthalmology" in
   an industry-page H1) has no natural break point and beacon.css sets none
   of its own, so it could push the page wider than the viewport on narrow
   phones. Only changes anything when a word actually doesn't fit.
   ========================================================= */
h1,h2,h3{overflow-wrap:break-word;word-break:break-word;}

/* =========================================================
   SITE EXTENSION — footer QR code (Admin > Settings > Header & Footer).
   White box so the code stays scannable against the dark theme; sized by
   its own module count (denser codes render a little larger).
   ========================================================= */
.foot-qr{display:inline-block;margin-top:16px;background:#fff;border-radius:10px;padding:8px;line-height:0;}
.foot-qr img{display:block;}

/* =========================================================
   SITE EXTENSION — blog post cards with a real featured image (Beacon's own
   .post-card .thumb is decorative-gradient-only, for the reference package's
   placeholder cards). Falls back to that same gradient when a post has none.
   ========================================================= */
.post-card .thumb{overflow:hidden;position:relative;}
.post-card .thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.post-card-cat{display:inline-block;font-family:var(--fd);font-size:12.5px;font-weight:700;color:var(--green-ink);margin-bottom:6px;}
