/* ===================== TILTH — "LIVING SOIL" SHARED STYLES ===================== */
:root{
  --bg:#15110B;
  --bg-2:#1C1710;
  --surface:#241D14;
  --surface-2:#2C2418;
  --green:#2C4A36;
  --forest-deep:#1C3327;
  --terra:#E2885A;
  --glow:#AAC56C;
  --glow-soft:#8BA557;
  --ink:#F5EEE1;
  --cream:#F4EFE6;
  --white:#241D14;        /* repurposed: "card" surfaces are dark now */
  --text:#D1C8B6;
  --olive:#9A8F7C;
  --muted:#9A8F7C;
  --soil:#15110B;
  --rule:rgba(245,238,225,.12);
  --ease:cubic-bezier(.16,1,.3,1);
}
/* Accessibility: visible keyboard focus everywhere */
:focus-visible{outline:2px solid var(--glow);outline-offset:3px;border-radius:2px}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--glow);outline-offset:3px}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:'Work Sans',Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  line-height:1.65;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
.serif{font-family:'Fraunces',Georgia,serif}
em,.italic{font-family:'Fraunces',Georgia,serif;font-style:italic}
a{color:inherit;text-decoration:none}
.wrap{max-width:1200px;margin:0 auto;padding:0 6vw}
.wrap-narrow{max-width:820px;margin:0 auto;padding:0 6vw}
.label{font-size:11px;letter-spacing:3px;text-transform:uppercase;font-weight:600}
.label::before{content:"( ";opacity:.55}
.label::after{content:" )";opacity:.55}
::selection{background:var(--glow);color:var(--bg)}

/* ===================== MASTHEAD — floating pill ===================== */
.masthead{position:sticky;top:14px;z-index:50;width:calc(100% - 3.2vw);max-width:1340px;margin:14px auto 0;border:1px solid var(--rule);border-radius:48px;background:rgba(21,17,11,.6);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);transition:background .4s,box-shadow .4s}
.masthead .wrap{max-width:none;display:flex;justify-content:space-between;align-items:center;padding:10px 12px 10px 26px;flex-wrap:nowrap;gap:20px}
.masthead .word{font-family:'Fraunces',serif;font-size:20px;font-weight:600;letter-spacing:5px;color:var(--ink);flex:none}
.masthead nav{display:flex;gap:28px;font-size:13px;font-weight:500}
.masthead nav a{position:relative;padding-bottom:3px;color:var(--text);transition:color .3s}
.masthead nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--glow);box-shadow:0 0 8px var(--glow);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.masthead nav a:hover,.masthead nav a.active{color:var(--ink)}
.masthead nav a:hover::after,.masthead nav a.active::after{transform:scaleX(1);transform-origin:left}
.masthead .meta{color:var(--olive);font-size:12px;letter-spacing:1px}

/* unified nav: desktop CTA + accessible mobile menu (injected by nav.js) */
.masthead .mh-cta{font-size:12.5px;letter-spacing:.5px;background:var(--glow);border:1px solid var(--glow);padding:11px 22px;border-radius:40px;font-weight:600;color:var(--bg);flex:none;transition:transform .3s var(--ease),box-shadow .3s,filter .3s}
.masthead .mh-cta:hover{transform:translateY(-1px);box-shadow:0 0 26px rgba(170,197,108,.55);filter:brightness(1.06)}

