/* =========================================================================
   DS-SYSTEM — sitewide design-manual override
   Loaded AFTER main.css (dep: main-css, priority 20). Restyles the legacy
   component classes (.btn, .property, filters, forms, containers) to the
   new v3 design manual using the shared tokens.

   Values mirror the v3 homepage (front-page.php) design source.
   !important is used on key visual props to win over deeply-nested
   main.css selectors (e.g. .nehnutelnosti-archive … .property …).
   The ds / hv3 / fv3 prototype classes carry their own inline CSS and
   are intentionally NOT affected here.
   ========================================================================= */

/* Gambetta (accent serif) is loaded via <link> in header-v3.php <head>. */

/* ===== TOKENS ===== */
:root {
    --p-50:#EAF3FD; --p-100:#D7E8FC; --p-200:#AECFF6; --p-300:#7BAFE8;
    --p-400:#3D90F0; --p-500:#1079EC; --p-600:#0C61C0; --p-700:#0A4E9B;
    --p:#1079EC;
    --ink:#0e0e0e; --ink-2:#1B1B1B; --body:#2b3340; --gray:#828282; --label:#A3A3A3;
    --bg:#F6FAFE; --surface:#fff; --line:#E6EEF9;
    --land-1:#cfe3fb; --land-2:#eaf3fd; --land-3:#dcecd2; --land-4:#bcd79f;
    --r-sm:10px; --r-md:16px; --r-lg:22px; --r-xl:28px; --pill:999px;
    --sh-sm:0 2px 10px rgba(14,30,60,.06);
    --sh-md:0 12px 32px rgba(14,30,60,.10);
    --sh-lg:0 24px 60px rgba(14,30,60,.14);
    /* exkluzívne — polnočná modrá (naviazaná na --p-500) */
    --x-bg:#0C1B2E; --x-top:#123054; --x-bot:#0A1726;
    --x-surface:#142C4A; --x-hover:#183860; --x-line:#1F3B5E;
    --x-grad:radial-gradient(1100px 460px at 10% -25%, rgba(16,121,236,.38), transparent 60%), linear-gradient(180deg, var(--x-top) 0%, var(--x-bot) 100%);
}

/* ===== LAYOUT ===== */
.container { max-width:1312px; }

/* =========================================================================
   BUTTONS  — pill + gradient primary, matches .ds-btn
   ========================================================================= */
