/* =========================================================
   KDS NANNT — main.css
   Struktur und Komponenten. Werte kommen aus tokens.css.
   Helle Seitenführung, dunkel nur für Abschluss-CTA und Footer.
   ========================================================= */

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

/* Eigene display-Regeln duerfen das hidden-Attribut nicht aushebeln.
   Ohne diese Zeile blieben ausgeblendete Buttons sichtbar. */
[hidden]{ display:none !important; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

body{
  margin:0;
  background:var(--bg-light);
  color:var(--ink);
  font:400 var(--fs-body)/var(--lh-body) var(--font-sans);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration-color:var(--line-gold); text-underline-offset:3px; }
a:hover{ text-decoration-color:var(--gold); }
:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; border-radius:4px; }

.kdsn-skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--gold); color:var(--bg-dark); padding:12px 20px;
}
.kdsn-skip:focus{ left:0; }

/* =============== Raster =============== */
.kdsn-wrap{
  width:100%; max-width:var(--container);
  margin-inline:auto; padding-inline:var(--gutter);
}
.kdsn-wrap--wide{ max-width:var(--container-wide); }
.kdsn-wrap--full{ max-width:none; }
.kdsn-wrap--legal{ max-width:var(--container-legal); margin-inline:auto; }
.kdsn-center{ text-align:center; }

/* =============== Typografie =============== */
.kdsn-h2,
.kdsn-hero__title,
.kdsn-pagehero__title,
.kdsn-card__title,
.kdsn-steps__title,
.kdsn-footer__head,
.kdsn-prose h2,
.kdsn-prose h3{
  font-family:var(--font-display);
  font-weight:var(--weight-display);
  line-height:var(--lh-head);
  letter-spacing:var(--track-display);
  margin:0 0 .5em;
}
.kdsn-h2{ font-size:var(--fs-h2); text-wrap:balance; }
.kdsn-hero__title,
.kdsn-pagehero__title{ font-size:var(--fs-h1); }

.kdsn-eyebrow{
  margin:0 0 1rem;
  font:700 11.5px/1.4 var(--font-sans);
  letter-spacing:var(--track-eyebrow);
  text-transform:uppercase;
  color:var(--gold-deep);
}
.kdsn-lead{ font-size:1.0625rem; color:var(--ink-soft); }
.kdsn-lead--inv{ color:var(--ink-soft-inv); }

.kdsn-list{ margin:1.1rem 0; padding:0; list-style:none; }
.kdsn-list li{ position:relative; padding-left:1.4rem; margin-bottom:.5rem; }
.kdsn-list li::before{
  content:""; position:absolute; left:0; top:.78em;
  width:8px; height:2px; background:var(--gold);
}
.kdsn-list--tight li{ margin-bottom:.3rem; font-size:var(--fs-small); }

.kdsn-prose > *{ max-width:var(--container-legal); }
.kdsn-prose h2{ margin-top:2em; }
.kdsn-address{ font-style:normal; }

.kdsn-draftnote{
  margin:2rem 0 0; padding:.9rem 1.1rem;
  border-left:3px solid var(--signal);
  background:rgba(140,47,39,.06);
  font-size:var(--fs-small); line-height:1.6; color:var(--ink-soft);
}

/* =============== Buttons: Pill =============== */
.kdsn-btn{
  display:inline-block;
  border:1px solid transparent;
  border-radius:var(--radius-pill);
  padding:14px 28px;
  font:700 12.5px/1.2 var(--font-sans);
  letter-spacing:var(--track-btn);
  text-transform:uppercase;
  text-decoration:none;
  text-align:center;
  cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.kdsn-btn--gold{ background:var(--gold); color:#fff; }
.kdsn-btn--gold:hover{ background:var(--gold-deep); color:#fff; }

.kdsn-btn--ghost{ background:transparent; color:var(--ink); border-color:var(--line-strong); }
.kdsn-btn--ghost:hover{ background:var(--gold-wash); border-color:var(--gold); color:var(--gold-deep); }

.kdsn-btn--inv{ background:transparent; color:var(--ink-inv); border-color:var(--line-inv); }
.kdsn-btn--inv:hover{ background:rgba(251,248,243,.08); border-color:var(--gold-soft); }

/* Kontextfarben dürfen Buttons nicht überschreiben */
.kdsn-cta :where(a:not(.kdsn-btn)),
.kdsn-footer :where(a:not(.kdsn-btn)){ color:var(--gold-soft); }

/* =============== Header =============== */
.kdsn-header{
  position:sticky; top:0; z-index:100;
  background:rgba(251,248,243,.96);
  backdrop-filter:saturate(150%) blur(8px);
  border-bottom:1px solid var(--line);
}
.kdsn-header__topline{
  height:3px;
  background:linear-gradient(90deg, var(--gold-deep), var(--gold) 45%, var(--gold-soft));
}
.kdsn-header__inner{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:clamp(1rem,2.5vw,2rem);
  min-height:86px;
}
.kdsn-brand{ display:flex; align-items:center; justify-self:start; text-decoration:none; }
.kdsn-nav{ justify-self:center; }
.kdsn-brand__img{ height:54px; width:auto; }
.kdsn-brand img{ height:54px; width:auto; }

.kdsn-nav__list{
  display:flex; align-items:center;
  gap:clamp(.9rem,1.6vw,1.6rem);
  list-style:none; margin:0; padding:0;
  font-size:.94rem; font-weight:500;
}
/* Menuepunkte brechen nicht mehr um */
.kdsn-nav__list > li{ white-space:nowrap; }
.kdsn-nav__list a{ text-decoration:none; padding:.4rem 0; display:inline-block; position:relative; }
.kdsn-nav__list a::after{
  content:""; position:absolute; left:0; right:100%; bottom:.05rem; height:2px;
  background:var(--gold); transition:right .22s ease;
}
.kdsn-nav__list a:hover::after,
.kdsn-nav__list .current-menu-item > a::after{ right:0; }

.kdsn-header__actions{ display:flex; align-items:center; justify-content:flex-end; gap:.65rem; justify-self:end; }
.kdsn-header__call{ padding:11px 20px; white-space:nowrap; }
.kdsn-header__call .kdsn-icon{ width:17px; height:17px; }
.kdsn-header__cta{ white-space:nowrap; padding:12px 22px; }

.kdsn-burger{
  display:none; width:46px; height:46px;
  border:1px solid var(--line-strong); border-radius:var(--radius-pill);
  background:transparent; cursor:pointer;
  flex-direction:column; justify-content:center; align-items:center; gap:5px;
}
.kdsn-burger span{ width:19px; height:2px; background:var(--ink); transition:transform .2s ease, opacity .2s ease; }
.kdsn-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.kdsn-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.kdsn-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* =============== Startseiten-Hero: hell =============== */
.kdsn-hero{
  position:relative; isolation:isolate; overflow:hidden;
  background:var(--bg-light);
  padding:clamp(2.25rem,4vw,3.5rem) 0 clamp(3rem,5vw,5rem);
  border-bottom:1px solid var(--line);
}
/* Der Stierkopf schaut links leicht ins Bild. Er laeuft bewusst ueber den
   Rand hinaus: im Logo ist der Kopf von einer Senkrechten angeschnitten,
   im Anschnitt faellt das nicht auf. */
/* Liegt ueber dem Schleier der Bildfolge, aber unter dem Inhalt */
.kdsn-hero__watermark{
  position:absolute; z-index:-1;
  left:clamp(-190px,-9vw,-90px); top:50%;
  width:clamp(280px,26vw,460px); aspect-ratio:160/313;
  transform:translateY(-50%);
  background:var(--mark) left center / contain no-repeat;
  opacity:.07;
  pointer-events:none;
}

.kdsn-hero__inner{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(2rem,4vw,4.5rem);
  align-items:center;
}
/* Auftaktlogo: zentriert ueber dem Hero-Raster, groesster Auftritt der Marke */
.kdsn-hero__brand{
  display:flex; justify-content:center;
  margin-bottom:clamp(2rem,4vw,3.25rem);
}
.kdsn-hero__logo{
  height:clamp(130px,15vw,260px);
  width:auto;
  margin:0;
}
.kdsn-hero__title{ max-width:16ch; margin:0 0 .5em; text-wrap:balance; }
.kdsn-hero__sub{ color:var(--ink-soft); max-width:54ch; margin:0; font-size:1.075rem; }
.kdsn-hero__actions{
  display:inline-grid;
  grid-auto-flow:column;
  grid-auto-columns:1fr;
  gap:.75rem;
  margin-top:2rem;
}

.kdsn-hero__media{
  position:relative;
  border-radius:var(--radius-card);
  overflow:hidden;
  box-shadow:var(--shadow-lift);
  max-height:min(72vh, 620px);
  justify-self:end;
  width:100%;
}
.kdsn-hero__media.kdsn-ratio--portrait{ aspect-ratio:4/5; }
.kdsn-hero__media img{ width:100%; height:100%; object-fit:cover; }

/* Kennzahlen unter dem Text */
.kdsn-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(1rem,2vw,1.75rem);
  margin-top:2.25rem; padding:1.75rem 0 0;
  border-top:1px solid var(--line);
  list-style:none;
}
.kdsn-facts li{ display:flex; flex-direction:column; gap:.15rem; }
.kdsn-facts b{
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:clamp(1.2rem,1.6vw,1.55rem); line-height:1.1; color:var(--gold-deep);
  letter-spacing:var(--track-display);
}
.kdsn-facts span{ font-size:.85rem; color:var(--ink-soft); line-height:1.45; }

/* =============== Page-Hero: hell, zentriert =============== */
.kdsn-pagehero{
  background:
    radial-gradient(60% 100% at 50% 0%, var(--gold-wash), transparent 72%),
    var(--bg-light);
  padding:clamp(3rem,5.5vw,4.75rem) 0 clamp(2.5rem,4vw,3.5rem);
  text-align:center;
  border-bottom:1px solid var(--line);
}
.kdsn-pagehero__inner{ max-width:760px; margin-inline:auto; }
.kdsn-pagehero__title{ margin:0 0 .45em; }
.kdsn-pagehero__sub{ color:var(--ink-soft); margin:0 auto; max-width:58ch; font-size:1.05rem; text-wrap:pretty; }

/* =============== Sektionen: Zebra =============== */
.kdsn-section{ padding:var(--section-y) 0; }
.kdsn-section--light{ background:var(--bg-light); }
.kdsn-section--tint{ background:var(--bg-tint); }
.kdsn-section--dark{ background:var(--bg-dark); color:var(--ink-inv); }

/* Sektion mit Motiv im Hintergrund: gut sichtbar, aber ueberlagert,
   damit Text und Karten lesbar bleiben. */
.kdsn-section--backdrop{
  position:relative; isolation:isolate; overflow:hidden;
  background:var(--bg-tint);
}
.kdsn-section__backdrop{
  position:absolute; inset:0; z-index:-1; pointer-events:none;
}
.kdsn-section__backdrop::before{
  content:""; position:absolute; inset:0;
  background-image:var(--backdrop);
  background-size:cover;
  background-position:center 40%;
  background-attachment:fixed;
  opacity:.55;
}
.kdsn-section__backdrop::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, var(--bg-tint) 0%, rgba(243,237,226,.62) 22%, rgba(243,237,226,.62) 78%, var(--bg-tint) 100%);
}
/* Karten heben sich vom Motiv ab */
.kdsn-stations .kdsn-steps__item{
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(2px);
  box-shadow:var(--shadow);
}
@media (hover:none){
  .kdsn-section__backdrop::before{ background-attachment:scroll; }
}
.kdsn-section--dark .kdsn-h2{ color:var(--ink-inv); }
.kdsn-section--dark .kdsn-eyebrow{ color:var(--gold-soft); }

