    /* 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 {
            flex-wrap: nowrap;
            justify-content: flex-start;
            overflow-x: auto;
            scrollbar-width: none;
            width: 100%;
        }
        .things-nav-bar::-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 { border-radius: 1.25rem; }
    }
    .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; }
.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-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-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-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; }

/* ---------- 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-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-ctrl-half.on { border-color:#bc6c25; background:rgba(188,108,37,.16); color:#f0c49a; }
.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 { background-position:center calc(50% + var(--home-hero-shift, 0px)); background-size:cover; will-change:background-position; }
.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: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}}

/* 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-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; }

/* ---------- 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); }
