/* ════════════════════════════════════════════════════════════
   La Blanche Guest Info PWA — v3
   Brand: Navy #0e3859 · Gold #c79a4a · Teal #35c6d3 · Green #25D366
════════════════════════════════════════════════════════════ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
[hidden] { display: none !important; }

:root {
  --navy:        #0c3254;
  --navy-mid:    #103b5e;
  --navy-deep:   #071c2e;
  --navy-darker: #04101d;
  --gold:        #c9a04e;
  --gold-light:  #e4bf6e;
  --gold-soft:   #f2d58a;
  --gold-deep:   #9e7a32;
  --gold-shine:  #f8e4a8;
  --teal:        #35c6d3;
  --green:       #25D366;
  --green-deep:  #075E54;
  --white:       #ffffff;
  --off-white:   #f8f5f0;
  --muted:       rgba(255,255,255,.65);
  --font-sans:   'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-display:'Playfair Display', Georgia, serif;
  --font-logo:   'Caveat Brush', 'Permanent Marker', 'Brush Script MT', cursive;
  --ease:        cubic-bezier(.22,.68,0,1.2);
  --ease-out:    cubic-bezier(.16,1,.3,1);
  --ease-in:     cubic-bezier(.55,0,.7,.2);
  --ease-luxury: cubic-bezier(.19,1,.22,1);
  --header-h:    62px;
  --safe-top:    env(safe-area-inset-top, 0px);
  --safe-bot:    env(safe-area-inset-bottom, 0px);
  --shadow-card: 0 14px 40px rgba(0,0,0,.42), 0 1px 0 rgba(255,255,255,.08) inset;
  --shadow-soft: 0 10px 28px rgba(0,0,0,.32);
  --blur-glass:  blur(20px) saturate(1.3);
}

html { height: 100%; }
body {
  font-family: var(--font-sans);
  background:
    radial-gradient(ellipse at top, rgba(53,198,211,.07) 0%, transparent 55%),
    radial-gradient(ellipse 80% 60% at center bottom, rgba(199,154,74,.06) 0%, transparent 70%),
    var(--navy-darker);
  color: var(--white);
  height: 100%;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: geometricPrecision;
  font-feature-settings: "ss01", "cv01";
}

::selection {
  background: rgba(199,154,74,.36);
  color: var(--white);
}
::-moz-selection {
  background: rgba(199,154,74,.36);
  color: var(--white);
}

::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: rgba(199,154,74,.28);
  border-radius: 99px;
}
::-webkit-scrollbar-thumb:hover { background: rgba(199,154,74,.48); }

:focus-visible {
  outline: 2px solid rgba(199,154,74,.55);
  outline-offset: 2px;
}

/* ════════════════════════════════════════════════════════
   LA BLANCHE WORDMARK
   "La Blanche" brush-style logo — tüm boyutlarda kullanılabilir
═══════════════════════════════════════════════════════ */
.lb-wordmark {
  font-family: var(--font-logo);
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: .82;
  color: var(--white);
  letter-spacing: 0;
  position: relative;
  user-select: none;
}
.lb-wm-la {
  font-size: .48em;
  margin-left: 11%;
  margin-bottom: -.06em;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,.35)) drop-shadow(0 0 8px rgba(199,154,74,.18));
  letter-spacing: -.01em;
  font-weight: 400;
}
.lb-wm-blanche {
  font-size: 1em;
  letter-spacing: -.005em;
  filter: drop-shadow(0 3px 6px rgba(0,0,0,.45)) drop-shadow(0 0 12px rgba(199,154,74,.22));
  font-weight: 400;
}
/* Sizes */
.lb-wordmark.size-sm  { font-size: 30px; }   /* header */
.lb-wordmark.size-md  { font-size: 44px; }
.lb-wordmark.size-lg  { font-size: 58px; }   /* drawer */
.lb-wordmark.size-xl  { font-size: 88px; }   /* splash */

/* ════════════════════════════════════════════════════════
   FONT AWESOME 3D STYLE
═══════════════════════════════════════════════════════ */
.fa-solid, .fa-brands, .fa-regular {
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.3));
}

/* ════════════════════════════════════════════════════════
   HEADER
═══════════════════════════════════════════════════════ */
.lb-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: calc(var(--header-h) + var(--safe-top));
  padding-top: var(--safe-top);
  display: flex;
  align-items: center;
  padding-left: 12px;
  padding-right: 12px;
  z-index: 100;
  background: linear-gradient(180deg, rgba(5,15,28,.88) 0%, rgba(5,15,28,.52) 70%, rgba(5,15,28,0) 100%);
  backdrop-filter: var(--blur-glass);
  -webkit-backdrop-filter: var(--blur-glass);
  gap: 8px;
}

.lb-icon-btn {
  width: 42px; height: 42px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--white);
  display: grid;
  place-items: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: all .25s var(--ease-luxury);
  -webkit-tap-highlight-color: transparent;
  position: relative;
  z-index: 2;
}
.lb-icon-btn:active {
  transform: scale(.9);
  background: rgba(199,154,74,.22);
  border-color: rgba(199,154,74,.45);
  box-shadow: 0 0 0 4px rgba(199,154,74,.10);
}
.lb-icon-btn i {
  font-size: 16px;
  color: var(--white);
}

/* ─── Hamburger — premium SVG, gold-accent, smooth morph ─── */
.lb-burger {
  position: relative;
  padding: 0;
  background: linear-gradient(145deg, rgba(199,154,74,.18), rgba(199,154,74,.05));
  border: 1px solid rgba(199,154,74,.3);
}
.lb-burger:active {
  background: linear-gradient(145deg, rgba(199,154,74,.32), rgba(199,154,74,.12));
  border-color: rgba(199,154,74,.55);
}
.lb-burger svg {
  width: 22px;
  height: 22px;
  stroke: var(--gold-light);
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
}
.lb-burger svg line {
  transition: transform .35s cubic-bezier(.5,0,0,1.2), opacity .25s ease;
  transform-origin: center;
}
.lb-burger.is-active svg line.lb-burger-l1 { transform: translateY(5px) rotate(45deg); }
.lb-burger.is-active svg line.lb-burger-l2 { opacity: 0; transform: scaleX(0); }
.lb-burger.is-active svg line.lb-burger-l3 { transform: translateY(-5px) rotate(-45deg); }

/* ─── Logo (orijinal "La Blanche Island Bodrum" PNG) ─── */
.lb-logo {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  height: 100%;
  justify-content: center;
}
.lb-logo-img {
  height: 42px;
  width: auto;
  display: block;
  filter:
    drop-shadow(0 2px 6px rgba(0,0,0,.6))
    drop-shadow(0 0 8px rgba(0,0,0,.35));
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
  transition: opacity .3s ease;
}
.lb-header:not(.has-title) .lb-logo {
  position: absolute;
  left: 50%;
  top: var(--safe-top);
  width: max-content;
  height: var(--header-h);
  justify-content: center;
  transform: translateX(-50%);
  pointer-events: none;
  z-index: 1;
}
.lb-header:not(.has-title) .lb-logo .lb-logo-img {
  height: 46px;
}
@media (max-width: 380px) {
  .lb-logo-img { height: 38px; }
  .lb-header:not(.has-title) .lb-logo .lb-logo-img { height: 42px; }
}

.lb-header-title {
  flex: 1 1 auto;
  min-width: 0;
  height: 34px;
  line-height: 32px;
  max-width: 100%;
  padding: 0 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background:
    linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.035)),
    rgba(5,15,28,.22);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 8px 22px rgba(0,0,0,.18);
  font-family: var(--font-sans);
  font-size: 12.5px;
  font-weight: 800;
  color: var(--white);
  letter-spacing: .012em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
  text-shadow: 0 1px 8px rgba(0,0,0,.4);
}
.lb-header.has-title {
  gap: 7px;
}
.lb-header.has-title .lb-lang {
  gap: 2px;
}
.lb-header.has-title .lb-lang-btn {
  min-width: 36px;
  padding-left: 6px;
  padding-right: 6px;
}

/* Language */
.lb-lang {
  display: flex;
  gap: 3px;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
  margin-left: auto;
}
.lb-lang-btn {
  height: 28px;
  padding: 0 8px;
  border-radius: 7px;
  border: 1px solid rgba(255,255,255,.12);
  background: transparent;
  color: rgba(255,255,255,.55);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  cursor: pointer;
  transition: all .22s var(--ease-luxury);
  -webkit-tap-highlight-color: transparent;
  font-family: inherit;
}
.lb-lang-btn.active {
  background: linear-gradient(135deg, var(--gold-soft), var(--gold-deep));
  border-color: var(--gold);
  color: var(--white);
  box-shadow: 0 4px 14px rgba(199,154,74,.45), 0 0 0 3px rgba(199,154,74,.12);
}

/* ════════════════════════════════════════════════════════
   DRAWER
═══════════════════════════════════════════════════════ */
.lb-drawer-scrim {
  position: fixed;
  inset: 0;
  background: rgba(5,15,28,.72);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition: opacity .38s var(--ease-luxury);
}
.lb-drawer-scrim.is-open {
  opacity: 1;
  pointer-events: auto;
}

.lb-drawer {
  position: fixed;
  top: 0; left: 0; bottom: 0;
  width: 86%;
  max-width: 340px;
  background:
    radial-gradient(ellipse at 20% 10%, rgba(53,198,211,.06), transparent 50%),
    linear-gradient(165deg, var(--navy) 0%, var(--navy-darker) 70%);
  z-index: 210;
  transform: translateX(-100%);
  transition: transform .45s var(--ease-luxury);
  display: flex;
  flex-direction: column;
  box-shadow: 22px 0 70px rgba(0,0,0,.58), 6px 0 20px rgba(0,0,0,.3);
  border-right: 1px solid rgba(199,154,74,.22);
  padding-top: var(--safe-top);
}
.lb-drawer.is-open { transform: translateX(0); }

.lb-drawer-head {
  padding: 30px 22px 22px;
  text-align: center;
  position: relative;
  border-bottom: 1px solid rgba(255,255,255,.07);
  display: flex;
  flex-direction: column;
  align-items: center;
}
.lb-drawer-head::before {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 90px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.lb-drawer-head .lb-wordmark {
  font-size: 60px;
}
.lb-drawer-head p {
  font-size: 11px;
  color: var(--gold-light);
  letter-spacing: .3em;
  text-transform: uppercase;
  margin-top: 14px;
  font-weight: 700;
}

.lb-drawer-nav {
  flex: 1;
  overflow-y: auto;
  padding: 14px 12px 18px;
  -webkit-overflow-scrolling: touch;
}
.lb-drawer-nav::-webkit-scrollbar { display: none; }

.lb-drawer-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(199,154,74,.2), transparent);
  margin: 12px 8px;
}

.lb-drawer-list { display: flex; flex-direction: column; gap: 2px; }

.lb-drawer-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 11px 14px;
  width: 100%;
  border: 1px solid transparent;
  border-radius: 12px;
  background: transparent;
  color: var(--white);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  transition: all .25s var(--ease-luxury);
  -webkit-tap-highlight-color: transparent;
}
.lb-drawer-item:active {
  background: rgba(199,154,74,.14);
  border-color: rgba(199,154,74,.32);
  transform: scale(.98);
}
.lb-drawer-item.is-home {
  background: linear-gradient(135deg, rgba(199,154,74,.18), rgba(199,154,74,.06));
  border-color: rgba(199,154,74,.32);
}

.lb-drawer-icon {
  width: 38px; height: 38px;
  border-radius: 10px;
  background: linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.04));
  border: 1px solid rgba(255,255,255,.10);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  position: relative;
  box-shadow: 0 4px 12px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.08);
  transition: transform .25s var(--ease-luxury);
}
.lb-drawer-item:active .lb-drawer-icon {
  transform: scale(.92);
}
.lb-drawer-icon i {
  font-size: 16px;
  color: var(--gold-light);
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.4));
}
.lb-drawer-icon.teal i { color: var(--teal); }
.lb-drawer-icon.green i { color: var(--green); }
.lb-drawer-icon.gold i { color: var(--gold); }

.lb-drawer-text {
  flex: 1;
  font-size: 14px;
  font-weight: 750;
  color: var(--white);
  letter-spacing: .003em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lb-drawer-chev {
  font-size: 11px !important;
  color: rgba(255,255,255,.25);
  transition: transform .2s, color .2s;
}
.lb-drawer-item:active .lb-drawer-chev {
  color: var(--gold-light);
  transform: translateX(3px);
}

.lb-drawer-foot {
  padding: 14px 22px calc(20px + var(--safe-bot));
  border-top: 1px solid rgba(255,255,255,.07);
  text-align: center;
}
.lb-drawer-foot small {
  font-size: 11px;
  color: rgba(255,255,255,.45);
  letter-spacing: .04em;
}
.lb-drawer-foot small i { color: var(--green); margin-right: 4px; }

/* ════════════════════════════════════════════════════════
   MAIN
═══════════════════════════════════════════════════════ */
.lb-main { position: fixed; inset: 0; overflow: hidden; }

.lb-screen {
  position: absolute;
  inset: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  padding-top: calc(var(--header-h) + var(--safe-top));
  padding-bottom: calc(24px + var(--safe-bot));
  background: transparent;
  will-change: transform, opacity;
  backface-visibility: hidden;
  contain: layout paint style;
  transform-origin: center center;
  transform: translate3d(0,0,0) scale(1);
  opacity: 1;
}
.lb-screen[hidden] { display: none !important; }
.lb-screen::-webkit-scrollbar { display: none; }

/* ════════════════════════════════════════════════════════
   PROFESYONEL SAYFA GEÇİŞLERİ
   iOS-card-stack: translate + scale + opacity layered
═══════════════════════════════════════════════════════ */

/* — FORWARD: yeni sayfa sağdan kayar, eski geri itilir (depth) — */
.lb-screen.screen-in-fwd {
  z-index: 3;
  animation: screenInFwd .38s cubic-bezier(.16, 1, .3, 1) both;
}
.lb-screen.screen-out-fwd {
  animation: screenOutFwd .38s cubic-bezier(.16, 1, .3, 1) both;
  z-index: 1;
}
@keyframes screenInFwd {
  0%   { opacity: 0; transform: translate3d(24px, 0, 0) scale(.985); }
  45%  { opacity: 1; }
  100% { opacity: 1;  transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes screenOutFwd {
  0%   { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
  100% { opacity: .58; transform: translate3d(-14px, 0, 0) scale(.985); }
}

/* — BACK: eski sayfa sağa kayar/küçülür, yeni soldan büyüyerek gelir — */
.lb-screen.screen-in-back {
  z-index: 1;
  animation: screenInBack .38s cubic-bezier(.16, 1, .3, 1) both;
}
.lb-screen.screen-out-back {
  animation: screenOutBack .38s cubic-bezier(.16, 1, .3, 1) both;
  z-index: 2;
}
@keyframes screenInBack {
  0%   { opacity: .58; transform: translate3d(-14px, 0, 0) scale(.985); }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
}
@keyframes screenOutBack {
  0%   { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
  100% { opacity: 0; transform: translate3d(24px, 0, 0) scale(.985); }
}

/* Geçiş sırasında scroll kararlı kalsın */
.lb-screen.screen-in-fwd,
.lb-screen.screen-in-back,
.lb-screen.screen-out-fwd,
.lb-screen.screen-out-back {
  pointer-events: none;
}

/* Header da geçiş sırasında smooth davransın */
.lb-header {
  transition: backdrop-filter .35s ease;
}

/* Geçiş sırasında FAB & burger görünür kalır ama tıklanmaz olsun */
body.is-transitioning .lb-grab-fab,
body.is-transitioning .lb-room-fab { pointer-events: none; }
body.is-transitioning .lb-burger,
body.is-transitioning .lb-back { pointer-events: none; }
body.is-transitioning .lb-header {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* ─── Splash çıkışı: scale-up + fade (lüks bir kapanma) ─── */
.lb-loader {
  transition: opacity .6s var(--ease-luxury), transform .6s var(--ease-luxury);
}
.lb-loader-inner > * {
  transition: transform .55s var(--ease-luxury), opacity .5s var(--ease-luxury);
}
.lb-loader.fade-out {
  opacity: 0;
  transform: scale(1.06);
  pointer-events: none;
}
.lb-loader.fade-out .lb-loader-inner > * {
  transform: translateY(-8px) scale(0.96);
  opacity: 0;
}

/* ════════════════════════════════════════════════════════
   HERO
═══════════════════════════════════════════════════════ */
.lb-hero {
  position: relative;
  width: 100%;
  height: 60vw;
  min-height: 240px;
  max-height: 380px;
  overflow: visible;          /* floating icon overflow için */
  flex-shrink: 0;
  isolation: isolate;
  --hero-action-top: clamp(18px, 5vw, 28px);
}
.lb-hero.small { max-height: 250px; height: 48vw; min-height: 200px; }

/* Image clipping wrapper — image scale(1.08) sınırlanmalı */
.lb-hero-clip {
  position: absolute;
  inset: 0;
  overflow: hidden;
  z-index: 1;
}
.lb-hero-img {
  position: absolute;
  inset: -4%;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-color: var(--navy-mid);
  transform: scale(1.04);
  transform-origin: center;
  filter: saturate(1.08) contrast(1.04);
  will-change: transform;
}
.lb-hero-img.loaded {
  animation: lbHeroCinematicZoom 26s ease-in-out infinite alternate;
}

@keyframes lbHeroCinematicZoom {
  from { transform: scale(1.04) translate3d(0, 0, 0); }
  to   { transform: scale(1.16) translate3d(-1.2%, -.8%, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .lb-hero-img.loaded {
    animation: none;
    transform: scale(1.06);
  }
}

.lb-bg-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
  opacity: 0;
  pointer-events: none;
  transition: opacity .5s var(--ease-luxury);
  z-index: 0;
}
.loaded > .lb-bg-video { opacity: 1; }

.lb-bg-embed {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 120%;
  height: 120%;
  min-width: 100%;
  min-height: 100%;
  border: 0;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(1.08);
  transition: opacity .75s var(--ease-luxury);
  z-index: 0;
}
.loaded > .lb-bg-embed { opacity: 1; }
.lb-hero-img.is-youtube {
  background-size: cover;
  background-position: center;
}

.lb-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at center top, rgba(53,198,211,.14) 0%, transparent 55%),
    linear-gradient(180deg,
      rgba(5,15,28,.10) 0%,
      rgba(5,15,28,.10) 30%,
      rgba(5,15,28,.7) 75%,
      rgba(5,15,28,.98) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  /* Tutarlı padding: tüm yönlerde aynı oransal boşluk */
  padding: 24px 22px 26px;
  gap: 8px;
  align-items: flex-start;
}
.lb-hero-overlay > * {
  margin: 0;          /* Çocukların kendi margin'leri layout'u kaydırmasın */
}
.lb-hero-overlay::before {
  content: '';
  display: block;
  width: 42px;
  height: 1.5px;
  background: linear-gradient(90deg, var(--gold-light), var(--gold));
  opacity: .9;
  margin: 0 0 4px 0;
  animation: lineGrow .9s .35s both;
}
@keyframes lineGrow {
  from { width: 0; opacity: 0; }
  to   { width: 42px; opacity: .9; }
}

.lb-hero-tag {
  font-family: var(--font-sans);
  font-size: 10.5px;
  font-weight: 800;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold-light);
  opacity: 0;
  animation: heroFade .7s .25s both;
}
.lb-hero-title {
  font-family: var(--font-display);
  font-size: 42px;
  font-weight: 700;
  line-height: 1.08;
  color: var(--white);
  letter-spacing: .005em;
  text-shadow: 0 2px 24px rgba(0,0,0,.5);
  white-space: pre-line;
  opacity: 0;
  animation: heroFade .7s .4s both;
}

.home-hero .lb-hero-overlay {
  padding: 22px 22px 24px;
  gap: 6px;
}

.home-hero .lb-hero-title {
  font-size: clamp(28px, 7.4vw, 34px);
  line-height: 1.02;
  max-width: min(76%, 320px);
  letter-spacing: 0;
  text-shadow: 0 2px 18px rgba(0,0,0,.48);
}

.home-hero .lb-hero-tag {
  font-size: 9.5px;
  letter-spacing: .20em;
}

.home-hero .lb-hero-sub {
  font-size: 12.5px;
  line-height: 1.35;
  margin-top: 1px;
}

.home-hero .lb-hero-stars {
  margin-top: 6px;
}

.home-hero .lb-map-cta {
  margin-top: 10px;
}
.lb-hero-sub {
  font-family: var(--font-sans);
  font-size: 14.5px;
  color: rgba(255,255,255,.78);
  letter-spacing: .01em;
  margin-top: 4px;
  font-style: italic;
  font-weight: 500;
  line-height: 1.55;
  opacity: 0;
  animation: heroFade .7s .55s both;
}
.lb-hero-stars {
  display: flex;
  gap: 4px;
  margin-top: 10px;
  opacity: 0;
  animation: heroFade .7s .7s both;
}
.lb-hero-stars i {
  color: var(--gold-light);
  font-size: 12px;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
}
@keyframes heroFade {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Floating quick map button on home hero — gizlendi, primary CTA hero overlay'da */
.lb-hero-fab { display: none; }

/* ════════════════════════════════════════════════════════
   PRIMARY MAP CTA (Hero) — Sade & Şık Pill
═══════════════════════════════════════════════════════ */
.lb-map-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 14px;
  padding: 7px 16px 7px 7px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(228,185,106,.96) 0%, rgba(199,154,74,.96) 60%, rgba(161,124,52,.96) 100%);
  border: 1px solid rgba(255,255,255,.4);
  color: var(--white);
  text-decoration: none;
  font-family: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  align-self: flex-start;
  width: fit-content;
  max-width: 92%;
  position: relative;
  z-index: 4;
  box-shadow:
    0 10px 28px rgba(199,154,74,.5),
    0 3px 8px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.45),
    inset 0 -2px 5px rgba(0,0,0,.18);
  transition: transform .25s var(--ease-out);
  animation: mapCtaIn .55s var(--ease-out) 1.1s both;
}
@keyframes mapCtaIn {
  from { opacity: 0; transform: translateY(16px) scale(.94); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.lb-map-cta:active { transform: scale(.97); }

/* Soft pulsing ring — sade, sönük altın halka */
.lb-map-cta::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  border: 2px solid rgba(228,185,106,.55);
  animation: lbMapPulse 2.6s ease-out 1.9s infinite;
  opacity: 0;
  pointer-events: none;
}
@keyframes lbMapPulse {
  0%   { opacity: .75; transform: scale(1);    border-width: 2px; }
  85%  { opacity: 0;   transform: scale(1.18); border-width: 1px; }
  100% { opacity: 0; }
}

.lb-map-cta-icon {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.22);
  border: 1px solid rgba(255,255,255,.42);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45);
}
.lb-map-cta-icon i {
  font-size: 14px;
  color: var(--white);
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.35));
}

.lb-map-cta strong {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -.005em;
  color: var(--white);
  text-shadow: 0 1px 3px rgba(0,0,0,.32);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1;
}

.lb-map-cta-arrow {
  font-size: 12px;
  color: var(--white);
  margin-left: 2px;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.3));
  animation: lbMapArrow 1.6s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes lbMapArrow {
  0%, 100% { transform: translateX(0); }
  50%      { transform: translateX(4px); }
}

/* Küçük ekranlarda biraz daha kompakt */
@media (max-width: 380px) {
  .lb-map-cta { padding: 6px 14px 6px 6px; gap: 8px; }
  .lb-map-cta-icon { width: 28px; height: 28px; }
  .lb-map-cta-icon i { font-size: 13px; }
  .lb-map-cta strong { font-size: 16px; }
}

/* Geniş ekranlarda biraz büyüsün */
@media (min-width: 600px) {
  .lb-map-cta { padding: 8px 18px 8px 8px; gap: 11px; margin-top: 16px; }
  .lb-map-cta-icon { width: 34px; height: 34px; }
  .lb-map-cta-icon i { font-size: 15px; }
  .lb-map-cta strong { font-size: 18px; }
}

.lb-hero-socials {
  position: absolute;
  top: calc(var(--hero-action-top) + 54px);
  right: 16px;
  z-index: 4;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 7px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(5,15,28,.58), rgba(5,15,28,.32));
  box-shadow: 0 12px 32px rgba(0,0,0,.24);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.lb-hero-socials a {
  width: 34px;
  height: 34px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  color: rgba(255,255,255,.88);
  text-decoration: none;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.10);
  transition: transform .22s var(--ease-out), background .22s ease, color .22s ease;
  -webkit-tap-highlight-color: transparent;
}
.lb-hero-socials a:active {
  transform: scale(.92);
  background: rgba(199,154,74,.22);
  color: var(--gold-light);
}
.lb-hero-socials i { font-size: 15px; }

/* Floating icon over hero (category/detail) */
.lb-floating-icon {
  position: absolute;
  bottom: -28px;
  right: 20px;
  width: 64px; height: 64px;
  border-radius: 18px;
  background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep));
  display: grid;
  place-items: center;
  z-index: 4;
  box-shadow:
    0 14px 40px rgba(0,0,0,.4),
    0 4px 12px rgba(199,154,74,.4),
    inset 0 2px 0 rgba(255,255,255,.4),
    inset 0 -3px 6px rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.25);
  animation: floatIn .55s .4s var(--ease) both;
}
.lb-floating-icon.green {
  background: linear-gradient(145deg, var(--green), var(--green-deep));
}
@keyframes floatIn {
  from { opacity: 0; transform: scale(0.5) rotate(-25deg); }
  to   { opacity: 1; transform: scale(1) rotate(0); }
}
.lb-floating-icon i {
  font-size: 26px;
  color: var(--white);
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.4));
}

/* ════════════════════════════════════════════════════════
   HOME GRID
═══════════════════════════════════════════════════════ */
.lb-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  padding: 16px 14px 8px;
}

.lb-card {
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  aspect-ratio: 1 / 1.12;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  background: var(--navy-mid);
  transition: transform .32s var(--ease-luxury), box-shadow .32s var(--ease-luxury);
  box-shadow: var(--shadow-card);
  opacity: 0;
  animation: cardEnter .6s var(--ease-luxury) both;
}
.lb-card:nth-child(1) { animation-delay: .05s; }
.lb-card:nth-child(2) { animation-delay: .12s; }
.lb-card:nth-child(3) { animation-delay: .19s; }
.lb-card:nth-child(4) { animation-delay: .26s; }
.lb-card:nth-child(5) { animation-delay: .33s; }
.lb-card:nth-child(6) { animation-delay: .40s; }
.lb-card:nth-child(7) { animation-delay: .47s; }
.lb-card:nth-child(8) { animation-delay: .54s; }
.lb-card:nth-child(9) { animation-delay: .61s; }
.lb-card:nth-child(n+10) { animation-delay: .68s; }
@keyframes cardEnter {
  from { opacity: 0; transform: translateY(28px) scale(.93); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.lb-card:active {
  transform: scale(.965);
  box-shadow: 0 8px 24px rgba(0,0,0,.5), 0 1px 0 rgba(255,255,255,.08) inset;
}
.lb-card:first-child:nth-last-child(odd) {
  grid-column: 1 / -1;
  aspect-ratio: 2.4 / 1;
}

.lb-card-img {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  transition: transform .6s var(--ease-luxury), filter .4s var(--ease-luxury);
  filter: saturate(1.05);
}
.lb-card:active .lb-card-img { transform: scale(1.08); filter: saturate(1.2) brightness(1.06); }

.lb-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  border: 1px solid rgba(199,154,74,.16);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
  z-index: 3;
}

/* 3D Floating FA Icon on home cards */
.lb-card-fa-icon {
  position: absolute;
  top: 14px;
  left: 14px;
  width: 42px; height: 42px;
  border-radius: 12px;
  background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep));
  display: grid;
  place-items: center;
  z-index: 3;
  box-shadow:
    0 6px 18px rgba(199,154,74,.45),
    0 2px 4px rgba(0,0,0,.3),
    inset 0 2px 0 rgba(255,255,255,.35),
    inset 0 -2px 4px rgba(0,0,0,.2);
  border: 1px solid rgba(255,255,255,.22);
  transition: transform .35s var(--ease-luxury);
}
.lb-card:active .lb-card-fa-icon {
  transform: scale(1.12) rotate(-8deg);
}
.lb-card-fa-icon i {
  font-size: 17px;
  color: var(--white);
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.5));
}

.lb-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 25%, rgba(5,15,28,.55) 60%, rgba(5,15,28,.94) 100%);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 16px 16px 14px;
  gap: 4px;
  z-index: 2;
}
.lb-card-weather {
  width: min(100%, 300px);
  margin: 0 0 auto auto;
  padding: 8px;
  border-radius: 15px;
  border: 1px solid rgba(255,255,255,.16);
  background:
    linear-gradient(145deg, rgba(8,31,50,.66), rgba(5,15,28,.34)),
    radial-gradient(circle at 18% 0%, rgba(53,198,211,.20), transparent 50%);
  box-shadow:
    0 10px 24px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter: var(--blur-glass);
  -webkit-backdrop-filter: var(--blur-glass);
  transform: translateY(-1px);
}
.lb-card-weather[hidden] { display: none !important; }
.lb-weather-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 7px;
}
.lb-weather-head span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  color: rgba(255,255,255,.78);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.lb-weather-head span i { color: var(--gold-light); font-size: 11px; }
.lb-weather-head strong {
  color: var(--white);
  font-size: 18px;
  line-height: 1;
  font-weight: 900;
  text-shadow: 0 2px 9px rgba(0,0,0,.36);
}
.lb-weather-days {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}
.lb-weather-day {
  min-width: 0;
  display: grid;
  place-items: center;
  gap: 3px;
  padding: 5px 3px;
  border-radius: 10px;
  background: rgba(255,255,255,.075);
  border: 1px solid rgba(255,255,255,.08);
}
.lb-weather-day b {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  color: rgba(255,255,255,.74);
  font-size: 8.5px;
  font-weight: 900;
  white-space: nowrap;
}
.lb-weather-day i {
  color: var(--gold-light);
  font-size: 12px;
  filter: drop-shadow(0 2px 5px rgba(0,0,0,.34));
}
.lb-weather-day em {
  color: rgba(255,255,255,.86);
  font-size: 9px;
  font-style: normal;
  font-weight: 850;
  white-space: nowrap;
}
.lb-card-name {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  color: var(--white);
  line-height: 1.14;
  letter-spacing: .002em;
  text-shadow: 0 2px 12px rgba(0,0,0,.5);
}
.lb-card-count {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  color: var(--gold-light);
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
  margin-top: 4px;
}
.lb-card-count i { font-size: 9px; }

