/* css/style.min.css - Kombinierte und optimierte Stile */
/* Version 3.3 - Final fix for hero section background image. */

/* --- INHALT VON style-mobile.css --- */
:root {
    /* --- FARBPALETTE - FINAL KONTRAST OPTIMIERT --- */
    --color-primary: #689F38; /* Ein kräftiges, zugängliches Grün */
    --color-primary-text: #1B5E20; /* Sehr dunkles Grün für Text auf hellem Grund */
    --color-secondary: #1e4620; /* Sehr dunkles Grün für Überschriften */
    --color-accent: #5D4037; /* Dunkles Braun für Akzente */
    --color-background-light: #F9FBE7; /* Sehr helles, fast weißes Grün */
    --color-surface: #FFFFFF;
    --color-text-dark: #212121; /* Reines Schwarz für besten Lesekontrast */
    --color-text-medium: #333333; /* Sehr dunkles Grau */
    
    /* Link-Farben - WCAG AA konform */
    --color-link: #1B5E20; 
    --color-link-hover: #003300;

    /* Button-Farben - WCAG AA konform mit weißem Text */
    --bh-color-button-primary: #1B5E20; /* Dunkles, sattes Grün für alle primären Buttons */
    --bh-color-button-primary-hover: #122b13; /* Noch dunkler für Hover */
    --bh-color-logo-text: #1B5E20;

    /* --- FONT-STACKS - SYSTEMSCHRIFTEN --- */
    --font-family-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    --font-family-serif: Georgia, Cambria, "Times New Roman", Times, serif;

    /* --- BASIS-STILE --- */
    --spacing-unit: 1rem;
    --border-radius-small: 0.25rem;
    --border-radius-medium: 0.5rem;
    --border-radius-large: 0.9375rem;
    --box-shadow-soft: 0 0.125rem 0.3125rem rgba(0,0,0,0.08);
    --box-shadow-medium: 0 0.25rem 0.625rem rgba(0,0,0,0.12);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 100%; scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: var(--font-family-sans); line-height: 1.65; color: var(--color-text-dark); background-color: var(--color-background-light); display: flex; flex-direction: column; min-height: 100vh; padding-top: 0; }
