/* ============================================================
   Rupee Gain Power — shared stylesheet
   Palette: brand green + oat paper + saffron accent (from logo)
   Type: Newsreader (display) + IBM Plex Sans (body) + IBM Plex Mono (data)
   ============================================================ */

:root{
  --paper:#F6F8F3;
  --paper-2:#FFFFFF;
  --paper-sunk:#EBF0E6;
  --ink:#14231A;
  --ink-soft:#57685C;
  --line:#DCE6D6;
  --line-strong:#C2D0B8;
  --forest:#1E8A3D;
  --forest-deep:#155C29;
  --brass:#E07A1D;
  --brass-bright:#F2953E;
  --brick:#8A8A8A;
  --good:#1E8A3D;
  --warn:#D98B2B;
  --bad:#C0392B;
  --shadow:0 1px 2px rgba(20,35,26,.05), 0 12px 32px -18px rgba(20,35,26,.22);
  --maxw:1180px;
}
:root:not([data-theme="light"]){
  @media (prefers-color-scheme: dark){
    --paper:#0E140F; --paper-2:#161D18; --paper-sunk:#0A0F0B;
    --ink:#E9EFE6; --ink-soft:#9DAE9B; --line:#28332B; --line-strong:#37453B;
    --forest:#59C97E; --forest-deep:#3C9A5C; --brass:#F0A24F; --brass-bright:#FFB868;
    --brick:#B5B5B5; --good:#6fd18f; --warn:#f0c46f; --bad:#e08c7a;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 18px 40px -20px rgba(0,0,0,.7);
  }
}
:root[data-theme="dark"]{
  --paper:#0E140F; --paper-2:#161D18; --paper-sunk:#0A0F0B;
  --ink:#E9EFE6; --ink-soft:#9DAE9B; --line:#28332B; --line-strong:#37453B;
  --forest:#59C97E; --forest-deep:#3C9A5C; --brass:#F0A24F; --brass-bright:#FFB868;
  --brick:#B5B5B5; --good:#6fd18f; --warn:#f0c46f; --bad:#e08c7a;
  --shadow:0 1px 2px rgba(0,0,0,.4), 0 18px 40px -20px rgba(0,0,0,.7);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:"Newsreader","Iowan Old Style",Georgia,serif;font-weight:700;line-height:1.1;text-wrap:balance;margin:0;letter-spacing:-.015em}
p{margin:0}
strong,b{font-weight:700}
mark,.hl{color:inherit;font-weight:700;background:none;padding:0}
a{color:inherit}
img{max-width:100%}
::selection{background:var(--forest);color:var(--paper-2)}
.skip-link{position:absolute;left:-999px;top:0;background:var(--forest);color:var(--paper-2);padding:.7rem 1rem;z-index:200}
.skip-link:focus{left:1rem;top:1rem}

.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(1.25rem,5vw,3rem)}
.eyebrow{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin:0}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace}
.tnum{font-variant-numeric:tabular-nums}
.tick::before{content:"";display:block;width:48px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--forest) 0 60%,var(--brass) 60% 100%);margin-bottom:.25rem}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

:where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--brass-bright);outline-offset:2px;border-radius:2px}

