
    /* ═══════════════════════════════════════
     * Guest vs Auth section toggle
     * body.logged-in → hide guest, show form
     * body:not(.logged-in) → show guest, hide form
     * ═══════════════════════════════════════ */
    body.logged-in .ak-guest-section {
        display: none !important;
    }
    body:not(.logged-in) .ak-auth-section {
        display: none !important;
    }

    /* ── Form step navigation ── */
    .ts-form-steps .ts-step-head {
        font-family: 'Plus Jakarta Sans', sans-serif !important;
        border-radius: 12px !important;
        transition: all 0.2s ease !important;
    }
    .ts-form-steps .ts-step-head.active,
    .ts-form-steps .ts-step-head.ts-current-step {
        background: rgba(181, 213, 217, 0.12) !important;
        color: #3d6b72 !important;
    }
    .ts-form-steps .ts-step-head .ts-step-number {
        background: #b5d5d9 !important;
        color: #1a1a2e !important;
        font-weight: 700 !important;
    }

    /* ── Form field inputs ── */
    .ts-form .ts-form-group input,
    .ts-form .ts-form-group textarea,
    .ts-form .ts-form-group select {
        border-radius: 12px !important;
        border: 1.5px solid #e8eef0 !important;
        font-family: 'Plus Jakarta Sans', sans-serif !important;
        transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    }
    .ts-form .ts-form-group input:focus,
    .ts-form .ts-form-group textarea:focus,
    .ts-form .ts-form-group select:focus {
        border-color: #8bbcc2 !important;
        box-shadow: 0 0 0 3px rgba(139, 188, 194, 0.15) !important;
        outline: none !important;
    }

    /* ── Form field labels ── */
    .ts-form .ts-form-group label {
        font-family: 'Plus Jakarta Sans', sans-serif !important;
        font-weight: 600 !important;
        color: #1e293b !important;
    }

    /* ── Submit / Save / Draft buttons ── */
    .ts-form .ts-btn-2,
    .ts-create-post .ts-btn-2 {
        background: #b5d5d9 !important;
        color: #1a1a2e !important;
        border: none !important;
        border-radius: 12px !important;
        font-family: 'Plus Jakarta Sans', sans-serif !important;
        font-weight: 700 !important;
        padding: 14px 28px !important;
        transition: all 0.25s ease !important;
    }
    .ts-form .ts-btn-2:hover,
    .ts-create-post .ts-btn-2:hover {
        background: #8bbcc2 !important;
        transform: translateY(-1px) !important;
        box-shadow: 0 4px 16px rgba(139, 188, 194, 0.3) !important;
    }

    /* ── Next / Previous step buttons ── */
    .ts-form-steps .ts-btn-1 {
        border-radius: 10px !important;
        font-family: 'Plus Jakarta Sans', sans-serif !important;
        font-weight: 600 !important;
    }

    /* ── File upload area ── */
    .ts-form .ts-file-upload {
        border: 2px dashed #d1e0e3 !important;
        border-radius: 14px !important;
        background: rgba(181, 213, 217, 0.04) !important;
        transition: all 0.2s ease !important;
    }
    .ts-form .ts-file-upload:hover {
        border-color: #b5d5d9 !important;
        background: rgba(181, 213, 217, 0.08) !important;
    }

    /* ── Create-post page — full bleed ── */
    body.single-elementor_library .ts-page-wrapper {
        padding-top: 0 !important;
    }
    body.single-elementor_library .ts-page-content {
        max-width: 100% !important;
        padding: 0 !important;
    }

    /* ── Responsive ── */
    @media (max-width: 767px) {
        .ts-form .ts-btn-2,
        .ts-create-post .ts-btn-2 {
            padding: 12px 20px !important;
            font-size: 14px !important;
        }
    }
    

        .ts-input-icon { position: relative !important; }
        .ts-input-icon > svg,
        .ts-input-icon > i,
        .ts-input-icon > span {
            position: absolute !important;
            left: 15px !important;
            top: 50% !important;
            transform: translateY(-50%) !important;
            pointer-events: none;
        }
        .ts-input-icon > svg,
        .ts-input-icon > span > svg {
            width: 20px !important;
            height: 20px !important;
            object-fit: contain;
        }
        /* High-specificity variants: a site-wide custom rule
           (.ts-form:not(.quick-search) .ts-form-group .ts-filter {padding:16px!important})
           outguns plain .ts-input-icon > input, so these must outrank it. */
        .ts-input-icon > input,
        .ts-input-icon > select,
        .ts-input-icon > textarea,
        .ts-input-icon > .ts-filter,
        .ts-form .ts-form-group .ts-input-icon > input,
        .ts-form .ts-form-group .ts-input-icon > .ts-filter,
        .ts-form:not(.quick-search) .ts-form-group .ts-input-icon > input.ts-filter,
        .ts-form:not(.quick-search) .ts-form-group .ts-input-icon > .ts-filter {
            padding-left: 45px !important;
        }
    

    body h1 {
        font-size: clamp(24px, 2.6vw, 32px) !important;
        line-height: 1.2 !important;
        letter-spacing: -0.5px !important;
    }
    h2[style*="font-size: 36px"],
    h2[style*="font-size: 32px"],
    h2[style*="font-size: 30px"],
    h2[style*="font-size: 28px"],
    .akd-similar h2,
    .akev-sim-h {
        font-size: clamp(21px, 2.2vw, 25px) !important;
        letter-spacing: -0.3px !important;
    }
    .akb-sec-title { font-size: 21px !important; }
    @media (max-width: 767px) {
        .elementor-widget-heading h1, body h1 { font-size: 23px !important; }
        h2[style*="font-size: 36px"],
        h2[style*="font-size: 32px"],
        h2[style*="font-size: 30px"],
        h2[style*="font-size: 28px"],
        .akd-similar h2,
        .akev-sim-h { font-size: 20px !important; }
    }
    
