/* =========================================================
   Swiss Derma Clinic – Tattoo Entfernung Zürich
   Layout & Design nach IFZACARE Landing-Page-Vorlage
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --blue:#1B58E8;
  --blue-dark:#1244BE;
  --blue-soft:#E8EFFE;
  --ink:#0C1424;
  --ink-2:#1B2536;
  --muted:#5D6B82;
  --line:#E4E8EF;
  --bg:#F1F4F8;
  --card:#FFFFFF;
  --radius:24px;
  --radius-sm:14px;
  --shadow:0 18px 50px -24px rgba(12,20,36,.22);
  --container:1180px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  background:var(--bg);color:var(--ink);
  -webkit-font-smoothing:antialiased;line-height:1.6;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}

/* ---------- Typo ---------- */
h1,h2,h3,h4{line-height:1.15;letter-spacing:-.02em;font-weight:700}
h1{font-size:clamp(2.2rem,4.2vw,3.1rem);font-weight:800}
h2{font-size:clamp(1.9rem,3.4vw,2.7rem)}
h3{font-size:1.4rem}
.lead{color:var(--muted);font-size:1.125rem;line-height:1.65;max-width:60ch}
/* Fliesstext direkt nach einer Überschrift braucht immer Luft */
h1+.lead,h2+.lead,h3+.lead,h2+p,h3+p{margin-top:18px}

.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.8rem;font-weight:600;color:var(--blue);
  text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px;
}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue)}

.section{padding:88px 0}
.section-head{max-width:760px;margin:0 auto 48px;text-align:center}
/* Seiten mit h1 im Sektionskopf sollen wie h2 wirken */
.section-head h1{font-size:clamp(1.9rem,3.4vw,2.7rem);font-weight:700}
.section-head .lead{margin:16px auto 0}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:9px;
  padding:15px 28px;border-radius:999px;font-weight:600;font-size:1rem;white-space:nowrap;
  border:1px solid transparent;transition:.2s ease;cursor:pointer;
}
.btn-primary{background:var(--blue);color:#fff;box-shadow:0 12px 26px -12px rgba(27,88,232,.75)}
.btn-primary:hover{background:var(--blue-dark);transform:translateY(-1px)}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--ink);}
.btn-light{background:#fff;color:var(--blue)}
.btn-light:hover{transform:translateY(-1px)}

/* ---------- Header ---------- */
.header{position:sticky;top:0;z-index:60;padding:14px 0;background:rgba(241,244,248,.86);backdrop-filter:blur(12px)}
.nav{
  display:flex;align-items:center;gap:22px;
  background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:10px 12px 10px 22px;box-shadow:var(--shadow);
}
/* Inline-SVG erbt Inter und das Schriftgewicht der Menüpunkte */
.nav .logo{display:flex;align-items:center}
/* dieselbe Farbe wie die Menüpunkte – currentColor im SVG erbt sie */
.logo-svg{height:21.6px;width:auto;display:block;color:var(--ink-2)}
.logo-svg text{font-family:inherit;font-weight:500}
.nav-links{display:flex;gap:21px;margin-left:auto;font-size:.97rem;font-weight:500;color:var(--ink-2)}
.nav-links a:hover{color:var(--blue)}
.nav-cta{display:flex;align-items:center;gap:12px}
.burger{display:none;background:none;border:0;font-size:1.5rem;line-height:1;padding:6px 10px;cursor:pointer}

/* ---------- Hero ---------- */
/* Der Hero füllt das Fenster bis knapp über die Logo-Leiste. Über min-height
   statt festem Abstand: passt sich automatisch an, wenn Texte länger oder
   kürzer werden, und schneidet die Logos bei jeder Fensterhöhe an. */
.hero{padding:52px 0 40px;min-height:calc(100vh - 176px)}
.hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:start}
.rating{display:inline-flex;align-items:center;gap:12px;font-size:.92rem;font-weight:600;color:var(--muted);margin-bottom:20px}
.hero h1 span{color:var(--blue)}
.hero .lead{margin-top:18px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-doc{
  display:flex;align-items:center;gap:14px;margin-top:36px;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);
  padding:12px 18px 12px 12px;box-shadow:var(--shadow);width:fit-content;
}
.hero-doc img{width:48px;height:48px;border-radius:50%;object-fit:cover}
.hero-doc b{display:block;font-size:1rem}
.hero-doc small{color:var(--muted);font-size:.86rem}

.hero-media{position:relative}
/* rechts eingerückt, damit die Kachel das Foto gleich weit überlappt
   wie die Kachel links unten – ohne über den Inhaltsbereich zu ragen */
.hero-media .main{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin-right:14px}
.hero-media .main img{width:100%;height:508px;object-fit:cover}
.hero-media .float{
  position:absolute;left:-34px;bottom:-28px;width:210px;
  border-radius:18px;overflow:hidden;border:6px solid #fff;box-shadow:var(--shadow);
}
.hero-media .float img{height:132px;width:100%;object-fit:cover}
.hero-tile{
  position:absolute;right:-20px;top:34px;width:168px;
  border-radius:18px;overflow:hidden;border:6px solid #fff;box-shadow:var(--shadow);
}
.hero-tile img{width:100%;height:168px;object-fit:cover;object-position:50% 30%}

/* ---------- Facts strip ---------- */
#fakten{padding-top:0}
.facts{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:26px}
.facts-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.fact{text-align:center;padding:14px 8px;border-radius:var(--radius-sm)}
.fact:hover{background:var(--blue-soft)}
.fact img{height:34px;margin:0 auto 10px}
.fact b{display:block;font-size:.8125rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.fact span{display:block;margin-top:4px;font-weight:700;font-size:1rem}

/* ---------- Split / Feature ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:stretch}
/* Kartenraster füllt die Spaltenhöhe, damit beide Spalten bündig enden */
.split > div{height:100%}
.feature-cards{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:16px;height:100%}
.ansatz-grid{grid-template-columns:repeat(4,1fr);height:auto}
.fcard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}
.fcard .ico{width:40px;height:40px;border-radius:12px;background:var(--blue-soft);color:var(--blue);
  display:grid;place-items:center;font-weight:700;margin-bottom:12px}
.fcard h4{font-size:1.125rem;margin-bottom:8px}
.fcard p{font-size:1rem;line-height:1.6;color:var(--muted)}
.info-card{
  background:var(--blue-soft);color:var(--ink);border-radius:var(--radius);padding:34px;
}
.info-card h3{color:var(--ink);margin-bottom:10px}

/* Hervorgehobene Variante – hebt sich von den weichblauen Karten ab */
.info-card--hervor{
  background:#fff;border:2px solid var(--blue);
  box-shadow:0 18px 46px rgba(27,88,232,.14);padding:38px}
.info-card--hervor h3{font-size:1.45rem}
.info-card p{color:var(--muted);font-size:1.0625rem;line-height:1.65}
.info-card .row{display:flex;gap:26px;margin-top:24px;flex-wrap:wrap}
.info-card .row div b{display:block;font-size:1.7rem;color:var(--blue-dark)}
.info-card .row div small{color:var(--muted);font-size:.86rem}

/* ---------- Spezialisierung ---------- */
.spez-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.spez-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}
.spez-bild{width:100%;height:150px;object-fit:cover;border-radius:12px;margin-bottom:18px}
.spez-card .ico{width:40px;height:40px;border-radius:12px;background:var(--blue-soft);
  color:var(--blue);display:grid;place-items:center;font-weight:700;font-size:1.15rem;margin-bottom:14px}
.spez-card h4{font-size:1.125rem;margin-bottom:8px}
.spez-card p{font-size:1rem;line-height:1.6;color:var(--muted)}

/* ---------- Preisliste ---------- */
.pricegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:start}
.pricecard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 28px}
.pricecard h3{font-size:1.25rem;margin-bottom:6px}
.price-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:14px 0;border-bottom:1px solid var(--line)}
.price-row:last-child{border-bottom:0;padding-bottom:0}
.price-row span{font-size:1rem;color:var(--muted)}
.price-row b{font-size:1rem;white-space:nowrap}

/* ---------- Ablauf / Timeline ---------- */
.process{display:grid;grid-template-columns:1fr 1.18fr;gap:28px;align-items:stretch}
.process-media{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.process-media img{width:100%;height:100%;min-height:420px;object-fit:cover}
.process-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:44px 44px 44px 40px;display:flex;align-items:center;
}

.timeline{position:relative;list-style:none;margin:0;padding:0;width:100%}
/* Spur der Verbindungslinie */
.timeline::before{
  content:"";position:absolute;left:25px;width:4px;border-radius:2px;
  top:var(--tl-top,27px);height:var(--tl-h,0);background:var(--blue-soft);
}
/* Fortschritts-Füllung, per Scroll gesteuert */
.tl-fill{
  position:absolute;left:25px;width:4px;border-radius:2px;
  top:var(--tl-top,27px);height:0;background:var(--blue);
}