.lb-weather-card {
  position: relative;
  grid-column: 1 / -1;
  min-height: 232px;
  border-radius: 22px;
  overflow: hidden;
  background: var(--navy-mid);
  box-shadow: 0 18px 42px rgba(0,0,0,.32), 0 0 0 1px rgba(255,255,255,.04);
  opacity: 0;
  transform-style: preserve-3d;
  perspective: 900px;
  transform: translateY(24px) scale(.94) rotateX(10deg);
}
body.lb-app-ready .lb-weather-card {
  animation: weatherCardIn .82s cubic-bezier(.16, 1, .3, 1) .12s both;
}
.lb-weather-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  border: 1px solid rgba(231,196,111,.22);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.11),
    inset 0 -26px 46px rgba(2,8,16,.34);
  z-index: 4;
}
.lb-weather-card-bg {
  position: absolute;
  inset: 0;
  background-image: url('assets/weather-bodrum.jpg');
  background-size: cover;
  background-position: center 48%;
  filter: saturate(1.08) brightness(.94);
  transform: translateZ(-24px) scale(1.06);
  transform-origin: center 48%;
  animation: weatherBgSlowZoom 16s cubic-bezier(.22, .61, .36, 1) 1.1s infinite alternate;
}
.lb-weather-card-shade {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 82%, rgba(53,198,211,.10), transparent 36%),
    radial-gradient(circle at 82% 14%, rgba(231,196,111,.13), transparent 34%),
    linear-gradient(180deg, rgba(4,13,23,.04) 0%, rgba(4,13,23,.18) 46%, rgba(4,13,23,.74) 100%),
    linear-gradient(90deg, rgba(4,13,23,.76) 0%, rgba(4,13,23,.34) 44%, rgba(4,13,23,.16) 100%);
  z-index: 1;
}
.lb-weather-card-shade::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(255,255,255,.08) 0%, transparent 24%, transparent 72%, rgba(231,196,111,.08) 100%);
  mix-blend-mode: screen;
  opacity: .52;
  pointer-events: none;
}
.lb-weather-card-copy {
  position: relative;
  z-index: 2;
  padding: 18px 18px 0;
  display: grid;
  gap: 4px;
  transform: translateZ(28px);
}
.lb-weather-card-copy span {
  color: var(--gold-light);
  font-size: 9.5px;
  font-weight: 900;
  letter-spacing: .26em;
  text-shadow: 0 2px 7px rgba(0,0,0,.55);
}
.lb-weather-card .lb-card-weather {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 16px;
  z-index: 3;
  width: auto;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transform: translateZ(42px);
}
.lb-weather-daily {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "main range"
    "advice advice"
    "activity activity";
  align-items: end;
  gap: 7px 14px;
}
.lb-weather-main {
  grid-area: main;
  min-width: 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: end;
  column-gap: 12px;
  row-gap: 2px;
}
.lb-weather-main strong {
  color: var(--white);
  font-size: 70px;
  line-height: .8;
  font-weight: 900;
  text-shadow: 0 8px 28px rgba(0,0,0,.62);
}
.lb-weather-main em {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,.93);
  font-size: 12.5px;
  font-style: normal;
  font-weight: 820;
  text-shadow: 0 4px 16px rgba(0,0,0,.62);
  white-space: nowrap;
  padding-bottom: 7px;
}
.lb-weather-main em i {
  color: var(--gold-light);
  font-size: 14px;
}
.lb-weather-range {
  grid-area: range;
  justify-self: end;
  align-self: end;
  color: rgba(255,255,255,.92);
  text-align: right;
  border-top: 0;
  padding-top: 0;
  min-width: 0;
  max-width: none;
  padding-left: 0;
  border-left: 0;
  display: block;
  text-shadow: 0 4px 16px rgba(0,0,0,.62);
}
.lb-weather-range span {
  color: var(--white);
  font-size: 16px;
  font-weight: 850;
  white-space: nowrap;
  display: inline-block;
  margin-top: 0;
  padding-top: 8px;
  border-top: 1px solid rgba(231,196,111,.70);
  letter-spacing: .02em;
}
.lb-weather-activity {
  grid-area: activity;
  display: grid;
  grid-template-columns: minmax(104px, auto) minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  min-width: 0;
  margin-top: 7px;
  padding-top: 10px;
  border-top: 1px solid rgba(231,196,111,.38);
}
.lb-weather-activity small {
  color: var(--gold-light);
  font-size: 8.6px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
  white-space: nowrap;
}
.lb-weather-activity-mask {
  height: 22px;
  overflow: hidden;
  min-width: 0;
  position: relative;
}
.lb-weather-activity-track {
  position: relative;
  height: 22px;
  min-width: 0;
}
.lb-weather-activity-item {
  display: flex;
  align-items: center;
  gap: 8px;
  position: absolute;
  inset: 0;
  height: 22px;
  opacity: 0;
  transform: translate3d(10px, 0, 0);
  pointer-events: none;
  transition:
    opacity .45s ease,
    transform .52s cubic-bezier(.16, 1, .3, 1);
}
.lb-weather-activity-item.is-active {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.lb-weather-activity-item b {
  color: var(--white);
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .01em;
}
.lb-weather-activity-item em {
  color: rgba(255,255,255,.88);
  min-width: 0;
  font-size: 12px;
  font-style: normal;
  font-weight: 780;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-weather-activity-dots {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 5px;
}
.lb-weather-activity-dots i {
  width: 10px;
  height: 2px;
  border-radius: 999px;
  background: rgba(255,255,255,.28);
  transition: width .28s ease, background .28s ease;
}
.lb-weather-activity-dots i.is-active {
  width: 18px;
  background: var(--gold-light);
}
.lb-weather-advice {
  grid-area: advice;
  width: min(100%, 310px);
  max-width: 100%;
  margin: 0;
  color: rgba(255,255,255,.94);
  background: transparent;
  border: 0;
  box-shadow: none;
  font-size: 12.6px;
  font-weight: 760;
  line-height: 1.3;
  text-shadow: 0 4px 18px rgba(0,0,0,.72);
}

/* Concierge Shuttle — compact home service teaser */
.lb-shuttle-card {
  position: relative;
  grid-column: 1 / -1;
  min-height: 146px;
  border-radius: 22px;
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  background: #102841;
  box-shadow:
    0 18px 46px rgba(0,0,0,.34),
    0 0 0 1px rgba(231,196,111,.14);
  opacity: 0;
  transform: translateY(22px) scale(.95) rotateX(8deg);
  transform-style: preserve-3d;
  perspective: 900px;
}
body.lb-app-ready .lb-shuttle-card {
  animation: shuttleCardIn .85s var(--ease-luxury) .22s both;
}
.lb-shuttle-card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  border-radius: inherit;
  border: 1px solid rgba(231,196,111,.28);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.13),
    inset 0 -54px 82px rgba(2,8,16,.56);
}
.lb-shuttle-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    linear-gradient(96deg, rgba(3,11,21,.86) 0%, rgba(5,19,33,.62) 48%, rgba(5,19,33,.22) 100%),
    linear-gradient(180deg, rgba(3,11,21,.05), rgba(3,11,21,.82)),
    url('assets/bodrum-kalesi.webp');
  background-size: cover;
  background-position: center 44%;
  filter: saturate(1.06) contrast(1.03);
  transform: scale(1.04);
  animation: shuttleBgDrift 18s ease-in-out infinite alternate;
}
.lb-shuttle-orbit {
  position: absolute;
  z-index: 1;
  right: -46px;
  top: -62px;
  width: 158px;
  height: 158px;
  border-radius: 50%;
  border: 1px solid rgba(231,196,111,.20);
  background:
    radial-gradient(circle at 50% 50%, rgba(231,196,111,.19), transparent 56%),
    radial-gradient(circle at 34% 28%, rgba(255,255,255,.14), transparent 22%);
  opacity: .72;
  animation: shuttleOrbFloat 7s ease-in-out infinite alternate;
}
.lb-shuttle-copy,
.lb-shuttle-strip,
.lb-shuttle-cta {
  position: relative;
  z-index: 3;
}
.lb-shuttle-copy {
  width: min(100%, 420px);
  padding: 15px 18px 8px;
  display: grid;
  gap: 4px;
  transform: translateZ(38px);
}
.lb-shuttle-copy span {
  color: var(--gold-light);
  font-size: 8.4px;
  font-weight: 900;
  letter-spacing: .24em;
  text-shadow: 0 3px 13px rgba(0,0,0,.58);
}
.lb-shuttle-copy h2 {
  max-width: 11ch;
  font-family: var(--font-display);
  color: var(--white);
  font-size: clamp(28px, 7.2vw, 40px);
  line-height: .94;
  letter-spacing: 0;
  text-wrap: balance;
  text-shadow: 0 8px 28px rgba(0,0,0,.54);
}
.lb-shuttle-copy p {
  max-width: min(100%, 310px);
  color: rgba(255,255,255,.88);
  font-size: 11.3px;
  font-weight: 760;
  line-height: 1.28;
  text-shadow: 0 4px 18px rgba(0,0,0,.62);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.lb-shuttle-strip {
  position: absolute;
  left: 13px;
  right: 13px;
  bottom: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px;
  border-radius: 999px;
  background: rgba(5,15,28,.58);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transform: translateZ(56px);
}
.lb-shuttle-strip > span {
  min-width: 0;
  height: 32px;
  padding: 0 9px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,.90);
  font-size: 10.3px;
  font-weight: 900;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.08);
}
.lb-shuttle-strip > span:first-child {
  flex: 1;
}
.lb-shuttle-strip i {
  flex: 0 0 auto;
  color: var(--gold-soft);
  font-size: 11px;
}
.lb-shuttle-cta {
  flex: 0 0 auto;
  height: 32px;
  min-width: 92px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  background: linear-gradient(135deg, #f5d98a, var(--gold));
  color: #0d2338;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 12px;
  font-size: 10.5px;
  font-weight: 950;
  cursor: pointer;
  box-shadow:
    0 14px 34px rgba(199,154,74,.28),
    inset 0 1px 0 rgba(255,255,255,.42);
}
.lb-shuttle-cta:active,
.lb-shuttle-card:active .lb-shuttle-cta {
  transform: scale(.985);
}
@keyframes shuttleCardIn {
  0% { opacity: 0; transform: translateY(22px) scale(.95) rotateX(8deg); }
  65% { opacity: 1; transform: translateY(-3px) scale(1.01) rotateX(-1.5deg); }
  100% { opacity: 1; transform: translateY(0) scale(1) rotateX(0deg); }
}
@keyframes shuttleBgDrift {
  from { transform: scale(1.04) translate3d(0, 0, 0); }
  to { transform: scale(1.11) translate3d(-1.6%, -.8%, 0); }
}
@keyframes shuttleOrbFloat {
  from { transform: translate3d(0,0,0) scale(1); opacity: .58; }
  to { transform: translate3d(-14px,16px,0) scale(1.08); opacity: .84; }
}

/* Concierge Shuttle modal */
.lb-shuttle-modal {
  position: fixed;
  inset: 0;
  z-index: 1340;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(14px + var(--safe-top)) 12px calc(14px + var(--safe-bot));
  background: rgba(2,10,18,.66);
  opacity: 0;
  pointer-events: none;
  transition: opacity .28s ease;
  overflow: hidden;
}
.lb-shuttle-modal.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.lb-shuttle-modal.is-leaving {
  opacity: 0;
}
.lb-shuttle-modal-bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 72% 16%, rgba(232,197,114,.22), transparent 34%),
    linear-gradient(120deg, rgba(2,10,18,.94), rgba(5,19,33,.76)),
    url('assets/bodrum-kalesi.webp') center/cover;
  filter: blur(20px) saturate(1.14) brightness(.70);
  transform: scale(1.14);
}
.lb-shuttle-panel {
  position: relative;
  z-index: 2;
  width: min(760px, 100%);
  max-height: calc(100vh - 32px - var(--safe-top) - var(--safe-bot));
  overflow: hidden auto;
  border-radius: 32px;
  border: 1px solid rgba(232,197,114,.28);
  background:
    linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.04)),
    rgba(5,18,31,.88);
  box-shadow:
    0 38px 120px rgba(0,0,0,.64),
    0 0 0 1px rgba(255,255,255,.06) inset,
    inset 0 1px 0 rgba(255,255,255,.18);
  backdrop-filter: blur(28px) saturate(1.24);
  -webkit-backdrop-filter: blur(28px) saturate(1.24);
  transform: translateY(30px) scale(.965);
  transition: transform .52s cubic-bezier(.16, 1, .3, 1);
}
.lb-shuttle-modal.is-visible .lb-shuttle-panel {
  transform: translateY(0) scale(1);
}
.lb-shuttle-close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 3;
  width: 44px;
  height: 44px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(5,15,28,.60);
  color: var(--white);
  display: grid;
  place-items: center;
  cursor: pointer;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.lb-shuttle-panel-hero {
  position: relative;
  min-height: 238px;
  padding: 34px 28px 24px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 10px;
  overflow: hidden;
  background:
    linear-gradient(88deg, rgba(3,11,21,.86), rgba(3,11,21,.42) 58%, rgba(3,11,21,.08)),
    linear-gradient(180deg, rgba(3,11,21,.02), rgba(3,11,21,.86)),
    url('assets/bodrum-kalesi.webp') center 42%/cover;
}
.lb-shuttle-panel-hero::after {
  content: '';
  position: absolute;
  left: 28px;
  right: 28px;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(232,197,114,.72), transparent);
  pointer-events: none;
}
.lb-shuttle-panel-badge {
  width: max-content;
  max-width: calc(100% - 58px);
  min-height: 34px;
  padding: 0 11px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--gold-soft);
  background: rgba(3,11,21,.48);
  border: 1px solid rgba(232,197,114,.30);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
}
.lb-shuttle-panel-badge span {
  color: var(--gold-soft);
  font-size: 9.5px;
  font-weight: 950;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.lb-shuttle-panel-hero h3 {
  font-family: var(--font-display);
  font-size: clamp(40px, 8vw, 66px);
  line-height: .94;
  color: var(--white);
  max-width: 9.5ch;
  text-shadow: 0 10px 30px rgba(0,0,0,.56);
}
.lb-shuttle-panel-hero p {
  width: min(100%, 520px);
  color: rgba(255,255,255,.88);
  font-weight: 760;
  line-height: 1.4;
}
.lb-shuttle-hero-ticket {
  width: min(100%, 420px);
  min-height: 64px;
  margin-top: 4px;
  border-radius: 20px;
  padding: 9px 12px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 32px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  background: rgba(4,13,24,.58);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: 0 14px 34px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.lb-shuttle-hero-ticket span {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.lb-shuttle-hero-ticket small {
  color: rgba(255,255,255,.62);
  font-size: 8.5px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.lb-shuttle-hero-ticket b {
  color: #fff;
  font-size: 22px;
  line-height: 1;
}
.lb-shuttle-hero-ticket i {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: #10243a;
  background: linear-gradient(145deg, #f8df95, #b98a39);
}
.lb-shuttle-panel-body {
  display: grid;
  gap: 12px;
  padding: 16px 18px 0;
}
.lb-shuttle-info {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 0;
}
.lb-shuttle-info div {
  min-width: 0;
  min-height: 86px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.13);
  background:
    linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.035));
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  padding: 12px 10px;
}
.lb-shuttle-info i {
  color: var(--gold-soft);
  font-size: 17px;
}
.lb-shuttle-info span {
  color: rgba(255,255,255,.70);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.lb-shuttle-info b {
  color: var(--white);
  font-size: 18px;
}
.lb-shuttle-route-card {
  min-height: 92px;
  border-radius: 22px;
  padding: 14px;
  display: grid;
  grid-template-columns: 46px 1fr;
  align-items: center;
  gap: 12px;
  background:
    radial-gradient(circle at 0% 0%, rgba(232,197,114,.20), transparent 44%),
    linear-gradient(145deg, rgba(255,255,255,.085), rgba(255,255,255,.035));
  border: 1px solid rgba(232,197,114,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
}
.lb-shuttle-route-icon {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  color: #10243a;
  background: linear-gradient(145deg, #f8df95, #b98a39);
  box-shadow: 0 12px 26px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.42);
}
.lb-shuttle-route-card div:last-child {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.lb-shuttle-route-card span {
  color: var(--gold-soft);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.lb-shuttle-route-card strong {
  color: #fff;
  font-size: 17px;
  line-height: 1.16;
}
.lb-shuttle-route-card em {
  color: rgba(255,255,255,.70);
  font-size: 12px;
  line-height: 1.35;
  font-style: normal;
}
.lb-shuttle-note {
  margin: 0;
  border-radius: 18px;
  padding: 12px 13px;
  display: flex;
  gap: 9px;
  color: rgba(255,255,255,.82);
  background: rgba(3,11,21,.34);
  border: 1px solid rgba(255,255,255,.10);
  font-size: 12.5px;
  line-height: 1.48;
}
.lb-shuttle-note i {
  color: var(--gold-soft);
  margin-top: 2px;
}
.lb-shuttle-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 18px;
}
.lb-shuttle-form-head {
  grid-column: 1 / -1;
  display: grid;
  gap: 4px;
  padding: 2px 2px 4px;
}
.lb-shuttle-form-head span {
  color: #fff;
  font-size: 19px;
  font-weight: 950;
  letter-spacing: 0;
  text-transform: none;
}
.lb-shuttle-form-head p {
  color: rgba(255,255,255,.68);
  font-size: 12.5px;
  line-height: 1.42;
}
.lb-shuttle-form label {
  min-width: 0;
  display: grid;
  gap: 7px;
}
.lb-shuttle-form label.wide {
  grid-column: 1 / -1;
}
.lb-shuttle-form label span {
  color: var(--gold-soft);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.lb-shuttle-form input,
.lb-shuttle-form textarea {
  width: 100%;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 16px;
  background: rgba(3,11,21,.46);
  color: var(--white);
  outline: none;
  font: inherit;
  min-height: 48px;
  padding: 12px 13px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.lb-shuttle-form textarea {
  resize: vertical;
  min-height: 80px;
}
.lb-shuttle-form input:focus,
.lb-shuttle-form textarea:focus {
  border-color: rgba(231,196,111,.62);
  box-shadow: 0 0 0 3px rgba(231,196,111,.12), inset 0 1px 0 rgba(255,255,255,.08);
}
.lb-shuttle-error {
  grid-column: 1 / -1;
  min-height: 18px;
  color: #ffd6d6;
  font-size: 12px;
  font-weight: 800;
}
.lb-shuttle-actions {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr 1.35fr;
  gap: 10px;
}
.lb-shuttle-actions button {
  min-height: 54px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color: var(--white);
  font-weight: 950;
  cursor: pointer;
}
.lb-shuttle-actions button.primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  background: linear-gradient(135deg, #22df70, #128c4d);
  color: #fff;
  border-color: rgba(255,255,255,.28);
  box-shadow: 0 16px 38px rgba(37,211,102,.30), inset 0 1px 0 rgba(255,255,255,.35);
}
@media (min-width: 760px) {
  .lb-shuttle-card {
    min-height: 176px;
    border-radius: 26px;
  }
  .lb-shuttle-copy {
    width: min(100%, 560px);
    padding: 24px 32px 10px;
  }
  .lb-shuttle-copy h2 { max-width: 13ch; }
  .lb-shuttle-copy p {
    font-size: 13.4px;
    max-width: 430px;
  }
  .lb-shuttle-strip {
    left: 30px;
    right: auto;
    bottom: 20px;
    width: min(620px, calc(100% - 60px));
  }
  .lb-shuttle-cta {
    min-width: 118px;
    padding: 0 18px;
  }
}
@media (max-width: 759px) {
  .lb-shuttle-card {
    min-height: 144px;
  }
  .lb-shuttle-copy {
    padding: 14px 15px 6px;
  }
  .lb-shuttle-copy h2 {
    max-width: 9.5ch;
    font-size: clamp(26px, 7.1vw, 32px);
  }
  .lb-shuttle-copy p {
    max-width: 235px;
    font-size: 10.4px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .lb-shuttle-strip {
    left: 10px;
    right: 10px;
    bottom: 10px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 4px;
    padding: 4px;
  }
  .lb-shuttle-strip > span {
    height: 30px;
    padding: 0 8px;
    font-size: 9.4px;
  }
  .lb-shuttle-strip > span:first-child {
    display: none;
  }
  .lb-shuttle-strip > span:nth-of-type(2) {
    justify-content: flex-start;
  }
  .lb-shuttle-cta {
    height: 30px;
    min-width: 74px;
    padding: 0 9px;
    font-size: 9.5px;
  }
  .lb-shuttle-cta i {
    font-size: 10px;
  }
  .lb-shuttle-info,
  .lb-shuttle-form {
    grid-template-columns: 1fr;
  }
  .lb-shuttle-actions {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 520px) {
  .lb-shuttle-strip {
    right: auto;
    width: min(282px, calc(100% - 20px));
    grid-template-columns: minmax(0, 1fr) 34px;
    padding-right: 4px;
  }
  .lb-shuttle-strip > span:nth-of-type(3) {
    display: none;
  }
  .lb-shuttle-cta {
    position: relative;
    width: 34px;
    min-width: 34px;
    padding: 0;
  }
  .lb-shuttle-cta span {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
  }
  .lb-shuttle-info,
  .lb-shuttle-form {
    grid-template-columns: 1fr;
  }
  .lb-shuttle-actions {
    grid-template-columns: 1fr;
  }
}

/* Shuttle card final polish: Bodrum concierge pass */
.lb-shuttle-card {
  min-height: 166px;
  border-radius: 24px;
  background: #071421;
  box-shadow:
    0 24px 58px rgba(0,0,0,.42),
    0 0 0 1px rgba(232,197,114,.25),
    inset 0 1px 0 rgba(255,255,255,.16);
}
.lb-shuttle-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(92deg, rgba(4,12,22,.78) 0%, rgba(4,12,22,.48) 43%, rgba(4,12,22,.04) 100%),
    linear-gradient(180deg, rgba(255,255,255,.14), transparent 42%, rgba(2,8,15,.42) 100%),
    radial-gradient(circle at 84% 18%, rgba(232,197,114,.32), transparent 30%);
}
.lb-shuttle-card::after {
  border-color: rgba(232,197,114,.34);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 -34px 58px rgba(2,8,16,.38),
    inset 0 0 0 1px rgba(255,255,255,.06);
}
.lb-shuttle-bg {
  opacity: 1;
  background-image: url('assets/bodrum-kalesi.webp');
  background-position: center 43%;
  transform: scale(1.07);
  filter: saturate(1.18) contrast(1.04) brightness(1.08);
}
.lb-shuttle-orbit {
  display: none;
}
.lb-shuttle-copy {
  width: auto;
  padding: 17px 118px 58px 18px;
  gap: 4px;
}
.lb-shuttle-copy span {
  width: max-content;
  max-width: 100%;
  padding: 5px 8px;
  border-radius: 999px;
  color: #f5d98a;
  background: rgba(3,11,20,.34);
  border: 1px solid rgba(232,197,114,.26);
  font-size: 8px;
  letter-spacing: .22em;
  text-transform: uppercase;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
}
.lb-shuttle-copy h2 {
  max-width: 8.5ch;
  font-size: clamp(34px, 8.7vw, 44px);
  line-height: .92;
}
.lb-shuttle-copy p {
  max-width: 276px;
  color: rgba(255,255,255,.92);
  font-size: 11.5px;
  line-height: 1.32;
}
.lb-shuttle-strip {
  left: 10px;
  right: 10px;
  bottom: 12px;
  width: auto;
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(112px, .72fr) 40px;
  gap: 7px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.lb-shuttle-strip > span {
  height: 34px;
  padding: 0 12px;
  background: rgba(4,13,24,.56);
  border-color: rgba(255,255,255,.18);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 8px 22px rgba(0,0,0,.20);
}
.lb-shuttle-strip > span:nth-of-type(2) {
  justify-content: center;
}
.lb-shuttle-strip > span:nth-of-type(3) {
  display: none;
}
.lb-shuttle-strip i {
  color: #f5d98a;
}
.lb-shuttle-cta {
  width: 40px;
  min-width: 40px;
  height: 34px;
  padding: 0;
  border-color: rgba(255,255,255,.46);
  background:
    radial-gradient(circle at 30% 18%, rgba(255,255,255,.42), transparent 34%),
    linear-gradient(145deg, #f8df95, #b98a39);
  box-shadow:
    0 14px 32px rgba(232,197,114,.36),
    inset 0 1px 0 rgba(255,255,255,.52);
}
.lb-shuttle-cta span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.lb-shuttle-cta i {
  font-size: 12px;
}
@media (min-width: 760px) {
  .lb-shuttle-card {
    min-height: 184px;
  }
  .lb-shuttle-copy {
    padding: 26px 210px 64px 30px;
  }
  .lb-shuttle-copy h2 {
    max-width: none;
    font-size: clamp(42px, 4.2vw, 56px);
  }
  .lb-shuttle-copy p {
    max-width: 430px;
    font-size: 13.4px;
  }
  .lb-shuttle-strip {
    left: 30px;
    right: 30px;
    bottom: 20px;
    width: auto;
    grid-template-columns: minmax(0, 1fr) auto auto 118px;
  }
  .lb-shuttle-strip > span:nth-of-type(3) {
    display: inline-flex;
  }
  .lb-shuttle-cta {
    width: auto;
    min-width: 118px;
    padding: 0 16px;
    font-size: 10.5px;
  }
  .lb-shuttle-cta span {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
  }
}
@media (max-width: 759px) {
  .lb-shuttle-card {
    min-height: 164px;
  }
  .lb-shuttle-copy {
    padding: 16px 92px 56px 14px;
  }
  .lb-shuttle-copy h2 {
    font-size: clamp(32px, 8.2vw, 38px);
  }
  .lb-shuttle-copy p {
    max-width: 250px;
    font-size: 10.8px;
  }
  .lb-shuttle-strip {
    left: 10px;
    right: 10px;
    width: auto;
    bottom: 11px;
    grid-template-columns: minmax(0, 1.25fr) minmax(112px, .75fr) 40px;
  }
  .lb-shuttle-strip > span:first-child {
    display: inline-flex;
  }
  .lb-shuttle-strip > span:nth-of-type(2) {
    font-size: 9.6px;
  }
}
@media (max-width: 380px) {
  .lb-shuttle-copy {
    padding-right: 72px;
  }
  .lb-shuttle-copy p {
    max-width: 218px;
  }
  .lb-shuttle-strip {
    grid-template-columns: minmax(0, 1fr) 38px;
  }
  .lb-shuttle-strip > span:nth-of-type(2) {
    display: none;
  }
}

@media (max-width: 759px) {
  .lb-shuttle-panel {
    border-radius: 28px;
  }
  .lb-shuttle-panel-hero {
    min-height: 226px;
    padding: 30px 26px 22px;
  }
  .lb-shuttle-panel-hero h3 {
    max-width: 12ch;
    font-size: clamp(36px, 10vw, 48px);
  }
  .lb-shuttle-panel-hero p {
    font-size: 13.5px;
    line-height: 1.34;
  }
  .lb-shuttle-hero-ticket {
    min-height: 58px;
    border-radius: 18px;
    padding: 8px 10px;
  }
  .lb-shuttle-hero-ticket b {
    font-size: 20px;
  }
  .lb-shuttle-panel-body {
    padding: 14px 14px 0;
    gap: 10px;
  }
  .lb-shuttle-info {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lb-shuttle-info div {
    min-height: 74px;
    border-radius: 17px;
    padding: 10px;
  }
  .lb-shuttle-info b {
    font-size: 16px;
  }
  .lb-shuttle-route-card {
    min-height: 86px;
    border-radius: 19px;
    grid-template-columns: 42px 1fr;
    padding: 12px;
  }
  .lb-shuttle-route-icon {
    width: 42px;
    height: 42px;
    border-radius: 15px;
  }
  .lb-shuttle-form {
    grid-template-columns: 1fr;
    padding: 14px;
  }
}
@media (max-width: 380px) {
  .lb-shuttle-panel-hero {
    padding-inline: 22px;
  }
  .lb-shuttle-info {
    grid-template-columns: 1fr;
  }
}

/* Premium Concierge experience */
.lb-concierge-card {
  position: relative;
  grid-column: 1 / -1;
  min-height: 242px;
  border-radius: 26px;
  overflow: hidden;
  isolation: isolate;
  cursor: pointer;
  background: #071421;
  box-shadow:
    0 26px 64px rgba(0,0,0,.44),
    0 0 0 1px rgba(232,197,114,.28),
    inset 0 1px 0 rgba(255,255,255,.14);
  opacity: 0;
  transform: translateY(22px) scale(.95) rotateX(8deg);
  transform-style: preserve-3d;
  perspective: 900px;
}
body.lb-app-ready .lb-concierge-card {
  animation: conciergeCardIn .86s var(--ease-luxury) .22s both;
}
.lb-concierge-card::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 8;
  pointer-events: none;
  border-radius: inherit;
  border: 1px solid rgba(232,197,114,.34);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.20),
    inset 0 -46px 70px rgba(2,8,15,.44),
    inset 0 0 0 1px rgba(255,255,255,.06);
}
.lb-concierge-card-bg,
.lb-concierge-card-sheen,
.lb-concierge-live,
.lb-concierge-card-glass,
.lb-concierge-card-deck,
.lb-concierge-route,
.lb-concierge-card-copy,
.lb-concierge-card-strip {
  position: absolute;
}
.lb-concierge-card-bg {
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(circle at 84% 17%, rgba(232,197,114,.24), transparent 24%),
    linear-gradient(96deg, rgba(4,12,22,.94) 0%, rgba(4,12,22,.74) 37%, rgba(4,12,22,.10) 100%),
    linear-gradient(180deg, rgba(255,255,255,.12), transparent 43%, rgba(2,8,15,.60) 100%),
    url('assets/concierge/concierge-service.jpg') center 48%/cover;
  filter: saturate(1.12) contrast(1.02) brightness(.96);
  transform: scale(1.04);
  animation: conciergeBgDrift 16s ease-in-out infinite alternate;
}
.lb-concierge-card-sheen {
  inset: -35% -55%;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(112deg, transparent 38%, rgba(255,255,255,.20) 49%, transparent 60%);
  transform: translateX(-36%) rotate(8deg);
  animation: conciergeSheen 6.8s ease-in-out infinite;
  opacity: .72;
}
.lb-concierge-live {
  z-index: 4;
  top: 13px;
  right: 13px;
  width: 124px;
  min-height: 38px;
  padding: 0 10px;
  border-radius: 999px;
  display: grid;
  grid-template-columns: 11px auto 1fr;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,.92);
  background: rgba(4,13,24,.48);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 10px 26px rgba(0,0,0,.22);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.lb-concierge-live span {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: #46f28a;
  box-shadow: 0 0 0 0 rgba(70,242,138,.42);
  animation: conciergePulse 1.7s ease-out infinite;
}
.lb-concierge-live b {
  font-size: 11px;
  line-height: 1;
}
.lb-concierge-live small {
  min-width: 0;
  color: rgba(255,255,255,.68);
  font-size: 8px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-concierge-card-glass {
  z-index: 4;
  right: 13px;
  top: 58px;
  width: 124px;
  height: 52px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.18);
  background:
    linear-gradient(145deg, rgba(255,255,255,.18), rgba(255,255,255,.045)),
    rgba(9,26,40,.24);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    0 16px 42px rgba(0,0,0,.22);
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  padding: 8px;
  backdrop-filter: blur(10px) saturate(1.08);
  -webkit-backdrop-filter: blur(10px) saturate(1.08);
}
.lb-concierge-card-glass i {
  width: 34px;
  height: 34px;
  border-radius: 13px;
  display: grid;
  place-items: center;
  color: #10243a;
  background: linear-gradient(145deg, #f8df95, #b98a39);
  box-shadow: 0 14px 28px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.48);
}
.lb-concierge-card-glass small {
  color: rgba(255,255,255,.86);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .10em;
  text-transform: uppercase;
  line-height: 1.12;
}
.lb-concierge-card-deck {
  z-index: 3;
  right: 14px;
  top: 112px;
  width: 154px;
  height: 94px;
  transform: translateZ(44px);
  pointer-events: none;
}
.lb-concierge-deck-card {
  position: absolute;
  top: calc(var(--i) * 24px);
  right: calc(var(--i) * 4px);
  z-index: calc(8 - var(--i));
  width: 142px;
  height: 43px;
  border-radius: 16px;
  padding: 0 9px;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  color: #fff;
  background-image:
    linear-gradient(90deg, rgba(4,13,24,.78), rgba(4,13,24,.46)),
    var(--service-bg);
  background-size: cover;
  background-position: center;
  border: 1px solid rgba(255,255,255,.17);
  box-shadow:
    0 12px 28px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.13);
  transform: translate3d(0, 0, 0) rotate(calc((var(--i) - 1.5) * -1.4deg));
  animation: conciergeDeckFloat 5.6s ease-in-out infinite;
  animation-delay: calc(var(--i) * -.7s);
}
.lb-concierge-deck-card i {
  width: 30px;
  height: 30px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: #10243a;
  background: linear-gradient(145deg, #f8df95, #b98a39);
}
.lb-concierge-deck-card span {
  min-width: 0;
  color: rgba(255,255,255,.94);
  font-size: 10px;
  font-weight: 950;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-concierge-route {
  z-index: 3;
  left: 18px;
  right: 178px;
  bottom: 63px;
  height: 22px;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 8px;
  color: #f5d98a;
  opacity: .92;
  transform: translateZ(38px);
}
.lb-concierge-route span {
  position: relative;
  height: 1px;
  overflow: hidden;
  background: linear-gradient(90deg, rgba(245,217,138,.18), rgba(245,217,138,.82), rgba(245,217,138,.18));
}
.lb-concierge-route span::after {
  content: '';
  position: absolute;
  inset: -2px auto -2px 0;
  width: 34%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.92), transparent);
  animation: conciergeRouteMove 2.4s ease-in-out infinite;
}
.lb-concierge-route i {
  width: 20px;
  height: 20px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(4,13,24,.52);
  border: 1px solid rgba(245,217,138,.28);
  font-size: 9px;
}
.lb-concierge-card-copy {
  z-index: 3;
  left: 18px;
  right: 172px;
  top: 18px;
  display: grid;
  gap: 6px;
  transform: translateZ(42px);
}
.lb-concierge-card-copy span {
  width: max-content;
  max-width: 100%;
  min-height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  color: #f5d98a;
  background: rgba(3,11,20,.42);
  border: 1px solid rgba(232,197,114,.28);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .21em;
  text-transform: uppercase;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
}
.lb-concierge-card-copy h2 {
  max-width: 9ch;
  font-family: var(--font-display);
  color: #fff;
  font-size: clamp(38px, 9.4vw, 54px);
  line-height: .90;
  letter-spacing: 0;
  text-shadow: 0 10px 30px rgba(0,0,0,.54);
}
.lb-concierge-card-copy p {
  max-width: 254px;
  color: rgba(255,255,255,.90);
  font-size: 11.6px;
  font-weight: 760;
  line-height: 1.36;
  text-shadow: 0 4px 16px rgba(0,0,0,.58);
}
.lb-concierge-card-strip {
  z-index: 7;
  left: 10px;
  right: 10px;
  bottom: 12px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) 42px;
  gap: 7px;
  transform: translateZ(56px);
}
.lb-concierge-chip,
.lb-concierge-card-cta {
  min-width: 0;
  height: 36px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.17);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 8px 22px rgba(0,0,0,.18);
}
.lb-concierge-chip {
  padding: 0 8px;
  color: rgba(255,255,255,.92);
  background: rgba(4,13,24,.58);
  font-size: 9.5px;
  font-weight: 930;
  cursor: pointer;
}
.lb-concierge-chip i {
  flex: 0 0 auto;
  color: #f5d98a;
  font-size: 10px;
}
.lb-concierge-chip span {
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lb-concierge-chip:active,
.lb-concierge-card-cta:active {
  transform: scale(.975);
}
.lb-concierge-card-cta {
  padding: 0;
  background:
    linear-gradient(145deg, #f8df95, #b98a39);
  color: #10243a;
  cursor: pointer;
  animation: conciergeArrowPulse 2.2s ease-in-out infinite;
}
.lb-concierge-modal {
  position: fixed;
  inset: 0;
  z-index: 1345;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(14px + var(--safe-top)) 12px calc(14px + var(--safe-bot));
  background: rgba(2,10,18,.68);
  opacity: 0;
  pointer-events: none;
  transition: opacity .28s ease;
  overflow: hidden;
}
.lb-concierge-modal.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.lb-concierge-modal.is-leaving {
  opacity: 0;
}
.lb-concierge-modal-bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(120deg, rgba(2,10,18,.94), rgba(5,25,40,.74)),
    url('assets/concierge/yacht-my004.jpg') center/cover;
  filter: blur(22px) saturate(1.12) brightness(.74);
  transform: scale(1.14);
}
.lb-concierge-panel {
  position: relative;
  z-index: 2;
  width: min(920px, 100%);
  max-height: calc(100vh - 32px - var(--safe-top) - var(--safe-bot));
  overflow: hidden auto;
  border-radius: 32px;
  border: 1px solid rgba(232,197,114,.28);
  background:
    linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.045)),
    rgba(5,18,31,.90);
  box-shadow:
    0 38px 120px rgba(0,0,0,.64),
    0 0 0 1px rgba(255,255,255,.06) inset,
    inset 0 1px 0 rgba(255,255,255,.18);
  backdrop-filter: blur(28px) saturate(1.18);
  -webkit-backdrop-filter: blur(28px) saturate(1.18);
  transform: translateY(30px) scale(.965);
  transition: transform .52s cubic-bezier(.16, 1, .3, 1);
}
.lb-concierge-modal.is-visible .lb-concierge-panel {
  transform: translateY(0) scale(1);
}
.lb-concierge-close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 6;
  width: 44px;
  height: 44px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.22);
  background: rgba(5,15,28,.66);
  color: #fff;
  display: grid;
  place-items: center;
  cursor: pointer;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.lb-concierge-hero {
  position: relative;
  min-height: 332px;
  padding: 34px 28px 24px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 14px;
  overflow: hidden;
  isolation: isolate;
}
.lb-concierge-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(92deg, rgba(3,11,21,.92), rgba(3,11,21,.62) 48%, rgba(3,11,21,.16)),
    linear-gradient(180deg, rgba(3,11,21,.02), rgba(3,11,21,.90));
  pointer-events: none;
}
.lb-concierge-hero-media {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url('assets/concierge/yacht-my004.jpg') center 48%/cover;
  filter: saturate(1.12) contrast(1.02) brightness(.96);
}
.lb-concierge-hero-copy {
  position: relative;
  z-index: 3;
  width: min(100%, 565px);
  display: grid;
  gap: 9px;
}
.lb-concierge-hero-copy span,
.lb-concierge-block-head span,
.lb-concierge-service-body > span:not(.lb-concierge-service-action),
.lb-concierge-mini span,
.lb-concierge-yacht span,
.lb-concierge-shuttle span {
  color: var(--gold-soft);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.lb-concierge-hero-copy h3 {
  max-width: 14ch;
  font-family: var(--font-display);
  color: #fff;
  font-size: clamp(42px, 6vw, 60px);
  line-height: .94;
  letter-spacing: 0;
  text-shadow: 0 12px 34px rgba(0,0,0,.58);
}
.lb-concierge-hero-copy p {
  max-width: 540px;
  color: rgba(255,255,255,.88);
  font-weight: 760;
  line-height: 1.45;
}
.lb-concierge-stats {
  position: relative;
  z-index: 3;
  width: min(100%, 720px);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.lb-concierge-stats span {
  min-width: 0;
  min-height: 42px;
  padding: 0 10px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255,255,255,.88);
  background: rgba(4,13,24,.54);
  border: 1px solid rgba(255,255,255,.13);
  font-size: 10px;
  font-weight: 900;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lb-concierge-stats i {
  color: #f5d98a;
  flex: 0 0 auto;
}
.lb-concierge-body {
  display: grid;
  gap: 16px;
  padding: 18px;
}
.lb-concierge-overview {
  display: grid;
  gap: 16px;
}
.lb-concierge-overview[hidden],
.lb-concierge-detail-view[hidden] {
  display: none !important;
}
.lb-concierge-block,
.lb-concierge-split,
.lb-concierge-plan {
  display: grid;
  gap: 12px;
}
.lb-concierge-block-head {
  display: grid;
  gap: 5px;
  padding: 0 2px;
}
.lb-concierge-block-head p {
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 13px;
  line-height: 1.46;
}
.lb-concierge-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.lb-concierge-service {
  min-width: 0;
  position: relative;
  display: grid;
  grid-template-columns: 154px minmax(0, 1fr);
  min-height: 166px;
  border-radius: 24px;
  overflow: hidden;
  background:
    linear-gradient(145deg, rgba(255,255,255,.105), rgba(255,255,255,.032)),
    rgba(5,16,29,.68);
  border: 1px solid rgba(232,197,114,.18);
  box-shadow:
    0 18px 44px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.12);
  cursor: pointer;
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}
.lb-concierge-service:hover,
.lb-concierge-service:focus-visible {
  transform: translateY(-3px);
  border-color: rgba(248,223,149,.42);
  box-shadow:
    0 24px 56px rgba(0,0,0,.32),
    0 0 0 1px rgba(248,223,149,.18) inset;
  outline: none;
}
.lb-concierge-service-img {
  position: relative;
  min-height: 0;
  height: 100%;
  background-size: cover;
  background-position: center 54%;
  filter: saturate(1.02) contrast(1.04) brightness(.96);
  transform: scale(1.01);
}
.lb-concierge-service-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(4,13,24,.02) 0%, rgba(4,13,24,.18) 48%, rgba(4,13,24,.88) 100%),
    linear-gradient(115deg, rgba(255,255,255,.12), transparent 34%, rgba(232,197,114,.12) 100%);
  pointer-events: none;
}
.lb-concierge-service-body {
  position: relative;
  min-height: 0;
  padding: 15px;
  display: grid;
  align-content: start;
  gap: 8px;
}
.lb-concierge-service-icon {
  width: 42px;
  height: 42px;
  margin-top: 0;
  border-radius: 16px;
  display: grid;
  place-items: center;
  color: #10243a;
  background: linear-gradient(145deg, #f8df95, #b98a39);
  border: 1px solid rgba(255,255,255,.30);
  box-shadow: 0 16px 34px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.50);
}
.lb-concierge-service h4 {
  color: #fff;
  font-size: 18px;
  line-height: 1.08;
  text-shadow: 0 8px 24px rgba(0,0,0,.36);
}
.lb-concierge-service p {
  color: rgba(255,255,255,.74);
  font-size: 12px;
  line-height: 1.38;
}
.lb-concierge-service-action,
.lb-concierge-main-cta,
.lb-concierge-shuttle button {
  min-height: 42px;
  border: 1px solid rgba(255,255,255,.30);
  border-radius: 999px;
  background: linear-gradient(145deg, #f8df95, #b98a39);
  color: #10243a;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 14px;
  font-size: 11px;
  font-weight: 950;
  cursor: pointer;
  box-shadow:
    0 14px 32px rgba(232,197,114,.28),
    inset 0 1px 0 rgba(255,255,255,.52);
}
.lb-concierge-service-action {
  margin-top: auto;
  color: #10243a;
  font-size: 11px;
  font-weight: 950;
  letter-spacing: 0;
  text-transform: none;
}
.lb-concierge-mini-grid,
.lb-concierge-yacht-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.lb-concierge-yacht-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.lb-concierge-mini,
.lb-concierge-yacht {
  min-width: 0;
  border-radius: 22px;
  overflow: hidden;
  background:
    linear-gradient(145deg, rgba(255,255,255,.09), rgba(255,255,255,.035)),
    rgba(4,13,24,.36);
  border: 1px solid rgba(232,197,114,.15);
  box-shadow: 0 14px 34px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.10);
}
.lb-concierge-mini img,
.lb-concierge-yacht img {
  width: 100%;
  height: 136px;
  display: block;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.02) contrast(1.03) brightness(.96);
  background: rgba(255,255,255,.06);
}
.lb-concierge-mini div,
.lb-concierge-yacht div {
  padding: 12px;
  display: grid;
  gap: 5px;
}
.lb-concierge-mini strong,
.lb-concierge-yacht strong {
  color: #fff;
  font-size: 15px;
  line-height: 1.16;
}
.lb-concierge-mini p,
.lb-concierge-yacht p {
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 12px;
  line-height: 1.36;
}
.lb-concierge-main-cta {
  width: max-content;
  min-width: 190px;
  justify-self: start;
}
.lb-concierge-shuttle {
  min-height: 138px;
  border-radius: 24px;
  padding: 16px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 12px;
  overflow: hidden;
  position: relative;
  background:
    linear-gradient(92deg, rgba(4,12,22,.86), rgba(4,12,22,.56) 48%, rgba(4,12,22,.12)),
    url('assets/bodrum-kalesi.webp') center 44%/cover;
  border: 1px solid rgba(232,197,114,.24);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
.lb-concierge-shuttle > div,
.lb-concierge-shuttle button {
  position: relative;
  z-index: 2;
}
.lb-concierge-shuttle strong {
  display: block;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(32px, 6vw, 48px);
  line-height: .95;
  letter-spacing: 0;
  text-shadow: 0 10px 28px rgba(0,0,0,.54);
}
.lb-concierge-shuttle p {
  max-width: 460px;
  margin: 5px 0 0;
  color: rgba(255,255,255,.82);
  font-size: 12.5px;
  line-height: 1.4;
}
.lb-concierge-plan {
  border-radius: 22px;
  padding: 14px;
  background: rgba(4,13,24,.34);
  border: 1px solid rgba(255,255,255,.10);
}
.lb-concierge-plan-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.lb-concierge-plan-steps span {
  min-height: 54px;
  border-radius: 16px;
  padding: 8px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: rgba(255,255,255,.80);
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.09);
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
}
.lb-concierge-plan-steps b {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: #10243a;
  background: linear-gradient(145deg, #f8df95, #b98a39);
}
.lb-concierge-detail-view {
  display: grid;
  gap: 14px;
}
.lb-concierge-detail-back {
  justify-self: start;
  min-height: 42px;
  border: 1px solid rgba(232,197,114,.24);
  border-radius: 999px;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: rgba(255,255,255,.92);
  background: rgba(232,197,114,.08);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .04em;
  cursor: pointer;
  transition: transform .25s var(--ease-luxury), background .25s var(--ease-luxury), border-color .25s var(--ease-luxury);
}
.lb-concierge-detail-back:active {
  transform: scale(.97);
  background: rgba(232,197,114,.16);
  border-color: rgba(232,197,114,.42);
}
.lb-concierge-detail-back i {
  color: var(--gold-light);
}
.lb-concierge-detail-hero {
  position: relative;
  border-radius: 28px;
  overflow: hidden;
  display: grid;
  grid-template-rows: clamp(180px, 32vw, 240px) auto auto;
  gap: 14px;
  padding: 0 22px 22px;
  background:
    linear-gradient(180deg, rgba(3,11,21,0) 0%, rgba(3,11,21,.20) 38%, rgba(3,11,21,.82) 64%, rgba(7,24,39,.96) 100%),
    var(--service-image, linear-gradient(135deg, var(--navy), var(--navy-darker))) center 32%/cover;
  background-color: rgba(7,24,39,.78);
  border: 1px solid rgba(232,197,114,.28);
  box-shadow:
    0 24px 60px rgba(0,0,0,.42),
    0 0 0 1px rgba(232,197,114,.08) inset,
    inset 0 1px 0 rgba(255,255,255,.14);
  isolation: isolate;
}
.lb-concierge-detail-shade {
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(circle at 78% 14%, rgba(248,223,149,.18), transparent 38%),
    radial-gradient(circle at 12% 86%, rgba(53,198,211,.12), transparent 42%);
  pointer-events: none;
}
.lb-concierge-detail-copy,
.lb-concierge-detail-cta {
  position: relative;
  z-index: 2;
}
.lb-concierge-detail-copy {
  grid-row: 2;
  max-width: 100%;
  display: grid;
  gap: 8px;
  padding-top: 2px;
}
.lb-concierge-detail-copy span,
.lb-concierge-detail-grid span,
.lb-concierge-required span {
  color: var(--gold-soft);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.lb-concierge-detail-copy h3 {
  max-width: 18ch;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(28px, 4.8vw, 44px);
  line-height: 1;
  letter-spacing: 0;
  text-shadow: 0 8px 24px rgba(0,0,0,.7);
}
.lb-concierge-detail-copy p {
  max-width: 560px;
  margin: 0;
  color: rgba(255,255,255,.86);
  font-size: 13.5px;
  font-weight: 760;
  line-height: 1.5;
}
.lb-concierge-detail-cta {
  grid-row: 3;
  width: 100%;
  min-height: 54px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 16px;
  padding: 0 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #10243a;
  background: linear-gradient(135deg, var(--gold-soft) 0%, var(--gold) 50%, var(--gold-deep) 100%);
  font-size: 13.5px;
  font-weight: 950;
  letter-spacing: .02em;
  cursor: pointer;
  box-shadow:
    0 14px 38px rgba(232,197,114,.42),
    0 0 0 1px rgba(255,255,255,.14) inset,
    inset 0 1px 0 rgba(255,255,255,.55);
  transition: transform .25s var(--ease-luxury), box-shadow .25s var(--ease-luxury);
}
.lb-concierge-detail-cta:active {
  transform: scale(.98);
  box-shadow:
    0 8px 22px rgba(232,197,114,.32),
    0 0 0 1px rgba(255,255,255,.14) inset,
    inset 0 1px 0 rgba(255,255,255,.55);
}
.lb-concierge-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.lb-concierge-detail-grid article,
.lb-concierge-required {
  position: relative;
  min-width: 0;
  border-radius: 22px;
  padding: 18px 16px 16px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.10), rgba(255,255,255,.035)),
    rgba(4,13,24,.48);
  border: 1px solid rgba(232,197,114,.18);
  box-shadow:
    0 12px 28px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.10);
  overflow: hidden;
}
.lb-concierge-detail-grid article::before,
.lb-concierge-required::before {
  content: '';
  position: absolute;
  top: 0; left: 14px; right: 14px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(232,197,114,.42), transparent);
}
.lb-concierge-detail-grid article {
  display: grid;
  gap: 10px;
}
.lb-concierge-detail-grid p {
  margin: 0;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: rgba(255,255,255,.78);
  font-size: 12.5px;
  font-weight: 760;
  line-height: 1.35;
}
.lb-concierge-detail-grid i {
  color: #f5d98a;
  margin-top: 2px;
}
.lb-concierge-required {
  display: grid;
  gap: 12px;
}
.lb-concierge-required strong {
  display: block;
  margin-top: 5px;
  color: #fff;
  font-size: 17px;
  line-height: 1.2;
}
.lb-concierge-required-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.lb-concierge-required-list b {
  min-height: 34px;
  border-radius: 999px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  color: rgba(255,255,255,.88);
  background: linear-gradient(145deg, rgba(232,197,114,.12), rgba(232,197,114,.04));
  border: 1px solid rgba(232,197,114,.22);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
@media (min-width: 760px) {
  .lb-concierge-card {
    min-height: 274px;
  }
  .lb-concierge-card-copy {
    left: 30px;
    top: 28px;
    right: 380px;
  }
  .lb-concierge-card-copy h2 {
    max-width: none;
    font-size: clamp(54px, 5vw, 72px);
  }
  .lb-concierge-card-copy p {
    max-width: 470px;
    font-size: 14px;
  }
  .lb-concierge-live {
    right: 30px;
    top: 22px;
  }
  .lb-concierge-card-glass {
    right: 30px;
    top: 72px;
    width: 150px;
  }
  .lb-concierge-card-deck {
    right: 30px;
    top: 132px;
    width: 230px;
  }
  .lb-concierge-deck-card {
    width: 210px;
    height: 48px;
  }
  .lb-concierge-route {
    left: 30px;
    right: 390px;
    bottom: 76px;
  }
  .lb-concierge-card-strip {
    left: 30px;
    right: 30px;
    bottom: 20px;
    grid-template-columns: repeat(3, minmax(0, 170px)) 48px;
  }
}
@media (max-width: 759px) {
  .lb-concierge-card {
    min-height: 244px;
  }
  .lb-concierge-card-copy {
    left: 14px;
    right: 160px;
    top: 16px;
  }
  .lb-concierge-card-copy h2 {
    font-size: clamp(35px, 9vw, 43px);
  }
  .lb-concierge-card-copy p {
    max-width: 236px;
    font-size: 10.8px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .lb-concierge-card-glass {
    right: 86px;
    top: 58px;
    width: 116px;
    height: 50px;
  }
  .lb-concierge-live {
    right: 86px;
    top: 13px;
    width: 78px;
    grid-template-columns: 11px auto;
  }
  .lb-concierge-live small {
    display: none;
  }
  .lb-concierge-card-deck {
    right: 86px;
    top: 115px;
    width: 132px;
  }
  .lb-concierge-deck-card {
    width: 124px;
    height: 42px;
  }
  .lb-concierge-route {
    left: 15px;
    right: 172px;
    bottom: 62px;
  }
  .lb-concierge-card-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr)) 42px;
  }
  .lb-concierge-chip {
    font-size: 8.7px;
    gap: 4px;
    padding: 0 6px;
  }
  .lb-concierge-panel {
    border-radius: 28px;
  }
  .lb-concierge-hero {
    min-height: 304px;
    padding: 28px 20px 18px;
  }
  .lb-concierge-hero-copy h3 {
    max-width: 11ch;
    font-size: clamp(36px, 10vw, 48px);
  }
  .lb-concierge-hero-copy p {
    max-width: 300px;
    font-size: 13px;
    line-height: 1.36;
  }
  .lb-concierge-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lb-concierge-body {
    padding: 14px;
    gap: 14px;
  }
  .lb-concierge-service-grid,
  .lb-concierge-mini-grid,
  .lb-concierge-yacht-grid,
  .lb-concierge-plan-steps {
    grid-template-columns: 1fr;
  }
  .lb-concierge-service-grid,
  .lb-concierge-mini-grid,
  .lb-concierge-yacht-grid {
    gap: 14px;
  }
  .lb-concierge-service {
    grid-template-columns: 1fr;
    grid-template-rows: 154px auto;
    min-height: 0;
    border-radius: 24px;
  }
  .lb-concierge-service-img {
    height: 154px;
    min-height: 0;
    background-position: center 55%;
  }
  .lb-concierge-service-body {
    min-height: 0;
    padding: 0 14px 15px;
    gap: 7px;
  }
  .lb-concierge-service-icon {
    width: 46px;
    height: 46px;
    margin-top: -23px;
    border-radius: 17px;
  }
  .lb-concierge-service h4 {
    font-size: 18px;
  }
  .lb-concierge-service p {
    font-size: 12px;
    line-height: 1.4;
  }
  .lb-concierge-service-action {
    width: 100%;
    min-height: 44px;
    margin-top: 4px;
  }
  .lb-concierge-mini,
  .lb-concierge-yacht {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: 150px auto;
    border-radius: 22px;
  }
  .lb-concierge-mini img,
  .lb-concierge-yacht img {
    height: 150px;
    min-height: 0;
  }
  .lb-concierge-mini div,
  .lb-concierge-yacht div {
    padding: 14px;
  }
  .lb-concierge-shuttle {
    grid-template-columns: 1fr;
    align-items: start;
  }
  .lb-concierge-main-cta,
  .lb-concierge-shuttle button {
    width: 100%;
  }
  .lb-concierge-detail-hero {
    min-height: 268px;
    padding: 18px;
    border-radius: 24px;
    background:
      linear-gradient(180deg, rgba(3,11,21,.18), rgba(3,11,21,.92)),
      linear-gradient(98deg, rgba(3,11,21,.84), rgba(3,11,21,.32)),
      var(--service-image) center/cover;
  }
  .lb-concierge-detail-copy h3 {
    max-width: 12ch;
    font-size: clamp(32px, 9vw, 42px);
  }
  .lb-concierge-detail-copy p {
    font-size: 12.5px;
    line-height: 1.38;
  }
  .lb-concierge-detail-cta,
  .lb-concierge-detail-back {
    width: 100%;
  }
  .lb-concierge-detail-grid {
    grid-template-columns: 1fr;
  }
  .lb-concierge-required-list b {
    width: 100%;
  }
}
@media (max-width: 380px) {
  .lb-concierge-card-copy {
    right: 126px;
  }
  .lb-concierge-card-copy p {
    max-width: 196px;
  }
  .lb-concierge-live {
    width: 72px;
    right: 64px;
  }
  .lb-concierge-card-glass {
    width: 108px;
    right: 64px;
  }
  .lb-concierge-card-deck {
    width: 118px;
    right: 64px;
  }
  .lb-concierge-deck-card {
    width: 110px;
  }
  .lb-concierge-deck-card:nth-child(4) {
    display: none;
  }
  .lb-concierge-route {
    right: 138px;
  }
  .lb-concierge-card-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) 42px;
  }
  .lb-concierge-chip:nth-child(3) {
    display: none;
  }
  .lb-concierge-service,
  .lb-concierge-mini,
  .lb-concierge-yacht {
    grid-template-columns: 1fr;
  }
  .lb-concierge-service {
    grid-template-rows: 142px auto;
  }
  .lb-concierge-service-img {
    height: 142px;
    min-height: 0;
  }
  .lb-concierge-mini,
  .lb-concierge-yacht {
    grid-template-rows: 136px auto;
  }
  .lb-concierge-mini img,
  .lb-concierge-yacht img {
    height: 136px;
    min-height: 0;
  }
}

