/* Ferienhaus Lütte-Döns – zentrale Stylesheet-Datei
   Ablage: /css/style.css
   Ziel: freundlicher, heller, moderner Look (Responsive, barrierearm, ohne Frameworks)
*/

/* ---------- Design Tokens ---------- */
:root{
  --bg: #f6f8fb;
  --bg2:#eef3f8;
  --panel:#ffffff;
  --panel2:#f8fafc;
  --text:#0f172a;
  --muted:#475569;
  --muted2:#64748b;
  --brand:#0ea5e9;      /* Himmel/Ostsee */
  --brand2:#f59e0b;     /* Sonne/Sand */
  --line: rgba(15,23,42,.12);
  --line2: rgba(15,23,42,.08);
  --shadow: 0 14px 40px rgba(2,6,23,.10);
  --shadow2: 0 10px 26px rgba(2,6,23,.10);
  --radius: 18px;
  --radius2: 14px;
  --max: 1100px;

  /* Logo-Größen */
  --logo-h: 42px;
  --logo-h-mobile: 34px;

  /* pro Seite gesetzt (index/zingst): --hero-image:url('images/...') */
  --hero-image: none;
}

/* Optional: Dark Mode für Nutzer, die es explizit bevorzugen */
@media (prefers-color-scheme: dark){
  :root{
    --bg:#071018;
    --bg2:#06101a;
    --panel:#0f1b26;
    --panel2:#0b1520;
    --text:#eaf2ff;
    --muted:#b9c7da;
    --muted2:#9fb1c9;
    --line: rgba(255,255,255,.12);
    --line2: rgba(255,255,255,.08);
    --shadow: 0 18px 60px rgba(0,0,0,.45);
    --shadow2: 0 14px 40px rgba(0,0,0,.35);
  }
}

/* ---------- Base / Reset ---------- */
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:
    radial-gradient(1200px 700px at 20% -10%, color-mix(in srgb, var(--brand2) 22%, transparent), transparent 60%),
    radial-gradient(900px 600px at 90% 10%, color-mix(in srgb, var(--brand) 18%, transparent), transparent 55%),
    linear-gradient(180deg, var(--bg), var(--bg2));
}
img{max-width:100%; height:auto}
a{color:inherit}

/* ✅ Fix: konsistente Absatzabstände (verhindert optisches "Klemmen") */
p{
  color:var(--muted);
  line-height:1.7;
  margin: 0 0 12px;
}
p:last-child{margin-bottom:0}

ul,ol{color:var(--muted); line-height:1.75}
code{
  background: color-mix(in srgb, var(--brand) 10%, var(--panel));
  border:1px solid var(--line2);
  padding:.15rem .35rem;
  border-radius: 10px;
  font-size: .95em;
}
:focus-visible{
  outline: 3px solid color-mix(in srgb, var(--brand) 45%, transparent);
  outline-offset: 3px;
}

/* ---------- Layout helpers ---------- */
.wrap{max-width:var(--max); margin:0 auto; padding:0 18px}
main{padding:28px 0 40px}
.section{padding:18px 0}
.grid2{display:grid; grid-template-columns:1fr 1fr; gap:14px}
@media (max-width: 980px){.grid2{grid-template-columns:1fr}}
.grid3{display:grid; grid-template-columns:repeat(3, 1fr); gap:14px}
@media (max-width: 980px){.grid3{grid-template-columns:1fr}}

/* ---------- Topbar / Navigation ---------- */
.topbar{
  position:sticky; top:0; z-index:50;
  backdrop-filter: blur(10px);
  background: color-mix(in srgb, var(--panel) 82%, transparent);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; padding:14px 0;
}
.brand{
  display:flex; align-items:center; gap:10px;
  text-decoration:none; font-weight:850; letter-spacing:.2px;
}

/* ✅ LOGO FIX: falls im .brand ein <img> sitzt */
.brand img{
  height: var(--logo-h);
  width: auto;
  display: block;
}
@media (max-width: 600px){
  .brand img{
    height: var(--logo-h-mobile);
  }
}

