/* Calculator Hub — Design System v2
   Warm, editorial, low-saturation. DM Serif Display + DM Sans.
   No animations beyond micro-transitions. */

*{margin:0;padding:0;box-sizing:border-box}

:root{
  --bg:#faf7f2;            /* warm off-white */
  --surface:#ffffff;
  --ink:#2d2a26;            /* warm near-black */
  --ink-soft:#5c564e;
  --ink-mute:#857d72;
  --line:#e8e1d6;
  --sage:#7d9a7e;           /* muted sage green */
  --sage-deep:#5f7d60;
  --sage-tint:#eef3ee;
  --amber:#c9963f;          /* honey amber */
  --amber-tint:#faf3e4;
  --rose:#c08a8a;           /* dusty rose */
  --rose-tint:#f7ecec;
  --steel:#6b8aa6;          /* steel blue */
  --steel-tint:#ecf1f5;
  --err:#b45a5a;
  --radius:12px;
  --radius-lg:18px;
  --shadow:0 1px 3px rgba(60,50,35,.06),0 6px 20px rgba(60,50,35,.05);
  --shadow-lift:0 4px 10px rgba(60,50,35,.08),0 14px 34px rgba(60,50,35,.08);
  --serif:'DM Serif Display',Georgia,serif;
  --sans:'DM Sans',-apple-system,'Segoe UI',sans-serif;
}

html{scroll-behavior:smooth}
body{font-family:var(--sans);font-size:16px;line-height:1.65;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}

h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.15;color:var(--ink)}
h1{font-size:2.4rem;margin-bottom:.6rem}
h2{font-size:1.65rem;margin-bottom:.9rem}
h3{font-size:1.2rem;margin-bottom:.5rem}
p{margin-bottom:1rem}
a{color:var(--sage-deep);text-decoration:none}
a:hover{text-decoration:underline}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--amber);outline-offset:2px;border-radius:4px}

.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:.6rem 1rem;z-index:200;border-radius:0 0 8px 0}
.skip-link:focus{left:0}

.container{max-width:1080px;margin:0 auto;padding:0 1.25rem;width:100%}

/* ---------- Header ---------- */
.header{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:100}
.header .container{display:flex;align-items:center;justify-content:space-between;padding-top:.8rem;padding-bottom:.8rem;gap:1rem}
.brand{display:flex;align-items:center;gap:.6rem;color:var(--ink)}
.brand:hover{text-decoration:none}
.brand-mark{width:38px;height:38px;border-radius:10px;background:var(--sage);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.15rem}
.brand-name{font-family:var(--serif);font-size:1.3rem;line-height:1.1}
.brand-sub{font-size:.72rem;color:var(--ink-mute);letter-spacing:.04em}
.nav-main{display:flex;gap:.25rem;align-items:center}
.nav-main a{padding:.5rem .85rem;border-radius:8px;color:var(--ink-soft);font-weight:500;font-size:.95rem}
.nav-main a:hover{background:var(--sage-tint);color:var(--sage-deep);text-decoration:none}
.nav-main a[aria-current="page"]{background:var(--sage-tint);color:var(--sage-deep)}
.nav-toggle{display:none}
@media(max-width:760px){
  .nav-toggle{display:block;background:none;border:1px solid var(--line);border-radius:8px;padding:.45rem .7rem;font-size:1.05rem;cursor:pointer;color:var(--ink)}
  .nav-main{display:none;position:absolute;top:100%;right:1rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lift);flex-direction:column;align-items:stretch;padding:.5rem;min-width:200px}
  .nav-main.open{display:flex}
}

/* ---------- Breadcrumb ---------- */
.crumb{font-size:.85rem;color:var(--ink-mute);padding:1rem 0 .25rem}
.crumb a{color:var(--ink-mute)}
.crumb a:hover{color:var(--sage-deep)}
.crumb span[aria-current]{color:var(--ink-soft)}