.kdsn-sechead{ margin-bottom:clamp(2rem,3.5vw,3rem); }
.kdsn-sechead--center{ text-align:center; max-width:680px; margin-inline:auto; }
.kdsn-sechead--left{ max-width:640px; }
.kdsn-sechead .kdsn-lead{ margin:0; }

/* Vertrauensleiste */
.kdsn-strip{
  background:var(--surface);
  border-bottom:1px solid var(--line);
}
.kdsn-strip__grid{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  gap:var(--gap); padding:clamp(1.75rem,3vw,2.5rem) 0;
}
.kdsn-strip__item{
  display:flex; flex-direction:column; gap:.3rem;
  padding-left:1.1rem; border-left:2px solid var(--gold);
}
.kdsn-strip__item strong{ font-size:1rem; }
.kdsn-strip__item span{ font-size:var(--fs-small); color:var(--ink-soft); line-height:1.55; }

/* =============== Bild-Slots mit festen Ratios =============== */
.kdsn-ratio{ position:relative; overflow:hidden; border-radius:var(--radius-img); background:var(--bg-tint); }
.kdsn-ratio--card{ aspect-ratio:4/3; }
.kdsn-ratio--portrait{ aspect-ratio:4/5; }
.kdsn-ratio--banner{ aspect-ratio:21/9; }
.kdsn-ratio--square{ aspect-ratio:1/1; }
.kdsn-ratio img{ width:100%; height:100%; object-fit:cover; }
.kdsn-ratio:empty{
  background:
    repeating-linear-gradient(115deg, rgba(34,30,25,.035) 0 2px, transparent 2px 10px),
    linear-gradient(150deg, var(--gold-wash), var(--bg-tint));
}

/* =============== Kartenraster =============== */
.kdsn-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 380px));
  justify-content:center;
  gap:var(--gap);
}
.kdsn-card{
  display:flex; flex-direction:column;
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  overflow:hidden;
  box-shadow:var(--shadow);
  transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.kdsn-card:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-lift);
  border-color:var(--line-gold);
}
.kdsn-card__media{ border-radius:0; }
.kdsn-card__img{ transition:transform .5s ease; }
.kdsn-card:hover .kdsn-card__img{ transform:scale(1.04); }

.kdsn-card__body{
  display:flex; flex-direction:column; flex:1;
  gap:.55rem; padding:1.6rem;
}
.kdsn-badge{
  align-self:flex-start; width:max-content;
  padding:5px 12px; border-radius:var(--radius-pill);
  background:var(--gold-wash); color:var(--gold-deep);
  font:700 11px/1.4 var(--font-sans); letter-spacing:.08em; text-transform:uppercase;
}
.kdsn-card__title{ margin:0; font-size:var(--fs-h3); }
.kdsn-card__meta{ margin:0; font-size:var(--fs-small); color:var(--ink-soft); }
.kdsn-card__text{ margin:0; }

.kdsn-card__foot{
  display:flex; flex-wrap:wrap; align-items:center; gap:.9rem;
  margin-top:auto; padding-top:1.2rem;
}
.kdsn-card__price{ margin:0; font:600 .95rem/1.3 var(--font-sans); color:var(--ink-soft); }
.kdsn-card__foot .kdsn-btn{ margin-left:auto; }

/* =============== Split =============== */
.kdsn-split{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(2rem,5vw,5.5rem);
  align-items:center;
}
.kdsn-split__body{ max-width:56ch; }
.kdsn-split + .kdsn-split{ margin-top:clamp(3rem,6vw,6rem); }
.kdsn-split--reverse .kdsn-split__media{ order:2; }
.kdsn-split__media.kdsn-ratio--portrait{
  max-height:min(70vh, 560px);
  justify-self:center;
  width:100%;
}
.kdsn-split__body > :first-child{ margin-top:0; }
.kdsn-split__body .kdsn-btn{ margin-top:1rem; }

/* =============== Prozessschritte =============== */
.kdsn-process{
  display:grid; grid-template-columns:minmax(0,260px) minmax(0,1fr);
  gap:clamp(1.75rem,4vw,3.5rem); align-items:start;
}
.kdsn-process__stat{
  border:1px solid var(--line-gold);
  border-radius:var(--radius-card);
  background:var(--surface);
  padding:1.75rem;
  box-shadow:var(--shadow);
}
.kdsn-process__num{
  display:block;
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:clamp(2.6rem,4.5vw,3.4rem); line-height:1;
  letter-spacing:var(--track-display); color:var(--gold);
}
.kdsn-process__unit{ display:block; margin-top:.35rem; font-weight:600; }
.kdsn-process__hint{
  margin:1.1rem 0 0; padding-top:1.1rem; border-top:1px solid var(--line);
  font-size:var(--fs-small); color:var(--ink-soft);
}