/* ---------- buttons ---------- */
.btn{
  font-family:inherit;font-size:.88rem;font-weight:600;padding:.6rem 1.05rem;border-radius:2px;cursor:pointer;
  text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;border:1px solid var(--forest);
  background:transparent;color:var(--ink);
}
.btn.solid{background:var(--forest);color:var(--paper-2);border-color:var(--forest)}
.btn.solid:hover{background:var(--forest-deep)}
.btn.ghost{border-color:var(--line-strong)}
.btn.ghost:hover{border-color:var(--forest);color:var(--forest)}
.btn.small{padding:.4rem .75rem;font-size:.78rem}
.btn.danger{border-color:var(--bad);color:var(--bad)}
.btn.danger:hover{background:var(--bad);color:var(--paper-2)}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ---------- header ---------- */
header.site{position:sticky;top:0;z-index:50;background:color-mix(in srgb, var(--paper) 88%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.announce{background:var(--forest-deep);color:var(--paper-2);text-align:center;font-size:.8rem;padding:.45rem 1rem}
.bar{display:flex;align-items:center;gap:1.5rem;padding-block:.85rem}
.brand{display:flex;flex-direction:column;line-height:1.1;text-decoration:none;flex:0 0 auto}
.brand b{font-family:"Newsreader",serif;font-weight:700;font-size:1.2rem}
.brand span{font-family:"IBM Plex Mono",monospace;font-size:.64rem;font-weight:700;letter-spacing:.12em;color:var(--ink);text-transform:uppercase}
.brand span.reg{margin-top:.2rem;font-size:.6rem;letter-spacing:.08em;color:var(--forest)}
.brand span.reg+span.reg{margin-top:.05rem}
.brand-logo{height:36px;width:auto;display:block;margin-bottom:.3rem}
nav.main{display:flex;gap:1.2rem;margin-left:auto}
nav.main a{text-decoration:none;font-size:.92rem;font-weight:700;color:var(--ink-soft);padding-block:.2rem;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}
nav.main a:hover,nav.main a[aria-current="page"]{color:var(--ink);border-color:var(--brass)}
.hbtns{display:flex;align-items:center;gap:.6rem;flex:0 0 auto}
.icon-btn{width:34px;height:34px;display:grid;place-items:center;background:transparent;border:1px solid var(--line-strong);border-radius:50%;color:var(--ink);cursor:pointer}
.icon-btn:hover{border-color:var(--brass)}
#menu-toggle{display:none}

/* ---------- section rhythm ---------- */
section{padding-block:clamp(3.25rem,7vw,6rem);scroll-margin-top:78px}
section+section{border-top:1px solid var(--line)}
.sec-head{display:flex;flex-direction:column;gap:.9rem;max-width:56ch;margin-bottom:2.5rem}
.sec-head h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}
.sec-head p{color:var(--ink-soft);font-size:1.02rem}
.sec-head.center{align-items:center;text-align:center;max-width:60ch;margin-inline:auto}

/* ---------- page header (inner pages) ---------- */
.page-head{padding-block:clamp(2.5rem,5vw,3.5rem);border-bottom:1px solid var(--line)}
.page-head .crumb{font-size:.78rem;color:var(--ink-soft);margin-bottom:.9rem}
.page-head .crumb a{border-bottom:1px solid var(--line-strong);text-decoration:none}
.page-head h1{font-size:clamp(2rem,4.4vw,3.1rem);max-width:20ch}
.page-head p{color:var(--ink-soft);max-width:56ch;margin-top:1rem;font-size:1.05rem}

/* ---------- hero ---------- */
.hero{padding-top:clamp(2.5rem,5vw,4rem)}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.hero-lede{display:flex;flex-direction:column;gap:1.4rem}
.hero h1{font-size:clamp(1.9rem,3.8vw,2.9rem);max-width:18ch}
.hero h1 em{font-style:italic;color:var(--forest)}
.hero-lede>p{font-size:1rem;color:var(--ink-soft);max-width:46ch}
.hero-lede>p.eyebrow{font-size:.78rem;font-weight:700;line-height:1.7;color:var(--forest);max-width:none}
.hero-cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:.3rem}

.stub{border:1px solid var(--line-strong);background:var(--paper-2);box-shadow:var(--shadow)}
.stub-h{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);padding:.9rem 1.1rem;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}
.stub ul{list-style:none;margin:0;padding:.4rem 0}
.stub li{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:.62rem 1.1rem;font-size:.92rem}
.stub li+li{border-top:1px solid var(--line)}
.stub li b{font-family:"Newsreader",serif;font-weight:500;font-size:1.02rem}
.stub li span{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--ink-soft);text-align:right}
.stub-f{padding:.85rem 1.1rem;border-top:1px solid var(--line);font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--brass)}

.spine{display:flex;align-items:center;gap:1rem;margin-top:clamp(2.25rem,5vw,3.5rem);font-family:"IBM Plex Mono",monospace;font-size:.82rem;color:var(--ink-soft)}
.spine .rwd{flex:1;height:1px;background:var(--line-strong)}
.spine b{font-family:"Newsreader",serif;font-weight:500;font-size:1.1rem;color:var(--ink)}

/* trust strip */
.trust-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line-strong);margin-top:clamp(2rem,4vw,3rem)}
.trust-strip div{padding:1.2rem 1.4rem;text-align:center}
.trust-strip div:not(:last-child){border-right:1px solid var(--line)}
.trust-strip b{display:block;font-family:"Newsreader",serif;font-size:1.5rem;color:var(--forest)}
.trust-strip span{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}