/* Concierge card: weather-card style with a calm service slider */
.lb-concierge-card {
  min-height: 206px;
  border-radius: 24px;
  background: var(--navy-mid);
  box-shadow:
    0 18px 42px rgba(0,0,0,.32),
    0 0 0 1px rgba(255,255,255,.045);
  perspective: 900px;
}
.lb-concierge-card::after {
  z-index: 7;
  border-color: rgba(231,196,111,.24);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -28px 48px rgba(2,8,16,.34);
}
.lb-concierge-card-bg {
  background-image: url('assets/concierge/concierge-service.jpg');
  background-size: cover;
  background-position: center 50%;
  filter: saturate(1.08) brightness(.96);
  transform: translateZ(-24px) scale(1.055);
  transform-origin: center 52%;
  animation: conciergePhotoBreath 18s cubic-bezier(.22, .61, .36, 1) 1s infinite alternate;
}
.lb-concierge-card-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 18% 82%, rgba(53,198,211,.10), transparent 36%),
    radial-gradient(circle at 78% 12%, rgba(231,196,111,.14), transparent 32%),
    linear-gradient(180deg, rgba(4,13,23,.06) 0%, rgba(4,13,23,.24) 46%, rgba(4,13,23,.78) 100%),
    linear-gradient(90deg, rgba(4,13,23,.78) 0%, rgba(4,13,23,.42) 48%, rgba(4,13,23,.14) 100%);
}
.lb-concierge-card-shade::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, rgba(255,255,255,.08) 0%, transparent 25%, transparent 72%, rgba(231,196,111,.08) 100%);
  mix-blend-mode: screen;
  opacity: .48;
  pointer-events: none;
}
.lb-concierge-card-sheen,
.lb-concierge-live,
.lb-concierge-card-glass,
.lb-concierge-card-deck,
.lb-concierge-route,
.lb-concierge-pill,
.lb-concierge-slider {
  display: none;
}
.lb-concierge-card-copy {
  z-index: 3;
  left: 18px;
  right: 18px;
  top: 17px;
  display: grid;
  gap: 5px;
  transform: translateZ(28px);
}
.lb-concierge-card-copy span {
  display: block;
  width: fit-content;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  color: var(--gold-light);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .25em;
  text-shadow: 0 2px 7px rgba(0,0,0,.55);
  background: transparent;
}
.lb-concierge-card-copy h2 {
  max-width: 9ch;
  color: var(--white);
  font-family: var(--font-display);
  font-size: clamp(42px, 10vw, 56px);
  line-height: .86;
  letter-spacing: 0;
  text-shadow: 0 8px 28px rgba(0,0,0,.62);
}
.lb-concierge-card-copy p {
  margin-top: 8px;
  max-width: min(100%, 292px);
  color: rgba(255,255,255,.92);
  font-size: 12.4px;
  font-weight: 780;
  line-height: 1.28;
  text-shadow: 0 4px 18px rgba(0,0,0,.66);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.lb-concierge-service-slider {
  position: absolute;
  left: 18px;
  right: 86px;
  bottom: 16px;
  z-index: 4;
  display: grid;
  gap: 6px;
  transform: translateZ(42px);
}
.lb-concierge-service-slider small {
  color: var(--gold-light);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
  text-shadow: 0 3px 12px rgba(0,0,0,.58);
}
.lb-concierge-service-mask {
  position: relative;
  height: 34px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(5,15,28,.58);
  border: 1px solid rgba(255,255,255,.13);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.lb-concierge-service-item {
  position: absolute;
  inset: 0;
  min-width: 0;
  padding: 0 12px;
  display: flex;
  align-items: center;
  opacity: 0;
  transform: translateX(22px);
  animation: conciergeServiceSlide 16s cubic-bezier(.16, 1, .3, 1) infinite;
  animation-delay: calc(var(--i) * 4s);
}
.lb-concierge-service-item b {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255,255,255,.94);
  font-size: 10.8px;
  font-weight: 950;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lb-concierge-service-item i {
  color: var(--gold-light);
  flex: 0 0 auto;
}
.lb-concierge-service-item em {
  display: none;
}
.lb-concierge-slider-dots {
  position: absolute;
  top: 3px;
  right: 0;
  z-index: 5;
  display: flex;
  gap: 4px;
}
.lb-concierge-slider-dots i {
  display: block;
  flex: 0 0 auto;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  font-size: 0;
  background: rgba(255,255,255,.34);
  animation: conciergeDotShow 16s linear infinite;
  animation-delay: calc(var(--i) * 4s);
}
.lb-concierge-card-strip {
  z-index: 5;
  left: auto;
  right: 26px;
  bottom: 16px;
  display: block;
  transform: translateZ(42px);
}
.lb-concierge-card-cta {
  width: 48px;
  height: 48px;
  min-width: 0;
  padding: 0;
  border-radius: 999px;
  color: #10243a;
  background: linear-gradient(145deg, #f8df95, #b98a39);
  border: 1px solid rgba(255,255,255,.26);
  box-shadow:
    0 15px 32px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.48);
  font-size: 14px;
  animation: none;
}
.lb-concierge-card-cta span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
@media (min-width: 760px) {
  .lb-concierge-card {
    min-height: 228px;
  }
  .lb-concierge-card-copy {
    left: 30px;
    top: 28px;
    right: 32px;
  }
  .lb-concierge-card-copy h2 {
    max-width: none;
    font-size: clamp(56px, 4.8vw, 70px);
  }
  .lb-concierge-card-copy p {
    max-width: 480px;
    font-size: 13.2px;
    margin-top: 10px;
  }
  .lb-concierge-service-slider {
    left: 30px;
    right: 110px;
    bottom: 22px;
  }
  .lb-concierge-card-strip {
    right: 36px;
    bottom: 22px;
  }
}
@media (max-width: 759px) {
  .lb-concierge-card {
    min-height: 198px;
  }
  .lb-concierge-card-copy {
    left: 16px;
    right: 16px;
    top: 17px;
  }
  .lb-concierge-card-copy h2 {
    font-size: clamp(39px, 9.6vw, 50px);
  }
  .lb-concierge-card-copy p {
    max-width: 292px;
    font-size: 11.6px;
    margin-top: 9px;
  }
  .lb-concierge-service-slider {
    left: 16px;
    right: 88px;
    bottom: 14px;
  }
  .lb-concierge-card-strip {
    right: 24px;
    bottom: 14px;
  }
  .lb-concierge-card-cta {
    width: 48px;
    height: 48px;
  }
}
@media (max-width: 380px) {
  .lb-concierge-card {
    min-height: 192px;
  }
  .lb-concierge-card-copy h2 {
    font-size: clamp(36px, 9.4vw, 44px);
  }
  .lb-concierge-card-copy p {
    max-width: 242px;
    -webkit-line-clamp: 2;
  }
  .lb-concierge-service-slider small {
    font-size: 8px;
    letter-spacing: .14em;
  }
  .lb-concierge-service-item b {
    font-size: 10px;
  }
}
@keyframes conciergeCardIn {
  0% { opacity: 0; transform: translateY(22px) scale(.95) rotateX(8deg); }
  65% { opacity: 1; transform: translateY(-3px) scale(1.01) rotateX(-1.5deg); }
  100% { opacity: 1; transform: translateY(0) scale(1) rotateX(0deg); }
}
@keyframes conciergeServiceSlide {
  0% { opacity: 0; transform: translateX(24px); }
  5%, 22% { opacity: 1; transform: translateX(0); }
  27%, 100% { opacity: 0; transform: translateX(-22px); }
}
@keyframes conciergeDotShow {
  0%, 4% { background: rgba(255,255,255,.36); transform: scale(1); }
  5%, 22% { background: #f5d98a; transform: scale(1.28); }
  27%, 100% { background: rgba(255,255,255,.36); transform: scale(1); }
}
@keyframes conciergePhotoBreath {
  from { transform: translateZ(-24px) scale(1.055); }
  to { transform: translateZ(-24px) scale(1.09); }
}
@keyframes conciergeBgDrift {
  from { transform: scale(1.04) translate3d(0, 0, 0); }
  to { transform: scale(1.10) translate3d(-1.8%, -1.2%, 0); }
}
@keyframes conciergeSheen {
  0%, 52% { transform: translateX(-42%) rotate(8deg); opacity: 0; }
  62% { opacity: .58; }
  82% { transform: translateX(34%) rotate(8deg); opacity: 0; }
  100% { transform: translateX(34%) rotate(8deg); opacity: 0; }
}
@keyframes conciergePulse {
  0% { box-shadow: 0 0 0 0 rgba(70,242,138,.42); }
  75%, 100% { box-shadow: 0 0 0 9px rgba(70,242,138,0); }
}
@keyframes conciergeDeckFloat {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(calc((var(--i) - 1.5) * -1.4deg)); }
  50% { transform: translate3d(-5px, -4px, 0) rotate(calc((var(--i) - 1.5) * -1.4deg)); }
}
@keyframes conciergeRouteMove {
  from { transform: translateX(-105%); }
  to { transform: translateX(305%); }
}
@keyframes conciergeArrowPulse {
  0%, 100% { box-shadow: 0 10px 26px rgba(232,197,114,.24), inset 0 1px 0 rgba(255,255,255,.42); }
  50% { box-shadow: 0 16px 34px rgba(232,197,114,.42), inset 0 1px 0 rgba(255,255,255,.54); }
}

@keyframes weatherCardIn {
  0% { opacity: 0; transform: translateY(24px) scale(.94) rotateX(10deg); }
  65% { opacity: 1; transform: translateY(-4px) scale(1.015) rotateX(-2deg); }
  100% { opacity: 1; transform: translateY(0) scale(1) rotateX(0deg); }
}
@keyframes weatherBgSlowZoom {
  from { transform: translate3d(0, 0, -24px) scale(1.06); }
  to   { transform: translate3d(0, 0, -24px) scale(1.15); }
}
@media (min-width: 760px) {
  .lb-weather-card {
    min-height: 258px;
    border-radius: 26px;
    box-shadow:
      0 22px 54px rgba(0,0,0,.34),
      0 0 0 1px rgba(231,196,111,.10);
  }
  .lb-weather-card::after {
    border-color: rgba(231,196,111,.30);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.15),
      inset 0 -18px 42px rgba(2,8,16,.22);
  }
  .lb-weather-card-bg {
    background-position: center 45%;
    filter: saturate(1.08) contrast(1.03) brightness(.98);
  }
  .lb-weather-card-shade {
    background:
      radial-gradient(ellipse at 17% 76%, rgba(53,198,211,.12), transparent 42%),
      radial-gradient(ellipse at 76% 18%, rgba(231,196,111,.15), transparent 38%),
      linear-gradient(180deg, rgba(4,13,23,.00) 0%, rgba(4,13,23,.13) 43%, rgba(4,13,23,.62) 100%),
      linear-gradient(90deg, rgba(4,13,23,.72) 0%, rgba(4,13,23,.30) 32%, rgba(4,13,23,.08) 62%, rgba(4,13,23,.36) 100%);
  }
  .lb-weather-card-shade::before {
    opacity: .66;
    background:
      linear-gradient(105deg, rgba(255,255,255,.10) 0%, transparent 25%, transparent 68%, rgba(231,196,111,.10) 100%);
  }
  .lb-weather-card-copy {
    padding: 24px 34px 0;
  }
  .lb-weather-card-copy span {
    font-size: 10.5px;
    letter-spacing: .32em;
  }
  .lb-weather-card .lb-card-weather {
    left: 34px;
    right: 34px;
    bottom: 24px;
  }
  .lb-weather-daily {
    grid-template-columns: minmax(0, 1fr) minmax(170px, auto);
    gap: 10px 28px;
  }
  .lb-weather-main {
    column-gap: 16px;
  }
  .lb-weather-main strong {
    font-size: 86px;
    letter-spacing: .01em;
  }
  .lb-weather-main em {
    font-size: 14px;
    padding-bottom: 9px;
  }
  .lb-weather-range span {
    font-size: 18px;
    min-width: 128px;
    text-align: right;
  }
  .lb-weather-advice {
    width: min(100%, 430px);
    font-size: 14px;
    line-height: 1.34;
  }
  .lb-weather-activity {
    grid-template-columns: minmax(154px, auto) minmax(0, 1fr) auto;
    gap: 14px;
    padding-top: 12px;
    border-top-color: rgba(231,196,111,.30);
  }
  .lb-weather-activity small {
    font-size: 9px;
    letter-spacing: .18em;
  }
  .lb-weather-activity-item b {
    font-size: 14px;
  }
  .lb-weather-activity-item em {
    font-size: 13px;
  }
}
@media (max-width: 390px) {
  .lb-card-weather {
    width: min(100%, 260px);
    padding: 7px;
  }
  .lb-weather-card {
    min-height: 232px;
  }
  .lb-weather-card .lb-card-weather {
    width: auto;
    left: 16px;
    right: 16px;
    bottom: 14px;
  }
  .lb-weather-daily {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 7px 10px;
  }
  .lb-weather-range {
    min-width: 0;
    max-width: none;
  }
  .lb-weather-range span { font-size: 14.5px; }
  .lb-weather-activity {
    grid-template-columns: 1fr auto;
    gap: 7px;
  }
  .lb-weather-activity small {
    grid-column: 1 / -1;
    font-size: 7.9px;
    letter-spacing: .1em;
  }
  .lb-weather-activity-item b {
    font-size: 12.6px;
  }
  .lb-weather-activity-item em {
    font-size: 11.2px;
  }
  .lb-weather-advice {
    font-size: 11.5px;
  }
  .lb-weather-main strong { font-size: 62px; }
  .lb-weather-main em {
    font-size: 11.4px;
    padding-bottom: 5px;
  }
}

/* ════════════════════════════════════════════════════════
   LA BLANCHE'TA BUGÜN — WEATHER CARD INTERACTIVE HUB
════════════════════════════════════════════════════════ */
.lb-weather-card {
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.lb-weather-card:focus-visible {
  outline: 2px solid rgba(244,213,137,.9);
  outline-offset: 3px;
}

/* ════════════════════════════════════════════════════════
   SUNRISE SNACK QR ORDERING
════════════════════════════════════════════════════════ */
.sunrise-order {
  position: relative;
  overflow: hidden;
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(232,197,114,.26);
  background:
    linear-gradient(145deg, rgba(20,61,88,.94), rgba(6,18,32,.98)),
    radial-gradient(circle at 18% 0%, rgba(97,211,222,.18), transparent 34%);
  box-shadow: 0 24px 56px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.08);
}
.sunrise-order.is-room-service {
  border-color: rgba(244,213,137,.34);
  background:
    linear-gradient(145deg, rgba(14,50,72,.96), rgba(5,17,31,.99)),
    radial-gradient(circle at 18% 0%, rgba(244,213,137,.18), transparent 35%),
    radial-gradient(circle at 100% 18%, rgba(74,187,201,.15), transparent 32%);
}
.sunrise-order.is-room-service .sunrise-mark {
  background: linear-gradient(145deg, #f7dc91, #b88533);
}
.sunrise-order::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, rgba(255,255,255,.07), transparent 28%, transparent 72%, rgba(232,197,114,.10));
  pointer-events: none;
}
.sunrise-order > * { position: relative; z-index: 1; }
.sunrise-head {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 14px;
  align-items: start;
  margin-bottom: 16px;
}
.sunrise-mark {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: #fff;
  background: linear-gradient(145deg, rgba(225,190,103,.98), rgba(139,104,40,.95));
  box-shadow: 0 12px 24px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.45);
}
.sunrise-head small,
.sunrise-table-line span,
.sunrise-product small,
.sunrise-note span {
  display: block;
  color: var(--gold-light);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.sunrise-head h3 {
  margin: 2px 0 7px;
  color: #fff;
  font-family: var(--font-serif);
  font-size: clamp(25px, 6vw, 34px);
  line-height: 1.05;
}
.sunrise-head p {
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 13px;
  line-height: 1.55;
}
.sunrise-scan {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.045);
}
.sunrise-primary,
.sunrise-input-row button,
.sunrise-submit {
  min-height: 48px;
  border: 0;
  border-radius: 14px;
  color: #071322;
  background: linear-gradient(145deg, #f6d982, #b98e3f);
  font-weight: 900;
  letter-spacing: .01em;
  box-shadow: 0 14px 26px rgba(179,137,60,.22), inset 0 1px 0 rgba(255,255,255,.52);
}
.sunrise-primary {
  display: inline-flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
}
.sunrise-input-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
}
.sunrise-input-row input,
.sunrise-note textarea {
  width: 100%;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  color: #fff;
  background: rgba(4,12,23,.58);
  outline: none;
}
.sunrise-input-row input {
  min-width: 0;
  height: 48px;
  padding: 0 13px;
}
.sunrise-input-row input::placeholder,
.sunrise-note textarea::placeholder { color: rgba(255,255,255,.40); }
.sunrise-scan small,
.sunrise-status {
  color: rgba(255,255,255,.62);
  font-size: 12px;
  line-height: 1.45;
}
.sunrise-status {
  margin-top: 12px;
  padding: 11px 13px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.055);
}
.sunrise-status.is-good {
  color: #b9f4cf;
  border-color: rgba(82,211,132,.32);
}
.sunrise-status.is-bad {
  color: #ffd0d0;
  border-color: rgba(255,108,108,.32);
}
.sunrise-status.is-warn {
  color: #ffe4a8;
  border-color: rgba(232,197,114,.34);
}
.sunrise-scanner {
  position: fixed;
  inset: 0;
  z-index: 1800;
  overflow: hidden;
  margin: 0;
  border-radius: 0;
  background: #020812;
  border: 0;
  display: block;
}
.sunrise-scanner[hidden] { display: none; }
.sunrise-scanner video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.sunrise-scanner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 50% 48%, transparent 0 32%, rgba(1,9,18,.20) 45%, rgba(1,9,18,.78) 100%),
    linear-gradient(180deg, rgba(2,9,17,.82) 0%, transparent 30%, transparent 68%, rgba(2,9,17,.86) 100%);
  pointer-events: none;
}
.sunrise-scanner-top {
  position: absolute;
  top: max(18px, env(safe-area-inset-top));
  left: 18px;
  right: 18px;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.sunrise-scanner-top span {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 0 16px;
  border-radius: 999px;
  color: #fff;
  background: rgba(6,18,32,.62);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  font-weight: 900;
}
.sunrise-scanner-top button {
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 16px;
  color: #fff;
  background: rgba(6,18,32,.72);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.sunrise-scanner-frame {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  width: min(76vw, 390px);
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border: 2px solid rgba(246,217,130,.95);
  border-radius: 30px;
  box-shadow:
    0 0 0 999px rgba(0,0,0,.26),
    0 20px 80px rgba(0,0,0,.32),
    inset 0 0 0 1px rgba(255,255,255,.18);
}
.sunrise-scanner-frame::before,
.sunrise-scanner-frame::after,
.sunrise-scanner-frame span::before,
.sunrise-scanner-frame span::after {
  content: "";
  position: absolute;
  width: 34px;
  height: 34px;
  border-color: #fff;
  border-style: solid;
}
.sunrise-scanner-frame::before {
  top: 14px;
  left: 14px;
  border-width: 3px 0 0 3px;
  border-radius: 12px 0 0 0;
}
.sunrise-scanner-frame::after {
  top: 14px;
  right: 14px;
  border-width: 3px 3px 0 0;
  border-radius: 0 12px 0 0;
}
.sunrise-scanner-frame span::before {
  bottom: 14px;
  left: 14px;
  border-width: 0 0 3px 3px;
  border-radius: 0 0 0 12px;
}
.sunrise-scanner-frame span::after {
  right: 14px;
  bottom: 14px;
  border-width: 0 3px 3px 0;
  border-radius: 0 0 12px 0;
}
.sunrise-scanner-bottom {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: max(22px, env(safe-area-inset-bottom));
  z-index: 3;
  max-width: 520px;
  margin: 0 auto;
  padding: 14px 18px;
  border-radius: 18px;
  color: rgba(255,255,255,.88);
  background: rgba(6,18,32,.68);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  text-align: center;
  font-size: 14px;
  font-weight: 800;
}
body.sunrise-scanner-open {
  overflow: hidden;
}
.sunrise-menu {
  display: grid;
  gap: 16px;
  margin-top: 16px;
}
.sunrise-order.has-menu .sunrise-head,
.sunrise-order.has-menu .sunrise-scan,
.sunrise-order.is-loading .sunrise-head,
.sunrise-order.is-loading .sunrise-scan {
  display: none;
}
.sunrise-order.has-menu .sunrise-menu,
.sunrise-order.is-loading .sunrise-menu {
  margin-top: 0;
}
.sunrise-loading-card {
  min-height: 330px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  padding: 34px 24px;
  border-radius: 28px;
  color: #fff;
  text-align: center;
  background:
    radial-gradient(circle at 50% 0%, rgba(232,197,114,.22), transparent 34%),
    linear-gradient(145deg, rgba(29,73,99,.86), rgba(6,18,31,.94));
  border: 1px solid rgba(232,197,114,.24);
  box-shadow: 0 24px 60px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.12);
}
.sunrise-loading-orbit {
  position: relative;
  width: 96px;
  height: 96px;
  display: grid;
  place-items: center;
  border-radius: 31px;
  background:
    radial-gradient(circle at 30% 18%, rgba(255,255,255,.32), transparent 35%),
    linear-gradient(145deg, #f4d77f, #a67932);
  box-shadow: 0 18px 38px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.36);
  transform-style: preserve-3d;
  animation: sunriseLoadingFloat 2.6s ease-in-out infinite;
}
.sunrise-loading-orbit span {
  position: absolute;
  inset: -10px;
  border-radius: 34px;
  border: 1px solid rgba(232,197,114,.46);
  border-top-color: rgba(255,255,255,.92);
  animation: sunriseLoadingSpin 1.1s linear infinite;
}
.sunrise-loading-orbit i {
  color: #071322;
  font-size: 34px;
}
.sunrise-loading-card small {
  color: var(--gold-light);
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .22em;
}
.sunrise-loading-card h3 {
  margin: 0;
  font-family: var(--font-serif);
  font-size: clamp(30px, 8vw, 46px);
  line-height: 1;
}
.sunrise-loading-card p {
  max-width: 360px;
  margin: 0;
  color: rgba(255,255,255,.72);
  font-size: 14px;
  line-height: 1.55;
}
.sunrise-loading-steps {
  width: min(260px, 100%);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 8px;
}
.sunrise-loading-steps span {
  height: 4px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  overflow: hidden;
}
.sunrise-loading-steps span::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #f8df8a, #b98939);
  transform: translateX(-105%);
  animation: sunriseLoadingBar 1.4s ease-in-out infinite;
}
.sunrise-loading-steps span:nth-child(2)::after { animation-delay: .16s; }
.sunrise-loading-steps span:nth-child(3)::after { animation-delay: .32s; }
@keyframes sunriseLoadingSpin {
  to { transform: rotate(360deg); }
}
@keyframes sunriseLoadingFloat {
  0%, 100% { transform: translateY(0) rotateX(0deg); }
  50% { transform: translateY(-6px) rotateX(7deg); }
}
@keyframes sunriseLoadingBar {
  0% { transform: translateX(-105%); }
  55%, 100% { transform: translateX(105%); }
}
.sunrise-menu-shell {
  display: grid;
  gap: 12px;
}
.sunrise-session-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.sunrise-session-bar span {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 0 12px;
  border-radius: 999px;
  color: rgba(255,255,255,.86);
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.11);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  font-size: 12px;
  font-weight: 900;
}
.sunrise-session-bar i {
  color: var(--gold-light);
}
.sunrise-root-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.sunrise-root-tabs button {
  min-height: 74px;
  display: grid;
  grid-template-columns: 42px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 20px;
  color: rgba(255,255,255,.70);
  background:
    linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.03));
  text-align: left;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.sunrise-root-tabs button.is-active {
  color: #fff;
  border-color: rgba(232,197,114,.58);
  background:
    radial-gradient(circle at 0% 0%, rgba(232,197,114,.22), transparent 45%),
    linear-gradient(145deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
  box-shadow: 0 16px 34px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.14);
}
.sunrise-root-tabs i {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: #061421;
  background: linear-gradient(145deg, #f4d77f, #ad8238);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 10px 18px rgba(0,0,0,.22);
}
.sunrise-root-tabs span,
.sunrise-tabs span {
  display: block;
  font-weight: 900;
  font-size: 12px;
  line-height: 1.18;
}
.sunrise-root-tabs small,
.sunrise-tabs small {
  display: grid;
  place-items: center;
  min-width: 30px;
  height: 30px;
  border-radius: 999px;
  color: var(--gold-light);
  background: rgba(4,12,23,.36);
  border: 1px solid rgba(232,197,114,.16);
  font-weight: 900;
}
.sunrise-category-stage {
  display: grid;
  gap: 10px;
  padding: 13px;
  border-radius: 22px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.025));
  border: 1px solid rgba(255,255,255,.09);
  overflow: hidden;
}
.sunrise-stage-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}
.sunrise-stage-head small {
  color: var(--gold-light);
  font-size: 9.5px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.sunrise-stage-head h4 {
  margin: 3px 0 0;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 22px;
  line-height: 1.05;
}
.sunrise-stage-head > span {
  min-width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: #071322;
  background: linear-gradient(145deg, #f6d982, #b98e3f);
  font-weight: 950;
}
.sunrise-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  padding: 2px;
}
.sunrise-tabs button {
  min-width: 0;
  display: grid;
  grid-template-columns: 32px 1fr auto;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  padding: 9px 10px;
  color: rgba(255,255,255,.70);
  background: rgba(4,12,23,.24);
  text-align: left;
}
.sunrise-tabs button.is-active {
  color: #fff;
  border-color: rgba(232,197,114,.55);
  background:
    radial-gradient(circle at 0% 0%, rgba(232,197,114,.18), transparent 48%),
    rgba(255,255,255,.07);
}
.sunrise-tabs i {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #061421;
  background: linear-gradient(145deg, #f3d77c, #a57a35);
  font-size: 13px;
}
.sunrise-tabs span {
  min-width: 0;
  white-space: normal;
}
.sunrise-tabs small {
  margin: 0;
}
.sunrise-products {
  display: grid;
  gap: 12px;
}
.sunrise-product {
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 12px 14px;
  align-items: center;
  padding: 12px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.11);
  background:
    linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.03));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.sunrise-product img,
