.max-h-\[85vh\]{max-height:85vh}.max-h-\[calc\(85vh-7rem\)\]{max-height:calc(85vh - 7rem)}.max-w-\[500px\]{max-width:500px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[15px\]{font-size:15px}.tracking-\[0\.10em\]{letter-spacing:.1em}.\!delay-\[0ms\]{transition-delay:0ms!important}.\!duration-\[0ms\]{transition-duration:0ms!important}.hover\:z-\[40\]:hover{z-index:3}.hover\:z-\[30\]:hover{z-index:2}.hover\:z-\[20\]:hover{z-index:1}@media (min-width:1024px){.lg\:w-\[270px\]{width:270px}}@media (min-width:1280px){.xl\:w-\[315px\]{width:315px}}
.ede {
                --primary: #19a6e0;
                --ede-primary-700: color-mix(in oklab, var(--primary) 78%, black);
                --ede-primary-100: color-mix(in oklab, var(--primary) 12%, transparent);
                --ede-primary-50: color-mix(in oklab, var(--primary) 6%, transparent);
                --ede-ink: var(--foreground, #0d1b26);
                --ede-ink-muted: var(--muted-foreground, #4b5b69);
                --ede-ink-mute2: color-mix(in oklab, var(--muted-foreground, #4b5b69) 78%, transparent);
                --ede-ink-border: var(--border, #e4e8ec);
            }

            .ede .font-heading {
                font-family: "Inter Tight", "Inter", system-ui, sans-serif;
                letter-spacing: -0.015em;
            }

            .ede h1, .ede h2, .ede h3 {
                overflow-wrap: anywhere;
                hyphens: auto;
            }

            .ede-eyebrow {
                display: inline-flex;
                align-items: center;
                gap: .4rem;
                border-radius: 999px;
                padding: .35rem .75rem;
                font-size: 11px;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: .12em;
                color: var(--ede-primary-700);
                background: var(--ede-primary-100);
                white-space: nowrap;
            }

            .ede-label {
                font-size: 10px;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: .1em;
                color: var(--ede-ink-mute2);
            }

            .ede-glass {
                background: rgba(255, 255, 255, .64);
                backdrop-filter: blur(18px) saturate(160%);
                -webkit-backdrop-filter: blur(18px) saturate(160%);
                border: 1px solid rgba(255, 255, 255, .7);
            }

            .ede-shadow-soft {
                box-shadow:
                    0 1px 0 color-mix(in oklab, var(--ede-ink) 3%, transparent),
                    0 10px 28px -12px color-mix(in oklab, var(--ede-ink) 22%, transparent);
            }

            .ede-shadow-lift:hover {
                box-shadow:
                    0 1px 0 color-mix(in oklab, var(--ede-ink) 3%, transparent),
                    0 22px 44px -16px color-mix(in oklab, var(--ede-ink) 26%, transparent);
            }

            .ede-frame {
                position: relative;
                overflow: hidden;
                border-radius: 1.5rem 1.5rem 0 0;
            }

            .ede-frame::before {
                content: '';
                position: absolute;
                top: 0;
                left: 0;
                right: 0;
                height: 3px;
                z-index: 5;
                background: linear-gradient(90deg, transparent, var(--primary) 18%, color-mix(in oklab, var(--primary) 55%, white) 50%, var(--primary) 82%, transparent);
            }

            .ede-hero-bg {
                position: absolute;
                inset: 0 0 auto 0;
                top: 0;
                height: 26rem;
                -webkit-mask-image: linear-gradient(to bottom, black 0%, black 38%, rgba(0, 0, 0, .45) 60%, transparent 96%);
                mask-image: linear-gradient(to bottom, black 0%, black 38%, rgba(0, 0, 0, .45) 60%, transparent 96%);
            }

            @media (min-width: 1024px) {
                .ede-hero-bg { height: 30rem; }
            }

            .ede-hero-bg img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                display: block;
                filter: saturate(1.12) contrast(1.05);
            }

            .ede-hero-scrim {
                position: absolute;
                inset: 0;
                background: linear-gradient(to bottom, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .78) 60%, rgba(255, 255, 255, .98) 100%);
            }

            @media (min-width: 1024px) {
                .ede-hero-scrim {
                    background: linear-gradient(110deg, rgba(255, 255, 255, .94) 0%, rgba(255, 255, 255, .8) 32%, rgba(255, 255, 255, .32) 56%, rgba(255, 255, 255, .05) 76%);
                }
            }

            .ede-hero-glow {
                position: absolute;
                inset: 0;
                pointer-events: none;
                background:
                    radial-gradient(44rem 26rem at 6% 26%, color-mix(in oklab, var(--primary) 16%, transparent), transparent 70%),
                    radial-gradient(26rem 18rem at 96% 4%, color-mix(in oklab, var(--primary) 20%, transparent), transparent 72%);
            }

            .ede-hero-grain {
                position: absolute;
                inset: 0;
                pointer-events: none;
                opacity: .05;
                mix-blend-mode: overlay;
                background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
            }

            .ede-ribbon {
                display: inline-flex;
                align-items: center;
                border-radius: 999px;
                padding: .4rem .9rem;
                font-size: 12px;
                font-weight: 700;
                color: #fff;
                background: #dc2626;
                box-shadow: 0 8px 20px -6px rgba(220, 38, 38, .55);
            }

            .ede-h1 {
                font-weight: 800;
                line-height: 1.08;
                letter-spacing: -0.01em;
                color: var(--ede-ink);
            }

            .ede-manifest {
                border-radius: 1.1rem;
                padding: 1.1rem 1.35rem;
                box-shadow:
                    inset 0 1px 0 rgba(255, 255, 255, .8),
                    0 1px 0 color-mix(in oklab, var(--ede-ink) 3%, transparent),
                    0 18px 34px -16px color-mix(in oklab, var(--ede-ink) 24%, transparent);
            }

            .ede-meta-row {
                display: flex;
                align-items: center;
                gap: .55rem;
                padding: .4rem 0;
            }

            .ede-meta-row + .ede-meta-row {
                border-top: 1px solid color-mix(in oklab, var(--ede-ink-border) 70%, transparent);
            }

            .ede-meta-icon {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                width: 1.75rem;
                height: 1.75rem;
                border-radius: .55rem;
                background: var(--ede-primary-100);
                color: var(--ede-primary-700);
                flex-shrink: 0;
                font-size: 12px;
                box-shadow: 0 0 0 4px color-mix(in oklab, var(--primary) 7%, transparent);
            }

            .ede-btn-primary {
                position: relative;
                overflow: hidden;
                display: inline-flex;
                align-items: center;
                gap: .5rem;
                border-radius: .5rem;
                font-weight: 600;
                color: #fff;
                background: var(--primary);
                box-shadow: 0 10px 24px -8px color-mix(in oklab, var(--primary) 55%, transparent);
                transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease;
                text-decoration: none;
            }

            .ede-btn-primary::after {
                content: '';
                position: absolute;
                inset: 0;
                background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, .32) 50%, transparent 70%);
                transform: translateX(-120%);
                transition: transform .55s ease;
            }

            .ede-btn-primary:hover::after {
                transform: translateX(120%);
            }

            .ede-btn-primary:hover {
                background: var(--ede-primary-700);
                color: #fff;
                transform: translateY(-1px);
            }

            .ede-btn-ghost {
                display: inline-flex;
                align-items: center;
                gap: .5rem;
                border-radius: .5rem;
                font-weight: 600;
                color: var(--ede-ink);
                background: #fff;
                border: 1px solid var(--ede-ink-border);
                transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
                text-decoration: none;
            }

            .ede-btn-ghost:hover {
                border-color: color-mix(in oklab, var(--primary) 40%, transparent);
                background: var(--ede-primary-50);
                color: var(--ede-ink);
                transform: translateY(-1px);
            }

            .ede-card {
                border-radius: 1rem;
                border: 1px solid var(--ede-ink-border);
                background: #fff;
                transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
            }

            .ede-card:hover {
                transform: translateY(-2px);
                border-color: color-mix(in oklab, var(--primary) 35%, transparent);
            }

            .ede-person-avatar {
                position: relative;
                flex-shrink: 0;
                overflow: hidden;
                border-radius: 999px;
                background: var(--ede-primary-100);
            }

            .ede-person-avatar img {
                position: relative;
                z-index: 1;
                width: 100%;
                height: 100%;
                object-fit: cover;
                transition: transform .4s ease;
            }

            .ede-card:hover .ede-person-avatar img {
                transform: scale(1.05);
            }

            .ede-chip {
                display: inline-flex;
                align-items: center;
                gap: .3rem;
                border-radius: 999px;
                border: 1px solid var(--ede-ink-border);
                background: #fff;
                padding: .2rem .55rem;
                font-size: 11px;
                font-weight: 500;
                color: var(--ede-ink-muted);
                text-decoration: none;
                transition: border-color .2s ease, background-color .2s ease, color .2s ease;
            }

            .ede-chip:hover {
                border-color: color-mix(in oklab, var(--primary) 40%, transparent);
                background: var(--ede-primary-50);
                color: var(--ede-primary-700);
            }

            .ede-badge-count {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                min-width: 1.15rem;
                height: 1.15rem;
                padding: 0 .3rem;
                border-radius: 999px;
                background: var(--ede-primary-100);
                color: var(--ede-primary-700);
                font-size: 10px;
                font-weight: 700;
            }

            .ede-tab-scroll-target {
                scroll-margin-top: 1rem;
            }

            /* Named uniquely (not "fade") to avoid colliding with an unrelated,
               accidentally-global .fade-enter-active > * {...} staggered-list
               rule shipped by another component in the shared webwidgets
               bundle, which was leaking a "slide up from below" stagger onto
               these tab panels. Enter uses a Motion-generated low-bounce
               spring (bounce .15, 350ms) for a subtle, lively swap; leave is a
               fast plain ease since it should just get out of the way. */
            .ede-tabfade-enter-from,
            .ede-tabfade-leave-to {
                opacity: 0;
                transform: translateY(6px);
            }

            .ede-tabfade-enter-to,
            .ede-tabfade-leave-from {
                opacity: 1;
                transform: translateY(0);
            }

            .ede-tabfade-enter-active {
                transition:
                    opacity 350ms linear(0, 0.3772, 0.8604, 1.0738, 1.0846, 1.0353, 1.0006, 0.991, 0.9941, 0.9985, 1.0006, 1),
                    transform 350ms linear(0, 0.3772, 0.8604, 1.0738, 1.0846, 1.0353, 1.0006, 0.991, 0.9941, 0.9985, 1.0006, 1);
            }

            .ede-tabfade-leave-active {
                transition:
                    opacity 150ms cubic-bezier(.4, 0, 1, 1),
                    transform 150ms cubic-bezier(.4, 0, 1, 1);
            }

            .ede-tabnav {
                position: sticky;
                top: .5rem;
                z-index: 40;
                display: flex;
                gap: .4rem;
                overflow-x: auto;
                overscroll-behavior-x: contain;
                padding: .35rem;
                border-radius: .5rem;
                background: rgba(255, 255, 255, .85);
                backdrop-filter: blur(14px);
                -webkit-backdrop-filter: blur(14px);
                border: 1px solid var(--ede-ink-border);
                box-shadow: 0 8px 24px -14px color-mix(in oklab, var(--ede-ink) 30%, transparent);
                scrollbar-width: none;
            }

            .ede-tabnav::-webkit-scrollbar {
                display: none;
            }

            .ede-tab {
                display: inline-flex;
                align-items: center;
                gap: .4rem;
                white-space: nowrap;
                border-radius: .375rem;
                padding: .5rem 1rem;
                font-size: 13px;
                font-weight: 600;
                color: var(--ede-ink-muted);
                cursor: pointer;
                transition: background-color .2s ease, color .2s ease;
            }

            .ede-tab:hover {
                color: var(--ede-ink);
            }

            .ede-tab-on {
                background: var(--primary);
                color: #fff !important;
                box-shadow: 0 6px 16px -6px color-mix(in oklab, var(--primary) 60%, transparent);
            }

            .ede-day-sticky {
                position: sticky;
                top: 3.75rem;
                z-index: 30;
                display: inline-block;
            }

            .ede-day-badge {
                display: inline-flex;
                align-items: center;
                gap: .4rem;
                border-radius: 999px;
                padding: .35rem .8rem;
                font-size: 11px;
                font-weight: 700;
                text-transform: uppercase;
                letter-spacing: .1em;
                color: #fff;
                background: var(--ede-primary-700);
                white-space: nowrap;
            }

            .ede [id^="eventItem_"] {
                scroll-margin-top: 8.5rem;
            }

            .ede-toc a {
                text-decoration: none;
                color: var(--ede-ink-muted);
            }

            .ede-toc a:hover {
                color: var(--ede-primary-700);
            }
.eips {
            --eips-primary: #19a6e0;
            --eips-primary-700: color-mix(in oklab, var(--eips-primary) 78%, black);
            --eips-primary-100: color-mix(in oklab, var(--eips-primary) 12%, transparent);
        }

        .eips .font-heading {
            font-family: "Inter Tight", "Inter", system-ui, sans-serif;
            letter-spacing: -0.01em;
        }

        /* Motion-generated spring (bounce .28, 750ms) for the entrance — a
           lively pop-up feel appropriate for an attention-grabbing toast.
           The leave uses a plain fast ease-in instead: dismissing should feel
           quick and get out of the way, not linger through a spring settle. */
        .eips-enter-from,
        .eips-leave-to {
            opacity: 0;
            transform: translateY(24px) scale(.97);
        }

        .eips-enter-to,
        .eips-leave-from {
            opacity: 1;
            transform: translateY(0) scale(1);
        }

        .eips-enter-active {
            transition:
                opacity 750ms linear(0, 0.1405, 0.4453, 0.7687, 1.0195, 1.1627, 1.2053, 1.1775, 1.1153, 1.0487, 0.9968, 0.967, 0.9578, 0.9633, 0.976, 0.9897, 1.0005, 1.0067, 1.0087, 1.0076, 1.005, 1.0022, 0.9999, 0.9986, 1),
                transform 750ms linear(0, 0.1405, 0.4453, 0.7687, 1.0195, 1.1627, 1.2053, 1.1775, 1.1153, 1.0487, 0.9968, 0.967, 0.9578, 0.9633, 0.976, 0.9897, 1.0005, 1.0067, 1.0087, 1.0076, 1.005, 1.0022, 0.9999, 0.9986, 1);
        }

        .eips-leave-active {
            transition:
                opacity 240ms cubic-bezier(.4, 0, 1, 1),
                transform 240ms cubic-bezier(.4, 0, 1, 1);
        }

        .eips-card {
            position: relative;
            background: rgba(255, 255, 255, .92);
            backdrop-filter: blur(20px) saturate(160%);
            -webkit-backdrop-filter: blur(20px) saturate(160%);
            border: 1px solid rgba(255, 255, 255, .8);
            border-radius: 1.25rem;
            box-shadow:
                0 1px 0 rgba(13, 27, 38, .03),
                0 24px 48px -16px rgba(13, 27, 38, .28);
        }

        .eips-icon {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            width: 2.25rem;
            height: 2.25rem;
            border-radius: .75rem;
            background: var(--eips-primary-100);
            color: var(--eips-primary-700);
            flex-shrink: 0;
        }

        /* Class-based !important still lost to the host page's own rules in
           practice (equal or higher specificity, possibly also !important, in
           unknown source order we don't control) — sizing/typography for every
           form control is now set inline instead (see the PHP block above),
           since nothing on the host page can out-specificity an inline
           !important. Colour stays class-based here purely so :hover/:focus
           can still change it — inline styles can't express pseudo-classes,
           and an inline !important background would permanently block any
           class-based hover override. */
        .eips-close {
            color: #6b7280 !important;
            background: rgba(15, 23, 42, .05) !important;
            transition: background-color .2s ease, color .2s ease;
        }

        .eips-close:hover {
            background: rgba(15, 23, 42, .1) !important;
            color: #111827 !important;
        }

        .eips-input {
            color: #111827 !important;
            transition: border-color .2s ease, box-shadow .2s ease;
        }

        .eips-input:focus {
            border-color: var(--eips-primary) !important;
            box-shadow: 0 0 0 3px var(--eips-primary-100) !important;
        }

        .eips-btn {
            box-shadow: 0 6px 16px -8px var(--eips-primary);
            transition: transform .2s ease, filter .2s ease;
        }

        /* Background/colour are inlined with !important on the element itself
           (see $eipsBtnStyle) since a host-page `button[type="submit"]` rule
           can legitimately out-specificity a plain `.eips-btn` class — but
           that means this class can no longer swap the background colour on
           hover (inline always wins). A brightness filter + lift gives hover
           feedback without needing to touch background-color at all. */
        .eips-btn:hover {
            filter: brightness(.92);
            transform: translateY(-1px);
        }
.booking-package-overview {
            --bpo-ink: var(--foreground, #0d1b26);
            --bpo-ink-muted: var(--muted-foreground, #4b5b69);
            --bpo-ink-mute2: color-mix(in oklab, var(--muted-foreground, #4b5b69) 78%, transparent);
            --bpo-ink-border: var(--border, #e4e8ec);
            --bpo-primary: #19a6e0;
            --bpo-primary-700: color-mix(in oklab, var(--bpo-primary) 78%, black);
            --bpo-primary-100: color-mix(in oklab, var(--bpo-primary) 12%, transparent);
            text-wrap: pretty;
        }

        .booking-package-overview .font-heading {
            font-family: "Inter Tight", "Inter", system-ui, sans-serif;
            letter-spacing: -0.01em;
        }

        /* Neutralize host page heading and header element styles inside the widget
           (the site CSS gives bare `header` a top margin, max-width and centering). */
        .booking-package-overview :where(h2, h3, h4) { margin: 0; }
        .booking-package-overview header {
            margin: 0 0 1rem;
            max-width: none;
            width: auto;
        }

        .booking-package-overview .text-ink { color: var(--bpo-ink); }
        .booking-package-overview .text-ink-muted { color: var(--bpo-ink-muted); }
        .booking-package-overview .text-ink-mute2 { color: var(--bpo-ink-mute2); }
        .booking-package-overview .text-primary-700 { color: var(--bpo-primary-700); }
        .booking-package-overview .border-ink-border { border-color: var(--bpo-ink-border); }
        .booking-package-overview .bg-primary\/10 { background-color: var(--bpo-primary-100); }

        .booking-package-overview .shadow-mse-soft {
            box-shadow:
                0 1px 0 color-mix(in oklab, var(--bpo-ink) 2%, transparent),
                0 8px 24px color-mix(in oklab, var(--bpo-ink) 4%, transparent);
        }