/* Layout: ein Notizzettel-Raster im A6-Verhältnis (105 × 148). Ruhige Papierfläche, die sieben Systemfarben sind der einzige Farbakzent. */
:root{
  --paper:#F5F6F3; --sheet:#FFFFFF; --ink:#1C2320; --ink-2:#4A544F; --line:#D9DDD8; --hover:#ECEEEA;
  --c-rot:#E2403A; --c-gelb:#F2C21B; --c-blau:#2F7FD1; --c-weiss:#C9D3D6; --c-orange:#F28A2A; --c-violett:#8257B8; --c-gruen:#2E9D63;
  --focus:#2F7FD1;
  --f-display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;
  --f-body:"Atkinson Hyperlegible", "Segoe UI", system-ui, sans-serif;
  --f-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --r:6px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --paper:#121614; --sheet:#1A201D; --ink:#E8ECE8; --ink-2:#A6B0AA; --line:#2E3632; --hover:#222925;
  --c-weiss:#8E9CA1; --focus:#6FB0F0; color-scheme:dark}}
:root[data-theme="dark"]{
  --paper:#121614; --sheet:#1A201D; --ink:#E8ECE8; --ink-2:#A6B0AA; --line:#2E3632; --hover:#222925;
  --c-weiss:#8E9CA1; --focus:#6FB0F0; color-scheme:dark}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6}
a{color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:3px}
.wrap{max-width:1160px;margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
h1,h2,h3{font-family:var(--f-display);line-height:1.08;text-wrap:balance;margin:0;font-weight:800;letter-spacing:-.02em}
h2{font-size:clamp(2rem,4.4vw,3.1rem)}
h3{font-size:1.3rem;font-weight:600;letter-spacing:-.01em}
p{margin:0}
.eyebrow{font-family:var(--f-mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-2)}
.lead{font-size:1.15rem;color:var(--ink-2);max-width:60ch}
section{padding-block:clamp(64px,9vw,112px)}
.sec-head{display:grid;gap:14px;margin-bottom:44px;max-width:720px}

/* Navigation */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:20px;min-height:64px;flex-wrap:wrap}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--f-display);font-weight:800;font-size:1.35rem;letter-spacing:-.02em}
.logo-mark{display:grid;grid-template-columns:repeat(7,4px);gap:2px;height:20px}
.logo-mark i{display:block;border-radius:1px}
.nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.nav a{text-decoration:none;padding:8px 12px;border-radius:var(--r);font-size:.95rem;color:var(--ink-2)}
.nav a:hover{background:var(--hover);color:var(--ink)}
.cart-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:999px;font:600 .9rem var(--f-body);cursor:pointer;text-decoration:none}
.cart-btn b{font-family:var(--f-mono);font-weight:500}
@media (max-width:760px){.nav{order:3;width:100%;margin-left:0;overflow-x:auto;flex-wrap:nowrap;padding-bottom:8px}.cart-btn{margin-left:auto}}

/* Hero */
.hero{padding-block:clamp(48px,7vw,96px) clamp(56px,8vw,104px)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,72px);align-items:center}
.hero h1{font-size:clamp(3rem,8.2vw,6.4rem)}
.hero h1 span{display:block;color:var(--ink-2);font-weight:400}
.hero-copy{display:grid;gap:26px;min-width:0}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 22px;border-radius:999px;font:700 1rem var(--f-body);text-decoration:none;cursor:pointer;border:1.5px solid var(--ink);background:transparent;color:var(--ink)}
.btn.solid{background:var(--ink);color:var(--paper)}
.btn:hover{transform:translateY(-1px)}
.facts{display:flex;gap:28px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--line)}
.facts div{display:grid}
.facts b{font-family:var(--f-mono);font-weight:500;font-size:1.05rem}
.facts span{font-size:.85rem;color:var(--ink-2)}

