/* percentagecalctool.com — cool-editorial v1.5.2 (talaria-site-designer)
   Generic-Utility archetype: tool-is-the-hero. Token prefix "m" (per-site, not shared).
   Manrope head / Inter body / IBM Plex Mono numerals. Light header, dark footer bookend.
   Signature: the proportion bar (part-of-whole fill), reused in mascot + result + section rules.
*/
:root{
  --m-ink:#1C1A2E;--m-ink2:#413F5A;--m-muted:#6C6A81;
  --m-line:#DFDEED;--m-line2:#C8C6DD;
  --m-bg:#F5F5FA;--m-card:#FFFFFF;
  --m-pop:#483DA9;--m-pop-dk:#352D7C;--m-pop-lt:#F1F0FA;--m-pop-tint:#D7D4ED;
  --m-good:#32855F;
  --m-radius:10px;--m-maxw:1120px;
  --m-shadow:0 1px 0 rgba(28,26,46,.03),0 10px 26px rgba(28,26,46,.06);
  --m-head:'Manrope',system-ui,sans-serif;--m-body:'Inter',system-ui,sans-serif;
  --m-mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--m-body);color:var(--m-ink);background:var(--m-bg);
  line-height:1.62;-webkit-font-smoothing:antialiased;min-height:100dvh}
img{max-width:100%;display:block}
a{color:var(--m-pop-dk);text-decoration:none;text-underline-offset:2px}
a:hover{text-decoration:underline}
.wrap{max-width:var(--m-maxw);margin:0 auto;padding:0 22px}
h1,h2,h3,h4{font-family:var(--m-head);line-height:1.14;margin:0 0 .5em;color:var(--m-ink);letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.3vw,2.9rem);font-weight:800}
h2{font-size:clamp(1.35rem,2.6vw,1.7rem);font-weight:700}
h3{font-size:1.08rem;font-weight:700}
p{margin:0 0 1rem}
ul{padding-left:1.35em;margin:.5rem 0 1rem}
li{margin-bottom:.4em}
:focus-visible{outline:2px solid var(--m-pop);outline-offset:2px}
a,button,select,input{transition:background-color .14s ease,border-color .14s ease,color .14s ease,transform .1s ease}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none !important;scroll-behavior:auto;animation:none !important}}

/* ---- header (LIGHT per config) ---- */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--m-line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:66px}
.hgrad{height:3px;background:var(--m-pop)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand:hover{text-decoration:none}
.brand .mark{width:38px;height:38px;flex:0 0 auto}
.brand .name{font-family:var(--m-head);font-weight:800;font-size:1.14rem;color:var(--m-ink);line-height:1;letter-spacing:-.02em}
.brand .name .accent{color:var(--m-pop)}
.brand .tag{display:block;font-family:var(--m-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--m-muted);margin-top:3px}
.nav{display:flex;align-items:center;gap:2px}
.nav a{color:var(--m-ink2);font-weight:600;font-size:.86rem;padding:9px 12px;border-radius:8px}
.nav a:hover{color:var(--m-pop-dk);background:var(--m-pop-lt);text-decoration:none}
.menu-btn{display:none;background:none;border:1px solid var(--m-line2);border-radius:8px;width:42px;height:38px;color:var(--m-ink);font-size:1.2rem;cursor:pointer}
@media (max-width:760px){
  .menu-btn{display:block}
  .nav{position:absolute;top:66px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:8px 14px 16px;display:none;border-bottom:1px solid var(--m-line)}
  .nav.open{display:flex}
  .nav a{padding:12px 10px;border-bottom:1px solid var(--m-line)}
}

/* ---- hero (home, two column, single-tool: no browse-all button) ---- */
.hero{background:var(--m-bg)}
.hero .wrap{padding:0 22px}
.hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:34px;align-items:stretch;padding:46px 0 44px}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr;padding:28px 0 0;gap:0}}
.hero-left{display:flex;flex-direction:column;min-width:0}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--m-head);font-weight:700;
  text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--m-pop-dk);margin-bottom:14px}