.kdsn-steps{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:var(--gap);
}
.kdsn-steps--four{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.kdsn-steps--three{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.kdsn-steps__item{
  padding:1.5rem 1.4rem;
  border:1px solid var(--line);
  border-top:2px solid var(--gold);
  border-radius:0 0 var(--radius-img) var(--radius-img);
  background:var(--surface);
}
.kdsn-steps__num{
  display:block; margin-bottom:.8rem;
  font:700 .74rem/1 var(--font-sans); letter-spacing:.16em; color:var(--gold-deep);
}
.kdsn-steps__title{ margin:0 0 .25rem; font-size:1.2rem; }
.kdsn-steps__time{
  margin:0 0 .85rem;
  font:700 .74rem/1 var(--font-sans); letter-spacing:.1em; text-transform:uppercase;
  color:var(--gold-deep);
}
.kdsn-steps__item p{ margin:0; font-size:var(--fs-small); line-height:1.65; color:var(--ink-soft); }

/* =============== FAQ =============== */
.kdsn-faq{ max-width:820px; margin-inline:auto; }
.kdsn-faq__item{ border-bottom:1px solid var(--line); }
.kdsn-faq__q{
  cursor:pointer; list-style:none;
  padding:1.15rem 2.5rem 1.15rem 0; position:relative;
  font-family:var(--font-display); font-size:1.05rem; font-weight:700;
  letter-spacing:-.01em;
}
.kdsn-faq__q::-webkit-details-marker{ display:none; }
.kdsn-faq__q::after{
  content:""; position:absolute; right:.4rem; top:50%;
  width:11px; height:11px; margin-top:-7px;
  border-right:2px solid var(--gold); border-bottom:2px solid var(--gold);
  transform:rotate(45deg); transition:transform .2s ease;
}
.kdsn-faq__item[open] .kdsn-faq__q::after{ transform:rotate(-135deg); margin-top:-3px; }
.kdsn-faq__a{ padding:0 0 1.3rem; }
.kdsn-faq__a p{ margin:0; color:var(--ink-soft); max-width:70ch; }

/* =============== Galerie =============== */
.kdsn-gallery{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(250px,340px));
  justify-content:center;
  gap:var(--gap);
}
.kdsn-gallery__item{
  padding:0; border:1px solid var(--line); cursor:pointer;
  background:none; box-shadow:var(--shadow);
  transition:transform .25s ease, box-shadow .25s ease;
}
.kdsn-gallery__item:hover{ transform:translateY(-3px); box-shadow:var(--shadow-lift); }

.kdsn-lightbox{
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:center; justify-content:center;
  background:rgba(21,18,14,.94); padding:var(--gutter);
}
.kdsn-lightbox[hidden]{ display:none; }
.kdsn-lightbox__img{
  max-width:min(1100px,92vw); max-height:82vh;
  width:auto; height:auto; border-radius:var(--radius-img);
}
.kdsn-lightbox__bar{
  position:absolute; left:0; right:0; bottom:clamp(1rem,4vw,2.5rem);
  display:flex; justify-content:center; align-items:center; gap:1rem;
  color:var(--ink-soft-inv); font-size:var(--fs-small);
}
.kdsn-lightbox__btn{
  border:1px solid var(--line-inv); background:transparent; color:var(--ink-inv);
  border-radius:var(--radius-pill); padding:10px 18px; cursor:pointer;
  font:700 12px/1 var(--font-sans); letter-spacing:var(--track-btn); text-transform:uppercase;
}
.kdsn-lightbox__btn:hover{ border-color:var(--gold); color:var(--gold-soft); }
.kdsn-lightbox__close{ position:absolute; top:clamp(1rem,3vw,2rem); right:clamp(1rem,3vw,2rem); }

/* =============== Einwilligung =============== */
.kdsn-consentbar{
  position:fixed; z-index:200;
  left:clamp(.75rem,2vw,1.5rem); right:clamp(.75rem,2vw,1.5rem);
  bottom:clamp(.75rem,2vw,1.5rem);
  background:var(--surface);
  border:1px solid var(--line-gold);
  border-radius:var(--radius-card);
  box-shadow:0 18px 50px rgba(34,30,25,.22);
  opacity:0; transform:translateY(14px);
  transition:opacity .22s ease, transform .22s ease;
}
.kdsn-consentbar.is-open{ opacity:1; transform:translateY(0); }
.kdsn-consentbar__inner{
  max-width:var(--container); margin-inline:auto;
  padding:clamp(1.1rem,2.5vw,1.75rem);
  display:grid; gap:1rem;
}
.kdsn-consentbar__title{
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:1.05rem; letter-spacing:var(--track-display);
  margin:0 0 .35rem;
}
.kdsn-consentbar__text p{ margin:0; font-size:var(--fs-small); line-height:1.6; max-width:80ch; }
.kdsn-consentbar__choices{ display:grid; gap:.75rem; }
.kdsn-consentbar__choice{
  display:flex; align-items:flex-start; gap:.7rem;
  padding:.85rem 1rem;
  border:1px solid var(--line); border-radius:12px;
  background:var(--bg-light);
  font-size:var(--fs-small); cursor:pointer;
}
.kdsn-consentbar__choice input{
  width:20px; height:20px; margin-top:.15rem; flex:0 0 auto; accent-color:var(--gold);
}
.kdsn-consentbar__choice input:disabled{ opacity:.5; }
.kdsn-consentbar__choice strong{ display:block; margin-bottom:.15rem; }
.kdsn-consentbar__choice span span{ color:var(--ink-soft); line-height:1.55; }
.kdsn-consentbar__actions{
  display:flex; flex-wrap:wrap; gap:.6rem; align-items:center;
}
.kdsn-consentbar__more{
  border:0; background:none; cursor:pointer;
  font:600 var(--fs-small)/1 var(--font-sans);
  color:var(--ink-soft); text-decoration:underline;
  text-underline-offset:3px; padding:.6rem;
}
.kdsn-consentbar__more:hover{ color:var(--gold-deep); }

.kdsn-consentlink{
  border:0; background:none; cursor:pointer; padding:0;
  color:var(--gold-soft); font:inherit; font-size:.85rem;
  text-decoration:underline; text-underline-offset:3px;
}
.kdsn-consentlink:hover{ color:var(--ink-inv); }

@media (max-width:640px){
  .kdsn-consentbar__actions .kdsn-btn{ flex:1 1 100%; }
}

/* =============== Rechtstexte =============== */
.kdsn-gap{
  background:rgba(140,47,39,.12);
  color:var(--signal);
  padding:2px 6px; border-radius:4px;
  font-weight:600;
}
.kdsn-legalbox{
  border:1px solid var(--line);
  border-radius:var(--radius-img);
  background:var(--bg-light);
  padding:1.25rem 1.4rem;
  margin:1.5rem 0;
}
.kdsn-legalbox p{ margin:0 0 .8rem; }
.kdsn-legalbox p:last-child{ margin-bottom:0; }
.kdsn-prose h2{ margin-top:2.2em; }
.kdsn-prose ul{ margin:1rem 0; padding-left:1.4rem; }
.kdsn-prose li{ margin-bottom:.4rem; }

/* =============== Bildfolge im Hintergrund =============== */
/*
   Vier Aufnahmen blenden hinter dem gesamten Hero ineinander und fahren
   dabei langsam heran. Ein Durchlauf dauert 20 Sekunden, jedes Bild
   steht also 5 Sekunden. Darueber liegt ein Schleier, der den
   Textkontrast haelt.
*/
.kdsn-hero.has-slideshow{ position:relative; isolation:isolate; overflow:hidden; }

.kdsn-slideshow{
  position:absolute; inset:0; z-index:-2;
  pointer-events:none;
}
.kdsn-slideshow__frame{
  position:absolute; inset:0;
  opacity:0;
  animation:kdsn-fade 20s linear infinite;
  animation-delay:calc(var(--nr) * 5s);
  will-change:opacity;
}
.kdsn-slideshow__img{
  width:100%; height:100%;
  object-fit:cover; display:block;
  animation:kdsn-zoom 20s ease-in-out infinite;
  animation-delay:calc(var(--nr) * 5s);
  transform-origin:center 45%;
  will-change:transform;
}

/* Schleier ueber der Bildfolge */
.kdsn-hero.has-slideshow::before{
  content:""; position:absolute; inset:0; z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(180deg, rgba(251,248,243,.62) 0%, rgba(251,248,243,.52) 55%, var(--bg-light) 100%),
    radial-gradient(52% 50% at 22% 48%, rgba(251,248,243,.84), rgba(251,248,243,.22) 78%);
}

@keyframes kdsn-fade{
  0%    { opacity:0; }
  3%    { opacity:1; }
  25%   { opacity:1; }
  28%   { opacity:0; }
  100%  { opacity:0; }
}
@keyframes kdsn-zoom{
  0%    { transform:scale(1.00); }
  28%   { transform:scale(1.07); }
  100%  { transform:scale(1.07); }
}

/* Reduzierte Bewegung: nur das erste Bild, stillstehend */
@media (prefers-reduced-motion:reduce){
  .kdsn-slideshow__frame{ animation:none; opacity:0; }
  .kdsn-slideshow__frame:first-child{ opacity:1; }
  .kdsn-slideshow__img{ animation:none; transform:none; }
}

/* Auf schmalen Schirmen zurueckhaltender, dort liegt der Text eng darauf */
@media (max-width:1000px){
  .kdsn-hero.has-slideshow::before{
    background:
      linear-gradient(180deg, rgba(251,248,243,.86) 0%, rgba(251,248,243,.80) 60%, var(--bg-light) 100%);
  }
}

/* =============== Karussell =============== */
.kdsn-carousel{ position:relative; }
.kdsn-carousel__track{
  display:grid; grid-auto-flow:column;
  grid-auto-columns:minmax(240px, 300px);
  gap:var(--gap);
  overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  padding-bottom:.5rem;
  scrollbar-width:none;
}
.kdsn-carousel__track::-webkit-scrollbar{ display:none; }
.kdsn-carousel__slide{
  margin:0; scroll-snap-align:center;
}
.kdsn-carousel__slide .kdsn-ratio{
  display:block;
  box-shadow:var(--shadow);
  border:1px solid var(--line);
}
.kdsn-carousel__img{ width:100%; height:100%; object-fit:cover; }
.kdsn-carousel figcaption{
  margin-top:.7rem; font-size:12.5px; line-height:1.5; color:var(--ink-soft);
}
.kdsn-carousel__nav{
  display:flex; align-items:center; justify-content:center; gap:1rem;
  margin-top:clamp(1.25rem,2.5vw,2rem);
}
.kdsn-carousel__btn{
  width:46px; height:46px; flex:0 0 auto;
  border:1px solid var(--line-strong); border-radius:50%;
  background:var(--surface); color:var(--ink);
  font-size:22px; line-height:1; cursor:pointer;
  display:grid; place-items:center;
  transition:background .18s ease, border-color .18s ease, color .18s ease;
}
.kdsn-carousel__btn:hover{ background:var(--gold); border-color:var(--gold); color:#fff; }
.kdsn-carousel__dots{ display:flex; gap:.45rem; }
.kdsn-carousel__dot{
  width:9px; height:9px; padding:0; border:0; border-radius:50%;
  background:var(--line-strong); cursor:pointer;
  transition:background .18s ease, transform .18s ease;
}
.kdsn-carousel__dot.is-active{ background:var(--gold); transform:scale(1.3); }

/* =============== Video =============== */
.kdsn-video{
  position:relative;
  border-radius:var(--radius-card);
  overflow:hidden;
  background:var(--bg-dark);
  box-shadow:var(--shadow-lift);
  max-height:min(72vh, 620px);
  display:grid;
}
.kdsn-video__el{
  width:100%; height:100%; max-height:min(72vh,620px);
  object-fit:cover; display:block;
}
.kdsn-video__play{
  position:absolute; inset:0; margin:auto;
  width:74px; height:74px;
  border:0; border-radius:50%;
  background:rgba(251,248,243,.92);
  cursor:pointer;
  display:grid; place-items:center;
  box-shadow:0 10px 30px rgba(26,22,17,.35);
  transition:transform .2s ease, background .2s ease, opacity .2s ease;
}
.kdsn-video__play span{
  width:0; height:0; margin-left:5px;
  border-left:20px solid var(--gold-deep);
  border-top:13px solid transparent;
  border-bottom:13px solid transparent;
}
.kdsn-video__play:hover{ transform:scale(1.06); background:#fff; }
.kdsn-video.is-playing .kdsn-video__play{ opacity:0; pointer-events:none; }
.kdsn-split--film .kdsn-split__media{ justify-self:center; width:100%; }

/* =============== Preistabelle =============== */
.kdsn-pricetable{
  width:100%; border-collapse:collapse; margin:1.25rem 0;
  font-size:var(--fs-small);
}
.kdsn-pricetable th,
.kdsn-pricetable td{
  text-align:left; padding:.7rem .9rem;
  border-bottom:1px solid var(--line);
}
.kdsn-pricetable th{ font-weight:700; background:var(--bg-tint); }
.kdsn-pricetable td:last-child,
.kdsn-pricetable th:last-child{ text-align:right; white-space:nowrap; }

/* Paketpreis in der Auswahl */
.kdsn-package__price{
  display:block; margin-top:.5rem;
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:1rem; letter-spacing:var(--track-display);
  color:var(--gold-deep);
}
.kdsn-package__price small{
  display:block; margin-top:.15rem;
  font-family:var(--font-sans); font-weight:400; font-size:11.5px;
  letter-spacing:0; color:var(--ink-soft);
}
.kdsn-packagepanel__hint{
  margin:0 0 1.25rem; padding:.8rem 1rem;
  border-left:3px solid var(--gold);
  background:var(--gold-wash);
  font-size:var(--fs-small); line-height:1.6;
}
.kdsn-summary__shipping{
  margin:.25rem 0 .8rem; font-size:12.5px; color:var(--ink-soft);
}

/* =============== Karte =============== */
.kdsn-map{
  border-radius:var(--radius-card);
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--bg-tint);
  min-height:320px;
  display:grid;
}
.kdsn-map__preview{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.9rem; padding:clamp(1.5rem,3vw,2.5rem); text-align:center;
  background:
    repeating-linear-gradient(90deg, rgba(34,30,25,.05) 0 1px, transparent 1px 42px),
    repeating-linear-gradient(0deg, rgba(34,30,25,.05) 0 1px, transparent 1px 42px),
    var(--bg-tint);
}
.kdsn-map__pin{
  width:26px; height:26px; flex:0 0 auto;
  border-radius:50% 50% 50% 0;
  transform:rotate(-45deg);
  background:var(--gold);
  box-shadow:0 6px 16px rgba(34,30,25,.18);
}
.kdsn-map__pin::after{
  content:""; display:block;
  width:9px; height:9px; margin:8.5px 0 0 8.5px;
  border-radius:50%; background:var(--bg-tint);
}
.kdsn-map__text{
  margin:0; max-width:38ch;
  font-size:var(--fs-small); color:var(--ink-soft); line-height:1.6;
}
.kdsn-map__hint{ margin:0; font-size:var(--fs-small); }
.kdsn-map__frame{
  width:100%; height:100%; min-height:360px; border:0; display:block;
}
.kdsn-map.is-loaded{ background:var(--surface); }

.kdsn-address--gross{
  font-size:1.05rem; line-height:1.7; font-weight:600;
  margin-bottom:1rem;
}

/* =============== Einwilligungsblock =============== */
.kdsn-consent{
  margin-top:1.5rem; padding:1.5rem;
  border:1px dashed var(--line-gold); border-radius:var(--radius-img);
  background:var(--surface); text-align:center;
}
.kdsn-consent p{ margin:0; color:var(--ink-soft); font-size:var(--fs-small); }

/* =============== Abschluss-CTA (dunkel) =============== */
.kdsn-cta{
  background:var(--bg-dark); color:var(--ink-inv);
  padding:var(--section-y) 0;
}
.kdsn-cta__inner{ text-align:center; max-width:700px; margin-inline:auto; }
.kdsn-cta__logo{
  height:clamp(84px,9vw,128px); width:auto;
  margin:0 auto clamp(1.5rem,3vw,2.25rem);
}
.kdsn-cta .kdsn-h2{ color:var(--ink-inv); }
.kdsn-cta__actions{
  display:inline-grid;
  grid-auto-flow:column;
  grid-auto-columns:1fr;
  gap:.75rem;
  margin-top:1.75rem;
}

/* =============== Footer (dunkel, volle Breite) =============== */
.kdsn-footer{
  background:var(--bg-deep); color:var(--ink-soft-inv);
  padding:clamp(3rem,5vw,4.5rem) 0 0;
}
/* Zwischen Abschluss-CTA und Footer nur eine feine Linie, kein Farbsprung */
.kdsn-cta + .kdsn-footer{ border-top:1px solid var(--line-inv); }
/* Fuenf Spalten: die letzte fuellt die Flaeche, die bei voller Breite
   sonst rechts leer bleibt. */
.kdsn-footer__grid{
  display:grid;
  grid-template-columns:
    minmax(0,1.3fr)
    minmax(0,1fr)
    minmax(0,1fr)
    minmax(0,.9fr)
    minmax(0,1.1fr);
  gap:clamp(1.75rem,3vw,3rem);
}
.kdsn-footer__note{ margin:0 0 1rem; max-width:34ch; }
.kdsn-footer__col--social .kdsn-socialrow{
  flex-direction:column; align-items:stretch;
}
.kdsn-footer__col--social .kdsn-btn{ justify-content:flex-start; }
.kdsn-footer__logo{ height:70px; width:auto; margin-bottom:1.25rem; }
.kdsn-footer__head{
  font-size:1rem; color:var(--ink-inv); margin:0 0 .8rem;
}
.kdsn-footer__col{ font-size:var(--fs-small); }
.kdsn-footer__claim{ max-width:34ch; margin:0 0 1rem; }
.kdsn-footer__hours{ color:var(--gold-soft); font-weight:600; }
.kdsn-footer__links{ list-style:none; margin:0; padding:0; }
.kdsn-footer__links li{ margin-bottom:.45rem; }
.kdsn-footer__social{ display:inline-block; margin-top:.4rem; font-weight:600; }

.kdsn-footer__base{
  /* padding-block statt padding, sonst faellt der seitliche
     Abstand des Containers weg und die Links kleben am Rand */
  margin-top:3rem;
  padding-block:1.5rem clamp(3rem,6vw,4rem);
  border-top:1px solid var(--line-inv);
  display:flex; flex-wrap:wrap; gap:1rem 1.5rem;
  justify-content:space-between; align-items:center;
  font-size:.85rem;
}
.kdsn-footer__legal{
  display:flex; flex-wrap:wrap; gap:.75rem 1.35rem;
  list-style:none; margin:0; padding:0;
}
.kdsn-footer__by{ margin:0; padding-right:clamp(0px,14vw,220px); }
.kdsn-footer__sep{ margin:0 .4rem; opacity:.5; }


/* =============== Buttons mit Icon =============== */
.kdsn-btn--icon{
  display:inline-flex; align-items:center; gap:.6rem;
}
.kdsn-icon{ flex:0 0 auto; }

.kdsn-socialrow{
  display:flex; flex-wrap:wrap; gap:.6rem;
  margin-top:.4rem;
}
.kdsn-socialrow .kdsn-btn{ padding:11px 20px; font-size:11.5px; }

/* =============== Feste Kontaktlasche =============== */
.kdsn-rail{
  position:fixed; right:clamp(.75rem,2vw,1.5rem); bottom:clamp(.75rem,2vw,1.5rem);
  z-index:90;
  display:flex; flex-direction:column; gap:.6rem;
  align-items:flex-end;
}
.kdsn-rail__btn{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:12px 18px;
  border-radius:var(--radius-pill);
  border:1px solid transparent;
  background:var(--bg-dark); color:var(--ink-inv);
  text-decoration:none;
  font:700 12px/1 var(--font-sans);
  letter-spacing:var(--track-btn); text-transform:uppercase;
  box-shadow:var(--shadow-lift);
  transition:background .2s ease, color .2s ease, transform .2s ease;
}
.kdsn-rail__btn:hover{ transform:translateY(-2px); }

/* Beim Footer verschwindet die Lasche, damit sie Impressumszeile
   und Agenturhinweis nicht ueberdeckt. */
.kdsn-rail{
  transition:opacity .25s ease, transform .25s ease, visibility .25s;
}
.kdsn-rail.is-hidden{
  opacity:0;
  visibility:hidden;
  transform:translateY(14px);
  pointer-events:none;
}
.kdsn-rail__btn--whatsapp{ background:var(--gold); color:#fff; }
.kdsn-rail__btn--whatsapp:hover{ background:var(--gold-deep); }
.kdsn-rail__btn--instagram{ background:var(--bg-dark); color:var(--ink-inv); border-color:var(--line-inv); }
.kdsn-rail__btn--instagram:hover{ border-color:var(--gold-soft); color:var(--gold-soft); }

/* Auf schmalen Schirmen nur die Symbole, damit nichts den Inhalt verdeckt */
@media (max-width:640px){
  .kdsn-rail__btn{ padding:13px; }
  .kdsn-rail__btn span{
    position:absolute; width:1px; height:1px;
    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;
  }
  .kdsn-socialrow{ flex-direction:column; align-items:stretch; }
  .kdsn-socialrow .kdsn-btn{ justify-content:center; }
}


/* =============== Inhalte aus den Kundentexten =============== */

/* Untertitel innerhalb einer Spalte */
.kdsn-h3{
  font-family:var(--font-display);
  font-weight:var(--weight-display);
  font-size:var(--fs-h3);
  letter-spacing:var(--track-display);
  margin:1.75rem 0 .75rem;
}

/* Paketinhalt: Bezeichnung fett, Detail darunter */
.kdsn-speclist{ list-style:none; margin:0; padding:0; }
.kdsn-speclist li{
  display:flex; flex-direction:column; gap:.15rem;
  padding:.75rem 0 .75rem 1.4rem;
  border-bottom:1px solid var(--line);
  position:relative;
}
.kdsn-speclist li:last-child{ border-bottom:0; }
.kdsn-speclist li::before{
  content:""; position:absolute; left:0; top:1.35em;
  width:8px; height:2px; background:var(--gold);
}
.kdsn-speclist strong{ font-weight:600; }
.kdsn-speclist span{ font-size:var(--fs-small); color:var(--ink-soft); }

/* Sortenlisten als Chips */
.kdsn-tags{
  display:flex; flex-wrap:wrap; gap:.5rem;
  list-style:none; margin:.75rem 0 0; padding:0;
}
.kdsn-tags li{
  padding:7px 14px;
  border:1px solid var(--line-gold);
  border-radius:var(--radius-pill);
  background:var(--surface);
  font-size:var(--fs-small);
}

/* Sortimentsgruppen unter dem Split */
.kdsn-sortiment{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:clamp(1.5rem,3vw,2.5rem);
  margin-top:clamp(2rem,4vw,3rem);
  padding-top:clamp(1.75rem,3vw,2.5rem);
  border-top:1px solid var(--line);
}
.kdsn-sortiment__title{
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:1.1rem; letter-spacing:var(--track-display);
  margin:0 0 .3rem;
}
.kdsn-sortiment__sub{ margin:0; font-size:var(--fs-small); color:var(--ink-soft); }

/* Prozessstationen auf Ueber uns */
.kdsn-station__num{
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:clamp(2rem,3.5vw,2.8rem); line-height:1;
  color:var(--gold); letter-spacing:var(--track-display);
  margin:0 0 .5rem;
}
.kdsn-station__time{
  font:700 .78rem/1.4 var(--font-sans);
  letter-spacing:.1em; text-transform:uppercase;
  color:var(--gold-deep); margin:0 0 1.1rem;
}
.kdsn-station .kdsn-split__body > p{ max-width:60ch; }

/* Preisangabe im Fliesstext */
.kdsn-price{
  margin:1.5rem 0 1.25rem;
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:1.35rem; letter-spacing:var(--track-display);
  color:var(--gold-deep);
}
.kdsn-price small{
  display:block; margin-top:.3rem;
  font-family:var(--font-sans); font-weight:400; font-size:12.5px;
  letter-spacing:0; color:var(--ink-soft);
}

/* Redaktioneller Kurzhinweis im Fliesstext */
.kdsn-note{
  font-size:var(--fs-small); color:var(--ink-soft);
  border-left:2px solid var(--line-gold); padding-left:.9rem;
}

/* Fuenf Prozessschritte auf der Startseite */
.kdsn-steps--five{ grid-template-columns:repeat(5,minmax(0,1fr)); }
.kdsn-steps__more{ margin-top:clamp(1.75rem,3vw,2.5rem); }

/* g.g.A.-Siegel */
.kdsn-seal{
  display:grid; grid-template-columns:minmax(0,220px) minmax(0,1fr);
  gap:clamp(1.5rem,3vw,3rem); align-items:center;
}
.kdsn-seal__media{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius-card);
  padding:1.5rem;
}
.kdsn-seal__img{ width:100%; height:auto; }
.kdsn-seal__body > :first-child{ margin-top:0; }
.kdsn-seal__body .kdsn-btn{ margin-top:.75rem; }

/* Produktaufnahmen mit Bildunterschrift */
.kdsn-produkte{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,320px));
  justify-content:center;
  gap:var(--gap);
}
.kdsn-produkte__item{ margin:0; }
.kdsn-produkte figcaption{
  margin-top:.7rem;
  font-weight:600; font-size:var(--fs-small);
}

