/* =============================================================
   COSY FLATS — THEME: HANSEATIC TRUST
   Deep Navy + Cream + Gold — vertrauensvoll, premium, lesbar.
   -------------------------------------------------------------
   PALETTE
     #0F2A44   Deep Navy        primärer Text, Header, Logo
     #FAF5EB   Cream            Haupt-Hintergrund (warmer Off-White)
     #F5F1E8   Sand             dezente Beige-Pause für Sektionen
     #B5663F   Gold / Brass     CTA, Buchungsbuttons, Premium-Akzent
     #8E4F30   Dark Gold        Hover-State des CTAs
     #FFFFFF   Pure White       Cards, Hervorhebungen
     #4A4A4A   Mid Gray         sekundärer Fließtext
     #6B6B6B   Soft Gray        Hinweise, Metadaten

   TYPOGRAFIE
     League Gothic — nur Display (H1/H2/H3)
     Inter — Fließtext, Buttons, Labels (>= 16 px, line-height 1.65)

   Zum Deaktivieren: <link> aus jeder HTML entfernen
   (markiert mit THEME-OVERRIDE START/END).
   ============================================================= */

/* EIN Schriftsystem: Plus Jakarta Sans (Headlines fett, Text normal)
   + Caveat ausschließlich für die handschriftliche Welcome-Notiz. */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Caveat:wght@400;600;700&display=swap');

:root {
  --black: #FAF5EB;
  --cream: #0F2A44;
  --white: #FFFFFF;
  --magenta: #B5663F;
  --magenta-dark: #8E4F30;
  --magenta-glow: rgba(181, 102, 63, 0.40);
  --card-bg: #FFFFFF;
  --border-line: rgba(15, 42, 68, 0.10);
  --gray-mid: #6B6B6B;
  --gray-soft: #4A4A4A;
}

/* ---- Body: Cream + Inter, größer & lesbarer ---- */
html { font-size: 17px; }
html, body {
  background: #FAF5EB !important;
  color: #0F2A44 !important;
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  font-variation-settings: normal !important;
  line-height: 1.6 !important;
  letter-spacing: 0 !important;
}

