/* ==========================================================================
   Ferienwohnung Peschke – Theme für Contao 6
   Asal EDV-System-Dienste · 2026
   Ohne Eclipse X / Premium Contao Themes. Schriften lokal (keine Google-Server).
   ========================================================================== */

/* ---------- Schriften (lokal) ---------- */
@font-face{font-family:"Lora";src:url("../fonts/lora-var.woff") format("woff");font-weight:400 700;font-style:normal;font-display:swap}
@font-face{font-family:"Lora";src:url("../fonts/lora-italic-var.woff") format("woff");font-weight:400 700;font-style:italic;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url("../fonts/sourcesans3-var.woff") format("woff");font-weight:200 900;font-style:normal;font-display:swap}

/* ---------- Farben & Maße ---------- */
:root{
  --wine:#7a2a28;
  --wine-dark:#5c1f1d;
  --wine-soft:#f4e9e7;
  --taupe:#9c8e85;
  --taupe-dark:#7d7069;
  --gold:#b39964;
  --beige:#ebe7df;
  --cream:#f7f4ef;
  --white:#fff;
  --ink:#2e2926;
  --muted:#6c635d;
  --line:#e2ddd5;
  --radius:16px;
  --radius-s:10px;
  --shadow:0 10px 30px rgba(46,41,38,.10);
  --shadow-l:0 22px 50px rgba(46,41,38,.16);
  --wrap:1180px;
  --gutter:clamp(16px,4vw,32px);
  --serif:"Lora",Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3","Segoe UI",system-ui,-apple-system,Arial,sans-serif;
  --header-h:78px;
}

/* ---------- Basis ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{margin:0;background:var(--beige);color:var(--ink);font-family:var(--sans);font-size:clamp(17px,1.05vw + 12px,19px);line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--wine);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--wine-dark)}
p{margin:0 0 1em}
strong,b{font-weight:600}
h1,h2,h3,h4,h5,h6{font-family:var(--serif);font-weight:500;line-height:1.2;color:var(--ink);margin:0 0 .6em;letter-spacing:-.005em}
h1{font-size:clamp(2rem,1.4rem + 2.2vw,3rem)}
h2{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.25rem)}
h3{font-size:clamp(1.25rem,1.1rem + .6vw,1.5rem)}
h4{font-size:1.2rem}
h5,h6{font-size:1.05rem}
ul{padding-left:1.2em}
hr{border:0;border-top:1px solid var(--line);margin:2rem 0}
.invisible,.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* Contaos layout.css (falls aktiv) neutralisieren – #main darf nicht floaten */
#container,#main,#left,#right{float:none!important;width:auto!important;left:auto!important;right:auto!important;margin:0!important;padding:0!important}
#wrapper{width:auto!important;margin:0!important;overflow-x:clip}
.block{overflow:visible}