@media (max-width:1120px){
  .kdsn-steps--five{ grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:860px){
  .kdsn-steps--five{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kdsn-seal{ grid-template-columns:1fr; }
  .kdsn-seal__media{ max-width:260px; }
}
@media (max-width:640px){
  .kdsn-steps--five{ grid-template-columns:1fr; }
}


/* =============== Bestellstrecke =============== */
.kdsn-order{ scroll-margin-top:110px; }


/* ---- Paketauswahl ---- */
.kdsn-packages{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:.75rem;
}
.kdsn-package{ position:relative; display:block; cursor:pointer; }
.kdsn-package input{ position:absolute; opacity:0; width:0; height:0; }
.kdsn-package__body{
  display:block; height:100%;
  border:1px solid var(--line); border-radius:var(--radius-img);
  background:var(--surface); overflow:hidden;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.kdsn-package input:checked + .kdsn-package__body{
  border-color:var(--gold);
  box-shadow:0 0 0 2px var(--gold-wash);
}
.kdsn-package input:focus-visible + .kdsn-package__body{ outline:2px solid var(--gold); outline-offset:2px; }
.kdsn-package__body:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lift); }
.kdsn-package__media{ display:block; border-radius:0; }
.kdsn-package__text{ display:block; padding:.9rem 1rem 1.1rem; }
.kdsn-package__claim{
  display:block;
  font:700 10.5px/1.4 var(--font-sans);
  letter-spacing:var(--track-eyebrow); text-transform:uppercase;
  color:var(--gold-deep); margin-bottom:.2rem;
}
.kdsn-package__title{ display:block; font-size:1rem; margin-bottom:.25rem; }
.kdsn-package__meta{ display:block; font-size:12.5px; color:var(--ink-soft); }

/* ---- Panels je Paket ---- */
.kdsn-packagepanel[hidden]{ display:none; }
.kdsn-packagepanel + .kdsn-packagepanel{ margin-top:2rem; }
.kdsn-packagepanel__head{
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:1.05rem; letter-spacing:var(--track-display);
  margin:0 0 1rem; padding-bottom:.6rem;
  border-bottom:1px solid var(--line);
}
/* Mit JavaScript uebernimmt die Paketwahl die Beschriftung */
.kdsn-order.is-enhanced .kdsn-packagepanel__head{ display:none; }

.kdsn-summary__img[hidden]{ display:none; }

/* =============== Geöffnet-Hinweis =============== */
.kdsn-openstate{
  display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(1.5rem,3vw,3rem);
  align-items:center;
  border:1px solid var(--line-gold);
  border-radius:var(--radius-card);
  background:var(--surface);
  padding:clamp(1.5rem,3vw,2.5rem);
  box-shadow:var(--shadow);
}
.kdsn-openstate__label{
  display:flex; align-items:center; gap:.6rem;
  margin:0 0 .4rem;
  font:700 12px/1.4 var(--font-sans);
  letter-spacing:var(--track-eyebrow); text-transform:uppercase;
  color:#1a7f37;
}
.kdsn-openstate__dot{
  width:10px; height:10px; border-radius:50%;
  background:#1a7f37; flex:0 0 auto;
  box-shadow:0 0 0 0 rgba(26,127,55,.45);
  animation:kdsn-puls 2.4s ease-out infinite;
}
@keyframes kdsn-puls{
  0%   { box-shadow:0 0 0 0 rgba(26,127,55,.45); }
  70%  { box-shadow:0 0 0 12px rgba(26,127,55,0); }
  100% { box-shadow:0 0 0 0 rgba(26,127,55,0); }
}
.kdsn-openstate__time{
  margin:0;
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:clamp(2.4rem,5vw,3.6rem); line-height:1;
  letter-spacing:var(--track-display);
}
.kdsn-openstate__time time{ font-variant-numeric:tabular-nums; }
.kdsn-openstate__note{ margin:.8rem 0 0; color:var(--ink-soft); font-size:var(--fs-small); }
.kdsn-openstate__meta{
  border-left:1px solid var(--line);
  padding-left:clamp(1.5rem,3vw,2.5rem);
}
.kdsn-openstate__head{
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:1.05rem; letter-spacing:var(--track-display);
  margin:0 0 .6rem;
}
.kdsn-openstate__meta address{ margin-bottom:1rem; font-size:var(--fs-small); line-height:1.7; }

@media (max-width:860px){
  .kdsn-openstate{ grid-template-columns:1fr; }
  .kdsn-openstate__meta{ border-left:0; border-top:1px solid var(--line); padding:1.5rem 0 0; }
}

/* =============== Anschriften =============== */
.kdsn-addresses{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:clamp(1.25rem,2.5vw,2rem);
  margin-top:1.75rem; padding-top:1.5rem;
  border-top:1px solid var(--line);
}
.kdsn-addresses__head{
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:.95rem; letter-spacing:var(--track-display);
  margin:0 0 .45rem;
}
.kdsn-addresses__item p,
.kdsn-addresses__item address{ margin:0; font-size:var(--fs-small); line-height:1.7; }
.kdsn-addresses__note{ color:var(--gold-deep); font-weight:600; margin-top:.4rem !important; }

/* =============== Instagram =============== */
.kdsn-ig__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,290px));
  justify-content:center;
  gap:clamp(.9rem,1.6vw,1.4rem);
}
.kdsn-ig__item{
  display:block; text-decoration:none;
  border-radius:var(--radius-img); overflow:hidden;
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.kdsn-ig__item:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow-lift);
  border-color:var(--line-gold);
}
.kdsn-ig__media{ display:block; border-radius:0; position:relative; }

