/* Shared free-worksheet chrome: print, mobile write-in, accessibility.
   Linked from resources/*.html. Print-to-PDF uses this file via file://. */
@font-face{font-family:'Cabinet Grotesk';src:url(/fonts/cabinet700.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Cabinet Grotesk';src:url(/fonts/cabinet800.woff2) format('woff2');font-weight:800;font-style:normal;font-display:swap}
:root{
  --ink:#3d352b;
  --soft:#5c5348;
  --faint:#5c5348;
  --line:#c8bda9;
  --paper:#f6f3ea;
  --card:#fffdf8;
  --accent:#2f7a78;
  --on-accent:#fffdf8;
  --focus:#2f7a78;
  --ease:cubic-bezier(0.16,1,0.3,1);
  --dur:220ms;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-padding-bottom:5.5rem}
body{
  font-family:Georgia,"Times New Roman",serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.5;
  padding:1.1rem 1.2rem 5.5rem;
  max-width:52rem;
  margin-inline:auto;
}
body.hub{padding-bottom:2.2rem}
html:has(body.hub){scroll-padding-bottom:0}
.skip{
  position:absolute;left:-999px;top:0;
  background:var(--accent);color:var(--on-accent);
  padding:.6rem 1rem;z-index:80;
}
.skip:focus{left:1rem;top:1rem}
.brand-lockup{
  display:flex;align-items:center;
  border-bottom:3px solid var(--accent);
  padding-bottom:.7rem;margin-bottom:1rem;
}
.brand-lockup a{display:inline-flex;text-decoration:none}
.brand__slogan{
  display:block;width:min(260px,70vw);height:auto;
  object-fit:contain;object-position:left center;
}
.screen-nav{font-size:.9rem;margin:0 0 .85rem;display:flex;flex-wrap:wrap;gap:.25rem .15rem;align-items:center}
.screen-nav a{color:var(--accent);font-weight:700;text-decoration:none;min-height:44px;display:inline-flex;align-items:center;padding:0 .35rem}
.screen-nav .sep{color:var(--line);user-select:none;padding:0 .1rem}
.hub-hero{margin:0 0 1.1rem}
.hub-hero .eyebrow{font-family:ui-sans-serif,system-ui,sans-serif;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--accent);margin:0 0 .35rem}
.foot-contact{display:grid;gap:.2rem;margin:.55rem 0;font-style:normal}
.foot-contact a{color:var(--accent);font-weight:700;text-decoration:none;min-height:24px;display:inline-flex;align-items:center}
h1{font-family:'Cabinet Grotesk','Satoshi',ui-sans-serif,system-ui,sans-serif;font-weight:800;font-size:clamp(1.35rem,3vw,1.65rem);margin:.2rem 0 .35rem;line-height:1.2}
h2{font-size:1.02rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);border-bottom:1px solid var(--line);padding-bottom:.3rem;margin:1.6rem 0 .8rem}
.intro{color:var(--soft);font-size:1rem;margin:0 0 1rem}
.age-band{font-size:.95rem;color:var(--ink);margin:.15rem 0 1rem;font-weight:700}
.page-tools{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:0 0 1.2rem}
.print-btn,.pdf-link,.ghost-link{
  font-family:ui-sans-serif,system-ui,sans-serif;
  font-size:.95rem;font-weight:700;min-height:44px;min-width:44px;
  padding:.55rem 1rem;border-radius:.45rem;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  text-decoration:none;box-sizing:border-box;
}
.print-btn{background:var(--accent);color:var(--on-accent);border:2px solid var(--accent)}
.pdf-link,.ghost-link{background:transparent;color:var(--accent);border:2px solid var(--accent)}
:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.facilitator{
  background:#efe8d8;border-left:4px solid var(--accent);
  padding:.85rem 1rem;font-size:.95rem;color:var(--ink);margin:0 0 1.4rem
}
.facilitator p{margin:.4rem 0}
table{width:100%;border-collapse:collapse}
th,td{border-bottom:1px solid var(--line);padding:.55rem .4rem;text-align:left;font-size:1rem;vertical-align:middle}
th{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--soft)}
.num{text-align:right}
td.num{width:9rem}
.sum{font-weight:bold;border-top:2px solid var(--ink)}
label.field{display:block;font-weight:700;margin:.4rem 0 .25rem}
input[type="text"],input[type="number"],textarea{
  font:inherit;color:var(--ink);background:var(--card);
  border:1.5px solid var(--line);border-radius:.35rem;
  min-height:44px;width:100%;padding:.55rem .6rem;
  -webkit-appearance:none;appearance:none;
}
input[type="number"]{text-align:right}
textarea{min-height:5.2rem;resize:vertical;line-height:1.45}
td input[type="text"],td input[type="number"]{background:transparent;border:none;border-bottom:1.5px solid var(--line);border-radius:0;padding:.35rem .3rem}
.goal{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.goal label{display:flex;flex-direction:column;gap:.35rem;border:1px solid var(--line);padding:.8rem;font-size:.95rem;color:var(--soft);background:var(--card)}
.grid12{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:.6rem}
.week{
  display:flex;align-items:center;gap:.4rem;min-height:44px;
  border:1px solid var(--line);border-radius:.35rem;padding:.35rem .5rem;
  background:var(--card);font-size:.85rem;color:var(--soft)
}
.week input{width:1.25rem;height:1.25rem;accent-color:var(--accent)}
.tip{background:#efe8d8;border-left:4px solid var(--accent);padding:.85rem 1rem;font-size:.95rem;color:var(--ink);margin-top:1.4rem}
.guide{font-size:.95rem;color:var(--soft);margin-bottom:.4rem}
ol{font-size:.95rem;color:var(--soft);padding-left:1.2rem}
ol li{margin-bottom:.7rem}
.path-nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;margin:1.6rem 0 0;font-size:.9rem}
.path-nav a{color:var(--accent);font-weight:700;text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.next-step{font-size:.95rem;color:var(--ink);margin:1.4rem 0 0;padding:.85rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:.45rem}
.next-step a{color:var(--accent);font-weight:700}
.initials{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1.4rem}
.initials label{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:var(--soft)}
.foot{margin-top:2rem;font-size:.85rem;color:var(--soft);border-top:1px solid var(--line);padding-top:.7rem}
.sticky-tools{
  position:sticky;bottom:0;z-index:40;
  display:flex;flex-wrap:wrap;gap:.5rem;justify-content:stretch;
  margin:1.5rem -1.2rem -1.4rem;padding:.75rem 1.2rem;
  padding-bottom:max(.75rem,env(safe-area-inset-bottom));
  background:rgba(246,243,234,.96);border-top:1px solid var(--line);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.sticky-tools .print-btn,.sticky-tools .pdf-link{flex:1 1 10rem}
@media (max-width:640px){
  .goal,.grid12{grid-template-columns:1fr 1fr}
  td.num{width:7.2rem}
  body{padding:1rem .9rem 6.8rem}
  .sticky-tools{margin-inline:-.9rem}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}
.path-list{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.85rem}
.path-card{display:flex;flex-direction:column;gap:.15rem;background:var(--card);border:1px solid var(--line);border-radius:.7rem;padding:1rem 1.1rem}
.path-card .hub-actions{margin-top:auto;padding-top:.55rem}
.path-card h2{border:none;margin:.15rem 0 .35rem;text-transform:none;letter-spacing:-.02em;font-size:1.15rem;color:var(--ink)}
.path-card .step{font-family:ui-sans-serif,system-ui,sans-serif;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--accent);margin:0}
.path-card .optional{font-size:.85rem;color:var(--soft);margin:.35rem 0 0}
.hub-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.7rem}
.parked{margin-top:1.4rem;padding:.85rem 1rem;border:1px dashed var(--line);border-radius:.6rem;color:var(--soft);font-size:.92rem}
@media print{
  html{scroll-padding-bottom:0}
  body{padding:0;max-width:none;background:#fff}
  input,textarea{
    border:none;border-bottom:1px solid var(--ink);background:transparent;
    print-color-adjust:exact;-webkit-print-color-adjust:exact;
  }
  .week{break-inside:avoid}
  .foot{break-inside:avoid}
  .skip,.screen-nav,.page-tools,.sticky-tools,.next-step,.path-nav,.screen-only{display:none!important}
}
@page{size:letter;margin:.6in}
/* Three-page Savings Challenge (body.ws-3page). Scoped so the other
   worksheets are unchanged. Navy/teal/gold on cream; gold is rule-only. */
.ws-3page{--navy:#1f3350;--gold:#b8862b}
.ws-3page h1,.ws-3page h2{color:var(--navy)}
.ws-3page h2{border-bottom:2px solid var(--gold)}
.ws-3page .tip,.ws-3page .facilitator{border-left-color:var(--gold)}
.print-only{display:none}
@media print{
  .print-only{display:block}
  .ws-3page .brand-lockup,.ws-3page .foot{display:none!important}
  .ws-3page .ws-page{break-after:page;position:relative;min-height:9.7in;padding-bottom:.45in}
  .ws-3page .ws-page:last-of-type{break-after:auto}
  .ws-3page .page-lockup{width:1.45in;height:.33in;object-fit:contain;object-position:left center;margin:0 0 .18in}
  .ws-3page .page-foot{position:absolute;left:0;right:0;bottom:0;margin:0;padding-top:.08in;border-top:1px solid var(--gold);font-family:ui-sans-serif,system-ui,sans-serif;font-size:8pt;color:var(--soft)}
  .ws-3page textarea{min-height:.9in}
}
