:root{
  --gruen:#7BA02D; --gruen-dark:#6A8B26; --hell:#B0C681;
  --braun:#432D22; --braun-tief:#33211A; --creme:#F3F1E9;
  --gold:#B8952F; --silber:#8A9198; --bronze:#A6673A; --rot:#BE1824;
  --text:#2E2A25; --side:280px;
  --ease:cubic-bezier(.23,1,.32,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Open Sans",system-ui,sans-serif;color:var(--text);background:var(--creme);
  font-size:17.5px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%}
p{margin-bottom:16px;text-wrap:pretty}
h1,h2,h3{text-wrap:balance}
a{color:var(--gruen-dark)}
strong{font-weight:700}

/* ===== Sidebar ===== */
.side{position:fixed;top:0;left:0;width:var(--side);height:100vh;background:var(--gruen);z-index:100;
  display:flex;flex-direction:column;align-items:center;padding:26px 20px;overflow-y:auto}
.side::-webkit-scrollbar{width:0}
.side .logo{width:190px;height:auto;margin-bottom:22px}
.side .titel{font-size:11.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--braun);opacity:.75;margin-bottom:10px}
.side nav{width:100%;display:flex;flex-direction:column;gap:2px;margin-bottom:20px}
.side nav a{display:block;text-align:center;text-decoration:none;color:var(--braun);font-weight:700;
  font-size:14.5px;padding:10px 6px;border-radius:3px;transition:background .2s,color .2s}
