﻿/* Vorlage „kueste“ – Hafen-Logbuch
   Gerüst: Framer „seaside-deli“ (festes Bildfenster links, abgerundete Karten rechts auf Marineblau)
   Eigener Stil: Segeltuch-Papier, Fischstiche in Tinte, Tau-Rahmen, Signalflaggen, Bullaugen, Wellengang */

:root{
  --marine:#14273a; --marine-tief:#0b1826; --segeltuch:#f4efe3; --sand:#e4d8bf; --tinte:#1a2532;
  --signalrot:#c43a2f; --messing:#b48a3e; --petrol:#3d6b78; --gischt:#dce8e9; --gruen:#5fd38d;
  --slab:"Zilla Slab",Rockwell,Georgia,serif; --stencil:"Big Shoulders Stencil Display","Arial Narrow",sans-serif;
  --body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif; --hand:"Kalam","Segoe Print",cursive;
  --tex-segeltuch:url("img/tex/segeltuch.webp"); --tex-planken:url("img/tex/planken.webp"); --tex-korn:url("img/tex/koernung.webp");
  --r:20px; --gap:12px; --ease:cubic-bezier(.23,1,.32,1);
}
/* Akzent je Stufe (daten.json „akzentfarbe“ setzt --akzent auf :root und gewinnt) */
.stufe-1{--akzent-std:var(--signalrot); --akzent-text-std:#b3342a}
.stufe-2{--akzent-std:var(--messing); --akzent-text-std:var(--petrol)}
body{--ak:var(--akzent,var(--akzent-std)); --akt:var(--akzent-text,var(--akzent-text-std))}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:16px;scrollbar-color:#36506a var(--marine-tief);caret-color:var(--petrol);-webkit-text-size-adjust:100%}
::selection{background:var(--petrol);color:#fff}
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:var(--marine-tief)}
::-webkit-scrollbar-thumb{background:#36506a;border:3px solid var(--marine-tief);border-radius:8px}
:focus-visible{outline:2px solid var(--messing);outline-offset:3px;border-radius:4px}
/* Lenis */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

body{background:var(--marine);color:var(--tinte);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;background-image:var(--tex-korn);opacity:.07;pointer-events:none;z-index:0}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.defs{position:absolute;width:0;height:0;overflow:hidden}
.center{text-align:center}
.hand{font-family:var(--hand)}

/* ---------- Grundgerüst: Bildfenster links, Karten rechts ---------- */
.frame{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,49fr) minmax(0,51fr);gap:var(--gap);padding:var(--gap)}
.deck{display:flex;flex-direction:column;gap:var(--gap);min-width:0;container-type:inline-size}

/* ---------- Hafenfenster ---------- */
.harbor{position:sticky;top:var(--gap);height:calc(100vh - 2 * var(--gap));height:calc(100svh - 2 * var(--gap));border-radius:var(--r);overflow:hidden;background:var(--marine-tief);color:var(--gischt);isolation:isolate}
.harbor__slides,.slide{position:absolute;inset:0;margin:0}
.slide{opacity:0;transition:opacity 1.8s ease}
.slide.is-on{opacity:1}
.slide img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.04);transform-origin:50% 60%;will-change:transform;animation:kenburns 20s ease-in-out infinite alternate;animation-play-state:paused}
.slide.is-on img,.slide.was-on img{animation-play-state:running}
.slide:nth-child(2n) img{transform-origin:30% 40%}
@keyframes kenburns{from{transform:scale(1.02)}to{transform:scale(1.14) translate3d(-1.5%,-1%,0)}}
.harbor__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,24,38,.55) 0,rgba(11,24,38,0) 22%,rgba(11,24,38,0) 52%,rgba(11,24,38,.72) 100%);pointer-events:none}

/* Wellengang an der Unterkante (endlos per transform) */
.waves{position:absolute;left:0;right:0;bottom:0;height:78px;pointer-events:none;overflow:hidden;z-index:2}
.waves svg{position:absolute;left:0;bottom:0;width:200%;height:100%;will-change:transform}
.waves__back{animation:wave 28s linear infinite;bottom:6px!important}
.waves__back path{fill:var(--petrol);opacity:.55}
.waves__front{animation:wave 17s linear infinite}
.waves__front path{fill:var(--marine)}
.waves__front .waves__crest{fill:none;stroke:var(--gischt);stroke-width:2;opacity:.55;vector-effect:non-scaling-stroke}
@keyframes wave{to{transform:translate3d(-50%,0,0)}}

