/* Local visual refresh. Shared form hooks and reservation logic remain in steg.js/buchen.js. */
:root {
  --ink: #1d2329; --muted: #47505a; --paper: #f3f2ed; --lime: #e8672a;
  --line: #cfcdc4; --tinte: var(--ink); --tinte-weich: var(--muted);
  --blau: #2b62a8; --orange: #e8672a; --gelb: #f9d4a9;
}
body { background: var(--paper); color: var(--ink); overflow-x: clip; }
body::before { display: none; }
[hidden] { display: none !important; }
.steg { max-width: 1600px; padding: 0 56px; }
html { scroll-padding-top: 24px; }
::selection { background: var(--lime); color: var(--ink); }
a { color: inherit; }
a, button, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #9a570c; outline-offset: 5px; }
.site-header { min-height: 106px; display: flex; align-items: center; justify-content: space-between; gap: 28px; position: relative; z-index: 10; }
.brand { display: flex; align-items: center; gap: 11px; text-decoration: none; flex: none; }
.brand img { width: 48px; height: 48px; }
.brand > span { font: 800 28px/.92 var(--f-schild); letter-spacing: -.02em; }
.brand b { color: #e8672a; }
.brand small { display: block; font: 600 9px/1.4 var(--f-text); letter-spacing: .18em; margin-top: 7px; }
.main-nav { display: flex; align-items: center; gap: 28px; }
.main-nav a { text-decoration: none; font-weight: 600; font-size: 14px; padding: 12px 0; }
.main-nav a:hover { color: #9a491d; }
.main-nav a.nav-book { padding: 13px 19px; background: var(--ink); color: white; border-radius: 3px; }
.nav-book span { margin-left: 15px; }
.menu-toggle { display: none; }
.eyebrow { font: 600 11px/1.5 var(--f-text); letter-spacing: .17em; margin: 0 0 20px; text-transform: uppercase; }
.hero { display: grid; grid-template-columns: 1.02fr 1fr; min-height: 665px; background: var(--ink); color: var(--paper); }
.hero-copy { padding: 55px 40px 30px 48px; display: flex; flex-direction: column; align-items: start; min-width: 0; }
.hero .eyebrow { color: #e3e7eb; font-size: 10px; display: flex; align-items: center; gap: 9px; }
.location-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--lime); }
.hero h1 { margin: 13px 0 25px; font: 800 clamp(72px, 7.8vw, 114px)/.89 var(--f-schild); letter-spacing: -.022em; }
.hero h1 span { color: var(--lime); white-space: nowrap; }
.hero-description { font-size: 17px; line-height: 1.65; color: #e5e8ea; margin: 0 0 26px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 20px; align-items: center; }
.knopf, .knopf.blau, .knopf.weiss { display: inline-flex; justify-content: center; align-items: center; gap: 28px; border: 1px solid var(--ink); border-radius: 3px; background: var(--ink); color: #fff; box-shadow: none; padding: 15px 20px; font: 600 15px/1.25 var(--f-text); text-transform: none; letter-spacing: 0; min-height: 48px; }
.knopf:hover, .knopf:focus-visible, .knopf.blau:hover, .knopf.weiss:hover { background: #2b62a8; color: white; box-shadow: none; transform: none; outline: 3px solid #9a570c; outline-offset: 3px; }
.hero .knopf, .group-feature .knopf { background: var(--lime); color: var(--ink); border-color: var(--lime); }
.hero .knopf:hover, .group-feature .knopf:hover { background: #f58a52; }
.text-link { font-size: 13px; text-decoration: none; padding: 12px 0; border-bottom: 1px solid #a5adb6; }
.text-link span { margin-left: 12px; }
.hero-footnote { margin-top: auto; padding-top: 35px; display: flex; flex-wrap: wrap; gap: 8px 22px; color: #e5e8ea; font-size: 12px; }
.hero-footnote span + span { color: #c6cbd1; }
.hero-photo { margin: 0; position: relative; min-width: 0; overflow: hidden; }
.hero-photo > img { width: 100%; height: 100%; position: absolute; object-fit: cover; object-position: 50% 60%; }
.hero-photo::after { content: ''; position: absolute; inset: 65% 0 0; background: linear-gradient(transparent, #17212aa8); pointer-events: none; }
.hero-photo figcaption { position: absolute; z-index: 1; left: 28px; right: 28px; bottom: 26px; display: flex; justify-content: space-between; gap: 12px; font-size: 9px; letter-spacing: .12em; }
.hero-photo figcaption b { font-weight: 500; }
.photo-note { position: absolute; right: 24px; top: 26px; background: var(--paper); color: var(--ink); padding: 17px 44px 17px 20px; font: 16px/1.35 var(--f-hand); text-decoration: none; transform: rotate(4deg); box-shadow: 0 5px 20px #1d232918; }
.photo-note strong { font-size: 20px; }
.photo-note > span { position: absolute; right: 15px; top: 23px; font-family: var(--f-text); font-size: 24px; }
.daily-strip { display: grid; grid-template-columns: 1.3fr 1fr .9fr .9fr auto; align-items: center; gap: 18px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.daily-strip > div { display: flex; flex-direction: column; gap: 4px; }
.daily-strip > div > span { font-size: 11px; color: var(--muted); }
.daily-strip b { font-size: 14px; font-weight: 600; }
.daily-strip .eyebrow { color: var(--ink); font-size: 10px; margin: 0; }
.status { font-size: 11px; padding: 7px 10px; background: #e2ecd4; color: #254a2b; border-radius: 30px; text-align: center; }
.status.zu { color: #674326; background: #ede7d8; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 32px; }
.section-heading .eyebrow { margin-bottom: 13px; }
.section-heading h2, .group-feature h2, .price-intro h2, .location-copy h3 { font: 700 clamp(38px, 4.1vw, 60px)/1 var(--f-schild); letter-spacing: -.015em; margin: 0; }
.section-heading > p { font-size: 15px; line-height: 1.6; margin: 0 0 3px; color: var(--muted); }
.experiences { padding-top: 84px; }
.experience-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.experience { display: flex; flex-direction: column; min-width: 0; }
.experience-image { display: block; position: relative; aspect-ratio: 1.05; overflow: hidden; background: #dedfdc; }
.experience-image::after { content: ''; position: absolute; inset: 60% 0 0; background: linear-gradient(transparent, #17212a8c); }
.experience-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.experience-image:hover img { transform: scale(1.035); }
#kurs .experience-image img { object-position: 50% 65%; }
.image-label { position: absolute; bottom: 21px; left: 18px; z-index: 1; font-size: 9px; letter-spacing: .13em; font-weight: 600; color: white; }
.image-arrow { position: absolute; right: 16px; bottom: 15px; z-index: 1; background: var(--paper); width: 32px; height: 32px; border-radius: 50%; text-align: center; line-height: 32px; }
.experience-title { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 22px; }
.experience-title h3 { font: 700 31px/1 var(--f-schild); margin: 0; }
.experience-title p { margin: 0; text-align: right; }
.experience-title b { font: 600 24px/1 var(--f-schild); }
.experience-title p span { display: block; font-size: 10px; color: var(--muted); margin-top: 3px; }
.experience > p { font-size: 15px; color: var(--muted); line-height: 1.55; margin: 15px 0 20px; }
.offer-link { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--line); padding: 15px 0; text-decoration: none; font-size: 13px; font-weight: 600; margin-top: auto; }
.offer-link:hover { color: #9a491d; }
.offer-link span { font-size: 20px; }
.group-feature { display: grid; grid-template-columns: 1.05fr 1fr; margin-top: 80px; background: var(--ink); color: white; }
.group-feature > img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; object-position: 35% 50%; }
.group-feature > div { padding: 48px; }
.group-feature .eyebrow { color: var(--lime); }
.group-feature h2 { font-size: clamp(40px, 4.4vw, 64px); }
.group-feature p:not(.eyebrow) { font-size: 15px; line-height: 1.65; color: #e6ebf1; }
.group-feature .group-price { margin: 22px 0; color: white; font-weight: 600; }
.group-price span { margin: 0 9px; }
.xl-feature { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; background: #e7ebef; min-height: 235px; margin-top: 24px; padding: 28px 48px; gap: 40px; overflow: hidden; }
.xl-product { height: 190px; display: grid; place-items: center; position: relative; }
.xl-product img { height: 210px; width: 100%; object-fit: contain; mix-blend-mode: multiply; }
.xl-feature .eyebrow { margin-bottom: 10px; }
.xl-feature h2 { font: 700 36px/1 var(--f-schild); margin: 0; }
.xl-feature p:not(.eyebrow) { font-size: 15px; margin: 12px 0; max-width: 500px; }
.xl-feature .offer-link { display: inline-flex; border: 0; padding: 6px 0; gap: 45px; }
.price-section { display: grid; grid-template-columns: .85fr 1.15fr; gap: 90px; padding: 90px 0; border-bottom: 1px solid var(--line); }
.price-intro > p:not(.eyebrow) { font-size: 16px; line-height: 1.65; max-width: 340px; color: var(--muted); }
.preisliste { max-width: none; transform: none; margin: 0; font-size: 16px; }
.preisliste > span { display: none; }
.preisliste h2 { font-size: 28px; letter-spacing: 0; text-transform: none; }
.preisliste .unter { font: 12px/1.5 var(--f-text); letter-spacing: 0; text-transform: none; margin: 6px 0 16px; }
.preisliste th, .preisliste td { border-bottom: 1px solid var(--line); padding: 12px 0; }
.preisliste th { font-size: 15px; padding-right: 20px; }
.preisliste th small { font-size: 12px; margin-top: 3px; }
.preisliste td { font-size: 24px; }
.preisliste tfoot td { font-size: 12px; padding-top: 18px; }
.ten-pass { border-top: 1px solid var(--line); margin-top: 32px; padding-top: 25px; max-width: 340px; }
.ten-pass > span { font-size: 10px; letter-spacing: .12em; }
.ten-pass h3 { font: 600 33px/1.1 var(--f-schild); margin: 10px 0; }
.ten-pass p { font-size: 13px; color: var(--muted); }
.moments { margin-top: 80px; }
.moments-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 25px; }
.moments figure { margin: 0; }
.moments img { height: 340px; width: 100%; object-fit: cover; }
.moments figure:nth-child(2) img { object-position: 50% 65%; }
.moments figcaption { font-size: 12px; color: var(--muted); padding-top: 12px; }
.safety-section { margin-top: 65px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.safety-section summary { display: flex; align-items: center; justify-content: space-between; padding: 25px 0; cursor: pointer; list-style: none; }
.safety-section summary::-webkit-details-marker { display: none; }
.safety-section .eyebrow { display: block; margin-bottom: 5px; font-size: 10px; }
.safety-section summary strong { font: 600 30px/1.1 var(--f-schild); }
.details-icon { font: 300 30px/1 var(--f-text); }
details[open] .details-icon { transform: rotate(45deg); }
.regeln { max-width: none; transform: none; padding: 0 0 28px; }
.regeln ol { columns: 2; column-gap: 65px; font-size: 14px; }
.regeln li { break-inside: avoid; padding-bottom: 9px; }
.regeln li small { display: block; color: var(--muted); font-size: 12px; }
.regeln li::before { background: var(--ink); }
.summer-extra { display: flex; align-items: center; gap: 28px; background: #eceae2; padding: 25px 35px; margin-top: 32px; }
.summer-extra img { height: 112px; width: 84px; object-fit: contain; flex: none; }
.summer-extra .eyebrow { margin: 0 0 7px; font-size: 10px; }
.summer-extra h2 { font: 600 28px/1.15 var(--f-schild); margin: 0; }
.summer-extra p:not(.eyebrow) { font-size: 13px; margin: 8px 0 4px; }
.summer-extra small { font-size: 10px; color: var(--muted); }
.anleger { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; max-width: none; background: none; border: 0; box-shadow: none; transform: none; margin: 80px 0 0; padding: 0; }
.anleger > h2 { display: none; }
.anleger .luftbild { border: 0; box-shadow: none; transform: none; margin: 0; }
.anleger .luftbild img { height: 100%; min-height: 420px; aspect-ratio: auto; object-fit: cover; }
.anleger .luftbild figcaption { left: 20px; bottom: 20px; padding: 8px 12px; font: 600 11px/1.3 var(--f-text); letter-spacing: .03em; }
.anleger .luftbild .pin { display: none; }
.location-copy { padding: 18px 0; }
.location-copy .eyebrow { margin-bottom: 14px; }
.location-copy h3 { margin-bottom: 22px; text-transform: uppercase; }
.anleger address { font-size: 15px; line-height: 1.6; margin-bottom: 22px; }
.anleger ul { gap: 10px; margin-bottom: 24px; }
.anleger li { font-size: 13px; }
.anleger .linie { min-width: 66px; font-size: 12px; }
.kontakt { grid-template-columns: .75fr 1.25fr; gap: 90px; margin-top: 80px; border-top: 1px solid var(--line); padding-top: 60px; }
.tasche { position: static; margin: 0; width: auto; padding: 0; background: none; border: 0; box-shadow: none; transform: none; border-radius: 0; }
.tasche::before, .tasche::after, .notizblock::before { display: none; }
.handy { padding: 0; background: none; color: var(--ink); border-radius: 0; box-shadow: none; }
.handy p { text-align: left; color: var(--muted); }
.handy h2 { font: 700 56px/1 var(--f-schild); text-transform: uppercase; margin: 0 0 20px; }
.handy p.eyebrow { margin-bottom: 15px; color: var(--ink); }
.handy a, .handy a.mail { background: none; color: var(--ink); text-align: left; padding: 12px 0; border-radius: 0; font-size: 15px; border-bottom: 1px solid var(--line); max-width: 280px; }
.notizblock { background: transparent; box-shadow: none; padding: 0; transform: none; border: 0; }
.notizblock h2 { font: 600 28px/1.15 var(--f-schild); color: var(--ink); }
.notizblock p.hinweis { font-size: 13px; margin: 10px 0 24px; }
.feld { margin-bottom: 18px; gap: 7px; }
.feld input, .feld textarea, .feld select { background: #fffefb; border: 1px solid #aab3bc; border-radius: 3px; padding: 12px; font: 16px/1.4 var(--f-text); color: var(--ink); min-height: 46px; }
.feld input:focus, .feld textarea:focus, .feld select:focus { outline: 2px solid #2b62a8; outline-offset: 2px; background: #fff; border-color: var(--ink); }
.feld textarea { background-image: none; }
.feld label, .feld > span { font: 600 11px/1.4 var(--f-text); letter-spacing: .08em; }
.wasserkante { margin: 70px -56px 0; }
.wasserkante .kante, .wasser::before, .wasser::after, .wasser .klampe { display: none; }
.wasser { background: var(--ink); padding: 35px 56px; }
.wasser .innen { max-width: none; grid-template-columns: 1fr auto; gap: 28px; }
.wasser nav { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.wasser nav a { margin: 0; font: 500 12px/1.5 var(--f-text); letter-spacing: 0; text-transform: none; padding: 5px 0; }
.wasser p { font-size: 11px; line-height: 1.65; }
.wasser .ente { font-size: 11px; color: #c7d1d9; }
/* Carry the same quiet style through booking, events and legal pages. */
.klemmbrett { background: #e8edf3; box-shadow: none; border: 1px solid var(--line); border-radius: 4px; transform: none; padding: 18px; max-width: 860px; }
.klemmbrett::before, .klemmbrett::after, .stift, .blatt::before { display: none; }
.blatt { padding: 28px; box-shadow: none; background: #fffefb; }
.blatt h1 { letter-spacing: -.01em; font-size: 42px; }
.blatt .unter { font: 12px/1.5 var(--f-text); letter-spacing: .04em; margin: 9px 0 28px; }
.schritt { margin-bottom: 30px; }
.angebot-schritt { border: 0; padding-top: 0; padding-right: 0; padding-bottom: 0; min-width: 0; }
.schritt > h2 { font-size: 24px; letter-spacing: .01em; margin-bottom: 14px; }
.schritt > h2::before { background: var(--ink); color: white; border: 0; line-height: 30px; }
.kaestchen label, .chips button, .zeiten button { border: 1px solid #9ca7b3; border-radius: 3px; font-family: var(--f-text); font-size: 14px; letter-spacing: 0; text-transform: none; min-height: 44px; }
.kaestchen label:has(input:checked), .chips button[aria-pressed="true"], .zeiten button[aria-pressed="true"] { box-shadow: none; background: var(--lime); border-color: var(--ink); }
.stepper, .haken input, .kaestchen label input { border: 1px solid #8091a3; border-radius: 3px; }
.stepper output, .summe .betrag, .bestaetigt dd { font-family: var(--f-text); color: var(--ink); }
.stepper button:disabled { opacity: .35; cursor: not-allowed; }
.summe { border-width: 1px; padding-top: 22px; }
.bogen { transform: none; box-shadow: none; margin-top: 35px; padding: 32px; overflow-wrap: anywhere; }
.bogen.laminat { background: #fffefb; }
.bogen.laminat::before, .bogen .kabelbinder { display: none; }
.form-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.markierung { color: var(--ink); mask-image: none; -webkit-mask-image: none; text-shadow: none; }
.markierung.mittel { font-size: clamp(32px, 5vw, 60px); }
.postkarte { transform: none !important; max-width: 100% !important; box-shadow: none; background: #e8edf3; border: 0; }
.postkarte .rueckseite { background: none; border: 0; font: 16px/1.6 var(--f-text); padding: 32px; color: var(--ink); }
.postkarte .rueckseite h2 { font-size: 36px; margin-bottom: 16px; }
.postkarte .marke, .postkarte .stempel-rund { display: none; }
.stempel { position: static; display: inline-block; margin: 20px 0; font-size: 24px; transform: rotate(-3deg); }
@media (min-width: 1500px) { .hero h1 { font-size: 124px; } }
@media (max-width: 1150px) {
  .steg { padding: 0 32px; }
  .main-nav { gap: 17px; }
  .main-nav a { font-size: 12px; }
  .brand > span { font-size: 25px; }
  .hero { min-height: 610px; }
  .hero-copy { padding: 40px 28px 30px; }
  .hero h1 { font-size: clamp(65px, 8vw, 90px); }
  .hero-actions { gap: 12px; }
  .hero-description { font-size: 15px; }
  .daily-strip { gap: 10px; grid-template-columns: 1.25fr 1fr 1fr auto; }
  .daily-strip > div:nth-child(3) { display: none; }
  .group-feature > div { padding: 32px; }
  .group-feature > img { min-height: 420px; }
  .price-section, .kontakt { gap: 45px; }
  .experience-grid { gap: 20px; }
  .wasserkante { margin-left: -32px; margin-right: -32px; }
  .wasser { padding: 30px 32px; }
}
@media (max-width: 900px) {
  .site-header { min-height: 84px; flex-wrap: wrap; gap: 0; }
  .menu-toggle { display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); background: transparent; padding: 10px 13px; border-radius: 3px; font-size: 13px; color: var(--ink); cursor: pointer; }
  .main-nav { display: none; flex-basis: 100%; padding: 16px 0 24px; align-items: stretch; gap: 0; }
  .main-nav.is-open { display: flex; flex-direction: column; }
  .main-nav a { padding: 13px 2px; font-size: 15px; }
  .main-nav .nav-book { margin-top: 8px; }
  .hero-copy { padding: 32px 24px; }
  .hero h1 { font-size: 8.25vw; }
  .hero .eyebrow { font-size: 8px; }
  .hero { min-height: 555px; }
  .hero-photo figcaption { flex-direction: column; }
  .daily-strip b { font-size: 12px; }
  .status { max-width: 125px; }
  .section-heading > p br { display: none; }
  .section-heading > p { max-width: 260px; }
  .experience-title h3 { font-size: 26px; }
  .image-label { font-size: 8px; left: 12px; }
  .image-arrow { right: 10px; width: 25px; height: 25px; line-height: 25px; bottom: 17px; }
  .group-feature > div { padding: 28px; }
  .xl-feature { padding: 22px 30px; }
  .xl-product img { height: 190px; }
  .anleger { gap: 30px; }
  .anleger .luftbild img { min-height: 460px; }
}
@media (max-width: 640px) {
  .steg { padding: 0 20px; }
  .site-header { min-height: 78px; }
  .brand img { width: 39px; height: 39px; }
  .brand > span { font-size: 24px; }
  .brand small { font-size: 8px; }
  .hero { grid-template-columns: 1fr; margin: 0 -20px; }
  .hero-copy { padding: 31px 25px 25px; }
  .hero .eyebrow { font-size: 9px; margin-bottom: 18px; }
  .hero h1 { font-size: clamp(50px, 16.7vw, 98px); margin: 0 0 22px; line-height: .9; }
  .hero-description { font-size: 15px; margin-bottom: 20px; }
  .hero-actions { gap: 18px; }
  .hero .knopf { padding: 13px 16px; font-size: 14px; gap: 20px; }
  .text-link { font-size: 12px; }
  .hero-footnote { padding-top: 22px; font-size: 10px; gap: 12px; }
  .hero-photo { height: 330px; }
  .hero-photo > img { object-position: 50% 67%; }
  .hero-photo figcaption { flex-direction: row; bottom: 18px; left: 22px; right: 22px; font-size: 8px; }
  .photo-note { top: 20px; right: 20px; font-size: 13px; padding: 12px 39px 12px 15px; }
  .photo-note strong { font-size: 17px; }
  .daily-strip { grid-template-columns: 1fr 1fr; gap: 17px; padding: 22px 0; }
  .daily-strip b { font-size: 13px; }
  .daily-strip > div:nth-child(3) { display: none; }
  .status { max-width: none; justify-self: start; }
  .experiences { padding-top: 48px; }
  .section-heading { display: block; margin-bottom: 23px; }
  .section-heading h2 { font-size: 41px; }
  .section-heading > p { max-width: none; font-size: 14px; margin-top: 17px; }
  .eyebrow { font-size: 9px; margin-bottom: 15px; }
  .experience-grid { grid-template-columns: 1fr; gap: 30px; }
  .experience-image { aspect-ratio: 1.45; }
  .experience-image img { object-position: 50% 63%; }
  .image-label { font-size: 9px; left: 17px; }
  .image-arrow { width: 30px; height: 30px; line-height: 30px; right: 16px; }
  .experience-title { margin-top: 17px; }
  .experience-title h3 { font-size: 30px; }
  .experience > p { margin: 12px 0 15px; }
  .offer-link { padding: 13px 0; }
  .group-feature { grid-template-columns: 1fr; margin: 45px -20px 0; }
  .group-feature > img { height: 250px; min-height: 0; object-position: center; }
  .group-feature > div { padding: 30px 25px 35px; }
  .group-feature h2 { font-size: 49px; }
  .xl-feature { grid-template-columns: 1fr; padding: 10px 24px 25px; gap: 0; margin-top: 20px; }
  .xl-product { height: 200px; }
  .xl-product img { height: 190px; }
  .xl-feature h2 { font-size: 32px; }
  .price-section { grid-template-columns: 1fr; gap: 28px; padding: 48px 0; }
  .price-intro h2 { font-size: 46px; }
  .price-intro > p:not(.eyebrow) { font-size: 15px; }
  .ten-pass { margin-top: 24px; padding: 18px 20px; background: #e8edf3; border: 0; max-width: none; }
  .ten-pass h3 { font-size: 29px; }
  .ten-pass h3 br { display: none; }
  .preisliste th { font-size: 14px; padding-right: 12px; }
  .preisliste th small { font-size: 11px; }
  .preisliste td { font-size: 22px; }
  .preisliste td small { font-size: 11px; }
  .moments { margin-top: 45px; }
  .moments-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .moments img { height: 210px; }
  .moments figure:first-child img { object-position: 52% center; }
  .moments figcaption { font-size: 11px; }
  .safety-section { margin-top: 36px; }
  .regeln ol { columns: 1; }
  .summer-extra { padding: 18px; gap: 18px; }
  .summer-extra img { width: 50px; height: 80px; }
  .summer-extra h2 { font-size: 24px; }
  .summer-extra p:not(.eyebrow) { font-size: 11px; }
  .anleger { grid-template-columns: 1fr; margin-top: 45px; gap: 22px; }
  .anleger .luftbild img { height: 270px; min-height: 0; }
  .location-copy { padding: 0; }
  .location-copy h3 { font-size: 46px; }
  .kontakt { grid-template-columns: 1fr; margin-top: 35px; padding-top: 30px; gap: 30px; }
  .handy h2 { font-size: 42px; }
  .handy h2 br { display: none; }
  .handy a, .handy a.mail { max-width: none; }
  .wasserkante { margin: 45px -20px 0; }
  .wasser { padding: 28px 20px; }
  .wasser .innen { grid-template-columns: 1fr; gap: 12px; }
  .wasser .ente { text-align: left; }
  .wasser nav { gap: 4px 18px; }
  .klemmbrett { margin: 16px -8px 0; padding: 8px; }
  .blatt { padding: 22px 15px; }
  .blatt h1 { font-size: 35px; }
  .schritt { padding-left: 0; }
  .schritt > h2 { padding-left: 38px; min-height: 30px; }
  .kaestchen label { font-size: 13px; }
  .bogen { margin-top: 15px; padding: 22px 18px; }
  .postkarte .rueckseite { padding: 24px; font-size: 15px; }
  .postkarte img { max-height: 260px; }
  .stempel { margin: 16px 0; font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; } }

/* AlsterSURFER brand correction: original dock, orange and blue. */
body {
  background-color: var(--diele);
  background-image: repeating-linear-gradient(90deg, transparent 0 141px, #42484e 141px 144px, #7a8085 144px 146px), linear-gradient(#6c7279, #4a4f55);
}
.steg { max-width: 1320px; background: var(--paper); box-shadow: 0 0 45px #0002; }
.site-header { border-bottom: 2px solid var(--schild-rand); }
.main-nav a.nav-book { background: var(--blau); }
.hero { margin-top: 22px; background: #33373c; }
.hero .knopf, .group-feature .knopf { color: #1d2329; }
.group-feature { background: #234f86; }
.group-feature .eyebrow { color: #fff; }
.daily-strip { border-bottom: 3px solid #cfcdc4; }
.daily-title b { font-family: var(--f-hand); color: #16457c; font-size: 17px; }
.brand b { color: #c4531d; }
.experience-image { border-bottom: 4px solid var(--blau); }
.experience:nth-child(2) .experience-image { border-color: var(--rot); }
.experience:nth-child(3) .experience-image { border-color: var(--orange); }
.photo-note { border: 1px solid #cfcdc4; }
.knopf.blau { background: var(--blau); }
@media (max-width:640px) { .hero { margin-top: 0; } }

@media (min-width:901px) { .hero h1 { font-size:clamp(65px,7.1vw,102px); } }

/* Local polish, October 2026: Alster blue, sunset orange, real dock photography. */
:root { --alster-deep: #123b6b; --alster-soft: #e7eef6; }
.site-header { border-bottom: 1px solid var(--line); }
.brand b { color: #c4531d; }
.hero { background: var(--alster-deep); position: relative; }
.hero-copy { position: relative; border-top: 4px solid var(--orange); }
.hero .eyebrow { color: #e1ebf7; }
.hero h1 { position: relative; z-index: 1; }
.hero h1 span { color: #ff9b61; }
.hero .knopf, .group-feature .knopf, .event-copy .knopf { background: var(--orange); color: #17212a; border-color: var(--orange); }
.hero .knopf:hover, .group-feature .knopf:hover, .event-copy .knopf:hover { background: #ffad7b; border-color: #ffad7b; color: #123b6b; }
.hero-footnote { width: 100%; padding-top: 23px; margin-top: 30px; border-top: 1px solid #ffffff38; }
.hero-footnote span + span { color: #d5e3f4; }
.photo-note { background: #fff8ed; border: 0; box-shadow: 0 8px 24px #0d294c26; }
.photo-note::before { content: ''; position: absolute; top: -8px; left: 35%; width: 45px; height: 17px; background: #ffb06fcc; transform: rotate(-8deg); }
.daily-strip { border-bottom: 1px solid var(--line); padding: 25px 0; }
.daily-title { border-left: 3px solid var(--orange); padding-left: 16px; }
.daily-title b { color: var(--alster-deep); }
.experiences .section-heading h2, .price-intro h2, .location-copy h3 { color: var(--alster-deep); }
.experience-image { border-bottom: 4px solid var(--blau); }
.experience:nth-child(2) .experience-image { border-color: var(--orange); }
.experience:nth-child(3) .experience-image { border-color: var(--blau); }
.experience-title h3 { color: var(--alster-deep); }
.experience .offer-link { color: #16457c; }
.experience .offer-link:hover { color: #a94116; }
.image-arrow { background: #fff8ed; color: var(--alster-deep); }
.group-feature { background: var(--alster-deep); }
.group-feature .group-price { border-top: 1px solid #ffffff38; padding-top: 18px; }
.xl-feature { background: var(--alster-soft); border-left: 4px solid var(--blau); }
.xl-feature h2 { color: var(--alster-deep); }
.price-section { gap: 65px; align-items: start; }
.preisliste { background: #fffdf8; border: 1px solid #cfcdc4; border-top: 5px solid var(--blau); padding: 28px 30px 22px; box-shadow: 0 8px 24px #123b6b08; }
.preisliste::before, .preisliste::after { display: none; }
.preisliste h2 { font-size: 34px; color: var(--alster-deep); }
.preisliste td { color: var(--alster-deep); white-space: nowrap; }
.preisliste tfoot td { color: var(--muted); white-space: normal; }
.ten-pass { position: relative; border: 1px solid #e2b696; border-left: 4px solid var(--orange); background: #fae8d8; padding: 22px 24px; }
.ten-pass h3 { color: var(--alster-deep); }
.ten-pass > span { font-weight: 600; }
.moments-grid figure:first-child { padding-top: 0; }
.moments figcaption { border-bottom: 1px solid var(--line); padding: 12px 0; }
.faq-section { display: grid; grid-template-columns: .85fr 1.15fr; gap: 65px; margin-top: 72px; padding: 45px 0; border-top: 3px solid var(--alster-deep); border-bottom: 1px solid var(--line); }
.faq-intro .eyebrow { color: #a94116; }
.faq-intro h2 { font: 700 clamp(34px,3.4vw,49px)/1 var(--f-schild); color: var(--alster-deep); letter-spacing: -.01em; margin: 0 0 20px; }
.faq-intro > p:not(.eyebrow) { color: var(--muted); font-size: 15px; max-width: 300px; }
.faq-intro .offer-link { border-top: 0; color: #16457c; justify-content: start; margin-top: 24px; }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item:first-child { border-top: 1px solid var(--line); }
.faq-item summary { display: flex; justify-content: space-between; gap: 18px; align-items: center; padding: 20px 0; cursor: pointer; list-style: none; font-weight: 600; color: var(--alster-deep); font-size: 17px; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary > span { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #b4c4d5; border-radius: 50%; font-size: 22px; font-weight: 400; line-height: 1; transition: transform .2s ease; }
.faq-item[open] summary > span { transform: rotate(45deg); background: #fae8d8; border-color: #e2b696; }
.faq-item summary:hover { color: #a94116; }
.faq-item p { font-size: 15px; line-height: 1.65; margin: 0; padding: 0 42px 21px 0; color: var(--muted); }
.safety-section { margin-top: 30px; border-top: 0; }
.safety-section summary strong { color: var(--alster-deep); }
.anleger .luftbild figcaption { background: #fff8ed; color: var(--alster-deep); }
.handy h2, .notizblock h2 { color: var(--alster-deep); }
.wasser { background: var(--alster-deep); border-top: 4px solid var(--orange); }
.breadcrumbs { padding: 22px 0 0; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; list-style: none; font-size: 12px; color: var(--muted); }
.breadcrumbs li + li::before { content: '/'; margin-right: 8px; color: #9eaaaF; }
.breadcrumbs a { color: #16457c; text-underline-offset: 3px; }
.breadcrumbs [aria-current] { font-weight: 600; color: var(--alster-deep); }
.breadcrumbs + .markierung { margin-top: 25px !important; }
.klemmbrett { border: 1px solid #c8d3df; background: var(--alster-soft); }
.blatt h1, .blatt .form-title { color: var(--alster-deep); }
.blatt .form-title { font: 700 38px/1 var(--f-schild); margin: 0; }
.schritt > h2::before { background: var(--blau); }
.kaestchen label:has(input:checked), .chips button[aria-pressed="true"], .zeiten button[aria-pressed="true"] { background: #fae8d8; color: #123b6b; border-color: #b84b18; box-shadow: inset 0 0 0 1px #b84b18; }
.kaestchen label { transition: border-color .2s ease, background-color .2s ease; }
.event-intro { margin-top: 25px; display: grid; grid-template-columns: 1fr 1.05fr; background: var(--alster-deep); color: white; }
.event-copy { padding: 42px 38px; border-top: 4px solid var(--orange); }
.event-copy h1 { font: 800 clamp(42px,5vw,70px)/.95 var(--f-schild); margin: 0 0 25px; letter-spacing: -.015em; }
.event-copy h1 span { color: #ff9b61; }
.event-copy > p:not(.eyebrow) { font-size: 16px; line-height: 1.65; color: #e1ebf7; }
.event-intro > img { height: 100%; width: 100%; object-fit: cover; object-position: center; }
.event-facts { display: flex; flex-wrap: wrap; gap: 18px 30px; padding: 15px 0; border-top: 1px solid #ffffff38; }
.event-facts span { display: flex; align-items: baseline; gap: 5px; font-size: 13px; }
.event-facts b { font: 700 30px/1 var(--f-schild); color: white; }
.event-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 45px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.event-notes p { font-size: 15px; color: var(--muted); }
.event-notes b { display: block; color: var(--alster-deep); margin-bottom: 5px; }
@media (max-width:1150px) { .price-section, .faq-section { gap: 38px; } .preisliste { padding: 24px; } .event-copy { padding: 32px 28px; } }
@media (max-width:900px) { .main-nav a.nav-book { padding: 13px 16px; } .event-intro { grid-template-columns: 1fr; } .event-intro > img { height: 300px; object-position: center 45%; } }
@media (max-width:640px) {
  .hero-copy { padding-bottom: 26px; }
  .hero h1 { font-size: clamp(47px,15.5vw,98px); }
  .hero-footnote { font-size: 11px; margin-top: 22px; padding-top: 17px; gap: 5px 18px; }
  .daily-title { padding-left: 11px; }
  .price-section { gap: 25px; }
  .preisliste { padding: 22px 18px; }
  .preisliste th { font-size: 14px; }
  .preisliste td { font-size: 24px; }
  .ten-pass { padding: 20px; border-left: 4px solid var(--orange); background: #fae8d8; }
  .faq-section { grid-template-columns: 1fr; gap: 22px; padding: 32px 0 22px; margin-top: 38px; }
  .faq-intro h2 { font-size: 39px; }
  .faq-intro > p:not(.eyebrow) { max-width: none; }
  .faq-intro .offer-link { margin-top: 10px; }
  .faq-item summary { font-size: 16px; padding: 17px 0; }
  .faq-item p { padding-right: 10px; font-size: 14px; }
  .breadcrumbs { padding-top: 18px; }
  .event-intro { margin: 18px -20px 0; }
  .event-copy { padding: 30px 25px; }
  .event-copy h1 { font-size: clamp(38px,11.5vw,64px); }
  .event-copy .eyebrow { font-size: 10px; }
  .event-intro > img { height: 235px; }
  .event-notes { grid-template-columns: 1fr; gap: 0; padding: 17px 0; }
  .blatt .form-title { font-size: 32px; }
}
@media (max-width:380px) {
  .site-header { gap: 8px; min-height: 76px; }
  .brand { gap: 8px; }
  .brand img { width: 34px; height: 34px; }
  .brand > span { font-size: 21px; }
  .brand small { font-size: 7px; letter-spacing: .13em; }
  .menu-toggle { padding: 9px 10px; gap: 7px; font-size: 12px; }
}
