/* pureripplesortlynst — Swiss minimalist / stat-header cards / instructional voice */

:root{
  --bg:#ffffff;
  --bg-alt:#f5f5f3;
  --ink:#111111;
  --muted:#444444;
  --line:#dddddd;
  --accent:#c8102e;
  --font:-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;

  --sp-4:4px;
  --sp-8:8px;
  --sp-16:16px;
  --sp-24:24px;
  --sp-40:40px;
  --sp-64:64px;
  --sp-stat:12px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:var(--bg);
  line-height:1.5;
  min-width:0;
}
img,svg{max-width:100%;display:block;}
a{color:inherit;}
h1,h2,h3,h4,p,li,label{overflow-wrap:anywhere;}
button,input,textarea{font:inherit;color:inherit;}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important;animation:none !important;}
}

/* Skip link */
.skip-link{
  position:absolute;
  left:-999px;
  top:0;
  background:var(--ink);
  color:#ffffff;
  padding:var(--sp-8) var(--sp-16);
  z-index:300;
  text-decoration:none;
}
.skip-link:focus{
  left:var(--sp-16);
  top:var(--sp-16);
}

:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}

/* Header */
.site-header{
  height:50px;
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
@media (min-width:1024px){
  .site-header{height:60px;}
}
.header-inner{
  max-width:1200px;
  margin:0 auto;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 var(--sp-16);
  gap:var(--sp-16);
  min-width:0;
}
.brand{
  display:flex;
  align-items:center;
  gap:var(--sp-8);
  text-decoration:none;
  color:var(--ink);
  min-width:0;
}
@media (min-width:1024px){
  .brand{flex-shrink:0;white-space:nowrap;}
}
.brand-mark{flex-shrink:0;}
.brand-name{
  font-weight:700;
  font-size:14px;
  letter-spacing:0.01em;
}
@media (min-width:1024px){
  .brand-name{font-size:17px;}
}

.nav-toggle{
  display:inline-flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:5px;
  width:40px;
  height:40px;
  background:none;
  border:1px solid var(--line);
  cursor:pointer;
  flex-shrink:0;
}
@media (min-width:1024px){.nav-toggle{display:none;}}
.nav-toggle-bar{display:block;width:20px;height:2px;background:var(--ink);}

.header-actions{display:flex;align-items:center;gap:var(--sp-16);flex-shrink:0;}

.header-cta{display:none;}
@media (min-width:1024px){
  .header-cta{
    display:inline-block;
    background:var(--accent);
    color:#ffffff;
    padding:var(--sp-8) var(--sp-16);
    text-decoration:none;
    font-weight:700;
    font-size:14px;
    white-space:nowrap;
  }
}

.site-nav{
  position:fixed;
  inset:50px 0 0 0;
  background:var(--ink);
  transform:translateX(100%);
  transition:transform .25s ease;
  overflow-y:auto;
  padding:var(--sp-40) var(--sp-16);
  z-index:200;
}
.site-nav.is-open{transform:translateX(0);}
.site-nav ul{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:var(--sp-24);
}
.site-nav a{
  color:#ffffff;
  text-decoration:none;
  font-size:19px;
  white-space:nowrap;
}
.nav-cta{
  display:inline-block;
  margin-top:var(--sp-40);
  background:var(--accent);
  color:#ffffff;
  padding:var(--sp-16) var(--sp-24);
  text-decoration:none;
  font-weight:700;
}
@media (min-width:1024px){
  .site-nav{
    position:static;
    inset:auto;
    background:none;
    transform:none;
    transition:none;
    overflow:visible;
    padding:0;
    flex:1;
    display:flex;
    justify-content:center;
    min-width:0;
  }
  .site-nav ul{flex-direction:row;gap:var(--sp-24);flex-wrap:nowrap;}
  .site-nav a{color:var(--ink);font-size:14px;}
  .nav-cta{display:none;}
}

/* Layout helpers */
.section{padding:var(--sp-64) var(--sp-16);}
.section-tight{padding:var(--sp-40) var(--sp-16);}
.section-inner{max-width:1200px;margin:0 auto;min-width:0;}
.section-alt{background:var(--bg-alt);}
.eyebrow{
  text-transform:uppercase;
  letter-spacing:0.08em;
  font-size:13px;
  font-weight:700;
  color:var(--muted);
  margin:0 0 var(--sp-16);
}

/* Hero */
.hero-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:var(--sp-40);
}
@media (min-width:768px){
  .hero-grid{grid-template-columns:7fr 5fr;align-items:start;}
}
.hero h1{
  font-size:clamp(2.1rem,6vw,3.6rem);
  line-height:1.05;
  letter-spacing:-0.02em;
  margin:0 0 var(--sp-24);
}
.hero p{max-width:60ch;color:var(--ink);font-size:17px;}
.hero-cta{
  display:inline-block;
  margin-top:var(--sp-24);
  background:var(--ink);
  color:#ffffff;
  text-decoration:none;
  padding:var(--sp-16) var(--sp-24);
  font-weight:700;
}
.quick-facts{
  border:1px solid var(--line);
  padding:var(--sp-24);
  min-width:0;
}
.quick-facts h2{font-size:15px;text-transform:uppercase;letter-spacing:0.06em;margin:0 0 var(--sp-16);}
.quick-facts dl{margin:0;display:flex;flex-direction:column;gap:var(--sp-16);}
.quick-facts dt{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:0.05em;}
.quick-facts dd{margin:var(--sp-4) 0 0;font-size:15px;font-weight:600;}
.media-panel{
  margin-top:var(--sp-24);
  height:120px;
  background:linear-gradient(135deg,var(--bg-alt),#ffffff);
  border:1px solid var(--line);
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Stat-header cards */
.stat-card-list{display:flex;flex-direction:column;gap:var(--sp-40);}
.stat-card{border:1px solid var(--line);background:var(--bg);min-width:0;}
.stat-card-header{
  display:flex;
  flex-direction:column;
  gap:var(--sp-16);
  padding:var(--sp-24);
  border-bottom:1px solid var(--line);
}
@media (min-width:768px){
  .stat-card-header{flex-direction:row;justify-content:space-between;align-items:flex-end;}
}
.stat-card-heading{display:flex;align-items:baseline;gap:var(--sp-16);min-width:0;}
.stat-card-index{font-size:14px;font-weight:700;color:var(--muted);}
.stat-card-heading h3{font-size:clamp(1.3rem,3vw,1.9rem);margin:0;min-width:0;}
.stat-strip{display:flex;flex-wrap:wrap;gap:var(--sp-24);min-width:0;}
.stat{display:flex;flex-direction:column;gap:var(--sp-stat);min-width:0;}
.stat-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--muted);}
.stat-value{font-size:15px;font-weight:600;}
.stat-card-body{padding:var(--sp-24);}
.stat-card-body p{margin:0;max-width:70ch;}
.stat-card-footer{padding:var(--sp-16) var(--sp-24);border-top:1px solid var(--line);}
.stat-card-footer a{color:var(--accent);font-weight:700;text-decoration:none;}
.stat-card-footer a:hover{text-decoration:underline;}