/* Plakette unten links (wie „Find us“ im Gerüst, mit ausgeschnittenen Ecken) */
.plaque{position:absolute;left:0;bottom:0;z-index:3;width:min(340px,74%);background:var(--marine);color:var(--gischt);border-radius:0 var(--r) 0 0;padding:20px 24px 22px}
.plaque::before,.plaque::after{content:"";position:absolute;width:20px;height:20px;background:radial-gradient(circle at 100% 0,transparent 19.5px,var(--marine) 20px)}
.plaque::before{left:0;bottom:100%}
.plaque::after{left:100%;bottom:0}
.plaque__label{display:flex;justify-content:space-between;align-items:center;gap:12px;font:700 16px/1 var(--stencil);letter-spacing:.16em;text-transform:uppercase;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid rgba(220,232,233,.22)}
.plaque__label a{display:grid;place-items:center;width:40px;height:40px;margin:-10px -10px -10px 0;border-radius:50%;color:var(--gischt);transition:color .2s,background-color .2s}
@media (hover:hover){.plaque__label a:hover{color:var(--messing);background:rgba(255,255,255,.06)}}
.plaque__addr,.plaque__tel{font-size:16px;line-height:1.55}
.plaque__tel a{border-bottom:1px solid rgba(220,232,233,.3)}
.status{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:15px;color:rgba(220,232,233,.9)}
.status__dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--gruen);box-shadow:0 0 0 3px rgba(95,211,141,.22);animation:puls 2.6s ease-in-out infinite}
.status__dot.is-closed{background:var(--ak);box-shadow:0 0 0 3px rgba(196,58,47,.18);animation:none}
@keyframes puls{50%{opacity:.45}}
[data-status-wrap][hidden]{display:none!important}

.harbor__dots{position:absolute;right:16px;bottom:18px;z-index:3;display:flex;gap:9px;padding:10px 14px;border-radius:12px;background:var(--marine)}
.harbor__dots i{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--gischt);transition:background-color .4s}
.harbor__dots i.is-on{background:var(--gischt)}

/* Navigationsleiste (am Desktop im Bildfenster, am Handy fest oben) – kein backdrop-filter */
.bar{position:absolute;z-index:6;top:14px;left:14px;right:14px;display:flex;align-items:center;gap:12px;padding:9px 10px 9px 10px;border-radius:16px;background:var(--marine);box-shadow:0 10px 30px rgba(0,0,0,.25)}
.bar__logo{display:flex;align-items:center;flex:0 1 auto;min-width:0;max-width:58%;min-height:48px;padding:6px 14px;border-radius:10px;background:var(--segeltuch) var(--tex-segeltuch) 0 0/800px}
img.bar__img{height:38px;width:auto;max-width:100%;object-fit:contain;mix-blend-mode:multiply}
.bar__wm{min-width:0;align-items:flex-start;text-align:left}
.bar .bar__wm .wm__name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font:700 19px/1.1 var(--slab);color:var(--tinte);hyphens:manual}
.bar .btn--bar{margin-left:auto;flex:none;white-space:nowrap}
.bar__burger{flex:none;position:relative;width:46px;height:46px;border-radius:10px;transition:background-color .2s}
@media (hover:hover){.bar__burger:hover{background:rgba(255,255,255,.08)}}
.bar__burger span{position:absolute;left:13px;right:13px;height:2px;border-radius:2px;background:var(--gischt)}
.bar__burger span:nth-child(1){top:16px}.bar__burger span:nth-child(2){top:22px;right:18px}.bar__burger span:nth-child(3){top:28px}

/* Schild mit Logo (Handy-Hero und Bildfenster ohne Fotos) */
.harbor__sign{position:absolute;inset:0;z-index:2;display:none;place-items:center;padding:96px 22px 170px}
.sign{position:relative;max-width:min(460px,86%);padding:24px 34px;border-radius:12px;background:var(--segeltuch) var(--tex-segeltuch) 0 0/800px;box-shadow:0 22px 44px rgba(0,0,0,.42),inset 0 0 0 1px rgba(26,37,50,.08)}
.sign::before,.sign::after{content:"";position:absolute;bottom:100%;width:7px;height:70px;background:url("img/env/tau-v.svg") 0 0/100% auto repeat-y;border-radius:4px}
.sign::before{left:16%;transform:rotate(14deg);transform-origin:bottom}
.sign::after{right:16%;transform:rotate(-14deg);transform-origin:bottom}
img.sign__logo{display:block;margin:auto;max-width:100%;max-height:130px;width:auto;height:auto;mix-blend-mode:multiply}