.btn:not(.wp-block-button) {
    /* no display override — must not unhide .district-map-toggle (display:none) */
    border-radius:var(--pill) !important;
    padding:13px 26px !important;
    font-weight:600 !important;
    letter-spacing:.02em;
    line-height:1.2;
    border:none;
    transition:background-position .3s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease, filter .18s ease;
}
/* primary (blue) + default */
.btn:not(.wp-block-button).blue,
.btn:not(.wp-block-button):not(.white):not(.black) {
    background-image:linear-gradient(135deg,var(--p-400),var(--p-600) 55%,var(--p-700)) !important;
    background-color:var(--p-500) !important;
    background-size:200% 100%;
    background-position:0 0;
    color:#F3F7FF !important;
}
.btn:not(.wp-block-button).blue:hover,
.btn:not(.wp-block-button):not(.white):not(.black):hover {
    background-position:100% 0 !important;
    color:#F3F7FF !important;
}
/* ink (black) */
.btn:not(.wp-block-button).black {
    background-image:linear-gradient(120deg,#3a3a3a,#1b1b1b 50%,#000) !important;
    background-color:var(--ink) !important;
    color:#fff !important;
}
.btn:not(.wp-block-button).black:hover {
    filter:brightness(1.15);
    background-image:linear-gradient(120deg,#3a3a3a,#1b1b1b 50%,#000) !important;
    color:#fff !important;
}
/* white → outline */
.btn:not(.wp-block-button).white {
    background:#fff !important;
    color:var(--p-600) !important;
    box-shadow:inset 0 0 0 1.5px var(--p-200) !important;
}
.btn:not(.wp-block-button).white:hover {
    background:var(--p-50) !important;
    color:var(--p-700) !important;
    box-shadow:inset 0 0 0 1.5px var(--p-500) !important;
}
/* load-more span-button keeps its layout, gains the pill look via rules above */

/* =========================================================================
   PROPERTY CARD  — matches .ds-card-b
   ========================================================================= */
.property {
    border-radius:var(--r-lg) !important;
    border:1px solid var(--line) !important;
    box-shadow:var(--sh-sm) !important;
    background:var(--surface) !important;
    transition:box-shadow .22s ease, border-color .22s ease !important;
}
.property:hover {
    border-color:var(--p-200) !important;
    box-shadow:var(--sh-md) !important;
}
.property .image-wrap { border-radius:var(--r-md) !important; }
.property .image-wrap img,
.property .image-wrap .image-fallback { border-radius:var(--r-md) !important; }
/* tame the aggressive zoom */
.property:hover .image-wrap img { transform:scale(1.05) !important; }

/* badges over the photo (1/1, KOMASÁCIA) → translucent pill */
.property .checkbox-image-wrapper .image-tag {
    background:rgba(255,255,255,.9) !important;
    backdrop-filter:blur(6px);
    color:var(--p-700) !important;
    font-size:12px !important;
    font-weight:700 !important;
    letter-spacing:.03em;
    padding:5px 11px !important;
    border-radius:var(--pill) !important;
    box-shadow:var(--sh-sm);
}
.property .image-tags .image-tag {
    background:var(--p-500) !important;
    color:#fff !important;
    font-size:12px !important;
    font-weight:700 !important;
    padding:5px 11px !important;
    border-radius:var(--pill) !important;
}

/* body */
.property .property-data .price {
    color:var(--ink) !important;
    font-weight:700 !important;
    letter-spacing:-0.01em;
}
.property .property-data .title {
    color:var(--ink-2) !important;
    font-weight:600 !important;
}
.property .property-data .property-tags {
    border-top:1px solid var(--line) !important;
}
.property .property-data .property-tags .tag {
    background:var(--p-50) !important;
    color:var(--p-700) !important;
    font-size:13px !important;
    font-weight:600;
    padding:5px 11px !important;
    border-radius:var(--pill) !important;
}
/* keep sale price accent readable */
.property .property-data .price .sale-price { color:#cb1717 !important; }
.property .property-data .price .regular-price { color:var(--gray) !important; }

/* =========================================================================
   FILTER PANEL + CONTROLS  — matches .ds-input / panel
   ========================================================================= */
.main-filter,
.panel-shadow {
    box-shadow:var(--sh-sm) !important;
}
.main-filter {
    background:var(--surface) !important;
    border:1px solid var(--line) !important;
    border-radius:var(--r-lg) !important;
    position:relative; /* positioning context for select2 dropdownParent */
}
.main-filter input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not(.select2-search__field),
.main-filter select {
    background:var(--bg) !important;
    border:1.5px solid var(--line) !important;
    border-radius:var(--r-sm) !important;
    color:var(--ink) !important;
    transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.main-filter input:not(.select2-search__field)::placeholder { color:var(--label) !important; }
.main-filter input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not(.select2-search__field):focus,
.main-filter select:focus,
.main-filter input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not(.select2-search__field):focus-visible,
.main-filter select:focus-within {
    outline:none !important;
    border-color:var(--p-500) !important;
    background:#fff !important;
    box-shadow:0 0 0 3px var(--p-50) !important;
}
/* submit → primary pill */
.main-filter input[type="submit"] {
    background-image:linear-gradient(135deg,var(--p-400),var(--p-600) 55%,var(--p-700)) !important;
    background-color:var(--p-500) !important;
    color:#F3F7FF !important;
    border:none !important;
    border-radius:var(--pill) !important;
    font-weight:600 !important;
    padding-block:14px !important;
    cursor:pointer;
}
.main-filter input[type="submit"]:hover { filter:brightness(1.06); }
.main-filter .reset { color:var(--p-600) !important; font-weight:600; }

/* ===== select2 (type / lokalita) — box matches inputs, dropdown per design manual ===== */
.main-filter .select2-container--default .select2-selection--single,
.main-filter .select2-container--default .select2-selection--multiple {
    background:var(--bg) !important;
    border:1.5px solid var(--line) !important;
    border-radius:var(--r-sm) !important;
    min-height:46px;
    display:flex;
    align-items:center;
}
.main-filter .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height:normal;
    color:var(--ink) !important;
    font-weight:500;
    padding-left:14px;
}
.main-filter .select2-container--default .select2-selection__placeholder { color:var(--label) !important; }
.main-filter .select2-container--default .select2-selection--single .select2-selection__arrow { height:44px; }
.select2-container--default .select2-selection__clear { color:var(--gray); font-weight:700; margin-right:6px; }
.select2-container--default .select2-selection__clear:hover { color:#cb1717; }
.main-filter .select2-container--default.select2-container--focus .select2-selection--single,
.main-filter .select2-container--default.select2-container--focus .select2-selection--multiple,
.main-filter .select2-container--default.select2-container--open .select2-selection--single {
    border-color:var(--p-500) !important;
    box-shadow:0 0 0 3px var(--p-50) !important;
}

/* multiple render (type / lokalita): chips + search field match the design,
   so the box reads like the other inputs (bg var(--bg), no gray default chips) */
.main-filter .select2-container--default .select2-selection--multiple {
    padding:5px 8px !important;
}
.main-filter .select2-container--default .select2-selection--multiple .select2-selection__rendered {
    display:flex !important;
    flex-wrap:wrap;
    align-items:center;
    gap:6px;
    padding:0 !important;
    margin:0;
    width:100%;
}
.main-filter .select2-container--default .select2-selection--multiple .select2-selection__choice {
    display:inline-flex;
    align-items:center;
    gap:6px;
    background:var(--p-500) !important;
    border:none !important;
    border-radius:var(--pill) !important;
    color:#fff !important;
    font-size:13px !important;
    line-height:1.2;
    margin:0 !important;
    padding:4px 11px !important;
}
.main-filter .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
    color:#fff !important;
    font-size:14px;
    line-height:1;
    margin-right:0 !important;
    order:2;
    opacity:.85;
}
.main-filter .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
    opacity:1;
    background:transparent !important;
    color:#fff !important;
}
.main-filter .select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {
    font-size:14px !important;
    line-height:1.3;
    margin:0 !important;
    color:var(--ink) !important;
    background:transparent !important;
}
.main-filter .select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field::placeholder { color:var(--label) !important; }

/* pull the results closer to the field (main.css sets margin-top:15px) */
.main-filter .select2-dropdown.select2-dropdown--below { margin-top:-6px; }

/* dropdown panel */
.select2-container--default .select2-dropdown {
    border:1.5px solid var(--p-200) !important;
    border-radius:var(--r-sm) !important;
    box-shadow:var(--sh-md);
    overflow:hidden;
}
.select2-container--default .select2-results > .select2-results__options { padding:6px; }
.select2-container--default .select2-results__option {
    padding:9px 12px;
    border-radius:8px;
    font-size:14px;
    color:var(--ink-2);
    line-height:1.3;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background:var(--p-50) !important;
    color:var(--p-700) !important;
}
.select2-container--default .select2-results__option[aria-selected="true"] {
    background:var(--p-50);
    color:var(--p-700);
    font-weight:600;
}
/* optgroup header (e.g. "Bratislava - kraj") */
.select2-container--default .select2-results__group {
    padding:10px 12px 4px;
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em;
    color:var(--label);
}
/* search field inside the dropdown */
.main-filter .select2-container--default .select2-search--dropdown .select2-search__field,
.select2-container--default .select2-search--dropdown .select2-search__field {
    border:none !important;
    outline:none !important;
    box-shadow:none !important;
    background:var(--bg) !important;
    border-radius:var(--r-sm) !important;
    padding:8px 10px !important;
}

/* sort select → custom native JS/CSS dropdown (.ds-select), native <select> kept hidden as source of truth */
.order-wrap select#order.ds-select-native {
    position:absolute !important;
    width:1px; height:1px;
    padding:0; margin:-1px; border:0;
    clip:rect(0 0 0 0); clip-path:inset(50%);
    overflow:hidden; white-space:nowrap;
}
.ds-select { position:relative; display:inline-block; min-width:240px; margin-bottom:12px; font-family:inherit; }
.ds-select__btn {
    display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%;
    background:var(--surface); color:var(--ink-2); font-family:inherit; font-size:14px; font-weight:400;
    border:1px solid var(--line); border-radius:var(--r-sm); padding:11px 14px;
    cursor:pointer; text-align:left; line-height:1.2;
    transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.ds-select__btn:hover { border-color:var(--p-200); }
.ds-select.open .ds-select__btn,
.ds-select__btn:focus-visible {
    outline:none; border-color:var(--p-500);
    box-shadow:0 0 0 3px var(--p-50);
}
.ds-select__val { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ds-select__chev { flex:0 0 16px; width:16px; height:16px; stroke:var(--gray); transition:transform .2s ease; }
.ds-select.open .ds-select__chev { transform:rotate(180deg); }
.ds-select__menu {
    display:none; position:absolute; z-index:40; top:calc(100% + 6px); left:0; right:0;
    list-style:none; margin:0; padding:6px; max-height:320px; overflow-y:auto;
    background:#fff; border:1px solid var(--line); border-radius:var(--r-sm); box-shadow:var(--sh-md);
}
.ds-select.open .ds-select__menu { display:block; }
.ds-select__opt {
    padding:9px 12px; border-radius:8px; font-size:14px; font-weight:400; color:var(--ink-2);
    line-height:1.3; cursor:pointer; white-space:nowrap;
}
.ds-select__opt:hover, .ds-select__opt.active { background:var(--p-50); color:var(--p-700); }
.ds-select__opt[aria-selected="true"] { background:var(--p-50); color:var(--p-700); font-weight:600; }
@media (max-width:600px) {
    .ds-select { min-width:0; width:fit-content; max-width:100%; display:block; }
    /* open to the LEFT (anchor right edge) so the wide menu doesn't cause horizontal scroll */
    .ds-select__menu { left:auto; right:0; min-width:100%; width:max-content; max-width:min(90vw,340px); }
}

/* keep the district map + its expand/tooltip overlays below the sticky header
   (they use z-index 1000/2000; isolate them into one stacking context) */
.district-map-section { isolation:isolate; }

/* mobile filter toggler → primary pill */
.mobile-filter-toggler {
    background-image:linear-gradient(135deg,var(--p-400),var(--p-600) 55%,var(--p-700)) !important;
    background-color:var(--p-500) !important;
    color:#fff !important;
    border-radius:var(--pill) !important;
    box-shadow:var(--sh-md) !important;
}

/* "Vrátiť sa na ponuky" back bar — only inside the mobile drawer */
.filter-back { display:none; }
@media (max-width:992px) {
    /* mobile filter panel → full-page drawer, slides in from the right only */
    .nehnutelnosti-archive .archive-wrap .sticky-search {
        top:0 !important;
        left:auto !important;
        right:0 !important;
        bottom:0 !important;
        width:100% !important;
        max-width:100% !important;
        height:100vh !important;
        height:100dvh !important;
        margin:0 !important;
        transform:translateX(100%);
        transition:transform .35s ease !important;
        overflow-y:auto;
        background:var(--surface);
        z-index:1200 !important;
    }
    .nehnutelnosti-archive .archive-wrap .sticky-search.active {
        top:0 !important;
        left:auto !important;
        right:0 !important;
        transform:translateX(0);
    }
    /* let the panel's own inner padding breathe; kill the rounded card look in fullscreen */
    .nehnutelnosti-archive .archive-wrap .sticky-search .main-filter {
        border-radius:0 !important;
        border:none !important;
        box-shadow:none !important;
    }
    .filter-back {
        display:inline-flex;
        align-items:center;
        gap:8px;
        margin:0 0 18px;
        padding:6px 2px;
        font-size:14px;
        font-weight:600;
        color:var(--gray) !important;
        text-decoration:none;
        background:none;
    }
    .filter-back svg { width:18px; height:18px; flex:0 0 18px; }
    .filter-back:hover { color:var(--p-700) !important; }
    /* move the "Hľadať" submit button to the right side of the drawer */
    .main-filter .half-field:last-child { flex-direction:row-reverse; }
}

/* home/blog filter chips */
.filter {
    border-radius:var(--pill) !important;
    border:1px solid var(--line) !important;
    background:var(--surface) !important;
    color:var(--ink-2) !important;
    font-weight:600;
    transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.filter:hover { border-color:var(--p-200) !important; background:var(--p-50) !important; }
.filter.active { background:var(--p-500) !important; color:#fff !important; border-color:var(--p-500) !important; }

/* =========================================================================
   FORMS  (Contact Form 7 + newsletter)
   ========================================================================= */
.wpcf7-form input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
.wpcf7-form textarea,
.wpcf7-form select {
    border:1.5px solid var(--line) !important;
    border-radius:var(--r-sm) !important;
    background:var(--bg) !important;
    color:var(--ink) !important;
    font-family:inherit;
    transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.wpcf7-form input:not([type="submit"]):focus,
.wpcf7-form textarea:focus,
.wpcf7-form select:focus {
    outline:none !important;
    border-color:var(--p-500) !important;
    background:#fff !important;
    box-shadow:0 0 0 3px var(--p-50) !important;
}
.wpcf7-form input[type="submit"] {
    background-image:linear-gradient(135deg,var(--p-400),var(--p-600) 55%,var(--p-700)) !important;
    background-color:var(--p-500) !important;
    color:#F3F7FF !important;
    border:none !important;
    border-radius:var(--pill) !important;
    font-weight:600 !important;
    padding:13px 26px !important;
    cursor:pointer;
    transition:filter .18s ease;
}
.wpcf7-form input[type="submit"]:hover { filter:brightness(1.06); }

/* =========================================================================
   HEADER v3  (moved out of header-v3.php inline <style>)
   ========================================================================= */
.hv3 {
    --p:#1079EC; --p-400:#3D90F0; --p-500:#1079EC; --p-600:#0C61C0; --p-700:#0A4E9B; --p-50:#EAF3FD; --ink:#0e0e0e; --ink-2:#1B1B1B; --gray:#6b7480; --line:#E6EEF9;
    position:sticky; top:0; left:0; right:0; z-index:1000;
    background:rgba(255,255,255,.92); backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line); border-radius:0 0 18px 18px; font-family:"Epilogue",system-ui,sans-serif;
    transition:transform .35s ease, box-shadow .25s ease;
    padding-inline:0; /* override main.css `header{padding-inline:20px}` so the topbar is full-width */
}
body.admin-bar .hv3 { top:32px; }
@media (max-width:782px) { body.admin-bar .hv3 { top:46px; } }
.hv3.hv3--scrolled { box-shadow:0 6px 24px rgba(14,30,60,.08); }
.hv3.hv3--hidden { transform:translateY(-100%); }
.hv3 * { box-sizing:border-box; }
/* topbar — blue announcement strip above the nav */
.hv3__topbar { background:linear-gradient(135deg,var(--p),var(--p-700)); color:#EAF3FD; font-size:13px; line-height:1; }
.hv3__topbar p { margin:0; }
.hv3__tb-inner { width:100%; max-width:1312px; margin:0 auto; padding:5px 24px; min-height:30px; height:auto; display:flex; align-items:center; justify-content:center; gap:28px; }
.hv3__topbar a { color:#fff; text-decoration:none; }
.hv3__topbar a:hover { color:#fff; opacity:.85; }
.hv3__tb-side { display:flex; align-items:center; gap:20px; }
.hv3__tb-item { display:inline-flex; align-items:center; gap:7px; white-space:nowrap; }
.hv3__tb-item svg { width:14px; height:14px; }
.hv3__inner { width:100%; max-width:1312px; margin:0 auto; padding:0 24px; height:84px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.hv3__logo img { height:56px; width:auto; display:block; }
.hv3__nav { display:flex; align-items:center; gap:12px; flex:1; justify-content:center; }
.hv3__nav > a, .hv3__link { display:inline-flex; align-items:center; gap:6px; padding:10px 18px; border-radius:10px; font-size:16px; font-weight:600; color:var(--ink-2); text-decoration:none; background:none; border:none; cursor:pointer; font-family:inherit; transition:background .15s ease, color .15s ease; }
.hv3__nav > a:hover, .hv3__link:hover { background:var(--p-50); color:var(--p-700); }
.hv3__link svg { width:16px; height:16px; transition:transform .2s ease; }
.hv3__right { display:flex; align-items:center; gap:12px; }
.hv3__btn { display:inline-flex; align-items:center; padding:13px 26px; border-radius:999px; background-image:linear-gradient(135deg,var(--p-400),var(--p-600) 55%,var(--p-700)); background-size:200% 100%; background-position:0 0; background-color:var(--p-500); color:#F3F7FF; font-size:16px; font-weight:600; letter-spacing:.02em; text-decoration:none; transition:background-position .3s ease, background-color .18s ease, color .18s ease; }
.hv3__btn:hover { background-position:100% 0; color:#F3F7FF; }
.hv3__burger { display:none; background:var(--p-50); border:none; color:var(--p-700); width:42px; height:42px; border-radius:11px; cursor:pointer; align-items:center; justify-content:center; }
.hv3__burger svg { width:22px; height:22px; }
/* header search toggle — minimal, black icon only (no background box) */
.hv3__iconbtn { display:inline-flex; align-items:center; justify-content:center; background:none; border:none; color:var(--ink); width:40px; height:40px; padding:0; cursor:pointer; transition:color .15s ease, opacity .15s ease; }
.hv3__iconbtn:hover { color:var(--p-600); }
.hv3__iconbtn svg { width:22px; height:22px; }

/* slide-down site search — hosts the same .ds-search / .ds-search-results as the homepage hero.
   z-index above the sticky header (1000) + admin bar; results dropdown must escape the box. */
#full-screen-search { z-index:1200 !important; box-shadow:var(--sh-md) !important; overflow:visible !important; }
/* dim backdrop — click to close */
.fss-backdrop { position:fixed; inset:0; z-index:1190; background:rgba(8,14,22,.42); opacity:0; visibility:hidden; transition:opacity .3s ease, visibility .3s ease; }
.fss-backdrop.active { opacity:1; visibility:visible; }
body.admin-bar #full-screen-search.active { top:32px !important; }
@media (max-width:782px) { body.admin-bar #full-screen-search.active { top:46px !important; } }
#full-screen-search .ds-search { margin:0 auto; }
#full-screen-search .ds-search input { margin-top:0 !important; font-weight:400 !important; }
#full-screen-search .ds-search-results { z-index:1210; }
#full-screen-search .close-search { position:absolute; top:24px; right:40px; display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border:none; border-radius:10px; background:none; color:var(--ink); cursor:pointer; transition:color .15s ease; }
#full-screen-search .close-search:hover { color:var(--p-600); }
#full-screen-search .close-search svg { width:24px; height:24px; }
@media (max-width:480px) { #full-screen-search .close-search { right:16px; top:14px; } }

/* megamenu */
.hv3__item { position:static; }
.hv3__mega { position:absolute; left:50%; transform:translateX(-50%) translateY(8px); top:100%; width:min(900px,calc(100vw - 32px)); background:#fff; border:1px solid var(--line); border-radius:18px; box-shadow:0 24px 60px rgba(14,30,60,.16); padding:22px; display:grid; grid-template-columns:2fr 1fr; gap:22px; opacity:0; visibility:hidden; transition:opacity .2s ease, transform .2s ease, visibility .2s ease; }
.hv3__item:hover .hv3__mega, .hv3__item:focus-within .hv3__mega { opacity:1; visibility:visible; transform:translateX(-50%) translateY(6px); }
.hv3__item:hover .hv3__link svg { transform:rotate(180deg); }
.hv3__mega-left { display:flex; flex-direction:column; }
.hv3__mega-types { display:grid; grid-template-columns:1fr 1fr; gap:8px; align-content:start; }
.hv3__mega-all { display:inline-flex; align-items:center; gap:8px; align-self:flex-start; margin-top:auto; padding:11px 12px; font-size:14px; font-weight:600; color:var(--p); text-decoration:none; border-radius:10px; transition:background .15s ease; }
.hv3__mega-all:hover { background:var(--p-50); }
.hv3__mega-all svg { width:16px; height:16px; }
.hv3__tile { display:flex; align-items:center; gap:11px; padding:8px 10px; border-radius:12px; text-decoration:none; color:var(--ink-2); transition:background .15s ease; }
.hv3__tile:hover { background:var(--p-50); }
.hv3__tile .ic { width:40px; height:40px; flex:0 0 40px; border-radius:11px; background:var(--p-50); display:flex; align-items:center; justify-content:center; transition:background .15s ease; }
.hv3__tile .ic svg { width:20px; height:20px; stroke:var(--p-700); transition:stroke .15s ease; }
.hv3__tile:hover .ic { background:var(--p); }
.hv3__tile:hover .ic svg { stroke:#fff; }
.hv3__tile span { font-size:14px; font-weight:600; line-height:1.2; }
.hv3__mega-contact { background:var(--p-50); border:1px solid var(--line); border-radius:14px; padding:22px; display:flex; flex-direction:column; }
.hv3__mega-contact h4 { margin:0 0 4px; font-size:16px; color:var(--ink); }
.hv3__mega-contact p { margin:0 0 14px; font-size:13px; color:var(--gray); }
.hv3__crow { display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--ink-2); padding:9px 8px; border-radius:10px; transition:background .15s ease; }
.hv3__crow:hover { background:#fff; }
.hv3__crow .ic { width:36px; height:36px; flex:0 0 36px; border-radius:10px; background:var(--p); display:flex; align-items:center; justify-content:center; }
.hv3__crow .ic svg { width:17px; height:17px; stroke:#fff; }
.hv3__crow b { display:block; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--gray); font-weight:600; padding-bottom:2px; }
.hv3__crow span { font-size:15px; color:var(--ink-2); }

/* mobile */
/* drawer lives outside .hv3 → re-declare tokens here */
.hv3__mobile, .hv3__overlay { --p:#1079EC; --p-600:#0C61C0; --p-700:#0A4E9B; --p-50:#EAF3FD; --ink:#0e0e0e; --ink-2:#1B1B1B; --gray:#6b7480; --label:#A3A3A3; --line:#E6EEF9; font-family:"Epilogue",system-ui,sans-serif; }
.hv3__mobile *, .hv3__overlay * { box-sizing:border-box; }
.hv3__mobile { display:none; }
.hv3__mclose { display:none; }
.hv3__overlay { display:none; position:fixed; inset:0; background:rgba(8,14,22,.5); z-index:1090; }
.hv3__overlay.open { display:block; }
@media (max-width:980px) {
    .hv3__tb-inner { min-height:28px; height:auto; padding:6px 16px; font-size:12px; flex-wrap:wrap; gap:6px 16px; }
    .hv3__logo img { height:44px; }
    .hv3__tb-hide-sm { display:none; }
    .hv3__nav, .hv3__btn { display:none; }
    .hv3__burger { display:flex; }
    .hv3__mobile { display:block; position:fixed; top:0; right:0; bottom:0; width:min(86%,360px); background:#fff; z-index:1100; overflow-y:auto; padding:18px 22px 32px; transform:translateX(100%); transition:transform .3s ease; box-shadow:-14px 0 44px rgba(14,30,60,.18); }
    .hv3__mobile.open { transform:translateX(0); }
    .hv3__mclose { display:flex; align-items:center; justify-content:center; width:40px; height:40px; margin:0 0 8px auto; border:none; background:var(--p-50); color:var(--p-700); border-radius:11px; cursor:pointer; }
    .hv3__mclose svg { width:22px; height:22px; }
    .hv3__mobile a.mlink { display:block; padding:13px 4px; font-size:16px; font-weight:600; color:var(--ink-2); text-decoration:none; }
    .hv3__mobile a.mlink:active { color:var(--p-700); }
    .hv3__mobile .mlabel { display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--label); margin:16px 4px 8px; }
    .hv3__mobile .mtypes { display:flex; flex-direction:column; gap:2px; }
    .hv3__mobile .mtile { display:flex; align-items:center; gap:12px; padding:6px 8px; border-radius:12px; font-size:15px; font-weight:600; color:var(--ink-2); text-decoration:none; }
    .hv3__mobile .mtile:active { background:var(--p-50); }
    .hv3__mobile .mtile .ic { width:38px; height:38px; flex:0 0 38px; border-radius:11px; background:var(--p-50); display:flex; align-items:center; justify-content:center; }
    .hv3__mobile .mtile .ic svg { width:19px; height:19px; stroke:var(--p-600); }
    .hv3__mobile .mcontact { margin-top:18px; display:flex; flex-direction:column; gap:2px; }
    .hv3__mobile .mcontact a { display:flex; align-items:center; gap:10px; padding:9px 4px; color:var(--p-700); font-weight:600; font-size:15px; text-decoration:none; }
    .hv3__mobile .mcontact a svg { width:17px; height:17px; flex:0 0 17px; stroke:var(--p-600); }
    .hv3__mobile .mbtn { display:block; margin-top:18px; text-align:center; background:linear-gradient(135deg,var(--p),var(--p-700)); color:#F3F7FF; border-radius:999px; border:none; padding:14px; font-size:15px; font-weight:600; text-decoration:none; }
}
@media (max-width:480px) { .hv3__inner { padding:0 16px; } }


/* =========================================================================
   HOMEPAGE (.ds scope) — moved from front-page.php inline <style>
   ========================================================================= */

/* ===== TOKENS ===== */
.ds {
    --p-50:#EAF3FD; --p-100:#D7E8FC; --p-200:#AECFF6; --p-300:#7BAFE8;
    --p-400:#3D90F0; --p-500:#1079EC; --p-600:#0C61C0; --p-700:#0A4E9B;
    --ink:#0e0e0e; --ink-2:#1B1B1B; --body:#2b3340; --gray:#828282; --label:#A3A3A3;
    --bg:#F6FAFE; --surface:#fff; --line:#E6EEF9;
    --land-1:#cfe3fb; --land-2:#eaf3fd; --land-3:#dcecd2; --land-4:#bcd79f;
    --r-sm:10px; --r-md:16px; --r-lg:22px; --r-xl:28px; --pill:999px;
    --sh-sm:0 2px 10px rgba(14,30,60,.06); --sh-md:0 12px 32px rgba(14,30,60,.10); --sh-lg:0 24px 60px rgba(14,30,60,.14);
    font-family:"Epilogue",system-ui,sans-serif; color:var(--body); line-height:1.55; background:var(--bg);
}
.ds *, .ds *::before, .ds *::after { box-sizing:border-box; }
.ds-container { max-width:1312px; margin:0 auto; padding:0 24px; }
.ds h1,.ds h2,.ds h3,.ds h4 { color:var(--ink); margin:0 0 14px; font-weight:700; }
.ds h2 { font-size:clamp(26px,3.2vw,34px); letter-spacing:-0.01em; }
.ds h3 { font-size:20px; }
.ds p { margin:0 0 14px; }
.ds-lead { font-size:18px; color:var(--gray); max-width:680px; }
.ds-block { padding:72px 0; border-top:1px solid var(--line); }
.ds-eyebrow { display:inline-block; font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--p-600); background:var(--p-50); padding:6px 12px; border-radius:var(--pill); margin-bottom:16px; }
.ds-sec-head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:30px; }
.ds-grid-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.ds-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:24px; }

/* ===== BUTTONS (component A + variants) ===== */
.ds-btn {
    display:inline-flex; align-items:center; gap:8px; font-family:inherit; font-weight:600;
    font-size:15px; letter-spacing:0.02em; padding:13px 26px; border-radius:var(--pill);
    border:none; cursor:pointer; text-decoration:none; color:#F3F7FF;
    background-image:linear-gradient(135deg,var(--p-400),var(--p-600) 55%,var(--p-700));
    background-size:200% 100%; background-position:0% 0; background-color:var(--p-500);
    transition:background-position .3s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.ds-btn:hover { background-position:100% 0; color:#F3F7FF; }
.ds-btn:active { background-position:100% 0; color:#F3F7FF; }
.ds-btn svg { width:16px; height:16px; flex:0 0 16px; }
.ds-btn--ghost { background-image:none; background-color:var(--p-50); color:var(--p-700); }
.ds-btn--ghost:hover { background-color:var(--p-100); color:var(--p-600); }
.ds-btn--outline { background-image:none; background-color:#fff; color:var(--p-600); box-shadow:inset 0 0 0 1.5px var(--p-200); }
.ds-btn--outline:hover { background-color:var(--p-50); color:var(--p-700); box-shadow:inset 0 0 0 1.5px var(--p-500); }
.ds-btn--ink { background-image:linear-gradient(120deg,#3a3a3a,#1b1b1b 50%,#000); background-color:var(--ink); }

/* ===== PHOTO / BADGES / DOT (shared) ===== */
.ds-photo { background:linear-gradient(160deg,var(--land-1),var(--land-2) 45%,var(--land-3) 72%,var(--land-4)); position:relative; overflow:hidden; }
.ds-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.ds-card-b:hover .ds-photo img { transform:scale(1.06); }
.ds-badges { position:absolute; top:14px; left:14px; display:flex; gap:8px; flex-wrap:wrap; z-index:2; }
.ds-badge { font-size:12px; font-weight:700; letter-spacing:.03em; padding:4px 11px; border-radius:var(--pill); background:rgba(255,255,255,.9); backdrop-filter:blur(6px); color:var(--p-700); box-shadow:var(--sh-sm); }
.ds-badge--solid { background:var(--p-500); color:#fff; }
.ds-video-badge { position:absolute; right:12px; bottom:12px; z-index:2; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.9); backdrop-filter:blur(6px); color:var(--p-700); box-shadow:var(--sh-sm); display:flex; align-items:center; justify-content:center; pointer-events:none; }
.ds-video-badge svg { width:22px; height:22px; margin-left:2px; }
.ds-dot { width:4px; height:4px; flex:0 0 4px; border-radius:50%; background:var(--p-300); }

/* ===== CARD component 2 (variant B) ===== */
.ds-card-b { display:block; text-decoration:none; background:var(--surface); border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--sh-sm); transition:box-shadow .22s ease, border-color .22s ease; }
.ds-card-b:hover { box-shadow:var(--sh-md); border-color:var(--p-200); }
.ds-card-b .ds-photo { height:220px; }
.ds-card-b__content { padding:12px 14px 14px; }
.ds-card-b__price { font-size:22px; font-weight:700; color:var(--ink); letter-spacing:-0.01em; display:flex; align-items:baseline; flex-wrap:wrap; gap:12px; }
.ds-card-b__price .ds-price-was { position:relative; font-size:16px; font-weight:600; color:var(--gray); text-decoration:line-through; letter-spacing:0; }
.ds-card-b__price .ds-price-off { position:absolute; top:-12px; right:-14px; font-size:12px; font-weight:700; color:var(--gray); text-decoration:none; white-space:nowrap; }
.ds-card-b__price .ds-price-now { color:#cb1717; }
.ds-card-b__title { font-size:16px; font-weight:600; color:var(--ink-2); margin:2px 0 6px; }
/* extra breathing room only in the archive/listing grids (template-nehnutelnosti.php, archive-nehnutelnost.php) */
.nehnutelnosti-archive .ds-card-b__price, .newest-properties .ds-card-b__price { padding-top:4px; padding-bottom:8px; }
.nehnutelnosti-archive .ds-card-b__title, .newest-properties .ds-card-b__title { padding-bottom:4px; }
.ds-card-b__meta { display:flex; align-items:center; gap:9px; font-size:13px; color:var(--gray); }

/* ===== HERO ===== */
.ds-hero { position:relative; overflow:hidden; padding:90px 0 80px; border-top:1px solid var(--line);
    background:radial-gradient(1100px 540px at 50% -15%,var(--p-100),transparent 60%),radial-gradient(800px 460px at 88% 0%,#E9F7EE,transparent 55%),var(--bg); }
.ds-hero::before, .ds-hero::after { content:''; position:absolute; border-radius:50%; filter:blur(70px); opacity:.45; z-index:0; }
.ds-hero::before { width:340px; height:340px; background:var(--p-200); top:-90px; right:6%; }
.ds-hero::after { width:300px; height:300px; background:#bfe6cf; bottom:-130px; left:-50px; }
.ds-hero .ds-container { position:relative; z-index:1; }
.ds-hero-head { max-width:760px; margin:0 auto 44px; text-align:center; display:flex; flex-direction:column; align-items:center; }
.ds-hero-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.7); backdrop-filter:blur(8px); border:1px solid var(--line); box-shadow:var(--sh-sm); padding:7px 14px 7px 8px; border-radius:var(--pill); font-size:13px; font-weight:600; color:var(--ink-2); margin-bottom:22px; }
.ds-hero-badge .dot { width:8px; height:8px; border-radius:50%; background:#2bbf6a; box-shadow:0 0 0 4px rgba(43,191,106,.18); }
.ds-hero h1 { font-size:clamp(34px,5vw,54px); line-height:1.06; letter-spacing:-0.02em; color:var(--ink); margin:0 0 18px; }
.ds-hero h1 .accent { font-family:"Gambetta",Georgia,serif; font-weight:600; font-style:italic; background:linear-gradient(120deg,var(--p-500),var(--p-300)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.ds-hero-lead { font-size:18px; color:var(--body); max-width:600px; margin:0 auto 28px; text-align:center; }
.ds-search { display:flex; align-items:center; gap:8px; background:#fff; border-radius:var(--pill); box-shadow:var(--sh-md); padding:8px 8px 8px 22px; width:100%; max-width:580px; margin:0 auto; }
.ds-search input { flex:1; border:none; outline:none; font-family:inherit; font-size:16px; color:var(--ink); background:transparent; }
.ds-search input::placeholder { color:var(--label); font-size:14px; }
.ds-hero-stage { position:relative; border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--sh-lg); background:#0b1b2e; aspect-ratio:16/7; min-height:360px; }
.ds-hero-stage video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ds-hero-stage__scrim { position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(8,18,35,0) 45%,rgba(8,18,35,.55) 100%); }
.ds-hero-stats { position:absolute; left:0; right:0; bottom:0; z-index:2; display:flex; background:rgba(10,22,40,.32); backdrop-filter:blur(12px); border-top:1px solid rgba(255,255,255,.16); }
.ds-hero-stats .item { flex:1; text-align:center; padding:18px 20px; color:#fff; border-right:1px solid rgba(255,255,255,.14); }
.ds-hero-stats .item:last-child { border-right:none; }
.ds-hero-stats b { display:block; font-size:26px; font-weight:800; line-height:1; }
.ds-hero-stats span { display:block; font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.82); margin-top:5px; }

/* ===== PRESS ===== */
.ds-press-lbl { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--gray); margin-bottom:28px; }
.ds-press-group { margin-bottom:24px; }
.ds-press-group:last-child { margin-bottom:0; }
.ds-press-cap { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; color:var(--label); margin-bottom:12px; }
.ds-press-wrap { overflow:hidden; }
.ds-press-row { display:flex; flex-wrap:wrap; gap:14px 36px; align-items:center; justify-content:flex-start; }
/* NOTE: text wordmarks — replace with real logo <img>/SVG when assets exist */
.ds-press-logo { display:inline-flex; align-items:center; font-weight:800; font-size:22px; color:#9aa3ad; white-space:nowrap; line-height:1; transition:color .18s ease; }
.ds-press-logo:hover { color:var(--ink-2); }
.ds-press-logo.serif { font-family:"Gambetta",Georgia,serif; font-weight:600; }
.ds-press-logo.dup { display:none; }
.ds-press-row--sub .ds-press-logo { font-size:17px; font-weight:700; color:#aeb6bf; }
@media (max-width:600px) {
    .ds-press-wrap { -webkit-mask-image:linear-gradient(90deg,transparent,#000 30px,#000 calc(100% - 30px),transparent); mask-image:linear-gradient(90deg,transparent,#000 30px,#000 calc(100% - 30px),transparent); }
    .ds-press-row { flex-wrap:nowrap; justify-content:flex-start; width:max-content; animation:ds-press-marq 16s linear infinite; }
    .ds-press-row--sub { animation-duration:20s; }
    .ds-press-logo.dup { display:inline-flex; }
}
@keyframes ds-press-marq { from { transform:translateX(0); } to { transform:translateX(calc(-50% - 18px)); } }

/* ===== CATEGORIES ===== */
.ds-cat { position:relative; overflow:hidden; display:flex; flex-direction:column; min-height:174px; padding:20px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); text-decoration:none; transition:border-color .18s ease, box-shadow .18s ease; }
.ds-cat:hover { border-color:var(--p-200); box-shadow:var(--sh-md); }
.ds-cat__wm { position:absolute; right:-18px; bottom:-18px; width:128px; height:128px; opacity:.05; pointer-events:none; transition:opacity .2s ease, transform .2s ease; }
.ds-cat__wm svg { width:100%; height:100%; stroke:var(--ink); }
.ds-cat:hover .ds-cat__wm { opacity:.09; transform:translate(-4px,-4px) rotate(-4deg); }
.ds-cat__top { display:flex; justify-content:flex-start; align-items:center; position:relative; z-index:1; }
.ds-cat__count { font-size:12px; font-weight:700; color:var(--p-700); background:var(--p-50); padding:5px 10px; border-radius:var(--pill); }
.ds-cat h4 { margin:16px 0 0; font-size:17px; color:var(--ink); position:relative; z-index:1; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ds-cat__hot { font-style:normal; font-size:10px; font-weight:700; letter-spacing:.05em; color:#F3F7FF; background:var(--p); padding:3px 7px; border-radius:var(--pill); }
.ds-cat__foot { display:flex; justify-content:space-between; align-items:center; margin-top:auto; padding-top:14px; position:relative; z-index:1; }
.ds-cat__price { font-size:13px; font-weight:600; color:var(--gray); }
@media (max-width:640px) {
    .ds-grid-3.ds-cat-grid { display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; scrollbar-width:none; padding-bottom:6px; margin-right:-24px; }
    .ds-grid-3.ds-cat-grid::-webkit-scrollbar { display:none; }
    .ds-cat-grid > .ds-cat { flex:0 0 78%; scroll-snap-align:start; }
    .ds-cat-grid > .ds-cat:last-child { margin-right:20px; } /* trailing space after the last card */
}
.ds-cta-mobile { display:none; }
@media (max-width:640px) {
    .ds-cta-desktop { display:none; }
    .ds-cta-mobile { display:flex; justify-content:center; margin-top:22px; }
}
.ds-cat__arrow { width:30px; height:30px; border-radius:50%; background:var(--p-50); color:var(--p-600); display:flex; align-items:center; justify-content:center; transition:background .18s ease, color .18s ease, transform .18s ease; }
.ds-cat__arrow svg { width:16px; height:16px; }
.ds-cat:hover .ds-cat__arrow { background:var(--p); color:#F3F7FF; transform:translateX(3px); }

/* ===== CASE STUDY ===== */
.ds-cs-ba { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:10px; }
.ds-cs-ph { height:280px; border-radius:var(--r-lg); position:relative; display:flex; align-items:flex-end; padding:14px; color:#0b3; }
.ds-cs-ph span { position:relative; z-index:1; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#fff; background:rgba(8,18,35,.45); backdrop-filter:blur(4px); padding:6px 11px; border-radius:var(--pill); }
.ds-cs-cap { font-size:13px; color:var(--gray); margin:0 0 28px; }
.ds-cs-box { border:1px solid var(--line); border-radius:var(--r-lg); padding:28px; background:var(--surface); box-shadow:var(--sh-sm); }
.ds-cs-meta { display:flex; flex-wrap:wrap; gap:10px 24px; font-size:14px; color:var(--gray); padding-bottom:16px; border-bottom:1px solid var(--line); margin-bottom:20px; }
.ds-cs-meta strong { color:var(--ink-2); }
.ds-cs-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:20px; }
.ds-cs-stat { border:1px solid var(--line); border-radius:var(--r-md); padding:18px; }
.ds-cs-stat span { font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:var(--gray); display:block; margin-bottom:8px; }
.ds-cs-stat strong { font-size:22px; font-weight:800; color:var(--ink); }
.ds-cs-stat--accent strong { color:var(--p-600); }
.ds-cs-note { padding:14px 16px; background:var(--p-50); border-radius:var(--r-sm); font-size:14px; border-left:3px solid var(--p-300); color:var(--ink-2); }

/* ===== REVIEWS SLIDER ===== */
.ds-reviews-head { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:6px; }
.ds-gbadge { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--line); background:var(--surface); box-shadow:var(--sh-sm); padding:7px 13px; border-radius:var(--pill); font-size:13px; font-weight:600; }
.ds-gbadge .stars { color:#F5A623; letter-spacing:2px; }
.ds-gbadge .muted { color:var(--gray); font-weight:400; }
.ds-reviews { position:relative; overflow:hidden; margin-top:24px;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 60px,#000 calc(100% - 60px),transparent);
            mask-image:linear-gradient(90deg,transparent,#000 60px,#000 calc(100% - 60px),transparent); }
.ds-reviews-track { display:flex; gap:16px; width:max-content; animation:ds-marquee 55s linear infinite; }
.ds-reviews:hover .ds-reviews-track { animation-play-state:paused; }
@keyframes ds-marquee { from { transform:translateX(0); } to { transform:translateX(calc(-50% - 8px)); } }
.ds-review { flex:0 0 320px; width:320px; border:1px solid var(--line); border-radius:var(--r-lg); background:var(--surface); padding:20px; display:flex; flex-direction:column; box-shadow:var(--sh-sm); }
.ds-review .stars { color:#F5A623; letter-spacing:2px; font-size:14px; margin-bottom:10px; }
.ds-review p { font-size:14px; line-height:1.55; margin:0 0 16px; color:var(--ink-2); }
.ds-review .author { display:flex; align-items:center; gap:10px; margin-top:auto; }
.ds-review .avatar { width:34px; height:34px; flex:0 0 34px; border-radius:50%; background:var(--p-50); color:var(--p-600); display:flex; align-items:center; justify-content:center; font-weight:700; font-size:13px; }
.ds-review .name { font-size:13px; font-weight:600; color:var(--ink-2); }
.ds-review .date { font-size:12px; color:var(--gray); }
@media (prefers-reduced-motion:reduce) { .ds-reviews-track { animation:none; } .ds-reviews { overflow-x:auto; } }

/* ===== NEWSLETTER (dark) ===== */
.ds-news-grid { display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:center; }
.ds-news-grid > * { min-width:0; }
.ds-news-box { max-width:100%; }
.ds-nl-freq span { min-width:0; }
.ds-ac__chip { max-width:100%; }
.ds-ac__chip b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ds-news-lead { color:var(--gray); font-size:16px; }
.ds-news-benefits { list-style:none; padding:0; margin:18px 0 0; display:flex; flex-direction:column; gap:11px; }
.ds-news-benefits li { position:relative; padding-left:26px; color:var(--ink-2); font-size:15px; }
.ds-news-benefits li::before { content:'✓'; position:absolute; left:0; color:var(--p-500); font-weight:700; }
.ds-news-box { background:var(--surface); border:1px solid var(--line); box-shadow:var(--sh-sm); border-radius:var(--r-lg); padding:26px; }
.ds-news-box h3 { margin:0 0 4px; font-size:18px; }
.ds-news-box p { color:var(--gray); font-size:14px; margin:0 0 18px; }
.ds-news-row { display:flex; gap:8px; background:var(--bg); border:1.5px solid var(--line); border-radius:var(--pill); padding:6px 6px 6px 18px; transition:border-color .18s ease, background .18s ease; }
.ds-news-row input { flex:1; min-width:0; border:none; background:transparent; outline:none; font-family:inherit; font-size:15px; color:var(--ink); }
/* validation error — red border + red tint */
.ds-news-row.error { border-color:#cb1717 !important; background:#fdeaea !important; }
.ds-news-row.error input { color:#cb1717; }
.ds-news-row.error input::placeholder { color:#e08b8b; }
/* mobile: stack — input + submit are separate; only the input carries bg + border */
@media (max-width:600px) {
    .ds-news-row { flex-direction:column; align-items:stretch; gap:10px; background:transparent; border:none; border-radius:0; padding:0; }
    .ds-news-row input { width:100%; padding:12px 14px; background:var(--bg); border:1.5px solid var(--line); border-radius:var(--r-sm); }
    .ds-news-row input:focus { border-color:var(--p-500); background:#fff; box-shadow:0 0 0 3px var(--p-50); }
    .ds-news-row .ds-btn { width:100%; justify-content:center; }
    /* error state lives on the input now, not the transparent container */
    .ds-news-row.error { background:transparent !important; }
    .ds-news-row.error input { border-color:#cb1717 !important; background:#fdeaea !important; }
}
.ds-news-note { font-size:12px; color:var(--gray); margin:12px 0 0; }
/* newsletter — optional targeting (revealed after email) */
.ds-nl-ext { display:none; border-top:1px dashed var(--line); margin-top:18px; padding-top:18px; }
.ds-nl-ext.open { display:block; animation:ds-nl-in .25s ease; }
@keyframes ds-nl-in { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
.ds-nl-field { margin-bottom:16px; }
.ds-nl-field label { display:block; font-size:13px; font-weight:600; color:var(--ink-2); margin-bottom:7px; }
.ds-nl-field label .opt { font-weight:400; color:var(--gray); }
.ds-nl-chips { display:flex; flex-wrap:wrap; gap:8px; }
.ds-nl-chip { padding:7px 13px; border:1px solid var(--line); border-radius:var(--pill); font-size:13px; cursor:pointer; background:var(--surface); color:var(--ink-2); transition:background .15s ease, color .15s ease, border-color .15s ease; user-select:none; }
.ds-nl-chip.on { background:var(--p-500); color:#fff; border-color:var(--p-500); }
.ds-nl-freq { display:flex; flex-direction:column; gap:8px; }
.ds-nl-freq span { text-align:left; padding:11px 14px; border:1px solid var(--line); border-radius:var(--r-sm); font-size:13px; cursor:pointer; background:var(--surface); color:var(--ink-2); transition:background .15s ease, color .15s ease, border-color .15s ease; }
.ds-nl-freq span:hover { border-color:var(--p-200); background:var(--p-50); }
.ds-nl-freq span.on { background:var(--p-50); color:var(--p-700); border-color:var(--p-300); font-weight:600; }
.ds-nl-toggles { display:flex; flex-direction:column; gap:12px; }
.ds-nl-toggle-row { display:flex; justify-content:space-between; align-items:center; font-size:14px; color:var(--ink-2); }
.ds-nl-toggle { width:40px; height:23px; flex:0 0 40px; background:var(--line); border-radius:var(--pill); position:relative; cursor:pointer; transition:background .18s ease; }
.ds-nl-toggle::after { content:''; position:absolute; width:17px; height:17px; top:3px; left:3px; background:#fff; border-radius:50%; box-shadow:var(--sh-sm); transition:transform .18s ease; }
.ds-nl-toggle.on { background:var(--p-500); }
.ds-nl-toggle.on::after { transform:translateX(17px); }
.ds-nl-ext .ds-btn { width:100%; justify-content:center; margin-top:4px; }
.ds-news-row button:disabled { opacity:.7; cursor:default; }
.ds-nl-info { display:flex; gap:11px; align-items:flex-start; background:linear-gradient(135deg,var(--p-500),var(--p-700)); border:none; border-radius:var(--r-sm); padding:15px 16px; font-size:14px; line-height:1.5; color:#fff; margin-bottom:18px; box-shadow:var(--sh-sm); }
.ds-nl-info::before { content:'✓'; flex:0 0 26px; width:26px; height:26px; border-radius:50%; background:#fff; color:var(--p-700); display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:900; line-height:1; }
.ds-nl-info > span { color:#eaf3fd; }
.ds-nl-info > span strong, .ds-nl-info b { display:block; color:#fff; font-size:15px; margin-bottom:2px; }
/* multiselect autocomplete (Typ + Lokalita) */
.ds-ac { position:relative; }
.ds-ac__control { display:flex; flex-wrap:wrap; gap:6px; align-items:center; background:var(--bg); border:1.5px solid var(--line); border-radius:var(--r-sm); padding:6px 8px; min-height:44px; cursor:text; transition:border-color .18s ease; }
.ds-ac.open .ds-ac__control, .ds-ac__control:focus-within { border-color:var(--p-500); }
.ds-ac__chips { display:contents; }
.ds-ac__chip { display:inline-flex; align-items:center; gap:6px; background:var(--p-500); color:#fff; border-radius:var(--pill); padding:4px 5px 4px 11px; font-size:13px; }
.ds-ac__chip b { font-weight:600; }
.ds-ac__chip button { background:rgba(255,255,255,.25); border:none; color:#fff; width:16px; height:16px; border-radius:50%; cursor:pointer; font-size:13px; line-height:1; display:flex; align-items:center; justify-content:center; padding:0; }
.ds-ac__input { flex:1; min-width:90px; border:none; outline:none; background:transparent; font-family:inherit; font-size:14px; padding:5px 2px; color:var(--ink); }
.ds-ac__input::placeholder { color:var(--label); }
.ds-ac__menu { display:none; position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:30; background:#fff; border:1px solid var(--line); border-radius:var(--r-sm); box-shadow:var(--sh-md); max-height:240px; overflow-y:auto; padding:6px; }
.ds-ac.open .ds-ac__menu { display:block; }
.ds-ac__head { padding:8px 10px 4px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--label); }
.ds-ac__opt { padding:8px 10px; border-radius:8px; font-size:14px; cursor:pointer; color:var(--ink-2); }
.ds-ac__opt:hover { background:var(--p-50); color:var(--p-700); }
.ds-ac__opt.region { font-weight:700; color:var(--ink); }
.ds-ac__opt.sel { opacity:.4; pointer-events:none; }
.ds-ac__empty { padding:10px; font-size:13px; color:var(--gray); }

/* ===== EXKLUZÍVNE (dark) ===== */
.ds-excl { background:var(--x-bg); border-top-color:var(--x-line); }
.ds-excl .ds-eyebrow { background:rgba(255,255,255,.08); color:#9fb6cf; }
.ds-excl h2 { color:#fff; }
.ds-excl .ds-excl-intro { color:rgba(255,255,255,.74); font-size:17px; line-height:1.65; max-width:680px; }
.ds-excl-points { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:30px 0; }
.ds-excl-point { position:relative; border:1px solid rgba(255,255,255,.12); border-radius:var(--r-md); padding:24px 22px; background:rgba(255,255,255,.03); overflow:hidden; transition:border-color .2s ease, background .2s ease; }
.ds-excl-point::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg, var(--p-500), transparent 75%); opacity:.7; }
.ds-excl-point:hover { border-color:rgba(123,175,232,.45); background:rgba(255,255,255,.055); }
.ds-excl-point__ic { width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center; margin-bottom:18px; background:linear-gradient(135deg, rgba(16,121,236,.28), rgba(123,175,232,.10)); border:1px solid rgba(123,175,232,.28); }
.ds-excl-point__ic svg { width:22px; height:22px; stroke:#9fc6f5; }
.ds-excl-point h4 { color:#fff; margin:0 0 7px; font-size:16px; }
.ds-excl-point p { color:rgba(255,255,255,.62); font-size:14px; margin:0; line-height:1.55; }
.ds-locked { position:relative; border:1px solid rgba(255,255,255,.12); border-radius:var(--r-lg); overflow:hidden; background:var(--x-surface); }
.ds-locked__media { position:relative; overflow:hidden; }
.ds-locked__media .ds-photo { height:200px; filter:blur(6px); transform:scale(1.08); transition:filter .45s ease, transform .45s ease; }
.ds-excl.unlocked .ds-locked__media .ds-photo { filter:none; transform:none; }
.ds-excl.unlocked .ds-locked__ov { opacity:0; visibility:hidden; transition:opacity .35s ease, visibility .35s ease; }
.ds-excl.unlocked .ds-locked { border-color:rgba(255,255,255,.16); }
.ds-excl:not(.unlocked) .ds-locked { cursor:pointer; }
.ds-locked__ov { position:absolute; inset:0; display:flex; flex-direction:column; gap:8px; align-items:center; justify-content:center; background:rgba(8,14,22,.42); color:#e3edf9; font-size:13px; letter-spacing:.04em; z-index:3; }
.ds-locked__ov svg { width:26px; height:26px; stroke:#e3edf9; opacity:.85; }
.ds-locked__body { padding:14px 16px; }
.ds-locked__body .ds-badge { position:static; }
.ds-locked__head { display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin-top:10px; }
.ds-locked__body h4 { color:#fff; margin:0; font-size:16px; }
.ds-locked__area { color:#9fb6cf; font-size:13px; white-space:nowrap; }
.ds-locked__body .meta { color:#9fb6cf; font-size:13px; }
.ds-excl-cta { text-align:center; margin-top:36px; }
.ds-excl-cta p { color:#6f7e90; font-size:13px; margin:12px 0 0; }

/* ===== BLOG ===== */
.ds-blog { display:grid; grid-template-columns:1.6fr 1fr; gap:24px; align-items:start; }
.ds-blog-feat { display:block; text-decoration:none; border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:var(--surface); box-shadow:var(--sh-sm); transition:box-shadow .22s ease, border-color .22s ease; }
.ds-blog-feat:hover, .ds-blog-item:hover { box-shadow:var(--sh-md); border-color:var(--p-200); }
.ds-blog-feat .ds-photo { height:280px; }
.ds-blog-feat .body { padding:22px; }
.ds-blog-cat { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; color:var(--p-600); display:block; margin-bottom:10px; }
.ds-blog-feat h3 { font-size:21px; margin:0 0 8px; }
.ds-blog-feat p { font-size:15px; color:var(--gray); margin:0 0 10px; }
.ds-blog-date { font-size:13px; color:var(--label); }
.ds-blog-list { display:flex; flex-direction:column; gap:14px; }
.ds-blog-item { display:flex; text-decoration:none; border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; background:var(--surface); transition:box-shadow .22s ease, border-color .22s ease; }
.ds-blog-item .ds-photo { width:116px; min-width:116px; min-height:96px; }
.ds-blog-item .body { padding:13px 15px; display:flex; flex-direction:column; gap:4px; }
.ds-blog-item h4 { font-size:14px; margin:0; color:var(--ink-2); }

/* ===== MODAL ===== */
.ds-modal-ov { display:none; position:fixed; inset:0; background:rgba(8,14,22,.7); z-index:9999; align-items:center; justify-content:center; padding:24px; }
.ds-modal-ov.open { display:flex; }
.ds-modal { background:#fff; border-radius:var(--r-lg); max-width:460px; width:100%; padding:32px; position:relative; }
.ds-modal__close { position:absolute; top:14px; right:16px; background:none; border:none; font-size:24px; cursor:pointer; color:var(--gray); line-height:1; }
.ds-modal h3 { font-size:20px; margin:0 0 6px; }
.ds-modal p { font-size:14px; color:var(--gray); margin:0 0 22px; }
.ds-field { display:flex; flex-direction:column; gap:7px; margin-bottom:14px; }
.ds-field label { font-size:13px; font-weight:600; color:var(--ink-2); }
.ds-field label .req { color:var(--p-500); }
.ds-input { font-family:inherit; font-size:15px; color:var(--ink); background:var(--bg); border:1.5px solid var(--line); border-radius:var(--r-sm); padding:12px 14px; outline:none; width:100%; transition:border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.ds-input::placeholder { color:var(--label); }
.ds-input:focus { border-color:var(--p-500); background:#fff; box-shadow:0 0 0 3px var(--p-50); }
.ds-input.error { border-color:#cb1717 !important; background:#fdeaea !important; }
.ds-input.error::placeholder { color:#e08b8b; }
.ds-modal .ds-btn { width:100%; justify-content:center; margin-top:4px; }
.ds-modal__note { font-size:11px; color:var(--gray); text-align:center; margin:0; padding-top:14px; }
.ds-modal__ok { display:none; text-align:center; padding:10px 0; }
.ds-modal__ok.show { display:block; }
.ds-modal__ok .tick { width:48px; height:48px; margin:0 auto; border-radius:50%; background:var(--p-50); color:var(--p-600); display:flex; align-items:center; justify-content:center; font-size:24px; line-height:1; }

/* ===== RESPONSIVE ===== */
@media (max-width:920px) {
    .ds-hero-stage { aspect-ratio:16/10; }
    .ds-grid-3 { grid-template-columns:1fr 1fr; }
    .ds-grid-2, .ds-news-grid, .ds-blog { grid-template-columns:1fr; }
    .ds-cs-stats { grid-template-columns:1fr 1fr; }
    .ds-excl-points { grid-template-columns:1fr; }
}
@media (max-width:600px) {
    .ds-grid-3 { grid-template-columns:1fr; }
    .ds-hero { padding:60px 0 48px; }
    .ds-hero-lead { font-size:14px; }
    #ds-hero-search-btn { padding-inline:12px; padding-block:10px; font-size:14px; }
    .ds-hero-stage { aspect-ratio:4/5; }
    .ds-hero-stats b { font-size:20px; }
    .ds-hero-stats .item { padding:14px 10px; }
    .ds-cs-ba { grid-template-columns:1fr; }
    .ds-cs-stats { grid-template-columns:1fr 1fr; }
}

/* ----- Hero autocomplete dropdown (moved from front-page.php) ----- */
/* Hero autocomplete dropdown */
.ds-search { position:relative; }
.ds-search input { font-weight:500; }
.ds-search-results {
    display:none; position:absolute; top:calc(100% + 8px); left:0; right:0; z-index:40;
    background:#fff; border:1px solid var(--line); border-radius:var(--r-md);
    box-shadow:var(--sh-md); overflow:hidden; text-align:left;
}
.ds-search-results.open { display:block; }
/* inner scroller keeps the outer border-radius intact when a scrollbar shows */
.ds-sr-scroll {
    max-height:340px; overflow-y:auto; padding:6px;
    scrollbar-width:thin; scrollbar-color:rgba(0,0,0,.15) transparent;
}
.ds-sr-scroll::-webkit-scrollbar { width:6px; }
.ds-sr-scroll::-webkit-scrollbar-thumb { background:rgba(0,0,0,.15); border-radius:6px; }
.ds-sr-scroll::-webkit-scrollbar-track { background:transparent; }
.ds-search-results a {
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    padding:10px 12px; border-radius:8px; text-decoration:none; color:var(--ink-2); font-size:15px;
}
.ds-search-results a:hover, .ds-search-results a.active { background:var(--p-50); color:var(--p-700); }
.ds-search-results a span:not(.t) { font-size:17px; font-weight:500; }
.ds-search-results a .t {
    flex:0 0 auto; font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.05em;
    color:var(--p-700); background:var(--p-50); border:1px solid var(--p-100);
    padding:3px 9px; border-radius:var(--pill);
}
.ds-search-results a:hover .t, .ds-search-results a.active .t { background:var(--p-100); border-color:var(--p-200); }
.ds-search-results .ds-sr-msg { padding:12px; color:var(--gray); font-size:14px; }

/* =========================================================================
   EXKLUZÍVNE — landing page (template-exkluzivne.php), tmavá verzia
   ========================================================================= */
.ds-exlp-dark { background:var(--x-bg); }
.ds-exlp-dark .ds-block { border-top-color:var(--x-line); }
.ds-exlp-dark h2 { color:#fff; }

/* hero — tmavý variant */
.ds-exlp-hero { background:radial-gradient(1100px 540px at 50% -15%,rgba(16,121,236,.30),transparent 60%),linear-gradient(180deg,var(--x-top) 0%,var(--x-bg) 100%); border-top-color:var(--x-line); }
.ds-exlp-hero::before { background:rgba(16,121,236,.25); }
.ds-exlp-hero::after { background:rgba(43,191,106,.14); }
.ds-exlp-hero .ds-hero-head { margin-bottom:0; }
.ds-exlp-hero h1 { color:#fff; }
.ds-exlp-hero .ds-hero-lead { color:rgba(255,255,255,.74); }

.ds-exlp-facts { display:flex; gap:12px; flex-wrap:nowrap; justify-content:flex-start; margin:-12px 0 26px; }
.ds-exlp-facts span { display:inline-flex; align-items:center; gap:8px; white-space:nowrap; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); padding:8px 15px; border-radius:var(--pill); font-size:13px; font-weight:600; color:rgba(255,255,255,.85); }
.ds-exlp-facts svg { width:16px; height:16px; flex:0 0 16px; stroke:#9fc6f5; }

.ds-locked__price { margin-top:10px; font-size:15px; font-weight:700; color:#fff; }

/* FAQ — tmavé, vycentrované */
.ds-exlp-faq h2 { text-align:center; }
.ds-faq { max-width:760px; margin:26px auto 0; }
.ds-faq details { border:1px solid rgba(255,255,255,.12); border-radius:var(--r-md); background:rgba(255,255,255,.03); margin-bottom:10px; overflow:hidden; transition:border-color .2s ease; }
.ds-faq details:hover { border-color:rgba(123,175,232,.45); }
.ds-faq summary { display:flex; justify-content:space-between; align-items:center; gap:14px; cursor:pointer; list-style:none; padding:17px 20px; font-size:15px; font-weight:600; color:#fff; }
.ds-faq summary::-webkit-details-marker { display:none; }
.ds-faq summary .chev { flex:0 0 auto; color:#9fc6f5; font-size:18px; font-weight:600; transition:transform .2s ease; }
.ds-faq details[open] summary .chev { transform:rotate(45deg); }
.ds-faq details p { margin:0; padding:0 20px 17px; font-size:14px; color:rgba(255,255,255,.62); line-height:1.6; }

@media (max-width:600px) {
    .ds-exlp-facts { flex-wrap:wrap; }
    .ds-exlp-facts span { font-size:12px; padding:7px 12px; }
}

/* plynulý scroll pre kotvy na LP */
html:has(.ds-exlp-dark) { scroll-behavior:smooth; }

/* =========================================================================
   EXKLUZÍVNA karta v bežnom listingu (ds_card + locked) — tmavá, blur, zámok
   ========================================================================= */
.ds-card-b--excl { background:var(--x-bg); border:none; }
.ds-card-b--excl:hover { border:none; }
.ds-card-b--excl .ds-photo img { filter:blur(6px); transform:scale(1.08); }
.ds-card-b--excl:hover .ds-photo img { transform:scale(1.08); }
.ds-card-b--excl .ds-locked__ov { position:absolute; inset:0; display:flex; flex-direction:column; gap:8px; align-items:center; justify-content:center; background:rgba(8,14,22,.42); color:#e3edf9; font-size:13px; letter-spacing:.04em; z-index:3; }
.ds-card-b--excl .ds-locked__ov svg { width:26px; height:26px; stroke:#e3edf9; opacity:.85; }
.ds-card-b--excl .ds-card-b__price { color:#fff; }
.ds-card-b--excl .ds-card-b__title { color:#fff; }
.ds-card-b--excl .ds-card-b__meta { color:#9fb6cf; }

/* návštevník s prístupom (html trieda z localStorage) → bez blur/zámku,
   tmavé pozadie zostáva ako odlíšenie */
html.sk-excl-unlocked .ds-card-b--excl .ds-photo img { filter:none; transform:none; }
html.sk-excl-unlocked .ds-card-b--excl:hover .ds-photo img { transform:scale(1.06); }
html.sk-excl-unlocked .ds-card-b--excl .ds-locked__ov { display:none; }

/* exkluzívny badge — diamant + modré pozadie; na zamknutej karte jediný viditeľný */
.ds-badge--excl { display:inline-flex; align-items:center; gap:6px; background:var(--p-500); color:#fff; }
.ds-badge--excl svg { width:14px; height:14px; flex:0 0 14px; stroke:#fff; }
.ds-card-b--excl .ds-badges { z-index:4; } /* nad lock overlayom (z-index 3), inak je badge stmavený */
.ds-card-b--excl .ds-badges .ds-badge { display:none; }
.ds-card-b--excl .ds-badges .ds-badge--excl { display:inline-flex; }
/* odomknutý návštevník → bežné tagy späť (exkluzívny badge zostáva) */
html.sk-excl-unlocked .ds-card-b--excl .ds-badges .ds-badge { display:inline-block; }
html.sk-excl-unlocked .ds-card-b--excl .ds-badges .ds-badge--excl { display:inline-flex; }

/* =========================================================================
   SINGLE PONUKA — exkluzívna: tmavý hero (nadpis → galéria) + úvodný tag
   ========================================================================= */
section.hero.hero--excl { background:var(--x-bg); background-image:var(--x-grad); padding-bottom:56px; border-bottom-left-radius:30px; border-bottom-right-radius:30px; }

/* omrvinky — main.css dáva aktuálnej položke #030303 vyššou špecificitou, preto rovnaká špecificita */
.hero.hero--excl .container .hero-topbar .breadcrumbs a { color:#A8BED6; }
.hero.hero--excl .container .hero-topbar .breadcrumbs a:hover { color:#fff; text-decoration:underline; }
.hero.hero--excl .container .hero-topbar .breadcrumbs span[aria-current] { color:#fff; }
.hero.hero--excl .container .hero-topbar .breadcrumbs li:not(:last-child)::after { color:#6C8199; }

/* titulok + akcent nad ním */
.hero.hero--excl .container .heading h1 { color:#fff; letter-spacing:-0.015em; }
.hero.hero--excl .container .heading h1::before { content:""; display:block; width:52px; height:3px; border-radius:2px; background:linear-gradient(90deg, var(--p-400), rgba(61,144,240,0)); margin-bottom:14px; }

/* cenová karta */
.hero.hero--excl .container .heading div.price { border:1px solid rgba(255,255,255,.10); box-shadow:0 18px 40px rgba(0,0,0,.35); }

/* štítky: exkluzivita plná, ostatné sklenené */
.hero.hero--excl .container .sub-heading .tags .ds-tag { background:rgba(255,255,255,.07); color:#DCE8F6; border:1px solid rgba(255,255,255,.16); }
.hero.hero--excl .container .sub-heading .tags .ds-tag.tag--excl { background:linear-gradient(135deg, var(--p-400), var(--p-600)) !important; color:#fff !important; border-color:transparent; box-shadow:0 8px 20px rgba(16,121,236,.35); }

/* galéria: orámovanie fotiek + dlaždica „+N ďalšie fotografie" */
.hero.hero--excl .container .image-library a img { border:1px solid rgba(255,255,255,.12); }
.hero.hero--excl .container .image-library .remaining-number { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); color:#fff; backdrop-filter:blur(6px); }
.hero.hero--excl .container .image-library .remaining-number div { color:#B9CBDF; }

section.hero--excl .square-meter { color:#A8BED6; }

/* špecifikácie bez sticky-contact (PHP ho pri exkluzívnej nerenderuje) → text na plnú šírku */
.specifications.specifications--excl .container .text-container { max-width:100%; width:100%; }
section.hero--excl .square-meter.discounted { color:#ff8a8a; }
/* Tag component (shared, matches design system) */
.ds-tag { display:inline-flex; align-items:center; font-size:13px; font-weight:600; padding:7px 12px; border-radius:var(--pill); background:var(--p-100); color:var(--p-700); }

.tag--excl { display:inline-flex !important; align-items:center; gap:8px; background:var(--p-500) !important; color:#fff !important; }
.tag--excl svg { width:16px; height:16px; flex:0 0 16px; stroke:#fff; }
.tag--excl:hover { text-decoration:none !important; }

/* single ponuka: tmavý hero má sadnúť rovno pod header (globálny margin preč) */
body.single-product > article { margin-top:0; }

/* ----- autocomplete (hero + header search): exkluzívna ponuka ----- */
.ds-search-results a.excl { background:var(--x-bg); color:#fff; }
.ds-search-results a.excl span:not(.t) { display:inline-flex; align-items:center; gap:10px; }
.ds-search-results a.excl span:not(.t) svg { width:18px; height:18px; flex:0 0 18px; stroke:#9fc6f5; }
.ds-search-results a.excl .t { color:#fff; background:var(--p-500); border-color:transparent; }
.ds-search-results a.excl:hover, .ds-search-results a.excl.active { background:var(--x-hover); color:#fff; }
.ds-search-results a.excl:hover .t, .ds-search-results a.excl.active .t { background:var(--p-500); border-color:transparent; }

/* =========================================================================
   SINGLE PONUKA — exkluzívna, zamknutý stav (.hero--excl.is-locked).
   Zamknutie vyhodnocuje SERVER (podpísaná cookie, viď exclusive-access.php)
   — zamknuté HTML neobsahuje cenu, ďalšie fotky, text, mapu ani kontakt;
   CSS len rozmazáva teaser (prvá fotka, placeholder ceny) a štýluje bránu
   .excl-gate. Po odomknutí sa stránka reloadne a server vyrenderuje plný
   detail bez .is-locked — žiadny localStorage reveal.
   ========================================================================= */
section.hero--excl.is-locked .heading .price { filter:blur(9px); pointer-events:none; user-select:none; }
section.hero--excl.is-locked .image-library a:not(.excl-gallery-ov) { pointer-events:none; }
section.hero--excl.is-locked .image-library img { filter:blur(10px); transform:scale(1.06); }

section.hero--excl .image-library { position:relative; overflow:hidden; border-radius:20px; }
/* vyššia špecificita než .image-library a (width/position z main.css) */
section.hero--excl .image-library a.excl-gallery-ov { position:absolute; inset:0; width:auto; z-index:3; display:flex; flex-direction:column; gap:10px; align-items:center; justify-content:center; background:rgba(8,14,22,.42); color:#e3edf9; font-size:14px; letter-spacing:.04em; text-decoration:none; text-align:center; padding:20px; }
section.hero--excl .image-library a.excl-gallery-ov svg { width:30px; height:30px; stroke:#e3edf9; opacity:.85; }

/* zamknutý stav: hero plynule prechádza do brány, zaoblený spodok má až brána */
section.hero.hero--excl.is-locked { border-bottom-left-radius:0; border-bottom-right-radius:0; padding-bottom:40px; }
.excl-gate { background:var(--x-bot); padding:10px 0 90px; border-bottom-left-radius:30px; border-bottom-right-radius:30px; }
.excl-gate .container { text-align:center; }
.excl-gate .container > svg { width:34px; height:34px; stroke:#9fc6f5; margin-bottom:14px; }
.excl-gate h2 { color:#fff; margin:0 0 10px; }
.excl-gate p { color:rgba(255,255,255,.68); font-size:16px; line-height:1.6; margin:0 auto 26px; max-width:540px; }