.eyebrow::before{content:"";width:22px;height:3px;background:var(--m-pop);display:inline-block;border-radius:2px}
.hero h1{max-width:15ch}
.hero h1 em{color:var(--m-pop);font-style:normal}
.quotable{font-size:1.08rem;color:var(--m-ink2);max-width:50ch;margin:0 0 22px}
.mascot-wrap{margin-top:auto;padding-top:18px;display:flex;align-items:flex-end;gap:16px}
.mascot-wrap svg{width:104px;height:104px;flex:0 0 auto}
.mascot-cap{font-family:var(--m-mono);font-size:.74rem;color:var(--m-muted);max-width:26ch;line-height:1.5}
@media (max-width:860px){.mascot-wrap{padding-bottom:22px}}

/* ---- calc-layout (single flagship tool card) ---- */
.hero-right{display:flex;flex-direction:column;min-width:0}
.panel{background:var(--m-card);border:1px solid var(--m-line);border-radius:var(--m-radius);
  box-shadow:var(--m-shadow);padding:24px}
.panel h2{font-size:1.16rem;margin:0 0 4px}
.panel .sub{color:var(--m-muted);font-size:.86rem;margin:0 0 16px}
.qrow{border-top:1px solid var(--m-line);padding:16px 0}
.qrow:first-of-type{border-top:0;padding-top:0}
.qrow label{display:block;font-weight:700;font-size:.92rem;color:var(--m-ink2);margin-bottom:8px}
.qrow input{width:96px;padding:9px 10px;border:1.5px solid var(--m-line2);border-radius:8px;
  font-size:1rem;font-family:var(--m-mono);background:#fff;color:var(--m-ink);text-align:center}
.qrow input:focus{outline:none;border-color:var(--m-pop);box-shadow:0 0 0 3px var(--m-pop-lt)}
.result{margin-top:8px;padding:14px 16px;background:var(--m-pop-lt);border:1px solid var(--m-pop-tint);
  border-radius:8px;font-size:1rem;min-height:24px;color:var(--m-ink2)}
.result.empty{background:var(--m-bg);border-color:var(--m-line);color:var(--m-muted)}
.result b{font-family:var(--m-mono);font-size:1.55rem;color:var(--m-pop-dk);font-variant-numeric:tabular-nums}
.pbar{height:8px;border-radius:5px;background:var(--m-line);margin-top:10px;position:relative;overflow:hidden}
.pbar i{position:absolute;top:0;left:0;bottom:0;background:linear-gradient(90deg,var(--m-pop),var(--m-pop-dk));
  border-radius:5px;width:0%;transition:width .25s ease}
.authority{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:16px;padding-top:14px;border-top:1px solid var(--m-line);
  font-size:.78rem;color:var(--m-muted);font-family:var(--m-mono)}
.authority span{display:inline-flex;align-items:center;gap:6px}
.authority .dot{color:var(--m-pop)}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--m-head);font-weight:700;
  font-size:.92rem;padding:12px 22px;border-radius:9px;border:0;cursor:pointer;text-decoration:none}
.btn-primary{background:var(--m-pop);color:#fff}
.btn-primary:hover{background:var(--m-pop-dk);text-decoration:none}
.btn-primary:active{transform:scale(.98)}
.btn-ghost{background:transparent;color:var(--m-pop-dk);border:1.5px solid var(--m-line2)}
.btn-ghost:hover{border-color:var(--m-pop);text-decoration:none}
.btn-ghost:active{transform:scale(.98)}
.btn-block{width:100%;justify-content:center}

/* ---- numbered spec sections ---- */
section{padding:52px 0}
.section-head{max-width:64ch;margin:0 0 30px}
.section-head .kicker{font-family:var(--m-mono);text-transform:uppercase;letter-spacing:.1em;
  color:var(--m-pop-dk);font-size:.76rem;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:10px}
.section-head .kicker::after{content:"";flex:1;height:1px;background:var(--m-line)}
.section-head p{color:var(--m-muted);margin:0}

/* ---- worked-example strip ---- */
.workstrip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:760px){.workstrip{grid-template-columns:1fr}}
.workcard{background:var(--m-card);border:1px solid var(--m-line);border-radius:var(--m-radius);padding:18px}
.workcard .num{font-family:var(--m-mono);font-size:.72rem;color:var(--m-pop-dk);letter-spacing:.08em;margin-bottom:8px}
.workcard .eq{font-family:var(--m-mono);font-size:.92rem;color:var(--m-ink2);margin:6px 0}
.workcard .ans{font-family:var(--m-mono);font-size:1.3rem;font-weight:600;color:var(--m-pop-dk);font-variant-numeric:tabular-nums}

