/* HearthenVale site: shared tokens, base styles, chrome and content components. Colours are the app's own Theme. */
:root{
  --bg:#F6EFE2; --card:#FFFBF3; --line:#E3D6BE; --ink:#3D2E2A; --soft:#6B5A52;
  --leaf:#5E9E4C; --rose:#D9634F; --plum:#7B4FA6; --sky:#4F78B8; --gold:#C99A1E;
  --display:"Nunito",ui-rounded,"SF Pro Rounded",system-ui,sans-serif;
  --body:"Nunito Sans",system-ui,-apple-system,sans-serif;
  --tint:#EFE5D2;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#1B2140; --card:#242B4E; --line:#38406A; --ink:#F3EBDD; --soft:#B7AFC6;
  --leaf:#7FC46B; --rose:#EE806C; --plum:#B08AD8; --sky:#82A6E6; --gold:#F4C542; --tint:#20274A; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#1B2140; --card:#242B4E; --line:#38406A; --ink:#F3EBDD; --soft:#B7AFC6;
  --leaf:#7FC46B; --rose:#EE806C; --plum:#B08AD8; --sky:#82A6E6; --gold:#F4C542; --tint:#20274A; color-scheme:dark}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 var(--body);min-height:100vh;display:flex;flex-direction:column}
main{flex:1}
img{max-width:100%}
a{color:var(--sky);text-underline-offset:2px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--sky);outline-offset:2px;border-radius:4px}
ul{margin:0;padding:0;list-style:none}
p{margin:0}
[hidden]{display:none!important}
.wrap{max-width:1180px;margin:0 auto;padding-inline:20px;padding-block:32px 48px}
h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bg);padding:8px 12px;border-radius:8px;z-index:9}
.skip:focus{left:8px}

/* Header */
.site-head{border-bottom:1.5px solid var(--line);background:var(--card)}
.site-head .bar{max-width:1180px;margin:0 auto;padding:10px 20px;display:flex;gap:8px 24px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.brand{font:900 20px var(--display);color:var(--ink);text-decoration:none;letter-spacing:-.01em;display:inline-flex;align-items:center;gap:10px}
.brand img{width:32px;height:32px;border-radius:8px}
.site-nav{min-width:0;max-width:100%}
.site-nav ul{display:flex;gap:2px;flex-wrap:wrap}
.site-nav a{display:block;padding:6px 11px;border-radius:999px;color:var(--soft);font-weight:700;font-size:14px;text-decoration:none;white-space:nowrap}
.site-nav a:hover{color:var(--ink);background:var(--bg)}
.site-nav a[aria-current="page"]{color:var(--bg);background:var(--ink)}
@media (max-width:860px){
  .site-head .bar{padding-bottom:6px}
  .site-nav{width:100%;overflow-x:auto;scrollbar-width:none;margin-inline:-20px;padding-inline:14px;width:calc(100% + 40px);max-width:none}
  .site-nav::-webkit-scrollbar{display:none}
  .site-nav ul{flex-wrap:nowrap;padding-bottom:4px}
}

/* Ground strip + footer */
.ground{height:40px;background:url(/img/tiles/grass.png) repeat-x left bottom/40px 40px;border-top:1.5px solid var(--line)}
.site-foot{background:var(--card);color:var(--soft);font-size:13.5px}
.site-foot .bar{max-width:1180px;margin:0 auto;padding:20px 20px 8px;display:flex;flex-wrap:wrap;gap:16px 40px;justify-content:space-between}
.site-foot .brand.small{font-size:17px}
.site-foot p{margin-top:4px;max-width:40ch}
.site-foot nav ul{display:grid;grid-template-columns:repeat(2,auto);gap:4px 28px}
.site-foot nav a{color:var(--soft);text-decoration:none;font-weight:600}
.site-foot nav a:hover{color:var(--ink);text-decoration:underline}
.site-foot .fine{padding-block:12px 20px;border-top:1px dashed var(--line);margin-top:12px;font-size:12.5px}

/* Page head */
.page-head{display:grid;grid-template-columns:1fr auto;gap:20px 32px;align-items:end;margin-bottom:28px}
.page-head .kicker{font:800 12px var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--k,var(--gold));margin-bottom:6px}
.page-head h1{font-size:clamp(30px,5.5vw,46px);font-weight:900;letter-spacing:-.015em;line-height:1.08}
.page-head p.lede{margin-top:10px;color:var(--soft);font-size:17px;max-width:62ch}
.page-head .art{display:flex;align-items:end;gap:4px}
.page-head .art img{height:auto;flex:none}
@media (max-width:700px){.page-head{grid-template-columns:1fr}.page-head .art{order:-1}.page-head .art img{max-width:96px}}

