@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;0,9..144,700;1,9..144,400&family=IBM+Plex+Mono:wght@400;500&family=DM+Sans:wght@400;500;600&display=swap');

/* ── tokens ── */
:root{
  --panel:#0D2820;--panel-alt:#112F25;
  --bg:#F7F3EC;--parchment:#F5EFE0;
  --amber:#C8780A;--amber-lt:#E89B2A;
  --teal:#2A7A6E;--teal-lt:#3B9C8E;
  --ink:#1C1C14;--ink-mid:#4A4A38;--ink-lt:#7A7A68;
  --cream:#FDFAF4;--cream-dk:#EDE8DA;
  --border:#D4C9A8;--border-dk:#B8AA88;
  --readout-text:#C8D8C4;--readout-dim:#7A9A88;
  --readout-amber:#E8A830;--readout-teal:#4ABCAA;
  --readout-green:#5CD890;--readout-red:#F07060;
  --radius:12px;--radius-sm:6px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--ink)}

/* ── station wrap ── */
.station-wrap{
  max-width:960px;margin:0 auto;padding:0 0 48px;
  font-family:'DM Sans',sans-serif;
}

/* ── hero ── */
.calc-hero{
  background:var(--panel);color:var(--readout-text);
  padding:40px 32px 32px;border-radius:var(--radius) var(--radius) 0 0;
  border-bottom:3px solid var(--amber);
}
.hero-badge{
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(200,120,10,0.18);border:1px solid rgba(200,120,10,0.4);
  border-radius:20px;padding:4px 12px;font-size:11px;font-family:'IBM Plex Mono',monospace;
  letter-spacing:.08em;text-transform:uppercase;color:var(--readout-amber);margin-bottom:14px;
}
.hero-badge::before{content:'◆';font-size:8px}
.calc-hero h1{
  font-family:'Fraunces',serif;font-size:clamp(26px,4vw,38px);
  font-weight:700;line-height:1.15;color:#fff;margin-bottom:10px;
  text-wrap:balance;
}
.calc-hero p{font-size:15px;color:var(--readout-text);line-height:1.6;max-width:620px}

/* ── formula strip ── */
.formula-strip{
  background:var(--panel-alt);border-left:3px solid var(--teal);
  padding:10px 20px;font-family:'IBM Plex Mono',monospace;font-size:12px;
  color:var(--readout-teal);letter-spacing:.04em;
}
.formula-strip span{color:var(--readout-amber);font-weight:500}

/* ── dual panel ── */
.dual-panel{display:grid;grid-template-columns:1fr 1fr;min-height:520px}
@media(max-width:700px){.dual-panel{grid-template-columns:1fr}}

/* intake panel */
.intake{
  background:var(--parchment);padding:28px 24px;
  border-right:1px solid var(--border-dk);
}
.intake h2{
  font-family:'Fraunces',serif;font-size:18px;font-weight:600;
  color:var(--ink);margin-bottom:20px;display:flex;align-items:center;gap:8px;
}
.intake h2::before{
  content:'';display:inline-block;width:10px;height:10px;
  background:var(--amber);border-radius:50%;flex-shrink:0;
}

.field-group{margin-bottom:18px}
.field-label{
  display:block;font-size:12px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-mid);margin-bottom:6px;
  font-family:'IBM Plex Mono',monospace;
}
.field-hint{font-size:11px;color:var(--ink-lt);margin-top:4px;line-height:1.4}

.field-row{display:flex!important;gap:8px!important;align-items:stretch!important}
.field-row input[type="number"]{flex:1 1 auto!important;min-width:0!important;width:auto!important}
.unit-select{flex:0 0 72px!important;width:72px!important;min-width:72px!important;max-width:72px!important}

.intake input[type="number"],
.intake select{
  width:100%;padding:10px 12px;border:1.5px solid var(--border-dk);
  border-radius:var(--radius-sm);background:var(--cream);
  font-family:'DM Sans',sans-serif;font-size:14px;
  color:var(--ink)!important;-webkit-text-fill-color:var(--ink)!important;
  opacity:1!important;transition:border-color .2s;
}
.intake input[type="number"]:focus,
.intake select:focus{
  outline:none;border-color:var(--amber);
  box-shadow:0 0 0 3px rgba(200,120,10,0.12);
}