/* ---------- Hero ---------- */
.hero{text-align:center;padding:3rem 0 2.2rem}
.hero h1{font-size:2.7rem;max-width:720px;margin:0 auto .7rem}
.hero p{color:var(--ink-soft);font-size:1.1rem;max-width:560px;margin:0 auto 1.4rem}
.hero .searchwrap{max-width:520px;margin:0 auto;position:relative}
.hero input[type=search]{width:100%;padding:.95rem 3rem .95rem 1.25rem;border:1.5px solid var(--line);border-radius:999px;font:inherit;background:var(--surface);color:var(--ink)}
.hero input[type=search]:focus{border-color:var(--sage)}
.hero .searchwrap .mag{position:absolute;right:1.1rem;top:50%;transform:translateY(-50%);opacity:.45;pointer-events:none}
.trust-strip{display:flex;gap:1.4rem;justify-content:center;flex-wrap:wrap;margin-top:1.1rem;font-size:.88rem;color:var(--ink-mute)}
.trust-strip b{color:var(--sage-deep);font-weight:600}
#noResults{display:none;color:var(--ink-mute);margin-top:1rem}

/* ---------- Sections ---------- */
.section{padding:2.2rem 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.3rem}
.section-head .more{font-size:.9rem;white-space:nowrap}
.eyebrow{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--amber);font-weight:600;margin-bottom:.35rem}

/* ---------- Cards ---------- */
.grid{display:grid;gap:1rem}
.grid-cards{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.grid-cats{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem 1.2rem;display:block;color:var(--ink);transition:box-shadow .18s,transform .18s,border-color .18s}
.card:hover{text-decoration:none;box-shadow:var(--shadow-lift);transform:translateY(-2px);border-color:var(--sage)}
.card .c-icon{font-size:1.5rem;display:block;margin-bottom:.5rem}
.card .c-title{font-weight:600;font-size:1rem;margin-bottom:.25rem;color:var(--ink)}
.card .c-desc{font-size:.86rem;color:var(--ink-mute);line-height:1.5}
.cat-card{display:flex;gap:.9rem;align-items:flex-start}
.cat-card .c-icon{margin:0;font-size:1.7rem}
.cat-card .c-count{font-size:.78rem;color:var(--amber);font-weight:600;margin-top:.35rem;display:inline-block}

/* Featured band (document tools) */
.band{background:var(--amber-tint);border:1px solid #eddfbe;border-radius:var(--radius-lg);padding:1.8rem 1.6rem;margin:1rem 0}
.band h2{margin-bottom:.4rem}
.band>p{color:var(--ink-soft);max-width:640px}
.band .grid{margin-top:1.1rem}
.badge-soon{font-size:.68rem;background:var(--rose-tint);color:#9c6a6a;padding:.15rem .5rem;border-radius:999px;font-weight:600;letter-spacing:.03em;vertical-align:middle}

/* Trust section */
.trust{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem 1.6rem}
.trust-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem;margin-top:.4rem}
.trust-grid h3{font-family:var(--sans);font-weight:600;font-size:.98rem;margin-bottom:.3rem}
.trust-grid p{font-size:.88rem;color:var(--ink-mute);margin:0}

/* ---------- Calculator page ---------- */
.page-title{margin-top:.4rem}
.meta-line{font-size:.85rem;color:var(--ink-mute);margin-bottom:1.1rem}
.meta-line .fy{color:var(--sage-deep);font-weight:600}
.intro{color:var(--ink-soft);font-size:1.05rem;max-width:760px}

.calc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.8rem;margin:1.4rem 0;box-shadow:var(--shadow)}
.calc h2{font-family:var(--sans);font-weight:600;font-size:1.15rem;margin-bottom:1.2rem}
.form-group{margin-bottom:1.05rem}
.form-group label{display:block;font-weight:600;font-size:.88rem;margin-bottom:.35rem;color:var(--ink-soft)}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:.7rem .9rem;border:1.5px solid var(--line);border-radius:10px;font:inherit;background:var(--surface);color:var(--ink)}
.form-group input:focus,.form-group select:focus{border-color:var(--sage)}
.form-group small{display:block;margin-top:.3rem;font-size:.8rem;color:var(--ink-mute)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.two-col{grid-template-columns:1fr}}