/* ---------- personas ---------- */
.personas{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line-strong)}
.personas div{padding:1.15rem 1.3rem;font-size:.95rem;display:flex;gap:.7rem;align-items:flex-start}
.personas div:nth-child(-n+2){border-bottom:1px solid var(--line)}
.personas div:nth-child(odd){border-right:1px solid var(--line)}
.personas i{font-family:"IBM Plex Mono",monospace;font-style:normal;color:var(--brass);font-size:.8rem;padding-top:.15rem}

/* ---------- practice ledger ---------- */
.ledger{border-top:1px solid var(--line-strong)}
.row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:clamp(1rem,4vw,3.5rem);padding:1.6rem 0 1.6rem 1rem;border-bottom:1px solid var(--line);position:relative;transition:background .15s}
.row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:transparent;transition:background .15s}
.row:hover{background:var(--paper-2)}
.row:hover::before{background:var(--brass)}
.row h3{font-size:1.4rem}
.row .for{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.06em;color:var(--ink-soft);margin-top:.5rem;text-transform:uppercase}
.row p{color:var(--ink-soft);font-size:1rem}
.row .no{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--brass);position:absolute;right:0;top:1.6rem}

/* ---------- diagram (synchronized portfolio) ---------- */
.sync-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(2rem,5vw,3.5rem);align-items:center}
.diagram-box{overflow-x:auto;border:1px solid var(--line);background:var(--paper-2);padding:1rem}
.diagram{display:block;min-width:560px;width:100%;height:auto}
.diagram rect{fill:var(--paper);stroke:var(--line-strong)}
.diagram .hub{fill:var(--forest);stroke:none}
.diagram path{fill:none;stroke:var(--brass);stroke-width:1.4;opacity:.7}
.diagram text{fill:var(--ink);font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.04em}
.diagram .hub-t{fill:var(--paper-2);font-size:12.5px}
.sync-notes{display:flex;flex-direction:column;gap:1.1rem}
.sync-notes ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}
.sync-notes li{font-family:"IBM Plex Mono",monospace;font-size:.82rem;color:var(--ink-soft);padding-left:1.1rem;position:relative;line-height:1.5}
.sync-notes li::before{content:"—";position:absolute;left:0;color:var(--brass)}

/* ---------- storms/track record ---------- */
.storms{position:relative;margin:1rem 0 6rem;padding-top:2.4rem}
.storm-line{height:1px;background:var(--line-strong);position:relative}
.mark{position:absolute;top:0;transform:translateX(-50%);text-align:center;width:max-content;min-width:150px}
.mark .dot{width:9px;height:9px;border-radius:50%;background:var(--brass);margin:-4px auto 0}
.mark b{display:block;font-family:"Newsreader",serif;font-weight:500;font-size:1.15rem;margin-top:.55rem}
.mark span{display:block;white-space:nowrap;margin-top:.15rem;font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}
.storm-ends{display:flex;justify-content:space-between;font-family:"IBM Plex Mono",monospace;font-size:.74rem;color:var(--ink-soft);margin-top:.5rem}
.storm-list{display:none;list-style:none;margin:0 0 2.5rem;padding:0}
.storm-list li{display:flex;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--line)}
.storm-list b{font-family:"Newsreader",serif;font-weight:500;font-size:1.15rem;flex:0 0 3.5ch}

.edges{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,3.5vw,2.75rem)}
.edge .lbl{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);display:block;margin-bottom:.7rem}
.edge h3{font-size:1.3rem;margin-bottom:.6rem}
.edge p{color:var(--ink-soft);font-size:.97rem}

/* ---------- pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr)}
.pillars .p{padding:0 clamp(1rem,2.5vw,2rem)}
.pillars .p:not(:last-child){border-right:1px solid var(--line)}
.pillars .p:first-child{padding-left:0}
.pillars .p:last-child{padding-right:0}
.pillars .n{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--brass);letter-spacing:.1em}
.pillars h3{font-size:1.28rem;margin:.7rem 0 .55rem}
.pillars p{color:var(--ink-soft);font-size:.96rem}

/* ---------- process steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.step{border-top:2px solid var(--brass);padding-top:1rem}
.step .no{font-family:"IBM Plex Mono",monospace;font-size:.8rem;color:var(--brass)}
.step h3{font-size:1.15rem;margin:.5rem 0 .5rem}
.step p{color:var(--ink-soft);font-size:.92rem}

/* ---------- cards: services grid (home) ---------- */
.card-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line-strong);border:1px solid var(--line-strong)}
.svc-card{background:var(--paper-2);padding:1.5rem 1.3rem;display:flex;flex-direction:column;gap:.6rem;text-decoration:none;color:var(--ink)}
.svc-card:hover{background:var(--paper)}
.svc-card .k{font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--brass)}
.svc-card h3{font-size:1.08rem}
.svc-card p{color:var(--ink-soft);font-size:.85rem}