.size-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}
.size-btn{
  padding:10px 8px;border:1.5px solid var(--border-dk);border-radius:var(--radius-sm);
  background:var(--cream);font-size:12px;font-family:'DM Sans',sans-serif;
  font-weight:500;color:var(--ink-mid);cursor:pointer;text-align:center;
  transition:all .2s;
}
.size-btn:hover{border-color:var(--amber);color:var(--amber)}
.size-btn.active{
  border-color:var(--amber);background:rgba(200,120,10,0.1);
  color:var(--amber);font-weight:600;
}

.calc-btn{
  width:100%;padding:14px;background:var(--panel);color:#fff;
  border:none;border-radius:var(--radius-sm);font-family:'DM Sans',sans-serif;
  font-size:15px;font-weight:600;cursor:pointer;
  transition:background .2s;letter-spacing:.02em;margin-top:8px;
}
.calc-btn:hover{background:var(--teal)}

/* readout panel */
.readout{
  background:var(--panel);padding:28px 24px;
  display:flex;flex-direction:column;gap:0;
}
.readout-title{
  font-family:'Fraunces',serif;font-size:16px;font-weight:600;
  color:var(--readout-amber);margin-bottom:20px;
  display:flex;align-items:center;gap:8px;
}
.readout-title::before{
  content:'';display:inline-block;width:8px;height:8px;
  background:var(--readout-amber);border-radius:50%;
}

.metric-row{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:10px 0;border-bottom:1px solid rgba(255,255,255,0.06);
}
.metric-label{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  text-transform:uppercase;letter-spacing:.08em;color:var(--readout-dim);
}
.metric-value{
  font-family:'IBM Plex Mono',monospace;font-size:14px;
  font-weight:500;color:var(--readout-text);text-align:right;
}
.metric-value.highlight{color:var(--readout-amber);font-size:20px;font-weight:700}
.metric-value.good{color:var(--readout-green)}
.metric-value.info{color:var(--readout-teal)}
.metric-value.warn{color:var(--readout-amber)}

/* life stage badge */
.stage-badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 12px;border-radius:20px;font-size:12px;
  font-family:'IBM Plex Mono',monospace;font-weight:500;
  letter-spacing:.04em;
}
.stage-badge.puppy    {background:rgba(92,216,144,0.15);color:var(--readout-green);border:1px solid rgba(92,216,144,0.3)}
.stage-badge.junior   {background:rgba(74,188,170,0.15);color:var(--readout-teal);border:1px solid rgba(74,188,170,0.3)}
.stage-badge.adult    {background:rgba(200,120,10,0.2);color:var(--readout-amber);border:1px solid rgba(200,120,10,0.4)}
.stage-badge.mature   {background:rgba(200,120,10,0.2);color:var(--readout-amber);border:1px solid rgba(200,120,10,0.4)}
.stage-badge.senior   {background:rgba(240,112,96,0.15);color:var(--readout-red);border:1px solid rgba(240,112,96,0.3)}
.stage-badge.geriatric{background:rgba(240,112,96,0.15);color:var(--readout-red);border:1px solid rgba(240,112,96,0.3)}

/* big human age box */
.age-box{
  background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);
  border-radius:8px;padding:18px 16px;margin:16px 0;text-align:center;
}
.age-big{
  font-family:'Fraunces',serif;font-size:52px;font-weight:700;
  color:var(--readout-amber);line-height:1;
}
.age-unit{font-size:14px;color:var(--readout-dim);font-family:'IBM Plex Mono',monospace;letter-spacing:.06em;text-transform:uppercase;margin-top:4px}