.brand-badge{
  width:34px; height:34px; border-radius:12px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--brand2) 85%, white), color-mix(in srgb, var(--brand) 40%, transparent));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--text) 12%, transparent);
}
.navlinks{
  display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end;
}
.navlinks a{
  text-decoration:none;
  color:var(--muted2);
  padding:8px 10px;
  border-radius:999px;
  border:1px solid transparent;
  transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.navlinks a:hover{
  color:var(--text);
  border-color:var(--line);
  background: color-mix(in srgb, var(--brand) 6%, var(--panel));
  transform: translateY(-1px);
}
.navlinks a.is-active{
  color:var(--text);
  border-color: var(--line);
  background: color-mix(in srgb, var(--brand) 10%, var(--panel));
}
.cta{
  display:inline-flex; align-items:center; justify-content:center;
  gap:10px;
  padding:10px 12px;
  border-radius:999px;
  text-decoration:none;
  font-weight:800;
  background: color-mix(in srgb, var(--brand2) 26%, var(--panel));
  border:1px solid color-mix(in srgb, var(--brand2) 40%, var(--line));
}
.cta:hover{
  background: color-mix(in srgb, var(--brand2) 34%, var(--panel));
  transform: translateY(-1px);
}

/* ---------- Cards / Headlines ---------- */
.card{
  background: linear-gradient(180deg, color-mix(in srgb, var(--panel) 92%, white), color-mix(in srgb, var(--panel2) 90%, white));
  border:1px solid var(--line);
  border-radius: var(--radius);
  box-shadow: var(--shadow);

  /* ✅ Fix: verhindert abgeschnittenen Text in Cards */
  overflow: visible;
}

/* Optional: nur für Karten, die wirklich clippen sollen (Bilder etc.) */
.card.is-clip{ overflow: hidden; }

.pad{padding:18px}
.header-card{padding:18px}
h1{margin:0 0 10px; font-size:32px; line-height:1.15; letter-spacing:-.3px}
@media (max-width: 520px){h1{font-size:28px}}
h2{margin:18px 0 10px; font-size:20px; letter-spacing:-.2px}
h3{margin:0 0 8px; font-size:16px}

/* ---------- Buttons ---------- */
.btn, button, .lb-btn{
  appearance:none;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:10px 12px;
  border-radius: var(--radius2);
  border:1px solid var(--line);
  background: color-mix(in srgb, var(--panel) 92%, white);
  color:var(--text);
  font-weight:800;
  cursor:pointer;
  text-decoration:none;
  transition: background .18s ease, transform .18s ease, border-color .18s ease;
}
.btn:hover, button:hover, .lb-btn:hover{
  background: color-mix(in srgb, var(--brand) 8%, var(--panel));
  transform: translateY(-1px);
}
button.primary{
  background: color-mix(in srgb, var(--brand2) 26%, var(--panel));
  border-color: color-mix(in srgb, var(--brand2) 40%, var(--line));
}
button.primary:hover{
  background: color-mix(in srgb, var(--brand2) 34%, var(--panel));
}
.small{font-size:13px; color:var(--muted2)}

/* ---------- Hero (Index & Zingst) ---------- */
.hero{padding:42px 0 22px}
.hero-grid{
  display:grid; grid-template-columns: 1.15fr .85fr; gap:18px;
  align-items:stretch;
}
@media (max-width: 900px){.hero-grid{grid-template-columns:1fr}}
.hero-media{
  min-height:330px;
  background:
    linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.22)),
    var(--hero-image);
  background-size: cover;
  background-position: center;
}
.hero-copy{padding:22px}
.kicker{
  color: color-mix(in srgb, var(--brand) 75%, var(--brand2));
  font-weight:900;
  letter-spacing:.8px;
  text-transform:uppercase;
  font-size:12px;
}
.lead{color:var(--muted); font-size:16px; line-height:1.6; margin:0 0 16px}
.chips{display:flex; gap:10px; flex-wrap:wrap; margin-top:14px}
.chip{
  padding:8px 10px; border-radius:999px;
  border:1px solid var(--line);
  background: color-mix(in srgb, var(--brand) 5%, var(--panel));
  color:var(--muted2);
  font-size:13px;
}