/* ---------- testimonials ---------- */
.testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.testi{border:1px solid var(--line-strong);background:var(--paper-2);padding:1.5rem;display:flex;flex-direction:column;gap:.9rem}
.testi .stars{color:var(--brass);letter-spacing:.15em;font-size:.85rem}
.testi p.q{font-size:.98rem;font-style:italic;color:var(--ink)}
.testi .who{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}
.empty-note{border:1px dashed var(--line-strong);padding:2rem;text-align:center;color:var(--ink-soft);font-size:.92rem}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line-strong)}
.faq details{border-bottom:1px solid var(--line);padding:1.1rem 0}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-family:"Newsreader",serif;font-size:1.12rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:"IBM Plex Mono",monospace;color:var(--brass);font-size:1.2rem;transition:transform .15s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{color:var(--ink-soft);margin-top:.8rem;font-size:.96rem;max-width:70ch}

/* ---------- insights ---------- */
.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.insight{border:1px solid var(--line-strong);background:var(--paper-2);display:flex;flex-direction:column}
.insight .body{padding:1.3rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.insight .tag{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brass)}
.insight h3{font-size:1.15rem}
.insight p{color:var(--ink-soft);font-size:.92rem}
.insight .date{font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--ink-soft);margin-top:auto}
.insight .full{display:none;border-top:1px solid var(--line);padding:1rem 1.3rem;font-size:.92rem;color:var(--ink-soft)}
.insight.open .full{display:block}
.insight button.readmore{align-self:flex-start;background:none;border:none;color:var(--brass);font-family:"IBM Plex Mono",monospace;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;padding:0}

/* ---------- newsletter ---------- */
.newsletter{border:1px solid var(--line-strong);background:var(--paper-2);padding:clamp(1.5rem,4vw,2.5rem);display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center;justify-content:space-between}
.newsletter h3{font-size:1.3rem;max-width:26ch}
.newsletter p{color:var(--ink-soft);font-size:.92rem;margin-top:.4rem;max-width:36ch}
.newsletter form{display:flex;gap:.6rem;flex-wrap:wrap}
.newsletter input[type=email]{font-family:inherit;font-size:.92rem;padding:.6rem .8rem;border:1px solid var(--line-strong);border-radius:2px;background:var(--paper);color:var(--ink);min-width:220px}
.newsletter .ok{font-family:"IBM Plex Mono",monospace;font-size:.8rem;color:var(--good)}

/* ---------- generic forms ---------- */
form.card-form{border:1px solid var(--line-strong);background:var(--paper-2);padding:clamp(1.4rem,3vw,2rem);display:flex;flex-direction:column;gap:1.1rem}
form.card-form .fh{font-family:"Newsreader",serif;font-size:1.4rem}
form.card-form label{display:flex;flex-direction:column;gap:.4rem;font-size:.82rem;color:var(--ink-soft)}
form.card-form .two{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
form.card-form input,form.card-form select,form.card-form textarea{
  font-family:inherit;font-size:.95rem;color:var(--ink);background:var(--paper);border:1px solid var(--line-strong);border-radius:2px;padding:.6rem .7rem;
}
form.card-form textarea{resize:vertical;min-height:6rem}
form.card-form button{margin-top:.3rem;align-self:flex-start}
form.card-form .ok{font-size:.9rem;color:var(--good);font-family:"IBM Plex Mono",monospace}

/* ---------- contact page ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4rem)}
.card-details{margin-top:2rem;border:1px solid var(--line-strong);background:var(--paper)}
.card-details dl{margin:0;display:grid;grid-template-columns:auto 1fr}
.card-details dt{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:.85rem 1rem;border-bottom:1px solid var(--line)}
.card-details dd{margin:0;padding:.85rem 1rem;border-bottom:1px solid var(--line);border-left:1px solid var(--line);font-size:.92rem}
.card-details dl>:nth-last-child(1),.card-details dl>:nth-last-child(2){border-bottom:none}
.card-details a{text-decoration:none;border-bottom:1px solid var(--brass)}

/* ---------- calculators ---------- */
.calc-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;border-bottom:1px solid var(--line-strong);padding-bottom:1rem}
.calc-tab{font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;padding:.5rem .85rem;border:1px solid var(--line-strong);background:var(--paper-2);color:var(--ink-soft);cursor:pointer;border-radius:2px;text-decoration:none;display:inline-block}
.calc-tab:hover{color:var(--ink);border-color:var(--brass)}
.calc-tab.active{background:var(--forest);border-color:var(--forest);color:var(--paper-2)}
.calc-panel{display:none}
.calc-panel.active{display:block}
.calc-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,5vw,3.5rem);align-items:start}
.calc-copy h2{font-size:clamp(1.6rem,3vw,2.1rem);margin-bottom:.8rem}
.calc-copy p{color:var(--ink-soft)}
.calc-copy .note{font-size:.8rem;color:var(--ink-soft);margin-top:1.2rem;line-height:1.5;border-top:1px solid var(--line);padding-top:1rem}

