:root{
  --space-1:4px;
  --space-2:8px;
  --space-3:16px;
  --space-4:24px;
  --space-5:40px;
  --space-6:64px;
  --stat-gap:12px;

  --ivory:#FBF5EA;
  --paper:#FFFDF7;
  --clay:#E4D5BE;
  --clay-deep:#C9B291;
  --ink:#241F1B;
  --ink-soft:#4A423A;
  --terracotta:#9B3A1D;
  --terracotta-deep:#8A3218;
  --indigo:#24356E;
  --indigo-deep:#1B2853;

  --wrap:1120px;
  --serif:Georgia,"Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background-color:var(--ivory);
  background-image:radial-gradient(#EFE3CE 1px,transparent 1px);
  background-size:32px 32px;
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.65;
}

h1,h2,h3,h4,p,li,dt,dd,address,figcaption,caption,label,legend{overflow-wrap:anywhere}

h1,h2,h3,h4{
  font-family:var(--serif);
  color:var(--indigo-deep);
  line-height:1.2;
  margin:0;
  letter-spacing:-0.01em;
}
h1{font-size:clamp(30px,5vw,44px)}
h2{font-size:clamp(24px,3.2vw,32px)}
h3{font-size:20px}
p,ul,ol,dl{margin:0}

a{color:var(--terracotta-deep);text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--indigo-deep)}

img{max-width:100%;height:auto;display:block}

:focus-visible{
  outline:3px solid var(--indigo-deep);
  outline-offset:2px;
  border-radius:2px;
}

.wrap{
  width:100%;
  max-width:var(--wrap);
  margin:0 auto;
  padding-left:var(--space-3);
  padding-right:var(--space-3);
}

.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:0;
  overflow:hidden;clip-path:inset(50%);white-space:nowrap;
}

.skip-link{
  position:absolute;
  left:var(--space-3);
  top:calc(-1 * var(--space-6));
  z-index:80;
  background:var(--indigo-deep);
  color:var(--paper);
  padding:var(--space-2) var(--space-3);
  text-decoration:none;
  font-weight:700;
}
.skip-link:focus{top:var(--space-2);color:var(--paper)}

/* ---------- header ---------- */
.site-header{
  background:var(--paper);
  border-bottom:1px solid var(--clay);
}
.header-inner{
  height:56px;
  display:flex;
  align-items:center;
  gap:var(--space-4);
}
.header-motif{
  height:4px;
  background-image:linear-gradient(135deg,var(--clay) 25%,transparent 25%),
                   linear-gradient(225deg,var(--clay) 25%,transparent 25%);
  background-size:16px 8px;
  background-color:var(--indigo-deep);
}
.brand{
  display:flex;
  align-items:center;
  gap:var(--space-2);
  text-decoration:none;
  color:var(--indigo-deep);
  font-family:var(--serif);
  font-size:19px;
  font-weight:700;
}
.brand-mark{display:flex;align-items:center}
.brand-tld{color:var(--terracotta-deep);font-weight:400}
.brand:hover{color:var(--terracotta-deep)}

.site-nav{min-width:0;flex:1 1 auto;display:flex;justify-content:center}
.site-nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  gap:var(--space-3);
  flex-wrap:nowrap;
}
.site-nav a{
  font-family:var(--sans);
  font-size:14px;
  font-weight:700;
  color:var(--indigo-deep);
  text-decoration:none;
  padding:var(--space-1) var(--space-1);
  white-space:nowrap;
}
.site-nav a:hover{color:var(--terracotta-deep);text-decoration:underline}
.site-nav a[aria-current="page"]{
  color:var(--terracotta-deep);
  border-bottom:2px solid var(--terracotta-deep);
}
.nav-extra{display:none}

.header-cta{flex-shrink:0}
.nav-toggle{
  display:none;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid var(--clay-deep);
  background:var(--paper);
  color:var(--indigo-deep);
  border-radius:4px;
  flex-shrink:0;
}
.nav-toggle-bars,
.nav-toggle-bars::before,
.nav-toggle-bars::after{
  display:block;
  width:20px;
  height:2px;
  background:var(--indigo-deep);
  margin-left:auto;
  margin-right:auto;
  content:"";
}
.nav-toggle-bars{position:relative}
.nav-toggle-bars::before{position:absolute;top:-8px;left:0}
.nav-toggle-bars::after{position:absolute;top:8px;left:0}

