    /* De "Hacienda Terra" Theme - Overschrijft Bootstrap Dark Mode */
    [data-bs-theme="dark"] {
        /* De basis: Diep, warm 'Burned Umber' (donker terracotta) */
        --bs-body-bg: #1c1512 !important; 
        --bs-body-bg-rgb: 28, 21, 18 !important;

        /* De vlakken: Iets lichtere klei-tint voor diepte */
        --bs-tertiary-bg: #281f1a !important;
        --bs-secondary-bg: #281f1a !important;
        
        /* Tekstkleuren: Zacht crème (oogt luxer bij terracotta dan hard wit) */
        --bs-body-color: #e2dcd0;
        --bs-heading-color: #ffffff;

        /* Onze Terracotta Accentkleuren */
        --bs-primary: #bc6c25;        /* Helder Terracotta */
        --bs-primary-rgb: 188, 108, 37;
        
        --bs-orange: #964b2b;         /* Diep gebakken klei */
        --bs-warning: #d4a373;        /* Warm Zand */
    }

    /* Kleurbeleid: nooit paars — alle Bootstrap primary- en linkkleuren zijn terracotta */
    :root,
    [data-bs-theme="light"],
    [data-bs-theme="dark"] {
        --bs-primary: #bc6c25 !important;
        --bs-primary-rgb: 188, 108, 37 !important;
        --bs-primary-text-emphasis: #9a5517 !important;
        --bs-primary-bg-subtle: #f7e3d3 !important;
        --bs-primary-border-subtle: #ecc9a8 !important;
        --bs-link-color: #bc6c25 !important;
        --bs-link-color-rgb: 188, 108, 37 !important;
        --bs-link-hover-color: #d4a373 !important;
        --bs-link-hover-color-rgb: 212, 163, 115 !important;
    }

    /* Forceer de warme achtergrondkleur */
    body {
        background-color: #1c1512 !important;
        color: #e2dcd0 !important;
    }

    /* Styling voor de sectie-kaarten (bijv. de 'Why Stay' sectie) */
    .card.card-body.bg-transparent {
        background-color: #281f1a !important; /* De lichtere klei-kleur */
        border: 1px solid rgba(188, 108, 37, 0.15); /* Een subtiel terracotta lijntje */
        border-radius: 1.5rem;
    }

    /* De iconen: deze passen nu perfect in het palet */
    .icon-lg {
        width: 60px;
        height: 60px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.5rem;
    }

    /* Kleine extra: zorg dat links ook terracotta kleuren krijgen */
    a {
        color: var(--bs-primary);
    }
    a:hover {
        color: var(--bs-warning);
    }

/* ---- Page styles ported from the old templates ---- */
/* casa */

    @media (min-width: 768px) {
        .facility-columns { column-count: 2; column-gap: 3rem; }
    }
    .facility-columns ul { break-inside: avoid; margin-bottom: 1.5rem; }
    .facility-columns b { display: block; break-after: avoid; margin-top: 1rem; color: white; }
    .facility-columns li,
    .casa-booking-terms li,
    .casa-booking-terms p {
        position: relative;
        list-style: none;
        padding-left: 1.35rem;
        margin-bottom: .55rem;
    }
    .facility-columns ul,
    .casa-booking-terms ul { padding-left: 0; }
    .facility-columns li::before,
    .casa-booking-terms li::before,
    .casa-booking-terms p::before {
        content: "✓";
        position: absolute;
        left: 0;
        color: var(--bs-primary);
        font-weight: 700;
    }
    .casa-gallery-more::before {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, .58);
    }
    .casa-gallery-more .card-img-overlay { z-index: 1; color: var(--bs-heading-color); }
    .casa-lightbox { position:fixed; inset:0; z-index:3000; display:grid; place-items:center; background:rgba(8,6,5,.94); padding:4rem clamp(1rem,5vw,5rem); }
    .casa-lightbox img { max-width:100%; max-height:calc(100vh - 8rem); object-fit:contain; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.55); }
    .casa-lightbox button { position:absolute; width:48px; height:48px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.15); border-radius:50%; background:rgba(31,26,23,.88); color:#fff; font-size:1.25rem; }
    .casa-lightbox-close { top:1.25rem; right:1.25rem; }
    .casa-lightbox-prev { left:1.25rem; top:50%; }
    .casa-lightbox-next { right:1.25rem; top:50%; }
    .casa-lightbox-count { position:absolute; bottom:1.25rem; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.72); font-size:.85rem; }
    @media (min-width: 1200px) {
        .navbar-expand-xl .navbar-toggler { display: none !important; }
    }