.sunrise-product-glyph {
  width: 62px;
  height: 62px;
  object-fit: cover;
  border-radius: 17px;
}
.sunrise-product-glyph {
  display: grid;
  place-items: center;
  color: #fff;
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.28), transparent 36%),
    linear-gradient(145deg, #d6b359, #8b6c31);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.30), 0 10px 18px rgba(0,0,0,.22);
  font-size: 23px;
}
.sunrise-product h4 {
  margin: 3px 0 4px;
  color: #fff;
  font-size: 16px;
  line-height: 1.2;
}
.sunrise-product-price {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin: 0 0 6px;
  padding: 5px 9px;
  border-radius: 999px;
  color: #071322;
  background: linear-gradient(145deg, #f6d982, #b98e3f);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45);
  font-size: 13px;
  font-weight: 950;
  line-height: 1;
}
.sunrise-product p {
  margin: 0;
  color: rgba(255,255,255,.62);
  font-size: 12px;
  line-height: 1.42;
}
.sunrise-product button {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 0;
  border-radius: 15px;
  color: #071322;
  background: linear-gradient(145deg, #f6d982, #b98e3f);
  font-weight: 900;
}
.sunrise-product button:disabled {
  color: rgba(255,255,255,.48);
  background: rgba(255,255,255,.08);
}
.sunrise-cart {
  display: grid;
  gap: 11px;
  padding: 15px;
  border-radius: 22px;
  border: 1px solid rgba(232,197,114,.34);
  background:
    radial-gradient(circle at 100% 0%, rgba(232,197,114,.16), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.035));
  box-shadow: 0 18px 40px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.10);
}
.sunrise-cart.is-empty p {
  margin: 2px 0 0;
  color: rgba(255,255,255,.58);
}
.sunrise-cart-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}
.sunrise-cart-title strong,
.sunrise-cart.is-empty strong {
  color: #fff;
  font-family: var(--font-serif);
  font-size: 21px;
}
.sunrise-cart-title span {
  color: var(--gold-light);
  font-weight: 900;
}
.sunrise-cart-list {
  display: grid;
  gap: 8px;
}
.sunrise-cart-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: center;
  color: #fff;
  font-weight: 800;
  padding: 9px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.sunrise-cart-item:last-child {
  border-bottom: 0;
}
.sunrise-cart-name {
  display: grid;
  gap: 4px;
}
.sunrise-cart-name small {
  color: var(--gold-light);
  font-size: 12px;
  font-weight: 950;
}
.sunrise-cart-item div {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.sunrise-cart-item button {
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  color: #fff;
  background: rgba(255,255,255,.08);
}
.sunrise-note {
  display: grid;
  gap: 7px;
}
.sunrise-note textarea {
  min-height: 78px;
  padding: 12px;
  resize: vertical;
}
.sunrise-submit.is-armed {
  color: #fff;
  background: linear-gradient(145deg, #d77c4f, #9e4e31);
}
@media (min-width: 760px) {
  .sunrise-order {
    max-width: 980px;
    margin-inline: auto;
    padding: 26px;
  }
  .sunrise-head {
    grid-template-columns: 64px 1fr;
  }
  .sunrise-mark {
    width: 64px;
    height: 64px;
    border-radius: 18px;
  }
  .sunrise-scan {
    grid-template-columns: auto minmax(360px, 1fr);
    align-items: center;
  }
  .sunrise-scan small {
    grid-column: 1 / -1;
  }
  .sunrise-products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sunrise-root-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sunrise-tabs {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sunrise-product {
    grid-template-columns: 76px 1fr auto;
  }
  .sunrise-product img,
  .sunrise-product-glyph {
    width: 76px;
    height: 76px;
  }
  .sunrise-product button {
    grid-column: auto;
    width: auto;
    min-width: 96px;
    align-self: stretch;
  }
}
@media (max-width: 430px) {
  .sunrise-tabs button {
    grid-template-columns: 30px 1fr auto;
    padding: 8px;
  }
  .sunrise-tabs i {
    width: 30px;
    height: 30px;
  }
  .sunrise-product {
    grid-template-columns: 58px 1fr;
  }
  .sunrise-product img,
  .sunrise-product-glyph {
    width: 58px;
    height: 58px;
  }
  .sunrise-product button {
    grid-column: 1 / -1;
    width: 100%;
  }
  .sunrise-input-row {
    grid-template-columns: 1fr;
  }
}
body.today-open { overflow: hidden; }
body.today-tv-mode {
  overflow: hidden;
  background: #020811;
}
body.today-tv-mode .lb-header,
body.today-tv-mode .lb-main,
body.today-tv-mode .lb-drawer,
body.today-tv-mode .lb-drawer-scrim,
body.today-tv-mode .lb-grab-fab,
body.today-tv-mode .lb-room-fab,
body.today-tv-mode .lb-ai-fab,
body.today-tv-mode .lb-back {
  display: none !important;
}
.lb-today-tv {
  position: fixed;
  inset: 0;
  z-index: 5000;
  min-width: 100vw;
  min-height: 100vh;
  overflow: hidden;
  color: #fff;
  background: #020811;
  font-family: var(--font-sans);
  isolation: isolate;
}
.lb-tv-bg,
.lb-tv-bg video,
.lb-tv-bg-fallback,
.lb-tv-shade {
  position: absolute;
  inset: 0;
}
.lb-tv-bg video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(1.08) brightness(.72);
  transform: scale(1.04);
  animation: tvBgDrift 26s ease-in-out infinite alternate;
}
.lb-tv-bg-fallback {
  background-image: url('assets/weather-bodrum.jpg');
  background-size: cover;
  background-position: center;
  filter: saturate(1.06) brightness(.72);
  animation: tvBgDrift 24s ease-in-out infinite alternate;
}
.lb-tv-bg video + .lb-tv-bg-fallback {
  opacity: .28;
}
.lb-tv-shade {
  background:
    radial-gradient(circle at 80% 15%, rgba(231,196,111,.22), transparent 31%),
    radial-gradient(circle at 18% 82%, rgba(53,198,211,.16), transparent 34%),
    linear-gradient(90deg, rgba(2,8,17,.94), rgba(2,8,17,.58) 48%, rgba(2,8,17,.84)),
    linear-gradient(180deg, rgba(2,8,17,.62), rgba(2,8,17,.18) 34%, rgba(2,8,17,.88));
}
.lb-tv-top {
  position: relative;
  z-index: 3;
  height: clamp(92px, 7.5vw, 126px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(22px, 2.6vw, 42px) clamp(42px, 5vw, 84px) 0;
}
.lb-tv-top img {
  width: clamp(116px, 9vw, 180px);
  height: auto;
  filter: drop-shadow(0 14px 28px rgba(0,0,0,.42));
}
.lb-tv-top-side {
  display: flex;
  align-items: center;
  gap: 16px;
}
.lb-tv-lang-switch {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.lb-tv-lang-switch a {
  min-width: clamp(38px, 2.8vw, 54px);
  height: clamp(34px, 2.35vw, 46px);
  display: grid;
  place-items: center;
  border-radius: 999px;
  color: rgba(255,255,255,.70);
  font-size: clamp(13px, .86vw, 17px);
  font-weight: 950;
  text-decoration: none;
}
.lb-tv-lang-switch a.is-active {
  color: #071322;
  background: linear-gradient(145deg, #f5d980, #b98a3b);
  box-shadow: 0 8px 22px rgba(231,196,111,.24), inset 0 1px 0 rgba(255,255,255,.34);
}
.lb-tv-top-pill {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 12px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.13);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.lb-tv-top span {
  color: var(--gold-light);
  font-size: clamp(12px, .9vw, 18px);
  font-weight: 950;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.lb-tv-top strong {
  font-size: clamp(24px, 2.1vw, 40px);
  line-height: 1;
  font-weight: 950;
}
.lb-tv-stage {
  position: relative;
  z-index: 2;
  height: calc(100vh - clamp(190px, 14vw, 230px));
  min-height: 0;
  display: grid;
  grid-template-columns: minmax(420px, .78fr) minmax(560px, 1.22fr);
  gap: clamp(34px, 4vw, 72px);
  align-items: center;
  padding: clamp(10px, 1.6vw, 28px) clamp(42px, 5vw, 84px) clamp(70px, 6.2vw, 112px);
  overflow: hidden;
}
.lb-tv-stage[data-slide="show-week"],
.lb-tv-stage[data-slide="kids-week"] {
  grid-template-columns: minmax(360px, .52fr) minmax(720px, 1.48fr);
  gap: clamp(32px, 3.5vw, 62px);
}
.lb-tv-stage[data-slide="activities"] {
  grid-template-columns: minmax(340px, .46fr) minmax(900px, 1.54fr);
  gap: clamp(26px, 3vw, 54px);
}
.lb-tv-stage[data-slide="activities"] .lb-tv-copy {
  max-width: 520px;
  align-self: center;
}
.lb-tv-stage[data-slide="activities"] .lb-tv-copy h1 {
  font-size: clamp(62px, 5.2vw, 108px);
}
.lb-tv-stage[data-slide="activities"] .lb-tv-copy p {
  max-width: 24em;
}
.lb-tv-copy {
  position: relative;
  z-index: 2;
  display: grid;
  gap: clamp(16px, 1.4vw, 24px);
  animation: tvCopyIn .82s cubic-bezier(.16,1,.3,1) both;
}
.lb-tv-copy > span {
  width: fit-content;
  padding-left: 54px;
  position: relative;
  color: var(--gold-light);
  font-size: clamp(12px, 1vw, 18px);
  font-weight: 950;
  letter-spacing: .26em;
  text-transform: uppercase;
}
.lb-tv-copy > span::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 38px;
  height: 2px;
  background: linear-gradient(90deg, #f8df8a, transparent);
}
.lb-tv-copy h1 {
  max-width: 9.8em;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(66px, 6.4vw, 132px);
  line-height: .88;
  letter-spacing: 0;
  text-shadow: 0 24px 60px rgba(0,0,0,.48);
}
.lb-tv-copy p {
  max-width: 36em;
  color: rgba(255,255,255,.84);
  font-size: clamp(19px, 1.28vw, 27px);
  line-height: 1.45;
  font-weight: 720;
}
.lb-tv-visual {
  position: relative;
  z-index: 1;
  min-width: 0;
  max-height: 100%;
  overflow: hidden;
  animation: tvVisualIn .86s cubic-bezier(.16,1,.3,1) both;
}
.lb-tv-hero-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: clamp(18px, 1.5vw, 26px);
}
.lb-tv-weather-orb,
.lb-tv-metric,
.lb-tv-feature,
.lb-tv-row,
.lb-tv-route-card,
.lb-tv-empty {
  border: 1px solid rgba(255,255,255,.14);
  background:
    linear-gradient(145deg, rgba(255,255,255,.13), rgba(255,255,255,.045));
  box-shadow: 0 24px 56px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.lb-tv-weather-orb {
  grid-row: span 2;
  min-height: clamp(310px, 27vw, 520px);
  display: grid;
  align-content: end;
  gap: 18px;
  padding: clamp(28px, 3vw, 54px);
  border-radius: clamp(28px, 3vw, 46px);
  background:
    radial-gradient(circle at 78% 16%, rgba(231,196,111,.24), transparent 34%),
    linear-gradient(145deg, rgba(14,60,88,.70), rgba(7,20,34,.78));
}
.lb-tv-weather-orb strong {
  font-size: clamp(116px, 11vw, 220px);
  line-height: .78;
  font-weight: 950;
}
.lb-tv-weather-orb span {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: rgba(255,255,255,.88);
  font-size: clamp(22px, 1.6vw, 34px);
  font-weight: 850;
}
.lb-tv-weather-orb i,
.lb-tv-row-icon i,
.lb-tv-route-card span i {
  color: var(--gold-light);
}
.lb-tv-metric {
  min-height: clamp(132px, 10.8vw, 206px);
  display: grid;
  align-content: center;
  gap: 12px;
  padding: clamp(22px, 2vw, 38px);
  border-radius: clamp(22px, 2vw, 34px);
}
.lb-tv-metric span,
.lb-tv-feature span {
  color: var(--gold-light);
  font-size: clamp(12px, .92vw, 18px);
  font-weight: 950;
  letter-spacing: .20em;
  text-transform: uppercase;
}
.lb-tv-metric strong {
  color: #fff;
  font-size: clamp(34px, 2.72vw, 58px);
  line-height: 1.05;
  font-weight: 950;
  overflow-wrap: anywhere;
}
.lb-tv-timeline,
.lb-tv-card-grid,
.lb-tv-route-grid {
  display: grid;
  gap: clamp(12px, 1vw, 18px);
}
.lb-tv-card-grid,
.lb-tv-route-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.lb-tv-row,
.lb-tv-route-card {
  min-height: clamp(82px, 5.65vw, 114px);
  display: grid;
  grid-template-columns: clamp(58px, 4.4vw, 86px) minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(14px, 1.2vw, 24px);
  padding: clamp(14px, 1.3vw, 24px);
  border-radius: clamp(20px, 1.8vw, 32px);
}
.lb-tv-empty {
  min-height: clamp(120px, 9vw, 180px);
  display: grid;
  place-items: center;
  padding: clamp(24px, 2vw, 42px);
  border-radius: clamp(22px, 2vw, 34px);
  color: rgba(255,255,255,.80);
  font-size: clamp(22px, 1.6vw, 34px);
  line-height: 1.25;
  font-weight: 820;
  text-align: center;
}
.lb-tv-row-icon,
.lb-tv-route-card span {
  width: clamp(58px, 4.4vw, 86px);
  height: clamp(58px, 4.4vw, 86px);
  display: grid;
  place-items: center;
  border-radius: clamp(18px, 1.5vw, 28px);
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.30), transparent 34%),
    linear-gradient(145deg, #e6c66c, #96702e);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 14px 24px rgba(0,0,0,.24);
}
.lb-tv-row-icon i,
.lb-tv-route-card span i {
  color: #071322;
  font-size: clamp(23px, 1.7vw, 36px);
}
.lb-tv-row div,
.lb-tv-route-card div {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.lb-tv-row strong,
.lb-tv-route-card strong {
  color: #fff;
  font-size: clamp(22px, 1.52vw, 32px);
  line-height: 1.08;
  font-weight: 950;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.lb-tv-row em,
.lb-tv-route-card em {
  color: rgba(255,255,255,.68);
  font-size: clamp(14px, .96vw, 20px);
  line-height: 1.25;
  font-style: normal;
  font-weight: 720;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-tv-row b,
.lb-tv-route-card b {
  color: #071322;
  background: linear-gradient(145deg, #f5d980, #b98a3b);
  border-radius: 999px;
  padding: 10px 14px;
  font-size: clamp(14px, 1vw, 20px);
  line-height: 1;
  font-weight: 950;
  white-space: nowrap;
}
.lb-tv-row.is-open .lb-tv-row-icon {
  background: linear-gradient(145deg, #5de0eb, #0c6c7e);
}
.lb-tv-split {
  display: grid;
  grid-template-columns: .86fr 1.14fr;
  gap: clamp(18px, 1.5vw, 28px);
  align-items: stretch;
}
.lb-tv-feature {
  min-height: clamp(310px, 25vw, 490px);
  display: grid;
  align-content: end;
  gap: 16px;
  padding: clamp(26px, 2.6vw, 48px);
  border-radius: clamp(28px, 2.6vw, 44px);
  background:
    radial-gradient(circle at 68% 14%, rgba(231,196,111,.25), transparent 32%),
    linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.04));
}
.lb-tv-feature span {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}
.lb-tv-feature strong {
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(46px, 3.8vw, 82px);
  line-height: .95;
}
.lb-tv-feature em {
  color: rgba(255,255,255,.78);
  font-size: clamp(24px, 1.8vw, 38px);
  font-style: normal;
  font-weight: 850;
}
.lb-tv-poster-grid {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 1.8vw, 32px);
  align-items: stretch;
}
.lb-tv-poster-card {
  position: relative;
  min-height: clamp(430px, 34vw, 650px);
  overflow: hidden;
  border-radius: clamp(28px, 2.6vw, 46px);
  border: 1px solid rgba(231,196,111,.22);
  background: rgba(5,15,28,.56);
  box-shadow:
    0 26px 70px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,255,255,.12);
}
.lb-tv-poster-card::after {
  content: '';
  position: absolute;
  inset: 12px;
  border-radius: calc(clamp(28px, 2.6vw, 46px) - 10px);
  border: 1px solid rgba(231,196,111,.16);
  pointer-events: none;
}
.lb-tv-poster-media,
.lb-tv-poster-shade {
  position: absolute;
  inset: 0;
}
.lb-tv-poster-media {
  background-size: cover;
  background-position: center;
  transform: scale(1.03);
  animation: tvPosterDrift 18s ease-in-out infinite alternate;
}
.lb-tv-poster-shade {
  background:
    linear-gradient(180deg, rgba(2,8,17,.04), rgba(2,8,17,.42) 48%, rgba(2,8,17,.94)),
    radial-gradient(circle at 50% 0%, rgba(231,196,111,.16), transparent 42%);
}
.lb-tv-poster-copy {
  position: absolute;
  inset: auto 0 0;
  display: grid;
  gap: clamp(7px, .65vw, 12px);
  padding: clamp(28px, 2.7vw, 48px);
}
.lb-tv-poster-copy span {
  width: fit-content;
  color: var(--gold-light);
  font-size: clamp(12px, .9vw, 18px);
  font-weight: 950;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.lb-tv-poster-copy strong {
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(46px, 4vw, 84px);
  line-height: .95;
  letter-spacing: 0;
  text-shadow: 0 18px 44px rgba(0,0,0,.52);
}
.lb-tv-poster-copy em {
  color: rgba(255,255,255,.74);
  font-size: clamp(18px, 1.22vw, 28px);
  line-height: 1.2;
  font-style: normal;
  font-weight: 840;
}
.lb-tv-poster-copy b {
  width: fit-content;
  margin-top: 4px;
  padding: 12px 16px;
  border-radius: 999px;
  color: #071322;
  background: linear-gradient(145deg, #f5d980, #b98a3b);
  font-size: clamp(17px, 1.18vw, 26px);
  line-height: 1;
  font-weight: 950;
}
@keyframes tvPosterDrift {
  0% {
    background-position: center 0%;
    transform: scale(1.03);
  }
  100% {
    background-position: center 100%;
    transform: scale(1.08);
  }
}
.lb-tv-daily-board {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(8px, .62vw, 12px);
  max-height: min(64vh, 690px);
  align-content: center;
  overflow: hidden;
}
.lb-tv-daily-item {
  min-height: clamp(58px, 3.95vw, 78px);
  display: grid;
  grid-template-columns: clamp(62px, 4.1vw, 82px) clamp(40px, 2.9vw, 58px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(8px, .72vw, 14px);
  padding: clamp(10px, .78vw, 16px);
  border-radius: clamp(18px, 1.45vw, 28px);
  border: 1px solid rgba(255,255,255,.12);
  background:
    linear-gradient(145deg, rgba(255,255,255,.11), rgba(255,255,255,.035));
  box-shadow: 0 18px 42px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.lb-tv-daily-item b {
  height: clamp(38px, 2.8vw, 54px);
  display: grid;
  place-items: center;
  border-radius: clamp(14px, 1.1vw, 22px);
  color: #071322;
  background: linear-gradient(145deg, #f5d980, #b98a3b);
  font-size: clamp(16px, 1vw, 22px);
  font-weight: 950;
}
.lb-tv-daily-item span {
  width: clamp(38px, 2.8vw, 54px);
  height: clamp(38px, 2.8vw, 54px);
  display: grid;
  place-items: center;
  border-radius: clamp(14px, 1.1vw, 22px);
  color: #071322;
  background: linear-gradient(145deg, #6edce7, #1b7c91);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28);
}
.lb-tv-daily-item span i {
  font-size: clamp(16px, 1.1vw, 24px);
}
.lb-tv-daily-item div {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.lb-tv-daily-item strong {
  color: #fff;
  font-size: clamp(16px, 1.04vw, 23px);
  line-height: 1.12;
  font-weight: 950;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-tv-daily-item em {
  color: rgba(255,255,255,.64);
  font-size: clamp(11px, .74vw, 16px);
  line-height: 1.2;
  font-style: normal;
  font-weight: 760;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-tv-daily-item.is-past {
  opacity: .62;
}
.lb-tv-daily-item.is-next {
  border-color: rgba(231,196,111,.62);
  background:
    radial-gradient(circle at 90% 0%, rgba(231,196,111,.24), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.16), rgba(255,255,255,.05));
  box-shadow:
    0 24px 60px rgba(231,196,111,.18),
    inset 0 0 0 1px rgba(231,196,111,.18);
}
.lb-tv-week-board {
  width: 100%;
  min-height: min(68vh, 760px);
  max-height: min(72vh, 820px);
  display: grid;
  grid-template-columns: minmax(320px, .72fr) minmax(480px, 1.28fr);
  gap: clamp(18px, 1.8vw, 34px);
  align-items: stretch;
}
.lb-tv-week-hero,
.lb-tv-week-card {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(231,196,111,.24);
  background: rgba(5,15,28,.56);
  box-shadow:
    0 26px 70px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(255,255,255,.12);
}
.lb-tv-week-hero {
  min-height: 100%;
  border-radius: clamp(30px, 2.6vw, 48px);
}
.lb-tv-week-hero::after,
.lb-tv-week-card::after {
  content: '';
  position: absolute;
  inset: 12px;
  border-radius: inherit;
  border: 1px solid rgba(231,196,111,.14);
  pointer-events: none;
}
.lb-tv-week-hero-backdrop,
.lb-tv-week-hero-media,
.lb-tv-week-hero-shade,
.lb-tv-week-card-bg,
.lb-tv-week-card-shade {
  position: absolute;
  inset: 0;
}
.lb-tv-week-hero-backdrop {
  background-size: cover;
  background-position: center top;
  opacity: .42;
  filter: blur(16px) saturate(1.16);
  transform: scale(1.14);
  animation: tvEventBackdropPan 28s ease-in-out infinite alternate;
}
.lb-tv-week-hero-media {
  background-size: cover;
  background-position: center top;
  transform: scale(1.025);
  animation: tvEventPosterPan 24s cubic-bezier(.42, 0, .20, 1) infinite alternate;
}
.lb-tv-week-hero-shade {
  background:
    linear-gradient(180deg, rgba(2,8,17,.04), rgba(2,8,17,.14) 26%, rgba(2,8,17,.64) 70%, rgba(2,8,17,.97)),
    radial-gradient(circle at 52% 0%, rgba(231,196,111,.14), transparent 44%);
}
.lb-tv-week-hero-copy {
  position: absolute;
  inset: auto 0 0;
  display: grid;
  gap: clamp(8px, .72vw, 14px);
  padding: clamp(30px, 2.8vw, 54px);
}
.lb-tv-week-hero-copy span,
.lb-tv-week-head span,
.lb-tv-week-card-copy small {
  color: var(--gold-light);
  font-weight: 950;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.lb-tv-week-hero-copy span {
  font-size: clamp(12px, .92vw, 18px);
}
.lb-tv-week-hero-copy strong {
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(52px, 4.1vw, 88px);
  line-height: .92;
  letter-spacing: 0;
  text-shadow: 0 22px 56px rgba(0,0,0,.54);
}
.lb-tv-week-hero-copy em {
  color: rgba(255,255,255,.78);
  font-size: clamp(19px, 1.22vw, 28px);
  line-height: 1.25;
  font-style: normal;
  font-weight: 830;
}
.lb-tv-week-hero-copy b,
.lb-tv-week-card-meta b {
  width: fit-content;
  color: #071322;
  background: linear-gradient(145deg, #f5d980, #b98a3b);
  border-radius: 999px;
  font-weight: 950;
  white-space: nowrap;
}
.lb-tv-week-hero-copy b {
  padding: 13px 17px;
  font-size: clamp(18px, 1.25vw, 28px);
  line-height: 1;
}
.lb-tv-week-list {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: auto repeat(7, minmax(0, 1fr));
  gap: clamp(10px, .8vw, 16px);
}
.lb-tv-week-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: clamp(48px, 3.4vw, 70px);
  padding: 0 clamp(14px, 1.1vw, 22px);
  border-radius: clamp(16px, 1.2vw, 24px);
  border: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(145deg, rgba(255,255,255,.10), rgba(255,255,255,.035));
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.lb-tv-week-head span {
  font-size: clamp(12px, .84vw, 16px);
}
.lb-tv-week-head b {
  color: rgba(255,255,255,.82);
  font-size: clamp(16px, 1.05vw, 22px);
  font-weight: 900;
}
.lb-tv-week-card {
  min-height: 0;
  border-radius: clamp(18px, 1.45vw, 28px);
}
.lb-tv-week-card-bg {
  background-size: cover;
  background-position: center top;
  transform: scale(1.025);
  animation: tvEventPosterPan 26s cubic-bezier(.42, 0, .20, 1) infinite alternate;
}
.lb-tv-week-card-shade {
  background:
    linear-gradient(90deg, rgba(2,8,17,.90), rgba(2,8,17,.48) 52%, rgba(2,8,17,.30)),
    linear-gradient(180deg, rgba(2,8,17,.05), rgba(2,8,17,.78));
}
.lb-tv-week-card.is-active {
  border-color: rgba(231,196,111,.70);
  box-shadow:
    0 20px 52px rgba(231,196,111,.18),
    inset 0 0 0 1px rgba(231,196,111,.16);
}
.lb-tv-week-card-copy,
.lb-tv-week-card-meta {
  position: absolute;
  z-index: 1;
}
.lb-tv-week-card-copy {
  left: clamp(16px, 1.25vw, 26px);
  right: 34%;
  bottom: clamp(14px, 1.05vw, 22px);
  display: grid;
  gap: 3px;
}
.lb-tv-week-card-copy small {
  font-size: clamp(9px, .62vw, 13px);
}
.lb-tv-week-card-copy strong {
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(24px, 1.65vw, 38px);
  line-height: 1;
  letter-spacing: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-tv-week-card-copy em {
  color: rgba(255,255,255,.70);
  font-size: clamp(12px, .82vw, 17px);
  line-height: 1.2;
  font-style: normal;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-tv-week-card-meta {
  right: clamp(14px, 1.05vw, 22px);
  bottom: clamp(14px, 1.05vw, 22px);
  display: grid;
  justify-items: end;
  gap: 8px;
}
.lb-tv-week-card-meta span {
  max-width: 20em;
  color: rgba(255,255,255,.76);
  font-size: clamp(11px, .74vw, 15px);
  font-weight: 780;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-tv-week-card-meta b {
  padding: 9px 13px;
  font-size: clamp(13px, .9vw, 18px);
  line-height: 1;
}
@keyframes tvEventPosterPan {
  0% {
    background-position: center 0%;
    transform: scale(1.025);
  }
  100% {
    background-position: center 100%;
    transform: scale(1.065);
  }
}
@keyframes tvEventBackdropPan {
  0% { background-position: center 0%; }
  100% { background-position: center 100%; }
}
.lb-tv-footer {
  position: absolute;
  left: clamp(42px, 5vw, 84px);
  right: clamp(42px, 5vw, 84px);
  bottom: clamp(22px, 2.3vw, 42px);
  z-index: 4;
  display: grid;
  grid-template-columns: minmax(260px, 30vw) minmax(0, 1fr);
  gap: 24px;
  align-items: center;
}
.lb-tv-progress {
  display: flex;
  gap: 10px;
}
.lb-tv-progress i {
  width: clamp(44px, 4vw, 76px);
  height: 5px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  overflow: hidden;
}
.lb-tv-progress i.is-active::after {
  content: "";
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #f8df8a, #b98a3b);
  animation: tvProgress 28s linear both;
}
.lb-tv-ticker {
  min-width: 0;
  overflow: hidden;
  height: clamp(48px, 3.6vw, 66px);
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  border-radius: 18px;
  border: 1px solid rgba(231,196,111,.20);
  background:
    linear-gradient(90deg, rgba(8,20,33,.78), rgba(255,255,255,.07), rgba(8,20,33,.72));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 18px 42px rgba(0,0,0,.28);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}
.lb-tv-ticker b {
  height: 100%;
  display: grid;
  place-items: center;
  padding: 0 clamp(18px, 1.4vw, 28px);
  color: #071322;
  background: linear-gradient(145deg, #f5d980, #b98a3b);
  font-size: clamp(13px, .88vw, 18px);
  font-weight: 950;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.lb-tv-ticker span {
  display: block;
  width: max-content;
  padding: 0 20px;
  color: rgba(255,255,255,.82);
  font-size: clamp(15px, 1.05vw, 22px);
  font-weight: 820;
  white-space: nowrap;
  animation: tvTicker 70s linear infinite;
}
.lb-tv-stage[data-slide="dining"] .lb-tv-feature {
  min-height: clamp(260px, 20vw, 410px);
}
.lb-tv-stage[data-slide="dining"] .lb-tv-split {
  align-items: center;
}
.lb-tv-stage[data-slide="shows"] .lb-tv-visual,
.lb-tv-stage[data-slide="show-week"] .lb-tv-visual,
.lb-tv-stage[data-slide="kids-week"] .lb-tv-visual {
  overflow: visible;
}
.lb-tv-stage[data-slide="activities"] .lb-tv-visual {
  overflow: hidden;
}
@media (min-width: 1180px) {
  .lb-tv-stage {
    height: calc(100vh - clamp(220px, 15vw, 276px));
  }
  .lb-tv-timeline,
  .lb-tv-card-grid,
  .lb-tv-route-grid {
    max-height: min(64vh, 660px);
    overflow: hidden;
  }
}
@keyframes tvBgDrift {
  from { transform: scale(1.03) translate3d(-.7%, -.4%, 0); }
  to { transform: scale(1.13) translate3d(.9%, .5%, 0); }
}
@keyframes tvCopyIn {
  from { opacity: 0; transform: translate3d(-34px, 0, 0); filter: blur(10px); }
  to { opacity: 1; transform: translate3d(0, 0, 0); filter: blur(0); }
}
@keyframes tvVisualIn {
  from { opacity: 0; transform: translate3d(38px, 0, 0) scale(.985); filter: blur(10px); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1); filter: blur(0); }
}
@keyframes tvProgress {
  from { width: 0; }
  to { width: 100%; }
}
@keyframes tvTicker {
  from { transform: translateX(18%); }
  to { transform: translateX(-100%); }
}
@media (max-aspect-ratio: 4/3) {
  .lb-tv-stage {
    grid-template-columns: 1fr;
    align-content: center;
  }
  .lb-tv-copy h1 {
    max-width: 11em;
  }
}
.lb-today-panel {
  position: fixed;
  inset: 0;
  z-index: 1300;
  display: grid;
  place-items: end center;
  pointer-events: none;
}
.lb-today-panel[aria-hidden="true"] {
  visibility: hidden;
}
.lb-today-panel.is-open {
  pointer-events: auto;
  visibility: visible;
}
.lb-today-scrim {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 14%, rgba(53,198,211,.12), transparent 36%),
    rgba(1,8,15,.72);
  opacity: 0;
  transition: opacity .38s var(--ease-luxury);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
}
.lb-today-panel.is-open .lb-today-scrim { opacity: 1; }
.lb-today-sheet {
  position: relative;
  width: min(100%, 760px);
  max-height: min(92vh, 940px);
  margin: 0 auto;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border-radius: 30px 30px 0 0;
  background:
    linear-gradient(180deg, rgba(14,56,89,.98), rgba(5,19,33,.99));
  border: 1px solid rgba(231,196,111,.25);
  box-shadow: 0 -24px 74px rgba(0,0,0,.58), 0 -4px 16px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.14);
  transform: translate3d(0, 34px, 0) scale(.985);
  opacity: 0;
  transition:
    transform .48s var(--ease-luxury),
    opacity .38s var(--ease-luxury);
}
.lb-today-panel.is-open .lb-today-sheet {
  transform: translate3d(0, 0, 0) scale(1);
  opacity: 1;
}
.lb-today-hero {
  position: relative;
  min-height: 236px;
  overflow: hidden;
}
.lb-today-hero-bg {
  position: absolute;
  inset: 0;
  background-image: url('assets/weather-bodrum.jpg');
  background-size: cover;
  background-position: center 48%;
  filter: saturate(1.08) brightness(.93);
  animation: todayHeroZoom 18s cubic-bezier(.22,.61,.36,1) infinite alternate;
}
.lb-today-hero-shade {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 82% 16%, rgba(231,196,111,.22), transparent 34%),
    linear-gradient(180deg, rgba(4,13,24,.10), rgba(4,13,24,.48) 54%, rgba(4,13,24,.96)),
    linear-gradient(90deg, rgba(4,13,24,.88), rgba(4,13,24,.34) 58%, rgba(4,13,24,.68));
}
.lb-today-close {
  position: absolute;
  right: 16px;
  top: calc(14px + var(--safe-top));
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 16px;
  background: rgba(8,21,35,.58);
  color: rgba(255,255,255,.88);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 12px 28px rgba(0,0,0,.24);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: 3;
}
.lb-today-hero-copy {
  position: relative;
  z-index: 2;
  padding: calc(34px + var(--safe-top)) 22px 22px;
  width: min(100%, 560px);
  display: grid;
  gap: 10px;
}
.lb-today-hero-copy > span {
  color: var(--gold-light);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .26em;
}
.lb-today-hero-copy h2 {
  font-family: var(--font-display);
  font-size: clamp(34px, 9vw, 56px);
  line-height: .98;
  color: var(--white);
  letter-spacing: 0;
  text-shadow: 0 10px 34px rgba(0,0,0,.58);
}
.lb-today-hero-copy p {
  max-width: 32em;
  color: rgba(255,255,255,.84);
  font-size: 13.5px;
  line-height: 1.55;
  font-weight: 650;
}
.lb-today-hero-copy small {
  max-width: 34em;
  color: rgba(255,255,255,.92);
  font-size: 12px;
  line-height: 1.45;
  font-weight: 780;
  text-shadow: 0 4px 14px rgba(0,0,0,.55);
}
.lb-today-weather-mini {
  display: inline-flex;
  align-items: end;
  gap: 10px;
  width: fit-content;
  padding-top: 2px;
}
.lb-today-weather-mini strong {
  color: var(--white);
  font-size: 48px;
  line-height: .8;
  font-weight: 900;
  text-shadow: 0 10px 26px rgba(0,0,0,.48);
}
.lb-today-weather-mini em {
  color: rgba(255,255,255,.9);
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 12px;
  font-style: normal;
  font-weight: 820;
  padding-bottom: 3px;
}
.lb-today-weather-mini i { color: var(--gold-light); }
.lb-today-body {
  min-height: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  background:
    linear-gradient(180deg, rgba(8,31,50,.94), rgba(5,19,33,.98));
}
.lb-today-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 14px 16px 10px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  scrollbar-width: none;
}
.lb-today-tabs::-webkit-scrollbar { display: none; }
.lb-today-tabs button {
  flex: 0 0 auto;
  min-height: 40px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 14px;
  padding: 0 15px;
  background: rgba(255,255,255,.055);
  color: rgba(255,255,255,.68);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .01em;
}
.lb-today-tabs button.is-active {
  background: linear-gradient(135deg, rgba(231,196,111,.96), rgba(166,126,48,.94));
  border-color: rgba(255,255,255,.24);
  color: rgba(9,21,34,.96);
  box-shadow: 0 12px 24px rgba(199,154,74,.22);
}
.lb-today-content {
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 14px 16px calc(26px + var(--safe-bot));
}
.lb-today-content::-webkit-scrollbar { display: none; }
.lb-today-stats {
  display: grid;
  grid-template-columns: .7fr 1.15fr 1.15fr;
  gap: 8px;
  margin-bottom: 12px;
}
.lb-today-stats div {
  min-width: 0;
  border-radius: 16px;
  padding: 12px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.lb-today-stats span {
  display: block;
  color: var(--gold-light);
  font-size: 8.4px;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
  margin-bottom: 5px;
}
.lb-today-stats strong {
  display: block;
  color: var(--white);
  font-size: 13px;
  line-height: 1.25;
  font-weight: 880;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-today-stats div:first-child strong {
  font-size: 30px;
  line-height: .95;
}
.lb-today-note {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 12px;
  padding: 11px 12px;
  border-radius: 16px;
  color: rgba(255,255,255,.78);
  background: rgba(53,198,211,.08);
  border: 1px solid rgba(53,198,211,.18);
  font-size: 11.5px;
  line-height: 1.45;
  font-weight: 720;
}
.lb-today-note i { color: var(--teal); }
.lb-today-list {
  display: grid;
  gap: 10px;
}
.lb-today-card {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 13px;
  border-radius: 20px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.045));
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 12px 28px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.08);
}
.lb-today-card-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 17px;
  color: var(--white);
  background: linear-gradient(135deg, rgba(226,185,106,.92), rgba(153,112,38,.96));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 12px 22px rgba(0,0,0,.22);
}
.lb-today-card.is-open .lb-today-card-icon { background: linear-gradient(135deg, rgba(53,198,211,.92), rgba(12,108,126,.94)); }
.lb-today-card.is-closed { opacity: .62; }
.lb-today-card-main {
  min-width: 0;
  display: grid;
  gap: 6px;
}
.lb-today-card-top {
  min-width: 0;
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 10px;
}
.lb-today-card-top strong {
  min-width: 0;
  color: var(--white);
  font-size: 15px;
  line-height: 1.22;
  font-weight: 900;
}
.lb-today-card-top span {
  flex: 0 0 auto;
  padding: 5px 8px;
  border-radius: 999px;
  color: rgba(6,18,28,.94);
  background: rgba(226,185,106,.92);
  font-size: 9.5px;
  font-weight: 900;
}
.lb-today-card.is-open .lb-today-card-top span {
  color: #042026;
  background: rgba(93,224,235,.92);
}
.lb-today-card.is-closed .lb-today-card-top span {
  color: rgba(255,255,255,.72);
  background: rgba(255,255,255,.12);
}
.lb-today-card-main p {
  color: rgba(255,255,255,.72);
  font-size: 12px;
  line-height: 1.45;
  font-weight: 680;
}
.lb-today-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.lb-today-card-meta em {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(255,255,255,.88);
  font-size: 12px;
  font-style: normal;
  font-weight: 850;
}
.lb-today-card-meta i { color: var(--gold-light); }
.lb-today-actions {
  display: flex;
  gap: 8px;
  padding-top: 3px;
}
.lb-today-actions button {
  min-height: 36px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 13px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: rgba(255,255,255,.84);
  background: rgba(255,255,255,.07);
  font-size: 11.5px;
  font-weight: 850;
}
.lb-today-actions button.is-route {
  background: linear-gradient(135deg, rgba(62,139,255,.95), rgba(18,76,176,.95));
  border-color: rgba(117,181,255,.55);
  color: var(--white);
  box-shadow: 0 10px 22px rgba(34,102,214,.22);
}
.lb-today-empty {
  padding: 22px;
  border-radius: 20px;
  color: rgba(255,255,255,.7);
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  text-align: center;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 720;
}
@keyframes todayHeroZoom {
  from { transform: scale(1.02); }
  to { transform: scale(1.13); }
}
@media (min-width: 760px) {
  .lb-today-panel { place-items: center; padding: 24px; }
  .lb-today-sheet { border-radius: 30px; max-height: min(88vh, 900px); }
}
@media (max-width: 430px) {
  .lb-today-sheet { max-height: 94vh; }
  .lb-today-hero { min-height: 222px; }
  .lb-today-hero-copy { padding: calc(30px + var(--safe-top)) 18px 18px; }
  .lb-today-hero-copy h2 { font-size: 37px; }
  .lb-today-hero-copy p { font-size: 12.7px; }
  .lb-today-stats { grid-template-columns: .62fr 1fr 1fr; gap: 7px; }
  .lb-today-stats div { padding: 10px; border-radius: 14px; }
  .lb-today-stats strong { font-size: 11.2px; }
  .lb-today-stats div:first-child strong { font-size: 26px; }
  .lb-today-card { grid-template-columns: 48px minmax(0, 1fr); gap: 10px; padding: 12px; border-radius: 18px; }
  .lb-today-card-icon { width: 48px; height: 48px; border-radius: 15px; }
  .lb-today-actions button { flex: 1 1 0; justify-content: center; padding: 0 8px; }
}

/* ════════════════════════════════════════════════════════
   CATEGORY LIST
═══════════════════════════════════════════════════════ */
.lb-list {
  padding: 38px 14px 8px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.lb-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.025));
  border: 1px solid rgba(255,255,255,.08);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform .25s var(--ease-luxury), background .25s var(--ease-luxury), border-color .25s var(--ease-luxury), box-shadow .25s var(--ease-luxury);
  text-decoration: none;
  color: var(--white);
  position: relative;
  overflow: hidden;
  opacity: 0;
  animation: rowEnter .55s var(--ease-luxury) both;
}
.lb-row:nth-child(1) { animation-delay: .04s; }
.lb-row:nth-child(2) { animation-delay: .09s; }
.lb-row:nth-child(3) { animation-delay: .14s; }
.lb-row:nth-child(4) { animation-delay: .19s; }
.lb-row:nth-child(5) { animation-delay: .24s; }
.lb-row:nth-child(6) { animation-delay: .29s; }
.lb-row:nth-child(7) { animation-delay: .34s; }
.lb-row:nth-child(8) { animation-delay: .39s; }
.lb-row:nth-child(9) { animation-delay: .44s; }
.lb-row:nth-child(n+10) { animation-delay: .50s; }
@keyframes rowEnter {
  from { opacity: 0; transform: translateX(22px) scale(.98); }
  to   { opacity: 1; transform: translateX(0) scale(1); }
}

.lb-row:active {
  background: linear-gradient(135deg, rgba(199,154,74,.20), rgba(199,154,74,.08));
  border-color: rgba(199,154,74,.42);
  transform: scale(.98);
  box-shadow: 0 6px 20px rgba(0,0,0,.28);
}

.lb-row-thumb {
  width: 64px; height: 64px;
  border-radius: 14px;
  background-size: cover;
  background-position: center;
  background-color: var(--navy-mid);
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(0,0,0,.35);
  position: relative;
  overflow: hidden;
}
.lb-row-thumb::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid rgba(255,255,255,.1);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}
/* Icon overlay on thumb when image not yet loaded */
.lb-row-thumb-icon {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, rgba(199,154,74,.2), rgba(8,31,50,.6));
  z-index: 1;
  opacity: .9;
  transition: opacity .4s ease;
}
.lb-row-thumb.loaded .lb-row-thumb-icon { opacity: 0; }
.lb-row-thumb-icon i {
  font-size: 20px;
  color: var(--gold-light);
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.4));
}

.lb-row-body { flex: 1; min-width: 0; }
.lb-row-name {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.16;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: .002em;
}
.lb-row-sub {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  color: rgba(255,255,255,.5);
  margin-top: 4px;
  font-weight: 800;
  letter-spacing: .10em;
  text-transform: uppercase;
}
.lb-row-sub i { font-size: 9px; }
.lb-row-sub.gold { color: var(--gold-light); }
.lb-row-chev {
  font-size: 13px !important;
  color: rgba(199,154,74,.55);
  flex-shrink: 0;
  transition: transform .25s var(--ease-luxury), color .25s var(--ease-luxury);
}
.lb-row:active .lb-row-chev { transform: translateX(5px); color: var(--gold-light); }

.lb-row.is-leaf {
  min-height: 96px;
  padding: 14px 14px 14px 16px;
  gap: 15px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.10);
  background:
    linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.018)),
    radial-gradient(circle at 8% 18%, rgba(199,154,74,.20), transparent 38%),
    rgba(8,31,50,.56);
  box-shadow:
    0 16px 34px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.09);
}
.lb-row.is-leaf::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--gold-soft), var(--gold), rgba(53,198,211,.70));
  box-shadow: 0 0 18px rgba(199,154,74,.28);
}
.lb-row.is-leaf::after {
  content: '';
  position: absolute;
  top: -40px;
  right: -34px;
  width: 116px;
  height: 116px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(53,198,211,.13), transparent 68%);
  pointer-events: none;
}
.lb-row.is-leaf:active {
  background:
    linear-gradient(135deg, rgba(199,154,74,.15), rgba(255,255,255,.025)),
    radial-gradient(circle at 8% 18%, rgba(199,154,74,.24), transparent 38%),
    rgba(8,31,50,.62);
  border-color: rgba(199,154,74,.36);
}
.lb-row.is-leaf .lb-row-thumb {
  width: 72px;
  height: 72px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.16);
  box-shadow:
    0 12px 24px rgba(0,0,0,.34),
    0 0 0 1px rgba(199,154,74,.16),
    inset 0 1px 0 rgba(255,255,255,.16);
}
.lb-row.is-leaf .lb-row-thumb::after {
  border-color: rgba(255,255,255,.16);
  background:
    linear-gradient(180deg, rgba(255,255,255,.10), transparent 34%),
    linear-gradient(0deg, rgba(5,15,28,.22), transparent 52%);
}
.lb-row.is-leaf .lb-row-thumb-icon {
  background:
    linear-gradient(145deg, rgba(244,213,137,.28), rgba(8,31,50,.70)),
    radial-gradient(circle at 35% 20%, rgba(255,255,255,.18), transparent 42%);
}
.lb-row.is-leaf .lb-row-body {
  position: relative;
  z-index: 1;
}
.lb-row.is-leaf .lb-row-name {
  font-size: 21px;
  line-height: 1.14;
  font-weight: 700;
  color: rgba(255,255,255,.96);
  text-shadow: 0 2px 14px rgba(0,0,0,.34);
}
.lb-row.is-leaf .lb-row-sub {
  width: fit-content;
  max-width: 100%;
  min-height: 24px;
  padding: 0 9px;
  border-radius: 999px;
  margin-top: 8px;
  background: rgba(199,154,74,.08);
  border: 1px solid rgba(199,154,74,.18);
  color: rgba(255,255,255,.58);
  letter-spacing: .09em;
}
.lb-row.is-leaf .lb-row-sub.gold {
  background: rgba(199,154,74,.13);
  border-color: rgba(199,154,74,.30);
  color: var(--gold-light);
}
.lb-row.is-leaf .lb-row-chev {
  position: relative;
  z-index: 1;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--gold-light);
  background: rgba(199,154,74,.10);
  border: 1px solid rgba(199,154,74,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.lb-row.is-leaf:active .lb-row-chev {
  transform: translateX(3px) scale(1.04);
  background: rgba(199,154,74,.18);
  border-color: rgba(199,154,74,.38);
}
.lb-row.is-reservable {
  background: linear-gradient(135deg, rgba(199,154,74,.12), rgba(199,154,74,.04));
  border-color: rgba(199,154,74,.28);
}
.lb-row.is-reservable::after {
  content: '\f274';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  position: absolute;
  top: 8px; right: 50px;
  font-size: 10px;
  color: var(--gold-light);
  opacity: .5;
}
.lb-row.is-leaf.is-reservable {
  background:
    linear-gradient(135deg, rgba(199,154,74,.14), rgba(255,255,255,.025)),
    radial-gradient(circle at 8% 18%, rgba(199,154,74,.24), transparent 38%),
    rgba(8,31,50,.58);
  border-color: rgba(199,154,74,.32);
}
.lb-row.is-leaf.is-reservable::after {
  top: 10px;
  right: 14px;
  z-index: 1;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(199,154,74,.14);
  border: 1px solid rgba(199,154,74,.25);
  font-size: 10px;
  opacity: .85;
}

/* ════════════════════════════════════════════════════════
   DETAIL CONTENT
═══════════════════════════════════════════════════════ */
.lb-content {
  padding: 38px 14px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sec {
  animation: secFadeUp .6s var(--ease-luxury) both;
  opacity: 0;
}
@keyframes secFadeUp {
  from { opacity: 0; transform: translateY(20px) scale(.99); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}

.lb-exp-card {
  position: relative;
  overflow: hidden;
  padding: 17px;
  border-radius: 20px;
  border: 1px solid rgba(231,196,111,.20);
  background:
    radial-gradient(circle at 16% 0%, rgba(231,196,111,.18), transparent 42%),
    radial-gradient(circle at 100% 24%, rgba(53,198,211,.13), transparent 42%),
    linear-gradient(145deg, rgba(255,255,255,.070), rgba(255,255,255,.020));
  box-shadow:
    0 22px 42px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.08);
}
.lb-exp-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--gold-soft), var(--gold), rgba(53,198,211,.72));
}
.lb-exp-head {
  position: relative;
  z-index: 1;
}
.lb-exp-head h3 {
  margin: 4px 0 4px;
  font-family: var(--font-display);
  color: var(--white);
  font-size: 27px;
  line-height: 1.04;
}
.lb-exp-head p {
  margin: 0;
  max-width: 36em;
  color: rgba(255,255,255,.66);
  font-size: 12.4px;
  line-height: 1.45;
  font-weight: 720;
}
.lb-exp-metrics {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}
.lb-exp-metric {
  min-width: 0;
  min-height: 78px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 10px;
  align-content: center;
  padding: 11px;
  border-radius: 16px;
  background: rgba(5,15,28,.32);
  border: 1px solid rgba(255,255,255,.08);
}
.lb-exp-metric span {
  grid-row: 1 / 3;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: var(--white);
  background: linear-gradient(145deg, var(--gold-light), var(--gold));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.28), 0 8px 18px rgba(0,0,0,.18);
}
.lb-exp-metric small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(255,255,255,.48);
  font-size: 8.5px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.lb-exp-metric strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--white);
  font-size: 13.2px;
  line-height: 1.22;
  font-weight: 900;
}
.lb-exp-metric.is-good span { background: linear-gradient(145deg, #7ce595, #32a858); }
.lb-exp-metric.is-bad span { background: linear-gradient(145deg, #ff9c9c, #a73535); }
.lb-exp-metric.is-blue span { background: linear-gradient(145deg, #68d0df, #207b91); }
.lb-exp-actions {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 13px 0 1px;
  scrollbar-width: none;
}
.lb-exp-actions::-webkit-scrollbar { display: none; }
.lb-exp-actions button {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 36px;
  padding: 0 13px;
  border-radius: 999px;
  border: 1px solid rgba(231,196,111,.28);
  background: rgba(199,154,74,.10);
  color: var(--gold-light);
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.lb-exp-actions i {
  font-size: 11px;
}

.lux-disclosure {
  padding: 0;
}
.lux-disclosure > summary {
  list-style: none;
}
.lux-disclosure > summary::-webkit-details-marker {
  display: none;
}
.lux-summary {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 12px;
  min-height: 76px;
  padding: 14px 15px;
  cursor: pointer;
  user-select: none;
}
.lux-summary-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: var(--white);
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.32), transparent 36%),
    linear-gradient(145deg, var(--gold-light), var(--gold));
  box-shadow: 0 9px 19px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.28);
}
.lux-summary-copy {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.lux-summary-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--gold-light);
  font-size: 8.4px;
  font-weight: 950;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.lux-summary-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-family: var(--font-display);
  color: var(--white);
  font-size: 20px;
  line-height: 1.08;
}
.lux-summary-copy em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(255,255,255,.55);
  font-size: 10.8px;
  font-style: normal;
  font-weight: 760;
}
.lux-summary-action {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: rgba(5,15,28,.32);
  border: 1px solid rgba(255,255,255,.08);
  color: var(--gold-light);
}
.lux-summary-action i {
  transition: transform .32s var(--ease-luxury);
}
.lux-disclosure[open] .lux-summary-action i {
  transform: rotate(180deg);
}
.lux-body {
  position: relative;
  z-index: 1;
  padding: 0 15px 15px;
}

/* HEADER (intro) */
.sec-header {
  text-align: center;
  padding: 14px 18px 18px;
  margin-bottom: 4px;
  position: relative;
}
.sec-header::after {
  content: '';
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 70px; height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
}
.sec-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .20em;
  color: var(--gold);
  text-transform: uppercase;
  padding: 5px 14px;
  border: 1px solid rgba(199,154,74,.4);
  border-radius: 999px;
  margin-bottom: 12px;
  background: rgba(199,154,74,.08);
}
.sec-tag i { font-size: 9px; }
.sec-subtitle {
  font-family: var(--font-sans);
  font-size: 14.5px;
  font-style: italic;
  font-weight: 500;
  color: rgba(255,255,255,.82);
  line-height: 1.65;
  margin: 4px 0;
}
.sec-date {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--gold-light);
  padding: 6px 14px;
  background: rgba(199,154,74,.1);
  border-radius: 999px;
  border: 1px solid rgba(199,154,74,.22);
}
.sec-date i { font-size: 10px; }

/* STATS GRID */
.sec-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  padding: 6px 0;
}
.stat-cell {
  position: relative;
  background: linear-gradient(145deg, rgba(255,255,255,.08), rgba(255,255,255,.025));
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  padding: 16px 14px 14px;
  overflow: hidden;
}
.stat-cell::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(199,154,74,.6), transparent);
  opacity: .65;
}
.stat-icon {
  width: 32px; height: 32px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(199,154,74,.22), rgba(199,154,74,.06));
  border: 1px solid rgba(199,154,74,.25);
  display: grid;
  place-items: center;
  margin-bottom: 10px;
}
.stat-icon i { font-size: 13px; color: var(--gold-light); }
.stat-num {
  font-family: var(--font-display);
  font-size: 31px;
  font-weight: 700;
  line-height: 1.05;
  background: linear-gradient(135deg, var(--gold-soft) 0%, var(--gold) 60%, var(--gold-deep) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: 0;
}
.stat-lbl {
  margin-top: 6px;
  font-size: 9px;
  font-weight: 800;
  color: rgba(255,255,255,.55);
  letter-spacing: .16em;
  text-transform: uppercase;
}

/* TIME SLOT */
.sec-time {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  background: linear-gradient(135deg, rgba(53,198,211,.10), rgba(14,56,89,.45));
  border: 1px solid rgba(53,198,211,.18);
  border-radius: 16px;
  position: relative;
  overflow: hidden;
}
.sec-time::before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, var(--gold-light), var(--gold));
}
.time-icon {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep));
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(199,154,74,.4),
              inset 0 1px 0 rgba(255,255,255,.35),
              inset 0 -2px 4px rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.22);
}
.time-icon i { font-size: 18px; color: var(--white); filter: drop-shadow(0 1px 2px rgba(0,0,0,.4)); }

.time-body { flex: 1; min-width: 0; }
.time-title {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  color: var(--white);
  line-height: 1.14;
  letter-spacing: .002em;
}
.time-sub {
  margin-top: 3px;
  font-size: 10px;
  font-weight: 700;
  color: rgba(255,255,255,.55);
  letter-spacing: .10em;
  text-transform: uppercase;
}
.time-val {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 700;
  color: var(--gold-light);
  letter-spacing: .02em;
  flex-shrink: 0;
  white-space: nowrap;
  text-shadow: 0 1px 8px rgba(199,154,74,.3);
}

/* DAILY ACTIVITY CARDS */
.sec-activity {
  position: relative;
  display: grid;
  grid-template-columns: 70px 46px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 14px 15px;
  min-height: 82px;
  border-radius: 18px;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(255,255,255,.085), rgba(255,255,255,.022)),
    radial-gradient(circle at 12% 18%, rgba(199,154,74,.18), transparent 42%),
    rgba(8,31,50,.48);
  border: 1px solid rgba(255,255,255,.09);
  box-shadow:
    0 12px 28px rgba(0,0,0,.20),
    inset 0 1px 0 rgba(255,255,255,.08);
}
.sec-activity::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--gold-soft), var(--gold), rgba(53,198,211,.8));
}
.sec-activity::after {
  content: '';
  position: absolute;
  top: -35px;
  right: -35px;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(53,198,211,.13), transparent 68%);
  pointer-events: none;
}
.activity-time {
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  height: 52px;
  border-radius: 15px;
  background: linear-gradient(145deg, rgba(5,15,28,.62), rgba(255,255,255,.045));
  border: 1px solid rgba(199,154,74,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 0;
  color: var(--gold-soft);
  text-shadow: 0 2px 12px rgba(199,154,74,.22);
}
.activity-icon {
  position: relative;
  z-index: 1;
  width: 46px;
  height: 46px;
  border-radius: 15px;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep));
  border: 1px solid rgba(255,255,255,.22);
  box-shadow:
    0 8px 18px rgba(199,154,74,.30),
    inset 0 2px 0 rgba(255,255,255,.35),
    inset 0 -2px 5px rgba(0,0,0,.22);
}
.activity-icon i {
  font-size: 17px;
  color: var(--white);
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.45));
}
.activity-body {
  position: relative;
  z-index: 1;
  min-width: 0;
}
.activity-title {
  font-family: var(--font-sans);
  font-size: 15.5px;
  font-weight: 800;
  line-height: 1.28;
  color: var(--white);
  letter-spacing: .002em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.activity-sub {
  margin-top: 5px;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.35;
  color: rgba(255,255,255,.58);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.activity-divider {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 12px;
  padding: 6px 4px;
  color: var(--gold-light);
}
.activity-divider span {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(199,154,74,.55));
}
.activity-divider span:last-child {
  background: linear-gradient(90deg, rgba(199,154,74,.55), transparent);
}
.activity-divider div {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
  padding: 0 13px;
  border-radius: 999px;
  border: 1px solid rgba(199,154,74,.28);
  background: rgba(199,154,74,.08);
  font-size: 11.5px;
  font-weight: 800;
  letter-spacing: .015em;
  color: var(--gold-light);
}
.activity-divider i {
  font-size: 12px;
  color: var(--gold-soft);
}

/* INFO CHIP */
.sec-info {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px 14px 14px;
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 14px;
  position: relative;
  overflow: hidden;
}
.sec-info::before {
  content: '';
  position: absolute;
  top: 12px; bottom: 12px; left: 0;
  width: 3px;
  background: linear-gradient(180deg, var(--gold-light), var(--gold));
  border-radius: 2px;
}
.info-icon {
  width: 38px; height: 38px;
  border-radius: 11px;
  background: linear-gradient(145deg, rgba(199,154,74,.2), rgba(199,154,74,.05));
  border: 1px solid rgba(199,154,74,.25);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.info-icon i { font-size: 15px; color: var(--gold-light); }
.info-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.info-lbl {
  font-size: 9px;
  font-weight: 800;
  color: rgba(255,255,255,.5);
  letter-spacing: .16em;
  text-transform: uppercase;
}
.info-val {
  font-family: var(--font-display);
  font-size: 18.5px;
  font-weight: 700;
  color: var(--white);
  letter-spacing: .002em;
  margin-top: 2px;
}

/* 2026 OPERATION SCHEDULE */
.op-card {
  position: relative;
  overflow: hidden;
  padding: 17px;
  border-radius: 18px;
  border: 1px solid rgba(199,154,74,.18);
  background:
    radial-gradient(circle at 18% 0%, rgba(199,154,74,.16), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.018));
  box-shadow:
    0 18px 38px rgba(0,0,0,.20),
    inset 0 1px 0 rgba(255,255,255,.075);
}
.op-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--gold-soft), var(--gold), rgba(53,198,211,.7));
}
.op-head {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 5px;
  margin-bottom: 12px;
}
.op-kicker {
  color: var(--gold-light);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.op-head h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 23px;
  line-height: 1.12;
  color: var(--white);
  letter-spacing: .002em;
}
.op-meta {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 13px;
}
.op-meta span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(5,15,28,.34);
  border: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.88);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}
.op-meta i {
  color: var(--gold-light);
  font-size: 11px;
}
.op-week {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
}
.op-day {
  min-width: 0;
  min-height: 62px;
  padding: 9px 7px;
  border-radius: 13px;
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.045);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 7px;
}
.op-day span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(255,255,255,.55);
  font-size: 8.4px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.op-day strong {
  color: var(--white);
  font-size: 12px;
  font-weight: 900;
  line-height: 1.15;
}
.op-day.is-open strong { color: #72dc8c; }
.op-day.is-closed {
  background: rgba(154,35,35,.18);
  border-color: rgba(255,91,91,.22);
}
.op-day.is-closed strong { color: #ff8585; }
.op-day.is-today {
  box-shadow: inset 0 0 0 1px rgba(231,196,111,.50);
}
.op-week-themes .op-day {
  min-height: 70px;
}
.op-week-themes .op-day strong {
  color: var(--white);
  font-size: 11.2px;
}
.op-note {
  position: relative;
  z-index: 1;
  margin: 12px 0 0;
  color: rgba(255,255,255,.66);
  font-size: 11.5px;
  line-height: 1.45;
  font-weight: 650;
}

/* 2026 ENTERTAINMENT PROGRAMS */
.event-program {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(231,196,111,.22);
  background:
    radial-gradient(circle at 82% 0%, rgba(53,198,211,.16), transparent 34%),
    radial-gradient(circle at 12% 0%, rgba(231,196,111,.18), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.070), rgba(255,255,255,.018));
  box-shadow:
    0 24px 48px rgba(0,0,0,.28),
    inset 0 1px 0 rgba(255,255,255,.08);
}
.event-program::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(255,255,255,.08), transparent 30%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.032) 0 1px, transparent 1px 10px);
  opacity: .36;
  pointer-events: none;
}
.event-program-head {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 6px;
}
.event-program-head span {
  color: var(--gold-light);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.event-program-head h3 {
  margin: 0;
  color: var(--white);
  font-family: var(--font-display);
  font-size: 28px;
  line-height: 1.04;
  letter-spacing: 0;
}
.event-program-head p {
  margin: 0;
  color: rgba(255,255,255,.66);
  font-size: 12.2px;
  line-height: 1.45;
  font-weight: 720;
}
.event-program-daily {
  display: grid;
  gap: 14px;
  padding: 17px;
}
.event-activity-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}
.event-activity-pill {
  min-width: 0;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  grid-template-areas:
    "time title"
    "time sub";
  align-items: center;
  gap: 2px 9px;
  min-height: 62px;
  padding: 10px;
  border-radius: 17px;
  background: rgba(5,15,28,.36);
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.event-activity-pill b {
  grid-area: time;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  color: #071322;
  background: linear-gradient(145deg, #f5d980, #b98a3b);
  font-size: 13px;
  font-weight: 950;
}
.event-activity-pill span {
  grid-area: title;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--white);
  font-size: 12.4px;
  font-weight: 900;
  line-height: 1.18;
}
.event-activity-pill span i {
  color: var(--gold-light);
  font-size: 12px;
}
.event-activity-pill em {
  grid-area: sub;
  color: rgba(255,255,255,.54);
  font-size: 10px;
  line-height: 1.2;
  font-style: normal;
  font-weight: 760;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.event-program-card.lux-disclosure {
  padding: 0;
  border-color: rgba(231,196,111,.24);
  background:
    radial-gradient(circle at 82% 0%, rgba(53,198,211,.16), transparent 36%),
    radial-gradient(circle at 14% 0%, rgba(231,196,111,.18), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.072), rgba(255,255,255,.018));
}
.event-today-focus {
  display: grid;
  grid-template-columns: 116px minmax(0, 1fr);
  gap: 14px;
  align-items: end;
  margin-bottom: 14px;
  padding: 12px;
  border-radius: 20px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.022)),
    rgba(5,15,28,.30);
  border: 1px solid rgba(255,255,255,.08);
}
.event-focus-poster {
  min-height: 154px;
  border-radius: 17px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  background-color: rgba(4, 13, 24, .72);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 16px 30px rgba(0,0,0,.28);
}
.event-today-focus small,
.event-day-copy small {
  color: var(--gold-light);
  font-size: 8.5px;
  font-weight: 950;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.event-today-focus strong {
  display: block;
  margin: 5px 0 4px;
  color: var(--white);
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1.04;
}
.event-today-focus span {
  color: rgba(255,255,255,.70);
  font-size: 12px;
  line-height: 1.35;
  font-weight: 760;
}
.event-week-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.event-day-card {
  position: relative;
  min-height: clamp(330px, 78vw, 430px);
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(5,15,28,.40);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.event-day-card.is-today {
  border-color: rgba(231,196,111,.62);
  box-shadow: 0 16px 32px rgba(199,154,74,.20), inset 0 0 0 1px rgba(231,196,111,.18);
}
.event-day-backdrop,
.event-day-media,
.event-day-shade {
  position: absolute;
  inset: 0;
}
.event-day-backdrop {
  background-size: cover;
  background-position: center top;
  opacity: .46;
  filter: blur(13px) saturate(1.18);
  transform: scale(1.16);
  animation: eventPosterBackdropPan 18s ease-in-out infinite alternate;
}
.event-day-media {
  inset: 0;
  border-radius: 20px;
  background-size: cover;
  background-position: center top;
  background-repeat: no-repeat;
  background-color: rgba(4, 13, 24, .40);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.075);
  transform: scale(1.025);
  animation: eventPosterPan 16s cubic-bezier(.42, 0, .20, 1) infinite alternate;
  transition: filter .7s var(--ease-out);
}
.event-day-card:hover .event-day-media {
  filter: saturate(1.06);
}
.event-day-shade {
  background:
    linear-gradient(180deg, rgba(3,12,22,.04), rgba(3,12,22,.18) 28%, rgba(3,12,22,.70) 72%, rgba(3,12,22,.96)),
    linear-gradient(90deg, rgba(3,12,22,.26), transparent 58%, rgba(3,12,22,.12));
}
.event-day-copy {
  position: absolute;
  inset: auto 0 0;
  display: grid;
  gap: 4px;
  padding: 14px;
}
.event-day-copy strong {
  color: var(--white);
  font-family: var(--font-display);
  font-size: 22px;
  line-height: 1.02;
  letter-spacing: 0;
}
.event-day-copy em {
  color: rgba(255,255,255,.68);
  font-style: normal;
  font-size: 11.3px;
  line-height: 1.25;
  font-weight: 780;
}
.event-day-copy b {
  width: fit-content;
  margin-top: 4px;
  padding: 6px 9px;
  border-radius: 999px;
  color: #071322;
  background: linear-gradient(145deg, #f5d980, #b98a3b);
  font-size: 11px;
  line-height: 1;
  font-weight: 950;
}
@keyframes eventPosterDrift {
  from { transform: scale(1.02) translate3d(-.6%, -.4%, 0); }
  to { transform: scale(1.08) translate3d(.8%, .6%, 0); }
}
@keyframes eventPosterPan {
  0% {
    background-position: center 0%;
    transform: scale(1.025);
  }
  100% {
    background-position: center 100%;
    transform: scale(1.045);
  }
}
@keyframes eventPosterBackdropPan {
  0% { background-position: center 0%; }
  100% { background-position: center 100%; }
}

.activity-experience {
  position: relative;
  overflow: hidden;
  padding: 18px;
  border-radius: 24px;
  border: 1px solid rgba(231,196,111,.24);
  background:
    radial-gradient(circle at 88% 0%, rgba(53,198,211,.16), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.018));
  box-shadow:
    0 28px 58px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.09);
}
.activity-experience::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(255,255,255,.08), transparent 28%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.028) 0 1px, transparent 1px 12px);
  opacity: .42;
  pointer-events: none;
}
.activity-experience-head,
.activity-experience-nav,
.activity-experience-window,
.activity-experience-controls {
  position: relative;
  z-index: 1;
}
.activity-experience-head {
  display: grid;
  gap: 7px;
  margin-bottom: 15px;
}
.activity-experience-head span,
.activity-slide-head small,
.activity-next-focus small {
  color: var(--gold-light);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.activity-experience-head h3 {
  margin: 0;
  color: var(--white);
  font-family: var(--font-display);
  font-size: 32px;
  line-height: 1.02;
  letter-spacing: 0;
}
.activity-experience-head p {
  margin: 0;
  color: rgba(255,255,255,.68);
  font-size: 12.5px;
  line-height: 1.45;
  font-weight: 730;
}
.activity-experience-nav {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 14px;
}
.activity-experience-nav button {
  min-width: 0;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  grid-template-areas:
    "icon label"
    "icon sub";
  gap: 2px 8px;
  align-items: center;
  min-height: 58px;
  padding: 9px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(5,15,28,.36);
  color: var(--white);
  text-align: left;
  cursor: pointer;
  transition: transform .24s var(--ease-out), border-color .24s var(--ease-out), background .24s var(--ease-out);
}
.activity-experience-nav button.is-active {
  border-color: rgba(231,196,111,.62);
  background: linear-gradient(145deg, rgba(231,196,111,.25), rgba(53,198,211,.13));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 12px 24px rgba(0,0,0,.18);
}
.activity-experience-nav button:active {
  transform: scale(.98);
}
.activity-experience-nav i {
  grid-area: icon;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  color: #071322;
  background: linear-gradient(145deg, #f5d980, #b98a3b);
}
.activity-experience-nav span {
  grid-area: label;
  min-width: 0;
  color: var(--white);
  font-size: 12px;
  line-height: 1.12;
  font-weight: 950;
}
.activity-experience-nav small {
  grid-area: sub;
  min-width: 0;
  color: rgba(255,255,255,.55);
  font-size: 9.6px;
  line-height: 1.18;
  font-weight: 760;
}
.activity-experience-window {
  overflow: hidden;
  border-radius: 21px;
  max-height: min(660px, calc(100dvh - var(--header-h) - 150px));
}
.activity-experience-track {
  display: flex;
  align-items: flex-start;
  transform: translateX(var(--activity-slide-offset, 0%));
  transition: transform .56s cubic-bezier(.22, .84, .25, 1);
  will-change: transform;
}
.activity-experience-slide {
  flex: 0 0 100%;
  min-width: 0;
  display: grid;
  gap: 14px;
  padding: 14px;
  border-radius: 21px;
  background: rgba(5,15,28,.30);
  border: 1px solid rgba(255,255,255,.08);
  max-height: min(660px, calc(100dvh - var(--header-h) - 150px));
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  opacity: .46;
  transform: scale(.985);
  transition: opacity .38s var(--ease-out), transform .38s var(--ease-out);
  pointer-events: none;
}
.activity-experience-slide::-webkit-scrollbar,
.activity-experience .event-week-grid::-webkit-scrollbar,
.activity-experience .event-activity-grid::-webkit-scrollbar {
  display: none;
}
.activity-experience-slide.is-active {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
}
.activity-slide-head {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
}
.activity-slide-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: #071322;
  background: linear-gradient(145deg, #f5d980, #b98a3b);
  box-shadow: 0 12px 26px rgba(0,0,0,.22);
}
.activity-slide-head h4 {
  margin: 3px 0 3px;
  color: var(--white);
  font-family: var(--font-display);
  font-size: 25px;
  line-height: 1.02;
  letter-spacing: 0;
}
.activity-slide-head p {
  margin: 0;
  color: rgba(255,255,255,.62);
  font-size: 11.6px;
  line-height: 1.35;
  font-weight: 720;
}
.activity-slide-body {
  display: grid;
  gap: 13px;
  align-content: start;
}
.activity-next-focus {
  display: grid;
  gap: 4px;
  padding: 13px;
  border-radius: 17px;
  background: linear-gradient(145deg, rgba(231,196,111,.18), rgba(53,198,211,.10));
  border: 1px solid rgba(231,196,111,.22);
}
.activity-next-focus strong {
  color: var(--white);
  font-size: 17px;
  line-height: 1.2;
  font-weight: 950;
}
.activity-next-focus span {
  color: rgba(255,255,255,.62);
  font-size: 11.3px;
  line-height: 1.35;
  font-weight: 720;
}
.activity-experience .event-activity-grid {
  max-height: 342px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-right: 2px;
}
.activity-experience .event-week-grid {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  padding: 2px 2px 8px;
}
.activity-experience .event-day-card {
  flex: 0 0 min(264px, 76vw);
  min-height: 360px;
  scroll-snap-align: start;
}
.activity-experience .op-note {
  margin-top: 0;
}
.activity-experience-controls {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 42px;
  gap: 10px;
  align-items: center;
  margin-top: 13px;
}
.activity-experience-controls button {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(5,15,28,.42);
  color: var(--white);
  cursor: pointer;
}
.activity-experience-controls span {
  text-align: center;
  color: rgba(255,255,255,.62);
  font-size: 11px;
  line-height: 1;
  font-weight: 850;
  letter-spacing: .08em;
}
@media (max-width: 560px) {
  .activity-experience {
    padding: 12px;
    border-radius: 20px;
  }
  .activity-experience-head {
    gap: 5px;
    margin-bottom: 10px;
  }
  .activity-experience-head h3 {
    font-size: 24px;
  }
  .activity-experience-head p {
    font-size: 11px;
    line-height: 1.35;
  }
  .activity-experience-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    margin-bottom: 10px;
  }
  .activity-experience-nav button {
    grid-template-columns: 1fr;
    grid-template-areas:
      "icon"
      "label";
    justify-items: center;
    min-height: 60px;
    padding: 7px 5px;
    text-align: center;
  }
  .activity-experience-nav i {
    width: 30px;
    height: 30px;
    border-radius: 11px;
  }
  .activity-experience-nav span {
    font-size: 10.5px;
    line-height: 1.1;
  }
  .activity-experience-nav small {
    display: none;
  }
  .activity-experience-window,
  .activity-experience-slide {
    max-height: min(560px, calc(100dvh - var(--header-h) - 178px));
  }
  .activity-experience-slide {
    padding: 11px;
    gap: 11px;
  }
  .activity-slide-head {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 10px;
  }
  .activity-slide-icon {
    width: 42px;
    height: 42px;
  }
  .activity-slide-head h4 {
    font-size: 22px;
  }
  .activity-slide-head p {
    display: none;
  }
  .activity-next-focus {
    padding: 11px;
    border-radius: 15px;
  }
  .activity-next-focus strong {
    font-size: 15.5px;
  }
  .activity-experience .event-activity-grid {
    max-height: 282px;
    gap: 7px;
  }
  .event-program-daily {
    padding: 13px;
    border-radius: 20px;
  }
  .event-activity-grid {
    grid-template-columns: 1fr;
  }
  .event-activity-pill {
    grid-template-columns: 54px minmax(0, 1fr);
    min-height: 54px;
    padding: 8px;
    border-radius: 15px;
  }
  .event-activity-pill b {
    height: 38px;
    border-radius: 12px;
    font-size: 12px;
  }
  .event-activity-pill span {
    font-size: 11.8px;
  }
  .event-activity-pill em {
    font-size: 9.5px;
  }
  .activity-experience .event-week-grid {
    display: flex;
    grid-template-columns: none;
    gap: 9px;
  }
  .event-today-focus {
    grid-template-columns: 98px minmax(0, 1fr);
    gap: 11px;
  }
  .activity-experience .event-today-focus {
    grid-template-columns: 78px minmax(0, 1fr);
    gap: 10px;
    padding: 10px;
    border-radius: 16px;
    margin-bottom: 10px;
  }
  .event-focus-poster {
    min-height: 136px;
  }
  .activity-experience .event-focus-poster {
    min-height: 112px;
    border-radius: 14px;
  }
  .event-today-focus strong {
    font-size: 22px;
  }
  .activity-experience .event-today-focus strong {
    font-size: 18px;
  }
  .activity-experience .event-today-focus span {
    font-size: 10.8px;
  }
  .event-day-card {
    min-height: 380px;
  }
  .activity-experience .event-day-card {
    flex-basis: min(268px, 74vw);
    min-height: 330px;
  }
  .activity-experience-controls {
    margin-top: 10px;
  }
  .activity-experience-controls button {
    width: 40px;
    height: 40px;
    border-radius: 13px;
  }
}

.price-card {
  position: relative;
  overflow: hidden;
  padding: 17px;
  border-radius: 18px;
  border: 1px solid rgba(53,198,211,.16);
  background:
    radial-gradient(circle at 88% 0%, rgba(53,198,211,.14), transparent 34%),
    radial-gradient(circle at 12% 0%, rgba(199,154,74,.14), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.058), rgba(255,255,255,.016));
  box-shadow:
    0 18px 38px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.075);
}
.price-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, rgba(53,198,211,.78), var(--gold-soft), var(--gold));
}
.price-head {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 5px;
  margin-bottom: 13px;
}
.price-head h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 23px;
  line-height: 1.12;
  color: var(--white);
}
.price-group {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 8px;
  padding: 12px;
  border-radius: 16px;
  background: rgba(5,15,28,.28);
  border: 1px solid rgba(255,255,255,.075);
}
.price-group + .price-group {
  margin-top: 10px;
}
.price-group-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(231,196,111,.22);
}
.price-group-title span {
  color: var(--white);
  font-weight: 900;
  font-size: 13.5px;
}
.price-group-title small {
  color: var(--gold-light);
  font-size: 8.5px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
}
.price-rows {
  display: grid;
  gap: 8px;
}
.price-row {
  display: grid;
  grid-template-columns: minmax(116px, .72fr) minmax(0, 1fr);
  gap: 10px;
  align-items: stretch;
}
.price-service {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 4px;
  padding: 9px 10px;
  border-radius: 13px;
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(255,255,255,.07);
}
.price-service strong {
  color: var(--white);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.15;
}
.price-service span {
  color: rgba(255,255,255,.58);
  font-size: 10.5px;
  font-weight: 750;
  line-height: 1.25;
}
.price-months {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 4px;
}
.price-months span {
  min-width: 0;
  min-height: 48px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 4px;
  border-radius: 12px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.065);
}
.price-months em {
  color: rgba(255,255,255,.50);
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.price-months b {
  color: var(--white);
  font-size: 12.3px;
  font-weight: 900;
  line-height: 1;
}
.price-months span.is-current {
  background: linear-gradient(145deg, rgba(199,154,74,.30), rgba(199,154,74,.09));
  border-color: rgba(231,196,111,.50);
  box-shadow: 0 0 0 1px rgba(231,196,111,.12), 0 8px 18px rgba(199,154,74,.14);
}
.price-months span.is-current em,
.price-months span.is-current b {
  color: var(--gold-light);
}
.price-group-multi {
  border-color: rgba(231,196,111,.18);
  background:
    radial-gradient(circle at 14% 0%, rgba(199,154,74,.12), transparent 42%),
    rgba(5,15,28,.30);
}

.bev-card {
  position: relative;
  overflow: hidden;
  padding: 0;
  border-radius: 20px;
  border: 1px solid rgba(231,196,111,.20);
  background:
    radial-gradient(circle at 15% 0%, rgba(231,196,111,.18), transparent 36%),
    radial-gradient(circle at 100% 15%, rgba(53,198,211,.13), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.060), rgba(255,255,255,.018));
  box-shadow:
    0 24px 46px rgba(0,0,0,.25),
    inset 0 1px 0 rgba(255,255,255,.075);
}
.bev-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(135deg, rgba(255,255,255,.08), transparent 28%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.030) 0 1px, transparent 1px 9px);
  opacity: .42;
  pointer-events: none;
}
.bev-hero {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 16px;
  padding: 18px 18px 15px;
  border-bottom: 1px solid rgba(231,196,111,.18);
}
.bev-hero h3 {
  margin: 4px 0 2px;
  font-family: var(--font-display);
  color: var(--white);
  font-size: 28px;
  line-height: 1.04;
}
.bev-hero p {
  margin: 0;
  color: rgba(255,255,255,.64);
  font-size: 12px;
  font-weight: 760;
}
.bev-count {
  flex: 0 0 auto;
  width: 86px;
  min-height: 74px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 2px;
  padding: 10px;
  border-radius: 18px;
  background:
    linear-gradient(145deg, rgba(199,154,74,.28), rgba(199,154,74,.08)),
    rgba(5,15,28,.42);
  border: 1px solid rgba(231,196,111,.38);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 12px 26px rgba(0,0,0,.20);
}
.bev-count strong {
  color: var(--gold-light);
  font-size: 30px;
  line-height: 1;
  font-weight: 950;
}
.bev-count span {
  color: rgba(255,255,255,.68);
  font-size: 8.2px;
  font-weight: 900;
  letter-spacing: .10em;
  text-transform: uppercase;
  text-align: center;
}
.bev-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  padding: 14px;
}
.bev-group {
  min-width: 0;
  display: grid;
  gap: 10px;
  padding: 12px;
  border-radius: 17px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.062), rgba(255,255,255,.024));
  border: 1px solid rgba(255,255,255,.082);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.bev-group-head {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
}
.bev-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: var(--white);
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.30), transparent 34%),
    linear-gradient(145deg, var(--gold-light), var(--gold));
  box-shadow: 0 9px 18px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.25);
}
.bev-group-head small {
  display: block;
  color: var(--gold-light);
  font-size: 7.5px;
  font-weight: 950;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.bev-group-head h4 {
  margin: 2px 0 0;
  color: var(--white);
  font-size: 14.2px;
  line-height: 1.12;
  font-weight: 920;
}
.bev-group ul {
  list-style: none;
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
}
.bev-group li {
  position: relative;
  min-width: 0;
  padding: 0 0 0 12px;
  color: rgba(255,255,255,.78);
  font-size: 11.4px;
  line-height: 1.32;
  font-weight: 720;
}
.bev-group li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .56em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--gold-light);
  box-shadow: 0 0 8px rgba(231,196,111,.42);
}
.bev-group li span {
  display: block;
  min-width: 0;
}
.bev-group li small {
  display: block;
  margin-top: 2px;
  color: rgba(255,255,255,.52);
  font-size: 10.4px;
  line-height: 1.35;
  font-weight: 640;
}
.lobby-bev-card .bev-grid {
  grid-template-columns: minmax(0, 1fr);
}
.lobby-bev-group {
  gap: 11px;
}
.lobby-bev-group ul {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
}
.lobby-bev-loading strong {
  font-size: 18px;
}
.lobby-bev-placeholder {
  opacity: .78;
}
.bev-card .op-note {
  padding: 0 16px 16px;
  margin-top: 0;
}
.op-card.lux-disclosure,
.price-card.lux-disclosure,
.bev-card.lux-disclosure {
  padding: 0;
}
.bev-card.lux-disclosure .op-note {
  padding: 0;
}
.bev-count-inline {
  position: relative;
  z-index: 1;
  width: auto;
  min-height: 58px;
  margin: 0 0 12px;
  grid-template-columns: auto minmax(0, 1fr);
  justify-content: start;
  justify-items: start;
  padding: 10px 13px;
}
.bev-count-inline strong {
  font-size: 26px;
}

.ala-menu-card .bev-grid {
  grid-template-columns: minmax(0, 1fr);
}
.ala-menu-card .bev-count-inline span {
  font-size: 10px;
  letter-spacing: .07em;
}
.ala-menu-group {
  gap: 12px;
}
.ala-menu-group ul {
  gap: 9px;
}
.ala-menu-group li {
  padding-left: 13px;
  font-size: 12px;
  line-height: 1.38;
}
.ala-menu-group li span {
  color: rgba(255,255,255,.90);
  font-weight: 860;
}
.ala-menu-group li small {
  color: rgba(255,255,255,.58);
  font-size: 11.2px;
  line-height: 1.42;
  font-weight: 640;
}

@media (max-width: 430px) {
  .op-week {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .op-day {
    min-height: 50px;
  }
  .op-day span {
    font-size: 8.8px;
  }
  .op-day strong {
    font-size: 12.4px;
  }
  .price-row {
    grid-template-columns: 1fr;
  }
  .price-months {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .price-months span {
    min-height: 44px;
  }
  .lb-exp-card {
    padding: 15px;
  }
  .lb-exp-head h3 {
    font-size: 24px;
  }
  .lb-exp-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lb-exp-metric {
    grid-template-columns: 34px minmax(0, 1fr);
    min-height: 62px;
    padding: 9px;
    column-gap: 8px;
  }
  .lb-exp-metric span {
    width: 34px;
    height: 34px;
    border-radius: 13px;
  }
  .lb-exp-metric small {
    font-size: 7.6px;
  }
  .lb-exp-metric strong {
    font-size: 12px;
  }
  .lux-summary {
    grid-template-columns: 42px minmax(0, 1fr) 32px;
    min-height: 70px;
    padding: 12px;
    gap: 10px;
  }
  .lux-summary-icon {
    width: 42px;
    height: 42px;
    border-radius: 15px;
  }
  .lux-summary-copy strong {
    font-size: 18.5px;
  }
  .lux-body {
    padding: 0 12px 12px;
  }
  .bev-hero {
    align-items: center;
    padding: 16px;
  }
  .bev-hero h3 {
    font-size: 25px;
  }
  .bev-count {
    width: 74px;
    min-height: 68px;
  }
  .bev-grid {
    grid-template-columns: 1fr;
    gap: 9px;
    padding: 12px;
  }
  .bev-group {
    padding: 11px;
  }
  .lobby-bev-group ul {
    grid-template-columns: 1fr;
  }
}

/* CONTACT BLOCKS */
.sec-contact-intro,
.sec-contact-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 15px 16px;
  border-radius: 18px;
  overflow: hidden;
  background:
    linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.018)),
    radial-gradient(circle at 10% 20%, rgba(199,154,74,.18), transparent 42%),
    rgba(8,31,50,.52);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow:
    0 14px 30px rgba(0,0,0,.20),
    inset 0 1px 0 rgba(255,255,255,.08);
}
.sec-contact-intro::before,
.sec-contact-item::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--gold-soft), var(--gold), rgba(53,198,211,.72));
}
.sec-contact-item {
  min-height: 74px;
  color: var(--white);
  text-decoration: none;
  -webkit-tap-highlight-color: transparent;
  transition: transform .18s var(--ease-out), border-color .22s ease, background .22s ease;
}
.sec-contact-item:active {
  transform: scale(.985);
  border-color: rgba(199,154,74,.36);
  background:
    linear-gradient(135deg, rgba(199,154,74,.13), rgba(255,255,255,.02)),
    radial-gradient(circle at 10% 20%, rgba(199,154,74,.22), transparent 42%),
    rgba(8,31,50,.58);
}
.contact-intro-icon,
.contact-item-icon {
  position: relative;
  z-index: 1;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep));
  border: 1px solid rgba(255,255,255,.22);
  box-shadow:
    0 8px 18px rgba(199,154,74,.28),
    inset 0 2px 0 rgba(255,255,255,.34),
    inset 0 -2px 5px rgba(0,0,0,.22);
}
.contact-intro-icon i,
.contact-item-icon i {
  font-size: 16px;
  color: var(--white);
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.45));
}
.contact-intro-body,
.contact-item-body {
  position: relative;
  z-index: 1;
  flex: 1;
  min-width: 0;
}
.contact-intro-body h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .002em;
  color: var(--white);
}
.contact-intro-body p {
  margin: 7px 0 0;
  font-size: 13.5px;
  line-height: 1.55;
  font-weight: 600;
  color: rgba(255,255,255,.70);
}
.contact-item-label {
  display: block;
  margin-bottom: 5px;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.52);
}
.contact-item-value {
  display: block;
  font-size: 15.5px;
  font-weight: 800;
  line-height: 1.25;
  color: rgba(255,255,255,.94);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.contact-item-action {
  position: relative;
  z-index: 1;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  color: var(--gold-light);
  background: rgba(199,154,74,.10);
  border: 1px solid rgba(199,154,74,.22);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.contact-item-action i {
  font-size: 12px;
}

/* NOTE / QUOTE */
.sec-note {
  position: relative;
  padding: 16px 18px 16px 16px;
  display: flex;
  gap: 14px;
  background: linear-gradient(135deg, rgba(199,154,74,.10), rgba(255,255,255,.02));
  border: 1px solid rgba(199,154,74,.18);
  border-radius: 16px;
  font-size: 14px;
  line-height: 1.72;
  color: rgba(255,255,255,.88);
}
.note-icon {
  width: 36px; height: 36px;
  border-radius: 10px;
  background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep));
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(199,154,74,.4),
              inset 0 1px 0 rgba(255,255,255,.3);
}
.note-icon i { font-size: 13px; color: var(--white); }
.note-body { flex: 1; }
.note-body strong { color: var(--gold-light); font-weight: 700; }
.note-body p { margin: 0; }

/* LIST SECTION */
.sec-list {
  padding: 16px 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.015));
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 18px;
}
.list-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 700;
  color: var(--white);
  margin-bottom: 14px;
  position: relative;
  padding-bottom: 12px;
  letter-spacing: .002em;
}
.list-title::after {
  content: '';
  position: absolute;
  bottom: 0; left: 0;
  width: 36px; height: 2px;
  background: linear-gradient(90deg, var(--gold), transparent);
  border-radius: 2px;
}
.list-title-icon {
  font-size: 16px !important;
  color: var(--gold) !important;
  width: 32px; height: 32px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(199,154,74,.22), rgba(199,154,74,.05));
  border: 1px solid rgba(199,154,74,.25);
  display: grid;
  place-items: center;
}
.list-items {
  list-style: none;
  display: flex;
  flex-direction: column;
}
.list-items li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 11px 0;
  font-size: 14px;
  line-height: 1.65;
  color: rgba(255,255,255,.88);
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.list-items li:last-child { border-bottom: 0; }
.list-bullet {
  flex-shrink: 0;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(199,154,74,.22), rgba(199,154,74,.06));
  border: 1px solid rgba(199,154,74,.28);
  display: grid;
  place-items: center;
  margin-top: 1px;
}
.list-bullet i {
  font-size: 9px;
  color: var(--gold-light);
}
.list-text { flex: 1; }
.list-text span { color: rgba(255,255,255,.55); font-size: 13px; }

/* PARAGRAPH */
.sec-para {
  font-size: 14px;
  line-height: 1.76;
  color: rgba(255,255,255,.85);
  padding: 6px;
}
.sec-para strong { color: var(--white); font-weight: 700; }

/* RAW */
.sec-raw {
  font-size: 14px;
  color: rgba(255,255,255,.75);
  line-height: 1.6;
}
.sec-raw * { color: inherit !important; background: transparent !important; }

/* ════════════════════════════════════════════════════════
   PDF BUTTON
═══════════════════════════════════════════════════════ */
.lb-pdf-btn {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 8px;
  padding: 14px 18px;
  border-radius: 16px;
  background: linear-gradient(135deg, var(--navy-mid), var(--navy));
  border: 1px solid rgba(199,154,74,.35);
  color: var(--white);
  text-decoration: none;
  font-weight: 700;
  font-size: 15px;
  box-shadow: var(--shadow-soft);
  -webkit-tap-highlight-color: transparent;
  transition: transform .15s, border-color .2s;
}
.lb-pdf-btn:active { transform: scale(.97); border-color: var(--gold); }
.lb-pdf-icon {
  width: 42px; height: 42px;
  border-radius: 12px;
  background: linear-gradient(145deg, #ef4444, #b91c1c);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(239,68,68,.35), inset 0 1px 0 rgba(255,255,255,.25);
}
.lb-pdf-icon i { font-size: 17px; color: var(--white); }
.lb-pdf-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.lb-pdf-info span { font-family: var(--font-display); font-size: 18px; font-weight: 700; }
.lb-pdf-info small { font-size: 10.5px; color: var(--gold-light); margin-top: 2px; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; }

/* ════════════════════════════════════════════════════════
   RESERVATION CTA
═══════════════════════════════════════════════════════ */
.lb-resv-cta {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 14px 14px 0;
  padding: 16px 18px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.22);
  color: var(--white);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform .2s var(--ease-out), box-shadow .25s ease;
  font-family: inherit;
  width: calc(100% - 28px);
  text-align: left;
  /* Default (gold / restaurant) */
  background: linear-gradient(135deg, var(--gold-soft) 0%, var(--gold) 50%, var(--gold-deep) 100%);
  box-shadow: 0 14px 36px rgba(199,154,74,.45),
              inset 0 1px 0 rgba(255,255,255,.4),
              inset 0 -3px 6px rgba(0,0,0,.15);
  animation: ctaPulseGold 2.4s ease-in-out 1.5s infinite;
}
@keyframes ctaPulseGold {
  0%, 100% { box-shadow: 0 14px 36px rgba(199,154,74,.45), inset 0 1px 0 rgba(255,255,255,.4), inset 0 -3px 6px rgba(0,0,0,.15); }
  50%      { box-shadow: 0 18px 44px rgba(199,154,74,.6), 0 0 0 6px rgba(199,154,74,.15), inset 0 1px 0 rgba(255,255,255,.4), inset 0 -3px 6px rgba(0,0,0,.15); }
}

/* Spa — pink */
.lb-resv-cta.is-pink {
  background: linear-gradient(135deg, #ff9eb6 0%, #c54180 55%, #6e2447 100%);
  box-shadow: 0 14px 36px rgba(197,65,128,.42),
              inset 0 1px 0 rgba(255,255,255,.4),
              inset 0 -3px 6px rgba(0,0,0,.15);
  animation: ctaPulsePink 2.4s ease-in-out 1.5s infinite;
}
@keyframes ctaPulsePink {
  0%, 100% { box-shadow: 0 14px 36px rgba(197,65,128,.42), inset 0 1px 0 rgba(255,255,255,.4), inset 0 -3px 6px rgba(0,0,0,.15); }
  50%      { box-shadow: 0 18px 44px rgba(197,65,128,.6), 0 0 0 6px rgba(197,65,128,.15), inset 0 1px 0 rgba(255,255,255,.4), inset 0 -3px 6px rgba(0,0,0,.15); }
}

/* Cabana — teal */
.lb-resv-cta.is-teal {
  background: linear-gradient(135deg, #5fd9e6 0%, #1a8a9d 55%, #0c5b6c 100%);
  box-shadow: 0 14px 36px rgba(26,138,157,.45),
              inset 0 1px 0 rgba(255,255,255,.4),
              inset 0 -3px 6px rgba(0,0,0,.15);
  animation: ctaPulseTeal 2.4s ease-in-out 1.5s infinite;
}
@keyframes ctaPulseTeal {
  0%, 100% { box-shadow: 0 14px 36px rgba(26,138,157,.45), inset 0 1px 0 rgba(255,255,255,.4), inset 0 -3px 6px rgba(0,0,0,.15); }
  50%      { box-shadow: 0 18px 44px rgba(26,138,157,.6), 0 0 0 6px rgba(26,138,157,.18), inset 0 1px 0 rgba(255,255,255,.4), inset 0 -3px 6px rgba(0,0,0,.15); }
}
.lb-resv-cta:active { transform: scale(.97); animation: none; }

.lb-resv-cta-icon {
  width: 44px; height: 44px;
  border-radius: 12px;
  background: rgba(255,255,255,.18);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  border: 1px solid rgba(255,255,255,.32);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.4);
}
.lb-resv-cta-icon i { font-size: 19px; color: var(--white); filter: drop-shadow(0 1px 2px rgba(0,0,0,.4)); }
.lb-resv-cta-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.lb-resv-cta-body strong {
  font-family: var(--font-display);
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -.005em;
  text-shadow: 0 1px 2px rgba(0,0,0,.2);
}
.lb-resv-cta-body small {
  font-size: 11px;
  color: rgba(255,255,255,.85);
  margin-top: 3px;
  letter-spacing: .04em;
}
.lb-resv-cta-arrow { font-size: 14px !important; color: var(--white); opacity: .8; }

/* ════════════════════════════════════════════════════════
   RESERVATION MODAL
═══════════════════════════════════════════════════════ */
.lb-modal {
  position: fixed;
  inset: 0;
  z-index: 300;
  display: flex;
  align-items: flex-end;
}
.lb-modal[hidden] { display: none !important; }
.lb-modal-scrim {
  position: absolute;
  inset: 0;
  background: rgba(5,15,28,.76);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
  opacity: 0;
  transition: opacity .35s var(--ease-luxury);
}
.lb-modal.is-open .lb-modal-scrim { opacity: 1; }

.lb-modal-card {
  position: relative;
  width: 100%;
  max-height: 92vh;
  background: linear-gradient(165deg, var(--navy) 0%, var(--navy-darker) 95%);
  border-radius: 28px 28px 0 0;
  padding: 14px 22px calc(28px + var(--safe-bot));
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  border-top: 1px solid rgba(199,154,74,.35);
  transform: translateY(100%);
  transition: transform .45s var(--ease-luxury);
  box-shadow: 0 -24px 70px rgba(0,0,0,.62), 0 -4px 16px rgba(0,0,0,.3);
}
.lb-modal.is-open .lb-modal-card { transform: translateY(0); }
.lb-modal-card::-webkit-scrollbar { display: none; }

.lb-modal-handle {
  width: 44px; height: 4px;
  border-radius: 4px;
  background: rgba(255,255,255,.25);
  margin: 0 auto 18px;
}

.lb-modal-head {
  text-align: center;
  padding-bottom: 18px;
  margin-bottom: 18px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.lb-modal-icon {
  width: 60px; height: 60px;
  margin: 0 auto 12px;
  border-radius: 18px;
  background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep));
  display: grid;
  place-items: center;
  box-shadow: 0 12px 32px rgba(0,0,0,.4),
              inset 0 2px 0 rgba(255,255,255,.4),
              inset 0 -3px 6px rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.25);
  animation: modalIconBounce .6s var(--ease) .1s both;
}
@keyframes modalIconBounce {
  from { opacity: 0; transform: scale(.4) rotate(-25deg); }
  to   { opacity: 1; transform: scale(1) rotate(0); }
}
.lb-modal-icon.gold   { background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep)); }
.lb-modal-icon.teal   { background: linear-gradient(145deg, #5fd9e6, #1a8a9d); }
.lb-modal-icon.purple { background: linear-gradient(145deg, #b8a4ff, #6e4abf); }
.lb-modal-icon.pink   { background: linear-gradient(145deg, #ff9eb6, #c54180); }
.lb-modal-icon.blue   { background: linear-gradient(145deg, #6ab8ff, #2c5dad); }
.lb-modal-icon.green  { background: linear-gradient(145deg, #45ec80, #075E54); }
.lb-modal-icon i { font-size: 22px; color: var(--white); filter: drop-shadow(0 2px 4px rgba(0,0,0,.4)); }
.lb-modal-head h3 {
  font-family: var(--font-display);
  font-size: 26px;
  font-weight: 700;
  color: var(--white);
  letter-spacing: -.01em;
}
.lb-modal-head p {
  font-size: 13px;
  color: var(--gold-light);
  margin-top: 4px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 700;
}

/* FORM */
.lb-form { display: flex; flex-direction: column; gap: 14px; }
.lb-field { display: flex; flex-direction: column; gap: 6px; }
.lb-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lb-field span {
  font-size: 11px;
  font-weight: 700;
  color: rgba(255,255,255,.6);
  letter-spacing: .12em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 6px;
}
.lb-field span i { color: var(--gold-light); font-size: 11px; }
.lb-field input,
.lb-field select,
.lb-field textarea {
  width: 100%;
  padding: 13px 14px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  color: var(--white);
  font-size: 15px;
  font-family: inherit;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color .2s, background .2s;
}
.lb-field input:focus,
.lb-field select:focus,
.lb-field textarea:focus {
  outline: none;
  border-color: var(--gold);
  background: rgba(199,154,74,.05);
}
.lb-field.is-invalid input,
.lb-field.is-invalid select,
.lb-field.is-invalid textarea {
  border-color: rgba(255, 107, 107, .9);
  box-shadow: 0 0 0 3px rgba(255, 107, 107, .14);
}
.lb-field select {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath fill='none' stroke='%23e2b96a' stroke-width='2' d='M1 1l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}
.lb-field textarea {
  resize: none;
  font-family: inherit;
  line-height: 1.5;
}
.lb-field input::placeholder,
.lb-field textarea::placeholder { color: rgba(255,255,255,.3); }

.lb-dynamic-fields {
  display: grid;
  gap: 12px;
  padding: 14px;
  border-radius: 18px;
  border: 1px solid rgba(199,154,74,.26);
  background:
    linear-gradient(145deg, rgba(199,154,74,.08), rgba(255,255,255,.025)),
    rgba(255,255,255,.025);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.lb-dynamic-fields[hidden] { display: none !important; }
.lb-dynamic-fields-head {
  display: grid;
  gap: 5px;
  padding-bottom: 2px;
}
.lb-dynamic-fields-head span {
  color: var(--gold-light);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.lb-dynamic-fields-head p {
  margin: 0;
  color: rgba(255,255,255,.68);
  font-size: 12.5px;
  line-height: 1.42;
  font-weight: 650;
}
.lb-dynamic-fields-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.lb-dynamic-field.wide {
  grid-column: 1 / -1;
}
.lb-dynamic-field > span {
  min-height: 18px;
}
.lb-dynamic-field > span > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lb-dynamic-field em {
  margin-left: auto;
  color: rgba(226,185,106,.78);
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  letter-spacing: .08em;
}

.lb-resv-submit {
  margin-top: 6px;
  padding: 16px 18px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.2);
  background: linear-gradient(135deg, var(--green) 0%, var(--green-deep) 100%);
  color: var(--white);
  font-family: inherit;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .02em;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  -webkit-tap-highlight-color: transparent;
  transition: transform .15s, box-shadow .25s;
  box-shadow: 0 12px 30px rgba(37,211,102,.4),
              inset 0 1px 0 rgba(255,255,255,.25);
}
.lb-resv-submit:active { transform: scale(.97); }
.lb-resv-submit i { font-size: 20px; filter: drop-shadow(0 1px 2px rgba(0,0,0,.4)); }

.lb-resv-cancel {
  padding: 12px;
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.5);
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

/* ════════════════════════════════════════════════════════
   MAP IFRAME
═══════════════════════════════════════════════════════ */
.lb-map-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: var(--navy-deep);
}

/* ════════════════════════════════════════════════════════
   CONTACT — Guest Relations Hub
═══════════════════════════════════════════════════════ */

/* Section title */
.lb-section-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .22em;
  color: var(--gold);
  text-transform: uppercase;
  padding: 12px 4px 12px;
  margin-top: 4px;
}
.lb-section-title i {
  font-size: 13px;
  color: var(--gold);
}
.lb-section-title::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(199,154,74,.35), transparent);
}

/* Action grid */
.lb-action-grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.lb-action-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  width: 100%;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.08);
  background: linear-gradient(135deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  color: var(--white);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: transform .25s var(--ease-luxury), border-color .25s var(--ease-luxury), background .25s var(--ease-luxury), box-shadow .25s var(--ease-luxury);
  position: relative;
  overflow: hidden;
  opacity: 0;
  animation: rowEnter .55s var(--ease-luxury) both;
}
.lb-action-card:nth-child(1) { animation-delay: .04s; }
.lb-action-card:nth-child(2) { animation-delay: .10s; }
.lb-action-card:nth-child(3) { animation-delay: .16s; }
.lb-action-card:nth-child(4) { animation-delay: .22s; }
.lb-action-card:nth-child(5) { animation-delay: .28s; }
.lb-action-card:nth-child(6) { animation-delay: .34s; }
.lb-action-card:nth-child(7) { animation-delay: .40s; }
.lb-action-card:nth-child(8) { animation-delay: .46s; }

.lb-action-card-ai {
  border-color: rgba(53,198,211,.24);
  background:
    radial-gradient(circle at 14% 20%, rgba(53,198,211,.20), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.08), rgba(53,198,211,.035));
}

.lb-action-card-ai .lb-action-chev {
  color: rgba(53,198,211,.82);
}
.lb-ai-logo-mark {
  background:
    radial-gradient(circle at 50% 25%, rgba(255,255,255,.24), rgba(83,205,219,.16) 46%, rgba(10,38,59,.86)),
    linear-gradient(145deg, #5fd9e6, #102f4a);
  border-color: rgba(109,223,240,.30);
}
.lb-ai-logo-mark img {
  width: 38px;
  height: 38px;
  object-fit: contain;
  filter: drop-shadow(0 4px 9px rgba(0,0,0,.45));
}

.lb-action-card:active {
  transform: scale(.98);
  background: linear-gradient(135deg, rgba(199,154,74,.18), rgba(199,154,74,.06));
  border-color: rgba(199,154,74,.38);
  box-shadow: 0 4px 16px rgba(0,0,0,.22);
}

.lb-action-icon {
  width: 50px; height: 50px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow:
    0 6px 16px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.35),
    inset 0 -2px 4px rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.22);
  position: relative;
}
.lb-action-icon i {
  font-size: 21px;
  color: var(--white);
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.4));
}
.lb-action-icon.gold   { background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep)); }
.lb-action-icon.teal   { background: linear-gradient(145deg, #5fd9e6, #1a8a9d); }
.lb-action-icon.green  { background: linear-gradient(145deg, #45ec80, #075E54); }
.lb-action-icon.purple { background: linear-gradient(145deg, #b8a4ff, #6e4abf); }
.lb-action-icon.pink   { background: linear-gradient(145deg, #ff9eb6, #c54180); }
.lb-action-icon.blue   { background: linear-gradient(145deg, #6ab8ff, #2c5dad); }

.lb-action-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.lb-action-body strong {
  font-family: var(--font-display);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.005em;
  line-height: 1.15;
}
.lb-action-body small {
  font-size: 12px;
  color: rgba(255,255,255,.55);
  letter-spacing: .015em;
  line-height: 1.35;
}
.lb-action-chev {
  font-size: 13px !important;
  color: rgba(199,154,74,.6);
  flex-shrink: 0;
  transition: transform .25s var(--ease-luxury);
}
.lb-action-card:active .lb-action-chev { transform: translateX(4px); }

/* Direct contact list */
.lb-direct-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lb-contact-row {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px;
  border-radius: 14px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.07);
  text-decoration: none;
  color: var(--white);
  -webkit-tap-highlight-color: transparent;
  transition: background .15s, transform .15s;
}
.lb-contact-row:active { background: rgba(255,255,255,.08); transform: scale(.99); }
.lb-contact-icon {
  width: 46px; height: 46px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3);
}
.lb-contact-icon.green { background: linear-gradient(145deg, #25D366, #075E54); }
.lb-contact-icon.teal  { background: linear-gradient(145deg, var(--teal), #1a8a9d); }
.lb-contact-icon.gold  { background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep)); }
.lb-contact-icon i { font-size: 19px; color: var(--white); filter: drop-shadow(0 1px 2px rgba(0,0,0,.4)); }
.lb-contact-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.lb-contact-body strong { font-family: var(--font-display); font-size: 18px; font-weight: 700; }
.lb-contact-body small { font-size: 13px; color: rgba(255,255,255,.6); margin-top: 2px; }

/* ════════════════════════════════════════════════════════
   GUEST RELATIONS QUICK FAB
═══════════════════════════════════════════════════════ */
.lb-grab-fab {
  position: fixed;
  bottom: calc(20px + var(--safe-bot));
  right: 18px;
  width: 60px; height: 60px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.28);
  background: linear-gradient(145deg, #45ec80 0%, #25D366 50%, #075E54 100%);
  color: var(--white);
  display: grid;
  place-items: center;
  cursor: pointer;
  z-index: 95;
  box-shadow:
    0 14px 38px rgba(37,211,102,.5),
    0 6px 14px rgba(0,0,0,.3),
    inset 0 2px 0 rgba(255,255,255,.4),
    inset 0 -3px 6px rgba(0,0,0,.2);
  transition: transform .28s var(--ease-luxury), opacity .28s var(--ease-luxury);
  -webkit-tap-highlight-color: transparent;
  font-family: inherit;
  animation: fabIn .65s 1s var(--ease) both;
  padding: 0;
}
.lb-room-fab {
  position: fixed;
  bottom: calc(92px + var(--safe-bot));
  right: 18px;
  width: 60px;
  height: 60px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.28);
  background: linear-gradient(145deg, #f7dc91 0%, #c99b43 48%, #123f63 100%);
  color: var(--white);
  display: grid;
  place-items: center;
  cursor: pointer;
  z-index: 95;
  box-shadow:
    0 14px 38px rgba(199,154,74,.42),
    0 6px 14px rgba(0,0,0,.3),
    inset 0 2px 0 rgba(255,255,255,.44),
    inset 0 -3px 6px rgba(0,0,0,.24);
  transition: transform .28s var(--ease-luxury), opacity .28s var(--ease-luxury);
  -webkit-tap-highlight-color: transparent;
  font-family: inherit;
  animation: fabIn .65s .85s var(--ease) both;
  padding: 0;
}
@keyframes fabIn {
  from { opacity: 0; transform: scale(.2) rotate(-180deg); }
  to   { opacity: 1; transform: scale(1) rotate(0); }
}
.lb-grab-fab:active { transform: scale(.92); }
.lb-room-fab:active { transform: scale(.92); }

.lb-grab-fab i.fa-headset {
  font-size: 24px;
  z-index: 2;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.4));
}
.lb-room-fab i.fa-bell-concierge {
  font-size: 24px;
  z-index: 2;
  color: #061220;
  filter: drop-shadow(0 2px 4px rgba(255,255,255,.22));
}

/* Pulsing ring */
.lb-grab-fab-ring {
  position: absolute;
  inset: -4px;
  border-radius: 24px;
  border: 2px solid rgba(37,211,102,.5);
  pointer-events: none;
  animation: fabRingPulse 2.4s ease-out 2s infinite;
  opacity: 0;
}
.lb-room-fab-ring {
  position: absolute;
  inset: -4px;
  border-radius: 24px;
  border: 2px solid rgba(244,213,137,.54);
  pointer-events: none;
  animation: fabRingPulse 2.4s ease-out 1.6s infinite;
  opacity: 0;
}
@keyframes fabRingPulse {
  0%   { opacity: .8; transform: scale(1);   border-width: 2px; }
  100% { opacity: 0;  transform: scale(1.5); border-width: 1px; }
}

/* WhatsApp mini badge */
.lb-grab-fab-badge {
  position: absolute;
  top: -4px; right: -4px;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: linear-gradient(145deg, #25D366, #128C7E);
  border: 2px solid var(--navy-darker);
  display: grid;
  place-items: center;
  z-index: 3;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.lb-room-fab-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: linear-gradient(145deg, #123f63, #061220);
  border: 2px solid var(--navy-darker);
  display: grid;
  place-items: center;
  z-index: 3;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.lb-grab-fab-badge i {
  font-size: 10px;
  color: var(--white);
  filter: none;
}
.lb-room-fab-badge i {
  font-size: 10px;
  color: var(--gold-light);
  filter: none;
}

/* Hover label (desktop + tap initial show) */
.lb-grab-fab-label {
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%);
  background: var(--navy-darker);
  color: var(--white);
  padding: 7px 12px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  white-space: nowrap;
  border: 1px solid rgba(199,154,74,.3);
  box-shadow: 0 6px 16px rgba(0,0,0,.4);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s, transform .25s;
}
.lb-room-fab-label {
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%);
  background: var(--navy-darker);
  color: var(--white);
  padding: 7px 12px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0;
  white-space: nowrap;
  border: 1px solid rgba(244,213,137,.36);
  box-shadow: 0 6px 16px rgba(0,0,0,.4);
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s, transform .25s;
}
.lb-grab-fab-label::after {
  content: '';
  position: absolute;
  right: -5px; top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 8px; height: 8px;
  background: var(--navy-darker);
  border-right: 1px solid rgba(199,154,74,.3);
  border-top: 1px solid rgba(199,154,74,.3);
}
.lb-room-fab-label::after {
  content: '';
  position: absolute;
  right: -5px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 8px;
  height: 8px;
  background: var(--navy-darker);
  border-right: 1px solid rgba(244,213,137,.36);
  border-top: 1px solid rgba(244,213,137,.36);
}
@media (hover: hover) {
  .lb-grab-fab:hover .lb-grab-fab-label { opacity: 1; }
  .lb-room-fab:hover .lb-room-fab-label { opacity: 1; }
}

/* Initial label peek — first 3 sec */
.lb-grab-fab.peek .lb-grab-fab-label {
  opacity: 1;
  animation: labelPeek 4s ease forwards;
}
.lb-room-fab.peek .lb-room-fab-label {
  opacity: 1;
  animation: labelPeek 4s ease forwards;
}
@keyframes labelPeek {
  0%   { opacity: 0; transform: translateY(-50%) translateX(8px); }
  20%  { opacity: 1; transform: translateY(-50%) translateX(0); }
  85%  { opacity: 1; transform: translateY(-50%) translateX(0); }
  100% { opacity: 0; transform: translateY(-50%) translateX(8px); }
}

/* Hide FAB when on contact screen / drawer / modal open */
body.fab-hidden .lb-grab-fab,
body.drawer-open .lb-grab-fab,
body.modal-open .lb-grab-fab,
body.sunrise-scanner-open .lb-grab-fab,
body.fab-hidden .lb-room-fab,
body.drawer-open .lb-room-fab,
body.modal-open .lb-room-fab,
body.sunrise-scanner-open .lb-room-fab {
  opacity: 0;
  pointer-events: none;
  transform: scale(.8) translateY(20px);
}

/* ════════════════════════════════════════════════════════
   EMPTY STATE
═══════════════════════════════════════════════════════ */
.lb-empty {
  text-align: center;
  padding: 40px 24px;
  color: var(--muted);
}
.lb-empty-icon {
  width: 72px; height: 72px;
  margin: 0 auto 16px;
  border-radius: 22px;
  background: linear-gradient(145deg, rgba(199,154,74,.18), rgba(199,154,74,.04));
  border: 1px solid rgba(199,154,74,.22);
  display: grid;
  place-items: center;
}
.lb-empty-icon i { font-size: 28px; color: var(--gold); }
.lb-empty h3 {
  font-family: var(--font-display);
  font-size: 22px;
  margin-bottom: 8px;
  color: rgba(255,255,255,.85);
}

/* ════════════════════════════════════════════════════════
   SYNC BAR
═══════════════════════════════════════════════════════ */
.lb-sync-bar {
  text-align: center;
  padding: 14px 16px 4px;
  font-size: 11px;
  color: rgba(255,255,255,.32);
  letter-spacing: .05em;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
}
.lb-sync-bar i { font-size: 9px; color: var(--green); }

/* ════════════════════════════════════════════════════════
   LOADER / SPLASH
═══════════════════════════════════════════════════════ */
.lb-loader {
  position: fixed;
  inset: 0;
  background:
    radial-gradient(ellipse at center, rgba(53,198,211,.12) 0%, transparent 55%),
    radial-gradient(ellipse 70% 60% at center bottom, rgba(199,154,74,.10) 0%, transparent 70%),
    var(--navy-darker);
  display: grid;
  place-items: center;
  z-index: 999;
  transition: opacity .5s ease;
}
.lb-loader.fade-out { opacity: 0; pointer-events: none; }

.lb-loader-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  padding: 40px 20px;
}

.lb-loader-mark {
  font-size: 92px !important;
  opacity: 0;
  animation: splashWordmark 1s cubic-bezier(.16,1,.3,1) .15s both;
}
@keyframes splashWordmark {
  from { opacity: 0; transform: scale(.85) translateY(20px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

.lb-loader-line {
  width: 0;
  height: 1.5px;
  background: linear-gradient(90deg, transparent, var(--gold) 30%, var(--gold-light) 50%, var(--gold) 70%, transparent);
  margin-top: 20px;
  animation: loaderLine 1.4s ease-out .9s both;
}
@keyframes loaderLine {
  from { width: 0; opacity: 0; }
  to   { width: 180px; opacity: 1; }
}

.lb-loader-tag {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .35em;
  color: var(--gold-light);
  margin-top: 16px;
  opacity: 0;
  animation: heroFade .6s 1.3s both;
  text-transform: uppercase;
}

/* ════════════════════════════════════════════════════════
   DESKTOP TWEAKS
═══════════════════════════════════════════════════════ */
@media (min-width: 600px) {
  .lb-grid { grid-template-columns: repeat(3, 1fr); gap: 16px; padding: 20px 20px 12px; }
  .lb-card:first-child:nth-last-child(odd) { grid-column: auto; aspect-ratio: 1 / 1.12; }
  .lb-hero { max-height: 440px; }
  .lb-list { padding: 38px 20px 12px; max-width: 720px; margin: 0 auto; }
  .lb-content { max-width: 720px; margin: 0 auto; padding: 38px 20px 24px; }
  .lb-resv-cta { max-width: 720px; margin: 14px auto 0; width: calc(100% - 40px); }
  .lb-modal-card { max-width: 520px; margin: 0 auto; border-radius: 28px; max-height: 90vh; }
  .lb-modal { align-items: center; padding: 20px; }
}

@media (max-width: 430px) {
  .lb-header {
    gap: 6px;
    padding-left: 10px;
    padding-right: 10px;
  }
  .lb-icon-btn {
    width: 40px;
    height: 40px;
  }
  .lb-header-title {
    height: 32px;
    line-height: 30px;
    padding-left: 9px;
    padding-right: 9px;
    font-size: 12px;
    letter-spacing: .015em;
  }
  .lb-header:not(.has-title) .lb-logo .lb-wordmark {
    font-size: 37px;
  }
  .lb-header.has-title .lb-lang-btn {
    min-width: 33px;
    padding-left: 5px;
    padding-right: 5px;
  }
}

@media (min-width: 900px) {
  .lb-header { padding-left: 24px; padding-right: 20px; }
  .lb-grid { max-width: 960px; margin: 0 auto; }
}

/* ════════════════════════════════════════════════════════
   MEKAN MARKA LOGOSU — Premium Brand Card
   Transparan altın PNG'ler için optimize edilmiş zarif
   sunum: navy glass + gold radial accent + corner ornaments
═══════════════════════════════════════════════════════ */
.lb-venue-logo {
  position: relative;
  /* Subtle navy glass + merkezi altın aydınlatma */
  background:
    radial-gradient(ellipse 70% 80% at center, rgba(199,154,74,.10) 0%, rgba(199,154,74,.03) 40%, transparent 75%),
    linear-gradient(180deg, rgba(8,31,50,.45), rgba(5,15,28,.65));
  padding: 44px 24px 46px;
  text-align: center;
  margin: 4px 0 16px 0;
  border-radius: 22px;
  border: 1px solid rgba(199,154,74,.22);
  box-shadow:
    0 18px 48px rgba(0,0,0,.4),
    0 4px 12px rgba(0,0,0,.25),
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 0 60px rgba(199,154,74,.05);
  backdrop-filter: blur(10px) saturate(1.2);
  -webkit-backdrop-filter: blur(10px) saturate(1.2);
  overflow: hidden;
  animation: secFadeUp .6s var(--ease-luxury) .12s both;
}

/* Üst & alt altın çerçeve çizgisi — luxury "fragman" hissi */
.lb-venue-logo::before,
.lb-venue-logo::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 130px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold) 30%, var(--gold-light) 50%, var(--gold) 70%, transparent);
  opacity: .85;
}
.lb-venue-logo::before { top: 0; }
.lb-venue-logo::after  { bottom: 0; }

/* Altın corner ornamentler (premium frame hissi) */
.lb-venue-logo .lvc-tl,
.lb-venue-logo .lvc-tr,
.lb-venue-logo .lvc-bl,
.lb-venue-logo .lvc-br {
  position: absolute;
  width: 14px;
  height: 14px;
  pointer-events: none;
  opacity: .55;
}
.lb-venue-logo .lvc-tl { top: 12px;    left: 14px;    border-top: 1.5px solid var(--gold); border-left: 1.5px solid var(--gold); border-top-left-radius: 4px; }
.lb-venue-logo .lvc-tr { top: 12px;    right: 14px;   border-top: 1.5px solid var(--gold); border-right: 1.5px solid var(--gold); border-top-right-radius: 4px; }
.lb-venue-logo .lvc-bl { bottom: 12px; left: 14px;    border-bottom: 1.5px solid var(--gold); border-left: 1.5px solid var(--gold); border-bottom-left-radius: 4px; }
.lb-venue-logo .lvc-br { bottom: 12px; right: 14px;   border-bottom: 1.5px solid var(--gold); border-right: 1.5px solid var(--gold); border-bottom-right-radius: 4px; }

.lb-venue-logo img {
  display: block;
  max-width: 78%;
  max-height: 220px;
  width: auto;
  height: auto;
  margin: 0 auto;
  filter:
    drop-shadow(0 8px 24px rgba(199, 154, 74, .45))
    drop-shadow(0 0 32px rgba(199, 154, 74, .22))
    drop-shadow(0 2px 4px rgba(0, 0, 0, .35));
  animation: venueLogoIn 1s cubic-bezier(.2, .7, .3, 1) .28s both;
  transition: transform .8s cubic-bezier(.2, .7, .3, 1);
}
.lb-venue-logo:hover img {
  transform: scale(1.03);
}
@keyframes venueLogoIn {
  from { opacity: 0; transform: scale(.92) translateY(10px); filter: drop-shadow(0 8px 24px rgba(199,154,74,0)); }
  to   { opacity: 1; transform: scale(1)   translateY(0); }
}

/* Pina Ana artık transparent PNG — mix-blend-mode gerekmez */

/* Mobil — biraz daha kompakt, oranları korur */
@media (max-width: 480px) {
  .lb-venue-logo {
    padding: 32px 18px 34px;
    border-radius: 18px;
  }
  .lb-venue-logo img { max-height: 170px; max-width: 84%; }
  .lb-venue-logo::before, .lb-venue-logo::after { width: 100px; }
  .lb-venue-logo .lvc-tl, .lb-venue-logo .lvc-tr,
  .lb-venue-logo .lvc-bl, .lb-venue-logo .lvc-br { width: 12px; height: 12px; }
}

/* ════════════════════════════════════════════════════════
   MODAL — Kurallar & Bilgilendirme (Collapsible)
   À la carte / Cabana resmi kurallarının zarif sunumu
═══════════════════════════════════════════════════════ */
.lb-modal-info {
  margin: 0 0 12px;
  padding: 0;
  border: 1px solid rgba(199,154,74,.28);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(199,154,74,.06), rgba(199,154,74,.02));
  overflow: hidden;
  animation: secFadeUp .45s var(--ease-out) .1s both;
}
.lb-modal-info[hidden] { display: none !important; }

.lb-modal-info-toggle {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px 14px;
  border: 0;
  background: transparent;
  color: var(--white);
  font-family: inherit;
  text-align: left;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .04em;
}
.lb-modal-info-toggle:active { background: rgba(199,154,74,.08); }

.lb-modal-info-icon {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(199,154,74,.32), rgba(199,154,74,.08));
  border: 1px solid rgba(199,154,74,.4);
  display: grid;
  place-items: center;
  flex-shrink: 0;
}
.lb-modal-info-icon i {
  font-size: 12px;
  color: var(--gold-light);
}

.lb-modal-info-label {
  flex: 1;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: 11.5px;
  color: var(--gold-light);
}

.lb-modal-info-chev {
  font-size: 12px !important;
  color: var(--gold-light);
  transition: transform .3s var(--ease-out);
}
.lb-modal-info.is-open .lb-modal-info-chev {
  transform: rotate(180deg);
}

.lb-modal-info-list {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s cubic-bezier(.4,0,.2,1), padding .25s ease;
}
.lb-modal-info.is-open .lb-modal-info-list {
  max-height: 600px;
  padding: 0 16px 14px 16px;
}

.lb-modal-info-list li {
  position: relative;
  padding: 8px 0 8px 22px;
  font-size: 13px;
  line-height: 1.5;
  color: rgba(255,255,255,.82);
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.lb-modal-info-list li:last-child { border-bottom: 0; }
.lb-modal-info-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 14px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 3px rgba(199,154,74,.18);
}
.lb-modal-info-list li strong {
  color: var(--white);
  font-weight: 700;
}

/* ────────────────────────────────────────────────────────
   Form alt-bilgi (yaş politikası ipucu, vs.)
──────────────────────────────────────────────────────── */
.lb-field-hint {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: -6px 4px 4px;
  padding: 7px 12px;
  background: rgba(199,154,74,.08);
  border: 1px solid rgba(199,154,74,.22);
  border-left: 3px solid var(--gold);
  border-radius: 10px;
  font-size: 11.5px;
  font-weight: 600;
  color: var(--gold-light);
  letter-spacing: .04em;
  line-height: 1.4;
}
.lb-field-hint[hidden] { display: none !important; }
.lb-field-hint::before {
  content: '\f129';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  font-size: 11px;
  color: var(--gold);
  opacity: .85;
}

/* ════════════════════════════════════════════════════════════
   LA BLANCHE ISLAND BODRUM — Asıl Logo (orijinal renkler)
   Hiçbir renk müdahalesi yok; sadece derinlik için shadow.
═══════════════════════════════════════════════════════════ */
.lb-island-logo {
  display: block;
  margin: 0 auto;
  height: auto;
  /* Sadece shadow — orijinal beyaz/gri tonlar korunur */
  filter:
    drop-shadow(0 12px 36px rgba(0,0,0,.55))
    drop-shadow(0 4px 14px rgba(0,0,0,.45));
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
}

/* Boyut varyasyonları */
.lb-island-logo--sm  { width: 120px; }
.lb-island-logo--md  { width: 180px; }
.lb-island-logo--lg  { width: 240px; }
.lb-island-logo--xl  { width: clamp(260px, 62vw, 360px); }

/* SPLASH ekranındaki logo — soft scale-in animasyonu */
.lb-loader-inner .lb-island-logo--xl {
  opacity: 0;
  animation: islandLogoIn 1.1s cubic-bezier(.16,1,.3,1) .15s both,
             islandLogoGlow 4.5s ease-in-out 1.6s infinite;
  transform-origin: center;
}
@keyframes islandLogoIn {
  from { opacity: 0; transform: scale(.88) translateY(14px); filter: drop-shadow(0 0 0 rgba(199,154,74,0)); }
  to   { opacity: 1; transform: scale(1)   translateY(0); }
}
@keyframes islandLogoGlow {
  0%, 100% {
    filter:
      drop-shadow(0 12px 36px rgba(0,0,0,.55))
      drop-shadow(0 4px 14px rgba(0,0,0,.45));
  }
  50% {
    filter:
      drop-shadow(0 14px 44px rgba(0,0,0,.6))
      drop-shadow(0 0 28px rgba(255,255,255,.08))
      drop-shadow(0 4px 14px rgba(0,0,0,.45));
  }
}

/* DRAWER head'deki logo */
.lb-drawer-head .lb-island-logo {
  margin-bottom: 14px;
  animation: islandLogoIn .6s var(--ease-out) .1s both;
}

/* Splash içerikleri merkezleme & spacing düzeltmesi */
.lb-loader-inner {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
}
.lb-loader-line {
  width: 0;
  height: 1.5px;
  margin: 8px 0 4px;
  background: linear-gradient(90deg, transparent, var(--gold) 30%, var(--gold-light) 50%, var(--gold) 70%, transparent);
  animation: loaderLine 1.4s ease-out 1.2s both;
}
.lb-loader-tag {
  font-family: 'Manrope', 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .42em;
  color: var(--gold-light);
  text-transform: uppercase;
  margin: 0;
  opacity: 0;
  animation: heroFade .7s 1.65s both;
}
.lb-loader-tag::before,
.lb-loader-tag::after { color: var(--gold); }

/* Mobile fine-tune */
@media (max-width: 480px) {
  .lb-island-logo--xl { width: clamp(220px, 70vw, 300px); }
  .lb-loader-line { width: 140px !important; }
  .lb-loader-tag { letter-spacing: .32em; font-size: 10.5px; }
}

/* ════════════════════════════════════════════════════════════
   KVKK / GDPR ONAY — Form Checkbox
═══════════════════════════════════════════════════════════ */
.lb-consent {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 4px 4px 6px;
  padding: 12px 14px;
  background: rgba(199,154,74,.06);
  border: 1px solid rgba(199,154,74,.22);
  border-radius: 12px;
  cursor: pointer;
  transition: border-color .25s, background .25s, box-shadow .25s;
}
.lb-consent:hover {
  background: rgba(199,154,74,.09);
  border-color: rgba(199,154,74,.32);
}
.lb-consent.is-invalid {
  border-color: #e74c3c;
  background: rgba(231,76,60,.10);
  animation: consentShake .5s cubic-bezier(.36,.07,.19,.97) both;
  box-shadow: 0 0 0 4px rgba(231,76,60,.15);
}
@keyframes consentShake {
  10%, 90% { transform: translateX(-2px); }
  20%, 80% { transform: translateX(3px); }
  30%, 50%, 70% { transform: translateX(-4px); }
  40%, 60% { transform: translateX(4px); }
}

.lb-consent input[type="checkbox"] {
  /* Native checkbox gizli, custom kutu kullanıyoruz */
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0; height: 0;
}

.lb-consent-box {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  border-radius: 6px;
  border: 1.5px solid rgba(199,154,74,.5);
  background: rgba(255,255,255,.05);
  display: grid;
  place-items: center;
  transition: all .2s var(--ease-out);
}
.lb-consent-box i {
  font-size: 11px;
  color: var(--white);
  opacity: 0;
  transform: scale(.5);
  transition: opacity .2s, transform .2s var(--ease);
}
.lb-consent input:checked ~ .lb-consent-box {
  background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep));
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(199,154,74,.18), inset 0 1px 0 rgba(255,255,255,.3);
}
.lb-consent input:checked ~ .lb-consent-box i {
  opacity: 1;
  transform: scale(1);
}

.lb-consent-text {
  flex: 1;
  font-size: 12px;
  line-height: 1.5;
  color: rgba(255,255,255,.78);
  letter-spacing: .005em;
}
.lb-consent-link {
  color: var(--gold-light);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-color: rgba(199,154,74,.5);
  cursor: pointer;
  transition: color .2s;
}
.lb-consent-link:hover {
  color: var(--gold-soft);
  text-decoration-color: var(--gold);
}

/* ════════════════════════════════════════════════════════════
   LEGAL OVERLAY — KVKK / GDPR Tam Metin
═══════════════════════════════════════════════════════════ */
.lb-legal {
  position: fixed;
  inset: 0;
  z-index: 400;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}
.lb-legal[hidden] { display: none !important; }
.lb-legal-scrim {
  position: absolute;
  inset: 0;
  background: rgba(5,15,28,.84);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  transition: opacity .3s ease;
}
.lb-legal.is-open .lb-legal-scrim { opacity: 1; }

.lb-legal-card {
  position: relative;
  width: 100%;
  max-width: 720px;
  max-height: 92vh;
  background: linear-gradient(165deg, var(--navy) 0%, var(--navy-darker) 95%);
  border-radius: 22px;
  border: 1px solid rgba(199,154,74,.35);
  box-shadow: 0 30px 90px rgba(0,0,0,.7);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: translateY(24px) scale(.96);
  opacity: 0;
  transition: transform .42s var(--ease-out), opacity .35s ease;
}
.lb-legal.is-open .lb-legal-card {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.lb-legal-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 22px 16px;
  border-bottom: 1px solid rgba(199,154,74,.18);
  background: linear-gradient(180deg, rgba(199,154,74,.08), transparent);
}
.lb-legal-icon {
  width: 38px; height: 38px;
  border-radius: 12px;
  background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep));
  display: grid;
  place-items: center;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(199,154,74,.4),
              inset 0 1px 0 rgba(255,255,255,.35);
}
.lb-legal-icon i {
  color: var(--white);
  font-size: 16px;
  filter: drop-shadow(0 1px 2px rgba(0,0,0,.4));
}
.lb-legal-head h3 {
  flex: 1;
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 22px;
  font-weight: 700;
  color: var(--white);
  letter-spacing: -.01em;
}
.lb-legal-close {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.7);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: all .2s;
}
.lb-legal-close:hover {
  background: rgba(255,255,255,.12);
  color: var(--white);
}
.lb-legal-close i { font-size: 14px; }

.lb-legal-body {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px 22px;
  color: rgba(255,255,255,.82);
  font-size: 13.5px;
  line-height: 1.65;
  -webkit-overflow-scrolling: touch;
}
.lb-legal-body::-webkit-scrollbar { width: 6px; }
.lb-legal-body::-webkit-scrollbar-track { background: transparent; }
.lb-legal-body::-webkit-scrollbar-thumb {
  background: rgba(199,154,74,.3);
  border-radius: 3px;
}

.lb-legal-body .lb-legal-lead {
  font-size: 14px;
  color: rgba(255,255,255,.92);
  padding: 12px 14px;
  background: rgba(199,154,74,.08);
  border-left: 3px solid var(--gold);
  border-radius: 8px;
  margin-bottom: 18px;
}

.lb-legal-body h4 {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--gold-light);
  margin-top: 18px;
  margin-bottom: 8px;
  letter-spacing: -.005em;
  display: flex;
  align-items: center;
  gap: 8px;
}
.lb-legal-body h4::before {
  content: '';
  width: 4px;
  height: 14px;
  background: var(--gold);
  border-radius: 2px;
}

.lb-legal-body p {
  margin: 8px 0;
}
.lb-legal-body strong {
  color: var(--white);
  font-weight: 700;
}
.lb-legal-body ul {
  list-style: none;
  margin: 8px 0;
  padding: 0;
}
.lb-legal-body ul li {
  position: relative;
  padding: 5px 0 5px 18px;
  font-size: 13.5px;
}
.lb-legal-body ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--gold);
}

.lb-legal-body .lb-legal-note {
  margin-top: 12px;
  padding: 10px 12px;
  background: rgba(53,198,211,.08);
  border-left: 3px solid var(--teal);
  border-radius: 8px;
  font-size: 12.5px;
  color: rgba(255,255,255,.78);
}

.lb-legal-body .lb-legal-meta {
  margin-top: 22px;
  padding-top: 14px;
  border-top: 1px solid rgba(255,255,255,.08);
  font-size: 11.5px;
  color: rgba(255,255,255,.45);
  letter-spacing: .04em;
  text-align: center;
}

.lb-legal-foot {
  padding: 14px 20px 18px;
  border-top: 1px solid rgba(199,154,74,.18);
  display: flex;
  justify-content: center;
}
.lb-legal-ok {
  padding: 12px 30px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.2);
  background: linear-gradient(135deg, var(--gold-soft), var(--gold), var(--gold-deep));
  color: var(--white);
  font-family: inherit;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .04em;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  box-shadow: 0 10px 26px rgba(199,154,74,.42),
              inset 0 1px 0 rgba(255,255,255,.38);
  transition: transform .2s var(--ease-luxury), box-shadow .2s var(--ease-luxury);
}
.lb-legal-ok:active { transform: scale(.96); box-shadow: 0 4px 14px rgba(199,154,74,.32), inset 0 1px 0 rgba(255,255,255,.38); }

@media (max-width: 480px) {
  .lb-legal { padding: 0; align-items: flex-end; }
  .lb-legal-card { max-height: 96vh; border-radius: 22px 22px 0 0; }
  .lb-legal-body { padding: 16px 18px 18px; font-size: 13px; }
  .lb-legal-head h3 { font-size: 18px; }
}

/* Final placement: keep the back action in the lower-left comfort zone */
.lb-back,
.lb-back-bottom {
  position: fixed !important;
  top: auto !important;
  right: auto !important;
  left: 18px !important;
  bottom: calc(20px + var(--safe-bot)) !important;
  width: 60px !important;
  height: 60px !important;
  border-radius: 20px !important;
  z-index: 118 !important;
  background: linear-gradient(145deg, rgba(228,185,106,.96) 0%, rgba(199,154,74,.96) 52%, rgba(118,86,34,.96) 100%) !important;
  border-color: rgba(255,255,255,.28) !important;
  box-shadow:
    0 14px 38px rgba(199,154,74,.48),
    0 6px 14px rgba(0,0,0,.30),
    inset 0 2px 0 rgba(255,255,255,.40),
    inset 0 -3px 6px rgba(0,0,0,.20) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  animation: fabIn .65s .08s var(--ease) both;
}

.lb-back::after,
.lb-back-bottom::after {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 24px;
  border: 2px solid rgba(228,185,106,.42);
  pointer-events: none;
  animation: fabRingPulse 2.4s ease-out 2s infinite;
  opacity: 0;
}

.lb-back i,
.lb-back-bottom i {
  font-size: 22px !important;
  color: var(--white) !important;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.38));
}

.lb-back:active,
.lb-back-bottom:active {
  transform: scale(.92) !important;
}

@media (min-width: 760px) {
  .lb-back,
  .lb-back-bottom {
    left: calc(50% - min(100vw, var(--app-w)) / 2 + 22px) !important;
    bottom: calc(20px + var(--safe-bot)) !important;
  }
}

/* Final splash pass: smaller mark, premium 3D fade */
.lb-loader {
  perspective: 1100px !important;
  transition:
    opacity .65s var(--ease-luxury),
    transform .75s var(--ease-luxury),
    filter .75s var(--ease-luxury) !important;
  transform: translate3d(0,0,0) scale(1) rotateX(0deg) !important;
  transform-origin: center 46%;
}

.lb-loader-inner {
  transform-style: preserve-3d;
  animation: lbSplashSceneIn .86s cubic-bezier(.16, 1, .3, 1) .04s both;
}

.lb-loader.fade-out {
  opacity: 0 !important;
  transform: translate3d(0, -18px, 0) scale(.965) rotateX(7deg) !important;
  filter: blur(5px) saturate(.92) !important;
}

.lb-loader.fade-out .lb-loader-inner {
  transform: translate3d(0, -10px, 80px) scale(.94) rotateX(10deg) !important;
  opacity: 0 !important;
}

.lb-loader-inner .lb-island-logo--xl {
  width: clamp(172px, 46vw, 248px) !important;
  max-height: 28vh;
  animation:
    lbSplashLogo3dIn .92s cubic-bezier(.16, 1, .3, 1) .12s both,
    islandLogoGlow 4.8s ease-in-out 1.4s infinite !important;
}

.lb-loader-line {
  margin-top: 4px !important;
  animation: loaderLine 1.05s ease-out .72s both !important;
}

.lb-loader-tag {
  margin-top: -2px !important;
  letter-spacing: .34em !important;
  animation: heroFade .52s .98s both !important;
}

@keyframes lbSplashSceneIn {
  from { opacity: 0; transform: translate3d(0, 18px, -90px) scale(.96) rotateX(-9deg); }
  to   { opacity: 1; transform: translate3d(0, 0, 0) scale(1) rotateX(0deg); }
}

@keyframes lbSplashLogo3dIn {
  from {
    opacity: 0;
    transform: translate3d(0, 18px, 70px) scale(.84) rotateX(-12deg);
    filter: drop-shadow(0 0 0 rgba(0,0,0,0));
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1) rotateX(0deg);
  }
}

@media (max-width: 480px) {
  .lb-loader-inner .lb-island-logo--xl {
    width: clamp(158px, 50vw, 218px) !important;
    max-height: 24vh;
  }
}

/* Splash ripple animation pass: water impact behind the island logo */
.lb-loader {
  overflow: hidden !important;
  isolation: isolate;
  background:
    radial-gradient(ellipse 80% 52% at 50% 42%, rgba(53, 198, 211, .17) 0%, rgba(53, 198, 211, .06) 42%, transparent 74%),
    linear-gradient(180deg, #020b17 0%, #06243e 48%, #020d18 100%) !important;
  animation: lbSplashSeaTone 8s ease-in-out infinite alternate;
}

.lb-loader::before,
.lb-loader::after {
  content: '';
  position: absolute;
  pointer-events: none;
  z-index: 0;
}

.lb-loader::before {
  inset: -18%;
  background:
    radial-gradient(ellipse 40% 60% at 28% 28%, rgba(255,255,255,.10), transparent 68%),
    radial-gradient(ellipse 44% 54% at 76% 66%, rgba(53,198,211,.16), transparent 70%),
    linear-gradient(120deg, transparent 0 34%, rgba(255,255,255,.08) 48%, transparent 62% 100%);
  background-size: 100% 100%, 100% 100%, 170% 170%;
  opacity: .5;
  mix-blend-mode: screen;
  filter: blur(22px) saturate(1.08);
  transform: translate3d(-3%, -1%, 0) scale(1.08);
  animation: lbSplashWaterGlow 8.4s ease-in-out infinite alternate;
}

.lb-loader::after {
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.035), transparent 18% 82%, rgba(0,0,0,.24)),
    radial-gradient(ellipse at center, transparent 0 42%, rgba(0,0,0,.28) 100%);
  opacity: .72;
}

.lb-loader-inner {
  position: relative;
  z-index: 3;
}

.lb-splash-ripplepool {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  pointer-events: none;
  overflow: hidden;
}

.lb-splash-ripplepool::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background:
    radial-gradient(circle, rgba(255,255,255,.76) 0 13%, rgba(180,246,252,.30) 42%, transparent 72%);
  box-shadow:
    0 0 20px rgba(185,243,248,.34),
    0 0 48px rgba(53,198,211,.20);
  mix-blend-mode: screen;
  transform: translate3d(-50%, -50%, 0) scale(.25);
  opacity: 0;
  animation: lbSplashImpact 4.6s cubic-bezier(.12, .72, .16, 1) infinite;
}

.lb-splash-ripplepool span {
  --w: 118px;
  --h: 42px;
  --delay: 0s;
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--w);
  height: var(--h);
  border-radius: 50%;
  border: 1.4px solid rgba(202, 248, 252, .34);
  box-shadow:
    inset 0 0 18px rgba(202,248,252,.08),
    0 0 22px rgba(53,198,211,.16);
  opacity: 0;
  mix-blend-mode: screen;
  filter: blur(.15px);
  transform: translate3d(-50%, -50%, 0) scale(.28);
  animation: lbSplashRipple 4.6s cubic-bezier(.12, .72, .16, 1) infinite;
  animation-delay: var(--delay);
}

.lb-splash-ripplepool span:nth-child(1) { --w: 118px; --h: 42px; --delay: .1s; }
.lb-splash-ripplepool span:nth-child(2) { --w: 154px; --h: 54px; --delay: .42s; border-color: rgba(114,224,233,.28); }
.lb-splash-ripplepool span:nth-child(3) { --w: 196px; --h: 70px; --delay: .76s; border-color: rgba(202,248,252,.22); }
.lb-splash-ripplepool span:nth-child(4) { --w: 244px; --h: 86px; --delay: 1.12s; border-color: rgba(114,224,233,.18); }
.lb-splash-ripplepool span:nth-child(5) { --w: 298px; --h: 104px; --delay: 1.48s; border-color: rgba(202,248,252,.14); }

.lb-loader-inner .lb-island-logo--xl {
  filter:
    drop-shadow(0 16px 38px rgba(0,0,0,.58))
    drop-shadow(0 0 24px rgba(53,198,211,.16))
    drop-shadow(0 4px 14px rgba(0,0,0,.46));
}

@keyframes islandLogoGlow {
  0%, 100% {
    filter:
      drop-shadow(0 16px 38px rgba(0,0,0,.58))
      drop-shadow(0 0 18px rgba(53,198,211,.12))
      drop-shadow(0 4px 14px rgba(0,0,0,.46));
  }
  50% {
    filter:
      drop-shadow(0 18px 46px rgba(0,0,0,.62))
      drop-shadow(0 0 30px rgba(53,198,211,.22))
      drop-shadow(0 0 18px rgba(255,255,255,.10))
      drop-shadow(0 4px 14px rgba(0,0,0,.46));
  }
}

@keyframes lbSplashSeaTone {
  from {
    background-position: 50% 42%, 50% 50%;
    filter: saturate(1);
  }
  to {
    background-position: 50% 46%, 50% 50%;
    filter: saturate(1.08);
  }
}