@media (min-width:768px){
  .brand{flex-shrink:0}
  .brand-text{white-space:nowrap}
  .header-inner{height:56px}
}

@media (max-width:767px){
  .header-inner{height:48px;gap:var(--space-3)}
  .brand{font-size:16px}
  .brand-text{overflow-wrap:anywhere}
  .nav-toggle{display:block}
  .site-nav{
    display:none;
    position:fixed;
    inset:0;
    z-index:70;
    background:var(--ivory);
    padding:var(--space-5) var(--space-3);
    overflow-y:auto;
    overflow-wrap:anywhere;
  }
  .site-nav.is-open{display:block}
  .site-nav ul{flex-direction:column;align-items:stretch;gap:var(--space-3)}
  .site-nav a{
    display:block;
    font-size:18px;
    padding:var(--space-3);
    background:var(--paper);
    color:var(--indigo-deep);
    border:1px solid var(--clay);
  }
  .nav-extra{display:block;margin-top:var(--space-4)}
  body.has-open-nav{overflow:hidden}
}

@media (max-width:559px){
  .header-cta{display:none}
}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;
  font-family:var(--sans);
  font-size:15px;
  font-weight:700;
  line-height:1.2;
  text-decoration:none;
  border:2px solid var(--indigo-deep);
  background:var(--indigo-deep);
  color:var(--paper);
  padding:var(--space-3) var(--space-4);
  border-radius:3px;
  cursor:pointer;
  min-height:44px;
  text-align:center;
}
.btn:hover{background:var(--terracotta-deep);border-color:var(--terracotta-deep);color:var(--paper)}
.btn-sm{font-size:14px;padding:var(--space-2) var(--space-3)}
.btn-outline{
  background:var(--paper);
  color:var(--indigo-deep);
  border-color:var(--indigo-deep);
}
.btn-outline:hover{background:var(--indigo-deep);color:var(--paper);border-color:var(--indigo-deep)}
.btn-quiet{
  background:transparent;
  color:var(--ink);
  border-color:var(--clay-deep);
}
.btn-quiet:hover{background:var(--clay);color:var(--ink);border-color:var(--clay-deep)}
.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-4)}

/* ---------- generic blocks ---------- */
.eyebrow{
  font-family:var(--sans);
  font-size:13px;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--terracotta-deep);
  margin-bottom:var(--space-3);
}
.lede{font-size:19px}
.meta-line{color:var(--ink-soft);font-size:15px}

.motif{
  height:16px;
  background-image:linear-gradient(135deg,var(--clay-deep) 25%,transparent 25%),
                   linear-gradient(225deg,var(--clay-deep) 25%,transparent 25%);
  background-size:16px 16px;
  background-repeat:repeat-x;
  background-position:center;
  border-top:1px solid var(--clay);
  border-bottom:1px solid var(--clay);
}

.section{padding-top:var(--space-6);padding-bottom:var(--space-6)}
.section-head{max-width:62ch;margin-bottom:var(--space-5)}
.section-head p{margin-top:var(--space-4);color:var(--ink-soft)}

.hero{padding-top:var(--space-6);padding-bottom:var(--space-6)}
.hero-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
.hero-grid>*{min-width:0}
.hero-copy p{margin-top:var(--space-4);max-width:60ch}
.figure-note{
  margin-top:var(--space-4);
  font-size:15px;
  color:var(--ink-soft);
  font-style:italic;
}
@media (min-width:900px){
  .hero-grid{grid-template-columns:1.15fr 0.85fr;gap:var(--space-6);align-items:center}
}