/* ---------- Side panel (Index) ---------- */
.side{padding:18px}
.side h2{margin:0 0 10px; font-size:18px}
.side p{margin:0 0 12px}
.side .info{display:grid; gap:10px; margin-top:12px}
.row{
  display:flex; justify-content:space-between; gap:10px;
  padding:10px 12px;
  border-radius: 14px;
  border:1px solid var(--line);
  background: color-mix(in srgb, var(--panel2) 85%, white);
  color:var(--muted);
  font-size:14px;
}
.row b{color:var(--text); font-weight:900}

/* ---------- Tables (Preise) ---------- */
table{
  width:100%;
  border-collapse: collapse;
  overflow:hidden;
  border-radius: 16px;
  border:1px solid var(--line);
  background: var(--panel);
}
th, td{
  padding:12px 10px;
  text-align:left;
  border-bottom:1px solid var(--line2);
  vertical-align:top;
}
th{
  background: color-mix(in srgb, var(--brand) 7%, var(--panel));
  color:var(--text);
  font-size:13px;
  letter-spacing:.2px;
}
td{color:var(--muted); font-size:14px}
tr:last-child td{border-bottom:none}
.note{font-size:13px; color:var(--muted2); margin-top:10px}
.badge{
  display:inline-block;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--brand2) 45%, var(--line));
  background: color-mix(in srgb, var(--brand2) 18%, var(--panel));
  color:var(--text);
  font-weight:900;
  font-size:12px;
}

/* ---------- Forms (Kontakt) ---------- */
form{
  background: color-mix(in srgb, var(--panel2) 88%, white);
  padding:20px;
  border-radius: 16px;
  border:1px solid var(--line);
  box-shadow: var(--shadow2);
}
label{display:block; margin-top:15px; margin-bottom:6px; font-weight:800; color:var(--text)}
input, textarea, select{
  width:100%;
  padding:11px 12px;
  border-radius: 12px;
  border:1px solid var(--line);
  background: var(--panel);
  color:var(--text);
  font-size:15px;
}
textarea{min-height:120px; resize:vertical}
input::placeholder, textarea::placeholder{color:color-mix(in srgb, var(--muted2) 70%, transparent)}
button[type="submit"], form button{margin-top:18px}
label[style*="display:flex"]{gap:10px}

/* ---------- Embeds + Consent (Kalender/Anfahrt) ---------- */
.embed{
  position:relative;
  overflow:hidden;
  border-radius:16px;
  border:1px solid var(--line);
  background: color-mix(in srgb, var(--panel2) 88%, white);
  min-height:420px;
  box-shadow: var(--shadow2);
}
.embed iframe{width:100%; height:420px; border:0}
.embed-inner{width:100%; height:100%; min-height:520px}
.consent{
  position:absolute; inset:0;
  display:grid; place-items:center;
  padding:18px;
  background: linear-gradient(180deg, rgba(2,6,23,.45), rgba(2,6,23,.65));
  text-align:center;
}
.consent-box{
  max-width:720px;
  background: color-mix(in srgb, var(--panel) 88%, transparent);
  border:1px solid var(--line);
  border-radius: 18px;
  padding:18px;
  box-shadow: var(--shadow);
}
.btnrow{display:flex; gap:10px; justify-content:center; flex-wrap:wrap}