/* Kennzeichnung fuer Reels, Videos und Beitraege mit mehreren Bildern */
.kdsn-ig__badge{
  position:absolute; top:.6rem; right:.6rem;
  width:30px; height:30px;
  display:grid; place-items:center;
  border-radius:50%;
  background:rgba(26,22,17,.62);
  color:#fff;
  backdrop-filter:blur(3px);
}
.kdsn-ig__badge .kdsn-icon{ width:15px; height:15px; }
.kdsn-ig__badge--reel .kdsn-icon,
.kdsn-ig__badge--video .kdsn-icon{ margin-left:2px; }

/* Nur fuer Screenreader */
.screen-reader-text{
  position:absolute !important;
  width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap;
}
.kdsn-ig__media img{ transition:transform .5s ease; }
.kdsn-ig__item:hover .kdsn-ig__media img{ transform:scale(1.05); }
.kdsn-ig__caption{
  display:block; padding:.75rem .9rem 1rem;
  font-size:12.5px; line-height:1.5; color:var(--ink-soft);
}
.kdsn-ig__more{ margin-top:clamp(1.75rem,3vw,2.5rem); }

/* ---- Fortschritt ---- */
.kdsn-progress{
  display:flex; flex-wrap:wrap; gap:.5rem;
  list-style:none; margin:0 0 clamp(1.5rem,3vw,2.25rem); padding:0;
  counter-reset:none;
}
.kdsn-progress__item{
  display:flex; align-items:center; gap:.6rem;
  flex:1 1 140px;
  padding:.7rem .9rem;
  border:1px solid var(--line);
  border-radius:var(--radius-pill);
  background:var(--bg-light);
  font-size:var(--fs-small); font-weight:600;
  color:var(--ink-soft);
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}
.kdsn-progress__num{
  display:grid; place-items:center;
  width:26px; height:26px; flex:0 0 auto;
  border-radius:50%;
  background:var(--surface); border:1px solid var(--line-strong);
  font-size:12.5px; line-height:1;
}
.kdsn-progress__item.is-active{
  background:var(--gold-wash); border-color:var(--gold); color:var(--ink);
}
.kdsn-progress__item.is-active .kdsn-progress__num{
  background:var(--gold); border-color:var(--gold); color:#fff;
}
.kdsn-progress__item.is-done{ color:var(--gold-deep); border-color:var(--line-gold); }
.kdsn-progress__item.is-done .kdsn-progress__num{
  background:var(--gold-deep); border-color:var(--gold-deep); color:#fff;
}