.content-wrapper, main, section, footer { background: #FAF5EB; color: #0F2A44; }

/* Sand-Sektionen für visuelle Pausen */
.trust-bar, .stats-section, .testimonials, .similar-section {
  background: #F5F1E8 !important;
  color: #0F2A44 !important;
}

::selection { background: #B5663F !important; color: #FFFFFF !important; }

/* ---- Fließtext / Paragraphen ---- */
p, li, label, .hero-v2-subtitle, .features, .meta, .loc, .cat-card p, .trust-item span:not(.trust-title) {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 16px !important;
  line-height: 1.65 !important;
  color: #4A4A4A !important;
}
.page-hero p, .hero-v2-subtitle, .map-lead, .form-lead {
  font-size: 17.5px !important;
  color: #4A4A4A !important;
}
small, .field-hint, .ss-hint, .form-note, footer .footer-bottom, footer .footer-legal a {
  font-size: 13.5px !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
}

/* ---- Headings: Plus Jakarta Sans (fett), Deep Navy ---- */
h1, h2, h3, h4, .hero-v2-title {
  font-family: 'Plus Jakarta Sans', -apple-system, 'Segoe UI', sans-serif !important;
  color: #0F2A44 !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em !important;
  font-variation-settings: normal !important;
}
h1, .hero-v2-title { font-weight: 800 !important; letter-spacing: -0.025em !important; }
/* Navigation-Logo bleibt Inter, damit Marke konsistent neben dem Icon sitzt */
.nav-logo { font-family: 'Plus Jakarta Sans', sans-serif !important; font-weight: 700 !important; }
em, .magenta { color: #B5663F !important; font-style: normal; }

/* ---- Navigation: Cream mit klarer Trennlinie ---- */
.nav, .nav-v2 {
  background: rgba(250, 245, 235, 0.96) !important;
  backdrop-filter: blur(20px) saturate(150%) !important;
  border-bottom: 1px solid rgba(15, 42, 68, 0.10) !important;
  box-shadow: 0 1px 0 rgba(15, 42, 68, 0.04) !important;
}
.nav-logo, .nav-logo * { color: #0F2A44 !important; }
.nav-logo svg [fill="#A70A3D"] { fill: #B5663F !important; }
.nav-logo svg { filter: none !important; }
.nav-logo { font-size: 24px !important; }
.nav-links a {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: #4A4A4A !important;
  letter-spacing: 0 !important;
}
.nav-links a:hover, .nav-links a.active { color: #B5663F !important; }
.nav-links a::after { background: #B5663F !important; }
.lang-switcher { position: relative; }
.lang-current {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  color: #0F2A44 !important;
  background: rgba(15, 42, 68, 0.04) !important;
  border: 1px solid rgba(15, 42, 68, 0.12) !important;
  font-size: 14px !important;
  padding: 8px 14px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  cursor: pointer;
}
.lang-current:hover { background: rgba(15, 42, 68, 0.08) !important; border-color: #B5663F !important; }
.lang-dropdown {
  position: absolute; top: calc(100% + 8px); right: 0;
  background: #FFFFFF !important;
  border: 1px solid rgba(15, 42, 68, 0.10);
  border-radius: 14px;
  padding: 6px;
  min-width: 200px;
  box-shadow: 0 12px 36px rgba(15, 42, 68, 0.18);
  opacity: 0; visibility: hidden; transform: translateY(-6px) scale(0.98);
  transition: opacity 0.2s, transform 0.2s, visibility 0.2s;
  z-index: 200;
}
.lang-switcher:hover .lang-dropdown,
.lang-switcher:focus-within .lang-dropdown { opacity: 1; visibility: visible; transform: translateY(0) scale(1); }
.lang-dropdown a {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 14px; border-radius: 10px;
  color: #0F2A44 !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 14px;
  text-decoration: none;
  transition: background 0.15s;
}
.lang-dropdown a:hover { background: rgba(181, 102, 63, 0.10) !important; color: #B5663F !important; }
.lang-dropdown a.active { background: rgba(181, 102, 63, 0.15) !important; color: #B5663F !important; font-weight: 600; }
.lang-dropdown a.lang-soon { opacity: 0.4; cursor: not-allowed; }
.lang-dropdown a.lang-soon:hover { background: transparent !important; color: #0F2A44 !important; }
.lang-dropdown a small { margin-left: auto; font-size: 11px; color: #6B6B6B; }
.nav-burger span { background: #0F2A44 !important; }
.mobile-menu { background: #FAF5EB !important; color: #0F2A44 !important; }
.mobile-menu a { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }

/* ---- Primäre CTAs → Gold ---- */
.btn, .btn-primary, .btn-glass-primary, .cf-search,
.hsbw-main-button, .hsbw-search-button, button[type="submit"]:not(.ss-clear),
.btn-glass.btn-glass-primary {
  background: #B5663F !important;
  color: #FFFFFF !important;
  border: none !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  letter-spacing: 0 !important;
  box-shadow: 0 4px 14px rgba(181, 102, 63, 0.28) !important;
}
.btn-primary:hover, .btn-glass-primary:hover, .cf-search:hover, .hsbw-main-button:hover {
  background: #8E4F30 !important;
  box-shadow: 0 8px 22px rgba(181, 102, 63, 0.40) !important;
}

/* Sekundäre Buttons (Outline) */
.btn-glass:not(.btn-glass-primary), .btn-outline, .ss-clear {
  background: #FFFFFF !important;
  color: #0F2A44 !important;
  border: 1.5px solid rgba(15, 42, 68, 0.18) !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
}
.btn-glass:hover, .btn-outline:hover, .ss-clear:hover {
  background: #F5F1E8 !important;
  border-color: #B5663F !important;
  color: #B5663F !important;
}

/* ---- Hero ---- */
.hero-v2-bg::after, .hero-v2-overlay {
  background: linear-gradient(180deg, rgba(15, 42, 68, 0.45) 0%, rgba(15, 42, 68, 0.75) 100%) !important;
}
.hero-v2-title, .hero-v2-eyebrow { color: #FFFFFF !important; }
.hero-v2-title { text-shadow: 0 4px 24px rgba(15, 42, 68, 0.55), 0 2px 8px rgba(0,0,0,0.4) !important; }
/* Heidelberg-Akzent: hellere, sattere Cognac + Glow für Lesbarkeit auf Foto-Hintergrund */
.hero-v2-title em {
  color: #E89968 !important;
  text-shadow: 0 4px 24px rgba(15, 42, 68, 0.65), 0 2px 8px rgba(0,0,0,0.5) !important;
}
.hero-v2-subtitle { color: rgba(255,255,255,0.92) !important; font-size: 18px !important; font-weight: 400 !important; }
.hero-v2-eyebrow {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.18em !important;
}

/* SVGs mit hardcoded #A70A3D → Gold */
svg [fill="#A70A3D"] { fill: #B5663F !important; }
svg [stroke="#A70A3D"] { stroke: #B5663F !important; }

/* ---- Cards: Pure White auf Cream ---- */
.apt-card, .blog-card, .cat-card, .stat-card, .review-card, .similar-card, .post-card,
.platform-card, .form-card,
.apartment-card, #apartments .apartment-card {
  background: #FFFFFF !important;
  color: #0F2A44 !important;
  border: 1px solid rgba(15, 42, 68, 0.08) !important;
  box-shadow: 0 1px 3px rgba(15, 42, 68, 0.04), 0 8px 24px rgba(15, 42, 68, 0.04) !important;
  transition: box-shadow 0.25s, border-color 0.25s !important;
}
.apt-card:hover, .blog-card:hover, .cat-card:hover, .platform-card:hover,
.apartment-card:hover, #apartments .apartment-card:hover {
  border-color: rgba(181, 102, 63, 0.45) !important;
  box-shadow: 0 4px 12px rgba(15, 42, 68, 0.06), 0 16px 36px rgba(15, 42, 68, 0.08) !important;
}

/* Apartments-Sektion auf Homepage (#apartments) */
#apartments { background: #FAF5EB !important; color: #0F2A44 !important; }
#apartments .section-head h2, #apartments .apartment-info h3 { color: #0F2A44 !important; }
#apartments .section-head h2 em { color: #B5663F !important; }
#apartments .section-head p { color: #4A4A4A !important; }
.apartment-info { color: #0F2A44 !important; }
.apartment-info h3 { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.apartment-loc { color: #6B6B6B !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.apartment-features { border-top-color: rgba(15, 42, 68, 0.10) !important; border-bottom-color: rgba(15, 42, 68, 0.10) !important; }
.apartment-features div { color: #6B6B6B !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.apartment-price .from, .apartment-price .per { color: #6B6B6B !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.apartment-price .amount { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.apartment-rating { color: #0F2A44 !important; background: #F5F1E8 !important; }
.apartment-rating .star { color: #B5663F !important; }
.apartment-card[data-glow] { --backdrop: rgba(15, 42, 68, 0.04) !important; }
.apt-card h3, .apt-card .price, .apt-card .rating,
.cat-card h3, .platform-card h3 {
  color: #0F2A44 !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
}
.apt-card .loc, .apt-card .features { color: #6B6B6B !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-size: 14.5px !important; }
.cat-card p, .platform-card p { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-size: 14.5px !important; }
.cat-card .cat-arrow { color: #B5663F !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-weight: 600 !important; }

/* Tags / Badges */
.tag, .platform-badge, .badge,
.apartment-tag, #apartments .apartment-tag,
.apt-tag {
  background: #FFFFFF !important;
  color: #0F2A44 !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 11.5px !important;
  letter-spacing: 0.08em !important;
  box-shadow: 0 2px 8px rgba(15, 42, 68, 0.18) !important;
  border: 1px solid rgba(15, 42, 68, 0.06) !important;
}
.tag.tag-premium, .apartment-tag.tag-premium { background: #0F2A44 !important; color: #FFFFFF !important; border-color: #0F2A44 !important; }
.apartment-tag.tag-magenta, .apt-tag.tag-magenta { background: #B5663F !important; color: #FFFFFF !important; border-color: #B5663F !important; }

/* Favoriten-Herz (oben rechts) — beide Varianten */
.apartment-fav, .apt-fav {
  background: rgba(255, 255, 255, 0.95) !important;
  color: #4A4A4A !important;
  border: 1px solid rgba(15, 42, 68, 0.10) !important;
  box-shadow: 0 2px 8px rgba(15, 42, 68, 0.15) !important;
}
.apartment-fav:hover, .apt-fav:hover { color: #B5663F !important; }

/* ---- Trust-Bar / Stats: hellbeige Pause ---- */
.trust-item, .stat-item { color: #0F2A44 !important; }
.trust-item .trust-title { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-weight: 700 !important; font-size: 15.5px !important; }
.trust-item span:not(.trust-title) { color: #6B6B6B !important; font-size: 14px !important; }
.stat-number { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.trust-item svg, .cat-icon svg, .am-icon svg {
  color: #B5663F !important;
  stroke: #B5663F !important;
}

/* ---- Filter-Tabs ---- */
.filter-tabs {
  background: #FFFFFF !important;
  border: 1px solid rgba(15, 42, 68, 0.10) !important;
}
.filter-tab {
  color: #4A4A4A !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 500 !important;
  font-size: 14.5px !important;
}
.filter-tab:hover { color: #0F2A44 !important; background: rgba(15,42,68,0.04) !important; }
.filter-tab.active { background: #0F2A44 !important; color: #FFFFFF !important; }
.filter-tab .count { background: rgba(15, 42, 68, 0.08) !important; color: inherit !important; font-weight: 600 !important; }
.filter-tab.active .count { background: rgba(255, 255, 255, 0.18) !important; color: #B5663F !important; }
.filter-sort select {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  background: #FFFFFF !important;
  color: #0F2A44 !important;
  border: 1px solid rgba(15, 42, 68, 0.18) !important;
}

/* ---- Search Summary Banner ---- */
.search-summary {
  background: #FFFFFF !important;
  border: 1px solid rgba(181, 102, 63, 0.40) !important;
  color: #0F2A44 !important;
}
.search-summary .ss-icon { background: #B5663F !important; }
.search-summary .ss-title { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-weight: 700 !important; font-size: 15px !important; }
.search-summary .ss-details { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-size: 14.5px !important; }
.search-summary .ss-details strong { color: #B5663F !important; }
.search-summary .ss-hint { color: #6B6B6B !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-size: 13px !important; }

/* ---- Hostaway Widget ---- */
.hsbw, .hsbw[style*="--hsbw-button-color"] { --hsbw-button-color: #B5663F !important; }
.hsbw-field-icon { color: #B5663F !important; background: rgba(181, 102, 63, 0.10) !important; }
.hsbw-calendar table td.selected .hsbw-calendar-day,
.hsbw-calendar table td.start .hsbw-calendar-day,
.hsbw-calendar table td.end .hsbw-calendar-day {
  background: #B5663F !important;
  color: #FFFFFF !important;
}
.hsbw-calendar table td.in-range:not(.selected):not(.start):not(.end) .hsbw-calendar-day {
  background: rgba(181, 102, 63, 0.18) !important;
}
.hsbw-calendar-button { border-color: rgba(181, 102, 63, 0.4) !important; }
.hsbw-calendar-button svg { fill: #B5663F !important; }
.hsbw-calendar-clear { color: #B5663F !important; }
.hsbw-guests-button { border-color: rgba(181, 102, 63, 0.4) !important; color: #B5663F !important; }

/* Custom-Fallback-Widget */
.cf-booking { background: #FFFFFF !important; box-shadow: 0 10px 35px rgba(15, 42, 68, 0.12) !important; }
.cf-field-icon { color: #B5663F !important; }
.cf-field label { color: #6B6B6B !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.cf-field input, .cf-field select { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }

/* ---- Inputs ---- */
input[type="text"], input[type="email"], input[type="tel"], input[type="date"], textarea, select {
  background: #FFFFFF !important;
  color: #0F2A44 !important;
  border: 1px solid rgba(15, 42, 68, 0.18) !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 15px !important;
}
input::placeholder, textarea::placeholder { color: #9A9A9A !important; }
input:focus, textarea:focus, select:focus {
  border-color: #B5663F !important;
  outline: 2px solid rgba(181, 102, 63, 0.20) !important;
  outline-offset: 1px;
}

/* ---- Footer: Deep Navy für klare Trennung ---- */
footer {
  background: #0F2A44 !important;
  color: rgba(250, 245, 235, 0.80) !important;
  border-top: none !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
}
footer a { color: rgba(250, 245, 235, 0.75) !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
footer a:hover { color: #B5663F !important; }
.footer-bottom, .footer-legal a { color: rgba(250, 245, 235, 0.75) !important; }
footer h2, footer h3, footer h4 { color: #FAF5EB !important; }
.footer-top h2 { color: #FAF5EB !important; text-align: center !important; }
.footer-top h2 em { color: #B5663F !important; }

/* ---- WhatsApp Float → Brand-Grün ---- */
.whatsapp-float { background: #25D366 !important; box-shadow: 0 8px 24px rgba(37, 211, 102, 0.45) !important; }
.whatsapp-float:hover { background: #1FAE54 !important; }

/* ---- Map-Marker ---- */
.cosy-marker { background: #B5663F !important; color: #FFFFFF !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-weight: 700 !important; }

/* ---- Sektion-Titel ---- */
section h2, .section h2 { font-size: clamp(34px, 4.5vw, 56px) !important; color: #0F2A44 !important; }
.eyebrow {
  color: #B5663F !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 0.20em !important;
  text-transform: uppercase !important;
}

/* ---- Body-Schrift-Override ---- */
.btn span, .cat-arrow, .price .from, .meta, .features, .nav-links a, .footer-bottom,
button:not(.hsbw-button), .form-section-title, .form-note, .field-hint,
.platform-card h3 + p, .ss-details, .ss-hint, label, p {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
}

/* Akzent-Linien dezent in Cognac */
hr, .divider, .section-divider {
  border-color: #B5663F !important;
  background: #B5663F !important;
  opacity: 0.35;
}

/* =============================================================
   ZUSÄTZLICHE SEKTIONEN — alle bislang dunklen Banner aufs Theme bringen
   ============================================================= */

/* Loader-Splash beim Seitenstart */
.loader, #loader {
  background: #FAF5EB !important;
  color: #0F2A44 !important;
}
.loader-text, #loader .loader-text { color: #0F2A44 !important; opacity: 0.7 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.loader-logo svg [fill="#A70A3D"] { fill: #B5663F !important; }

/* === "Warum Cosy Flats?" (.why-direct) === */
.why-direct {
  background: #F5F1E8 !important;
  color: #0F2A44 !important;
  border-radius: 24px !important;
}
.why-direct::before { display: none !important; }
.why-direct .eyebrow { color: #B5663F !important; }
.why-direct .section-head h2 { color: #0F2A44 !important; }
.why-direct .section-head h2 em { color: #B5663F !important; }
.why-direct .section-head p { color: #4A4A4A !important; }

.stats-row { border-color: rgba(15, 42, 68, 0.10) !important; }
.stat .num { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.stat .star { color: #B5663F !important; }
.stat .currency { color: #B5663F !important; }
.stat .lbl { color: #6B6B6B !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-size: 14.5px !important; }

.benefit { border-color: rgba(15, 42, 68, 0.10) !important; }
.benefit:hover { background: rgba(181, 102, 63, 0.05) !important; }
.benefit-icon {
  background: #FFFFFF !important;
  color: #B5663F !important;
  border: 1px solid rgba(181, 102, 63, 0.30) !important;
}
.benefit h3 { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.benefit p { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }

/* === Testimonials (.testimonial) === */
.testimonial {
  background: #FFFFFF !important;
  color: #0F2A44 !important;
  border: 1px solid rgba(15, 42, 68, 0.10) !important;
  box-shadow: 0 1px 3px rgba(15, 42, 68, 0.04), 0 8px 24px rgba(15, 42, 68, 0.04) !important;
}
.testimonial:hover {
  border-color: rgba(181, 102, 63, 0.40) !important;
  box-shadow: 0 4px 12px rgba(15, 42, 68, 0.08), 0 18px 40px rgba(15, 42, 68, 0.10) !important;
}
.testimonial .stars { color: #B5663F !important; }
.testimonial .quote { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-size: 16px !important; line-height: 1.6 !important; }
.testimonial .author { border-top: 1px solid rgba(15, 42, 68, 0.08) !important; padding-top: 18px; }
.testimonial .avatar { background: #B5663F !important; color: #FFFFFF !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-weight: 700 !important; }
.testimonial .name { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-weight: 600 !important; }
.testimonial .meta { color: #6B6B6B !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }

/* === Newsletter (.newsletter) === */
.newsletter {
  background: #F5F1E8 !important;
  color: #0F2A44 !important;
  border: 1px solid rgba(15, 42, 68, 0.08) !important;
  border-radius: 28px !important;
}
.newsletter::before { display: none !important; }
.newsletter h2 { color: #0F2A44 !important; }
.newsletter h2 em { color: #B5663F !important; }
.newsletter p { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.newsletter .eyebrow { color: #B5663F !important; }
.newsletter-input {
  background: #FFFFFF !important;
  color: #0F2A44 !important;
  border: 1px solid rgba(15, 42, 68, 0.18) !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 15.5px !important;
}
.newsletter-input::placeholder { color: #9A9A9A !important; }
.newsletter-input:focus { border-color: #B5663F !important; background: #FFFFFF !important; }
.newsletter-perks div { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.newsletter-perks svg { color: #B5663F !important; stroke: #B5663F !important; }
.newsletter-note { color: #6B6B6B !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }

/* === Perks-Section / .perk-Cards (Wohnen auf Zeit) === */
.perks-section { background: #FAF5EB !important; color: #0F2A44 !important; }
.perk {
  background: #FFFFFF !important;
  color: #0F2A44 !important;
  border: 1px solid rgba(15, 42, 68, 0.10) !important;
  box-shadow: 0 1px 3px rgba(15, 42, 68, 0.04), 0 8px 22px rgba(15, 42, 68, 0.04) !important;
}
.perk:hover { border-color: rgba(181, 102, 63, 0.45) !important; box-shadow: 0 4px 12px rgba(15, 42, 68, 0.08), 0 18px 36px rgba(15, 42, 68, 0.10) !important; }
.perk-icon {
  background: rgba(181, 102, 63, 0.10) !important;
  color: #B5663F !important;
  border: none !important;
}
.perk-icon svg { color: #B5663F !important; stroke: #B5663F !important; }
.perk h3 { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.perk p { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }

/* === Contact-Band (Wohnen auf Zeit Bottom-CTA) === */
.contact-band { background: transparent !important; }
.contact-inner {
  background: #F5F1E8 !important;
  color: #0F2A44 !important;
  border: 1px solid rgba(15, 42, 68, 0.10) !important;
  border-radius: 28px !important;
}
.contact-inner::before { display: none !important; }
.contact-inner h2 { color: #0F2A44 !important; }
.contact-inner h2 em { color: #B5663F !important; }
.contact-inner p { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }

/* Leaflet-Map: heller Hintergrund (Tiles werden über JS auf "light_all" gesetzt) */
.leaflet-container { background: #F5F1E8 !important; }
.leaflet-control-attribution {
  background: rgba(255, 255, 255, 0.85) !important;
  color: #4A4A4A !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
}
.leaflet-control-attribution a { color: #B5663F !important; }
.leaflet-bar a, .leaflet-bar a:hover {
  background: #FFFFFF !important;
  color: #0F2A44 !important;
  border-color: rgba(15, 42, 68, 0.18) !important;
}
.contact-band .btn-whatsapp {
  background: #2C9C5E !important;
  color: #FFFFFF !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
}
.contact-band .btn-whatsapp:hover { background: #237D4B !important; }

/* === Experiences-Strip (Aktivitäten/Blog) === */
.experiences-strip {
  background: #F5F1E8 !important;
  color: #0F2A44 !important;
  border-radius: 24px !important;
}
.experiences-strip h2 { color: #0F2A44 !important; }
.experiences-strip h2 em { color: #B5663F !important; }
.experiences-strip p { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.exp-mini {
  background: #FFFFFF !important;
  border: 1px solid rgba(15, 42, 68, 0.10) !important;
  color: #0F2A44 !important;
}
.exp-mini:hover { border-color: #B5663F !important; }
.exp-mini h4 { color: #0F2A44 !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.exp-mini .for { color: #B5663F !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-weight: 600 !important; font-size: 11.5px !important; letter-spacing: 0.10em !important; text-transform: uppercase; }
.exp-mini p { color: #6B6B6B !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }
.exp-mini .price { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-weight: 600 !important; }
.exp-mini .price strong { color: #B5663F !important; }

/* === CTA-Band (untere Buchungs-Aufforderung) === */
.cta-band {
  background: #F5F1E8 !important;
  color: #0F2A44 !important;
  border: 1px solid rgba(15, 42, 68, 0.10) !important;
  border-radius: 24px !important;
}
.cta-band::before { display: none !important; }
.cta-band h2 { color: #0F2A44 !important; }
.cta-band h2 em { color: #B5663F !important; }
.cta-band p { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }

/* === Section-Bar (Blog) === */
.section-bar { background: transparent !important; color: #0F2A44 !important; }
.section-bar h2 { color: #0F2A44 !important; }
.section-bar h2 em { color: #B5663F !important; }
.section-bar .lead { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; }

/* Post-Card-Tags (Blog) */
.post-card .perk-tag {
  background: #F5F1E8 !important;
  color: #0F2A44 !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
}

/* Nav-Invoice (Rechnung-Button im Header) — sichtbar auf Cream-Header */
.nav-invoice {
  color: #B5663F !important;
  background: #FFFFFF !important;
  border: 1.5px solid rgba(181, 102, 63, 0.5) !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0.02em !important;
  box-shadow: 0 2px 6px rgba(15, 42, 68, 0.06) !important;
}
.nav-invoice:hover {
  background: #B5663F !important;
  border-color: #B5663F !important;
  color: #FFFFFF !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(181, 102, 63, 0.30) !important;
}
.nav-invoice svg { color: inherit !important; opacity: 1 !important; }

/* Auszeichnungs-Badge (z. B. Falstaff für Schilling) */
.award-badge {
  display: inline-flex; align-items: center; gap: 10px;
  margin: 14px 0 0;
  padding: 8px 14px;
  background: #FFFFFF;
  border: 1px solid rgba(15, 42, 68, 0.10);
  border-radius: 999px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 12px; font-weight: 600;
  color: #0F2A44;
  letter-spacing: 0.04em;
}
.award-badge img { width: 32px; height: 32px; object-fit: contain; border-radius: 50%; }

/* === Experience-Teaser ("Heidelberg als Erlebnis") === */
.exp-teaser {
  background: #F5F1E8 !important;
  border: 1px solid rgba(15, 42, 68, 0.10) !important;
  border-radius: 28px !important;
  color: #0F2A44 !important;
}
.exp-teaser::before { display: none !important; }
.exp-teaser .eyebrow { color: #B5663F !important; }
.exp-teaser h3 {
  color: #0F2A44 !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
}
.exp-teaser h3 em { color: #B5663F !important; }
.exp-teaser p { color: #4A4A4A !important; font-family: 'Plus Jakarta Sans', sans-serif !important; font-size: 16.5px !important; }
.exp-teaser .perks span {
  background: #FFFFFF !important;
  color: #0F2A44 !important;
  border: 1px solid rgba(15, 42, 68, 0.12) !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 500 !important;
  font-size: 13px !important;
  padding: 7px 16px !important;
}
.exp-head .exp-pitch .perks span {
  background: #FFFFFF !important;
  color: #0F2A44 !important;
  border: 1px solid rgba(15, 42, 68, 0.12) !important;
}

/* === "Ein Wort von uns" — Willkommens-Nachricht der Gastgeber === */
.welcome-note {
  max-width: 760px !important;
  margin: 0 auto !important;
  text-align: center !important;
}
.welcome-note .eyebrow {
  color: #B5663F !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  margin-bottom: 18px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 14px !important;
}
.welcome-note .eyebrow::before,
.welcome-note .eyebrow::after {
  content: ''; display: inline-block; width: 28px; height: 1px; background: #B5663F;
}
.welcome-title {
  font-family: 'Caveat', 'Brush Script MT', cursive !important;
  font-weight: 400 !important;
  font-size: clamp(60px, 8vw, 96px) !important;
  color: #0F2A44 !important;
  line-height: 1.15 !important;
  letter-spacing: 0 !important;
  margin-bottom: 36px !important;
  font-variation-settings: normal !important;
}
.welcome-title em { color: #B5663F !important; font-style: normal !important; }

.welcome-body {
  font-family: 'Caveat', 'Brush Script MT', cursive !important;
  color: #0F2A44 !important;
  font-size: 26px !important;
  line-height: 1.55 !important;
  text-align: center !important;
  max-width: 720px !important;
  margin: 0 auto 40px !important;
}
.welcome-body p {
  font-family: 'Caveat', 'Brush Script MT', cursive !important;
  color: #0F2A44 !important;
  font-size: 26px !important;
  line-height: 1.55 !important;
  margin-bottom: 22px !important;
}
.welcome-body p:last-child { margin-bottom: 0 !important; }

@media (max-width: 760px) {
  .welcome-body, .welcome-body p { font-size: 22px !important; line-height: 1.50 !important; }
  .welcome-title { font-size: 56px !important; }
}

.welcome-signature {
  margin-top: 36px !important;
  text-align: center !important;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
}
.welcome-signature .sig-line {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 13px !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: #6B6B6B !important;
  font-weight: 500 !important;
}
.welcome-signature .sig-image-png,
.welcome-signature .sig-image-svg {
  display: block;
  width: 260px;
  max-width: 70%;
  height: auto;
  margin: 14px auto 10px;
}
.welcome-signature .sig-name-text {
  font-family: 'Caveat', cursive !important;
  font-size: clamp(46px, 6vw, 68px) !important;
  line-height: 1 !important;
  color: #B5663F !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em !important;
  margin-top: 6px;
}

/* (alte Media-Query für Welcome — überschrieben oben) */

/* =============================================================
   REDESIGN Juni 2026 — Editorial-Pass (Plum-Guide-Prinzipien)
   1) Feste Typo-Skala  2) Straffe Abstände  3) Ruhige Animationen
   4) Heller Editorial-Hero (.hero-ed) für Unterseiten
   5) Startseiten-Hero hell (kein Foto-Hintergrund mehr)
   ============================================================= */

/* ---- 1) Typo-Skala (eine Skala für alle Seiten) ---- */
h1 {
  font-size: clamp(38px, 5vw, 64px) !important;
  line-height: 1.08 !important;
}
h2 {
  font-size: clamp(28px, 3.5vw, 42px) !important;
  line-height: 1.12 !important;
}
.hero-v2-title { font-size: clamp(40px, 5.5vw, 68px) !important; line-height: 1.06 !important; }
.pitch, .hero-v2-subtitle, .page-hero p { font-size: 18px !important; line-height: 1.6 !important; }

/* ---- 2) Abstände straffen ---- */
:root { --space-section: 96px; }
section.section { padding: 96px 0 !important; }
.section-head { margin-bottom: 48px !important; }
.perks-section { padding: 96px 40px !important; }
.perks-head { margin-bottom: 48px !important; }
.why-direct { padding: 96px 0 !important; }
.newsletter-section { padding: 0 0 96px !important; }
.contact-band { margin: 32px auto 96px !important; }
.page-hero { padding: 130px 0 48px !important; }
.testimonials-head { margin-bottom: 48px !important; }
@media (max-width: 760px) {
  section.section, .why-direct { padding: 64px 0 !important; }
  .perks-section { padding: 64px 20px !important; }
  .newsletter-section { padding: 0 0 64px !important; }
  .contact-band { margin: 24px auto 64px !important; }
}

/* ---- 3) Animationen beruhigen ---- */
.reveal { transition-duration: 0.6s !important; }
.hero-bg, .hero-v2-bg { animation: none !important; transform: none !important; }

/* ---- 4) Editorial-Hero für Unterseiten (.hero-ed) ----
   Heller Hintergrund, Navy-Headline (immer lesbar), Bild als
   gerahmtes Element rechts — kein Text auf Fotos. */
.hero-ed {
  background: #FAF5EB;
  padding: 150px 40px 72px;
}
.hero-ed-inner {
  max-width: 1320px; margin: 0 auto;
  display: grid; grid-template-columns: 1.05fr 0.95fr;
  gap: 64px; align-items: center;
}
.hero-ed .eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 12.5px !important; font-weight: 600 !important;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: #B5663F !important;
  margin-bottom: 18px;
}
.hero-ed .eyebrow::before {
  content: ''; display: inline-block; width: 32px; height: 2px;
  background: #B5663F; border-radius: 2px;
}
.hero-ed h1 { color: #0F2A44 !important; margin-bottom: 20px; }
.hero-ed h1 em { color: #B5663F !important; font-style: normal; }
.hero-ed .pitch {
  color: #4A4A4A !important;
  max-width: 540px;
  margin-bottom: 32px;
}
.hero-ed .hero-ed-ctas { display: flex; gap: 14px; flex-wrap: wrap; }
.hero-ed-img {
  border-radius: 20px; overflow: hidden;
  aspect-ratio: 4 / 3;
  box-shadow: 0 24px 60px -24px rgba(15, 42, 68, 0.28);
}
.hero-ed-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 960px) {
  .hero-ed { padding: 120px 24px 56px; }
  .hero-ed-inner { grid-template-columns: 1fr; gap: 32px; }
  .hero-ed-img { aspect-ratio: 3 / 2; }
}

/* ---- 5) Startseiten-Hero hell (Plum-Guide-Stil) ----
   Foto-Hintergrund + Overlay aus, Typo auf Navy, Panorama wird
   als gerahmtes Bild unter dem Such-Widget gezeigt (.hero-panorama). */
.hero-v2 { min-height: auto !important; background: #FAF5EB !important; display: block !important; }
.hero-v2-bg, .hero-v2-overlay { display: none !important; }
.hero-v2-inner { padding: 150px 40px 0 !important; }
.hero-v2-title { color: #0F2A44 !important; text-shadow: none !important; }
.hero-v2-title em { color: #B5663F !important; }
.hero-v2-subtitle { color: #4A4A4A !important; text-shadow: none !important; margin-bottom: 28px !important; }
.hero-v2-subtitle em { color: #4A4A4A !important; }
.hero-v2-eyebrow {
  background: transparent !important;
  border: none !important;
  backdrop-filter: none !important;
  color: #B5663F !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 12.5px !important; font-weight: 600 !important;
  letter-spacing: 0.18em !important;
  padding: 0 !important; margin-bottom: 20px !important;
}
.hero-v2-actions { margin-bottom: 36px !important; }
.hero-panorama {
  max-width: 1320px;
  margin: 56px auto 0;
  padding: 0 40px 0;
}
.hero-panorama figure {
  margin: 0; border-radius: 20px; overflow: hidden;
  box-shadow: 0 28px 70px -28px rgba(15, 42, 68, 0.30);
}
.hero-panorama img { width: 100%; height: auto; display: block; }
@media (max-width: 760px) {
  .hero-v2-inner { padding: 120px 20px 0 !important; }
  .hero-panorama { margin-top: 36px; padding: 0 20px; }
  .hero-panorama figure { border-radius: 14px; }
}

/* ---- 6) Heidelberg-Editorial (Startseite) ---- */
.hd-editorial { display: grid; grid-template-columns: 1.2fr 1fr; gap: 16px; }
.hd-editorial-right { display: grid; grid-template-rows: 1fr 1fr; gap: 16px; }
.hd-img { border-radius: 16px; overflow: hidden; position: relative; }
.hd-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s cubic-bezier(0.16,1,0.3,1); }
.hd-img:hover img { transform: scale(1.04); }
.hd-editorial-left .hd-img { height: 100%; min-height: 420px; }
.hd-editorial-right .hd-img { min-height: 200px; }
@media (max-width: 760px) {
  .hd-editorial { grid-template-columns: 1fr; }
  .hd-editorial-left .hd-img { min-height: 260px; }
  .hd-editorial-right { grid-template-rows: none; grid-template-columns: 1fr 1fr; }
  .hd-editorial-right .hd-img { min-height: 140px; }
}

/* ---- 7) Versprechen-Grid: 3 Säulen ---- */
.benefits-grid { grid-template-columns: repeat(3, 1fr) !important; }
@media (max-width: 960px) { .benefits-grid { grid-template-columns: 1fr !important; } }

/* ---- 8) Newsletter kompakt ---- */
.newsletter-inner { padding: 48px 50px !important; grid-template-columns: 1fr 1fr !important; align-items: center !important; gap: 40px !important; }
.newsletter-inner h2 { font-size: clamp(24px, 2.6vw, 32px) !important; }
@media (max-width: 960px) { .newsletter-inner { grid-template-columns: 1fr !important; padding: 36px 24px !important; } }

/* ---- 9) Feinschliff heller Hero: Glow + Magenta-Reste entfernen ---- */
.hero-v2-title em { text-shadow: none !important; color: #B5663F !important; }
.hero-v2-booking {
  box-shadow: 0 20px 56px -18px rgba(15, 42, 68, 0.25), 0 0 0 1px rgba(15, 42, 68, 0.06) !important;
}
.hero-v2-booking::before { display: none !important; }

/* ---- 10) Großes Hero-Panorama mit eingebettetem Booking-Widget ---- */
.hero-panorama { margin-top: 44px; }
.hero-panorama figure { position: relative; }
.hero-panorama img {
  width: 100%;
  height: clamp(480px, 64vh, 680px);
  object-fit: cover;
}
/* sanfter Verlauf unten, damit das Widget ruhig auf dem Foto sitzt */
.hero-panorama figure::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 180px;
  background: linear-gradient(180deg, rgba(15,42,68,0) 0%, rgba(15,42,68,0.32) 100%);
  pointer-events: none;
}
.hero-panorama .hero-v2-booking {
  position: absolute;
  left: 24px; right: 24px; bottom: 30px;
  margin: 0 auto;
  max-width: 860px;
  z-index: 2;
}
@media (max-width: 760px) {
  .hero-panorama img { height: clamp(420px, 70vh, 560px); }
  .hero-panorama .hero-v2-booking { left: 12px; right: 12px; bottom: 14px; }
}

/* Schmale Viewports: Widget stapelt sich hoch — dann halb überlappend
   unter die Bildkante setzen statt das Foto zu verdecken */
@media (max-width: 960px) {
  .hero-panorama .hero-v2-booking {
    position: static;
    margin: -64px 12px 0;
    max-width: none;
  }
  .hero-panorama figure { overflow: visible; }
  .hero-panorama figure::after { display: none; }
}
@media (max-width: 960px) {
  /* figure clippt nicht mehr (overflow visible) — Radius aufs Bild selbst */
  .hero-panorama img { border-radius: 14px; }
}