/* Prose */
.prose h2{font-size:clamp(1.5rem,3vw,2.1rem);margin-top:var(--sp-64);margin-bottom:var(--sp-16);}
.prose h3{font-size:1.2rem;margin-top:var(--sp-40);margin-bottom:var(--sp-8);}
.prose p{max-width:72ch;margin:0 0 var(--sp-16);}
.prose ul,.prose ol{max-width:72ch;padding-left:var(--sp-24);margin:0 0 var(--sp-16);}
.prose li{margin-bottom:var(--sp-8);}
.icon-badge{
  width:48px;height:48px;
  border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  background:var(--bg-alt);
  margin-bottom:var(--sp-16);
  flex-shrink:0;
}
.page-hero{padding-top:var(--sp-64);padding-bottom:var(--sp-40);}
.page-hero h1{font-size:clamp(2rem,5vw,3rem);margin:0 0 var(--sp-16);letter-spacing:-0.02em;}
.page-hero p{max-width:65ch;color:var(--muted);font-size:17px;margin:0;}

.compare-grid{display:flex;flex-direction:column;gap:var(--sp-24);}

/* Tables */
.table-wrap{overflow-x:auto;border:1px solid var(--line);}
table{width:100%;border-collapse:collapse;min-width:560px;}
th,td{border-bottom:1px solid var(--line);padding:var(--sp-16);text-align:left;font-size:14px;vertical-align:top;}
th{background:var(--bg-alt);font-weight:700;}