/* theme toggle (injected by nav.js) */
.theme-toggle{width:40px;height:40px;border-radius:50%;border:1px solid var(--rule);background:transparent;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .3s,color .3s,border-color .3s;flex:none}
.theme-toggle:hover{border-color:var(--glow);color:var(--glow)}
.theme-toggle svg{width:18px;height:18px}
.theme-toggle .sun{display:none}
html[data-theme="light"] .theme-toggle .moon{display:none}
html[data-theme="light"] .theme-toggle .sun{display:block}
.mh-burger{display:none;width:34px;height:30px;position:relative;background:none;border:0;cursor:pointer}
.mh-burger span{position:absolute;left:5px;right:5px;height:2px;background:var(--ink);border-radius:2px;transition:transform .4s var(--ease),opacity .3s}
.mh-burger span:nth-child(1){top:10px}
.mh-burger span:nth-child(2){bottom:10px}
body.mh-open .mh-burger span:nth-child(1){transform:translateY(4px) rotate(45deg)}
body.mh-open .mh-burger span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
.mh-menu{position:fixed;inset:0;z-index:60;background:radial-gradient(120% 80% at 80% 10%,#1C1710,var(--bg) 60%);display:flex;flex-direction:column;justify-content:center;gap:2px;padding:0 9vw;opacity:0;visibility:hidden;transition:opacity .5s var(--ease),visibility .5s}
.mh-menu a{font-family:'Fraunces',serif;font-size:clamp(34px,9vw,52px);color:var(--ink);padding:14px 0;border-bottom:1px solid var(--rule);transition:color .3s}
.mh-menu a:hover{color:var(--glow)}
.mh-menu-cta{color:var(--glow)!important;border-bottom:0!important;font-style:italic;margin-top:18px}
body.mh-open{overflow:hidden}
body.mh-open .mh-menu{opacity:1;visibility:visible}
@media(max-width:760px){.masthead nav,.masthead .mh-cta{display:none}.mh-burger{display:block}.masthead .wrap{padding:8px 10px 8px 20px}}

/* ===================== SHARED SECTION HEADERS ===================== */
.page-head{padding:120px 0 10px}
.page-head .label{color:var(--glow);margin-bottom:18px;display:block}
.page-head h1{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(36px,5.4vw,62px);line-height:1.06;letter-spacing:-1px;max-width:16ch;color:var(--ink)}
.page-head h1 .accent{font-style:italic;color:var(--terra);font-weight:400}
.page-head .standfirst{font-size:18px;color:var(--text);max-width:620px;margin-top:24px}
@media(max-width:760px){
  .page-head{padding:80px 0 6px}
  .page-head h1{font-size:clamp(32px,8.2vw,44px)}
  .page-head .standfirst{font-size:16px;margin-top:18px}
}

/* ===================== BUTTONS / CTAS ===================== */
.btn{position:relative;display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--bg);background:var(--glow);padding:15px 30px;border-radius:40px;font-size:14.5px;box-shadow:0 0 26px rgba(170,197,108,.4);transition:box-shadow .3s,transform .3s}
.btn:hover{box-shadow:0 0 38px rgba(170,197,108,.65)}
.text-cta{font-weight:600;color:var(--glow);border-bottom:1.5px solid var(--glow);padding-bottom:3px;font-size:14.5px}
/* keep the solid button legible even inside prose (where links are sage-on-sage) */
.prose a.btn,.prose a.btn:hover{color:var(--bg);border-bottom:0}

/* ===================== GROUND DIVIDER ===================== */
.ground-divider{height:1px;background:linear-gradient(90deg,transparent,var(--terra),transparent);position:relative;box-shadow:0 0 12px rgba(232,137,94,.4)}
.ground-divider span{position:absolute;left:6vw;top:-9px;background:var(--bg);padding:0 10px;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--terra);font-weight:600}

/* ===================== FOOTER ===================== */
footer{background:#100C07;color:var(--olive);padding:70px 0 30px;border-top:1px solid var(--rule)}
.footer-grid{display:grid;grid-template-columns:1fr;gap:40px}
@media(min-width:720px){.footer-grid{grid-template-columns:1.6fr 1fr 1fr 1fr}}
footer .word{font-family:'Fraunces',serif;font-style:italic;font-size:20px;color:var(--ink);margin-bottom:8px}
footer .addr{font-size:13px;color:var(--olive);line-height:1.7}
footer .fcol{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--glow);margin-bottom:14px;font-weight:600;font-family:'Work Sans',sans-serif}
footer ul{list-style:none;font-size:14px}
footer li{margin-bottom:9px}
footer a{color:var(--olive);transition:color .3s}
footer a:hover{color:var(--ink)}
.footer-bottom{margin-top:50px;padding-top:22px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:11px;letter-spacing:1.5px;color:var(--olive);text-transform:uppercase}

