/* ============================================================
   Villa Lapland — Brand-Restyle über Helix "Infinity" (preset1)
   Lädt zuletzt → überschreibt preset1.css. Reversibel (Datei löschen).
   Palette: Pine #284231 · Aurora #1FA97F/#2FCB9B · Snow #F6F5F1 · Night #0C1518
   ============================================================ */
/* Selbst gehostete Schriften (Fraunces + Inter, SIL Open Font License), kein Google-Server mehr. Pfad relativ zu templates/<infinity|infinity_de>/css/ */
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 500;font-display:swap;src:url('../../infinity/villa/fonts/fraunces-italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Fraunces';font-style:italic;font-weight:300 500;font-display:swap;src:url('../../infinity/villa/fonts/fraunces-italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 600;font-display:swap;src:url('../../infinity/villa/fonts/fraunces-normal-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 600;font-display:swap;src:url('../../infinity/villa/fonts/fraunces-normal-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:300 600;font-display:swap;src:url('../../infinity/villa/fonts/inter-normal-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:300 600;font-display:swap;src:url('../../infinity/villa/fonts/inter-normal-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

:root{
  --vl-pine:#284231; --vl-pine2:#33543d; --vl-aurora:#1FA97F; --vl-aurora2:#2FCB9B;
  --vl-snow:#F6F5F1; --vl-ink:#14181A; --vl-soft:#4C5257; --vl-night:#0C1518;
  --vl-line:#E1DED5; --vl-gold:#B08A33;
}

/* — Typografie — */
body, .sp-megamenu-parent>li>a, input, select, textarea, .form-control, .btn, .sppb-btn{
  font-family:'Inter',system-ui,-apple-system,sans-serif !important;
}
h1,h2,h3,h4,.logo h1,.article-header h1,.article-header h2,.page-header h1,
.sp-page-title,.sppb-addon-title,.sp-module-title,.single_room_type_view h3{
  font-family:'Fraunces',Georgia,serif !important; font-weight:300 !important; letter-spacing:-.01em;
}

/* — Basis-Farben — */
body{ background-color:var(--vl-snow) !important; color:var(--vl-soft); }
a{ color:var(--vl-pine); }
a:hover,a:focus,a:active{ color:var(--vl-aurora); }

/* Überschriften dunkel (statt Gold) */
.article-details .article-header h1,.article-details .article-header h2,.contact-category h2,
.page-header h1,.single_room_type_view h3,.article-list .article .article-header h1 a,
.article-list .article .article-header h2 a,.sp-module-title{ color:var(--vl-ink) !important; }

/* — Header — */
#sp-header{ background:#fff !important; border-bottom:1px solid var(--vl-line); }
.logo h1{ color:var(--vl-ink) !important; }
.logo span,.logo-bottom span{ color:var(--vl-aurora) !important; }

/* — Hauptmenü — */
.sp-megamenu-parent>li>a{ color:var(--vl-ink); font-weight:500; }
.sp-megamenu-parent>li:hover>a,.sp-megamenu-parent>li.active>a,
.sp-megamenu-parent>li.active:hover>a{ color:var(--vl-aurora); }
.sp-megamenu-parent .sp-dropdown li.sp-menu-item.active>a{ color:var(--vl-aurora); }

/* — Buttons: Aurora-CTA, Pill — */
.btn-primary,.sppb-btn-primary,.single_room_type_view .btn-secondary,.reservation_asset_item .btn-secondary,
.search .btn-toolbar button{
  background-color:var(--vl-aurora) !important; border-color:var(--vl-aurora) !important; color:#fff !important;
  border-radius:999px !important; font-weight:600; letter-spacing:.02em;
}
.btn-primary:hover,.btn-primary:focus,.sppb-btn-primary:hover,
.single_room_type_view .btn-secondary:hover,.reservation_asset_item .btn-secondary:hover{
  background-color:var(--vl-pine) !important; border-color:var(--vl-pine) !important; color:#fff !important;
}

/* — Seitentitel-Band — */
.sp-page-title,.block-color{ background:var(--vl-pine) !important; }
.sp-reading-progress-bar{ background-color:var(--vl-aurora) !important; }

/* — Footer / Bottom / Bars — */
#sp-footer,#sp-bottom,#sp-footer-wrapper,#sp-footer-wrapper:before,.block-bottom,
#sp-top-bar,#sp-toolbar,#sp-toolbar:before{ background-color:var(--vl-night) !important; }
#sp-footer a:hover,#sp-bottom a:hover,#sp-bottom-wrapper a:hover,#sp-bottom-menu .sp-module ul>li>a:hover,
#sp-toolbar a:hover,#sp-toolbar i{ color:var(--vl-aurora) !important; }
#sp-bottom-wrapper .sp-module-title{ color:var(--vl-aurora) !important; }

/* — Solidres-Akzente: Gold→Aurora, Navy→Pine — */
.experience-price,.roomtype_mintariff,.asset-detail i,#about-us i,.sr-apartment-detail .fa,
.solidres-module-checkavailability h4,.room_num_row .room_num_label,.roomtype_name,
.sr-list-icon svg[class^="sr-icon-"],#contact-details i{ color:var(--vl-aurora) !important; }
span.roomtype_mintariff,.badge.bg-primary,.wizard-default,.feedback_icon,
.solidres-module-roomtype-item.carousel-type:hover .roomtype-desc{ background-color:var(--vl-aurora) !important; }
.experience-detail,.circle-type .roomtype-desc,.block-feedbacks,
.reservation_asset_style .tariff-value{ background-color:var(--vl-pine) !important; }
.min_tariff,.normal_tariff,.roomtype_name,.availability-calendar table tr th{ color:var(--vl-pine) !important; }

/* — Feinschliff — */
input,select,textarea,.form-control,.datefield{ border-radius:8px !important; }
.breadcrumb,.breadcrumb>li{ border-bottom-color:var(--vl-gold) !important; }
.sp-scroll-up:hover,.sp-scroll-up:active,.sp-scroll-up:focus{ color:var(--vl-aurora) !important; }

/* — Scroll-Reveal — */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1); }
.reveal-in{ opacity:1 !important; transform:none !important; }

/* — Aurora-Footer (per custom.js injiziert) — */
#sp-footer-wrapper.villa-footer{ position:relative; overflow:hidden; background:var(--vl-night) !important; }
.villa-footer-bg{ position:absolute; inset:0; z-index:0; }
.villa-fbg-poster,.villa-fbg-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.villa-fbg-video{ opacity:0; transition:opacity 1.2s ease; }
.villa-fbg-overlay{ position:absolute; inset:0; background:linear-gradient(to bottom,rgba(12,21,24,.72),rgba(12,21,24,.5) 45%,rgba(12,21,24,.92)); }
#sp-footer-wrapper.villa-footer > *:not(.villa-footer-bg){ position:relative; z-index:1; }
.villa-footer-cta{ text-align:center; max-width:840px; margin:0 auto; padding:76px 20px 34px; color:var(--vl-snow); }
.villa-kicker{ font-family:'Inter'; font-size:.72rem; letter-spacing:.28em; text-transform:uppercase; color:var(--vl-aurora2); }
.villa-cta-head{ font-family:'Fraunces' !important; font-weight:300 !important; font-size:clamp(2rem,5vw,3.4rem); color:#fff !important; margin:.35em 0 0; line-height:1.05; }
.villa-cta-sub{ color:rgba(246,245,241,.82); max-width:34em; margin:1.1em auto 0; font-size:1.02rem; line-height:1.6; }
.villa-cta-btn{ display:inline-block; margin-top:1.8em; background:var(--vl-aurora); color:var(--vl-night) !important; font-weight:600; padding:14px 34px; border-radius:999px; text-decoration:none; box-shadow:0 12px 40px -10px rgba(47,203,155,.6); }
.villa-cta-btn:hover{ background:var(--vl-aurora2); color:var(--vl-night) !important; }
.villa-live{ display:inline-flex; align-items:center; gap:10px; margin-top:2em; padding:8px 18px; border:1px solid rgba(246,245,241,.18); border-radius:999px; font-size:.9rem; color:rgba(246,245,241,.85); }
.villa-live-dot{ width:8px; height:8px; border-radius:50%; background:var(--vl-aurora); animation:villaPulse 2.2s infinite; }
.villa-live-sep{ opacity:.4; } .villa-clock{ font-variant-numeric:tabular-nums; color:#fff; }
@keyframes villaPulse{ 0%{box-shadow:0 0 0 0 rgba(47,203,155,.5);}70%{box-shadow:0 0 0 8px rgba(47,203,155,0);}100%{box-shadow:0 0 0 0 rgba(47,203,155,0);} }
@media (prefers-reduced-motion:reduce){ .reveal{opacity:1 !important;transform:none !important;} .villa-live-dot{animation:none;} }

/* ====== Homepage 1:1 (per custom.js injiziert; Default-Content ausgeblendet) ====== */
body.villa-home-active #sp-main-body,body.villa-home-active #sp-page-title{ display:none !important; }
.villa-home{ width:100%; }
.villa-home img{ display:block; }
.vh-hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end; overflow:hidden; background:var(--vl-night); }
.vh-hero-poster,.vh-hero-video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vh-hero-video{ opacity:0; transition:opacity 1.5s ease; }
.vh-hero-ov{ position:absolute; inset:0; background:linear-gradient(to top,rgba(12,21,24,.92),rgba(12,21,24,.18) 45%,rgba(12,21,24,.5)); }
.vh-hero-inner{ position:relative; z-index:2; max-width:1120px; margin:0 auto; width:100%; padding:0 24px 96px; color:var(--vl-snow); }
.vh-kicker{ font-family:'Inter'; font-size:.72rem; letter-spacing:.28em; text-transform:uppercase; color:var(--vl-aurora2); margin:0; }
.vh-h1{ font-family:'Fraunces' !important; font-weight:300 !important; font-size:clamp(2.4rem,6vw,4.6rem); line-height:1.03; margin:.28em 0 0; color:#fff !important; text-shadow:0 2px 40px rgba(0,0,0,.4); max-width:15em; }
.vh-sub{ max-width:30em; margin:1.1em 0 0; font-size:1.08rem; line-height:1.6; color:rgba(246,245,241,.88); }
.vh-cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:1.8em; }
.vh-ghost{ display:inline-block; padding:14px 28px; border-radius:999px; border:1px solid rgba(246,245,241,.4); color:var(--vl-snow) !important; text-decoration:none; font-weight:500; }
.vh-ghost:hover{ background:rgba(246,245,241,.1); }
.vh-ghost-dark{ border-color:var(--vl-line); color:var(--vl-ink) !important; }
.vh-ghost-dark:hover{ background:var(--vl-snow); }
.vh-trust{ list-style:none; display:flex; flex-wrap:wrap; gap:8px 22px; margin:2.4em 0 0; padding:0; font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; color:rgba(246,245,241,.72); }
.vh-trust li{ display:flex; align-items:center; gap:8px; }
.vh-trust li:before{ content:''; width:5px; height:5px; border-radius:50%; background:var(--vl-aurora); display:inline-block; }
.vh-cue{ position:absolute; left:0; right:0; bottom:22px; z-index:2; display:flex; justify-content:center; }
.vh-cue span{ width:22px; height:34px; border:2px solid rgba(246,245,241,.5); border-radius:12px; position:relative; display:block; }
.vh-cue span:after{ content:''; position:absolute; left:50%; top:8px; width:3px; height:6px; background:rgba(246,245,241,.85); border-radius:2px; transform:translateX(-50%); animation:vhCue 2s infinite; }
@keyframes vhCue{ 0%,100%{opacity:.4;top:8px;} 50%{opacity:1;top:15px;} }
.vh-sec{ padding:88px 0; background:var(--vl-snow); }
.vh-wrap{ max-width:1120px; margin:0 auto; padding:0 24px; }
.vh-k{ font-family:'Inter'; font-size:.72rem; letter-spacing:.28em; text-transform:uppercase; color:#117556; margin:0; }
.vh-k-light{ color:var(--vl-aurora2); }
.vh-h2{ font-family:'Fraunces' !important; font-weight:300 !important; font-size:clamp(1.9rem,4vw,2.9rem); line-height:1.1; margin:.3em 0 0; color:var(--vl-ink) !important; }
.vh-h2-light{ color:#fff !important; }
.vh-grid2{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start; }
.vh-body p{ color:var(--vl-soft); font-size:1.05rem; line-height:1.7; margin:0 0 1em; }
.vh-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px; margin-top:56px; border-top:1px solid var(--vl-line); padding-top:40px; }
.vh-stat-v{ display:block; font-family:'Fraunces'; font-size:2.6rem; color:var(--vl-pine2); line-height:1; }
.vh-stat-l{ display:block; margin-top:8px; font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; color:#5D6468; }
.vh-villa{ background:#ECEAE3; }
.vh-split{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.vh-split-img img{ width:100%; height:520px; object-fit:cover; border-radius:18px; box-shadow:0 22px 60px -34px rgba(12,21,24,.5); }
.vh-lead{ color:var(--vl-soft); font-size:1.05rem; line-height:1.7; margin:1.2em 0; }
.vh-check{ list-style:none; padding:0; margin:1.4em 0 2em; display:grid; gap:12px; }
.vh-check li{ position:relative; padding-left:28px; color:var(--vl-ink); }
.vh-check li:before{ content:''; position:absolute; left:0; top:6px; width:14px; height:14px; border-radius:50%; border:2px solid var(--vl-aurora); }
.villa-cta-btn.vh-dark{ background:var(--vl-pine); color:#fff !important; box-shadow:none; }
.villa-cta-btn.vh-dark:hover{ background:var(--vl-pine2); }
.vh-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:48px; }
.vh-card{ background:#fff; border-radius:18px; overflow:hidden; box-shadow:0 22px 60px -40px rgba(12,21,24,.5); }
.vh-card-img{ aspect-ratio:4/5; overflow:hidden; }
.vh-card-img img{ width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.vh-card:hover .vh-card-img img{ transform:scale(1.05); }
.vh-card-b{ padding:26px; }
.vh-card-b h3{ font-family:'Fraunces' !important; font-weight:400 !important; font-size:1.3rem; color:var(--vl-ink); margin:0; }
.vh-card-b p{ margin:.6em 0 0; color:var(--vl-soft); font-size:.95rem; line-height:1.6; }
.vh-quote{ position:relative; min-height:52vh; display:flex; align-items:center; overflow:hidden; }
.vh-quote>img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vh-quote-ov{ position:absolute; inset:0; background:rgba(12,21,24,.5); }
.vh-quote blockquote{ position:relative; z-index:1; font-family:'Fraunces'; font-weight:300; font-size:clamp(1.6rem,3.5vw,2.8rem); color:#fff; line-height:1.25; max-width:20em; }
.vh-seasons{ background:var(--vl-night); }
.vh-seas{ display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:44px; }
.vh-seas-card{ background:#121e22; border-radius:18px; overflow:hidden; }
.vh-seas-card img{ width:100%; height:240px; object-fit:cover; }
.vh-seas-card>div{ padding:28px; }
.vh-seas-card h3{ font-family:'Fraunces' !important; font-weight:400 !important; color:#fff; font-size:1.5rem; margin:0; }
.vh-seas-card p{ color:rgba(246,245,241,.7); margin:.7em 0 0; line-height:1.6; }
.vh-final{ background:var(--vl-pine); color:var(--vl-snow); text-align:center; padding:80px 0; }
.vh-final-sub{ color:rgba(246,245,241,.8); max-width:34em; margin:1em auto 0; }
.vh-final .vh-cta{ justify-content:center; margin-top:1.8em; }
@media(max-width:860px){ .vh-grid2,.vh-split,.vh-seas{ grid-template-columns:1fr; gap:28px; } .vh-cards{ grid-template-columns:1fr; } .vh-stats{ grid-template-columns:1fr 1fr; } .vh-split-img img{ height:320px; } }
/* Homepage: Breadcrumb-Band ausblenden (1:1 mit Astro, Hero direkt unter Header) */
body.villa-home-active #sp-breadcrumb-navigation{ display:none !important; }

/* ===== Full-bleed: weißen Rahmen/Schatten entfernen ===== */
html,body.site{ margin:0 !important; }
html,body.site,body.site.helix-ultimate,body.hu{ padding:0 !important; margin:0 !important; }
.body-innerwrapper{ max-width:none !important; width:100% !important; margin:0 !important; box-shadow:none !important; }
.body-wrapper{ box-shadow:none !important; }

/* ===== Text-Wordmark statt Bild-Logo (wie Astro) ===== */
.logo a[data-vwm] .logo-image,.logo a[data-vwm] .logo-image-phone{ display:none !important; }
.villa-wordmark{ font-family:'Fraunces',serif; font-weight:400; font-size:1.3rem; letter-spacing:.01em; color:var(--vl-ink); white-space:nowrap; }

/* ===== Transparente Nav über dem Hero (nur Homepage), weiß beim Scrollen ===== */
body.villa-home-active #sp-header{ position:fixed !important; top:0; left:0; right:0; width:100%; background:transparent !important; box-shadow:none !important; z-index:120; transition:background .35s ease, box-shadow .35s ease; }
body.villa-home-active #sp-header:before{ content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(12,21,24,.5),transparent); z-index:-1; pointer-events:none; transition:opacity .35s ease; }
body.villa-home-active #sp-header .villa-wordmark{ color:#fff; }
body.villa-home-active #sp-header .sp-megamenu-parent>li>a{ color:#fff !important; }
body.villa-home-active #sp-header .sp-megamenu-parent>li:hover>a,body.villa-home-active #sp-header .sp-megamenu-parent>li.active>a{ color:var(--vl-aurora2) !important; }
body.villa-home-active #sp-header #offcanvas-toggler>.fa,body.villa-home-active #sp-header .burger-icon>span{ color:#fff !important; background-color:#fff !important; }
body.villa-home-active.villa-scrolled #sp-header{ background:#fff !important; box-shadow:0 2px 22px -10px rgba(0,0,0,.2); }
body.villa-home-active.villa-scrolled #sp-header:before{ opacity:0; }
body.villa-home-active.villa-scrolled #sp-header .villa-wordmark{ color:var(--vl-ink); }
body.villa-home-active.villa-scrolled #sp-header .sp-megamenu-parent>li>a{ color:var(--vl-ink) !important; }
body.villa-home-active.villa-scrolled #sp-header .sp-megamenu-parent>li:hover>a,body.villa-home-active.villa-scrolled #sp-header .sp-megamenu-parent>li.active>a{ color:var(--vl-aurora) !important; }

/* ===== Footer link-columns + bottom bar (1:1 mit Astro) ===== */
.villa-foot-cols{ max-width:1120px; margin:0 auto; padding:8px 24px 40px; display:grid; grid-template-columns:2fr 1fr 1fr; gap:40px; color:var(--vl-snow); border-top:1px solid rgba(246,245,241,.12); }
.villa-foot-cols .vf-word{ font-family:'Fraunces'; font-size:1.5rem; color:#fff; margin:0; }
.villa-foot-cols .vf-addr{ color:rgba(246,245,241,.7); font-size:.9rem; margin:.8em 0 0; max-width:24em; }
.villa-foot-cols .vf-tel{ display:inline-block; margin-top:.8em; color:var(--vl-aurora2); text-decoration:none; font-size:.92rem; }
.villa-foot-cols .vf-col .villa-kicker{ margin-bottom:1em; }
.villa-foot-cols .vf-col ul{ list-style:none; padding:0; margin:0; display:grid; gap:.6em; }
.villa-foot-cols .vf-col a{ color:rgba(246,245,241,.8); text-decoration:none; font-size:.92rem; }
.villa-foot-cols .vf-col a:hover{ color:#fff; }
.villa-foot-bar{ max-width:1120px; margin:0 auto; padding:20px 24px 34px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; border-top:1px solid rgba(246,245,241,.12); font-size:.78rem; color:rgba(246,245,241,.55); }
.villa-foot-bar .vf-links{ display:flex; gap:18px; align-items:center; }
.villa-foot-bar .vf-links a{ color:rgba(246,245,241,.65); text-decoration:none; }
.villa-foot-bar .vf-links a:hover{ color:#fff; }
.villa-foot-bar .vf-lang{ display:flex; gap:10px; }
.villa-foot-bar .vf-lang a{ font-weight:600; }
@media(max-width:760px){ .villa-foot-cols{ grid-template-columns:1fr; gap:24px; } .villa-foot-bar{ flex-direction:column; } }

/* Logo: echtes Bild-Logo anzeigen (nicht Wordmark). Auf transparentem Hero lesbar halten. */
.villa-wordmark{ display:none !important; }
#sp-header .logo img{ max-height:52px; width:auto; }

/* ===== Menü-Feinschliff + Header-Border-Fix ===== */
/* 1px-Trennstriche ("|") zwischen Menüpunkten entfernen */
.sp-megamenu-parent>li>a:before{ content:none !important; display:none !important; }
.sp-megamenu-parent>li:not(.sp-has-child)>a:after{ content:none !important; display:none !important; }
/* Menü-Typografie + Abstände */
.sp-megamenu-parent>li{ margin:0 3px; }
.sp-megamenu-parent>li>a{ font-weight:500; letter-spacing:.015em; padding:0 12px; transition:color .2s ease; }
/* Aktiv-Unterstrich (Aurora) wie Astro */
.sp-megamenu-parent>li>a{ position:relative; }
.sp-megamenu-parent>li.active>a:after,.sp-megamenu-parent>li:hover>a:after{ content:'' !important; display:block !important; position:absolute; left:12px; right:12px; bottom:-4px; height:2px; background:var(--vl-aurora); border-radius:2px; }
.sp-megamenu-parent>li.sp-has-child>a:after{ /* Dropdown-Caret behalten, aber nicht als Unterstrich */ position:static; background:none !important; }

/* Header-Border unterm Menü: auf transparentem Hero weg, beim Scrollen dezent */
body.villa-home-active #sp-header{ border-bottom:0 !important; }
body.villa-home-active.villa-scrolled #sp-header{ border-bottom:1px solid var(--vl-line) !important; }
/* Logo auf transparentem Hero: aktiver Aktiv-Unterstrich in Weiß-Kontext ok */
body.villa-home-active #sp-header .sp-megamenu-parent>li.active>a:after,body.villa-home-active #sp-header .sp-megamenu-parent>li:hover>a:after{ background:var(--vl-aurora2); }

/* ===== Logo: weißes Transparent-PNG über Hero, Original beim Scrollen, größer ===== */
#sp-header .logo img{ max-height:80px; width:auto; }
.villa-logo-white{ display:none; max-height:86px; width:auto; }
body.villa-home-active:not(.villa-scrolled) #sp-header .logo-image,
body.villa-home-active:not(.villa-scrolled) #sp-header .logo-image-phone{ display:none !important; }
body.villa-home-active:not(.villa-scrolled) #sp-header .villa-logo-white{ display:inline-block !important; }

/* ===== Nav-Typografie an Astro angleichen ===== */
.sp-megamenu-wrapper{ align-items:center; }
.sp-megamenu-parent>li>a{ font-family:'Inter',sans-serif !important; font-size:.92rem !important; font-weight:500 !important; text-transform:none !important; letter-spacing:.01em; line-height:1; }
.sp-megamenu-parent>li{ margin:0 2px; }
/* "Jetzt buchen"-Pill rechts (wie Astro) */
.villa-book-pill{ display:inline-flex; align-items:center; margin-left:20px; background:var(--vl-aurora); color:var(--vl-night) !important; font-weight:600; font-size:.85rem; padding:9px 22px; border-radius:999px; text-decoration:none; white-space:nowrap; transition:background .2s ease; }
.villa-book-pill:hover{ background:var(--vl-aurora2); color:var(--vl-night) !important; }

/* ===== Logo größer + Header-Raum auf Homepage ===== */
#sp-header .logo a img,#sp-header .villa-logo-white{ max-height:86px !important; height:auto !important; width:auto !important; }
body.villa-home-active #sp-header{ padding-top:16px !important; padding-bottom:16px !important; }
/* ===== Sprachumschalter (wie Astro "DE ▾") ===== */
.villa-lang{ position:relative; margin-left:20px; display:inline-flex; align-items:center; }
.villa-lang-cur{ cursor:pointer; font-size:.85rem; font-weight:500; letter-spacing:.06em; color:var(--vl-ink); }
.villa-lang-menu{ position:absolute; right:0; top:calc(100% + 10px); background:#fff; border:1px solid var(--vl-line); border-radius:10px; padding:6px; display:none; min-width:72px; box-shadow:0 14px 34px -14px rgba(0,0,0,.35); z-index:130; }
/* transparente Hover-Brücke: schließt die Lücke Trigger↔Dropdown, damit er beim Runterfahren offen bleibt */
.villa-lang::after{ content:''; position:absolute; top:100%; right:0; width:84px; height:13px; display:none; }
.villa-lang:hover::after{ display:block; }
.villa-lang:hover .villa-lang-menu,.villa-lang:focus-within .villa-lang-menu,.villa-lang.villa-lang-open .villa-lang-menu{ display:block; }
.villa-lang-menu a{ display:block; padding:6px 12px; color:var(--vl-ink) !important; text-decoration:none; border-radius:6px; font-size:.85rem; }
.villa-lang-menu a:hover{ background:#ECEAE3; color:var(--vl-aurora) !important; }
body.villa-home-active:not(.villa-scrolled) #sp-header .villa-lang-cur{ color:#fff; }

/* ===== Nav kompakt halten (eine Zeile, kein Umbruch) ===== */
.sp-megamenu-wrapper{ flex-wrap:nowrap !important; }
.sp-megamenu-parent{ flex-wrap:nowrap !important; }
.sp-megamenu-parent>li{ margin:0 !important; }
.sp-megamenu-parent>li>a{ font-size:.85rem !important; padding:0 9px !important; white-space:nowrap; }
.villa-book-pill{ margin-left:14px; padding:8px 18px; font-size:.82rem; }
.villa-lang{ margin-left:14px; }
@media(max-width:1200px){ .sp-megamenu-parent>li>a{ padding:0 7px !important; font-size:.8rem !important; } }

/* Logo-Größe forcieren (Helix-Höhe überschreiben) */
#sp-header .logo,#sp-header .sp-logo,#sp-header .logo a{ height:auto !important; max-height:none !important; overflow:visible !important; display:inline-flex; align-items:center; }
#sp-header .logo a img,#sp-header .villa-logo-white{ height:92px !important; max-height:92px !important; width:auto !important; }

/* Logo-Größe endgültig erzwingen */
#sp-header,#sp-header #sp-logo,#sp-header #sp-logo .sp-column,#sp-header .logo,#sp-header .logo a{ height:auto !important; max-height:none !important; overflow:visible !important; }
body.villa-home-active #sp-header{ min-height:112px !important; }
#sp-header .logo a img,#sp-header .villa-logo-white{ height:88px !important; max-height:88px !important; width:auto !important; }

/* ===== Innenseiten: Hero-Band + transparente Nav + Content-Prose (wie Astro) ===== */
/* transparente Nav auch auf Innenseiten (über dem Hero-Band) */
body.villa-inner-active #sp-breadcrumb-navigation{ display:none !important; }
body.villa-inner-active #sp-header{ position:fixed !important; top:0; left:0; right:0; width:100%; background:transparent !important; box-shadow:none !important; border-bottom:0 !important; z-index:120; transition:background .35s ease; }
body.villa-inner-active #sp-header:before{ content:''; position:absolute; inset:0; background:linear-gradient(to bottom,rgba(12,21,24,.5),transparent); z-index:-1; pointer-events:none; }
body.villa-inner-active:not(.villa-scrolled) #sp-header .sp-megamenu-parent>li>a{ color:#fff !important; }
body.villa-inner-active:not(.villa-scrolled) #sp-header .villa-lang-cur{ color:#fff; }
body.villa-inner-active:not(.villa-scrolled) #sp-header .logo-image,body.villa-inner-active:not(.villa-scrolled) #sp-header .logo-image-phone{ display:none !important; }
body.villa-inner-active:not(.villa-scrolled) #sp-header .villa-logo-white{ display:inline-block !important; }
body.villa-inner-active.villa-scrolled #sp-header{ background:#fff !important; box-shadow:0 2px 22px -10px rgba(0,0,0,.2); border-bottom:1px solid var(--vl-line) !important; }
/* Hero-Band */
.vh-inner-hero{ position:relative; min-height:52vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--vl-night); margin-bottom:0; }
.vh-inner-hero>img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vh-inner-ov{ position:absolute; inset:0; background:linear-gradient(to top,rgba(12,21,24,.9),rgba(12,21,24,.25) 55%,rgba(12,21,24,.55)); }
.vh-inner-inner{ position:relative; z-index:2; max-width:1120px; margin:0 auto; width:100%; padding:0 24px 56px; color:var(--vl-snow); }
.vh-inner-h1{ font-family:'Fraunces' !important; font-weight:300 !important; font-size:clamp(2.2rem,5vw,3.6rem); color:#fff !important; margin:.25em 0 0; line-height:1.05; }
/* Content-Prose */
body.villa-inner-active #sp-main-body{ background:var(--vl-snow); padding-top:0 !important; }
/* Solidres-Buchungs-Sidebar nur auf der Buchungs-Seite; Content-Seiten einspaltig full-width */
body.villa-inner-active:not(.villa-booking-page) #sp-sidebar-b,
body.villa-inner-active:not(.villa-booking-page) #sp-sidebar,
body.villa-inner-active:not(.villa-booking-page) aside[id^="sp-sidebar"]{ display:none !important; }
body.villa-inner-active:not(.villa-booking-page) #sp-component{ flex:0 0 100% !important; max-width:880px !important; width:100% !important; margin-left:auto !important; margin-right:auto !important; padding-left:24px !important; padding-right:24px !important; }
@media(max-width:991px){ body.villa-inner-active:not(.villa-booking-page) #sp-component{ padding-left:16px !important; padding-right:16px !important; } }
body.villa-inner-active .article-details,body.villa-inner-active .item-page,body.villa-inner-active .com-content{ max-width:none; }
body.villa-inner-active #sp-main-body .sp-column>*{ padding-top:20px; }
body.villa-inner-active h2,body.villa-inner-active h3{ font-family:'Fraunces' !important; font-weight:300 !important; color:var(--vl-ink); }

/* ===== Guide-/Kategorie-Index (com-content category list) premium ===== */
body.villa-inner-active .com-content-category__table{ border:0 !important; background:transparent !important; box-shadow:none !important; margin:8px 0 0; }
body.villa-inner-active .com-content-category__table,
body.villa-inner-active .com-content-category__table tbody,
body.villa-inner-active .com-content-category__table tr{ display:block !important; width:100%; }
body.villa-inner-active .com-content-category__table thead,
body.villa-inner-active .com-content-category__table td.list-author,
body.villa-inner-active .com-content-category__table td.list-hits,
body.villa-inner-active .com-content-category__table td.list-date,
body.villa-inner-active .com-content-category__table td.list-category{ display:none !important; }
body.villa-inner-active .com-content-category__table tr{ border:0 !important; background:transparent !important; }
body.villa-inner-active .com-content-category__table td.list-title{ display:block !important; border:0 !important; border-bottom:1px solid var(--vl-line) !important; background:transparent !important; padding:.95rem .2rem !important; }
body.villa-inner-active .com-content-category__table tr:last-child td.list-title{ border-bottom:0 !important; }
/* ID-Boost: Bootstrap table-bordered/table-cell sicher schlagen */
body.villa-inner-active #sp-main-body .com-content-category__table td.list-title{ display:block !important; border-width:0 0 1px 0 !important; border-style:solid !important; border-color:var(--vl-line) !important; }
body.villa-inner-active #sp-main-body .com-content-category__table tr:last-child td.list-title{ border-bottom-width:0 !important; }
/* Bootstrap table-bordered exakt neutralisieren (L/R-Zellborder + Tabellenbox) */
body.villa-inner-active .com-content-category .table-bordered,
body.villa-inner-active .com-content-category .table-bordered > :not(caption) > *,
body.villa-inner-active .com-content-category .table-bordered > :not(caption) > * > *{ border:0 !important; }
body.villa-inner-active .com-content-category .table-striped > tbody > tr > *{ background:transparent !important; box-shadow:none !important; }
body.villa-inner-active .com-content-category__table td.list-title a{ font-family:'Fraunces' !important; font-weight:300; font-size:1.35rem; color:var(--vl-ink) !important; text-decoration:none; display:inline-flex; align-items:center; gap:.5rem; }
body.villa-inner-active .com-content-category__table td.list-title a:before{ content:'→'; color:var(--vl-aurora); font-size:1rem; opacity:0; transform:translateX(-6px); transition:.25s ease; }
body.villa-inner-active .com-content-category__table td.list-title a:hover{ color:var(--vl-aurora) !important; }
body.villa-inner-active .com-content-category__table td.list-title a:hover:before{ opacity:1; transform:translateX(0); }
/* Pagination-/Anzeige-Selektor (Joomla list-limit) ausblenden */
body.villa-inner-active .com-content-category__pagination,
body.villa-inner-active .com-content-category .counter,
body.villa-inner-active #adminForm .filter-search,
body.villa-inner-active #adminForm .list-limit{ display:none !important; }
/* Unterkategorien (div.com-content-category__children > h3.item-title > a) als Verzeichnis-Karten */
body.villa-inner-active .com-content-category__children{ display:block; background:#fff; border:1px solid var(--vl-line); border-radius:14px; padding:18px 22px; margin:0 0 12px; box-shadow:0 14px 34px -30px rgba(12,21,24,.5); transition:.25s ease; }
body.villa-inner-active .com-content-category__children:hover{ border-color:var(--vl-aurora); transform:translateY(-2px); }
body.villa-inner-active .com-content-category__children h3.item-title{ margin:0 !important; padding:0 !important; border:0 !important; }
body.villa-inner-active .com-content-category__children h3.item-title a{ font-family:'Fraunces' !important; font-weight:300; font-size:1.25rem; color:var(--vl-ink) !important; text-decoration:none; }
body.villa-inner-active .com-content-category__children h3.item-title a:hover{ color:var(--vl-aurora) !important; }
body.villa-inner-active .com-content-category__children .category-desc{ margin:8px 0 0; }
body.villa-inner-active .category-desc{ color:var(--vl-ink); font-size:1rem; line-height:1.65; margin:6px 0; opacity:.82; }

/* ===== Villa Raum-für-Raum (buildVilla) ===== */
.vh-hero-sub{ min-height:66vh; }
.vh-villa-stats{ padding:52px 0 0 !important; background:var(--vl-snow); }
.vh-villa-stats .vh-stats{ margin-top:0; border-top:0; padding-top:0; }
.vh-rooms{ padding-top:40px; }
.vh-rooms .vh-room{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; padding:52px 0; border-bottom:1px solid var(--vl-line); }
.vh-rooms .vh-room:last-child{ border-bottom:0; }
.vh-room.flip .vh-room-img{ order:2; }
.vh-room-img{ display:grid; gap:14px; }
.vh-room-img.two{ grid-template-columns:1fr 1fr; }
.vh-room-img img{ width:100%; height:340px; object-fit:cover; border-radius:16px; box-shadow:0 22px 50px -34px rgba(12,21,24,.5); }
.vh-room-img.two img{ height:230px; }
@media(max-width:860px){ .vh-rooms .vh-room{ grid-template-columns:1fr; gap:20px; } .vh-room.flip .vh-room-img{ order:0; } .vh-room-img img{ height:230px; } }

/* ===== Galerie-Masonry (buildGallery) ===== */
.vh-gal-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:12px; margin-bottom:22px; }
.vh-gal-note{ color:#5D6468; font-size:.82rem; max-width:26em; }
.vh-gal-sub{ margin:36px 0 14px; font-size:.8rem; text-transform:uppercase; letter-spacing:.14em; color:#5D6468; }
.vh-masonry-3{ column-count:3; column-gap:14px; }
.vh-masonry-4{ column-count:4; column-gap:10px; }
.vh-masonry .vh-gal-item{ display:block; margin:0 0 14px; break-inside:avoid; overflow:hidden; border-radius:12px; }
.vh-masonry-4 .vh-gal-item{ margin-bottom:10px; border-radius:8px; }
.vh-masonry .vh-gal-item img{ width:100%; display:block; transition:transform .5s ease; }
.vh-masonry .vh-gal-item:hover img{ transform:scale(1.04); }
@media(max-width:860px){ .vh-masonry-3,.vh-masonry-4{ column-count:2; } }

/* Scrolled/weißer Header: weißes Logo ausblenden, nur Original zeigen */
body.villa-home-active.villa-scrolled #sp-header .villa-logo-white,
body.villa-inner-active.villa-scrolled #sp-header .villa-logo-white{ display:none !important; }

/* ===== Menü-Fix: Heading-Items (z.B. „Erlebnisse" = <span>, kein <a>) wie Links stylen ===== */
.sp-megamenu-parent>li>.sp-menu-heading{ font-family:'Inter',sans-serif !important; font-size:.85rem !important; font-weight:500 !important; text-transform:none !important; letter-spacing:.01em !important; line-height:1 !important; padding:0 9px !important; white-space:nowrap; color:var(--vl-ink); cursor:default; display:inline-flex; align-items:center; height:auto !important; margin:0 !important; }
@media(max-width:1200px){ .sp-megamenu-parent>li>.sp-menu-heading{ padding:0 7px !important; font-size:.8rem !important; } }
.sp-megamenu-parent>li:hover>.sp-menu-heading,.sp-megamenu-parent>li.active>.sp-menu-heading{ color:var(--vl-aurora) !important; }
body.villa-home-active #sp-header .sp-megamenu-parent>li>.sp-menu-heading{ color:#fff !important; }
body.villa-home-active.villa-scrolled #sp-header .sp-megamenu-parent>li>.sp-menu-heading{ color:var(--vl-ink) !important; }
body.villa-home-active.villa-scrolled #sp-header .sp-megamenu-parent>li:hover>.sp-menu-heading{ color:var(--vl-aurora) !important; }
body.villa-inner-active:not(.villa-scrolled) #sp-header .sp-megamenu-parent>li>.sp-menu-heading{ color:#fff !important; }

/* ===== Dropdown-Panels on-brand (statt Default-Template) ===== */
.sp-megamenu-parent .sp-dropdown{ background:#fff !important; border:1px solid var(--vl-line) !important; border-radius:14px !important; box-shadow:0 24px 60px -30px rgba(12,21,24,.55) !important; padding:8px !important; margin-top:0 !important; }
.sp-megamenu-parent .sp-dropdown .sp-dropdown-inner{ padding:0 !important; background:transparent !important; box-shadow:none !important; }
.sp-megamenu-parent .sp-dropdown-items{ list-style:none !important; margin:0 !important; padding:0 !important; }
.sp-megamenu-parent .sp-dropdown-items>li{ margin:0 !important; border:0 !important; }
.sp-megamenu-parent .sp-dropdown-items>li>a{ display:block !important; font-family:'Inter',sans-serif !important; font-size:.9rem !important; font-weight:500 !important; color:var(--vl-ink) !important; padding:10px 14px !important; border-radius:9px !important; text-transform:none !important; letter-spacing:0 !important; line-height:1.25 !important; transition:background .18s ease,color .18s ease !important; white-space:nowrap; border:0 !important; }
.sp-megamenu-parent .sp-dropdown-items>li>a:hover,.sp-megamenu-parent .sp-dropdown-items>li>a:focus{ background:var(--vl-snow) !important; color:var(--vl-aurora) !important; }
.sp-megamenu-parent .sp-dropdown-items>li.active>a,.sp-megamenu-parent .sp-dropdown-items>li.current-item>a{ color:var(--vl-aurora) !important; }
.sp-megamenu-parent .sp-dropdown-items>li>a:before,.sp-megamenu-parent .sp-dropdown-items>li>a:after{ display:none !important; content:none !important; }

/* ===== Audit-Fixes (Code-Block 2.7.) ===== */
/* Doppel-Überschrift auf Inner-Content-Seiten: Joomla-Artikeltitel/Seitentitel weg (Hero zeigt Titel). Blog-Teaser-Titel (h2) bleiben. */
body.villa-inner-active .article-header h1,
body.villa-inner-active .item-page > .page-header,
body.villa-inner-active .com-content-article > .page-header{ display:none !important; }
/* Solidres-Rating-Sterne auf Brand-Gold statt Zufalls-Gold */
.rating-wrapper .rating.fa-star,.rating-wrapper .rating{ color:#bdaa59 !important; }
/* Mobile-Hero: stärkerer Scrim + Eyebrow-Abstand + Titel kleiner (Kollision/Kontrast @390px) */
@media(max-width:600px){
  .vh-hero-ov{ background:linear-gradient(to top,rgba(12,21,24,.94),rgba(12,21,24,.52) 55%,rgba(12,21,24,.62)) !important; }
  .vh-hero-inner{ padding-bottom:64px !important; }
  .vh-kicker{ margin-bottom:.7rem !important; line-height:1.3; }
  .vh-h1{ font-size:clamp(2rem,8.5vw,2.9rem) !important; }
  .vh-sub{ color:rgba(246,245,241,.95) !important; }
}
/* Phoca-Galerie: rohe Chrome (Ordering/Pagination/Top-Icons) ausblenden + Thumbs on-brand */
body.villa-inner-active .pg-category-categories-top-box,
body.villa-inner-active .pg-cv > form,
body.villa-inner-active .pg-cv .form-select,
body.villa-inner-active .pg-cv-paginaton,
body.villa-inner-active .pg-cv .pagination,
body.villa-inner-active .pg-cv .pagination-centered,
body.villa-inner-active .pg-top-icons{ display:none !important; }
body.villa-inner-active .pg-item-box{ border-radius:12px !important; overflow:hidden; }
body.villa-inner-active .pg-item-box-image img,body.villa-inner-active .pg-image{ border-radius:12px !important; }

/* ===== Mobile-Offcanvas-Menü (selbst gebaut, da kein Menü-Modul zugewiesen) ===== */
.offcanvas-menu{ background:var(--vl-snow) !important; }
.offcanvas-menu .offcanvas-inner{ padding:26px 30px 46px !important; }
/* Logo im Offcanvas: dunkles Original statt unsichtbarem Weiß-Logo, kein Rahmen */
.offcanvas-menu .villa-logo-white{ display:none !important; }
.offcanvas-menu .logo-image{ display:inline-block !important; }
.offcanvas-menu .logo-image-phone{ display:none !important; }
.offcanvas-menu .logo,.offcanvas-menu .logo a,.offcanvas-menu .sp-logo,.offcanvas-menu .header-modules,.offcanvas-menu img{ border:0 !important; box-shadow:none !important; }
.offcanvas-menu .close-offcanvas{ color:var(--vl-ink) !important; opacity:.7; }
.villa-mnav{ list-style:none; margin:14px 0 0; padding:0; }
.villa-mnav > li{ border-bottom:1px solid var(--vl-line); padding:2px 0; }
.villa-mnav > li:last-child{ border-bottom:0; }
.villa-mnav > li > a,.villa-mnav > li > .mnav-head{ display:block; font-family:'Fraunces' !important; font-weight:300; font-size:1.5rem; line-height:1.15; color:var(--vl-ink) !important; text-decoration:none; padding:15px 0; }
.villa-mnav > li > a:active,.villa-mnav > li > a:hover{ color:var(--vl-aurora) !important; }
.villa-mnav > li.has-sub > .mnav-head{ font-family:'Inter' !important; font-size:.72rem; font-weight:500; text-transform:uppercase; letter-spacing:.16em; color:#5D6468 !important; padding:16px 0 4px; }
.villa-mnav ul{ list-style:none; margin:0 0 12px; padding:0; }
.villa-mnav ul li a{ display:block; font-family:'Inter' !important; font-size:1.08rem; color:var(--vl-ink) !important; text-decoration:none; padding:10px 0 10px 2px; }
.villa-mnav ul li a:active,.villa-mnav ul li a:hover{ color:var(--vl-aurora) !important; }
.villa-mnav-cta{ display:block; margin-top:26px; background:var(--vl-aurora); color:#fff !important; text-align:center; padding:16px; border-radius:999px; font-family:'Inter' !important; font-weight:600; font-size:1rem; text-decoration:none; box-shadow:0 14px 30px -14px rgba(31,169,127,.6); }

/* #7 Guide-Index EN/FI: rohe „Article Count/Artikkeleita"-Badges ausblenden */
body.villa-inner-active .com-content-category .badge,
body.villa-inner-active .com-content-category__children .badge,
body.villa-inner-active .com-content-category .list-count,
body.villa-inner-active .com-content-category__children .item-title .badge{ display:none !important; }

/* ===== Mobile-Header kompakt (Burger · Logo · FI · Varaa in EINER Zeile) ===== */
@media(max-width:991px){
  /* Logo mobil klein (Desktop bleibt groß) */
  #sp-header .logo a img,#sp-header .villa-logo-white,.villa-logo-white{ height:44px !important; max-height:44px !important; width:auto !important; }
  /* Spalten dürfen keine 2. Zeile / Höhe aufbauen */
  #sp-header .sp-column,#sp-header [class*="col-"],#sp-header .sp-megamenu-wrapper{ min-height:0 !important; }
  #sp-header .sp-megamenu-wrapper{ position:static !important; }
  /* FI-Switcher + Buchen-Pill oben rechts fixieren, vertikal mittig */
  #sp-header .villa-lang{ position:absolute !important; top:50% !important; transform:translateY(-50%) !important; right:100px !important; bottom:auto !important; margin:0 !important; z-index:6; }
  #sp-header .villa-book-pill{ position:absolute !important; top:50% !important; transform:translateY(-50%) !important; right:14px !important; bottom:auto !important; margin:0 !important; padding:9px 16px !important; font-size:.82rem !important; z-index:6; }
  /* Header vertikal zentrieren */
  #sp-header .logo,#sp-header .logo a{ display:flex !important; align-items:center !important; }
}

/* ===== Mobil-Feinschliff 5.10.2026 (Villa-Seite, bis 760px): Kopf, Hero, Zahlenleiste, Raum-Abstände, Live-Widget ===== */
@media(max-width:760px){
  /* Hero der Unterseite: Haus im Bild halten statt Mitte */
  .vh-hero-sub .vh-hero-poster{ object-position:40% 50%; }
  /* Zahlenleiste: kompakter */
  .vh-villa-stats{ padding:34px 0 0 !important; }
  .vh-villa-stats .vh-stats{ gap:20px 16px; }
  /* Räume: engere Abstände zwischen Bild und Text und zwischen den Abschnitten */
  .vh-rooms{ padding-top:18px; }
  .vh-rooms .vh-room{ gap:20px; padding:30px 0; }
  .vh-room-img img{ border-radius:14px; }
  /* Live-Widget: eine Zeile, nichts bricht um */
  .villa-live{ gap:8px; padding:8px 14px; font-size:.8rem; max-width:calc(100vw - 32px); }
  .villa-live > *{ white-space:nowrap; }
}

/* Mobil-Kopfzeile kompakt 5.10.2026 (bis 991px): Desktop-min-height 112px zurücksetzen, sonst bleibt nach dem Scrollen ein toter weißer Streifen */
@media(max-width:991px){
  #sp-header,body.villa-home-active #sp-header,body.villa-inner-active #sp-header{ min-height:0 !important; padding-top:6px !important; padding-bottom:6px !important; }
}

/* Mobil/Tablet-Kopf 5.10.2026 (bis 991px, dort sitzen Sprachumschalter und Knopf absolut): Abstand je Sprache + Menü-Knopf nach dem Scrollen sichtbar */
@media(max-width:991px){
  #sp-header .villa-book-pill{ padding:8px 13px !important; font-size:.8rem !important; white-space:nowrap; }
  html[lang^="de"] #sp-header .villa-lang{ right:134px !important; }
  html[lang^="en"] #sp-header .villa-lang{ right:150px !important; }
  html[lang^="fi"] #sp-header .villa-lang{ right:92px !important; }
  body.villa-scrolled #sp-header .burger-icon>span{ background-color:var(--vl-ink) !important; }
}

/* QA-Pass 5.10.2026 (bis 991px): Unterseiten-Menüknopf oben weiß (war dunkelblau auf dunklem Hero), Solidres-Sortierleiste ohne Inhalt ausblenden */
@media(max-width:991px){
  body.villa-inner-active:not(.villa-scrolled) #sp-header .burger-icon>span{ background-color:#fff !important; }
  #exp-sort-container{ display:none !important; }
}

/* ===== Audit-Korrekturen 5.10.2026 ===== */
/* Kontrast: Weißtext auf Solidres-Grün war 2,98:1, jetzt 5,67:1 (#117556); Überschrift-Gold war 2,13:1, jetzt 4,87:1 */
:root{ --vl-btn:#117556; }
.reservation-tab-guestinfo,.reservation-tab-confirmation,.toggle_more_desc,.load-calendar,.toggle-tariffs,.trigger_checkinoutform,
.single_room_type_view .btn-secondary,.reservation_asset_item .btn-secondary,.search .btn-tool{ background-color:var(--vl-btn) !important; border-color:var(--vl-btn) !important; color:#fff !important; }
body.com_solidres #sp-component h1{ color:#7D6A22 !important; }
/* Zielgröße: Sprachlinks im Fuß mindestens 32 x 32 px */
.villa-foot-bar .vf-lang a{ display:inline-flex; align-items:center; justify-content:center; min-width:32px; min-height:32px; padding:4px 6px; }
/* Links im Fließtext nicht nur durch Farbe erkennbar */
body.villa-inner-active #sp-component p a:not(.btn),body.villa-inner-active #sp-component li a:not(.btn),.show_map{ text-decoration:underline; text-underline-offset:2px; }
/* KI-Hinweis */
.vh-ai-note{ margin:0; padding:10px 0; font-size:.85rem; line-height:1.5; color:#5D6468; max-width:46em; }
.vh-sec.vh-ai{ padding:14px 0 0; background:var(--vl-snow); }
#sp-component > .vh-ai-note{ padding:14px 0 6px; }
/* 404-Seite (error.php lädt dieses CSS): dunkel, zentriert, mit Logo */
html.error-page,html.error-page body{ min-height:100vh; margin:0; background:radial-gradient(120% 90% at 50% 0%,#17313a 0%,#0c1518 62%); color:#f6f5f1; }
html.error-page body{ display:flex; align-items:center; justify-content:center; text-align:center; font-family:'Inter',system-ui,sans-serif; }
html.error-page body::before{ content:''; position:fixed; top:28px; left:50%; width:132px; height:64px; transform:translateX(-50%); background:url('../../infinity/villa/logo-white.png') center/contain no-repeat; }
html.error-page .container{ padding:0 24px; }
html.error-page .error-code{ font-family:'Fraunces',Georgia,serif; font-weight:300; font-size:clamp(5rem,22vw,11rem); line-height:1; margin:0; color:#fff; letter-spacing:.02em; }
html.error-page .error-message{ font-family:'Fraunces',Georgia,serif; font-weight:300; font-size:clamp(1.4rem,4vw,2rem); margin:.4em 0 1.6em; color:#f6f5f1; }
html.error-page .btn{ display:inline-block; background:#1fa97f; border:0; color:#0c1518; font-weight:600; padding:14px 30px; border-radius:999px; text-decoration:none; }
html.error-page .btn:hover,html.error-page .btn:focus{ background:#2fcb9b; color:#0c1518; }
/* Nachschlag Audit: Kicker auf hellem Grund 5,2:1, Solidres-Login-Knopf und -Link */
body.com_solidres .btn-primary,.mod-login .btn-primary{ background-color:var(--vl-btn) !important; border-color:var(--vl-btn) !important; color:#fff !important; }
.mod-login__use,.mod-login__use a{ color:#117556 !important; text-decoration:underline; }
/* Nachschlag 2 Audit: Senden-Knopf im Kontaktformular (war Weiß auf Grün 2,98:1) und Zähler-Plaketten im Reiseführer-Index (EN/FI, Mehrzahl-Ansicht) ausblenden wie in DE */
.btn.btn-primary,#contact-submit{ background-color:var(--vl-btn) !important; border-color:var(--vl-btn) !important; color:#fff !important; }
body.villa-inner-active .com-content-categories .badge,body.villa-inner-active .com-content-categories__item .badge{ display:none !important; }

/* ===== UX-Pass 5.10.2026 ===== */
/* 1) Kopfzeile: gescrollt immer schlichtes Weiß ohne grauen Verlauf, Logo ohne weißen Kasten; im Ruhezustand weicherer, farbiger Schleier */
body.villa-scrolled #sp-header:before{ opacity:0 !important; }
body.villa-scrolled #sp-header{ background:#fff !important; border-bottom:1px solid var(--vl-line) !important; box-shadow:0 10px 26px -18px rgba(12,21,24,.30) !important; }
body.villa-scrolled #sp-header .logo-image,body.villa-scrolled #sp-header .logo-image-phone{ mix-blend-mode:multiply; }
#sp-header:before{ inset:0 0 -36px 0 !important; background:linear-gradient(to bottom,rgba(12,21,24,.42),rgba(12,21,24,0)) !important; }
body:not(.villa-scrolled) #sp-header .burger-icon>span{ box-shadow:0 1px 4px rgba(0,0,0,.45); }
body:not(.villa-scrolled) #sp-header .villa-lang-cur{ text-shadow:0 1px 8px rgba(0,0,0,.55); }
body:not(.villa-scrolled) #sp-header .villa-logo-white{ filter:drop-shadow(0 1px 6px rgba(0,0,0,.4)); }
/* Hero-Schleier: Farben der Fotos bleiben lebendig, nur unten kräftig für die Lesbarkeit der Überschrift */
.vh-inner-ov{ background:linear-gradient(to top,rgba(12,21,24,.80) 0%,rgba(12,21,24,.10) 52%,rgba(12,21,24,.14) 100%) !important; }
.vh-hero-ov{ background:linear-gradient(to top,rgba(12,21,24,.88) 0%,rgba(12,21,24,.10) 48%,rgba(12,21,24,.16) 100%) !important; }
.vh-inner-h1,.vh-h1{ text-shadow:0 2px 20px rgba(0,0,0,.45); }

/* 2) Überschriften brechen immer um, lange Wörter werden getrennt (DE/FI), Grid/Flex-Kinder dürfen schrumpfen */
h1,h2,h3,h4,h5,h6,.vh-h1,.vh-h2,.vh-inner-h1,.vh-card-b h3,.sr-experience .item-name{ overflow-wrap:break-word; word-break:normal; -webkit-hyphens:auto; hyphens:auto; text-wrap:balance; min-width:0; max-width:100%; }
.vh-split>*,.vh-grid2>*,.vh-room>*,.vh-room-txt,.vh-card,.vh-card-b,.vh-hero-inner,.vh-inner-inner{ min-width:0; }
.villa-foot-bar span,.villa-foot-cols p{ overflow-wrap:anywhere; }

/* 3) Fußleiste und Live-Widget umbrechen statt über den Rand zu laufen */
.villa-foot-bar{ row-gap:10px; }
.villa-foot-bar .vf-links,.villa-foot-bar .vf-lang{ flex-wrap:wrap; }
.villa-live{ flex-wrap:wrap; justify-content:center; max-width:100%; row-gap:2px; }

/* 4) Kleinteile: Joomla-Passkey-Knopf (Symbol hatte keine Größe), Seitennavigation, Formulare */
.plg_system_webauthn_login_button{ display:flex; align-items:center; justify-content:center; gap:.5em; min-height:44px; background:transparent !important; border:1px solid var(--vl-line) !important; color:var(--vl-ink) !important; border-radius:999px !important; font-weight:500; }
.plg_system_webauthn_login_button svg{ width:1.25em !important; height:1.25em !important; flex:none; fill:currentColor; }
.pagenavigation .pagination{ display:flex; gap:12px; justify-content:space-between; width:100%; flex-wrap:wrap; }
.pagenavigation .btn{ display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:0 20px; background:transparent !important; border:1px solid #cfcbbf !important; border-radius:999px !important; color:var(--vl-ink) !important; font-weight:500; text-transform:none; }
.pagenavigation .btn:hover,.pagenavigation .btn:focus{ border-color:var(--vl-aurora) !important; color:#117556 !important; }
#contact-form{ margin-bottom:44px; }
#contact-form .control-group{ margin-bottom:18px; }
#contact-form label{ display:block; margin-bottom:6px; font-size:.9rem; font-weight:500; color:var(--vl-ink); }
#contact-form .form-control,#contact-form input[type="text"],#contact-form input[type="email"],#contact-form textarea{ min-height:48px; font-size:16px; padding:10px 14px; background:#fff; border:1px solid #cfcbbf; border-radius:12px; }
#contact-form textarea{ min-height:150px; }
#contact-form input[type="checkbox"]{ width:20px; height:20px; }
#contact-submit{ min-height:48px; padding:0 30px; border-radius:999px; font-weight:600; margin-top:6px; }
img[loading="lazy"]{ background-color:#e6e3d9; }
.vh-seasons img[loading="lazy"],.vh-quote img[loading="lazy"],.vh-hero img[loading="lazy"]{ background-color:#16222a; }

/* 5) Erlebnis-Karten (Solidres): Foto, Titel in Satzschreibung, Beschreibung, Preis-Chip in Markenfarbe statt flachem Grau mit ☰ */
.sr-experience .item,#sr-experience .item{ position:relative; display:flex; flex-direction:column; background:#fff !important; border-radius:18px; overflow:hidden; box-shadow:0 22px 60px -40px rgba(12,21,24,.5); margin-bottom:22px; padding:0 !important; }
.sr-experience .item > a:first-child,#sr-experience .item > a:first-child{ order:0; display:block; }
.sr-experience .item-logo,#sr-experience .item-logo{ display:block; width:100%; aspect-ratio:3/2; height:auto; object-fit:cover; }
.sr-experience .item-name,#sr-experience .item-name{ order:1; display:block; padding:18px 20px 0; font-family:'Fraunces',Georgia,serif !important; font-weight:400 !important; font-size:1.3rem !important; line-height:1.2; text-transform:none !important; letter-spacing:0 !important; color:var(--vl-ink) !important; text-decoration:none !important; }
.sr-experience .item-name .fa-bars,#sr-experience .item-name .fa-bars{ display:none; }
.sr-experience .item-desc,#sr-experience .item-desc{ order:2; padding:8px 20px 22px !important; background:transparent !important; font-size:.95rem; line-height:1.55; color:var(--vl-soft) !important; }
.sr-experience .item .base-price,#sr-experience .item .base-price{ position:absolute; top:14px; right:14px; z-index:2; padding:8px 12px !important; border-radius:12px !important; background-color:#284231 !important; background-image:none !important; color:#fff !important; font-weight:600; line-height:1.25; text-align:right; }
.sr-experience .item .base-price .duration,#sr-experience .item .base-price .duration{ margin-top:2px; font-size:.8rem; font-weight:400; opacity:.92; }

/* 6) Handy (bis 760px): Typografie-Skala, Abstände, Karten-Proportionen */
@media(max-width:760px){
  body{ font-size:16px; line-height:1.65; }
  #sp-component h1{ font-size:clamp(1.75rem,7.4vw,2.1rem) !important; line-height:1.15 !important; margin:0 0 .5em; }
  #sp-component h2{ font-size:clamp(1.45rem,6.2vw,1.75rem) !important; line-height:1.2 !important; margin:1.6em 0 .5em; }
  #sp-component h3{ font-size:clamp(1.2rem,5.2vw,1.4rem) !important; line-height:1.25 !important; margin:1.4em 0 .4em; }
  #sp-component h4{ font-size:1.1rem !important; line-height:1.3 !important; }
  .vh-h2{ font-size:clamp(1.6rem,7vw,2rem) !important; }
  .vh-inner-h1{ font-size:clamp(1.9rem,8vw,2.4rem) !important; line-height:1.12 !important; }
  .vh-sec{ padding:56px 0; }
  .vh-inner-hero{ min-height:max(40svh,250px); }
  .vh-inner-inner{ padding-bottom:36px; }
  .vh-hero-sub{ min-height:58svh; }
  .vh-card-img{ aspect-ratio:4/3; }
  .vh-split-img img{ height:260px; }
  .vh-card-b{ padding:22px; }
  .vh-quote{ min-height:42svh; }
  .sr-experience .item-name,#sr-experience .item-name{ font-size:1.2rem !important; }
  .vh-villa-stats .vh-stats,.vh-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .vh-stat-v{ font-size:clamp(1.9rem,9.4vw,2.6rem) !important; }
  .vh-stat-l{ overflow-wrap:anywhere; -webkit-hyphens:auto; hyphens:auto; }
}
/* Tap-Ziele in der Kopfzeile mindestens 44 px */
@media(max-width:991px){
  #sp-header .offcanvas-toggler-left{ min-width:44px; min-height:44px; display:inline-flex; align-items:center; justify-content:center; margin-left:-10px; }
  #sp-header .villa-book-pill{ padding:11px 13px !important; }
  #sp-header .villa-lang-cur{ display:inline-flex; align-items:center; min-height:44px; padding:0 6px; }
}
/* Hero-Inhalt nie unter die feste Kopfzeile (kleine Handys 320 px, Querformat): oben 92 px Platz */
@media(max-width:991px){
  .vh-hero-inner{ padding-top:92px !important; }
  .vh-inner-inner{ padding-top:92px; }
}
@media(max-width:991px) and (orientation:landscape){
  .vh-inner-hero{ min-height:max(56svh,250px); }
  .vh-hero-sub{ min-height:max(70svh,320px); }
}
/* Lesbarkeit der Hero-Texte auf dem Handy: Text nimmt mehr Höhe ein, daher kräftigerer Schleier in der Mitte + weicher Schatten */
@media(max-width:760px){
  .vh-hero-ov{ background:linear-gradient(to top,rgba(12,21,24,.92) 0%,rgba(12,21,24,.62) 46%,rgba(12,21,24,.22) 76%,rgba(12,21,24,.20) 100%) !important; }
  .vh-sub,.vh-kicker,.vh-hero-inner li,.vh-hero-inner .vh-badges span{ text-shadow:0 1px 12px rgba(0,0,0,.5); }
}
/* Knopfpaare (Hero, „Finde deine Termine"): gleiche Höhe, gleiche Grundlinie. Vorher hatte nur der erste Knopf einen oberen Rand und der zweite wurde gestreckt. */
.vh-cta{ align-items:center; }
.vh-cta .villa-cta-btn{ margin-top:0; }
.vh-cta .villa-cta-btn,.vh-cta .vh-ghost{ display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding-top:0; padding-bottom:0; text-align:center; }
/* Blog: Liste „weitere Artikel" als große, gut treffbare Zeilen */
.com-content-blog__link{ border-bottom:1px solid var(--vl-line); }
.com-content-blog__link a{ display:block; padding:12px 0; min-height:44px; line-height:1.4; }

/* ===== Burger rechts 6.10.2026: Logo links, Menü-Knopf ganz rechts außen (bis 991px), Menü fährt von rechts ein ===== */
@media(max-width:991px){
  #sp-header .offcanvas-toggler-left,#sp-header .offcanvas-toggler-right{ position:absolute !important; right:6px !important; left:auto !important; top:50% !important; transform:translateY(-50%) !important; margin:0 !important; z-index:6; }
  #sp-header .villa-book-pill{ right:58px !important; }
  html[lang^="de"] #sp-header .villa-lang{ right:178px !important; }
  html[lang^="en"] #sp-header .villa-lang{ right:194px !important; }
  html[lang^="fi"] #sp-header .villa-lang{ right:136px !important; }
  .offcanvas-menu{ left:auto !important; right:-340px !important; width:300px; max-width:88vw; box-shadow:-24px 0 48px -28px rgba(12,21,24,.45); }
  body.offcanvas-active .offcanvas-menu{ right:0 !important; left:auto !important; }
}
.offcanvas-menu .logo-image,.offcanvas-menu .logo-image-phone{ mix-blend-mode:multiply; }
.villa-mnav-cta{ background:var(--vl-btn) !important; color:#fff !important; }

/* ===== Hauptmenü-Dropdown: EIN Zustand für Hover und Tastaturfokus, passende Breite (19.10.2026) =====
   Ursache des Fehlers: template.css setzt li:hover>a auf Weiß (!important), preset1.css färbt den ganzen li dunkelblau,
   und der li hat 20px Innenabstand. Dadurch lag die cremefarbene Fläche des Links in einem dunkelblauen Balken, Weiß auf Creme.
   Hier: li ohne Hintergrund und ohne seitlichen Innenabstand, der Link ist die einzige Fläche (Creme, abgerundet), Text #117556 auf #F6F5F1 = 5,2:1. */
.sp-megamenu-parent .sp-dropdown .sp-dropdown-items>li.sp-menu-item,
.sp-megamenu-parent .sp-dropdown .sp-dropdown-items>li.sp-menu-item:hover,
.sp-megamenu-parent .sp-dropdown .sp-dropdown-items>li.sp-menu-item:focus-within{ background:transparent !important; background-color:transparent !important; padding:3px 0 !important; }
.sp-megamenu-parent .sp-dropdown .sp-dropdown-items>li.sp-menu-item>a:hover,
.sp-megamenu-parent .sp-dropdown .sp-dropdown-items>li.sp-menu-item>a:focus,
.sp-megamenu-parent .sp-dropdown .sp-dropdown-items>li.sp-menu-item>a:focus-visible,
.sp-megamenu-parent .sp-dropdown .sp-dropdown-items>li.sp-menu-item:hover>a{ background:var(--vl-snow) !important; background-color:var(--vl-snow) !important; color:var(--vl-btn) !important; outline:0 !important; box-shadow:none !important; }
/* Breite: richtet sich nach dem längsten Eintrag, Zeilenumbruch erst über der Höchstbreite */
.sp-megamenu-parent .sp-dropdown.sp-dropdown-main{ width:max-content !important; min-width:240px !important; max-width:min(360px, calc(100vw - 32px)) !important; box-sizing:border-box; }
.sp-megamenu-parent .sp-dropdown .sp-dropdown-items>li.sp-menu-item>a{ white-space:normal !important; overflow-wrap:break-word; }
/* Dropdown per Tastatur öffnen (Helix öffnet nur bei :hover): gleiche Anzeige bei Fokus innerhalb des Menüpunkts */
.sp-megamenu-parent .sp-has-child:focus-within>.sp-dropdown{ display:block; }

/* ===== Hauptmenü bei 992–1199 px: eine Zeile (19.10.2026) =====
   Ursache: Helix zeigt .sp-megamenu-parent als inline-block, flex-wrap greift dort nicht. In Deutsch brach „Blog" bei 992–1100 px
   in eine zweite Zeile, im Sprachumschalter rutschte das ▾ unter „DE" (Finnisch 992–1024, Englisch 992). Hier: kein Umbruch, kleinere Schrift und Abstände. */
@media (min-width:992px) and (max-width:1199px){
  .sp-megamenu-parent{ white-space:nowrap; }
  .sp-megamenu-parent>li>a,.sp-megamenu-parent>li>.sp-menu-heading{ padding:0 5px !important; font-size:.76rem !important; }
  .villa-book-pill{ margin-left:8px !important; padding:7px 12px !important; font-size:.76rem !important; white-space:nowrap; }
  .villa-lang{ margin-left:8px !important; white-space:nowrap; }
  .villa-lang-cur{ white-space:nowrap; }
}

/* ===== Dropdown: aktiver Eintrag (aktuelle Seite) lesbar (19.10.2026) =====
   --vl-aurora (#1FA97F) auf Weiß = 2,98:1, unter WCAG AA. --vl-btn (#117556) = 5,67:1 auf Weiß, 5,2:1 auf Creme. */
.sp-megamenu-parent .sp-dropdown .sp-dropdown-items>li.sp-menu-item.active>a,
.sp-megamenu-parent .sp-dropdown .sp-dropdown-items>li.sp-menu-item.current-item>a{ color:var(--vl-btn) !important; }

/* ===== Kopfzeile gescrollt (weißer Grund): aktiver Punkt und Hover lesbar (19.10.2026) =====
   --vl-aurora (#1FA97F) auf Weiß = 2,98:1, unter WCAG AA. --vl-btn (#117556) = 5,67:1. Gilt nur für die gescrollte, weiße Kopfzeile;
   über dem Foto (nicht gescrollt) bleibt es hell. Gleiche Spezifität wie die Startseiten-Regeln weiter oben, steht danach. */
body:is(.villa-home-active,.villa-inner-active).villa-scrolled #sp-header .sp-megamenu-parent>li:hover>a,
body:is(.villa-home-active,.villa-inner-active).villa-scrolled #sp-header .sp-megamenu-parent>li.active>a,
body:is(.villa-home-active,.villa-inner-active).villa-scrolled #sp-header .sp-megamenu-parent>li:hover>.sp-menu-heading,
body:is(.villa-home-active,.villa-inner-active).villa-scrolled #sp-header .sp-megamenu-parent>li.active>.sp-menu-heading{ color:var(--vl-btn) !important; }
/* Sprachumschalter-Liste: Hover (Schrift auf #ECEAE3) */
.villa-lang-menu a:hover{ color:var(--vl-btn) !important; }

/* ===== Schriften ohne Google (19.10.2026) =====
   Helix lädt keine Google-Schriften mehr (Stile 12, 15, 16, 17, 18 auf Systemschriften, @import in template.css entfernt).
   Zwei Reste nannten noch Open Sans bzw. Playfair Display und fielen auf die Standardschrift zurück: das jQuery-UI-Datumsfeld der Buchung und der Preis. */
.ui-datepicker,.ui-datepicker *,.ui-widget{ font-family:'Inter',system-ui,-apple-system,sans-serif !important; }
.min_tariff{ font-family:'Fraunces',Georgia,serif !important; }
/* Mobiles Menü (Offcanvas): serifenlose Reste der Helix-Navigationsschrift (Playfair) durch Fraunces ersetzen, Knopf bleibt Inter */
.offcanvas-menu .menu a,.offcanvas-menu .menu span:not(.menu-separator){ font-family:'Fraunces',Georgia,serif !important; }
.offcanvas-menu .villa-mnav-cta{ font-family:'Inter',system-ui,sans-serif !important; }

/* Bausteine 26.10.2026: Startseite, Villa und Galerie erst zeigen, wenn der Aufbau fertig ist (max. 3,5 s, dann fällt die Klasse von selbst) */
html.villa-pre #sp-main-body{ visibility:hidden; }

/* Kontaktformular ohne reCAPTCHA-Einwilligung (26.10.2026) */
.vl-capn{ margin:18px 0; padding:14px 18px; border-left:3px solid var(--vl-btn,#117556); background:#ECEAE3; border-radius:0 12px 12px 0; color:#1b2a26; font-size:.92rem; line-height:1.5; }
.vl-capn p{ margin:0 0 10px; }
.vl-capn-btn{ appearance:none; border:1px solid var(--vl-btn,#117556); background:#fff; color:var(--vl-btn,#117556); font:inherit; font-weight:600; padding:9px 18px; border-radius:999px; cursor:pointer; min-height:44px; }
.vl-capn-btn:hover,.vl-capn-btn:focus-visible{ background:var(--vl-btn,#117556); color:#fff; }