.calc{border:1px solid var(--line-strong);background:var(--paper-2);border-radius:4px;box-shadow:var(--shadow);padding:clamp(1.3rem,3vw,1.9rem)}
.calc .field{margin-bottom:1.35rem}
.calc .field:last-of-type{margin-bottom:1.6rem}
.calc .field .top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.55rem;gap:1rem}
.calc .field label{font-size:.88rem;color:var(--ink-soft)}
.calc .field .val{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:500;color:var(--ink);background:var(--paper);border:1px solid var(--line);padding:.15rem .5rem;border-radius:2px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:2px;background:var(--line-strong);border-radius:2px;outline-offset:6px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:17px;height:17px;border-radius:50%;background:var(--forest);border:3px solid var(--paper-2);cursor:pointer;box-shadow:0 0 0 1px var(--line-strong)}
input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--forest);border:3px solid var(--paper-2);cursor:pointer;box-shadow:0 0 0 1px var(--line-strong)}

.results{border-top:1px solid var(--line);padding-top:1.3rem;display:flex;flex-direction:column;gap:.9rem}
.res-row{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.res-row span{font-size:.9rem;color:var(--ink-soft)}
.res-row b{font-family:"IBM Plex Mono",monospace;font-variant-numeric:tabular-nums;font-weight:500;font-size:1.02rem}
.res-row.total{padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.res-row.total b{font-family:"Newsreader",serif;font-size:1.55rem;font-weight:500;color:var(--forest)}
.res-row.total span{color:var(--ink)}
.stack{display:flex;height:10px;border-radius:2px;overflow:hidden;background:var(--paper-sunk)}
.stack .a{background:var(--brass)}
.stack .b{background:var(--forest)}
.legend{display:flex;gap:1.4rem;font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.05em}
.legend i{font-style:normal;display:inline-flex;align-items:center;gap:.4rem}
.legend i::before{content:"";width:9px;height:9px;border-radius:2px;background:var(--brass)}
.legend i.g::before{background:var(--forest)}

.mini-table{width:100%;border-collapse:collapse;font-family:"IBM Plex Mono",monospace;font-size:.78rem;margin-top:1rem}
.mini-table th,.mini-table td{text-align:right;padding:.4rem .5rem;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.mini-table th:first-child,.mini-table td:first-child{text-align:left}
.mini-table thead th{color:var(--ink-soft);text-transform:uppercase;font-size:.66rem;letter-spacing:.05em;border-bottom:1px solid var(--line-strong)}
.chart-box{overflow-x:auto;margin-top:1rem}
.chart-svg{display:block;min-width:480px;width:100%;height:auto}
.chart-svg .grid{stroke:var(--line);stroke-width:1}
.chart-svg .area{fill:var(--forest);opacity:.14}
.chart-svg .line{fill:none;stroke:var(--forest);stroke-width:1.8}
.chart-svg text{fill:var(--ink-soft);font-family:"IBM Plex Mono",monospace;font-size:10px}

/* ---------- sticky mobile CTA ---------- */
.mobile-cta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--paper-2);border-top:1px solid var(--line-strong);padding:.7rem clamp(1rem,4vw,1.5rem);gap:.6rem}
.whatsapp-fab{position:fixed;right:1.25rem;bottom:1.25rem;z-index:60;width:52px;height:52px;border-radius:50%;background:var(--forest);color:var(--paper-2);display:grid;place-items:center;box-shadow:var(--shadow);text-decoration:none}
.whatsapp-fab:hover{background:var(--forest-deep)}

/* ---------- footer ---------- */
footer.site{border-top:4px solid var(--forest);background:var(--paper-2);padding-block:2.6rem;font-size:.86rem;font-weight:600;color:var(--ink)}
footer.site .fg{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}
footer.site .disc{line-height:1.7;font-weight:600}
footer.site b{font-family:"Newsreader",serif;font-weight:700;color:var(--forest);font-size:1.1rem}
footer.site .fcol h4{font-family:"IBM Plex Mono",monospace;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--forest);margin:0 0 .9rem}
footer.site .fcol ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
footer.site .fcol li{font-weight:600}
footer.site .fcol a{text-decoration:none;font-weight:700;color:var(--ink);transition:color .15s}
footer.site .fcol a:hover{color:var(--forest)}
footer.site .fbottom{max-width:var(--maxw);margin:2rem auto 0;padding-inline:clamp(1.25rem,5vw,3rem);border-top:1px solid var(--line-strong);padding-top:1.2rem;font-family:"IBM Plex Mono",monospace;font-size:.74rem;font-weight:700;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
footer.site .fbottom a{font-weight:700}
footer.site .reg-line{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.4rem;margin-top:2rem;padding-top:1.2rem;border-top:1px solid var(--line-strong);font-family:"IBM Plex Mono",monospace;font-size:.78rem;font-weight:700;color:var(--ink)}
footer.site .reg-line b{font-family:"IBM Plex Mono",monospace;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--forest)}
footer.site .reg-line span+span::before{content:"|";margin-right:1.4rem;color:var(--line-strong)}
footer.site .reg-line+.fbottom{margin-top:1.2rem}
footer.site mark{font-weight:700}