/* Helles Logo (h.logo_hell): auf dunklen Grund statt Segeltuch, nie hell auf hell */
.logo-hell .bar__logo,.logo-hell .sign{background:var(--marine-tief);box-shadow:inset 0 0 0 1px rgba(220,232,233,.18)}
.logo-hell .sign{box-shadow:0 22px 44px rgba(0,0,0,.42),inset 0 0 0 1px rgba(220,232,233,.18)}
.logo-hell .foot__logo{padding:14px 18px;border-radius:12px;background:var(--marine)}
.logo-hell img{mix-blend-mode:normal!important}

/* Schriftzug, wenn kein Logo vorliegt */
.wordmark{display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--tinte)}
.wm__name{display:block;max-width:100%;font-family:var(--slab);font-weight:700;line-height:1.04;letter-spacing:-.01em;overflow-wrap:break-word;hyphens:manual}
.wm--l .wm__name{font-size:clamp(38px,4.4vw,58px)}
.wm--m .wm__name{font-size:clamp(30px,3.3vw,44px)}
.wm--s .wm__name{font-size:clamp(24px,2.5vw,34px)}
.wm__ort{margin-top:12px;padding-top:9px;border-top:1.5px solid rgba(26,37,50,.28);font:700 14px/1.2 var(--stencil);letter-spacing:.2em;text-transform:uppercase;color:var(--petrol)}

/* Seekarte statt Foto */
.chart{position:absolute;inset:0;color:var(--gischt);background:radial-gradient(ellipse at 30% 20%,#24476a 0,transparent 60%),radial-gradient(ellipse at 80% 90%,#1d3d58 0,transparent 55%),linear-gradient(180deg,#183552,#0e2033)}
.chart__lines{position:absolute;inset:0;width:100%;height:100%;opacity:.28}
.chart__rose{position:absolute;left:7%;top:13%;width:clamp(120px,16vw,210px);opacity:.55;filter:brightness(2.2) saturate(.4);animation:drehen 160s linear infinite}
.chart__orn{position:absolute;right:-4%;bottom:12%;width:min(560px,70%);filter:invert(1);opacity:.42}
.chart__gull{position:absolute;width:46px;filter:invert(1);opacity:.7;animation:gleiten 9s ease-in-out infinite alternate}
.chart__gull--1{left:58%;top:20%}
.chart__gull--2{left:68%;top:27%;width:32px;animation-duration:11s;animation-delay:-3s}
@keyframes gleiten{from{transform:translate3d(0,0,0)}to{transform:translate3d(-30px,12px,0)}}
@keyframes drehen{to{transform:rotate(360deg)}}
.no-photos .harbor__sign{display:grid}

/* ---------- Karten ---------- */
.card{position:relative;overflow:hidden;border-radius:var(--r);background:var(--segeltuch) var(--tex-segeltuch) 0 0/800px;color:var(--tinte);padding:clamp(30px,6cqi,68px)}
.card__head{position:relative;max-width:640px}
.card__head.center{margin:0 auto}
.kicker{font:700 15px/1.25 var(--stencil);letter-spacing:.17em;text-transform:uppercase;color:var(--petrol);margin-bottom:14px}
.kicker--light{color:var(--messing)}
h1,h2,h3{font-family:var(--slab);font-weight:700;color:var(--tinte);text-wrap:balance;overflow-wrap:break-word;hyphens:auto}
h2{font-size:clamp(32px,5.6cqi,50px);line-height:1.06;letter-spacing:-.01em}
h1 em,h2 em{font-style:italic;font-weight:600;color:var(--akt)}
.h3{font-size:30px;line-height:1.1}
.lead{font-size:18px;line-height:1.65;color:rgba(26,37,50,.82);margin-top:18px;max-width:60ch}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}

/* Knöpfe in Schablonenschrift */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:6px 26px;border-radius:10px;font:700 17px/1.1 var(--stencil);letter-spacing:.13em;text-transform:uppercase;text-align:center;transition:transform .16s var(--ease),background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}
.btn:active{transform:scale(.97)}
.btn--primary{background:var(--marine);color:var(--segeltuch)}
.btn--ghost{border:2px solid var(--marine);color:var(--marine)}
.btn--bar{min-height:46px;padding:4px 18px;background:var(--segeltuch);color:var(--marine);font-size:16px}
.btn--light{background:var(--segeltuch);color:var(--marine)}
@media (hover:hover){
  .btn--primary:hover{background:var(--petrol)}
  .btn--ghost:hover{background:var(--marine);color:var(--segeltuch)}
  .btn--bar:hover,.btn--light:hover{background:#fff}
}

/* Hero-Karte */
.hero-card{min-height:min(620px,calc(100svh - 300px));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-bottom:104px}
.hero-card__orn{position:absolute;left:5%;top:7%;width:58px;height:auto;opacity:.16;transform:rotate(-12deg);pointer-events:none}
.hero-card .kicker{max-width:34em}
.hero-card__title{font-size:clamp(40px,9.4cqi,78px);line-height:1;letter-spacing:-.015em;max-width:12.5em}
.hero-card__title .line{display:block;overflow:hidden;padding:0 .04em .08em}
.hero-card__title .line>span{display:inline-block}
.hero-card .lead{margin-left:auto;margin-right:auto;max-width:54ch}
.hero-card .actions{justify-content:center}
/* Lasche unten mit Live-Status (im Gerüst: Social-Leiste) */
.notch{position:absolute;left:50%;bottom:0;transform:translateX(-50%);display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 56px);padding:12px 24px 11px;border-radius:16px 16px 0 0;background:var(--marine);color:var(--gischt);font-size:15px;line-height:1.35;text-align:left}
.notch::before,.notch::after{content:"";position:absolute;bottom:0;width:16px;height:16px}
.notch::before{right:100%;background:radial-gradient(circle at 0 0,transparent 15.5px,var(--marine) 16px)}
.notch::after{left:100%;background:radial-gradient(circle at 100% 0,transparent 15.5px,var(--marine) 16px)}

