:root {
    --accent:  #38bdf8;
    --accent2: #7ee8fa;
    --teal:    #22d3ee;
    --teal3:   #0a1f2e;
    --ember:   #38bdf8;
    --ember2:  #0e7490;
    --pink:    #f472b6;
    --violet:  #a78bfa;
    --dark:    #04080f;
    --dark2:   #060b14;
    --dark3:   #091018;
    --dark4:   #0d1520;
    --border:  rgba(56,189,248,0.22);
    --border2: rgba(255,255,255,0.07);
    --bordert: rgba(34,211,238,0.18);
    --muted:   rgba(255,255,255,0.52);
    --muted2:  rgba(255,255,255,0.3);
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  html { scroll-behavior:smooth; max-width:100%; overflow-x:hidden; }
  body { font-family:'Montserrat',sans-serif; background:var(--dark); color:#e2edf5; overflow-x:hidden; -webkit-font-smoothing:antialiased; width:100%; max-width:100vw; position:relative; }
  ::-webkit-scrollbar { width:5px; }
  ::-webkit-scrollbar-track { background:var(--dark); }
  ::-webkit-scrollbar-thumb { background:linear-gradient(to bottom, #38bdf8, #a78bfa); border-radius:3px; }

  /* NAV */
  nav {
    position:fixed; top:0; left:0; right:0; z-index:999;
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 40px;
    background:rgba(4,8,15,0.92);
    backdrop-filter:blur(20px);
    border-bottom:1px solid rgba(56,189,248,0.12);
    transition:padding 0.3s;
  }
  nav.scrolled { padding:12px 40px; background:rgba(4,8,15,0.98); box-shadow:0 4px 40px rgba(0,0,0,0.7), 0 1px 0 rgba(56,189,248,0.1); }
  .logo { font-family:'Roboto',sans-serif; font-size:1.5rem; font-weight:700; color:#38bdf8; letter-spacing:3px; text-decoration:none; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .logo em { color:var(--teal); font-style:normal; font-size:1.1rem; }
  .logo-caption { display:block; width:100%; font-size:0.5rem; font-weight:500; letter-spacing:2.5px; text-transform:uppercase; color:rgba(255,255,255,0.35); font-family:'Montserrat',sans-serif; margin-top:-4px; }
  nav ul { list-style:none; display:flex; gap:28px; }
  nav ul a { color:rgba(255,255,255,0.6); text-decoration:none; font-size:0.68rem; letter-spacing:2.5px; text-transform:uppercase; font-weight:500; transition:color 0.2s; }
  nav ul a:hover { color:var(--teal); }
  .nav-btns { display:flex; gap:10px; }
  .btn-wa   { background:#25D366; color:#fff; text-decoration:none; padding:8px 16px; border-radius:50px; font-size:0.7rem; font-weight:700; letter-spacing:1px; transition:all 0.2s; box-shadow:0 4px 14px rgba(37,211,102,0.35); }
  .btn-wa:hover { background:#1ebe5d; transform:translateY(-1px); box-shadow:0 6px 20px rgba(37,211,102,0.5); }
  .btn-wa-cta { background:linear-gradient(135deg,#25D366,#128C7E); color:#fff; text-decoration:none; padding:14px 28px; border-radius:50px; font-size:0.76rem; font-weight:700; letter-spacing:1px; transition:all 0.2s; box-shadow:0 4px 18px rgba(37,211,102,0.35); display:inline-flex; align-items:center; gap:8px; }
  .btn-wa-cta:hover { background:linear-gradient(135deg,#1ebe5d,#0f7a6d); transform:translateY(-2px); box-shadow:0 6px 28px rgba(37,211,102,0.5); }
  .btn-book { background:linear-gradient(135deg,#38bdf8,#0e7490); color:#fff; text-decoration:none; padding:8px 18px; border-radius:50px; font-size:0.7rem; font-weight:700; letter-spacing:1px; transition:all 0.2s; box-shadow:0 4px 18px rgba(56,189,248,0.35); }
  .btn-book:hover { opacity:0.9; transform:translateY(-1px); box-shadow:0 6px 28px rgba(56,189,248,0.55); }

  /* HERO — Lumière editorial style */
  .hero {
    height:100vh; position:relative;
    display:flex; align-items:flex-end;
    overflow:hidden; background:var(--dark);
    width:100%; max-width:100vw;
  }
  .hero-bg {
    position:absolute; inset:0;
    background-size:cover;
    background-position:center 40%;
    background-repeat:no-repeat;
    transform:scale(1.04);
    animation:heroPan 18s ease-in-out infinite alternate;
  }
  @keyframes heroPan {
    from { transform:scale(1.04) translateX(0); }
    to   { transform:scale(1.08) translateX(-2%); }
  }
  .hero-overlay {
    position:absolute; inset:0;
    background:
      linear-gradient(to right, rgba(4,8,16,0.92) 0%, rgba(4,8,16,0.75) 50%, rgba(4,8,16,0.35) 100%),
      linear-gradient(to top, rgba(4,8,16,1) 0%, rgba(4,8,16,0.6) 30%, transparent 65%);
  }
  .hero-grid {
    position:absolute; inset:0; opacity:0.04;
    background-image:
      linear-gradient(rgba(125,211,252,0.5) 1px, transparent 1px),
      linear-gradient(90deg, rgba(125,211,252,0.5) 1px, transparent 1px);
    background-size:80px 80px;
    animation:gridMove 30s linear infinite;
  }
  @keyframes gridMove { from{background-position:0 0} to{background-position:80px 80px} }

  .orb { position:absolute; border-radius:50%; filter:blur(90px); animation:orbFloat 9s ease-in-out infinite; pointer-events:none; }
  .orb1 { width:550px; height:550px; background:radial-gradient(circle, #0e7490, #0a1f2e); top:-150px; right:-80px; opacity:0.55; animation-delay:0s; }
  .orb2 { width:350px; height:350px; background:radial-gradient(circle, #7c3aed, #1e0a3c); bottom:-80px; left:-60px; opacity:0.45; animation-delay:-3.5s; }
  .orb3 { width:250px; height:250px; background:radial-gradient(circle, #0891b2, #022c3a); top:40%; left:30%; opacity:0.18; animation-delay:-6s; }
  @keyframes orbFloat { 0%,100%{transform:translateY(0) scale(1)} 50%{transform:translateY(-28px) scale(1.06)} }

  .ring { position:absolute; border-radius:50%; border:1px solid rgba(56,189,248,0.08); animation:ringPulse 6s ease-in-out infinite; }
  .ring1 { width:500px; height:500px; }
  .ring2 { width:750px; height:750px; border-color:rgba(167,139,250,0.05); animation-delay:-2s; }
  .ring3 { width:1000px; height:1000px; border-color:rgba(34,211,238,0.04); animation-delay:-4s; }
  @keyframes ringPulse { 0%,100%{transform:scale(1);opacity:1} 50%{transform:scale(1.04);opacity:0.4} }

  .petals { position:absolute; inset:0; overflow:hidden; pointer-events:none; }
  .petal { position:absolute; opacity:0; animation:petalFall linear infinite; }
  @keyframes petalFall {
    0%   { opacity:0;   transform:translateY(-10px) rotate(0deg) scale(0.7); }
    10%  { opacity:0.4; }
    90%  { opacity:0.15; }
    100% { opacity:0;   transform:translateY(100vh) rotate(400deg) scale(1.1); }
  }

  /* Hero content — left-anchored editorial */
  .hero-content {
    position:relative; z-index:3;
    padding:0 60px 120px;
    width:100%;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
  }
  .hero-badge {
    display:inline-flex; align-items:center; gap:8px;
    background:rgba(255,255,255,0.08); backdrop-filter:blur(8px);
    border:1px solid rgba(255,255,255,0.18); color:rgba(255,255,255,0.9);
    font-size:0.62rem; letter-spacing:3px; text-transform:uppercase;
    padding:7px 18px; border-radius:50px; margin-bottom:28px; font-weight:600;
    opacity:0; animation:fadeUp 0.8s ease 0.2s both;
  }
  .hero-badge::before {
    content:''; width:7px; height:7px; border-radius:50%;
    background:#22d3ee; box-shadow:0 0 10px #22d3ee, 0 0 20px rgba(34,211,238,0.5);
    animation:dotBlink 2s ease-in-out infinite;
  }
  @keyframes dotBlink { 0%,100%{opacity:1} 50%{opacity:0.3} }
  .hero-sub {
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(1.2rem,2.5vw,1.8rem);
    font-style:italic; font-weight:300;
    color:rgba(255,255,255,0.7); margin-bottom:12px; letter-spacing:2px;
    opacity:0; animation:fadeUp 0.8s ease 0.45s both;
  }
  .hero h1 {
    font-family:'Montserrat',sans-serif;
    font-size:clamp(5.5rem, 17vw, 13rem);
    color:#fff; font-weight:900; line-height:0.85;
    letter-spacing:-2px; margin-bottom:0; text-transform:uppercase;
    text-shadow:0 4px 80px rgba(0,0,0,0.5);
    opacity:0; animation:fadeUp 0.9s ease 0.55s both;
  }
  .hero h1 span { color:#fff; display:block; }
  .hero-caption {
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(0.9rem,2vw,1.15rem);
    font-style:italic; font-weight:300;
    color:rgba(255,255,255,0.48);
    letter-spacing:4px;
    margin-top:6px; margin-bottom:0;
    opacity:0; animation:fadeUp 0.8s ease 0.72s both;
  }
  .hero-location {
    font-size:0.62rem; letter-spacing:6px; text-transform:uppercase;
    color:rgba(255,255,255,0.45); font-weight:400; margin-top:24px; margin-bottom:16px;
    opacity:0; animation:fadeUp 0.8s ease 0.78s both;
  }
  .hero-desc {
    color:rgba(255,255,255,0.45); font-size:0.82rem;
    max-width:380px; margin:0 0 36px; line-height:1.9;
    opacity:0; animation:fadeUp 0.8s ease 0.85s both;
  }
  .hero-ctas { display:flex; gap:14px; flex-wrap:wrap; opacity:0; animation:fadeUp 0.8s ease 1.05s both; }
  .btn-primary {
    background:#fff; color:#04080f; padding:14px 34px; border-radius:4px;
    text-decoration:none; font-size:0.72rem; font-weight:800; letter-spacing:2.5px; text-transform:uppercase;
    transition:all 0.3s; border:2px solid transparent;
    box-shadow:0 0 30px rgba(255,255,255,0.15);
  }
  .btn-primary:hover { background:rgba(255,255,255,0.92); transform:translateY(-3px); box-shadow:0 8px 40px rgba(255,255,255,0.25); }
  .btn-outline {
    border:1.5px solid rgba(56,189,248,0.55); color:#38bdf8; padding:14px 34px; border-radius:4px;
    text-decoration:none; font-size:0.72rem; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; transition:all 0.3s;
    text-shadow:0 0 20px rgba(56,189,248,0.4);
  }
  .btn-outline:hover { border-color:#38bdf8; background:rgba(56,189,248,0.1); transform:translateY(-3px); box-shadow:0 0 30px rgba(56,189,248,0.2); }

  /* Floating info card — bottom right like Lumière */
  .hero-stats {
    position:absolute; bottom:0; right:0; z-index:4;
    display:flex; flex-direction:column;
    background:rgba(4,8,15,0.82); backdrop-filter:blur(24px);
    border-top:1px solid rgba(56,189,248,0.25);
    border-left:1px solid rgba(56,189,248,0.25);
    border-radius:12px 0 0 0;
    padding:28px 36px;
    opacity:0; animation:fadeUp 0.8s ease 1.25s both;
    min-width:260px;
    box-shadow:-6px -6px 50px rgba(56,189,248,0.08);
  }
  .hero-stats-label {
    font-size:0.55rem; letter-spacing:4px; text-transform:uppercase;
    color:rgba(56,189,248,0.6); margin-bottom:20px; font-weight:700;
  }
  .hstat {
    display:flex; align-items:baseline; gap:8px;
    padding:8px 0;
    border-bottom:1px solid rgba(56,189,248,0.08);
  }
  .hstat:last-child { border-bottom:none; }
  .hstat-n { font-family:'Montserrat',sans-serif; font-size:1.4rem; font-weight:800; color:#38bdf8; line-height:1; text-shadow:0 0 20px rgba(56,189,248,0.4); }
  .hstat:nth-child(3) .hstat-n { color:#22d3ee; }
  .hstat:nth-child(4) .hstat-n { color:#a78bfa; text-shadow:0 0 20px rgba(167,139,250,0.4); }
  .hstat:nth-child(5) .hstat-n { color:#f472b6; text-shadow:0 0 20px rgba(244,114,182,0.4); }
  .hstat-l { font-size:0.6rem; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,0.4); }

  /* Slide counter */
  .hero-slide-counter {
    position:absolute; bottom:40px; right:320px; z-index:4;
    opacity:0; animation:fadeIn 1s ease 1.5s both;
    display:flex; flex-direction:column; align-items:flex-end; gap:4px;
  }
  .hsc-num { font-size:0.65rem; color:rgba(56,189,248,0.5); letter-spacing:2px; }
  .hsc-title { font-size:0.72rem; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,0.7); }
  .hsc-line { width:48px; height:1px; background:linear-gradient(to left, #38bdf8, transparent); margin-top:4px; align-self:flex-end; }

  .scroll-ind {
    position:absolute; bottom:48px; left:60px;
    z-index:3; display:flex; flex-direction:column; align-items:flex-start; gap:6px;
    opacity:0; animation:fadeIn 1s ease 1.6s both;
  }
  .scroll-line { width:1px; height:48px; background:linear-gradient(to bottom, #38bdf8, transparent); animation:linePulse 2.2s ease-in-out infinite; }
  @keyframes linePulse { 0%,100%{opacity:1;transform:scaleY(1)} 50%{opacity:0.4;transform:scaleY(0.7)} }
  .scroll-txt { font-size:0.52rem; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,0.3); }

  .pub-banner { background:linear-gradient(135deg,#0e7490,#0c4a6e,#4a1d96,#831843); color:#fff; text-align:center; padding:13px 20px; font-size:0.72rem; letter-spacing:2.5px; font-weight:600; text-transform:uppercase; box-shadow:0 2px 30px rgba(56,189,248,0.25); }
  .pub-banner span { opacity:0.75; font-weight:400; }

  /* SHARED */
  section { padding:90px 40px; }
  .container { max-width:1100px; margin:0 auto; }
  .sec-lbl { font-size:0.6rem; letter-spacing:5px; text-transform:uppercase; color:var(--teal); font-weight:700; margin-bottom:12px; text-shadow:0 0 25px rgba(34,211,238,0.6); }
  .sec-title { font-family:'Montserrat',sans-serif; font-size:clamp(2rem,4.5vw,3.2rem); font-weight:900; color:#fff; line-height:1.05; margin-bottom:18px; letter-spacing:1.5px; text-transform:uppercase; text-shadow:0 2px 40px rgba(255,255,255,0.08); }
  .divider { width:70px; height:2px; background:linear-gradient(90deg,#38bdf8,#a78bfa,#f472b6,transparent); margin-bottom:32px; box-shadow:0 0 18px rgba(56,189,248,0.5); }

  /* SLOTS */
  #slots { background:var(--dark2); position:relative; }
  .slots-hdr { text-align:center; margin-bottom:50px; }
  .slots-hdr p { color:var(--muted); max-width:500px; margin:0 auto; font-size:0.87rem; line-height:1.8; }
  .slots-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:20px; }
  .scard {
    background:var(--dark3); border:1px solid var(--border2); border-radius:18px; padding:32px 26px;
    position:relative; overflow:hidden; transition:all 0.35s;
  }
  .scard::before {
    content:''; position:absolute; top:0; left:0; right:0; height:2px;
    background:linear-gradient(90deg,#38bdf8,#a78bfa);
    transform:scaleX(0); transform-origin:left; transition:transform 0.35s;
  }
  .scard:nth-child(1)::before { background:linear-gradient(90deg,#38bdf8,#22d3ee); }
  .scard:nth-child(2)::before { background:linear-gradient(90deg,#22d3ee,#a78bfa); }
  .scard:nth-child(3)::before { background:linear-gradient(90deg,#a78bfa,#f472b6); }
  .scard:nth-child(4)::before { background:linear-gradient(90deg,#f472b6,#38bdf8); }
  .scard:hover { border-color:rgba(56,189,248,0.35); transform:translateY(-7px); box-shadow:0 24px 60px rgba(0,0,0,0.6), 0 0 50px rgba(56,189,248,0.1); }
  .scard:nth-child(2):hover { border-color:rgba(34,211,238,0.35); box-shadow:0 24px 60px rgba(0,0,0,0.6), 0 0 50px rgba(34,211,238,0.1); }
  .scard:nth-child(3):hover { border-color:rgba(167,139,250,0.35); box-shadow:0 24px 60px rgba(0,0,0,0.6), 0 0 50px rgba(167,139,250,0.1); }
  .scard:nth-child(4):hover { border-color:rgba(244,114,182,0.35); box-shadow:0 24px 60px rgba(0,0,0,0.6), 0 0 50px rgba(244,114,182,0.1); }
  .scard:hover::before { transform:scaleX(1); }
  .scard-n { position:absolute; top:18px; right:22px; font-family:'Montserrat',sans-serif; font-size:2.8rem; font-weight:900; color:rgba(255,255,255,0.04); line-height:1; }
  .sbadge { display:inline-block; background:rgba(56,189,248,0.1); border:1px solid rgba(56,189,248,0.3); color:#38bdf8; font-size:0.6rem; letter-spacing:2px; text-transform:uppercase; padding:4px 12px; border-radius:50px; font-weight:600; margin-bottom:16px; }
  .scard:nth-child(2) .sbadge { background:rgba(34,211,238,0.1); border-color:rgba(34,211,238,0.3); color:#22d3ee; }
  .scard:nth-child(3) .sbadge { background:rgba(167,139,250,0.1); border-color:rgba(167,139,250,0.3); color:#a78bfa; }
  .scard:nth-child(4) .sbadge { background:rgba(244,114,182,0.1); border-color:rgba(244,114,182,0.3); color:#f472b6; }
  .stime { font-family:'Montserrat',sans-serif; font-size:1.3rem; font-weight:800; color:#38bdf8; line-height:1; margin-bottom:6px; text-shadow:0 0 20px rgba(56,189,248,0.4); }
  .scard:nth-child(2) .stime { color:#22d3ee; text-shadow:0 0 20px rgba(34,211,238,0.4); }
  .scard:nth-child(3) .stime { color:#a78bfa; text-shadow:0 0 20px rgba(167,139,250,0.4); }
  .scard:nth-child(4) .stime { color:#f472b6; text-shadow:0 0 20px rgba(244,114,182,0.4); }
  .sdur { font-size:0.66rem; letter-spacing:2px; text-transform:uppercase; color:var(--muted2); margin-bottom:20px; }
  .sinfo { display:flex; align-items:center; gap:8px; font-size:0.76rem; color:rgba(255,255,255,0.55); margin-bottom:7px; }
  .sprice { margin-top:16px; padding-top:16px; border-top:1px solid var(--border2); font-size:1.2rem; font-weight:700; color:#fff; }
  .sprice span { font-size:0.7rem; color:var(--muted); font-weight:400; }

  /* ABOUT */
  #about { background:var(--dark); }
  .about-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
  .about-text p { color:var(--muted); line-height:1.85; font-size:0.87rem; margin-bottom:14px; }
  .chips { display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
  .chip { background:rgba(56,189,248,0.07); border:1px solid rgba(56,189,248,0.25); color:rgba(255,255,255,0.8); padding:7px 16px; border-radius:50px; font-size:0.72rem; font-weight:600; transition:all 0.2s; }
  .chip:nth-child(2n) { background:rgba(167,139,250,0.07); border-color:rgba(167,139,250,0.25); }
  .chip:nth-child(3n) { background:rgba(244,114,182,0.07); border-color:rgba(244,114,182,0.25); }
  .chip:nth-child(4n) { background:rgba(34,211,238,0.07); border-color:rgba(34,211,238,0.25); }
  .chip:hover { background:rgba(56,189,248,0.15); border-color:#38bdf8; color:#38bdf8; box-shadow:0 0 20px rgba(56,189,248,0.2); }
  .chip:nth-child(2n):hover { border-color:#a78bfa; color:#a78bfa; box-shadow:0 0 20px rgba(167,139,250,0.2); }
  .chip:nth-child(3n):hover { border-color:#f472b6; color:#f472b6; box-shadow:0 0 20px rgba(244,114,182,0.2); }
  .chip:nth-child(4n):hover { border-color:#22d3ee; color:#22d3ee; box-shadow:0 0 20px rgba(34,211,238,0.2); }
  .stat-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .sbox { background:var(--dark3); border:1px solid var(--border2); border-radius:16px; padding:28px 20px; text-align:center; transition:all 0.3s; }
  .sbox:hover { border-color:rgba(56,189,248,0.35); transform:translateY(-3px); box-shadow:0 8px 30px rgba(56,189,248,0.12); }
  .sbox-n { font-family:'Montserrat',sans-serif; font-size:2rem; font-weight:800; color:#38bdf8; line-height:1; text-shadow:0 0 20px rgba(56,189,248,0.35); }
  .sbox:nth-child(2) .sbox-n { color:#22d3ee; text-shadow:0 0 20px rgba(34,211,238,0.35); }
  .sbox:nth-child(2):hover { border-color:rgba(34,211,238,0.35); box-shadow:0 8px 30px rgba(34,211,238,0.12); }
  .sbox:nth-child(3) .sbox-n { color:#a78bfa; text-shadow:0 0 20px rgba(167,139,250,0.35); }
  .sbox:nth-child(3):hover { border-color:rgba(167,139,250,0.35); box-shadow:0 8px 30px rgba(167,139,250,0.12); }
  .sbox:nth-child(4) .sbox-n { color:#f472b6; text-shadow:0 0 20px rgba(244,114,182,0.35); }
  .sbox:nth-child(4):hover { border-color:rgba(244,114,182,0.35); box-shadow:0 8px 30px rgba(244,114,182,0.12); }
  .sbox-l { font-size:0.62rem; letter-spacing:2px; text-transform:uppercase; color:var(--muted2); margin-top:6px; }

  /* AMENITIES */
  #amenities { background:var(--dark2); }
  .amen-hdr { text-align:center; margin-bottom:48px; }
  .amen-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:16px; }
  .acard { background:var(--dark3); border:1px solid var(--border2); border-radius:16px; padding:26px 14px; text-align:center; transition:all 0.3s; position:relative; overflow:hidden; }
  .acard::before { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; transform:scaleX(0); transition:transform 0.3s; transform-origin:center; }
  .acard:nth-child(1)::before { background:#38bdf8; }
  .acard:nth-child(2)::before { background:#22d3ee; }
  .acard:nth-child(3)::before { background:#a78bfa; }
  .acard:nth-child(4)::before { background:#f472b6; }
  .acard:nth-child(5)::before { background:#38bdf8; }
  .acard:nth-child(6)::before { background:#a78bfa; }
  .acard:hover::before { transform:scaleX(1); }
  .acard:hover { transform:translateY(-5px); }
  .acard:nth-child(1):hover { border-color:rgba(56,189,248,0.4); box-shadow:0 8px 30px rgba(56,189,248,0.15); }
  .acard:nth-child(2):hover { border-color:rgba(34,211,238,0.4); box-shadow:0 8px 30px rgba(34,211,238,0.15); }
  .acard:nth-child(3):hover { border-color:rgba(167,139,250,0.4); box-shadow:0 8px 30px rgba(167,139,250,0.15); }
  .acard:nth-child(4):hover { border-color:rgba(244,114,182,0.4); box-shadow:0 8px 30px rgba(244,114,182,0.15); }
  .acard:nth-child(5):hover { border-color:rgba(56,189,248,0.4); box-shadow:0 8px 30px rgba(56,189,248,0.15); }
  .acard:nth-child(6):hover { border-color:rgba(167,139,250,0.4); box-shadow:0 8px 30px rgba(167,139,250,0.15); }
  .acard-i { font-size:2rem; margin-bottom:11px; }
  .acard-n { font-family:'Montserrat',sans-serif; font-size:0.68rem; font-weight:700; color:rgba(255,255,255,0.8); letter-spacing:1.5px; text-transform:uppercase; }

  /* PRICING */
  #pricing { background:var(--dark2); }
  .pricing-wrap { max-width:660px; margin:40px auto 0; }
  .pricing-card { background:var(--dark3); border:1px solid var(--border2); border-radius:24px; overflow:hidden; box-shadow:0 30px 80px rgba(0,0,0,0.5); }
  .pricing-head {
    background:linear-gradient(160deg,#040d1a,#071525);
    padding:40px; text-align:center; border-bottom:1px solid var(--border2);
    position:relative; overflow:hidden;
  }
  .pricing-head::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%,rgba(56,189,248,0.2),transparent 65%); }
  .pricing-head h3 { font-family:'Montserrat',sans-serif; font-size:0.85rem; font-weight:800; text-transform:uppercase; letter-spacing:2px; color:rgba(255,255,255,0.65); margin-bottom:10px; position:relative; }
  .p-amount { font-family:'Montserrat',sans-serif; font-size:3.6rem; font-weight:900; color:#38bdf8; line-height:1; position:relative; text-shadow:0 0 40px rgba(56,189,248,0.4); }
  .p-amount sub { font-size:1.1rem; color:var(--muted); font-weight:400; }
  .pricing-body { padding:36px; }
  .prow { display:flex; justify-content:space-between; align-items:center; padding:14px 0; border-bottom:1px solid var(--border2); font-size:0.82rem; }
  .prow:last-child { border:none; }
  .prow .l { color:var(--muted); }
  .prow .v { font-weight:700; color:#fff; }
  .prow:nth-child(2) .v { color:#38bdf8; }
  .prow:nth-child(3) .v { color:#22d3ee; }
  .prow:nth-child(4) .v { color:#a78bfa; }
  .prow:nth-child(5) .v { color:#f472b6; }
  .prow:nth-child(6) .v { color:#38bdf8; }
  .prow:nth-child(7) .v { color:#22d3ee; }
  .p-note { background:rgba(56,189,248,0.06); border:1px solid rgba(56,189,248,0.18); border-radius:12px; padding:16px 20px; margin-top:20px; font-size:0.79rem; color:rgba(255,255,255,0.6); text-align:center; line-height:1.6; }
  .p-note strong { color:#38bdf8; }

  /* BOOK */
  #book { background:var(--dark2); }
  .book-wrap { max-width:670px; margin:0 auto; }
  .book-intro { text-align:center; margin-bottom:38px; }
  .book-intro p { color:var(--muted); font-size:0.87rem; line-height:1.75; }
  .book-form { background:var(--dark3); border:1px solid var(--border2); border-radius:24px; padding:40px; }
  .fg { margin-bottom:22px; }
  .fg label { display:block; font-size:0.64rem; letter-spacing:2.5px; text-transform:uppercase; color:#22d3ee; font-weight:600; margin-bottom:8px; }
  .fg input, .fg select {
    width:100%; padding:13px 17px; background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.1);
    border-radius:12px; color:#fff; font-size:0.87rem; font-family:'Montserrat',sans-serif; outline:none; transition:border-color 0.2s; -webkit-appearance:none;
  }
  .fg input:focus, .fg select:focus { border-color:#38bdf8; box-shadow:0 0 0 3px rgba(56,189,248,0.15); }
  .fg select option { background:var(--dark3); }
  .form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .slot-picker { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
  .spk {
    background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.09);
    border-radius:12px; padding:14px 10px; text-align:center; cursor:pointer;
    transition:all 0.2s; color:#fff; font-family:'Montserrat',sans-serif;
  }
  .spk:hover:not(.full) { border-color:#38bdf8; background:rgba(56,189,248,0.1); }
  .spk.selected { border-color:#38bdf8; background:rgba(56,189,248,0.16); box-shadow:0 0 25px rgba(56,189,248,0.15); }
  .spk.full { opacity:0.35; cursor:not-allowed; }
  .spk .sp-t { font-size:0.8rem; font-weight:600; }
  .spk .sp-s { font-size:0.6rem; color:var(--muted2); margin-top:3px; }
  .spk .sp-r { font-size:0.59rem; margin-top:4px; }
  .bsum { background:linear-gradient(135deg,rgba(56,189,248,0.06),rgba(167,139,250,0.05)); border:1px solid rgba(56,189,248,0.2); border-radius:16px; padding:24px; margin:24px 0; display:none; }
  .bsum h4 { font-family:'Montserrat',sans-serif; font-size:0.8rem; font-weight:700; color:#22d3ee; margin-bottom:14px; letter-spacing:2px; text-transform:uppercase; }
  .brow { display:flex; justify-content:space-between; font-size:0.79rem; padding:7px 0; border-bottom:1px solid rgba(255,255,255,0.05); color:rgba(255,255,255,0.62); }
  .brow:last-child { border:none; }
  .brow.tot { font-size:1rem; font-weight:700; color:#a78bfa; padding-top:14px; margin-top:4px; }
  .terms-box { background:rgba(56,189,248,0.04); border:1px solid rgba(56,189,248,0.18); border-radius:14px; margin-bottom:20px; overflow:hidden; box-shadow:0 0 20px rgba(56,189,248,0.05); }
  .terms-tog { padding:15px 20px; cursor:pointer; font-size:0.72rem; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; font-family:'Roboto',sans-serif; color:#22d3ee; display:flex; justify-content:space-between; align-items:center; user-select:none; transition:background 0.2s; }
  .terms-tog:hover { background:rgba(56,189,248,0.08); }
  .terms-body { display:none; padding:0 20px 18px; border-top:1px solid rgba(56,189,248,0.14); }
  .terms-body ul { list-style:none; margin:0; padding:0; }
  .terms-body li {
    margin:10px 0 0;
    font-family:'Roboto',sans-serif;
    font-size:0.72rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:0.8px;
    color:rgba(255,255,255,0.82);
    line-height:1.7;
    padding-left:20px;
    position:relative;
  }
  .terms-body li::before {
    content:'›';
    position:absolute; left:0; top:0;
    color:#38bdf8;
    font-size:1.1rem;
    font-weight:700;
  }
  .terms-body li strong { color:#fff; font-weight:900; }
  .terms-body.open { display:block; }
  .no-refund { background:rgba(255,80,80,0.07); border:1px solid rgba(255,80,80,0.18); border-radius:10px; padding:12px 16px; margin-bottom:20px; font-size:0.74rem; color:#ff9999; }
  .btn-confirm {
    width:100%; background:linear-gradient(135deg,#38bdf8,#0e7490); color:#fff; border:none;
    padding:18px; border-radius:14px; font-size:0.81rem; font-weight:700; letter-spacing:2px; text-transform:uppercase;
    cursor:pointer; transition:all 0.3s; font-family:'Montserrat',sans-serif; box-shadow:0 8px 30px rgba(56,189,248,0.35);
  }
  .btn-confirm:hover:not(:disabled) { opacity:0.9; transform:translateY(-2px); box-shadow:0 14px 40px rgba(56,189,248,0.5); }
  .btn-confirm:disabled { opacity:0.3; cursor:not-allowed; transform:none; box-shadow:none; }
  .err-msg { font-size:0.7rem; color:#ff8888; margin-top:6px; display:none; padding-left:2px; }
  .fg input.invalid, .fg select.invalid { border-color:#ff6666 !important; }

  /* EVENTS */
  #events { background:var(--dark); }
  .events-intro p { color:var(--muted); max-width:520px; font-size:0.87rem; line-height:1.8; }
  .ev-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(275px,1fr)); gap:20px; margin-top:40px; }
  .ecard { background:var(--dark3); border:1px solid var(--border2); border-radius:20px; padding:30px; transition:all 0.3s; position:relative; overflow:hidden; }
  .ecard::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; transform:scaleX(0); transition:transform 0.3s; transform-origin:left; }
  .ecard:nth-child(1)::after { background:linear-gradient(90deg,#38bdf8,#22d3ee); }
  .ecard:nth-child(2)::after { background:linear-gradient(90deg,#22d3ee,#a78bfa); }
  .ecard:nth-child(3)::after { background:linear-gradient(90deg,#a78bfa,#f472b6); }
  .ecard:nth-child(4)::after { background:linear-gradient(90deg,#f472b6,#38bdf8); }
  .ecard:nth-child(5)::after { background:linear-gradient(90deg,#38bdf8,#a78bfa); }
  .ecard:nth-child(6)::after { background:linear-gradient(90deg,#a78bfa,#22d3ee); }
  .ecard:hover::after { transform:scaleX(1); }
  .ecard:nth-child(1):hover { border-color:rgba(56,189,248,0.3); box-shadow:0 20px 60px rgba(0,0,0,0.6), 0 0 40px rgba(56,189,248,0.1); transform:translateY(-6px); }
  .ecard:nth-child(2):hover { border-color:rgba(34,211,238,0.3); box-shadow:0 20px 60px rgba(0,0,0,0.6), 0 0 40px rgba(34,211,238,0.1); transform:translateY(-6px); }
  .ecard:nth-child(3):hover { border-color:rgba(167,139,250,0.3); box-shadow:0 20px 60px rgba(0,0,0,0.6), 0 0 40px rgba(167,139,250,0.1); transform:translateY(-6px); }
  .ecard:nth-child(4):hover { border-color:rgba(244,114,182,0.3); box-shadow:0 20px 60px rgba(0,0,0,0.6), 0 0 40px rgba(244,114,182,0.1); transform:translateY(-6px); }
  .ecard:nth-child(5):hover { border-color:rgba(56,189,248,0.3); box-shadow:0 20px 60px rgba(0,0,0,0.6), 0 0 40px rgba(56,189,248,0.1); transform:translateY(-6px); }
  .ecard:nth-child(6):hover { border-color:rgba(167,139,250,0.3); box-shadow:0 20px 60px rgba(0,0,0,0.6), 0 0 40px rgba(167,139,250,0.1); transform:translateY(-6px); }
  .ecard-ico { font-size:2.1rem; margin-bottom:14px; }
  .ecard h4 { font-family:'Montserrat',sans-serif; font-size:0.88rem; font-weight:700; color:#fff; margin-bottom:10px; text-transform:uppercase; letter-spacing:1px; }
  .ecard p { color:var(--muted); font-size:0.79rem; line-height:1.75; }
  .group-cta { margin-top:40px; background:linear-gradient(135deg,var(--dark3),var(--dark4)); border:1px solid var(--bordert); border-radius:20px; padding:40px; text-align:center; box-shadow:0 0 50px rgba(56,189,248,0.05); }
  .group-cta h3 { font-family:'Montserrat',sans-serif; font-size:1.15rem; font-weight:800; color:#fff; margin-bottom:10px; text-transform:uppercase; letter-spacing:1px; }
  .group-cta p { color:var(--muted); font-size:0.82rem; margin-bottom:24px; }
  .group-cta-tags { display:flex; flex-direction:column; gap:10px; flex-shrink:0; }
  .gcta-tag { display:inline-flex; align-items:center; gap:8px; border-radius:50px; padding:10px 18px; font-size:0.72rem; font-weight:700; letter-spacing:0.5px; transition:all 0.2s; }
  .gcta-tag:nth-child(1) { border:1px solid rgba(56,189,248,0.35); color:#38bdf8; background:rgba(56,189,248,0.08); }
  .gcta-tag:nth-child(2) { border:1px solid rgba(34,211,238,0.35); color:#22d3ee; background:rgba(34,211,238,0.08); }
  .gcta-tag:nth-child(3) { border:1px solid rgba(167,139,250,0.35); color:#a78bfa; background:rgba(167,139,250,0.08); }
  .gcta-tag:nth-child(4) { border:1px solid rgba(244,114,182,0.35); color:#f472b6; background:rgba(244,114,182,0.08); }
  .gcta-tag:hover { filter:brightness(1.2); transform:translateX(3px); }
  .cta-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
  .btn-act { background:var(--dark4); border:1px solid var(--border); color:#38bdf8; padding:12px 24px; border-radius:50px; font-size:0.74rem; font-weight:700; text-decoration:none; letter-spacing:1px; transition:all 0.2s; }
  .btn-act:hover { background:rgba(56,189,248,0.14); border-color:#38bdf8; color:#fff; box-shadow:0 0 20px rgba(56,189,248,0.2); }

  /* REVIEWS */
  #reviews { background:var(--dark); }
  .rev-hdr { text-align:center; margin-bottom:46px; }

  /* CONTACT */
  #contact { background:var(--dark2); }
  .contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
  .clinks { display:flex; flex-direction:column; gap:13px; margin-top:24px; }
  .clink { display:flex; align-items:center; gap:15px; background:var(--dark3); border:1px solid var(--border2); border-radius:14px; padding:17px 20px; text-decoration:none; color:#fff; transition:all 0.3s; }
  .clinks .clink:nth-child(1):hover { border-color:rgba(56,189,248,0.4); background:rgba(56,189,248,0.06); transform:translateX(5px); box-shadow:0 4px 25px rgba(56,189,248,0.12); }
  .clinks .clink:nth-child(2):hover { border-color:rgba(167,139,250,0.4); background:rgba(167,139,250,0.06); transform:translateX(5px); box-shadow:0 4px 25px rgba(167,139,250,0.12); }
  .clinks .clink:nth-child(3):hover { border-color:rgba(244,114,182,0.4); background:rgba(244,114,182,0.06); transform:translateX(5px); box-shadow:0 4px 25px rgba(244,114,182,0.12); }
  .clinks .clink:nth-child(4):hover { border-color:rgba(34,211,238,0.4); background:rgba(34,211,238,0.06); transform:translateX(5px); box-shadow:0 4px 25px rgba(34,211,238,0.12); }
  .clink-ico { font-size:1.4rem; flex-shrink:0; }
  .clink-lbl { font-size:0.58rem; letter-spacing:2px; text-transform:uppercase; color:var(--muted2); margin-bottom:2px; }
  .clink-val { font-size:0.85rem; font-weight:700; font-family:'Montserrat',sans-serif; }
  .hours-chip { display:flex; align-items:center; gap:12px; margin-top:18px; padding:13px 17px; background:rgba(56,189,248,0.05); border:1px solid rgba(56,189,248,0.15); border-radius:10px; font-size:0.77rem; color:var(--muted); }
  .hours-chip strong { color:#38bdf8; }

  /* MAP CARDS */
  .map-cards { display:flex; flex-direction:column; gap:16px; }
  .map-card { background:var(--dark3); border:1px solid var(--border2); border-radius:20px; overflow:hidden; transition:all 0.3s; }
  .map-card:hover { border-color:rgba(56,189,248,0.3); transform:translateY(-3px); box-shadow:0 18px 55px rgba(0,0,0,0.5), 0 0 30px rgba(56,189,248,0.08); }
  .map-preview { width:100%; height:175px; position:relative; overflow:hidden; background:var(--dark4); }
  .map-preview iframe { width:100%; height:100%; border:none; filter:invert(0.88) hue-rotate(180deg) saturate(0.65) brightness(0.82); pointer-events:none; }
  .map-overlay { position:absolute; inset:0; background:linear-gradient(to bottom, transparent 50%, var(--dark3) 100%); pointer-events:none; }
  .map-dot {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:13px; height:13px; border-radius:50%; background:#38bdf8; border:3px solid #fff;
    box-shadow:0 0 0 4px rgba(56,189,248,0.4); animation:dotPulse 2.2s ease-in-out infinite; pointer-events:none;
  }
  @keyframes dotPulse { 0%,100%{box-shadow:0 0 0 4px rgba(56,189,248,0.4)} 50%{box-shadow:0 0 0 14px rgba(56,189,248,0.08)} }
  .map-body { padding:20px 22px; }
  .map-provider { display:flex; align-items:center; gap:11px; margin-bottom:12px; }
  .map-pico { font-size:1.5rem; }
  .map-pname { font-size:0.77rem; font-weight:700; color:#fff; }
  .map-psub  { font-size:0.63rem; color:var(--muted2); }
  .map-addr { font-size:0.77rem; color:var(--muted); line-height:1.6; margin-bottom:15px; padding:10px 14px; background:rgba(255,255,255,0.03); border-radius:8px; border-left:2px solid #38bdf8; }
  .map-open {
    display:flex; align-items:center; justify-content:center; gap:8px;
    width:100%; padding:11px; border-radius:10px; font-size:0.72rem; font-weight:700;
    letter-spacing:1px; text-transform:uppercase; text-decoration:none;
    transition:all 0.2s; border:none; cursor:pointer; font-family:'Montserrat',sans-serif;
  }
  .map-open.google { background:rgba(56,189,248,0.08); border:1px solid rgba(56,189,248,0.25); color:#38bdf8; }
  .map-open.google:hover { background:rgba(56,189,248,0.18); color:#fff; }
  .map-open.apple  { background:rgba(167,139,250,0.06); border:1px solid rgba(167,139,250,0.2); color:#a78bfa; }
  .map-open.apple:hover  { background:rgba(167,139,250,0.15); color:#fff; }
  /* Apple card: no map preview, use a styled placeholder */
  .apple-placeholder {
    width:100%; height:120px; display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg,#061210,#0a1408); flex-direction:column; gap:8px;
  }
  .apple-placeholder span:first-child { font-size:2.5rem; }
  .apple-placeholder span:last-child { font-size:0.68rem; letter-spacing:2px; text-transform:uppercase; color:var(--muted2); }

  /* FIND BOOKING */
  #find-booking { background:var(--dark); }
  .find-wrap { max-width:500px; margin:40px auto 0; }
  .find-form { background:var(--dark3); border:1px solid var(--border2); border-radius:20px; padding:36px; }
  .btn-find { width:100%; background:var(--dark4); border:1px solid var(--border); color:#38bdf8; padding:13px; border-radius:12px; font-size:0.74rem; font-weight:700; letter-spacing:2px; text-transform:uppercase; cursor:pointer; transition:all 0.2s; font-family:'Montserrat',sans-serif; margin-top:6px; }
  .btn-find:hover { background:rgba(56,189,248,0.15); border-color:#38bdf8; color:#38bdf8; }
  #find-result { margin-top:16px; }

  /* FOOTER */
  footer { background:#04080f; border-top:1px solid rgba(56,189,248,0.1); text-align:center; padding:32px 20px; font-size:0.7rem; color:var(--muted2); letter-spacing:1.5px; }
  footer a { color:#38bdf8; text-decoration:none; }

  /* MODALS */
  .modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.87); z-index:9999; align-items:center; justify-content:center; padding:20px; backdrop-filter:blur(10px); }
  .modal-overlay.open { display:flex; }
  .modal { background:var(--dark3); border:1px solid var(--border2); border-radius:24px; padding:40px; max-width:480px; width:100%; position:relative; animation:fadeUp 0.3s ease both; }
  .modal.error { border-color:rgba(255,80,80,0.2); }
  .mcl { position:absolute; top:16px; right:20px; background:none; border:none; color:var(--muted2); font-size:1.5rem; cursor:pointer; transition:color 0.2s; }
  .mcl:hover { color:#fff; }
  .modal h3 { font-family:'Montserrat',sans-serif; font-size:1.1rem; font-weight:800; text-transform:uppercase; letter-spacing:1px; color:#38bdf8; margin-bottom:18px; }
  .modal.error h3 { color:#ff8888; }
  .bid { background:rgba(56,189,248,0.07); border:1px solid rgba(56,189,248,0.22); border-radius:12px; padding:18px; text-align:center; font-family:'Roboto',sans-serif; font-size:2rem; color:#38bdf8; font-weight:700; margin:16px 0; letter-spacing:4px; text-shadow:0 0 30px rgba(56,189,248,0.5); }
  .modal p { color:var(--muted); font-size:0.81rem; line-height:1.65; margin-bottom:10px; }
  .mbtns { display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
  .mbtn { flex:1; padding:13px; border-radius:10px; font-size:0.75rem; font-weight:700; cursor:pointer; border:none; text-align:center; text-decoration:none; font-family:'Montserrat',sans-serif; transition:all 0.2s; display:flex; align-items:center; justify-content:center; gap:6px; }
  .mbtn.green   { background:linear-gradient(135deg,#25D366,#128C7E); color:#fff; box-shadow:0 4px 18px rgba(37,211,102,0.35); }
  .mbtn.green:hover { background:linear-gradient(135deg,#1ebe5d,#0f7a6d); box-shadow:0 6px 25px rgba(37,211,102,0.5); transform:translateY(-1px); }
  .mbtn.gold    { background:var(--accent); color:var(--dark); }
  .mbtn.gold:hover  { background:var(--accent2); }
  .mbtn.outline { background:transparent; border:1px solid var(--border2); color:#fff; }
  .mbtn.outline:hover { border-color:#38bdf8; color:#38bdf8; }

  .receipt-card { background:linear-gradient(145deg,#080d18,#0c1220); border:1px solid rgba(56,189,248,0.2); border-radius:16px; padding:20px; margin:14px 0 6px; font-family:'Montserrat',sans-serif; position:relative; overflow:hidden; }
  .receipt-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,#38bdf8,#22d3ee,#a78bfa,#f472b6); }
  .rc-brand { display:flex; align-items:center; gap:10px; margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid rgba(255,255,255,0.07); }
  .rc-brand-ico { font-size:1.5rem; }
  .rc-brand-name { font-family:'Roboto',sans-serif; font-size:1.1rem; color:#38bdf8; font-weight:700; letter-spacing:2px; text-shadow:0 0 20px rgba(56,189,248,0.4); }
  .rc-brand-sub { font-size:0.58rem; color:var(--muted2); letter-spacing:1.5px; text-transform:uppercase; }
  .rc-row { display:flex; justify-content:space-between; align-items:center; padding:5px 0; font-size:0.77rem; border-bottom:1px solid rgba(255,255,255,0.04); }
  .rc-row:last-child { border:none; }
  .rc-row .rl { color:var(--muted2); }
  .rc-row .rv { color:#fff; font-weight:600; }
  .rc-row.tot { padding-top:10px; margin-top:4px; border-top:1px dashed rgba(167,139,250,0.3); border-bottom:none; }
  .rc-row.tot .rl { color:#a78bfa; font-weight:700; font-size:0.82rem; }
  .rc-row.tot .rv { color:#a78bfa; font-weight:800; font-size:0.96rem; text-shadow:0 0 20px rgba(167,139,250,0.4); }
  .rc-footer { margin-top:12px; padding-top:10px; border-top:1px solid rgba(255,255,255,0.05); font-size:0.63rem; color:var(--muted2); text-align:center; line-height:1.7; }
  .rc-note { background:rgba(56,189,248,0.07); border:1px solid rgba(56,189,248,0.18); border-radius:8px; padding:8px 12px; font-size:0.65rem; color:#22d3ee; text-align:center; margin-top:10px; }
  .suc-actions-label { font-size:0.58rem; letter-spacing:2px; text-transform:uppercase; color:var(--muted2); margin:16px 0 8px; }

  /* CAPACITY EXCEEDED TOAST */
  #capacityToast {
    position:fixed; top:80px; left:50%; transform:translateX(-50%) translateY(-20px);
    z-index:9998; min-width:320px; max-width:420px;
    background:linear-gradient(135deg,#3a0a00,#5a1200);
    border:1.5px solid rgba(255,90,50,0.55);
    border-radius:16px; padding:18px 22px;
    display:flex; align-items:center; gap:14px;
    box-shadow:0 8px 40px rgba(255,60,20,0.35), 0 0 0 1px rgba(255,90,50,0.15);
    opacity:0; pointer-events:none;
    transition:opacity 0.3s ease, transform 0.3s ease;
    backdrop-filter:blur(12px);
  }
  #capacityToast.show {
    opacity:1; pointer-events:auto;
    transform:translateX(-50%) translateY(0);
  }
  #capacityToast .toast-ico {
    font-size:1.7rem; flex-shrink:0;
    animation:toastShake 0.5s ease;
  }
  #capacityToast .toast-title {
    font-family:'Roboto',sans-serif;
    font-size:0.85rem; font-weight:900; letter-spacing:2px;
    text-transform:uppercase; color:#ff8866; margin-bottom:4px;
  }
  #capacityToast .toast-msg {
    font-family:'Roboto',sans-serif;
    font-size:0.82rem; font-weight:700;
    text-transform:uppercase; letter-spacing:1px;
    color:rgba(255,200,180,0.92); line-height:1.4;
  }
  @keyframes toastShake {
    0%,100%{transform:rotate(0)} 20%{transform:rotate(-12deg)} 40%{transform:rotate(12deg)} 60%{transform:rotate(-8deg)} 80%{transform:rotate(8deg)}
  }
  .admin-gear { position:fixed; bottom:20px; right:20px; z-index:997; background:rgba(0,0,0,0.55); border:1px solid var(--border2); border-radius:50%; width:37px; height:37px; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1rem; color:var(--muted2); transition:all 0.2s; text-decoration:none; }
  .admin-gear:hover { color:#38bdf8; border-color:var(--border); }

  /* ANIMATIONS */
  @keyframes fadeUp  { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
  @keyframes fadeIn  { from{opacity:0} to{opacity:1} }

  /* RESPONSIVE */
  @media(max-width:768px){
    nav{padding:12px 16px} nav ul{display:none}
    .logo { flex-wrap:nowrap; font-size:1.1rem; gap:6px; letter-spacing:2px; }
    .logo em { font-size:0.85rem; }
    .logo-caption { font-size:0.42rem; letter-spacing:1.5px; margin-top:-2px; }
    .nav-btns { gap:6px; }
    .btn-wa { padding:6px 10px; font-size:0.6rem; letter-spacing:0.5px; }
    .btn-book { padding:6px 12px; font-size:0.6rem; letter-spacing:0.5px; }
    section{padding:60px 20px}
    .about-grid,.contact-grid{grid-template-columns:1fr;gap:36px}
    .form-row,.slot-picker{grid-template-columns:1fr}
    .book-form{padding:20px}
    .hero h1{font-size:clamp(3.8rem,18vw,6rem); letter-spacing:-1px;}
    .hero-content{padding:0 24px 180px}
    .hero-stats{min-width:0; right:0; flex-direction:row; flex-wrap:wrap; border-radius:0; padding:16px 20px; width:100%; border-left:none;}
    .hero-stats-label{display:none}
    .hstat{flex:1; min-width:80px; border-bottom:none; padding:4px 8px; border-right:1px solid rgba(255,255,255,0.07);}
    .hstat:last-child{border-right:none}
    .hstat-n{font-size:1.1rem}
    .hero-slide-counter{display:none}
    .scroll-ind{bottom:200px; left:24px}
    .hero-desc{max-width:100%;font-size:0.82rem}
    .hero-ctas{flex-direction:column;align-items:flex-start;gap:10px}
    .btn-primary,.btn-outline{text-align:center}
    .orb1,.orb2,.orb3{opacity:0.06}
    .ring1,.ring2,.ring3{display:none}
    .hero-bg, .hero-overlay, .hero-grid, .petals { max-width:100%; }
    .slot-picker { grid-template-columns: 1fr 1fr; gap:8px; }
    .spk { padding:12px 8px; }
    .spk .sp-t { font-size:0.75rem; }
    .spk .sp-s { font-size:0.56rem; }
    .bsum { padding:18px; }
    .brow { font-size:0.75rem; }
    .brow.tot { font-size:0.92rem; }
    .btn-confirm { padding:16px; font-size:0.76rem; letter-spacing:1.5px; }
    .disc-row { flex-direction:column; }
    .disc-row input { width:100%; }
    .disc-row button { width:100%; padding:12px; }
    .book-form .fg label { font-size:0.6rem; }
    .fg input, .fg select { padding:12px 14px; font-size:0.84rem; }

    .modal-overlay { align-items:flex-end; padding:0; padding-bottom:env(safe-area-inset-bottom, 0px); }
    .modal { border-radius:24px 24px 0 0; padding:28px 22px 32px; max-width:100%; width:100%; max-height:92vh; overflow-y:auto; -webkit-overflow-scrolling:touch; }
    /* Drag handle */
    .modal::before { content:''; display:block; width:40px; height:4px; background:rgba(255,255,255,0.18); border-radius:2px; margin:0 auto 20px; }
    .modal h3 { font-size:1rem; margin-bottom:14px; }
    .bid { font-size:1.6rem; padding:14px; letter-spacing:3px; }
    .mbtns { flex-direction:column; gap:8px; margin-top:16px; }
    .mbtn { flex:unset; width:100%; padding:15px; font-size:0.78rem; min-height:50px; }
    .mcl { top:14px; right:16px; font-size:1.3rem; width:32px; height:32px; display:flex; align-items:center; justify-content:center; }

    .receipt-card { padding:16px; }
    .receipt-card .rc-row { font-size:0.75rem; }
  }

  #slots::before {
    content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
    width:700px; height:1px; pointer-events:none;
    background:linear-gradient(90deg,transparent,#38bdf8,#a78bfa,#f472b6,transparent);
  }
  .hero::after {
    content:''; position:absolute; inset:0; z-index:2; pointer-events:none;
    opacity:0.18;
  }