/* ============================================================
   Admin panel
   ============================================================ */
.admin-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}
.admin-side{background:var(--paper-2);border-right:1px solid var(--line-strong);padding:1.5rem 0;display:flex;flex-direction:column}
.admin-side .brand{padding:0 1.25rem 1.5rem;border-bottom:1px solid var(--line);margin-bottom:1rem}
.admin-nav{display:flex;flex-direction:column;gap:.2rem;padding:0 .75rem}
.admin-nav button{
  text-align:left;background:none;border:none;font-family:inherit;font-size:.9rem;color:var(--ink-soft);
  padding:.65rem .75rem;border-radius:3px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;width:100%;
}
.admin-nav button:hover{background:var(--paper-sunk);color:var(--ink)}
.admin-nav button.active{background:var(--forest);color:var(--paper-2)}
.admin-nav button .badge{font-family:"IBM Plex Mono",monospace;font-size:.68rem;background:var(--brass);color:#fff;border-radius:10px;padding:.05rem .45rem}
.admin-nav button.active .badge{background:var(--paper-2);color:var(--forest)}
.admin-side .exit{margin-top:auto;padding:0 1.25rem}

.admin-main{padding:clamp(1.5rem,3vw,2.5rem);max-width:1100px}
.admin-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:1.75rem;gap:1rem;flex-wrap:wrap}
.admin-head h1{font-size:1.9rem}
.admin-head p{color:var(--ink-soft);font-size:.92rem;margin-top:.3rem}

.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}
.stat-tile{border:1px solid var(--line-strong);background:var(--paper-2);padding:1.1rem 1.3rem}
.stat-tile b{display:block;font-family:"Newsreader",serif;font-size:1.7rem;color:var(--forest)}
.stat-tile span{font-family:"IBM Plex Mono",monospace;font-size:.68rem;text-transform:uppercase;color:var(--ink-soft);letter-spacing:.05em}

.data-table{width:100%;border-collapse:collapse;font-size:.88rem;background:var(--paper-2);border:1px solid var(--line-strong)}
.data-table th,.data-table td{padding:.7rem .8rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.data-table thead th{font-family:"IBM Plex Mono",monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);background:var(--paper-sunk)}
.data-table tbody tr:last-child td{border-bottom:none}
.data-table .msg{color:var(--ink-soft);font-size:.85rem;max-width:26ch}
.pill{font-family:"IBM Plex Mono",monospace;font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;padding:.18rem .55rem;border-radius:10px;display:inline-block}
.pill.new{background:color-mix(in srgb, var(--warn) 20%, transparent);color:var(--warn)}
.pill.read{background:color-mix(in srgb, var(--brass) 18%, transparent);color:var(--brass)}
.pill.contacted{background:color-mix(in srgb, var(--good) 20%, transparent);color:var(--good)}
.pill.closed{background:var(--paper-sunk);color:var(--ink-soft)}
.row-actions{display:flex;gap:.4rem;flex-wrap:wrap}
.empty-row td{text-align:center;color:var(--ink-soft);padding:2rem}