/* Sections */
.sec{margin-top:44px}
.sec > h2{font-size:clamp(22px,3.4vw,28px);font-weight:900;letter-spacing:-.01em}
.sec > p.intro{color:var(--soft);margin-top:6px;max-width:68ch}
.sec > h2 + *{margin-top:14px}
.sec > p.intro + *{margin-top:18px}
.prose p + p{margin-top:10px}
.prose{max-width:70ch}

/* Cards */
.cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(var(--min,280px),100%),1fr))}
.card{background:var(--card);border:1.5px solid var(--line);border-top:5px solid var(--t,var(--line));border-radius:14px;padding:16px 18px;min-width:0;display:flex;flex-direction:column;gap:8px}
.card h3{font-size:19px;font-weight:900}
.card p{color:var(--soft)}
.card .sub{font:800 11px var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--t,var(--soft))}
.card .art{display:flex;align-items:end;gap:6px;min-height:72px;margin-bottom:2px}
.card .art img{height:auto}
.card ul.dots li,.dots li{position:relative;padding-left:16px;margin-top:4px}
.dots li::before{content:"";position:absolute;left:2px;top:.6em;width:7px;height:7px;transform:rotate(45deg);background:var(--t,var(--gold))}
a.card{text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}
a.card:hover{border-color:var(--t,var(--ink));transform:translateY(-2px)}
a.card .go{margin-top:auto;font:800 13px var(--display);color:var(--t,var(--sky))}

/* Tables */
.table{overflow-x:auto;background:var(--card);border:1.5px solid var(--line);border-radius:14px}
.table table{border-collapse:collapse;width:100%;min-width:520px;font-size:14px}
.table th,.table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.table th{font:800 11.5px var(--display);letter-spacing:.07em;text-transform:uppercase;color:var(--soft);background:var(--tint)}
.table tr:last-child td{border-bottom:0}
.table td:first-child{font-weight:700}
.table .num{font-variant-numeric:tabular-nums;white-space:nowrap}
.table.compact table{min-width:0}

/* Steps */
.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
.steps li{counter-increment:s;background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:14px 16px 14px 16px;position:relative}
.steps li::before{content:counter(s);display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--t,var(--ink));color:var(--card);font:900 14px var(--display);margin-bottom:8px}
.steps b{display:block;font-family:var(--display);font-size:16px}
.steps span{color:var(--soft);font-size:14px}

/* Callout */
.callout{background:var(--card);border:1.5px solid var(--line);border-left:5px solid var(--t,var(--gold));border-radius:12px;padding:14px 18px;display:flex;gap:14px;align-items:center}
.callout img{flex:none;width:48px;height:auto}
.callout p{color:var(--soft)}
.callout strong{color:var(--ink)}

/* Two-column split */
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));gap:24px;align-items:start}

/* Key facts strip */
.facts-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:12px}
.fact{background:var(--card);border:1.5px solid var(--line);border-radius:14px;padding:12px 16px}
.fact b{display:block;font:900 24px var(--display);color:var(--t,var(--ink));font-variant-numeric:tabular-nums;line-height:1.2}
.fact span{color:var(--soft);font-size:13.5px}

/* Next-page links */
.next{margin-top:48px;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding-top:20px;border-top:1.5px solid var(--line)}
.next span{color:var(--soft);font-weight:700;margin-right:4px}
.pill{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);padding:6px 14px;border-radius:999px;font:700 14px var(--body);text-decoration:none}
.pill:hover{border-color:var(--ink)}
.btn{display:inline-block;background:var(--ink);color:var(--bg);font:800 15px var(--display);padding:11px 20px;border-radius:999px;text-decoration:none}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink);padding:9.5px 18.5px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .ground{filter:brightness(.62) saturate(.8)}}
:root[data-theme="dark"] .ground{filter:brightness(.62) saturate(.8)}

/* Tables stack into labelled rows on phones */
@media (max-width:600px){
  .table table{min-width:0}
  .table thead{display:none}
  .table tr{display:block;padding:10px 14px;border-bottom:1px solid var(--line)}
  .table tr:last-child{border-bottom:0}
  .table td{display:grid;grid-template-columns:minmax(88px,34%) 1fr;gap:10px;padding:3px 0;border:0}
  .table td::before{content:attr(data-label);font:800 11px var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--soft);padding-top:2px}
  .table td:first-child{font-size:15px}
  .table td:first-child::before{padding-top:3px}
}