/* Zwei kleine Karten */
.duo{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:var(--gap)}
.duo .card{padding:38px 32px}
.duo--eins{grid-template-columns:1fr}
.mini{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:20px}
.mini__orn{width:min(260px,92%);height:auto;max-height:170px;object-fit:contain}
.mini__text{font:600 24px/1.3 var(--slab);text-wrap:balance;overflow-wrap:break-word;hyphens:auto}

/* Gezeitentafel mit Tau-Rahmen */
.tide{padding:44px 38px 38px!important}
.tide .h3{margin-bottom:12px}
.tide__list>div{display:flex;align-items:baseline;gap:10px;padding:7px 0;font-size:16px;line-height:1.4}
.tide__list>div::after{content:"";order:1;flex:1 1 18px;min-width:18px;border-bottom:2px dotted rgba(26,37,50,.26);transform:translateY(-5px)}
.tide__list dt{order:0;flex:none;font:700 17px/1.2 var(--stencil);letter-spacing:.09em;text-transform:uppercase}
.tide__list dd{order:2;max-width:64%;text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.tide__list dd a{border-bottom:1px solid rgba(26,37,50,.25)}
.tide__list dd small{display:block;margin-top:2px;font-size:13.5px;line-height:1.3;color:rgba(26,37,50,.62)}
.tide__list>div.is-today{margin:0 -12px;padding-left:12px;padding-right:12px;border-radius:8px;background:color-mix(in srgb,var(--ak) 11%,transparent)}
.tide__list>div.is-today dt{color:var(--akt)}
.tide__list>div.is-today dt::before{content:"";display:inline-block;width:10px;height:13px;margin-right:8px;background:var(--ak);clip-path:polygon(0 0,100% 50%,0 100%);vertical-align:-1px}
.tide__list>div.is-today dd{font-weight:500}
.tide__list--kontakt{margin-top:14px;padding-top:10px;border-top:1.5px solid rgba(26,37,50,.14)}
.tide__hint{margin-top:14px;font-size:15px;font-style:italic;color:rgba(26,37,50,.72)}
/* Sextant als Wasserzeichen oben rechts (hinter dem Text, .rope~* setzt sonst position:relative) */
.tide .tide__orn{position:absolute;z-index:0;right:26px;top:26px;width:118px;height:auto;opacity:.17;transform:rotate(8deg);pointer-events:none}

.rope{position:absolute;inset:11px;pointer-events:none;z-index:0}
.rope~*{position:relative;z-index:1}
.rope__e{position:absolute;display:block;border-radius:5px;box-shadow:0 1px 1.5px rgba(26,37,50,.22)}
.rope__e--t,.rope__e--b{left:0;right:0;height:8px;background:url("img/env/tau-h.svg") 0 0/auto 100% repeat-x}
.rope__e--l,.rope__e--r{top:0;bottom:0;width:8px;background:url("img/env/tau-v.svg") 0 0/100% auto repeat-y}
.rope__e--t{top:0;transform-origin:0 50%}
.rope__e--r{right:0;transform-origin:50% 0}
.rope__e--b{bottom:0;transform-origin:100% 50%}
.rope__e--l{left:0;transform-origin:50% 100%}
.rope__knot{position:absolute;left:-15px;top:-15px;width:42px;height:42px;filter:drop-shadow(0 2px 2px rgba(26,37,50,.3))}

/* Willkommen */
.haus{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(28px,6cqi,56px);align-items:center;padding:clamp(40px,7cqi,72px)!important}
.haus__text p:not(.kicker){margin-top:16px;font-size:17.5px;line-height:1.68;max-width:60ch}
.haus__text h2{margin-bottom:6px}
.haus__text .gruss{font-size:24px;line-height:1.3;color:var(--petrol);margin-top:24px}
.haus__photo{position:relative;margin:0;transform:rotate(1.6deg)}
.haus__photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:12px;box-shadow:0 18px 34px rgba(20,39,58,.25)}
.haus__photo--breit img{aspect-ratio:auto}
.haus__photo figcaption{position:absolute;left:-12px;bottom:18px;max-width:calc(100% + 4px);padding:3px 14px;border-radius:6px;background:var(--segeltuch);font-size:17px;line-height:1.35;color:var(--tinte);box-shadow:0 4px 10px rgba(20,39,58,.18);transform:rotate(-3deg)}
.haus__orn{display:flex;justify-content:center}
.haus__orn img{width:100%;max-width:340px}

