/* =========================================================================
   iTAuditor — Ravindra Gandhi | Personal Professional Profile
   Design System — v1.1
   Colors, type, spacing and components. Single stylesheet, no build step.
   ========================================================================= */

/* ---------- Design tokens ---------- */
:root{
  /* Color */
  --ink:#0B2A55;            /* Primary Dark — dark sections, footer, hero */
  --navy:#153E75;           /* Primary — links, buttons, icons */
  --slate:#4B5A70;          /* Secondary text */
  --green:#5E8F2E;          /* Verified accent — sparing use */
  --green-text:#3F6320;     /* Darker green — WCAG AA safe for text/icons on light backgrounds */
  --green-tint:#EDF3E6;     /* Sage tint background */
  --champagne:#B08D3F;      /* Decorative-only premium accent */
  --bg:#FFFFFF;
  --surface:#F7F9FC;
  --border:#E2E8F0;
  --text:#101828;
  --text-2:#4B5A70;
  --success:#2E7D46;
  --warning:#B7791F;
  --error:#C0392B;
  --white:#FFFFFF;

  /* Type */
  --font-head:'Plus Jakarta Sans', 'Inter', sans-serif;
  --font-body:'Inter', sans-serif;

  /* Spacing (8px grid) */
  --s1:8px; --s2:16px; --s3:24px; --s4:32px; --s6:48px; --s8:64px; --s12:96px; --s16:128px;

  /* Radius / shadow */
  --r-card:12px; --r-btn:8px; --r-pill:999px;
  --shadow-rest:0 4px 24px rgba(16,24,40,.06);
  --shadow-hover:0 12px 32px rgba(16,24,40,.10);

  --maxw:1280px;
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{margin:0;font-family:var(--font-body);color:var(--text);background:var(--bg);line-height:1.6;font-size:16px;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:var(--navy);text-decoration:none;}
ul{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,h5{font-family:var(--font-head);color:var(--text);line-height:1.2;margin:0 0 var(--s2);font-weight:700;}
p{margin:0 0 var(--s3);color:var(--text-2);}
button{font-family:inherit;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 var(--s3);}
@media(max-width:767px){.container{padding:0 var(--s2);}}

.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:8px 16px;z-index:200;}
.skip:focus{left:8px;top:8px;}

/* ---------- Type scale ---------- */
h1{font-size:56px;letter-spacing:-0.02em;}
h2{font-size:40px;letter-spacing:-0.01em;}
h3{font-size:28px;}
h4{font-size:20px;}
.lead{font-size:18px;line-height:1.6;max-width:760px;}
.eyebrow{font-family:var(--font-head);font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green-text);margin-bottom:var(--s2);}
.caption{font-size:14px;color:var(--text-2);}
@media(max-width:767px){
  h1{font-size:34px;} h2{font-size:28px;} h3{font-size:22px;} h4{font-size:18px;}
  .lead{font-size:17px;}
}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-head);font-weight:600;font-size:15px;padding:14px 24px;border-radius:var(--r-btn);border:1.5px solid transparent;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;white-space:nowrap;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--navy);color:#fff;}
.btn-primary:hover{background:var(--ink);box-shadow:var(--shadow-hover);}
.btn-secondary{background:transparent;color:var(--navy);border-color:var(--border);}
.btn-secondary:hover{border-color:var(--navy);background:var(--surface);}
.btn-ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.35);}
.btn-ghost-light:hover{background:rgba(255,255,255,.1);}
.btn-outline-green{background:var(--green-tint);color:var(--green-text);border-color:transparent;}
.btn-outline-green:hover{background:#E1EDD5;}
.btn .arrow{transition:transform .15s ease;}
.btn:hover .arrow{transform:translateX(3px);}
.cta-row{display:flex;gap:var(--s2);flex-wrap:wrap;margin:var(--s3) 0;}

/* ---------- Utility bar ---------- */
.utility-bar{background:var(--ink);color:#cfe0f5;font-size:13px;}
.utility-bar .container{display:flex;justify-content:space-between;align-items:center;padding-top:8px;padding-bottom:8px;}
.utility-bar a{color:#cfe0f5;margin-right:20px;}
.utility-bar a:hover{color:#fff;}
.util-firm-link{color:#BFE3A0!important;font-weight:600;white-space:nowrap;}
@media(max-width:767px){
  .utility-bar .util-left a:nth-child(2){display:none;}
  .utility-bar .container{font-size:12px;}
}

/* ---------- Nav ---------- */
.nav{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);}
.nav .container{display:flex;align-items:center;justify-content:space-between;height:76px;gap:var(--s3);}
.brand{display:flex;align-items:center;gap:10px;}
.brand-mark{width:38px;height:38px;flex:none;}
.brand-text{display:flex;flex-direction:column;line-height:1.1;}
.brand-name{font-family:var(--font-head);font-weight:800;font-size:20px;color:var(--navy);font-style:italic;letter-spacing:-.01em;}
.brand-tag{font-size:10.5px;font-weight:600;color:var(--green-text);letter-spacing:.02em;}
.brand-sub{font-size:10px;color:var(--text-2);}
.menu{display:flex;align-items:center;gap:var(--s3);flex:1;justify-content:center;}
.menu>li{position:relative;}
.menu a{font-family:var(--font-head);font-weight:600;font-size:15px;color:var(--text);padding:8px 2px;display:flex;align-items:center;gap:4px;}
.menu a:hover{color:var(--navy);}
.caret{transition:transform .15s ease;}
.has-mega:hover .caret{transform:rotate(180deg);}
.mega-menu{position:absolute;top:100%;left:-16px;background:#fff;box-shadow:var(--shadow-hover);border-radius:var(--r-card);border:1px solid var(--border);padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:2px;min-width:460px;opacity:0;visibility:hidden;transform:translateY(6px);transition:all .15s ease;}
.has-mega:hover .mega-menu,.has-mega:focus-within .mega-menu{opacity:1;visibility:visible;transform:translateY(0);}
.mega-menu li a{padding:10px 12px;border-radius:8px;font-weight:500;font-size:14px;}
.mega-menu li a:hover{background:var(--surface);}
.mega-menu li.all a{color:var(--green-text);font-weight:700;grid-column:1/-1;border-top:1px solid var(--border);margin-top:4px;padding-top:12px;}
.nav-cta{flex:none;}
.menu-toggle{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;background:none;border:none;padding:0;width:44px;height:44px;min-width:44px;min-height:44px;cursor:pointer;position:relative;z-index:5;touch-action:manipulation;-webkit-tap-highlight-color:transparent;flex:none;}
.menu-toggle span{width:22px;height:2px;background:var(--ink);border-radius:2px;}

@media(max-width:1023px){
  .nav{backdrop-filter:none;background:#fff;}
  .menu{display:none;position:fixed;inset:64px 0 0 0;background:#fff;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:var(--s3);overflow-y:auto;gap:0;z-index:99;}
  .menu.open{display:flex;}
  .menu>li{width:100%;border-bottom:1px solid var(--border);}
  .menu a{padding:16px 4px;width:100%;justify-content:space-between;}
  .mega-menu{position:static;box-shadow:none;border:none;display:none;grid-template-columns:1fr;min-width:0;opacity:1;visibility:visible;transform:none;padding-left:8px;}
  .has-mega.open-sub .mega-menu{display:grid;}
  .nav-cta{display:none;}
  .menu-toggle{display:flex;}
  .nav .container{height:64px;}
  .brand-sub{display:none;}
}
/* Narrow-desktop gap: above the mobile cutover but still too tight for the
   full 3-line brand block (name + tagline + "Personal profile of..."), which
   was wrapping onto 2-3 lines and crowding the nav between roughly 1024 and
   1150px -- a common laptop browser width. Hide the subtitle here too; it
   comfortably fits again once the nav has more room. */
@media(min-width:1024px) and (max-width:1199px){
  .brand-sub{display:none;}
  .brand-tag{display:none;}
}

/* ---------- Hero ---------- */
.hero{padding:var(--s8) 0 var(--s6);background:linear-gradient(180deg,#F7F9FC 0%,#fff 65%);overflow:hidden;}
.hero .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s6);align-items:center;}
.hero h1{margin-bottom:var(--s2);}
.hl{color:var(--navy);position:relative;}
.hero-sub{font-size:19px;max-width:560px;}
.trust-strip{margin-top:var(--s4);}
.trust-strip .label{font-size:12px;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px;}
.badge-pill{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--navy);background:var(--white);border:1px solid var(--border);border-radius:var(--r-pill);padding:6px 12px;margin:0 8px 8px 0;}
.badge-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--green);}
.hero-visual{background:var(--ink);border-radius:20px;padding:var(--s3);box-shadow:var(--shadow-hover);position:relative;}
.visual-header{display:flex;justify-content:space-between;color:#BFD3EE;font-size:12px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;margin-bottom:14px;padding:0 4px;}
.evidence-card{display:flex;gap:12px;align-items:flex-start;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:14px;margin-bottom:10px;}
.evidence-card .check{width:22px;height:22px;border-radius:50%;background:var(--green-text);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;flex:none;}
.evidence-card .title{color:#fff;font-weight:600;font-size:14px;}
.evidence-card .meta{color:#9FB6D6;font-size:12.5px;margin-top:2px;}
/* Mobile/tablet: headline and value proposition first; the decorative
   evidence panel follows the text so the H1 is never pushed below the fold. */
@media(max-width:1023px){.hero .grid{grid-template-columns:1fr;}.hero-visual{max-width:520px;}}
@media(max-width:767px){.hero{padding:var(--s6) 0 var(--s4);}}

/* ---------- Sections ---------- */
section{padding:var(--s8) 0;}
.section-tint{background:var(--surface);}
.dark-section{background:var(--ink);color:#fff;}
.dark-section h2,.dark-section h3,.dark-section h4{color:#fff;}
.dark-section p{color:#B9CAE3;}
.dark-section .eyebrow{color:#8FD65A;}
@media(max-width:767px){section{padding:var(--s6) 0;}}

/* ---------- Credential badge strip ---------- */
.creds-section{padding:var(--s4) 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.creds-section .container{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--s6);opacity:.85;}
.creds-section img,.creds-section .badge-svg{height:36px;}

/* ---------- Practice structure card ---------- */
.practice-card{background:var(--green-tint);border:1px solid #D8E7C8;border-left:4px solid var(--green);border-radius:var(--r-card);padding:var(--s4);margin:var(--s4) 0;}
.practice-card p{color:var(--text);margin-bottom:var(--s2);font-size:16px;}
.practice-card p:last-child{margin-bottom:0;}
.practice-card .practice-label{font-family:var(--font-head);font-weight:700;font-size:13px;color:var(--green-text);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;}

/* ---------- Firm hand-off card ---------- */
.firm-card{background:var(--ink);border-radius:16px;padding:var(--s4) var(--s4);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;}
.firm-card .firm-copy h4{color:#fff;margin-bottom:6px;}
.firm-card .firm-copy p{color:#B9CAE3;margin-bottom:0;max-width:520px;}
.firm-card .firm-name{color:#8FD65A;font-weight:700;}

/* ---------- Pain / grid cards ---------- */
.pain-grid,.services-grid,.ins-grid,.why-grid,.ind-grid,.faq-topics-grid{display:grid;gap:var(--s3);margin-top:var(--s4);}
.pain-grid{grid-template-columns:repeat(3,1fr);}
.services-grid{grid-template-columns:repeat(3,1fr);}
.why-grid{grid-template-columns:repeat(3,1fr);}
.ins-grid{grid-template-columns:repeat(3,1fr);}
.ind-grid{grid-template-columns:repeat(3,1fr);}
@media(max-width:1023px){.pain-grid,.services-grid,.why-grid,.ins-grid,.ind-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.pain-grid,.services-grid,.why-grid,.ins-grid,.ind-grid{grid-template-columns:1fr;}}

.pain-card,.service-card,.why,.ind,.ins-card,.cred-card,.faq-topic{background:#fff;border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s3);box-shadow:var(--shadow-rest);transition:box-shadow .15s ease,transform .15s ease;}
.pain-card:hover,.service-card:hover,.ins-card:hover,.cred-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px);}
.pain-card h4{margin-bottom:8px;}
.pain-card p{margin-bottom:0;font-size:15px;}

.service-card{display:block;color:inherit;}
.service-icon{width:44px;height:44px;border-radius:10px;background:var(--green-tint);color:var(--green-text);display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:800;font-size:14px;margin-bottom:14px;}
.service-card h4{margin-bottom:8px;font-size:19px;}
.service-card p{font-size:14.5px;margin-bottom:14px;}
.service-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;}
.service-tags span{font-size:11px;font-weight:600;color:var(--navy);background:var(--surface);border-radius:var(--r-pill);padding:3px 10px;}
.learn{color:var(--green-text);font-weight:600;font-size:14px;}

.why{display:flex;gap:14px;align-items:flex-start;}
.why-tick{width:28px;height:28px;border-radius:50%;background:var(--green-text);color:#fff;display:flex;align-items:center;justify-content:center;flex:none;font-size:14px;font-weight:700;}
.why h4{margin-bottom:4px;font-size:17px;}
.why p{margin-bottom:0;font-size:14.5px;}

.ind{display:flex;gap:14px;align-items:flex-start;}
.ind-ico{width:44px;height:44px;border-radius:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);color:#8FD65A;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex:none;}
.dark-section .ind{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--r-card);padding:var(--s3);}
.ind .name{color:#fff;font-weight:700;font-size:16px;}
.ind .meta{color:#9FB6D6;font-size:13.5px;margin-top:2px;}

.quote-block{font-family:var(--font-head);font-size:22px;font-weight:600;color:var(--navy);border-left:4px solid var(--green);padding-left:var(--s3);margin:var(--s4) 0;max-width:720px;}

/* ---------- Methodology steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3);margin-top:var(--s4);position:relative;}
.step{background:#fff;border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s3);}
.step-num{font-family:var(--font-head);font-weight:800;font-size:28px;color:var(--green-tint);-webkit-text-stroke:1.5px var(--green);color:transparent;margin-bottom:10px;}
.step h4{margin-bottom:6px;}
.step p{font-size:14.5px;margin-bottom:0;}
@media(max-width:1023px){.steps{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.steps{grid-template-columns:1fr;}}

/* ---------- Stats band ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3);margin-top:var(--s4);text-align:center;}
.stat .num{font-family:var(--font-head);font-weight:800;font-size:44px;color:#fff;}
.stat .num .plus{color:#8FD65A;}
.stat .lbl{color:#9FB6D6;font-size:14px;margin-top:6px;}
@media(max-width:640px){.stats{grid-template-columns:repeat(2,1fr);}}

/* ---------- Client success redirect card ---------- */
.success-card{display:flex;align-items:center;gap:var(--s3);justify-content:space-between;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s4);margin-top:var(--s4);}
.success-card .success-copy h4{margin-bottom:4px;}
.success-card .success-copy p{margin-bottom:0;font-size:14.5px;}

/* ---------- Credentials page ---------- */
.cred-card{display:flex;gap:14px;align-items:flex-start;}
.cred-badge{width:52px;height:52px;border-radius:50%;background:var(--ink);color:#8FD65A;display:flex;align-items:center;justify-content:center;font-family:var(--font-head);font-weight:800;font-size:13px;flex:none;}
.cred-card h4{margin-bottom:4px;font-size:17px;}
.cred-card p{margin-bottom:8px;font-size:14px;}
.verified-tag{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--green-text);background:var(--green-tint);border-radius:var(--r-pill);padding:3px 10px;}

/* ---------- Testimonial (used sparingly on Home only) ---------- */
.t-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3);margin-top:var(--s4);}
.t-card{background:#fff;border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s3);box-shadow:var(--shadow-rest);}
.t-stars{color:var(--champagne);letter-spacing:2px;margin-bottom:10px;font-size:14px;}
.t-body{font-size:15px;color:var(--text);margin-bottom:14px;}
.t-author{display:flex;align-items:center;gap:10px;}
.t-avatar{width:38px;height:38px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:none;}
.t-name{font-weight:700;font-size:14px;}
.t-co{font-size:12.5px;color:var(--text-2);}
@media(max-width:767px){.t-grid{grid-template-columns:1fr;}}

/* ---------- Insights cards ---------- */
.ins-card{overflow:hidden;padding:0;}
.ins-thumb{height:150px;background:linear-gradient(135deg,var(--ink),var(--navy));display:flex;flex-direction:column;justify-content:flex-end;padding:var(--s2);position:relative;}
.ins-thumb.green{background:linear-gradient(135deg,#274012,#3A5E20);}
.ins-thumb.gold{background:linear-gradient(135deg,#4F3F19,#63501F);}
.ins-tag{position:absolute;top:12px;left:12px;background:rgba(255,255,255,.18);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:var(--r-pill);}
.ins-thumb strong{color:#fff;font-family:var(--font-head);font-size:15px;}
.ins-body{padding:var(--s3);}
.ins-body h4{font-size:17px;margin-bottom:8px;}
.ins-body p{font-size:14.5px;margin-bottom:12px;}
.ins-meta{display:flex;gap:10px;font-size:12.5px;color:var(--text-2);margin-bottom:10px;}
.link{color:var(--green-text);font-weight:600;font-size:14px;}

/* ---------- FAQ ---------- */
.faq-group{margin-bottom:var(--s4);}
.faq-group h3{margin-bottom:var(--s2);}
.faq-item{border-bottom:1px solid var(--border);}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:18px 0;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-head);font-weight:600;font-size:16px;color:var(--text);cursor:pointer;gap:12px;}
.faq-q .chev{transition:transform .2s ease;flex:none;color:var(--navy);}
.faq-item.open .faq-q .chev{transform:rotate(180deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-a p{padding-bottom:18px;margin-bottom:0;}
.faq-item.open .faq-a{max-height:600px;}

/* ---------- Forms ---------- */
.form-grid{display:grid;gap:var(--s2);}
label{display:block;font-family:var(--font-head);font-weight:600;font-size:13.5px;margin-bottom:6px;color:var(--text);}
input,select,textarea{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r-btn);font-family:var(--font-body);font-size:15px;background:#fff;color:var(--text);}
input:focus,select:focus,textarea:focus{outline:2px solid var(--navy);outline-offset:1px;}
.field{margin-bottom:var(--s2);}
.form-note{font-size:12.5px;color:var(--text-2);margin-top:var(--s1);}

/* ---------- Contact split ---------- */
.contact-split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);align-items:start;}
.contact-split>*{min-width:0;} /* prevent nowrap CTAs inside the cards from blowing out the grid track on narrow phones */
.contact-path{border-radius:var(--r-card);padding:var(--s4);}
.contact-path.personal{background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-rest);}
.contact-path.commercial{background:var(--ink);color:#fff;}
.contact-path.commercial h3,.contact-path.commercial h4{color:#fff;}
.contact-path.commercial p{color:#B9CAE3;}
.channel-list{display:flex;flex-direction:column;gap:12px;margin-top:var(--s3);}
.channel-list a{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;}
.contact-path.personal .channel-list a{color:var(--navy);}
.contact-path.commercial .channel-list a{color:#fff;}
.channel-ico{width:44px;height:44px;border-radius:50%;background:var(--green-tint);color:var(--green-text);display:flex;align-items:center;justify-content:center;flex:none;}
.contact-path.commercial .channel-ico{background:rgba(255,255,255,.12);color:#8FD65A;}
.map-embed{border-radius:var(--r-card);overflow:hidden;border:1px solid var(--border);margin-top:var(--s3);}
@media(max-width:900px){.contact-split{grid-template-columns:1fr;}}

/* ---------- Final CTA ---------- */
.final-cta{background:var(--ink);color:#fff;text-align:center;}
.final-cta h2,.final-cta .eyebrow{color:#fff;}
.final-cta .eyebrow{color:#8FD65A;}
.final-cta p{color:#B9CAE3;max-width:640px;margin:0 auto var(--s3);}
.final-cta .cta-row{justify-content:center;}
.final-cta .micro{color:#8CA3C4;font-size:13.5px;margin-top:var(--s2);}

/* ---------- Footer ---------- */
footer{background:#081E3F;color:#B9CAE3;padding-top:var(--s8);}
footer .grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:var(--s4);padding-bottom:var(--s6);}
footer h5{color:#fff;font-size:14px;text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--s2);}
footer ul li{margin-bottom:10px;}
footer a{color:#B9CAE3;font-size:14.5px;}
footer a:hover{color:#fff;}
.foot-tag{font-size:14px;max-width:320px;color:#8CA3C4;}
.foot-brand-name{font-family:var(--font-head);font-weight:800;font-size:22px;color:#fff;font-style:italic;}
.foot-brand-tag{font-size:12px;color:#8FD65A;font-weight:600;margin:2px 0 14px;}
.firm-block{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-card);padding:var(--s3);}
.firm-block .fb-name{color:#fff;font-weight:800;font-family:var(--font-head);font-size:16px;margin-bottom:6px;}
.firm-block p{font-size:13.5px;color:#8CA3C4;margin-bottom:14px;}
.foot-contact span{display:block;color:#fff;font-weight:700;margin-bottom:6px;}
.foot-contact a{display:block;margin-bottom:6px;}
.foot-bottom{border-top:1px solid rgba(255,255,255,.1);padding:var(--s3) 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13px;color:#7C93B7;}
.foot-bottom a{color:#7C93B7;}
.foot-bottom a:hover{color:#fff;}
@media(max-width:900px){footer .grid{grid-template-columns:1fr 1fr;}}
@media(max-width:640px){footer .grid{grid-template-columns:1fr;}}

/* ---------- Mobile sticky CTA ---------- */
.mobile-cta{display:none;position:fixed;bottom:0;left:0;right:0;z-index:120;background:#fff;border-top:1px solid var(--border);padding:10px var(--s2);gap:10px;box-shadow:0 -6px 20px rgba(16,24,40,.08);}
.mobile-cta .btn{flex:1;justify-content:center;padding:13px 10px;font-size:14px;}
.mobile-cta .btn.call{background:var(--surface);color:var(--navy);border-color:var(--border);}
.mobile-cta .btn.book{background:var(--navy);color:#fff;}
@media(max-width:1023px){.mobile-cta{display:flex;}body{padding-bottom:70px;}}

/* ---------- Breadcrumb ---------- */
.breadcrumb{font-size:13px;color:var(--text-2);padding:var(--s2) 0 0;}
.breadcrumb a{color:var(--text-2);}
.breadcrumb a:hover{color:var(--navy);}

/* ---------- Scroll to top ---------- */
.scrolltop{position:fixed;right:20px;bottom:88px;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-hover);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:110;border:none;cursor:pointer;}
.scrolltop.show{opacity:1;pointer-events:auto;}
@media(min-width:1024px){.scrolltop{bottom:28px;}}

/* ---------- Reveal animation ----------
   Progressive enhancement: content is only hidden for the entrance animation
   once site.js has confirmed it is running (html.js). If JavaScript is
   disabled, blocked, or fails to load, every section stays fully visible. */
html.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .5s ease,transform .5s ease;}
html.js .reveal.in{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion: reduce){html.js .reveal{opacity:1;transform:none;transition:none;}html{scroll-behavior:auto;}}

/* ---------- Article ---------- */
.article-body{max-width:720px;font-size:17px;line-height:1.75;}
.article-body h2{font-size:28px;margin-top:var(--s6);}
.article-body h3{font-size:22px;margin-top:var(--s4);}
.article-body p{color:var(--text);margin-bottom:var(--s3);}
.article-body blockquote{border-left:4px solid var(--green);padding-left:var(--s3);font-family:var(--font-head);font-size:20px;color:var(--navy);margin:var(--s4) 0;}
.article-meta{display:flex;gap:14px;align-items:center;color:var(--text-2);font-size:14px;margin-bottom:var(--s4);}
.author-card{display:flex;gap:14px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:var(--s3);margin-top:var(--s6);max-width:720px;}
.author-avatar{width:56px;height:56px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex:none;}

/* ---------- Filter tags ---------- */
.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin:var(--s3) 0 var(--s2);}
.filter-tag{font-size:13.5px;font-weight:600;padding:8px 16px;border-radius:var(--r-pill);border:1px solid var(--border);background:#fff;color:var(--text-2);cursor:pointer;}
.filter-tag.active{background:var(--navy);color:#fff;border-color:var(--navy);}

/* ---------- Legal ---------- */
.legal-body{max-width:760px;font-size:15.5px;}
.legal-body h2{font-size:22px;margin-top:var(--s6);}
.legal-body p,.legal-body li{color:var(--text);}
.legal-body ul{margin:0 0 var(--s3);padding-left:20px;list-style:disc;}
.legal-updated{color:var(--text-2);font-size:14px;margin-bottom:var(--s4);}

/* ---------- 404 ---------- */
.error-page{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--s8) 0;}
.error-code{font-family:var(--font-head);font-weight:800;font-size:96px;color:var(--surface);-webkit-text-stroke:2px var(--navy);color:transparent;}

/* ---------- Single-scroll-page anchor offsets + active nav state ---------- */
section[id]{scroll-margin-top:92px;}
.menu a.active-section{color:var(--navy);}
.menu a.active-section::after{content:"";display:block;height:2px;background:var(--green);margin-top:4px;border-radius:2px;}
@media(max-width:1023px){.menu a.active-section::after{display:none;}}

/* ---------- Mobile hardening: fixed-column grids that must collapse ---------- */
/* Used instead of ad-hoc inline grid-template-columns, which would otherwise
   override the responsive .pain-grid rules and stay multi-column on phones. */
.about-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start;}
@media(max-width:900px){.about-grid{grid-template-columns:1fr;gap:32px;}}

.grid-2col-fixed{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s3);margin-top:var(--s4);}
@media(max-width:640px){.grid-2col-fixed{grid-template-columns:1fr;}}

/* Balance the credentials grid when it holds an odd number of cards:
   let the last odd card span both columns instead of sitting orphaned. */
.grid-2col-fixed>*:last-child:nth-child(odd){grid-column:1/-1;}
@media(max-width:640px){.grid-2col-fixed>*:last-child:nth-child(odd){grid-column:auto;}}

/* Prevent iOS Safari from auto-zooming when a form field is focused
   (triggered by any input font-size under 16px). */
input,select,textarea{font-size:16px;}

/* Utility bar: wrap gracefully instead of overflowing on narrow phones,
   and shorten the CertiTrust link on very small screens. */
.utility-bar .container{flex-wrap:wrap;row-gap:4px;}
.util-firm-link .full-text{display:inline;}
.util-firm-link .short-text{display:none;}
@media(max-width:480px){
  .util-firm-link .full-text{display:none;}
  .util-firm-link .short-text{display:inline;}
}

/* Belt-and-suspenders: nothing on the page should be able to force horizontal
   scroll on a phone. */
html,body{overflow-x:hidden;}

/* On small phones, buttons may wrap their label rather than force overflow.
   (Fixes the contact cards bleeding past the 390px viewport.) */
@media(max-width:640px){.btn{white-space:normal;text-align:center;}}

/* Inline SVG channel icons (replaces emoji glyphs that rendered
   inconsistently across platforms). */
.channel-ico svg{width:20px;height:20px;display:block;}

/* Honeypot spam-trap field: hidden from sighted users, still present in DOM/tab order excluded for bots */
.hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden;opacity:0;}

/* Contact form inline status message */
.form-status{border-radius:12px;padding:12px 16px;margin-bottom:16px;font-size:14px;font-weight:600;}
.form-status.error{background:#FDECEC;color:#B42318;border:1px solid #F3B6B0;}
.form-status.success{background:var(--green-tint);color:var(--green-text);border:1px solid #CFE3BC;}

/* Footer "Cookie Preferences" re-open control, styled to match footer link color */
.foot-bottom button.link-btn{background:none;border:none;padding:0;font:inherit;font-size:13px;color:#7C93B7;cursor:pointer;text-decoration:underline;text-decoration-color:rgba(124,147,183,.4);}
.foot-bottom button.link-btn:hover{color:#fff;}

/* Cookie consent banner */
.cookie-consent{position:fixed;left:20px;bottom:24px;z-index:150;max-width:400px;background:#fff;border-radius:16px;box-shadow:var(--shadow-hover);border:1px solid var(--border);padding:20px 20px 18px;opacity:0;transform:translateY(16px);pointer-events:none;transition:opacity .3s ease,transform .3s ease;}
.cookie-consent.show{opacity:1;transform:translateY(0);pointer-events:auto;}
.cookie-consent-inner{position:relative;}
.cookie-close{position:absolute;top:-8px;right:-8px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:none;border:none;font-size:20px;line-height:1;cursor:pointer;color:var(--text-2);padding:0;touch-action:manipulation;}
.cookie-text{font-size:13.5px;line-height:1.5;color:var(--slate);margin:0 0 14px;padding-right:18px;}
.cookie-text a{color:var(--green-text);font-weight:600;}
.cookie-actions{display:flex;gap:10px;flex-wrap:wrap;}
.cookie-actions .btn{flex:1;justify-content:center;padding:10px 14px;font-size:13.5px;white-space:nowrap;}
@media(max-width:1023px){.cookie-consent{bottom:82px;}}
@media(max-width:640px){.cookie-consent{left:12px;right:12px;max-width:none;}}

/* About section — real headshot frame (replaces placeholder) */
.about-photo-frame{width:100%;max-width:340px;aspect-ratio:1/1;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-hover);margin:0 auto;}
@media(max-width:640px){.about-photo-frame{max-width:240px;}}
.about-photo-frame img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;}