/* ---------- Topbar ---------- */
#topbar{background:var(--taupe);color:#fff;font-size:.86rem}
#topbar .inside{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:38px}
.topbar a{color:#fff;text-decoration:none;opacity:.95}
.topbar a:hover{opacity:1;text-decoration:underline}
.topbar__contact{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.4rem}
.topbar__contact span{opacity:.85}
.topbar__links{display:flex;gap:1.2rem}
@media (max-width:700px){.topbar__question,.topbar__links{display:none}.topbar{justify-content:center}.topbar__contact{justify-content:center;gap:.3rem 1rem}}


/* ---------- Symbole (CSS-Masken, kein SVG im HTML-Modul nötig) ---------- */
.ico::before{content:"";display:inline-block;width:1em;height:1em;margin-right:.45em;vertical-align:-.14em;background:currentColor;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat;flex:0 0 auto}
.ico-phone{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M5 4h3l1.5 4.5-2 1.2a11 11 0 0 0 6.8 6.8l1.2-2L20 16v3a1.5 1.5 0 0 1-1.6 1.5A16 16 0 0 1 3.5 5.6 1.5 1.5 0 0 1 5 4z'/%3E%3C/svg%3E")}
.ico-mobile{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='7' y='2.5' width='10' height='19' rx='2.2'/%3E%3Cpath d='M11 18.5h2'/%3E%3C/svg%3E")}
.ico-mail{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2.2'/%3E%3Cpath d='M3.5 6.5l8.5 6 8.5-6'/%3E%3C/svg%3E")}
.footer-contact li.ico{display:flex;align-items:baseline}
.footer-contact li.ico::before{color:var(--gold);margin-right:.6em}

/* ---------- Header ---------- */
#header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.2) blur(8px);-webkit-backdrop-filter:saturate(1.2) blur(8px);box-shadow:0 1px 0 var(--line);transition:box-shadow .25s}
body.is-scrolled #header{box-shadow:0 6px 24px rgba(46,41,38,.12)}
#header .inside{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter);min-height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;position:relative}
.brand{display:flex;align-items:center;gap:.9rem}
.brand__logo{position:relative;display:block;align-self:flex-start;text-decoration:none}
.brand__logo img{width:auto;height:118px;margin-bottom:-44px;filter:drop-shadow(0 8px 14px rgba(46,41,38,.18));transition:height .25s,margin .25s}
body.is-scrolled .brand__logo img{height:74px;margin-bottom:-4px}
.brand__text{display:none}

/* Hauptnavigation (Contao nav_default – Contao 4/5/6-tauglich) */
#header nav{display:block}
#header nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:.25rem}
#header nav li{margin:0;padding:0}
#header nav a,#header nav strong,#header nav span.active{display:block;padding:.55rem .85rem;border-radius:999px;font-family:var(--serif);font-size:1.02rem;font-weight:500;color:var(--ink);text-decoration:none;transition:background .2s,color .2s}
#header nav a:hover{background:var(--wine-soft);color:var(--wine)}
#header nav .active,#header nav a.trail,#header nav strong{color:var(--wine)}
#header nav strong.active,#header nav a.active{background:var(--wine-soft)}
#header nav li.nav-cta>a,#header nav li.nav-cta>strong,#header nav a.nav-cta,#header nav strong.nav-cta{background:var(--wine);color:#fff;padding:.55rem 1.2rem;margin-left:.4rem;box-shadow:0 6px 16px rgba(122,42,40,.25)}
#header nav li.nav-cta>a:hover,#header nav a.nav-cta:hover{background:var(--wine-dark);color:#fff}

/* Mobile-Navigation */
.nav-toggle{display:none;width:46px;height:46px;border-radius:12px;align-items:center;justify-content:center;background:var(--wine-soft);text-decoration:none;flex:0 0 auto}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{display:block;width:22px;height:2px;background:var(--wine);border-radius:2px;position:relative;transition:transform .25s,background .25s}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0}
.nav-toggle span::before{top:-7px}.nav-toggle span::after{top:7px}
body.nav-open .nav-toggle span{background:transparent}
body.nav-open .nav-toggle span::before{transform:translateY(7px) rotate(45deg)}
body.nav-open .nav-toggle span::after{transform:translateY(-7px) rotate(-45deg)}
@media (max-width:980px){
  :root{--header-h:66px}
  .nav-toggle{display:inline-flex}
  .brand__logo img{height:84px;margin-bottom:-26px}
  body.is-scrolled .brand__logo img{height:58px;margin-bottom:-2px}
  #header nav{position:absolute;left:0;right:0;top:100%;background:#fff;box-shadow:var(--shadow-l);border-radius:0 0 var(--radius) var(--radius);padding:.75rem var(--gutter) 1.25rem;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .2s,transform .2s,visibility .2s}
  body.nav-open #header nav{opacity:1;visibility:visible;transform:none}
  #header nav ul{flex-direction:column;align-items:stretch;gap:.2rem}
  #header nav a,#header nav strong{padding:.8rem 1rem;border-radius:12px;font-size:1.1rem}
  #header nav li.nav-cta>a,#header nav li.nav-cta>strong{margin:.5rem 0 0;text-align:center}
}

/* ---------- Kopfbereich / Slider ---------- */
#slider .inside{margin:0;padding:0}
#slider .mod_article{max-width:none;margin:0;padding:0!important;background:none;box-shadow:none;border-radius:0}
.hero{position:relative;overflow:hidden;background:var(--taupe-dark);height:clamp(300px,52vh,560px);isolation:isolate}
.hero--large{height:clamp(420px,78vh,820px)}
.hero--small{height:clamp(220px,34vh,360px)}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity 1.2s ease}
.hero__slide.is-active{opacity:1;z-index:1}
.hero__slide figure,.hero__slide picture{margin:0;height:100%}
.hero__slide img{width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.06);transition:transform 7s ease-out}
.hero__slide.is-active img{transform:scale(1)}
.hero::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,0) 35%,rgba(0,0,0,.05) 60%,rgba(0,0,0,.42) 100%)}
.hero__caption{position:absolute;z-index:3;left:0;right:0;bottom:clamp(90px,16vh,170px);text-align:center;color:#fff;padding:0 var(--gutter);text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero--small .hero__caption,.hero:not(.hero--large) .hero__caption{bottom:clamp(28px,7vh,60px)}
.hero__title{font-family:var(--serif);font-size:clamp(2rem,1rem + 4vw,4.4rem);line-height:1.08;margin:0 0 .35em;color:#fff;font-weight:500}
.hero__subtitle{font-size:clamp(1.05rem,.95rem + .6vw,1.4rem);margin:0;letter-spacing:.02em;opacity:.95}
.hero__slide .hero__caption{opacity:0;transform:translateY(14px);transition:opacity .9s .35s,transform .9s .35s}
.hero__slide.is-active .hero__caption{opacity:1;transform:none}
.hero__dots{position:absolute;z-index:4;left:50%;bottom:22px;transform:translateX(-50%);display:flex;gap:.55rem}
.hero--large .hero__dots{bottom:auto;top:calc(100% - 128px)}
.hero__dots a{width:34px;height:4px;border-radius:4px;background:rgba(255,255,255,.5);display:block;transition:background .3s}
.hero__dots a.is-active{background:#fff}
@media (max-width:700px){.hero--large{height:clamp(380px,70vh,620px)}.hero__caption{bottom:120px}.hero--large .hero__dots{top:auto;bottom:96px}}

/* ---------- Inhalt / Artikel ---------- */
#container{background:transparent}
#main .inside{max-width:none}
.mod_article{max-width:var(--wrap);margin:0 auto;padding:clamp(48px,7vw,96px) var(--gutter)}
.mod_article+.mod_article{padding-top:0}
/* Inhaltsbereich als helle Fläche wie bisher */
#main{background:transparent}
#main .inside{background:transparent}
.mod_article.article--card>*:not(.booking){}

/* Erstes Inhaltsfeld auf Unterseiten: weiße Karte, die leicht ins Kopfbild ragt */
.page-sub #main .inside{max-width:var(--wrap);margin:-70px auto 0;padding:0 var(--gutter);position:relative;z-index:5}
.page-sub #main .inside>.mod_article{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);max-width:none;margin:0 0 28px;padding:clamp(28px,5vw,64px)}
.page-sub #main .inside>.mod_article+.mod_article{padding-top:clamp(28px,5vw,64px)}
@media (max-width:700px){.page-sub #main .inside{margin-top:-36px;padding:0 12px}}

/* Startseite */
.page-home #main .inside{max-width:none}
.article--booking{padding:0 var(--gutter)!important;margin-top:-92px!important;position:relative;z-index:6}
.article--intro{padding-top:clamp(56px,7vw,96px)!important}
.page-home .article--intro .intro{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(24px,4vw,56px);margin-bottom:clamp(32px,5vw,56px)}

/* ---------- Überschriften-Element (rsce_fp_headline) ---------- */
.fp-headline{text-align:center;max-width:780px;margin:0 auto 2.2rem}
.fp-headline--left{text-align:left;margin-left:0}
.fp-headline__kicker{display:inline-flex;align-items:center;gap:.7rem;font-family:var(--sans);font-size:.82rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0 0 .6rem}
.fp-headline__kicker::before,.fp-headline__kicker::after{content:"";width:28px;height:1px;background:currentColor;opacity:.7}
.fp-headline--left .fp-headline__kicker::before{display:none}
.fp-headline__title{margin:0 0 .5rem}
.fp-headline__text{color:var(--muted);font-size:1.08em;margin:.4rem 0 0}
.fp-headline__text p:last-child{margin:0}

/* ---------- Text, Bilder (Core-Elemente Contao 4/5/6) ---------- */
.ce_text,.content-text,.ce_image,.content-image,.ce_table,.content-table,.ce_hyperlink,.content-hyperlink,.ce_gallery,.content-gallery,.ce_headline,.content-headline,.ce_form,.content-form{margin-bottom:2rem}
.ce_text:last-child,.content-text:last-child{margin-bottom:0}
.rte>*:last-child{margin-bottom:0}
figure{margin:0}
figure img{border-radius:var(--radius-s)}
figcaption,.caption{font-size:.88rem;color:var(--muted);margin-top:.5rem}

/* Text mit Bild links/rechts → modernes Zweispalten-Raster */
.media--left,.media--right,.ce_text:has(>figure.float_left),.ce_text:has(>figure.float_right){display:grid;gap:clamp(24px,4vw,56px);align-items:start;grid-template-columns:1fr 1fr}
.media--right,.ce_text:has(>figure.float_right){grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.media--left,.ce_text:has(>figure.float_left){grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}
.media--right>figure,.ce_text>figure.float_right{order:2;float:none;margin:0}
.media--left>figure,.ce_text>figure.float_left{float:none;margin:0}
.media--right>h1,.media--right>h2,.media--right>h3,.media--left>h1,.media--left>h2,.media--left>h3,.ce_text:has(>figure.float_right)>h1,.ce_text:has(>figure.float_right)>h2,.ce_text:has(>figure.float_right)>h3,.ce_text:has(>figure.float_left)>h1,.ce_text:has(>figure.float_left)>h2,.ce_text:has(>figure.float_left)>h3{grid-column:1/-1}
.media--right>figure img,.media--left>figure img,.ce_text figure.float_right img,.ce_text figure.float_left img{width:100%;border-radius:var(--radius);box-shadow:var(--shadow)}
.media--right>figure,.ce_text>figure.float_right{position:sticky;top:calc(var(--header-h) + 24px)}
.media--below>figure,.media--above>figure{margin:1.5rem 0}
@media (max-width:860px){
  .media--left,.media--right,.ce_text:has(>figure.float_left),.ce_text:has(>figure.float_right){grid-template-columns:1fr}
  .media--right>figure,.ce_text>figure.float_right{order:-1;position:static}
}
/* kleine Siegel/Bilder in Rechtstexten */
.legal .media--right,.legal .ce_text:has(>figure.float_right){grid-template-columns:minmax(0,1fr) 220px}
.legal .media--right>figure img,.legal .ce_text figure.float_right img{box-shadow:none}
@media (max-width:860px){.legal .media--right>figure,.legal .ce_text>figure.float_right{display:none}}
.legal h2{font-size:1.45rem;margin-top:2rem}
.legal h3{font-size:1.15rem;margin-top:1.4rem}
.legal{font-size:.97em}

/* Intro Startseite */
.intro .rte,.intro{font-size:1.04em}
.intro .address,.address{display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem;color:var(--muted);background:var(--cream);border-radius:999px;padding:.35rem 1rem;margin-bottom:1.2rem}
.intro h1{margin-bottom:.4rem}
.signature{font-family:var(--serif);font-style:italic;font-size:1.35rem;color:var(--wine);margin-top:1.2rem}
.lead{font-size:1.12em;color:var(--muted)}

/* Hinweisbox */
.infobox{background:var(--cream);border-left:4px solid var(--gold);border-radius:var(--radius-s);padding:1.2rem 1.4rem}
.infobox p:last-child{margin:0}

/* Häkchen-Listen */
.checklist ul,ul.checklist{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.5rem}
.checklist li,ul.checklist li{position:relative;padding-left:1.9rem}
.checklist li::before,ul.checklist li::before{content:"";position:absolute;left:0;top:.28em;width:1.15em;height:1.15em;border-radius:50%;background:var(--wine-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a2a28' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/70% no-repeat}

/* Zweispaltige Textblöcke (Umgebung) */
.two-col .rte{columns:2 320px;column-gap:clamp(24px,4vw,56px)}
.season{background:var(--cream);border-radius:var(--radius);padding:clamp(22px,3vw,36px)}
.season h2,.season h3{display:flex;align-items:center;gap:.6rem}

/* ---------- Buttons ---------- */
.btn,.btn-primary a,.btn-outline a,a.btn,.content-hyperlink.btn-primary a,.ce_hyperlink.btn-primary a,.form-submit,button.submit,input.submit,.widget-submit button,.widget-submit input,form button[type=submit],form input[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:var(--sans);font-size:1rem;font-weight:600;letter-spacing:.01em;line-height:1.2;padding:.95rem 1.7rem;border-radius:999px;border:2px solid var(--wine);background:var(--wine);color:#fff!important;text-decoration:none;cursor:pointer;transition:background .2s,transform .2s,box-shadow .2s;box-shadow:0 8px 20px rgba(122,42,40,.22)}
.btn:hover,.btn-primary a:hover,a.btn:hover,button.submit:hover,input.submit:hover,form button[type=submit]:hover,form input[type=submit]:hover{background:var(--wine-dark);border-color:var(--wine-dark);transform:translateY(-1px);box-shadow:0 12px 26px rgba(122,42,40,.28)}
.btn-outline a,.btn--outline{background:transparent;color:var(--wine)!important;box-shadow:none}
.btn-outline a:hover,.btn--outline:hover{background:var(--wine);color:#fff!important}
.btn-primary a::after,.btn::after{content:"→";transition:transform .2s}
.btn-primary a:hover::after,.btn:hover::after{transform:translateX(3px)}
.btn-center{text-align:center}
.content-hyperlink.btn-primary,.ce_hyperlink.btn-primary{margin-top:1rem}

/* ---------- Karten / Fakten (rsce_fp_cards) ---------- */
.fp-cards{display:grid;gap:clamp(16px,2.4vw,28px);grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));margin:0 0 2rem}
.fp-cards--cols-2{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr))}
.fp-cards--cols-4{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}
.fp-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:clamp(22px,2.6vw,32px);box-shadow:0 2px 0 rgba(46,41,38,.02);transition:transform .25s,box-shadow .25s}
.fp-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.fp-card__icon{width:56px;height:56px;border-radius:16px;background:var(--wine-soft);color:var(--wine);display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.fp-card__icon svg{width:28px;height:28px}
.fp-card__title{font-size:1.3rem;margin:0 0 .6rem}
.fp-card__text{color:var(--muted);font-size:.98em}
.fp-card__text p:last-child{margin:0}
.fp-card__text a{overflow-wrap:anywhere}
.page-sub .fp-card{background:var(--cream);border-color:transparent}
/* Variante Fakten */
.fp-cards--facts{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:0;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.fp-cards--facts .fp-card{border:0;border-radius:0;text-align:center;box-shadow:none;background:transparent;padding:clamp(22px,3vw,34px) 18px}
.fp-cards--facts .fp-card+.fp-card{border-left:1px solid var(--line)}
.fp-cards--facts .fp-card:hover{transform:none}
.fp-cards--facts .fp-card__icon{margin:0 auto .8rem;width:50px;height:50px}
.fp-cards--facts .fp-card__title{font-size:1.7rem;color:var(--wine);margin:0 0 .15rem}
.fp-cards--facts .fp-card__text{font-size:.95rem}
@media (max-width:620px){.fp-cards--facts{grid-template-columns:1fr 1fr}.fp-cards--facts .fp-card+.fp-card{border-left:0}.fp-cards--facts .fp-card{border-bottom:1px solid var(--line)}.fp-cards--facts .fp-card:nth-child(even){border-left:1px solid var(--line)}}
/* Variante Kontakt (kompakt) – Symbol oben, Text volle Breite, keine Umbrüche in Nummern/Adressen */
.fp-cards--contact .fp-card{display:block;padding:clamp(20px,2.4vw,28px)}
.fp-cards--contact .fp-card__head{display:flex}
.fp-cards--contact .fp-card__icon{width:44px;height:44px;border-radius:12px;margin:0 0 .8rem}
.fp-cards--contact .fp-card__icon svg{width:22px;height:22px}
.fp-cards--contact .fp-card__title{font-size:1.05rem;margin-bottom:.35rem;font-family:var(--sans);font-weight:600;color:var(--ink)}
.fp-cards--contact .fp-card__text{line-height:1.55;font-size:.97em}
.fp-cards--contact .fp-card__text a{white-space:nowrap;word-break:normal;overflow-wrap:normal}
.fp-cards--contact .fp-card__text strong{font-weight:600;color:var(--ink)}

/* ---------- Preise (rsce_fp_prices) ---------- */
.fp-prices{display:grid;gap:clamp(18px,2.6vw,30px);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));margin:0 0 2.2rem}
.fp-price{position:relative;background:var(--cream);border-radius:var(--radius);padding:clamp(24px,3vw,38px);border:1px solid var(--line)}
.fp-price--highlight{background:#fff;border:2px solid var(--wine);box-shadow:var(--shadow)}
.fp-price__badge{position:absolute;top:-13px;left:24px;background:var(--wine);color:#fff;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .8rem;border-radius:999px}
.fp-price__title{font-size:1.6rem;margin:0 0 .8rem}
.fp-price__periods{list-style:none;padding:0;margin:0 0 1.4rem;display:flex;flex-wrap:wrap;gap:.45rem}
.fp-price__periods li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.25rem .8rem;font-size:.9rem;color:var(--muted)}
.fp-price--highlight .fp-price__periods li{background:var(--cream)}
.fp-price__rows{margin:0;padding:0;list-style:none}
.fp-price__rows li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.7rem 0;border-top:1px dashed #d8d1c6}
.fp-price__rows li:first-child{border-top:0}
.fp-price__rows .label{color:var(--muted)}
.fp-price__rows .value{font-family:var(--serif);font-size:1.45rem;color:var(--wine);font-weight:600;white-space:nowrap}
.fp-prices__note{text-align:center;color:var(--muted);font-size:.92rem;margin-top:-1rem}

/* ---------- Tabellen (Core) ---------- */
.ce_table,.content-table{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:separate;border-spacing:0;width:100%;background:#fff;border-radius:var(--radius-s);overflow:hidden;border:1px solid var(--line);font-size:.96rem}
th,td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--line)}
thead th{background:var(--wine);color:#fff;font-weight:600}
tbody tr:nth-child(even) td{background:var(--cream)}
tbody tr:last-child td{border-bottom:0}

/* ---------- Galerie (Core) + Lightbox ---------- */
.ce_gallery>h2,.ce_gallery>h3,.content-gallery>h2,.content-gallery>h3{margin-top:.5rem}
.ce_gallery ul,.content-gallery ul{list-style:none;margin:0;padding:0;display:grid!important;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:12px}
.ce_gallery li,.content-gallery li{margin:0!important;padding:0!important;width:auto!important;float:none!important}
.ce_gallery figure,.content-gallery figure{margin:0;overflow:hidden;border-radius:var(--radius-s);aspect-ratio:4/3;background:var(--line)}
.ce_gallery figure a,.content-gallery figure a{display:block;height:100%;position:relative}
.ce_gallery img,.content-gallery img{width:100%;height:100%;object-fit:cover;border-radius:0;transition:transform .5s ease,filter .3s}
.ce_gallery a:hover img,.content-gallery a:hover img{transform:scale(1.06);filter:brightness(.92)}
.ce_gallery figure a::after,.content-gallery figure a::after{content:"";position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.9) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a2a28' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6'/%3E%3Cpath d='M20 20l-4.3-4.3M11 8.5v5M8.5 11h5'/%3E%3C/svg%3E") center/60% no-repeat;opacity:0;transform:scale(.8);transition:.25s}
.ce_gallery figure a:hover::after,.content-gallery figure a:hover::after{opacity:1;transform:none}
.gallery-section{margin-top:1rem}
.gallery-hint{color:var(--muted);text-align:center;margin-top:-1.2rem}
.credits{font-size:.85rem;color:var(--muted);text-align:right}
.credits a{color:var(--muted)}

.fp-lightbox{position:fixed;inset:0;z-index:1000;background:rgba(20,17,15,.92);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.fp-lightbox.is-open{opacity:1;visibility:visible}
.fp-lightbox img{max-width:min(92vw,1600px);max-height:86vh;width:auto;height:auto;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.fp-lightbox__btn{position:absolute;width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:28px;line-height:52px;text-align:center;text-decoration:none;user-select:none}
.fp-lightbox__btn:hover{background:rgba(255,255,255,.25);color:#fff}
.fp-lightbox__close{top:18px;right:18px}
.fp-lightbox__prev{left:18px;top:50%;margin-top:-26px}
.fp-lightbox__next{right:18px;top:50%;margin-top:-26px}
.fp-lightbox__count{position:absolute;bottom:20px;left:0;right:0;text-align:center;color:rgba(255,255,255,.75);font-size:.9rem}

/* ---------- Formulare ---------- */
form .formbody,form .fields{display:grid;gap:1rem 1.2rem;grid-template-columns:repeat(2,minmax(0,1fr))}
form .widget{margin:0}
form .widget-textarea,form .widget-explanation,form .widget-submit,form .widget-altcha,form .widget-captcha,form .widget-checkbox,form [class*="altcha"],form .submit_container,form fieldset{grid-column:1/-1}
form label{display:block;font-size:.9rem;font-weight:600;color:var(--ink);margin:0 0 .35rem}
form label .mandatory,form span.mandatory{color:var(--wine)}
form input,form select,form textarea{max-width:100%}
form input[type=text],form input[type=email],form input[type=tel],form input[type=date],form input[type=number],form input[type=password],form select,form textarea,form input.text,form select.select,form textarea.textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:#fff;border:1.5px solid #d9d3ca;border-radius:12px;padding:.8rem 1rem;min-height:52px;transition:border-color .2s,box-shadow .2s;appearance:none;-webkit-appearance:none}
form select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236c635d' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;background-size:18px;padding-right:2.6rem}
form textarea{min-height:140px;resize:vertical}
form input:focus,form select:focus,form textarea:focus{outline:0;border-color:var(--wine);box-shadow:0 0 0 4px rgba(122,42,40,.12)}
form input::placeholder,form textarea::placeholder{color:#9b928b}
form .error,form p.error{color:#b42318;font-size:.88rem;margin:.3rem 0 0}
form input.error,form select.error,form textarea.error{border-color:#b42318}
form .widget-explanation,form .explanation{font-size:.88rem;color:var(--muted)}
form .widget-explanation p{margin:0}
form .widget-submit{margin-top:.3rem}
@media (max-width:640px){form .formbody,form .fields{grid-template-columns:1fr}}

/* Formular-Karte (Anfrageseite) */
.form-card{background:var(--cream);border-radius:var(--radius);padding:clamp(22px,4vw,48px);margin-top:2rem}
.form-card>h2,.form-card>h3{text-align:center}

/* Buchungsleiste Startseite */
.booking{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-l);padding:clamp(20px,3vw,32px);margin:0}
.booking>h2,.booking>h3{font-size:1.25rem;margin:0 0 1rem;display:flex;align-items:center;gap:.6rem}
.booking form .formbody,.booking form .fields{grid-template-columns:repeat(5,minmax(0,1fr)) auto;align-items:end;gap:.9rem}
.booking form .widget-explanation{grid-column:1/-1;order:99;margin-top:-.2rem}
.booking form .widget-submit{grid-column:auto;margin:0}
.booking form [class*="altcha"],.booking form .widget-altcha{grid-column:1/-1;order:98}
.booking form label{font-size:.82rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
.booking form .widget-submit button,.booking form .widget-submit input{min-height:52px;white-space:nowrap}
@media (max-width:1100px){.booking form .formbody,.booking form .fields{grid-template-columns:repeat(3,minmax(0,1fr))}.booking form .widget-submit{grid-column:1/-1}.booking form .widget-submit button,.booking form .widget-submit input{width:100%}}
@media (max-width:640px){.booking form .formbody,.booking form .fields{grid-template-columns:minmax(0,1fr)}}

/* ---------- CTA-Band (rsce_fp_cta) ---------- */
.fp-cta{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--wine);color:#fff;padding:clamp(32px,5vw,64px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem 2.5rem;box-shadow:var(--shadow-l)}
.fp-cta::before{content:"";position:absolute;right:-60px;bottom:-110px;width:420px;height:260px;opacity:.12;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 200'%3E%3Cpath fill='%23fff' d='M0 200L90 80l40 45 70-105 70 95 35-35 95 120z'/%3E%3C/svg%3E") center/contain no-repeat}
.fp-cta__title{color:#fff;margin:0 0 .3rem;font-size:clamp(1.5rem,1.1rem + 1.4vw,2.2rem)}
.fp-cta__text{margin:0;opacity:.9;max-width:620px}
.fp-cta .btn{background:#fff;color:var(--wine)!important;border-color:#fff;box-shadow:none;position:relative}
.fp-cta .btn:hover{background:var(--cream);border-color:var(--cream)}
.fp-cta--light{background:var(--cream);color:var(--ink)}
.fp-cta--light .fp-cta__title{color:var(--ink)}
.fp-cta--light .btn{background:var(--wine);color:#fff!important;border-color:var(--wine)}
.fp-cta--light::before{opacity:.06;filter:invert(1)}

/* ---------- Karte mit Einwilligung (rsce_fp_map) ---------- */
.fp-map{position:relative;border-radius:var(--radius);overflow:hidden;background:linear-gradient(135deg,#e9e4da,#d8d0c3);min-height:420px;box-shadow:var(--shadow)}
.fp-map__consent{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem;gap:.8rem;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23c9bfb0' stroke-width='1'%3E%3Cpath d='M0 30h120M0 90h120M30 0v120M90 0v120'/%3E%3Cpath d='M0 0l120 120' stroke-dasharray='4 6'/%3E%3C/g%3E%3C/svg%3E")}
.fp-map__pin{width:64px;height:64px;border-radius:50%;background:var(--wine);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px rgba(122,42,40,.35)}
.fp-map__pin svg{width:30px;height:30px}
.fp-map__address{font-family:var(--serif);font-size:1.25rem;margin:0}
.fp-map__note{max-width:520px;font-size:.88rem;color:var(--muted);margin:0}
.fp-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.fp-map__links{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:.4rem}
.fp-map-route{text-align:center;margin-top:1rem;font-size:.95rem}

/* ---------- Footer ---------- */
#footer{background:#3a3330;color:#e9e3dc;margin-top:clamp(40px,6vw,80px)}
#footer .inside{max-width:var(--wrap);margin:0 auto;padding:clamp(48px,6vw,80px) var(--gutter) 0}
#footer a{color:#fff;text-decoration:none}
#footer a:hover{text-decoration:underline}
.footer-grid{display:grid;gap:2rem 3rem;grid-template-columns:1.2fr 1fr 1fr 1.3fr}
.footer-grid h4{font-family:var(--serif);color:#fff;font-size:1.25rem;margin:0 0 1rem;font-weight:500}
.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.footer-grid p{margin:0 0 .8rem;color:#d8d0c8}
.footer-contact li{display:flex;gap:.6rem;align-items:flex-start}
.footer-list li{position:relative;padding-left:1.1rem}
.footer-list li::before{content:"";position:absolute;left:0;top:.65em;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 1.5rem;border-top:1px solid rgba(255,255,255,.12);margin-top:clamp(36px,5vw,60px);padding:1.4rem 0;font-size:.88rem;color:#bfb5ac}
.footer-links{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem}
.footer-bottom a{color:#e9e3dc}
@media (max-width:980px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column}}

/* Nach-oben-Button */
.to-top{position:fixed;right:18px;bottom:18px;z-index:60;width:48px;height:48px;border-radius:50%;background:var(--wine);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(10px);transition:.25s;text-decoration:none}
.to-top.is-visible{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--wine-dark);color:#fff}
.to-top svg{width:22px;height:22px}

/* Einblend-Animation */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s ease}
.reveal.is-in{opacity:1;transform:none}

/* Druck */
@media print{#topbar,#header nav,.nav-toggle,.hero__dots,.to-top,#footer .footer-links{display:none!important}#header{position:static;box-shadow:none}.hero{height:240px}.page-sub #main .inside{margin-top:0}}