/* Signalflaggen-Laufband auf gekalkten Planken */
.band{position:relative;height:150px;border-radius:var(--r);overflow:hidden;background:#e7e4da var(--tex-planken) 0 0/auto 100% repeat-x;box-shadow:inset 0 0 0 1px rgba(255,255,255,.4)}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,39,58,.18),transparent 9%,transparent 91%,rgba(20,39,58,.18));pointer-events:none}
.band__line{position:absolute;left:0;right:0;top:24px;height:6px;background:url("img/env/tau-h.svg") 0 0/auto 100% repeat-x;box-shadow:0 2px 2px rgba(26,37,50,.2)}
.band__track{display:flex;width:max-content;padding-top:32px;animation:band var(--dauer,60s) linear infinite;will-change:transform}
.band__set{display:flex;align-items:flex-start;flex:none}
.band__word{display:flex;gap:12px;padding:0 22px}
.flag{position:relative;display:block;width:54px;height:36px;transform-origin:50% 0;animation:flattern 2.6s ease-in-out infinite alternate;animation-delay:calc(var(--i) * -.6s)}
.flag::before{content:"";position:absolute;left:50%;top:-6px;width:1.5px;height:6px;background:#5a462a}
.flag svg{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 2px rgba(26,37,50,.28))}
.flag::after{content:attr(data-l);position:absolute;left:0;right:0;top:calc(100% + 6px);text-align:center;font:700 17px/1 var(--stencil);color:var(--marine);opacity:0;transition:opacity .2s}
.band__cat{display:flex;align-items:center;gap:22px;padding:24px 22px 0 4px;font:700 25px/1 var(--stencil);letter-spacing:.12em;text-transform:uppercase;color:var(--marine);white-space:nowrap}
.band__cat::before{content:"";width:9px;height:9px;background:var(--ak);transform:rotate(45deg)}
@media (hover:hover){
  .band:hover .band__track{animation-play-state:paused}
  .band:hover .flag::after{opacity:1}
}
@keyframes band{to{transform:translate3d(-50%,0,0)}}
@keyframes flattern{from{transform:skewX(-7deg) rotate(-2deg)}to{transform:skewX(6deg) rotate(2.5deg)}}

/* Spezialitäten mit Bullaugen */
.spez__orn{position:absolute;right:-50px;top:40px;width:280px;opacity:.1;pointer-events:none}
.spez__list{list-style:none;max-width:700px;margin:42px auto 38px;display:grid;gap:28px}
.spez__item{display:grid;grid-template-columns:100px minmax(0,1fr);gap:24px;align-items:center}
.spez__eye{display:flex;flex-direction:column;align-items:center;gap:9px}
.porthole{position:relative;display:block;width:96px;height:96px;border-radius:50%;overflow:hidden;background:#fbf8f0;box-shadow:0 0 0 4px #c9a25a,0 0 0 6.5px #7a5a28,0 0 0 7.5px rgba(255,255,255,.5),0 10px 18px 6px rgba(20,39,58,.22)}
.porthole::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:inset 0 3px 8px rgba(0,0,0,.28);background:linear-gradient(140deg,rgba(255,255,255,.28),transparent 42%);pointer-events:none}
.porthole img{width:100%;height:100%;object-fit:cover}
.porthole--stich img{object-fit:contain;padding:15px}
.sym{font:500 10.5px/1 var(--body);letter-spacing:.1em;text-transform:uppercase;color:rgba(26,37,50,.62)}
.spez__row{display:flex;align-items:baseline;gap:10px}
.spez__row h3{flex:0 1 auto;font-size:22px;font-weight:600;line-height:1.2}
.lead-dots{flex:1 1 24px;min-width:24px;border-bottom:2px dotted rgba(26,37,50,.28);transform:translateY(-5px)}
.spez__pr{flex:none;font:700 23px/1 var(--stencil);letter-spacing:.06em;white-space:nowrap}
.stufe-1 .spez__pr{color:var(--akt);border:2px solid currentColor;border-radius:4px;padding:4px 8px 3px;transform:rotate(-4deg)}
.spez__body p{margin-top:5px;font-size:16px;line-height:1.55;color:rgba(26,37,50,.76)}

/* Speisekarte */
.tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:34px auto 30px;max-width:760px}
.tabs:empty,.tabs[hidden]{display:none}
.tabs[hidden]+.karte__panel{margin-top:36px}
.tab{min-height:44px;padding:4px 17px;border-radius:999px;border:2px solid rgba(20,39,58,.22);font:700 16px/1 var(--stencil);letter-spacing:.12em;text-transform:uppercase;color:var(--marine);transition:background-color .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease),transform .16s var(--ease)}
.tab:active{transform:scale(.97)}
@media (hover:hover){.tab:hover{border-color:var(--marine)}}
.tab.is-active{background:var(--marine);border-color:var(--marine);color:var(--segeltuch)}
.karte__panel{max-width:820px;margin:0 auto}
.karte__head{display:flex;align-items:center;gap:20px;padding-bottom:14px;margin-bottom:6px;border-bottom:2px solid var(--marine)}
.karte__head img{flex:none;width:112px;height:64px;object-fit:contain}
.karte__head h3{font-size:clamp(24px,4cqi,32px);line-height:1.1}
.karte__head span{display:block;margin-top:4px;font:700 13px/1 var(--stencil);letter-spacing:.16em;text-transform:uppercase;color:var(--petrol)}
.karte__list{list-style:none;columns:2 330px;column-gap:52px}
.dish{break-inside:avoid;padding:14px 0 13px;border-bottom:1px solid rgba(26,37,50,.1)}
.dish__row{display:flex;align-items:baseline;gap:10px}
.dish__name{flex:0 1 auto;font-size:19px;font-weight:600;line-height:1.28;overflow-wrap:break-word;hyphens:auto;min-width:0}
.dish__row .lead-dots{transform:translateY(-4px)}
.dish__pr{flex:none;font-size:18px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.dish__desc{margin-top:3px;font-size:15.5px;line-height:1.5;color:rgba(26,37,50,.72)}
.v{display:inline-block;margin-left:8px;padding:3px 5px 2px;border-radius:4px;background:var(--petrol);color:#fff;font:700 12px/1 var(--stencil);letter-spacing:.08em;vertical-align:3px}
.karte__list.is-collapsed .dish.is-more{display:none}
.karte__morewrap{display:flex;justify-content:center;margin-top:26px}
.band--zwei .band__track{animation-direction:reverse}
.karte__note{margin-top:30px;text-align:center;font-size:14px;font-style:italic;color:rgba(26,37,50,.66);max-width:70ch;margin-left:auto;margin-right:auto}

/* Räume */
.mosaic{display:grid;gap:10px;margin-top:34px;grid-auto-rows:210px}
.mosaic--1{grid-template-columns:1fr;grid-auto-rows:360px}
.mosaic--2{grid-template-columns:1fr 1fr;grid-auto-rows:300px}
.mosaic--3{grid-template-columns:1.4fr 1fr}
.mosaic--3 .mosaic__f:first-child{grid-row:span 2}
.mosaic--4{grid-template-columns:1fr 1fr}
.mosaic--5{grid-template-columns:1.3fr 1fr 1fr}
.mosaic--5 .mosaic__f:first-child{grid-row:span 2}
.mosaic__f{position:relative;margin:0;border-radius:14px;overflow:hidden;background:var(--sand)}
.mosaic__f img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.03)}
.mosaic__f figcaption{position:absolute;left:10px;bottom:10px;max-width:calc(100% - 20px);padding:3px 11px;border-radius:6px;background:var(--segeltuch);font-size:16px;line-height:1.3;color:var(--tinte);box-shadow:0 3px 8px rgba(20,39,58,.2);transform:rotate(-1.5deg)}
.raeume__orn{display:block;width:min(420px,80%);max-height:300px;object-fit:contain;margin:30px auto 0}
.feiern{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:22px;align-items:center;margin-top:34px;padding:24px 26px;border:2px dashed rgba(20,39,58,.24);border-radius:14px}
.feiern h3{font-size:24px;line-height:1.2}
.feiern p{margin-top:6px;font-size:16px;color:rgba(26,37,50,.78)}