.print-frame{
  border:1px solid var(--clay-deep);
  background:var(--paper);
  padding:var(--space-3);
  position:relative;
}
.print-frame::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:8px;
  background-image:linear-gradient(135deg,var(--terracotta) 25%,transparent 25%),
                   linear-gradient(225deg,var(--terracotta) 25%,transparent 25%);
  background-size:16px 8px;
}
.print-frame img{margin-top:var(--space-3)}
.frame-wide{margin-top:var(--space-5)}

/* ---------- scoreboard rows ---------- */
.board{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}
.board-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:
    "num title"
    "stats stats"
    "cta cta";
  gap:var(--space-4);
  align-items:start;
  background:var(--paper);
  border:1px solid var(--clay);
  border-left:8px solid var(--terracotta);
  padding:var(--space-4);
}
.board-row>*{min-width:0}
.board-row:hover{border-color:var(--clay-deep);border-left-color:var(--terracotta-deep)}
.row-num{
  grid-area:num;
  font-family:var(--serif);
  font-size:32px;
  font-weight:700;
  color:var(--terracotta-deep);
  font-variant-numeric:tabular-nums;
  line-height:1;
}
.row-title{grid-area:title}
.row-title h3{margin-bottom:var(--space-4)}
.row-title h3 a{color:var(--indigo-deep);text-decoration:none}
.row-title h3 a:hover{color:var(--terracotta-deep);text-decoration:underline}
.row-title p{color:var(--ink-soft);font-size:16px}
.row-stats{
  grid-area:stats;
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-4);
  border-top:1px solid var(--clay);
  padding-top:var(--space-4);
}
.row-cta{grid-area:cta;justify-self:start}
.row-metric{display:flex;flex-direction:column;gap:var(--stat-gap);min-width:0}
.metric-value{
  font-family:var(--serif);
  font-size:18px;
  font-weight:700;
  color:var(--indigo-deep);
  font-variant-numeric:tabular-nums;
  line-height:1.1;
}
.metric-label{
  font-size:12px;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ink-soft);
}

@media (min-width:1024px){
  .board-row{
    grid-template-columns:auto minmax(0,1fr) auto auto;
    grid-template-areas:"num title stats cta";
    align-items:center;
  }
  .row-stats{border-top:0;padding-top:0;flex-wrap:nowrap}
  .row-cta{justify-self:end}
}

/* ---------- article ---------- */
.article{padding-top:var(--space-5);padding-bottom:var(--space-6);max-width:76ch}
.article>h2{margin-top:var(--space-6);margin-bottom:var(--space-4)}
.article>h3{margin-top:var(--space-5);margin-bottom:var(--space-4)}
.article>p{margin-top:var(--space-4)}
.article>ul,.article>ol,.article>dl{margin-top:var(--space-4)}
.article .lede{margin-top:var(--space-4)}
.legal h2{font-size:24px}

.breadcrumb{
  padding-top:var(--space-4);
  font-size:14px;
  color:var(--ink-soft);
}
.breadcrumb span{padding-left:var(--space-1);padding-right:var(--space-1)}

.meta-strip{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-5);
  margin-top:var(--space-5);
  padding:var(--space-4);
  background:var(--paper);
  border:1px solid var(--clay);
  border-top:4px solid var(--indigo-deep);
}

.steps{margin-left:0;padding-left:var(--space-5)}
.steps li{margin-top:var(--space-4)}
.tick-list{list-style:none;padding-left:0}
.tick-list li{
  position:relative;
  padding-left:var(--space-4);
  margin-top:var(--space-4);
}
.tick-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:10px;
  width:8px;
  height:8px;
  background:var(--terracotta);
  transform:rotate(45deg);
}
.plain-list{list-style:none;padding-left:0}
.plain-list li{margin-top:var(--space-4)}

.glossary dt{
  font-family:var(--serif);
  font-weight:700;
  color:var(--indigo-deep);
  margin-top:var(--space-4);
  font-size:18px;
}
.glossary dd{margin-left:0;margin-top:var(--space-2);color:var(--ink-soft)}

.two-col{display:grid;grid-template-columns:1fr;gap:var(--space-4)}
.two-col>*{min-width:0}
@media (min-width:860px){
  .two-col{grid-template-columns:1fr 1fr;gap:var(--space-5)}
}