/* ---------- Gallery (Haus) ---------- */
.grid{
  margin-top:14px;
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap:12px;
}
@media (max-width: 900px){.grid{grid-template-columns:1fr 1fr}}
@media (max-width: 560px){.grid{grid-template-columns:1fr}}
.thumb{
  position:relative;
  overflow:hidden;
  border-radius:16px;
  border:1px solid var(--line);
  background: color-mix(in srgb, var(--panel2) 90%, white);
  cursor:pointer;
  aspect-ratio: 4/3;
  box-shadow: var(--shadow2);
}
.thumb img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  transform: scale(1.02);
  transition: transform .25s ease, filter .25s ease;
  filter: saturate(1.05) contrast(1.02);
}
.thumb:hover img{transform: scale(1.06)}
.thumb::after{
  content:"🔍";
  position:absolute; right:10px; bottom:10px;
  background: rgba(2,6,23,.35);
  border:1px solid rgba(255,255,255,.18);
  width:36px; height:36px;
  border-radius:12px;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform: translateY(6px);
  transition: .25s ease;
}
.thumb:hover::after{opacity:1; transform: translateY(0)}
dialog{
  width:min(1100px, 96vw);
  border:none;
  border-radius:18px;
  padding:0;
  background: color-mix(in srgb, var(--panel) 92%, transparent);
  color:var(--text);
  box-shadow: 0 24px 80px rgba(2,6,23,.25);
}
dialog::backdrop{background: rgba(2,6,23,.55)}
.lightbox{display:grid; grid-template-columns: 1fr; gap:0}
.lightbox img{width:100%; height:auto; display:block}
.lightbox-bar{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 14px;
  border-top:1px solid var(--line);
  background: color-mix(in srgb, var(--panel2) 92%, white);
}

/* ---------- Zingst: Jumpnav + Photostrip + Lightbox ---------- */
.jumpnav{
  display:flex; gap:10px; flex-wrap:wrap;
  padding:12px;
  border:1px solid var(--line);
  background: color-mix(in srgb, var(--panel2) 92%, white);
  border-radius: 16px;
  margin-top:12px;
}
.jumpnav a{
  text-decoration:none;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid var(--line2);
  background: color-mix(in srgb, var(--brand) 5%, var(--panel));
  color:var(--muted2);
  font-size:13px;
}
.jumpnav a:hover{
  color:var(--text);
  border-color:var(--line);
  background: color-mix(in srgb, var(--brand) 9%, var(--panel));
}
.photostrip{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:10px;
  margin-top:12px;
}
@media (max-width: 980px){.photostrip{grid-template-columns: repeat(2, 1fr)}}
@media (max-width: 520px){.photostrip{grid-template-columns: 1fr}}
.ph{
  position:relative;
  display:block;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  background: color-mix(in srgb, var(--panel2) 92%, white);
  aspect-ratio: 4 / 3;
  box-shadow: var(--shadow2);
  outline:none;
}
.ph img{
  width:100%; height:100%;
  object-fit:cover;
  transform: scale(1.01);
  transition: transform .25s ease, filter .25s ease;
  filter: saturate(1.05) contrast(1.02);
}
.ph:hover img{transform: scale(1.06)}
.ph::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 55%, rgba(2,6,23,.45));
  opacity:.85;
}
.ph span{
  position:absolute; left:12px; right:12px; bottom:10px;
  z-index:2;
  color: rgba(255,255,255,.94);
  font-weight:900;
  font-size:13px;
  letter-spacing:.2px;
  text-shadow: 0 6px 18px rgba(2,6,23,.45);
}
.lightbox[aria-hidden="false"]{display:flex}
.lightbox{
  position:fixed; inset:0; z-index:100;
  display:none; align-items:center; justify-content:center;
  padding:18px;
  background: rgba(2,6,23,.70);
  backdrop-filter: blur(6px);
}
.lb-panel{
  width:min(1100px, 100%);
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
  background: color-mix(in srgb, var(--panel) 92%, transparent);
  box-shadow: 0 18px 60px rgba(2,6,23,.35);
}
.lb-top{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
}
.lb-title{color:var(--text); font-weight:900; font-size:14px}
.lb-img{
  display:block;
  width:100%;
  max-height:78vh;
  object-fit:contain;
  background: rgba(2,6,23,.12);
}

/* ---------- Footer ---------- */
.footer{
  border-top:1px solid var(--line);
  margin-top:22px;
  padding:20px 0 30px;
  color:var(--muted2);
  background: color-mix(in srgb, var(--panel) 65%, transparent);
}
.footer-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
  align-items:start;
}
@media (max-width: 800px){.footer-grid{grid-template-columns:1fr}}
.legal{text-align:right}
@media (max-width: 800px){.legal{text-align:left}}
.legal a{color:var(--muted2); text-decoration:none}
.legal a:hover{color:var(--text)}
.divider{height:1px; background:var(--line); margin:18px 0}
/* ====== INDEX: “Design-Award” Overrides (ans Ende der Datei) ====== */

