/* =========================================================
   studio schärf. – druck // design
   Statischer Nachbau von schaerf-druck.de

   Skalierung wie auf der Live-Seite:
   - Inhaltsbereiche: 1rem = 10px bei 1440px Breite, wächst bis 1600px
     Breite mit und bleibt danach stehen (Inhalt wird zentriert).
   - Header, Hero, Seitenleiste, Footer, Rechtsseiten: var(--v) = 10px bei
     1440px, skaliert mit der vollen Fensterbreite.
   - Hero-Höhe richtet sich nach der Fensterhöhe.
   - Formular, FAQ, Bewertungskarten, Buttons, Navigation: feste px-Werte.
   - Mobil (<= 750px): 1rem = var(--v) = 10px bei 375px Breite.
   ========================================================= */

/* Milligram (Trial) enthält keine Ziffern: per unicode-range ausgenommen, Ziffern kommen aus Heebo */
@font-face{font-family:"Milligram";src:url("../fonts/Milligram-Medium-trial.woff2") format("woff2"),url("../fonts/Milligram-Medium-trial.ttf") format("truetype");font-weight:normal;font-style:normal;font-display:swap;unicode-range:U+0000-002F,U+003A-10FFFF}
@font-face{font-family:"Milligram Light Italic";src:url("../fonts/Milligram-Light-Italic-trial.woff2") format("woff2"),url("../fonts/Milligram-Light-Italic-trial.ttf") format("truetype");font-weight:normal;font-style:normal;font-display:swap;unicode-range:U+0000-002F,U+003A-10FFFF}