.panel{
  background:var(--paper);
  border:1px solid var(--clay);
  padding:var(--space-4);
}
.panel h2,.panel h3{margin-bottom:var(--space-4)}
.panel p{margin-top:var(--space-4)}
.panel address{margin-top:var(--space-4);font-style:normal}

.callout{
  margin-top:var(--space-6);
  background:var(--clay);
  color:var(--ink);
  border-left:8px solid var(--indigo-deep);
  padding:var(--space-4);
}
.callout h2,.callout h3{margin-bottom:var(--space-4)}
.callout p{margin-top:0}
.callout a{color:var(--terracotta-deep)}
.callout a:hover{color:var(--indigo-deep)}

.pager{
  display:flex;
  flex-wrap:wrap;
  gap:var(--space-3);
  margin-top:var(--space-6);
  padding-top:var(--space-4);
  border-top:1px solid var(--clay);
}

/* ---------- tables ---------- */
.table-wrap{
  margin-top:var(--space-4);
  overflow-x:auto;
  border:1px solid var(--clay);
  background:var(--paper);
}
.data-table{border-collapse:collapse;width:100%;min-width:280px;font-size:15px}
.data-table caption{
  text-align:left;
  padding:var(--space-3);
  font-family:var(--serif);
  font-size:16px;
  color:var(--ink);
  background:var(--clay);
}
.data-table th,.data-table td{
  padding:var(--space-3);
  border-bottom:1px solid var(--clay);
  text-align:left;
  vertical-align:top;
}
.data-table thead th{
  background:var(--indigo-deep);
  color:var(--paper);
  font-size:14px;
  letter-spacing:0.04em;
}
.data-table tbody th{
  font-family:var(--sans);
  font-size:14px;
  color:var(--ink);
  background:#F6ECDB;
  white-space:normal;
}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr;gap:var(--space-4);margin-top:var(--space-5)}
.contact-grid>*{min-width:0}
@media (min-width:900px){
  .contact-grid{grid-template-columns:1.1fr 0.9fr;gap:var(--space-5);align-items:start}
}
.contact-side{display:flex;flex-direction:column;gap:var(--space-4)}
.contact-form{margin-top:var(--space-4)}
.field{margin-top:var(--space-4)}
.field label{
  display:block;
  font-weight:700;
  font-size:15px;
  margin-bottom:var(--space-2);
  color:var(--ink);
}
.field input[type="text"],
.field input[type="email"],
.field select,
.field textarea{
  width:100%;
  font-family:var(--sans);
  font-size:16px;
  color:var(--ink);
  background:var(--paper);
  border:1px solid var(--clay-deep);
  padding:var(--space-3);
  border-radius:3px;
  min-height:44px;
}
.field textarea{min-height:140px;resize:vertical}
.field-hint{font-size:14px;color:var(--ink-soft);margin-top:var(--space-2)}
.field-error{
  font-size:14px;
  font-weight:700;
  color:#8A1F14;
  margin-top:var(--space-2);
}
.field.is-invalid input,
.field.is-invalid select,
.field.is-invalid textarea{border:2px solid #8A1F14;background:#FFF6F2;color:var(--ink)}
.field-check{margin-top:var(--space-4)}
.check{display:flex;gap:var(--space-3);align-items:flex-start;font-weight:400;font-size:15px}
.check input{margin-top:var(--space-1);width:20px;height:20px;flex-shrink:0}
.contact-form .btn{margin-top:var(--space-4)}
.form-status{
  margin-top:var(--space-4);
  padding:var(--space-3);
  background:#EAF0E4;
  color:#22331A;
  border-left:8px solid #3A5A2A;
  font-size:15px;
}
.form-status-error{background:#FFF0EA;color:#6E1A10;border-left-color:#8A1F14}
[hidden]{display:none !important}

.map-block{
  position:relative;
  margin-top:var(--space-4);
  height:200px;
  background:linear-gradient(180deg,#F3E9D6,#E8DCC4);
  border:1px solid var(--clay-deep);
  overflow:hidden;
}
.map-street{position:absolute;background:var(--paper);border-top:1px solid var(--clay-deep);border-bottom:1px solid var(--clay-deep)}
.map-street-a{left:0;right:0;top:96px;height:16px}
.map-street-b{top:0;bottom:0;left:120px;width:16px}
.map-park{position:absolute;right:24px;top:24px;width:80px;height:56px;background:#CBD9BC;border:1px solid #9FB48C}
.map-pin{position:absolute;left:104px;top:48px}
.map-label{
  position:absolute;
  left:var(--space-3);
  bottom:var(--space-3);
  background:var(--indigo-deep);
  color:var(--paper);
  font-size:13px;
  font-weight:700;
  padding:var(--space-2) var(--space-3);
}

/* ---------- footer ---------- */
.site-footer{
  background:var(--indigo-deep);
  color:var(--paper);
  padding-top:var(--space-6);
  padding-bottom:var(--space-5);
  border-top:8px solid var(--terracotta-deep);
}
.footer-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
.footer-grid>*{min-width:0}
@media (min-width:700px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1000px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.site-footer p,.site-footer address,.site-footer li{font-size:15px}
.site-footer address{font-style:normal;margin-top:var(--space-3)}
.site-footer p+p{margin-top:var(--space-3)}
.footer-brand{
  font-family:var(--serif);
  font-size:20px;
  font-weight:700;
  color:var(--paper);
}
.footer-head{
  font-family:var(--sans);
  font-size:13px;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:#F0D9B5;
  margin-bottom:var(--space-3);
}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-top:var(--space-3)}
.site-footer a{color:var(--paper);text-decoration:underline}
.site-footer a:hover{color:#F0D9B5}
.site-footer :focus-visible{outline:3px solid #F0D9B5;outline-offset:2px}
.footer-base{
  margin-top:var(--space-5);
  padding-top:var(--space-4);
  border-top:1px solid #3A4A80;
}
.footer-base .disclaimer{margin-top:var(--space-3);color:#E7DCC8;font-size:14px}

/* ---------- cookie banner ---------- */
.cookie-banner{
  position:fixed;
  left:0;
  right:0;
  bottom:0;
  z-index:75;
  background:var(--paper);
  border-top:4px solid var(--terracotta-deep);
  box-shadow:0 -2px 16px rgba(27,40,83,0.18);
  padding-top:var(--space-4);
  padding-bottom:var(--space-4);
}
.cookie-inner{display:grid;gap:var(--space-4)}
.cookie-inner>*{min-width:0}
.cookie-copy h2{font-size:20px;margin-bottom:var(--space-3)}
.cookie-copy p{font-size:15px}
.cookie-actions{display:flex;flex-wrap:wrap;gap:var(--space-3)}
.cookie-prefs{border-top:1px solid var(--clay);padding-top:var(--space-4)}
.cookie-prefs fieldset{border:0;margin:0;padding:0}
.cookie-prefs legend{
  font-weight:700;
  font-size:15px;
  padding:0;
  margin-bottom:var(--space-3);
  color:var(--ink);
}
.cookie-prefs .check{margin-top:var(--space-3)}
.cookie-prefs .btn{margin-top:var(--space-4)}
@media (min-width:1000px){
  .cookie-inner{grid-template-columns:1.6fr 1fr;align-items:start}
  .cookie-prefs{grid-column:1 / -1}
}

/* ---------- narrow phones ---------- */
@media (max-width:399px){
  body{font-size:16px}
  .lede{font-size:17px}
  .board-row{padding:var(--space-3);border-left-width:8px}
  .row-num{font-size:26px}
  .meta-strip{gap:var(--space-4);padding:var(--space-3)}
  .btn{width:100%}
  .row-cta .btn,.cookie-actions .btn{width:100%}
  .print-frame{padding:var(--space-2)}
  .map-block{height:180px}
  .map-street-b{left:64px}
  .map-pin{left:48px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    transition-duration:0.001ms !important;
    animation-duration:0.001ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
  }
}