/* Forms */
.form-field{display:flex;flex-direction:column;gap:var(--sp-8);margin-bottom:var(--sp-24);max-width:520px;min-width:0;}
label{font-weight:700;font-size:14px;}
input,textarea{border:1px solid var(--line);padding:var(--sp-16);background:#ffffff;width:100%;}
input.is-invalid,textarea.is-invalid{border-color:var(--accent);}
.error-message{color:var(--accent);font-size:13px;margin:0;}
.error-message[hidden]{display:none;}
.btn{
  display:inline-block;
  border:1px solid var(--ink);
  background:var(--ink);
  color:#ffffff;
  padding:var(--sp-16) var(--sp-24);
  font-weight:700;
  cursor:pointer;
  text-decoration:none;
}
.btn-primary{background:var(--accent);border-color:var(--accent);}

/* Contact / map */
.contact-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-40);}
@media (min-width:768px){.contact-grid{grid-template-columns:1fr 1fr;}}
.address-block{border:1px solid var(--line);padding:var(--sp-24);}
.address-block p{margin:0 0 var(--sp-16);}
.map-block{
  position:relative;
  height:260px;
  border:1px solid var(--line);
  background-color:var(--bg-alt);
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:40px 40px;
  margin-top:var(--sp-24);
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Footer */
.site-footer{background:var(--bg-alt);border-top:1px solid var(--line);padding:var(--sp-64) var(--sp-16) var(--sp-40);}
.footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:var(--sp-40);min-width:0;}
@media (min-width:768px){.footer-inner{grid-template-columns:repeat(3,1fr);}}
.footer-col{min-width:0;}
.footer-col p{margin:0 0 var(--sp-16);}
.footer-heading{font-weight:700;text-transform:uppercase;font-size:13px;letter-spacing:0.05em;color:var(--muted);}
.footer-col nav ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-8);}
.footer-col nav a{text-decoration:none;color:var(--ink);}
.footer-col nav a:hover{text-decoration:underline;}
.footer-bottom{max-width:1200px;margin:var(--sp-40) auto 0;border-top:1px solid var(--line);padding-top:var(--sp-16);font-size:13px;color:var(--muted);}
.footer-bottom p{margin:0 0 var(--sp-8);}

/* Cookie banner */
.cookie-banner{
  position:fixed;
  left:0;right:0;bottom:0;
  background:var(--ink);
  color:#ffffff;
  padding:var(--sp-16);
  border-top:2px solid var(--accent);
  z-index:250;
}
.cookie-banner[hidden]{display:none;}
.cookie-inner{
  max-width:1200px;margin:0 auto;
  display:flex;flex-wrap:wrap;gap:var(--sp-16);
  align-items:center;justify-content:space-between;
}
.cookie-text{flex:1 1 280px;font-size:14px;min-width:0;margin:0;}
.cookie-actions{display:flex;flex-wrap:wrap;gap:var(--sp-8);flex:1 1 320px;justify-content:flex-end;min-width:0;}
.cookie-actions button{
  flex:1 1 auto;
  padding:var(--sp-8) var(--sp-16);
  border:1px solid #ffffff;
  background:transparent;
  color:#ffffff;
  cursor:pointer;
  font-size:13px;
  white-space:nowrap;
}
.cookie-actions button[data-cookie-choice="accept"]{background:var(--accent);border-color:var(--accent);}
@media (max-width:480px){
  .cookie-actions{flex-direction:column;}
  .cookie-actions button{width:100%;}
}
@media (min-width:768px){
  .cookie-inner{flex-wrap:nowrap;}
  .cookie-actions{flex:0 0 auto;}
}
.cookie-preferences{
  max-width:1200px;margin:var(--sp-16) auto 0;
  border-top:1px solid rgba(255,255,255,0.2);
  padding-top:var(--sp-16);
  display:flex;flex-direction:column;gap:var(--sp-8);
}
.cookie-preferences[hidden]{display:none;}
.cookie-preferences label{display:flex;align-items:center;gap:var(--sp-8);font-weight:400;font-size:14px;}
.cookie-preferences button{align-self:flex-start;background:var(--accent);border:1px solid var(--accent);color:#ffffff;padding:var(--sp-8) var(--sp-16);cursor:pointer;margin-top:var(--sp-8);}
.site-nav a:focus-visible,.cookie-banner a:focus-visible,.cookie-preferences button:focus-visible,.cookie-actions button:focus-visible{outline:2px solid #ffffff;outline-offset:2px;}