:root{
  --paper:#FFFDF3;
  --ink:#101010;
  --ink-soft:#3A3A3A;
  --red:#C8102E;
  --blue:#123FBF;
  --yellow:#FFD400;
  --green:#0B6B4F;
  --purple:#5B2A86;
  --line:3px solid var(--ink);
  --shadow:6px 6px 0 var(--ink);
  --shadow-sm:4px 4px 0 var(--ink);
  --s1:4px; --s2:8px; --s3:16px; --s4:24px; --s5:40px; --s6:64px;
  --maxw:1160px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.65;
  background-image:linear-gradient(90deg,rgba(16,16,16,.045) 1px,transparent 1px);
  background-size:32px 100%;
}
img{max-width:100%;height:auto;display:block;}

h1,h2,h3,h4{
  font-weight:900;
  line-height:1.08;
  letter-spacing:-0.02em;
  margin:0 0 var(--s3);
  text-transform:uppercase;
}
h1{font-size:clamp(2rem,6vw,3.6rem);}
h2{font-size:clamp(1.5rem,3.6vw,2.3rem);}
h3{font-size:clamp(1.15rem,2.4vw,1.45rem);}
p{margin:0 0 var(--s3);}
a{color:var(--blue);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px;}
a:hover{color:var(--red);}
code{font-family:"Courier New",monospace;background:var(--yellow);color:var(--ink);padding:1px 5px;border:2px solid var(--ink);}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--s4);}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:4px solid var(--blue);
  outline-offset:3px;
  border-radius:0;
}
[hidden]{display:none !important;}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--ink);color:var(--paper);
  padding:var(--s2) var(--s3);border:var(--line);font-weight:700;
}
.skip-link:focus{left:var(--s3);top:var(--s3);}

/* ---------- Header ---------- */
.site-header{
  background:var(--paper);
  border-bottom:5px solid var(--ink);
}
.header__inner{
  height:62px;
  display:flex;align-items:center;gap:var(--s3);
  justify-content:space-between;
}
.brand{display:flex;align-items:center;gap:var(--s2);text-decoration:none;color:var(--ink);flex:0 0 auto;}
.brand:hover{color:var(--ink);}
.brand__mark{width:32px;height:32px;flex:0 0 auto;}
.brand__name{font-weight:900;text-transform:lowercase;letter-spacing:-0.03em;font-size:1.05rem;white-space:nowrap;}
.brand__dot{color:var(--red);}

.nav{flex:1 1 auto;display:flex;justify-content:center;}
.nav__list{display:flex;gap:var(--s3);list-style:none;margin:0;padding:0;flex-wrap:nowrap;}
.nav__list a{
  color:var(--ink);
  text-decoration:none;
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:var(--s1) 2px;
  border-bottom:3px solid transparent;
  white-space:nowrap;
}
.nav__list a:hover{border-bottom-color:var(--red);color:var(--red);}
.nav__list a[aria-current="page"]{border-bottom-color:var(--ink);}

.header__cta{flex:0 0 auto;}
.nav-toggle{
  display:none;
  align-items:center;gap:var(--s2);
  background:var(--yellow);color:var(--ink);
  border:var(--line);
  box-shadow:var(--shadow-sm);
  font:inherit;font-weight:900;text-transform:uppercase;font-size:.75rem;letter-spacing:.06em;
  padding:8px 10px;cursor:pointer;
}
.nav-toggle__bars{width:18px;height:2px;background:var(--ink);box-shadow:0 6px 0 var(--ink),0 -6px 0 var(--ink);display:block;}