:root{
  --max: 1180px;
}

/* Premium type */
body{
  font-family: "Manrope", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}
.display{
  font-family: "Fraunces", ui-serif, Georgia, "Times New Roman", Times, serif;
  letter-spacing: -0.6px;
}

/* Better spacing rhythm */
main{padding: 18px 0 48px}
.section-modern{padding: 26px 0}
.section-title h2{
  font-family: "Fraunces", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size: clamp(22px, 2.2vw, 30px);
  letter-spacing: -0.4px;
  margin: 0 0 6px;
}
.section-title .hint{margin:0; color:var(--muted2)}

/* Skip link */
.skip{
  position:absolute;
  left:-999px; top:12px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 10px 12px;
  box-shadow: var(--shadow2);
}
.skip:focus{left:12px; z-index:999}

/* Topbar: more premium */
.topbar{
  background: color-mix(in srgb, var(--panel) 70%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  box-shadow: 0 10px 30px rgba(2,6,23,.06);
}
.nav{padding: 12px 0}
.brand{gap: 12px}
.brand-text{display:flex; flex-direction:column; line-height:1.1}
.brand-title{font-weight: 900; letter-spacing:.2px}
.brand-sub{font-size: 12px; color: var(--muted2); font-weight: 700; margin-top: 2px}

/* Mobile menu without JS */
.menu{display:none; position:relative}
.menu-btn{
  list-style:none;
  display:inline-flex; align-items:center; gap:10px;
  padding:10px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--panel) 78%, transparent);
  cursor:pointer;
  font-weight: 900;
}
.menu-btn::-webkit-details-marker{display:none}
.menu-ic{
  width:18px; height:12px; display:inline-block;
  background:
    linear-gradient(var(--text),var(--text)) 0 0/100% 2px no-repeat,
    linear-gradient(var(--text),var(--text)) 0 50%/100% 2px no-repeat,
    linear-gradient(var(--text),var(--text)) 0 100%/100% 2px no-repeat;
  opacity:.85;
}
.menu-panel{
  position:absolute;
  right:0; top: calc(100% + 10px);
  width: min(320px, 92vw);
  background: color-mix(in srgb, var(--panel) 92%, transparent);
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 22px 80px rgba(2,6,23,.18);
  padding: 10px;
  display:grid;
  gap: 6px;
}
.menu-panel a{
  text-decoration:none;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid transparent;
  color: var(--text);
  font-weight: 800;
}
.menu-panel a:hover{
  border-color: var(--line);
  background: color-mix(in srgb, var(--brand) 8%, var(--panel));
}
.menu-panel .cta{
  justify-content:center;
  background: color-mix(in srgb, var(--brand2) 22%, var(--panel));
}

/* Switch desktop/mobile nav */
@media (max-width: 980px){
  .navlinks-desktop{display:none}
  .menu{display:block}
}

/* HERO: editorial + layered */
.hero-modern{padding: 40px 0 18px}
.hero-shell{
  display:grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 22px;
  align-items: start;
}
@media (max-width: 980px){
  .hero-shell{grid-template-columns:1fr}
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--panel) 70%, transparent);
  color: var(--muted2);
  font-weight: 800;
  font-size: 13px;
}
.eyebrow .dot{
  width:10px; height:10px; border-radius: 99px;
  background: linear-gradient(135deg, var(--brand2), var(--brand));
  box-shadow: 0 10px 24px rgba(2,6,23,.12);
}

.display{
  font-size: clamp(34px, 3.6vw, 54px);
  line-height: 1.05;
  margin: 14px 0 12px;
}
.display .accent{
  background: linear-gradient(90deg, color-mix(in srgb, var(--brand2) 80%, white), color-mix(in srgb, var(--brand) 78%, white));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.lead-xl{
  font-size: clamp(16px, 1.35vw, 18px);
  line-height: 1.7;
  max-width: 52ch;
  margin: 0 0 18px;
}

.hero-actions{display:flex; gap:10px; flex-wrap:wrap; margin-top: 10px}
.btn.primary{
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--brand2) 68%, white),
    color-mix(in srgb, var(--brand) 58%, white)
  );
  border-color: color-mix(in srgb, var(--brand) 25%, var(--line));
  color: #0b1020;
}
.btn.primary:hover{transform: translateY(-1px) scale(1.01)}