.button-group{display:flex;gap:.8rem;margin-top:1.3rem;flex-wrap:wrap}
.btn{padding:.8rem 1.7rem;border-radius:10px;font:inherit;font-weight:600;cursor:pointer;border:1.5px solid transparent;transition:background .15s,transform .1s}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--sage-deep);color:#fff}
.btn-primary:hover{background:#516c52}
.btn-secondary{background:var(--surface);color:var(--ink-soft);border-color:var(--line)}
.btn-secondary:hover{border-color:var(--sage);color:var(--sage-deep)}
.btn-ghost{background:none;border:none;color:var(--steel);font-weight:600;cursor:pointer;font-size:.88rem;padding:.4rem .2rem}

.error-message{color:var(--err);font-size:.88rem;font-weight:500;margin-top:.6rem;min-height:1.2em}

.result-box{background:var(--sage-tint);border:1.5px solid var(--sage);border-radius:var(--radius-lg);padding:1.6rem;margin-top:1.4rem}
.result-box h2,.result-box .section-title{font-family:var(--sans);font-weight:600;font-size:1.05rem;margin-bottom:1rem;color:var(--sage-deep)}
.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.8rem;margin-bottom:.6rem}
.result-item{display:flex;justify-content:space-between;align-items:center;gap:.8rem;background:var(--surface);border-radius:10px;padding:.8rem 1rem;font-size:.92rem}
.result-item.highlight{background:var(--sage-deep);color:#fff}
.result-item.highlight *{color:#fff}
.result-label{color:var(--ink-mute)}
.result-item.highlight .result-label{color:#e6efe6}
.result-value{font-weight:700}
.interpret{font-size:.9rem;color:var(--ink-soft);background:var(--surface);border-left:3px solid var(--amber);border-radius:8px;padding:.7rem .9rem;margin-top:.8rem}

/* Content sections on calculator pages */
.content{max-width:780px}
.content section{margin:2.2rem 0}
.content h2{border-bottom:1px solid var(--line);padding-bottom:.4rem}
.formula{background:var(--steel-tint);border-radius:var(--radius);padding:1rem 1.2rem;font-family:ui-monospace,Menlo,monospace;font-size:.92rem;overflow-x:auto;margin:.8rem 0;color:#3f5a72}
table{width:100%;border-collapse:collapse;margin:.8rem 0;font-size:.92rem;background:var(--surface);border-radius:10px;overflow:hidden}
th{background:var(--sage-tint);color:var(--sage-deep);text-align:left;padding:.6rem .8rem;font-weight:600}
td{padding:.6rem .8rem;border-top:1px solid var(--line)}
tr:hover td{background:#fcfaf6}
.num{text-align:right}

.faq details{border:1px solid var(--line);border-radius:10px;background:var(--surface);margin-bottom:.6rem;padding:.2rem 1rem}
.faq summary{cursor:pointer;font-weight:600;padding:.7rem 0;color:var(--ink);list-style-position:outside}
.faq details[open]{border-color:var(--sage)}
.faq details p{color:var(--ink-soft);font-size:.93rem;padding-bottom:.8rem;margin:0}

.related-wrap{margin:2.2rem 0}
.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:.7rem}
.related-grid a{display:flex;align-items:center;gap:.55rem;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:.75rem .9rem;font-weight:600;font-size:.9rem;color:var(--ink);transition:border-color .15s,transform .15s}
.related-grid a:hover{border-color:var(--sage);transform:translateY(-2px);text-decoration:none;color:var(--sage-deep)}

.sources{font-size:.86rem;color:var(--ink-mute);border-top:1px solid var(--line);padding-top:1rem}
.sources ul{margin:.4rem 0 .8rem 1.2rem}
.disclaimer{font-size:.8rem;color:var(--ink-mute);font-style:italic}

/* ---------- Hub pages ---------- */
.hub-head{padding:2rem 0 .6rem}
.hub-head p{color:var(--ink-soft);max-width:640px}

/* ---------- Footer ---------- */
.footer{background:#2f2c27;color:#cfc8bc;margin-top:3rem;padding:2.6rem 0 1.6rem}
.footer a{color:#e5ddcf}
.footer a:hover{color:#fff}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1.6rem;margin-bottom:1.8rem}
.footer h3{font-family:var(--sans);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:#a89e8e;margin-bottom:.7rem}
.footer ul{list-style:none}
.footer li{margin-bottom:.45rem;font-size:.9rem}
.footer-bottom{border-top:1px solid #46423a;padding-top:1.2rem;font-size:.84rem;color:#a89e8e;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}

@media print{.header,.footer,.button-group,.related-wrap,.crumb,.nav-main{display:none}.result-box{border:2px solid #000}}
@media(max-width:560px){h1{font-size:1.9rem}.hero h1{font-size:2rem}.calc{padding:1.2rem}}