:root{
  --v:calc(100vw / 144);
  --zb:min(10px, calc(100vw / 144));
  --pink:#a5106b;
  --pink-nav:#a5106b; /* bewusst identisch mit --pink: ein Pinkton auf der ganzen Seite */
  --rosa:#f1bdcf;
  --grau:#c2c2c2;
  --hellgrau:#f0f0f0;
  --schatten-pink:rgba(165,32,102,.63) .38rem .38rem 1.17rem 0;
  --f-milli:"Milligram","Heebo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-milli-li:"Milligram Light Italic","Milligram","Heebo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-heebo:"Heebo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-grotesk:"Space Grotesk","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-madefor:"Wix Madefor Text","Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-helv:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --f-karla:"Karla","Helvetica Neue",Helvetica,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box}
html{font-size:calc(min(100vw, 1600px) / 144);-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:#fff;color:#000;font-family:var(--f-heebo);font-size:1.454rem;line-height:1.5;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
p{margin:0}
h1,h2,h3,h4{margin:0;font-size:inherit;font-weight:inherit}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
section{position:relative}
[id]{scroll-margin-top:20px}

/* Inhaltsbereiche: höchstens 1600px breit, zentriert */
.leistungen,.plan,.trauer,.kontakt,.faq,.galerie,.team,.geschichte,.stelle,.funnel,.downloads,.seitenhero{max-width:1600px;margin-inline:auto}

/* ---------- Typo-Bausteine ---------- */
.t-title{font-family:var(--f-milli);font-weight:700;font-size:3.78rem;line-height:1.5;letter-spacing:.05em;color:var(--pink)}
.t-title--tight{font-size:3.725rem;line-height:1.1}
.t-sub{font-family:var(--f-milli);font-weight:700;font-size:2.18rem;line-height:1.5;letter-spacing:.05em;color:var(--rosa)}
.t-body{font-family:var(--f-heebo);font-size:max(1.454rem, 14px);line-height:1.5;letter-spacing:.05em;color:#000}
.t-body p + p{margin-top:2.18rem}
.t-body strong{font-weight:700;font-style:italic}

/* ---------- Buttons (feste Größe) ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;height:40px;border:1px solid #fff;border-radius:0 10px;
  font-family:var(--f-milli);font-weight:700;font-size:16px;letter-spacing:.8px;white-space:nowrap;transition:background-color .4s ease,color .4s ease,border-color .4s ease}
.btn--grau{width:220px;background:var(--grau);color:#fff}
.btn--grau:hover{background:var(--pink);color:#fff}
.btn--weiss{width:220px;background:#fff;color:#a5a9a6}
.btn--weiss:hover{background:var(--pink);color:#fff}
.btn--outline{width:226px;background:#fff;color:var(--pink);border-color:var(--pink);font-family:var(--f-milli-li)}
.btn--outline:hover{background:var(--pink);color:#fff}
/* Alle Buttons haben dieselbe Rundung (0 10px), auch Kontakt- und Download-Button */

/* ---------- Header ---------- */
.site-header{position:absolute;top:0;left:0;width:100%;height:0;z-index:50}
.site-header__inner{position:fixed;top:0;left:0;width:100%;height:0;z-index:50;transition:transform .35s ease}
.site-header.is-hidden .site-header__inner{transform:translateY(calc(var(--v) * -12 - 80px))}
.logo{position:absolute;left:calc(var(--v) * 16.3);top:calc(var(--v) * 2.5);width:calc(var(--v) * 8.7);height:calc(var(--v) * 8.7)}
.logo img{width:100%;height:100%}
/* Menüleiste so breit wie ihr Inhalt, rechts verankert: alle Punkte sichtbar, kein Scrollen */
.navbar{position:absolute;right:calc(var(--v) * 8.6 + 1.7rem);top:calc(var(--v) * 4.5);display:flex;align-items:center;height:65px;padding-left:calc(var(--v) * .7);border-radius:0 15px;
  background:#fff url("../img/hintergrund-hellgrau.jpg") center/cover no-repeat;box-shadow:0 1px 4px rgba(0,0,0,.6)}
.nav{position:relative;height:49px}
.nav__list{display:flex;height:100%}
.nav__list::-webkit-scrollbar{display:none}
.nav__item{flex:none;display:flex;align-items:center;justify-content:center;padding:0 clamp(7px, .76vw, 11px);gap:6px}
.nav__link{font-family:var(--f-milli);font-weight:700;font-size:clamp(14px, 1.18vw, 17px);line-height:1;letter-spacing:.1em;color:var(--pink-nav);white-space:nowrap;transition:color .3s ease}
.nav__link:hover{color:var(--rosa)}
.nav__link.is-active{color:#000}
.nav__chev{display:flex;width:10px;height:10px;color:#000}
.btn-kontakt{position:relative;flex:none;margin:0 -1.7rem 0 clamp(8px, 1vw, 16px);width:120px;height:40px;display:flex;align-items:center;justify-content:center;
  background:var(--pink);border:1px solid #fff;border-radius:0 10px;color:#fff;font-family:var(--f-milli-li);font-weight:700;font-size:16px;letter-spacing:.8px;
  transition:background-color .4s ease,color .4s ease}
.btn-kontakt:hover{background:#fff;color:var(--pink);border-color:var(--pink)}
.subnav{position:absolute;top:57px;left:85px;width:232px;padding:6px;background:#fff;border-radius:0 0 20px 20px;
  opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:3}
.subnav.is-open{opacity:1;visibility:visible}
.subnav a{display:flex;align-items:center;height:37px;padding:0 12px;margin-bottom:4px;font-family:var(--f-heebo);font-weight:500;font-size:15px;color:var(--pink-nav);transition:color .2s ease}
.subnav a:last-child{margin-bottom:0}
.subnav a:hover,.subnav a.is-active{color:#000}
.burger{display:none}
.mobile-menu{display:none}

/* ---------- Seitenleiste (Telefon / Mail / Anfahrt) ---------- */
.sidebar{position:fixed;right:0;top:calc(var(--v) * 27.6);width:calc(var(--v) * 5.6);height:calc(var(--v) * 18.8);z-index:40;background:var(--pink);border-radius:0 calc(var(--v) * 1.09);
  box-shadow:0 1px 4.5px rgba(0,0,0,.6);display:flex;flex-direction:column;align-items:center;justify-content:space-around;padding:calc(var(--v) * 1.6) 0 calc(var(--v) * 2)}
.sidebar a{display:flex;color:#fff;transition:transform .2s ease}
.sidebar a:hover{transform:scale(1.15)}
.sidebar svg{width:calc(var(--v) * 2.6);height:calc(var(--v) * 2.6)}

/* ---------- Hero Startseite ---------- */
.hero{height:95.45vh;min-height:calc(var(--v) * 44 + 150px);overflow:hidden;background:#3a2030}
.hero__bild img,.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__video{opacity:0;transition:opacity .8s ease}
.hero__video.laeuft{opacity:1}
.hero__verlauf{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(165,16,107,0) 42%,rgba(165,16,107,.5) 68%,rgba(165,16,107,.9) 100%)}
.hero__inhalt{position:absolute;left:calc(var(--v) * 16.3);bottom:calc(var(--v) * 4.5);color:#fff}
.hero h1{font-family:var(--f-heebo);font-weight:700;font-size:calc(var(--v) * 5.4545);line-height:1;white-space:nowrap}
.hero__claim{margin-top:calc(var(--v) * 2.3);font-family:var(--f-milli);font-size:max(20px, 1.2626vw);line-height:1.5;letter-spacing:.05em;width:calc(var(--v) * 62.7)}
.hero__claim b{display:block;font-weight:400}
.hero__buttons{margin-top:calc(var(--v) * 1.5);display:flex;gap:calc(var(--v) * 2.2)}
.badge{display:block;margin-top:26px;width:calc(var(--v) * 15.2);height:calc(var(--v) * 3.3)}

/* ---------- Unsere Leistungen (Kacheln) ---------- */
.leistungen{height:58.5rem;background:var(--hellgrau);box-shadow:0 0 0 100vmax var(--hellgrau);clip-path:inset(0 -100vmax)}
.leistungen__titel{position:absolute;top:7.3rem;left:0;width:100%;text-align:center;font-size:3.725rem}
.kacheln{position:absolute;top:21.1rem;left:16.3rem;right:16.3rem;display:grid;grid-template-columns:repeat(4,1fr);gap:4.8rem}
/* Kacheln und Teamfotos: Jede Bildebene trägt die Rundung selbst (kein overflow:hidden nötig).
   So kann beim Überblenden keine eckige Bildecke durchscheinen. */
.kachel{--r:0 3.6rem;position:relative;display:block;aspect-ratio:32.7/33.2;border-radius:var(--r);box-shadow:var(--schatten-pink)}
.kachel__hinten,.kachel__vorne{position:absolute;inset:0;width:100%;height:100%;border-radius:var(--r)}
.kachel__hinten{object-fit:cover}
.kachel__vorne{background:center / auto 119% no-repeat;transition:opacity .3s ease-in-out}
.kachel:hover .kachel__vorne{opacity:.12}
/* Das Werbetechnik-Motiv hat breiteren Text und wird deshalb nicht vergrößert */
.kachel--werbetechnik .kachel__vorne{background-size:cover}

/* ---------- Bild + Text ---------- */
.bildkarte{position:absolute;overflow:hidden;box-shadow:var(--schatten-pink)}
.bildkarte picture{display:block;width:100%;height:100%}
.bildkarte img{width:100%;height:100%;object-fit:cover}
.plan{height:83.4rem;background:#fff}
.plan .bildkarte{left:16.3rem;top:17.25rem;width:52rem;height:48.9rem;border-radius:0 1.8rem}
.plan__text{position:absolute;left:74.3rem;top:24.6rem;width:53.4rem}
.plan__text .t-sub{margin-top:.3rem}
.plan__text .t-body{margin-top:1rem}
.plan__text .btn{margin-top:26px}
.trauer{height:70.8rem;background:#fff}
.trauer .bildkarte{left:75.7rem;top:10.9rem;width:52rem;height:48.9rem;border-radius:0 1.98rem;box-shadow:rgba(165,32,102,.63) .42rem .42rem 1.29rem 0}
.trauer__text{position:absolute;left:16.3rem;top:27.8rem;width:51.4rem}
.trauer__text .t-body{margin-top:1.3rem}

/* ---------- Bewertungen (volle Breite, Karten in fester Größe) ---------- */
.bewertungen{height:37.2rem;background:var(--rosa);overflow:hidden;display:flex;align-items:center}
.bewertungen__spur{flex:none;display:flex;gap:32px;width:max-content;animation:laufband 60s linear infinite}
.bewertungen:hover .bewertungen__spur{animation-play-state:paused}
.bewertungen--nur-mobil{display:none}
@keyframes laufband{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 16px))}}
/* Karte in em: 1em = 10px bei 438 x 234 px. Mobil wird nur die Schriftgröße der Karte verkleinert. */
.bewertung{position:relative;flex:none;font-size:10px;width:43.8em;height:23.4em;background:#fff;border-radius:0 2.2em;color:var(--pink);font-family:var(--f-karla)}
.bewertung__name{position:absolute;left:1.55em;top:1.43em;font-size:1.84em;line-height:1;font-weight:700;white-space:nowrap}
.bewertung__verif{position:absolute;left:3.03em;top:5.5em;display:flex;align-items:center;gap:.86em;color:#6d6d6d;white-space:nowrap}
.bewertung__verif span{font-size:1.27em;line-height:1}
.bewertung__verif svg{width:1.86em;height:2.25em;color:#6d6d6d}
.bewertung__sterne{position:absolute;left:22.6em;top:3.35em;display:flex}
.bewertung__sterne svg{width:3.91em;height:3.55em}
.bewertung__text{position:absolute;left:calc(2.75em + var(--x, 0) * 1em);top:calc(var(--b) * 1em - 1.8em);font-style:italic;white-space:nowrap}
.bewertung__text span{display:block;font-size:1.94em;line-height:1.191}

/* ---------- Kontakt / Formular ---------- */
.kontakt{display:grid;grid-template-columns:minmax(0,1fr) 46.5rem;column-gap:8rem;align-items:center;padding-inline:16.3rem;background:#fff}
.kontakt--start{min-height:56.3rem;padding-block:4.8rem;align-content:end}
.kontakt--mitte{min-height:62.6rem;padding-block:4.8rem;align-content:center}
.kontakt--seite{padding-top:var(--kp-oben,3.6rem);padding-bottom:var(--kp-unten,7.3rem)}
.kontakt__text{max-width:60rem}
.kontakt__text .t-title{width:46rem}
.kontakt__text .t-sub{font-size:2.25rem;margin-top:.2rem}
.kontakt__text .t-body{margin-top:1.8rem}
.formular{position:relative;left:24px;padding:24px;background:#fff;border-radius:16px;font-family:var(--f-grotesk);font-size:16px;line-height:1.5}
/* Abweichung vom Original: Formular um 24px nach rechts gerückt, damit die Felder rechts denselben Randabstand haben wie der Text links */
.formular .zeile{display:grid;grid-template-columns:1fr 1fr;gap:23px}
.formular .zeile--eng{grid-template-columns:162px 1fr;align-items:end}
.formular .zeile--eng .feld{margin-bottom:4px}
.feld{margin-bottom:24px;min-width:0}
.feld label,.feld .label{display:block;font-size:14px;line-height:17px;margin-bottom:8px}
.feld input[type=text],.feld input[type=email],.feld input[type=tel],.feld select,.feld textarea{display:block;width:100%;height:36px;border:0;border-radius:6px;background:var(--hellgrau);
  font-family:var(--f-grotesk);font-size:16px;color:#000;padding:0 12px;outline:0;transition:box-shadow .2s ease;-webkit-appearance:none;appearance:none}
.feld textarea{height:92px;padding:8px 12px;resize:none}
.feld input:focus,.feld select:focus,.feld textarea:focus{box-shadow:0 0 0 2px var(--pink)}
.feld select{color:var(--pink);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.4'%3E%3Cpath d='M5 9l7 7 7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:22px}
.tel{display:flex;align-items:center;height:36px;border-radius:6px;background:var(--hellgrau);padding-left:12px;transition:box-shadow .2s ease}
.tel:focus-within{box-shadow:0 0 0 2px var(--pink)}
.tel__land{display:flex;align-items:center;gap:3px;flex:none}
.tel__flagge{width:22px;height:14px;background:linear-gradient(#000 33.3%,#d00 33.3% 66.6%,#ffce00 66.6%)}
.tel__land svg{width:12px;height:12px}
.tel input[type=tel]{background:transparent;padding-left:6px;box-shadow:none!important}
.feld label.upload{display:flex;align-items:center;gap:10px;height:36px;width:100%;margin:0;padding:0 16px;border-radius:2px;background:var(--rosa);color:#fff;font-family:var(--f-milli-li);font-size:14px;line-height:1;cursor:pointer;overflow:hidden;white-space:nowrap;transition:background-color .2s ease}
.feld label.upload:hover{background:var(--pink)}
.upload__text{overflow:hidden;text-overflow:ellipsis}
.upload input{position:absolute;opacity:0;width:1px;height:1px}
.check{display:flex;align-items:center;gap:12px;font-size:16px;line-height:24px;margin:24px 0}
.check input{flex:none;width:16px;height:16px;margin:0;accent-color:var(--pink);border:1px solid rgba(0,0,0,.6)}
.check a{color:var(--rosa);text-decoration:underline}
.senden{width:calc(50% - 11.5px);height:41px;border-radius:100px;background:var(--pink);color:#fff;font-family:var(--f-grotesk);font-size:16px;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease}
.senden:hover{background:#fff;color:var(--pink);box-shadow:inset 0 0 0 1px var(--pink)}
.formular__meldung{margin-top:16px;font-size:14px;line-height:1.5;color:var(--pink);display:none}
.formular__meldung.is-visible{display:block}

/* ---------- FAQ (Innenmaße fest) ---------- */
.faq{background:#fff;padding:calc(8.6rem + 32px) 16.3rem calc(7.3rem + 6px)}
.faq h2{font-family:var(--f-heebo);font-weight:700;font-size:24px;line-height:1.2}
.faq__liste{margin-top:33px}
.faq__item{border-bottom:1px solid var(--pink)}
.faq__frage{display:flex;justify-content:space-between;align-items:center;width:100%;padding:22px 0;text-align:left;font-family:var(--f-helv);font-weight:700;font-size:16px;line-height:1.4;transition:padding .3s ease}
.faq__plus{position:relative;flex:none;width:16px;height:16px;margin-right:4px}
.faq__plus::before,.faq__plus::after{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:#000;transition:transform .3s ease}
.faq__plus::after{transform:rotate(90deg)}
.faq__item.is-open .faq__plus::after{transform:rotate(0)}
.faq__item.is-open .faq__frage{padding-bottom:12px}
.faq__antwort{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s ease}
.faq__item.is-open .faq__antwort{grid-template-rows:1fr}
.faq__antwort > div{overflow:hidden;font-family:var(--f-heebo);font-size:16px;line-height:1.5}
.faq__antwort p:last-child{padding-bottom:24px}

/* ---------- Footer (Breite proportional, Höhe fest) ---------- */
.site-footer{position:relative;padding:calc(var(--v) * 4.3) 0;background:#c9127a url("../img/hintergrund-pink.jpg") center/cover no-repeat}
.site-footer__logo{position:absolute;left:calc(var(--v) * 20.65);top:50%;width:calc(14.17vw - 39px);height:calc(14.17vw - 39px);transform:translate(-50%,-50%)}
.site-footer__panel{position:relative;margin-left:calc(var(--v) * 38.2);width:calc(var(--v) * 101.5);height:404px;background:#fff;border-radius:0 calc(var(--v) * 1.83)}
.fmenu{position:absolute;left:0;top:50%;width:33.33%;transform:translateY(-50%);text-align:center}
.fmenu a,.fmenu button{display:inline-block;font-family:var(--f-milli-li);font-weight:700;font-size:16px;line-height:42.5px;color:#000;transition:color .2s ease}
.fmenu a:hover,.fmenu a.is-active{color:var(--pink)}
.fmenu .zf{font-family:var(--f-heebo);font-weight:300;font-style:italic}
.fmenu__mit{position:relative}
.fmenu__mit button{position:absolute;left:calc(50% + 110px);top:0;width:20px}
.fmenu__mit svg{width:18px;height:18px;vertical-align:middle;transition:transform .2s ease}
.fmenu__mit.is-open svg{transform:rotate(180deg)}
.fmenu__sub{display:none}
.fmenu__mit.is-open + .fmenu__sub{display:block}
.fmenu__sub a{font-size:14px;line-height:30px}
.fkontakt{position:absolute;left:33.33%;top:50%;width:33.33%;transform:translateY(-50%);text-align:center;font-family:var(--f-madefor);font-size:16px;line-height:25.6px}
.fkontakt__titel{font-family:var(--f-milli);font-weight:400}
.fkontakt p + p{margin-top:25.6px}
.fkontakt .fkontakt__titel + p{margin-top:19.4px}
.fkontakt a:hover{color:var(--pink)}
.fsocial{position:absolute;left:calc(66.67% + 25px);top:calc(var(--v) * 8.7);font-family:var(--f-madefor);font-size:16px;line-height:25.6px}
.fsocial__titel{font-family:var(--f-milli);font-weight:400;margin-left:5px}
.fsocial__icons{display:flex;gap:calc(var(--v) * 1.2);margin-top:4px}
.fsocial__icons a{display:flex;width:calc(var(--v) * 4.4);height:calc(var(--v) * 4.4);align-items:center;justify-content:center;transition:color .2s ease}
.fsocial__icons a:hover{color:var(--pink)}
.fsocial__icons svg{width:77%;height:77%}
.frecht{position:absolute;left:calc(66.67% + 24px);right:16px;top:282px;font-family:var(--f-madefor);font-size:16px;line-height:25.6px}
.frecht a{text-decoration:underline}
.frecht a:hover{color:var(--pink)}
.frecht p + p{margin-top:6px;line-height:20.8px}

/* ---------- Leistungsseiten ---------- */
.seitenhero{height:97.9rem;isolation:isolate}
.seitenhero::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);z-index:-1;
  background:linear-gradient(rgba(255,255,255,.62),rgba(255,255,255,.62)),#fff url("../img/hintergrund-hellgrau.jpg") center/cover no-repeat}
.seitenhero--weiss{height:90.7rem}
.seitenhero--weiss::before{display:none}
.seitenhero .bildkarte{left:16.3rem;top:24.55rem;width:52rem;height:48.8rem;border-radius:0 3.6rem}
.seitenhero .bildkarte--logo{background:var(--pink)}
.seitenhero .bildkarte--r18{border-radius:0 1.8rem}
.seitenhero__text{position:absolute;left:74.3rem;top:50%;transform:translateY(-50%);width:53.4rem;margin-top:2.9rem}
.seitenhero__text .t-sub{margin-top:-.5rem}
.seitenhero__text .t-body{margin-top:1rem}
.seitenhero__text .btn{margin-top:2.3rem}
.seitenhero__text--ueber{margin-top:3.6rem}
.seitenhero__text--ueber .t-sub{margin-top:.3rem}
.seitenhero__text--ueber .btn{margin-top:2.6rem}

/* Galerie: Zeilen werden per JavaScript im Blocksatz gesetzt (Zielhöhe 345px, Abstand 30px) */
.galerie{background:var(--grau);box-shadow:0 0 0 100vmax var(--grau);clip-path:inset(0 -100vmax);padding:7.3rem 15.8rem 6.6rem;display:flex;flex-wrap:wrap;gap:30px}
.galerie__bild{flex:none;width:calc((100% - 90px) / 4);aspect-ratio:var(--ar, .8);overflow:hidden;border-radius:14px;cursor:zoom-in;background:var(--hellgrau)}
.galerie__bild img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.galerie__bild:hover img{transform:scale(1.04)}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(255,255,255,.97);display:none;align-items:center;justify-content:center}
.lightbox.is-open{display:flex}
.lightbox img{max-width:86vw;max-height:88vh;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.lightbox button{position:absolute;color:#000;width:50px;height:50px;display:flex;align-items:center;justify-content:center}
.lightbox button svg{width:26px;height:26px}
.lightbox__zu{top:20px;right:24px}
.lightbox__vor{right:24px;top:50%}
.lightbox__zurueck{left:24px;top:50%}

/* ---------- Über uns ---------- */
/* Team als Raster: gleiche Abstände, Seitenrand wie das Logo */
.team{display:grid;grid-template-columns:repeat(4,1fr);column-gap:4.8rem;row-gap:6.4rem;padding:7.2rem 16.3rem 10rem;background:var(--rosa);box-shadow:0 0 0 100vmax var(--rosa);clip-path:inset(0 -100vmax)}
.team__titel{grid-column:1/-1}
.team__bild{--r:0 3.6rem;position:relative;aspect-ratio:32.7/39.3;border-radius:var(--r);box-shadow:var(--schatten-pink)}
.team__bild img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:var(--r)}
.team__bild picture + picture img{transition:opacity .3s ease-in-out}
.team__person:hover .team__bild picture + picture img{opacity:0}
.team__name{margin:2.9rem 0 0 .4rem;font-family:var(--f-milli);font-weight:700;font-size:2.4rem;line-height:1.5;color:var(--pink)}
.team__rolle{margin-left:.4rem;font-family:var(--f-heebo);font-size:max(1.6rem, 13px);line-height:1.5;letter-spacing:.05em;color:#fff}

/* Geschichte: der Zeitstrahl behält ab 1440px seine Größe (wie die Grafik im Original) */
.geschichte{height:calc(24.2rem + var(--zb) * 189.2);background:#fff}
.geschichte__bg{position:absolute;top:0;bottom:0;left:50%;width:100vw;margin-left:-50vw;background:url("../img/geschichte-hintergrund.jpg") center/cover no-repeat;opacity:.16}
.geschichte__kopf{position:absolute;left:16.3rem;top:7.5rem}
.geschichte__ab{font-family:var(--f-heebo);font-weight:600;font-size:2.4rem;line-height:1.5;color:var(--pink);margin-left:-.3rem}
.geschichte__kopf .t-title{margin-top:-.8rem}
.zeitstrahl{position:absolute;left:19.6rem;top:16.9rem;width:105.5rem;height:calc(var(--zb) * 189.2);font-family:var(--f-karla);font-size:var(--zb)}
.zeitstrahl__bild{position:absolute;top:0;left:50%;width:103.9em;height:100%;transform:translateX(-50%)}
.zeitstrahl__linie{position:absolute;left:51.8em;top:8.6em;width:.3em;height:178.3em;background:var(--pink)}
.zs{position:absolute;left:0;width:100%;height:0}
.zs__punkt{position:absolute;left:49.6em;top:-2.3em;width:4.6em;height:4.6em;background:#fff}
.zs__datum{position:absolute;top:-.744em;font-weight:700;font-size:2.15em;line-height:1.488em;color:#000;white-space:nowrap}
.zs__box{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;min-height:4em;padding:.585em 1.463em;background:var(--pink);color:#fff;font-weight:700;font-size:2.05em;line-height:1.42;transform:translateY(-50%)}
.zs--l .zs__box{left:0;width:23.12em;border-radius:2em}
.zs--l .zs__datum{left:27.07em}
.zs--r .zs__box{left:27.85em;width:23.12em;border-radius:2em}
.zs--r .zs__datum{right:26.33em}
.zs--klein .zs__box{min-height:2.73em}
.zs__sub{position:absolute;left:3.54em;width:23.09em;min-height:3.146em;padding:.506em 1.348em;display:flex;align-items:center;justify-content:center;text-align:center;
  border:.112em solid var(--pink);border-radius:2.25em;background:#fff;color:#000;font-weight:700;font-size:1.78em;line-height:1.42;transform:translateY(-50%)}
.zs__pfeil{position:absolute;left:.8em;width:4.4em;height:3em;color:var(--pink);transform:translateY(-70%)}
/* Zeitstrahl: Punkte ploppen beim Scrollen nacheinander auf (nur mit JavaScript) */
.js .zs{opacity:0;transform:scale(.55);transform-origin:51.95em 0}
.js .zs.is-sichtbar{opacity:1;transform:none;transition:opacity .4s ease,transform .5s cubic-bezier(.34,1.56,.64,1)}

/* ---------- Karriere ---------- */
.stelle{background:#fff;padding:8.1rem 0 6.4rem 29.1rem}
.stelle__inhalt{width:85.5rem}
.stelle .t-sub{font-size:2.25rem;margin-top:.2rem}
.stelle .t-body{margin-top:1.8rem}
.stelle h3{font-weight:700}
.stelle ul{list-style:disc;padding-left:2.6rem}
.stelle .t-body p + p{margin-top:0}
.stelle .abstand{margin-top:2.18rem!important}

.stelle__bewerben{margin-top:3.2rem}

/* ---------- Bewerberfunnel (Karriere) ---------- */
.funnel{background:var(--hellgrau);box-shadow:0 0 0 100vmax var(--hellgrau);clip-path:inset(0 -100vmax);padding:8rem 0 9rem}
.funnel__karte{width:86rem;margin:0 auto;padding:5.6rem 6.4rem 5rem;background:#fff;border-radius:0 3.6rem;box-shadow:var(--schatten-pink);text-align:center}
.funnel__karte .t-sub{margin-top:.6rem}
.funnel__form{margin-top:3.2rem;text-align:left;font-family:var(--f-grotesk);font-size:16px;line-height:1.5}
.funnel__fortschritt{height:6px;border-radius:3px;background:var(--hellgrau);overflow:hidden}
.funnel__fortschritt span{display:block;height:100%;width:20%;background:var(--pink);border-radius:3px;transition:width .35s ease}
.funnel__zaehler{margin-top:10px;font-size:14px;color:#6d6d6d}
.funnel__schritt{display:none;min-width:0;margin:26px 0 0;padding:0;border:0}
.funnel__schritt.is-aktiv{display:block;animation:funnel-ein .35s ease}
@keyframes funnel-ein{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.funnel__schritt legend{padding:0;margin-bottom:20px;font-family:var(--f-milli);font-weight:700;font-size:max(20px, 2.4rem);line-height:1.3;letter-spacing:.03em;color:var(--pink)}
.funnel__optionen{display:grid;gap:14px}
.funnel__option{display:flex;align-items:center;gap:14px;padding:16px 20px;border:1px solid var(--grau);border-radius:0 10px;background:#fff;cursor:pointer;transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease}
.funnel__option:hover{border-color:var(--pink)}
.funnel__option input{flex:none;width:18px;height:18px;margin:0;accent-color:var(--pink)}
.funnel__option.is-gewaehlt{border-color:var(--pink);background:#fbeef4;box-shadow:inset 0 0 0 1px var(--pink)}
.funnel__option:focus-within{box-shadow:0 0 0 2px var(--pink)}
.funnel__zeile{display:grid;grid-template-columns:1fr 1fr;gap:23px}
.funnel__nav{display:flex;justify-content:space-between;align-items:center;margin-top:28px}
.funnel__zurueck{font-family:var(--f-grotesk);font-size:16px;color:#6d6d6d;text-decoration:underline}
.funnel__zurueck[hidden]{display:block;visibility:hidden}
.funnel__weiter{min-width:197px;height:41px;padding:0 28px;border-radius:100px;background:var(--pink);color:#fff;font-family:var(--f-grotesk);font-size:16px;transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,opacity .2s ease}
.funnel__weiter:hover:not(:disabled){background:#fff;color:var(--pink);box-shadow:inset 0 0 0 1px var(--pink)}
.funnel__weiter:disabled{opacity:.4;cursor:default}
.funnel__danke{margin-top:3.2rem;font-family:var(--f-heebo);font-size:16px;line-height:1.5}
.funnel__danke h3{margin-bottom:12px;font-family:var(--f-milli);font-weight:700;font-size:max(20px, 2.4rem);color:var(--pink)}

/* ---------- Bestellung Redwood Festival ---------- */
.bestellung{max-width:1600px;margin-inline:auto;background:#fff;padding:calc(var(--v) * 15) 0 12rem}
.bestellung__logo{display:block;width:44rem;height:auto;margin:0 auto 2.4rem}
.bestellung h1{font-family:var(--f-milli);font-weight:700;font-size:3.725rem;line-height:1.2;color:var(--pink);text-align:center}
.bestellung__karte{width:86rem;margin:5.6rem auto 0;padding:5rem 6.4rem;background:#fff;border-radius:0 3.6rem;box-shadow:var(--schatten-pink)}
.bestell{font-family:var(--f-grotesk);font-size:16px;line-height:1.5}
.bestell__titel{margin:40px 0 18px;font-family:var(--f-milli);font-weight:700;font-size:max(20px, 2.4rem);line-height:1.3;letter-spacing:.03em;color:var(--pink)}
.bestell__titel:first-child{margin-top:0}
.artikel{min-width:0;margin:0 0 14px;padding:16px 20px 20px;border:1px solid var(--grau);border-radius:0 10px}
.artikel legend{float:left;display:flex;justify-content:space-between;align-items:baseline;gap:16px;width:100%;padding:0;margin-bottom:14px}
.artikel__name{font-weight:700;font-size:18px}
.artikel__preis{color:var(--pink);font-weight:700;white-space:nowrap}
.artikel__groessen{clear:both;display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.menge{display:block;min-width:0;text-align:center;font-size:14px;line-height:17px;cursor:pointer}
.menge span{display:block;margin-bottom:6px}
.menge input{display:block;width:100%;height:40px;border:0;border-radius:6px;background:var(--hellgrau);font-family:var(--f-grotesk);font-size:16px;color:#000;text-align:center;padding:0 4px;outline:0;transition:box-shadow .2s ease,background-color .2s ease;-moz-appearance:textfield;appearance:textfield}
.menge input::-webkit-outer-spin-button,.menge input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.menge input:focus{box-shadow:0 0 0 2px var(--pink)}
.menge.is-gewaehlt input{background:#fbeef4;box-shadow:inset 0 0 0 1px var(--pink)}
.menge.is-gewaehlt input:focus{box-shadow:0 0 0 2px var(--pink)}
.bestell__info{margin-top:18px;font-size:14px;color:#6d6d6d}
.bestell__summe{margin-top:10px;padding-top:14px;border-top:1px solid var(--grau);font-size:18px}
.bestell__summe b{color:var(--pink)}
.bestell__zeile{display:grid;grid-template-columns:1fr 1fr;gap:23px}
.bestell__zeile--ort{grid-template-columns:140px 1fr}
.verbindlich{display:flex;align-items:flex-start;gap:16px;margin:4px 0 0;padding:18px 20px;border:1px solid var(--pink);border-radius:0 10px;background:#fbeef4}
.verbindlich svg{flex:none;width:26px;height:32px;margin-top:2px;color:var(--pink)}
.verbindlich p{font-size:15px;line-height:1.5}
.verbindlich .verbindlich__titel{margin-bottom:4px;font-family:var(--f-milli);font-weight:700;font-size:18px;letter-spacing:.03em;color:var(--pink)}
.bestell .senden{width:auto;min-width:calc(50% - 11.5px);padding:0 28px}

/* ---------- Downloads ---------- */
.downloads{background:#fff;padding:calc(var(--v) * 17) 0 14.7rem}
.downloads h1{font-family:var(--f-milli);font-weight:700;font-size:3.725rem;line-height:1;color:var(--pink-nav);text-align:center}
.downloads__liste{margin:5.6rem auto 0;width:96.3rem;display:grid;grid-template-columns:repeat(3,23rem);justify-content:space-between}
.download{text-align:center}
.download img{width:23rem;height:23rem}
.download__name{margin-top:29px;font-family:var(--f-milli-li);font-size:16px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.download__btn{margin:7px auto 0;display:flex;align-items:center;justify-content:center;width:182px;height:42px;background:var(--pink-nav);border-radius:0 10px;color:#fff;font-family:var(--f-madefor);font-weight:700;font-size:16px;transition:background-color .3s ease}
.download__btn:hover{background:#000}

/* ---------- Rechtliches (skaliert mit voller Breite, Text fest) ---------- */
.recht{background:#fff;padding:calc(var(--v) * 14) 0 calc(var(--v) * 8.6);min-height:calc(var(--v) * 100)}
.recht__logo{position:absolute;left:calc(var(--v) * 12);top:calc(var(--v) * 17.3);width:calc(var(--v) * 32.7);height:calc(var(--v) * 32.4)}
.recht__karte{margin-left:calc(var(--v) * 52.7);margin-top:calc(var(--v) * 2);width:calc(var(--v) * 82.7);padding:calc(var(--v) * 4.5) calc(var(--v) * 5.8) calc(var(--v) * 5.8);background:#fff;border-radius:calc(var(--v) * 1.8);box-shadow:0 0 calc(var(--v) * 4.5) calc(var(--v) * .9) rgba(0,0,0,.05)}
.recht__karte h1{font-family:var(--f-helv);font-weight:300;font-size:calc(var(--v) * 4.7);line-height:1.4;padding-bottom:calc(var(--v) * .9);border-bottom:1px solid var(--grau);margin-bottom:calc(var(--v) * 1.2)}
.recht__text{font-family:var(--f-heebo);font-size:17px;line-height:1.4}
.recht__text p{min-height:1.4em;overflow-wrap:anywhere}
.recht__text a{text-decoration:underline}
.hinweisbox{margin-top:10px;padding:20px 24px;border:1px dashed var(--pink);border-radius:10px;font-size:15px;line-height:1.5;color:#333}

/* =========================================================
   MOBIL
   ========================================================= */
/* Popup "30 Jahre" (Startseite), Maße von der Live-Seite */
.jubi{width:102.4rem;max-width:calc(100vw - 32px);height:-webkit-fit-content;height:fit-content;max-height:calc(100dvh - 32px);margin:auto;padding:5.6rem 7rem 5.6rem 8.3rem;border:0;background:#fff;color:#000;
  grid-template-columns:52.5rem 31.8rem;column-gap:2.8rem;align-items:start;align-content:start;overflow:auto}
.jubi[open]{display:grid;animation:jubi-ein .4s ease}
.jubi::backdrop{background:rgba(0,0,0,.6)}
.jubi[open]::backdrop{animation:jubi-ein .4s ease}
@keyframes jubi-ein{from{opacity:0}to{opacity:1}}
.jubi__titel{margin:0 0 1.2rem;font:700 3.56rem/1.4 var(--f-heebo);color:var(--pink)}
.jubi__text p{margin:0 0 2.44rem;font:400 1.745rem/1.4 var(--f-heebo)}
.jubi__text p:last-child{margin-bottom:0}
.jubi__bild{display:block;width:31.8rem;max-width:100%;height:auto}
.jubi__zu{position:absolute;top:2.5rem;right:2.5rem;width:3rem;height:3rem;padding:0;border:0;background:none;cursor:pointer}
.jubi__zu::before,.jubi__zu::after{content:"";position:absolute;top:50%;left:50%;width:2.9rem;height:2px;background:#000;transform:translate(-50%,-50%) rotate(45deg)}
.jubi__zu::after{transform:translate(-50%,-50%) rotate(-45deg)}
.jubi__zu:focus-visible{outline:2px solid var(--pink);outline-offset:4px}

/* Footer: Cookie-Einstellungen (Button im Link-Stil) */
.frecht__cookie{padding:0;border:0;background:none;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
.frecht__cookie:hover{color:var(--pink)}

/* Cookie-Banner (BOHR-MEDIA-Standard wie bohr.media), Farben nach Schärf-CI: dunkles Beere, weiße Buttons, rosa Tab-Linie */
.cookie-modal{--cc-bg:#3d0627;--cc-tabs-bg:#52093a;--cc-line:rgba(255,255,255,.2);position:fixed;inset:0;z-index:300;display:none;align-items:center;justify-content:center;padding:20px;font-family:var(--f-heebo)}
.cookie-modal.is-visible,html.cookie-offen .cookie-modal{display:flex}
html.cookie-offen{overflow:hidden}
.cookie-modal__backdrop{position:absolute;inset:0;background:rgba(51,51,51,.7)}
.cookie-modal__card{position:relative;background:var(--cc-bg);color:#fff;border:1px solid var(--cc-line);border-radius:0 16px;box-shadow:0 20px 60px rgba(0,0,0,.35);max-width:700px;width:100%;max-height:calc(100dvh - 40px);overflow-y:auto;animation:jubi-ein .25s ease}
.cookie-tabs{display:flex;background:var(--cc-tabs-bg);border-bottom:1px solid var(--cc-line)}
.cookie-tab{flex:1;border:0;background:transparent;color:#fff;cursor:pointer;font:600 15px/1.2 var(--f-heebo);padding:16px 12px;border-bottom:3px solid transparent;opacity:.75}
.cookie-tab.is-active{border-bottom-color:var(--rosa);opacity:1}
.cookie-panel{display:none;padding:24px 24px 12px}
.cookie-panel.is-active{display:block}
.cookie-panel h3{color:#fff;font:700 17px/1.3 var(--f-heebo);margin:0 0 12px}
.cookie-scroll{max-height:128px;overflow-y:auto;padding-right:10px}
.cookie-scroll::-webkit-scrollbar{width:8px}
.cookie-scroll::-webkit-scrollbar-thumb{background:#fff;border-radius:4px}
.cookie-scroll p{font-size:14px;line-height:1.55;color:rgba(255,255,255,.88);margin:0 0 10px}
.cookie-links{display:flex;gap:16px;margin-top:8px}
.cookie-links a{color:#fff;font-size:14px;font-weight:600}
.cookie-links a:hover{text-decoration:underline}
.cookie-toggles{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--cc-line);border-bottom:1px solid var(--cc-line);margin-top:12px}
.cookie-toggle{display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px 8px;font-size:14px;font-weight:600;cursor:pointer;position:relative}
.cookie-toggle + .cookie-toggle{border-left:1px solid var(--cc-line)}
.cookie-toggle input{position:absolute;opacity:0;width:0;height:0}
.cookie-toggle i{position:relative;width:44px;height:24px;border-radius:12px;background:#1c0212;transition:background .15s ease}
.cookie-toggle i::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s ease,background .15s ease}
.cookie-toggle input:checked + i{background:#fff}
.cookie-toggle input:checked + i::after{transform:translateX(20px);background:var(--pink)}
.cookie-toggle input:disabled + i{background:#d6d6d6;opacity:.85}
.cookie-toggle input:disabled + i::after{background:#ababab}
.cookie-toggle input:focus-visible + i{outline:2px solid #fff;outline-offset:3px}
.cookie-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px 24px 24px}
.cookie-btn{border:0;border-radius:0 8px;background:#fff;color:#000;cursor:pointer;font:700 14px/1.2 var(--f-heebo);padding:13px 10px;transition:background .15s ease,color .15s ease}
.cookie-btn:hover{background:var(--rosa)}
.cookie-btn:focus-visible{outline:2px solid var(--rosa);outline-offset:2px}
@media (max-width:560px){
  .cookie-panel{padding:20px 18px 10px}
  .cookie-toggles{grid-template-columns:repeat(2,1fr)}
  .cookie-toggle:nth-child(3){border-left:0}
  .cookie-toggle:nth-child(n+3){border-top:1px solid var(--cc-line)}
  .cookie-actions{grid-template-columns:1fr;padding:16px 18px 20px}
}

@media (max-width:1024px){
  /* Werte aus der mobilen Live-Seite bei 375px Breite gemessen (1rem = 10px) */
  :root{--v:min(calc(100vw / 37.5), 14px)}
  html{font-size:min(calc(100vw / 37.5), 14px)}
  body{font-size:1.3rem}
  .leistungen,.plan,.trauer,.kontakt,.faq,.galerie,.team,.geschichte,.stelle,.funnel,.downloads,.seitenhero{max-width:none;margin-inline:0}
  [id]{scroll-margin-top:1rem}
  .t-title{font-size:2.5rem;line-height:1.5;text-align:center}
  .t-title--tight{font-size:2.5rem;line-height:1.1}
  .t-sub{font-size:2rem;line-height:1.2;text-align:center;color:#a5a9a6}
  .t-body{font-size:1.3rem;line-height:1.5;text-align:center}
  .t-body p + p{margin-top:1.95rem}
  .btn{height:3rem;font-size:1.3rem;letter-spacing:.05em;border-radius:0 1rem}
  .btn--outline{width:13.7rem;background:var(--pink);color:#fff;border-color:var(--pink);font-family:var(--f-milli);font-weight:700}

  /* Header: Logo und Menü-Knopf, blendet beim Runterscrollen aus wie am Desktop */
  .site-header.is-hidden .site-header__inner{transform:translateY(-8rem)}
  .menu-offen .site-header__inner{transform:none!important}
  .logo{left:3.2rem;top:1rem;width:5.1rem;height:5.1rem}
  .navbar{display:none}
  .burger{display:flex;flex-direction:column;justify-content:space-between;position:absolute;right:2.2rem;top:2.5rem;width:3rem;height:2rem;z-index:61}
  .burger span{display:block;height:.15rem;background:var(--pink);transition:transform .3s ease,opacity .3s ease}
  .menu-offen .burger span:nth-child(1){transform:translateY(.92rem) rotate(45deg)}
  .menu-offen .burger span:nth-child(2){opacity:0}
  .menu-offen .burger span:nth-child(3){transform:translateY(-.92rem) rotate(-45deg)}
  .mobile-menu{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:60;background:#fff;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}
  .menu-offen .mobile-menu{opacity:1;visibility:visible}
  .mobile-menu a{font-family:var(--f-milli);font-weight:700;font-size:2rem;letter-spacing:.1em;color:var(--pink-nav);line-height:2}
  .mobile-menu a.is-active{color:#000}
  .mobile-menu .klein{font-family:var(--f-heebo);font-weight:500;font-size:1.6rem;letter-spacing:0;line-height:1.7}
  .mobile-menu .btn-kontakt{position:static;margin:1.4rem 0 0;width:16rem;height:4rem;color:#fff;font-family:var(--f-milli-li);letter-spacing:.05em;font-size:1.6rem;border-radius:0 1rem}
  body.menu-offen{overflow:hidden}

  /* Handy/Tablet: Schnellkontakt als kompakte Leiste unten rechts statt am Textrand */
  .sidebar{top:auto;bottom:1.6rem;right:1.6rem;width:auto;height:auto;flex-direction:row;gap:2.4rem;padding:1.1rem 2rem;border-radius:0 1.2rem;box-shadow:0 2px 10px rgba(0,0,0,.35)}
  .sidebar svg{width:2rem;height:2rem}

  /* Hero */
  .hero{height:64.9rem;min-height:0}
  .hero__verlauf{background:linear-gradient(to bottom,rgba(165,16,107,0) 35%,rgba(140,20,95,.62) 64%,rgba(150,18,100,.95) 86%)}
  .hero__inhalt{left:3rem;right:2.2rem;bottom:2.9rem}
  .hero h1{font-size:2.5rem;line-height:1;white-space:normal}
  .hero__claim{margin-top:.4rem;width:auto;font-size:1.3rem;line-height:1.95rem}
  .hero__claim b{display:block;max-width:30.2rem;font-weight:700;font-size:2rem;line-height:3rem;margin-bottom:.8rem}
  .hero__buttons{margin-top:1.2rem;gap:.5rem}
  .hero__buttons .btn{flex:152 1 0;width:auto;height:4rem;background:var(--pink);color:#fff;border-color:#fff;font-family:var(--f-milli-li);font-weight:400;font-size:1.3rem;border-radius:0 1rem}
  .hero__buttons .btn + .btn{flex-grow:166}
  .badge{margin-top:1.6rem;width:13.2rem;height:2.8rem}

  /* Leistungen */
  .leistungen{height:auto;padding:1.9rem 0 1.8rem}
  .leistungen__titel{position:static;font-size:2.5rem;line-height:1.5}
  .kacheln{position:static;margin-top:3.9rem;grid-template-columns:15rem;justify-content:center;gap:1.85rem}
  .kachel{--r:0 .94rem;height:15rem;box-shadow:rgba(96,15,12,.33) .1rem .1rem .3rem}

  /* Bild + Text */
  .plan,.trauer{height:auto;display:flex;flex-direction:column;align-items:center}
  .plan{padding:6.4rem 3rem 4.6rem}
  .bildkarte{position:relative;left:auto!important;top:auto!important;box-shadow:rgba(96,15,12,.33) .1rem .1rem .3rem!important}
  .plan .bildkarte{width:26.6rem;height:28.3rem;border-radius:0 .47rem}
  .plan__text,.trauer__text{position:static;width:100%;display:flex;flex-direction:column;align-items:center}
  .plan__text{margin-top:3.3rem}
  .plan__text .t-sub{margin-top:.3rem}
  .plan__text .t-body{margin-top:2rem}
  .plan__text .btn{margin-top:1.9rem}
  .trauer{padding:2rem 3rem 1.2rem}
  main.seite-start{display:flex;flex-direction:column}
  main.seite-start .bewertungen{order:1}
  main.seite-start .trauer{order:2}
  main.seite-start .kontakt{order:3}
  main.seite-start .faq{order:4}
  .trauer .bildkarte{margin-top:2.1rem;width:26.6rem;height:28.4rem;border-radius:0 .47rem}
  .trauer__text .t-body{margin-top:1.3rem}

  /* Bewertungen: Karten im Maßstab 0,484 der Desktop-Karte */
  .bewertungen{height:22.5rem}
  main.seite-start .bewertungen{height:21.4rem}
  .bewertungen--nur-mobil{display:flex}
  .bewertungen__spur{gap:3rem;animation-duration:45s}
  @keyframes laufband{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 1.5rem))}}
  .bewertung{font-size:.62rem}
  .bewertungen--klein{height:21.4rem}
  .bewertungen--klein .bewertung{font-size:.62rem}

  /* Kontakt */
  .kontakt,.kontakt--start,.kontakt--mitte,.kontakt--seite{display:block;height:auto;padding:6rem 0 3.2rem}
  .kontakt__text{width:auto;max-width:none;padding:0 3rem;display:flex;flex-direction:column;align-items:center}
  .kontakt__text .t-title{width:auto}
  .kontakt__text .t-sub{font-size:2rem;line-height:1.5;margin-top:.4rem;color:#c2c2c2}
  .kontakt__text .t-body{margin-top:2rem}
  .formular{left:0;margin:1.9rem 0 0 3rem;width:32rem;padding:2.4rem 2.4rem 2.3rem;border-radius:1.6rem;font-size:1.3rem}
  .formular .zeile,.formular .zeile--eng{grid-template-columns:1fr;gap:0}
  .formular .zeile--eng .feld{margin-bottom:2.4rem}
  .formular .zeile--eng .feld:last-child{margin-bottom:0}
  .feld{margin-bottom:2.4rem}
  .feld label,.feld .label{font-size:1.3rem;line-height:1.6rem;margin-bottom:.8rem}
  .feld input[type=text],.feld input[type=email],.feld input[type=tel],.feld select,.tel{height:3.2rem;font-size:1.3rem;border-radius:.6rem;padding:0 1.2rem}
  .tel input[type=tel]{padding-left:.6rem}
  .tel__flagge{width:2.2rem;height:1.4rem}
  .feld select{background-position:right 1rem center;background-size:2rem}
  .feld textarea{height:9.2rem;font-size:1.3rem;border-radius:.6rem;padding:.8rem 1.2rem}
  .feld label.upload{width:17.3rem;height:4rem;padding:0 1.6rem;gap:1rem;font-size:1.4rem;border-radius:.2rem}
  .check{font-size:1.6rem;line-height:1.95rem;gap:1.2rem;margin:2.4rem 0}
  .check input{width:1.6rem;height:1.6rem}
  .senden{width:100%;height:3.8rem;font-size:1.3rem}
  .formular__meldung{font-size:1.2rem;margin-top:1.4rem}
  /* Startseite und Über uns: größere Formularschrift als auf den Leistungsseiten */
  .formular--gross .feld label,.formular--gross .feld .label{font-size:1.8rem;line-height:2.2rem}
  .formular--gross .feld input[type=text],.formular--gross .feld input[type=email],.formular--gross .feld input[type=tel],.formular--gross .feld select,.formular--gross .tel{height:3.8rem;font-size:1.8rem}
  .formular--gross .feld textarea{font-size:1.8rem}
  .formular--gross .check{font-size:1.8rem;line-height:2.7rem}

  /* FAQ */
  .faq{padding:4rem 3rem 7.3rem}
  .faq h2{font-size:2rem}
  .faq__liste{margin-top:1.5rem}
  .faq__frage{font-size:1.3rem;padding:1.9rem 0;gap:2rem}
  .faq__plus{width:2rem;height:2rem;margin-right:0;align-self:flex-start;margin-top:-.1rem}
  .faq__item.is-open .faq__frage{padding-bottom:1rem}
  .faq__antwort > div{font-size:1.3rem}
  .faq__antwort p:last-child{padding-bottom:1.9rem}

  /* Footer */
  .site-footer{padding:6.2rem 3rem 9rem}
  .site-footer__logo{position:static;display:block;margin:0 auto;width:15.1rem;height:15.1rem;transform:none}
  .site-footer__panel{margin:4rem 0 0;width:31.5rem;height:auto;padding:3.2rem 0;border-radius:0 0 3.2rem 3.2rem;display:flex;flex-direction:column;align-items:center}
  .fmenu,.fkontakt,.fsocial,.frecht{position:static;width:auto;transform:none;text-align:center}
  .fmenu a,.fmenu button{font-family:var(--f-madefor);font-weight:400;font-size:1.3rem;line-height:3.8rem}
  .fmenu .zf{font:inherit}
  .fmenu__mit button{left:calc(50% + 9.4rem);width:2rem}
  .fmenu__mit svg{width:1.6rem;height:1.6rem}
  .fmenu__sub a{font-size:1.6rem;line-height:4.25rem}
  .fkontakt{margin-top:3.2rem;font-size:1.3rem;line-height:2.08rem}
  .fkontakt p + p{margin-top:2.08rem}
  .fkontakt .fkontakt__titel + p{margin-top:1.9rem}
  .fsocial{margin-top:4.8rem;font-size:1.3rem;line-height:2.08rem}
  .fsocial__titel{margin-left:0}
  .fsocial__icons{justify-content:center;gap:.4rem;margin-top:.3rem}
  .fsocial__icons a{width:3.8rem;height:3.8rem}
  .fsocial__icons svg{width:2.8rem;height:2.8rem}
  .frecht{margin-top:3.2rem;font-size:1.3rem;line-height:2.08rem}
  .frecht p + p{margin-top:.6rem;line-height:1.69rem}

  /* Leistungsseiten, Karriere, Über uns: Kopfbereich */
  .seitenhero,.seitenhero--weiss{height:auto;padding:8rem 3rem 4rem;display:flex;flex-direction:column;align-items:center}
  .seitenhero .bildkarte{width:21.6rem;height:23rem;border-radius:0 .94rem}
  .seitenhero .bildkarte--logo{width:26.6rem;height:28.3rem}
  .seitenhero__text,.seitenhero__text--ueber{position:static;transform:none;width:100%;margin-top:3.2rem;display:flex;flex-direction:column;align-items:center}
  .seitenhero .t-title{font-size:3.5rem}
  .seitenhero__text .t-sub{margin-top:.5rem}
  .seitenhero__text .t-body{margin-top:1.4rem}
  .seitenhero__text .btn{margin-top:2.6rem;width:22.6rem;height:4rem;font-family:var(--f-milli-li);font-weight:400}
  .seitenhero__text .btn--r15{width:17rem}
  .bildkarte--logo + .seitenhero__text .t-sub{margin-top:.1rem}
  .bildkarte--logo + .seitenhero__text .t-body{margin-top:1.2rem}
  .bildkarte--logo + .seitenhero__text .btn{margin-top:2.3rem}
  .seitenhero--weiss{padding:6.4rem 3rem 3rem}
  .seitenhero--weiss .bildkarte,.seitenhero--weiss .bildkarte--r18{width:26.6rem;height:28.3rem;border-radius:0 .47rem}
  .seitenhero--weiss .t-title{font-size:2.5rem}
  .seitenhero--weiss .seitenhero__text .t-sub{margin-top:.4rem}
  .seitenhero--weiss .seitenhero__text .t-body{margin-top:2rem}
  .seitenhero--weiss .seitenhero__text .btn{margin-top:2rem;width:13.7rem;height:3rem;font-family:var(--f-milli);font-weight:700}

  /* Galerie: eine Spalte */
  .galerie{padding:1.9rem 0 2rem;flex-direction:column;flex-wrap:nowrap;align-items:center;gap:3rem}
  .galerie__bild{width:26.3rem!important;height:auto!important;aspect-ratio:var(--ar, .8);border-radius:.8rem}

  /* Über uns */
  .team{display:block;padding:1.9rem 0 2.8rem}
  .team__person{width:30.7rem;margin:2.7rem auto 0}
  .team__titel + .team__person{margin-top:2.9rem}
  .team__bild{--r:0 .94rem;aspect-ratio:auto;height:27.4rem;box-shadow:rgba(96,15,12,.33) .1rem .1rem .3rem}
  .team__name{margin:.6rem 0 0;font-size:2rem;text-align:center}
  .team__rolle{margin:0;font-size:1.3rem;text-align:center}
  .geschichte{height:auto;padding:3.4rem 0 4rem}
  .geschichte__kopf{position:static;text-align:center}
  .geschichte__ab{font-size:2rem;margin:0}
  .geschichte__kopf .t-title{margin-top:-.3rem}
  .zeitstrahl{position:relative;left:auto;top:auto;width:auto;height:auto;overflow:visible;margin:2.4rem 3rem 0;padding-left:3.2rem;font-size:1rem}
  .zeitstrahl__bild{position:static;width:auto;height:auto;transform:none}
  .zeitstrahl__linie{left:.9rem;top:0;height:100%;width:.2rem}
  .zs{position:relative;top:auto!important;height:auto;margin-bottom:2.4rem}
  .js .zs{transform-origin:0 1.2rem}
  .zs__punkt{left:-3.2rem;top:.2rem;width:2rem;height:2rem;box-shadow:0 0 0 .1rem var(--rosa)}
  .zs__datum,.zs--l .zs__datum,.zs--r .zs__datum{position:static;font-size:1.5rem;line-height:2.4rem}
  .zs__box,.zs--l .zs__box,.zs--r .zs__box{position:static;transform:none;width:auto;min-height:0;margin-top:.6rem;padding:1rem 1.8rem;border-radius:2rem;font-size:1.3rem}
  .zs__sub{position:static;transform:none;width:auto;min-height:0;margin:.8rem 0 0 2rem;padding:.7rem 1.4rem;font-size:1.15rem;border-width:.15rem;border-radius:2rem}
  .zs__pfeil{display:none}

  /* Karriere */
  .stelle{padding:4rem 2.7rem 4rem}
  .stelle__inhalt{width:auto}
  .stelle .t-title{font-size:2.4rem;line-height:1.1}
  .stelle .t-sub{font-size:1.6rem;line-height:1.2;margin:.4rem auto 0;width:25rem;color:var(--rosa)}
  .stelle .t-body{margin-top:2.8rem;padding:0 1.6rem 0 1.4rem;text-align:left}
  .stelle ul{padding-left:2.3rem}
  .stelle .abstand{margin-top:1.95rem!important}

  .stelle__bewerben{display:flex;margin:2.8rem auto 0;width:17rem;height:4rem;font-family:var(--f-milli-li);font-weight:400}
  .funnel{padding:4rem 3rem 5rem}
  .funnel__karte{width:auto;padding:3rem 2rem 2.6rem;border-radius:0 1.5rem;box-shadow:rgba(96,15,12,.33) .1rem .1rem .3rem}
  .funnel__form{margin-top:2.2rem;font-size:1.4rem}
  .funnel__zaehler{font-size:1.2rem}
  .funnel__schritt{margin-top:2rem}
  .funnel__schritt legend{font-size:1.8rem;margin-bottom:1.4rem}
  .funnel__optionen{gap:1rem}
  .funnel__option{padding:1.2rem 1.4rem;gap:1rem;border-radius:0 1rem}
  .funnel__zeile{grid-template-columns:1fr;gap:0}
  .funnel__nav{margin-top:2.2rem}
  .funnel__zurueck{font-size:1.4rem}
  .funnel__weiter{min-width:15rem;height:3.8rem;font-size:1.4rem}
  .funnel__danke{font-size:1.4rem}
  .funnel__danke h3{font-size:1.8rem}

  /* Bestellung Redwood Festival */
  .bestellung{max-width:none;margin-inline:0;padding:11rem 3rem 6rem}
  .bestellung__logo{width:28rem;margin-bottom:1.6rem}
  .bestellung h1{font-size:2.2rem}
  .bestellung__karte{width:auto;margin-top:3.2rem;padding:3rem 2rem 2.6rem;border-radius:0 1.5rem;box-shadow:rgba(96,15,12,.33) .1rem .1rem .3rem}
  .bestell{font-size:1.4rem}
  .bestell__titel{margin:3.2rem 0 1.4rem;font-size:1.8rem}
  .artikel{margin-bottom:1.2rem;padding:1.4rem 1.4rem 1.6rem;border-radius:0 1rem}
  .artikel legend{margin-bottom:1.2rem;gap:1rem}
  .artikel__name{font-size:1.6rem}
  .artikel__groessen{gap:.6rem}
  .menge{font-size:1.2rem;line-height:1.5rem}
  .menge span{margin-bottom:.5rem}
  .menge input{height:3.8rem;font-size:1.6rem;border-radius:.6rem}
  .bestell__info{margin-top:1.6rem;font-size:1.2rem}
  .bestell__summe{font-size:1.6rem}
  .bestell__zeile{grid-template-columns:1fr;gap:0}
  .bestell__zeile--ort{grid-template-columns:9rem 1fr;gap:1.2rem}
  .verbindlich{gap:1.2rem;padding:1.4rem;border-radius:0 1rem}
  .verbindlich svg{width:2.2rem;height:2.7rem}
  .verbindlich p{font-size:1.3rem}
  .verbindlich .verbindlich__titel{font-size:1.6rem}
  .bestell .check{font-size:1.4rem}
  .bestell .senden{width:100%;min-width:0;padding:0}

  /* Downloads */
  .downloads{padding:11rem 0 8rem}
  .downloads h1{font-size:2.5rem}
  .downloads__liste{margin-top:4.2rem;width:auto;grid-template-columns:18.2rem;justify-content:center;gap:8.6rem}
  .download img{width:17.2rem;height:17.2rem;margin:0 auto}
  .download__name{margin-top:1.7rem;font-size:1.3rem;line-height:1.4rem;overflow:visible}
  .download__btn{margin-top:1rem;width:18.2rem;height:4.2rem;font-size:1.3rem;border-radius:0 1rem}

  /* Rechtliches: ohne Logo, Karte über die Breite */
  .recht{padding:11rem 3rem 4rem;min-height:0}
  .recht__logo{display:none}
  .recht__karte{margin:0;width:auto;padding:2rem 1.3rem;border-radius:1.54rem;box-shadow:0 0 1.17rem .23rem rgba(0,0,0,.05)}
  .recht__karte h1{font-size:2.5rem;line-height:1.24;padding-bottom:2rem;margin-bottom:2rem}
  .recht__text{font-size:1.3rem;line-height:1.4}
  .hinweisbox{font-size:1.2rem;padding:1.4rem}
  .lightbox img{max-width:94vw;max-height:80vh}
  .lightbox__vor,.lightbox__zurueck{width:44px;height:44px;margin-top:-22px;background:rgba(255,255,255,.92);border-radius:50%;box-shadow:0 2px 10px rgba(0,0,0,.25)}
  .lightbox__vor{right:12px}
  .lightbox__zurueck{left:12px}
  .jubi{width:calc(100vw - 32px);padding:4.8rem 2.2rem 2.4rem;grid-template-columns:1fr;row-gap:2rem}
  .jubi__titel{font-size:2.4rem;margin-bottom:1rem;padding-right:2rem}
  .jubi__text p{font-size:1.45rem;margin-bottom:1.6rem}
  .jubi__bild{width:22rem;margin:0 auto}
  .jubi__zu{top:1.4rem;right:1.4rem}
}
/* Tablet (751–1024px): mobile Ansicht mit begrenzter Grundgröße, schmale Blöcke mittig */
@media (min-width:751px) and (max-width:1024px){
  .formular,.site-footer__panel{margin-left:auto;margin-right:auto}
  .kacheln{grid-template-columns:repeat(2,15rem)}
  .team{display:grid;grid-template-columns:repeat(2,minmax(0,26rem));justify-content:center;column-gap:3rem;row-gap:0;padding-inline:3rem}
  .team__titel{grid-column:1/-1}
  .team__person{width:auto;margin:2.7rem 0 0}
  .team__bild{height:auto;aspect-ratio:30.7/27.4}
  .zeitstrahl{width:min(56rem, calc(100% - 6rem));margin-inline:auto}
  /* Jubiläums-Popup: Text und Bild nebeneinander wie am Desktop */
  .jubi{width:min(calc(100vw - 48px), 76rem);grid-template-columns:minmax(0,1fr) 21rem;column-gap:2.8rem;align-items:center;padding:4.4rem 4rem 4rem}
  .jubi__titel{font-size:2.2rem}
  .jubi__text p{font-size:1.2rem;margin-bottom:1.3rem}
  .jubi__bild{width:100%}
}

/* Handy: Bild im Jubiläums-Popup kleiner, damit weniger gescrollt werden muss */
@media (max-width:750px){
  .jubi__bild{width:17rem}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .bewertungen__spur{animation:none}
  .js .zs{opacity:1;transform:none}
  .funnel__schritt.is-aktiv{animation:none}
  .jubi[open],.jubi[open]::backdrop{animation:none}
}
