/*
Theme Name: S.K. Thakkar & Associates
Theme URI: https://www.caskthakkar.com/
Author: Chelyn (built with Claude)
Description: Custom one-page WordPress theme for S.K. Thakkar & Associates, Chartered Accountants, Vadodara. Ledger-inspired editorial design with the ICAI "CA India" brand palette (blue primary, orange and green small accents). Built ICAI-advertising-compliant: no testimonials, fee claims, or superlatives.
Version: 1.3
Requires at least: 5.9
Requires PHP: 7.4
Text Domain: caskthakkar
*/

:root{
    --paper:#F5F3EA; --surface:#FFFFFF; --surface-2:#EAE6D3;
    --ink:#1B1E19; --ink-soft:#4B5245; --muted:#838C7C;
    --accent:#145886; --accent-deep:#0B3A57; --accent-soft:#DEE8EE;
    --accent-2:#F37920; --accent-3:#55B848;
    --hairline:#DAD5BF; --border-strong:#C2BC9E;
    --radius: 2px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#12140F; --surface:#191C13; --surface-2:#1E2216;
      --ink:#EDEFE6; --ink-soft:#C3C7B5; --muted:#8B9280;
      --accent:#5B9BC9; --accent-deep:#8FC3E3; --accent-soft:#16283A;
      --accent-2:#F37920; --accent-3:#55B848;
      --hairline:#2B2F21; --border-strong:#3B4030;
    }
  }
  :root[data-theme="dark"]{
    --paper:#12140F; --surface:#191C13; --surface-2:#1E2216;
    --ink:#EDEFE6; --ink-soft:#C3C7B5; --muted:#8B9280;
    --accent:#5B9BC9; --accent-deep:#8FC3E3; --accent-soft:#16283A;
    --accent-2:#F37920; --accent-3:#55B848;
    --hairline:#2B2F21; --border-strong:#3B4030;
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  [id]{ scroll-margin-top:110px; }
  @media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } *{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; } }
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
    font-weight:400; line-height:1.7; -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{ font-family:"Newsreader", Georgia, serif; font-weight:500; margin:0; text-wrap:balance; color:var(--ink); letter-spacing:-0.005em; }
  p{ margin:0; color:var(--ink-soft); }
  a{ color:var(--accent-deep); text-decoration:none; }
  img,svg{ display:block; max-width:100%; }
  button{ font-family:inherit; cursor:pointer; }
  :focus-visible{ outline:1.5px solid var(--accent); outline-offset:3px; }
  ::selection{ background:var(--accent-soft); }
  .mono{ font-family:"IBM Plex Mono", ui-monospace, monospace; }

  .shell{ max-width:1180px; margin:0 auto; padding:0 32px; }
  /* Layout fix (this session, page.php): the reading column was pinned
     to the left edge of .shell with the max-width set only on
     .page-content, leaving a large blank gap on the right of every
     pillar/service page on anything wider than a laptop. .page-wrap
     centers the title + content column together at a slightly wider,
     still-readable measure, and gives tables noticeably more room.
     Homepage layout is untouched — this only affects page.php pages. */
  .page-wrap{ max-width:880px; margin:0 auto; }
  section{ padding:150px 0; }
  @media (max-width:900px){ section{ padding:96px 0; } }
  @media (max-width:560px){ section{ padding:76px 0; } .shell{ padding:0 22px; } }

  /* Wider desktop container (this session, per firm request: laptop/desktop
     screens were showing heavy unused margin left/right even after the
     .page-wrap fix above). Only applies above 1200px — comfortably wider
     than any phone or tablet (including landscape), so mobile/tablet
     layouts above are completely unaffected. Formerly a must-use plugin
     (caskthakkar-site-maintenance.php) enqueuing this as inline CSS;
     baked directly in here now. Adjust the three numbers below directly
     to fine-tune. */
  @media (min-width:1200px){ .shell{ max-width:1320px; } .page-wrap{ max-width:1040px; } }

  .eyebrow{ font-family:"IBM Plex Mono",monospace; font-size:11px; font-weight:500; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); display:flex; align-items:center; gap:12px; margin-bottom:22px; }
  .eyebrow::before{ content:""; width:22px; height:1px; background:var(--accent-2); flex:none; }

  .btn{ display:inline-flex; align-items:center; gap:10px; font-size:15px; font-weight:500; padding:16px 30px; border-radius:var(--radius); border:1px solid transparent; transition:opacity .2s ease, color .2s ease, border-color .2s ease, background .2s ease; white-space:nowrap; }
  .btn-primary{ background:var(--ink); color:var(--paper); }
  :root[data-theme="dark"] .btn-primary{ background:var(--ink); color:var(--paper); border:1px solid var(--border-strong); }
  @media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .btn-primary{ background:var(--ink); color:var(--paper); border:1px solid var(--border-strong); } }
  .btn-primary:hover{ opacity:.82; }
  .btn-text{ padding:0; border:none; border-bottom:1px solid var(--border-strong); padding-bottom:5px; border-radius:0; font-weight:500; color:var(--ink); }
  .btn-text svg{ width:14px; height:14px; stroke:currentColor; transition:transform .2s ease; }
  .btn-text:hover{ color:var(--accent-deep); border-color:var(--accent); }
  .btn-text:hover svg{ transform:translateX(3px); }
  .btn-text.on-dark{ color:var(--paper); border-color:#2F4356; }
  .btn-text.on-dark:hover{ color:var(--accent); border-color:var(--accent); }

  /* ---------- Filing deadlines ticker ---------- */
  /* Added per firm request (this session) — a running reminder of key
     compliance dates, directly under the nav. Content is NOT dynamic:
     the near-term dates (Tax Audit 30 Sep, Advance Tax 15 Sep, ITR 31
     Oct) are specific to the FY 2025-26 / AY 2026-27 cycle and need a
     manual update each filing cycle — see the "Updated:" tag in the
     markup (header.php) and update it alongside the dates whenever
     they're refreshed, the same convention as the "Last reviewed" line
     on the pillar pages. The recurring monthly dates (GSTR-1 11th,
     GSTR-3B 20th, TDS 7th) don't need updating. Sourced: ClearTax,
     Income Tax Department (incometaxindia.gov.in), IndiaFilings —
     see the growth-plan/audit notes for full citations. */
  .filing-ticker{ background:var(--surface-2); border-bottom:1px solid var(--hairline); overflow:hidden; }
  .ft-inner{ max-width:1180px; margin:0 auto; padding:0 32px; display:flex; align-items:center; gap:18px; height:38px; }
  .ft-label{ flex:none; display:flex; align-items:center; gap:8px; font-family:"IBM Plex Mono",monospace; font-size:10.5px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--accent-deep); }
  .ft-label .dot{ width:5px; height:5px; border-radius:50%; background:var(--accent-2); flex:none; }
  .ft-track{ flex:1; overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent); mask-image:linear-gradient(90deg,transparent,#000 24px,#000 calc(100% - 24px),transparent); }
  .ft-items{ display:flex; align-items:center; gap:28px; width:max-content; white-space:nowrap; animation:ft-scroll 38s linear infinite; }
  .filing-ticker:hover .ft-items{ animation-play-state:paused; }
  .ft-item{ font-family:"IBM Plex Mono",monospace; font-size:11.5px; color:var(--ink-soft); }
  .ft-item a{ color:var(--ink-soft); }
  .ft-item a:hover{ color:var(--accent-deep); }
  .ft-item b{ color:var(--ink); font-weight:500; }
  @keyframes ft-scroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
  @media (max-width:760px){ .ft-label span:not(.dot){ display:none; } .ft-inner{ gap:12px; } }

  /* ---------- Nav ---------- */
  header.nav{ position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--paper) 90%, transparent); backdrop-filter:blur(10px); border-bottom:1px solid var(--hairline); }
  .navrow{ display:flex; align-items:center; justify-content:space-between; height:92px; }
  .brand{ display:flex; align-items:center; gap:11px; min-width:0; flex:0 1 auto; overflow:hidden; }
  .brand .mark{ width:auto; height:34px; flex:none; }
  .brand .name{ font-family:"Newsreader", serif; font-size:18px; font-weight:500; letter-spacing:0.005em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
  nav.menu{ display:flex; align-items:center; gap:40px; }
  nav.menu a{ font-size:13.5px; font-weight:500; letter-spacing:0.02em; color:var(--ink-soft); position:relative; padding:4px 0; }
  nav.menu a:hover{ color:var(--ink); }
  nav.menu a.active{ color:var(--ink); }
  nav.menu a.active::after{ content:""; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:var(--accent); }
  .navcta{ display:flex; align-items:center; gap:18px; }
  .navcta .btn-primary{ padding:12px 22px; font-size:13.5px; }
  .navcta-icons{ display:none; align-items:center; gap:8px; }
  @media (max-width:480px){ .navcta-icons{ display:flex; } }
  .navcta-icons a{ width:36px; height:36px; border:1px solid var(--border-strong); display:flex; align-items:center; justify-content:center; flex:none; }
  .navcta-icons svg{ width:16px; height:16px; stroke:var(--ink); stroke-width:1.6; }

  #menu-toggle{ display:none; }
  .burger{ display:none; width:38px; height:38px; align-items:center; justify-content:center; border:1px solid var(--border-strong); cursor:pointer; }
  .burger span, .burger span::before, .burger span::after{ content:""; display:block; width:16px; height:1px; background:var(--ink); position:relative; transition:transform .2s ease, opacity .2s ease; }
  .burger span::before{ position:absolute; top:-6px; }
  .burger span::after{ position:absolute; top:6px; }

  @media (max-width:900px){
    nav.menu{ position:absolute; top:100%; left:0; right:0; background:var(--paper); flex-direction:column; align-items:flex-start; gap:0; padding:8px 22px 24px; transform:translateY(-8px); opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease; border-bottom:1px solid var(--hairline); max-height:80vh; overflow-y:auto; }
    nav.menu a{ width:100%; padding:16px 0; border-bottom:1px solid var(--hairline); font-size:16px; }
    .burger{ display:flex; }
    #menu-toggle:checked ~ .navrow nav.menu{ opacity:1; pointer-events:auto; transform:translateY(0); }
    #menu-toggle:checked ~ .navrow .burger span{ background:transparent; }
    #menu-toggle:checked ~ .navrow .burger span::before{ transform:rotate(45deg) translate(4px,5px); }
    #menu-toggle:checked ~ .navrow .burger span::after{ transform:rotate(-45deg) translate(4px,-5px); }
  }
  @media (max-width:600px){ .brand .name{ font-size:16px; } }
  @media (max-width:480px){ .navcta .btn-primary{ display:none; } .navrow{ height:78px; } }
  @media (max-width:400px){ .brand .name{ font-size:14.5px; } .navcta{ gap:10px; } }
  @media (max-width:340px){ .brand .name{ font-size:13px; } }

  /* ---------- Hero ---------- */
  .hero{ padding:118px 0 96px; }
  .hero-grid{ display:grid; grid-template-columns:7fr 4fr; gap:80px; align-items:start; }
  @media (max-width:960px){ .hero-grid{ grid-template-columns:1fr; gap:56px; } }
  .hero h1{ font-size:clamp(36px,5.6vw,68px); line-height:1.08; letter-spacing:-0.01em; margin-bottom:30px; }
  .hero h1 em{ font-style:italic; font-weight:400; color:var(--accent-deep); }
  .hero p.lede{ font-size:18.5px; line-height:1.6; color:var(--ink-soft); max-width:48ch; margin-bottom:44px; }
  .hero-actions{ display:flex; align-items:center; gap:36px; flex-wrap:wrap; }
  .hero-meta{ display:flex; gap:20px; margin-top:40px; padding-top:24px; border-top:1px solid var(--hairline); font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--muted); flex-wrap:wrap; }
  .hero-meta span{ display:flex; align-items:center; gap:20px; }
  .hero-meta span:not(:last-child)::after{ content:""; width:1px; height:12px; background:var(--border-strong); }

  .hero-art{ position:relative; border:1px solid var(--hairline); padding:28px 28px 22px; margin-top:6px; }
  .seal{ position:absolute; top:-20px; right:-16px; width:84px; height:84px; border:1.5px solid var(--accent-3); border-radius:50%; background:var(--surface); display:flex; flex-direction:column; align-items:center; justify-content:center; transform:rotate(-11deg); font-family:"Newsreader",serif; text-align:center; color:var(--accent-3); }
  .seal .ca{ display:block; font-size:14px; font-weight:600; margin-bottom:2px; }
  .seal .cert{ display:block; font-size:11px; font-style:italic; }
  .hero-art .idx{ display:flex; align-items:center; gap:7px; font-family:"Newsreader",serif; font-style:italic; font-size:13px; color:var(--muted); margin-bottom:20px; }
  .hero-art .idx svg{ width:15px; height:15px; stroke:var(--accent); stroke-width:1.4; flex:none; }
  .ledger-row{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding:13px 0; border-top:1px solid var(--hairline); font-family:"IBM Plex Mono",monospace; font-size:12px; }
  .ledger-row:first-of-type{ border-top:none; }
  .ledger-row .lbl{ color:var(--ink); }
  .ledger-row .stat{ color:var(--muted); white-space:nowrap; }
  .ledger-row .stat.done{ color:var(--accent-3); }
  .hero-art .cap{ display:flex; justify-content:space-between; margin-top:18px; padding-top:16px; border-top:1px solid var(--hairline); font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); }

  /* ---------- Firm particulars ---------- */
  .particulars-row{ display:flex; flex-wrap:wrap; gap:14px 28px; font-size:11px; letter-spacing:0.02em; color:var(--ink-soft); }
  @media (max-width:760px){ .particulars-row{ gap:10px 20px; font-size:10.5px; } }

  /* ---------- Accessibility / SEO utility ----------
     Visually hidden but still readable by screen readers and search/AI
     crawlers — used for headings that are required for a correct
     semantic outline (see audit report finding C5) but would be visually
     redundant given this section's design. Zero effect on layout. */
  .sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

  /* ---------- Trust pillars ---------- */
  .pillars{ border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }
  .pillar-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
  .pillar{ padding:44px 36px; display:flex; flex-direction:column; gap:16px; border-left:1px solid var(--hairline); }
  .pillar:first-child{ border-left:none; }
  .pillar svg{ width:22px; height:22px; stroke:var(--accent); stroke-width:1.3; }
  .pillar h3{ font-size:16px; font-weight:500; }
  .pillar p{ font-size:13.5px; }
  @media (max-width:760px){ .pillar-grid{ grid-template-columns:1fr 1fr; } .pillar:nth-child(2n+1){ border-left:none; } .pillar:nth-child(-n+2){ border-bottom:1px solid var(--hairline); } }
  @media (max-width:480px){ .pillar-grid{ grid-template-columns:1fr; } .pillar{ border-left:none !important; border-bottom:1px solid var(--hairline); } .pillar:last-child{ border-bottom:none; } }

  /* ---------- Section heads ---------- */
  .head{ max-width:58ch; margin-bottom:64px; }
  .head h2{ font-size:clamp(28px,3.6vw,42px); margin-bottom:18px; }
  .head p{ font-size:17px; }

  /* ---------- Problem/solution ---------- */
  .problem-grid{ display:grid; grid-template-columns:repeat(2,1fr); border:1px solid var(--hairline); }
  @media (max-width:760px){ .problem-grid{ grid-template-columns:1fr; } }
  .problem-card{ padding:44px; display:flex; flex-direction:column; gap:16px; border-right:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }
  .problem-card:nth-child(2n){ border-right:none; }
  .problem-card:nth-child(5), .problem-card:nth-child(6){ border-bottom:none; }
  @media (max-width:760px){ .problem-card{ border-right:none !important; border-bottom:1px solid var(--hairline); } .problem-card:last-child{ border-bottom:none; } }
  .problem-card .k{ font-family:"Newsreader",serif; font-size:21px; font-weight:500; }
  .problem-card p{ font-size:15px; }

  /* ---------- Services (schedule grid) ---------- */
  .svc-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--hairline); border:1px solid var(--hairline); }
  @media (max-width:960px){ .svc-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:620px){ .svc-grid{ grid-template-columns:1fr; } }
  .svc-card{ background:var(--paper); padding:34px 30px; display:flex; flex-direction:column; gap:12px; }
  .svc-card .sch-row{ display:flex; align-items:center; gap:10px; }
  .svc-card .sch-row svg{ width:22px; height:22px; stroke:var(--accent); stroke-width:1.3; flex:none; }
  .svc-card h3{ font-size:16.5px; font-weight:500; }
  /* SEO/AEO audit fix: card title is now the link to its service page
     (previously a separate "See how we handle this" link below the
     list — this replaces that pattern for all 10 service cards).
     color:inherit keeps it visually identical to the old plain-text
     h3; only a hover state is added, matching the footer link pattern
     already used elsewhere on this page (.foot-col a:hover). */
  .svc-card h3 a{ color:inherit; text-decoration:none; }
  .svc-card h3 a:hover{ color:var(--accent-deep); text-decoration:underline; }
  .svc-card ul{ list-style:none; margin:6px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
  .svc-card li{ font-size:13.5px; color:var(--ink-soft); padding-left:14px; position:relative; }
  .svc-card li::before{ content:"—"; position:absolute; left:0; color:var(--border-strong); }
  .svc-card .note{ font-size:12px; color:var(--muted); font-style:italic; margin-top:auto; padding-top:10px; }

  /* ---------- Why us ---------- */
  .why-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 56px; }
  @media (max-width:760px){ .why-grid{ grid-template-columns:1fr; } }
  .why-item{ padding:26px 0; border-top:1px solid var(--hairline); }
  .why-item h3{ font-size:16.5px; font-weight:500; margin-bottom:8px; }
  .why-item p{ font-size:14.5px; }

  /* ---------- Process ---------- */
  .process-track{ display:grid; grid-template-columns:repeat(5,1fr); gap:0; position:relative; }
  @media (max-width:900px){ .process-track{ grid-template-columns:1fr; gap:0; } }
  .process-step{ position:relative; padding:0 20px 0 0; }
  @media (max-width:900px){ .process-step{ padding:0 0 38px 36px; border-left:1px solid var(--border-strong); margin-left:17px; } .process-step:last-child{ padding-bottom:0; } }
  .process-step .dot{ width:36px; height:36px; border:1px solid var(--accent); color:var(--accent-deep); display:flex; align-items:center; justify-content:center; font-family:"Newsreader",serif; font-style:italic; font-weight:500; font-size:14px; margin-bottom:20px; background:var(--paper); }
  @media (max-width:900px){ .process-step .dot{ position:absolute; left:-18px; top:-2px; margin-bottom:0; } }
  .process-step h3{ font-size:16px; font-weight:500; margin-bottom:8px; }
  .process-step p{ font-size:13.5px; }
  @media (min-width:901px){ .process-track::before{ content:""; position:absolute; top:17px; left:0; right:0; height:1px; background:var(--border-strong); z-index:0; } .process-step{ z-index:1; } }

  /* ---------- Insights ---------- */
  .insight-tabs{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--hairline); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }
  @media (max-width:900px){ .insight-tabs{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .insight-tabs{ grid-template-columns:1fr; } }
  .insight-card{ background:var(--paper); padding:32px 28px; display:flex; flex-direction:column; gap:12px; min-height:220px; }
  .insight-card svg{ width:19px; height:19px; stroke:var(--accent); stroke-width:1.3; }
  .insight-cat{ font-family:"IBM Plex Mono",monospace; font-size:10px; font-weight:500; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); margin-top:8px; }
  .insight-card h3{ font-size:16px; font-weight:500; line-height:1.4; }
  .insight-sample{ font-size:11.5px; color:var(--muted); margin-top:auto; font-style:italic; padding-top:14px; }

  /* ---------- FAQ ---------- */
  .faq{ max-width:800px; }
  .faq-item{ border-top:1px solid var(--hairline); }
  .faq-item:last-child{ border-bottom:1px solid var(--hairline); }
  .faq-item summary{ list-style:none; cursor:pointer; padding:28px 4px; display:flex; align-items:center; justify-content:space-between; gap:24px; font-family:"Newsreader",serif; font-size:18.5px; font-weight:500; }
  .faq-item summary::-webkit-details-marker{ display:none; }
  .faq-item summary .plus{ width:16px; height:16px; flex:none; position:relative; }
  .faq-item summary .plus::before, .faq-item summary .plus::after{ content:""; position:absolute; background:var(--accent); }
  .faq-item summary .plus::before{ width:16px; height:1px; top:7.5px; left:0; }
  .faq-item summary .plus::after{ width:1px; height:16px; top:0; left:7.5px; transition:transform .2s ease; }
  .faq-item details[open] summary .plus::after{ transform:rotate(90deg); }
  .faq-a{ padding:0 4px 28px; font-size:15px; max-width:66ch; }

  /* ---------- Final CTA (full-bleed) ---------- */
  .cta-band{ background:var(--ink); padding:120px 0; }
  :root[data-theme="dark"] .cta-band{ background:var(--surface-2); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); }
  @media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .cta-band{ background:var(--surface-2); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); } }
  .cta-inner{ text-align:center; max-width:640px; margin:0 auto; }
  .cta-band h2{ color:var(--paper); font-size:clamp(30px,4vw,46px); margin-bottom:18px; }
  :root[data-theme="dark"] .cta-band h2{ color:var(--ink); }
  @media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .cta-band h2{ color:var(--ink); } }
  .cta-band p{ color:#B9C2CC; font-size:16.5px; margin-bottom:44px; }
  :root[data-theme="dark"] .cta-band p{ color:var(--ink-soft); }
  @media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .cta-band p{ color:var(--ink-soft); } }
  .cta-actions{ display:flex; align-items:center; justify-content:center; gap:36px; flex-wrap:wrap; }
  .cta-band .btn-primary{ background:var(--paper); color:var(--ink); }
  :root[data-theme="dark"] .cta-band .btn-primary{ background:var(--accent); color:#0F130C; border-color:transparent; }
  @media (prefers-color-scheme:dark){ :root:not([data-theme="light"]) .cta-band .btn-primary{ background:var(--accent); color:#0F130C; border-color:transparent; } }

  /* ---------- Footer ---------- */
  footer{ border-top:1px solid var(--hairline); padding:80px 0 36px; }
  .foot-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:40px; margin-bottom:64px; }
  @media (max-width:760px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
  .foot-brand{ display:flex; align-items:center; gap:11px; margin-bottom:16px; }
  .foot-brand .mark{ width:auto; height:32px; }
  .foot-brand .name{ font-family:"Newsreader",serif; font-size:17px; font-weight:500; }
  .foot-col-first p{ font-size:13.5px; max-width:32ch; }
  .foot-col h4{ font-family:"IBM Plex Mono",monospace; font-size:10.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); font-weight:500; margin-bottom:18px; }
  .foot-col a, .foot-col span{ display:block; font-size:14px; margin-bottom:12px; }
  .foot-col a{ color:var(--accent-deep); }
  .foot-col span{ color:var(--ink-soft); }
  .foot-col a:hover{ color:var(--ink); text-decoration:underline; }
  .foot-social{ display:flex; gap:10px; margin-top:20px; }
  .foot-social a{ width:32px; height:32px; border:1px solid var(--border-strong); display:flex; align-items:center; justify-content:center; }
  .foot-social svg{ width:14px; height:14px; stroke:var(--ink-soft); }
  .foot-bottom{ border-top:1px solid var(--hairline); padding-top:24px; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:0.01em; color:var(--muted); }
  .foot-legal{ display:flex; gap:22px; }
  .foot-legal a{ color:var(--muted); }
  .foot-legal a:hover{ color:var(--ink-soft); }

  /* ---------- Floating contact button ---------- */
  .floating-wa{ position:fixed; bottom:22px; right:22px; z-index:70; width:54px; height:54px; border-radius:50%; background:#0B3A57; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 18px rgba(0,0,0,0.28); transition:transform .2s ease; }
  .floating-wa:hover{ transform:translateY(-2px); }
  .floating-wa svg{ width:24px; height:24px; stroke:#F5F3EA; stroke-width:1.6; }
  @media (max-width:480px){ .floating-wa{ width:48px; height:48px; bottom:16px; right:16px; } .floating-wa svg{ width:21px; height:21px; } }

  /* ---------- Section-level contact nudges ---------- */
  .problem-cta{ margin-top:28px; font-size:15px; display:flex; gap:20px; flex-wrap:wrap; align-items:baseline; color:var(--ink-soft); }
  .svc-cta{ margin-top:32px; font-size:15px; }
  .faq-cta{ margin-top:36px; padding-top:28px; border-top:1px solid var(--hairline); font-size:15px; }
  .cta-band p.cta-meta{ margin-top:28px; font-family:"IBM Plex Mono",monospace; font-size:11px; letter-spacing:0.03em; text-transform:uppercase; }
  .cta-band p.cta-practitioner{ margin-top:10px; font-size:12.5px; }
  .cta-meta a, .cta-practitioner a{ color:inherit; text-decoration:underline; }

  /* ---------- Reveal animation ---------- */
  .reveal{ opacity:0; transform:translateY(16px); transition:opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }
