/* wwwroot/css/entebbe-elite-theme.css
   Entebbe Elite design tokens + landing components.
   Every colour that varies between themes is a token on :root. Light mode is
   defined twice on purpose: once for the OS preference (when the visitor has
   not chosen) and once for an explicit choice, so it works without JS too. */
:root {
  color-scheme: dark;
  --bg: #0D1210;
  --bg-elevated: #1C2624;
  --ink: #F4F1EA;
  --muted: #8A8F87;
  --gold: #C9A15C;
  --gold-ink: #C9A15C;
  --on-gold: #0D1210;
  --teal: #1D6B5C;
  --teal-ink: #4FB39C;
  --border: rgba(244, 241, 234, 0.08);
  --line: rgba(244, 241, 234, 0.05);
  --line-strong: rgba(244, 241, 234, 0.14);
  --surface: rgba(28, 38, 36, 0.55);
  --surface-deep: rgba(13, 18, 16, 0.6);
  --surface-tint: rgba(244, 241, 234, 0.018);
  --surface-hover: rgba(244, 241, 234, 0.025);
  --ghost-bg: rgba(244, 241, 234, 0.03);
  --ghost-border: rgba(244, 241, 234, 0.18);
  --placeholder: rgba(244, 241, 234, 0.35);
  --nav-bg: rgba(13, 18, 16, 0.85);
  --footer-bg: rgba(0, 0, 0, 0.35);
  --shadow: 0 30px 90px rgba(0, 0, 0, 0.45);
  --field-fade: rgba(13, 18, 16, 0.35);
  --ring: rgba(244, 241, 234, 0.1);
  --hub-fill: rgba(13, 18, 16, 0.5);
  --photo-opacity: 0.62;
  --hero-veil: rgba(13, 18, 16, 0.55);
  --photo-filter: saturate(0.9) contrast(1.05);
  --display: "Manrope Variable", "Manrope", "Helvetica Neue", sans-serif;
  --mono: "JetBrains Mono Variable", "JetBrains Mono", monospace;
  font-family: var(--display);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    color-scheme: light;
    --bg: #F4F1EA;
    --bg-elevated: #EAE5D8;
    --ink: #0D1210;
    --muted: #5C635E;
    --gold-ink: #8A6528;
    --teal-ink: #1D6B5C;
    --border: rgba(13, 18, 16, 0.12);
    --line: rgba(13, 18, 16, 0.07);
    --line-strong: rgba(13, 18, 16, 0.2);
    --surface: rgba(255, 255, 255, 0.72);
    --surface-deep: rgba(255, 255, 255, 0.78);
    --surface-tint: rgba(13, 18, 16, 0.025);
    --surface-hover: rgba(13, 18, 16, 0.04);
    --ghost-bg: rgba(13, 18, 16, 0.04);
    --ghost-border: rgba(13, 18, 16, 0.22);
    --placeholder: rgba(13, 18, 16, 0.4);
    --nav-bg: rgba(244, 241, 234, 0.86);
    --footer-bg: rgba(13, 18, 16, 0.04);
    --shadow: 0 30px 90px rgba(13, 18, 16, 0.14);
    --field-fade: rgba(244, 241, 234, 0.35);
    --ring: rgba(13, 18, 16, 0.12);
    --hub-fill: rgba(244, 241, 234, 0.7);
    --photo-opacity: 0.5;
    --hero-veil: rgba(244, 241, 234, 0.6);
    --photo-filter: saturate(0.6) brightness(1.08);
  }
}
:root[data-theme="light"] {
  color-scheme: light;
  --bg: #F4F1EA;
  --bg-elevated: #EAE5D8;
  --ink: #0D1210;
  --muted: #5C635E;
  --gold-ink: #8A6528;
  --teal-ink: #1D6B5C;
  --border: rgba(13, 18, 16, 0.12);
  --line: rgba(13, 18, 16, 0.07);
  --line-strong: rgba(13, 18, 16, 0.2);
  --surface: rgba(255, 255, 255, 0.72);
  --surface-deep: rgba(255, 255, 255, 0.78);
  --surface-tint: rgba(13, 18, 16, 0.025);
  --surface-hover: rgba(13, 18, 16, 0.04);
  --ghost-bg: rgba(13, 18, 16, 0.04);
  --ghost-border: rgba(13, 18, 16, 0.22);
  --placeholder: rgba(13, 18, 16, 0.4);
  --nav-bg: rgba(244, 241, 234, 0.86);
  --footer-bg: rgba(13, 18, 16, 0.04);
  --shadow: 0 30px 90px rgba(13, 18, 16, 0.14);
  --field-fade: rgba(244, 241, 234, 0.35);
  --ring: rgba(13, 18, 16, 0.12);
  --hub-fill: rgba(244, 241, 234, 0.7);
  --photo-opacity: 0.5;
  --hero-veil: rgba(244, 241, 234, 0.6);
  --photo-filter: saturate(0.6) brightness(1.08);
}

html { background: var(--bg); overflow-x: clip; }
body { margin: 0; }
.ee-shell { background: var(--bg); color: var(--ink); min-height: 100vh; overflow-x: hidden; transition: background 300ms ease, color 300ms ease; }
.ee-container { width: min(100%, 1400px); margin-inline: auto; padding-inline: clamp(24px, 7vw, 112px); }

.ee-eyebrow { display: flex; align-items: center; gap: 12px; margin: 0 0 20px; color: var(--muted); font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; }
.ee-eyebrow span { color: var(--teal-ink); }

.ee-button { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border: 0; border-radius: 999px; background: var(--gold); color: var(--on-gold); font-family: var(--display); font-size: 14px; font-weight: 700; cursor: pointer; overflow: hidden; isolation: isolate; transition: transform 180ms ease, box-shadow 180ms ease; }
.ee-button::before { content: ""; position: absolute; inset: -100% 20%; z-index: -1; background: rgba(255, 255, 255, 0.55); transform: translateX(-180%) rotate(20deg); transition: transform 500ms ease; filter: blur(12px); }
.ee-button:hover { transform: translateY(-2px); box-shadow: 0 10px 36px rgba(201, 161, 92, 0.28); }
.ee-button:hover::before { transform: translateX(180%) rotate(20deg); }
.ee-button--ghost { background: var(--ghost-bg); color: var(--ink); border: 1px solid var(--ghost-border); }
.ee-button--ghost::before { display: none; }
.ee-button--small { min-height: 42px; padding-inline: 18px; font-size: 12px; }

[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity 650ms cubic-bezier(0.22, 1, 0.36, 1), transform 650ms cubic-bezier(0.22, 1, 0.36, 1); }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }

/* Nav */
.ee-nav { position: fixed; z-index: 100; inset: 0 0 auto; height: 84px; border-bottom: 1px solid transparent; transition: height 250ms ease, background 250ms ease, border-color 250ms ease; }
.ee-nav--scrolled { height: 72px; background: var(--nav-bg); border-color: var(--border); backdrop-filter: blur(18px) saturate(130%); }
.ee-nav-inner { width: min(100%, 1480px); height: 100%; margin-inline: auto; padding-inline: clamp(24px, 5vw, 72px); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
.ee-wordmark { justify-self: start; color: var(--ink); font-family: var(--display); font-size: 20px; font-weight: 700; letter-spacing: -0.04em; text-decoration: none; }
.ee-nav-links { display: flex; align-items: center; gap: 30px; }
.ee-nav-links a { color: var(--muted); font-size: 12px; font-weight: 590; text-decoration: none; transition: color 200ms ease; }
.ee-nav-links a:hover { color: var(--ink); }
.ee-nav-actions { justify-self: end; display: flex; align-items: center; gap: 12px; }
.ee-nav-signin { color: var(--ink); font-size: 14px; font-weight: 500; text-decoration: none; padding: 8px 4px; opacity: 0.85; transition: color 160ms, opacity 160ms; }
.ee-nav-signin:hover { color: var(--gold-ink); opacity: 1; }
.ee-nav .ee-button { text-decoration: none; }
.ee-theme-toggle { width: 40px; height: 40px; display: grid; place-items: center; padding: 0; border: 1px solid var(--ghost-border); border-radius: 50%; background: var(--ghost-bg); color: var(--ink); cursor: pointer; transition: border-color 200ms ease, transform 200ms ease; }
.ee-theme-toggle:hover { border-color: var(--gold); transform: rotate(15deg); }
.ee-theme-toggle svg { width: 17px; height: 17px; }
.ee-theme-toggle .ee-icon-sun { display: none; }
:root[data-theme="light"] .ee-theme-toggle .ee-icon-sun { display: block; }
:root[data-theme="light"] .ee-theme-toggle .ee-icon-moon { display: none; }

/* Hero */
/* overflow-x: clip stops the runway light and route art spilling past the right edge without clipping the dropdowns vertically */
.ee-hero { position: relative; z-index: 5; min-height: 92vh; display: flex; align-items: center; padding-top: 84px; padding-bottom: 72px; overflow-x: clip; }
.ee-hero-photo, .ee-flight-field { overflow: hidden; }
.ee-hero-inner { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(360px, 0.85fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.ee-hero-copy { max-width: 720px; }
.ee-hero-photo { position: absolute; z-index: 0; inset: 0; pointer-events: none; }
.ee-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; opacity: var(--photo-opacity); filter: var(--photo-filter); }
.ee-hero-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--bg) 0%, var(--hero-veil) 38%, transparent 68%), linear-gradient(180deg, var(--bg) 0%, transparent 18%, transparent 80%, var(--bg) 100%); }
.ee-hero-title { margin: 0; font-family: var(--display); font-size: clamp(42px, 7vw, 88px); font-weight: 600; line-height: 0.98; letter-spacing: -0.055em; }
.ee-hero-title em { color: var(--gold-ink); font-style: normal; }
.ee-hero-subhead { max-width: 620px; margin: 28px 0 0; color: var(--muted); font-size: clamp(16px, 1.6vw, 19px); line-height: 1.65; }
.ee-hero-actions { display: flex; gap: 12px; margin-top: 36px; flex-wrap: wrap; }

/* Booking widget */
.ee-booking-widget { margin-top: 36px; border: 1px solid var(--line-strong); background: var(--surface); backdrop-filter: blur(16px); }
.ee-booking-widget-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px 10px 18px; border-bottom: 1px solid var(--border); font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; }
.ee-booking-widget-head > span { color: var(--gold-ink); }
.ee-segmented { display: inline-flex; padding: 3px; border: 1px solid var(--border); border-radius: 999px; background: var(--surface-deep); }
.ee-segmented label { position: relative; cursor: pointer; }
.ee-segmented input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.ee-segmented span { display: block; padding: 6px 12px; border-radius: 999px; color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; transition: background 200ms ease, color 200ms ease; }
.ee-segmented input:checked + span { background: var(--gold); color: var(--on-gold); }
.ee-segmented input:focus-visible + span { outline: 2px solid var(--teal); outline-offset: 1px; }
/* Booking widget fields */
.ee-booking-fields { display: grid; grid-template-columns: 1.35fr 1.15fr 0.95fr auto; gap: 1px; background: var(--border); }
.ee-field { position: relative; background: var(--surface-deep); }
.ee-field-trigger { display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto; column-gap: 10px; row-gap: 6px; align-items: center; width: 100%; min-height: 64px; padding: 13px 18px; border: 0; background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; transition: background 200ms ease; }
.ee-field-trigger:hover { background: var(--surface-hover); }
.ee-field-trigger:focus-visible, .ee-field.is-open .ee-field-trigger { outline: 0; box-shadow: inset 0 -2px 0 var(--teal); }
.ee-field-label { grid-column: 1 / -1; color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; }
.ee-field-value { overflow: hidden; color: var(--placeholder); font-size: 14px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.ee-field.has-value .ee-field-value { color: var(--ink); }
.ee-field-caret { width: 13px; height: 13px; color: var(--muted); transition: transform 200ms ease, color 200ms ease; }
.ee-field.is-open .ee-field-caret { transform: rotate(180deg); color: var(--gold-ink); }
.ee-field[data-field="date"].is-open .ee-field-caret { transform: none; }
.ee-field-trigger--input { cursor: text; grid-template-columns: 1fr; }
.ee-field-input { width: 100%; min-width: 0; padding: 0; border: 0; background: transparent; color: var(--ink); font-family: var(--display); font-size: 14px; font-weight: 500; outline: 0; }
.ee-field-input::placeholder { color: var(--placeholder); }
.ee-field.is-invalid { animation: ee-nudge 420ms ease; }
.ee-field.is-invalid .ee-field-label { color: #D9776A; }
@keyframes ee-nudge { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(-5px); } 75% { transform: translateX(5px); } }
.ee-booking-fields .ee-button { border-radius: 0; min-height: 100%; padding-inline: 26px; align-self: stretch; }

/* Popovers */
.ee-pop { position: absolute; z-index: 60; top: calc(100% + 8px); left: 0; min-width: 100%; border: 1px solid var(--line-strong); background: var(--bg-elevated); box-shadow: var(--shadow); animation: ee-pop-in 220ms cubic-bezier(0.22, 1, 0.36, 1); }
.ee-pop[hidden] { display: none; }
@keyframes ee-pop-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
.ee-pop-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--border); color: var(--gold-ink); font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; }
.ee-pop-head i { color: var(--muted); font-style: normal; }
.ee-pop-empty { padding: 22px 16px; color: var(--muted); font-family: var(--mono); font-size: 11px; line-height: 1.6; text-align: center; }
.ee-pop--services { width: min(560px, 92vw); }
.ee-pop--flights { width: min(520px, 92vw); }
.ee-pop--date { width: 300px; left: auto; right: 0; min-width: 0; }

/* Service option cards */
.ee-service-options { display: grid; max-height: 380px; overflow-y: auto; overscroll-behavior: contain; }
.ee-service-option { display: grid; grid-template-columns: 64px 1fr auto; gap: 14px; align-items: center; width: 100%; padding: 10px 14px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; transition: background 160ms ease; }
.ee-service-option:last-child { border-bottom: 0; }
.ee-service-option:hover, .ee-service-option:focus-visible { outline: 0; background: var(--surface-hover); }
.ee-service-option.is-selected { background: rgba(201, 161, 92, 0.1); box-shadow: inset 2px 0 0 var(--gold); }
.ee-service-option img { width: 64px; height: 48px; object-fit: cover; filter: var(--photo-filter); }
.ee-service-option-body { display: grid; gap: 3px; min-width: 0; }
.ee-service-option-body strong { font-size: 14px; font-weight: 600; letter-spacing: -0.01em; }
.ee-service-option-body small { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.ee-service-option-body em { color: var(--teal-ink); font-family: var(--mono); font-size: 8px; font-style: normal; letter-spacing: 0.1em; text-transform: uppercase; }
.ee-service-option-price { display: grid; justify-items: end; gap: 1px; }
.ee-service-option-price i { color: var(--muted); font-family: var(--mono); font-size: 8px; font-style: normal; letter-spacing: 0.1em; text-transform: uppercase; }
.ee-service-option-price .ee-price { font-size: 15px; }

/* Flight options */
.ee-flight-options { max-height: 340px; overflow-y: auto; overscroll-behavior: contain; }
.ee-flight-option { display: grid; grid-template-columns: 72px 1fr 1.2fr 40px; gap: 12px; align-items: center; width: 100%; padding: 11px 14px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; transition: background 160ms ease; }
.ee-flight-option:last-child { border-bottom: 0; }
.ee-flight-option:hover, .ee-flight-option.is-active { background: var(--surface-hover); }
.ee-flight-option-time, .ee-flight-option-no { font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: 0.04em; }
.ee-flight-option-time { color: var(--gold-ink); }
.ee-flight-option-time small, .ee-flight-option-no small { display: block; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 8px; font-weight: 400; letter-spacing: 0.06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.ee-flight-option-route { overflow: hidden; font-family: var(--mono); font-size: 11px; letter-spacing: 0.05em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.ee-flight-option-badge { justify-self: end; padding: 3px 6px; border: 1px solid var(--line-strong); color: var(--muted); font-family: var(--mono); font-size: 8px; letter-spacing: 0.1em; }

/* Calendar */
.ee-cal-head { display: flex; justify-content: space-between; align-items: center; padding: 12px 12px 8px; font-size: 14px; font-weight: 600; letter-spacing: -0.01em; }
.ee-cal-nav { width: 30px; height: 30px; border: 1px solid var(--line-strong); border-radius: 50%; background: transparent; color: var(--ink); font-size: 16px; line-height: 1; cursor: pointer; transition: border-color 160ms ease; }
.ee-cal-nav:hover:not(:disabled) { border-color: var(--gold); }
.ee-cal-nav:disabled { opacity: 0.3; cursor: default; }
.ee-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; padding: 4px 12px 10px; }
.ee-cal-dow { padding: 6px 0; color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em; text-align: center; text-transform: uppercase; }
.ee-cal-day { aspect-ratio: 1; border: 1px solid transparent; border-radius: 50%; background: transparent; color: var(--ink); font-family: var(--mono); font-size: 12px; cursor: pointer; transition: background 140ms ease, border-color 140ms ease; }
.ee-cal-day:hover:not(:disabled) { border-color: var(--line-strong); background: var(--surface-hover); }
.ee-cal-day.is-today { border-color: var(--teal-ink); }
.ee-cal-day.is-selected { border-color: var(--gold); background: var(--gold); color: var(--on-gold); font-weight: 600; }
.ee-cal-day:disabled { opacity: 0.25; cursor: default; }
.ee-cal-foot { display: flex; gap: 6px; padding: 10px 12px 12px; border-top: 1px solid var(--border); }
.ee-cal-foot button { flex: 1; padding: 7px 0; border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--ink); font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; cursor: pointer; }
.ee-cal-foot button:hover { border-color: var(--gold); color: var(--gold-ink); }

/* Service preview panel (hero, right) */
.ee-preview { position: relative; border: 1px solid var(--line-strong); background: var(--surface-deep); backdrop-filter: blur(14px); box-shadow: var(--shadow); overflow: hidden; }
.ee-preview.is-swapping .ee-preview-body, .ee-preview.is-swapping .ee-preview-photo img { animation: ee-swap 420ms cubic-bezier(0.22, 1, 0.36, 1); }
@keyframes ee-swap { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.ee-preview-photo { position: relative; aspect-ratio: 16 / 8; overflow: hidden; }
.ee-preview-photo img { width: 100%; height: 100%; object-fit: cover; filter: var(--photo-filter); }
.ee-preview-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, var(--bg-elevated) 100%); opacity: 0.85; }
.ee-preview-tag { position: absolute; z-index: 1; top: 14px; left: 14px; padding: 5px 9px; border-radius: 999px; background: var(--gold); color: var(--on-gold); font-family: var(--mono); font-size: 8px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.ee-preview-body { padding: 18px 22px 22px; }
.ee-preview-kicker { margin: 0 0 6px; color: var(--teal-ink); font-family: var(--mono); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; }
.ee-preview-name { margin: 0; font-size: 24px; font-weight: 600; letter-spacing: -0.03em; line-height: 1.15; }
.ee-preview-desc { display: -webkit-box; margin: 8px 0 0; overflow: hidden; color: var(--muted); font-size: 13px; line-height: 1.55; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ee-preview-facts { display: grid; grid-template-columns: 1.5fr 1fr; gap: 12px; margin: 16px 0 0; }
.ee-preview-facts dt { color: var(--muted); font-family: var(--mono); font-size: 8px; letter-spacing: 0.12em; text-transform: uppercase; }
.ee-preview-facts dd { margin: 4px 0 0; font-size: 13px; line-height: 1.4; }
.ee-preview-plans { margin-top: 16px; border-top: 1px solid var(--border); }
.ee-preview-plan { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.ee-preview-plan .ee-price { font-size: 14px; }
.ee-preview-plan .ee-price-alt { text-align: right; }
.ee-preview-flight { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 14px; padding: 10px 12px; border: 1px dashed var(--line-strong); font-family: var(--mono); font-size: 11px; letter-spacing: 0.04em; }
.ee-preview-flight[hidden] { display: none; }
.ee-preview-flight strong { color: var(--gold-ink); }
.ee-preview-flight span:last-child { color: var(--muted); }
.ee-preview-flight-badge { padding: 2px 6px; border: 1px solid var(--line-strong); font-size: 8px; letter-spacing: 0.1em; }
@media (max-width: 1000px) { .ee-preview { max-width: 560px; } }
@media (max-width: 760px) {
  .ee-booking-fields { grid-template-columns: 1fr 1fr; }
  .ee-field[data-field="service"] { grid-column: 1 / -1; }
  .ee-booking-fields .ee-button { grid-column: 1 / -1; min-height: 52px; }
  .ee-pop, .ee-pop--date { position: fixed; top: auto; bottom: 0; left: 0; right: 0; width: 100%; max-height: 72vh; overflow-y: auto; border-inline: 0; }
}

/* Runway edge lights */
.ee-runway { position: absolute; z-index: 3; left: 0; right: 0; bottom: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(201, 161, 92, 0.35) 20%, rgba(201, 161, 92, 0.35) 80%, transparent); overflow: visible; }
.ee-runway i { position: absolute; top: -1px; left: -10%; width: 10%; height: 3px; background: linear-gradient(90deg, transparent, var(--gold), transparent); filter: blur(1px); animation: ee-runway 6s linear infinite; }

@keyframes ee-flap { 0% { opacity: 0; transform: translateY(-6px) scaleY(0.6); } 100% { opacity: 1; transform: translateY(0) scaleY(1); } }
@keyframes ee-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.35; } }
@keyframes ee-runway { 0% { left: -10%; } 100% { left: 100%; } }

/* Flight-route field behind the hero */
.ee-field-ring { fill: none; stroke: var(--ring); stroke-width: 1; }
.ee-field-route { fill: none; stroke: url(#routeGradient); stroke-width: 1.4; stroke-linecap: round; }
.ee-field-route--pulse { stroke: rgba(201, 161, 92, 0.35); }
.ee-field-marker circle { fill: var(--teal); }
.ee-field-marker text { fill: var(--muted); font-family: var(--mono); font-size: 10px; letter-spacing: 0.08em; }
.ee-field-hub-ring { fill: var(--hub-fill); stroke: rgba(201, 161, 92, 0.4); stroke-width: 1; }
.ee-field-hub { fill: var(--gold); }
.ee-field-hub-label { fill: var(--gold-ink); font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-anchor: middle; }
.ee-field-pulse { fill: var(--gold); filter: drop-shadow(0 0 6px rgba(201, 161, 92, 0.9)); }


/* Shared section rhythm */
.ee-section { padding-block: clamp(80px, 10vw, 140px); }
.ee-band { background: var(--surface-tint); border-block: 1px solid var(--border); }
.ee-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ee-section-heading { max-width: 640px; }
.ee-section-heading h2 { margin: 0; font-family: var(--display); font-size: clamp(32px, 4vw, 48px); font-weight: 600; letter-spacing: -0.04em; line-height: 1.08; }
.ee-section-copy { margin: 16px 0 0; color: var(--muted); font-size: 16px; line-height: 1.6; }
.ee-section-split { display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: end; }

/* Prices */
.ee-price { color: var(--gold-ink); font-family: var(--mono); font-size: 18px; font-weight: 600; }
.ee-price-alt { display: block; margin-top: 3px; color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.06em; text-transform: uppercase; }

/* Services */
.ee-services { padding-block: clamp(80px, 10vw, 140px); }
.ee-services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 56px; background: var(--border); border: 1px solid var(--border); }
.ee-services-loading, .ee-services-empty { grid-column: 1 / -1; padding: 40px; color: var(--muted); font-family: var(--mono); font-size: 12px; text-align: center; background: var(--bg); }
.ee-service-card { position: relative; display: block; min-height: 300px; background: var(--bg); color: inherit; text-decoration: none; transition: transform 220ms ease, background 220ms ease; }
.ee-service-card:hover { transform: translateY(-3px); background: var(--bg-elevated); }
.ee-service-card.is-hidden { display: none; }
.ee-service-card-photo { display: block; width: 100%; aspect-ratio: 16 / 7; object-fit: cover; opacity: 0.85; filter: var(--photo-filter); transition: opacity 220ms ease; }
.ee-service-card:hover .ee-service-card-photo { opacity: 1; }
.ee-service-card-body { position: relative; padding: 22px 28px 28px; }
.ee-service-card-index { position: absolute; top: 22px; right: 24px; color: var(--muted); font-family: var(--mono); font-size: 10px; }
.ee-service-card-icon { width: 30px; height: 30px; color: var(--teal-ink); transition: color 220ms ease, transform 220ms ease; }
.ee-service-card:hover .ee-service-card-icon { color: var(--gold-ink); transform: scale(1.08); }
.ee-service-card h3 { margin: 18px 0 8px; font-family: var(--display); font-size: 20px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.25; }
.ee-service-card-meta { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.ee-service-card-tag { display: inline-block; margin-top: 12px; padding: 3px 8px; border: 1px solid var(--line-strong); color: var(--muted); font-family: var(--mono); font-size: 8px; letter-spacing: 0.12em; text-transform: uppercase; }
.ee-service-card-price { display: flex; align-items: baseline; gap: 8px; margin-top: 20px; }
.ee-service-card-price i { color: var(--muted); font-style: normal; font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; }

/* How it works + QR ticket */
.ee-ticket { width: 300px; max-width: 100%; }
.ee-ticket svg { width: 100%; height: auto; display: block; filter: drop-shadow(0 24px 50px rgba(0, 0, 0, 0.25)); }
.ee-ticket-card { fill: var(--bg-elevated); stroke: var(--line-strong); }
.ee-ticket-tear { stroke: var(--line-strong); stroke-dasharray: 3 4; }
.ee-ticket-label { fill: var(--muted); font-family: var(--mono); font-size: 7px; letter-spacing: 0.14em; }
.ee-ticket-value { fill: var(--ink); font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: 0.06em; }
.ee-ticket-brand { fill: var(--gold-ink); font-family: var(--display); font-size: 11px; font-weight: 700; letter-spacing: -0.02em; }
.ee-ticket-qr { fill: var(--ink); }
.ee-ticket-qr-eye { fill: none; stroke: var(--ink); stroke-width: 3; }
.ee-ticket-scan { stroke: var(--gold); stroke-width: 1.5; animation: ee-scan 2.6s ease-in-out infinite; }
@keyframes ee-scan { 0%, 100% { transform: translateY(0); opacity: 0.2; } 50% { transform: translateY(58px); opacity: 1; } }

/* Payment methods */
.ee-pay-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 28px; margin-top: 64px; padding-top: 28px; border-top: 1px solid var(--border); color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; }
.ee-pay-strip > span:first-child { margin-right: 8px; color: var(--gold-ink); }
.ee-pay-strip b { padding: 6px 10px; border: 1px solid var(--line-strong); color: var(--ink); font-weight: 600; }


/* Wayfinding */
.ee-map-layout { display: grid; grid-template-columns: 1.3fr 0.7fr; gap: clamp(32px, 5vw, 72px); margin-top: 56px; align-items: start; }
.ee-map { border: 1px solid var(--border); background: var(--surface-deep); padding: clamp(16px, 3vw, 32px); }
.ee-map svg { width: 100%; height: auto; display: block; overflow: visible; }
.ee-map-zone { fill: var(--surface-tint); stroke: var(--line-strong); stroke-width: 1; transition: fill 200ms ease, stroke 200ms ease; }
.ee-map-zone.is-airside { fill: rgba(29, 107, 92, 0.08); }
.ee-map-zone.is-active { fill: rgba(201, 161, 92, 0.16); stroke: var(--gold); }
.ee-map-label { fill: var(--ink); font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; }
.ee-map-sublabel { fill: var(--muted); font-family: var(--mono); font-size: 7.5px; letter-spacing: 0.08em; }
.ee-map-flow { fill: none; stroke: var(--teal-ink); stroke-width: 1.2; stroke-dasharray: 4 5; animation: ee-flow 1.6s linear infinite; }
@keyframes ee-flow { to { stroke-dashoffset: -18; } }
.ee-map-pin { cursor: pointer; }
.ee-map-pin circle { fill: var(--bg); stroke: var(--gold); stroke-width: 1.2; transition: fill 200ms ease; }
.ee-map-pin text { fill: var(--gold-ink); font-family: var(--mono); font-size: 7.5px; font-weight: 600; text-anchor: middle; }
.ee-map-pin.is-active circle { fill: var(--gold); }
.ee-map-pin.is-active text { fill: var(--on-gold); }
.ee-map-legend { display: grid; gap: 1px; border: 1px solid var(--border); background: var(--border); }
.ee-map-legend-row { display: grid; grid-template-columns: 28px 1fr; gap: 14px; align-items: start; padding: 14px 16px; background: var(--bg); cursor: default; transition: background 200ms ease; }
.ee-map-legend-row:hover, .ee-map-legend-row.is-active { background: var(--bg-elevated); }
.ee-map-legend-row b { display: grid; place-items: center; width: 22px; height: 22px; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold-ink); font-family: var(--mono); font-size: 8px; font-weight: 600; }
.ee-map-legend-row strong { display: block; font-size: 14px; font-weight: 600; letter-spacing: -0.01em; }
.ee-map-legend-row span { display: block; margin-top: 3px; color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.06em; text-transform: uppercase; }
.ee-map-note { margin: 18px 0 0; color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; }



/* Footer */
.ee-footer { border-top: 1px solid var(--border); background: var(--footer-bg); }
.ee-footer-main { display: grid; grid-template-columns: 1.6fr 0.8fr 0.8fr 1.1fr; gap: 48px; padding-block: 64px; }
.ee-footer-wordmark { font-family: var(--display); font-size: 24px; font-weight: 700; letter-spacing: -0.05em; }
.ee-footer-wordmark span { color: var(--gold-ink); }
.ee-footer-main > div:first-child p { max-width: 360px; margin: 14px 0 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.ee-footer-links { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; }
.ee-footer-links > span, .ee-footer-status > span { margin-bottom: 6px; color: var(--muted); font-family: var(--mono); font-size: 8px; letter-spacing: 0.12em; text-transform: uppercase; }
.ee-footer-links a { color: var(--ink); opacity: 0.75; font-size: 13px; text-decoration: none; transition: color 200ms ease, opacity 200ms ease; }
.ee-footer-links a:hover { color: var(--gold-ink); opacity: 1; }
.ee-footer-status { display: flex; flex-direction: column; align-items: flex-start; }
.ee-status { display: flex; align-items: center; gap: 9px; margin-top: 4px; font-family: var(--mono); font-size: 12px; font-weight: 600; letter-spacing: 0.04em; }
.ee-status i { width: 7px; height: 7px; border-radius: 50%; background: var(--muted); }
.ee-status.is-ok i { background: var(--teal); box-shadow: 0 0 10px var(--teal); animation: ee-blink 2.4s ease-in-out infinite; }
.ee-status.is-degraded i { background: var(--gold); box-shadow: 0 0 10px var(--gold); }
.ee-footer-status p { margin: 14px 0 0; color: var(--muted); font-family: var(--mono); font-size: 8px; letter-spacing: 0.1em; text-transform: uppercase; }
.ee-footer-credit { margin: 10px 0 0 !important; font-size: 8px !important; letter-spacing: 0.06em; text-transform: none !important; }
.ee-footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; min-height: 60px; border-top: 1px solid var(--border); color: var(--muted); font-family: var(--mono); font-size: 8px; letter-spacing: 0.08em; text-transform: uppercase; }

/* Motion + breakpoints */
@media (max-width: 1000px) {
  .ee-hero-inner { grid-template-columns: 1fr; }
  .ee-section-split { grid-template-columns: 1fr; align-items: start; }
  .ee-map-layout { grid-template-columns: 1fr; }
  .ee-footer-main { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .ee-services-grid { grid-template-columns: repeat(2, 1fr); }
  .ee-nav-links { display: none; }
}
@media (max-width: 640px) {
  .ee-booking-widget-head { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 600px) {
  .ee-services-grid { grid-template-columns: 1fr; }
  .ee-footer-main { grid-template-columns: 1fr; gap: 32px; }
  .ee-footer-bottom { flex-direction: column; align-items: flex-start; padding-block: 18px; }
}

/* Visible, themed scrollbars inside popovers */
.ee-service-options, .ee-flight-options, .ee-pop { scrollbar-width: thin; scrollbar-color: var(--gold) var(--surface-tint); }
.ee-service-options::-webkit-scrollbar, .ee-flight-options::-webkit-scrollbar, .ee-pop::-webkit-scrollbar { width: 8px; }
.ee-service-options::-webkit-scrollbar-track, .ee-flight-options::-webkit-scrollbar-track, .ee-pop::-webkit-scrollbar-track { background: var(--surface-tint); }
.ee-service-options::-webkit-scrollbar-thumb, .ee-flight-options::-webkit-scrollbar-thumb, .ee-pop::-webkit-scrollbar-thumb { border: 2px solid var(--bg-elevated); border-radius: 999px; background: var(--gold); }
.ee-service-options, .ee-flight-options { max-height: min(380px, 50vh); }

/* Popovers flip upward when there's more room above */
.ee-pop.is-up { top: auto; bottom: calc(100% + 8px); animation-name: ee-pop-in-up; }
@keyframes ee-pop-in-up { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

/* Hero eyebrow segments from data */
.ee-eyebrow b { font-weight: 600; }

/* Airline logos (Airlines.LogoUrl) with code monogram fallback */
.ee-airline-logo, .ee-partner-logo, .ee-marquee-logo { position: relative; display: inline-grid; place-items: center; flex: none; overflow: hidden; border-radius: 8px; background: #FFFFFF; }
.ee-airline-logo img, .ee-partner-logo img, .ee-marquee-logo img { width: 100%; height: 100%; object-fit: contain; padding: 3px; }
.ee-airline-logo i, .ee-partner-logo i, .ee-marquee-logo i { display: none; color: var(--gold-ink); font-family: var(--mono); font-size: 10px; font-style: normal; font-weight: 600; letter-spacing: 0.06em; }
.is-monogram { border: 1px solid var(--line-strong); background: var(--surface-tint) !important; }
.is-monogram i { display: block !important; }
.ee-airline-logo { width: 30px; height: 30px; }
.ee-flight-option { grid-template-columns: 64px 30px 1fr 1.1fr 38px; }
.ee-preview-flight .ee-airline-logo { width: 26px; height: 26px; }

/* Partner logo marquee (replaces the figures strip) */
.ee-marquee { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: center; border-block: 1px solid var(--border); background: var(--surface-tint); }
.ee-marquee-label { display: grid; gap: 4px; padding: 20px clamp(20px, 4vw, 48px); border-right: 1px solid var(--border); color: var(--gold-ink); font-family: var(--mono); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; }
.ee-marquee-label i { color: var(--muted); font-style: normal; }
.ee-marquee-viewport { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.ee-marquee-track { display: flex; width: max-content; animation: ee-marquee var(--ee-marquee-duration, 60s) linear infinite; }
.ee-marquee:hover .ee-marquee-track { animation-play-state: paused; }
.ee-marquee-group { display: flex; }
.ee-marquee-item { display: flex; align-items: center; gap: 12px; padding: 18px 28px; border-right: 1px solid var(--line); white-space: nowrap; }
.ee-marquee-logo { width: 38px; height: 38px; }
.ee-marquee-item > span:last-child { color: var(--ink); font-size: 13px; font-weight: 600; letter-spacing: -0.01em; }
@keyframes ee-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Preview: amenities, carousel */
.ee-preview-plans[hidden], .ee-preview-amenities[hidden], .ee-preview-carousel[hidden] { display: none; }
.ee-preview-sub { margin: 14px 0 8px; color: var(--muted); font-family: var(--mono); font-size: 8px; letter-spacing: 0.12em; text-transform: uppercase; }
.ee-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ee-chip { padding: 5px 10px; border: 1px solid rgba(29, 107, 92, 0.45); border-radius: 999px; color: var(--teal-ink); font-size: 11px; font-weight: 500; }
.ee-chip::before { content: "✓ "; }
.ee-chip--extra { border-color: rgba(201, 161, 92, 0.45); color: var(--gold-ink); }
.ee-chip--extra::before { content: "+ "; }
.ee-preview-carousel { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 16px; }
.ee-preview-nav { width: 32px; height: 32px; border: 1px solid var(--line-strong); border-radius: 50%; background: transparent; color: var(--ink); font-size: 16px; line-height: 1; cursor: pointer; transition: border-color 160ms ease; }
.ee-preview-nav:hover { border-color: var(--gold); }
.ee-preview-dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.ee-preview-dot { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 999px; background: var(--line-strong); cursor: pointer; transition: width 300ms ease, background 300ms ease; }
.ee-preview-dot.is-active { width: 22px; background: var(--gold); }
.ee-preview-photo img[hidden] { display: none; }

/* Payment methods from data */
.ee-pay-strip b small { display: block; margin-top: 3px; color: var(--muted); font-size: 8px; font-weight: 400; letter-spacing: 0.08em; }
#ee-pay-methods { display: contents; }
.ee-ticket-placeholder { fill: var(--muted); letter-spacing: 0.12em; }

@media (prefers-reduced-motion: reduce) {
  .ee-marquee-track { animation: none; flex-wrap: wrap; }
  .ee-marquee-group[aria-hidden="true"] { display: none; }
}
@media (max-width: 760px) {
  .ee-marquee { grid-template-columns: 1fr; }
  .ee-marquee-label { grid-auto-flow: column; justify-content: space-between; border-right: 0; border-bottom: 1px solid var(--border); padding-block: 12px; }
  .ee-flight-option { grid-template-columns: 56px 26px 1fr 34px; }
  .ee-flight-option-route { display: none; }
  .ee-pop.is-up { bottom: 0; }
}

/* Airline band: always deep, in both themes, for a clear break after the hero */
.ee-airline-band {
  --bg: #060A09;
  --bg-elevated: #101816;
  --ink: #F4F1EA;
  --muted: #98A099;
  --gold-ink: #D9B26E;
  --teal-ink: #4FB39C;
  --border: rgba(244, 241, 234, 0.09);
  --line: rgba(244, 241, 234, 0.06);
  --line-strong: rgba(244, 241, 234, 0.16);
  --surface-tint: rgba(244, 241, 234, 0.025);
  --surface-hover: rgba(244, 241, 234, 0.04);
  color-scheme: dark;
  position: relative;
  overflow: hidden;
  border-block: 1px solid rgba(201, 161, 92, 0.18);
  background:
    radial-gradient(ellipse 60% 120% at 15% 0%, rgba(29, 107, 92, 0.22), transparent 60%),
    radial-gradient(ellipse 50% 100% at 90% 100%, rgba(201, 161, 92, 0.12), transparent 60%),
    var(--bg);
  color: var(--ink);
}
.ee-airline-band::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 56px 56px; -webkit-mask-image: linear-gradient(180deg, #000, transparent 85%); mask-image: linear-gradient(180deg, #000, transparent 85%); }
.ee-airline-band .ee-marquee { border-bottom: 0; background: rgba(6, 10, 9, 0.6); }
.ee-airline-band .ee-marquee-logo { box-shadow: 0 0 0 1px rgba(244, 241, 234, 0.08); }

/* Services pagination */
.ee-services-grid.is-paging .ee-service-card { animation: ee-swap 420ms cubic-bezier(0.22, 1, 0.36, 1) both; }
.ee-services-grid.is-paging .ee-service-card:nth-child(2) { animation-delay: 40ms; }
.ee-services-grid.is-paging .ee-service-card:nth-child(3) { animation-delay: 80ms; }
.ee-services-grid.is-paging .ee-service-card:nth-child(4) { animation-delay: 120ms; }
.ee-services-grid.is-paging .ee-service-card:nth-child(5) { animation-delay: 160ms; }
.ee-services-grid.is-paging .ee-service-card:nth-child(6) { animation-delay: 200ms; }
.ee-pager { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 16px 20px; border: 1px solid var(--border); border-top: 0; background: var(--surface-tint); }
.ee-pager[hidden] { display: none; }
.ee-pager-count { color: var(--muted); font-family: var(--mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; }
.ee-pager-count b { color: var(--ink); font-weight: 600; }
.ee-pager-controls { display: flex; align-items: center; gap: 10px; }
.ee-pager-nums { display: flex; gap: 4px; }
.ee-pager-num, .ee-pager-step { min-width: 36px; height: 36px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: 999px; background: transparent; color: var(--ink); font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; cursor: pointer; transition: border-color 160ms ease, background 160ms ease, color 160ms ease; }
.ee-pager-num:hover, .ee-pager-step:hover:not(:disabled) { border-color: var(--gold); color: var(--gold-ink); }
.ee-pager-num.is-active { border-color: var(--gold); background: var(--gold); color: var(--on-gold); font-weight: 600; }
.ee-pager-step:disabled { opacity: 0.3; cursor: default; }
@media (max-width: 600px) {
  .ee-pager { justify-content: center; }
  .ee-pager-nums { display: none; }
}
@media (prefers-reduced-motion: reduce) { .ee-services-grid.is-paging .ee-service-card { animation: none; } }


/* ---------- How It Works: decorative art + glass timeline ---------- */
.ee-hiw { position: relative; overflow: hidden; isolation: isolate; }
.ee-hiw > .ee-container { position: relative; z-index: 1; }
.ee-hiw-art { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.ee-hiw-art svg { width: 100%; height: 100%; display: block; }
.ee-hiw-rings circle { fill: none; stroke: var(--line-strong); stroke-width: 1; stroke-dasharray: 2 6; }
.ee-hiw-rings circle:nth-child(2) { stroke-dasharray: none; stroke: var(--line); }
.ee-hiw-rings path { stroke: var(--line-strong); stroke-width: 1; }
.ee-hiw-rings { animation: ee-spin 120s linear infinite; transform-box: fill-box; transform-origin: center; }
@keyframes ee-spin { to { rotate: 360deg; } }
.ee-hiw-arc { fill: none; stroke: url(#hiwArc); stroke-width: 1.6; }
.ee-hiw-arc-dash { fill: none; stroke: var(--line-strong); stroke-width: 1; stroke-dasharray: 3 10; transform: translateY(14px); opacity: 0.7; }
.ee-hiw-plane path { fill: var(--gold); filter: drop-shadow(0 0 6px rgba(201, 161, 92, 0.8)); }
.ee-hiw-runway path { fill: none; stroke: var(--line-strong); stroke-width: 1.2; }
.ee-hiw-runway .ee-hiw-runway-centre { stroke: rgba(201, 161, 92, 0.45); stroke-dasharray: 10 12; animation: ee-runway-dash 1.8s linear infinite; }
@keyframes ee-runway-dash { to { stroke-dashoffset: 22; } }
.ee-hiw-runway circle { fill: var(--gold); opacity: 0.55; animation: ee-blink 2.2s ease-in-out infinite; }
.ee-hiw-runway circle:nth-of-type(2n) { animation-delay: 1.1s; }

/* glass surface shared by the steps and the ticket */
.ee-glass, .ee-step-card {
  position: relative;
  border: 1px solid var(--glass-border);
  background: linear-gradient(145deg, var(--glass-top), var(--glass-bottom));
  backdrop-filter: blur(18px) saturate(140%);
  -webkit-backdrop-filter: blur(18px) saturate(140%);
  box-shadow: 0 1px 0 var(--glass-edge) inset, 0 24px 60px var(--glass-shadow);
}
:root { --glass-border: rgba(244, 241, 234, 0.12); --glass-top: rgba(244, 241, 234, 0.07); --glass-bottom: rgba(244, 241, 234, 0.015); --glass-edge: rgba(255, 255, 255, 0.12); --glass-shadow: rgba(0, 0, 0, 0.35); }
@media (prefers-color-scheme: light) { :root:not([data-theme="dark"]) { --glass-border: rgba(13, 18, 16, 0.1); --glass-top: rgba(255, 255, 255, 0.75); --glass-bottom: rgba(255, 255, 255, 0.35); --glass-edge: rgba(255, 255, 255, 0.9); --glass-shadow: rgba(13, 18, 16, 0.1); } }
:root[data-theme="light"] { --glass-border: rgba(13, 18, 16, 0.1); --glass-top: rgba(255, 255, 255, 0.75); --glass-bottom: rgba(255, 255, 255, 0.35); --glass-edge: rgba(255, 255, 255, 0.9); --glass-shadow: rgba(13, 18, 16, 0.1); }

.ee-ticket.ee-glass { padding: 14px; border-radius: 14px; animation: ee-float 6s ease-in-out infinite; }
.ee-ticket.ee-glass svg { filter: none; }
@keyframes ee-float { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-8px) rotate(0.5deg); } }

.ee-timeline { --progress: 0; position: relative; margin-top: 80px; }
.ee-timeline-rail { position: absolute; top: 22px; left: 22px; right: 22px; height: 2px; border-radius: 2px; background: var(--line-strong); overflow: hidden; }
.ee-timeline-fill { position: absolute; inset: 0; background: linear-gradient(90deg, var(--teal-ink), var(--gold)); transform: scaleX(var(--progress)); transform-origin: left; transition: transform 200ms linear; box-shadow: 0 0 12px rgba(201, 161, 92, 0.6); }
.ee-timeline-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin: 0; padding: 0; list-style: none; }
.ee-step { position: relative; display: grid; gap: 26px; opacity: 0.45; transform: translateY(16px); transition: opacity 600ms cubic-bezier(0.22, 1, 0.36, 1), transform 600ms cubic-bezier(0.22, 1, 0.36, 1); }
.ee-step.is-active { opacity: 1; transform: none; }
.ee-step-node { position: relative; z-index: 1; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--glass-border); border-radius: 50%; background: var(--bg-elevated); backdrop-filter: blur(10px); transition: border-color 400ms ease, box-shadow 400ms ease, background 400ms ease; }
.ee-step-node b { color: var(--muted); font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: 0.06em; transition: color 400ms ease; }
.ee-step.is-active .ee-step-node { border-color: var(--gold); background: radial-gradient(circle, rgba(201, 161, 92, 0.25), var(--bg-elevated) 70%); box-shadow: 0 0 0 6px rgba(201, 161, 92, 0.08), 0 0 24px rgba(201, 161, 92, 0.45); }
.ee-step.is-active .ee-step-node b { color: var(--gold-ink); }
.ee-step-card { overflow: hidden; min-height: 250px; padding: 26px 24px 28px; border-radius: 18px; transition: transform 300ms cubic-bezier(0.22, 1, 0.36, 1), border-color 300ms ease; }
.ee-step-card::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient(120% 60% at 0% 0%, rgba(201, 161, 92, 0.14), transparent 55%); opacity: 0; transition: opacity 300ms ease; }
.ee-step:hover .ee-step-card { transform: translateY(-6px); border-color: rgba(201, 161, 92, 0.45); }
.ee-step:hover .ee-step-card::before, .ee-step.is-active .ee-step-card::before { opacity: 1; }
.ee-step-ghost { position: absolute; right: 14px; top: 2px; color: var(--ink); opacity: 0.05; font-family: var(--mono); font-size: 92px; font-weight: 600; letter-spacing: -0.06em; line-height: 1; }
.ee-step-icon { position: relative; display: grid; place-items: center; width: 48px; height: 48px; border: 1px solid rgba(29, 107, 92, 0.45); border-radius: 14px; background: linear-gradient(145deg, rgba(29, 107, 92, 0.28), rgba(29, 107, 92, 0.06)); }
.ee-step-icon svg { width: 24px; height: 24px; fill: none; stroke: var(--teal-ink); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ee-step.is-active .ee-step-icon svg { stroke: var(--gold-ink); }
.ee-step-kicker { position: relative; margin: 22px 0 6px; color: var(--gold-ink); font-family: var(--mono); font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; }
.ee-step-card h3 { position: relative; margin: 0 0 10px; font-size: 22px; font-weight: 600; letter-spacing: -0.03em; }
.ee-step-card p:last-child { position: relative; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.65; }

@media (max-width: 1000px) {
  .ee-timeline-rail { top: 0; bottom: 0; left: 22px; right: auto; width: 2px; height: auto; }
  .ee-timeline-fill { transform: scaleY(var(--progress)); transform-origin: top; }
  .ee-timeline-steps { grid-template-columns: 1fr; gap: 26px; }
  .ee-step { grid-template-columns: 46px 1fr; gap: 18px; align-items: start; }
  .ee-step-card { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ee-hiw-rings, .ee-hiw-runway .ee-hiw-runway-centre, .ee-hiw-runway circle, .ee-ticket.ee-glass { animation: none; }
  .ee-hiw-plane { display: none; }
  .ee-step { opacity: 1; transform: none; }
}


/* ---------- Ways to book ---------- */
.ee-ways-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-top: 56px; }
.ee-way { display: flex; flex-direction: column; padding: 26px 28px 30px; border-radius: 20px; transition: transform 300ms cubic-bezier(0.22, 1, 0.36, 1), border-color 300ms ease; }
.ee-way:hover { transform: translateY(-4px); border-color: rgba(201, 161, 92, 0.4); }
.ee-way-art { margin: -4px -6px 18px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: radial-gradient(120% 90% at 20% 0%, rgba(29, 107, 92, 0.18), transparent 60%), var(--surface-tint); }
.ee-way-art svg { width: 100%; height: auto; display: block; }
.ee-way-frame { fill: none; stroke: var(--line-strong); stroke-width: 1.4; }
.ee-way-line, .ee-way-link { fill: none; stroke: var(--line-strong); stroke-width: 1; }
.ee-way-link { stroke: var(--gold); stroke-dasharray: 3 4; animation: ee-flow 1.6s linear infinite; }
.ee-way-dot { fill: var(--gold); }
.ee-way-block { fill: var(--gold); opacity: 0.8; }
.ee-way-block--soft { fill: var(--ink); opacity: 0.18; }
.ee-way-cta { fill: var(--teal); }
.ee-way-qr rect { fill: var(--bg-elevated); stroke: var(--line-strong); }
.ee-way-qr path { fill: none; stroke: var(--ink); stroke-width: 2.2; }
.ee-way-kicker { margin: 0 0 6px; color: var(--gold-ink); font-family: var(--mono); font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; }
.ee-way h3 { margin: 0 0 14px; font-size: 24px; font-weight: 600; letter-spacing: -0.03em; }
.ee-way-points { display: grid; gap: 9px; margin: 0 0 26px; padding: 0; list-style: none; }
.ee-way-points li { position: relative; padding-left: 24px; color: var(--muted); font-size: 14px; line-height: 1.55; }
.ee-way-points li::before { content: ""; position: absolute; left: 0; top: 7px; width: 12px; height: 7px; border-left: 1.6px solid var(--teal-ink); border-bottom: 1.6px solid var(--teal-ink); transform: rotate(-45deg); }
.ee-way .ee-button { margin-top: auto; align-self: flex-start; text-decoration: none; }
.ee-way-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; }

/* ---------- Guest reviews ---------- */
.ee-reviews[hidden] { display: none; }
.ee-reviews-score { display: grid; justify-items: end; gap: 4px; }
.ee-reviews-score strong { color: var(--gold-ink); font-family: var(--mono); font-size: 48px; font-weight: 500; line-height: 1; }
.ee-reviews-score span:last-child { color: var(--muted); font-family: var(--mono); font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; }
.ee-reviews-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 48px; }
.ee-review { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 24px; border-radius: 18px; }
.ee-review blockquote { margin: 0; font-size: 15px; line-height: 1.65; }
.ee-review blockquote::before { content: "\201C"; display: block; height: 22px; color: var(--gold-ink); font-size: 44px; line-height: 1; }
.ee-review figcaption { display: grid; gap: 2px; margin-top: auto; }
.ee-review figcaption b { font-size: 14px; }
.ee-review figcaption span { color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.08em; text-transform: uppercase; }
.ee-stars { display: inline-flex; gap: 2px; }
.ee-stars i { color: var(--line-strong); font-style: normal; font-size: 14px; }
.ee-stars i.is-on { color: var(--gold); }

/* ---------- Contact & support ---------- */
.ee-contact { position: relative; overflow: hidden; }
.ee-contact::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(50% 60% at 85% 30%, rgba(201, 161, 92, 0.1), transparent 70%), radial-gradient(40% 50% at 5% 90%, rgba(29, 107, 92, 0.14), transparent 70%); }
.ee-contact > .ee-container { position: relative; }
.ee-contact-layout { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(36px, 6vw, 88px); align-items: start; }
.ee-contact-copy h2 { margin: 0; font-size: clamp(32px, 4vw, 46px); font-weight: 600; letter-spacing: -0.04em; line-height: 1.08; }
.ee-contact-form { display: grid; gap: 16px; padding: clamp(22px, 3vw, 34px); border-radius: 22px; }
.ee-contact-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ee-input { display: grid; gap: 7px; }
.ee-input > span, .ee-topics legend { color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.12em; text-transform: uppercase; }
.ee-input > span i { margin-left: 6px; font-style: normal; opacity: 0.7; text-transform: none; letter-spacing: 0.02em; }
.ee-input input, .ee-input textarea { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--surface-deep); color: var(--ink); font-family: var(--display); font-size: 14px; outline: 0; resize: vertical; transition: border-color 160ms ease, box-shadow 160ms ease; }
.ee-input input:focus, .ee-input textarea:focus { border-color: var(--teal-ink); box-shadow: 0 0 0 3px rgba(29, 107, 92, 0.2); }
.ee-input.is-invalid input, .ee-input.is-invalid textarea { border-color: #D9776A; }
.ee-input em, .ee-topics em { min-height: 0; color: #D9776A; font-size: 12px; font-style: normal; }
.ee-input em:empty, .ee-topics em:empty { display: none; }
.ee-topics { margin: 0; padding: 0; border: 0; }
.ee-topics legend { margin-bottom: 9px; }
.ee-topic-options { display: flex; flex-wrap: wrap; gap: 8px; }
.ee-topic { position: relative; cursor: pointer; }
.ee-topic input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ee-topic span { display: inline-block; padding: 8px 14px; border: 1px solid var(--line-strong); border-radius: 999px; font-size: 13px; transition: all 160ms ease; }
.ee-topic input:checked + span { border-color: var(--gold); background: var(--gold); color: var(--on-gold); font-weight: 600; }
.ee-topic input:focus-visible + span { outline: 2px solid var(--teal-ink); outline-offset: 2px; }
.ee-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.ee-contact-foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 4px; }
.ee-contact-status { flex: 1; margin: 0; font-size: 13px; line-height: 1.5; }
.ee-contact-status.is-ok { color: var(--teal-ink); }
.ee-contact-status.is-error { color: #D9776A; }
.ee-contact-form .ee-button:disabled { opacity: 0.6; cursor: progress; }

@media (max-width: 1000px) {
  .ee-ways-grid, .ee-contact-layout { grid-template-columns: 1fr; }
  .ee-reviews-grid { grid-template-columns: repeat(2, 1fr); }
  .ee-reviews-score { justify-items: start; }
}
@media (max-width: 600px) {
  .ee-reviews-grid, .ee-contact-row { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .ee-way-link { animation: none; } }


/* ---------- Find us & reach us: locator card + channel rows ---------- */
.ee-reach { display: grid; grid-template-columns: minmax(280px, 0.9fr) 1.4fr; margin-top: 28px; border: 1px solid var(--line-strong); border-radius: 24px; overflow: hidden; background: var(--bg-elevated); box-shadow: var(--shadow); }
.ee-reach-locator { --bg: #060A09; --ink: #F4F1EA; --muted: #98A099; --line: rgba(244, 241, 234, 0.08); position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 360px; padding: clamp(24px, 3vw, 36px); overflow: hidden; color: var(--ink); background: radial-gradient(90% 70% at 30% 20%, rgba(29, 107, 92, 0.35), transparent 60%), var(--bg); }
.ee-reach-locator::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px); background-size: 40px 40px; -webkit-mask-image: radial-gradient(70% 70% at 35% 25%, #000, transparent); mask-image: radial-gradient(70% 70% at 35% 25%, #000, transparent); }
.ee-reach-ping { position: absolute; top: 26%; left: 36%; width: 12px; height: 12px; }
.ee-reach-ping i { position: absolute; inset: 0; border-radius: 50%; border: 1px solid var(--gold); animation: ee-ping 3s ease-out infinite; }
.ee-reach-ping i:nth-child(2) { animation-delay: 1s; }
.ee-reach-ping i:nth-child(3) { border: 0; background: var(--gold); box-shadow: 0 0 14px var(--gold); animation: none; }
@keyframes ee-ping { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(9); opacity: 0; } }
.ee-reach-locator .ee-reach-kicker { position: relative; margin: 0 0 4px; }
.ee-reach-code { position: relative; margin: 0 0 4px -2px; color: var(--gold); font-family: var(--mono); font-size: clamp(56px, 6vw, 84px); font-weight: 500; letter-spacing: -0.06em; line-height: 0.95; }
.ee-reach-locator h3 { position: relative; margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; }
.ee-reach-terminals { position: relative; display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0 0; padding: 0; list-style: none; }
.ee-reach-terminals li { padding: 5px 10px; border: 1px solid rgba(244, 241, 234, 0.2); border-radius: 999px; color: var(--ink); font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; }
.ee-reach-maplink { position: relative; display: inline-block; margin-top: 22px; color: var(--gold); font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; text-decoration: none; text-transform: uppercase; }
.ee-reach-maplink:hover { text-decoration: underline; }
.ee-reach-channels { display: flex; flex-direction: column; padding: clamp(22px, 3vw, 32px); }
.ee-reach-head { margin-bottom: 18px; }
.ee-reach-head h3 { margin: 0 0 6px; font-size: clamp(22px, 2.4vw, 28px); font-weight: 600; letter-spacing: -0.03em; }
.ee-reach-head p { margin: 0; color: var(--muted); font-size: 14px; }
.ee-reach-kicker { margin: 0; color: var(--gold-ink); font-family: var(--mono); font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; }
.ee-reach-list { display: grid; gap: 1px; margin: 0; padding: 0; list-style: none; border: 1px solid var(--border); background: var(--border); }
.ee-reach-row { display: grid; grid-template-columns: 44px 1fr auto; gap: 16px; align-items: center; padding: 15px 18px; background: var(--bg); color: var(--ink); text-decoration: none; transition: background 200ms ease, padding 200ms ease; }
a.ee-reach-row:hover { background: var(--bg-elevated); padding-left: 24px; }
.ee-reach-row-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: rgba(29, 107, 92, 0.18); }
.ee-reach-row-icon svg { width: 20px; height: 20px; fill: none; stroke: var(--teal-ink); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ee-reach-row-text { display: grid; gap: 3px; min-width: 0; }
.ee-reach-row-text small { color: var(--muted); font-family: var(--mono); font-size: 8px; letter-spacing: 0.12em; text-transform: uppercase; }
.ee-reach-row-text b { font-size: 15px; font-weight: 600; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.ee-reach-row-action { color: var(--gold-ink); font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; }
.ee-reach-row-action i { display: inline-block; font-style: normal; transition: transform 200ms ease; }
a.ee-reach-row:hover .ee-reach-row-action i { transform: translateX(4px); }
.ee-reach-row--cta { background: linear-gradient(90deg, rgba(201, 161, 92, 0.14), var(--bg) 70%); }
.ee-reach-row--cta .ee-reach-row-icon { background: var(--gold); }
.ee-reach-row--cta .ee-reach-row-icon svg { stroke: var(--on-gold); }
@media (max-width: 900px) { .ee-reach { grid-template-columns: 1fr; } .ee-reach-locator { min-height: 260px; } }
@media (max-width: 520px) { .ee-reach-row { grid-template-columns: 40px 1fr; } .ee-reach-row-action { display: none; } }
@media (prefers-reduced-motion: reduce) { .ee-reach-ping i { animation: none; } }

/* ---------- Guest reviews: empty state ---------- */
.ee-reviews-grid[hidden], .ee-reviews-empty[hidden] { display: none; }
.ee-reviews-empty { display: grid; grid-template-columns: 220px 1fr; gap: clamp(20px, 4vw, 48px); align-items: center; margin-top: 48px; padding: clamp(24px, 4vw, 44px); border-radius: 22px; }
.ee-reviews-empty-art svg { width: 100%; height: auto; display: block; }
.ee-quote { fill: var(--gold); opacity: 0.22; }
.ee-empty-stars path { fill: none; stroke: var(--gold); stroke-width: 1.2; opacity: 0.7; }
.ee-reviews-empty-copy h3 { margin: 0 0 10px; font-size: clamp(22px, 2.6vw, 30px); font-weight: 600; letter-spacing: -0.03em; line-height: 1.2; }
.ee-reviews-empty-copy p:not(.ee-reach-kicker) { max-width: 560px; margin: 0 0 22px; color: var(--muted); font-size: 15px; line-height: 1.65; }
.ee-reviews-empty-copy .ee-button { text-decoration: none; }

/* ---------- Contact: reassurance points ---------- */
.ee-contact-points { display: grid; gap: 14px; margin: 30px 0 0; padding: 0; list-style: none; }
.ee-contact-points li { position: relative; display: grid; gap: 3px; padding-left: 30px; }
.ee-contact-points li::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border-radius: 50%; background: rgba(29, 107, 92, 0.2); box-shadow: inset 0 0 0 1px rgba(29, 107, 92, 0.5); }
.ee-contact-points li::after { content: ""; position: absolute; left: 6px; top: 7px; width: 6px; height: 3px; border-left: 1.5px solid var(--teal-ink); border-bottom: 1.5px solid var(--teal-ink); transform: rotate(-45deg); }
.ee-contact-points b { font-size: 14px; font-weight: 600; }
.ee-contact-points span { color: var(--muted); font-size: 13px; line-height: 1.5; }

@media (max-width: 700px) {
  .ee-reviews-empty { grid-template-columns: 1fr; }
  .ee-reviews-empty-art { max-width: 160px; }
}

/* ---------- Gallery (landing) ---------- */
.ee-gallery { overflow-x: clip; }
.ee-gal-controls { display: flex; align-items: center; gap: 10px; }
.ee-gal-count { margin-right: 8px; color: var(--muted); font-family: var(--mono); font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; }
.ee-gal-track { display: flex; gap: 16px; margin-top: 44px; padding: 4px clamp(24px, 7vw, 112px) 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.ee-gal-track::-webkit-scrollbar { display: none; }
.ee-gal-track:focus-visible { outline: 2px solid var(--teal-ink); outline-offset: -2px; }
.ee-gal-slide { position: relative; flex: 0 0 min(72vw, 560px); margin: 0; scroll-snap-align: start; border-radius: 18px; overflow: hidden; border: 1px solid var(--line-strong); background: var(--bg-elevated); }
.ee-gal-open { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.ee-gal-open img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; filter: var(--photo-filter); transition: transform 600ms cubic-bezier(0.22, 1, 0.36, 1); }
.ee-gal-slide:hover .ee-gal-open img { transform: scale(1.03); }
.ee-gal-slide figcaption { position: absolute; inset: auto 0 0 0; display: grid; gap: 3px; padding: 40px 18px 16px; background: linear-gradient(180deg, transparent, rgba(6, 10, 9, 0.85)); color: #F4F1EA; pointer-events: none; }
.ee-gal-slide figcaption small { color: #D9B26E; font-family: var(--mono); font-size: 8px; letter-spacing: 0.12em; text-transform: uppercase; }
.ee-gal-slide figcaption b { font-size: 17px; font-weight: 600; letter-spacing: -0.02em; }
.ee-gal-slide figcaption span { color: rgba(244, 241, 234, 0.75); font-size: 12px; }
.ee-gal-slide.is-representative::after { content: ""; }
.ee-gal-dots { justify-content: center; margin-top: 18px; }
.ee-gal-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 999px; background: var(--line-strong); cursor: pointer; transition: width 300ms ease, background 300ms ease; }
.ee-gal-dots button.is-active { width: 22px; background: var(--gold); }

/* Lightbox */
.ee-noscroll { overflow: hidden; }
.ee-lightbox { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: 20px; background: rgba(6, 10, 9, 0.88); backdrop-filter: blur(10px); animation: ee-pop-in 200ms ease; }
.ee-lightbox[hidden] { display: none; }
.ee-lb-panel { position: relative; display: grid; grid-template-columns: 1fr minmax(260px, 340px); gap: 0; width: min(1200px, 100%); max-height: calc(100vh - 40px); border: 1px solid rgba(244, 241, 234, 0.12); border-radius: 20px; overflow: hidden; background: #0D1210; color: #F4F1EA; }
.ee-lb-figure { display: grid; place-items: center; margin: 0; min-height: 320px; background: #060A09; }
.ee-lb-figure img { max-width: 100%; max-height: calc(100vh - 40px); object-fit: contain; }
.ee-lb-meta { display: flex; flex-direction: column; gap: 10px; padding: 28px 26px; --ink: #F4F1EA; --muted: #98A099; --gold-ink: #D9B26E; --teal-ink: #4FB39C; color: var(--ink); }
.ee-lb-meta h3 { margin: 0; font-size: 24px; font-weight: 600; letter-spacing: -0.03em; }
.ee-lb-location, .ee-lb-caption { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.ee-lb-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 18px; }
.ee-lb-actions a { text-decoration: none; }
.ee-lb-close { position: absolute; top: 12px; right: 12px; z-index: 2; width: 38px; height: 38px; border: 1px solid rgba(244, 241, 234, 0.2); border-radius: 50%; background: rgba(13, 18, 16, 0.7); color: #F4F1EA; font-size: 22px; line-height: 1; cursor: pointer; }
.ee-lb-nav { position: absolute; top: 50%; z-index: 2; width: 44px; height: 44px; border: 1px solid rgba(244, 241, 234, 0.2); border-radius: 50%; background: rgba(13, 18, 16, 0.7); color: #F4F1EA; font-size: 24px; line-height: 1; cursor: pointer; transform: translateY(-50%); }
.ee-lb-nav--prev { left: 12px; } .ee-lb-nav--next { right: 352px; }
@media (max-width: 900px) {
  .ee-lb-panel { grid-template-columns: 1fr; overflow-y: auto; }
  .ee-lb-nav--next { right: 12px; }
  .ee-lb-figure img { max-height: 60vh; }
}
@media (prefers-reduced-motion: reduce) { .ee-gal-slide:hover .ee-gal-open img { transform: none; } }