.admin-card{border:1px solid var(--line-strong);background:var(--paper-2);padding:1.4rem;margin-bottom:1.5rem}
.admin-card h3{font-size:1.15rem;margin-bottom:1rem}
.admin-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.admin-form.stacked{grid-template-columns:1fr}
.admin-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;color:var(--ink-soft)}
.admin-form input,.admin-form select,.admin-form textarea{font-family:inherit;font-size:.92rem;padding:.55rem .65rem;border:1px solid var(--line-strong);border-radius:2px;background:var(--paper);color:var(--ink)}
.admin-form textarea{resize:vertical;min-height:5rem}
.admin-form .full{grid-column:1/-1}
.admin-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.75rem}

.login-shell{min-height:100vh;display:grid;place-items:center;padding:2rem}
.login-card{width:min(380px,100%);border:1px solid var(--line-strong);background:var(--paper-2);padding:2rem;box-shadow:var(--shadow)}
.login-mark{display:block;height:88px;width:auto;margin:0 auto 1.2rem}
.login-card h1{font-size:1.5rem;margin-bottom:.4rem;text-align:center}
.login-card h1+p{text-align:center}
.login-card p{color:var(--ink-soft);font-size:.88rem;margin-bottom:1.4rem}
.login-card label{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;color:var(--ink-soft);margin-bottom:1.2rem}
.login-card input{font-family:inherit;font-size:1rem;padding:.65rem .75rem;border:1px solid var(--line-strong);border-radius:2px;background:var(--paper);color:var(--ink);width:100%}
.login-card .err{color:var(--bad);font-size:.82rem;margin-top:.6rem;min-height:1.2em}
.login-card .hint{margin-top:1.2rem;font-size:.76rem;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:1rem}

/* ---------- legal pages (privacy policy) ---------- */
.legal-updated{font-family:"IBM Plex Mono",monospace;font-size:.74rem;font-weight:600;color:var(--ink-soft);margin-bottom:1.5rem}
.legal-grid{display:grid;grid-template-columns:230px 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
.legal-toc{position:sticky;top:96px;border:1px solid var(--line-strong);background:var(--paper-2);padding:1.1rem 1.2rem}
.legal-toc h4{font-family:"IBM Plex Mono",monospace;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--forest);margin:0 0 .8rem}
.legal-toc ol{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.5rem;font-size:.88rem;font-weight:600}
.legal-toc a{text-decoration:none;color:var(--ink-soft)}
.legal-toc a:hover{color:var(--forest)}
.legal-body{border:1px solid var(--line-strong);background:var(--paper-2);padding:clamp(1.3rem,3.5vw,2.4rem)}
.legal-notice{border-left:4px solid var(--forest);background:var(--paper);padding:1rem 1.2rem;font-size:.95rem;font-weight:500;margin-bottom:2rem}
.legal-section{padding-bottom:1.6rem;margin-bottom:1.6rem;border-bottom:1px solid var(--line)}
.legal-section h3{font-size:1.3rem;display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem}
.legal-section .n{flex:0 0 auto;width:1.9rem;height:1.9rem;display:grid;place-items:center;border-radius:50%;background:var(--forest);color:var(--paper-2);font-family:"IBM Plex Mono",monospace;font-size:.85rem;font-weight:700}
.legal-section p{color:var(--ink-soft);margin-bottom:.9rem;max-width:75ch}
.legal-section p:last-child{margin-bottom:0}
.legal-cta{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;border:1px solid var(--line-strong);background:var(--paper);padding:1.2rem 1.4rem}
.legal-cta h3{font-size:1.15rem}
.legal-cta p{color:var(--ink-soft);font-size:.92rem;margin-top:.2rem}
@media (max-width:940px){
  .legal-grid{grid-template-columns:1fr}
  .legal-toc{position:static}
}

/* ============================================================
   Emphasis layer — bold labels/headings + highlights on key text
   ============================================================ */