/* ===================== FAQ (shared component) ===================== */
.faq{background:var(--bg);color:var(--ink);padding:96px 0 110px;border-top:1px solid var(--rule)}
.faq .label{color:var(--glow);margin-bottom:16px;display:block}
.faq h2{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(28px,4.6vw,48px);line-height:1.06;letter-spacing:-1px;color:var(--ink);max-width:20ch;margin-bottom:44px}
.faq h2 em{color:var(--terra);font-style:italic}
.faq__list{max-width:840px}
.faq__item{border-top:1px solid var(--rule)}
.faq__item:last-child{border-bottom:1px solid var(--rule)}
.faq__item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:flex-start;gap:28px;padding:24px 0;font-family:'Fraunces',serif;font-weight:400;font-size:clamp(18px,2.2vw,23px);line-height:1.25;color:var(--ink);transition:color .3s}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary:hover,.faq__item[open] summary{color:var(--glow)}
.faq__item .ic{flex:none;position:relative;width:22px;height:22px;margin-top:4px}
.faq__item .ic::before,.faq__item .ic::after{content:"";position:absolute;background:var(--glow);border-radius:2px;transition:transform .35s var(--ease),opacity .35s}
.faq__item .ic::before{top:10px;left:0;width:22px;height:2px}
.faq__item .ic::after{top:0;left:10px;width:2px;height:22px}
.faq__item[open] .ic::after{transform:scaleY(0);opacity:0}
.faq__ans{padding:0 0 26px;max-width:66ch}
.faq__ans p{font-size:16px;line-height:1.7;color:var(--text)}
.faq__ans a{color:var(--glow);border-bottom:1px solid var(--glow)}
.faq__foot{margin-top:38px;font-size:16px;color:var(--text)}
.faq__foot a{color:var(--glow);border-bottom:1.5px solid var(--glow);padding-bottom:3px;font-weight:600}
@media(max-width:760px){.faq{padding:70px 0 80px}.faq h2{margin-bottom:30px}.faq__item summary{gap:18px}}