/* Anfahrt auf Seekarten-Raster */
.besuch{display:flex;flex-direction:column}
.besuch__chart{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(61,107,120,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(61,107,120,.11) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:linear-gradient(200deg,#000,transparent 70%);mask-image:linear-gradient(200deg,#000,transparent 70%)}
.besuch__chart img{position:absolute;right:-40px;top:-40px;width:250px;opacity:.55;animation:drehen 180s linear infinite}
.besuch__text{position:relative;max-width:580px}
.logbook{margin-top:26px}
.logbook>div{display:grid;grid-template-columns:auto 1fr;gap:4px 18px;padding:9px 0;border-bottom:1px solid rgba(26,37,50,.12)}
.logbook dt{font:700 16px/1.6 var(--stencil);letter-spacing:.12em;text-transform:uppercase;color:var(--petrol);min-width:92px}
.logbook dd{font-size:17px;overflow-wrap:anywhere}
.logbook dd a{border-bottom:1px solid rgba(26,37,50,.25)}
.besuch__ship{position:relative;align-self:flex-end;width:min(330px,62%);margin:26px -10px -14px 0;opacity:.88}

/* Fußzeile */
.foot{padding:40px clamp(26px,5cqi,56px) 24px!important}
.foot__main{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 28px;align-items:start}
.foot__logo{display:block;width:fit-content;max-width:100%}
img.foot__img{display:block;max-width:220px;max-height:84px;width:auto;height:auto;mix-blend-mode:multiply}
.foot .wordmark{align-items:flex-start;text-align:left}
.foot .wm__name{font-size:30px}
.foot .wm--m .wm__name{font-size:26px}
.foot .wm--s .wm__name{font-size:22px;max-width:24em}
.foot .wm__ort{font-size:12px}
.foot__line{margin-top:12px;font-size:21px;line-height:1.35;color:var(--petrol)}
.foot__top{grid-column:2;grid-row:1;align-self:center;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:96px;padding:8px 0 8px 26px;border-left:1px solid rgba(26,37,50,.16);font:700 14px/1 var(--stencil);letter-spacing:.14em;text-transform:uppercase;transition:color .2s}
@media (hover:hover){.foot__top:hover{color:var(--petrol)}}
.foot__nav{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 24px;font:700 16px/1 var(--stencil);letter-spacing:.11em;text-transform:uppercase}
.foot__nav a{display:inline-flex;align-items:center;min-height:40px;transition:color .2s}
@media (hover:hover){.foot__nav a:hover{color:var(--petrol)}}
.foot__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;margin-top:22px;padding-top:16px;border-top:1px solid rgba(26,37,50,.15);font-size:13px;color:rgba(26,37,50,.68)}
.foot__bottom a{text-decoration:underline;text-underline-offset:.2em}

/* Menü (eigene Ebene außerhalb der Leiste) */
.menu{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:80px 28px;overflow:auto;background:var(--marine-tief);color:var(--gischt);opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility 0s linear .35s}
.menu.is-open{opacity:1;visibility:visible;transition:opacity .35s var(--ease)}
.menu__inner{position:relative;z-index:1;width:min(560px,100%)}
.menu__links{display:flex;flex-direction:column;gap:4px;margin:10px 0 34px}
.menu__links a{font:700 clamp(32px,6vw,54px)/1.15 var(--slab);color:var(--segeltuch);transition:color .2s,transform .3s var(--ease)}
@media (hover:hover){.menu__links a:hover{color:var(--messing);transform:translateX(6px)}}
.menu__foot{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px}
.menu__foot a:not(.btn){font-size:18px;border-bottom:1px solid rgba(220,232,233,.35)}
.menu__close{position:absolute;top:18px;right:18px;z-index:2;width:50px;height:50px;border-radius:12px}
.menu__close span{position:absolute;left:13px;right:13px;top:24px;height:2px;background:var(--gischt);transform:rotate(45deg)}
.menu__close span+span{transform:rotate(-45deg)}
.menu__orn{position:absolute;right:5%;bottom:0;width:auto;height:min(58vh,440px);filter:invert(1);opacity:.2;pointer-events:none}

/* ---------- Schmalere Karten-Spalte (Container-Abfragen) ---------- */
@container (max-width:640px){
  .duo{grid-template-columns:1fr}
  .haus{grid-template-columns:1fr}
  .haus__photo{max-width:420px}
  .feiern{grid-template-columns:1fr;justify-items:start}
  .feiern__orn{width:48px;height:48px}
}
@container (max-width:520px){
  .mosaic{grid-auto-rows:190px}
  .mosaic--2,.mosaic--4{grid-template-columns:1fr}
  .mosaic--3,.mosaic--5{grid-template-columns:1fr 1fr}
  .mosaic--3 .mosaic__f:first-child,.mosaic--5 .mosaic__f:first-child{grid-row:auto;grid-column:1/-1}
  .mosaic--1{grid-auto-rows:260px}
  .spez__item{grid-template-columns:78px minmax(0,1fr);gap:18px}
  .porthole{width:76px;height:76px}
  .porthole--stich img{padding:11px}
  .spez__row{flex-wrap:wrap}
  .spez__row h3{flex:1 1 100%;font-size:20px}
  .spez__row .lead-dots{display:none}
  .spez__pr{font-size:21px;margin-top:4px}
  .stufe-1 .spez__pr{transform:rotate(-3deg)}
  .karte__head img{width:84px;height:52px}
  .logbook>div{grid-template-columns:1fr;gap:0}
  .foot__main{grid-template-columns:1fr}
  .foot__top{grid-column:1;grid-row:auto;align-self:start;flex-direction:row;justify-content:flex-start;border-left:0;padding:0;min-height:44px}
  .spez__item{align-items:start}
  .haus{padding:44px 30px!important}
  .haus__photo{transform:none;max-width:none}
}

/* ---------- Tablet und Handy: Bildfenster wird zum Hero ---------- */
@media (max-width:1050px){
  .frame{display:block;padding:0}
  .harbor{position:relative;top:0;height:86vh;height:86svh;min-height:540px;max-height:980px;border-radius:0 0 26px 26px}
  .harbor__sign{display:grid}
  .deck{padding:var(--gap)}
  .bar{position:fixed;top:0;left:0;right:0;border-radius:0;padding:10px 12px;background:transparent;box-shadow:none;transition:background-color .35s,box-shadow .35s}
  .bar.is-solid{background:var(--marine);box-shadow:0 6px 20px rgba(0,0,0,.28)}
  .bar__logo{opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .35s,transform .35s var(--ease)}
  .bar.is-solid .bar__logo{opacity:1;transform:none;pointer-events:auto}
  .hero-card{min-height:0;padding-top:56px}
  html{scroll-padding-top:74px}
}
@media (max-width:640px){
  body{font-size:16.5px}
  :root{--r:18px;--gap:10px}
  .harbor{min-height:520px}
  .harbor__sign{padding:88px 18px 190px}
  .sign{padding:18px 22px;max-width:88%}
  img.sign__logo{max-height:96px}
  .sign::before,.sign::after{height:96px}
  .plaque{width:calc(100% - 64px);padding:16px 18px 18px}
  .plaque__label{font-size:14px;padding-bottom:10px;margin-bottom:10px}
  .plaque__addr,.plaque__tel{font-size:15px}
  .status{font-size:14px;margin-top:10px}
  .harbor__dots{display:none}
  .bar__logo{max-width:none;flex:0 1 auto;min-height:44px;padding:5px 10px}
  img.bar__img{height:32px}
  .bar .bar__wm .wm__name{font-size:16px}
  .btn--bar{font-size:13.5px;padding:4px 12px;min-height:44px;letter-spacing:.08em}
  .btn{padding:6px 20px}
  .card{padding:32px 22px}
  .hero-card{padding:48px 22px 108px}
  .hero-card__orn{display:none}
  .actions{gap:10px}
  .actions .btn{flex:1 1 auto}
  .notch{font-size:14px;padding:10px 16px 9px;max-width:calc(100% - 44px)}
  .duo .card{padding:34px 24px}
  .tide{padding:40px 26px 30px!important}
  .tide__list dt{font-size:15.5px}
  .tide__list>div{font-size:15px}
  .haus{padding:44px 30px 40px!important}
  .band{height:122px}
  .band__cat{font-size:21px;padding-top:18px}
  .flag{width:42px;height:28px}
  .tabs{gap:6px;margin:26px auto 24px}
  .tab{font-size:14.5px;padding:4px 13px;min-height:42px}
  .dish__name{font-size:18px}
  .menu__orn{height:min(30vh,240px);opacity:.16}
  .tide .tide__orn{width:92px;right:18px;top:20px}
  /* Stich nicht am Kartenrand abschneiden (Drift ±40 px) */
  .besuch__ship{width:min(270px,62%);margin:22px 34px -6px 0}
  .raeume__orn{max-height:220px}
}
/* Schwächere Geräte: kein Flattern, kein Ken-Burns-Wechsel im Hintergrund */
@media (pointer:coarse),(max-width:640px){
  .flag{animation:none}
  body::before{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .slide img,.waves svg,.band__track,.flag,.status__dot,.chart__rose,.chart__gull,.besuch__chart img{animation:none!important}
  .slide{transition:none}
}