/* good_to_know */

    /* Hacienda Custom Styles */
    .card-hacienda {
        background-color: #1f1a17;
        border: 1px solid rgba(255, 255, 255, 0.05);
        border-radius: 1rem;
    }
    .text-hacienda { color: #f6c344; }
    
    /* Accordion Styling Overrides */
    .accordion-hacienda .accordion-item {
        background-color: #1f1a17;
        border: 1px solid rgba(255, 255, 255, 0.1);
        margin-bottom: 1rem;
        border-radius: 0.75rem !important;
        overflow: hidden;
    }
    .accordion-hacienda .accordion-button {
        background-color: #1f1a17;
        color: white;
        box-shadow: none;
        padding: 1.25rem;
    }
    .accordion-hacienda .accordion-button:not(.collapsed) {
        color: #f6c344;
        background-color: rgba(246, 195, 68, 0.05);
    }
    .accordion-hacienda .accordion-button::after {
        filter: invert(1) sepia(100%) saturate(1000%) hue-rotate(0deg); /* Maakt icoontje wit/geel */
    }
    .accordion-hacienda .accordion-

/* things_to_do */

    /* Hacienda Custom Styles */
    .btn-hacienda { background-color: #f6c344; color: #1a1614; border: none; font-weight: 600; }
    .btn-hacienda:hover { background-color: #e5b330; color: #1a1614; }
    .btn-hacienda-outline { border: 1px solid rgba(246, 195, 68, 0.3); color: #f6c344; background: transparent; transition: all 0.2s ease; }
    .btn-hacienda-outline:hover, .btn-hacienda-outline.active { background-color: #f6c344; color: #1a1614; border-color: #f6c344; }
    .card-hacienda { background-color: #1f1a17; border: 1px solid rgba(255,255,255,0.05); transition: transform 0.2s ease, box-shadow 0.2s ease; }
    .card-hacienda:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0,0,0,0.3) !important; }
    .text-hacienda { color: #f6c344; }
    
    /* Goudkleurige Slider Styling */
    .custom-range::-webkit-slider-thumb { background: #f6c344 !important; }
    .custom-range::-moz-range-thumb { background: #f6c344 !important; }
    .custom-range::-webkit-slider-runnable-track { background: rgba(255, 255, 255, 0.1); border-radius: 5px; }
    
    .btn-paid { background-color: #d97706; color: white; border: none; font-weight: 600; }

    /* Filter knoppen in sidebar */
    .filter-grid-buttons .btn {
        text-align: left;
        width: 100%;
        margin-bottom: 5px;
    }

    /* Modal styling */
    .modal-hacienda .modal-content { background-color: #1a1614; border: 1px solid rgba(246, 195, 68, 0.2); }
    .modal-hacienda .modal-header { border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
    .modal-hacienda .modal-footer { border-top: 1px solid rgba(255, 255, 255, 0.1); }

    /* Op mobiel de knoppen weer naast elkaar tonen voor ruimtebesparing */
    @media (max-width: 991px) {
        .filter-grid-buttons { display: flex; flex-wrap: wrap; gap: 5px; }
        .filter-grid-buttons .btn { width: auto; flex: 1 1 auto; }
    }
    
    /* Custom Switch Styling voor Hacienda */
    .switch-hacienda:checked {
        background-color: #f6c344;
        border-color: #f6c344;
    }
    .switch-hacienda:focus {
        box-shadow: 0 0 0 0.25rem rgba(246, 195, 68, 0.25);
    }

/* visual_tour */

    /* Masonry Layout */
    .masonry-container {
        column-count: 1;
        column-gap: 1.5rem;
    }

    @media (min-width: 768px) {
        .masonry-container { column-count: 2; }
    }

    @media (min-width: 1200px) {
        .masonry-container { column-count: 3; }
    }

    .masonry-item {
        display: inline-block;
        width: 100%;
        margin-bottom: 1.5rem;
        position: relative;
        border-radius: 1rem;
        overflow: hidden;
        background-color: #1f1a17;
        border: 1px solid rgba(255, 255, 255, 0.05);
        /* Geen 'cursor: pointer' meer want je kunt niet klikken */
    }

    .masonry-item img {
        display: block;
        width: 100%;
        height: auto;
        /* Eventuele hover-zoom weggehaald voor een rustig beeld */
    }

    /* Page Header */
    .gallery-title {
        letter-spacing: -1px;
        font-weight: 700;
    }

/* page_for_seo */

    /* Veilige en robuuste styling voor de Hero */
    .hero-section {
        /* De lineaire gradient zorgt voor een zachte overgang naar de donkere achtergrond van de website (rgba(25,18,14) is een donkerbruin/zwarte tint) */
        background-repeat: no-repeat; background-position: center;
        background-size: cover;
        background-attachment: fixed; /* Het coole parallax scroll effect */
        padding-top: 12rem;
        padding-bottom: 8rem;
        position: relative;
    }
    .hero-content {
        position: relative;
        z-index: 2;
        text-shadow: 0 4px 15px rgba(0,0,0,0.8);
    }

/* walking */

        /* Bestaande Hacienda Styling */
        
        .text-primary { color: #bc6c25 !important; }
        .bg-tertiary { background-color: #281f1a !important; }
        
        /* Interactieve Kaart Styling */
        .map-container {
            position: relative;
            max-width: 100%;
            border-radius: 1.5rem;
            overflow: hidden;
            box-shadow: 0 10px 30px rgba(0,0,0,0.5);
            border: 1px solid rgba(188, 108, 37, 0.2);
        }
        
        .map-image {
            width: 100%;
            height: auto;
            display: block;
        }

        /* Hotspots / Markers op de kaart */
        .hotspot {
            position: absolute;
            width: 24px;
            height: 24px;
            background-color: #bc6c25;
            border: 3px solid #fff;
            border-radius: 50%;
            transform: translate(-50%, -50%);
            cursor: pointer;
            transition: all 0.3s ease;
            box-shadow: 0 0 15px rgba(188, 108, 37, 0.8);
        }

        .hotspot::after {
            content: '';
            position: absolute;
            top: -6px; left: -6px; right: -6px; bottom: -6px;
            border-radius: 50%;
            border: 2px solid #bc6c25;
            animation: pulse 2s infinite;
        }

        .hotspot:hover {
            background-color: #d4a373;
            transform: translate(-50%, -50%) scale(1.2);
        }

        @keyframes pulse {
            0% { transform: scale(0.8); opacity: 1; }
            100% { transform: scale(1.5); opacity: 0; }
        }

        /* Coördinaten */
        .point-parkeren { top: 60%; left: 78%; }
        .point-tajillo { top: 43%; left: 60%; }
        .point-tajo { top: 12%; left: 45%; }
        .point-grajas { top: 11%; left: 11%; }
        .point-dolmen { top: 46%; left: 18%; }

        /* Knop styling */
        .btn-hacienda {
            background-color: #bc6c25 !important;
            color: #fff !important;
            border: none;
            transition: background-color 0.2s ease;
        }
        .btn-hacienda:hover {
            background-color: #d4a373 !important;
        }

/* visual tour topics */
    .gallery-topic-title { letter-spacing: -0.5px; font-weight: 700; }
    .gallery-topic-sub { width: 40px; height: 2px; background: #d4a373; border-radius: 2px; }

    /* Things to do – sticky category menu (floating bar) */
    .things-nav-wrap {
        position: sticky;
        top: calc(var(--things-nav-top, 64px) + 10px);
        z-index: 1020;
        margin-bottom: 2.25rem;
    }
    .things-nav-bar {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        gap: .2rem;
        width: fit-content;
        max-width: 100%;
        margin: 0 auto;
        padding: .35rem;
        border-radius: 1.75rem;
        background: rgba(24, 22, 32, 0.82);
        backdrop-filter: blur(14px) saturate(1.3);
        -webkit-backdrop-filter: blur(14px) saturate(1.3);
        border: 1px solid rgba(255, 255, 255, 0.09);
        box-shadow: 0 12px 32px -12px rgba(0, 0, 0, 0.55), 0 2px 8px rgba(0, 0, 0, 0.25);
    }
    @media (max-width: 767.98px) {
        .things-nav-bar:not(.things-nav-two-row) {
            flex-wrap: nowrap;
            justify-content: flex-start;
            overflow-x: auto;
            scrollbar-width: none;
            width: 100%;
        }
        .things-nav-bar:not(.things-nav-two-row)::-webkit-scrollbar { display: none; }
    }
    .things-pill {
        display: inline-flex;
        align-items: center;
        border: 1px solid transparent;
        border-radius: 50rem;
        background: transparent;
        color: rgba(255, 255, 255, .62);
        padding: .42rem .55rem;
        font-size: .8125rem;
        font-weight: 500;
        letter-spacing: .01em;
        white-space: nowrap;
        transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
        flex: 0 0 auto;
        cursor: pointer;
    }
    .things-pill i { font-size: .95rem; opacity: .85; transition: opacity .2s ease; }
    .things-pill-label {
        display: inline-block;
        max-width: 0;
        opacity: 0;
        overflow: hidden;
        vertical-align: bottom;
        transition: max-width .28s ease, opacity .18s ease, margin-left .28s ease;
    }
    .things-pill:hover .things-pill-label,
    .things-pill:focus-visible .things-pill-label,
    .things-pill.active .things-pill-label {
        max-width: 11rem;
        opacity: 1;
        margin-left: .45rem;
    }
    .things-pill:hover {
        color: #fff;
        background: rgba(255, 255, 255, .07);
    }
    .things-pill.active {
        background: #bc6c25;
        color: #fff;
        box-shadow: 0 4px 14px -4px rgba(188, 108, 37, 0.55);
    }
    .things-pill.active i { opacity: 1; }
    .things-search {
        display: flex;
        align-items: center;
        gap: .5rem;
        border-radius: 50rem;
        padding: .42rem .95rem;
        background: rgba(255, 255, 255, .06);
        border: 1px solid rgba(255, 255, 255, .08);
        flex: 0 0 auto;
        transition: border-color .2s ease, background-color .2s ease;
    }
    .things-search:focus-within {
        border-color: rgba(212, 163, 115, 0.55);
        background: rgba(255, 255, 255, .09);
    }
    .things-search i { color: #d4a373; font-size: .78rem; }
    .things-search input {
        background: transparent;
        border: 0;
        outline: none;
        box-shadow: none;
        color: #fff;
        font-size: .8125rem;
        width: 120px;
        max-width: 32vw;
        padding: 0;
    }
    .things-search input::placeholder { color: rgba(255, 255, 255, .4); }
    .things-nav-divider {
        width: 1px;
        height: 1.4rem;
        background: rgba(255, 255, 255, 0.12);
        flex: 0 0 auto;
        margin: 0 .25rem;
    }
    @media (max-width: 767.98px) {
        .things-nav-bar:not(.things-nav-two-row) { border-radius: 1.25rem; }
    }

    /* Things to do – two-row menu: search + "open now" on top, categories below */
    .things-nav-two-row {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        width: 100%;
        padding: .45rem .6rem .5rem;
        border-radius: 1.35rem;
    }
    .things-nav-row { display: flex; align-items: center; min-width: 0; max-width: 100%; }
    .things-nav-row-tools {
        justify-content: center;
        gap: .5rem;
        padding-bottom: .4rem;
        margin-bottom: .35rem;
        border-bottom: 1px solid rgba(255, 255, 255, .08);
    }
    .things-nav-two-row .things-search { flex: 0 1 auto; min-width: 0; }
    .things-nav-two-row .things-search input { width: 150px; max-width: 38vw; }
    .things-nav-row-cats {
        flex-wrap: wrap;
        justify-content: center;
        gap: .2rem;
    }
    @media (max-width: 767.98px) {
        .things-nav-two-row { padding: .4rem .5rem .45rem; }
        .things-nav-row-tools { gap: .35rem; }
        .things-nav-two-row .things-search input { width: 120px; max-width: 34vw; }
        .things-open-toggle { font-size: .78rem; padding: .35rem .45rem; }
        .things-nav-row-cats {
            flex-wrap: nowrap;
            justify-content: flex-start;
            overflow-x: auto;
            scrollbar-width: none;
            min-width: 0;
            max-width: 100%;
            margin: 0 -.25rem;
            padding: 0 .25rem .1rem;
        }
        .things-nav-row-cats::-webkit-scrollbar { display: none; }
    }
    .things-search input::-webkit-search-cancel-button { filter: invert(1); }
    .things-search:focus-within { border-color: #d4a373; }

    

/* ---------- Admin dashboard ---------- */
.dash { --d-card:#1f1a17; --d-line:rgba(255,255,255,.12); --d-acc:#bc6c25; --d-wine-white:#fff; --d-alcohol-free:#64b5f6; }
.dash-drink-white { color:var(--d-wine-white); }
.dash-drink-alcohol_free { color:var(--d-alcohol-free); }
.dash-card { background:var(--d-card); border:1px solid var(--d-line); border-radius:16px; }
.dash-accent { color:var(--d-acc); }
.dash-link { color:var(--bs-body-color); text-decoration:none; padding:.25rem .6rem; border-radius:8px; }
.dash-link:hover { background:rgba(255,255,255,.06); color:#fff; }
.dash-timeline { overflow-x:auto; }
.dash-tl-row { display:flex; border-bottom:1px solid var(--d-line); }
.dash-tl-label { position:sticky; left:0; background:var(--d-card); z-index:10; border-right:1px solid var(--d-line); width:40px; flex:0 0 40px; display:flex; align-items:center; justify-content:center; font-weight:700; color:var(--d-acc); }
.dash-tl-head .dash-tl-day { flex:0 0 auto; text-align:center; font-size:11px; position:relative; z-index:1; font-weight:700; text-transform:uppercase; padding:.5rem 0; color:var(--d-acc); border-right:1px dashed rgba(188,108,37,.22); }
.dash-tl-day.weekend { color:rgba(188,108,37,.55); }
.dash-tl-day.today { background:var(--d-acc); color:#fff; border-radius:6px 6px 0 0; }
.dash-tl-track { position:relative; height:76px; flex:0 0 auto; }
.dash-tl-grid { position:absolute; top:0; bottom:0; pointer-events:none; border-right:1px dashed rgba(188,108,37,.22); }
.dash-tl-grid.wk { background:rgba(188,108,37,.06); }
.dash-tl-today { position:absolute; top:0; bottom:0; background:rgba(188,108,37,.08); }
.dash-tl-bar { position:absolute; top:14px; height:48px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:0 10px; background:rgba(188,108,37,.22); border-left:8px solid #2e9e5b; border-right:8px solid #c0392b; border-radius:4px; color:#fff; text-decoration:none; font-size:13px; overflow:hidden; }
.dash-tl-bar:hover { background:rgba(188,108,37,.35); color:#fff; }
.dash-tl-bar.cancelled { opacity:.35; text-decoration:line-through; }
.dash-pill { display:inline-flex; gap:.4rem; align-items:center; border:1px solid var(--d-line); background:transparent; color:var(--bs-body-color); border-radius:10px; padding:.35rem .8rem; font-weight:600; font-size:14px; text-decoration:none; }
.dash-pill:hover { border-color:var(--d-acc); color:#fff; }
.dash-pill-accent { background:var(--d-acc); border-color:var(--d-acc); color:#fff; }
.dash-chip { display:inline-flex; gap:.3rem; align-items:center; font-size:11px; font-weight:700; padding:.3rem .55rem; border:1px solid var(--d-line); border-radius:8px; background:rgba(255,255,255,.03); color:var(--bs-body-color); text-transform:uppercase; }
.dash-chip i { color:var(--d-acc); }
.dash-chip.on { border-color:var(--d-acc); color:#fff; }
.dash-wa { display:flex; align-items:center; justify-content:center; gap:.6rem; padding:.5rem; border:1px solid var(--d-line); border-radius:10px; text-decoration:none; color:#fff; }
.dash-wa-in { border-left:4px solid #2e9e5b; } .dash-wa-out { border-left:4px solid #c0392b; } .dash-wa-stay { border-left:4px solid var(--d-acc); }
.dash-wa i { color:#25d366; }
.dash-row-head { width:100%; display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.85rem 1rem; background:none; border:0; color:var(--bs-body-color); text-align:left; }
.dash-section { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--bs-secondary-color); margin:1rem 0 .5rem; padding-top:.75rem; border-top:1px solid var(--d-line); }
.dash-guest { background:rgba(0,0,0,.25); border:1px solid var(--d-line); border-left:3px solid var(--d-acc); border-radius:12px; padding:.9rem 1rem; margin-bottom:.6rem; }
.dash-guest.cancelled { opacity:.45; }
.dash-guest.in, .dash-guest.stay { border-left-color:#2e9e5b; }
.dash-guest.out { border-left-color:#c0392b; }
.dash-badge { font-size:10px; font-weight:700; text-transform:uppercase; padding:.2rem .45rem; border-radius:5px; background:rgba(255,255,255,.06); color:var(--bs-secondary-color); }
.dash-badge.accent { background:rgba(188,108,37,.18); color:#e0a36a; }
.dash-dates { background:rgba(255,255,255,.05); border-radius:6px; padding:.15rem .5rem; }
.dash-icon { background:none; border:0; padding:0; color:var(--bs-secondary-color); text-decoration:none; }
.dash-icon:hover, .dash-icon.on { color:var(--d-acc); }
.dash-nav-btn { display:block; width:100%; text-align:left; background:none; border:0; color:var(--bs-body-color); padding:.55rem .8rem; border-radius:10px; font-size:14px; }
.dash-nav-btn:hover { background:rgba(255,255,255,.05); }
.dash-nav-btn.active { background:var(--d-acc); color:#fff; }
.dash-modal { position:fixed; inset:0; background:rgba(0,0,0,.6); display:flex; align-items:center; justify-content:center; z-index:2000; padding:1rem; }

/* ---------- Guest welcome page ---------- */
.welcome .w-card { background:#1f1a17; border:1px solid rgba(255,255,255,.07); border-radius:20px; }
.welcome .w-accent { color:#e0a36a; }
.welcome .w-tile { display:flex; gap:1rem; align-items:center; padding:1.25rem 1.5rem; height:100%; min-height:120px; }
.welcome .w-icon { width:38px; height:38px; flex:0 0 38px; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; background:rgba(188,108,37,.18); color:#e0a36a; }
.welcome .w-icon-pool { background:rgba(42,157,143,.18); color:#5cc8bb; }
.welcome .w-label { font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--bs-secondary-color); }
.welcome .w-mono { font-family:ui-monospace,monospace; color:#e0a36a; font-weight:700; font-size:1.1rem; }
.welcome .w-time { font-size:13px; border:1px solid rgba(188,108,37,.5); color:#e0a36a; border-radius:8px; padding:.15rem .5rem; }
.welcome .w-rules { list-style:none; padding:0; margin:0; }
.welcome .w-rules li { padding-left:1.8rem; position:relative; margin-bottom:.9rem; font-size:14px; color:var(--bs-secondary-color); }
.welcome .w-rules li strong { color:var(--bs-body-color); }
.welcome .w-rules li > i:first-child { position:absolute; left:0; top:3px; color:#e0a36a; width:1.2rem; text-align:center; }
.welcome .w-gift { display:flex; gap:1rem; align-items:center; padding:1rem 1.25rem; border:1px dashed rgba(188,108,37,.5); border-radius:14px; background:rgba(188,108,37,.06); }
.welcome .w-gift-icon { width:44px; height:44px; flex:0 0 44px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(188,108,37,.2); color:#e0a36a; }
.welcome .w-acc-head { width:100%; display:flex; align-items:center; gap:1rem; padding:1.4rem 1.5rem; background:none; border:0; color:var(--bs-body-color); text-align:left; }
.welcome .w-inner { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); border-radius:14px; padding:1rem 1.25rem; }
.welcome .w-btn { background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); color:var(--bs-secondary-color); border-radius:10px; padding:.6rem .9rem; font-weight:600; }
.welcome .w-btn:hover:not(:disabled) { color:#fff; border-color:rgba(188,108,37,.6); }
.welcome .w-btn.active { background:rgba(188,108,37,.25); border-color:#bc6c25; color:#f0c49a; }
.welcome .w-btn:disabled { opacity:.5; }
.welcome .w-ac-panel .d-flex.gap-2 { flex-wrap:wrap; }
.welcome .w-ac-panel .d-flex.gap-2 .w-btn { min-width:0; }
.welcome .w-ac-panel .d-flex.gap-2 .flex-fill { flex:1 1 0; }

.welcome .w-alert { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1rem 1.5rem; border-color:rgba(188,108,37,.5); }
.w-spin { animation:wspin 2s linear infinite; }
@keyframes wspin { to { transform:rotate(360deg); } }
.w-float { position:fixed; right:1rem; bottom:1rem; display:flex; gap:.5rem; align-items:center; z-index:1500; }
.w-fab { border:0; border-radius:999px; height:52px; min-width:52px; padding:0 1rem; background:#2a2420; color:#e0a36a; box-shadow:0 8px 24px rgba(0,0,0,.4); font-weight:700; }
.w-fab.active { background:#f4c542; color:#1f1a17; }
.w-fab-main { background:#bc6c25; color:#fff; }
.w-float-msg { background:#2a2420; color:#fff; padding:.5rem .8rem; border-radius:10px; font-size:13px; }
.w-confetti { position:fixed; inset:0; pointer-events:none; z-index:3000; overflow:hidden; }
.w-confetti span { position:absolute; top:-12px; width:9px; height:14px; border-radius:2px; animation:wfall 3.5s ease-in forwards; }
@keyframes wfall { to { transform:translateY(110vh) rotate(720deg); opacity:.6; } }

/* ---------- Dashboard v2 ---------- */
.dash-today { border-top:3px solid var(--d-acc); }
.dash-today-in { border-top-color:#2e9e5b; } .dash-today-out { border-top-color:#c0392b; }
.dash-today i.bi { color:var(--d-acc); }
.dash-count { font-weight:700; font-size:13px; background:rgba(255,255,255,.06); border-radius:999px; padding:0 .55rem; }
.dash-today-row { display:flex; align-items:center; gap:.5rem; padding:.35rem 0; border-top:1px solid var(--d-line); }
.dash-name { background:none; border:0; padding:0; color:#fff; font-weight:600; text-align:left; display:inline-flex; align-items:center; gap:.5rem; }
.dash-name:hover { color:#e0a36a; }
.dash-casa-num { width:22px; height:22px; border-radius:6px; background:rgba(188,108,37,.2); color:#e0a36a; display:inline-flex; align-items:center; justify-content:center; font-size:12px; }
.dash-tl-track { height:58px; }
.dash-tl-bar { top:9px; height:40px; border:0; border-left:4px solid #2e9e5b; border-right:4px solid #c0392b; cursor:pointer; font-size:12px; gap:1px; }
.dash-tl-meta { display:flex; gap:.45rem; align-items:center; font-size:11px; opacity:.85; }
.dash-legend { display:flex; gap:1.25rem; justify-content:flex-end; font-size:12px; color:var(--bs-secondary-color); padding:.5rem .5rem 0; }
.dash-legend i { color:#e0a36a; }
.dash-empty { font-size:13px; color:var(--bs-secondary-color); padding:.9rem 1rem; border:1px dashed var(--d-line); border-radius:12px; text-align:center; }
.dash-label { display:block; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--bs-secondary-color); margin-bottom:.25rem; }
.dash-modal-box { width:100%; max-width:620px; max-height:92vh; display:flex; flex-direction:column; overflow:hidden; }
.dash-modal-box.wide { max-width:820px; }
.dash-modal-head { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; padding:1.25rem 1.5rem; border-bottom:1px solid var(--d-line); }
.dash-modal-body { padding:1.25rem 1.5rem; overflow-y:auto; }
.dash-modal-foot { display:flex; gap:.5rem; padding:1rem 1.5rem; border-top:1px solid var(--d-line); }
.dash-toggle { display:inline-flex; align-items:center; gap:.45rem; border:1px solid var(--d-line); background:rgba(255,255,255,.03); color:var(--bs-secondary-color); border-radius:999px; padding:.35rem .85rem; font-size:13px; font-weight:600; }
.dash-toggle.on { border-color:var(--d-acc); background:rgba(188,108,37,.2); color:#f0c49a; }
.dash-note { border-left:3px solid var(--d-acc); padding:.25rem .75rem; font-size:14px; }
.dash-msg { background:rgba(0,0,0,.25); border:1px solid var(--d-line); border-radius:14px; padding:1rem; }

/* ---------- Beheer v2 ---------- */
.adm-group { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--bs-secondary-color); padding:.6rem .8rem .3rem; }
.adm-langs { display:inline-flex; border:1px solid var(--d-line); border-radius:8px; overflow:hidden; }
.adm-langs button { background:none; border:0; color:var(--bs-secondary-color); font-size:12px; font-weight:700; padding:.3rem .6rem; }
.adm-langs button + button { border-left:1px solid var(--d-line); }
.adm-langs button.active { background:var(--d-acc); color:#fff; }
.adm-tabs { display:flex; gap:1rem; border-bottom:1px solid var(--d-line); }
.adm-tabs button { background:none; border:0; color:var(--bs-secondary-color); font-weight:600; padding:.75rem 0; border-bottom:2px solid transparent; }
.adm-tabs button.active { color:#fff; border-bottom-color:var(--d-acc); }
.adm-tpl-list { display:flex; flex-direction:column; gap:.25rem; max-height:320px; overflow-y:auto; }
.adm-tpl-list button { text-align:left; background:rgba(255,255,255,.03); border:1px solid var(--d-line); color:var(--bs-body-color); border-radius:10px; padding:.55rem .8rem; font-size:14px; }
.adm-tpl-list button.active { border-color:var(--d-acc); background:rgba(188,108,37,.18); color:#fff; }
.adm-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:.6rem; }
.adm-thumb { position:relative; aspect-ratio:4/3; border-radius:10px; overflow:hidden; border:1px solid var(--d-line); background:rgba(255,255,255,.03); display:flex; align-items:center; justify-content:center; cursor:grab; }
.adm-thumb.lg { width:220px; cursor:default; }
.adm-thumb img { width:100%; height:100%; object-fit:cover; }
.adm-thumb.cover { outline:2px solid var(--d-acc); outline-offset:1px; }
.adm-thumb.add { flex-direction:column; gap:.25rem; color:var(--bs-secondary-color); border-style:dashed; cursor:pointer; }
.adm-thumb.add:hover { color:#fff; border-color:var(--d-acc); }
.adm-thumb.add.file-over { color:#fff; border-color:var(--d-acc); background:rgba(188,108,37,.14); }
.adm-thumb-busy { position:absolute; inset:0; background:rgba(0,0,0,.5); display:flex; align-items:center; justify-content:center; }
.adm-thumb-actions { position:absolute; top:4px; right:4px; display:flex; gap:4px; }
.adm-thumb-actions button { width:26px; height:26px; border-radius:6px; border:0; background:rgba(0,0,0,.65); color:#fff; font-size:12px; display:flex; align-items:center; justify-content:center; }
.adm-thumb-actions button.on { color:#f4c542; }
.adm-list-row { display:flex; gap:.5rem; align-items:center; }
.adm-grip { color:var(--bs-secondary-color); cursor:grab; padding:0 .15rem; }
.adm-note-input { font-size:.8rem; opacity:.8; }
.adm-hint { font-size:13px; color:var(--bs-secondary-color); background:rgba(188,108,37,.08); border:1px solid rgba(188,108,37,.25); border-radius:10px; padding:.6rem .9rem; }
.adm-sub { border:1px solid var(--d-line); border-radius:12px; padding:.75rem 1rem .25rem; }
.adm-preview { border:1px solid var(--d-line); border-radius:10px; padding:.75rem 1rem; }
.adm-savebar { position:sticky; bottom:0; display:flex; gap:.5rem; align-items:center; padding:.9rem 1rem; background:var(--d-card); border:1px solid var(--d-line); border-radius:14px; box-shadow:0 -8px 24px rgba(0,0,0,.35); }
.adm-search { max-width:200px; }
.adm-category-grid { display:flex; flex-wrap:wrap; gap:.45rem; }
.adm-category-grid label { display:flex; align-items:center; gap:.4rem; padding:.45rem .7rem; border:1px solid var(--d-line); border-radius:8px; color:var(--bs-secondary-color); cursor:pointer; }
.adm-category-grid label.active { border-color:var(--d-acc); background:rgba(188,108,37,.16); color:var(--bs-body-color); }
.adm-category-grid input { accent-color:var(--d-acc); }
.adm-category-grid input[type=radio] { display:none; }
.adm-category-grid label i { font-size:12px; opacity:.8; }
.adm-thing-head { gap:.75rem; }
.adm-thing-thumb { width:40px; height:40px; border-radius:8px; object-fit:cover; flex:none; }
.adm-thing-section { font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--bs-secondary-color); margin:1.4rem 0 .6rem; padding-top:1rem; border-top:1px solid var(--d-line); }
.adm-thing-form .row .adm-thing-section { border-top:0; padding-top:0; margin-top:.4rem; }
.adm-hours { display:grid; gap:.35rem; }
.adm-hours-row { display:grid; grid-template-columns:70px 1fr auto; align-items:center; gap:.5rem; min-height:32px; }
.adm-hours-row.closed { grid-template-columns:70px 1fr; }
.adm-hours-row .form-check-input { accent-color:var(--d-acc); }
.adm-html { border:1px solid var(--d-line); border-radius:8px; overflow:hidden; }
.adm-html-tools { display:flex; gap:.25rem; padding:.35rem; border-bottom:1px solid var(--d-line); background:rgba(255,255,255,.025); }
.adm-html-tools button { width:30px; height:28px; border:0; border-radius:5px; background:transparent; color:var(--bs-secondary-color); }
.adm-html-tools button:hover { color:var(--bs-body-color); background:rgba(255,255,255,.07); }
.adm-html textarea { border:0; border-radius:0; }
.adm-html-preview { padding:.8rem; border-top:1px solid var(--d-line); color:var(--bs-secondary-color); font-size:13px; min-height:42px; }
.adm-drag-handle { color:var(--bs-secondary-color); cursor:grab; }
.adm-dragging { opacity:.45; border-color:var(--d-acc); }
.welcome .w-steps { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.6rem; }
.welcome .w-steps li { display:flex; align-items:center; gap:.85rem; padding:.8rem 1rem; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); border-radius:12px; font-size:14px; }
.welcome .w-steps li > i { color:#e0a36a; width:1.2rem; text-align:center; }
.welcome .w-step-n { width:24px; height:24px; flex:0 0 24px; border-radius:50%; background:#bc6c25; color:#fff; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.welcome .w-cast { display:inline-block; background:rgba(188,108,37,.2); color:#f0c49a; border-radius:6px; padding:0 .4rem; font-weight:700; }
.welcome .w-things { display:flex; align-items:center; gap:1rem; padding:1.4rem 1.5rem; border-radius:20px; background:linear-gradient(0deg,rgba(188,108,37,.14),rgba(188,108,37,.14)),#1f1a17; border:1px solid rgba(188,108,37,.45); color:var(--bs-body-color); text-decoration:none; transition:border-color .2s, transform .2s; }
.welcome .w-things:hover { border-color:#bc6c25; transform:translateY(-2px); color:#fff; }
.welcome .w-things .fa-arrow-right { color:#e0a36a; }
.welcome .w-gate { border-color:rgba(188,108,37,.5); }
.welcome .w-gate-icon { width:72px; height:72px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:30px; background:rgba(188,108,37,.2); color:#e0a36a; }

/* ---------- Dashboard v3 ---------- */
.dash-contacts { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem 1rem; }
.dash-contact { display:flex; align-items:center; gap:.5rem; padding:.55rem .75rem; background:rgba(255,255,255,.035); border:1px solid var(--d-line); border-radius:10px; }
.dash-contact .dash-name small { color:var(--bs-secondary-color); font-size:10px; font-weight:500; text-transform:uppercase; }
.dash-tl-track { height:90px; }
.dash-tl-bar { top:20px; height:50px; min-width:0; align-items:center; justify-content:center; overflow:hidden; }
.dash-tl-row { min-height:90px; }
.dash-tl-name { white-space:nowrap; text-shadow:0 1px 3px rgba(0,0,0,.55); z-index:2; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.dash-tl-name { width:100%; text-align:center; }
.dash-tl-bar:hover { z-index:6; }
.dash-tl-note { color:#e0a36a; }
.dash-quick-wa { display:flex; align-items:center; gap:.7rem; color:var(--bs-secondary-color); font-size:12px; }
.dash-quick-wa i { color:#25d366; font-size:13px; }
.dash-quick-wa a { color:var(--bs-secondary-color); text-decoration:none; }
.dash-quick-wa a:hover { color:#fff; }
.dash-quick-contacts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.4rem; }
.dash-quick-contacts.single { grid-template-columns:1fr; }
.dash-contact-btn { position:relative; min-width:0; display:grid; grid-template-columns:26px minmax(0,1fr); align-items:center; gap:.5rem; padding:.4rem .6rem; border:1px solid var(--d-line); border-radius:10px; color:var(--bs-body-color); text-decoration:none; background:rgba(255,255,255,.025); transition:transform .18s ease,background-color .18s ease,border-color .18s ease; }
.dash-contact-btn:hover { transform:translateY(-1px); background:rgba(255,255,255,.055); color:#fff; }
.dash-contact-btn.in { border-color:rgba(46,158,91,.7); }
.dash-contact-btn.out { border-color:rgba(192,57,43,.72); }
.dash-contact-btn.stay { border-color:rgba(188,108,37,.5); }
.dash-contact-btn i { width:26px; height:26px; border-radius:8px; display:grid; place-items:center; color:#fff; background:#25d366; font-size:.8rem; }
.dash-contact-btn.out i { background:#c0392b; }
.dash-contact-btn span { min-width:0; display:flex; flex-direction:column; line-height:1.15; }
.dash-contact-btn strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.dash-contact-btn small { color:var(--bs-secondary-color); font-size:8px; text-transform:uppercase; margin-top:1px; }
.dash-contact-btn em { color:var(--bs-secondary-color); font-size:9px; font-style:normal; margin-top:2px; }
.dash-contact-btn.disabled { opacity:.72; }
.dash-contact-empty { grid-column:1/-1; padding:.65rem .75rem; border:1px dashed var(--d-line); border-radius:12px; color:var(--bs-secondary-color); font-size:12px; }
.dash-contact-empty i { color:#25d366; margin-right:.45rem; }
.dash-calendar-foot { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; padding:.85rem .5rem .25rem; }
.dash-calendar-foot .dash-legend { padding:0; flex-wrap:wrap; }
.dash-casa-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.dash-casa-slide { min-width:0; }
.dash-casa-dots { display:flex; align-items:center; justify-content:center; gap:.45rem; padding:.8rem 0 0; }
.dash-casa-dots button { width:7px; height:7px; padding:0; border:0; border-radius:50%; background:var(--d-line); }
.dash-casa-dots button.active { width:20px; border-radius:999px; background:var(--d-acc); }
.dash-legend-mobile summary, .dash-actions-log summary { color:var(--bs-secondary-color); font-size:12px; font-weight:600; cursor:pointer; list-style:none; }
.dash-legend-mobile summary::before, .dash-actions-log summary::before { content:"+"; display:inline-block; width:1rem; color:var(--d-acc); }
.dash-legend-mobile[open] summary::before, .dash-actions-log[open] summary::before { content:"−"; }
.dash-actions-log { margin-top:1rem; padding-top:.75rem; border-top:1px solid var(--d-line); }
.dash-actions-log ul { margin-top:.6rem; }

/* ---------- Welcome v3 ---------- */
.welcome .w-casa-image { position:relative; min-height:230px; border-radius:20px; overflow:hidden; border:1px solid rgba(255,255,255,.08); }
.welcome .w-casa-image img { width:100%; height:clamp(230px,34vw,390px); object-fit:cover; display:block; }
.welcome .w-casa-image > div { position:absolute; inset:auto 0 0; padding:2.5rem 1.5rem 1.25rem; background:linear-gradient(transparent,rgba(0,0,0,.78)); display:flex; align-items:baseline; gap:.6rem; }
.welcome .w-casa-image span { color:#e0a36a; font-weight:700; text-transform:uppercase; }
.welcome .w-casa-image > .w-photo-caption { justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:.65rem 1rem; }
.welcome .w-photo-name { display:flex; align-items:baseline; flex-wrap:wrap; gap:.4rem .6rem; }
.welcome .w-photo-dates { margin-left:auto; display:grid; gap:.3rem; font-size:.8rem; font-weight:500; color:var(--bs-white); }
.welcome .w-photo-dates > div { display:flex; align-items:center; gap:.55rem; }
.welcome .w-photo-dates i { width:1rem; text-align:center; color:var(--w-accent); }
.welcome .w-photo-dates time { white-space:nowrap; }
@media (max-width:575px) { .welcome .w-casa-image > .w-photo-caption { padding:2.5rem 1rem 1rem; } .welcome .w-photo-dates { font-size:.75rem; } }
.welcome .w-welcome-head { position:relative; padding-top:.25rem; }
.welcome .w-welcome-head h1 { letter-spacing:0; text-wrap:balance; }
.welcome .w-greet { font-size:1.9rem; font-weight:700; margin:0; }
.welcome .w-greet-sub { display:block; margin-top:.15rem; font-size:.95rem; font-weight:500; color:var(--w-accent, #d4a373); }
.w-lang { margin-bottom:.75rem !important; }
.welcome .w-casa-kicker { margin-bottom:.4rem !important; }
.welcome .w-casa-kicker { display:flex; align-items:center; justify-content:center; gap:.75rem; margin-bottom:.9rem; color:var(--bs-secondary-color); font-size:.72rem; font-weight:700; text-transform:uppercase; }
.welcome .w-casa-kicker span { width:28px; height:1px; background:rgba(212,163,115,.55); }
.welcome .w-status-grid { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:repeat(3,minmax(0,1fr)); gap:1rem; }
.welcome .w-status-ctrl { flex-direction:column; gap:.5rem; padding:0; background:transparent; border:0; box-shadow:none; }
.welcome .w-ctrl-pair { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; width:100%; height:100%; }
.welcome .w-ctrl-half { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.25rem; min-width:0; padding:.55rem .4rem; background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.08); border-radius:12px; color:var(--bs-body-color); text-align:center; }
.welcome .w-ctrl-half:hover:not(:disabled) { border-color:rgba(188,108,37,.6); transform:translateY(-1px); }
.welcome { --w-lamp-surface:#fff2ce; --w-lamp-ink:#73501e; --w-lamp-glow:rgba(255,207,92,.45); }
.welcome .w-ctrl-half.on { border-color:var(--w-sun,var(--bs-warning)); background:var(--w-lamp-surface); color:var(--w-lamp-ink); box-shadow:0 0 16px var(--w-lamp-glow); }
.welcome .w-ctrl-half.on i { color:var(--w-lamp-ink); text-shadow:0 0 10px var(--w-lamp-glow); }
.welcome .w-ctrl-half.on .w-ctrl-label { color:var(--w-lamp-ink); }
.welcome .w-ctrl-half:disabled { opacity:.5; }
.welcome .w-ctrl-half i { font-size:1.15rem; color:#e0a36a; }
.welcome .w-ctrl-half .w-ctrl-label { font-size:.72rem; font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:var(--bs-body-color); max-width:100%; }
.welcome .w-ctrl-half strong { font-size:.8rem; }
.welcome .w-gate-confirm { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.4rem; text-align:center; width:100%; height:100%; }
.welcome .w-gate-confirm strong { font-size:.95rem; }
.welcome .w-gate-confirm p { font-size:.75rem; color:var(--bs-secondary-color); margin:0 0 .35rem; }
.welcome .w-gate-confirm .w-btn { padding:.45rem .5rem; font-size:.8rem; }
.welcome .w-status-ctrl .w-control-msg { margin-top:.1rem; }
.welcome .w-status-grid:has(> :nth-child(2):last-child) { grid-template-rows:repeat(2,minmax(0,1fr)); }
.home-hero{min-height:clamp(590px,82vh,820px);overflow:hidden;display:flex;align-items:center;isolation:isolate}.home-hero-media,.home-hero-slide,.home-hero-shade{position:absolute;inset:0}.home-hero-media{z-index:-3;transform:translateY(var(--home-hero-shift,0))}.home-hero-slide{background-position:center;background-size:cover;opacity:0;transform:scale(1.03);transition:opacity 1.2s ease,transform 7s ease}.home-hero-slide.active{opacity:1;transform:scale(1.09)}.home-hero-shade{z-index:-2;background:linear-gradient(180deg,rgba(20,14,11,.18),rgba(20,14,11,.2) 38%,rgba(20,14,11,.82))}.home-hero-inner{padding-top:clamp(6rem,15vh,10rem);padding-bottom:clamp(5rem,10vh,7rem)}.home-hero-kicker,.home-eyebrow{display:inline-flex;align-items:center;gap:.45rem;color:var(--bs-warning);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.11em}.home-hero-title{max-width:900px;margin:.8rem auto 1rem;font-size:clamp(3.1rem,8vw,6.8rem);line-height:.9;font-weight:800;text-wrap:balance}.home-hero-subtitle{max-width:700px;margin:0 auto 1.75rem;font-size:clamp(1.05rem,2vw,1.35rem);color:rgba(255,255,255,.88);text-wrap:balance}.home-hero-actions{display:flex;justify-content:center;gap:.7rem;flex-wrap:wrap}.home-hero-actions .btn,.home-closing .btn{min-height:50px;display:inline-flex;align-items:center;gap:.55rem;border-radius:8px}.home-hero-actions .btn-outline-light{color:var(--bs-white);border-color:rgba(255,255,255,.72)}.home-hero-trust{margin:1.5rem auto 0;display:flex;justify-content:center;align-items:center;gap:.75rem;flex-wrap:wrap;color:rgba(255,255,255,.85);font-size:.82rem}.home-hero-trust span{padding-right:.75rem;border-right:1px solid rgba(255,255,255,.3)}.home-hero-trust strong{color:var(--bs-white);font-size:1rem}.home-hero-trust small{color:rgba(255,255,255,.65)}.home-hero-dots{position:absolute;z-index:2;bottom:1.5rem;left:50%;transform:translateX(-50%);display:flex;gap:.35rem}.home-hero-dots span{width:18px;height:2px;background:rgba(255,255,255,.35);transition:width .3s ease,background-color .3s ease}.home-hero-dots span.active{width:42px;background:var(--bs-warning)}.home-only{display:inline-flex;align-items:center;gap:.5rem;color:var(--bs-warning);font-weight:600}.home-casa-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.home-casa-card{position:relative;background:var(--bs-tertiary-bg);border:1px solid rgba(255,255,255,.09);border-radius:8px;overflow:hidden;transition:transform .35s ease,border-color .35s ease}.home-casa-card:hover{transform:translateY(-5px);border-color:rgba(var(--bs-primary-rgb),.55)}.home-casa-photo img{transition:transform .65s ease}.home-casa-card:hover .home-casa-photo img{transform:scale(1.04)}.home-casa-photo>span{position:absolute;top:.75rem;left:.75rem;padding:.32rem .6rem;border-radius:4px;background:rgba(28,21,18,.78);color:var(--bs-white);font-size:.7rem;font-weight:700;text-transform:uppercase}.home-casa-body{padding:1.25rem}.home-casa-link{display:inline-flex;align-items:center;gap:.45rem;margin-top:1rem;color:var(--bs-warning);font-size:.82rem;font-weight:700}.home-proof{background:var(--bs-tertiary-bg)}.home-proof-score{color:var(--bs-heading-color);font-size:clamp(3rem,7vw,5.5rem);line-height:.8}.home-quote{height:100%;margin:0;padding:1.5rem;border-left:2px solid var(--bs-primary);background:rgba(255,255,255,.025)}.home-quote>i{color:var(--bs-primary);font-size:1.6rem}.home-quote blockquote{margin:.3rem 0 1rem;color:var(--bs-heading-color);font-size:clamp(1rem,2vw,1.2rem);line-height:1.55}.home-quote figcaption{color:var(--bs-secondary-color);font-size:.75rem}.home-area-grid{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:repeat(2,220px);gap:.75rem}.home-area-tile{position:relative;display:flex;align-items:flex-end;overflow:hidden;min-height:220px;border-radius:8px;background-position:center;background-size:cover;text-decoration:none}.home-area-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(20,14,11,.9));transition:background-color .3s ease}.home-area-tile:hover::after{background-color:rgba(188,108,37,.12)}.home-area-1{grid-row:1/3}.home-area-tile span{position:relative;z-index:1;width:100%;display:flex;align-items:center;gap:.55rem;padding:1.2rem;color:var(--bs-white);font-size:1.05rem;font-weight:700}.home-area-tile span .bi-arrow-up-right{margin-left:auto}.home-closing{position:relative;padding:clamp(4rem,9vw,7rem) 0;background-color:var(--bs-tertiary-bg);background-position:center;background-size:cover}.home-closing h2{max-width:720px;margin:0 auto .75rem;font-size:clamp(2rem,5vw,3.6rem);text-wrap:balance}.home-closing p{color:rgba(255,255,255,.8);margin-bottom:1.5rem}
@media(max-width:767px){.home-hero{min-height:min(calc(100svh - 70px),700px)}.home-hero-inner{padding-top:3rem;padding-bottom:4rem}.home-hero-title{font-size:clamp(2.6rem,12.5vw,4.2rem);margin-top:.6rem;margin-bottom:.8rem}.home-hero-subtitle{margin-bottom:1.35rem}.home-hero-actions{flex-direction:column;width:min(100%,340px);margin-inline:auto}.home-hero-actions .btn{width:100%}.home-hero-trust{max-width:320px;margin-top:1.1rem}.home-casa-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;margin-inline:-.75rem;padding:0 .75rem .5rem}.home-casa-strip::-webkit-scrollbar{display:none}.home-casa-item{flex:0 0 86%;scroll-snap-align:center}.home-area-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-rows:auto;gap:.75rem}.home-area-tile{min-height:0;min-width:0;aspect-ratio:16/9}.home-area-1{grid-row:auto}.home-area-tile span{min-width:0;padding:1rem}.home-area-tile span>i{flex-shrink:0}}
@media(prefers-reduced-motion:reduce){.home-hero-slide,.home-casa-card,.home-casa-photo img{transition:none!important}.home-hero-slide{transform:none!important}}
.welcome .w-gift-choice { display:flex; gap:.5rem; flex-wrap:wrap; }
.welcome .w-choice { border:1px solid rgba(255,255,255,.12); border-radius:9px; background:rgba(255,255,255,.04); color:var(--bs-secondary-color); padding:.55rem .85rem; font-weight:700; }
.welcome .w-choice i { margin-right:.45rem; }
.welcome .w-choice.active { background:#bc6c25; border-color:#bc6c25; color:#fff; }
.welcome .w-ac-lock { min-height:190px; display:flex; align-items:center; justify-content:center; gap:1rem; text-align:left; }
.welcome .w-ac-lock strong { display:block; font-size:1.2rem; }
.welcome .w-ac-lock p { max-width:500px; margin:.3rem 0 0; color:var(--bs-secondary-color); }
.welcome .w-goodbye { padding:clamp(3rem,10vw,7rem) 1.5rem; }
.welcome .w-goodbye > i { font-size:4rem; color:#e0a36a; margin-bottom:1.5rem; }
.welcome .w-goodbye p { color:var(--bs-secondary-color); font-size:1.1rem; margin:1rem auto 2rem; max-width:520px; }
@media(max-width:991px){.welcome .w-status-grid{margin-top:1rem;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto}.welcome .w-tile{min-height:100px;flex-direction:column;justify-content:center;text-align:center;padding:.75rem}.welcome .w-status-ctrl{min-height:100px;flex-direction:column;justify-content:center;text-align:center;padding:0}.welcome .w-tile{gap:.45rem}.welcome .w-ctrl-pair{gap:.4rem}.welcome .w-ctrl-half{padding:.45rem .25rem}.welcome .w-ctrl-half i{font-size:1rem}.welcome .w-ctrl-half small{white-space:normal}}
@media(max-width:575px){.welcome .w-status-grid{grid-template-columns:1fr}.welcome .w-ctrl-pair{grid-template-columns:1fr 1fr}.welcome .w-status-ctrl{padding:0}.welcome .w-ctrl-half{padding:.5rem .6rem}}
@media(max-width:991px){
  .dash { padding-left:.75rem !important; padding-right:.75rem !important; overflow-x:hidden; }
  .dash-head { display:grid !important; grid-template-columns:minmax(0,1fr) auto; gap:.75rem !important; }
  .dash-head h1 { min-width:0; margin-right:0 !important; }
  .dash-actions { margin-left:0 !important; }
  .dash-pill { min-height:40px; padding:.35rem .65rem; }
  .dash-card { border-radius:12px; }
  .dash-timeline { overscroll-behavior-x:contain; scrollbar-width:thin; scroll-snap-type:x proximity; }
  .dash-tl-head { min-height:38px; }
  .dash-tl-head .dash-tl-label { min-height:38px; }
  .dash-tl-head .dash-tl-day { padding:.35rem 0; scroll-snap-align:start; }
  .dash-tl-row:not(.dash-tl-head) { min-height:62px; }
  .dash-tl-label { width:34px; flex-basis:34px; }
  .dash-tl-track { height:62px; }
  .dash-tl-bar { top:9px; height:44px; padding:0 4px; font-size:11px; border-left-width:3px; border-right-width:3px; }
  .dash-tl-meta { gap:.3rem; font-size:10px; }
  .dash-calendar-foot { padding:.65rem .25rem .15rem; }
  .dash-casa-strip { display:flex; gap:.75rem; overflow-x:auto; scroll-snap-type:x mandatory; overscroll-behavior-x:contain; scrollbar-width:none; margin:0 -.75rem; padding:0 .75rem; }
  .dash-casa-strip::-webkit-scrollbar { display:none; }
  .dash-casa-slide { flex:0 0 calc(100% - 1.5rem); scroll-snap-align:start; }
  .dash-casa-slide .dash-card { min-height:100%; }
}
@media(max-width:767px){.dash-calendar-foot{align-items:flex-start;flex-direction:column}.dash-legend{justify-content:flex-start}.dash-contact{flex:1 1 100%}.dash-quick-contacts{grid-template-columns:1fr}.adm-search{max-width:none;width:100%}.welcome .w-ac-lock{text-align:center;flex-direction:column}.home-hero{background-position:center center}.casa-lightbox-prev{left:.5rem}.casa-lightbox-next{right:.5rem}}
@media(max-width:575px){
  .dash { padding-top:1rem !important; }
  .dash-head { margin-bottom:1rem !important; }
  .dash-head h1 { font-size:1.65rem; }
  .dash-actions { gap:.35rem !important; }
  .dash-pill { font-size:12px; gap:.3rem; padding:.3rem .55rem; }
  .dash-card.p-2 { padding:.35rem !important; }
  .dash-tl-name { font-size:11px; }
  .dash-casa-slide { flex-basis:calc(100% - 2rem); }
  .dash-casa-slide > .dash-card { padding:.85rem !important; }
  .dash-casa-slide .d-flex.gap-3.small { gap:.45rem .8rem !important; }
}

/* Foto-beheer (geheime link) */
.photo-admin{max-width:1100px;margin:0 auto;padding:2rem 1rem 4rem;font-family:inherit}
.photo-admin h1{font-size:1.6rem;margin-bottom:.5rem}
.pa-intro{color:#666;max-width:640px}
.pa-busy{color:#b06a4a;font-weight:600}
.pa-error{color:#b02a2a}
.pa-section{margin:2.5rem 0 1rem;font-size:1.25rem;border-bottom:2px solid #d98e6a;padding-bottom:.4rem}
.pa-album{margin-bottom:2rem}
.pa-album-head{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}
.pa-album-head h3{margin:0;font-size:1.1rem}
.pa-add{background:#d98e6a;color:#fff;border:0;border-radius:8px;padding:.5rem 1rem;font-size:.95rem;cursor:pointer}
.pa-add:hover{background:#c47a56}
.pa-empty{color:#999;font-style:italic}
.pa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem}
.pa-photo{position:relative;margin:0;aspect-ratio:4/3;border-radius:8px;overflow:hidden;background:#eee}
.pa-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pa-photo.is-cover{outline:3px solid #d98e6a}
.pa-photo{cursor:grab}
.pa-photo.is-dragging{opacity:.4}
.pa-move{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;background:rgba(0,0,0,.65);color:#fff;border-radius:999px;padding:2px 6px;font-size:12px}
.pa-move button{border:0;background:none;color:#fff;font-size:18px;line-height:1;cursor:pointer;padding:0 4px}
.pa-move button:disabled{opacity:.3;cursor:default}
.pa-status{color:#6b8f5e;font-size:.85rem;margin-left:auto;margin-right:8px}
.pa-status-err{color:#b5523b}
.pa-del{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#fff;font-size:18px;line-height:1;cursor:pointer}
.pa-star{position:absolute;top:6px;left:6px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(0,0,0,.65);color:#ffd97a;font-size:16px;line-height:1;cursor:pointer}

/* Welcome page: guest language switch */
.w-lang { display: inline-flex; gap: .15rem; padding: .15rem; margin-bottom: .5rem; border: 1px solid rgba(188,108,37,.25); border-radius: 999px; background: rgba(255,255,255,.04); }
.w-lang a { padding: .1rem .5rem; border-radius: 999px; font-size: .7rem; font-weight: 600; letter-spacing: .04em; text-decoration: none; color: inherit; opacity: .7; }
.w-lang a:hover { opacity: 1; }
.w-lang a.active { background: #bc6c25; color: #fff; opacity: 1; }

/* Welcome environmental data uses the existing terracotta and pool-water roles. */
.welcome { --w-water: #5cc8bb; --w-water-soft: rgba(42,157,143,.18); --w-sun: var(--bs-warning); --w-local-line: rgba(255,255,255,.07); }
.welcome .w-local .w-card { border-radius:8px; padding:1.4rem; overflow:hidden; }
.w-weather { display:flex; flex-direction:column; }
.w-weather-symbol { color:var(--w-sun); font-size:2rem; animation:w-weather-breathe 6s ease-in-out infinite; }
.w-weather-temp { font-size:2.75rem; font-weight:600; line-height:1.3; margin-top:1rem; }
.w-weather-temp small { font-size:1.15rem; vertical-align:super; }
.w-weather-temp > span { font-size:1.3rem; color:var(--bs-secondary-color); margin-left:1rem; font-weight:400; }
.w-local-update { display:block; font-size:.7rem; color:var(--bs-secondary-color); }
.w-weather > .w-local-update { margin-top:auto; }
.w-local-empty { min-height:120px; display:flex; align-items:center; color:var(--bs-secondary-color); }
.w-lake-level { position:relative; isolation:isolate; min-height:100px; overflow:hidden; }
.w-lake-number { position:relative; font-size:2.6rem; font-weight:600; color:var(--w-water); line-height:1.2; }
.w-lake-number small { font-size:1rem; }
.w-lake-number > span { display:block; font-size:.8rem; font-weight:400; color:var(--bs-body-color); }
.w-lake-waves { position:absolute; inset:30% 0 0; z-index:-1; opacity:.65; }
.w-lake-waves span { position:absolute; height:120px; width:200%; border-radius:48%; background:var(--w-water-soft); top:20px; left:-50%; animation:w-lake-drift 9s ease-in-out infinite alternate; }
.w-lake-waves span + span { top:35px; animation-delay:-5s; animation-duration:12s; }
.w-lake-meter { display:block; width:100%; height:9px; margin-top:.7rem; accent-color:var(--w-water); }
.w-lake-meter::-webkit-meter-bar { background:var(--w-local-line); border:0; }
.w-lake-meter::-webkit-meter-optimum-value { background:var(--w-water); }
.w-lake-meter::-moz-meter-bar { background:var(--w-water); }
.w-local-source { display:inline-flex; gap:.4rem; align-items:center; font-size:.7rem; margin-top:.5rem; color:var(--bs-secondary-color); }
@keyframes w-weather-breathe { 50% { transform:translateY(-3px) rotate(5deg); } }
@keyframes w-lake-drift { to { transform:translateX(12%) rotate(7deg); } }
@media(prefers-reduced-motion:reduce) { .w-weather-symbol,.w-lake-waves span { animation:none; } }

/* ---------- Discover ---------- */
.disc-hero { position: relative; padding: 9rem 0 6rem; background: radial-gradient(ellipse at 50% 0%, rgba(188,108,37,.28), transparent 60%), linear-gradient(180deg, rgba(25,18,14,.2), rgba(25,18,14,1)); overflow: hidden; }
.disc-eyebrow { display: inline-block; padding: .35rem 1rem; border-radius: 999px; border: 1px solid rgba(188,108,37,.5); color: #d9925a; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.disc-stats { display: flex; gap: 2.5rem; justify-content: center; flex-wrap: wrap; margin-top: 3rem; color: rgba(255,255,255,.6); font-size: .9rem; }
.disc-stats strong { display: block; color: #fff; font-size: 1.8rem; font-weight: 600; line-height: 1.1; }
.disc-card { position: relative; padding: 1.75rem; border-radius: 1rem; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.08); transition: transform .25s ease, border-color .25s ease, background .25s ease; }
.disc-card:hover { transform: translateY(-4px); border-color: rgba(188,108,37,.45); background: rgba(188,108,37,.06); }
.disc-icon { width: 48px; height: 48px; border-radius: 12px; display: grid; place-items: center; background: rgba(188,108,37,.15); color: #d9925a; font-size: 1.2rem; margin-bottom: 1.1rem; }
.disc-num { position: absolute; top: 1.5rem; right: 1.75rem; font-size: 2rem; font-weight: 700; color: rgba(255,255,255,.07); }
.disc-band { background: rgba(255,255,255,.02); border-top: 1px solid rgba(255,255,255,.05); border-bottom: 1px solid rgba(255,255,255,.05); }
.disc-dog { display: flex; flex-direction: column; justify-content: center; background: linear-gradient(160deg, rgba(188,108,37,.18), rgba(255,255,255,.03)); }
.disc-cta { padding: 3.5rem 1.5rem; border-radius: 1.5rem; background: linear-gradient(135deg, rgba(188,108,37,.22), rgba(188,108,37,.05)); border: 1px solid rgba(188,108,37,.3); }

/* Welcome announcements and pre-arrival checklist */
.w-notices, .w-amenities { --w-notice-line: color-mix(in srgb,var(--bs-primary) 28%,transparent); --w-notice-fill: color-mix(in srgb,var(--bs-primary) 6%,var(--bs-body-bg)); }
.w-notice { display:flex; gap:1rem; align-items:flex-start; padding:1rem; margin-bottom:.65rem; border:1px solid var(--w-notice-line); border-left:3px solid var(--bs-primary); border-radius:8px; background:var(--w-notice-fill); }
.w-notice.warning { border-left-color:var(--bs-warning); }
.w-notice-icon { color:var(--bs-primary); padding-top:.15rem; flex:0 0 22px; }
.w-notice.warning .w-notice-icon { color:var(--bs-warning); }
.w-notice-copy { min-width:0; flex:1; }
.w-notice-copy p { color:var(--bs-secondary-color); font-size:14px; white-space:pre-line; overflow-wrap:anywhere; }
.w-notice-date { color:var(--bs-primary); font-size:12px; margin:.35rem 0 .55rem; }
.w-notice-flyer { position:relative; display:block; flex:0 0 72px; width:72px; height:96px; overflow:hidden; border:1px solid var(--w-notice-line); border-radius:6px; padding:0; background:var(--bs-secondary-bg); }
.w-notice-flyer img { width:100%; height:100%; object-fit:contain; }
.w-notice-flyer > i { position:absolute; bottom:3px; right:3px; padding:3px; background:var(--bs-body-bg); color:var(--bs-body-color); border-radius:3px; font-size:11px; }
.w-notice-flyer:focus-visible { outline:2px solid var(--bs-primary); outline-offset:3px; }
.w-amenities { border-top:1px solid var(--w-notice-line); border-bottom:1px solid var(--w-notice-line); padding:1.2rem 0; }
.w-amenities ul { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem 1.5rem; }
.w-amenities li { display:flex; gap:.6rem; font-size:13px; color:var(--bs-secondary-color); overflow-wrap:anywhere; }
.w-flyer-overlay { position:fixed; inset:0; background:color-mix(in srgb,var(--bs-body-bg) 90%,transparent); z-index:2100; }
.w-flyer-dialog { position:fixed; left:50%; top:50%; transform:translate(-50%,-50%); width:min(92vw,850px); max-height:92dvh; padding:1rem; background:var(--bs-body-bg); color:var(--bs-body-color); border:1px solid var(--bs-primary); border-radius:8px; z-index:2101; }
.w-flyer-dialog h2 { padding-right:3rem; }
.w-flyer-dialog > img { display:block; width:100%; max-height:calc(92dvh - 90px); object-fit:contain; }
.w-flyer-close { position:absolute; top:.6rem; right:.6rem; }
@media(max-width:575.98px) { .w-amenities ul { grid-template-columns:1fr; } .w-notice { gap:.65rem; padding:.85rem; } .w-notice-flyer { width:60px; height:80px; flex-basis:60px; } }

/* Welcome quick nav + compact notices */
.w-quicknav{position:sticky;top:.5rem;z-index:20;scroll-margin:0}
.w-quicknav-track{display:flex;gap:.4rem;align-items:center;overflow-x:auto;scrollbar-width:none;padding:.4rem;border-radius:999px;background:rgba(20,18,16,.72);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.08)}
.w-quicknav-track::-webkit-scrollbar{display:none}
.w-qn-link,.w-qn-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border-radius:999px;font-size:.85rem;white-space:nowrap;color:inherit}
.w-qn-link{border:0;background:transparent;transition:background .2s}
.w-qn-link:hover,.w-qn-link:focus-visible{background:#c9775a;color:#fff}
.w-qn-badge{min-width:1.2rem;height:1.2rem;padding:0 .3rem;border-radius:999px;background:#c9775a;color:#fff;font-size:.7rem;font-weight:700;display:inline-grid;place-items:center}
.w-qn-link:hover .w-qn-badge{background:#fff;color:#c9775a}
.w-qn-sep{flex:0 0 1px;height:1.2rem;background:rgba(255,255,255,.15);margin:0 .2rem}
.w-qn-chip{background:rgba(255,255,255,.06);font-variant-numeric:tabular-nums}
.w-qn-chip i{color:#c9775a;font-size:.8rem}
#w-news,#w-info,#w-route,#w-local{scroll-margin-top:4.5rem}
.w-notice-list{display:flex;flex-direction:column;gap:.4rem}
.w-notice-row{display:flex;align-items:center;gap:.6rem;width:100%;text-align:left;padding:.6rem .85rem;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);color:inherit;transition:background .2s,border-color .2s}
.w-notice-row:hover{background:rgba(201,119,90,.12);border-color:rgba(201,119,90,.4)}
.w-notice-row.warning .w-notice-row-icon{color:#e0a44a}
.w-notice-row-icon{color:#c9775a}
.w-notice-row-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.w-notice-row-date{font-size:.78rem;opacity:.75;white-space:nowrap}
.w-notice-row-meta{opacity:.5;font-size:.8rem}
.w-notice-dialog img{max-width:100%;border-radius:10px}
.w-notice-dialog{max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:1.1rem 1.1rem 1.4rem}
.w-notice-dialog .w-flyer-close{position:sticky;top:0;float:right;margin:-.3rem -.3rem .4rem .6rem;z-index:2}
.w-notice-dialog > img{max-height:none}

/* ===== Welcome page: clean minimal layout ===== */
.w-clean{--w-line:rgba(255,255,255,.07);--w-terra:#c9775a}
.w-clean .w-welcome-head{margin-bottom:1.25rem}
.w-clean .w-greet{font-size:clamp(1.7rem,4vw,2.4rem)}
.w-clean .w-section{margin:.75rem 0}
.w-clean .w-card{border-radius:14px;border:1px solid var(--w-line);box-shadow:none}
.w-clean .row.g-3{--bs-gutter-x:.75rem;--bs-gutter-y:.75rem}

/* Compact three-row sticky menu */
.w-clean .w-quicknav{position:sticky;top:.5rem;z-index:30;margin-bottom:.75rem}
.w-qn-panel{border-radius:18px;background:rgba(22,19,17,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.08);padding:.35rem}
.w-qn-row{display:flex;align-items:center;gap:.35rem}
.w-qn-row.w-qn-stats{border-top:1px solid rgba(255,255,255,.06);margin-top:.3rem;padding-top:.3rem}
.w-qn-scroll{flex:1;min-width:0;display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none;mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 22px),transparent 100%);-webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 22px),transparent 100%);padding-right:20px}
.w-qn-scroll::-webkit-scrollbar{display:none}
.w-clean .w-qn-link{padding:.45rem .8rem;font-size:.85rem}
.w-clean .w-qn-link.active{background:var(--w-terra,#c9775a);color:#fff}
.w-clean .w-qn-link.active .w-qn-badge{background:#fff;color:var(--w-terra,#c9775a)}
.w-qn-stat{flex:0 0 auto;display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .7rem;border-radius:10px;font-size:.8rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.w-qn-stat i{color:var(--w-terra,#c9775a);font-size:.85rem}
.w-qn-stat small{opacity:.6;font-size:.72rem}
.w-qn-stat strong{font-weight:600}
.w-qn-key strong{letter-spacing:.08em}
.w-qn-lang{position:relative;flex:0 0 auto}
.w-qn-lang summary{list-style:none;display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .7rem;border-radius:999px;font-size:.78rem;font-weight:600;cursor:pointer;background:rgba(255,255,255,.06)}
.w-qn-lang summary::-webkit-details-marker{display:none}
.w-qn-caret{font-size:.6rem;opacity:.6;transition:transform .2s}
.w-qn-lang[open] .w-qn-caret{transform:rotate(180deg)}
.w-qn-lang-menu{position:absolute;right:0;top:calc(100% + .45rem);min-width:170px;padding:.3rem;border-radius:12px;background:#1d1916;border:1px solid rgba(255,255,255,.1);box-shadow:0 12px 30px rgba(0,0,0,.4);display:grid}
.w-qn-lang-menu a{display:flex;gap:.6rem;align-items:center;padding:.45rem .6rem;border-radius:8px;font-size:.85rem;color:inherit;text-decoration:none}
.w-qn-lang-menu a span{font-size:.7rem;font-weight:700;width:1.6rem;opacity:.6}
.w-qn-lang-menu a:hover{background:rgba(255,255,255,.06)}
.w-qn-lang-menu a.active{background:var(--w-terra,#c9775a);color:#fff}
.w-qn-lang-menu a.active span{opacity:1}
#w-ac,#w-stay,#w-reservoir{scroll-margin-top:11rem}
.w-clean #w-news,.w-clean #w-info,.w-clean #w-route,.w-clean #w-local{scroll-margin-top:11rem}

/* Hero */
.w-hero-row{display:grid;gap:.75rem;margin-bottom:.5rem}
.w-hero-row.has-ctrl{grid-template-columns:minmax(0,1fr) 220px}
.w-clean .w-casa-image{border-radius:16px;overflow:hidden;aspect-ratio:16/8;position:relative}
.w-clean .w-casa-image img{width:100%;height:100%;object-fit:cover}
.w-hero-row .w-status-ctrl{height:100%}
@media(max-width:767px){.w-hero-row.has-ctrl{grid-template-columns:1fr}.w-clean .w-casa-image{aspect-ratio:4/3}}

/* Notices */
.w-clean .w-notice-list{display:grid;gap:.5rem}
.w-clean .w-notice-row{display:grid;grid-template-columns:2rem 1.25rem minmax(0,1fr) auto auto;padding:.7rem .85rem;border-radius:12px;background:transparent;border-color:var(--w-line)}
.w-notice-step{width:1.75rem;height:1.75rem;display:grid;place-items:center;border-radius:7px;background:color-mix(in srgb,var(--w-terra,#c9775a) 16%,transparent);color:var(--w-terra,#c9775a);font-size:.72rem;font-weight:700;font-variant-numeric:tabular-nums}
.w-clean .w-notice-row-icon{font-size:.9rem;text-align:center}
.w-notice-row-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}
.w-clean .w-notice-row-title{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
.w-notice-when{display:flex;flex-wrap:wrap;gap:.6rem;font-size:.75rem;color:var(--bs-secondary-color)}
.w-notice-when > span:first-child{color:var(--w-terra,#c9775a);font-weight:600;text-transform:capitalize}
.w-notice-time{display:inline-flex;gap:.3rem;align-items:center}

/* Amenities */
.w-amenity-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.4rem 1.25rem;font-size:.9rem}
.w-amenity-list li{display:flex;gap:.5rem}
.w-amenity-list i{color:var(--w-terra,#c9775a)}
.w-amenity-note{display:block;font-size:.78rem;line-height:1.35;color:var(--bs-secondary-color);opacity:.85;margin-top:.1rem}
.w-travel-list{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.45rem}
.w-travel-list li{display:grid;grid-template-columns:1.7rem 1.1rem minmax(0,1fr);align-items:center;gap:.5rem;padding:.45rem 0;border-bottom:1px solid var(--w-line)}
.w-travel-list li>span{width:1.55rem;height:1.55rem;display:grid;place-items:center;border-radius:6px;background:color-mix(in srgb,var(--w-terra,#c9775a) 16%,transparent);color:var(--w-terra,#c9775a);font-size:.7rem;font-weight:700}
.w-travel-list li>i{color:var(--w-terra,#c9775a);font-size:.75rem}
.w-travel-list li>strong,.w-travel-list li>div>strong{font-size:.88rem;font-weight:500}
.w-travel-list li>div{display:grid;gap:.12rem;min-width:0}
.w-travel-note{font-size:.78rem;line-height:1.35;color:var(--bs-secondary-color);opacity:.85}
.w-travel-address{padding:.8rem 0;margin-bottom:.8rem;border-bottom:1px solid var(--w-line);color:var(--bs-secondary-color);font-size:.9rem}
.w-travel-address>:last-child{margin-bottom:0}

/* AC lock: controls stay visible, while the blocking layer remains fully inert */
.w-clean .w-ac-panel{padding:1rem 1.25rem!important;position:relative;overflow:hidden}
.w-clean .w-ac-panel.is-locked .w-ac-controls{opacity:.3;filter:saturate(.55);pointer-events:none;user-select:none}
.w-clean .w-ac-lock{position:absolute;inset:0;z-index:2;display:flex;gap:.9rem;align-items:center;min-height:0;padding:1rem 1.25rem;text-align:left;justify-content:center;background:color-mix(in srgb,var(--bs-body-bg) 62%,transparent);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.w-clean .w-ac-lock>div{max-width:440px}
.w-clean .w-ac-lock p{margin:0;font-size:.85rem;color:var(--bs-secondary-color)}

/* Tighter, consistent vertical rhythm on the guest page */
.w-clean .w-notice-list+.w-section,.w-clean .w-hero-row+.w-section{margin-top:.75rem}
.w-clean #w-info{margin-top:.5rem!important}
.w-clean #w-local .w-section{margin-bottom:.75rem}
.w-clean .w-things{margin-block:.75rem}
.w-whatsapp-contact{display:grid;grid-template-columns:2.5rem minmax(0,1fr) auto;align-items:center;gap:.8rem;width:100%;margin:.75rem 0 0;padding:.75rem .9rem;border:1px solid color-mix(in srgb,var(--bs-success) 48%,transparent);border-radius:12px;background:color-mix(in srgb,var(--bs-success) 9%,transparent);color:var(--bs-body-color);text-decoration:none;transition:background .2s,border-color .2s}
.w-whatsapp-contact:hover{background:color-mix(in srgb,var(--bs-success) 15%,transparent);border-color:var(--bs-success);color:var(--bs-body-color)}
.w-whatsapp-contact>span{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:9px;background:var(--bs-success);color:#fff;font-size:1.2rem}
.w-whatsapp-copy{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.w-whatsapp-copy strong{font-size:.92rem}
.w-whatsapp-copy small{font-size:.8rem;color:var(--bs-body-color);font-variant-numeric:tabular-nums}
.w-outdoor-icon{display:inline-flex;align-items:center;gap:.05rem;flex:none}
.w-outdoor-icon .bi-thermometer-half{font-size:.85em}
.w-whatsapp-contact>i{font-size:.72rem;opacity:.5}

@media(max-width:575.98px){
  .w-clean .w-section{margin:.75rem 0}
  .w-clean .w-notice-row{grid-template-columns:1.8rem 1.1rem minmax(0,1fr) auto;padding:.65rem .7rem;gap:.45rem}
  .w-clean .w-notice-row-meta.bi-image{display:none}
  .w-notice-step{width:1.55rem;height:1.55rem}
  .w-clean .w-ac-lock{flex-direction:row;text-align:left;padding:.85rem}
  .w-clean .w-ac-lock .w-icon{flex:0 0 auto}
  .w-whatsapp-contact{margin-top:.6rem}
}

/* Weather: Apple-style list */
.w-local-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:.75rem}
@media(max-width:767px){.w-local-grid{grid-template-columns:1fr}}
.w-clean .w-local .w-card{padding:1rem 1.15rem;border-radius:14px}
.w-forecast-head{display:flex;gap:.45rem;align-items:center;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--bs-secondary-color);padding-bottom:.6rem;border-bottom:1px solid var(--w-line,rgba(255,255,255,.07));margin-bottom:.3rem}
.w-forecast ul{list-style:none;margin:0 0 .6rem;padding:0}
.w-forecast li{display:grid;grid-template-columns:3.6rem 2.6rem 2.2rem 1fr 2.2rem;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--w-line,rgba(255,255,255,.07));font-variant-numeric:tabular-nums}
.w-forecast li:last-child{border-bottom:0}
.w-fc-day{font-weight:600;text-transform:capitalize}
.w-fc-icon{display:flex;flex-direction:column;align-items:center;line-height:1}
.w-fc-icon i{color:var(--w-sun,#e0a44a);font-size:1.05rem}
.w-fc-icon small{font-size:.62rem;color:var(--w-water,#5cc8bb);margin-top:.15rem}
.w-fc-min{text-align:right;color:var(--bs-secondary-color)}
.w-fc-max{font-weight:600}
.w-fc-bar{position:relative;height:5px;border-radius:5px;background:rgba(255,255,255,.08)}
.w-fc-bar span{position:absolute;top:0;bottom:0;border-radius:5px;background:linear-gradient(90deg,#d9a46a,#c9775a)}

.w-qn-stat-action{border:0;background:transparent;color:var(--bs-body-color);cursor:pointer}
.w-qn-stat-action:hover{background:var(--w-line)}
.w-qn-outings{border-top:1px solid var(--w-line);margin-top:.3rem;padding-top:.3rem}
.w-qn-outings a{display:flex;align-items:center;gap:.55rem;width:100%;padding:.45rem .7rem;color:var(--bs-body-color);text-decoration:none;font-size:.8rem}
.w-qn-outings a span{flex:1;min-width:0}
.w-qn-outings a i{color:var(--w-terra)}
.w-qn-outings a:hover{background:var(--w-line);border-radius:8px}
.w-gate-dialog{max-width:420px;padding:1.4rem}
.w-gate-dialog .btn-outline-light{color:var(--bs-body-color);background:transparent;border-color:var(--bs-secondary-color)}

/* Things to do: "Nu open" toggle + open state */
.things-open-toggle { display:inline-flex; align-items:center; gap:.45rem; flex-shrink:0; border:0; background:transparent; color:rgba(255,255,255,.75); font-size:.82rem; padding:.35rem .6rem; border-radius:999px; white-space:nowrap; }
.things-open-toggle:hover { color:#fff; }
.things-open-toggle.active { color:#fff; background:rgba(201,122,84,.18); }
.things-open-box { width:16px; height:16px; border-radius:4px; border:1.5px solid rgba(255,255,255,.45); display:inline-flex; align-items:center; justify-content:center; font-size:.6rem; }
.things-open-toggle.active .things-open-box { background:var(--hacienda-accent, #c97a54); border-color:var(--hacienda-accent, #c97a54); color:#fff; }
.things-state { display:flex; align-items:center; gap:.4rem; }
.things-state .things-dot { width:7px; height:7px; border-radius:50%; background:currentColor; }
.things-state.is-open { color:#7fbf8a; }
.things-state.is-closed { color:rgba(255,255,255,.45); }

/* Interactive walking routes: shared percentage geometry across edit and view. */
.walk-page { padding-top: 2rem; padding-bottom: 3rem; }
.walk-eyebrow { display:block; color:var(--bs-primary); font-size:.8rem; font-weight:600; margin-bottom:.6rem; }
.walk-tip { color:var(--bs-secondary-color); margin-bottom:1.5rem; }
.walk-tip strong { color:var(--bs-primary); }
.walk-layout { display:grid; grid-template-columns:minmax(0, 1.5fr) minmax(0, 1fr); gap:2rem; align-items:start; }
.walk-map { position:relative; overflow:hidden; border-radius:8px; }
.walk-map img { width:100%; height:auto; display:block; }
.walk-marker { position:absolute; transform:translate(-50%,-50%); width:36px; height:36px; border-radius:50%; border:2px solid var(--bs-heading-color); color:var(--bs-heading-color); background:var(--bs-body-bg); font-size:.85rem; font-weight:700; padding:0; z-index:1; cursor:pointer; }
.walk-marker.active, .walk-marker:hover { background:var(--bs-primary); }
.walk-marker:focus-visible { outline:3px solid var(--bs-warning); outline-offset:3px; }
.walk-edit-map .walk-marker { touch-action:none; cursor:grab; }
.walk-edit-map .walk-marker:active { cursor:grabbing; }
.walk-point-tabs { display:flex; gap:.5rem; overflow-x:auto; padding:2px 0 .8rem; }
.walk-point-tab { flex:0 0 40px; height:40px; border-radius:50%; border:1px solid var(--bs-border-color); background:transparent; color:var(--bs-body-color); padding:0; }
.walk-point-tab.active { background:var(--bs-primary); color:var(--bs-heading-color); border-color:var(--bs-primary); }
.walk-description { border-top:1px solid var(--bs-border-color); padding-top:1rem; }
.walk-description p { white-space:pre-line; line-height:1.6; overflow-wrap:anywhere; }
.walk-pager { display:flex; gap:.5rem; margin-top:1rem; }
.walk-pager-btn { flex:1; height:44px; border-radius:999px; border:1px solid var(--bs-border-color); background:transparent; color:var(--bs-body-color); padding:0; transition:background .15s ease, color .15s ease, border-color .15s ease; }
.walk-pager-btn:not(:disabled):hover, .walk-pager-btn:not(:disabled):focus-visible { background:var(--bs-primary); color:var(--bs-heading-color); border-color:var(--bs-primary); }
.walk-pager-btn:disabled { opacity:.35; cursor:default; }
.walk-editor-point { padding:.75rem 0; border-bottom:1px solid var(--bs-border-color); }
.walk-editor-point.active { border-bottom-color:var(--bs-primary); }
.walking-admin { padding-top:1rem; }
.walking-admin .dash-label { margin-bottom:0; }
@media(max-width:767.98px) { .walk-layout { grid-template-columns:minmax(0,1fr); gap:1.25rem; } .walk-page { padding-top:1.5rem; } .walk-marker { width:32px; height:32px; font-size:.75rem; } .walk-details h2 { margin-bottom:.5rem!important; } }

/* Visitor accessibility & mobile usability */
.skip-link{position:absolute;left:-9999px;top:.5rem;z-index:2000;padding:.6rem 1rem;border-radius:999px;background:var(--bs-primary);color:#fff}
.skip-link:focus{left:.5rem}
a:focus-visible,button:focus-visible,.btn:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--bs-primary);outline-offset:2px}
@media (max-width:767.98px){
  footer a,.navbar-nav .nav-link,.dropdown-item{display:inline-flex;align-items:center;min-height:44px}
  .btn{min-height:44px}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Shared casa previews */
.home-casa-photo{position:relative;overflow:hidden}
.casa-preview-main{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.casa-preview-title{color:var(--bs-heading-color)}
.casa-preview-summary{display:flex;align-items:baseline;gap:.5rem;margin:0;color:var(--bs-secondary-color);font-size:.875rem}
.casa-preview-summary>i,.casa-preview-highlights i{color:var(--bs-primary);flex-shrink:0}
.casa-related-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
.casas-overview{padding:3rem 0 4rem}
.casas-overview-heading{max-width:680px;margin-bottom:2rem}
.casas-overview-heading h1{margin-bottom:.75rem}
.casas-overview-heading p{color:var(--bs-secondary-color);margin:0}
.casas-overview-list{display:grid;gap:1.5rem}
.casa-overview-card{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.casa-overview-card:hover{transform:none}
.casa-overview-photos{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:4px;height:360px;min-height:0}
.casa-overview-photos .casa-preview-main{grid-row:1/3;height:100%;aspect-ratio:auto;min-height:0}
.casa-preview-small{display:block;width:100%;height:100%;min-height:0;object-fit:cover}
.casa-overview-photos:not(:has(.casa-preview-small)){grid-template-columns:1fr}
.casa-overview-card .home-casa-body{padding:2rem;align-self:center;min-width:0}
.casa-preview-highlights{list-style:none;padding:0;margin:1.25rem 0 0;display:grid;gap:.75rem;color:var(--bs-secondary-color);font-size:.9rem}
.casa-preview-highlights li{display:flex;gap:.6rem;align-items:baseline}
.casa-preview-highlights span{overflow-wrap:anywhere}
.casa-overview-card .home-casa-link{margin-top:1.5rem;min-height:44px}
@media(max-width:991.98px){.casa-overview-card{grid-template-columns:1fr}.casa-overview-photos{height:340px;min-height:0}.casa-overview-card .home-casa-body{padding:1.5rem}}
@media(max-width:767.98px){.casas-overview{padding:1.5rem 0 3rem}.casas-overview-heading{margin-bottom:1.5rem}.casa-overview-photos{height:240px}.casa-overview-card .home-casa-body{padding:1.25rem}.casa-preview-highlights{gap:.65rem}}

/* Casas page: illustrated hacienda map as page hero */
.casas-map-hero{position:relative;background:transparent;padding:clamp(1rem,2.5vw,2.5rem) clamp(.75rem,3vw,2.5rem) 0}
.casas-map-hero img{display:block;width:100%;height:auto;min-height:100%;object-fit:cover}
.casas-map-hero-inner{position:relative;max-width:1200px;margin:0 auto;height:clamp(300px,44vw,560px);border-radius:18px;border:clamp(6px,1vw,12px) solid #33261c;box-shadow:0 0 0 1px rgba(224,150,105,.3),0 30px 70px -28px rgba(0,0,0,.85),0 12px 28px -12px rgba(0,0,0,.55);overflow:hidden}
.casas-map-hero-inner img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;object-position:center top}
@media(min-width:992px){.casas-map-hero-inner{height:auto;aspect-ratio:1376/768;max-height:640px}}
.casas-map-hotspots{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:hidden}
.casas-map-hotspot{pointer-events:auto;cursor:pointer;outline:none}
.casas-map-hotspot:focus-visible{outline:none}
.casas-map-hotspot polygon{fill:var(--bs-primary);fill-opacity:0;stroke:var(--bs-warning);stroke-opacity:0;stroke-width:2;vector-effect:non-scaling-stroke;transition:fill-opacity .2s ease,stroke-opacity .2s ease,filter .2s ease}
.casas-map-hotspot:hover polygon,.casas-map-hotspot:focus-visible polygon{fill-opacity:.24;stroke-opacity:1;filter:drop-shadow(0 0 7px var(--bs-primary)) drop-shadow(0 0 15px var(--bs-primary))}
.casas-map-hotspot:active polygon{fill-opacity:.4}
@media(prefers-reduced-motion:reduce){.casas-map-hotspot polygon{transition:none}}
.casas-map-hero-inner::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(28,21,18,.45),rgba(28,21,18,0) 26%,rgba(28,21,18,.1) 55%,rgba(28,21,18,.82) 84%,#1c1512 100%),radial-gradient(120% 90% at 50% 45%,rgba(28,21,18,0) 55%,rgba(28,21,18,.55) 100%)}
.casas-map-hero-text{position:absolute;left:0;right:0;bottom:clamp(1.25rem,4vw,2.75rem);z-index:2;text-align:center;padding:0 1rem}
.casas-map-hero-text h1{margin-bottom:.4rem;text-shadow:0 2px 18px rgba(0,0,0,.55)}
.casas-map-hero-text p{color:rgba(255,255,255,.78);max-width:620px;margin:0 auto;text-shadow:0 1px 12px rgba(0,0,0,.5)}
@media(max-width:767.98px){.casas-map-hero-inner{height:clamp(240px,68vw,360px)}.casas-map-hero-text p{font-size:.95rem}}