/* skip link + reduced motion */
.skip-link{position:fixed;top:10px;left:10px;z-index:100;background:var(--glow);color:var(--bg);padding:10px 18px;border-radius:6px;font-weight:600;font-size:14px;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.skip-link:focus{width:auto;height:auto;overflow:visible;clip:auto;clip-path:none}
#main:focus{outline:none}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* ===================== LIGHT THEME ===================== */
html[data-theme="light"]{
  --bg:#F6F2EA;--bg-2:#EFE9DC;--surface:#FFFFFF;--surface-2:#F1EADE;
  --green:#DFE9D2;--forest-deep:#EAE6D8;
  --terra:#C2673B;
  --glow:#5F7F37;--glow-soft:#5F7F37;
  --ink:#1A1510;--cream:#1A1510;--white:#FFFFFF;
  --text:#4B4239;--olive:#6F665A;--muted:#6F665A;--soil:#F6F2EA;
  --rule:rgba(26,21,16,.14);
}
html[data-theme="light"] .masthead{background:rgba(250,247,241,.72)}
html[data-theme="light"] .masthead.scrolled{box-shadow:0 16px 46px -24px rgba(26,21,16,.4)}
html[data-theme="light"] .mh-cta:hover{box-shadow:0 0 22px rgba(95,127,55,.4)}
html[data-theme="light"] .mh-menu{background:radial-gradient(120% 80% at 80% 10%,#EFE9DC,#F6F2EA 60%)}
html[data-theme="light"] footer{background:#EFE9DC}
html[data-theme="light"] .ground-divider{box-shadow:0 0 10px rgba(194,103,59,.35)}
html[data-theme="light"] .ground-divider span{background:var(--bg)}
html[data-theme="light"] .btn{box-shadow:0 0 22px rgba(95,127,55,.28)}
html[data-theme="light"] .btn:hover{box-shadow:0 0 32px rgba(95,127,55,.45)}
html[data-theme="light"] .masthead nav a::after{box-shadow:none}

/* ===================== SCROLL REVEAL + SMOOTH SCROLL ===================== */
/* .reveal is added by nav.js only when motion is allowed; content is fully
   visible without JS or under reduced-motion, so nothing is ever hidden. */
html{scroll-behavior:smooth}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);will-change:opacity,transform}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ===================== FREE TOOLS (shared) ===================== */
.tk { padding: 34px 0 40px; }
.tk-crumb { font-size: 12px; letter-spacing: .5px; color: var(--olive); margin-bottom: 26px; }
.tk-crumb a { color: var(--glow); }
.tk-calc { display: grid; grid-template-columns: 1fr; gap: 22px; margin-top: 36px; }
@media (min-width: 900px) { .tk-calc { grid-template-columns: 1fr 1fr; gap: 30px; align-items: start; } }
.tk-panel { background: var(--surface); border: 1px solid var(--rule); border-radius: 18px; padding: 30px 28px; }
.tk-panel h2 { font-family: 'Fraunces', serif; font-weight: 400; font-size: 21px; color: var(--ink); margin-bottom: 6px; letter-spacing: -.4px; }
.tk-sub { font-size: 13.5px; color: var(--olive); margin-bottom: 26px; }
.tk-field { margin-bottom: 22px; }
.tk-field:last-child { margin-bottom: 0; }
.tk-ftop { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 11px; }
.tk-label { font-size: 14px; color: var(--ink); font-weight: 500; }
.tk-hint { font-size: 12px; color: var(--olive); }
.tk-val { position: relative; display: inline-flex; align-items: center; }
.tk-val .pre { position: absolute; left: 13px; color: var(--olive); font-size: 15px; pointer-events: none; }
.tk-val input[type="number"] { width: 120px; background: var(--bg); border: 1px solid var(--rule); border-radius: 10px; padding: 9px 12px 9px 26px; color: var(--ink); font-family: 'Work Sans', sans-serif; font-size: 15px; font-weight: 600; text-align: right; }
.tk-val.pct input { padding: 9px 26px 9px 12px; }
.tk-val.pct .suf { position: absolute; right: 13px; color: var(--olive); font-size: 15px; pointer-events: none; }
.tk-val.bare input { padding-left: 12px; }
.tk-val input:focus { outline: none; border-color: var(--glow); }
.tk-field input[type="range"] { width: 100%; accent-color: var(--glow); height: 6px; cursor: pointer; margin-top: 2px; }
.tk-text, .tk-field textarea { width: 100%; background: var(--bg); border: 1px solid var(--rule); border-radius: 10px; padding: 11px 13px; color: var(--ink); font-family: 'Work Sans', sans-serif; font-size: 14.5px; }
.tk-text:focus, .tk-field textarea:focus { outline: none; border-color: var(--glow); }
.tk-results { display: flex; flex-direction: column; gap: 18px; }
.tk-rcard { background: var(--bg); border: 1px solid var(--rule); border-radius: 14px; padding: 22px 24px; }
.tk-rcard .k { font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: var(--glow); font-weight: 600; margin-bottom: 8px; }
.tk-rcard .v { font-family: 'Fraunces', serif; font-weight: 500; font-size: clamp(30px, 4.6vw, 44px); line-height: 1; color: var(--ink); letter-spacing: -1px; }
.tk-rcard .v .unit { font-size: .5em; color: var(--olive); letter-spacing: 0; margin-left: 4px; }
.tk-rcard .exp { font-size: 13.5px; color: var(--text); margin-top: 12px; line-height: 1.55; max-width: 44ch; }
.tk-verdict { border-radius: 14px; padding: 22px 24px; border: 1px solid var(--rule); transition: background .4s, border-color .4s; }
.tk-verdict .k { font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; font-weight: 600; margin-bottom: 8px; color: var(--olive); }
.tk-verdict .headline { font-family: 'Fraunces', serif; font-weight: 500; font-size: 23px; line-height: 1.15; color: var(--ink); letter-spacing: -.5px; }
.tk-verdict .detail { font-size: 13.5px; color: var(--text); margin-top: 10px; line-height: 1.55; }
.tk-verdict.good { background: rgba(170,197,108,.12); border-color: rgba(170,197,108,.5); } .tk-verdict.good .k { color: var(--glow); }
.tk-verdict.bad { background: rgba(226,136,90,.12); border-color: rgba(226,136,90,.5); } .tk-verdict.bad .k { color: var(--terra); }
.tk-verdict.warn { background: rgba(207,160,76,.12); border-color: rgba(207,160,76,.5); } .tk-verdict.warn .k { color: #CFA04C; }
.tk-copy { margin-top: 14px; display: inline-flex; align-items: center; gap: 8px; background: var(--glow); color: var(--bg); border: 0; border-radius: 40px; padding: 11px 22px; font-family: 'Work Sans', sans-serif; font-weight: 600; font-size: 14px; cursor: pointer; transition: filter .3s, transform .3s; }
.tk-copy:hover { filter: brightness(1.06); transform: translateY(-1px); }
.tk-output { word-break: break-all; font-family: 'Work Sans', sans-serif; font-size: 14.5px; color: var(--ink); background: var(--bg); border: 1px solid var(--rule); border-radius: 12px; padding: 16px 18px; line-height: 1.5; }
.tk-note { margin-top: 38px; padding: 22px 24px; border-left: 2px solid var(--terra); background: var(--surface); border-radius: 0 12px 12px 0; }
.tk-note p { font-size: 14.5px; color: var(--text); line-height: 1.6; margin: 0; } .tk-note strong { color: var(--ink); }
.tk-cta { margin-top: 44px; padding: 34px; background: var(--surface); border: 1px solid var(--rule); border-radius: 16px; }
.tk-cta h3 { font-family: 'Fraunces', serif; font-weight: 400; font-size: 24px; color: var(--ink); margin-bottom: 10px; }
.tk-cta p { color: var(--text); margin-bottom: 20px; max-width: 54ch; }
.tk-related { margin-top: 44px; padding-top: 26px; border-top: 1px solid var(--rule); }
.tk-related h3 { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--glow); margin-bottom: 16px; }
.tk-related ul { list-style: none; padding: 0; display: grid; gap: 10px; }
.tk-related a { color: var(--ink); border-bottom: 1px solid var(--rule); padding-bottom: 8px; display: inline-flex; gap: 8px; font-size: 15px; transition: color .3s; }
.tk-related a:hover { color: var(--glow); }
/* hub grid */
.tools-grid { display: grid; grid-template-columns: 1fr; gap: 18px; margin-top: 40px; }
@media (min-width: 640px) { .tools-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { .tools-grid { grid-template-columns: 1fr 1fr 1fr; } }
.tool-card { display: flex; flex-direction: column; padding: 26px 26px 24px; background: var(--surface); border: 1px solid var(--rule); border-radius: 16px; position: relative; overflow: hidden; transition: transform .4s var(--ease), border-color .4s, box-shadow .4s; }
.tool-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--glow); transition: width .4s var(--ease); }
.tool-card:hover { transform: translateY(-4px); border-color: var(--glow); box-shadow: 0 18px 40px -26px rgba(0,0,0,.55); }
.tool-card:hover::before { width: 5px; }
.tool-card .cat { font-size: 10.5px; letter-spacing: 1.4px; text-transform: uppercase; font-weight: 600; color: var(--glow); margin-bottom: 14px; }
.tool-card h2 { font-family: 'Fraunces', serif; font-weight: 400; font-size: 22px; line-height: 1.2; letter-spacing: -.4px; color: var(--ink); margin-bottom: 10px; transition: color .3s; }
.tool-card:hover h2 { color: var(--glow); }
.tool-card p { font-size: 14px; line-height: 1.6; color: var(--text); margin-bottom: 18px; flex: 1 1 auto; }
.tool-card .go { font-size: 13px; font-weight: 600; color: var(--glow); display: inline-flex; gap: 6px; }

/* ===================== CTA BAND (generated component) ===================== */
.cta-band{position:relative;padding:110px 0;text-align:center;overflow:hidden}
.cta-band .label{margin-bottom:20px;display:block}
.cta-band h2{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(30px,5vw,60px);line-height:1.05;letter-spacing:-1px;max-width:18ch;margin:0 auto 18px;color:var(--ink)}
.cta-band h2 em{font-style:italic;color:var(--terra)}
.cta-band p{max-width:54ch;margin:0 auto 32px;font-size:16.5px;color:var(--text)}
.cta-band__actions{display:flex;gap:22px;align-items:center;justify-content:center;flex-wrap:wrap}
.cta-band--terra{background:radial-gradient(130% 110% at 50% 120%,var(--terra) 0%,var(--bg) 64%)}
.cta-band--terra .label{color:var(--ink)}
.cta-band--terra h2 em{color:var(--ink)}
.cta-band--soil{background:var(--bg);border-top:1px solid var(--rule)}
.cta-band--soil .label{color:var(--glow)}
@media(max-width:760px){.cta-band{padding:80px 0}}