img, video, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--color-link); text-decoration: underline; text-underline-offset: 0.15em; transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out; }
a:hover, a:focus { text-decoration: underline; color: var(--color-link-hover); }
.info-box-link-wrapper { text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:not([tabindex="-1"]):focus-visible { outline: 0.1875rem solid var(--color-primary); outline-offset: 0.125rem; box-shadow: 0 0 0 0.125rem var(--color-surface); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-family-serif); margin-top: calc(var(--spacing-unit) * 1.5); margin-bottom: calc(var(--spacing-unit) * 0.75); line-height: 1.3; color: var(--color-secondary); font-weight: 600; }
h1 { font-size: clamp(1.8rem, 6vw, 2.5rem); color: var(--color-text-dark); }
h2 { font-size: clamp(1.5rem, 5vw, 2.2rem); }
h3 { font-size: clamp(1.25rem, 4vw, 1.9rem); }
h4 { font-size: clamp(1.1rem, 3.5vw, 1.6rem); }
p { margin-bottom: var(--spacing-unit); }
.page-subtitle { font-size: 1.1rem; color: var(--color-text-medium); margin-top: calc(var(--spacing-unit) * -0.5); }
ul, ol { margin-bottom: var(--spacing-unit); padding-left: calc(var(--spacing-unit) * 1.5); }
li { margin-bottom: calc(var(--spacing-unit) * 0.5); }
.skip-link { position: absolute; top: -62.5rem; left: 0; background: var(--color-primary); color: var(--color-text-dark); padding: var(--spacing-unit); z-index: 9999; text-decoration: none; font-weight: bold; border-radius: 0 0 var(--border-radius-medium) 0; }
.skip-link:focus { top: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -0.0625rem; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* --- EINHEITLICHE & BARRIEREFREIE BUTTONS --- */
.button { display: inline-block; min-width: 44px; min-height: 44px; padding: calc(var(--spacing-unit)*0.75) calc(var(--spacing-unit)*1.5); background-color: var(--bh-color-button-primary); color: var(--color-surface) !important; text-decoration: none; border-radius: var(--border-radius-medium); font-weight: 500; text-align: center; border: 1px solid transparent; cursor: pointer; transition: background-color 0.2s ease, transform 0.1s ease; }
.button:hover, .button:focus { background-color: var(--bh-color-button-primary-hover); color: var(--color-surface) !important; text-decoration: none; transform: translateY(-0.0625rem); }
.button.button-primary { background-color: var(--bh-color-button-primary); } /* Explizit für Klarheit */
.button.button-secondary { background-color: transparent; border: 1px solid var(--color-secondary); color: var(--color-secondary) !important; }
.button.button-secondary:hover { background-color: var(--color-secondary); color: var(--color-surface) !important; }

.site-header { background-color: var(--color-surface); padding: var(--spacing-unit) 5%; box-shadow: var(--box-shadow-soft); position: sticky; top: 0; z-index: 1000; }
.site-header-content-wrapper { display: flex; flex-direction: column; align-items: center; gap: var(--spacing-unit); max-width: 75rem; margin: 0 auto; }
.logo-container { text-align: center; }
.logo-link { display: inline-block; text-decoration: none; }
.logo-image { max-height: 4.375rem; width: auto; margin-bottom: calc(var(--spacing-unit) * 0.25); }
.site-tagline { font-size: clamp(0.8rem, 2.5vw, 1rem); color: var(--color-text-medium); margin-top: 0; margin-bottom: 0; font-style: italic; }
.main-navigation { width: 100%; position: relative; }
.menu-toggle { min-height: 44px; min-width: 44px; background-color: var(--color-secondary); color: var(--color-surface); border: 1px solid var(--color-accent); padding: calc(var(--spacing-unit) * 0.75) var(--spacing-unit); cursor: pointer; font-size: 1rem; font-weight: 500; display: flex; align-items: center; justify-content: center; width: 100%; text-align: left; border-radius: var(--border-radius-small); }
.menu-toggle:hover, .menu-toggle:focus { background-color: var(--color-link-hover); }

/* --- NEUES MENU-ICON STYLING --- */
.menu-toggle-icon { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.25rem; }
.menu-toggle-text { font-size: 0.65rem; font-weight: bold; color: var(--color-surface); line-height: 1; letter-spacing: 0.1em; transition: opacity 0.2s ease, transform 0.2s ease; }
.menu-toggle .menu-toggle-icon-bar { display: block; width: 1.75rem; height: 0.125rem; background-color: var(--color-surface); transition: transform 0.3s ease; border-radius: 1px; margin: 0; }
.menu-toggle[aria-expanded="true"] .menu-toggle-text { opacity: 0; transform: scale(0.5); }
.menu-toggle[aria-expanded="true"] .menu-toggle-icon-bar:first-child { transform: translateY(0.25rem) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-icon-bar:last-child { transform: translateY(-0.25rem) rotate(-45deg); }

#main-menu { list-style: none; padding-left: 0; display: none; flex-direction: column; background-color: var(--color-secondary); width: 100%; position: absolute; top: calc(100% + 0.3125rem); left: 0; z-index: 999; border-radius: 0 0 var(--border-radius-small) var(--border-radius-small); box-shadow: var(--box-shadow-medium); }
#main-menu.is-open { display: flex; }
#main-menu li { margin-bottom: 0; border-bottom: 1px solid var(--color-link-hover); }
#main-menu li:last-child { border-bottom: none; }
#main-menu a { display: block; padding: calc(var(--spacing-unit) * 0.9) calc(var(--spacing-unit) * 1.2); color: var(--color-surface); text-decoration: none; font-size: 1rem; font-weight: 500; }
#main-menu a:hover, #main-menu a:focus, #main-menu li.active > a { background-color: var(--color-primary); color: var(--color-text-dark); }
#main-menu li.active > a, #main-menu li.active-parent > a { font-weight: bold; }
.submenu { list-style: none; padding-left: 0; background-color: var(--color-link-hover); display: none; }
.has-submenu.open > .submenu { display: block; }
.submenu li a { padding-left: calc(var(--spacing-unit) * 2); font-size: 0.9rem; }
.submenu li.active > a { background-color: var(--color-primary); color: var(--color-text-dark); font-weight: normal; }
.submenu-toggle { min-height: 44px; min-width: 44px; background: none; border: none; color: var(--color-surface); padding: 0.5rem; cursor: pointer; margin-left: auto; display: inline-flex; justify-content: center; align-items: center; }
.submenu-toggle .arrow-down { display: inline-block; width: 0; height: 0; border-left: 0.3125rem solid transparent; border-right: 0.3125rem solid transparent; border-top: 0.375rem solid var(--color-surface); transition: transform 0.3s ease; }
.has-submenu.open > .submenu-toggle .arrow-down { transform: rotate(180deg); }
.has-submenu > a { display: flex; justify-content: space-between; align-items: center; }
.outer-page-container { background-color: var(--color-surface); padding: 0; flex-grow: 1; }
#main-content { max-width: 75rem; margin: 0 auto; }
.page-content-container { padding: 0 5%; }
.page-content-container > *:first-child { margin-top: 0; }
.page-content-container > *:not(:first-child) { margin-top: calc(var(--spacing-unit) * 2); }
.page-title-header { margin-bottom: calc(var(--spacing-unit) * 1.5); padding-bottom: var(--spacing-unit); border-bottom: 0.1875rem solid var(--color-primary); margin-top: calc(var(--spacing-unit) * 1.5); }

/* --- HERO SECTION FIX --- */
.start-intro-section {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 40vh;
    padding: calc(var(--spacing-unit) * 2);
    background-image: url('../images/holiday-home/exterior/hero_winter.webp');
    background-size: cover;
    background-position: center top; /* changed from center bottom to focus on the house */
    border-radius: var(--border-radius-medium);
    position: relative;
    text-align: center;
    margin-bottom: calc(var(--spacing-unit) * 2.5);
    margin-top: calc(var(--spacing-unit) * 1.5);
}
.start-intro-content {
    position: relative;
    z-index: 2;
    padding: calc(var(--spacing-unit) * 1.5);
    background-color: rgba(33, 33, 33, 0.6);
    border-radius: var(--border-radius-small);
    max-width: 90%;
}
.start-intro-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.1);
    border-radius: var(--border-radius-medium);
}
.start-intro-section h1, .start-intro-section h2 {
    color: var(--color-surface);
    text-shadow: 1px 1px 0.1875rem rgba(0,0,0,0.7);
    font-size: clamp(1.8rem, 7vw, 2.8rem);
    margin: 0 0 calc(var(--spacing-unit) * 0.5) 0;
}
.start-intro-section .hero-usps {
    color: var(--color-surface);
    text-shadow: 1px 1px 0.125rem rgba(0,0,0,0.6);
    font-size: clamp(0.95rem, 3vw, 1.15rem);
    margin-bottom: calc(var(--spacing-unit) * 0.8);
    opacity: 0.95;
}
.start-intro-section p {
    color: var(--color-surface);
    text-shadow: 1px 1px 0.125rem rgba(0,0,0,0.6);
    font-size: clamp(1rem, 4vw, 1.2rem);
    margin-bottom: calc(var(--spacing-unit) * 1.5);
    opacity: 0.95;
    max-width: 60ch;
    margin-left: auto;
    margin-right: auto;
}
.start-intro-section .button {
    font-size: 1rem;
    padding: calc(var(--spacing-unit)*0.8) calc(var(--spacing-unit)*2);
}