.page-head .crumb{font-weight:600}
.page-head h1,.hero h1{font-weight:700}
.hero h1 em{font-style:normal}
.hero-lede>p:not(.eyebrow),.sec-head p{font-weight:500}

.stub-h{font-weight:700;color:var(--ink)}
.stub li b,.spine b,.mark b,.storm-list b{font-weight:700}
.stub li span,.mark span,.storm-ends,.legend,.svc-card .k,.step .no,.pillars .n,.row .no,.personas i{font-weight:700}
.stub-f{font-weight:700}
.trust-strip b{font-weight:700;font-size:1.5rem}
.trust-strip span{font-weight:600;color:var(--ink)}
.personas div{font-weight:500}
.row .for{font-weight:600}
.diagram text{font-weight:600}
.sync-notes li{font-weight:500}
.edge .lbl,.insight .tag,.insight button.readmore{font-weight:700}
.faq summary{font-weight:700}
.faq details[open] summary{color:var(--forest)}
.svc-card h3,.insight h3,.step h3,.pillars h3,.edge h3,.row h3{font-weight:700}
.testi .who{font-weight:700}

form.card-form .fh{font-weight:700}
form.card-form label,.admin-form label,.login-card label{font-weight:600}
.card-details dt{font-weight:700;color:var(--ink)}
.card-details dd{font-weight:500}

.calc-tab{font-weight:700}
.calc .field label{font-weight:600;color:var(--ink)}
.calc .field .val{font-weight:700}
.res-row span{font-weight:600}
.res-row b{font-weight:700}
.res-row.total b{font-weight:700}
.mini-table thead th{font-weight:700;color:var(--ink)}
.calc-copy .note{font-weight:500}

.admin-head h1{font-weight:700}
.admin-nav button{font-weight:600}
.admin-nav button.active{font-weight:700}
.admin-nav button .badge{font-weight:700}
.stat-tile b{font-weight:700}
.stat-tile span,.pill{font-weight:700}
.data-table thead th{font-weight:700;color:var(--ink)}
.data-table td:first-child{font-weight:600}
.login-card h1{font-weight:700}
.login-card .hint a,.login-card .hint{font-weight:500}
.login-card .hint a{font-weight:700;border-bottom:2px solid var(--brass);text-decoration:none}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .testi-grid,.insight-grid{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .admin-shell{grid-template-columns:1fr}
  .admin-side{position:sticky;top:0;flex-direction:row;align-items:center;padding:.75rem 1rem;overflow-x:auto;z-index:40}
  .admin-side .brand{border:none;padding:0;margin:0 1rem 0 0}
  .admin-nav{flex-direction:row;padding:0}
  .admin-side .exit{margin:0 0 0 auto;padding:0;display:flex;gap:.5rem}
}
@media (max-width:940px){
  nav.main{display:none}
  nav.main.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line-strong);padding:1rem clamp(1.25rem,5vw,3rem);gap:1rem}
  #menu-toggle{display:grid}
  .hero-grid,.sync-grid,.contact-grid,.calc-grid{grid-template-columns:1fr}
  .edges,.steps{grid-template-columns:1fr;gap:2rem}
  .pillars{grid-template-columns:1fr}
  .pillars .p{padding:1.4rem 0;border-right:none;border-bottom:1px solid var(--line)}
  .pillars .p:last-child{border-bottom:none}
  .card-grid{grid-template-columns:1fr}
  .testi-grid,.insight-grid{grid-template-columns:1fr}
  .trust-strip{grid-template-columns:1fr 1fr}
  footer.site .fg{grid-template-columns:1fr}
  .mobile-cta{display:flex}
  body{padding-bottom:64px}
  .admin-form{grid-template-columns:1fr}
}
@media (max-width:720px){
  .storms{display:none}
  .storm-list{display:block}
  .row{grid-template-columns:1fr;gap:.6rem}
  .row .no{position:static;display:block;margin-bottom:.3rem}
}
@media (max-width:560px){
  .personas{grid-template-columns:1fr}
  .personas div:nth-child(odd){border-right:none}
  .personas div:not(:last-child){border-bottom:1px solid var(--line)}
  .trust-strip{grid-template-columns:1fr}
  .trust-strip div:not(:last-child){border-right:none;border-bottom:1px solid var(--line)}
  .stat-row{grid-template-columns:1fr 1fr}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