.side nav a:hover,.side nav a:focus-visible{background:rgba(67,45,34,.14)}
.side nav a.on{background:var(--braun);color:#fff}
.side nav a.sub{font-size:13.5px;font-weight:600;opacity:.9}
.side .cta{display:block;width:100%;text-align:center;text-decoration:none;background:var(--hell);
  color:var(--braun);font-weight:800;font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;
  padding:13px 10px;border-radius:4px;transition:background .2s;margin-bottom:auto}
.side .cta:hover,.side .cta:focus-visible{background:#fff}
.side .rhh{width:180px;height:auto;margin:28px 0 16px}
.side .social{display:flex;gap:9px}
.side .social a{width:36px;height:36px;border-radius:50%;background:var(--braun);display:flex;
  align-items:center;justify-content:center;transition:background .2s}
.side .social a:hover{background:#fff}
.side .social svg{width:16px;height:16px;fill:#fff}
.side .social a:hover svg{fill:var(--braun)}

main{margin-left:var(--side)}
.inner{max-width:1080px;margin:0 auto;padding:0 46px}
.schmal{max-width:760px}

/* ===== Schräge Kästen ===== */
.slant{display:inline-block;background:var(--gruen);color:#fff;font-weight:800;text-transform:uppercase;
  line-height:1.06;padding:.16em .42em;margin:.09em 0;box-shadow:0 3px 14px rgba(0,0,0,.22)}
.slant.a{transform:rotate(-1.6deg)}
.slant.b{transform:rotate(1.1deg)}
.slant.c{transform:rotate(-.7deg)}
.rotseite .slant{background:var(--rot)}

/* ===== Hero ===== */
.hero{position:relative;min-height:82vh;display:flex;align-items:center;padding:80px 0;color:#fff;
  background-color:var(--braun-tief);background-size:cover;background-position:center}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.62) 100%)}
.hero .inner{position:relative;width:100%}
.hero h1{font-size:clamp(28px,4.2vw,54px);margin-bottom:24px;font-weight:800}
.hero .datum{display:inline-block;background:#fff;color:var(--gruen);font-weight:800;text-transform:uppercase;
  letter-spacing:.03em;font-size:clamp(13px,1.5vw,16px);padding:11px 20px;border-radius:3px;box-shadow:0 3px 14px rgba(0,0,0,.2)}
.rotseite .hero .datum{color:var(--rot)}
.hero .sub{color:#fff;font-size:clamp(17px,1.9vw,21px);max-width:32em;margin:24px 0 30px;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.hero .aktionen{display:flex;gap:12px;flex-wrap:wrap}
.hero .foto-credit{position:absolute;right:20px;bottom:12px;font-size:11px;color:rgba(255,255,255,.55);letter-spacing:.06em;text-transform:uppercase}

/* ===== Sektionen ===== */
section{padding:88px 0}
.holz{background:linear-gradient(rgba(51,33,26,.82),rgba(51,33,26,.82)),url("bilder/design/RHH_Holz_Hintergrund-scaled.jpg") center/cover fixed;color:#fff}
.hellgruen{background:var(--hell);color:var(--braun)}
.creme{background:var(--creme)}
.weiss{background:#FBFAF6}
.gruenbg{background:var(--gruen);color:#fff}
.rotbg{background:var(--rot);color:#fff}
.holz a{color:var(--hell)}
.gruenbg a,.rotbg a{color:#fff;font-weight:700}

h2{font-size:clamp(26px,3.4vw,42px);margin-bottom:18px;line-height:1.06;font-weight:800;text-transform:uppercase;letter-spacing:-.005em}
h3{font-size:21px;font-weight:800;color:var(--braun);margin-bottom:10px;line-height:1.25}
.holz h3,.gruenbg h3,.rotbg h3{color:#fff}
.kicker{display:block;font-size:12.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--gruen);margin-bottom:14px}
.holz .kicker{color:var(--hell)}
.gruenbg .kicker,.hellgruen .kicker{color:var(--braun)}
.rotseite .kicker{color:var(--rot)}
.rotseite .holz .kicker,.rotseite .rotbg .kicker{color:#fff;opacity:.8}
.lead{font-size:clamp(18px,1.8vw,21px);max-width:40em;margin-bottom:30px;line-height:1.55}
.holz .lead{color:rgba(255,255,255,.9)}
.gruenbg .lead,.rotbg .lead{color:rgba(255,255,255,.94)}
.zweispaltig{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:56px;align-items:start}
.zweispaltig.umgekehrt{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
.zweispaltig img{width:100%;height:auto;border-radius:6px;display:block;box-shadow:0 8px 28px rgba(0,0,0,.25)}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--gruen);color:#fff;border:none;cursor:pointer;font-family:inherit;
  font-weight:800;font-size:13.5px;letter-spacing:.06em;text-transform:uppercase;padding:15px 24px;min-height:48px;
  border-radius:4px;transition:background .2s,transform .15s;text-decoration:none;white-space:nowrap}
.btn:hover,.btn:focus-visible{background:var(--braun)}
.btn:active{transform:scale(.97)}
.btn.hell{background:var(--hell);color:var(--braun)}
.btn.hell:hover,.btn.hell:focus-visible{background:#fff}
.btn.weiss{background:#fff;color:var(--braun)}
.btn.weiss:hover,.btn.weiss:focus-visible{background:var(--hell)}
.btn.rand{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.75)}
.btn.rand:hover,.btn.rand:focus-visible{background:#fff;color:var(--braun)}
.btn.braun{background:var(--braun)}
.btn.braun:hover,.btn.braun:focus-visible{background:var(--gruen)}
.btn.rot{background:var(--rot)}
.btn.rot:hover,.btn.rot:focus-visible{background:var(--braun)}
.btn.gross{font-size:15px;padding:18px 30px}
.btn svg{width:17px;height:17px;fill:currentColor;flex:0 0 auto}
.aktionen{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.hinweis{font-size:14px;opacity:.75;margin-top:12px}

/* ===== Zahlen und Punkteraster ===== */
.dots{display:grid;grid-template-columns:repeat(100,1fr);gap:2px;margin:6px 0 16px}
.dot{aspect-ratio:1;border-radius:50%;border:1px solid rgba(255,255,255,.22)}
.dot.on{background:var(--hell);border-color:var(--hell)}
.dot.neu{background:#fff;border-color:#fff}
.zahlen{display:flex;flex-wrap:wrap;gap:40px 48px;margin-top:22px}
.zahlen .n{font-size:clamp(34px,4.4vw,56px);font-weight:800;line-height:1;display:block;color:#fff}
.zahlen .n.acc{color:var(--hell)}
.zahlen .l{font-size:12.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-top:8px;display:block;max-width:14em;line-height:1.4}
.creme .zahlen .n,.weiss .zahlen .n{color:var(--braun)}
.creme .zahlen .n.acc,.weiss .zahlen .n.acc{color:var(--gruen)}
.rotseite .weiss .zahlen .n.acc,.rotseite .creme .zahlen .n.acc{color:var(--rot)}
.creme .zahlen .l,.weiss .zahlen .l{color:#6B6459}
.legende{display:flex;gap:22px;flex-wrap:wrap;font-size:13.5px;color:rgba(255,255,255,.8)}
.legende span::before{content:"";display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:7px;vertical-align:-1px;border:1px solid rgba(255,255,255,.4)}
.legende .l1::before{background:var(--hell);border-color:var(--hell)}
.legende .l2::before{background:#fff;border-color:#fff}

/* Fortschrittsbalken */
.balken{margin:26px 0 8px}
.balken .spur{position:relative;height:18px;background:rgba(255,255,255,.18);border-radius:9px;overflow:visible}
.balken .fuellung{height:100%;background:var(--hell);border-radius:9px;width:0;transition:width 1.4s var(--ease)}
.balken .marke{position:absolute;top:-8px;bottom:-8px;width:3px;background:#fff;left:31.7%}
.balken .marke span{position:absolute;top:100%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12.5px;font-weight:700;padding-top:8px;color:#fff}
.balken .enden{display:flex;justify-content:space-between;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.75);margin-bottom:8px}

/* ===== Drei Wege (Einstiegsseite): breite Bänder ===== */
.wege{display:flex;flex-direction:column;gap:0}
.weg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:460px;color:var(--text);text-decoration:none;position:relative}
.weg:nth-child(even){direction:rtl}
.weg:nth-child(even) > *{direction:ltr}
.weg .bild{position:relative;overflow:hidden;min-height:300px}
.weg .bild img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease)}
.weg:hover .bild img{transform:scale(1.04)}
.weg .bild .tag{position:absolute;left:22px;top:22px;background:var(--braun);color:#fff;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;border-radius:3px;box-shadow:0 3px 12px rgba(0,0,0,.3)}
.weg .bild .tag.rot{background:var(--rot)}
.weg .text{padding:64px 56px;display:flex;flex-direction:column;justify-content:center}
.weg.dunkel{background:var(--braun);color:#fff}
.weg.dunkel .text{color:#fff}
.weg.mittel{background:#FBFAF6}
.weg.rotton{background:#F6E9E4}
.weg .fuer{font-size:12.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gruen);margin-bottom:10px}
.weg.dunkel .fuer{color:var(--hell)}
.weg.rotton .fuer{color:var(--rot)}
.weg h3{font-size:clamp(28px,3vw,38px);margin-bottom:6px;color:var(--braun);line-height:1.1}
.weg.dunkel h3{color:#fff}
.weg .preis{font-size:clamp(30px,3.4vw,44px);font-weight:800;color:var(--gruen-dark);line-height:1;margin:6px 0 18px}
.weg.dunkel .preis{color:var(--hell)}
.weg.rotton .preis{color:var(--rot)}
.weg .preis small{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.75;margin-left:8px}
.weg p{font-size:17px;margin-bottom:16px;max-width:36em}
.weg.dunkel p{color:rgba(255,255,255,.88)}
.weg ul{list-style:none;margin:0 0 26px;font-size:16px;max-width:36em}
.weg li{padding:6px 0 6px 28px;position:relative}
.weg li::before{content:"";position:absolute;left:2px;top:14px;width:14px;height:8px;border-left:3px solid var(--gruen);border-bottom:3px solid var(--gruen);transform:rotate(-45deg)}
.weg.dunkel li::before{border-color:var(--hell)}
.weg.rotton li::before{border-color:var(--rot)}
.weg .aktionen .btn svg{transition:transform .25s var(--ease)}
.weg .aktionen .btn:hover svg{transform:translateX(4px)}
.weg .frist{display:inline-block;background:var(--rot);color:#fff;font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border-radius:3px;margin-bottom:14px}

/* ===== Pakete (Region) ===== */
.pakete{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:stretch}
.paket{background:#fff;border-radius:8px;padding:0;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 3px 16px rgba(67,45,34,.10);position:relative}
.paket .kopf{padding:28px 28px 22px;color:#fff}
.paket.gold .kopf{background:var(--gold)}
.paket.silber .kopf{background:var(--silber)}
.paket.bronze .kopf{background:var(--bronze)}
.paket .kopf .name{font-size:13px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;opacity:.9}
.paket .kopf .preis{font-size:44px;font-weight:800;line-height:1;margin:10px 0 6px}
.paket .kopf .preis small{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.9;margin-left:4px}
.paket .kopf .plaetze{font-size:13.5px;font-weight:700;opacity:.95}
.paket .kopf .claim{font-size:16px;font-weight:700;margin-top:12px;line-height:1.4}
.paket .body{padding:24px 28px 28px;display:flex;flex-direction:column;flex:1}
.paket ul{list-style:none;margin-bottom:20px}
.paket li{padding:9px 0 9px 28px;position:relative;font-size:15.5px;line-height:1.5;border-bottom:1px solid #EFEDE4}
.paket li:last-child{border-bottom:none}
.paket li::before{content:"";position:absolute;left:2px;top:17px;width:14px;height:8px;border-left:3px solid var(--gruen);border-bottom:3px solid var(--gruen);transform:rotate(-45deg)}
.paket li b{color:var(--braun)}
.paket .tickets{background:var(--creme);border-radius:6px;padding:14px 16px;font-size:15px;margin-bottom:20px}
.paket .tickets strong{display:block;font-size:22px;color:var(--braun);line-height:1.1}
.paket .aktionen{margin-top:auto;flex-direction:column;align-items:stretch}
.paket .btn{width:100%}
.paket.gold .btn.primaer{background:var(--gold)}
.paket.silber .btn.primaer{background:var(--silber)}
.paket.bronze .btn.primaer{background:var(--bronze)}
.paket .btn.primaer:hover{background:var(--braun)}
.paket .empfehlung{position:absolute;top:18px;right:-34px;transform:rotate(45deg);background:var(--braun);color:#fff;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:6px 44px}

/* Vergleichstabelle */
.vergleich{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 3px 16px rgba(67,45,34,.10);font-size:15.5px}
.vergleich th,.vergleich td{padding:16px 18px;text-align:left;vertical-align:top;border-bottom:1px solid #EFEDE4}
.vergleich thead th{background:var(--braun);color:#fff;font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:800}
.vergleich thead th.g{background:var(--gold)}
.vergleich thead th.s{background:var(--silber)}
.vergleich thead th.b{background:var(--bronze)}
.vergleich tbody th{font-weight:800;color:var(--braun);width:22%}
.vergleich td.leer{color:#B5AFA3}
.vergleich .hak{color:var(--gruen);font-weight:800}
.vergleich tr:last-child td,.vergleich tr:last-child th{border-bottom:none}

/* ===== Leistungslisten ===== */
.leistungen{list-style:none;margin:0 0 8px}
.leistungen li{padding:12px 0 12px 34px;position:relative;font-size:16.5px;line-height:1.55;border-bottom:1px solid rgba(0,0,0,.08)}
.holz .leistungen li,.gruenbg .leistungen li,.rotbg .leistungen li{border-bottom-color:rgba(255,255,255,.14)}
.leistungen li:last-child{border-bottom:none}
.leistungen li::before{content:"";position:absolute;left:4px;top:21px;width:15px;height:8px;border-left:3px solid var(--gruen);border-bottom:3px solid var(--gruen);transform:rotate(-45deg)}
.holz .leistungen li::before,.gruenbg .leistungen li::before{border-color:var(--hell)}
.rotseite .leistungen li::before{border-color:var(--rot)}
.rotseite .holz .leistungen li::before,.rotseite .rotbg .leistungen li::before{border-color:#fff}
.leistungen li strong{color:var(--braun)}
.holz .leistungen li strong,.gruenbg .leistungen li strong,.rotbg .leistungen li strong{color:#fff}

/* Zeiträume (Hauptpartner) */
.zeitraum{display:grid;grid-template-columns:120px 1fr;gap:28px;padding:44px 0;border-top:1px solid rgba(0,0,0,.1)}
.zeitraum:first-of-type{border-top:none;padding-top:0}
.zeitraum .nr{font-size:clamp(48px,6vw,84px);font-weight:800;line-height:.9;color:var(--gruen);letter-spacing:-.03em}
.zeitraum h3{font-size:26px;margin-bottom:6px}
.zeitraum .unter{font-size:16px;font-weight:700;color:var(--gruen-dark);margin-bottom:14px}

/* Tabelle mit Eckdaten */
.eck{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 44px}
.zeile{display:grid;grid-template-columns:170px 1fr;gap:14px;padding:13px 0;border-bottom:1px solid rgba(0,0,0,.1)}
.holz .zeile{border-bottom-color:rgba(255,255,255,.14)}
.zeile dt{font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--gruen);padding-top:5px}
.holz .zeile dt{color:var(--hell)}
.rotseite .zeile dt{color:var(--rot)}
.zeile dd{font-size:16.5px}
.zeile dd .gross{font-size:34px;font-weight:800;color:var(--braun);line-height:1}
.holz .zeile dd .gross{color:#fff}

/* Zeitstrahl */
.strahl{list-style:none;margin:10px 0 0;padding-left:0}
.strahl li{display:grid;grid-template-columns:96px 1fr;gap:22px;padding:18px 0;border-bottom:1px solid rgba(0,0,0,.1)}
.holz .strahl li{border-bottom-color:rgba(255,255,255,.14)}
.strahl li:last-child{border-bottom:none}
.strahl .jahr{font-size:30px;font-weight:800;color:var(--gruen);line-height:1.1}
.rotseite .strahl .jahr{color:var(--rot)}
.strahl .wo{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#6B6459;margin-bottom:4px}
.holz .strahl .wo{color:var(--hell)}
.strahl p{margin:0;font-size:16px}

/* Programm-Tage */
.tage{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:24px}
.tag{background:#fff;border-radius:6px;padding:26px;box-shadow:0 3px 16px rgba(67,45,34,.09)}
.tag .tg{font-size:12.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--gruen);margin-bottom:3px}
.tag .dt{font-size:26px;font-weight:800;color:var(--braun);text-transform:uppercase;margin-bottom:14px;line-height:1}
.tag ul{list-style:none}
.tag li{display:grid;grid-template-columns:62px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid #EFEDE4;font-size:15.5px;line-height:1.5}
.tag li:last-child{border-bottom:none}
.tag li b{font-size:13px;font-weight:800;color:var(--gruen);padding-top:3px}
.frei{display:inline-block;background:var(--hell);color:var(--braun);font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:6px 12px;border-radius:3px;margin-top:14px}

/* Zitat */
blockquote{border-left:5px solid var(--hell);padding:6px 0 6px 26px;margin:28px 0;font-size:clamp(20px,2.2vw,26px);line-height:1.4;font-weight:700;color:var(--braun)}
.holz blockquote,.gruenbg blockquote{color:#fff}
blockquote cite{display:block;font-style:normal;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gruen);margin-top:12px}
.holz blockquote cite{color:var(--hell)}
.gruenbg blockquote cite{color:var(--braun)}

/* Merksatz-Kasten */
.merk{background:var(--gruen);color:#fff;border-radius:8px;padding:30px 34px;font-size:clamp(18px,2vw,22px);font-weight:700;line-height:1.45;margin:34px 0 0}
.rotseite .merk{background:var(--rot)}
.merk.hell{background:#fff;color:var(--braun);box-shadow:0 3px 16px rgba(67,45,34,.10)}
.merk.hell .kicker{color:var(--gruen)}
.merk .kicker{margin-bottom:8px;color:rgba(255,255,255,.85)}

/* Jury */
.jury{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:28px}
.jury img{width:150px;height:150px;border-radius:50%;object-fit:cover;border:4px solid var(--rot);display:block;margin-bottom:14px}
.jury h3{font-size:17px;text-transform:uppercase;color:var(--rot);letter-spacing:.04em;margin-bottom:6px}
.jury p{font-size:15px;line-height:1.55;color:#4A443C}

/* Preisgeld */
.klassen{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.klasse{background:var(--rot);color:#fff;border-radius:8px;padding:24px 26px}
.klasse .kl{font-size:13px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:12px}
.klasse dl{display:grid;grid-template-columns:1fr auto;gap:6px 12px;font-size:16px}
.klasse dd{font-weight:800;text-align:right}
.klasse .summe{border-top:1px solid rgba(255,255,255,.4);margin-top:10px;padding-top:10px;font-weight:800;display:flex;justify-content:space-between}

/* Regeln */
.regeln{list-style:none;counter-reset:r;margin:0}
.regeln li{counter-increment:r;position:relative;padding:14px 0 14px 60px;font-size:17px;border-bottom:1px solid rgba(0,0,0,.1)}
.regeln li:last-child{border-bottom:none}
.regeln li::before{content:counter(r);position:absolute;left:0;top:12px;width:40px;height:40px;border-radius:50%;background:var(--rot);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:16px}

/* Downloads */
.dls{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:15px}
.dls a{display:flex;gap:14px;align-items:center;background:#fff;border-radius:6px;padding:19px 21px;text-decoration:none;color:var(--braun);transition:background .2s,color .2s,transform .2s;box-shadow:0 2px 12px rgba(67,45,34,.08);min-height:48px}
.dls a:hover,.dls a:focus-visible{background:var(--braun);color:#fff;transform:translateY(-2px)}
.dls .ic{width:38px;height:38px;flex:0 0 38px;border-radius:50%;background:var(--hell);display:flex;align-items:center;justify-content:center}
.dls a:hover .ic{background:var(--gruen)}
.dls .ic svg{width:17px;height:17px;fill:var(--braun)}
.dls a:hover .ic svg{fill:#fff}
.dls strong{display:block;font-size:15px;font-weight:800;line-height:1.3}
.dls .u{font-size:12.5px;opacity:.75;display:block}

/* ===== Kontakt ===== */
.kontakt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:30px;margin:10px 0 40px}
.person{background:rgba(255,255,255,.14);border-radius:8px;padding:26px 28px}
.person .lb{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--braun);margin-bottom:8px}
.person .name{font-size:24px;font-weight:800;color:#fff;line-height:1.15;margin-bottom:2px}
.person .rolle{font-size:15px;color:rgba(255,255,255,.9);margin-bottom:16px}
.person .wege{display:flex;flex-direction:column;gap:8px}
.person .wege a{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700;font-size:16.5px;min-height:44px;padding:4px 0}
.person .wege a:hover{text-decoration:underline}
.person .wege svg{width:20px;height:20px;fill:var(--braun);flex:0 0 auto}
.person .foto{width:78px;height:78px;border-radius:50%;object-fit:cover;float:right;margin:0 0 10px 14px;border:3px solid #fff}

/* Anfrageformular */
.formular{background:#fff;border-radius:8px;padding:34px 36px;color:var(--text);box-shadow:0 6px 28px rgba(0,0,0,.14)}
.formular h3,.gruenbg .formular h3,.rotbg .formular h3{font-size:24px;margin-bottom:6px;color:var(--braun)}
.formular .erk{font-size:15.5px;color:#5C564D;margin-bottom:22px}
.felder{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
.feld{display:flex;flex-direction:column;gap:6px}
.feld.voll{grid-column:1/-1}
.feld label{font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--braun)}
.feld input,.feld select,.feld textarea{font-family:inherit;font-size:16.5px;padding:13px 14px;border:2px solid #D9D5C9;border-radius:5px;background:#FBFAF6;color:var(--text);min-height:48px;transition:border-color .2s}
.feld textarea{min-height:110px;resize:vertical}
.feld input:focus-visible,.feld select:focus-visible,.feld textarea:focus-visible{border-color:var(--gruen);outline:none;box-shadow:0 0 0 3px rgba(123,160,45,.22)}
.feld input[aria-invalid="true"]{border-color:var(--rot)}
.feld .fehler{font-size:13.5px;color:var(--rot);display:none}
.feld input[aria-invalid="true"] ~ .fehler{display:block}
.optionen{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.optionen label{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;padding:14px 10px;border:2px solid #D9D5C9;border-radius:5px;background:#FBFAF6;font-weight:800;font-size:14px;letter-spacing:.04em;cursor:pointer;min-height:52px;transition:border-color .2s,background .2s;text-transform:none}
.optionen input{position:absolute;opacity:0;width:1px;height:1px}
.optionen input:checked + span{color:var(--braun)}
.optionen label:has(input:checked){border-color:var(--gruen);background:#EEF3DF}
.optionen label:has(input:focus-visible){box-shadow:0 0 0 3px rgba(123,160,45,.3)}
.feld label.wunsch,.wunsch{display:flex;gap:10px;align-items:flex-start;font-size:16px;font-weight:600;color:var(--braun);text-transform:none;letter-spacing:0}
.wunsch input{width:22px;height:22px;margin-top:3px;accent-color:var(--gruen);flex:0 0 auto}
.form-fuss{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:24px}
.form-fuss .hinweis{margin:0;font-size:14px;color:#6B6459}
.bestaetigt{display:none;background:#EEF3DF;border-radius:6px;padding:18px 20px;margin-top:20px;font-size:15.5px}
.bestaetigt.show{display:block}
.bestaetigt textarea{width:100%;font-family:inherit;font-size:14px;margin-top:10px;padding:10px;border:1px solid #D9D5C9;border-radius:4px;min-height:140px}

/* Sticky Leiste (Mobil) */
.leiste{position:fixed;left:0;right:0;bottom:0;z-index:90;display:none;gap:8px;padding:10px 12px;background:var(--braun);box-shadow:0 -4px 18px rgba(0,0,0,.3)}
.leiste .btn{flex:1;padding:13px 10px;font-size:12.5px}

/* Fußzeile */
footer{background:var(--braun-tief);color:rgba(255,255,255,.55);padding:36px 0;font-size:13.5px;line-height:1.7}
footer a{color:rgba(255,255,255,.8)}
footer .links{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}

/* Toast */
#toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%) translateY(16px);background:var(--braun);color:#fff;font-weight:700;font-size:14px;padding:14px 24px;border-radius:5px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:200;box-shadow:0 6px 24px rgba(0,0,0,.3)}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* Reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.rv.in{opacity:1;transform:none}
:focus-visible{outline:3px solid var(--gruen);outline-offset:3px}

/* Brotkrumen */
.krumen{font-size:13.5px;color:rgba(255,255,255,.75);margin-bottom:18px;letter-spacing:.04em}
.krumen a{color:#fff;text-decoration:none;font-weight:700}
.krumen a:hover{text-decoration:underline}

/* ===== Mobil ===== */
@media(max-width:1000px){
  :root{--side:0px}
  .side{position:static;width:100%;height:auto;flex-direction:row;flex-wrap:wrap;justify-content:space-between;padding:14px 20px;gap:12px}
  .side .logo{width:96px;margin:0}
  .side .titel{display:none}
  .side nav{flex-direction:row;flex-wrap:wrap;width:auto;margin:0;gap:2px;order:3;flex:1 0 100%;justify-content:center}
  .side nav a{padding:9px 11px;font-size:13.5px}
  .side .cta{width:auto;margin:0;padding:11px 16px}
  .side .rhh{display:none}
  .side .social{order:4;margin:2px auto 0}
  main{margin-left:0;padding-bottom:70px}
  .inner{padding:0 22px}
  section{padding:58px 0}
  .hero{min-height:auto;padding:60px 0 70px}
  .dots{grid-template-columns:repeat(50,1fr);gap:1.5px}
  .zeile{grid-template-columns:1fr;gap:2px}
  .holz{background-attachment:scroll}
  .zweispaltig,.zweispaltig.umgekehrt{grid-template-columns:1fr;gap:28px}
  .wege{grid-template-columns:1fr}
  .weg.haupt{grid-row:auto}
  .pakete{grid-template-columns:1fr}
  .zeitraum{grid-template-columns:1fr;gap:6px;padding:32px 0}
  .strahl li{grid-template-columns:1fr;gap:4px}
  .felder{grid-template-columns:1fr}
  .formular{padding:26px 22px}
  .leiste{display:flex}
  .vergleich{font-size:14px}
  .vergleich th,.vergleich td{padding:12px 10px}
  .vergleich tbody th{width:auto}
  .btn{white-space:normal;text-align:center}
}
@media(max-width:560px){
  .vergleich-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .vergleich{min-width:560px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  .balken .fuellung{transition:none}
  *{transition:none!important}
}

/* ===== Wettbewerbsseite: komplette Umfärbung ===== */
.rotseite{--gruen:#BE1824;--gruen-dark:#9E1420;--hell:#F3D9D5;--creme:#F4EFE6}
.rotseite .side{background:var(--rot)}
.rotseite .side .logo{width:170px;border-radius:50%;box-shadow:0 6px 22px rgba(0,0,0,.28)}
.rotseite .side .titel{color:#fff;opacity:.8}
.rotseite .side nav a{color:#fff}
.rotseite .side nav a:hover,.rotseite .side nav a:focus-visible{background:rgba(255,255,255,.16)}
.rotseite .side nav a.on{background:#fff;color:var(--rot)}
.rotseite .side .cta{background:#fff;color:var(--rot)}
.rotseite .side .cta:hover{background:var(--hell)}
.rotseite .side .social a{background:#fff}
.rotseite .side .social svg{fill:var(--rot)}
.rotseite .side .social a:hover{background:var(--hell)}
.rotseite .side .rhh{display:none}
.rotseite .holz{background:linear-gradient(rgba(28,20,20,.86),rgba(28,20,20,.86)),url("bilder/design/RHH_Holz_Hintergrund-scaled.jpg") center/cover fixed}
.rotseite .hellgruen{background:var(--hell);color:#2A1D1D}
.rotseite .merk{background:var(--rot)}
.rotseite .merk.hell{background:#fff;color:var(--text)}
.rotseite .btn{background:var(--rot)}
.rotseite .btn:hover,.rotseite .btn:focus-visible{background:#2A1D1D}
.rotseite .btn.hell{background:var(--hell);color:var(--rot)}
.rotseite .btn.hell:hover{background:#fff}
.rotseite .btn.rand:hover{color:var(--rot)}
.rotseite .person{background:rgba(255,255,255,.14)}
.rotseite .person .lb{color:rgba(255,255,255,.75)}
.rotseite .person .wege svg{fill:#fff}
.rotseite .strahl .jahr{color:var(--rot)}
.rotseite h3{color:#2A1D1D}
.rotseite .zeile dt{color:var(--rot)}
.rotseite .leistungen li::before{border-color:var(--rot)}
.rotseite .feld input:focus-visible,.rotseite .feld select:focus-visible,.rotseite .feld textarea:focus-visible{border-color:var(--rot);box-shadow:0 0 0 3px rgba(190,24,36,.2)}
.rotseite .optionen label:has(input:checked){border-color:var(--rot);background:#FBEAEA}
.rotseite .wunsch input{accent-color:var(--rot)}
.rotseite footer{background:#1F1616}
.rotseite .leiste{background:#1F1616}
.rotseite :focus-visible{outline-color:var(--rot)}
.rotseite blockquote{border-left-color:var(--rot)}
.rotseite .weiss .zahlen .n.acc,.rotseite .creme .zahlen .n.acc{color:var(--rot)}
.rotseite .kicker{color:var(--rot)}
.rotseite .holz .kicker,.rotseite .rotbg .kicker,.rotseite .merk .kicker{color:#fff;opacity:.85}
.rotseite .merk.hell .kicker{color:var(--rot);opacity:1}
.rotseite .bestaetigt{background:#FBEAEA}

/* ===== Bewegung ===== */
@keyframes rein{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes slantrein{from{opacity:0;transform:translateX(-40px) rotate(-3deg)}to{opacity:1;transform:translateX(0) rotate(var(--rot-w,0deg))}}
.hero .slant{opacity:0;animation:slantrein .8s var(--ease) forwards}
.hero .slant.a{--rot-w:-1.6deg;animation-delay:.1s}
.hero .slant.b{--rot-w:1.1deg;animation-delay:.25s}
.hero .slant.c{--rot-w:-.7deg;animation-delay:.4s}
.hero .datum,.hero .sub,.hero .aktionen,.hero .krumen{opacity:0;animation:rein .8s var(--ease) forwards}
.hero .krumen{animation-delay:0s}
.hero .datum{animation-delay:.55s}
.hero .sub{animation-delay:.7s}
.hero .aktionen{animation-delay:.85s}
.hero{overflow:hidden}
.hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.06);animation:herozoom 8s var(--ease) forwards}
@keyframes herozoom{to{transform:scale(1)}}
.rv.links{transform:translateX(-30px)}
.rv.rechts{transform:translateX(30px)}
.rv.zoom{transform:scale(.96)}
.rv.in{transform:none}
img.rv{transition:opacity .8s var(--ease),transform 1s var(--ease)}
.paket{transition:transform .3s var(--ease),box-shadow .3s}
.paket:hover{transform:translateY(-6px);box-shadow:0 16px 36px rgba(67,45,34,.18)}
.tag,.person,.dls a,.klasse{transition:transform .3s var(--ease),box-shadow .3s}
.tag:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(67,45,34,.14)}
.btn{transition:background .2s,transform .2s var(--ease),box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(0,0,0,.18)}
.btn:active{transform:scale(.97)}
.zeitraum .nr{opacity:0;transform:translateY(10px);transition:opacity .6s var(--ease) .2s,transform .6s var(--ease) .2s}
.zeitraum.in .nr{opacity:1;transform:none}
.leistungen li{opacity:0;transform:translateX(-12px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.in .leistungen li{opacity:1;transform:none}
.in .leistungen li:nth-child(1){transition-delay:.05s}.in .leistungen li:nth-child(2){transition-delay:.12s}.in .leistungen li:nth-child(3){transition-delay:.19s}.in .leistungen li:nth-child(4){transition-delay:.26s}.in .leistungen li:nth-child(5){transition-delay:.33s}.in .leistungen li:nth-child(6){transition-delay:.4s}.in .leistungen li:nth-child(7){transition-delay:.47s}
.side nav a{position:relative}
.side nav a::after{content:"";position:absolute;left:50%;bottom:5px;width:0;height:2px;background:currentColor;transition:width .25s var(--ease),left .25s var(--ease);opacity:.6}
.side nav a:hover::after{left:18%;width:64%}
.side nav a.on::after{display:none}

/* Schwebender Knopf am Desktop */
.schweb{position:fixed;right:28px;bottom:28px;z-index:95;opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity .35s var(--ease),transform .35s var(--ease)}
.schweb.show{opacity:1;transform:none;pointer-events:auto}
.schweb .btn{box-shadow:0 10px 28px rgba(0,0,0,.3);padding:16px 22px}

/* Formularzustände */
.formular.sendet .btn[type=submit]{opacity:.6;pointer-events:none}
.erfolg{display:none;text-align:center;padding:40px 20px}
.erfolg.show{display:block}
.erfolg .haken{width:74px;height:74px;border-radius:50%;background:var(--gruen);margin:0 auto 18px;display:flex;align-items:center;justify-content:center;animation:pop .5s var(--ease)}
.rotseite .erfolg .haken{background:var(--rot)}
.erfolg .haken::after{content:"";width:28px;height:15px;border-left:5px solid #fff;border-bottom:5px solid #fff;transform:rotate(-45deg) translate(2px,-3px)}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.erfolg h3{font-size:26px;margin-bottom:8px}
.erfolg p{color:#4A443C;max-width:32em;margin:0 auto 8px}
.formular .fehlermeldung{display:none;background:#FBEAEA;color:var(--rot);font-weight:700;padding:14px 16px;border-radius:5px;margin-top:16px}
.formular .fehlermeldung.show{display:block}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.dsgvo{font-size:13.5px;color:#6B6459;margin-top:14px}

@media(max-width:1000px){
  .weg,.weg:nth-child(even){grid-template-columns:1fr;direction:ltr;min-height:auto}
  .weg .bild{min-height:230px;aspect-ratio:16/9}
  .weg .text{padding:34px 24px 40px}
  .schweb{display:none}
}
@media(prefers-reduced-motion:reduce){
  .hero .slant,.hero .datum,.hero .sub,.hero .aktionen,.hero .krumen{opacity:1;animation:none}
  .hero .bg{animation:none;transform:none}
  .leistungen li,.zeitraum .nr{opacity:1;transform:none}
}
.rotseite .hero::before{background:linear-gradient(180deg,rgba(20,10,10,.45) 0%,rgba(20,10,10,.78) 100%)}
.rotseite .btn.rand{background:transparent}
.rotseite .btn.rand:hover,.rotseite .btn.rand:focus-visible{background:#fff;color:var(--rot)}
.gruenbg .formular a,.rotbg .formular a,.formular a{color:var(--gruen-dark);font-weight:700}
.rotseite .formular a{color:var(--rot)}
