/* ============================================================
   CARAVIVA – Stylesheet  (Retro-Camping / Sonnenuntergang)
   Farben aus der alten Seite. Lesbarkeit für Zielgruppe 40–50.
   ============================================================ */

@font-face{font-family:"Montserrat";src:url("../fonts/montserrat-regular.woff") format("woff");font-weight:400;font-display:swap;}
@font-face{font-family:"Montserrat";src:url("../fonts/montserrat-700.woff") format("woff");font-weight:700;font-display:swap;}
@font-face{font-family:"Open Sans";src:url("../fonts/opensans-regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Open Sans";src:url("../fonts/opensans-700.woff") format("woff");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Open Sans";src:url("../fonts/opensans-italic.woff") format("woff");font-weight:400;font-style:italic;font-display:swap;}

:root{
  /* Dark-Theme: dunkles Grau als Grundfarbe, Orange als Akzent */
  --sand:#1e1e1e;        /* Seiten-Hintergrund */
  --sand-2:#161616;      /* abgesetzte Bänder (.alt, Summenzeile) */
  --cream:#2a2a2a;       /* Karten/Flächen */
  --ink:#121212;         /* dunkelste Panels (USP, Footer, Seitenkopf, Kalenderkopf) */
  --ink-2:#a9a39a;       /* gedämpfter, heller Text */
  --text:#ECE9E3;        /* Haupttext (hell) */
  --surface-2:#343434;   /* Eingabefelder, freie Kalendertage, Chips */
  --line:rgba(255,255,255,.12); /* dezente Kanten */
  --orange:#FA8706; --coral:#DF5241; --brick:#D2740C; --amber:#FFB152; --gold:#FBA738;
  --sunset-btn:linear-gradient(135deg,#FA8706 0%,#C96A00 100%);
  --ease-out:cubic-bezier(0.23,1,0.32,1);
  --ease-in-out:cubic-bezier(0.77,0,0.175,1);
  --maxw:1180px; --radius:14px; --radius-lg:20px;
  --shadow:0 16px 40px rgba(0,0,0,.45); --shadow-sm:0 6px 18px rgba(0,0,0,.35);
  --nav-h:78px; --z-nav:100; --z-overlay:300; --z-modal:400;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;}
body{margin:0;font-family:"Open Sans",system-ui,Arial,sans-serif;font-size:18px;line-height:1.65;color:var(--text);background:var(--sand);overflow-x:hidden;}
img{max-width:100%;height:auto;display:block;}
a{color:var(--amber);text-decoration:none;}
a:hover{text-decoration:underline;}
button{-webkit-tap-highlight-color:transparent;}
h1,h2,h3,h4{font-family:"Montserrat",system-ui,sans-serif;font-weight:700;line-height:1.12;color:var(--text);margin:0 0 .5em;text-wrap:balance;}
h1{font-size:clamp(2.1rem,6vw,4rem);letter-spacing:-.01em;}
h2{font-size:clamp(1.7rem,4vw,2.7rem);}
h3{font-size:clamp(1.25rem,2.6vw,1.6rem);}
p{margin:0 0 1em;max-width:68ch;text-wrap:pretty;}
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(18px,5vw,40px);}
section{padding-block:clamp(54px,8vw,96px);}
.eyebrow{display:inline-block;font-family:"Montserrat",sans-serif;font-weight:700;font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);margin-bottom:.7rem;}
.lead{font-size:clamp(1.06rem,2vw,1.25rem);color:var(--ink-2);}
.center,.text-center{text-align:center;}
.section-head{max-width:760px;margin:0 auto clamp(34px,5vw,52px);text-align:center;}
.maxw-prose{max-width:70ch;margin-inline:auto;}
.mt-1{margin-top:1rem;}.mt-2{margin-top:2rem;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;font-family:"Montserrat",sans-serif;font-weight:700;font-size:1.02rem;padding:.85em 1.6em;border-radius:999px;border:0;cursor:pointer;position:relative;text-align:center;line-height:1.15;transition:transform .16s var(--ease-out),box-shadow .2s var(--ease-out),filter .2s ease,background-color .2s ease,color .2s ease;min-height:52px;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;}
.btn-primary{background-image:var(--sunset-btn);color:#fff;box-shadow:0 8px 18px rgba(223,82,65,.28);}
.btn-secondary{background:transparent;color:var(--text);box-shadow:inset 0 0 0 2px var(--text);}
.btn-ghost{background:#FFFFFF;color:#1a1a1a;box-shadow:var(--shadow-sm);}
.btn:active{transform:scale(.97);}
@media (hover:hover) and (pointer:fine){
  .btn-primary:hover{transform:translateY(-2px);filter:brightness(1.06);box-shadow:0 14px 26px rgba(223,82,65,.36);}
  .btn-secondary:hover{background:var(--text);color:#1a1a1a;box-shadow:inset 0 0 0 2px var(--text);}
  .btn-ghost:hover{transform:translateY(-2px);box-shadow:var(--shadow);}
}

/* ============================================================
   NAVBAR – über Hero transparent (heller Text), gescrollt sandfarben
   ============================================================ */
.nav{position:sticky;top:0;z-index:var(--z-nav);background:transparent;transition:box-shadow .25s ease,background-color .25s ease,backdrop-filter .25s ease;}
.nav.scrolled{background:rgba(18,18,18,.95);backdrop-filter:saturate(140%) blur(8px);box-shadow:0 6px 22px rgba(0,0,0,.5);}
.nav-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--nav-h);max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(16px,5vw,40px);}
.nav-logo{display:flex;align-items:center;gap:.6rem;flex-shrink:0;}
.nav-logo img{height:48px;width:auto;}
.nav .logo-dark{display:none;}
.nav.scrolled .logo-light{display:block;}
.nav.scrolled .logo-dark{display:none;}
.nav-toggle{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;}
.nav-toggle-label{display:none;}
.nav-links{display:flex;align-items:center;gap:.3rem;list-style:none;margin:0;padding:0;}
.nav-links a{font-family:"Montserrat",sans-serif;font-weight:700;font-size:1rem;color:#fff;text-decoration:none;padding:.55em .85em;border-radius:10px;position:relative;transition:color .2s ease;text-shadow:0 1px 6px rgba(60,25,12,.35);}
.nav-links a::after{content:"";position:absolute;left:.85em;right:.85em;bottom:.3em;height:3px;border-radius:3px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease-out);}
@media(hover:hover){.nav-links a:hover{color:var(--gold);}.nav-links a:hover::after{transform:scaleX(1);}}
.nav-links a[aria-current="page"]{color:var(--gold);}
.nav-links a[aria-current="page"]::after{transform:scaleX(1);}
.nav.scrolled .nav-links a{color:var(--text);text-shadow:none;}
.nav.scrolled .nav-links a:hover,.nav.scrolled .nav-links a[aria-current="page"]{color:var(--amber);}
.nav.scrolled .nav-links a::after{background:var(--orange);}
.nav-cta{display:flex;align-items:center;gap:.5rem;flex-shrink:0;}
.nav-cta .btn{padding:.6em 1.1em;min-height:46px;font-size:.95rem;}
.nav-phone{display:inline-flex;align-items:center;gap:.4rem;font-family:"Montserrat",sans-serif;font-weight:700;color:#fff;white-space:nowrap;text-shadow:0 1px 6px rgba(60,25,12,.35);}
.nav.scrolled .nav-phone{color:var(--text);text-shadow:none;}
@media(max-width:960px){.nav-cta .btn-secondary{display:none;}}

/* ---- Mobiles Menü: Logo links, Telefon-Icon + klarer Burger rechts ---- */
@media(max-width:860px){
  .nav-toggle-label{display:flex;flex-direction:column;justify-content:center;gap:5px;width:52px;height:46px;cursor:pointer;border:0;border-radius:12px;padding:13px;background:var(--orange);box-shadow:0 4px 12px rgba(0,0,0,.35);margin-left:auto;order:3;}
  .nav-toggle-label span{display:block;height:3px;width:100%;background:#fff;border-radius:3px;transition:transform .3s var(--ease-out),opacity .2s ease;}
  .nav-cta{order:2;gap:.3rem;}
  .nav-cta .btn{display:none;}
  .nav-phone span{display:none;}
  .nav-phone{padding:.55em;border-radius:12px;}
  .nav.scrolled .nav-phone{background:rgba(40,40,40,.06);}
  /* Aufklapp-Menü: vollständig versteckt wenn zu (kein Heraushängen) */
  .nav-links{position:fixed;inset:var(--nav-h) 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--sand);border-bottom:3px solid var(--orange);padding:.4rem clamp(16px,5vw,40px) 1rem;box-shadow:var(--shadow);max-height:calc(100dvh - var(--nav-h));overflow:auto;opacity:0;visibility:hidden;transform:translateY(-10px);pointer-events:none;transition:opacity .28s var(--ease-out),transform .28s var(--ease-out),visibility .28s;}
  .nav-links a{font-size:1.2rem;padding:.95em .4em;border:0;border-radius:0;color:var(--text);text-shadow:none;}
  .nav-links a[aria-current="page"]{color:var(--amber);}
  .nav-links a::after{display:none;}
  .nav-toggle:checked ~ .nav-links{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;}
  .nav-toggle:checked ~ .nav-toggle-label span:nth-child(1){transform:translateY(8px) rotate(45deg);}
  .nav-toggle:checked ~ .nav-toggle-label span:nth-child(2){opacity:0;}
  .nav-toggle:checked ~ .nav-toggle-label span:nth-child(3){transform:translateY(-8px) rotate(-45deg);}
  /* Bei geöffnetem Menü: Leiste sofort deckend sandfarben (kein Blur/Transparenz),
     damit Leiste und Dropdown nahtlos gleich aussehen */
  .nav:has(#nav-toggle:checked){background:var(--sand);backdrop-filter:none;box-shadow:none;}
  .nav:has(#nav-toggle:checked) .logo-light{display:block;}
  .nav:has(#nav-toggle:checked) .logo-dark{display:none;}
  .nav:has(#nav-toggle:checked) .nav-phone{color:var(--text);text-shadow:none;background:transparent;}
}
@media(max-width:430px){.nav-logo img{height:40px;}}

/* ============================================================
   HERO (Verlauf umgekehrt: kräftig oben -> hell unten)
   ============================================================ */
/* Hero-Hintergrund: Platzhalterfoto (austauschbar unter images/startseite.jpg) */
.hero{position:relative;overflow:hidden;isolation:isolate;color:#fff;margin-top:calc(-1 * var(--nav-h));background:#1a1a1a url("../images/startseite.jpg") center/cover no-repeat;}
.hero::before{content:none;}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(10,10,10,.82) 0%,rgba(10,10,10,.55) 45%,rgba(10,10,10,.25) 68%,transparent 88%);}
.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(20px,4vw,48px);align-items:center;padding-top:calc(var(--nav-h) + clamp(30px,6vw,70px));padding-bottom:clamp(60px,10vw,110px);}
.hero h1{color:#fff;text-shadow:0 3px 20px rgba(90,30,18,.45);}
.hero .lead{color:#fff;font-weight:600;text-shadow:0 2px 12px rgba(90,30,18,.4);max-width:52ch;}
.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.6rem;}
.hero-cta .btn-secondary{background:#4a4a4a;color:#fff;box-shadow:none;}
@media(hover:hover){.hero-cta .btn-secondary:hover{background:#5d5d5d;color:#fff;box-shadow:none;}}
.hero-figure{position:relative;display:flex;justify-content:center;align-items:center;}
.hero-figure img{width:min(100%,540px);filter:drop-shadow(0 24px 26px rgba(70,25,15,.45));animation:floaty 6s ease-in-out infinite;}
.hero-badges{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem;}
.hero-badge{background:rgba(255,255,255,.95);color:var(--brick);font-family:"Montserrat",sans-serif;font-weight:700;font-size:.86rem;padding:.45em .9em;border-radius:999px;box-shadow:var(--shadow-sm);}
@media(max-width:780px){
  /* Eigenes Hero-Bild für Mobilgeräte (austauschbar: images/startseite-mobile.jpg) */
  .hero{background-image:url("../images/startseite-mobile.jpg");}
  .hero-inner{grid-template-columns:1fr;text-align:center;padding-bottom:clamp(48px,12vw,90px);}
  .hero::after{background:linear-gradient(180deg,rgba(10,10,10,.5) 0%,rgba(10,10,10,.35) 40%,transparent 80%);}
  .hero .lead{margin-inline:auto;}
  .hero-cta,.hero-badges{justify-content:center;}
  .hero-figure{order:-1;}
  .hero-figure img{width:min(80%,340px);}
}

/* ---------- USP-Streifen ---------- */
.usp{background:var(--ink);color:var(--text);}
.usp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:clamp(20px,3vw,34px);}
.usp-item{display:flex;gap:.9rem;align-items:flex-start;}
.usp-item svg{flex-shrink:0;width:40px;height:40px;color:var(--gold);}
.usp-item h3{color:#fff;font-size:1.15rem;margin-bottom:.2em;}
.usp-item p{color:rgba(242,238,228,.82);font-size:.98rem;margin:0;}

/* ---------- Sektionsbausteine ---------- */
.alt{background:var(--sand-2);}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,5vw,60px);align-items:center;}
.split.reverse .split-media{order:2;}
.split-media img{border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;}
@media(max-width:780px){.split{grid-template-columns:1fr;}.split.reverse .split-media{order:0;}}

.models{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(20px,3vw,30px);}
.model-card{background:var(--cream);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out);}
@media(hover:hover){.model-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}}
.model-card img{aspect-ratio:3/2;object-fit:cover;width:100%;background:#fff;}
.model-card .body{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:.5rem;flex:1;}
.model-card h3{margin:0;}
.model-card .from{font-family:"Montserrat",sans-serif;font-weight:700;color:var(--brick);font-size:1.05rem;}
.model-card .from b{font-size:1.5rem;}

/* ---------- Modell-Block + Datenblatt ---------- */
.modelblock{margin-bottom:clamp(48px,7vw,84px);}
.modelblock:last-child{margin-bottom:0;}
.modelblock .head-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem 1rem;border-bottom:3px solid var(--orange);padding-bottom:.6rem;margin-bottom:1.6rem;}
.modelblock .head-row h2{margin:0;}
.modelblock .head-row .tag{font-family:"Montserrat";font-weight:700;background:var(--ink);color:var(--gold);padding:.25em .8em;border-radius:999px;font-size:.85rem;}
.model-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:1.6rem;}
.model-gallery img{aspect-ratio:3/2;object-fit:cover;border-radius:12px;box-shadow:var(--shadow-sm);cursor:zoom-in;transition:transform .2s var(--ease-out);}
@media(hover:hover){.model-gallery img:hover{transform:scale(1.03);}}
.model-cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,4vw,40px);}
@media(max-width:760px){.model-cols{grid-template-columns:1fr;}}
.equip h3,.dataplate h3{font-size:1.15rem;}
.equip ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem;}
.equip li{position:relative;padding-left:1.6rem;color:var(--ink-2);}
.equip li::before{content:"";position:absolute;left:0;top:.55em;width:.7rem;height:.7rem;border-radius:50%;background:var(--sunset-btn);}
.dataplate{background:var(--ink);color:var(--text);border-radius:14px;padding:1.4rem 1.5rem;position:relative;box-shadow:inset 0 0 0 2px rgba(246,180,60,.25),var(--shadow-sm);font-feature-settings:"tnum";}
.dataplate::before,.dataplate::after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#7a7466,#3a362f);top:12px;}
.dataplate::before{left:12px;}.dataplate::after{right:12px;}
.dataplate h3{color:var(--gold);font-family:"Montserrat";text-align:center;letter-spacing:.12em;text-transform:uppercase;font-size:.95rem;margin:0 0 1rem;}
.dataplate dl{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0;}
.dataplate dt{color:rgba(242,238,228,.7);font-size:.92rem;}
.dataplate dd{margin:0;text-align:right;font-family:"Montserrat";font-weight:700;font-size:.96rem;}

/* ---------- Preistafel (passt ohne Scrollen; bricht bei Bedarf um) ---------- */
.pricetable{max-width:760px;margin-inline:auto;background:var(--cream);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);}
.pricetable table{width:100%;border-collapse:collapse;}
.pricetable caption{background:var(--sunset-btn);color:#fff;font-family:"Montserrat";font-weight:700;font-size:1.25rem;padding:.9rem 1rem;letter-spacing:.02em;}
.pricetable th,.pricetable td{padding:.95rem 1.1rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top;}
.pricetable thead th{background:var(--ink);color:var(--gold);font-family:"Montserrat";font-size:.95rem;}
.pricetable thead th:not(:first-child),.pricetable tbody td:not(:first-child){text-align:center;font-family:"Montserrat";font-weight:700;white-space:nowrap;}
.pricetable tbody th{font-weight:400;color:var(--text);overflow-wrap:break-word;}
.pricetable tbody th small{display:block;color:var(--ink-2);font-size:.82rem;font-weight:400;}
.pricetable tr.total td,.pricetable tr.total th{font-weight:700;background:var(--sand-2);font-size:1.05rem;}
.price-note{max-width:760px;margin:1rem auto 0;text-align:center;color:var(--brick);font-family:"Montserrat";font-weight:700;}
.price-sub{max-width:760px;margin:.4rem auto 0;text-align:center;color:var(--ink-2);font-size:.92rem;}
@media(max-width:560px){
  .pricetable caption{font-size:1.05rem;padding:.7rem .6rem;}
  .pricetable th,.pricetable td{padding:.6rem .5rem;}
  .pricetable thead th{font-size:.8rem;}
  .pricetable tbody th{font-size:.9rem;}
  .pricetable tbody th small{font-size:.72rem;}
  .pricetable thead th:not(:first-child),.pricetable tbody td:not(:first-child){font-size:.82rem;}
  .pricetable tr.total td,.pricetable tr.total th{font-size:.9rem;}
}

/* ---------- Kalender ---------- */
.cal{max-width:720px;margin-inline:auto;background:var(--cream);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;}
.cal-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--ink);color:#fff;padding:.85rem 1rem;}
.cal-head h3{color:#fff;margin:0;font-size:1.1rem;}
.cal-nav{display:flex;gap:.4rem;}
.cal-nav button{width:42px;height:42px;border-radius:10px;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:1.3rem;cursor:pointer;line-height:1;transition:background-color .2s ease,transform .15s var(--ease-out);}
@media(hover:hover) and (pointer:fine){.cal-nav button:hover{background:var(--orange);}}
.cal-nav button:active{background:var(--orange);transform:scale(.94);}
.cal-models{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;padding:14px 12px 0;}
.cal-models .lbl{width:100%;text-align:center;font-family:"Montserrat";font-weight:700;font-size:.9rem;color:var(--ink-2);margin-bottom:.2rem;}
.cal-models button{font-family:"Montserrat";font-weight:700;font-size:.95rem;padding:.55em 1.1em;border-radius:999px;border:2px solid var(--line);background:transparent;color:var(--text);cursor:pointer;min-height:46px;transition:background-color .2s ease,color .2s ease,transform .15s var(--ease-out);}
.cal-models button[aria-pressed="true"]{background-image:var(--sunset-btn);color:#fff;border-color:transparent;}
.cal-models button:active{transform:scale(.96);}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;padding:12px;}
.cal-grid .dow{text-align:center;font-family:"Montserrat";font-weight:700;font-size:.78rem;color:var(--ink-2);padding:.3rem 0;}
.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:10px;font-size:.95rem;background:var(--surface-2);color:var(--text);position:relative;}
.cal-day.empty{background:transparent;}
.cal-day.free{cursor:pointer;font-weight:700;transition:transform .15s var(--ease-out),background-color .2s ease;}
@media(hover:hover) and (pointer:fine){.cal-day.free:hover{background:#34A853;color:#fff;transform:scale(1.06);}}
.cal-day.booked{color:#fff;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.5),0 0 2px rgba(0,0,0,.35);}
/* N126-D = orange, N126-N = rot; "Beide" = halb/halb (links D, rechts N) */
.cal-day.b-d{background:var(--orange);}
.cal-day.b-n{background:var(--coral);}
.cal-day.b-both{background:linear-gradient(90deg,var(--orange) 0 50%,var(--coral) 50% 100%);}
.cal-day.b-d-half{background:linear-gradient(90deg,var(--orange) 0 50%,var(--surface-2) 50% 100%);}
.cal-day.b-n-half{background:linear-gradient(90deg,var(--surface-2) 0 50%,var(--coral) 50% 100%);}
.cal-day.today{box-shadow:inset 0 0 0 2px var(--orange);}
.cal-day.past{opacity:.35;}
.cal-day.sel-range{background:rgba(52,168,83,.30);color:var(--text);}
.cal-day.sel-start,.cal-day.sel-end{background-image:linear-gradient(135deg,#34A853 0%,#1E7E37 100%);color:#fff;font-weight:700;}
.cal-legend{display:flex;flex-wrap:wrap;gap:1.2rem;justify-content:center;padding:0 12px 14px;font-size:.88rem;color:var(--ink-2);}
.cal-legend span{display:inline-flex;align-items:center;gap:.45rem;}
.cal-legend i{width:16px;height:16px;border-radius:5px;display:inline-block;}
.cal-status{padding:0 1rem 1rem;text-align:center;color:var(--ink-2);font-size:.92rem;}
.cal-fallback{padding:1.4rem;text-align:center;}

/* ---------- Live-Preisrechner ---------- */
.calc{margin-top:1.4rem;background:var(--sand);border-radius:14px;padding:1.1rem 1.2rem;}
.calc h4{font-family:"Montserrat";margin:0 0 .6rem;font-size:1.08rem;}
.calc-row{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-bottom:1px dashed rgba(255,255,255,.14);}
.calc-row span:last-child{font-family:"Montserrat";font-weight:700;white-space:nowrap;}
.calc-row.total{border-bottom:0;border-top:2px solid rgba(255,255,255,.3);margin-top:.4rem;padding-top:.7rem;font-size:1.18rem;}
.calc-row.total span:last-child{color:var(--brick);}
.calc-note,.calc-deposit{font-size:.86rem;color:var(--ink-2);margin-top:.5rem;}
.calc-warn{color:var(--brick);font-weight:700;font-size:.9rem;margin-top:.5rem;display:none;}

/* ---------- Formulare ---------- */
.formwrap{max-width:760px;margin-inline:auto;background:var(--cream);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:clamp(22px,4vw,40px);}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}
.field{display:flex;flex-direction:column;gap:.35rem;}
.field.full{grid-column:1/-1;}
.field label{font-family:"Montserrat";font-weight:700;font-size:.95rem;}
.field .req{color:var(--orange);}
.field input,.field select,.field textarea{font-family:"Open Sans",sans-serif;font-size:1.02rem;color:var(--text);padding:.8em .9em;border:2px solid var(--line);border-radius:12px;background:#1b1b1b;width:100%;transition:border-color .2s ease,box-shadow .2s ease;}
.field textarea{min-height:120px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 4px rgba(250,135,6,.16);}
.options{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.6rem;}
.option{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem .55rem;background:var(--sand);border:2px solid transparent;border-radius:12px;padding:.7em .9em;cursor:pointer;transition:border-color .2s ease,background-color .2s ease;}
@media(hover:hover) and (pointer:fine){.option:hover{border-color:var(--gold);}}
.option input{width:22px;height:22px;accent-color:var(--orange);flex:0 0 auto;}
.option>span:first-of-type{font-size:.95rem;line-height:1.25;flex:1 1 auto;min-width:0;overflow-wrap:anywhere;}
.option.disabled{opacity:.5;}
.option.disabled input{pointer-events:none;}
.option .price{margin-left:auto;font-family:"Montserrat";font-weight:700;font-size:.82rem;color:var(--brick);white-space:nowrap;flex:0 0 auto;}
.option .na{margin-left:auto;font-size:.76rem;color:var(--ink-2);font-weight:700;white-space:nowrap;flex:0 0 auto;}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.92rem;color:var(--ink-2);}
.consent input{width:24px;height:24px;accent-color:var(--orange);flex-shrink:0;margin-top:2px;}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:.4rem;}
.form-hint{font-size:.85rem;color:var(--ink-2);}
.honeypot{position:absolute;left:-9999px;top:-9999px;}
.form-msg{margin-top:1rem;padding:1rem 1.2rem;border-radius:12px;font-weight:700;display:none;}
.form-msg.ok{display:block;background:rgba(34,197,94,.14);color:#7ee2a0;border:1px solid rgba(34,197,94,.4);}
.form-msg.err{display:block;background:rgba(239,68,68,.14);color:#ff9a9a;border:1px solid rgba(239,68,68,.4);}
@media(max-width:600px){.form-grid{grid-template-columns:1fr;}}

/* ---------- Kontakt ---------- */
.contact-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:2.4rem;}
.contact-card{display:flex;gap:.9rem;align-items:center;background:var(--cream);border-radius:var(--radius);padding:1.1rem 1.2rem;box-shadow:var(--shadow-sm);color:var(--text);transition:transform .2s var(--ease-out);}
@media(hover:hover) and (pointer:fine){.contact-card:hover{transform:translateY(-3px);text-decoration:none;}}
.contact-card svg{width:30px;height:30px;color:var(--orange);flex-shrink:0;}
.contact-card b{font-family:"Montserrat";display:block;}
.contact-card span{font-size:.95rem;color:var(--ink-2);}
.map-wrap{border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);background:var(--sand-2);min-height:300px;position:relative;}
.map-wrap iframe{width:100%;height:420px;border:0;display:block;}
.map-consent{padding:2.4rem 1.4rem;text-align:center;}
.map-consent p{margin-inline:auto;}

/* ---------- Über mich ---------- */
.about-hero{display:grid;grid-template-columns:300px 1fr;gap:clamp(26px,5vw,52px);align-items:center;}
.about-hero img{border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;}
@media(max-width:680px){.about-hero{grid-template-columns:1fr;}.about-hero img{max-width:280px;margin-inline:auto;}}

.partners{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(28px,6vw,64px);}
.partners img{height:64px;width:auto;}
@media(max-width:480px){.partners img{height:48px;}}

.cta-band{background:var(--sunset-btn);color:#fff;text-align:center;}
.cta-band h2{color:#fff;}
.cta-band p{color:rgba(255,255,255,.92);margin-inline:auto;}
.cta-band .btn-ghost{margin-top:.6rem;}

/* ---------- Footer ---------- */
.footer{background:var(--ink);color:rgba(242,238,228,.8);padding-block:clamp(40px,6vw,64px) 1.5rem;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(24px,4vw,48px);margin-bottom:2rem;}
.footer h4{color:#fff;font-size:1rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.9rem;}
.footer a{color:rgba(242,238,228,.8);}
.footer a:hover{color:var(--gold);}
.footer ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;}
.footer-logo img{height:70px;margin-bottom:.8rem;}
.social{display:flex;gap:.7rem;margin-top:1.1rem;flex-wrap:wrap;}
.social a{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:rgba(255,255,255,.10);color:#fff;transition:background-color .2s ease,transform .15s var(--ease-out);}
.social a:hover{background:var(--orange);transform:translateY(-2px);text-decoration:none;}
.social svg{width:24px;height:24px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:1.2rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem;font-size:.86rem;}
@media(max-width:680px){.footer-grid{grid-template-columns:1fr;}}

/* ---------- Pop-up / Modal ---------- */
.modal-overlay{position:fixed;inset:0;z-index:var(--z-modal);background:rgba(30,20,12,.62);display:flex;align-items:center;justify-content:center;padding:18px;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;}
.modal-overlay.open{opacity:1;visibility:visible;}
.modal{background:var(--cream);border-radius:var(--radius-lg);max-width:560px;width:100%;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.4);transform:scale(.94);opacity:0;transition:transform .35s var(--ease-out),opacity .35s var(--ease-out);}
.modal-overlay.open .modal{transform:scale(1);opacity:1;}
.modal a.modal-img{display:block;}
.modal img{width:100%;display:block;}
.modal-body{padding:1.2rem 1.4rem 1.5rem;text-align:center;}
.modal-wrap{position:relative;}
.modal-close{position:absolute;top:12px;right:12px;width:56px;height:56px;border-radius:50%;border:3px solid #fff;background:var(--ink);color:#fff;font-size:2rem;line-height:1;cursor:pointer;z-index:3;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 18px rgba(0,0,0,.35);transition:background-color .2s ease,transform .15s var(--ease-out);}
.modal-close:hover{background:var(--coral);transform:rotate(90deg);}

/* ---------- Scroll-Reveal ---------- */
.js [data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);}
.js [data-reveal].is-visible{opacity:1;transform:none;}
[data-reveal-stagger]>*{transition-delay:var(--d,0ms);}

/* ---------- Innen-Seiten-Kopf ---------- */
.page-hero{background:var(--ink);color:#fff;position:relative;overflow:hidden;margin-top:calc(-1 * var(--nav-h));padding-top:calc(var(--nav-h) + clamp(40px,7vw,70px));padding-bottom:clamp(48px,8vw,80px);}
.page-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 140% at 80% -20%,rgba(250,135,6,.5),transparent 60%);}
.page-hero .container{position:relative;z-index:1;}
.page-hero h1{color:#fff;margin-bottom:.2em;}
.page-hero p{color:rgba(242,238,228,.85);max-width:60ch;}

/* ---------- prefers-reduced-motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{animation:none !important;}
  .js [data-reveal]{opacity:1 !important;transform:none !important;transition:none !important;}
  html{scroll-behavior:auto;}
  .btn,.cal-day,.model-card,.contact-card{transition:background-color .2s ease,color .2s ease;}
}

/* ---------- Keyframes (nur transform/opacity) ---------- */
@keyframes floaty{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
@keyframes sunGlow{0%{opacity:.75;transform:translateX(-50%) scale(.98);}100%{opacity:1;transform:translateX(-50%) scale(1.04);}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:none;}}
.hero h1{animation:fadeUp .8s var(--ease-out) both;}
.hero .lead{animation:fadeUp .8s var(--ease-out) .12s both;}
.hero-cta{animation:fadeUp .8s var(--ease-out) .24s both;}
.hero-badges{animation:fadeUp .8s var(--ease-out) .34s both;}

/* ---------- Formular: Sperre & Hinweise ---------- */
.btn[disabled]{opacity:.5;filter:grayscale(.3);cursor:not-allowed;box-shadow:none !important;transform:none !important;}
.form-gate{margin-top:.9rem;font-size:.92rem;color:var(--ink-2);font-weight:700;line-height:1.5;}
.form-gate.err{color:#ff5b5b;display:flex;align-items:flex-start;}
.form-gate.err::before{content:"";flex:0 0 auto;width:1.1em;height:1.1em;margin:.12em .5em 0 0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff5b5b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/%3E%3Cline x1='12' y1='9' x2='12' y2='13'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E") center/contain no-repeat;}
.form-gate:empty{display:none;}
/* kein klebender Fokusrahmen an Checkboxen bei Tipp/Klick (nur Tastatur zeigt Ring) */
.option input:focus:not(:focus-visible),.consent input:focus:not(:focus-visible){outline:none;}
.option input:focus-visible,.consent input:focus-visible{outline:2px solid var(--orange);outline-offset:2px;}

/* ---------- Lightbox-Bild: scharf, nicht über Originalgröße hochskaliert ---------- */
.lightbox-img{border-radius:14px;display:block;margin:auto;background:#fff;}

/* ---------- Wohnwagen-Galerie: Hauptbild + Thumbnails ---------- */
.model-gallery{display:block;margin-bottom:1.6rem;}
.gallery-main img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:16px;box-shadow:var(--shadow-sm);cursor:zoom-in;background:#fff;display:block;}
.gallery-thumbs{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:8px;}
.gallery-thumbs img{aspect-ratio:3/2;object-fit:cover;border-radius:10px;box-shadow:var(--shadow-sm);cursor:zoom-in;background:#fff;display:block;transition:transform .2s var(--ease-out);}
@media(hover:hover) and (pointer:fine){.gallery-thumbs img:hover{transform:scale(1.04);}}

/* ---------- Lightbox-Navigation (Galerie-Modus) ---------- */
.lb-overlay .modal-close{position:fixed;top:14px;right:14px;}
.lb-nav{position:fixed;top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;border:3px solid #fff;background:rgba(40,40,40,.55);color:#fff;font-size:2rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;transition:background-color .2s ease;}
.lb-prev{left:12px;}.lb-next{right:12px;}
@media(hover:hover) and (pointer:fine){.lb-nav:hover{background:var(--coral);}}
.lb-counter{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:rgba(40,40,40,.6);color:#fff;font-family:"Montserrat";font-weight:700;font-size:.9rem;padding:.3em .9em;border-radius:999px;z-index:3;}
@media(max-width:480px){.lb-nav{width:48px;height:48px;font-size:1.6rem;}}

/* ============================================================
   DARK-THEME-FEINSCHLIFF
   ============================================================ */
/* Dezente Kanten, damit Flächen sich auf dunklem Grund abheben */
.model-card,.formwrap,.cal,.pricetable,.contact-card,.calc,.map-wrap,.modal{border:1px solid var(--line);}
/* Eingabefelder: Platzhaltertext gedämpft */
.field input::placeholder,.field textarea::placeholder{color:#7d7870;}
/* Verkaufsseite: Platzhalter/Logos vollständig anzeigen (nicht beschneiden) */
.verkauf-logo{object-fit:contain !important;background:var(--surface-2);padding:1.4rem;}

/* PDF-Download-Links unten rechts im Anfrageformular */
.form-downloads{margin-top:1.8rem;padding-top:1.2rem;border-top:1px solid var(--line);display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;text-align:left;}
.form-downloads .dl-head{margin:0 0 .3rem;font-family:"Montserrat",sans-serif;font-weight:700;font-size:.92rem;color:var(--ink-2);}
.form-downloads a{display:inline-flex;align-items:center;gap:.5rem;color:var(--amber);font-family:"Montserrat",sans-serif;font-weight:700;font-size:.95rem;text-decoration:none;transition:color .2s ease;}
.form-downloads a svg{width:18px;height:18px;flex-shrink:0;}
@media(hover:hover){.form-downloads a:hover{color:var(--orange);text-decoration:underline;}}
@media(max-width:600px){.form-downloads{align-items:flex-start;text-align:left;}}

/* Mietzeitraum: Feld + aufklappbarer Kalender (gleicher Look wie der Verfügbarkeitskalender) */
.rangepick{position:relative;}
.rangepick-field{display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;font-family:"Open Sans",sans-serif;font-size:1.02rem;color:var(--ink-2);padding:.8em .9em;border:2px solid var(--line);border-radius:12px;background:#1b1b1b;cursor:pointer;text-align:left;min-height:52px;transition:border-color .2s ease,box-shadow .2s ease;}
@media(hover:hover){.rangepick-field:hover{border-color:var(--orange);}}
.rangepick-field[aria-expanded="true"]{border-color:var(--orange);box-shadow:0 0 0 4px rgba(250,135,6,.16);}
.rangepick-field.has-value .rp-text{color:var(--text);font-weight:700;}
.rangepick-field .rp-cal{width:20px;height:20px;color:var(--orange);flex-shrink:0;}
.rangepick-pop{position:absolute;top:calc(100% + 10px);left:0;z-index:var(--z-overlay);width:min(540px,94vw);}
.rangepick-pop[hidden]{display:none;}
.rp-cal-box{max-width:none;margin:0;}
.rp-cal-box .cal-head h3{flex:1;text-align:center;}
.rp-prev,.rp-next{width:42px;height:42px;border-radius:10px;border:none;background:rgba(255,255,255,.12);color:#fff;font-size:1.3rem;line-height:1;cursor:pointer;transition:background-color .2s ease,transform .15s var(--ease-out);}
@media(hover:hover) and (pointer:fine){.rp-prev:hover,.rp-next:hover{background:var(--orange);}}
.rp-prev:active,.rp-next:active{transform:scale(.94);}
.rp-actions{display:flex;justify-content:space-between;gap:.8rem;padding:0 12px 14px;}
.rp-actions .btn{min-height:46px;padding:.6em 1.3em;font-size:.95rem;}
@media(max-width:560px){.rangepick-pop{width:min(420px,94vw);}}