/* ---- guide grid: varied roles, not identical triplets ---- */
.guides{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.gcard{display:block;border:1px solid var(--m-line);border-radius:var(--m-radius);padding:18px 20px;
  background:var(--m-card);text-decoration:none;color:var(--m-ink)}
.gcard:hover{border-color:var(--m-pop);text-decoration:none}
.gcard strong{display:block;font-family:var(--m-head);font-weight:700;font-size:1.02rem;margin-bottom:6px;color:var(--m-ink)}
.gcard small{color:var(--m-muted);font-size:.84rem}
.gcard.feature{grid-column:span 2;background:var(--m-pop-lt);border-color:var(--m-pop-tint)}
@media (max-width:640px){.gcard.feature{grid-column:span 1}}

/* ---- dataset callout ---- */
.data-callout{background:var(--m-ink);color:#fff;border-radius:var(--m-radius);padding:26px 28px;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}
.data-callout h3{color:#fff;font-size:1.15rem;margin:0 0 4px}
.data-callout p{color:rgba(255,255,255,.72);margin:0;max-width:48ch;font-size:.92rem}
.data-callout .btn-primary{background:var(--m-pop);flex:0 0 auto}

/* ---- prose (guide/dataset pages) ---- */
.tool-hero{background:#fff;border-bottom:1px solid var(--m-line)}
.tool-hero .wrap{padding:36px 22px 30px}
body:not(:has(.calc-layout)) .tool-hero .wrap{max-width:760px}
.crumbs{font-size:.8rem;color:var(--m-muted);margin-bottom:12px;font-weight:600}
.crumbs a{color:var(--m-pop-dk)}
.tool-hero h1{margin-bottom:.3em}
.tool-hero .dek{color:var(--m-ink2);max-width:62ch;margin:0}
main.prosewrap{padding:32px 0 10px}
.prose{max-width:760px;margin:0 auto}
.prose p{color:var(--m-ink2)}
.prose h2{margin:1.9em 0 .5em;padding-bottom:.35em;border-bottom:1px solid var(--m-line)}
.prose h2:first-child{margin-top:0}
.prose table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.93rem}
.prose th{text-align:left;font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:var(--m-muted);
  border-bottom:2px solid var(--m-ink);padding:9px 10px;font-family:var(--m-mono)}
.prose td{padding:10px 10px;border-bottom:1px solid var(--m-line);vertical-align:top}
.prose td:nth-child(2),.prose td:nth-child(3){font-family:var(--m-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.byline{display:flex;align-items:center;gap:10px;color:var(--m-muted);font-size:.86rem;margin:14px 0 22px}
.byline img{width:38px;height:38px;border-radius:50%;object-fit:cover;border:1px solid var(--m-line)}
.byline b{color:var(--m-ink)}
.callout{background:var(--m-pop-lt);border-left:4px solid var(--m-pop);border-radius:0 var(--m-radius) var(--m-radius) 0;
  padding:16px 20px;margin:20px 0}
.callout p{margin:0;color:var(--m-ink2)}

/* ---- FAQ ---- */
.faq{max-width:760px;margin:0 auto}
.faq details{background:var(--m-card);border:1px solid var(--m-line);border-radius:var(--m-radius);
  padding:2px 20px;margin-bottom:10px}
.faq summary{font-family:var(--m-head);font-weight:700;font-size:1rem;cursor:pointer;padding:15px 0;
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;color:var(--m-ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--m-mono);font-size:1.3rem;color:var(--m-pop);font-weight:400}
.faq details[open] summary::after{content:"\2212"}
.faq details p{color:var(--m-ink2);margin:0 0 16px}

/* ---- disclaimer / ad slot ---- */
.disc{font-size:.8rem;color:var(--m-muted);background:var(--m-card);border:1px solid var(--m-line);
  border-radius:var(--m-radius);padding:13px 16px;margin-top:18px;line-height:1.6}
.ad{margin:24px 0;min-height:90px;border:1px solid var(--m-line);border-radius:var(--m-radius);
  display:flex;align-items:center;justify-content:center;color:var(--m-muted);font-family:var(--m-mono);
  font-size:.64rem;letter-spacing:.14em;text-transform:uppercase}

/* ---- forms (contact) ---- */
.form-card{max-width:560px;background:var(--m-card);border:1px solid var(--m-line);
  border-radius:var(--m-radius);padding:26px}
.field{display:flex;flex-direction:column;gap:5px;margin:13px 0;font-weight:600;font-size:.9rem;color:var(--m-ink2)}
.field input,.field textarea{padding:11px 13px;border:1.5px solid var(--m-line2);border-radius:8px;
  font-size:1rem;font-family:var(--m-body);background:var(--m-bg);color:var(--m-ink)}
.field textarea{min-height:120px;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--m-pop);background:#fff;
  box-shadow:0 0 0 3px var(--m-pop-lt)}

/* ---- footer (dark bookend, HARD grid rule) ---- */
.site-footer{background:var(--m-ink);color:rgba(255,255,255,.65);margin-top:20px}
.site-footer .wrap{padding:44px 22px 24px}
.site-footer .cols{display:grid;grid-template-columns:1.8fr 1fr 1fr;gap:32px;align-items:start;margin-bottom:26px}
.site-footer .cols a{display:block;margin:0 0 9px;color:rgba(255,255,255,.68);font-size:.9rem}
.site-footer .cols a:hover{color:var(--m-pop-tint);text-decoration:none}
@media (max-width:760px){.site-footer .cols{grid-template-columns:1fr 1fr}}
.site-footer .brand{margin-bottom:8px}
.site-footer .brand svg rect{fill:#fff}
.site-footer .brand .name{color:#fff}
.site-footer .cols h4{font-family:var(--m-head);font-size:.8rem;color:#fff;margin:0 0 12px;
  text-transform:uppercase;letter-spacing:.06em}
.site-footer .blurb{max-width:32ch;font-size:.88rem;color:rgba(255,255,255,.6);margin-top:10px}
.foot-bottom{border-top:1px solid rgba(255,255,255,.14);padding-top:18px;display:flex;flex-wrap:wrap;
  justify-content:space-between;gap:10px;font-size:.8rem;color:rgba(255,255,255,.46)}
.related-mesh{margin-top:14px;font-size:.8rem;line-height:1.8;color:rgba(255,255,255,.42);
  border-top:1px solid rgba(255,255,255,.1);padding-top:14px}
.related-mesh a{color:rgba(255,255,255,.55);text-decoration:underline;text-underline-offset:2px}
.related-mesh a:hover{color:var(--m-pop-tint)}

/* ---- cookie consent ---- */
#cc-banner{background:var(--m-ink) !important;border-top:1px solid rgba(255,255,255,.14)}
#cc-acc{background:var(--m-pop) !important;color:#fff !important;border:0 !important;border-radius:7px !important;
  padding:9px 18px !important;cursor:pointer !important;font-weight:700 !important;font-family:var(--m-head)}
#cc-acc:hover{background:var(--m-pop-dk) !important}
#cc-rej{background:transparent !important;color:rgba(255,255,255,.8) !important;
  border:1px solid rgba(255,255,255,.24) !important;border-radius:7px !important}

.mono,.num{font-family:var(--m-mono);font-variant-numeric:tabular-nums}
.center{text-align:center}

@media (max-width:640px){
  .site-header .wrap{padding-left:16px;padding-right:16px}
  .wrap{padding:0 16px}
  section{padding:36px 0}
  .site-footer .wrap{padding:32px 16px 18px}
  .panel{padding:20px}
}