.mobile-nav{
  display:none;
  background:var(--yellow);
  color:var(--ink);
  border-bottom:5px solid var(--ink);
}
.mobile-nav.is-open{display:block;}
.mobile-nav__inner{padding-top:var(--s4);padding-bottom:var(--s4);}
.mobile-nav__title{font-weight:900;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;margin-bottom:var(--s3);}
.mobile-nav__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2);}
.mobile-nav__list a{
  display:block;background:var(--paper);color:var(--ink);
  border:var(--line);box-shadow:var(--shadow-sm);
  padding:12px var(--s3);text-decoration:none;font-weight:800;
}
.mobile-nav__list a:hover{background:var(--ink);color:var(--paper);}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  background:var(--paper);color:var(--ink);
  border:var(--line);
  box-shadow:var(--shadow);
  padding:12px 20px;
  font-weight:900;text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;
  text-decoration:none;cursor:pointer;
  transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease;
}
.btn:hover{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--ink);background:var(--yellow);color:var(--ink);}
.btn--primary{background:var(--red);color:#fff;}
.btn--primary:hover{background:var(--ink);color:var(--yellow);}
.btn--ghost{background:var(--ink);color:var(--paper);}
.btn--ghost:hover{background:var(--paper);color:var(--ink);}
.btn--sm{padding:9px 14px;font-size:.75rem;box-shadow:var(--shadow-sm);}

/* ---------- Tags ---------- */
.tag{
  display:inline-block;
  border:var(--line);
  padding:4px 10px;
  font-size:.7rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase;
  margin:0 0 var(--s3);
  background:var(--yellow);color:var(--ink);
}
.tag--red{background:var(--red);color:#fff;}
.tag--blue{background:var(--blue);color:#fff;}
.tag--green{background:var(--green);color:#fff;}
.tag--purple{background:var(--purple);color:#fff;}
.tag--yellow{background:var(--yellow);color:var(--ink);}
.tag--ink{background:var(--ink);color:var(--paper);}

/* ---------- Hero ---------- */
.hero{
  border-bottom:5px solid var(--ink);
  background:linear-gradient(180deg,#FFE98A 0%,var(--paper) 100%);
  padding:var(--s6) 0;
}
.hero__inner{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--s5);align-items:center;}
.hl{background:var(--red);color:#fff;padding:0 var(--s2);display:inline-block;}
.lede{font-size:1.1rem;max-width:60ch;}
.hero__actions{display:flex;flex-wrap:wrap;gap:var(--s3);margin-bottom:var(--s5);}
.stats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s4);}
.stats li{
  border:var(--line);background:var(--paper);color:var(--ink);
  box-shadow:var(--shadow-sm);
  padding:var(--s3) var(--s4);
  display:flex;flex-direction:column;min-width:120px;
}
.stats__num{font-size:1.9rem;font-weight:900;line-height:1;}
.stats__label{margin-top:12px;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ink-soft);}
.hero__art{border:var(--line);box-shadow:10px 10px 0 var(--ink);background:var(--paper);}
.hero__art img{border-bottom:var(--line);}
.hero__caption{margin:0;padding:var(--s3) var(--s4);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}

/* ---------- Page hero (sub pages) ---------- */
.page-hero{padding:var(--s6) 0;border-bottom:5px solid var(--ink);}
.page-hero--red{background:linear-gradient(180deg,#FFD9DE,var(--paper));}
.page-hero--blue{background:linear-gradient(180deg,#D6E0FF,var(--paper));}
.page-hero--green{background:linear-gradient(180deg,#CFEEE1,var(--paper));}
.page-hero--yellow{background:linear-gradient(180deg,#FFF0A8,var(--paper));}
.page-hero--purple{background:linear-gradient(180deg,#E4D6F5,var(--paper));}
.page-hero--ink{background:var(--ink);color:var(--paper);}
.page-hero--ink a{color:var(--yellow);}
.page-hero--ink a:hover{color:#fff;}
.byline{font-family:"Courier New",monospace;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em;margin:0;}

/* ---------- Sections ---------- */
.section{padding:var(--s6) 0;}
.section--band{border-top:5px solid var(--ink);background:#F2EEDF;}
.section__head{max-width:70ch;margin-bottom:var(--s5);}
.section__sub{font-size:1.05rem;margin:0;}

/* ---------- Framed canvas cards ---------- */
.grid{display:grid;gap:var(--s5);}
.grid--cards{grid-template-columns:repeat(3,1fr);}
.card{position:relative;padding:0 12px 12px 0;}
.card::before{
  content:"";
  position:absolute;
  left:12px;top:12px;right:0;bottom:0;
  border:var(--line);
  background:var(--yellow);
  z-index:0;
}
.card--red::before{background:var(--red);}
.card--blue::before{background:var(--blue);}
.card--green::before{background:var(--green);}
.card--purple::before{background:var(--purple);}
.card--ink::before{background:var(--ink);}
.card__inner{
  position:relative;z-index:1;
  background:var(--paper);color:var(--ink);
  border:var(--line);
  height:100%;
  display:flex;flex-direction:column;
  transition:transform .15s ease,box-shadow .15s ease;
}
.card:hover .card__inner,.card:focus-within .card__inner{transform:translate(-6px,-6px);box-shadow:6px 6px 0 rgba(16,16,16,.25);}
.card__img{width:100%;aspect-ratio:4/3;object-fit:cover;border-bottom:var(--line);}
.card__body{padding:var(--s4);display:flex;flex-direction:column;gap:var(--s4);flex:1 1 auto;}
.card__body--tall{justify-content:flex-start;}
.card__body>*{margin:0;}
.card__body h3{font-size:1.15rem;}
.card__body h3 a{color:var(--ink);text-decoration:none;}
.card__body h3 a:hover{color:var(--red);text-decoration:underline;}
.card__meta{font-family:"Courier New",monospace;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);}
.card__body .btn{align-self:flex-start;margin-top:auto;}

/* ---------- Band / supporting ---------- */
.band{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--s5);align-items:start;}
.steps{list-style:none;counter-reset:step;margin:0 0 var(--s4);padding:0;display:grid;gap:var(--s3);}
.steps li{
  counter-increment:step;
  border-left:8px solid var(--red);
  background:var(--paper);
  border-top:var(--line);border-right:var(--line);border-bottom:var(--line);
  padding:var(--s3) var(--s4);
}
.steps__t{display:block;font-weight:900;text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;margin-bottom:var(--s2);}
.band__panel{border:var(--line);box-shadow:var(--shadow);background:var(--paper);color:var(--ink);padding:var(--s4);}
.faq{margin:0;}
.faq dt{font-weight:900;margin-top:var(--s4);}
.faq dt:first-of-type{margin-top:0;}
.faq dd{margin:var(--s2) 0 0;}

/* ---------- Prose ---------- */
.prose{max-width:78ch;}
.prose h2{margin-top:var(--s6);}
.prose h2:first-child{margin-top:0;}
.prose h3{margin-top:var(--s4);}
.ticks{list-style:none;padding:0;margin:0 0 var(--s4);display:grid;gap:var(--s3);}
.ticks li{padding-left:34px;position:relative;}
.ticks li::before{
  content:"";position:absolute;left:0;top:6px;
  width:18px;height:18px;background:var(--yellow);border:var(--line);
}
.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);margin:var(--s4) 0 var(--s5);}
.pro,.con{border:var(--line);box-shadow:var(--shadow-sm);padding:var(--s4);background:var(--paper);color:var(--ink);}
.pro{border-top:12px solid var(--green);}
.con{border-top:12px solid var(--red);}
.pro h3,.con h3{margin-top:0;}
.pro ul,.con ul{margin:0;padding-left:20px;display:grid;gap:var(--s2);}

.tablewrap{overflow-x:auto;border:var(--line);box-shadow:var(--shadow);margin:0 0 var(--s5);background:var(--paper);}
table{border-collapse:collapse;width:100%;min-width:280px;font-size:.92rem;}
caption{text-align:left;padding:var(--s3) var(--s4);font-weight:900;text-transform:uppercase;font-size:.78rem;letter-spacing:.08em;background:var(--yellow);color:var(--ink);border-bottom:var(--line);}
th,td{padding:var(--s3) var(--s4);text-align:left;border-bottom:2px solid var(--ink);vertical-align:top;}
thead th{background:var(--ink);color:var(--paper);text-transform:uppercase;font-size:.72rem;letter-spacing:.08em;}
tbody tr:nth-child(even){background:#F5F1E2;}
tbody tr:last-child td{border-bottom:none;}

.cta-box{
  margin-top:var(--s6);
  border:var(--line);box-shadow:var(--shadow);
  background:var(--ink);color:var(--paper);
  padding:var(--s5) var(--s4);
  display:flex;flex-direction:column;gap:var(--s4);align-items:flex-start;
}
.cta-box h2,.cta-box p{margin:0;}
.cta-box .btn{margin-right:var(--s3);}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s5);align-items:start;}
.form{border:var(--line);box-shadow:var(--shadow);background:var(--paper);color:var(--ink);padding:var(--s4);display:grid;gap:var(--s4);}
.form__row{display:grid;gap:var(--s2);}
.form__row--check{grid-template-columns:auto 1fr;align-items:start;gap:var(--s2) var(--s3);}
.form__label{font-weight:900;text-transform:uppercase;font-size:.75rem;letter-spacing:.07em;}
.form__label--inline{text-transform:none;font-size:.92rem;font-weight:600;letter-spacing:0;line-height:1.5;}
.form__input{
  font:inherit;
  background:#fff;color:var(--ink);
  border:var(--line);
  padding:12px var(--s3);
  width:100%;
}
.form__input--area{resize:vertical;min-height:140px;}
.form__check{width:24px;height:24px;border:var(--line);accent-color:var(--red);margin:2px 0 0;}
.form__row--check .form__error{grid-column:1 / -1;}
.form__error{
  margin:0;font-size:.85rem;font-weight:700;
  background:var(--red);color:#fff;
  padding:var(--s2) var(--s3);border:var(--line);
}
.form__input.is-invalid,.form__check.is-invalid{border-color:var(--red);background:#FFF0F2;color:var(--ink);}
.form__status{margin:0;padding:var(--s3) var(--s4);border:var(--line);font-weight:800;}
.form__status--ok{background:var(--green);color:#fff;}
.form__status--bad{background:var(--yellow);color:var(--ink);}

.contact-side{display:grid;gap:var(--s5);}
.panel{border:var(--line);box-shadow:var(--shadow);background:var(--paper);color:var(--ink);padding:var(--s4);}
.panel h2{font-size:1.15rem;}
.plainlist{list-style:none;margin:0;padding:0;display:grid;gap:var(--s3);}
address{font-style:normal;margin-bottom:var(--s3);}

.map{
  position:relative;
  height:230px;
  border:var(--line);
  background:#E9E3CE;
  overflow:hidden;
  margin-bottom:var(--s4);
}
.map__road{position:absolute;background:var(--paper);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);}
.map__road--h1{left:0;right:0;top:58px;height:22px;}
.map__road--h2{left:0;right:0;top:150px;height:16px;}
.map__road--v1{top:0;bottom:0;left:96px;width:20px;border:none;border-left:2px solid var(--ink);border-right:2px solid var(--ink);}
.map__road--v2{top:0;bottom:0;right:70px;width:14px;border:none;border-left:2px solid var(--ink);border-right:2px solid var(--ink);}
.map__park{position:absolute;left:140px;top:92px;width:120px;height:48px;background:#9FD3B4;border:2px solid var(--ink);}
.map__pin{
  position:absolute;left:56px;top:96px;
  background:var(--red);color:#fff;
  border:var(--line);box-shadow:var(--shadow-sm);
  padding:6px 10px;font-weight:900;font-size:.78rem;
}
.map__label{position:absolute;font-size:.66rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;background:var(--ink);color:var(--paper);padding:2px 6px;}
.map__label--a{left:146px;top:146px;}
.map__label--b{left:8px;top:32px;}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink);color:var(--paper);border-top:5px solid var(--ink);margin-top:var(--s6);}
.site-footer a{color:var(--yellow);}
.site-footer a:hover{color:#fff;}
.footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:var(--s5);padding-top:var(--s6);padding-bottom:var(--s5);}
.footer__brand{font-weight:900;font-size:1.3rem;text-transform:lowercase;letter-spacing:-.03em;margin-bottom:var(--s3);}
.footer__legalname{font-weight:800;}
.footer__col p{font-size:.92rem;margin-bottom:var(--s2);}
.footer__h{font-size:.8rem;letter-spacing:.1em;border-bottom:3px solid var(--yellow);padding-bottom:var(--s2);margin-bottom:var(--s3);}
.footer__list{list-style:none;margin:0;padding:0;display:grid;gap:var(--s2);}
.footer__bar{border-top:2px solid #4A4A4A;padding-top:var(--s4);padding-bottom:var(--s4);}
.footer__bar p{margin:0;font-size:.85rem;}

/* ---------- Cookie banner ---------- */
.cookie{
  position:fixed;left:0;right:0;bottom:0;z-index:120;
  background:var(--yellow);color:var(--ink);
  border-top:5px solid var(--ink);
  max-height:80vh;overflow-y:auto;
}
.cookie__inner{padding-top:var(--s4);padding-bottom:var(--s4);display:grid;grid-template-columns:1.4fr auto;gap:var(--s4);align-items:center;}
.cookie__h{font-size:1rem;margin-bottom:var(--s2);}
.cookie__copy p{margin:0;font-size:.9rem;max-width:70ch;}
.cookie__copy a{color:#0A2E8C;}
.cookie__copy a:hover{color:var(--red);}
.cookie__actions{display:flex;flex-wrap:wrap;gap:var(--s2);}
.cookie__prefs{grid-column:1 / -1;border-top:3px solid var(--ink);padding-top:var(--s3);}
.cookie__prefs.is-visible{display:block;}
.cookie__prefslist{margin:0 0 var(--s3);padding-left:20px;display:grid;gap:var(--s2);font-size:.9rem;}

/* ---------- Responsive ---------- */
@media (max-width:1000px){
  .grid--cards{grid-template-columns:repeat(2,1fr);}
  .nav__list{gap:12px;}
}
@media (max-width:900px){
  .nav,.header__cta{display:none;}
  .nav-toggle{display:inline-flex;}
  .header__inner{height:58px;}
  .hero__inner,.band,.contact-grid{grid-template-columns:1fr;}
  .footer__grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:768px){
  body{font-size:16px;}
  .header__inner{height:50px;}
  .brand__mark{width:28px;height:28px;}
  .grid--cards{grid-template-columns:1fr;}
  .split{grid-template-columns:1fr;}
  .cookie__inner{grid-template-columns:1fr;}
  .section,.hero,.page-hero{padding:var(--s5) 0;}
  .footer__grid{grid-template-columns:1fr;gap:var(--s4);padding-top:var(--s5);}
}
@media (max-width:560px){
  .wrap{padding:0 var(--s3);}
  .stats li{min-width:0;flex:1 1 140px;}
  .cta-box{padding:var(--s4) var(--s3);}
  .cta-box .btn{margin-right:0;}
}
@media (max-width:400px){
  :root{--shadow:4px 4px 0 var(--ink);--shadow-sm:3px 3px 0 var(--ink);}
  body{font-size:15.5px;}
  h1{font-size:1.75rem;}
  .brand__name{font-size:.92rem;}
  .nav-toggle__text{display:none;}
  .nav-toggle{padding:10px;}
  .card{padding:0 8px 8px 0;}
  .card::before{left:8px;top:8px;}
  .card__body,.panel,.form,.band__panel{padding:var(--s3);}
  .stats{gap:var(--s2);}
  .stats li{padding:var(--s3);}
  .btn{padding:11px 14px;font-size:.78rem;}
  th,td{padding:var(--s2) var(--s3);}
  .map{height:200px;}
}

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