.ts-preview:has(.ak-ev-noocc){display:none !important;}

    /* Voxel centres .marker-wrapper on the coordinate, so lift the pin by half
       its height to stand the stem tip on the exact spot. transform-origin at
       the tip keeps it planted while the hover/active states scale it. */
    .ak-tulip-marker {
        width: 32px; height: 44px;
        overflow: visible;
        background: none; box-shadow: none; border-radius: 0;
        transform: translateY(-50%);
        transform-origin: 50% 100%;
        filter: drop-shadow(0 3px 6px rgba(11,19,36,.26));
    }
    .ak-tulip-marker svg { display: block; width: 100%; height: 100%; }
    /* replaces Voxel's own hover/active treatment (.marker-focused .map-marker
       { transform: scale(1.25) } and the .marker-active icon recolour), which
       would drop our translateY and let the pin slide off its coordinate */
    .marker-wrapper:hover > .ak-tulip-marker,
    .marker-focused .map-marker.ak-tulip-marker,
    .marker-active .map-marker.ak-tulip-marker {
        transform: translateY(-50%) scale(1.16);
    }
    .marker-active .map-marker.ak-tulip-marker {
        filter: drop-shadow(0 5px 11px rgba(11,19,36,.36));
    }
    /* inside an expanded cluster bundle the wrapper is laid out in normal flow,
       so there is no coordinate to stand on and no lift to apply */
    .ts-marker-bundle .map-marker.ak-tulip-marker { transform: none; }
    .ts-marker-bundle .marker-wrapper:hover > .ak-tulip-marker,
    .ts-marker-bundle .marker-active .map-marker.ak-tulip-marker { transform: scale(1.12); }
    
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny{background-color:#fff !important;border:1px solid #1E73BE !important;color:#1E73BE !important;font-weight:600 !important;}.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny:hover{background-color:#1E73BE !important;color:#fff !important;}.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-accept{font-weight:600 !important;}

    /* Section band behind the homepage "Upcoming Events" feed */
    body.home .elementor-element-9a1c171 {
        background:
            radial-gradient(1000px 360px at 50% -10%, rgba(139, 188, 194, 0.14), transparent 60%),
            linear-gradient(180deg, #ffffff 0%, #f6fbfb 100%) !important;
        padding-top: 64px !important;
        padding-bottom: 64px !important;
    }
    body.home .elementor-element-9a1c171 .elementor-widget-heading:first-of-type .elementor-heading-title {
        color: #1D5B62 !important;
        letter-spacing: 1.2px !important;
    }
    body.home .elementor-element-9a1c171 .elementor-widget-button .elementor-button {
        background: #ffffff !important;
        color: #0b1324 !important;
        border: 1.5px solid rgba(139, 188, 194, 0.55) !important;
        padding: 12px 22px !important;
        border-radius: 999px !important;
        font-weight: 700 !important;
        transition: all 0.25s ease;
        box-shadow: 0 2px 8px rgba(139, 188, 194, 0.14);
    }
    body.home .elementor-element-9a1c171 .elementor-widget-button .elementor-button:hover {
        background: #8bbcc2 !important;
        color: #ffffff !important;
        border-color: transparent !important;
        transform: translateY(-2px);
        box-shadow: 0 8px 20px rgba(139, 188, 194, 0.4);
    }

    /* Homepage feed grid */
    .elementor-element-de5bfd7 .post-feed-grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 24px !important;
    }
    @media (max-width: 1024px) {
        .elementor-element-de5bfd7 .post-feed-grid { grid-template-columns: repeat(2, 1fr) !important; }
    }
    @media (max-width: 640px) {
        .elementor-element-de5bfd7 .post-feed-grid { grid-template-columns: 1fr !important; }
    }

    /* ── the rebuilt ticket card ── */
    .ak-event-feed-wrap .ts-preview.akvt {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        overflow: visible !important;
    }
    .akvt-link {
        display: flex;
        align-items: stretch;
        background: #fff;
        border: 1px solid rgba(190, 201, 195, 0.28);
        border-radius: 18px;
        overflow: hidden;
        box-shadow: 0 2px 12px rgba(11, 19, 36, 0.05);
        text-decoration: none;
        color: inherit;
        height: 100%;
        transition: transform 0.22s ease, box-shadow 0.22s ease;
    }
    .ts-preview.akvt:hover .akvt-link {
        transform: translateY(-4px);
        box-shadow: 0 16px 36px rgba(11, 19, 36, 0.13);
    }

    /* date stub */
    .akvt-stub {
        flex: 0 0 82px;
        background: linear-gradient(180deg, #8bbcc2 0%, #b5d5d9 100%);
        border-right: 2px dashed rgba(255, 255, 255, 0.85);
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2px;
        padding: 14px 6px;
        color: #00291f;
        font-family: 'Plus Jakarta Sans', sans-serif;
        text-align: center;
    }
    .akvt-wk  { font-size: 10.5px; font-weight: 800; letter-spacing: 1.6px; text-transform: uppercase; opacity: 0.75; }
    .akvt-day { font-size: 30px; font-weight: 800; line-height: 1.02; }
    .akvt-mon { font-size: 11px; font-weight: 800; letter-spacing: 1.8px; text-transform: uppercase; }
    .akvt-dot { width: 4px; height: 4px; border-radius: 50%; background: rgba(0, 41, 31, 0.35); margin: 6px 0; }
    .akvt-time { font-size: 10.5px; font-weight: 800; letter-spacing: 0.4px; opacity: 0.85; }
    .akvt-stub .ak-ico { width: 26px; height: 26px; }

    /* Ongoing multi-day run: the stub leads with NOW, the end date is the detail.
       Colours pick up the existing "Happening now" chip (#E24B4B) and the brand
       coral (#ff6b6b) so the two read as one status. */
    .akvt-stub.is-live {
        background: linear-gradient(180deg, #E24B4B 0%, #ff6b6b 100%);
        border-right-color: rgba(255, 255, 255, 0.92);
        color: #fff;
        gap: 0;
    }
    .akvt-live {
        display: inline-flex; align-items: center; gap: 5px;
        font-size: 19px; font-weight: 900; letter-spacing: 1.4px; line-height: 1;
    }
    .akvt-live::before {
        content: ''; width: 7px; height: 7px; border-radius: 50%; background: #fff;
        animation: akvt-live-pulse 1.9s ease-out infinite;
    }
    @keyframes akvt-live-pulse {
        0%   { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.75); }
        70%  { box-shadow: 0 0 0 7px rgba(255, 255, 255, 0); }
        100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
    }
    .akvt-untilw {
        margin-top: 10px;
        font-size: 9px; font-weight: 800; letter-spacing: 1.5px; text-transform: uppercase;
        opacity: 0.9;
    }
    .akvt-untild { font-size: 13.5px; font-weight: 800; letter-spacing: 0.3px; line-height: 1.25; }

    /* right side */
    .akvt-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
    .akvt-media { position: relative; height: 148px; background: linear-gradient(135deg, #8bbcc2, #b5d5d9); overflow: hidden; display: block; }
    .akvt-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.45s ease; }
    .ts-preview.akvt:hover .akvt-media img { transform: scale(1.05); }
    .akvt-type {
        position: absolute; top: 10px; left: 10px;
        background: rgba(255, 255, 255, 0.95); color: #1D5B62;
        padding: 4px 11px; border-radius: 9999px;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 10px; font-weight: 800; letter-spacing: 0.9px; text-transform: uppercase;
        max-width: 70%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .akvt-save {
        position: absolute; top: 10px; right: 10px;
        width: 32px; height: 32px; border-radius: 50%;
        background: rgba(255, 255, 255, 0.94); border: none; cursor: pointer;
        display: flex; align-items: center; justify-content: center;
        color: #0B1324; box-shadow: 0 2px 8px rgba(11, 19, 36, 0.15);
        transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
        z-index: 2;
    }
    .akvt-save:hover { transform: scale(1.1); color: #E24B4B; }
    .akvt-save svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2.2; }
    .akvt-save.is-saved { background: #E24B4B; color: #fff; }
    .akvt-save.is-saved svg { fill: currentColor; }

    .akvt-body { flex: 1; display: flex; flex-direction: column; padding: 13px 16px 14px; gap: 6px; }
    .akvt-title {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 15.5px; font-weight: 800; line-height: 1.33; letter-spacing: -0.2px;
        color: #0B1324; margin: 0;
        display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
        min-height: calc(1.33em * 2);
        transition: color 0.2s ease;
    }
    .ts-preview.akvt:hover .akvt-title { color: #1D5B62; }
    .akvt-place {
        display: flex; align-items: center; gap: 4px;
        font-size: 12.5px; font-weight: 600; color: #6e7a74;
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .akvt-place .ak-ico { width: 15px; height: 15px; color: #8bbcc2; flex-shrink: 0; }
    .akvt-place span { overflow: hidden; text-overflow: ellipsis; }
    .akvt-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 10px; }
    .akvt-cd {
        display: inline-flex; align-items: center; gap: 5px;
        background: #EAF4F5; color: #1D5B62;
        padding: 5px 11px; border-radius: 9999px;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 11px; font-weight: 800; letter-spacing: 0.2px;
    }
    .akvt-cd.is-soon, .akvt-cd.is-now { background: #E24B4B; color: #fff; box-shadow: 0 3px 10px rgba(226, 75, 75, 0.35); }
    .akvt-cd.is-after { background: rgba(11, 19, 36, 0.06); color: #8a969b; }
    .akvt-price { font-size: 11.5px; font-weight: 800; color: #1D5B62; font-family: 'Plus Jakarta Sans', sans-serif; }
    .akvt-go {
        width: 30px; height: 30px; border-radius: 50%;
        background: #EAF4F5; color: #1D5B62;
        display: flex; align-items: center; justify-content: center;
        transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
        flex-shrink: 0;
    }
    .akvt-go .ak-ico { width: 17px; height: 17px; }
    .ts-preview.akvt:hover .akvt-go { background: #2A7780; color: #fff; transform: translateX(2px); }

    @media (max-width: 640px) {
        .akvt-stub { flex-basis: 72px; }
        .akvt-day { font-size: 26px; }
        .akvt-live { font-size: 16.5px; letter-spacing: 1px; gap: 4px; }
        .akvt-untild { font-size: 12.5px; }
        .akvt-media { height: 132px; }
    }
    @media (prefers-reduced-motion: reduce) {
        .akvt-link, .akvt-media img, .akvt-go, .akvt-save { transition: none !important; }
        .akvt-live::before { animation: none !important; }
    }
    

    /* rebuilt photo card */
    .ts-preview.akpv {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        overflow: visible !important;
    }
    .akpv-link {
        position: relative;
        display: block;
        border-radius: 20px;
        overflow: hidden;
        aspect-ratio: 4 / 4.7;
        background: linear-gradient(135deg, #8bbcc2, #b5d5d9);
        box-shadow: 0 2px 12px rgba(11, 19, 36, 0.07);
        text-decoration: none;
        color: inherit;
        transition: transform 0.22s ease, box-shadow 0.22s ease;
    }
    .ts-preview.akpv:hover .akpv-link {
        transform: translateY(-4px);
        box-shadow: 0 18px 40px rgba(11, 19, 36, 0.18);
    }
    .akpv-link > img {
        position: absolute; inset: 0;
        width: 100%; height: 100%;
        object-fit: cover;
        transition: transform 0.5s ease;
    }
    .ts-preview.akpv:hover .akpv-link > img { transform: scale(1.05); }
    .akpv-scrim {
        position: absolute; inset: 0;
        background: linear-gradient(180deg, rgba(11, 19, 36, 0.12) 0%, rgba(11, 19, 36, 0) 30%, rgba(11, 19, 36, 0) 42%, rgba(11, 19, 36, 0.85) 100%);
    }

    .akpv-type {
        position: absolute; top: 12px; left: 12px;
        background: rgba(255, 255, 255, 0.94); color: #1D5B62;
        padding: 5px 12px; border-radius: 9999px;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 10px; font-weight: 800; letter-spacing: 0.9px; text-transform: uppercase;
        max-width: 62%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .akpv-price {
        position: absolute; top: 44px; left: 12px;
        background: rgba(11, 19, 36, 0.55);
        -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
        color: #fff; padding: 4px 10px; border-radius: 9999px;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 10.5px; font-weight: 800; letter-spacing: 0.6px;
    }
    .akpv-save {
        position: absolute; top: 12px; right: 12px;
        width: 34px; height: 34px; border-radius: 50%;
        background: rgba(255, 255, 255, 0.94); border: none; cursor: pointer;
        display: flex; align-items: center; justify-content: center;
        color: #0B1324; box-shadow: 0 2px 8px rgba(11, 19, 36, 0.18);
        transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
        z-index: 2;
    }
    .akpv-save:hover { transform: scale(1.1); color: #E24B4B; }
    .akpv-save svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.2; }
    .akpv-save.is-saved { background: #E24B4B; color: #fff; }
    .akpv-save.is-saved svg { fill: currentColor; }

    .akpv-body {
        position: absolute; left: 0; right: 0; bottom: 0;
        padding: 16px;
        display: flex; flex-direction: column; gap: 6px;
        color: #fff;
    }
    .akpv-rating {
        display: inline-flex; align-items: center; gap: 5px;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 12px; font-weight: 800;
    }
    .akpv-rating .ak-ico { width: 15px; height: 15px; color: #f0c040; }
    .akpv-rating i { font-style: normal; font-weight: 600; color: rgba(255, 255, 255, 0.75); }
    .akpv-title {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 17px; font-weight: 800; line-height: 1.28; letter-spacing: -0.2px;
        margin: 0; color: #fff;
        display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
        text-shadow: 0 1px 6px rgba(11, 19, 36, 0.35);
    }
    .akpv-where {
        display: flex; align-items: center; gap: 5px;
        font-size: 12.5px; font-weight: 600; color: rgba(255, 255, 255, 0.88);
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .akpv-where .ak-ico { width: 15px; height: 15px; opacity: 0.85; flex-shrink: 0; }
    .akpv-feats { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 3px; }
    .akpv-chk {
        display: inline-flex; align-items: center; gap: 4px;
        font-size: 11px; font-weight: 600; color: rgba(255, 255, 255, 0.88);
    }
    .akpv-chk .ak-ico { width: 13px; height: 13px; opacity: 0.85; flex-shrink: 0; }
    .akpv-feat {
        background: rgba(255, 255, 255, 0.16);
        -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
        border: 1px solid rgba(255, 255, 255, 0.28);
        color: #fff; padding: 3.5px 10px; border-radius: 9999px;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 10px; font-weight: 700; letter-spacing: 0.3px;
        white-space: nowrap;
    }

    @media (max-width: 640px) {
        .akpv-link { aspect-ratio: 4 / 4.2; }
        .akpv-title { font-size: 16px; }
    }
    @media (prefers-reduced-motion: reduce) {
        .akpv-link, .akpv-link > img, .akpv-save { transition: none !important; }
    }
    

	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a[href*="family-services"]:hover,
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li.current-menu-item > a[href*="family-services"] {
		background: #E4F1F2;
		color: #1D5B62;
	}
	

	/*
	 * — ONE ICON LANGUAGE ACROSS THE WHOLE NAV —
	 *
	 * Every menu item carries a Voxel item icon (`_voxel_item_icon = svg:<id>`,
	 * files in uploads/ak-nav-icons/): Explore compass, Places pin, Holiday
	 * Camps tent, Events calendar, Guides book, Deals tag, Blog newspaper. Get
	 * Listed has none on purpose — it is a CTA pill, not a nav row.
	 *
	 * Using Voxel's own icon field rather than CSS pseudo-elements is what buys
	 * the consistency: the walker prints the SAME attachment as `.ts-item-icon`
	 * on a top-level item and `.ts-term-icon` on a dropdown row, so the bar, the
	 * dropdown and Voxel's burger menu all render one glyph set from one source.
	 * A pseudo-element would have had to be re-declared per surface and per
	 * href, and would have drifted the first time anyone edited the menu.
	 *
	 * The SVGs ship with no `fill` attribute, so `fill: currentColor` here makes
	 * them follow the link's default, hover and current-item colours for free.
	 *
	 * Icon left, chevron right: Voxel draws `.ts-down-icon` after the label, so
	 * the two affordances never stack on the same side.
	 */
	header.elementor-location-header .ts-nav > li .ts-item-icon {
		display: inline-flex !important; align-items: center; justify-content: center;
		width: 17px !important; height: 17px !important; min-height: 17px !important;
		margin-right: 6px; flex: none;
	}
	/*
	 * ICON COLOUR — brand teal, not the label's colour.
	 *
	 * These started on `currentColor`, which inherited the near-black navy of
	 * the nav links and read as a second bold glyph competing with the word.
	 * They are an accent beside the label, so they take the brand teal at rest
	 * and deepen to #1D5B62 on hover, matching the nav links' own hover teal.
	 *
	 * `fill` is set on the CONTAINER as well as the svg and its paths: fill is
	 * an inherited SVG property, and Voxel colours these through the container
	 * (which is where the stray rgb(121,122,136) grey was coming from — nothing
	 * in the page's own stylesheets touches the svg directly). Colouring all
	 * three levels is what actually sticks, whichever level the theme picks.
	 */
	header.elementor-location-header .ts-nav > li .ts-item-icon,
	header.elementor-location-header .ts-nav > li .ts-item-icon svg,
	header.elementor-location-header .ts-nav > li .ts-item-icon svg path {
		fill: #368D96 !important; color: #368D96 !important;
	}
	header.elementor-location-header .ts-nav > li:hover .ts-item-icon,
	header.elementor-location-header .ts-nav > li:hover .ts-item-icon svg,
	header.elementor-location-header .ts-nav > li:hover .ts-item-icon svg path,
	header.elementor-location-header .ts-nav > li.current-menu-item .ts-item-icon svg,
	header.elementor-location-header .ts-nav > li.current-menu-item .ts-item-icon svg path,
	header.elementor-location-header .ts-nav > li.current-menu-ancestor .ts-item-icon svg,
	header.elementor-location-header .ts-nav > li.current-menu-ancestor .ts-item-icon svg path {
		fill: #368D96 !important; color: #368D96 !important;
	}
	header.elementor-location-header .ts-nav > li .ts-item-icon svg {
		width: 17px !important; height: 17px !important; display: block;
	}
	/* the caret is a border triangle — same accent, same weight */
	header.elementor-location-header .ts-nav-menu .menu-item-has-children > a .ts-down-icon {
		border-color: #368D96 !important;
	}
	header.elementor-location-header .ts-nav-menu .menu-item-has-children:hover > a .ts-down-icon {
		border-color: #368D96 !important;
	}
	/*
	 * The bar grew by seven icons. Rather than shrink the glyphs (which is where
	 * an icon stops being legible), the inter-item gap gives back the width —
	 * measured to still fit one row at 1024.
	 */
	@media (max-width: 1300px) {
		header.elementor-location-header ul.ts-nav > li.menu-item { margin: 0 1px !important; }
		header.elementor-location-header .ts-nav-menu .menu-item > a { padding-left: 10px !important; padding-right: 10px !important; }
	}

	/* — the trigger, still in the header DOM — */
	header.elementor-location-header .ts-nav-menu .menu-item-has-children > a .ts-down-icon {
		border-color: currentColor; opacity: .45; transition: opacity .18s ease;
	}
	header.elementor-location-header .ts-nav-menu .menu-item-has-children:hover > a .ts-down-icon { opacity: .9; }

	/* — the panel, teleported to <body> — */
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-field-popup {
		min-width: 232px;
		border-radius: 18px !important;
		border: 1px solid rgba(139,188,194,.45);
		box-shadow: 0 18px 44px -18px rgba(11,19,36,.30), 0 2px 8px rgba(11,19,36,.06);
		background: #fff;
	}
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list { padding: 8px; }
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li { border: 0; }
	/* the same glyphs again, this time inside the teleported dropdown */
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a { display: flex; align-items: center; }
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a .ts-term-icon {
		display: inline-flex; align-items: center; justify-content: center;
		width: 17px; height: 17px; margin-right: 6px; flex: none;
	}
	/*
	 * Same teal in the dropdown. Scoped on `.ts-multilevel-dropdown` rather than
	 * the widget id here, because that class is only ever emitted by
	 * Nav_Menu_Walker — Voxel's OTHER `.ts-term-dropdown` popups (the search
	 * form's term pickers) do not carry it, so their icons keep their own
	 * colours and nothing outside the nav is restyled.
	 */
	.ts-term-dropdown.ts-multilevel-dropdown .ts-term-icon,
	.ts-term-dropdown.ts-multilevel-dropdown .ts-term-icon svg,
	.ts-term-dropdown.ts-multilevel-dropdown .ts-term-icon svg path {
		fill: #368D96 !important; color: #368D96 !important;
	}
	.ts-term-dropdown.ts-multilevel-dropdown li > a:hover .ts-term-icon,
	.ts-term-dropdown.ts-multilevel-dropdown li > a:hover .ts-term-icon svg,
	.ts-term-dropdown.ts-multilevel-dropdown li > a:hover .ts-term-icon svg path {
		fill: #368D96 !important; color: #368D96 !important;
	}
	/*
	 * The camps row keeps its amber TINT and amber label, but its icon stays
	 * #368D96 like every other one — the icon colour is a single system value
	 * here, not a per-item accent.
	 */

	/*
	 * ── LABEL CONTRAST ON HOVER ───────────────────────────────────────────
	 * The navbar widget's Elementor hover setting paints the inner <span> of a
	 * menu item #b5d5d9 — the same powder blue as the Get Listed pill's
	 * background. On the pill that is a background; on a hovered nav item it is
	 * pale text on the pale #EAF4F5 hover tint, and the label all but vanishes.
	 * Measured before the fix: Deals at rest span = rgb(26,26,46); on hover
	 * span = rgb(181,213,217).
	 *
	 * The <a> itself is already given a readable colour by
	 * header-premium-style.php — it is only the span that is overridden — so
	 * this asserts navy on the span for hover AND keyboard focus, on the bar and
	 * inside the dropdown. Navy rather than the hover teal because it matches
	 * how the current-page pill already renders its label.
	 */
	header.elementor-location-header .ts-nav-menu .menu-item > a:hover span,
	header.elementor-location-header .ts-nav-menu .menu-item > a:focus-visible span,
	header.elementor-location-header .ts-nav-menu .menu-item > div > a:hover span,
	.ts-term-dropdown.ts-multilevel-dropdown li > a:hover span,
	.ts-term-dropdown.ts-multilevel-dropdown li > a:focus-visible span {
		color: #0B1324 !important;
	}
	/* …except the Get Listed pill, whose own colours are correct as they are. */
	header.elementor-location-header .ts-nav-menu .menu-item > a[href*="get-listed"]:hover span {
		color: inherit !important;
	}
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a .ts-term-icon svg {
		width: 17px; height: 17px; display: block;
	}
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a {
		height: auto !important; padding: 11px 14px !important;
		border-radius: 12px; border-bottom: 0 !important;
		font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14px; font-weight: 700;
		color: #0B1324; transition: background .16s ease, color .16s ease;
	}
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a:hover {
		background: #EAF4F5; color: #1D5B62;
	}
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li.current-menu-item > a {
		background: #DCEDEF; color: #14464B;
	}
	/* Holiday Camps wears its own colour wherever it appears in a menu */
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a[href*="holiday-camps"]:hover,
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li.current-menu-item > a[href*="holiday-camps"] {
		background: #FFF3DA; color: #8A5A0B;
	}
	@media (prefers-reduced-motion: reduce) {
		.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a,
		header.elementor-location-header .ts-nav-menu .menu-item-has-children > a .ts-down-icon { transition: none !important; }
	}
	