/* ---- Aufteilung ---- */
.kdsn-order__layout{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,300px);
  gap:clamp(1.5rem,3vw,2.5rem);
  align-items:start;
}
.kdsn-order__main{ min-width:0; }

/* ---- Schritte ---- */
.kdsn-step + .kdsn-step{ margin-top:clamp(2rem,4vw,3rem); }
.kdsn-order.is-enhanced .kdsn-step{ display:none; }
.kdsn-order.is-enhanced .kdsn-step.is-current{ display:block; }
.kdsn-order.is-enhanced .kdsn-step + .kdsn-step{ margin-top:0; }

.kdsn-step__title{
  display:flex; align-items:center; gap:.7rem;
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:1.2rem; letter-spacing:var(--track-display);
  margin:0 0 1.25rem;
}
.kdsn-step__badge{
  display:grid; place-items:center;
  width:30px; height:30px; flex:0 0 auto;
  border-radius:50%; background:var(--gold); color:#fff;
  font-size:14px; font-weight:700;
}
.kdsn-order.is-enhanced .kdsn-step__badge{ display:none; }

/* ---- Fester Inhalt ---- */
.kdsn-fixed{
  border:1px solid var(--line);
  border-radius:var(--radius-img);
  background:var(--bg-light);
  padding:1.1rem 1.25rem;
  margin-bottom:1.75rem;
}
.kdsn-fixed__head{
  margin:0 0 .7rem;
  font:700 11px/1.4 var(--font-sans);
  letter-spacing:var(--track-eyebrow); text-transform:uppercase;
  color:var(--gold-deep);
}
.kdsn-fixed__list{ list-style:none; margin:0; padding:0; display:grid; gap:.45rem; }
.kdsn-fixed__list li{
  display:flex; flex-wrap:wrap; gap:.2rem .6rem;
  font-size:var(--fs-small); line-height:1.5;
}
.kdsn-fixed__list span{ color:var(--ink-soft); }