/* action buttons */
.action-row{display:flex;gap:8px;margin-top:auto;padding-top:20px}
.act-btn{
  flex:1;padding:10px;border-radius:var(--radius-sm);font-size:12px;
  font-family:'DM Sans',sans-serif;font-weight:600;cursor:pointer;
  border:1px solid rgba(255,255,255,0.15);background:transparent;
  color:var(--readout-text);transition:all .2s;text-align:center;
}
.act-btn:hover{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.3)}
.act-btn.primary{background:var(--amber);border-color:var(--amber);color:#fff}
.act-btn.primary:hover{background:var(--amber-lt)}

/* ── age chart ── */
.chart-section{
  background:var(--parchment);padding:32px 28px;
  border-top:1px solid var(--border);
}
.chart-section h2{
  font-family:'Fraunces',serif;font-size:22px;font-weight:700;
  color:var(--ink);margin-bottom:8px;text-wrap:balance;
}
.chart-intro{font-size:14px;color:var(--ink-mid);margin-bottom:24px;line-height:1.6}
#ageChart{width:100%;height:auto;display:block}

/* ── conversion table ── */
.conv-table-wrap{
  background:var(--cream);padding:32px 28px;
  border-top:1px solid var(--border);
}
.conv-table-wrap h2{
  font-family:'Fraunces',serif;font-size:22px;font-weight:700;
  color:var(--ink);margin-bottom:8px;text-wrap:balance;
}
.ctable{width:100%;border-collapse:collapse;margin-top:20px;font-size:14px}
.ctable thead th{
  background:var(--panel);color:var(--readout-text);
  font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;
  letter-spacing:.08em;padding:12px 14px;text-align:left;
}
.ctable tbody tr:nth-child(even){background:var(--parchment)}
.ctable tbody td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--ink-mid)}
.ctable tbody td:first-child{font-weight:600;color:var(--ink)}
.ctable tbody tr.highlighted td{background:rgba(200,120,10,0.1);color:var(--amber);font-weight:600}
.ctable-overflow{overflow-x:auto}

/* ── life stage section ── */
.lifestage-section{
  background:var(--parchment);padding:32px 28px;
  border-top:1px solid var(--border);
}
.lifestage-section h2{
  font-family:'Fraunces',serif;font-size:22px;font-weight:700;
  color:var(--ink);margin-bottom:8px;text-wrap:balance;
}
.stage-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:14px;margin-top:20px;
}
.stage-card{
  background:var(--cream);border:1px solid var(--border-dk);
  border-radius:var(--radius-sm);padding:16px;
}
.stage-card h3{
  font-family:'Fraunces',serif;font-size:15px;font-weight:600;
  color:var(--ink);margin-bottom:8px;
}
.stage-card p{font-size:13px;color:var(--ink-mid);line-height:1.5}
.stage-card .stage-range{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  color:var(--amber);font-weight:500;margin-top:6px;
}

/* ── science section ── */
.science-section{
  background:var(--cream);padding:40px 28px;
  border-top:3px solid var(--border);
}
.science-section h2{
  font-family:'Fraunces',serif;font-size:26px;font-weight:700;
  color:var(--ink);margin-bottom:6px;text-wrap:balance;
}
.science-section .sec-label{
  font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--amber);
  text-transform:uppercase;letter-spacing:.1em;margin-bottom:18px;display:block;
}
.science-section p{font-size:15px;color:var(--ink-mid);line-height:1.7;margin-bottom:16px}
.science-section h3{
  font-family:'Fraunces',serif;font-size:18px;font-weight:600;
  color:var(--ink);margin:28px 0 10px;
}

/* ── how section ── */
.how-section{
  background:var(--parchment);padding:40px 28px;
  border-top:1px solid var(--border);
}
.how-section h2{
  font-family:'Fraunces',serif;font-size:26px;font-weight:700;
  color:var(--ink);margin-bottom:6px;text-wrap:balance;
}
.how-intro{font-size:15px;color:var(--ink-mid);line-height:1.6;margin-bottom:28px}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
.step{
  background:var(--cream);border:1px solid var(--border-dk);
  border-radius:var(--radius-sm);padding:20px;
}
.step-num{
  font-family:'Fraunces',serif;font-size:32px;font-weight:700;
  color:var(--amber);opacity:.3;line-height:1;margin-bottom:8px;
}
.step h3{font-family:'Fraunces',serif;font-size:16px;font-weight:600;color:var(--ink);margin-bottom:8px}
.step p{font-size:13px;color:var(--ink-mid);line-height:1.5}