.info-boxes-section { padding: 0; }
.info-box-container { display: grid; grid-template-columns: 1fr; gap: calc(var(--spacing-unit) * 1.5); }
.info-box { background-color: var(--color-surface); border: 1px solid #E0E0E0; border-radius: var(--border-radius-medium); padding: var(--spacing-unit); box-shadow: var(--box-shadow-soft); display: flex; flex-direction: column; justify-content: space-between; transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out; }
.info-box:hover, .info-box:focus-within { transform: translateY(-0.1875rem); box-shadow: var(--box-shadow-medium); }
.info-box-image { width: 100%; height: 11.25rem; object-fit: cover; border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; margin-bottom: var(--spacing-unit); border-bottom: 1px solid #E0E0E0; }
.info-box-content { flex-grow: 1; text-align: left; }
.welcome-boxes .info-box-content, .region-topics .info-box-content { text-align: center; }
.info-box-content h2, .info-box-content h3 { font-family: var(--font-family-serif); color: var(--color-secondary); font-size: clamp(1.2rem, 4vw, 1.6rem); margin-top: 0; margin-bottom: calc(var(--spacing-unit) * 0.5); }
.info-box-content p { font-size: 0.9rem; color: var(--color-text-medium); margin-bottom: var(--spacing-unit); line-height: 1.5; }
.info-box .button { margin-top: auto; }
.region-preview-section { background-color: var(--color-background-light); padding: calc(var(--spacing-unit) * 1.5); margin: 0 calc(var(--spacing-unit) * -5.5vw); text-align: center; }
.region-preview-section h2 { color: var(--color-text-dark); }
.region-preview-section p { color: var(--color-text-medium); max-width: 37.5rem; margin-left: auto; margin-right: auto; }
.region-preview-image { max-width: 90%; width: 18.75rem; margin: var(--spacing-unit) auto; border-radius:var(--border-radius-medium); box-shadow: var(--box-shadow-soft); }
.page-content-container > section, .pricing-layout-grid { margin-top: calc(var(--spacing-unit) * 2.5); }
.intro-text p { font-size: 1.05rem; color: var(--color-text-medium); max-width: 70ch; }
.image-gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-unit); }
.image-gallery-grid img { border-radius: var(--border-radius-medium); box-shadow: var(--box-shadow-soft); width: 100%; height: 100%; object-fit: cover; }
.key-facts-section { background-color: var(--color-background-light); padding: calc(var(--spacing-unit) * 1.5); display: flex; flex-direction: column; align-items: center; }
.key-facts-section h2 { text-align: center; }
.key-facts-list { list-style: none; padding-left: 0; margin-bottom: 0; }
.key-facts-list li { font-size: 1rem; padding-left: calc(var(--spacing-unit) * 2.5); position: relative; margin-bottom: calc(var(--spacing-unit) * 0.8); display: flex; align-items: center; min-height: 1.75rem; text-align: left; }
.key-facts-list li::before { content: '✔'; position: absolute; left: 0; top: 50%; transform: translateY(-50%); height: 1.5rem; width: 1.5rem; border: 0.125rem solid var(--color-primary-text); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--color-primary-text); font-weight: 900; font-size: 0.875rem; line-height: 1; }
.room-grid { display: grid; grid-template-columns: 1fr; gap: calc(var(--spacing-unit) * 1.5); }
.room-card { border: 1px solid #E0E0E0; padding: calc(var(--spacing-unit) * 1.2); border-radius: var(--border-radius-medium); background-color: var(--color-surface); }
.room-card h3 { margin-top: 0; border-bottom: 0.125rem solid var(--color-primary-text); padding-bottom: calc(var(--spacing-unit) * 0.5); margin-bottom: calc(var(--spacing-unit) * 1); }
.booking-cta-section { text-align: center; background-color: var(--color-background-light); padding: calc(var(--spacing-unit) * 2); border-radius: var(--border-radius-medium); }
.booking-cta-section .cta-buttons { display: flex; flex-direction: column; gap: var(--spacing-unit); margin-top: var(--spacing-unit); }
.pricing-layout-grid { display: flex; flex-direction: column; gap: calc(var(--spacing-unit) * 2); }
.price-card-large h3, .price-card-large .price-separator { margin-top: calc(var(--spacing-unit) * 1.5); margin-bottom: var(--spacing-unit); font-size: 1.3rem; padding-bottom: calc(var(--spacing-unit) * 0.5); border-bottom: 1px solid #E0E0E0; }
.price-card-large h3:first-child { margin-top: 0; }
.price-list, .extras-list { list-style: none; padding-left: 0; }
.price-list ul { padding-left: var(--spacing-unit); margin-top: calc(var(--spacing-unit) * 0.5); }
.section-subheader { text-align: center; }
.example-cards-grid { display: grid; grid-template-columns: 1fr; gap: var(--spacing-unit); }
.example-card { background-color: var(--color-background-light); padding: var(--spacing-unit); border-color: var(--color-primary-text); }
.example-card h4 { margin: 0; font-size: 1rem; color: var(--color-text-dark); }
.example-card p { margin: calc(var(--spacing-unit) * 0.25) 0 0 0; font-size: 0.9rem;}
.calendar-container { margin-top: var(--spacing-unit); text-align: center; }
.calendar-container iframe { max-width: 100%; border-radius: var(--border-radius-small); box-shadow: var(--box-shadow-soft); }
.extras-list li { margin-bottom: calc(var(--spacing-unit) * 0.8); }
.region-intro { height: 30vh; background-size: cover; background-position: center; border-radius: var(--border-radius-medium); position: relative; overflow: hidden; }
.intro-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(to top, rgba(0,0,0,0.5), transparent); }
.region-topics .info-box-content { text-align: center; }
.section-title { text-align: center; font-size: 1.8rem; margin-bottom: calc(var(--spacing-unit) * 1.5); }
.content-article { display: flex; flex-direction: column; gap: calc(var(--spacing-unit) * 2.5); }
.content-article .intro-section { text-align: center; }
.content-article .intro-text { max-width: 75ch; margin-left: auto; margin-right: auto; }
.content-article .content-section { background-color: var(--color-background-light); padding: calc(var(--spacing-unit) * 1.5); border-radius: var(--border-radius-medium); margin-top: 0; }
.content-article .content-section:first-of-type { background-color: transparent; }
.content-article .content-section h2, .content-article .content-section h3 { text-align: center; }
.two-column-layout { display: flex; flex-direction: column; gap: var(--spacing-unit); }
.cta-buttons.single-cta { margin-top: calc(var(--spacing-unit) * 1.5); text-align: center; }
.image-in-card { margin-top: calc(var(--spacing-unit) * 1.5); margin-bottom: calc(var(--spacing-unit) * 1.5); border-radius: var(--border-radius-medium); overflow: hidden; }
.image-in-card img { margin: 0 auto; }
.info-card-container { display: flex; flex-direction: column; gap: var(--spacing-unit); }
.info-card { background-color: var(--color-surface); padding: var(--spacing-unit); border-radius: var(--border-radius-small); border: 1px solid #E0E0E0; border-left-width: 0.25rem; border-left-color: var(--color-primary-text); }
.info-card-container + .info-card { margin-top: var(--spacing-unit); }
.info-card h3 { font-size: 1.2rem; margin-top: 0; text-align: left; color: var(--color-text-dark); }
.info-card-tip { border-left-color: #FFC107; background-color: #FFFBEF; }
.info-card-fact { border-left-color: #2196F3; background-color: #E3F2FD; margin-bottom: var(--spacing-unit); }
.info-card-fact ul { list-style: none; padding-left: 0; margin-bottom: 0; }
.info-card-fact li { padding-left: 1.5rem; position: relative; font-size: 0.95rem; }
.info-card-fact li::before { content: '✔'; color: #2196F3; position: absolute; left: 0; font-weight: bold; }
.poi-card-container { display: grid; grid-template-columns: 1fr; gap: calc(var(--spacing-unit) * 1.5); margin-top: var(--spacing-unit); }
.poi-card { background-color: var(--color-surface); border-radius: var(--border-radius-medium); overflow: hidden; box-shadow: var(--box-shadow-soft); display: flex; flex-direction: column; }
.poi-image { width: 100%; height: auto; }
.poi-content { padding: var(--spacing-unit); flex-grow: 1; }
.poi-content h3 { margin: 0 0 calc(var(--spacing-unit) * 0.5) 0; text-align: left; font-size: 1.1rem; }
.poi-content p { font-size: 0.9rem; margin-bottom: 0; }
.map-section { width: 100%; margin-top: var(--spacing-unit); }
#map-filter-container { display: flex; flex-wrap: wrap; gap: calc(var(--spacing-unit) * 0.75); margin-bottom: var(--spacing-unit); padding-bottom: var(--spacing-unit); border-bottom: 1px solid #E0E0E0; }
.map-filter-button { font-family: var(--font-family-sans); font-size: 0.9rem; padding: calc(var(--spacing-unit) * 0.5) var(--spacing-unit); border: 1px solid #BDBDBD; background-color: var(--color-surface); color: var(--color-text-medium); border-radius: var(--border-radius-large); cursor: pointer; transition: all 0.2s ease-in-out; }
.map-filter-button:hover, .map-filter-button:focus { background-color: var(--color-background-light); border-color: var(--color-secondary); color: var(--color-text-dark); }
.map-filter-button.active { background-color: var(--color-secondary); color: var(--color-surface); border-color: var(--color-secondary); font-weight: bold; }
#map { width: 100%; height: 60vh; min-height: 25rem; max-height: 43.75rem; border-radius: var(--border-radius-medium); border: 1px solid #E0E0E0; box-shadow: var(--box-shadow-soft); z-index: 1; }
.map-marker-icon .map-marker-icon-background { width: 1.875rem; height: 1.875rem; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); display: flex; justify-content: center; align-items: center; box-shadow: var(--box-shadow-medium); border: 0.125rem solid var(--color-surface); }
.map-marker-icon i { color: white; transform: rotate(45deg); font-size: 0.875rem; }
.form-group { margin-bottom: var(--spacing-unit); display: flex; flex-direction: column; }
.form-group label { margin-bottom: calc(var(--spacing-unit) * 0.5); font-weight: 500; color: var(--color-text-medium); }
.form-group input[type="text"], .form-group input[type="email"], .form-group input[type="date"], .form-group textarea { width: 100%; padding: calc(var(--spacing-unit) * 0.8); border: 1px solid #BDBDBD; border-radius: var(--border-radius-small); font-family: var(--font-family-sans); font-size: 1rem; background-color: #FAFAFA; }
.form-group textarea { resize: vertical; min-height: 7.5rem; }
.honeypot-field { opacity: 0; position: absolute; top: 0; left: 0; height: 0; width: 0; z-index: -1; }
.form-feedback { padding: var(--spacing-unit); margin-bottom: var(--spacing-unit); border-radius: var(--border-radius-small); border-width: 1px; border-style: solid; }
.success-message { background-color: #D4EDDA; color: #155724; border-color: #C3E6CB; }
.error-message { background-color: #F8D7DA; color: #721C24; border-color: #F5C6CB; }
.error-text { color: #721C24; font-size: 0.85rem; margin-top: calc(var(--spacing-unit) * 0.25); }
.privacy-notice { font-size: 0.85rem; color: var(--color-text-medium); margin-top: var(--spacing-unit); }

/* --- FOOTER NEUGESTALTUNG --- */
.site-footer { background-color: var(--color-surface); color: var(--color-text-dark); padding: var(--spacing-unit) 5%; text-align: center; margin-top: auto; border-top: 1px solid #E0E0E0; }
.footer-content-wrapper { display: flex; flex-direction: column; align-items: center; gap: var(--spacing-unit); }
.footer-logo-container { margin-bottom: calc(var(--spacing-unit) * 0.5); }
.footer-logo-image { max-height: 3rem; width: auto; }
.footer-columns h3 { display: none; }
.footer-columns { display: flex; flex-direction: column; align-items: center; gap: var(--spacing-unit); width: 100%; }
.footer-column { width: 100%; }
.footer-column p { margin-bottom: 0; line-height: 1.5; color: var(--color-text-medium); }
.footer-column a { color: var(--color-link); }
.footer-column a:hover { color: var(--color-link-hover); }
.footer-link-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; align-items: center; gap: calc(var(--spacing-unit) * 0.25); }
.footer-important-notice, .footer-bottom-bar { width: 100%; padding-top: var(--spacing-unit); border-top: 1px solid #E0E0E0; }
.footer-important-notice p, .footer-bottom-bar p { font-size: 0.85rem; color: var(--color-text-medium); opacity: 0.9; margin: 0; line-height: 1.5; }
.footer-bottom-bar { display: flex; flex-direction: column; gap: calc(var(--spacing-unit) * 0.5); }
.footer-credits { margin-top: calc(var(--spacing-unit) * 0.25); }

/* --- COOKIE BANNER --- */
#cookie-banner { position: fixed; bottom: 0; left: 0; width: 100%; background-color: var(--color-surface); color: var(--color-text-dark); box-shadow: 0 -0.125rem 0.625rem rgba(0,0,0,0.15); z-index: 2000; padding: var(--spacing-unit); display: none; border-top: 1px solid #E0E0E0; }
#cookie-banner.visible { display: block; }
.cookie-content { max-width: 62.5rem; margin: 0 auto; text-align: center; }
.cookie-content h2 { font-size: 1.3rem; color: var(--color-secondary); margin-top: 0; margin-bottom: calc(var(--spacing-unit) * 0.5); }
.cookie-content p { font-size: 0.9rem; margin-bottom: var(--spacing-unit); line-height: 1.4; }
.cookie-content a { color: var(--color-link); text-decoration: underline; }
.cookie-buttons { display: flex; flex-direction: column; gap: calc(var(--spacing-unit) * 0.75); margin-top: var(--spacing-unit); }
.cookie-buttons button { padding: calc(var(--spacing-unit)*0.7) calc(var(--spacing-unit)*1.2); border: 1px solid #BDBDBD; border-radius: var(--border-radius-small); font-family: var(--font-family-sans); font-weight: 500; cursor: pointer; transition: background-color 0.2s ease, color 0.2s ease; width: 100%; }
#accept-all-cookies { background-color: var(--bh-color-button-primary); color: var(--color-surface); border-color: var(--bh-color-button-primary); }
#accept-all-cookies:hover { background-color: var(--bh-color-button-primary-hover); }
#accept-necessary-cookies { background-color: #F5F5F5; color: var(--color-text-medium); }
#accept-necessary-cookies:hover { background-color: #E0E0E0; color: var(--color-text-dark); }
#customize-cookies { background-color: transparent; color: var(--color-link); border: none; text-decoration: underline; padding: calc(var(--spacing-unit)*0.5) 0; }
#customize-cookies:hover { color: var(--color-link-hover); }
.cookie-settings-dialog { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: var(--color-surface); border-radius: var(--border-radius-medium); box-shadow: 0 0.25rem 1.25rem rgba(0,0,0,0.25); padding: calc(var(--spacing-unit) * 1.5); max-width: 90%; width: 28.125rem; z-index: 2001; display: none; }
.cookie-settings-dialog.visible { display: block; }
.cookie-settings-dialog h2 { font-size: 1.4rem; margin-top: 0; color: var(--color-secondary); }
.cookie-settings-form label { display: flex; align-items: center; margin-bottom: var(--spacing-unit); font-size: 0.95rem; color: var(--color-text-medium); }
.cookie-settings-form input[type="checkbox"] { margin-right: calc(var(--spacing-unit) * 0.75); accent-color: var(--color-primary-text); transform: scale(1.2); }
.cookie-settings-dialog .cookie-buttons { margin-top: calc(var(--spacing-unit) * 1.5); }
.cookie-settings-dialog .dialog-buttons button { width: 100%; margin-bottom: calc(var(--spacing-unit) * 0.5); }
.cookie-settings-dialog .dialog-buttons button.button-save-settings { background-color: var(--bh-color-button-primary); color: var(--color-surface); border-color: var(--bh-color-button-primary); }
.cookie-settings-dialog .dialog-buttons button.button-save-settings:hover { background-color: var(--bh-color-button-primary-hover); }
.cookie-settings-dialog .dialog-buttons button.button-cancel-settings { background-color: #F5F5F5; color: var(--color-text-medium); border-color: #BDBDBD; }
.cookie-settings-dialog .dialog-buttons button.button-cancel-settings:hover { background-color: #E0E0E0; color: var(--color-text-dark); }
.cookie-settings-dialog .dialog-buttons button:last-child { margin-bottom: 0; }

/* --- INHALT VON style-desktop.css --- */
@media screen and (min-width: 48.0625rem) {
    body { background-color: var(--color-background-light); }
    
    /* --- STICKY HEADER FIX: Cover für den Margin-Bereich, um durchscheinenden Content zu verhindern --- */
    body::before {
        content: "";
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        height: calc(var(--spacing-unit) * 2);
        background-color: var(--color-background-light);
        z-index: 999; /* Direkt unterhalb des Headers (1000) */
    }

    .form-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--spacing-unit) * 2); }
    .outer-page-container { max-width: 75rem; margin: calc(var(--spacing-unit) * 2) auto; background-color: transparent; border: none; box-shadow: none; overflow: visible; display: flex; flex-direction: column; min-height: calc(100vh - (var(--spacing-unit) * 4)); }
    #main-content { padding: 0; flex-grow: 1; background-color: var(--color-surface); width:100%; }
    .site-header { padding: calc(var(--spacing-unit) * 1.5) calc(var(--spacing-unit) * 2.5); width: 100%; background-color: var(--color-surface); box-shadow: var(--box-shadow-soft); border-radius: var(--border-radius-large) var(--border-radius-large) 0 0; top: calc(var(--spacing-unit) * 2); }
    .site-header-content-wrapper { flex-direction: row; justify-content: space-between; align-items: center; }
    .logo-container { text-align: left; margin-bottom: 0; flex-shrink: 0; }
    .logo-image { max-height: 4.0625rem; }
    .site-tagline { text-align: left; margin-top: calc(var(--spacing-unit) * 0.1); }
    .main-navigation .menu-toggle { display: none; }
    .main-navigation #main-menu { display: flex !important; flex-direction: row; position: static; background-color: transparent; width: auto; box-shadow: none; border-radius: 0; gap: calc(var(--spacing-unit) * 0.4); }
    .main-navigation #main-menu li { border-bottom: none; }
    .main-navigation #main-menu a { padding: calc(var(--spacing-unit) * 0.8) calc(var(--spacing-unit) * 1.6); color: var(--color-text-dark); border-radius: var(--border-radius-small); position: relative; white-space: nowrap; text-align: center; font-size: 0.95rem; }
    .main-navigation #main-menu a::after { content: ''; position: absolute; bottom: 0.3125rem; left: 50%; transform: translateX(-50%); width: 0; height: 0.125rem; background-color: var(--color-primary); transition: width 0.3s ease; }
    .main-navigation #main-menu a:hover::after, .main-navigation #main-menu a:focus::after, .main-navigation #main-menu li.active > a::after, .main-navigation #main-menu li.active-parent > a::after { width: 60%; }
    .main-navigation #main-menu a:hover, .main-navigation #main-menu a:focus, .main-navigation #main-menu li.active > a, .main-navigation #main-menu li.active-parent > a { background-color: var(--color-background-light); color: var(--color-link-hover); }
    .main-navigation #main-menu li.active > a, .main-navigation #main-menu li.active-parent > a { font-weight: bold; }
    .main-navigation .has-submenu { position: relative; }
    /* Desktop Dropdown Behavior */
    .main-navigation .has-submenu:hover > .submenu { display: block; opacity: 1; visibility: visible; transform: translateY(0); }
    .main-navigation .submenu { position: absolute; display: none; top: calc(100% + 0.125rem); left: 0; width: 15rem; background-color: var(--color-surface); border: 1px solid #E0E0E0; border-top: 0.1875rem solid var(--color-primary); border-radius: 0 0 var(--border-radius-medium) var(--border-radius-medium); box-shadow: var(--box-shadow-medium); z-index: 1100; opacity: 0; visibility: hidden; transform: translateY(0.5rem); transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease; padding-left: 0; }
    .main-navigation .submenu li { border-bottom: 1px solid var(--color-background-light); }
    .main-navigation .submenu li:last-child { border-bottom: none; }
    .main-navigation .submenu a { color: var(--color-text-dark); padding: calc(var(--spacing-unit) * 0.9) calc(var(--spacing-unit) * 1.3); display: block; font-size: 0.9rem; min-width: auto; text-align: left; border-radius: 0; }
    .main-navigation .submenu a::after { display: none; }
    .main-navigation .submenu a:hover, .main-navigation .submenu a:focus, .main-navigation .submenu li.active > a { background-color: var(--color-primary); color: var(--color-text-dark); }
    .page-content-container { padding: calc(var(--spacing-unit) * 2.5); }
    .start-intro-section { max-height: 30rem; }
    .start-intro-section h1, .start-intro-section h2 { font-size: 3rem; }
    .start-intro-section p { font-size: 1.3rem; }
    .info-boxes-section { padding-top: 0; margin-left: auto; margin-right: auto; margin-top: calc(var(--spacing-unit) * 2.5); margin-bottom: 0; padding-left: 0; padding-right: 0; }
    .info-box-container { grid-template-columns: repeat(3, 1fr); gap: calc(var(--spacing-unit) * 1.8); }
    .info-box { padding: calc(var(--spacing-unit) * 1.2); }
    .info-box-image { height: 12.5rem; }
    .region-preview-section { padding: calc(var(--spacing-unit) * 2.5); margin: calc(var(--spacing-unit) * 2.5) calc(var(--spacing-unit) * -2.5); border-radius: 0; background-color: var(--color-background-light); }
    .region-preview-image { max-width: 25rem; }
    .image-gallery-grid { grid-template-columns: repeat(3, 1fr); }
    .key-facts-section.info-box { max-width: 50rem; margin-left: auto; margin-right: auto; }
    .key-facts-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-unit) calc(var(--spacing-unit) * 4); margin-top: var(--spacing-unit); }
    .room-grid { grid-template-columns: repeat(3, 1fr); gap: calc(var(--spacing-unit) * 2); }
    .booking-cta-section .cta-buttons { flex-direction: row; justify-content: center; gap: calc(var(--spacing-unit) * 1.5); }
    .booking-cta-section .button { min-width: 12.5rem; }
    .pricing-layout-grid { display: grid; grid-template-columns: 2fr 1fr; align-items: start; gap: calc(var(--spacing-unit) * 2.5); }
    .pricing-sidebar-column { display: grid; gap: calc(var(--spacing-unit) * 2); align-content: start; }
    .pricing-sidebar-column > .info-box:not(:first-child) { margin-top: 0; }
    .example-cards-grid { grid-template-columns: repeat(3, 1fr); }
    .region-intro { height: 40vh; max-height: 25rem; }
    .region-topics .info-box-container { grid-template-columns: repeat(3, 1fr); }
    .content-article .two-column-layout { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--spacing-unit) * 2.5); }
    .info-card-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: calc(var(--spacing-unit) * 1.5); }
    .poi-card-container { grid-template-columns: repeat(3, 1fr); }
    #cookie-banner { padding: calc(var(--spacing-unit) * 1.5); }
    .cookie-content { display: flex; align-items: center; justify-content: space-between; gap: var(--spacing-unit); text-align: left; }
    .cookie-content p { margin-bottom: 0; flex-grow: 1; }
    .cookie-buttons { flex-direction: row; flex-shrink: 0; width: auto; }
    .cookie-buttons button { width: auto; }
    .cookie-settings-dialog { max-width: 31.25rem; }
    .cookie-settings-dialog .cookie-buttons { flex-direction: row; justify-content: flex-end; }
    .site-footer { padding: var(--spacing-unit) 0; width: 100%; border-radius: 0 0 var(--border-radius-large) var(--border-radius-large); text-align: left; }
    .footer-content-wrapper { max-width: 68.75rem; margin: 0 auto; padding: 0 calc(var(--spacing-unit) * 1.5); }
    .footer-logo-image { max-height: 2.5rem; }
    .footer-columns { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--spacing-unit); width: 100%; }
    .footer-column h3 { display: block; color: var(--color-secondary); font-family: var(--font-family-serif); font-size: 1.2rem; font-weight: 500; margin-top: 0; margin-bottom: calc(var(--spacing-unit) * 0.5); padding-bottom: calc(var(--spacing-unit) * 0.25); border-bottom: 1px solid #E0E0E0; }
    .footer-link-list { align-items: flex-start; gap: 0; }
    .footer-important-notice { text-align: center; border-top: 1px solid #E0E0E0; padding: calc(var(--spacing-unit) * 0.5) 0; margin: calc(var(--spacing-unit) * 0.5) 0; }
    .footer-bottom-bar { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: calc(var(--spacing-unit) * 0.5); border-top: 1px solid #E0E0E0; padding-top: calc(var(--spacing-unit) * 0.5); margin-top: 0; }
    .footer-copyright p, .footer-credits p { margin: 0; font-size: 0.85rem; color: var(--color-text-medium); opacity: 0.8; text-align: center; }
    .footer-credits { text-align: center; margin-top: 0; }
    .main-navigation .submenu-toggle { display: none; }
}
@media screen and (min-width: 75rem) {
    .site-header-content-wrapper, #main-content, .footer-content-wrapper { max-width: 68.75rem; }
    .start-intro-section { max-width: none; }
    .main-navigation #main-menu a { padding: calc(var(--spacing-unit) * 0.9) calc(var(--spacing-unit) * 1.8); font-size: 1rem; }
    .main-navigation .submenu { width: 16.25rem; }
    .main-navigation .submenu a { font-size: 0.95rem; }
    .region-topics .info-box-container { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 48rem) {
    .lang-selector > a.lang-toggle-link { display: none; } 
    .lang-selector { display: flex; flex-direction: column; }
    .lang-selector .submenu-toggle { display: inline-flex; align-items: center; justify-content: space-between; width: 100%; padding: calc(var(--spacing-unit) * 0.9) calc(var(--spacing-unit) * 1.2); background: none; border: none; font-size: 1rem; font-weight: 500; color: var(--color-surface); cursor: pointer; text-align: left; }
    .lang-selector .submenu-toggle .fa-globe { margin-right: 0.5em; }
    .lang-selector.open > .submenu { position: static; display: block; width: 100%; background-color: var(--color-link-hover); border: none; box-shadow: none; }
    #main-menu .lang-selector.open a { background-color: transparent; }
    .lang-selector .submenu a { color: var(--color-surface) !important; font-weight: normal; padding-left: calc(var(--spacing-unit) * 2.5) !important; }
    .lang-selector .submenu a:hover { background-color: var(--color-primary) !important; }
}

.main-navigation #main-menu .lang-selector a.lang-toggle-link .arrow-down { display: inline-block; width: 0; height: 0; margin-left: .25em; vertical-align: .255em; content: ""; border-top: .3em solid; border-right: .3em solid transparent; border-bottom: 0; border-left: .3em solid transparent; transition: transform .3s ease-in-out; }
.main-navigation #main-menu .lang-selector:hover > a .arrow-down { transform: rotate(180deg); }
#main-menu .lang-selector > a { display: flex; align-items: center; }
.main-navigation .lang-selector .submenu a { font-size: 0.9rem; padding: calc(var(--spacing-unit) * 0.8) calc(var(--spacing-unit) * 1.2); }

@media (max-width: 47.9375rem) { .info-box-container, .info-card-container, .flora-grid { grid-template-columns: 1fr !important; } }
@media (min-width: 48rem) { .info-box-container, .info-card-container, .flora-grid { grid-template-columns: repeat(3, 1fr) !important; } }

.btn-accessible { min-width: 2.75rem; min-height: 2.75rem; display: inline-flex; align-items: center; justify-content: center; }

/* Card & Link Wrapper Text Decoration Fix */
.card-link-wrapper,
.info-box-link-wrapper,
a.card-link-wrapper,
a.info-box-link-wrapper,
.card a:not(.button),
.info-card a:not(.button),
.info-box a:not(.button),
.plant-card a:not(.button),
.poi-card a:not(.button),
.room-card a:not(.button) {
    text-decoration: none !important;
    color: inherit;
}

.card-link-wrapper *,
.info-box-link-wrapper *,
.card a:not(.button) *,
.info-card a:not(.button) *,
.info-box a:not(.button) *,
.plant-card a:not(.button) *,
.poi-card a:not(.button) *,
.room-card a:not(.button) * {
    text-decoration: none !important;
}

.card-link-wrapper:hover h2,
.card-link-wrapper:hover h3,
.info-box-link-wrapper:hover h2,
.info-box-link-wrapper:hover h3 {
    color: var(--color-link-hover, #2d6a4f);
}



/* Cookie banner mobile optimizations */
@media (max-width: 768px) {
    #cookie-banner {
        padding: 0.75rem;
    }
    .cookie-content h2 {
        font-size: 1.1rem;
        margin-bottom: 0.5rem;
    }
    .cookie-content p {
        font-size: 0.85rem;
        line-height: 1.2;
        margin-bottom: 0.75rem;
    }
    .cookie-buttons {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
    }
    .cookie-buttons button, .cookie-buttons a {
        width: 100%;
        text-align: center;
        padding: 0.5rem;
        font-size: 0.9rem;
    }
}

/* --- AIO / SEO GEO FACTS --- */
.geo-facts-section {
    padding: 0;
    margin: calc(var(--spacing-unit) * 3) auto;
    max-width: 55rem; /* Schmaler */
    background: rgba(255, 255, 255,0.85);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.4);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.05);
    border-radius: 1rem;
    overflow: hidden;
}
.geo-facts-dl {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    margin: 0;
    padding: calc(var(--spacing-unit) * 2);
    gap: calc(var(--spacing-unit) * 1.5);
}
@media (min-width: 48rem) {
    .geo-facts-dl {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (min-width: 64rem) {
    .geo-facts-dl {
        grid-template-columns: repeat(3, 1fr);
    }
}
.geo-fact-item {
    display: flex;
    flex-direction: column;
    padding: 0;
    background: transparent;
    border-left: 2px solid rgba(42, 157, 143, 0.3); /* Subtiler Accent */
    padding-left: 1.25rem;
    transition: transform 0.2s ease-in-out;
}
.geo-fact-item:hover {
    transform: translateY(-2px);
}
.geo-fact-item dt {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #000000;
    margin-bottom: 0.5rem;
}
.geo-fact-item dd {
    font-size: 1.25rem;
    font-weight: 700;
    color: #000000;
    margin: 0;
}