/* ---- Auswahlgruppen ---- */
.kdsn-picker{
  border:1px solid var(--line);
  border-radius:var(--radius-img);
  padding:1.1rem 1.25rem 1.25rem;
  margin:0 0 1.5rem;
  min-width:0;
  transition:border-color .2s ease;
}
.kdsn-picker.is-complete{ border-color:var(--line-gold); }
.kdsn-picker__legend{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem .9rem;
  padding:0;
}
.kdsn-picker__label{ font-weight:700; font-size:1rem; }
.kdsn-picker__counter{
  font-size:12.5px; font-weight:700;
  letter-spacing:.04em;
  padding:3px 10px; border-radius:var(--radius-pill);
  background:var(--bg-tint); color:var(--ink-soft);
}
.kdsn-picker__counter.is-complete{ background:var(--gold); color:#fff; }
.kdsn-picker .kdsn-hint{ margin:.5rem 0 1rem; }

.kdsn-picker__options{ display:grid; gap:.5rem; }
.kdsn-option{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:.55rem .7rem .55rem 1rem;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface);
  transition:border-color .2s ease, background .2s ease;
}
.kdsn-option.is-picked{ border-color:var(--gold); background:var(--gold-wash); }
.kdsn-option__label{ font-size:var(--fs-small); line-height:1.4; }

.kdsn-option__control{
  display:flex; align-items:center; gap:.35rem; flex:0 0 auto;
}
.kdsn-option__control--solo{ justify-content:flex-start; }
.kdsn-step-btn{
  width:40px; height:40px; flex:0 0 auto;
  border:1px solid var(--line-strong); border-radius:50%;
  background:var(--surface); color:var(--ink);
  font-size:19px; line-height:1; cursor:pointer;
  display:grid; place-items:center;
  transition:background .15s ease, border-color .15s ease, color .15s ease;
}
.kdsn-step-btn:hover:not(:disabled){ background:var(--gold); border-color:var(--gold); color:#fff; }
.kdsn-step-btn:disabled{ opacity:.35; cursor:not-allowed; }
.kdsn-option__value{
  width:52px; text-align:center;
  font:700 16px/1 var(--font-sans);
  border:1px solid var(--line); border-radius:10px;
  padding:10px 4px;
  background:var(--surface); color:var(--ink);
  appearance:textfield; -moz-appearance:textfield;
}
.kdsn-option__value::-webkit-outer-spin-button,
.kdsn-option__value::-webkit-inner-spin-button{ appearance:none; margin:0; }

.kdsn-field--menge{ margin-top:1.5rem; }

/* ---- Lieferkarten ---- */
.kdsn-cards{ display:grid; gap:.6rem; margin-top:.9rem; }
.kdsn-cardchoice{ position:relative; display:block; cursor:pointer; }
.kdsn-cardchoice input{
  position:absolute; opacity:0; width:0; height:0;
}
.kdsn-cardchoice__body{
  display:flex; flex-direction:column; gap:.2rem;
  padding:.9rem 1.1rem;
  border:1px solid var(--line); border-radius:12px;
  background:var(--surface);
  transition:border-color .2s ease, background .2s ease;
}
.kdsn-cardchoice__body strong{ font-size:var(--fs-small); }
.kdsn-cardchoice__body span{ font-size:12.5px; color:var(--ink-soft); }
.kdsn-cardchoice input:checked + .kdsn-cardchoice__body{
  border-color:var(--gold); background:var(--gold-wash);
}
.kdsn-cardchoice input:focus-visible + .kdsn-cardchoice__body{
  outline:2px solid var(--gold); outline-offset:2px;
}

/* ---- Vorlaufhinweis ---- */
.kdsn-lead-note{
  display:flex; flex-wrap:wrap; align-items:center;
  gap:1rem clamp(1rem,2vw,2rem);
  padding:1.1rem 1.25rem;
  margin:1.5rem 0;
  border:1px solid var(--line-gold);
  border-radius:var(--radius-img);
  background:var(--gold-wash);
}
.kdsn-lead-note p{ margin:0; flex:1 1 300px; font-size:var(--fs-small); line-height:1.6; }
.kdsn-lead-note .kdsn-btn{ padding:11px 20px; }

/* ---- Felder ---- */
.kdsn-form__grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.1rem 1.4rem;
}
.kdsn-field{ display:flex; flex-direction:column; gap:.4rem; min-width:0; }
.kdsn-field--wide{ grid-column:1 / -1; }
.kdsn-field[hidden]{ display:none; }

.kdsn-label{ font-size:13.5px; font-weight:600; color:var(--ink); }
.kdsn-input{
  width:100%; max-width:100%;
  font:400 16px/1.4 var(--font-sans);   /* 16px verhindert Zoom auf iOS */
  color:var(--ink); background:var(--surface);
  border:1px solid var(--line-strong); border-radius:12px;
  padding:12px 14px; appearance:none;
}
textarea.kdsn-input{ resize:vertical; min-height:96px; }
.kdsn-input:focus{ outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold); }
.kdsn-hint{ margin:0; font-size:12.5px; color:var(--ink-soft); line-height:1.5; }