@keyframes lbSplashWaterGlow {
  0% {
    background-position: 50% 50%, 50% 50%, 0% 50%;
    transform: translate3d(-3%, -1%, 0) scale(1.08);
  }
  50% {
    background-position: 52% 46%, 46% 54%, 48% 50%;
  }
  100% {
    background-position: 48% 54%, 54% 48%, 100% 50%;
    transform: translate3d(3%, 1%, 0) scale(1.12);
  }
}

@keyframes lbSplashImpact {
  0% {
    opacity: 0;
    transform: translate3d(-50%, -50%, 0) scale(.25);
  }
  7% {
    opacity: .82;
  }
  18% {
    opacity: .16;
    transform: translate3d(-50%, -50%, 0) scale(2.4);
  }
  100% {
    opacity: 0;
    transform: translate3d(-50%, -50%, 0) scale(3.2);
  }
}

@keyframes lbSplashRipple {
  0% {
    opacity: 0;
    transform: translate3d(-50%, -50%, 0) scale(.25);
    filter: blur(.1px);
  }
  12% {
    opacity: .72;
  }
  72% {
    opacity: .2;
  }
  100% {
    opacity: 0;
    transform: translate3d(-50%, -50%, 0) scale(2.75);
    filter: blur(2.2px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .lb-loader,
  .lb-loader::before,
  .lb-loader::after,
  .lb-splash-ripplepool::before,
  .lb-splash-ripplepool span {
    animation: none !important;
  }
}

/* Show Center daily splash: premium event reveal on the home screen */
.lb-show-splash {
  position: fixed;
  inset: 0;
  z-index: 1320;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: calc(20px + var(--safe-top)) 20px calc(22px + var(--safe-bot));
  background: rgba(2, 10, 18, .58);
  backdrop-filter: blur(8px) saturate(1.1);
  -webkit-backdrop-filter: blur(8px) saturate(1.1);
  opacity: 0;
  pointer-events: none;
  overflow: hidden;
  perspective: 1600px;
  transition: opacity .55s var(--ease-luxury), backdrop-filter .55s var(--ease-luxury);
}
.lb-show-splash.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.lb-show-splash.is-leaving {
  opacity: 0;
}
.lb-show-splash-bg,
.lb-show-splash-vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.lb-show-splash-bg {
  background-position: center top;
  background-size: cover;
  filter: blur(22px) saturate(1.08) brightness(.58);
  transform: scale(1.18);
  opacity: .82;
  animation: showSplashBackdrop 14s ease-out both;
}
.lb-show-splash-vignette {
  background:
    radial-gradient(circle at 72% 18%, rgba(226,185,106,.22), transparent 36%),
    radial-gradient(circle at 25% 78%, rgba(53,198,211,.18), transparent 40%),
    radial-gradient(circle at 50% 50%, transparent 30%, rgba(2,10,18,.4) 80%),
    linear-gradient(115deg, rgba(2,10,18,.94) 0%, rgba(5,19,33,.76) 48%, rgba(2,10,18,.92) 100%);
}
.lb-show-splash-vignette::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(1px 1px at 12% 22%, rgba(255,255,255,.36), transparent 60%),
    radial-gradient(1px 1px at 78% 14%, rgba(226,185,106,.42), transparent 60%),
    radial-gradient(1.5px 1.5px at 34% 64%, rgba(255,255,255,.28), transparent 60%),
    radial-gradient(1px 1px at 88% 72%, rgba(53,198,211,.34), transparent 60%),
    radial-gradient(1.5px 1.5px at 22% 88%, rgba(255,255,255,.22), transparent 60%),
    radial-gradient(1px 1px at 64% 38%, rgba(226,185,106,.28), transparent 60%);
  opacity: .9;
  animation: showSplashStars 8s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes showSplashStars {
  0%, 100% { opacity: .7; }
  50% { opacity: 1; }
}
.lb-show-splash-card {
  width: min(1080px, 100%);
  min-height: min(620px, calc(100vh - 56px));
  position: relative;
  display: grid;
  grid-template-columns: minmax(300px, .82fr) minmax(420px, 1fr);
  gap: clamp(22px, 4vw, 46px);
  padding: clamp(18px, 3.2vw, 34px);
  border-radius: clamp(26px, 4vw, 42px);
  border: 1px solid rgba(226,185,106,.28);
  background:
    radial-gradient(ellipse 70% 50% at 50% 0%, rgba(226,185,106,.10), transparent 60%),
    linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.045)),
    rgba(7, 24, 39, .68);
  box-shadow:
    0 44px 140px rgba(0,0,0,.62),
    0 0 80px rgba(226,185,106,.10),
    0 0 0 1px rgba(199,154,74,.22) inset,
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -1px 0 rgba(226,185,106,.18);
  backdrop-filter: blur(32px) saturate(1.3);
  -webkit-backdrop-filter: blur(32px) saturate(1.3);
  overflow: hidden;
  transform: translate3d(0, 42px, -120px) rotateX(9deg) scale(.94);
  opacity: 0;
  transition:
    transform .95s var(--ease-luxury),
    opacity .65s var(--ease-luxury);
}
.lb-show-splash.is-visible .lb-show-splash-card {
  transform: translate3d(0, 0, 0) rotateX(0deg) scale(1);
  opacity: 1;
}
.lb-show-splash-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(105deg, transparent 30%, rgba(255,255,255,.22) 50%, transparent 70%);
  transform: translateX(-130%) skewX(-12deg);
  opacity: .55;
  animation: showSplashShine 6.5s var(--ease-luxury) 1.2s infinite;
  pointer-events: none;
  mix-blend-mode: overlay;
}
.lb-show-splash-card::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background:
    linear-gradient(90deg, transparent calc(50% - 1px), rgba(226,185,106,.18) 50%, transparent calc(50% + 1px));
  opacity: 0;
  mix-blend-mode: screen;
}

/* Altın köşe süslemeleri — premium frame */
.lb-show-splash-card-frame {
  position: absolute;
  inset: 14px;
  pointer-events: none;
  z-index: 4;
}
.lb-show-splash-card-frame::before,
.lb-show-splash-card-frame::after,
.lb-show-splash-card > .lb-show-splash-corner {
  pointer-events: none;
}
.lb-show-splash-card > i.lb-show-splash-corner {
  position: absolute;
  width: 22px;
  height: 22px;
  z-index: 4;
  opacity: .72;
}
.lb-show-splash-card > i.lb-show-splash-corner.tl { top: 14px;    left: 14px;    border-top: 1.6px solid var(--gold); border-left: 1.6px solid var(--gold); border-top-left-radius: 8px; }
.lb-show-splash-card > i.lb-show-splash-corner.tr { top: 14px;    right: 14px;   border-top: 1.6px solid var(--gold); border-right: 1.6px solid var(--gold); border-top-right-radius: 8px; }
.lb-show-splash-card > i.lb-show-splash-corner.bl { bottom: 14px; left: 14px;    border-bottom: 1.6px solid var(--gold); border-left: 1.6px solid var(--gold); border-bottom-left-radius: 8px; }
.lb-show-splash-card > i.lb-show-splash-corner.br { bottom: 14px; right: 14px;   border-bottom: 1.6px solid var(--gold); border-right: 1.6px solid var(--gold); border-bottom-right-radius: 8px; }
.lb-show-splash-poster {
  position: relative;
  min-height: 510px;
  border-radius: 30px;
  border: 1px solid rgba(226,185,106,.36);
  background-position: center top;
  background-size: cover;
  overflow: hidden;
  box-shadow:
    0 32px 70px rgba(0,0,0,.5),
    0 0 0 1px rgba(226,185,106,.16),
    0 0 40px rgba(226,185,106,.12),
    inset 0 1px 0 rgba(255,255,255,.18);
  transform: translateZ(38px);
}
.lb-show-splash-poster-img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  transform-origin: center top;
  animation: showSplashPosterImagePan 14s var(--ease-luxury) both;
  filter: saturate(1.08) contrast(1.03);
}
.lb-show-splash-poster::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(180deg, rgba(2,10,18,.05), rgba(2,10,18,.12) 40%, rgba(2,10,18,.82)),
    linear-gradient(90deg, rgba(2,10,18,.36), transparent 52%);
}
.lb-show-splash-poster::after {
  display: none;
}
.lb-show-splash-poster span,
.lb-show-splash-poster b {
  position: absolute;
  left: 22px;
  z-index: 2;
  text-shadow: 0 3px 18px rgba(0,0,0,.58);
}
.lb-show-splash-poster span {
  bottom: 70px;
  color: var(--gold-soft);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .24em;
  text-transform: uppercase;
}
.lb-show-splash-poster b {
  bottom: 24px;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1;
  color: var(--white);
}
.lb-show-splash-copy {
  align-self: center;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
  transform: translateZ(68px);
}
.lb-show-splash-kicker {
  width: max-content;
  max-width: 100%;
  color: var(--gold-soft);
  font-size: clamp(12px, 1.2vw, 15px);
  font-weight: 900;
  letter-spacing: .26em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-shadow: 0 2px 12px rgba(226,185,106,.32);
}
.lb-show-splash-kicker::before {
  content: '';
  width: 46px;
  height: 2px;
  border-radius: 99px;
  background: linear-gradient(90deg, transparent, var(--gold-soft), var(--gold-shine));
  box-shadow: 0 0 8px rgba(226,185,106,.5);
}
.lb-show-splash-copy h2 {
  font-family: var(--font-display);
  font-size: clamp(44px, 6.8vw, 94px);
  line-height: .92;
  letter-spacing: 0;
  color: var(--white);
  text-shadow: 0 8px 32px rgba(0,0,0,.5), 0 2px 14px rgba(226,185,106,.18);
  background:
    linear-gradient(180deg, #ffffff 0%, #ffffff 60%, rgba(245,225,180,.95) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 8px 28px rgba(0,0,0,.45));
}
.lb-show-splash-copy strong {
  font-size: clamp(26px, 3.2vw, 46px);
  line-height: 1.04;
  color: var(--white);
  max-width: 12ch;
}
.lb-show-splash-copy p,
.lb-show-splash-copy em {
  color: rgba(255,255,255,.82);
  font-size: clamp(15px, 1.65vw, 21px);
  line-height: 1.45;
  font-style: normal;
  max-width: 620px;
}
.lb-show-splash-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 8px 0 2px;
}
.lb-show-splash-meta span {
  position: relative;
  min-height: 78px;
  border-radius: 18px;
  padding: 13px 14px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.10), rgba(255,255,255,.03)),
    rgba(7,24,39,.32);
  border: 1px solid rgba(226,185,106,.18);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 8px 20px rgba(0,0,0,.18);
  overflow: hidden;
}
.lb-show-splash-meta span::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(226,185,106,.45), transparent);
}
.lb-show-splash-meta small {
  color: var(--gold-soft);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .19em;
  text-transform: uppercase;
}
.lb-show-splash-meta b {
  color: var(--white);
  font-size: clamp(13px, 1.25vw, 17px);
  line-height: 1.18;
}
.lb-show-splash-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 10px;
}
.lb-show-splash-actions button {
  min-height: 56px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  padding: 0 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--white);
  background: rgba(255,255,255,.08);
  font-weight: 900;
  letter-spacing: .01em;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 8px 22px rgba(0,0,0,.22);
  transition: transform .25s var(--ease-luxury), box-shadow .25s var(--ease-luxury), background .25s var(--ease-luxury);
}
.lb-show-splash-actions button.primary {
  background: linear-gradient(135deg, var(--gold-soft) 0%, var(--gold) 50%, var(--gold-deep) 100%);
  color: #0b2034;
  border-color: rgba(255,255,255,.32);
  box-shadow:
    0 20px 50px rgba(199,154,74,.42),
    0 0 0 1px rgba(255,255,255,.12) inset,
    inset 0 1px 0 rgba(255,255,255,.42);
  animation: showSplashCtaPulse 2.6s ease-in-out 2s infinite;
}
@keyframes showSplashCtaPulse {
  0%, 100% { box-shadow: 0 20px 50px rgba(199,154,74,.42), 0 0 0 1px rgba(255,255,255,.12) inset, inset 0 1px 0 rgba(255,255,255,.42); }
  50%      { box-shadow: 0 24px 60px rgba(199,154,74,.55), 0 0 0 6px rgba(199,154,74,.14), 0 0 0 1px rgba(255,255,255,.12) inset, inset 0 1px 0 rgba(255,255,255,.42); }
}
.lb-show-splash-actions button:active {
  transform: translateY(1px) scale(.97);
  animation: none;
}
.lb-show-splash-close {
  position: absolute;
  top: calc(18px + var(--safe-top));
  right: 18px;
  z-index: 3;
  width: 48px;
  height: 48px;
  border-radius: 16px;
  border: 1px solid rgba(226,185,106,.32);
  background: rgba(7,24,39,.5);
  color: var(--white);
  display: grid;
  place-items: center;
  cursor: pointer;
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
  box-shadow: 0 10px 28px rgba(0,0,0,.36), inset 0 1px 0 rgba(255,255,255,.14);
  transition: transform .25s var(--ease-luxury), background .25s var(--ease-luxury), border-color .25s var(--ease-luxury);
}
.lb-show-splash-close:active {
  transform: scale(.92);
  background: rgba(199,154,74,.22);
  border-color: rgba(226,185,106,.5);
}
.lb-show-splash-card-close {
  display: none;
}
.lb-show-splash-progress {
  position: absolute;
  left: clamp(20px, 3vw, 34px);
  right: clamp(20px, 3vw, 34px);
  bottom: clamp(16px, 2.4vw, 24px);
  height: 3px;
  border-radius: 99px;
  overflow: hidden;
  background: rgba(255,255,255,.12);
  box-shadow: inset 0 1px 0 rgba(0,0,0,.3), 0 1px 0 rgba(255,255,255,.06);
}
.lb-show-splash-progress::before {
  content: '';
  display: block;
  height: 100%;
  width: 100%;
  transform-origin: left center;
  background: linear-gradient(90deg, var(--gold-soft), var(--gold-shine) 50%, var(--gold));
  box-shadow: 0 0 12px rgba(226,185,106,.6), 0 0 4px rgba(226,185,106,.8);
  animation: showSplashProgress 12.5s linear both;
}
@keyframes showSplashBackdrop {
  from { transform: scale(1.24) translate3d(0, 18px, 0); }
  to { transform: scale(1.12) translate3d(0, 0, 0); }
}
@keyframes showSplashPosterPan {
  0% { opacity: .22; transform: scale(1.1) translateY(-4%); }
  100% { opacity: 0; transform: scale(1.02) translateY(4%); }
}
@keyframes showSplashPosterImagePan {
  0% { transform: scale(1.08) translateY(-3%); }
  100% { transform: scale(1.02) translateY(3%); }
}
@keyframes showSplashShine {
  0%, 35% { transform: translateX(-130%) skewX(-12deg); }
  60%, 100% { transform: translateX(130%) skewX(-12deg); }
}
@keyframes showSplashProgress {
  from { transform: scaleX(1); }
  to { transform: scaleX(0); }
}
@media (max-width: 760px) {
  .lb-show-splash {
    padding: calc(12px + var(--safe-top)) 10px calc(12px + var(--safe-bot));
    align-items: center;
  }
  .lb-show-splash-card {
    width: min(360px, calc(100vw - 70px));
    max-width: min(360px, calc(100vw - 70px));
    min-width: 0;
    margin-inline: auto;
    min-height: 0;
    max-height: calc(100vh - 32px - var(--safe-top) - var(--safe-bot));
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 12px;
    border-radius: 28px;
    overflow: hidden auto;
    transform: translate3d(0, 42px, -70px) rotateX(6deg) scale(.96);
  }
  .lb-show-splash-poster {
    min-width: 0;
    min-height: clamp(178px, 38vh, 245px);
    border-radius: 22px;
  }
  .lb-show-splash-poster span { bottom: 58px; left: 18px; }
  .lb-show-splash-poster b { bottom: 18px; left: 18px; }
  .lb-show-splash-copy { gap: 9px; min-width: 0; }
  .lb-show-splash-kicker {
    font-size: 11px;
    letter-spacing: .2em;
  }
  .lb-show-splash-kicker::before { width: 34px; }
  .lb-show-splash-copy h2 {
    font-size: clamp(36px, 11vw, 52px);
    max-width: 10ch;
  }
  .lb-show-splash-copy strong {
    font-size: clamp(22px, 6.6vw, 31px);
    max-width: 14ch;
  }
  .lb-show-splash-copy p,
  .lb-show-splash-copy em {
    font-size: 14px;
    line-height: 1.38;
  }
  .lb-show-splash-meta {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
  }
  .lb-show-splash-meta span {
    min-width: 0;
    min-height: 56px;
    padding: 9px 8px;
    border-radius: 14px;
  }
  .lb-show-splash-meta small {
    font-size: 8.5px;
    letter-spacing: .14em;
  }
  .lb-show-splash-meta b {
    font-size: 11.5px;
  }
  .lb-show-splash-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .lb-show-splash-actions button {
    width: 100%;
    min-width: 0;
    min-height: 48px;
    padding: 0 10px;
    font-size: 12.5px;
    gap: 7px;
    white-space: normal;
  }
  .lb-show-splash-close {
    position: fixed !important;
    top: calc(16px + var(--safe-top));
    right: 16px;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: rgba(5, 15, 28, .58);
    box-shadow: 0 12px 34px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.16);
  }
  .lb-show-splash-card-close {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 6;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.20);
    background: rgba(5, 15, 28, .58);
    color: var(--white);
    display: grid;
    place-items: center;
    box-shadow: 0 12px 34px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.16);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }
  .lb-show-splash-progress {
    left: 18px;
    right: 18px;
    bottom: 12px;
  }
}
@media (max-width: 380px) {
  .lb-show-splash-meta { grid-template-columns: 1fr; }
  .lb-show-splash-actions { grid-template-columns: 1fr; }
}
@media (min-width: 1180px) {
  .lb-show-splash-card {
    grid-template-columns: minmax(330px, 410px) minmax(520px, 1fr);
  }
}

/* Final header logo scale: centered brand mark that stays inside the header */
.lb-header:not(.has-title) .lb-logo {
  top: var(--safe-top) !important;
  height: var(--header-h) !important;
  display: flex !important;
  align-items: center !important;
  z-index: 3 !important;
}

.lb-header:not(.has-title) .lb-logo .lb-logo-img {
  height: 56px !important;
  max-height: calc(var(--header-h) - 4px);
  filter:
    drop-shadow(0 4px 10px rgba(0,0,0,.66))
    drop-shadow(0 0 10px rgba(255,255,255,.08)) !important;
}

@media (max-width: 430px) {
  .lb-header:not(.has-title) .lb-logo {
    top: var(--safe-top) !important;
  }

  .lb-header:not(.has-title) .lb-logo .lb-logo-img {
    height: 54px !important;
  }
}

/* ════════════════════════════════════════════════════════
   AI CONCIERGE CHATBOX
═══════════════════════════════════════════════════════ */
.lb-ai-fab {
  position: fixed;
  right: 18px;
  bottom: calc(92px + var(--safe-bot));
  width: 54px;
  height: 54px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.30);
  background: linear-gradient(145deg, #6adff0 0%, #2a95a9 48%, #123f63 100%);
  color: var(--white);
  display: grid;
  place-items: center;
  z-index: 96;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
  box-shadow:
    0 14px 34px rgba(53,198,211,.38),
    0 6px 14px rgba(0,0,0,.32),
    inset 0 2px 0 rgba(255,255,255,.36),
    inset 0 -3px 6px rgba(0,0,0,.22);
  -webkit-tap-highlight-color: transparent;
  animation: fabIn .65s 1.18s var(--ease) both;
}
.lb-ai-fab i {
  font-size: 20px;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.38));
}
.lb-ai-fab:active { transform: scale(.92); }
.lb-ai-fab-ring {
  position: absolute;
  inset: -4px;
  border-radius: 22px;
  border: 2px solid rgba(53,198,211,.45);
  pointer-events: none;
  animation: fabRingPulse 2.7s ease-out 2.2s infinite;
  opacity: 0;
}
.lb-ai-fab-label {
  position: absolute;
  right: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%);
  padding: 7px 12px;
  border-radius: 10px;
  background: var(--navy-darker);
  color: var(--white);
  border: 1px solid rgba(53,198,211,.32);
  box-shadow: 0 6px 16px rgba(0,0,0,.4);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .04em;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s, transform .25s;
}
@media (hover:hover) {
  .lb-ai-fab:hover .lb-ai-fab-label { opacity: 1; transform: translateY(-50%) translateX(-2px); }
}

.lb-ai-chat {
  position: fixed;
  inset: 0;
  z-index: 420;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.lb-ai-chat[hidden] { display: none !important; }
.lb-ai-scrim {
  position: absolute;
  inset: 0;
  background: rgba(5,15,28,.72);
  backdrop-filter: blur(18px) saturate(1.3);
  -webkit-backdrop-filter: blur(18px) saturate(1.3);
  opacity: 0;
  transition: opacity .32s var(--ease-luxury);
}
.lb-ai-chat.is-open .lb-ai-scrim { opacity: 1; }

.lb-ai-panel {
  position: relative;
  width: min(100%, 560px);
  height: min(78vh, 720px);
  max-height: calc(100vh - var(--safe-top) - 16px);
  display: flex;
  flex-direction: column;
  border-radius: 28px 28px 0 0;
  border: 1px solid rgba(199,154,74,.26);
  border-bottom: 0;
  background:
    radial-gradient(circle at 18% 0%, rgba(53,198,211,.18), transparent 34%),
    linear-gradient(165deg, rgba(14,56,89,.98), rgba(5,15,28,.98) 72%);
  box-shadow: 0 -24px 70px rgba(0,0,0,.62), inset 0 1px 0 rgba(255,255,255,.10);
  transform: translateY(100%) scale(.97);
  opacity: 0;
  transition: transform .42s var(--ease-luxury), opacity .32s var(--ease-luxury);
  overflow: hidden;
}
.lb-ai-chat.is-open .lb-ai-panel { transform: translateY(0) scale(1); opacity: 1; }

.lb-ai-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 18px 14px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.lb-ai-avatar {
  width: 50px;
  height: 50px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  background:
    radial-gradient(circle at 50% 24%, rgba(255,255,255,.28), rgba(80,203,218,.16) 45%, rgba(7,28,47,.92)),
    linear-gradient(145deg, rgba(112,224,239,.42), rgba(9,45,74,.92));
  border: 1px solid rgba(127,231,244,.28);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    0 10px 26px rgba(53,198,211,.24),
    0 0 0 6px rgba(83,205,219,.08);
}
.lb-ai-avatar img {
  width: 42px;
  height: 42px;
  object-fit: contain;
  filter: drop-shadow(0 4px 9px rgba(0,0,0,.45));
}
.lb-ai-head-copy { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.lb-ai-head-copy strong { font-family: var(--font-display); font-size: 21px; line-height: 1.1; }
.lb-ai-head-copy small { margin-top: 3px; font-size: 12px; color: rgba(255,255,255,.62); line-height: 1.35; }
.lb-ai-head-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.lb-ai-close,
.lb-ai-voice-toggle {
  width: 38px;
  height: 38px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color: var(--white);
  display: grid;
  place-items: center;
  cursor: pointer;
}
.lb-ai-voice-toggle.is-on {
  border-color: rgba(53,198,211,.42);
  background: linear-gradient(145deg, rgba(53,198,211,.28), rgba(199,154,74,.24));
  box-shadow: 0 8px 20px rgba(53,198,211,.18), inset 0 1px 0 rgba(255,255,255,.22);
}
.lb-ai-voice-toggle:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.lb-ai-voice-toggle[hidden] {
  display: none !important;
}

.lb-ai-trust {
  margin: 12px 16px 0;
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(53,198,211,.08);
  border: 1px solid rgba(53,198,211,.18);
  color: rgba(255,255,255,.74);
  font-size: 11.5px;
  line-height: 1.45;
}
.lb-ai-trust i { color: var(--teal); margin-top: 2px; }

.lb-ai-voice-status {
  margin: 8px 16px 0;
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  gap: 8px;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(53,198,211,.24);
  background: rgba(53,198,211,.11);
  color: rgba(255,255,255,.78);
  font-size: 11.5px;
  font-weight: 800;
}
.lb-ai-voice-status[hidden] { display: none !important; }
.lb-ai-voice-status::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 0 0 rgba(53,198,211,.42);
  animation: aiVoiceDot 1.35s ease-out infinite;
}

.lb-ai-messages {
  flex: 1;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.lb-ai-messages::-webkit-scrollbar { display: none; }

.lb-ai-voice-stage {
  position: absolute;
  inset: 79px 0 0;
  z-index: 8;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 22px 18px calc(20px + var(--safe-bot));
  background:
    radial-gradient(circle at 50% 28%, rgba(76,209,222,.24), transparent 28%),
    radial-gradient(circle at 50% 58%, rgba(199,154,74,.18), transparent 34%),
    linear-gradient(180deg, rgba(9,41,67,.96), rgba(5,15,28,.98) 72%);
}
.lb-ai-voice-stage[hidden] { display: none !important; }
.lb-ai-chat.voice-mode .lb-ai-messages,
.lb-ai-chat.voice-mode .lb-ai-actions,
.lb-ai-chat.voice-mode .lb-ai-suggestions,
.lb-ai-chat.voice-mode .lb-ai-form,
.lb-ai-chat.voice-mode .lb-ai-voice-status {
  opacity: 0;
  pointer-events: none;
}
.lb-ai-chat.voice-mode .lb-ai-panel {
  width: min(100%, 640px);
  height: min(84vh, 760px);
}
.lb-ai-voice-orb {
  position: relative;
  width: min(42vw, 176px);
  min-width: 132px;
  aspect-ratio: 1;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 34% 28%, rgba(255,255,255,.92), rgba(111,224,239,.72) 20%, rgba(42,149,169,.62) 46%, rgba(8,34,56,.96) 76%),
    linear-gradient(145deg, rgba(199,154,74,.72), rgba(53,198,211,.72));
  box-shadow:
    0 0 0 1px rgba(255,255,255,.18),
    0 26px 70px rgba(53,198,211,.25),
    inset 0 2px 1px rgba(255,255,255,.45),
    inset 0 -14px 30px rgba(0,0,0,.28);
}
.lb-ai-voice-orb::before,
.lb-ai-voice-orb::after {
  content: '';
  position: absolute;
  inset: -15px;
  border-radius: inherit;
  border: 1px solid rgba(83,205,219,.28);
  opacity: .62;
  animation: aiVoiceAura 2.6s ease-in-out infinite;
}
.lb-ai-voice-orb::after {
  inset: -31px;
  border-color: rgba(199,154,74,.22);
  animation-delay: .5s;
}
.lb-ai-voice-orb span {
  width: 42%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: rgba(255,255,255,.48);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.42), 0 0 34px rgba(255,255,255,.36);
  filter: blur(.2px);
}
body.ai-speaking .lb-ai-voice-orb,
body.ai-listening .lb-ai-voice-orb {
  animation: aiVoiceOrb 1.3s ease-in-out infinite;
}
.lb-ai-voice-copy {
  text-align: center;
  max-width: 430px;
}
.lb-ai-voice-copy strong {
  display: block;
  font-family: var(--font-display);
  font-size: clamp(27px, 6vw, 42px);
  line-height: 1;
}
.lb-ai-voice-copy p {
  margin: 8px 0 0;
  color: rgba(255,255,255,.68);
  font-size: 13px;
  font-weight: 800;
}
.lb-ai-voice-transcript {
  width: min(100%, 470px);
  min-height: 118px;
  display: grid;
  gap: 9px;
}
.lb-ai-voice-line {
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 16px;
  padding: 10px 12px;
  background: rgba(255,255,255,.055);
}
.lb-ai-voice-line small {
  display: block;
  color: var(--gold-light);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.lb-ai-voice-line p {
  min-height: 19px;
  max-height: 66px;
  margin: 4px 0 0;
  overflow: auto;
  color: rgba(255,255,255,.88);
  font-size: 12.5px;
  line-height: 1.45;
}
.lb-ai-voice-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.lb-ai-voice-controls button {
  border: 1px solid rgba(255,255,255,.16);
  color: var(--white);
  cursor: pointer;
  font-family: inherit;
  display: grid;
  place-items: center;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.20), 0 14px 32px rgba(0,0,0,.28);
}
.lb-ai-voice-end,
.lb-ai-voice-repeat {
  width: 48px;
  height: 48px;
  border-radius: 16px;
  background: rgba(255,255,255,.075);
}
.lb-ai-voice-talk {
  width: 74px;
  height: 74px;
  border-radius: 50%;
  background: linear-gradient(145deg, #70e0ef, #2a95a9 58%, #123f63);
}
.lb-ai-voice-talk.is-listening {
  background: linear-gradient(145deg, #ffe39a, #c79a4a 54%, #7d4f1a);
}
.lb-ai-voice-controls button:disabled {
  opacity: .42;
  cursor: not-allowed;
}
.lb-ai-voice-disclosure {
  color: rgba(255,255,255,.42);
  font-size: 10.5px;
  line-height: 1.35;
}

.lb-ai-actions {
  padding: 0 16px 10px;
}

.lb-ai-wa-send {
  width: 100%;
  border: 1px solid rgba(37,211,102,.42);
  background: linear-gradient(145deg, #45ec80 0%, #25D366 45%, #075E54 100%);
  color: var(--white);
  border-radius: 14px;
  padding: 11px 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .02em;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(37,211,102,.24);
}

.lb-ai-wa-send:active { transform: scale(.99); }
.lb-ai-msg {
  display: flex;
  flex-direction: column;
  max-width: 88%;
  gap: 4px;
}
.lb-ai-msg.user { align-self: flex-end; align-items: flex-end; }
.lb-ai-msg.assistant { align-self: flex-start; align-items: flex-start; }
.lb-ai-bubble {
  padding: 11px 13px;
  border-radius: 17px;
  font-size: 13.5px;
  line-height: 1.55;
  white-space: pre-wrap;
  box-shadow: 0 8px 22px rgba(0,0,0,.22), 0 2px 6px rgba(0,0,0,.14);
}
.lb-ai-msg.assistant .lb-ai-bubble {
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.11);
  color: rgba(255,255,255,.90);
  border-bottom-left-radius: 6px;
}
.lb-ai-msg.user .lb-ai-bubble {
  background: linear-gradient(135deg, var(--gold-soft), var(--gold-deep));
  color: var(--white);
  border-bottom-right-radius: 6px;
}
.lb-ai-msg small {
  padding: 0 4px;
  font-size: 10.5px;
  color: rgba(255,255,255,.42);
}
.lb-ai-msg.typing .lb-ai-bubble {
  display: flex;
  gap: 5px;
  align-items: center;
  min-width: 54px;
}
.lb-ai-msg.typing span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--teal);
  animation: aiTyping 1s ease-in-out infinite;
}
.lb-ai-msg.typing span:nth-child(2) { animation-delay: .15s; }
.lb-ai-msg.typing span:nth-child(3) { animation-delay: .3s; }
@keyframes aiTyping {
  0%, 80%, 100% { transform: translateY(0); opacity: .35; }
  40% { transform: translateY(-4px); opacity: 1; }
}

.lb-ai-suggestions {
  display: flex;
  gap: 8px;
  padding: 0 16px 12px;
  overflow-x: auto;
}
.lb-ai-suggestions::-webkit-scrollbar { display: none; }
.lb-ai-suggestions button {
  flex: 0 0 auto;
  border: 1px solid rgba(199,154,74,.24);
  background: rgba(199,154,74,.10);
  color: var(--gold-light);
  border-radius: 999px;
  padding: 8px 11px;
  font-size: 11.5px;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  transition: all .22s var(--ease-luxury);
}
.lb-ai-suggestions button:active {
  transform: scale(.95);
  background: rgba(199,154,74,.20);
  border-color: rgba(199,154,74,.42);
}

.lb-ai-inline-actions {
  width: min(100%, 430px);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 9px;
}
.lb-ai-inline-actions.type-restaurants {
  display: grid;
  grid-template-columns: 1fr;
  gap: 9px;
}
.lb-ai-choice-card,
.lb-ai-choice-pill,
.lb-ai-date-picker {
  border: 1px solid rgba(199,154,74,.30);
  background: rgba(255,255,255,.075);
  color: rgba(255,255,255,.92);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
  font-family: inherit;
}
.lb-ai-choice-card {
  width: 100%;
  text-align: left;
  border-radius: 16px;
  padding: 11px 12px;
  cursor: pointer;
}
.lb-ai-choice-card strong {
  display: block;
  font-size: 13px;
  line-height: 1.25;
}
.lb-ai-choice-card small {
  display: block;
  margin-top: 4px;
  color: var(--gold-light);
  font-size: 11px;
  font-weight: 800;
}
.lb-ai-choice-pill {
  min-height: 38px;
  border-radius: 999px;
  padding: 8px 13px;
  font-size: 12px;
  font-weight: 850;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.lb-ai-choice-pill.primary {
  background: linear-gradient(135deg, var(--gold-light), var(--gold));
  color: #10243a;
}
.lb-ai-date-picker {
  flex: 1 1 170px;
  min-height: 42px;
  border-radius: 14px;
  padding: 8px 10px;
  color-scheme: dark;
  font-size: 13px;
}
.lb-ai-choice-card:active,
.lb-ai-choice-pill:active {
  transform: translateY(1px);
}

.lb-ai-form {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  padding: 12px 14px calc(14px + var(--safe-bot));
  border-top: 1px solid rgba(255,255,255,.08);
  background: rgba(5,15,28,.72);
}
.lb-ai-form textarea {
  flex: 1;
  resize: none;
  min-height: 44px;
  max-height: 120px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 16px;
  padding: 12px 13px;
  background: rgba(255,255,255,.06);
  color: var(--white);
  outline: none;
  font-family: inherit;
  font-size: 13.5px;
  line-height: 1.45;
  transition: border-color .25s var(--ease-luxury), box-shadow .25s var(--ease-luxury);
}
.lb-ai-form textarea:focus {
  border-color: rgba(199,154,74,.38);
  box-shadow: 0 0 0 3px rgba(199,154,74,.10);
}
.lb-ai-form textarea::placeholder { color: rgba(255,255,255,.42); }
.lb-ai-form button {
  width: 44px;
  height: 44px;
  border-radius: 15px;
  border: 1px solid rgba(255,255,255,.30);
  background: linear-gradient(145deg, var(--gold-soft), var(--gold-deep));
  color: var(--white);
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(199,154,74,.28), inset 0 1px 0 rgba(255,255,255,.36);
}
.lb-ai-form .lb-ai-mic {
  flex: 0 0 44px;
  border-color: rgba(53,198,211,.34);
  background: linear-gradient(145deg, #55d2df 0%, #217b91 62%, #123f63 100%);
  box-shadow: 0 8px 22px rgba(53,198,211,.24), inset 0 1px 0 rgba(255,255,255,.34);
}
.lb-ai-form .lb-ai-mic.is-listening {
  border-color: rgba(255,255,255,.42);
  background: linear-gradient(145deg, #ffcf72 0%, #c79a4a 50%, #7d4f1a 100%);
  animation: aiMicPulse 1.15s ease-in-out infinite;
}
.lb-ai-form button:disabled,
.lb-ai-form textarea:disabled {
  opacity: .62;
  cursor: wait;
}

body.ai-speaking .lb-ai-avatar,
body.ai-listening .lb-ai-avatar {
  animation: aiAvatarPulse 1.45s ease-in-out infinite;
}

@keyframes aiVoiceDot {
  0% { box-shadow: 0 0 0 0 rgba(53,198,211,.42); }
  70% { box-shadow: 0 0 0 8px rgba(53,198,211,0); }
  100% { box-shadow: 0 0 0 0 rgba(53,198,211,0); }
}
@keyframes aiMicPulse {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
}
@keyframes aiAvatarPulse {
  0%, 100% { box-shadow: inset 0 1px 0 rgba(255,255,255,.34), 0 10px 26px rgba(53,198,211,.24), 0 0 0 6px rgba(83,205,219,.08); }
  50% { box-shadow: inset 0 1px 0 rgba(255,255,255,.42), 0 14px 34px rgba(53,198,211,.34), 0 0 0 10px rgba(83,205,219,.13); }
}
@keyframes aiVoiceAura {
  0%, 100% { transform: scale(.96); opacity: .42; }
  50% { transform: scale(1.05); opacity: .82; }
}
@keyframes aiVoiceOrb {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.045); }
}

@media (min-width: 760px) {
  .lb-ai-panel { border-radius: 28px; margin-bottom: 24px; max-height: 760px; }
}

@media (max-width: 430px) {
  .lb-ai-fab {
    right: 18px;
    bottom: calc(86px + var(--safe-bot));
    width: 52px;
    height: 52px;
  }
  .lb-ai-panel { height: min(82vh, 760px); }
  .lb-ai-head-copy strong { font-size: 19px; }
  .lb-ai-msg { max-width: 92%; }
}
