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

    body.home .elementor-2226 > .e-con { display: none !important; }

    .akh3 { font-family: Manrope, sans-serif; color: #0B1324; }
    .akh3 * { box-sizing: border-box; }
    /* The clip is loaded on scroll, so the box has to hold its own height from
       the first paint or the section below it jumps when the file arrives. */
    .akh3 .akh-vpol video.akh3-vid { height: auto; aspect-ratio: 16 / 9; background: #f0f4f5; object-fit: cover; }
    .akh3-wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
    .akh3-sec { padding: 52px 0; position: relative; overflow: hidden; }
    .akh3-sec-wash { background: radial-gradient(900px 340px at 50% -8%, rgba(139,188,194,.16), transparent 60%), linear-gradient(180deg, #fff 0%, #f4fafb 100%); }
    .akh3-sec-pink { background: linear-gradient(180deg, #fff 0%, #FDF6F6 100%); }

    /* header */
    .akh3-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 26px; flex-wrap: wrap; }
    .akh3-eyebrow { display: inline-flex; align-items: center; gap: 7px; background: #EAF4F5; color: #1D5B62; padding: 6px 14px; border-radius: 9999px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 11px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; margin-bottom: 12px; }
    .akh3-eyebrow .ak-ico { width: 15px; height: 15px; }
    .akh3-h2 { font-family: 'Plus Jakarta Sans', sans-serif !important; font-size: 25px !important; font-weight: 800; letter-spacing: -0.4px; margin: 0; display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
    .akh3-note { font-family: 'Caveat', cursive; font-size: 19px; font-weight: 600; color: #C83D3D; letter-spacing: 0; transform: rotate(-1.5deg); display: inline-block; }
    .akh3-more { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1.5px solid rgba(139,188,194,.55); color: #0B1324; padding: 10px 20px; border-radius: 9999px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13px; font-weight: 800; text-decoration: none; transition: background .2s, color .2s, transform .2s; white-space: nowrap; }
    .akh3-more .ak-ico { width: 16px; height: 16px; }
    .akh3-more:hover { background: #8bbcc2; color: #fff; border-color: transparent; transform: translateY(-2px); }

    /* squiggle divider */
    .akh3-squig { display: block; margin: 0 auto; width: 130px; height: 14px; }

    /* slim business band (Phase 4) */
    /* D1 (2026-09-20) — newsletter band. The homepage carried no sign-up at
       all; the only route in was a footer link to /newsletter/. One band, the
       real FluentForm (ak_newsletter_form → form 5 → list "Community", double
       opt-in), sitting between the blog strip and the business band. */
    .akh3-nlband { padding: 0 0 46px; }
    .akh3-nlband-in { display: grid; grid-template-columns: 1.2fr minmax(280px, .8fr); gap: 22px 40px; align-items: center;
        padding: 30px 32px; border-radius: 20px; background: linear-gradient(125deg, #0B1324 0%, #1D5B62 100%);
        border: 1px solid rgba(255,255,255,.10); }
    .akh3-nlband-txt b { display: block; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 23px; font-weight: 800; letter-spacing: -0.4px; color: #fff; }
    .akh3-nlband-txt p { margin: 8px 0 0; font-size: 14.5px; line-height: 1.6; color: #b5d5d9; max-width: 44ch; }
    .akh3-nlband-txt small { display: block; margin-top: 10px; font-size: 12.5px; color: #7f9ba0; }
    .akh3-nlband-form { min-width: 0; }
    @media (max-width: 860px) { .akh3-nlband-in { grid-template-columns: 1fr; padding: 24px 20px; } .akh3-nlband-txt b { font-size: 20px; } }
    .akh3-bizband { padding: 0 0 52px; }
    .akh3-bizband-in { display: flex; align-items: center; justify-content: space-between; gap: 18px 26px; flex-wrap: wrap; padding: 20px 26px; border-radius: 16px; background: linear-gradient(120deg, #f2f8f9 0%, #dcedef 100%); border: 1px solid rgba(42,119,128,.16); }
    .akh3-bizband-txt { min-width: 0; }
    .akh3-bizband-txt b { display: block; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 17px; font-weight: 800; letter-spacing: -0.2px; color: #0B1324; }
    .akh3-bizband-txt span { display: block; font-size: 13.5px; color: #4a5c60; margin-top: 3px; }
    .akh3-bizband-links { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
    .akh3-bizband-links a { display: inline-flex; align-items: center; gap: 7px; padding: 11px 20px; border-radius: 9999px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13px; font-weight: 800; text-decoration: none; white-space: nowrap; transition: background .2s, color .2s, transform .2s, border-color .2s; }
    .akh3-bizband-links a .ak-ico { width: 16px; height: 16px; }
    .akh3-bizband-links a.akh3-bb-primary { background: #2A7780; color: #fff; border: 1.5px solid #2A7780; }
    .akh3-bizband-links a.akh3-bb-primary:hover { background: #0B1324; border-color: #0B1324; transform: translateY(-2px); }
    .akh3-bizband-links a.akh3-bb-ghost { background: #fff; color: #0B1324; border: 1.5px solid rgba(42,119,128,.4); }
    .akh3-bizband-links a.akh3-bb-ghost:hover { border-color: #2A7780; color: #2A7780; transform: translateY(-2px); }
    @media (max-width: 640px) {
        .akh3-bizband { padding-bottom: 34px; }
        .akh3-bizband-in { padding: 18px 18px; gap: 14px; }
        .akh3-bizband-txt b { font-size: 16px; }
        .akh3-bizband-links { width: 100%; }
        .akh3-bizband-links a { flex: 1 1 100%; justify-content: center; }
    }

    /* A. plan today */
    .akh3-plan { display: grid; grid-template-columns: 1.15fr 1fr; gap: 44px; align-items: center; }
    .akh3-sub { font-size: 15.5px; color: #5b6b74; line-height: 1.6; margin: 10px 0 22px; max-width: 460px; }
    .akh3-bubbles { display: flex; flex-wrap: wrap; gap: 11px; }
    .akh3-start { margin-top: 26px; padding-top: 20px; border-top: 1px solid rgba(11,19,36,.08); }
    .akh3-start-lab { margin: 0 0 10px; font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #6b7a82; }
    .akh3-start-row { display: flex; flex-wrap: wrap; gap: 8px 10px; }
    .akh3-start-lnk { display: inline-flex; align-items: center; gap: 5px; padding: 7px 13px; border: 1px solid rgba(11,19,36,.12); border-radius: 999px; background: #fff; font-size: 13.5px; font-weight: 700; color: #0B1324 !important; text-decoration: none !important; transition: border-color .15s ease, color .15s ease, background .15s ease; }
    .akh3-start-lnk .ak-ico { opacity: .45; transition: transform .15s ease, opacity .15s ease; }
    .akh3-start-lnk:hover { border-color: #2A7780; color: #2A7780 !important; background: #f2f8f9; }
    .akh3-start-lnk:hover .ak-ico { opacity: 1; transform: translateX(2px); }
    .akh3-bub { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 9999px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13.5px; font-weight: 800; text-decoration: none; transition: transform .18s, box-shadow .18s; }
    .akh3-bub .ak-ico { width: 18px; height: 18px; }
    .akh3-bub:hover { transform: translateY(-3px) rotate(-1deg); box-shadow: 0 10px 22px rgba(11,19,36,.12); }
    .akh3-bub-0 { background: #EAF4F5; color: #1D5B62; }
    .akh3-bub-1 { background: #FBEAEA; color: #C83D3D; }
    .akh3-bub-2 { background: #FAF3E7; color: #8a6d1f; }
    .akh3-bub i { font-style: normal; font-weight: 600; opacity: .6; font-size: 12px; }
    /* relocated hero polaroid collage now lives in the "plan today" media slot */
    .akh3-plan .akh-stack { position: relative; width: 100%; min-height: 400px; }
    @media (max-width: 1024px) { .akh3-plan .akh-stack { max-width: 480px; margin: 0 auto; } }

    /* grids */
    .akh3-pgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
    .akh3-egrid, .akh3-dgrid, .akh3-bgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
    .akh3-pgrid .ts-preview, .akh3-egrid .ts-preview, .akh3-dgrid .ts-preview { min-width: 0; }

    /* ── holiday camps band ──────────────────────────────────────────────
     * The only warm band on the homepage, and deliberately so: it is the one
     * section that is about a DATE rather than a place, and the sun amber is
     * the /holiday-camps/ signature carried up here so the two read as one
     * destination. Split layout because the camps list is young — a copy panel
     * beside two tiles looks intentional at any count, where a four-up grid of
     * one card would look broken. See ak-holiday-camps.php. */
    .akh3-sec-sun { background: linear-gradient(180deg, #fff 0%, #FFF8EA 100%); }
    .akh3-camp { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: 40px; align-items: center; }
    .akh3-camp-copy .akh3-eyebrow { background: #FFF3DA; color: #8A5A0B; }
    .akh3-camp-copy .akh3-h2 { display: block; }
    .akh3-camp-copy .akh3-note { display: inline-block; margin-left: 10px; }
    .akh3-camp-copy p { margin: 14px 0 0; font-size: 15.5px; line-height: 1.7; color: #4A5568; max-width: 46ch; }
    .akh3-camp-cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 22px; background: #0B1324; color: #fff; border-radius: 9999px; padding: 14px 28px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14px; font-weight: 800; text-decoration: none; transition: background .2s, transform .2s; }
    .akh3-camp-cta:hover { background: #E39B1F; color: #fff; transform: translateY(-2px); }
    .akh3-camp-cta .ak-ico { width: 17px; height: 17px; }
    .akh3-camp-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .akh3-camp-cards .ts-preview { min-width: 0; }
    .akh3-camp-cards > .akh3-camp-soon:only-child { grid-column: 1 / -1; }
    .akh3-camp-soon { display: flex; flex-direction: column; justify-content: center; background: #FFF8EA; border: 1.5px dashed rgba(227,155,31,.5); border-radius: 20px; padding: 26px 24px; text-decoration: none; }
    .akh3-camp-soon .ak-ico { width: 26px; height: 26px; color: #E39B1F; margin-bottom: 12px; }
    .akh3-camp-soon b { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 16px; font-weight: 800; color: #8A5A0B; display: block; margin-bottom: 8px; }
    .akh3-camp-soon i { font-style: normal; font-size: 13.5px; line-height: 1.6; color: #7A5B22; }

    /* ── family services band ────────────────────────────────────────────
     * Not the akpv/akvt card family, because what is listed here is a person,
     * not a place: a category is an illustration rather than a photograph, and
     * a provider is a logo beside a name. The .akfs-* rules below ARE the
     * /family-services/ archive card rules, copied one notch smaller so four
     * sit on a 1240px row — same class names, same markup, same look, so a
     * parent who clicks through recognises what they clicked.
     * Source of truth for that card: templates/family-services-archive.php.
     * The palette vars are namespaced (--akfs-*) because the homepage has no
     * .akfs scope to hang the archive's bare --tint/--line names on. */
    .akh3-fs {
        --akfs-accent: #368D96;
        --akfs-aink:   #1D5B62;
        --akfs-tint:   #E4F1F2;
        --akfs-tint2:  #D2E9EB;
        --akfs-navy:   #0B1324;
        --akfs-ink:    #465268;
        --akfs-line:   rgba(11,19,36,.10);
    }
    /* the head carries a deck, so three stacked blocks, not two — top-align the
       "All services" pill with the eyebrow rather than floating it at the bottom */
    .akh3-fs .akh3-head { align-items: flex-start; margin-bottom: 0; }
    /* .akh3-h2 is a flex row; an <em> inside it would become a flex item and take
       the 14px gap. Same fix the camps band uses. */
    .akh3-fs .akh3-h2 { display: block; }
    .akh3-fs .akh3-h2 em { font-style: normal; color: #B0730A; }
    .akh3-fs-deck { margin: 12px 0 0; font-size: 15.5px; line-height: 1.7; color: #4A5568; max-width: 64ch; }

    .akh3-fs-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 26px; }
    /* flex column so the count badge can be pushed to the bottom: the eight
       descriptors run two or three lines and a badge that floats at a different
       height in every tile makes the row look unfinished */
    .akh3-fs-tile {
        display: flex; flex-direction: column; height: 100%;
        background: #fff; border: 1px solid var(--akfs-line); border-radius: 18px;
        padding: 0 18px 18px; overflow: hidden; text-decoration: none; color: var(--akfs-navy);
        transition: transform .2s, box-shadow .2s, border-color .2s;
    }
    .akh3-fs-tile:hover { transform: translateY(-3px); border-color: var(--akfs-tint2); box-shadow: 0 18px 38px -24px rgba(11,19,36,.42); color: var(--akfs-navy); }
    /* the category colour is set once on the tile; the illustration ground and the
       count badge both read it, so the box is already the right colour while the
       image is still in flight */
    .akh3-fs-shot {
        display: block; width: calc(100% + 36px); margin: 0 -18px 15px; aspect-ratio: 3 / 2;
        overflow: hidden; background: var(--akfs-pill-bg, var(--akfs-tint));
    }
    .akh3-fs-shot img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .akh3-fs-tile b { display: block; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; font-weight: 800; line-height: 1.3; letter-spacing: -.2px; }
    /* the descriptor takes the slack, which bottom-aligns every count badge in
       the row — two- and three-line descriptors otherwise leave the badges at
       four different heights and the set looks unfinished */
    .akh3-fs-tile span { display: block; flex: 1 1 auto; margin-top: 7px; font-size: 13px; line-height: 1.55; color: var(--akfs-ink); }
    .akh3-fs-tile em {
        align-self: flex-start; margin-top: 12px; font-style: normal; font-size: 11.5px; font-weight: 800;
        font-family: 'Plus Jakarta Sans', sans-serif; letter-spacing: .4px; text-transform: uppercase;
        color: var(--akfs-pill-fg, var(--akfs-aink)); background: var(--akfs-pill-bg, var(--akfs-tint));
        border-radius: 9999px; padding: 4px 10px;
    }
    .akh3-fs-tile em.is-soon { color: #7C8798; background: #F1F4F5; }

    .akh3-fs-recent { margin-top: 32px; }
    .akh3-fs-rhead { margin: 0 0 14px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 11.5px; font-weight: 800; letter-spacing: 1.1px; text-transform: uppercase; color: #6B7686; }
    .akh3-fs-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; align-items: stretch; }
    .akh3-fs .akfs-card { background: #fff; border: 1px solid var(--akfs-line); border-radius: 18px; overflow: hidden; min-width: 0; display: flex; transition: transform .2s, box-shadow .2s, border-color .2s; }
    .akh3-fs .akfs-card:hover { transform: translateY(-3px); border-color: var(--akfs-tint2); box-shadow: 0 22px 44px -26px rgba(11,19,36,.45); }
    .akh3-fs .akfs-cardlink { display: flex; flex: 1; min-width: 0; gap: 13px; padding: 15px; text-decoration: none; color: inherit; align-items: flex-start; }
    .akh3-fs .akfs-shot { width: 58px; height: 58px; flex: none; border-radius: 14px; overflow: hidden; background: var(--akfs-tint); display: flex; align-items: center; justify-content: center; }
    .akh3-fs .akfs-shot img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .akh3-fs .akfs-initial { font-family: 'Fredoka', sans-serif; font-size: 24px; font-weight: 600; color: var(--akfs-accent); }
    .akh3-fs .akfs-body { display: flex; flex-direction: column; gap: 5px; min-width: 0; flex: 1; }
    .akh3-fs .akfs-cats { display: flex; flex-wrap: wrap; gap: 4px; align-self: flex-start; max-width: 100%; }
    .akh3-fs .akfs-cat {
        max-width: 100%; background: var(--akfs-pill-bg, var(--akfs-tint));
        color: var(--akfs-pill-fg, var(--akfs-aink)); border-radius: 9999px; padding: 3px 8px;
        font-family: 'Plus Jakarta Sans', sans-serif; font-size: 11px; font-weight: 800;
        letter-spacing: .3px; text-transform: uppercase; line-height: 1.4;
    }
    .akh3-fs .akfs-name { margin: 1px 0 0; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; font-weight: 800; letter-spacing: -.3px; color: var(--akfs-navy); line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .akh3-fs .akfs-tag { font-size: 12.5px; line-height: 1.5; color: var(--akfs-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .akh3-fs .akfs-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 2px; min-width: 0; }
    .akh3-fs .akfs-metabit { display: inline-flex; align-items: center; gap: 5px; min-width: 0; max-width: 100%; font-size: 12px; font-weight: 600; color: #6B7686; }
    .akh3-fs .akfs-metabit span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .akh3-fs .ak-fs-ico { width: 13px; height: 13px; flex: none; fill: #9AA3B4; display: inline-block; }

    .akh3-fs-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
    .akh3-fs-btn {
        display: inline-flex; align-items: center; gap: 8px; padding: 14px 26px; border-radius: 9999px;
        background: var(--akfs-navy); color: #fff; border: 1.5px solid var(--akfs-navy);
        font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14px; font-weight: 800; text-decoration: none;
        transition: background .2s, color .2s, border-color .2s, transform .2s;
    }
    .akh3-fs-btn:hover { background: var(--akfs-accent); border-color: var(--akfs-accent); color: #fff; transform: translateY(-2px); }
    .akh3-fs-btn .ak-ico { width: 17px; height: 17px; }
    .akh3-fs-btn.is-ghost { background: #fff; color: var(--akfs-navy); border-color: rgba(42,119,128,.42); }
    .akh3-fs-btn.is-ghost:hover { background: #fff; color: var(--akfs-aink); border-color: var(--akfs-accent); }

    /* blog cards */
    .akh3-bcard { background: #fff; border: 1px solid rgba(190,201,195,.28); border-radius: 18px; overflow: hidden; text-decoration: none; color: inherit; display: block; transition: transform .2s, box-shadow .2s; }
    .akh3-bcard:hover { transform: translateY(-4px); box-shadow: 0 14px 30px rgba(11,19,36,.12); }
    .akh3-bimg { height: 158px; background: linear-gradient(135deg, #8bbcc2, #b5d5d9); position: relative; overflow: hidden; }
    .akh3-bimg img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s; }
    .akh3-bcard:hover .akh3-bimg img { transform: scale(1.04); }
    .akh3-bchip { position: absolute; top: 10px; left: 10px; background: rgba(255,255,255,.95); color: #1D5B62; padding: 4px 11px; border-radius: 9999px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 10px; font-weight: 800; letter-spacing: .9px; text-transform: uppercase; }
    .akh3-bbody { padding: 14px 16px 16px; }
    .akh3-btitle { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; font-weight: 800; line-height: 1.35; color: #0B1324; margin: 0 0 6px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .akh3-bdate { font-size: 12px; font-weight: 600; color: #6e7a74; }

    /* cities */
    .akh3-cities { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; }
    .akh3-city { background: #fff; border: 1px solid rgba(190,201,195,.28); border-radius: 16px; padding: 18px 12px 15px; text-align: center; text-decoration: none; color: inherit; transition: transform .18s, box-shadow .18s, border-color .18s; }
    .akh3-city:hover { transform: translateY(-3px); box-shadow: 0 12px 26px rgba(11,19,36,.1); border-color: rgba(42,119,128,.4); }
    .akh3-city .ak-ico { box-sizing: content-box; width: 22px; height: 22px; color: #2A7780; background: #EAF4F5; border-radius: 12px; padding: 8px; }
    .akh3-city b { display: block; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13.5px; font-weight: 800; color: #0B1324; margin-top: 9px; }
    .akh3-city span { display: block; font-size: 11px; font-weight: 600; color: #6e7a74; margin-top: 2px; }

    /* trust band */
    .akh3-trust { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
    .akh3-tcard { background: #fff; border: 1px solid rgba(190,201,195,.28); border-radius: 20px; padding: 26px 24px; }
    .akh3-tcard .ak-ico { box-sizing: content-box; width: 24px; height: 24px; color: #1D5B62; background: #EAF4F5; border-radius: 14px; padding: 10px; }
    .akh3-tcard.akh3-tcard-pink .ak-ico { color: #C83D3D; background: #FBEAEA; }
    .akh3-tcard b { display: block; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 16px; font-weight: 800; color: #0B1324; margin: 12px 0 6px; }
    .akh3-tcard p { font-size: 13.5px; color: #5b6b74; line-height: 1.6; margin: 0; }

    @media (max-width: 1024px) {
        .akh3-plan { grid-template-columns: 1fr; gap: 30px; }
        .akh3-cities { grid-template-columns: repeat(3, 1fr); }
        .akh3-trust { grid-template-columns: 1fr; }
        .akh3-pgrid { grid-template-columns: repeat(2, 1fr); }
        .akh3-egrid, .akh3-dgrid, .akh3-bgrid { grid-template-columns: repeat(2, 1fr); }
        .akh3-camp { grid-template-columns: 1fr; gap: 28px; }
        .akh3-fs-tiles, .akh3-fs-cards { grid-template-columns: repeat(2, 1fr); }
    }
    @media (max-width: 640px) {
        .akh3-wrap { padding: 0 14px; }
        .akh3-sec { padding: 38px 0; }
        .akh3-pgrid, .akh3-egrid, .akh3-dgrid, .akh3-bgrid { grid-template-columns: 1fr; }
        .akh3-camp-cards { grid-template-columns: 1fr; }
        .akh3-camp-cta { width: 100%; justify-content: center; }
        .akh3-cities { grid-template-columns: repeat(2, 1fr); }
        .akh3-h2 { font-size: 21px !important; }
        /* two up, four down — eight tiles still scan in one thumb-flick, and a
           single column of eight would bury the cards under them */
        .akh3-fs-tiles { grid-template-columns: repeat(2, 1fr); gap: 12px; }
        .akh3-fs-tile { padding: 0 13px 14px; border-radius: 16px; }
        .akh3-fs-shot { width: calc(100% + 26px); margin: 0 -13px 11px; }
        .akh3-fs-tile b { font-size: 13.5px; }
        .akh3-fs-tile span { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-top: 5px; font-size: 12px; }
        .akh3-fs-tile em { margin-top: 10px; font-size: 10.5px; padding: 3px 9px; }
        .akh3-fs-deck { font-size: 14.5px; }
        .akh3-fs-cards { grid-template-columns: 1fr; }
        .akh3-fs-btn { flex: 1 1 100%; justify-content: center; }
    }
    @media (prefers-reduced-motion: reduce) {
        .akh3 * { animation: none !important; transition: none !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; }
    }
    

    body.home .elementor-element-97b3828 { display: none !important; }

    .akh { background: #f6fafb; font-family: Manrope, sans-serif; color: #0B1324; }
    .akh * { box-sizing: border-box; }
    .akh-wrap { max-width: 1240px; margin: 0 auto; padding: 54px 24px 46px; }
    .akh-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 44px; align-items: center; }

    /* left */
    .akh-eyebrow { display: inline-flex; align-items: center; gap: 8px; background: #EAF4F5; color: #1D5B62; padding: 7px 16px; border-radius: 9999px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 11.5px; font-weight: 800; letter-spacing: 1.2px; text-transform: uppercase; margin-bottom: 18px; }
    .akh-eyebrow .ak-ico { width: 16px; height: 16px; }
    .akh-h1 { font-family: 'Plus Jakarta Sans', sans-serif !important; font-weight: 800; font-size: clamp(34px, 3.8vw, 48px) !important; line-height: 1.12 !important; letter-spacing: -0.5px; margin: 0 0 16px; color: #0B1324; }
    .akh-hl { color: #2A7780; position: relative; white-space: nowrap; }
    .akh-hl svg { position: absolute; left: 0; right: 0; bottom: -7px; width: 100%; height: 9px; }
    .akh-sub { font-size: 16.5px; color: #5b6b74; line-height: 1.6; margin: 0 0 22px; max-width: 480px; }
    .akh-search-wrap { position: relative; width: 100%; max-width: 460px; }
    .akh-search-note { position: absolute; top: -30px; right: 6px; display: inline-flex; align-items: flex-start; gap: 4px; font-family: 'Caveat', cursive; font-size: 21px; font-weight: 700; color: #C83D3D; transform: rotate(-3deg); white-space: nowrap; pointer-events: none; z-index: 2; }
    .akh-search-note svg { width: 30px; height: 27px; margin-top: 12px; }
    .akh-search { display: flex; align-items: center; gap: 12px; width: 100%; max-width: 460px; padding: 16px 20px; background: #fff; border: 1px solid rgba(11,19,36,.08); border-radius: 9999px; cursor: pointer; box-shadow: 0 6px 24px rgba(11,19,36,.07); font-family: Manrope, sans-serif; transition: box-shadow .2s, border-color .2s, transform .2s; }
    .akh-search:hover { border-color: rgba(42,119,128,.45); box-shadow: 0 10px 30px rgba(42,119,128,.16); transform: translateY(-1px); }
    .akh-search .ak-ico { width: 21px; height: 21px; color: #2A7780; }
    .akh-search-ph { flex: 1; text-align: left; font-size: 15px; font-weight: 600; color: #9aa7ad; }
    .akh-search kbd { background: rgba(11,19,36,.06); color: #3e4944; border-radius: 6px; font-size: 11.5px; font-weight: 700; padding: 3px 9px; font-family: inherit; }
    /* quick-access pills under the search bar — Events + Places */
    .akh-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; max-width: 560px; }
    .akh-pill { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; background: #fff; border: 1px solid rgba(11,19,36,.08); border-radius: 9999px; box-shadow: 0 4px 16px rgba(11,19,36,.06); font-family: Manrope, sans-serif; font-size: 13.5px; font-weight: 700; color: #0B1324; text-decoration: none; transition: box-shadow .2s, border-color .2s, transform .2s; }
    .akh-pill:hover { border-color: rgba(42,119,128,.45); box-shadow: 0 8px 22px rgba(42,119,128,.16); transform: translateY(-1px); color: #0B1324; }
    .akh-pill .ak-ico { width: 18px; height: 18px; color: #2A7780; }
    .akh-facts { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 20px; font-size: 13.5px; font-weight: 600; color: #5b6b74; }
    .akh-facts b { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; color: #0B1324; }
    .akh-facts i { color: #b6c2c6; font-style: normal; }

    /* right: polaroid scrapbook stack of the site's own top places */
    .akh-stack { position: relative; min-height: 430px; }
    /* single static hero photo (replaces the old polaroid collage) */
    .akh-stack--photo { display: flex; align-items: center; justify-content: center; }
    .akh-hero-photo { width: 100%; height: auto; max-height: 460px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 22px; border: 6px solid #fff;
        box-shadow: 0 20px 50px rgba(11,19,36,.16), 0 4px 14px rgba(11,19,36,.08); }
    .akh-pol { position: absolute; display: block; background: #fff; padding: 10px 10px 12px; border-radius: 6px;
        box-shadow: 0 10px 30px rgba(11,19,36,.14), 0 2px 8px rgba(11,19,36,.08);
        text-decoration: none; color: inherit; transition: transform .25s ease, box-shadow .25s ease; }
    .akh-pol img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 3px; }
    .akh-pol-cap { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 9px 4px 0; }
    .akh-pol-cap b { font-family: 'Caveat', 'Plus Jakarta Sans', cursive; font-size: 19px; font-weight: 700; color: #0B1324;
        white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .akh-pol-cap span { font-family: 'Caveat', cursive; font-size: 15px; color: #8a969b; white-space: nowrap; }
    .akh-pol-1 { width: 56%; top: 6%; right: 4%; transform: rotate(2.5deg); z-index: 3; }
    .akh-pol-1 .akh-pol-ph { height: 250px; }
    .akh-pol-2 { width: 44%; top: 0; left: 0; transform: rotate(-5deg); z-index: 2; }
    .akh-pol-2 .akh-pol-ph { height: 170px; }
    .akh-pol-3 { width: 46%; bottom: 2%; left: 12%; transform: rotate(-1.5deg); z-index: 4; }
    .akh-pol-3 .akh-pol-ph { height: 165px; }
    .akh-pol:hover { transform: rotate(0deg) translateY(-5px) scale(1.02); box-shadow: 0 18px 44px rgba(11,19,36,.2); z-index: 9; }
    /* washi-tape strips */
    .akh-pol::before { content: ''; position: absolute; top: -10px; left: 50%; transform: translateX(-50%) rotate(-2deg);
        width: 74px; height: 22px; background: rgba(181,213,217,.65); border-left: 1px dashed rgba(255,255,255,.7);
        border-right: 1px dashed rgba(255,255,255,.7); border-radius: 2px; }
    .akh-pol-3::before { background: rgba(240,144,144,.55); transform: translateX(-50%) rotate(3deg); }
    /* video polaroid variant */
    .akh-vpol { width: 86%; top: 2%; right: 0; transform: rotate(1.6deg); z-index: 2; }
    .akh-vpol video { display: block; width: 100%; border-radius: 3px; }
    .akh-vpol-side { width: 42%; bottom: 0; left: 2%; transform: rotate(-4.5deg); z-index: 5; }
    .akh-vpol-side .akh-pol-ph { height: 140px; }

    /* doodles */
    /* Instagram badge on the hero photo */
    .akh-ig { position: absolute; left: 20px; bottom: 20px; z-index: 3; display: inline-flex; align-items: center; gap: 10px; background: rgba(255,255,255,.94); backdrop-filter: blur(6px); border-radius: 999px; padding: 8px 16px 8px 8px; box-shadow: 0 8px 24px rgba(11,19,36,.22); text-decoration: none; transition: transform .18s, box-shadow .18s; }
    .akh-ig:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(11,19,36,.3); }
    .akh-ig-icon { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(45deg, #f9ce34, #ee2a7b 55%, #6228d7); }
    .akh-ig-icon svg { width: 19px; height: 19px; }
    .akh-ig-txt { display: flex; flex-direction: column; line-height: 1.25; }
    .akh-ig-txt b { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13.5px; font-weight: 800; color: #0B1324; }
    .akh-ig-txt span { font-family: Manrope, sans-serif; font-size: 11.5px; font-weight: 600; color: #6e7a74; }
    .akh-doodle { position: absolute; pointer-events: none; }
    .akh-doodle-squig { top: -14px; left: 34%; width: 90px; }
    .akh-doodle-dots { bottom: 6%; right: 2%; display: flex; gap: 7px; }
    .akh-doodle-dots i { width: 9px; height: 9px; border-radius: 50%; background: #b5d5d9; }
    .akh-doodle-dots i:nth-child(2) { background: #F09090; }
    .akh-doodle-dots i:nth-child(3) { background: #2A7780; }
    /* floating "loved by" badge */
    .akh-loved { position: absolute; bottom: 12%; left: -12px; z-index: 6; display: inline-flex; align-items: center; gap: 8px;
        background: #fff; border: 1px solid rgba(190,201,195,.35); border-radius: 9999px; padding: 9px 16px;
        box-shadow: 0 10px 26px rgba(11,19,36,.14); font-size: 12.5px; font-weight: 700; color: #0B1324;
        transform: rotate(-2deg); }
    .akh-loved .ak-ico { width: 16px; height: 16px; color: #E24B4B; fill: currentColor; }

    /* gentle entrance */
    @media (prefers-reduced-motion: no-preference) {
        .akh-copy > * { animation: akhup .5s ease both; }
        .akh-copy > *:nth-child(2) { animation-delay: .06s; } .akh-copy > *:nth-child(3) { animation-delay: .12s; }
        .akh-copy > *:nth-child(4) { animation-delay: .18s; } .akh-copy > *:nth-child(5) { animation-delay: .24s; }
        .akh-stack--photo { animation: akhpol .6s ease both .12s; }
        .akh-pol-2 { animation: akhpol .6s ease both .05s; }
        .akh-vpol { animation: akhpol .65s ease both .08s; }
        .akh-vpol-side { animation: akhpol .6s ease both .25s; }
        .akh-pol-1 { animation: akhpol .6s ease both .15s; }
        .akh-pol-3 { animation: akhpol .6s ease both .28s; }
        .akh-loved { animation: akhup .5s ease both .45s; }
    }
    @keyframes akhup { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
    @keyframes akhpol { from { opacity: 0; transform: translateY(18px) rotate(0deg); } }

    @media (max-width: 1024px) {
        .akh-grid { grid-template-columns: 1fr; gap: 34px; }
        .akh-stack { min-height: 360px; max-width: 480px; margin: 0 auto; width: 100%; }
    }
    @media (max-width: 640px) {
        .akh-wrap { padding: 32px 14px 36px; }
        .akh-stack { min-height: 300px; }
        .akh-pol-1 .akh-pol-ph { height: 170px; }
        .akh-pol-2 .akh-pol-ph { height: 120px; }
        .akh-pol-3 .akh-pol-ph { height: 115px; }
        .akh-pol-cap b { font-size: 16px; }
        .akh-loved { left: 0; bottom: 6%; }
        .akh-sub { font-size: 15px; }
        .akh-search { padding: 14px 18px; }
        .akh-search-wrap { margin-top: 6px; }
        .akh-search-note { font-size: 18px; top: -26px; right: 10px; }
        .akh-search-note svg { width: 25px; height: 22px; margin-top: 10px; }
        .akh-ig { left: 12px; bottom: 12px; padding: 6px 13px 6px 6px; }
        .akh-ig-icon { width: 30px; height: 30px; }
        .akh-ig-txt b { font-size: 12.5px; }
        .akh-ig-txt span { font-size: 10.5px; }
        .akh-pills { max-width: 100%; }
        .akh-pill { padding: 9px 16px; font-size: 13px; }
    }
    
.ts-preview:has(.ak-ev-noocc){display:none !important;}

	.akqw-weekend { font-family: Manrope, sans-serif; padding: 26px 0 6px; background: #fff; }
	.akqw-weekend * { box-sizing: border-box; }
	.akqw-wrap { max-width: 1240px; margin: 0 auto; padding: 0 24px; }
	.akqw-top { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; }
	.akqw-h { display: inline-flex; align-items: center; gap: 8px; font-family: 'Plus Jakarta Sans', sans-serif !important; font-size: 17px !important; font-weight: 800; letter-spacing: -0.2px; color: #0B1324; margin: 0; }
	.akqw-h .ak-ico { color: #E39B1F; }
	.akqw-chips { display: flex; gap: 8px; flex-wrap: wrap; }
	.akqw-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border-radius: 9999px; background: #EAF4F5; color: #1D5B62; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 12.5px; font-weight: 800; text-decoration: none; border: 1px solid transparent; transition: background .18s, border-color .18s, transform .18s; }
	.akqw-chip:hover { background: #fff; border-color: rgba(42,119,128,.45); transform: translateY(-1px); }
	.akqw-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
	.akqw-card { display: flex; align-items: center; gap: 11px; min-width: 0; padding: 9px; border-radius: 14px; border: 1px solid rgba(190,201,195,.34); background: #fff; text-decoration: none; color: inherit; transition: transform .18s, box-shadow .18s, border-color .18s; }
	.akqw-card:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(11,19,36,.10); border-color: rgba(42,119,128,.35); }
	.akqw-thumb { flex: 0 0 54px; width: 54px; height: 54px; border-radius: 10px; overflow: hidden; background: #EAF4F5; }
	.akqw-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
	.akqw-body { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
	.akqw-when { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 10.5px; font-weight: 800; letter-spacing: .7px; text-transform: uppercase; color: #C83D3D; }
	.akqw-title { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13.5px; font-weight: 800; line-height: 1.32; color: #0B1324; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
	.akqw-city { font-size: 11.5px; color: #6e7a74; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	@media (max-width: 1024px) { .akqw-row { grid-template-columns: repeat(2, 1fr); } }
	@media (max-width: 640px) {
		.akqw-wrap { padding: 0 14px; }
		.akqw-row { grid-template-columns: 1fr; }
		.akqw-top { margin-bottom: 12px; }
	}
	@media (prefers-reduced-motion: reduce) { .akqw-weekend * { transition: 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 polish — make the "From the Blog" band feel like its own   */
    /* chapter, not a buried afterthought.                                 */
    /* ------------------------------------------------------------------ */
    body.home .elementor-element-aa0d66e {
        background:
            radial-gradient(1200px 400px at 50% -10%, rgba(181, 213, 217, 0.18), transparent 60%),
            linear-gradient(180deg, #ffffff 0%, #f7fbfb 100%) !important;
        padding-top: 72px !important;
        padding-bottom: 72px !important;
    }

    /* Section eyebrow "FAMILY STORIES" */
    body.home .elementor-element-aa0d66e .elementor-widget-heading:first-of-type .elementor-heading-title {
        color: #0b1324 !important;
    }

    /* ------------------------------------------------------------------ */
    /* Card template scope — .ts-preview rendered by feed 51336b6          */
    /* Card template internal root = .elementor-2281                       */
    /* ------------------------------------------------------------------ */
    .elementor-element-51336b6 .ts-preview,
    body.blog .elementor-widget-ts-post-feed .ts-preview:has(.elementor-2281) {
        background: #ffffff;
        border-radius: 20px;
        overflow: hidden;
        box-shadow:
            0 1px 2px rgba(11, 19, 36, 0.04),
            0 8px 24px rgba(11, 19, 36, 0.06);
        border: 1px solid rgba(181, 213, 217, 0.22);
        transition:
            transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
            box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1),
            border-color 0.35s ease;
        position: relative;
        isolation: isolate;
    }

    .elementor-element-51336b6 .ts-preview:hover,
    body.blog .elementor-widget-ts-post-feed .ts-preview:has(.elementor-2281):hover {
        transform: translateY(-6px);
        box-shadow:
            0 2px 4px rgba(11, 19, 36, 0.05),
            0 20px 42px rgba(11, 19, 36, 0.12),
            0 4px 10px rgba(139, 188, 194, 0.18);
        border-color: rgba(139, 188, 194, 0.45);
    }

    /* Neutralise the card template's own inner padding so our scope owns it */
    .elementor-element-51336b6 .ts-preview .elementor-2281 .elementor-element-7dc5ab9 > .e-con-inner,
    .elementor-element-51336b6 .ts-preview .elementor-2281 > .e-con {
        padding: 0 !important;
        margin: 0 !important;
    }

    /* ------------------------------------------------------------------ */
    /* Image frame — 16:9, rounded top, scale on hover                     */
    /* Card image anchor = .elementor-element-873e12a                      */
    /* Image widget      = .elementor-element-7e58d96                      */
    /* ------------------------------------------------------------------ */
    .elementor-element-51336b6 .ts-preview .elementor-element-873e12a {
        position: relative;
        display: block;
        aspect-ratio: 16 / 10;
        overflow: hidden;
        padding: 0 !important;
        margin: 0 !important;
        border-radius: 0 !important;
        background: linear-gradient(135deg, #eaf4f5, #f2f8f9);
    }

    .elementor-element-51336b6 .ts-preview .elementor-element-873e12a > .e-con-inner,
    .elementor-element-51336b6 .ts-preview .elementor-element-7e58d96 {
        padding: 0 !important;
        margin: 0 !important;
        width: 100%;
        height: 100%;
    }

    .elementor-element-51336b6 .ts-preview .elementor-element-7e58d96 img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        display: block;
        transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
        will-change: transform;
    }

    .elementor-element-51336b6 .ts-preview:hover .elementor-element-7e58d96 img {
        transform: scale(1.06);
    }

    /* Subtle gradient wash over image bottom to add depth */
    .elementor-element-51336b6 .ts-preview .elementor-element-873e12a::after {
        content: '';
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, transparent 60%, rgba(11, 19, 36, 0.18) 100%);
        pointer-events: none;
        opacity: 0;
        transition: opacity 0.35s ease;
    }

    .elementor-element-51336b6 .ts-preview:hover .elementor-element-873e12a::after {
        opacity: 1;
    }

    /* ------------------------------------------------------------------ */
    /* Content column — padding + typography                               */
    /* Content container = .elementor-element-1e34a57                      */
    /* ------------------------------------------------------------------ */
    .elementor-element-51336b6 .ts-preview .elementor-element-1e34a57 {
        padding: 22px 24px 20px !important;
    }

    .elementor-element-51336b6 .ts-preview .elementor-element-1e34a57 > .e-con-inner {
        padding: 0 !important;
        gap: 10px !important;
        display: flex !important;
        flex-direction: column !important;
    }

    /* --- Meta strip: category chip + date ----------------------------- */
    /* Meta widget = .elementor-element-ac2257f                            */
    /* NOTE: this widget has NO .elementor-widget-container wrapper —      */
    /* the flex row <div> is a direct child of the widget root.            */
    .elementor-element-51336b6 .ts-preview .elementor-element-ac2257f {
        margin: 0 !important;
    }

    /* The inline <div> holds category + date spans */
    .elementor-element-51336b6 .ts-preview .elementor-element-ac2257f > div {
        gap: 8px !important;
        flex-wrap: wrap;
    }

    /* Category pill (left span) */
    .elementor-element-51336b6 .ts-preview .elementor-element-ac2257f > div > span:first-child {
        background: linear-gradient(135deg, rgba(181, 213, 217, 0.22), rgba(139, 188, 194, 0.22)) !important;
        color: #0b1324 !important;
        font-weight: 700 !important;
        font-size: 10.5px !important;
        letter-spacing: 0.8px !important;
        padding: 5px 11px 5px 9px !important;
        border-radius: 999px !important;
        border: 1px solid rgba(139, 188, 194, 0.35) !important;
        line-height: 1 !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 6px !important;
    }

    .elementor-element-51336b6 .ts-preview .elementor-element-ac2257f > div > span:first-child > span {
        background: #0e6b5e !important;
        width: 5px !important;
        height: 5px !important;
    }

    /* Date (right span) — cleaned by JS to "Dec 26, 2025" */
    .elementor-element-51336b6 .ts-preview .elementor-element-ac2257f > div > span:last-child {
        color: #64748b !important;
        font-size: 11.5px !important;
        font-weight: 500 !important;
        letter-spacing: 0.1px !important;
        white-space: nowrap;
    }

    /* --- Title ------------------------------------------------------- */
    /* Heading widget = .elementor-element-d0cd543                        */
    .elementor-element-51336b6 .ts-preview .elementor-element-d0cd543 {
        margin: 4px 0 2px 0 !important;
    }

    .elementor-element-51336b6 .ts-preview .elementor-element-d0cd543 .elementor-heading-title {
        font-family: 'Plus Jakarta Sans', 'Manrope', system-ui, sans-serif !important;
        font-size: 17px !important;
        font-weight: 700 !important;
        line-height: 1.32 !important;
        color: #0b1324 !important;
        letter-spacing: -0.2px !important;
        display: -webkit-box !important;
        -webkit-line-clamp: 2 !important;
        -webkit-box-orient: vertical !important;
        overflow: hidden !important;
        min-height: calc(1.32em * 2);
        transition: color 0.25s ease;
    }

    .elementor-element-51336b6 .ts-preview:hover .elementor-element-d0cd543 .elementor-heading-title {
        color: #0e6b5e !important;
    }

    /* --- Spacer between title + footer ------------------------------- */
    .elementor-element-51336b6 .ts-preview .elementor-element-c949f39 {
        flex: 1 !important;
        min-height: 4px !important;
    }

    /* --- Footer row (author/date + Read more) ------------------------ */
    /* Footer widget = .elementor-element-8db144e                         */
    /* NOTE: no .elementor-widget-container wrapper here either.          */
    .elementor-element-51336b6 .ts-preview .elementor-element-8db144e {
        margin: 0 !important;
    }

    .elementor-element-51336b6 .ts-preview .elementor-element-8db144e > div {
        padding-top: 14px !important;
        border-top: 1px solid rgba(11, 19, 36, 0.06) !important;
        margin-top: 6px;
    }

    /* Author/meta left side */
    .elementor-element-51336b6 .ts-preview .elementor-element-8db144e > div > div:first-child {
        color: #64748b !important;
    }

    .elementor-element-51336b6 .ts-preview .elementor-element-8db144e > div > div:first-child svg {
        color: #8bbcc2 !important;
        width: 14px !important;
        height: 14px !important;
    }

    .elementor-element-51336b6 .ts-preview .elementor-element-8db144e > div > div:first-child span {
        font-size: 12px !important;
        font-weight: 500 !important;
        color: #64748b !important;
    }

    /* Read-more link */
    .elementor-element-51336b6 .ts-preview .elementor-element-8db144e > div > a {
        background: #0b1324 !important;
        color: #ffffff !important;
        padding: 8px 14px !important;
        border-radius: 999px !important;
        font-size: 11.5px !important;
        font-weight: 700 !important;
        letter-spacing: 0.2px !important;
        gap: 6px !important;
        transition:
            background-color 0.25s ease,
            transform 0.25s ease,
            box-shadow 0.25s ease !important;
        box-shadow: 0 2px 6px rgba(11, 19, 36, 0.1) !important;
    }

    .elementor-element-51336b6 .ts-preview .elementor-element-8db144e > div > a:hover {
        background: linear-gradient(135deg, #0e6b5e, #8bbcc2) !important;
        transform: translateX(2px);
        box-shadow: 0 4px 12px rgba(14, 107, 94, 0.35) !important;
    }

    .elementor-element-51336b6 .ts-preview .elementor-element-8db144e > div > a svg {
        transition: transform 0.25s ease !important;
        stroke: currentColor !important;
    }

    .elementor-element-51336b6 .ts-preview .elementor-element-8db144e > div > a:hover svg {
        transform: translateX(3px);
    }

    /* ------------------------------------------------------------------ */
    /* Feed grid — tighten gaps, add gentle stagger on enter               */
    /* ------------------------------------------------------------------ */
    .elementor-element-51336b6 .ts-post-feed.default-grid {
        gap: 24px !important;
    }

    @keyframes ak-blog-card-enter {
        from { opacity: 0; transform: translateY(14px); }
        to   { opacity: 1; transform: translateY(0); }
    }

    .elementor-element-51336b6 .ts-preview {
        animation: ak-blog-card-enter 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
    }
    .elementor-element-51336b6 .ts-preview:nth-child(1) { animation-delay: 0.00s; }
    .elementor-element-51336b6 .ts-preview:nth-child(2) { animation-delay: 0.05s; }
    .elementor-element-51336b6 .ts-preview:nth-child(3) { animation-delay: 0.10s; }
    .elementor-element-51336b6 .ts-preview:nth-child(4) { animation-delay: 0.15s; }
    .elementor-element-51336b6 .ts-preview:nth-child(5) { animation-delay: 0.20s; }
    .elementor-element-51336b6 .ts-preview:nth-child(6) { animation-delay: 0.25s; }

    /* Reduced motion */
    @media (prefers-reduced-motion: reduce) {
        .elementor-element-51336b6 .ts-preview,
        .elementor-element-51336b6 .ts-preview *,
        .elementor-element-51336b6 .ts-preview .elementor-element-7e58d96 img {
            transition: none !important;
            animation: none !important;
        }
    }

    /* ------------------------------------------------------------------ */
    /* "View all" button at the end of the section — pill it up            */
    /* ------------------------------------------------------------------ */
    body.home .elementor-element-aa0d66e .elementor-widget-button .elementor-button {
        background: #ffffff !important;
        color: #0b1324 !important;
        border: 1.5px solid rgba(139, 188, 194, 0.55) !important;
        padding: 12px 24px !important;
        border-radius: 999px !important;
        font-weight: 700 !important;
        letter-spacing: 0.1px !important;
        transition: all 0.25s ease;
        box-shadow: 0 2px 8px rgba(139, 188, 194, 0.12);
    }

    body.home .elementor-element-aa0d66e .elementor-widget-button .elementor-button:hover {
        background: linear-gradient(135deg, #8bbcc2, #b5d5d9) !important;
        border-color: transparent !important;
        transform: translateY(-2px);
        box-shadow: 0 8px 20px rgba(139, 188, 194, 0.3);
    }

    body.home .elementor-element-aa0d66e .elementor-widget-button .elementor-button svg path {
        fill: #0b1324;
    }

    /* ------------------------------------------------------------------ */
    /* Responsive tuning                                                    */
    /* ------------------------------------------------------------------ */
    @media (max-width: 1024px) {
        .elementor-element-51336b6 .ts-preview .elementor-element-1e34a57 {
            padding: 20px 20px 18px !important;
        }
        .elementor-element-51336b6 .ts-preview .elementor-element-d0cd543 .elementor-heading-title {
            font-size: 16px !important;
        }
    }

    @media (max-width: 640px) {
        body.home .elementor-element-aa0d66e {
            padding-top: 48px !important;
            padding-bottom: 48px !important;
        }
        .elementor-element-51336b6 .ts-post-feed.default-grid {
            gap: 18px !important;
        }
        .elementor-element-51336b6 .ts-preview {
            border-radius: 18px;
        }
    }
    

    /* rebuilt deal card */
    .ts-preview.akdv {
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        overflow: visible !important;
    }
    .akdv-link {
        display: flex;
        flex-direction: column;
        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.akdv:hover .akdv-link {
        transform: translateY(-4px);
        box-shadow: 0 16px 36px rgba(11, 19, 36, 0.13);
    }
    .akdv-media { position: relative; height: 160px; background: linear-gradient(135deg, #8bbcc2, #b5d5d9); overflow: hidden; }
    .akdv-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.45s ease; }
    .ts-preview.akdv:hover .akdv-media img { transform: scale(1.05); }
    .akdv-off {
        position: absolute; top: 10px; left: 10px;
        background: #E24B4B; color: #fff;
        padding: 5px 12px; border-radius: 9999px;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 11.5px; font-weight: 800; letter-spacing: 0.4px;
        box-shadow: 0 4px 12px rgba(226, 75, 75, 0.4);
        display: inline-flex; align-items: center; gap: 5px;
    }
    .akdv-off .ak-ico { width: 14px; height: 14px; }
    .akdv-partner {
        position: absolute; bottom: 10px; right: 10px;
        background: rgba(11, 19, 36, 0.55);
        -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
        color: #fff; padding: 4px 11px; border-radius: 9999px;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 10.5px; font-weight: 700;
    }
    .akdv-body { padding: 14px 16px 12px; display: flex; flex-direction: column; gap: 5px; flex: 1; }
    .akdv-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.akdv:hover .akdv-title { color: #1D5B62; }
    .akdv-brief {
        font-size: 12.5px; font-weight: 500; color: #6e7a74; line-height: 1.5;
        display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden;
        margin: 0;
    }
    /* the cut-line */
    .akdv-cut {
        position: relative;
        border-top: 2px dashed rgba(190, 201, 195, 0.6);
        margin: 0 16px;
    }
    .akdv-cut .ak-ico {
        position: absolute; top: -9px; right: 8px;
        width: 16px; height: 16px; color: #b6c2c6;
        background: #fff; padding: 0 3px; box-sizing: content-box;
        transform: scaleX(-1);
    }
    .akdv-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 11px 16px 14px; }
    .akdv-price { display: flex; align-items: baseline; gap: 7px; font-family: 'Plus Jakarta Sans', sans-serif; }
    .akdv-now { font-size: 19px; font-weight: 800; color: #0B1324; }
    .akdv-was { font-size: 12.5px; font-weight: 600; color: #9aa7ad; text-decoration: line-through; }
    .akdv-free { font-size: 14px; font-weight: 800; color: #1D5B62; font-family: 'Plus Jakarta Sans', sans-serif; }
    .akdv-go {
        display: inline-flex; align-items: center; gap: 6px;
        background: #FBEAEA; color: #C83D3D;
        padding: 7px 14px; border-radius: 9999px;
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 12px; font-weight: 800;
        transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
        white-space: nowrap;
    }
    .akdv-go .ak-ico { width: 15px; height: 15px; }
    .ts-preview.akdv:hover .akdv-go { background: #E24B4B; color: #fff; transform: translateX(2px); }

    @media (max-width: 640px) {
        .akdv-media { height: 144px; }
    }
    @media (prefers-reduced-motion: reduce) {
        .akdv-link, .akdv-media img, .akdv-go { transition: none !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;
	}
	

    /* Hide Instagram tile — we only show Places + Events now */
    body.home .elementor-element-5e4fe88 { display: none !important; }

    /* --- Hero layout rebalance ---
       Left column was visually dominating the image. Slim it down and let
       the right-side image column take the extra width. Desktop only —
       mobile keeps its native stacked layout. */
    @media (min-width: 1025px) {
        body.home .elementor-element-97b3828 {
            align-items: center !important;
            gap: 32px !important;
        }
        body.home .elementor-element-6a28437 {
            flex: 0 1 46% !important;
            max-width: 46% !important;
        }
        body.home .elementor-element-ec87db9 {
            flex: 0 1 54% !important;
            max-width: 54% !important;
        }
        /* Title — "Your Kids' Adventure Starts Here" (7f00fd0). Compact,
           app-like scale to match the island header (Jul 2026). */
        body.home .elementor-element-7f00fd0 .elementor-heading-title {
            font-size: 34px !important;
            line-height: 1.15 !important;
        }
    }
    @media (min-width: 1025px) and (max-width: 1280px) {
        body.home .elementor-element-7f00fd0 .elementor-heading-title {
            font-size: 31px !important;
        }
    }

    /* Two stat tiles in the hero — Places + Events. Compact layout. */
    body.home .elementor-element-89e0197,
    body.home .elementor-element-278e0b9 {
        background: linear-gradient(180deg, #ffffff 0%, #f4fafb 100%) !important;
        border: 1px solid #b5d5d9 !important;
        border-radius: 14px !important;
        padding: 12px 14px !important;
        box-shadow: 0 2px 10px rgba(181, 213, 217, 0.25) !important;
        transition: transform .2s, box-shadow .2s;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-start !important;
        text-align: left !important;
        gap: 12px !important;
    }
    body.home .elementor-element-89e0197:hover,
    body.home .elementor-element-278e0b9:hover {
        transform: translateY(-1px);
        box-shadow: 0 8px 20px rgba(181, 213, 217, 0.45) !important;
    }
    /* Icon block — small colored circle badge on the left */
    body.home .elementor-element-89e0197 .elementor-widget-icon,
    body.home .elementor-element-278e0b9 .elementor-widget-icon {
        margin: 0 !important; flex: 0 0 auto;
    }
    body.home .elementor-element-89e0197 .elementor-icon-wrapper,
    body.home .elementor-element-278e0b9 .elementor-icon-wrapper {
        display: flex !important; justify-content: center;
    }
    body.home .elementor-element-89e0197 .elementor-icon,
    body.home .elementor-element-278e0b9 .elementor-icon {
        background: #b5d5d9 !important;
        box-shadow: 0 4px 10px rgba(181, 213, 217, 0.50) !important;
        border-radius: 50% !important;
        width: 34px !important; height: 34px !important;
        display: inline-flex !important;
        align-items: center !important; justify-content: center !important;
    }
    body.home .elementor-element-89e0197 .elementor-icon svg,
    body.home .elementor-element-278e0b9 .elementor-icon svg {
        width: 16px !important; height: 16px !important;
        fill: #0b1324 !important; color: #0b1324 !important;
    }
    /* Text column wraps the number + heading + sub */
    .ak-stat-text { display: flex; flex-direction: column; line-height: 1; gap: 2px; }
    /* Big stat number */
    .ak-stat-number {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-weight: 800;
        font-size: 22px;
        line-height: 1;
        color: #0b1324;
        letter-spacing: -0.4px;
        margin: 0;
    }
    .ak-stat-sub {
        font-family: 'Plus Jakarta Sans', sans-serif;
        font-size: 10px; font-weight: 700;
        color: #6e7a74;
        text-transform: uppercase;
        letter-spacing: 1px;
        margin: 0;
    }
    /* Heading text — tighten + de-emphasise; the number is the hero */
    body.home .elementor-element-89e0197 .elementor-widget-heading,
    body.home .elementor-element-278e0b9 .elementor-widget-heading { margin: 0 !important; }
    body.home .elementor-element-89e0197 .elementor-widget-heading .elementor-heading-title,
    body.home .elementor-element-278e0b9 .elementor-widget-heading .elementor-heading-title {
        font-family: 'Plus Jakarta Sans', sans-serif !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        color: #0b1324 !important;
        line-height: 1.2 !important;
        margin: 0 !important;
    }
    /* Keep the "#1 FAMILY GUIDE IN NL" pill (and its siblings) small —
       these three heading-widget IDs were previously sized via the now-removed
       shared rule. Without this they inherit Elementor's huge default. */
    body.home .elementor-element-cc8eb67 .elementor-heading-title,
    body.home .elementor-element-630bd5c .elementor-heading-title,
    body.home .elementor-element-c369377 .elementor-heading-title {
        font-family: 'Plus Jakarta Sans', sans-serif !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        color: #0b1324 !important;
        line-height: 1.3 !important;
        margin: 0 !important;
        letter-spacing: 1.2px !important;
    }
    

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