.tl-step{
  position:relative;display:grid;grid-template-columns:54px 1fr;gap:22px;
  padding-bottom:38px;
  transition:opacity .55s ease,transform .55s ease;
}
/* Startzustand setzt erst JS – ohne JS bleibt alles sichtbar */
.anim-ready .tl-step{opacity:0;transform:translateY(16px)}
.tl-step:last-child{padding-bottom:0}
.tl-step.is-visible{opacity:1;transform:none}
.tl-step:nth-child(2){transition-delay:.08s}
.tl-step:nth-child(3){transition-delay:.16s}
.tl-step:nth-child(4){transition-delay:.24s}
.tl-step:nth-child(5){transition-delay:.32s}

.tl-num{
  width:54px;height:54px;border-radius:50%;background:var(--blue-soft);color:var(--blue);
  display:grid;place-items:center;font-weight:700;font-size:1.0625rem;
  position:relative;z-index:1;
  transition:background .35s ease,color .35s ease,box-shadow .35s ease,transform .35s ease;
}
.tl-step.is-active .tl-num{
  background:var(--blue);color:#fff;transform:scale(1.06);
  box-shadow:0 10px 24px -10px rgba(27,88,232,.85);
}
.tl-body{padding-top:9px}
.tl-body h4{font-size:1.25rem;margin-bottom:8px}
.tl-body p{font-size:1rem;line-height:1.6;color:var(--muted)}

/* Einblenden beim Scrollen – für beliebige Elemente, nicht nur das Zeitleistenbild */
.reveal{transition:opacity .7s ease,transform .7s ease}
.anim-ready .reveal{opacity:0;transform:translateY(20px)}
.reveal.is-visible{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .tl-step,.reveal{opacity:1;transform:none;transition:none}
  .tl-num{transition:none}
  .tl-fill{display:none}
  .timeline::before{background:var(--blue)}
}

/* ---------- Doctor ---------- */
.doctor{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;
  display:grid;grid-template-columns:1fr 1fr;gap:0}
.doctor-body{padding:52px}
.doctor-body h2{margin-bottom:16px}
.doctor-body p{color:var(--muted);font-size:1.0625rem;line-height:1.65;margin-bottom:16px}
.doctor-body .tags{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 26px}
.tag{background:var(--blue-soft);color:var(--blue-dark);border-radius:999px;padding:8px 15px;font-size:.875rem;font-weight:600}
.doctor-media img{width:100%;height:100%;object-fit:cover;min-height:420px}

/* ---------- Testimonials / Slider ---------- */
.rating-summary{
  display:flex;align-items:center;justify-content:center;gap:14px;
  margin:-24px 0 40px;
}
.rating-summary b{font-size:1.35rem;letter-spacing:-.02em}

.starbox-row{display:inline-flex;gap:4px}
.sbox{
  width:26px;height:26px;border-radius:6px;background:var(--blue);
  display:grid;place-items:center;font-style:normal;
}
.sbox::before{content:"★";color:#fff;font-size:.82rem;line-height:1}
.sbox--half{background:linear-gradient(90deg,var(--blue) 50%,var(--line) 50%)}
.starbox-row--sm .sbox{width:20px;height:20px;border-radius:5px}
.starbox-row--sm .sbox::before{font-size:.66rem}

.slider{overflow:hidden}
.slider-track{display:flex;gap:18px;transition:transform .45s cubic-bezier(.4,0,.2,1)}
.tcard{
  flex:0 0 calc((100% - 36px) / 3);
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:30px;display:flex;flex-direction:column;
}
.tcard p{font-size:1.0625rem;line-height:1.65;color:var(--ink-2);flex:1}
.tcard .who{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px}
.tcard .who b{font-size:1rem;text-align:right}

.slider-nav{display:flex;justify-content:flex-end;gap:12px;margin-top:32px}
.sbtn{
  width:54px;height:54px;border-radius:50%;border:1px solid var(--line);
  background:#fff;color:var(--ink);font-size:1.15rem;cursor:pointer;
  display:grid;place-items:center;transition:.2s ease;
}
.sbtn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow)}
.sbtn--primary{background:var(--blue);border-color:var(--blue);color:#fff;
  box-shadow:0 12px 26px -12px rgba(27,88,232,.75)}