/* Fächer aus Mäppchen */
.fan{position:relative;aspect-ratio:1/1;max-width:100%;width:min(460px,100%);justify-self:center}
.sleeve{position:absolute;left:50%;top:50%;width:52%;aspect-ratio:105/148;border-radius:4px;transform-origin:50% 92%;
  background:linear-gradient(160deg,color-mix(in srgb,var(--c) 70%,transparent),color-mix(in srgb,var(--c) 48%,transparent));
  border:1px solid color-mix(in srgb,var(--c) 85%,#000 0%);
  box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 10px 24px -14px rgba(0,0,0,.35);
  translate:-50% -50%;rotate:var(--rot);transition:rotate .5s cubic-bezier(.2,.8,.2,1)}
.sleeve::after{content:"";position:absolute;inset:0 0 auto 0;height:9%;border-bottom:1px solid color-mix(in srgb,var(--c) 90%,#000);opacity:.5}
.fan:hover .sleeve{rotate:calc(var(--rot) * 1.25)}
.note{position:absolute;left:50%;top:50%;width:44%;aspect-ratio:105/148;translate:-50% -46%;background:var(--sheet);border:1px solid var(--line);border-radius:3px;padding:7% 7%;display:grid;align-content:start;gap:6px;box-shadow:0 18px 30px -18px rgba(0,0,0,.35);font-family:var(--f-mono);font-size:clamp(.62rem,1.3vw,.78rem);line-height:1.5;color:var(--ink)}
.note .kw{justify-self:end;border:1px solid var(--ink);padding:1px 6px;border-radius:3px;font-weight:500}
.note .ln{border-bottom:1px solid var(--line);padding-bottom:3px}
.note .dim{color:var(--ink-2)}

/* Farblegende */
.palette{display:grid;grid-template-columns:240px 1fr;gap:32px;align-items:start}
.tabs{display:grid;gap:6px}
.tab{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:var(--r);padding:10px 12px;font:600 1.02rem var(--f-body);color:var(--ink);cursor:pointer}
.tab:hover{background:var(--hover)}
.tab[aria-selected="true"]{background:var(--sheet);border-color:var(--line)}
.sw{width:18px;height:24px;border-radius:2px;background:var(--c);flex:none;opacity:.85}
.tab small{margin-left:auto;font-family:var(--f-mono);font-size:.72rem;color:var(--ink-2);font-weight:400}
.panel{background:var(--sheet);border:1px solid var(--line);border-radius:10px;padding:clamp(22px,3.5vw,40px);display:grid;grid-template-columns:1fr 200px;gap:32px;min-width:0;position:relative;overflow:hidden}
.panel::before{content:"";position:absolute;inset:0 auto 0 0;width:8px;background:var(--c)}
.panel-txt{display:grid;gap:16px;align-content:start;min-width:0}
.panel h3{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800}
.panel ul{margin:0;padding-left:1.1em;display:grid;gap:6px;color:var(--ink-2)}
.mini{aspect-ratio:105/148;border-radius:4px;background:color-mix(in srgb,var(--c) 30%,var(--sheet));border:1.5px solid var(--c);padding:14px;display:grid;align-content:start;gap:8px;font-family:var(--f-mono);font-size:.74rem}
.mini .card{background:var(--sheet);border-radius:2px;padding:8px;border:1px solid var(--line);display:grid;gap:4px}
.mini .card b{justify-self:end;font-weight:500;border:1px solid var(--ink);border-radius:3px;padding:0 5px}
@media (max-width:860px){.palette{grid-template-columns:1fr}.tabs{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.tab small{display:none}.panel{grid-template-columns:1fr}.mini{max-width:200px}}

/* Ablauf */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.step{padding:28px 28px 32px 0;display:grid;gap:10px;border-bottom:1px solid var(--line);align-content:start}
.step + .step{padding-left:28px;border-left:1px solid var(--line)}
.step:nth-child(3n+1){padding-left:0;border-left:none}
.step .n{font-family:var(--f-mono);font-size:.85rem;color:var(--ink-2)}
.step p{color:var(--ink-2)}
@media (max-width:860px){.steps{grid-template-columns:1fr}.step,.step + .step{padding-left:0;border-left:none}}

/* Warum */
.why{background:var(--ink);color:var(--paper)}
.why .eyebrow,.why .lead{color:color-mix(in srgb,var(--paper) 70%,var(--ink))}
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.why-grid div{display:grid;gap:10px;align-content:start;padding-top:18px;border-top:2px solid var(--c)}
.why-grid p{color:color-mix(in srgb,var(--paper) 72%,var(--ink));font-size:.98rem}
@media (max-width:900px){.why-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.why-grid{grid-template-columns:1fr}}

/* Shop */
.shop-head{display:flex;justify-content:space-between;align-items:end;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--sheet);color:var(--ink);border-radius:999px;padding:7px 14px;font:600 .9rem var(--f-body);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px}
.prod{background:var(--sheet);border:1px solid var(--line);border-radius:10px;overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.prod .pic{aspect-ratio:4/3;background:var(--hover);display:grid;place-items:center;overflow:hidden}
.prod .pic img{width:100%;height:100%;object-fit:cover}
.prod .pic .stack{position:relative;width:46%;aspect-ratio:105/148}
.prod .pic .stack i{position:absolute;inset:0;border-radius:3px;background:color-mix(in srgb,var(--c) 65%,transparent);border:1px solid var(--c)}
.prod .pic .stack i:nth-child(2){translate:10% -6%;rotate:6deg}
.prod .pic .stack i:nth-child(3){translate:20% -12%;rotate:12deg}
.prod .body{padding:16px 18px 18px;display:grid;gap:6px;align-content:space-between}
.prod .cat{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.prod h3{font-size:1.08rem;font-weight:600;line-height:1.25}
.prod .row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}
.price{font-family:var(--f-mono);font-weight:500;font-variant-numeric:tabular-nums}
.price small{display:block;font-size:.7rem;color:var(--ink-2);font-weight:400}
.add{border:1.5px solid var(--ink);background:transparent;color:var(--ink);border-radius:999px;padding:8px 14px;font:700 .88rem var(--f-body);cursor:pointer;white-space:nowrap}
.add:hover{background:var(--ink);color:var(--paper)}
.add.ok{background:var(--c-gruen);border-color:var(--c-gruen);color:#fff}
.vat{margin-top:18px;font-size:.88rem;color:var(--ink-2)}

/* Bestellliste */
.order{margin-top:48px;display:grid;grid-template-columns:1.2fr .8fr;gap:28px;align-items:start}
.order-box{background:var(--sheet);border:1px solid var(--line);border-radius:10px;padding:24px;min-width:0}
.order-box h3{margin-bottom:14px}
.lines{display:grid;gap:0}
.line{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line)}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px}
.qty button{border:0;background:transparent;color:var(--ink);width:30px;height:30px;font-size:1rem;cursor:pointer;border-radius:999px}
.qty button:hover{background:var(--hover)}
.qty span{min-width:22px;text-align:center;font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.line .price{min-width:86px;text-align:right}
.total{display:flex;justify-content:space-between;padding-top:14px;font-weight:700}
.total .price{font-size:1.2rem}
.empty{color:var(--ink-2);padding:14px 0}
.order-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.how{display:grid;gap:12px;font-size:.98rem;color:var(--ink-2)}
.how b{color:var(--ink)}
.mono{font-family:var(--f-mono);font-size:.95rem;color:var(--ink);user-select:all}
.toast{min-height:1.4em;font-size:.9rem;color:var(--c-gruen);font-weight:700}
@media (max-width:860px){.order{grid-template-columns:1fr}}

/* Geschichte */
.story{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:start}
.story-txt{display:grid;gap:18px;color:var(--ink-2);max-width:62ch}
.timeline{display:grid;gap:0;border-left:2px solid var(--line);margin-left:6px}
.timeline div{padding:0 0 26px 24px;position:relative;display:grid;gap:4px}
.timeline div::before{content:"";position:absolute;left:-7px;top:6px;width:12px;height:12px;border-radius:2px;background:var(--c)}
.timeline b{font-family:var(--f-mono);font-weight:500}
.timeline p{color:var(--ink-2)}
@media (max-width:860px){.story{grid-template-columns:1fr}}

/* FAQ */
.faq{display:grid;gap:0;border-top:1px solid var(--line);max-width:860px}
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;padding:20px 0;display:flex;justify-content:space-between;gap:16px;font:600 1.1rem var(--f-display)}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:var(--f-mono);font-weight:400;color:var(--ink-2)}

details p{padding:0 0 22px;color:var(--ink-2);max-width:68ch}

/* Kontakt */
.contact{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.card-c{background:var(--sheet);border:1px solid var(--line);border-radius:10px;padding:clamp(22px,3vw,34px);display:grid;gap:16px;align-content:start;min-width:0}
.kv{display:grid;grid-template-columns:110px 1fr;gap:8px 16px;font-size:1rem}
.kv dt{color:var(--ink-2);font-size:.9rem}
.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.badge{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;font-weight:700;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--c-gelb) 28%,var(--sheet));justify-self:start}
@media (max-width:860px){.contact{grid-template-columns:1fr}.kv{grid-template-columns:1fr;gap:2px}.kv dd{margin-bottom:10px}}

footer{border-top:1px solid var(--line);padding-block:32px;font-size:.88rem;color:var(--ink-2)}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

/* Bewegung: nur wo sie etwas erklärt. Unter prefers-reduced-motion schaltet die Regel oben alles ab. */
:root{--ease-out:cubic-bezier(.16,1,.3,1)}
.btn,.cart-btn,.add,.chip,.tab{transition:transform .25s var(--ease-out),background-color .2s ease,color .2s ease,border-color .2s ease}
.btn:active,.add:active,.chip:active,.cart-btn:active,.tab:active{transform:scale(.97)}
@keyframes rise{from{opacity:0;translate:0 10px}}
@keyframes bump{40%{scale:1.45}}

/* 1 Hero: der Fächer öffnet sich beim Laden, der Zettel gleitet ins rote Mäppchen */
.sleeve{animation:fanOpen .9s var(--ease-out) backwards;animation-delay:calc(var(--i) * 70ms + 150ms)}
@keyframes fanOpen{from{rotate:0deg}}
.note{animation:noteIn .8s var(--ease-out) .85s backwards}
@keyframes noteIn{from{translate:-50% -30%;opacity:.5}}

/* 2 Farblegende: Inhalt baut sich beim Farbwechsel neu auf */
.panel::before{transform-origin:top}
.panel.swap::before{animation:stripe .45s var(--ease-out)}
@keyframes stripe{from{transform:scaleY(0)}}
.panel[data-anim] .panel-txt > *{animation:rise .45s var(--ease-out) backwards;animation-delay:calc(var(--k) * 45ms)}
.panel[data-anim] .mini{animation:sleeveIn .5s var(--ease-out) backwards}
@keyframes sleeveIn{from{opacity:0;translate:14px 0;rotate:3deg}}
.panel[data-anim] .mini .card{animation:cardDrop .5s var(--ease-out) backwards;animation-delay:calc(140ms + var(--k) * 90ms)}
@keyframes cardDrop{from{opacity:0;translate:0 -16px}}
.sw{transition:transform .3s var(--ease-out)}
.tab[aria-selected="true"] .sw{transform:scaleX(1.3)}

/* 3 Scroll: Schritte, Argumente und Zeitleiste rücken beim Einblenden nach */
@supports (animation-timeline: view()){
  .step,.why-grid > div,.timeline > div{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 60%}
}
@keyframes reveal{from{opacity:.25;translate:0 24px}}

/* 4 Shop: Karten heben sich beim Hover, Filterwechsel blendet gestaffelt ein */
.prod{transition:transform .3s var(--ease-out),box-shadow .3s ease}
.prod .pic img{transition:scale .5s var(--ease-out)}
.prod .pic .stack i{transition:rotate .4s var(--ease-out),translate .4s var(--ease-out)}
@media (hover:hover){
  .prod:hover{transform:translateY(-3px);box-shadow:0 16px 30px -22px color-mix(in srgb,var(--ink) 55%,transparent)}
  .prod:hover .pic img{scale:1.04}
  .prod:hover .pic .stack i:nth-child(2){rotate:11deg;translate:14% -8%}
  .prod:hover .pic .stack i:nth-child(3){rotate:22deg;translate:28% -14%}
}
.grid.anim .prod{animation:rise .45s var(--ease-out) backwards;animation-delay:calc(min(var(--i), 8) * 35ms)}

/* 5 Bestellliste: Zähler im Kopf springt, neue Zeile gleitet ein */
.cart-btn b{display:inline-block}
.bump{animation:bump .4s var(--ease-out)}
.line.new{animation:rise .4s var(--ease-out) backwards}
.toast.show{animation:rise .3s var(--ease-out)}

/* 6 Fragen: Plus dreht zum Kreuz, Antwort klappt weich auf */
summary::after{display:inline-block;transition:rotate .3s var(--ease-out)}
details[open] summary::after{rotate:45deg}
@supports selector(::details-content){
  details{interpolate-size:allow-keywords}
  details::details-content{block-size:0;overflow:hidden;transition:block-size .35s var(--ease-out),content-visibility .35s allow-discrete}
  details[open]::details-content{block-size:auto}
}

/* WordPress: Platz für die Admin-Leiste, wenn Sie eingeloggt sind */
.admin-bar .top{top:32px}
@media (max-width:782px){.admin-bar .top{top:46px}}
@media (max-width:600px){.admin-bar .top{top:0}}