.kdsn-choice{
  display:flex; align-items:center; gap:.6rem;
  font-size:var(--fs-small); line-height:1.5; cursor:pointer;
  min-height:44px;
}
.kdsn-choice input{ width:20px; height:20px; margin:0; flex:0 0 auto; accent-color:var(--gold); }
.kdsn-consent{ margin:1.5rem 0 0; align-items:flex-start; }
.kdsn-consent input{ margin-top:.15rem; }

/* ---- Steuerung ---- */
.kdsn-order__nav{
  display:flex; flex-wrap:wrap; gap:.6rem;
  margin-top:1.75rem;
}
.kdsn-order__waiting{
  margin:1.5rem 0 0;
  padding:.85rem 1.1rem;
  border:1px dashed var(--line-gold);
  border-radius:var(--radius-img);
  background:var(--gold-wash);
  font-size:var(--fs-small); color:var(--ink-soft);
}
.kdsn-order__waiting[hidden]{ display:none; }
.kdsn-option__value--wide{ width:72px; }

.kdsn-order__error{
  margin:1.25rem 0 0; padding:.85rem 1.1rem;
  border-left:3px solid var(--signal);
  background:rgba(140,47,39,.07);
  font-size:var(--fs-small); color:var(--ink);
  border-radius:0 8px 8px 0;
}
.kdsn-order__error[hidden]{ display:none; }

/* ---- Livezusammenfassung ---- */
.kdsn-summary[hidden]{ display:none; }
.kdsn-summary__inner{
  position:sticky; top:104px;
  border:1px solid var(--line-gold);
  border-radius:var(--radius-card);
  background:var(--bg-light);
  padding:1.25rem;
}
.kdsn-summary__media{ margin-bottom:1rem; }
.kdsn-summary__eyebrow{
  margin:0 0 .2rem;
  font:700 11px/1.4 var(--font-sans);
  letter-spacing:var(--track-eyebrow); text-transform:uppercase;
  color:var(--gold-deep);
}
.kdsn-summary__title{
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:1.15rem; letter-spacing:var(--track-display);
  margin:0 0 1rem;
}
.kdsn-summary__list{
  margin:0; padding:1rem 0 0;
  border-top:1px solid var(--line);
  display:grid; grid-template-columns:auto 1fr; gap:.45rem .9rem;
  font-size:12.5px;
}
.kdsn-summary__list dt{ color:var(--ink-soft); }
.kdsn-summary__list dd{ margin:0; font-weight:600; text-align:right; }
.kdsn-summary__price{
  margin:1rem 0 .4rem; padding-top:1rem;
  border-top:1px solid var(--line);
  font-family:var(--font-display); font-weight:var(--weight-display);
  font-size:1.05rem; letter-spacing:var(--track-display);
}
.kdsn-summary__note{ margin:0; font-size:12px; color:var(--ink-soft); line-height:1.5; }

/* Unsichtbar fuer Menschen, sichtbar fuer Bots */
.kdsn-hp{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* ---- Rueckmeldungen ---- */
.kdsn-notice{
  border-radius:var(--radius-img);
  padding:1.1rem 1.3rem; margin:0 0 1.5rem;
  border-left:4px solid;
}
.kdsn-notice p{ margin:.35rem 0 0; font-size:var(--fs-small); }
.kdsn-notice--ok{ background:rgba(26,127,55,.08); border-color:#1a7f37; }
.kdsn-notice--error{ background:rgba(140,47,39,.07); border-color:var(--signal); }

/* =========================================================
   Breakpoints
   ========================================================= */

@media (max-width:1320px){
  .kdsn-nav__list{ gap:1rem; font-size:.9rem; }
  .kdsn-header__call{ padding:11px; }
  .kdsn-header__call span{
    position:absolute; width:1px; height:1px;
    overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;
  }
}

/* Burger laut Standard unter 1120px */
@media (max-width:1120px){
  .kdsn-burger{ display:flex; }
  .kdsn-header__inner{ grid-template-columns:auto 1fr; }
  .kdsn-header__actions{ grid-column:2; }
  .kdsn-nav{
    position:fixed; inset:89px 0 auto 0;
    background:var(--bg-dark);
    padding:1.25rem var(--gutter) 2rem;
    transform:translateY(-130%);
    transition:transform .25s ease;
    border-bottom:1px solid var(--line-inv);
    max-height:calc(100dvh - 89px); overflow-y:auto;
  }
  .kdsn-nav.is-open{ transform:translateY(0); }
  .kdsn-nav__list{ flex-direction:column; align-items:stretch; gap:.1rem; }
  .kdsn-nav__list a{ color:var(--ink-inv); display:block; padding:.8rem 0; font-size:1.05rem; }
  .kdsn-nav__list a::after{ display:none; }

  .kdsn-strip__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:1.5rem; }
  .kdsn-steps--four{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kdsn-footer__grid{ grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:2.75rem; }
}

@media (max-width:1000px){
  .kdsn-hero__watermark{ display:none; }
  .kdsn-hero__inner{ grid-template-columns:1fr; gap:2.25rem; }
  .kdsn-hero__title{ max-width:none; }
  .kdsn-hero__media{ order:-1; }
  .kdsn-process{ grid-template-columns:1fr; }
}

/* Pflichtstapelung für Splits laut Standard: Bild zuerst */
@media (max-width:860px){
  .kdsn-footer__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .kdsn-split{ grid-template-columns:1fr; gap:1.75rem; }
  .kdsn-split--reverse .kdsn-split__media{ order:0; }
  .kdsn-steps--three{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width:980px){
  .kdsn-order__layout{ grid-template-columns:1fr; }
  .kdsn-summary{ order:-1; }
  .kdsn-summary__inner{ position:static; }
  .kdsn-summary__media{ display:none; }
  .kdsn-summary__list{ grid-template-columns:auto 1fr; }
}

@media (max-width:760px){
  .kdsn-form__grid{ grid-template-columns:1fr; }
  .kdsn-lead-note{ flex-direction:column; align-items:stretch; }
  .kdsn-lead-note .kdsn-btn{ text-align:center; }
  .kdsn-progress__item{ flex:1 1 100%; }
  .kdsn-progress__item:not(.is-active){ display:none; }
  .kdsn-order.is-enhanced .kdsn-progress__item.is-active{ display:flex; }
  .kdsn-option{ padding:.5rem .5rem .5rem .85rem; }
  .kdsn-option__label{ font-size:13.5px; }
  .kdsn-order__nav .kdsn-btn{ flex:1 1 100%; }
}

@media (max-width:640px){
  .kdsn-strip__grid{ grid-template-columns:1fr; }
  .kdsn-facts{ grid-template-columns:1fr; gap:1.1rem; }
  .kdsn-facts li{ display:grid; grid-template-columns:auto 1fr; gap:.1rem .8rem; align-items:baseline; }
  .kdsn-form__submit{ width:100%; }
  .kdsn-steps,
  .kdsn-steps--three,
  .kdsn-steps--four{ grid-template-columns:1fr; }
  .kdsn-footer__grid{ grid-template-columns:1fr; }
  .kdsn-header__cta{ display:none; }
  .kdsn-brand__img,
  .kdsn-brand img{ height:42px; }
  .kdsn-footer__logo{ height:58px; }

  .kdsn-btn{
    padding:14px 22px;
    white-space:normal;
    overflow-wrap:anywhere;
    max-width:100%;
  }
  .kdsn-hero__logo{ height:clamp(96px,26vw,150px); }
  .kdsn-hero__brand{ margin-bottom:1.75rem; }
  .kdsn-hero__actions,
  .kdsn-cta__actions{
    display:grid;
    grid-auto-flow:row;
    grid-auto-columns:auto;
    width:100%;
  }
  .kdsn-card__foot{ flex-direction:column; align-items:flex-start; }
  .kdsn-card__foot .kdsn-btn{ margin-left:0; width:100%; }
  .kdsn-footer__base{ flex-direction:column; align-items:flex-start; }
  .kdsn-footer__by{ padding-right:0; }
}