.sbtn--primary:hover:not(:disabled){background:var(--blue-dark);border-color:var(--blue-dark)}
.sbtn:disabled{background:#E7EBF1;border-color:#E7EBF1;color:#9AA6B8;cursor:default;box-shadow:none}

/* ---------- FAQ ---------- */
.faq{max-width:900px;margin:0 auto}
.acc{background:#fff;border:1px solid var(--line);border-radius:18px;margin-bottom:12px;overflow:hidden}
.acc summary{
  list-style:none;cursor:pointer;padding:23px 26px;font-weight:600;font-size:1.125rem;
  display:flex;align-items:center;gap:16px;
}
.acc summary::-webkit-details-marker{display:none}
.acc summary::after{
  content:"+";margin-left:auto;font-size:1.4rem;font-weight:400;color:var(--blue);
  transition:transform .2s;flex-shrink:0;
}
.acc[open] summary::after{content:"–"}
.acc[open] summary{color:var(--blue)}
.acc .body{padding:0 26px 24px;color:var(--muted);font-size:1.0625rem;line-height:1.7}

/* ---------- CTA ---------- */
.cta{
  background:var(--blue);border-radius:var(--radius);color:#fff;text-align:center;
  padding:64px 32px;position:relative;overflow:hidden;
}
.cta::before,.cta::after{
  content:"";position:absolute;border-radius:50%;border:38px solid rgba(255,255,255,.07);
}
.cta::before{width:320px;height:320px;left:-90px;top:-110px}
.cta::after{width:280px;height:280px;right:-80px;bottom:-120px}
.cta h2{position:relative;margin-bottom:14px}
.cta p{position:relative;color:#D6E2FF;max-width:52ch;margin:0 auto 28px}
.cta .btn{position:relative}

/* ---------- Kontakt ---------- */
.contact-panel{max-width:640px;margin:0 auto}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:34px}
.info-row{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.info-row:last-child{border-bottom:0}
.info-row b{min-width:130px;font-size:.95rem}
.info-row span{color:var(--muted);font-size:1rem}

/* ---------- Vertrauens-Logos ---------- */
.trust{padding:0 24px 24px;text-align:center}
.trust-label{
  font-size:.86rem;font-weight:600;color:var(--muted);
  text-transform:uppercase;letter-spacing:.08em;margin-bottom:16px;
}
.logos{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:34px;opacity:.62}
.logos img{height:42px;width:auto;max-width:150px;object-fit:contain;filter:grayscale(1);transition:opacity .2s}
/* PNG-Badges haben viel Leerraum auf der Fläche und brauchen mehr Höhe */
.logos img.logo-badge{height:62px}
.logos img:hover{opacity:1}

/* ---------- Footer ---------- */
.footer{background:#fff;border-top:1px solid var(--line);padding:64px 0 28px;margin-top:40px}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
.footer h5{font-size:.86rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:16px}
.footer ul{list-style:none;display:grid;gap:10px;font-size:.97rem;color:var(--muted)}
.footer ul a:hover{color:var(--blue)}
.footer .brand > img{height:26px;margin-bottom:18px}
.footer .brand p{font-size:.97rem;color:var(--muted);max-width:34ch}
.footer-bottom{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;
  margin-top:44px;padding-top:22px;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted)}
.footer-bottom nav{display:flex;gap:18px}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .hero-grid,.split,.doctor{grid-template-columns:1fr}
  .doctor-media img{min-height:300px}
  .doctor-body{padding:34px}
  .tcard{flex:0 0 calc((100% - 18px) / 2)}
  .facts-grid{grid-template-columns:repeat(3,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .nav-links{display:none;position:absolute;top:76px;left:24px;right:24px;background:#fff;
    border:1px solid var(--line);border-radius:20px;padding:18px;flex-direction:column;gap:14px;box-shadow:var(--shadow)}
  .nav-links.open{display:flex}
  .burger{display:block;margin-left:auto}
  .hero-media .float,.hero-tile{display:none}
  .process{grid-template-columns:1fr}
  .process-media img{min-height:260px}
  .process-card{padding:34px 30px}
  .ansatz-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .ansatz-grid{grid-template-columns:1fr}
  .section{padding:60px 0}
  .facts-grid,.footer-grid{grid-template-columns:1fr}
  .tcard{flex:0 0 100%}
  .slider-nav{justify-content:center}
  .feature-cards{grid-template-columns:1fr}
  .spez-grid{grid-template-columns:1fr}
  .pricegrid{grid-template-columns:1fr}

  .logos{gap:24px}
  .logos img{height:34px}
  .process-card{padding:28px 22px}
  .tl-step{grid-template-columns:46px 1fr;gap:16px}
  .tl-num{width:46px;height:46px;font-size:.95rem}
  .timeline::before,.tl-fill{left:21px;width:4px}
  .tl-body h4{font-size:1.125rem}
  .hero-media .main img{height:320px}
}

/* ================================================================
   MEHRSEITIGER AUFTRITT – Header mit Untermenue, neuer Hero
   Struktur nach laserhd.de, Farben und Typografie unveraendert
   ================================================================ */

/* ---------- Navigation ---------- */
.nav-links a.ist-aktiv{color:var(--blue);font-weight:600}
.nav-tel{font-size:.92rem;font-weight:600;color:var(--ink-2);white-space:nowrap;
  border-bottom:1px solid var(--line);padding-bottom:2px}
.nav-tel:hover{color:var(--blue);border-color:var(--blue)}
.nav-cta{display:flex;align-items:center;gap:16px}

.hat-menue{position:relative}
.hat-menue > a{display:inline-flex;align-items:center;gap:5px}
.pfeil{font-size:.7em;opacity:.55;transition:transform .18s}
.hat-menue:hover .pfeil{transform:translateY(1px);opacity:1}

.untermenue{
  position:absolute;top:100%;left:50%;transform:translate(-50%,8px);
  margin-top:14px;min-width:230px;padding:10px;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);
  box-shadow:var(--shadow);display:grid;gap:2px;
  opacity:0;visibility:hidden;transition:opacity .18s,transform .18s;
}
/* unsichtbare Bruecke, damit der Zeiger die Luecke ueberqueren kann */
.hat-menue::after{content:"";position:absolute;top:100%;left:0;right:0;height:16px}
.hat-menue:hover .untermenue,.hat-menue:focus-within .untermenue{
  opacity:1;visibility:visible;transform:translate(-50%,0)}
.untermenue a{display:block;padding:9px 12px;border-radius:12px;
  font-size:.94rem;font-weight:500;color:var(--ink-2);line-height:1.35}
.untermenue a:hover{background:var(--blue-soft);color:var(--blue)}
.untermenue a.ist-aktiv{background:var(--blue-soft);color:var(--blue);font-weight:600}
.untermenue--breit{min-width:440px;grid-template-columns:1fr 1fr}
.untermenue--breit a b{display:block;font-weight:600}
.untermenue--breit a small{display:block;font-size:.8rem;color:var(--muted);
  font-weight:400;margin-top:2px}
.untermenue--breit a:hover small{color:var(--blue)}

/* ---------- Hero ---------- */
.augenbraue{display:flex;align-items:center;gap:14px;margin-bottom:22px;
  font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.augenbraue::before{content:"";width:38px;height:2px;background:var(--blue);flex:none}

.frage-zeile{font-size:1.15rem;font-weight:600;color:var(--ink-2);margin-top:16px}
.frage-zeile a{color:var(--blue);text-decoration:underline;text-underline-offset:4px;
  text-decoration-thickness:2px}
.frage-zeile a:hover{text-decoration-color:var(--ink-2)}

.vertrauensleiste{
  display:flex;flex-wrap:wrap;align-items:center;gap:0;margin-top:28px;width:fit-content;
  background:#fff;border:1px solid var(--line);border-radius:999px;
  padding:10px 6px;box-shadow:var(--shadow);
}
.vertrauensleiste > span{display:inline-flex;align-items:center;gap:8px;
  padding:0 18px;font-size:.86rem;font-weight:600;color:var(--muted);white-space:nowrap}
.vertrauensleiste > span + span{border-left:1px solid var(--line)}
.vertrauensleiste svg{width:15px;height:15px;flex:none;color:var(--blue)}

/* ---------- Zonenuebersicht ---------- */
.zonen-liste{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.zonen-kachel{
  display:block;background:#fff;border:1px solid var(--line);border-radius:18px;
  overflow:hidden;transition:border-color .18s,box-shadow .18s,transform .18s;
}
.zonen-kachel:hover{border-color:var(--blue);box-shadow:var(--shadow);transform:translateY(-2px)}
.zonen-kachel img{width:100%;height:170px;object-fit:cover;display:block}
.zonen-kachel .text{padding:20px 22px 22px}
.zonen-kachel h4{font-size:1.125rem;margin-bottom:6px}
.zonen-kachel p{font-size:.95rem;line-height:1.55;color:var(--muted)}
.zonen-kachel .preis{display:inline-block;margin-top:14px;font-size:.86rem;
  font-weight:600;color:var(--blue)}

/* ---------- Brotkrumen ---------- */
.krumen{display:flex;flex-wrap:wrap;gap:8px;font-size:.86rem;color:var(--muted);
  padding:26px 0 0}
.krumen a{color:var(--muted)}
.krumen a:hover{color:var(--blue)}
.krumen span{opacity:.5}

@media (max-width:980px){
  .nav-tel{display:none}
  .untermenue{position:static;transform:none;opacity:1;visibility:visible;
    min-width:0;box-shadow:none;border:0;padding:6px 0 0 12px;margin-top:6px}
  .untermenue--breit{grid-template-columns:1fr;min-width:0}
  .hat-menue::after{display:none}
  .zonen-liste{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .zonen-liste{grid-template-columns:1fr}
  .vertrauensleiste{border-radius:var(--radius-sm);padding:12px 6px}
  .vertrauensleiste > span{padding:6px 14px}
  .vertrauensleiste > span + span{border-left:0}
}

/* Navigation: sieben Punkte plus Nummer plus Button brauchen mehr Platz
   als die urspruengliche Fassung mit sechs Punkten */
@media (max-width:1200px){
  .nav-tel{display:none}
  .nav-links{gap:16px}
  .nav{gap:16px}
}
@media (max-width:1120px){
  .nav-links{display:none;position:absolute;top:104px;left:24px;right:24px;background:#fff;
    border:1px solid var(--line);border-radius:20px;padding:18px;flex-direction:column;
    gap:14px;box-shadow:var(--shadow);align-items:flex-start}
  .nav-links.open{display:flex}
  .burger{display:block;margin-left:auto}
  .untermenue{position:static;transform:none;opacity:1;visibility:visible;
    min-width:0;box-shadow:none;border:0;padding:6px 0 0 12px;margin-top:6px}
  .untermenue--breit{grid-template-columns:1fr;min-width:0}
  .hat-menue::after{display:none}
  .hat-menue{width:100%}
}

/* Menuepunkte duerfen nicht umbrechen */
.nav-links > a,.hat-menue > a{white-space:nowrap}
/* Vertrauensleiste kompakter, damit sie einzeilig bleibt */
.vertrauensleiste > span{padding:0 15px;font-size:.84rem}
/* Headline gleichmaessig umbrechen statt mit festem <br> */
.hero h1{text-wrap:balance}

/* ---------- Behandler-Leiste direkt unter dem Hero ---------- */
.behandler-leiste{
  display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:20px 26px;box-shadow:var(--shadow);
}
.behandler-leiste img{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}
.behandler-leiste .wer{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.behandler-leiste .wer b{display:block;font-size:1.125rem;font-weight:700;color:var(--ink)}
.behandler-leiste .wer span:not(.signet){display:block;font-size:.95rem;color:var(--muted);
  line-height:1.5;margin-top:4px}
/* Das Signet sitzt unter dem Text, nicht daneben */
.behandler-leiste .wer .signet{
  display:inline-flex;align-items:center;gap:8px;margin-top:10px;
  color:var(--blue);font-size:.78rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;
}
.behandler-leiste .wer .signet svg{width:15px;height:15px;flex:none}

/* ---------- Fliesstext-Abschnitt ---------- */
.fliesstext{max-width:820px;margin:0 auto}
.fliesstext p{font-size:1.0625rem;line-height:1.75;color:var(--muted);margin-bottom:18px}
.fliesstext h3{font-size:1.5rem;margin:36px 0 14px}
.fliesstext p:last-child{margin-bottom:0}

/* ---------- Link am Ende einer Sektion ---------- */
.abschnitt-link{display:flex;justify-content:center;margin-top:36px}
.abschnitt-link a{
  display:inline-flex;align-items:center;gap:9px;
  font-size:.86rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--blue);border-bottom:2px solid var(--blue-soft);padding-bottom:5px;
}
.abschnitt-link a:hover{border-color:var(--blue)}

/* ---------- Zonentabelle ---------- */
.zonen-tabelle{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow-x:auto;overflow-y:hidden;box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}
.zonen-tabelle table{width:100%;border-collapse:collapse}
.zonen-tabelle th{
  text-align:left;padding:16px 26px;font-size:.76rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  background:var(--bg);border-bottom:1px solid var(--line);
}
.zonen-tabelle td{padding:18px 26px;border-bottom:1px solid var(--line);
  font-size:1rem;color:var(--muted);vertical-align:top}
.zonen-tabelle tr:last-child td{border-bottom:0}
.zonen-tabelle td:first-child{font-weight:700;color:var(--ink);white-space:nowrap}
.zonen-tabelle td:last-child{white-space:nowrap;font-weight:600;color:var(--ink-2)}

/* ---------- Standort ---------- */
.standort-liste{display:grid;gap:2px;margin-top:24px}
.standort-liste div{display:flex;align-items:flex-start;gap:14px;padding:13px 0;
  border-bottom:1px solid var(--line);font-size:1rem;color:var(--muted)}
.standort-liste div:last-child{border-bottom:0}
.standort-liste svg{width:19px;height:19px;flex:none;color:var(--blue);margin-top:2px}

/* ---------- Hinweiszeile ---------- */
.hinweis{max-width:820px;margin:28px auto 0;font-size:.92rem;line-height:1.65;
  color:var(--muted);text-align:center;opacity:.9}

@media (max-width:620px){
  .behandler-leiste{padding:18px 20px;gap:16px}

  .zonen-tabelle th,.zonen-tabelle td{padding:13px 16px;font-size:.92rem}
  .zonen-tabelle table{min-width:520px}
  .zonen-tabelle td:last-child{white-space:normal}
}

/* ---------- Bild-Text-Sektion statt Fliesstext ---------- */
.bild-text{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.bild-text.gedreht > .bild{order:2}
.bild-text .bild{position:relative;border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow);aspect-ratio:4/3}
.bild-text .bild img{width:100%;height:100%;object-fit:cover;display:block}
.bild-text .text h3{font-size:1.6rem;margin-bottom:16px}
.bild-text .text p{font-size:1.0625rem;line-height:1.7;color:var(--muted);margin-bottom:16px}
.bild-text .text p:last-of-type{margin-bottom:0}
/* Häkchenliste – überall verwendbar, nicht nur in .bild-text */
.punkte{display:grid;gap:12px;margin-top:26px}
.punkte > div{display:flex;align-items:flex-start;gap:13px;
  font-size:1rem;line-height:1.55;color:var(--ink-2)}
.punkte > div > svg{width:20px;height:20px;flex:none;color:var(--blue);margin-top:2px}

/* zwei gestapelte Bilder als Alternative */
.bild-paar{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bild-paar img{width:100%;height:220px;object-fit:cover;border-radius:16px;display:block}
.bild-paar img:first-child{grid-column:1 / -1;height:260px}

@media (max-width:980px){
  .bild-text{grid-template-columns:1fr;gap:30px}
  .bild-text.gedreht > .bild{order:0}
}

/* ---------- Entwurfsmarkierung fuer Rechtstexte ---------- */
.entwurf{background:#FFF4E5;border:1px solid #F0C98A;border-radius:var(--radius-sm);
  padding:20px 24px;margin-bottom:36px;font-size:.98rem;line-height:1.65;color:#7A4A00}
.entwurf b{display:block;margin-bottom:6px;color:#5E3800}
.rechtstext{max-width:820px;margin:0 auto}
.rechtstext h3{font-size:1.25rem;margin:34px 0 12px}
.rechtstext h3:first-of-type{margin-top:0}
.rechtstext p,.rechtstext li{font-size:1rem;line-height:1.7;color:var(--muted)}
.rechtstext p{margin-bottom:14px}
.rechtstext ul{margin:0 0 14px 20px;list-style:disc}
.rechtstext li{margin-bottom:7px}
.luecke{background:var(--blue-soft);color:var(--blue);border-radius:6px;
  padding:1px 7px;font-weight:600;font-size:.94em}

/* Kopfzeile auf dem Handy: Logo und Burger muessen genuegen,
   der Terminbutton wandert ins aufklappbare Menue */
.nur-mobil{display:none}
@media (max-width:620px){
  .nav-cta{display:none}
  .nur-mobil{display:inline-flex;width:100%;justify-content:center;margin-top:6px}
  .logo-svg{height:18px}
  .nav{padding:9px 10px 9px 16px;gap:12px}
  .nav-links{top:96px}
}

/* ---------- Zonen-Label auf den Kacheln ---------- */
.zonen-kachel .marke{display:inline-block;font-size:.7rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:8px}

/* ---------- Kennzahlkarten ---------- */
.kennzahlen{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px}
.kennzahl{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 24px}
.kennzahl .ico{width:40px;height:40px;border-radius:12px;background:var(--blue-soft);
  color:var(--blue);display:grid;place-items:center;margin-bottom:16px}
.kennzahl .ico svg{width:21px;height:21px}
.kennzahl .marke{display:block;font-size:.72rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.kennzahl .wert{display:block;font-size:1.9rem;font-weight:800;color:var(--ink);
  line-height:1.1;letter-spacing:-.02em;margin-bottom:10px}
.kennzahl p{font-size:.95rem;line-height:1.55;color:var(--muted)}

@media (max-width:980px){.kennzahlen{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.kennzahlen{grid-template-columns:1fr}}

/* ================================================================
   ZONENSEITEN nach laserhd-Vorlage
   ================================================================ */

/* Chip-Navigation zwischen den Zonen */
.zonen-chips{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;padding:6px 0 0}
.zonen-chips a{
  display:inline-flex;align-items:center;padding:9px 17px;border-radius:999px;
  background:#fff;border:1px solid var(--line);
  font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--muted);white-space:nowrap;transition:.18s ease;
}
.zonen-chips a:hover{border-color:var(--blue);color:var(--blue)}
.zonen-chips a.ist-aktiv{background:var(--blue);border-color:var(--blue);color:#fff}

/* Ausfuehrliche Detailblöcke */
.detail-liste{display:grid;gap:16px;max-width:900px;margin:0 auto}
.detail-block{
  display:grid;grid-template-columns:52px 1fr;gap:22px;align-items:start;
  background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 30px;
}
.detail-block .ico{width:52px;height:52px;border-radius:14px;background:var(--blue-soft);
  color:var(--blue);display:grid;place-items:center;font-size:1.2rem;font-weight:700}
.detail-block .ico svg{width:23px;height:23px}
.detail-block h4{font-size:1.2rem;margin-bottom:10px}
.detail-block p{font-size:1.0313rem;line-height:1.72;color:var(--muted)}

/* Kompakte Ablaufschritte */
.schritte{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.schritt{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 22px}
.schritt .nr{width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:1rem;margin-bottom:16px}
.schritt h4{font-size:1.0625rem;margin-bottom:7px}
.schritt p{font-size:.95rem;line-height:1.55;color:var(--muted)}

/* Preiskarten in der Kombi-Sektion */
.kombi-karten{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:36px}
.kombi-karte{background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:26px 24px;display:flex;flex-direction:column}
.kombi-karte.hervor{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.kombi-karte b{font-size:1.0625rem;color:var(--ink);margin-bottom:12px}
.kombi-karte .betrag{font-size:1.75rem;font-weight:800;color:var(--blue);
  letter-spacing:-.02em;line-height:1.1;margin-bottom:8px}
.kombi-karte small{font-size:.9rem;line-height:1.5;color:var(--muted);margin-top:auto}

/* Abgrenzungs-Sektion */
.abgrenzung{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.abgrenzung > div{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 26px}
.abgrenzung .kreuz{width:38px;height:38px;border-radius:50%;background:#FDECEC;color:#C0392B;
  display:grid;place-items:center;font-size:1.05rem;font-weight:700;margin-bottom:16px}
.abgrenzung h4{font-size:1.125rem;margin-bottom:9px}
.abgrenzung p{font-size:.98rem;line-height:1.6;color:var(--muted)}

/* Liste weiterer Zonen am Seitenende */
.weitere-zonen{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.weitere-zonen a{display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px 20px;
  font-size:.98rem;font-weight:600;color:var(--ink-2);transition:.18s ease}
.weitere-zonen a:hover{border-color:var(--blue);color:var(--blue)}
.weitere-zonen a span{color:var(--blue);font-weight:700}

@media (max-width:980px){
  .schritte{grid-template-columns:1fr 1fr}
  .kombi-karten{grid-template-columns:1fr 1fr}
  .abgrenzung{grid-template-columns:1fr}
  .weitere-zonen{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .schritte,.kombi-karten,.weitere-zonen{grid-template-columns:1fr}
  .detail-block{grid-template-columns:1fr;gap:16px;padding:24px 22px}
  .zonen-chips{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;
    padding-bottom:6px;-webkit-overflow-scrolling:touch}
}

/* ================================================================
   PREISSEITE nach laserhd-Vorlage
   ================================================================ */

/* Tab-Navigation */
.preis-tabs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:44px}
.preis-tabs a{
  display:flex;flex-direction:column;gap:3px;padding:16px 26px;border-radius:16px;
  background:#fff;border:1px solid var(--line);min-width:180px;transition:.18s ease;
}
.preis-tabs a:hover{border-color:var(--blue)}
.preis-tabs a.ist-aktiv{background:var(--blue);border-color:var(--blue)}
.preis-tabs b{font-size:1rem;font-weight:700;color:var(--ink)}
.preis-tabs small{font-size:.86rem;color:var(--muted)}
.preis-tabs a.ist-aktiv b,.preis-tabs a.ist-aktiv small{color:#fff}
.preis-tabs a.ist-aktiv small{opacity:.85}

/* Preisgruppen */
.preis-gruppen{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-items:start}
.preis-gruppe{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 26px}
.preis-gruppe .kopf{display:flex;align-items:baseline;justify-content:space-between;
  gap:14px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.preis-gruppe h3{font-size:1.25rem}
.preis-gruppe .ab{font-size:.86rem;font-weight:700;color:var(--blue);white-space:nowrap}

/* Paketkarten */
.pakete{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.paket{background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:28px 26px;display:flex;flex-direction:column;position:relative}
.paket.hervor{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.paket .band{position:absolute;top:-11px;left:26px;background:var(--blue);color:#fff;
  border-radius:999px;padding:4px 13px;font-size:.68rem;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase}
.paket h3{font-size:1.25rem;margin-bottom:6px}
.paket .satz{font-size:.98rem;line-height:1.5;color:var(--muted);margin-bottom:18px}
.paket .zonen{font-size:.92rem;line-height:1.6;color:var(--ink-2);
  padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:18px}
.paket .zonen b{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted);margin-bottom:5px}
.paket .preis-zeile{margin-top:auto}
.paket .vorher{font-size:.92rem;color:var(--muted);text-decoration:line-through}
.paket .jetzt{display:block;font-size:2rem;font-weight:800;color:var(--blue);
  letter-spacing:-.02em;line-height:1.15}
.paket .je{font-size:.86rem;color:var(--muted)}
.paket .sparen{display:inline-block;margin-top:10px;background:var(--blue-soft);color:var(--blue);
  border-radius:999px;padding:5px 13px;font-size:.82rem;font-weight:700}

/* Hinweiskarten mit Symbol */
.hinweis-karten{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.hinweis-karte{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 24px}
.hinweis-karte .ico{width:40px;height:40px;border-radius:12px;background:var(--blue-soft);
  color:var(--blue);display:grid;place-items:center;margin-bottom:15px}
.hinweis-karte .ico svg{width:20px;height:20px}
.hinweis-karte h4{font-size:1.0625rem;margin-bottom:8px}
.hinweis-karte p{font-size:.95rem;line-height:1.6;color:var(--muted)}

/* Zweispaltige Merkliste */
.merkliste{display:grid;grid-template-columns:1fr 1fr;gap:14px 30px}
.merkliste div{display:flex;align-items:flex-start;gap:13px;font-size:1rem;
  line-height:1.55;color:var(--muted);padding:13px 0;border-bottom:1px solid var(--line)}
.merkliste div b{color:var(--ink);font-weight:600}
.merkliste svg{width:19px;height:19px;flex:none;color:var(--blue);margin-top:2px}

@media (max-width:980px){
  .preis-gruppen,.merkliste{grid-template-columns:1fr}
  .pakete,.hinweis-karten{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .pakete,.hinweis-karten{grid-template-columns:1fr}
  .preis-tabs a{min-width:0;flex:1 1 100%;text-align:center;align-items:center}
}

/* ================================================================
   TERMINANFRAGE – dreistufiger Ablauf ohne Server
   ================================================================ */
.buchung{max-width:960px;margin:0 auto}

/* Fortschritt */
.stufen{display:flex;gap:10px;margin-bottom:34px}
.stufe{flex:1;display:flex;align-items:center;gap:12px;padding:15px 18px;
  background:#fff;border:1px solid var(--line);border-radius:16px;transition:.2s ease}
.stufe .nr{width:30px;height:30px;border-radius:50%;background:var(--bg);color:var(--muted);
  display:grid;place-items:center;font-weight:700;font-size:.9rem;flex:none;transition:.2s ease}
.stufe b{font-size:.95rem;color:var(--muted);font-weight:600}
.stufe.aktiv{border-color:var(--blue)}
.stufe.aktiv .nr{background:var(--blue);color:#fff}
.stufe.aktiv b{color:var(--ink)}
.stufe.erledigt .nr{background:var(--blue-soft);color:var(--blue)}
.stufe.erledigt b{color:var(--ink-2)}

/* Karten je Schritt */
.schrittkarte{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:34px;box-shadow:var(--shadow)}
.schrittkarte[hidden]{display:none}
.schrittkarte > h3{font-size:1.35rem;margin-bottom:6px}
.schrittkarte > p.hinweis-text{font-size:1rem;color:var(--muted);margin-bottom:26px;line-height:1.6}

/* Zonenauswahl */
.zonenwahl{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.zonenwahl label{display:flex;align-items:center;gap:14px;padding:15px 18px;
  border:1px solid var(--line);border-radius:14px;cursor:pointer;transition:.16s ease}
.zonenwahl label:hover{border-color:var(--blue)}
.zonenwahl input{position:absolute;opacity:0;pointer-events:none}
.zonenwahl .haken{width:22px;height:22px;border-radius:7px;border:2px solid var(--line);
  flex:none;display:grid;place-items:center;transition:.16s ease}
.zonenwahl .haken svg{width:13px;height:13px;color:#fff;opacity:0;transition:.16s ease}
.zonenwahl input:checked ~ .haken{background:var(--blue);border-color:var(--blue)}
.zonenwahl input:checked ~ .haken svg{opacity:1}
.zonenwahl input:focus-visible ~ .haken{outline:2px solid var(--blue);outline-offset:2px}
.zonenwahl label:has(input:checked){border-color:var(--blue);background:var(--blue-soft)}
.zonenwahl .bez{flex:1;font-size:1rem;font-weight:600;color:var(--ink)}
.zonenwahl .betrag{font-size:.95rem;font-weight:700;color:var(--blue);white-space:nowrap}

/* Zwischensumme */
.summe{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;
  margin-top:24px;padding:20px 24px;background:var(--blue-soft);border-radius:16px}
.summe .zeile{font-size:.95rem;color:var(--blue);font-weight:600}
.summe .gross{font-size:1.6rem;font-weight:800;color:var(--blue);letter-spacing:-.02em}

/* Kalender */
.kal-kopf{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.kal-kopf b{font-size:1.125rem}
.kal-knopf{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);
  background:#fff;cursor:pointer;font-size:1rem;color:var(--ink-2);transition:.16s ease}
.kal-knopf:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}
.kal-knopf:disabled{opacity:.35;cursor:default}
.kalender{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.kalender .wt{text-align:center;font-size:.74rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--muted);padding-bottom:8px}
.kalender button{aspect-ratio:1;border:1px solid transparent;border-radius:12px;background:transparent;
  font-size:.98rem;font-weight:600;color:var(--ink-2);cursor:pointer;transition:.16s ease}
.kalender button:hover:not(:disabled){background:var(--bg);border-color:var(--line)}
.kalender button:disabled{color:var(--line);cursor:default}
.kalender button.gewaehlt{background:var(--blue);border-color:var(--blue);color:#fff}
.kalender .leer{aspect-ratio:1}

/* Zeitfenster */
.zeiten{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin-top:24px}
.zeiten button{padding:12px 8px;border:1px solid var(--line);border-radius:12px;background:#fff;
  font-size:.95rem;font-weight:600;color:var(--ink-2);cursor:pointer;transition:.16s ease}
.zeiten button:hover{border-color:var(--blue);color:var(--blue)}
.zeiten button.gewaehlt{background:var(--blue);border-color:var(--blue);color:#fff}

/* Formularfelder */
.feld{margin-bottom:18px}
.feld label{display:block;font-size:.92rem;font-weight:600;color:var(--ink-2);margin-bottom:7px}
.feld input,.feld textarea{width:100%;padding:14px 16px;border:1px solid var(--line);
  border-radius:14px;font-family:inherit;font-size:1rem;color:var(--ink);background:#fff}
.feld input:focus,.feld textarea:focus{outline:none;border-color:var(--blue);
  box-shadow:0 0 0 3px var(--blue-soft)}
.feld textarea{resize:vertical;min-height:96px}

/* Zusammenfassung */
.zusammenfassung{background:var(--bg);border-radius:16px;padding:22px 24px;margin-bottom:24px}
.zusammenfassung div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;
  font-size:.98rem;color:var(--muted);border-bottom:1px solid var(--line)}
.zusammenfassung div:last-child{border-bottom:0;padding-bottom:0}
.zusammenfassung div b{color:var(--ink);text-align:right}

/* Navigationsknöpfe */
.buchung-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.buchung-nav .btn:disabled{opacity:.45;cursor:default}

@media (max-width:620px){
  .stufen{flex-direction:column}
  .zonenwahl{grid-template-columns:1fr}
  .schrittkarte{padding:24px 20px}
}

/* ================================================================
   TERMINPLAN – interne Ansicht (Entwurf mit Beispieldaten)
   ================================================================ */
.plan-kennzahlen{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}
.plan-kennzahl{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px}
.plan-kennzahl b{display:block;font-size:1.75rem;font-weight:800;color:var(--ink);
  letter-spacing:-.02em;line-height:1.1;margin-bottom:4px}
.plan-kennzahl small{font-size:.86rem;color:var(--muted)}

.plan-leiste{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:20px}
.plan-leiste .datum{font-size:1.125rem;font-weight:700;color:var(--ink);margin-right:auto}
.plan-schalter{display:flex;gap:4px;background:#fff;border:1px solid var(--line);
  border-radius:999px;padding:4px}
.plan-schalter button{padding:8px 18px;border:0;border-radius:999px;background:transparent;
  font-family:inherit;font-size:.9rem;font-weight:600;color:var(--muted);cursor:pointer;transition:.16s}
.plan-schalter button.aktiv{background:var(--blue);color:#fff}

/* Zeitachse */
.agenda{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow)}
.agenda-zeile{display:grid;grid-template-columns:78px 1fr;border-bottom:1px solid var(--line);
  min-height:62px}
.agenda-zeile:last-child{border-bottom:0}
.agenda-zeile .uhr{padding:16px 0 0 22px;font-size:.86rem;font-weight:600;color:var(--muted)}
.agenda-zeile .spur{padding:10px 22px 10px 0;display:flex;flex-direction:column;gap:8px;
  justify-content:center}
.agenda-zeile.frei .spur::before{content:"frei";font-size:.86rem;color:var(--line);
  padding:12px 0;font-weight:600}

/* Termin */
.termin{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;
  background:var(--blue-soft);border-left:4px solid var(--blue);border-radius:12px;
  padding:14px 18px}
.termin.offen{background:#FFF4E5;border-left-color:#E8A33D}
.termin.erledigt{background:var(--bg);border-left-color:var(--line);opacity:.72}
.termin .wer{font-size:1rem;font-weight:700;color:var(--ink);margin-bottom:3px}
.termin .was{font-size:.9rem;color:var(--muted);line-height:1.45}
.termin .rechts{text-align:right;white-space:nowrap}
.termin .betrag{font-size:1.0625rem;font-weight:700;color:var(--ink)}
.termin .spanne{display:block;font-size:.84rem;color:var(--muted);margin-top:2px}

.status{display:inline-block;border-radius:999px;padding:3px 11px;font-size:.72rem;
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}
.status.bestaetigt{background:var(--blue);color:#fff}
.status.angefragt{background:#E8A33D;color:#fff}
.status.fertig{background:var(--line);color:var(--muted)}

/* Liste unter der Agenda */
.plan-liste{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);margin-top:20px}
.plan-liste .kopf{display:grid;grid-template-columns:96px 1fr 150px 96px 116px;gap:16px;
  padding:15px 24px;background:var(--bg);border-bottom:1px solid var(--line);
  font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.plan-liste .zeile{display:grid;grid-template-columns:96px 1fr 150px 96px 116px;gap:16px;
  padding:17px 24px;border-bottom:1px solid var(--line);font-size:.96rem;align-items:center}
.plan-liste .zeile:last-child{border-bottom:0}
.plan-liste .zeile b{color:var(--ink)}
.plan-liste .zeile span{color:var(--muted)}

.entwurf-band{background:var(--ink);color:#fff;border-radius:var(--radius-sm);
  padding:20px 26px;margin-bottom:32px;font-size:1rem;line-height:1.65}
.entwurf-band b{display:block;margin-bottom:5px}
.entwurf-band span{opacity:.78}

@media (max-width:980px){
  .plan-kennzahlen{grid-template-columns:1fr 1fr}
  .plan-liste .kopf{display:none}
  .plan-liste .zeile{grid-template-columns:1fr;gap:5px;padding:16px 20px}
}
@media (max-width:620px){
  .agenda-zeile{grid-template-columns:62px 1fr}
  .agenda-zeile .uhr{padding-left:16px}
  .agenda-zeile .spur{padding-right:16px}
  .termin{grid-template-columns:1fr;gap:10px}
  .termin .rechts{text-align:left}
}

/* ---------- Preisseite: Übersichtskarten und Aufklapper ---------- */
.preis-uebersicht{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}
.preis-uebersicht div{background:#fff;border:1px solid var(--line);border-radius:16px;
  padding:20px 22px;text-align:center}
.preis-uebersicht .ico{width:38px;height:38px;border-radius:12px;background:var(--blue-soft);
  color:var(--blue);display:grid;place-items:center;margin:0 auto 12px}
.preis-uebersicht .ico svg{width:19px;height:19px}
.preis-uebersicht b{display:block;font-size:.98rem;color:var(--ink);margin-bottom:3px}
.preis-uebersicht span{font-size:1.0625rem;font-weight:800;color:var(--blue);letter-spacing:-.01em}

/* Preisgruppen als Aufklapper */
.preis-acc{background:#fff;border:1px solid var(--line);border-radius:18px;
  overflow:hidden;box-shadow:var(--shadow)}
.preis-acc details{border-bottom:1px solid var(--line)}
.preis-acc details:last-child{border-bottom:0}
.preis-acc summary{
  display:flex;align-items:center;gap:14px;cursor:pointer;list-style:none;
  padding:20px 26px;font-size:1.125rem;font-weight:700;color:var(--ink);
}
.preis-acc summary::-webkit-details-marker{display:none}
.preis-acc summary .ab{margin-left:auto;font-size:.88rem;font-weight:700;color:var(--blue)}
.preis-acc summary::after{content:"+";font-size:1.3rem;font-weight:400;color:var(--muted);
  width:22px;text-align:center;flex:none}
.preis-acc details[open] summary::after{content:"–"}
.preis-acc details[open] summary{color:var(--blue)}
.preis-acc .inhalt{padding:0 26px 20px}
.preis-acc .price-row:last-child{border-bottom:0}

/* Breite, hervorgehobene Paketkarte */
.paket--breit{grid-column:1 / -1;display:grid;grid-template-columns:1fr auto;
  gap:32px;align-items:center}
.paket--breit .preis-zeile{text-align:right;margin-top:0}
.paket--breit .zonen{border:0;padding:0;margin-bottom:0}

@media (max-width:980px){
  .preis-uebersicht{grid-template-columns:1fr 1fr}
  .paket--breit{grid-template-columns:1fr;gap:20px}
  .paket--breit .preis-zeile{text-align:left}
}
@media (max-width:620px){
  .preis-uebersicht{grid-template-columns:1fr}
  .preis-acc summary{padding:16px 18px;font-size:1rem}
  .preis-acc .inhalt{padding:0 18px 16px}
}

/* Symbol in der Aufklapper-Zeile der Preisgruppen */
.preis-acc summary .sym{width:34px;height:34px;flex:none;color:var(--blue)}

/* ---------- Hinweiskasten mit Warnton ---------- */
.warnkasten{background:#FFF4E5;border:1px solid #F0C98A;border-radius:var(--radius);
  padding:30px 32px}
.warnkasten h3{color:#5E3800;margin-bottom:14px}
.warnkasten p{color:#7A4A00;font-size:1.0313rem;line-height:1.7;margin-bottom:14px}
.warnkasten p:last-child{margin-bottom:0}
.warnkasten .merker{display:block;background:rgba(255,255,255,.6);border-radius:12px;
  padding:16px 20px;margin-top:18px;font-size:.98rem;line-height:1.65;color:#5E3800}

/* ---------- Nummerierte Erklärkette ---------- */
.kette{display:grid;gap:14px}
.kette > div{display:grid;grid-template-columns:38px 1fr;gap:18px;align-items:start}
.kette .nr{width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;
  display:grid;place-items:center;font-weight:700;font-size:.95rem}
.kette h4{font-size:1.0625rem;margin-bottom:5px}
.kette p{font-size:.98rem;line-height:1.6;color:var(--muted)}

/* ---------- Ja/Nein-Listen ---------- */
.zusage > div,.offen > div{display:flex;align-items:flex-start;gap:13px;
  font-size:1rem;line-height:1.6;color:var(--muted);padding:12px 0;
  border-bottom:1px solid var(--line)}
.zusage > div:last-child,.offen > div:last-child{border-bottom:0}
.zusage b,.offen b{color:var(--ink)}
.zusage svg{width:19px;height:19px;flex:none;color:var(--blue);margin-top:3px}
.offen svg{width:19px;height:19px;flex:none;color:#E8A33D;margin-top:3px}

@media (max-width:620px){.warnkasten{padding:24px 22px}}

/* Einblenden beim Scrollen – eigenständig, ohne Umweg über eine Klasse am <html> */
.einblenden{opacity:0;transform:translateY(20px);
  transition:opacity .7s ease,transform .7s ease}
.einblenden.is-visible{opacity:1;transform:none}
/* Ohne JavaScript bleibt nichts unsichtbar */
html:not(.anim-ready) .einblenden{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .einblenden{opacity:1;transform:none;transition:none}
}

/* ---------- Scroll-Hinweis am Fuss des Heros ---------- */
.scroll-hinweis{
  display:flex;flex-direction:column;align-items:center;gap:8px;
  margin:44px auto 0;width:fit-content;
  font-size:.72rem;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--muted);
}
.scroll-hinweis svg{width:20px;height:20px;animation:sinken 1.8s ease-in-out infinite}
@keyframes sinken{
  0%,100%{transform:translateY(0);opacity:.55}
  50%{transform:translateY(7px);opacity:1}
}
@media (prefers-reduced-motion:reduce){.scroll-hinweis svg{animation:none;opacity:.8}}
@media (max-width:980px){.scroll-hinweis{display:none}}

/* ---------- Gegenüberstellung: ohne / mit Behandlung ---------- */
.vergleich{display:grid;grid-template-columns:1fr 1.06fr;gap:18px;align-items:start;
  max-width:960px;margin:0 auto}
/* Die linke Karte ist weiss wie alle anderen – der Seitengrund ist zu ähnlich,
   um sie nur über den Rahmen abzugrenzen. Zurückhaltend wirkt sie durch die
   fehlende Erhöhung, nicht durch die Fläche. */
.vergleich-spalte{background:#fff;border:1px solid var(--line);
  border-radius:var(--radius);padding:38px 34px}
.vergleich-spalte.hervor{background:#fff;border:2px solid var(--blue);
  box-shadow:0 18px 46px rgba(27,88,232,.14);padding:42px 38px}
.vergleich-spalte > h3{text-align:center;font-size:1.25rem;margin-bottom:26px;color:var(--muted)}
.vergleich-spalte.hervor > h3{color:var(--ink);font-size:1.35rem}
.vergleich-spalte.hervor .marke{color:var(--blue)}
.vergleich-liste{display:grid;gap:15px}
.vergleich-liste div{display:flex;align-items:flex-start;gap:13px;
  font-size:1rem;line-height:1.55;color:var(--muted)}
.vergleich-spalte.hervor .vergleich-liste div{color:var(--ink-2)}
.zeichen{width:22px;height:22px;border-radius:50%;flex:none;display:grid;
  place-items:center;margin-top:1px}
.zeichen.minus{background:var(--line);color:var(--muted)}
.zeichen.plus{background:var(--blue);color:#fff}
.zeichen svg{width:12px;height:12px}
.vergleich-spalte .btn{width:100%;justify-content:center;margin-top:28px}

@media (max-width:820px){
  .vergleich{grid-template-columns:1fr;gap:16px}
  .vergleich-spalte,.vergleich-spalte.hervor{padding:30px 26px}
}

/* ---------- Haarwachstumsphasen ---------- */
.phasen{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:start}
.phase{background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px 14px 6px}
.phase.hervor{border:2px solid var(--blue);background:#F7FAFF;padding:13px 13px 5px;
  box-shadow:0 18px 46px rgba(27,88,232,.14)}
.phase-bild{position:relative;line-height:0;border-radius:12px;overflow:hidden}
.phase-bild > img{display:block;width:100%;height:auto}
.phase-koerper{padding:24px 12px 26px}
.phase-koerper h3{font-size:1.7rem;letter-spacing:-.02em;margin-bottom:2px}
.phase-koerper .rolle{color:#7C8DA8;font-size:1.15rem;font-weight:500;margin-bottom:22px}
.phase-punkte{display:grid;gap:14px;padding-top:22px;border-top:1px solid var(--line)}
.phase-punkte > div{display:flex;align-items:flex-start;gap:14px;
  font-size:1rem;line-height:1.45;color:var(--ink-2)}
.phase-punkte > div > svg{box-sizing:border-box;width:25px;height:25px;flex:none;margin-top:1px;
  padding:5px;border-radius:50%;background:#DDE3EC;color:#fff}
.phase.hervor .phase-punkte > div > svg{background:var(--blue)}

.phasen-hinweis{display:flex;gap:22px;align-items:flex-start;margin-top:22px;
  background:var(--blue-soft);border-radius:var(--radius);padding:32px 34px}
.phasen-hinweis .ico{width:52px;height:52px;flex:none;border-radius:16px;background:#fff;
  display:flex;align-items:center;justify-content:center;color:var(--blue)}
.phasen-hinweis .ico svg{width:26px;height:26px}
.phasen-hinweis h3{font-size:1.3rem;margin:6px 0 10px}
.phasen-hinweis p{color:var(--muted);font-size:1.0625rem;line-height:1.65;margin:0}

@media (max-width:980px){
  .phasen{grid-template-columns:1fr}
  .phasen-hinweis{flex-direction:column;gap:16px;padding:28px 24px}
}

.rating-summary .rating-zahl{display:block;width:100%;text-align:center;
  color:var(--muted);font-size:.95rem;margin-top:6px}


/* ---------- Buchungstool ---------- */
.buch-kopf{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;
  flex-wrap:wrap;margin-bottom:26px}
.buch-kopf h1{font-size:2.1rem;letter-spacing:-.02em;margin-bottom:4px}
.buch-kopf p{color:var(--muted);margin:0;font-size:1rem}
.buch-stufen{display:flex;gap:8px;list-style:none;padding:0;margin:0}
.buch-stufen li{display:flex;align-items:center;gap:9px;padding:9px 16px;
  background:#fff;border:1px solid var(--line);border-radius:999px;
  font-size:.9rem;font-weight:600;color:var(--muted);white-space:nowrap}
.buch-stufen .nr{width:21px;height:21px;border-radius:50%;background:#DDE3EC;color:#fff;
  display:grid;place-items:center;font-size:.72rem;font-weight:800}
.buch-stufen li.ist-aktiv{border-color:var(--blue);color:var(--ink)}
.buch-stufen li.ist-aktiv .nr,.buch-stufen li.erledigt .nr{background:var(--blue)}
.buch-stufen li.erledigt{color:var(--ink-2)}

.buch-layout{display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start}
.buch-haupt{min-width:0}
.buch-zonen{display:block}
.buch-block{background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:32px 30px}
.buch-block h2{font-size:1.45rem;margin-bottom:6px}
.buch-hilfe{color:var(--muted);font-size:1rem;line-height:1.6;margin-bottom:26px}

.zgruppe{border:1px solid var(--line);border-radius:14px;margin-bottom:10px;overflow:hidden}
.zgruppe summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;
  padding:16px 18px;font-size:1.02rem;font-weight:600;color:var(--ink)}
.zgruppe summary::-webkit-details-marker{display:none}
.zgruppe summary .gt{flex:1}
.zgruppe summary .ga{font-size:.88rem;font-weight:700;color:var(--blue)}
.zgruppe summary .gz{width:24px;height:24px;border-radius:50%;background:#EDF1F7;
  color:var(--muted);font-size:.76rem;font-weight:700;display:grid;place-items:center;flex:none}
.zgruppe summary::after{content:"";width:9px;height:9px;flex:none;margin-left:2px;
  border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);
  transform:rotate(45deg) translate(-2px,-2px);transition:transform .18s}
.zgruppe[open] summary::after{transform:rotate(-135deg) translate(-3px,-3px)}
.zgruppe[open] summary{border-bottom:1px solid var(--line)}
.zgruppe .zeile{border-width:0 0 1px;border-radius:0;margin:0;padding:13px 18px}
.zgruppe .zeile:last-child{border-bottom:0}
.zgruppe .zeile.gewaehlt{background:var(--blue-soft)}
.zeile{display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;
  background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:13px 16px;
  font-family:inherit;font-size:.98rem;color:var(--ink-2);margin-bottom:8px;
  transition:border-color .15s,background .15s}
.zeile:hover{border-color:#B9C7DE}
.zeile .kasten{width:22px;height:22px;flex:none;border:1.5px solid var(--line);border-radius:7px;
  display:grid;place-items:center;color:transparent}
.zeile .kasten svg{width:13px;height:13px}
.zeile .zn{flex:1}
.zeile .zd{color:var(--muted);font-size:.86rem;flex:none}
.zeile .zp{font-weight:700;flex:none;min-width:76px;text-align:right}
.zeile.gewaehlt{border-color:var(--blue);background:var(--blue-soft)}
.zeile.gewaehlt .kasten{background:var(--blue);border-color:var(--blue);color:#fff}
.zeile.gewaehlt .zp{color:var(--blue)}

.kal{border:1px solid var(--line);border-radius:16px;padding:20px;max-width:460px}
.kal-kopf{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.kal-knopf{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);
  background:#fff;cursor:pointer;font-size:1.15rem;color:var(--ink-2)}
.kal-knopf:disabled{opacity:.35;cursor:default}
.kal-wochentage,.kal-gitter{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.kal-wochentage span{text-align:center;font-size:.75rem;font-weight:700;color:var(--muted);padding-bottom:6px}
.ktag{aspect-ratio:1;border:0;background:transparent;border-radius:50%;cursor:pointer;
  font-family:inherit;font-size:.93rem;color:var(--ink-2)}
.ktag:hover:not(:disabled){background:var(--blue-soft)}
.ktag.gesperrt{color:#CBD3E0;cursor:default}
.ktag.gewaehlt{background:var(--blue);color:#fff;font-weight:700}
.zeit-bereich{margin-top:24px;padding-top:24px;border-top:1px solid var(--line)}
.zeit-bereich > b{display:block;margin-bottom:14px;font-size:1rem}
.zeit-gitter{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.zslot{padding:12px 6px;border:1.5px solid var(--line);border-radius:10px;background:#fff;
  cursor:pointer;font-family:inherit;font-size:.95rem;color:var(--ink-2)}
.zslot:hover{border-color:#B9C7DE}
.zslot.gewaehlt{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:700}

.buch-felder{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.feld--breit{grid-column:1 / -1}
.buch-felder .feld{display:flex;flex-direction:column;gap:6px}
.buch-felder .feld span{font-size:.88rem;font-weight:600;color:var(--ink-2)}
.buch-felder input,.buch-felder textarea{border:1.5px solid var(--line);border-radius:11px;
  padding:12px 14px;font-family:inherit;font-size:1rem;color:var(--ink);background:#fff}
.buch-felder input:focus,.buch-felder textarea:focus{outline:0;border-color:var(--blue)}
.buch-zustimmung{display:flex;gap:11px;align-items:flex-start;margin-top:20px;
  font-size:.9rem;line-height:1.5;color:var(--muted)}
.buch-zustimmung input{margin-top:3px;width:17px;height:17px;flex:none;accent-color:var(--blue)}

.buch-seite{position:sticky;top:96px}
.buch-korb{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px 22px}
.korb-titel{display:block;font-size:1.05rem;margin-bottom:16px}
.korb-leer{color:var(--muted);font-size:.93rem;line-height:1.55}
.korb-zeile{display:flex;align-items:center;gap:10px;padding:9px 0;
  border-bottom:1px solid var(--line);font-size:.93rem}
.korb-zeile span{flex:1;color:var(--ink-2)}
.korb-zeile b{flex:none;font-size:.9rem}
.korb-zeile .weg{border:0;background:transparent;cursor:pointer;color:var(--muted);
  font-size:1.15rem;line-height:1;padding:0 2px}
.korb-zeile .weg:hover{color:var(--ink)}
.korb-termin{margin-top:16px;background:var(--blue-soft);border-radius:12px;padding:14px 16px;
  display:flex;flex-direction:column;gap:2px;font-size:.93rem;color:var(--ink-2)}
.korb-termin .spanne{font-weight:600;color:var(--ink)}
.korb-termin b{font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--blue);margin-bottom:4px}
.korb-rechnung{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.kz{display:flex;justify-content:space-between;gap:14px;font-size:.93rem;
  color:var(--muted);padding:5px 0}
.kz--total{color:var(--ink);font-weight:800;font-size:1.15rem;padding:10px 0 4px}
.kz--dauer{color:var(--muted);font-size:.88rem}
.korb-weiter{width:100%;justify-content:center;margin-top:18px}
.korb-zurueck{display:block;width:100%;margin-top:10px;border:0;background:transparent;
  cursor:pointer;font-family:inherit;font-size:.9rem;color:var(--muted);padding:6px}
.korb-zurueck:hover{color:var(--ink)}
.korb-fuss{margin:14px 0 0;font-size:.8rem;line-height:1.5;color:var(--muted);text-align:center}

.buch-block--fertig{text-align:center;max-width:620px;margin:0 auto}
.buch-block--fertig .haken{width:60px;height:60px;margin:0 auto 18px;border-radius:50%;
  background:var(--blue);color:#fff;display:grid;place-items:center}
.buch-block--fertig .haken svg{width:30px;height:30px}
.fertig-liste{display:grid;margin:0 0 26px;border-top:1px solid var(--line);text-align:left}
.fertig-liste > div{display:flex;justify-content:space-between;gap:18px;padding:13px 0;
  border-bottom:1px solid var(--line)}
.fertig-liste dt{color:var(--muted);font-size:.93rem;margin:0}
.fertig-liste dd{margin:0;text-align:right;font-weight:600;color:var(--ink-2)}
.fertig-aktionen{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}

@media (max-width:980px){
  .buch-layout{grid-template-columns:1fr}
  .buch-seite{position:static}
  .buch-block{padding:26px 20px}
  .buch-felder{grid-template-columns:1fr}
  .buch-kopf{align-items:flex-start}
  .buch-stufen{width:100%;overflow-x:auto;padding-bottom:4px}
}
@media (max-width:620px){
  .zeile{flex-wrap:wrap;gap:8px 12px}
  .zeile .zn{flex:1 1 100%;order:1}
  .zeile .kasten{order:0}
  .zeile .zd,.zeile .zp{order:2}
  .zeile .zp{margin-left:auto;text-align:right}
}
.keine-zeiten{grid-column:1/-1;margin:0;color:var(--muted);font-size:.97rem;line-height:1.6}

.btn[hidden],[hidden]{display:none !important}

/* ---------- Hauttypen ---------- */
.hauttypen{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.htyp{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px 22px;
  display:flex;flex-direction:column;gap:7px}
.htyp .probe{width:100%;height:54px;border-radius:12px;margin-bottom:9px;
  box-shadow:inset 0 0 0 1px rgba(12,20,36,.08)}
.htyp b{font-size:1.15rem;letter-spacing:-.01em}
.htyp .wer{font-size:.95rem;line-height:1.5;color:var(--ink-2)}
.htyp .sonne{font-size:.9rem;color:var(--muted)}
.htyp .laser{margin-top:8px;padding-top:12px;border-top:1px solid var(--line);
  font-size:.9rem;line-height:1.5;color:var(--blue);font-weight:600}
@media (max-width:980px){.hauttypen{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.hauttypen{grid-template-columns:1fr}}

/* Erstbesucher-Frage und Serienvorschlag im Buchungstool */
.erstfrage{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  background:#F5F8FD;border-radius:14px;padding:16px 18px;margin-bottom:14px}
.erstfrage > b{font-size:.98rem}
.ef-knoepfe{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}
.ef-knoepfe button{border:1.5px solid var(--line);background:#fff;border-radius:999px;
  padding:9px 16px;cursor:pointer;font-family:inherit;font-size:.9rem;color:var(--ink-2)}
.ef-knoepfe button:hover{border-color:#B9C7DE}
.ef-knoepfe button.gewaehlt{border-color:var(--blue);background:var(--blue);color:#fff;font-weight:600}
.erst-hinweis{background:var(--blue-soft);border-radius:14px;padding:18px 20px;margin-bottom:16px}
.erst-hinweis b{display:block;margin-bottom:6px;font-size:.98rem}
.erst-hinweis p{margin:0 0 14px;font-size:.93rem;line-height:1.55;color:var(--ink-2)}
.erst-hinweis button{border:0;background:var(--blue);color:#fff;border-radius:999px;
  padding:10px 20px;cursor:pointer;font-family:inherit;font-size:.9rem;font-weight:600}

.serie{text-align:left;background:#F5F8FD;border-radius:16px;padding:22px 24px;margin-bottom:24px}
.serie > b{display:block;margin-bottom:8px}
.serie p{margin:0 0 14px;font-size:.93rem;line-height:1.6;color:var(--muted)}
.serie-liste > div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;
  font-size:.94rem;border-bottom:1px solid rgba(12,20,36,.07)}
.serie-liste > div:last-child{border-bottom:0}
.serie-liste span{color:var(--muted)}

/* Wochenansicht und Halte-Uhr im Buchungstool */
.kal-umschalter{display:flex;gap:6px;justify-content:center;margin-bottom:14px}
.kal-umschalter button{border:1px solid var(--line);background:#fff;border-radius:999px;
  padding:6px 16px;cursor:pointer;font-family:inherit;font-size:.85rem;color:var(--muted)}
.kal-umschalter button.ist-aktiv{border-color:var(--blue);background:var(--blue);color:#fff;font-weight:600}
.kal--woche .kal-gitter .ktag{aspect-ratio:auto;padding:14px 0;border-radius:12px;font-size:1.05rem}
.kal--woche .kal-gitter .ktag.gewaehlt{border-radius:12px}

.halte-uhr{display:flex;align-items:center;gap:10px;margin-top:14px;
  background:#EAF4EC;border-radius:12px;padding:11px 14px;
  font-size:.88rem;line-height:1.4;color:#2A6B3C}
.halte-uhr b{font-variant-numeric:tabular-nums}
.halte-uhr .punkt{width:8px;height:8px;border-radius:50%;background:#3E9457;flex:none;
  animation:pulsieren 1.6s ease-in-out infinite}
.halte-uhr.knapp{background:#FDECEC;color:#9B2C2C}
.halte-uhr.knapp .punkt{background:#D64545}
@keyframes pulsieren{0%,100%{opacity:1}50%{opacity:.3}}
