:root{
    --bg:#050505;
    --surface:#0D0D0D;
    --elevated:#181818;
    --text:#FFFFFF;
    --text-soft:#CFCFCF;
    --muted:#8E8E8E;
    --gold:#D6B56C;
    --champagne:#F3E8D1;
    --forest:#27443A;
    --ocean:#5C90B8;
    --beige:#E6D6C3;
    --border:rgba(255,255,255,0.08);
    --ease:cubic-bezier(.16,.8,.24,1);
    --sp-1:8px; --sp-2:16px; --sp-3:24px; --sp-4:40px; --sp-5:64px; --sp-6:96px; --sp-7:160px;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{background:var(--bg);}
  body{
    background:var(--bg); color:var(--text);
    font-family:'Inter',sans-serif; font-weight:300;
    overflow-x:hidden; -webkit-font-smoothing:antialiased;
  }
  ::selection{background:var(--gold); color:#050505;}
  .serif{font-family:'Cormorant Garamond',serif;}
  a{color:inherit; text-decoration:none;}
  button{font-family:inherit; cursor:pointer; border:none; background:none; color:inherit;}
  img{display:block; width:100%; height:100%; object-fit:cover;}

  .eyebrow{
    font-size:12px; letter-spacing:0.28em; text-transform:uppercase;
    color:var(--gold); font-weight:500; display:flex; align-items:center; gap:12px;
  }
  .eyebrow::before{content:''; width:28px; height:1px; background:var(--gold);}

  /* ---------- NAV ---------- */
  .nav{
    position:fixed; top:0; left:0; right:0; z-index:100;
    display:flex; align-items:center; justify-content:space-between;
    padding:28px 64px; mix-blend-mode:difference;
    transition:padding .5s var(--ease);
  }
  .nav.scrolled{padding:16px 64px;}
  .nav-logo{font-family:'Cormorant Garamond',serif; font-size:24px; letter-spacing:0.05em;}
  .nav-links{display:flex; gap:44px; font-size:13px; letter-spacing:0.08em; text-transform:uppercase;}
  .nav-links a{position:relative; padding-bottom:4px;}
  .nav-links a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--text);
    transition:width .4s var(--ease);
  }
  .nav-links a:hover::after{width:100%;}
  .nav-cta{
    font-size:12px; letter-spacing:0.12em; text-transform:uppercase;
    border:1px solid rgba(255,255,255,0.4); padding:12px 26px; border-radius:2px;
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative; height:100vh; width:100%; overflow:hidden;
    display:flex; align-items:flex-end;
  }
  .hero-media{position:absolute; inset:0; z-index:0;}
  .hero-media img{transform:scale(1.15);}
  .hero-media::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(5,5,5,0.15) 0%, rgba(5,5,5,0.05) 35%, rgba(5,5,5,0.75) 100%);
  }
  .hero-atmosphere{
    position:absolute; inset:0; z-index:1; pointer-events:none; mix-blend-mode:screen; opacity:0.85;
  }
  .hero-atmosphere canvas{width:100% !important; height:100% !important; display:block;}
  .hero-content{
    position:relative; z-index:2; width:100%;
    padding:0 64px 90px; display:flex; justify-content:space-between; align-items:flex-end;
  }
  .hero-title{
    font-family:'Cormorant Garamond',serif; font-weight:300;
    font-size:clamp(56px,9vw,118px); line-height:0.98; letter-spacing:-0.01em;
    max-width:900px;
  }
  .hero-title em{font-style:italic; color:var(--champagne);}
  .hero-sub{
    max-width:340px; font-size:16px; line-height:1.7; color:var(--text-soft);
    padding-bottom:8px;
  }
  .scroll-cue{
    position:absolute; bottom:36px; left:64px; z-index:2;
    display:flex; align-items:center; gap:12px; font-size:11px;
    letter-spacing:0.2em; text-transform:uppercase; color:var(--text-soft);
  }
  .scroll-line{width:1px; height:44px; background:rgba(255,255,255,0.25); position:relative; overflow:hidden;}
  .scroll-line::after{
    content:''; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--gold);
    animation:scrollpulse 2.2s ease-in-out infinite;
  }
  @keyframes scrollpulse{ 0%{top:-100%;} 60%{top:100%;} 100%{top:100%;} }

  /* ---------- BOOKING WIDGET ---------- */
  .booking-wrap{position:relative; z-index:20; margin-top:-46px; padding:0 64px;}
  .booking{
    background:rgba(13,13,13,0.85); backdrop-filter:blur(18px);
    border:1px solid var(--border); border-radius:4px;
    display:grid; grid-template-columns:1.2fr 1.2fr 1fr 1fr auto;
    max-width:1280px; margin:0 auto;
  }
  .booking-field{
    padding:22px 30px; border-right:1px solid var(--border);
  }
  .booking-field:last-of-type{border-right:none;}
  .booking-label{font-size:10px; letter-spacing:0.16em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; display:block;}
  .booking-value{font-family:'Cormorant Garamond',serif; font-size:20px; color:var(--text); background:none; border:none; width:100%;}
  .booking-value::placeholder{color:var(--text-soft);}
  .booking-submit{
    background:var(--gold); color:#0D0D0D; font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
    padding:0 40px; display:flex; align-items:center; justify-content:center; font-weight:500;
    transition:background .35s var(--ease);
  }
  .booking-submit:hover{background:var(--champagne);}

  /* ---------- SECTION SHELL ---------- */
  section{position:relative;}
  .section-inner{max-width:1280px; margin:0 auto; padding:0 64px;}
  .section-pad{padding:var(--sp-7) 0;}

  /* ---------- INTRO ---------- */
  .intro{background:var(--bg);}
  .intro-grid{
    display:grid; grid-template-columns:0.9fr 1.1fr; gap:100px; align-items:end;
  }
  .intro-heading{
    font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(34px,3.6vw,52px);
    line-height:1.25; margin-top:28px;
  }
  .intro-body{font-size:17px; line-height:1.9; color:var(--text-soft); max-width:440px; margin-bottom:8px;}
  .intro-stats{display:flex; gap:56px; margin-top:56px;}
  .stat-num{font-family:'Cormorant Garamond',serif; font-size:44px; color:var(--gold);}
  .stat-label{font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted); margin-top:6px;}

  /* ---------- SUITES ---------- */
  .suites{background:var(--surface);}
  .section-head{display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:64px;}
  .section-title{font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(38px,4vw,58px); margin-top:20px;}
  .view-all{font-size:12px; letter-spacing:0.14em; text-transform:uppercase; border-bottom:1px solid rgba(255,255,255,0.3); padding-bottom:6px;}

  .suite-row{
    display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;
    padding:64px 0; border-top:1px solid var(--border);
  }
  .suite-row:last-child{border-bottom:1px solid var(--border);}
  .suite-row:nth-child(even) .suite-media{order:2;}
  .suite-media{aspect-ratio:4/3; overflow:hidden; border-radius:2px;}
  .suite-media img{transition:transform 1.2s var(--ease);}
  .suite-row:hover .suite-media img{transform:scale(1.06);}
  .suite-index{font-size:13px; color:var(--gold); letter-spacing:0.1em; margin-bottom:18px; font-family:'Cormorant Garamond',serif;}
  .suite-name{font-family:'Cormorant Garamond',serif; font-size:clamp(30px,3vw,42px); font-weight:400;}
  .suite-desc{color:var(--text-soft); font-size:16px; line-height:1.8; max-width:420px; margin:20px 0 28px;}
  .suite-meta{display:flex; gap:28px; margin-bottom:32px;}
  .suite-meta span{font-size:12px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted); border-top:1px solid var(--border); padding-top:10px;}
  .suite-price{font-family:'Cormorant Garamond',serif; font-size:24px; color:var(--champagne);}
  .suite-price small{font-family:'Inter',sans-serif; font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:0.1em;}
  .suite-link{display:inline-flex; align-items:center; gap:10px; margin-top:24px; font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold);}

  /* ---------- EXPERIENCES ---------- */
  .experiences{background:var(--bg);}
  .exp-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--border);}
  .exp-card{background:var(--bg); position:relative; aspect-ratio:3/4; overflow:hidden;}
  .exp-card img{transition:transform 1.4s var(--ease); filter:brightness(0.7);}
  .exp-card:hover img{transform:scale(1.08); filter:brightness(0.85);}
  .exp-label{position:absolute; left:28px; bottom:28px; z-index:2;}
  .exp-label .eyebrow{color:var(--champagne); margin-bottom:8px;}
  .exp-label h3{font-family:'Cormorant Garamond',serif; font-size:28px; font-weight:400;}

  /* ---------- RESTAURANT (split) ---------- */
  .split{background:var(--surface); display:grid; grid-template-columns:1fr 1fr;}
  .split-media{position:relative; overflow:hidden; min-height:640px;}
  .split-content{display:flex; flex-direction:column; justify-content:center; padding:0 96px;}
  .split-content .intro-heading{margin-top:24px;}
  .split-content .intro-body{margin:24px 0 32px;}
  .menu-item{display:flex; justify-content:space-between; padding:16px 0; border-top:1px solid var(--border); font-size:15px;}
  .menu-item:last-child{border-bottom:1px solid var(--border);}
  .menu-item .name{color:var(--text);}
  .menu-item .price{color:var(--muted); font-family:'Cormorant Garamond',serif; font-size:17px;}

  /* ---------- SPA ---------- */
  .spa{background:var(--forest);}
  .spa .section-inner{padding-top:var(--sp-7); padding-bottom:var(--sp-7);}
  .spa-grid{display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center;}
  .spa-media{aspect-ratio:4/5; overflow:hidden; border-radius:2px;}
  .spa .eyebrow{color:var(--champagne);}
  .spa .eyebrow::before{background:var(--champagne);}
  .spa-list{margin-top:36px; display:flex; flex-direction:column; gap:0;}
  .spa-list-item{display:flex; justify-content:space-between; padding:18px 0; border-top:1px solid rgba(255,255,255,0.12); font-size:15px; color:var(--champagne);}
  .spa-list-item:last-child{border-bottom:1px solid rgba(255,255,255,0.12);}

  /* ---------- GALLERY ---------- */
  .gallery{background:var(--bg);}
  .gallery-masonry{
    display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:180px; gap:12px;
  }
  .g-item{overflow:hidden; border-radius:2px;}
  .g-item img{transition:transform 1s var(--ease);}
  .g-item:hover img{transform:scale(1.07);}
  .g1{grid-column:span 2; grid-row:span 2;}
  .g2{grid-column:span 1; grid-row:span 1;}
  .g3{grid-column:span 1; grid-row:span 2;}
  .g4{grid-column:span 1; grid-row:span 1;}
  .g5{grid-column:span 2; grid-row:span 1;}
  .g6{grid-column:span 1; grid-row:span 1;}
  .g7{grid-column:span 1; grid-row:span 1;}

  /* ---------- OFFERS ---------- */
  .offers{background:var(--surface);}
  .offers-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
  .offer-card{
    background:var(--elevated); border:1px solid var(--border); padding:44px 36px;
    display:flex; flex-direction:column; justify-content:space-between; min-height:340px;
    transition:border-color .4s var(--ease), transform .4s var(--ease);
  }
  .offer-card:hover{border-color:rgba(214,181,108,0.5); transform:translateY(-6px);}
  .offer-tag{font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold);}
  .offer-title{font-family:'Cormorant Garamond',serif; font-size:30px; margin:18px 0 14px;}
  .offer-desc{color:var(--text-soft); font-size:15px; line-height:1.75;}
  .offer-cta{font-size:12px; letter-spacing:0.1em; text-transform:uppercase; margin-top:28px; display:inline-flex; gap:10px;}

  /* ---------- TESTIMONIALS ---------- */
  .testimonials{background:var(--bg); text-align:center;}
  .quote-mark{font-family:'Cormorant Garamond',serif; font-size:100px; color:var(--gold); line-height:0.5; margin-bottom:24px;}
  .testimonial-text{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(26px,3vw,38px); max-width:900px; margin:0 auto; line-height:1.5; color:var(--champagne);}
  .testimonial-author{margin-top:36px; font-size:13px; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted);}
  .t-dots{display:flex; justify-content:center; gap:10px; margin-top:48px;}
  .t-dot{width:6px; height:6px; border-radius:50%; background:rgba(255,255,255,0.25);}
  .t-dot.active{background:var(--gold);}

  /* ---------- LOCATION ---------- */
  .location{background:var(--surface);}
  .location-grid{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--border);}
  .loc-info{padding:80px; display:flex; flex-direction:column; justify-content:center;}
  .loc-item{padding:20px 0; border-top:1px solid var(--border); display:flex; justify-content:space-between; font-size:14px;}
  .loc-item:last-child{border-bottom:1px solid var(--border);}
  .loc-item .label{color:var(--muted); text-transform:uppercase; letter-spacing:0.08em; font-size:11px;}
  .map-media{position:relative; min-height:480px; overflow:hidden;}
  .map-media img{filter:grayscale(1) brightness(0.6);}
  .map-pin{
    position:absolute; top:50%; left:50%; width:14px; height:14px; background:var(--gold); border-radius:50%;
    transform:translate(-50%,-50%); box-shadow:0 0 0 8px rgba(214,181,108,0.2);
  }

  /* ---------- CTA ---------- */
  .cta{
    background:var(--bg); text-align:center; position:relative; overflow:hidden;
  }
  .cta-media{position:absolute; inset:0; z-index:0;}
  .cta-media img{filter:brightness(0.35);}
  .cta-content{position:relative; z-index:2; padding:200px 64px; display:flex; flex-direction:column; align-items:center;}
  .cta-title{font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(42px,6vw,78px); max-width:820px;}
  .cta-buttons{display:flex; gap:20px; margin-top:48px;}
  .btn-primary{background:var(--gold); color:#050505; padding:18px 44px; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; font-weight:500; border-radius:2px;}
  .btn-ghost{border:1px solid rgba(255,255,255,0.35); padding:18px 44px; font-size:12px; letter-spacing:0.14em; text-transform:uppercase;}

  /* ---------- FOOTER ---------- */
  .footer{background:var(--surface); border-top:1px solid var(--border);}
  .footer-top{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:60px; padding:96px 0 64px;}
  .footer-logo{font-family:'Cormorant Garamond',serif; font-size:32px; margin-bottom:20px;}
  .footer-desc{color:var(--muted); font-size:14px; line-height:1.8; max-width:280px;}
  .footer-col-title{font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); margin-bottom:22px;}
  .footer-col a{display:block; font-size:14px; color:var(--text-soft); margin-bottom:14px;}
  .footer-bottom{
    border-top:1px solid var(--border); padding:28px 0; display:flex; justify-content:space-between;
    font-size:12px; color:var(--muted);
  }

  /* ---------- reveal utility ---------- */
  .reveal{opacity:0; transform:translateY(40px);}

  @media (max-width:1024px){
    .nav{padding:20px 28px;}
    .nav-links{display:none;}
    .section-inner{padding:0 28px;}
    .booking-wrap{padding:0 20px;}
    .booking{grid-template-columns:1fr 1fr;}
    .booking-field{border-right:none; border-bottom:1px solid var(--border);}
    .booking-submit{grid-column:span 2; padding:20px;}
    .intro-grid, .suite-row, .spa-grid, .location-grid, .split{grid-template-columns:1fr; gap:36px;}
    .suite-row:nth-child(even) .suite-media{order:0;}
    .exp-grid{grid-template-columns:1fr;}
    .offers-grid{grid-template-columns:1fr;}
    .gallery-masonry{grid-template-columns:repeat(2,1fr);}
    .split-content{padding:64px 28px;}
    .footer-top{grid-template-columns:1fr 1fr; padding:64px 0 40px;}
    .cta-content{padding:120px 28px;}
  }

  @media (prefers-reduced-motion: reduce){
    *{animation:none !important; transition:none !important;}
  }

  :focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

  /* ---------- ATMOSPHERE (three.js mount) ---------- */
  #atmosphere{position:absolute; inset:0; z-index:1; pointer-events:none;}
  #atmosphere canvas{width:100% !important; height:100% !important;}

  /* ---------- MOBILE NAV ---------- */
  .nav-toggle{display:none; flex-direction:column; gap:5px; z-index:110;}
  .nav-toggle span{width:24px; height:1px; background:var(--text); transition:transform .3s var(--ease), opacity .3s var(--ease);}
  .nav-toggle.active span:nth-child(1){transform:translateY(6px) rotate(45deg);}
  .nav-toggle.active span:nth-child(2){opacity:0;}
  .nav-toggle.active span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
  .nav-links-mobile{
    position:fixed; inset:0; background:var(--bg); z-index:105;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:32px;
    transform:translateY(-100%); transition:transform .5s var(--ease); mix-blend-mode:normal;
  }
  .nav-links-mobile.open{transform:translateY(0);}
  .nav-links-mobile a{font-family:'Cormorant Garamond',serif; font-size:32px;}

  /* ---------- PAGE HEADER (inner pages) ---------- */
  .page-header{position:relative; height:56vh; min-height:420px; overflow:hidden; display:flex; align-items:flex-end;}
  .page-header-media{position:absolute; inset:0; z-index:0;}
  .page-header-media::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(5,5,5,0.25) 0%, rgba(5,5,5,0.85) 100%);}
  .page-header-content{position:relative; z-index:2; padding:0 64px 64px;}
  .page-header-title{font-family:'Cormorant Garamond',serif; font-weight:300; font-size:clamp(44px,7vw,86px); line-height:1;}
  .page-header-sub{color:var(--text-soft); font-size:16px; max-width:520px; margin-top:20px; line-height:1.7;}
  .breadcrumb{font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); margin-bottom:20px;}
  .breadcrumb a{color:var(--gold);}

  /* ---------- FILTER CHIPS ---------- */
  .filters{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:56px;}
  .filter-chip{
    font-size:12px; letter-spacing:0.1em; text-transform:uppercase; padding:12px 26px;
    border:1px solid var(--border); border-radius:30px; color:var(--text-soft);
    transition:all .35s var(--ease);
  }
  .filter-chip.active, .filter-chip:hover{border-color:var(--gold); color:var(--gold);}

  /* ---------- LIGHTBOX ---------- */
  .lightbox-overlay{
    position:fixed; inset:0; background:rgba(5,5,5,0.94); z-index:1000;
    display:flex; align-items:center; justify-content:center; padding:60px; cursor:zoom-out;
    animation:fadein .3s var(--ease);
  }
  @keyframes fadein{from{opacity:0;} to{opacity:1;}}
  .lightbox-overlay img{max-width:100%; max-height:100%; width:auto; object-fit:contain; border-radius:2px;}
  .lightbox-close{position:absolute; top:32px; right:48px; font-size:32px; color:var(--text); background:none; border:none;}

  /* ---------- ABOUT PAGE ---------- */
  .about-story{display:grid; grid-template-columns:0.8fr 1.2fr; gap:100px; align-items:start;}
  .timeline{margin-top:20px;}
  .timeline-item{display:grid; grid-template-columns:100px 1fr; gap:32px; padding:28px 0; border-top:1px solid var(--border);}
  .timeline-item:last-child{border-bottom:1px solid var(--border);}
  .timeline-year{font-family:'Cormorant Garamond',serif; font-size:26px; color:var(--gold);}
  .timeline-text h4{font-size:16px; font-weight:500; margin-bottom:8px;}
  .timeline-text p{color:var(--text-soft); font-size:14px; line-height:1.7;}
  .award-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:32px; margin-top:24px;}
  .award-card{border:1px solid var(--border); padding:32px 24px; text-align:center;}
  .award-card .num{font-family:'Cormorant Garamond',serif; font-size:34px; color:var(--champagne); margin-bottom:10px;}
  .award-card .label{font-size:12px; color:var(--muted); letter-spacing:0.06em; line-height:1.5;}

  /* ---------- CONTACT PAGE ---------- */
  .contact-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:80px;}
  .form-group{margin-bottom:28px;}
  .form-label{display:block; font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); margin-bottom:10px;}
  .form-input, .form-textarea{
    width:100%; background:transparent; border:none; border-bottom:1px solid var(--border);
    color:var(--text); font-family:'Inter',sans-serif; font-size:16px; padding:12px 0;
    transition:border-color .3s var(--ease);
  }
  .form-input:focus, .form-textarea:focus{border-color:var(--gold); outline:none;}
  .form-textarea{resize:vertical; min-height:110px; font-family:inherit;}
  .form-submit{
    margin-top:12px; background:var(--gold); color:#050505; padding:16px 42px; font-size:12px;
    letter-spacing:0.14em; text-transform:uppercase; font-weight:500; border-radius:2px;
    transition:background .3s var(--ease);
  }
  .form-submit:hover{background:var(--champagne);}
  .form-submit:disabled{opacity:0.6; cursor:default;}
  .contact-info-card{border:1px solid var(--border); padding:44px; margin-bottom:24px;}
  .contact-info-card .eyebrow{margin-bottom:16px;}
  .contact-info-card p{font-family:'Cormorant Garamond',serif; font-size:22px; color:var(--champagne);}
  .contact-info-card span{font-size:13px; color:var(--muted); display:block; margin-top:8px;}
  .social-row{display:flex; gap:18px; margin-top:8px;}
  .social-row a{width:44px; height:44px; border:1px solid var(--border); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:13px;}

  /* ---------- FAQ ---------- */
  .faq-item{border-top:1px solid var(--border); padding:26px 0; cursor:pointer;}
  .faq-item:last-child{border-bottom:1px solid var(--border);}
  .faq-q{display:flex; justify-content:space-between; align-items:center; font-family:'Cormorant Garamond',serif; font-size:22px;}
  .faq-q .plus{transition:transform .3s var(--ease); color:var(--gold); font-size:22px;}
  .faq-item.open .faq-q .plus{transform:rotate(45deg);}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .4s var(--ease);}
  .faq-item.open .faq-a{max-height:200px;}
  .faq-a p{color:var(--text-soft); font-size:15px; line-height:1.8; padding-top:14px; max-width:640px;}

  @media (max-width:1024px){
    .nav-toggle{display:flex;}
    .page-header-content{padding:0 28px 40px;}
    .about-story, .contact-grid{grid-template-columns:1fr; gap:48px;}
    .award-grid{grid-template-columns:1fr 1fr;}
    .timeline-item{grid-template-columns:70px 1fr;}
  }

  /* ---------- BOOKING PAGE ---------- */
  .booking-page-grid{display:grid; grid-template-columns:1fr 0.9fr; gap:70px; align-items:start;}
  .booking-summary-card{border:1px solid var(--border); background:var(--surface); position:sticky; top:100px;}
  .booking-summary-media{aspect-ratio:16/10; overflow:hidden;}
  .booking-summary-body{padding:32px;}
  .booking-summary-name{font-family:'Cormorant Garamond',serif; font-size:28px; margin-bottom:6px;}
  .booking-summary-meta{color:var(--muted); font-size:13px; margin-bottom:24px;}
  .price-row{display:flex; justify-content:space-between; padding:12px 0; border-top:1px solid var(--border); font-size:14px; color:var(--text-soft);}
  .price-row.total{border-top:1px solid var(--border); margin-top:8px; padding-top:16px; font-size:18px; color:var(--text); font-family:'Cormorant Garamond',serif;}
  .price-row.total span:last-child{color:var(--gold);}
  .step-label{font-size:11px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); margin-bottom:10px;}
  .booking-status{padding:16px 20px; border-radius:4px; font-size:14px; margin-bottom:24px; display:none;}
  .booking-status.error{background:rgba(192,57,43,0.15); border:1px solid rgba(192,57,43,0.4); color:#e0776b; display:block;}
  .booking-status.success{background:rgba(39,68,58,0.4); border:1px solid rgba(39,68,58,0.8); color:var(--champagne); display:block;}
  .booking-status.loading{background:rgba(255,255,255,0.05); border:1px solid var(--border); color:var(--text-soft); display:block;}
  .room-select-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:8px;}
  .availability-badge{font-size:12px; padding:6px 14px; border-radius:20px; display:inline-block; margin-top:8px;}
  .availability-badge.ok{background:rgba(39,68,58,0.4); color:var(--champagne);}
  .availability-badge.no{background:rgba(192,57,43,0.15); color:#e0776b;}

  @media (max-width:1024px){
    .booking-page-grid{grid-template-columns:1fr;}
    .booking-summary-card{position:static;}
    .room-select-grid{grid-template-columns:1fr;}
  }