/* Metrics */
.hero-metrics{
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 18px;
}
@media (max-width: 560px){
  .hero-metrics{grid-template-columns: repeat(2, 1fr)}
}
.metric{
  padding: 12px 12px;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--panel) 72%, transparent);
  box-shadow: 0 16px 40px rgba(2,6,23,.06);
}
.metric b{display:block; font-weight: 950; font-size: 16px; color: var(--text)}
.metric span{display:block; margin-top: 4px; color: var(--muted2); font-weight: 800; font-size: 12px}

/* Right visual */
.hero-visual{
  position:relative;
  border-radius: 24px;
  box-shadow: 0 26px 90px rgba(2,6,23,.16);
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
}
.hero-visual::before{
  content:"";
  position:absolute; inset:-40px -30px auto auto;
  width: 180px; height: 180px;
  background: radial-gradient(circle at 30% 30%,
    color-mix(in srgb, var(--brand2) 40%, transparent),
    transparent 60%
  );
  filter: blur(2px);
  opacity: .9;
  pointer-events:none;
}

.hero-media{
  min-height: 520px;
  background:
    linear-gradient(180deg, rgba(2,6,23,.10), rgba(2,6,23,.55)),
    var(--hero-image);
  background-size: cover;
  background-position: center;
  transform: scale(1.01);
}
@media (max-width: 980px){
  .hero-media{min-height: 420px}
}

/* Floating panel */
.hero-float{
  position:absolute;
  left: 14px;
  right: 14px;
  bottom: 14px;
  display:grid;
  gap: 10px;
}
.float-row{display:flex; gap:8px; flex-wrap:wrap}
.float-pill{
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.10);
  color: rgba(255,255,255,.92);
  font-weight: 900;
  font-size: 12px;
  backdrop-filter: blur(10px);
}
.float-card{
  border-radius: 18px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
  padding: 12px;
  backdrop-filter: blur(12px);
}
.float-title{
  font-weight: 950;
  color: rgba(255,255,255,.94);
  letter-spacing: .2px;
  margin-bottom: 10px;
}
.float-info .row{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.14);
  color: rgba(255,255,255,.86);
}
.float-info .row b{color: rgba(255,255,255,.96)}
.float-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top: 10px;
}
.float-actions .btn{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.16);
  color: rgba(255,255,255,.92);
}
.float-actions .btn:hover{background: rgba(255,255,255,.18)}

/* Contact strip */
.contact-strip{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 12px;
}
@media (max-width: 560px){.contact-strip{grid-template-columns:1fr}}
.contact-item{
  display:flex;
  gap:12px;
  align-items:center;
  padding: 12px 12px;
  border-radius: 18px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--panel) 72%, transparent);
  text-decoration:none;
  box-shadow: 0 18px 48px rgba(2,6,23,.06);
}
.contact-item:hover{transform: translateY(-1px)}
.ci-ic{
  width: 36px; height: 36px;
  border-radius: 14px;
  display:grid; place-items:center;
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--brand2) 50%, white),
    color-mix(in srgb, var(--brand) 45%, white)
  );
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  font-weight: 900;
}
.contact-item b{display:block; color: var(--text); font-weight: 950}
.contact-item em{display:block; color: var(--muted2); font-style: normal; font-weight: 800; font-size: 12px; margin-top: 2px}

/* Feature mini-cards */
.modern-mini{
  padding: 18px;
  transition: transform .18s ease, box-shadow .18s ease;
}
.modern-mini:hover{
  transform: translateY(-2px);
  box-shadow: 0 24px 70px rgba(2,6,23,.12);
}
.mini-ic{
  width: 44px; height: 44px;
  border-radius: 16px;
  display:grid; place-items:center;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--brand) 8%, var(--panel));
  font-weight: 950;
  margin-bottom: 10px;
}

