/* Kuhn Keller – Zink & Amber
   ink #22272E · amber #F6A61C · paper #F7F7F5 · steel #7E8894 · slate #2A313A */

:root{
  --ink:#22272E;
  --amber:#F6A61C;
  --amber-deep:#D98A00;
  --paper:#F7F7F5;
  --steel:#7E8894;
  --slate:#2A313A;
  --line:#E3E1DC;
  --radius:14px;
  --maxw:1120px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{
  font-family:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  color:var(--ink);background:var(--paper);
  line-height:1.6;font-size:17px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* corrugated steel motif — echoes the galvanized unit walls */
.rib{
  background-image:repeating-linear-gradient(90deg,
    rgba(126,136,148,.16) 0px, rgba(126,136,148,.16) 2px,
    transparent 2px, transparent 14px);
}
.rib-dark{
  background-image:repeating-linear-gradient(90deg,
    rgba(255,255,255,.05) 0px, rgba(255,255,255,.05) 2px,
    transparent 2px, transparent 14px);
}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(247,247,245,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;gap:28px;height:68px}
.nav .brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:.02em;text-decoration:none;font-size:18px}
.nav .brand img{height:34px;width:auto}
.nav nav{margin-left:auto;display:flex;gap:22px;align-items:center}
.nav nav a{text-decoration:none;font-size:15px;font-weight:600;color:var(--ink);opacity:.75}
.nav nav a:hover{opacity:1}
.btn{
  display:inline-block;background:var(--amber);color:var(--ink);
  font-weight:800;text-decoration:none;border:none;cursor:pointer;
  padding:13px 22px;border-radius:10px;font-size:16px;letter-spacing:.01em;
  transition:transform .12s ease, background .12s ease;
}
.btn:hover{background:var(--amber-deep);transform:translateY(-1px)}
.btn:focus-visible,a:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.btn-ghost{background:transparent;border:2px solid var(--ink);padding:11px 20px}
.btn-ghost:hover{background:var(--ink);color:#fff}
@media(max-width:760px){.nav nav a:not(.btn){display:none}}

/* ---------- hero ---------- */
.hero{padding:64px 0 72px;position:relative;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.eyebrow{
  font-family:"IBM Plex Mono",monospace;font-size:13px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--amber-deep);
  display:inline-flex;align-items:center;gap:10px;margin-bottom:18px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--amber)}
h1{font-size:clamp(38px,5.4vw,58px);line-height:1.05;font-weight:900;letter-spacing:-.015em}
h1 .am{color:var(--amber-deep)}
.hero p.lead{margin:22px 0 30px;font-size:19px;color:#454c55;max-width:34em}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero-facts{display:flex;gap:10px;flex-wrap:wrap;margin-top:34px}
.chip{
  font-family:"IBM Plex Mono",monospace;font-size:13.5px;font-weight:600;
  background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:8px 14px;color:#3a414a;
}
.hero-photo{position:relative}
.hero-photo img{border-radius:var(--radius);aspect-ratio:4/5;object-fit:cover;width:100%}
.hero-photo::after{ /* amber corner tab, like a unit number plate */
  content:"DASSELSTR. 67 · KÖLN SÜD";
  font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:700;letter-spacing:.08em;
  position:absolute;left:16px;bottom:16px;background:var(--amber);color:var(--ink);
  padding:8px 12px;border-radius:8px;
}
@media(max-width:860px){
  .hero .wrap{grid-template-columns:1fr;gap:36px}
  .hero-photo img{aspect-ratio:16/10}
}

/* ---------- sections ---------- */
section{padding:76px 0}
.sec-head{max-width:640px;margin-bottom:44px}
h2{font-size:clamp(28px,3.6vw,38px);font-weight:900;letter-spacing:-.01em;line-height:1.15}
.sec-head p{margin-top:12px;color:#4a515a}

/* sizes */
#groessen{background:#fff;border-block:1px solid var(--line)}
.sizes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.size-card{
  border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);
  padding:26px 24px;display:flex;flex-direction:column;position:relative;overflow:hidden;
  text-decoration:none;color:inherit;cursor:pointer;
  transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.size-card:hover{transform:translateY(-3px);border-color:var(--amber);box-shadow:0 12px 30px rgba(34,39,46,.10)}
.size-cta{
  margin-top:16px;font-weight:800;font-size:15px;color:var(--amber-deep);
}
.size-card:hover .size-cta{text-decoration:underline}
.size-card .rib-top{position:absolute;inset:0 0 auto 0;height:8px}
.size-card.popular{border-color:var(--amber);box-shadow:0 8px 28px rgba(246,166,28,.14)}
.size-tag{
  font-family:"IBM Plex Mono",monospace;font-size:12px;font-weight:700;letter-spacing:.12em;
  color:var(--amber-deep);text-transform:uppercase;margin-bottom:8px;
}
.size-card h3{font-size:26px;font-weight:900}
.size-dims{font-family:"IBM Plex Mono",monospace;font-size:13.5px;color:var(--steel);margin:6px 0 14px}
.size-card p{font-size:15.5px;color:#4a515a;flex:1}
.size-price{margin-top:18px;display:flex;align-items:baseline;gap:6px}
.size-price strong{font-size:34px;font-weight:900}
.size-price span{color:var(--steel);font-size:15px}
.size-count{font-size:13.5px;color:var(--steel);margin-top:4px}
@media(max-width:860px){.sizes{grid-template-columns:1fr}}

/* price table */
.staffel{margin-top:46px;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper)}
.staffel table{width:100%;border-collapse:collapse;font-family:"IBM Plex Mono",monospace;font-size:15px}
.staffel caption{
  text-align:left;padding:16px 20px;font-family:"Archivo",sans-serif;
  font-weight:800;font-size:17px;background:var(--paper);border-bottom:1px solid var(--line);
}
.staffel th,.staffel td{padding:13px 20px;text-align:left;border-bottom:1px solid var(--line)}
.staffel thead th{background:var(--slate);color:#fff;font-weight:600;font-size:13.5px;letter-spacing:.06em}
.staffel tbody tr:last-child td{border-bottom:none}
.staffel td strong{color:var(--amber-deep)}
.staffel-note{font-size:14px;color:var(--steel);padding:14px 20px;background:#fff;border-top:1px solid var(--line);font-family:"Archivo",sans-serif}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;counter-reset:step}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.step::before{
  counter-increment:step;content:"0" counter(step);
  font-family:"IBM Plex Mono",monospace;font-weight:700;font-size:14px;
  color:var(--amber-deep);letter-spacing:.1em;display:block;margin-bottom:12px;
}
.step h3{font-size:18px;font-weight:800;margin-bottom:8px}
.step p{font-size:15px;color:#4a515a}
@media(max-width:860px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.steps{grid-template-columns:1fr}}

/* features band */
#vorteile{background:var(--slate);color:#fff}
#vorteile h2{color:#fff}
#vorteile .sec-head p{color:#B9C0C9}
.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;border-radius:var(--radius);overflow:hidden}
.feat{background:#323A45;padding:26px 24px}
.feat h3{font-size:17px;font-weight:800;margin-bottom:6px;display:flex;gap:10px;align-items:center}
.feat h3 svg{flex:none}
.feat p{font-size:14.5px;color:#C4CAD3}
@media(max-width:860px){.feats{grid-template-columns:1fr}}

/* gallery */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gal img{border-radius:12px;aspect-ratio:3/4;object-fit:cover;width:100%}
@media(max-width:700px){.gal{grid-template-columns:1fr 1fr}}

/* faq */
#faq{background:#fff;border-block:1px solid var(--line)}
.faq-list{max-width:760px}
details{border-bottom:1px solid var(--line)}
summary{
  cursor:pointer;list-style:none;padding:20px 0;font-weight:800;font-size:17px;
  display:flex;justify-content:space-between;gap:16px;align-items:center;
}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:"IBM Plex Mono",monospace;font-size:20px;color:var(--amber-deep);transition:transform .15s}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 0 20px;color:#4a515a;max-width:60ch}

/* contact */
#kontakt .card{
  background:var(--ink);color:#fff;border-radius:18px;padding:52px 48px;
  display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;position:relative;overflow:hidden;
}
#kontakt h2{color:#fff}
#kontakt p{color:#C4CAD3;margin-top:12px;max-width:36em}
.contact-lines{font-family:"IBM Plex Mono",monospace;font-size:15.5px;display:grid;gap:12px}
.contact-lines a{color:var(--amber);text-decoration:none;font-weight:700}
.contact-lines a:hover{text-decoration:underline}
@media(max-width:860px){#kontakt .card{grid-template-columns:1fr;padding:36px 28px}}

/* footer */
footer{padding:34px 0;font-size:14px;color:var(--steel)}
footer .wrap{display:flex;gap:20px;flex-wrap:wrap;justify-content:space-between;align-items:center}
footer a{color:var(--steel);text-decoration:none}
footer a:hover{color:var(--ink)}

/* legal pages */
.legal{max-width:760px;margin:0 auto;padding:56px 24px 80px}
.legal h1{font-size:34px;margin-bottom:10px}
.legal h2{font-size:20px;margin:32px 0 10px}
.legal p,.legal li{font-size:15.5px;color:#3d444d}
.legal ul{padding-left:20px;margin:8px 0}
.legal .back{display:inline-block;margin-top:40px;font-weight:700;text-decoration:none;color:var(--amber-deep)}

/* ---------- Größen-Rechner ---------- */
.calc{margin-top:46px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);padding:28px 26px}
.calc-head h3{font-size:22px;font-weight:900}
.calc-head p{color:var(--steel);font-size:14.5px;margin-top:4px}
.calc-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin:22px 0}
.calc-item{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:14.5px;
}
.calc-item.active{border-color:var(--amber);box-shadow:0 2px 10px rgba(246,166,28,.15)}
.ci-name{font-weight:600}
.ci-ctrl{display:flex;align-items:center;gap:8px;font-family:"IBM Plex Mono",monospace}
.ci-ctrl b{min-width:18px;text-align:center;font-size:15px}
.ci-ctrl button{
  width:28px;height:28px;border-radius:8px;border:1px solid var(--line);background:var(--paper);
  font-size:17px;font-weight:700;cursor:pointer;line-height:1;color:var(--ink);
}
.ci-ctrl button:hover{background:var(--amber);border-color:var(--amber)}
.ci-ctrl button:focus-visible{outline:3px solid var(--amber);outline-offset:1px}
.calc-result{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:20px;
}
.calc-vol{font-family:"IBM Plex Mono",monospace;font-weight:700;font-size:16px;background:var(--slate);color:#fff;border-radius:8px;padding:8px 12px}
.calc-reco{font-size:16.5px;flex:1;min-width:220px}
.calc-reco strong{color:var(--amber-deep)}

/* ---------- WhatsApp float ---------- */
.wa-float{
  position:fixed;right:22px;bottom:22px;z-index:60;
  width:56px;height:56px;border-radius:50%;background:#25D366;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 22px rgba(0,0,0,.22);transition:transform .12s ease;
}
.wa-float:hover{transform:scale(1.06)}

/* ---------- Sticky mobile CTA ---------- */
.sticky-cta{display:none}
@media(max-width:760px){
  .wa-float{display:none}
  .sticky-cta{
    display:flex;align-items:center;gap:12px;
    position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:var(--ink);padding:10px 14px calc(10px + env(safe-area-inset-bottom));
  }
  .sticky-price{color:#fff;font-family:"IBM Plex Mono",monospace;font-size:13.5px;font-weight:700;flex:1}
  .sticky-cta .btn{padding:11px 18px;font-size:15px}
  .sticky-wa{
    width:42px;height:42px;border-radius:50%;background:#25D366;flex:none;
    display:flex;align-items:center;justify-content:center;
  }
  body{padding-bottom:64px}
}