/* ── cases section ── */
.cases-section{
  background:var(--cream);padding:40px 28px;
  border-top:1px solid var(--border);
}
.cases-section h2{
  font-family:'Fraunces',serif;font-size:26px;font-weight:700;
  color:var(--ink);margin-bottom:6px;text-wrap:balance;
}
.sec-intro{font-size:15px;color:var(--ink-mid);margin-bottom:24px;line-height:1.6}
.cases-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.case-card{
  background:var(--parchment);border:1px solid var(--border-dk);
  border-left:4px solid var(--amber);border-radius:var(--radius-sm);padding:20px;
}
.case-card h3{font-family:'Fraunces',serif;font-size:16px;font-weight:600;color:var(--ink);margin-bottom:8px}
.case-card p{font-size:13px;color:var(--ink-mid);line-height:1.5}
.case-card .case-stat{
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  color:var(--teal);font-weight:500;margin-top:10px;padding-top:10px;
  border-top:1px solid var(--border);
}

/* ── tips section ── */
.tips-section{
  background:var(--parchment);padding:40px 28px;
  border-top:1px solid var(--border);
}
.tips-section h2{
  font-family:'Fraunces',serif;font-size:26px;font-weight:700;
  color:var(--ink);margin-bottom:6px;text-wrap:balance;
}
.tips-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:20px}
.tip{
  background:var(--cream);border:1px solid var(--border-dk);
  border-top:3px solid var(--teal);border-radius:var(--radius-sm);padding:18px;
}
.tip h3{font-family:'Fraunces',serif;font-size:15px;font-weight:600;color:var(--ink);margin-bottom:8px}
.tip p{font-size:13px;color:var(--ink-mid);line-height:1.5}

/* ── faq section ── */
.faq-section{
  background:var(--cream);padding:40px 28px;
  border-top:1px solid var(--border);
}
.faq-section h2{
  font-family:'Fraunces',serif;font-size:26px;font-weight:700;
  color:var(--ink);margin-bottom:6px;text-wrap:balance;
}
.faq-list{margin-top:20px;display:flex;flex-direction:column;gap:14px}
.faq-item{
  background:var(--parchment);border:1px solid var(--border-dk);
  border-radius:var(--radius-sm);padding:20px;
}
.faq-q{font-family:'Fraunces',serif;font-size:16px;font-weight:600;color:var(--ink);margin-bottom:10px}
.faq-a{font-size:14px;color:var(--ink-mid);line-height:1.7}

/* ── related rail ── */
.related-section{
  background:var(--parchment);padding:32px 28px;
  border-top:1px solid var(--border);
}
.related-section h2{
  font-family:'Fraunces',serif;font-size:20px;font-weight:700;
  color:var(--ink);margin-bottom:16px;
}
.related-rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.rel-card{
  background:var(--cream);border:1px solid var(--border-dk);
  border-radius:var(--radius-sm);padding:14px;text-decoration:none;
  transition:border-color .2s;display:block;
}
.rel-card:hover{border-color:var(--amber)}
.rel-card-label{font-family:'IBM Plex Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--amber);margin-bottom:4px}
.rel-card-title{font-size:13px;font-weight:600;color:var(--ink);line-height:1.35}

/* ── disclaimer ── */
.disclaimer{
  background:var(--panel);padding:28px;
  border-top:1px solid rgba(255,255,255,0.08);
  border-radius:0 0 var(--radius) var(--radius);
}
.disclaimer-body-inner{display:flex;gap:14px;align-items:flex-start}
.disc-icon{font-size:20px;flex-shrink:0;margin-top:2px;color:var(--readout-amber)}
.disclaimer-body-inner p{font-size:12px;color:var(--readout-dim);line-height:1.6}
.disclaimer-body-inner a{color:var(--readout-teal);text-decoration:underline}

/* ── paragraph width fix ── */
.science-section p,.how-intro,.sec-intro,.step p,.case-card p,
.tip p,.stage-card p,.faq-a,.disclaimer-body-inner p{max-width:100%!important}