/* Reviews: more editorial */
.reviews-modern{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
@media (max-width: 980px){.reviews-modern{grid-template-columns: 1fr}}
.review-modern{
  padding: 18px;
  position: relative;
}
.review-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom: 8px;
}
.review-modern .quote{
  font-family: "Fraunces", ui-serif, Georgia, "Times New Roman", Times, serif;
  font-size: 34px;
  line-height: 1;
  opacity: .28;
}
.review-modern .name{
  color: var(--text);
  font-weight: 950;
  margin: 0 0 10px;
}
.review-modern .name .date{
  color: var(--muted2);
  font-weight: 900;
  font-size: 12px;
  margin-left: 8px;
}
.review-modern em{
  display:block;
  color: var(--muted);
  font-style: normal;
  line-height: 1.7;
}

/* Slightly calmer cards on home */
.page-home .card{
  box-shadow: 0 18px 60px rgba(2,6,23,.10);
  border-color: color-mix(in srgb, var(--line) 75%, transparent);
}

/* Motion respect */
@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important; transition:none !important}
}
/* Startseite Hero Bild */
.page-home{
  --hero-image: url('../images/hero-zingst.jpg');
/* --- HARTE STARTSEITEN-ÜBERSCHREIBUNG (sehr robust) --- */
.page-home .hero-media{
  background-image:
    linear-gradient(180deg, rgba(2,6,23,.10), rgba(2,6,23,.55)),
    url("/images/hero-zingst.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
}
/* --- HERO FOTO: bombensicher via <img> --- */
.page-home .hero-media{
  position: relative;
  min-height: 520px; /* wie vorher */
}

.page-home .hero-media img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1.02);
  filter: saturate(1.05) contrast(1.02);
}

/* dunkler Verlauf drüber (wie zuvor) */
.page-home .hero-media::after{
  content:"";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(2,6,23,.10), rgba(2,6,23,.55));
  pointer-events: none;
}
/* ============================= */
/* GRUNDRISS SECTION */
/* ============================= */

.floorplans{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 20px;
}

@media (max-width: 900px){
  .floorplans{
    grid-template-columns: 1fr;
  }
}

.floorplan-card{
  border: none;
  padding: 0;
  background: none;
  text-align: left;
  cursor: pointer;
}

.floorplan-img{
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: 0 24px 60px rgba(2,6,23,.12);
  transition: transform .25s ease, box-shadow .25s ease;
}

.floorplan-img img{
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  transition: transform .35s ease;
}

.floorplan-card:hover .floorplan-img{
  transform: translateY(-4px);
  box-shadow: 0 30px 80px rgba(2,6,23,.18);
}

.floorplan-card:hover .floorplan-img img{
  transform: scale(1.03);
}

.zoom-badge{
  position:absolute;
  right:16px;
  bottom:16px;
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(6px);
  border-radius: 14px;
  padding: 8px 10px;
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 10px 25px rgba(2,6,23,.18);
}

.floorplan-caption{
  margin-top: 14px;
}

.floorplan-caption h3{
  margin: 0 0 6px;
  font-size: 18px;
}

.floorplan-caption p{
  margin: 0;
  color: var(--muted2);
  font-size: 14px;
}
/* ===== FIX: Grundriss-Buttons NICHT wie normale Buttons behandeln ===== */
.floorplan-card{
  display: block;            /* statt inline-flex */
  width: 100%;
  padding: 0 !important;     /* Button-Padding überschreiben */
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  justify-content: initial !important;
  align-items: initial !important;
  gap: 0 !important;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

.floorplan-img{
  width: 100%;
}
.hero-media{
  position: relative;
  overflow: hidden;
}

.hero-media img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* ===== ZINGST: Hero Foto soll wirklich sichtbar sein ===== */
.hero-photo{
  position: relative;
  min-height: 360px; /* kannst du erhöhen */
  overflow: hidden;
}

.hero-photo img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

/* Wichtig: alte background-Definition für hero-media auf Zingst neutralisieren */
.hero-photo{
  background: none !important;
}