@font-face{
  font-family:"UTM Bebas Local";
  src:url("assets/fonts/UTM-Bebas.ttf") format("truetype");
  font-weight:400;
  font-style:normal;
  font-display:swap;
}

:root{
  --green:#1f4028;
  --green-2:#2c5638;
  --green-3:#163020;
  --green-deep:#0f2417;
  --cream:#f3e9d3;
  --cream-2:#fbf3e2;
  --gold:#e2b53f;
  --gold-2:#f0c85a;
  --ink:#17321f;
  --muted:#7a7566;
  --white:#fffaf1;
  --line:rgba(226,181,63,.30);
  --shadow:0 20px 50px rgba(0,0,0,.22);
  --radius:14px;
  --font-display:"UTM Bebas Local","Saira Extra Condensed","Arial Narrow",sans-serif;
  --font-condensed:"UTM Bebas Local","Saira Condensed","Arial Narrow",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--green-3);color:var(--ink);font-family:"Be Vietnam Pro",system-ui,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button,input,select{font:inherit}
button{cursor:pointer}
.container{width:min(1180px,calc(100% - 48px));margin:auto}
.section-dark{background:var(--green);color:var(--white)}
.section-cream{background:var(--cream);color:var(--ink)}
main > section{scroll-margin-top:92px}
h1,h2,h3,p{margin:0}
h1,h2,.hero-tagline,.block-title h2{font-family:var(--font-display);font-weight:400;letter-spacing:.01em}
h2{font-size:clamp(2rem,3.1vw,2.9rem);line-height:.98;text-transform:uppercase}

/* pennant section number */
.section-no{display:inline-flex;align-items:center;gap:8px;padding:5px 20px 5px 14px;background:var(--green);color:var(--gold);
  font-family:var(--font-condensed);font-weight:400;font-size:1rem;letter-spacing:.04em;margin-bottom:16px;
  clip-path:polygon(0 0,100% 0,calc(100% - 11px) 50%,100% 100%,0 100%)}
.section-no.gold{background:var(--gold);color:var(--green)}

/* ---------- HEADER ---------- */
.site-header{position:sticky;top:0;z-index:50;background:var(--green);border-bottom:1px solid var(--line)}
.nav-wrap{height:84px;display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;flex:0 0 auto}
.brand img{height:70px;width:auto;display:block}
.desktop-nav{display:flex;align-items:center;gap:26px;margin-left:auto;color:#f7ecd6;text-transform:uppercase;font-weight:400;font-size:.98rem;letter-spacing:.02em;font-family:var(--font-condensed)}
.desktop-nav a{position:relative;padding:8px 0}
.desktop-nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--gold);transition:.25s}
.desktop-nav a:hover::after,.desktop-nav a.active::after{width:100%}
.desktop-nav a.active{color:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 22px;border-radius:9px;white-space:nowrap;
  font-family:var(--font-condensed);font-weight:400;text-transform:uppercase;letter-spacing:.015em;font-size:1.02rem;border:1.5px solid transparent;transition:.2s}
.btn:hover{transform:translateY(-2px)}
.btn .ico{width:18px;height:18px;flex:0 0 auto}
.btn-gold{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#17321f;box-shadow:0 10px 24px rgba(226,181,63,.22)}
.btn-outline-light{border-color:rgba(255,255,255,.55);color:#fff;background:rgba(31,64,40,.25)}
.btn-outline-dark{border-color:rgba(23,50,31,.35);color:var(--ink);background:transparent}
.btn-outline-gold{border-color:var(--gold);color:var(--gold);background:transparent}
.btn-block{width:100%}
.header-book{white-space:nowrap}
.menu-toggle{display:none;color:var(--white);background:none;border:0;font-size:1.9rem}
.mobile-menu{display:none}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:560px;overflow:hidden}
.hero-photo{position:absolute;inset:0;background:url('assets/hero.jpg') center/cover no-repeat}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,36,23,.94) 0%,rgba(15,36,23,.72) 40%,rgba(15,36,23,.35) 66%,rgba(15,36,23,.72) 100%)}
.hero-grid{position:relative;display:grid;grid-template-columns:1fr 372px;gap:48px;align-items:center;min-height:560px;padding:64px 0}
.hero-copy{max-width:640px;position:relative}
.flight-path{position:absolute;top:6px;right:-40px;width:min(520px,88%);height:auto;color:var(--gold);opacity:.92;pointer-events:none;z-index:2}
.hero h1{font-size:clamp(4rem,7.2vw,6.5rem);line-height:1.12;letter-spacing:.005em;text-transform:uppercase;color:#fff7e9;text-shadow:0 8px 26px rgba(0,0,0,.35);margin-bottom:16px}
.hero-tagline{font-weight:400;font-size:clamp(2.1rem,4.1vw,3.65rem);line-height:.95;text-transform:uppercase;color:var(--gold);margin-bottom:20px}
.hero-sub{text-transform:uppercase;font-weight:700;color:#f2e6d0;letter-spacing:.02em;font-size:.95rem;margin-bottom:30px}
.hero-sub span{color:var(--gold);white-space:nowrap}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}

/* boarding pass */
.ticket{background:var(--cream-2);color:var(--ink);border-radius:16px;overflow:hidden;box-shadow:var(--shadow);position:relative}
.ticket::before,.ticket::after{content:"";position:absolute;right:44px;width:22px;height:22px;background:var(--green);border-radius:50%;z-index:3}
.ticket::before{top:-11px}
.ticket::after{bottom:-11px}
.ticket-head{display:flex;justify-content:space-between;align-items:center;background:var(--green);color:var(--cream);padding:18px 22px}
.ticket-head span{display:block;color:var(--gold);font-family:var(--font-condensed);font-weight:400;font-size:.92rem;letter-spacing:.08em;margin-bottom:2px}
.ticket-head strong{font-family:var(--font-display);font-weight:400;font-size:1.85rem;letter-spacing:.01em;text-transform:uppercase}
.ticket-head b{font-size:1.7rem;color:var(--gold)}
.ticket-head .wings{width:60px;height:auto;flex:0 0 auto}
.ticket-body{padding:20px}
.ticket-body label{display:grid;grid-template-columns:38px 1fr;align-items:center;border:1px solid #e2d6b6;border-radius:10px;margin-bottom:12px;background:#fff}
.ticket-body label span.fi{padding-left:13px;color:var(--gold-2);display:flex;align-items:center;justify-content:center}
.ticket-body label span.fi svg{width:19px;height:19px;display:block}
.ticket input,.ticket select{width:100%;min-height:46px;border:0;background:transparent;padding:0 12px;color:var(--ink);outline:none;font-size:.92rem}
.ticket .btn-block{margin-top:4px}
.barcode{height:38px;margin:18px 24px 4px;background:repeating-linear-gradient(90deg,#1b1b1b 0 2px,transparent 2px 4px,#1b1b1b 4px 5px,transparent 5px 8px)}

/* ---------- MENU ---------- */
.menu-section{padding:64px 0}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:34px;flex-wrap:wrap}
.section-head h2{font-size:clamp(1.9rem,2.8vw,2.5rem)}
.mtitle{position:relative}
.title-trail{position:absolute;left:calc(100% + 20px);bottom:4px;width:175px;height:auto;color:var(--gold-2);opacity:.9;pointer-events:none}
.section-actions{display:flex;gap:12px;align-items:center}
.circle-btn{width:40px;height:40px;border-radius:50%;background:transparent;border:1.5px solid rgba(23,50,31,.35);font-size:1.5rem;color:var(--ink);display:grid;place-items:center;transition:.2s}
.circle-btn:hover{background:var(--gold);border-color:var(--gold);color:var(--green)}
.dish-track{display:grid;grid-template-columns:1.5fr repeat(4,1fr);gap:16px;align-items:end}
.dish-card{background:var(--green);border-radius:12px;overflow:hidden;border:1px solid rgba(226,181,63,.4);box-shadow:0 12px 26px rgba(0,0,0,.1)}
.dish-card img{width:100%;height:232px;object-fit:cover}
.dish-card.feature img{height:180px}
.dish-card>div{position:relative;padding:16px 48px 18px 16px;color:var(--white)}
.dish-card h3{font-family:var(--font-condensed);font-weight:400;text-transform:uppercase;font-size:1.16rem;letter-spacing:.01em;margin-bottom:6px;line-height:1.02;min-height:2.04em}
.dish-card p{color:var(--gold);font-weight:800;font-size:1.02rem}
.dish-card button{position:absolute;right:14px;bottom:16px;width:30px;height:30px;border:0;border-radius:50%;background:var(--gold);color:var(--green);font-size:1.2rem;font-weight:800;display:grid;place-items:center}

/* ---------- SPACE ---------- */
.space-section{padding:60px 0}
.space-grid{display:grid;grid-template-columns:290px 1fr;gap:36px;align-items:center}
.space-copy h2{color:#fff7e9;margin-bottom:16px}
.space-copy p{color:#d7d1c4;margin-bottom:24px;font-size:1rem}
.space-gallery{display:grid;grid-template-columns:1.55fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:360px}
.space-gallery img{width:100%;height:100%;object-fit:cover;border-radius:12px;border:1px solid rgba(226,181,63,.55)}
.space-main{grid-row:1/3}

/* ---------- WHY ---------- */
.why-section{padding:60px 0}
.why-grid{display:grid;grid-template-columns:1.15fr repeat(4,1fr);gap:0;align-items:center}
.why-title{padding-right:34px}
.why-title h2{margin-bottom:0}
.why-item{text-align:center;padding:14px 24px;border-left:1px solid rgba(23,50,31,.16)}
.why-icon{width:46px;height:46px;margin:0 auto 14px;color:var(--green)}
.why-icon svg{width:100%;height:100%;display:block}
.why-item h3{font-family:var(--font-condensed);font-weight:400;text-transform:uppercase;margin-bottom:8px;font-size:1.18rem;letter-spacing:.01em}
.why-item p{font-size:.86rem;color:var(--muted);line-height:1.55}

/* ---------- PROMO + CHECKIN ---------- */
.promo-checkin{padding:60px 0}
.promo-row{display:grid;grid-template-columns:170px 1.25fr 1.25fr 150px 1.25fr;gap:22px;align-items:stretch}
.promo-head{display:flex;flex-direction:column;align-items:flex-start}
.promo-head h2{font-size:1.8rem;color:var(--gold);line-height:1.14;margin-bottom:20px}
.mini-link{display:inline-flex;font-size:.9rem;font-family:var(--font-condensed);font-weight:400;text-transform:uppercase;letter-spacing:.015em;color:var(--gold);border:1.5px solid rgba(226,181,63,.6);padding:9px 16px;border-radius:7px;transition:.2s}
.mini-link:hover{background:var(--gold);color:var(--green)}
.promo-card{border-radius:12px;overflow:hidden;border:1px solid var(--gold);height:172px}
.promo-card img{width:100%;height:100%;object-fit:cover;object-position:center}
.checkin-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:1fr 1fr;gap:9px;height:172px}
.checkin-grid img{width:100%;height:100%;object-fit:cover;border-radius:10px;border:1px solid rgba(226,181,63,.5)}

/* ---------- REVIEWS ---------- */
.review-section{padding:60px 0}
.review-row{display:grid;grid-template-columns:1fr auto 40px 2.7fr 40px;gap:22px;align-items:center}
.review-title h2{font-size:1.9rem;line-height:1.12}
.google-score{text-align:center}
.google-score .google{font-weight:800;font-size:1.15rem}
.google-score .google b:nth-child(1){color:#4285F4}.google-score .google b:nth-child(2){color:#EA4335}.google-score .google b:nth-child(3){color:#FBBC05}.google-score .google b:nth-child(4){color:#4285F4}.google-score .google b:nth-child(5){color:#34A853}.google-score .google b:nth-child(6){color:#EA4335}
.google-score strong{display:block;font-size:2.2rem;font-family:var(--font-condensed);font-weight:400;line-height:1.1}
.stars{color:var(--gold);letter-spacing:.1em}
.google-score small{color:var(--muted);font-size:.78rem}
.review-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.review-card{background:#fff;border:1px solid rgba(23,50,31,.12);border-radius:12px;padding:18px;box-shadow:0 8px 20px rgba(0,0,0,.05)}
.review-user{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.review-user .av{width:42px;height:42px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}
.review-user b{font-size:.95rem}
.review-card p{font-size:.86rem;color:#4a463a;line-height:1.55;margin-bottom:12px;min-height:66px}
.rev-arrow{width:40px;height:40px;border-radius:50%;background:#fff;border:1.5px solid rgba(23,50,31,.2);font-size:1.5rem;color:var(--ink);display:grid;place-items:center;transition:.2s}
.rev-arrow:hover{background:var(--gold);border-color:var(--gold);color:var(--green)}

/* ---------- BOOKING ---------- */
.booking-section{position:relative;padding:60px 0;overflow:hidden}
.runway-bg{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(90deg,rgba(15,36,23,.66) 0%,rgba(15,36,23,.38) 22%,rgba(15,36,23,.86) 45%,var(--green) 51%),url('assets/runway.jpg') left center/53% 100% no-repeat}
.booking-grid{position:relative;display:grid;grid-template-columns:280px 1fr;gap:32px;align-items:center}
.booking-copy h2{color:var(--gold);margin-bottom:14px;text-shadow:0 2px 12px rgba(0,0,0,.55)}
.booking-copy p{font-size:.95rem;color:#f4ead6;line-height:1.6;text-shadow:0 1px 8px rgba(0,0,0,.55)}
.large-ticket .ticket-head{padding:16px 26px}
.large-ticket .ticket-head span{display:inline;font-size:.82rem}
.booking-fields{display:grid;grid-template-columns:repeat(3,1fr) 90px;gap:12px;padding:22px;position:relative}
.booking-fields input,.booking-fields select{border:1px solid #e2d6b6;border-radius:9px;background:#fff;padding:0 14px;min-height:48px;outline:none;font-size:.9rem}
.booking-submit{grid-column:1/4;min-height:50px}
.barcode.vertical{grid-column:4;grid-row:1/4;height:auto;margin:0;background:repeating-linear-gradient(90deg,#1b1b1b 0 2px,transparent 2px 5px,#1b1b1b 5px 6px,transparent 6px 9px)}

/* ---------- FOOTER ---------- */
.site-footer{background:var(--green);color:#efe4d0;border-top:1px solid var(--line);padding:52px 0 0}
.footer-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr 1.5fr;gap:34px;align-items:start}
.footer-brand img{width:118px;margin-bottom:12px}
.footer-brand p{font-size:.82rem;color:#cfc4ae;margin-bottom:14px}
.site-footer h3{font-family:var(--font-condensed);font-weight:400;text-transform:uppercase;color:var(--gold);font-size:1.1rem;letter-spacing:.02em;margin-bottom:16px}
.site-footer .col a,.site-footer .col p{display:block;color:#ddd1ba;font-size:.86rem;margin-bottom:11px;transition:.2s}
.site-footer .col a:hover{color:var(--gold)}
.socials{display:flex;gap:10px}
.socials a{width:36px;height:36px;border-radius:9px;background:var(--green-2);display:grid;place-items:center;color:var(--gold);transition:.2s}
.socials a:hover{background:var(--gold);color:var(--green)}
.socials svg{width:17px;height:17px}
.map-card{border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.map-card svg{display:block;width:100%;height:130px}
.copyright{margin-top:40px;padding:18px 0;border-top:1px solid rgba(226,181,63,.15);font-size:.78rem;color:#9a927e;text-align:center}

/* ---------- TOAST ---------- */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);padding:13px 20px;border-radius:10px;background:var(--gold);color:#123a2c;font-weight:700;opacity:0;pointer-events:none;transition:.25s;z-index:99;box-shadow:var(--shadow)}
.toast.show{opacity:1;transform:translate(-50%,0)}
.reveal{opacity:1}

/* ---------- RESPONSIVE ---------- */
@media (max-width:900px){
  .desktop-nav{gap:18px;font-size:.76rem}
  .hero-grid{grid-template-columns:1fr 330px;gap:32px}
  .why-grid{grid-template-columns:repeat(2,1fr);row-gap:26px}
  .why-title{grid-column:1/3;padding-right:0;margin-bottom:6px}
  .why-item{border-left:0;border-top:1px solid rgba(23,50,31,.14);padding-top:22px}
  .review-row{grid-template-columns:1fr;gap:24px;text-align:center}
  .review-title h2{text-align:center}
  .google-score{display:flex;justify-content:center;align-items:center;gap:14px}
  .rev-arrow{display:none}
  .review-cards{grid-template-columns:1fr 1fr 1fr}
  .footer-grid{grid-template-columns:1.4fr 1fr 1fr;row-gap:32px}
}
@media (max-width:820px){
  .nav-wrap{height:70px;gap:16px}
  .desktop-nav,.header-book{display:none}
  .menu-toggle{display:block;margin-left:auto}
  .brand img{width:104px}
  .mobile-menu{display:grid;position:absolute;top:70px;left:0;right:0;background:var(--green-deep);max-height:0;overflow:hidden;transition:.3s;border-bottom:1px solid var(--line)}
  .mobile-menu.open{max-height:400px;padding:12px 24px}
  .mobile-menu a{padding:12px 0;color:#fff;border-bottom:1px solid rgba(255,255,255,.08);font-weight:600}
  .hero{min-height:auto}
  .hero-grid{grid-template-columns:1fr;padding:56px 0 44px;gap:34px}
  .hero-overlay{background:linear-gradient(180deg,rgba(15,36,23,.7),rgba(15,36,23,.9))}
  .hero-copy{max-width:none}
  .plane-line{display:none}
  .ticket{max-width:520px}
  .section-head{align-items:flex-start;flex-direction:column;gap:18px}
  .title-trail{display:none}
  .dish-track{grid-template-columns:1fr 1fr;align-items:end}
  .dish-card img{height:170px}
  .dish-card.feature{grid-column:1/3}
  .dish-card.feature img{height:210px}
  .space-grid{grid-template-columns:1fr;gap:24px}
  .space-gallery{height:300px}
  .promo-row{grid-template-columns:1fr 1fr;gap:20px}
  .promo-head{grid-column:1/3;flex-direction:row;align-items:center;gap:16px;flex-wrap:wrap}
  .promo-head h2{margin:0}
  .promo-head .section-no{margin-bottom:0}
  .mini-link{margin-left:auto}
  .promo-card{height:160px}
  .checkin-grid{grid-column:1/3;height:auto;grid-template-rows:auto auto}
  .checkin-grid img{height:auto;aspect-ratio:1.35/1}
  .booking-grid{grid-template-columns:1fr;gap:28px}
  .runway-bg{background:linear-gradient(rgba(15,36,23,.82),rgba(15,36,23,.95)),url('assets/runway.jpg') center/cover no-repeat}
  .booking-fields{grid-template-columns:1fr 1fr}
  .booking-submit{grid-column:1/3}
  .barcode.vertical{display:none}
  .footer-grid{grid-template-columns:1fr 1fr;row-gap:30px}
}
@media (max-width:560px){
  .container{width:calc(100% - 32px)}
  .hero h1{font-size:clamp(3rem,13vw,4.4rem)}
  .hero-actions{width:100%}
  .hero-actions .btn{flex:1}
  .menu-section,.space-section,.why-section,.promo-checkin,.review-section,.booking-section{padding:44px 0}
  .dish-track{grid-template-columns:1fr}
  .dish-card.feature{grid-column:auto}
  .dish-card img,.dish-card.feature img{height:200px}
  .dish-card h3{min-height:0}
  .space-gallery{grid-template-columns:1fr 1fr;height:340px}
  .why-grid{grid-template-columns:1fr}
  .why-title{grid-column:auto}
  .why-item{text-align:center}
  .promo-head{flex-direction:row}
  .promo-card{height:140px}
  .checkin-grid{grid-template-columns:repeat(3,1fr)}
  .review-cards{grid-template-columns:1fr}
  .booking-fields{grid-template-columns:1fr}
  .booking-submit{grid-column:auto}
  .footer-grid{grid-template-columns:1fr}
}

/* Desktop poster lock: match the supplied 1024px reference composition. */
@media (min-width:901px){
  body{line-height:1.45}
  .container{width:min(928px,calc(100% - 96px))}
  h1,h2,.hero-tagline,.block-title h2{font-family:var(--font-display);font-weight:400;letter-spacing:.005em}
  h2{line-height:.9}

  .site-header{height:70px}
  .nav-wrap{height:70px;gap:24px}
  .brand{align-self:flex-start;z-index:3}
  .brand img{height:132px;width:auto;margin-top:8px}
  .desktop-nav{gap:27px;font-size:1rem;line-height:1}
  .desktop-nav a{padding:28px 0 21px}
  .desktop-nav a::after{bottom:10px}
  .header-book{min-height:35px;padding:0 19px;border-radius:5px;font-size:.98rem}
  .btn{min-height:35px;padding:0 19px;border-radius:5px;font-size:1rem;gap:8px}
  .btn .ico{width:16px;height:16px}

  .hero{min-height:332px}
  .hero-photo{background-position:center 48%}
  .hero-grid{grid-template-columns:1fr 282px;gap:54px;min-height:332px;padding:20px 0 15px;align-items:center}
  .hero-copy{max-width:560px;padding-top:34px}
  .flight-path{top:-2px;right:80px;width:285px}
  .hero h1{font-size:5rem;line-height:1.08;margin-bottom:7px;text-shadow:0 6px 20px rgba(0,0,0,.35)}
  .hero-tagline{font-size:2.62rem;line-height:.9;margin-bottom:7px}
  .hero-sub{font-size:.82rem;margin-bottom:14px;line-height:1.1}
  .hero-actions{gap:18px}

  .ticket{border-radius:9px}
  .ticket::before,.ticket::after{right:38px;width:18px;height:18px}
  .quick-book{width:282px;justify-self:end}
  .quick-book .ticket-head{padding:11px 15px}
  .ticket-head span{font-size:.92rem;letter-spacing:.055em}
  .quick-book .ticket-head strong{font-size:1.55rem;line-height:1}
  .ticket-head .wings{width:54px}
  .quick-book .ticket-body{padding:10px 12px}
  .quick-book .ticket-body label{grid-template-columns:28px 1fr;margin-bottom:6px;border-radius:5px}
  .quick-book .ticket-body label span.fi{padding-left:8px}
  .quick-book .ticket-body label span.fi svg{width:15px;height:15px}
  .quick-book input,.quick-book select{min-height:29px;padding:0 8px;font-size:.74rem}
  .quick-book .btn-block{min-height:30px;margin-top:2px;font-size:.78rem}
  .quick-book .barcode{height:22px;margin:9px 18px 0}

  .section-no{padding:3px 18px 3px 10px;margin-bottom:8px;font-size:.95rem}
  .menu-section{padding:14px 0 12px}
  .section-head{display:grid;grid-template-columns:260px 1fr;align-items:end;margin-bottom:9px;gap:22px}
  .section-head h2{font-size:2rem;line-height:.93}
  .title-trail{left:155px;bottom:2px;width:88px}
  .section-actions{justify-self:end;gap:8px;margin-bottom:10px}
  .circle-btn{width:30px;height:30px;font-size:1.2rem}
  .section-actions .btn{min-height:32px;font-size:.82rem;padding:0 13px}
  .dish-track{grid-template-columns:1.3fr repeat(4,1fr);gap:10px;align-items:stretch}
  .dish-card{border-radius:5px}
  .dish-card img,.dish-card.feature img{height:86px}
  .dish-card>div{min-height:55px;padding:8px 31px 8px 10px}
  .dish-card h3{font-size:.82rem;line-height:.98;min-height:1.95em;margin-bottom:3px}
  .dish-card p{font-size:.78rem;line-height:1}
  .dish-card button{right:8px;bottom:8px;width:20px;height:20px;font-size:.82rem}

  .space-section{padding:11px 0}
  .space-grid{grid-template-columns:185px 1fr;gap:21px}
  .space-copy h2{font-size:2.2rem;line-height:.88;margin-bottom:10px}
  .space-copy p{font-size:.76rem;line-height:1.35;margin-bottom:12px}
  .space-copy .btn{min-height:30px;font-size:.8rem;padding:0 13px}
  .space-gallery{height:175px;gap:8px}
  .space-gallery img{border-radius:5px}

  .why-section{padding:11px 0}
  .why-grid{grid-template-columns:1.1fr repeat(4,1fr)}
  .why-title{padding-right:24px}
  .why-title h2{font-size:1.9rem;line-height:.9}
  .why-item{padding:9px 14px}
  .why-icon{width:35px;height:35px;margin-bottom:6px}
  .why-item h3{font-size:.92rem;line-height:1;margin-bottom:5px}
  .why-item p{font-size:.65rem;line-height:1.35}

  .promo-checkin{padding:10px 0}
  .promo-row{grid-template-columns:112px 1fr 1fr 112px 1.55fr;gap:12px}
  .promo-head h2{font-size:1.9rem;line-height:.92;margin-bottom:12px}
  .mini-link{font-size:.74rem;min-height:30px;padding:7px 10px;border-radius:4px}
  .promo-card{height:126px;border-radius:5px}
  .checkin-grid{height:126px;gap:7px}
  .checkin-grid img{border-radius:5px}

  .review-section{padding:11px 0}
  .review-row{grid-template-columns:185px 112px 30px 1fr 30px;gap:13px}
  .review-title h2{font-size:1.85rem;line-height:.93}
  .google-score .google{font-size:1rem;line-height:1}
  .google-score strong{font-size:2rem}
  .google-score small{font-size:.64rem}
  .stars{font-size:.78rem;letter-spacing:.05em}
  .rev-arrow{width:30px;height:30px;font-size:1.2rem}
  .review-cards{gap:12px}
  .review-card{border-radius:5px;padding:9px;min-height:82px}
  .review-user{gap:7px;margin-bottom:5px}
  .review-user .av{width:28px;height:28px}
  .review-user b{font-size:.72rem;line-height:1.05}
  .review-card p{font-size:.62rem;line-height:1.3;min-height:32px;margin-bottom:4px}

  .booking-section{padding:13px 0 6px}
  .booking-grid{grid-template-columns:220px 1fr;gap:14px}
  .booking-copy h2{font-size:2rem;line-height:.9;margin-bottom:8px}
  .booking-copy p{font-size:.66rem;line-height:1.3}
  .large-ticket{border-radius:8px}
  .large-ticket .ticket-head{padding:9px 18px}
  .large-ticket .ticket-head span{font-size:.9rem}
  .large-ticket .ticket-head .wings{width:52px}
  .booking-fields{grid-template-columns:repeat(3,1fr) 82px;gap:7px;padding:9px 13px}
  .booking-fields input,.booking-fields select{min-height:28px;border-radius:4px;font-size:.68rem;padding:0 9px}
  .booking-submit{min-height:30px;font-size:.86rem}

  .site-footer{padding:8px 0 0}
  .footer-grid{grid-template-columns:1.05fr .85fr .85fr 1.35fr;gap:22px}
  .footer-brand img{width:88px;margin-bottom:5px}
  .footer-brand p{font-size:.58rem;margin-bottom:7px}
  .site-footer h3{font-size:.86rem;margin-bottom:6px}
  .site-footer .col a,.site-footer .col p{font-size:.62rem;line-height:1.25;margin-bottom:5px}
  .socials{gap:6px}
  .socials a{width:20px;height:20px;border-radius:50%}
  .socials svg{width:11px;height:11px}
  .map-card{border-radius:5px}
  .map-card svg{height:58px}
  .copyright{margin-top:8px;padding:7px 0;font-size:.55rem}
}

@media (min-width:901px){
  .menu-section{padding:10px 0 8px}
  .section-head{margin-bottom:7px}
  .dish-card img,.dish-card.feature img{height:80px}
  .dish-card>div{min-height:50px;padding:7px 31px 7px 10px}

  .booking-section{padding:9px 0 4px}
  .booking-grid{grid-template-columns:218px 1fr}
  .large-ticket .ticket-head{min-height:34px;padding:6px 18px}
  .large-ticket .ticket-head span{font-size:.82rem;line-height:1}
  .large-ticket .ticket-head .wings{width:42px;max-height:22px;object-fit:contain}
  .booking-fields{gap:6px;padding:7px 12px}
  .booking-fields input,.booking-fields select{min-height:25px;font-size:.64rem}
  .booking-submit{min-height:27px;font-size:.78rem}
  .barcode.vertical{width:72px}

  .site-footer{padding:5px 0 0}
  .footer-grid{grid-template-columns:1fr .8fr .8fr 1.25fr;gap:18px}
  .footer-brand img{width:70px;margin-bottom:3px}
  .footer-brand p{font-size:.52rem;margin-bottom:5px}
  .site-footer h3{font-size:.78rem;margin-bottom:4px}
  .site-footer .col a,.site-footer .col p{font-size:.56rem;line-height:1.12;margin-bottom:4px}
  .socials a{width:17px;height:17px}
  .socials svg{width:9px;height:9px}
  .map-card svg{height:46px}
  .copyright{margin-top:5px;padding:5px 0;font-size:.48rem}
}

@media (min-width:901px){
  .hero{min-height:323px}
  .hero-grid{min-height:323px;padding:17px 0 13px}
  .hero-copy{padding-top:30px}

  .menu-section{padding:8px 0 6px}
  .dish-card img,.dish-card.feature img{height:76px}
  .dish-card>div{min-height:48px}

  .review-section{padding:8px 0}
  .review-card{min-height:74px;padding:8px}
  .review-card p{min-height:27px;font-size:.6rem}

  .site-footer{padding:3px 0 0}
  .footer-grid{gap:14px}
  .footer-brand img{width:62px}
  .footer-brand p{font-size:.48rem;margin-bottom:4px}
  .site-footer h3{font-size:.72rem;margin-bottom:3px}
  .site-footer .col a,.site-footer .col p{font-size:.52rem;margin-bottom:3px}
  .map-card svg{height:38px}
  .copyright{margin-top:0;padding:1px 0;font-size:.46rem}
}

/* Usable desktop spacing: keep the same composition, but avoid over-compressing sections. */
@media (min-width:901px){
  body{line-height:1.5}

  .hero{min-height:380px}
  .hero-grid{min-height:380px;padding:26px 0 24px}
  .hero-copy{padding-top:36px}
  .hero h1{font-size:5.35rem;margin-bottom:10px}
  .hero-tagline{font-size:2.85rem;margin-bottom:10px}
  .hero-sub{font-size:.88rem;margin-bottom:18px}
  .quick-book{width:305px}
  .quick-book .ticket-head{padding:13px 16px}
  .quick-book .ticket-body{padding:12px 13px}
  .quick-book input,.quick-book select{min-height:32px;font-size:.8rem}
  .quick-book .ticket-body label{margin-bottom:7px}
  .quick-book .btn-block{min-height:33px;font-size:.86rem}
  .quick-book .barcode{height:26px;margin-top:10px}

  .menu-section{padding:22px 0 20px}
  .section-head{margin-bottom:14px}
  .section-head h2{font-size:2.18rem}
  .dish-track{gap:12px}
  .dish-card img,.dish-card.feature img{height:118px}
  .dish-card>div{min-height:70px;padding:11px 36px 11px 12px}
  .dish-card h3{font-size:.92rem;line-height:1.02;margin-bottom:5px}
  .dish-card p{font-size:.86rem}
  .dish-card button{width:22px;height:22px;bottom:11px}

  .space-section{padding:20px 0}
  .space-grid{grid-template-columns:205px 1fr;gap:24px}
  .space-gallery{height:230px}
  .space-copy h2{font-size:2.35rem}
  .space-copy p{font-size:.82rem;margin-bottom:15px}

  .why-section{padding:18px 0}
  .why-title h2{font-size:2.05rem}
  .why-item{padding:13px 16px}
  .why-icon{width:42px;height:42px;margin-bottom:8px}
  .why-item h3{font-size:1rem;margin-bottom:6px}
  .why-item p{font-size:.7rem;line-height:1.42}

  .promo-checkin{padding:20px 0}
  .promo-row{grid-template-columns:120px 1fr 1fr 120px 1.55fr;gap:14px}
  .promo-head h2{font-size:2rem;margin-bottom:14px}
  .promo-card{height:150px}
  .checkin-grid{height:150px}

  .review-section{padding:18px 0}
  .review-row{grid-template-columns:190px 118px 32px 1fr 32px;gap:14px}
  .review-title h2{font-size:1.95rem}
  .review-card{min-height:102px;padding:11px}
  .review-user .av{width:32px;height:32px}
  .review-user b{font-size:.78rem}
  .review-card p{min-height:42px;font-size:.68rem;line-height:1.35}
  .stars{font-size:.86rem}

  .booking-section{padding:18px 0 10px}
  .booking-grid{grid-template-columns:230px 1fr;gap:18px}
  .booking-copy h2{font-size:2.15rem;margin-bottom:10px}
  .booking-copy p{font-size:.72rem}
  .large-ticket .ticket-head{padding:9px 20px}
  .large-ticket .ticket-head span{font-size:.9rem}
  .large-ticket .ticket-head .wings{width:50px;max-height:28px}
  .booking-fields{gap:8px;padding:10px 14px}
  .booking-fields input,.booking-fields select{min-height:31px;font-size:.72rem}
  .booking-submit{min-height:33px;font-size:.86rem}

  .site-footer{padding:10px 0 0}
  .footer-grid{grid-template-columns:1fr .82fr .82fr 1.28fr;gap:22px}
  .footer-brand img{width:82px;margin-bottom:5px}
  .footer-brand p{font-size:.58rem;margin-bottom:6px}
  .site-footer h3{font-size:.82rem;margin-bottom:5px}
  .site-footer .col a,.site-footer .col p{font-size:.6rem;line-height:1.22;margin-bottom:5px}
  .socials a{width:20px;height:20px}
  .socials svg{width:11px;height:11px}
  .map-card svg{height:54px}
  .copyright{margin-top:7px;padding:6px 0;font-size:.5rem}
}

/* Spacious desktop: keep the reference order, but use the full viewport and give each section room. */
@media (min-width:901px){
  .container{width:calc(100% - 64px);max-width:none}

  .hero{min-height:460px}
  .hero-grid{grid-template-columns:minmax(0,1fr) 350px;min-height:460px;gap:64px;padding:38px 0 34px}
  .hero-copy{max-width:680px;padding-top:48px}
  .hero h1{font-size:6.1rem;margin-bottom:12px}
  .hero-tagline{font-size:3.35rem;margin-bottom:12px}
  .hero-sub{font-size:.98rem;margin-bottom:24px}
  .flight-path{right:100px;width:360px}
  .quick-book{width:350px}
  .quick-book .ticket-head{padding:16px 18px}
  .quick-book .ticket-head strong{font-size:1.82rem}
  .quick-book .ticket-body{padding:15px}
  .quick-book .ticket-body label{margin-bottom:9px}
  .quick-book input,.quick-book select{min-height:38px;font-size:.9rem}
  .quick-book .btn-block{min-height:38px;font-size:.95rem}
  .quick-book .barcode{height:31px;margin-top:12px}

  .menu-section{padding:36px 0 34px}
  .section-head{grid-template-columns:320px 1fr;margin-bottom:22px}
  .section-head h2{font-size:2.5rem}
  .title-trail{left:190px;width:115px}
  .section-actions{margin-bottom:16px}
  .dish-track{gap:16px}
  .dish-card img,.dish-card.feature img{height:150px}
  .dish-card>div{min-height:84px;padding:14px 42px 14px 14px}
  .dish-card h3{font-size:1.08rem;line-height:1.08}
  .dish-card p{font-size:1rem}
  .dish-card button{width:26px;height:26px;right:12px;bottom:14px}

  .space-section{padding:34px 0}
  .space-grid{grid-template-columns:250px 1fr;gap:34px}
  .space-copy h2{font-size:2.75rem;margin-bottom:14px}
  .space-copy p{font-size:.95rem;margin-bottom:20px}
  .space-gallery{height:320px;gap:12px}

  .why-section{padding:30px 0}
  .why-grid{grid-template-columns:1.15fr repeat(4,1fr)}
  .why-title h2{font-size:2.45rem}
  .why-item{padding:18px 22px}
  .why-icon{width:52px;height:52px;margin-bottom:12px}
  .why-item h3{font-size:1.15rem;margin-bottom:8px}
  .why-item p{font-size:.82rem;line-height:1.5}

  .promo-checkin{padding:34px 0}
  .promo-row{grid-template-columns:150px 1.1fr 1.1fr 150px 1.5fr;gap:18px}
  .promo-head h2{font-size:2.35rem;margin-bottom:18px}
  .mini-link{font-size:.9rem;min-height:36px;padding:9px 14px}
  .promo-card{height:190px}
  .checkin-grid{height:190px;gap:10px}

  .review-section{padding:32px 0}
  .review-row{grid-template-columns:240px 150px 36px 1fr 36px;gap:18px}
  .review-title h2{font-size:2.25rem}
  .google-score .google{font-size:1.15rem}
  .google-score strong{font-size:2.45rem}
  .review-cards{gap:18px}
  .review-card{min-height:132px;padding:16px}
  .review-user{gap:10px;margin-bottom:10px}
  .review-user .av{width:40px;height:40px}
  .review-user b{font-size:.95rem}
  .review-card p{font-size:.82rem;line-height:1.48;min-height:54px;margin-bottom:8px}
  .stars{font-size:1rem}

  .booking-section{padding:34px 0 24px}
  .booking-grid{grid-template-columns:270px 1fr;gap:28px}
  .booking-copy h2{font-size:2.55rem;margin-bottom:14px}
  .booking-copy p{font-size:.9rem;line-height:1.5}
  .large-ticket .ticket-head{padding:14px 24px}
  .large-ticket .ticket-head span{font-size:1.05rem}
  .large-ticket .ticket-head .wings{width:60px;max-height:34px}
  .booking-fields{gap:10px;padding:16px 18px}
  .booking-fields input,.booking-fields select{min-height:40px;font-size:.86rem}
  .booking-submit{min-height:42px;font-size:1rem}
  .barcode.vertical{width:90px}

  .site-footer{padding:22px 0 0}
  .footer-grid{grid-template-columns:1.2fr .85fr .85fr 1.4fr;gap:34px}
  .footer-brand img{width:112px;margin-bottom:10px}
  .footer-brand p{font-size:.78rem;margin-bottom:10px}
  .site-footer h3{font-size:1.02rem;margin-bottom:10px}
  .site-footer .col a,.site-footer .col p{font-size:.78rem;line-height:1.38;margin-bottom:7px}
  .socials a{width:28px;height:28px}
  .socials svg{width:14px;height:14px}
  .map-card svg{height:82px}
  .copyright{margin-top:18px;padding:10px 0;font-size:.68rem}
}

/* Balanced spacious version: keep hero/reference frame, enlarge section content vertically. */
@media (min-width:901px){
  .container{width:min(928px,calc(100% - 96px));max-width:928px}

  .hero{min-height:380px}
  .hero-grid{grid-template-columns:1fr 305px;min-height:380px;gap:54px;padding:26px 0 24px}
  .hero-copy{max-width:560px;padding-top:36px}
  .hero h1{font-size:5.35rem;margin-bottom:10px}
  .hero-tagline{font-size:2.85rem;margin-bottom:10px}
  .hero-sub{font-size:.88rem;margin-bottom:18px}
  .flight-path{right:80px;width:310px}
  .quick-book{width:305px}

  .menu-section{padding:34px 0 36px}
  .section-head{grid-template-columns:280px 1fr;margin-bottom:22px}
  .section-head h2{font-size:2.35rem}
  .title-trail{left:180px;width:105px}
  .mtitle{overflow:visible;max-width:280px}
  .dish-track{gap:12px}
  .dish-card img,.dish-card.feature img{height:150px}
  .dish-card>div{min-height:86px;padding:14px 38px 14px 14px}
  .dish-card h3{font-size:1.02rem;line-height:1.05;margin-bottom:6px}
  .dish-card p{font-size:.98rem}
  .dish-card button{width:25px;height:25px;right:11px;bottom:14px}

  .space-section{padding:34px 0 36px}
  .space-grid{grid-template-columns:215px 1fr;gap:28px}
  .space-copy h2{font-size:2.55rem;margin-bottom:14px}
  .space-copy p{font-size:.9rem;margin-bottom:18px}
  .space-gallery{height:300px;gap:11px}

  .why-section{padding:30px 0 32px}
  .why-title h2{font-size:2.25rem}
  .why-item{padding:18px 20px}
  .why-icon{width:50px;height:50px;margin-bottom:12px}
  .why-item h3{font-size:1.1rem;margin-bottom:8px}
  .why-item p{font-size:.8rem;line-height:1.5}

  .promo-checkin{padding:34px 0 36px}
  .promo-row{grid-template-columns:135px 1fr 1fr 135px 1.45fr;gap:16px}
  .promo-head h2{font-size:2.2rem;margin-bottom:18px}
  .promo-card{height:178px}
  .checkin-grid{height:178px;gap:9px}

  .review-section{padding:32px 0 34px}
  .review-row{grid-template-columns:210px 130px 32px 1fr 32px;gap:16px}
  .review-title h2{font-size:2.1rem}
  .review-card{min-height:124px;padding:14px}
  .review-user .av{width:38px;height:38px}
  .review-user b{font-size:.9rem}
  .review-card p{font-size:.78rem;line-height:1.45;min-height:52px;margin-bottom:8px}

  .booking-section{padding:32px 0 24px}
  .booking-grid{grid-template-columns:245px 1fr;gap:24px}
  .booking-copy h2{font-size:2.35rem;margin-bottom:12px}
  .booking-copy p{font-size:.84rem;line-height:1.45}
  .large-ticket .ticket-head{padding:13px 22px}
  .booking-fields{gap:9px;padding:14px 16px}
  .booking-fields input,.booking-fields select{min-height:38px;font-size:.82rem}
  .booking-submit{min-height:40px;font-size:.95rem}

  .site-footer{padding:20px 0 0}
  .footer-grid{grid-template-columns:1.15fr .85fr .85fr 1.35fr;gap:28px}
  .footer-brand img{width:98px;margin-bottom:8px}
  .footer-brand p{font-size:.72rem;margin-bottom:9px}
  .site-footer h3{font-size:.96rem;margin-bottom:8px}
  .site-footer .col a,.site-footer .col p{font-size:.72rem;line-height:1.35;margin-bottom:6px}
  .map-card svg{height:72px}
  .copyright{margin-top:14px;padding:9px 0;font-size:.62rem}
}

/* UX refinement: keep the reference composition, but make content blocks breathe and convert better. */
@media (min-width:901px){
  /* 1. Logo behaves like a hanging sign from the nav, with rounded lower corners. */
  .brand img{
    border-radius:0 0 18px 18px;
    overflow:hidden;
    box-shadow:0 12px 26px rgba(0,0,0,.18);
  }

  /* 2. Hero copy needs more vertical rhythm; the previous line-height was poster-tight. */
  .hero{min-height:390px}
  .hero-grid{grid-template-columns:1fr 315px;min-height:390px;padding:28px 0 28px}
  .hero h1{
    font-size:5.28rem;
    line-height:1.1;
    margin-bottom:14px;
  }
  .hero-tagline{
    font-size:2.78rem;
    line-height:1.04;
    margin-bottom:12px;
  }
  .hero-sub{
    line-height:1.35;
    margin-bottom:20px;
  }
  .quick-book{width:315px}

  /* 4. Section 2: products should feel like a slide row: equal cards, larger width and height. */
  .menu-section{
    padding:42px 0 46px;
  }
  .menu-section .container{
    width:calc(100% - 96px);
    max-width:1120px;
  }
  .menu-section .section-head{
    grid-template-columns:310px 1fr;
    margin-bottom:24px;
  }
  .menu-section .section-head h2{
    font-size:2.45rem;
    line-height:.98;
  }
  .menu-section .mtitle{
    max-width:310px;
  }
  .menu-section .title-trail{
    left:205px;
    width:78px;
  }
  .menu-section .section-actions{
    margin-bottom:18px;
  }
  .dish-track{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:18px;
  }
  .dish-card{
    border-radius:8px;
  }
  .dish-card img,
  .dish-card.feature img{
    height:178px;
  }
  .dish-card>div{
    min-height:92px;
    padding:15px 44px 16px 16px;
  }
  .dish-card h3{
    font-size:1.08rem;
    line-height:1.08;
    min-height:2.15em;
  }
  .dish-card p{
    font-size:1.02rem;
  }
  .dish-card button{
    width:28px;
    height:28px;
    right:13px;
    bottom:16px;
  }

  /* 5. Section 3: wider gallery, stronger image hierarchy, better text-to-image balance. */
  .space-section{
    padding:42px 0 46px;
  }
  .space-section .container{
    width:calc(100% - 96px);
    max-width:1120px;
  }
  .space-grid{
    grid-template-columns:255px 1fr;
    gap:36px;
    align-items:center;
  }
  .space-copy h2{
    font-size:2.72rem;
    line-height:.96;
    margin-bottom:16px;
  }
  .space-copy p{
    font-size:.94rem;
    line-height:1.55;
    margin-bottom:22px;
  }
  .space-gallery{
    grid-template-columns:1.62fr 1fr 1fr;
    height:345px;
    gap:12px;
  }

  /* Section 4 and lower sections: more readable spacing without changing the visual system. */
  .why-section{
    padding:36px 0 38px;
  }
  .why-grid{
    grid-template-columns:1.2fr repeat(4,1fr);
  }
  .why-title h2{
    font-size:2.35rem;
    line-height:.98;
  }
  .why-item{
    padding:20px 24px;
  }
  .why-icon{
    width:54px;
    height:54px;
    margin-bottom:13px;
  }
  .why-item h3{
    font-size:1.12rem;
    margin-bottom:8px;
  }
  .why-item p{
    font-size:.82rem;
    line-height:1.52;
  }

  .promo-checkin{
    padding:40px 0 42px;
  }
  .review-section{
    padding:38px 0 40px;
  }
  .booking-section{
    padding:38px 0 30px;
  }
}

/* Conversion pass: carousel, breathing headings, balanced media blocks, live ticket fields. */
@media (min-width:901px){
  h2{
    line-height:1.08;
    letter-spacing:.018em;
  }
  .section-no{
    margin-bottom:13px;
  }
  .section-head h2,
  .space-copy h2,
  .why-title h2,
  .promo-head h2,
  .review-title h2,
  .booking-copy h2{
    line-height:1.06;
    letter-spacing:.018em;
  }

  .circle-btn,
  .rev-arrow{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    line-height:1;
    padding:0;
    font-family:Arial,sans-serif;
    font-weight:700;
  }
  .circle-btn{font-size:1.38rem}
  .rev-arrow{font-size:1.35rem}

  .ticket-head{
    gap:16px;
  }
  .ticket-live{
    margin-top:7px;
    max-width:100%;
    color:var(--gold);
    font-family:var(--font-condensed);
    font-size:.8rem;
    letter-spacing:.055em;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    opacity:.95;
  }
  .ticket-live.typing::after{
    content:"";
    display:inline-block;
    width:1px;
    height:.85em;
    margin-left:4px;
    background:currentColor;
    vertical-align:-1px;
    animation:ticketBlink .7s steps(1) infinite;
  }
  @keyframes ticketBlink{50%{opacity:0}}

  .menu-section{
    padding:54px 0 62px;
  }
  .menu-section .container{
    width:calc(100% - 72px);
    max-width:1220px;
  }
  .menu-section .section-head{
    grid-template-columns:330px 1fr;
    margin-bottom:28px;
  }
  .menu-section .section-actions{
    align-self:center;
    margin-bottom:0;
  }
  .dish-track{
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:calc((100% - 72px) / 5);
    grid-template-columns:none;
    gap:18px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:2px;
    padding:2px 2px 12px;
    align-items:stretch;
  }
  .dish-track::-webkit-scrollbar{height:6px}
  .dish-track::-webkit-scrollbar-thumb{background:rgba(23,50,31,.28);border-radius:99px}
  .dish-card{
    scroll-snap-align:start;
    min-width:0;
  }
  .dish-card img,
  .dish-card.feature img{
    height:210px;
  }
  .dish-card>div{
    min-height:104px;
    padding:16px 46px 18px 17px;
  }
  .dish-card h3{
    font-size:1.16rem;
    line-height:1.12;
  }
  .dish-card p{
    font-size:1.08rem;
  }
  .dish-card button{
    width:30px;
    height:30px;
  }

  .space-section{
    padding:58px 0 64px;
  }
  .space-section .container{
    width:calc(100% - 72px);
    max-width:1220px;
  }
  .space-grid{
    grid-template-columns:280px 1fr;
    gap:42px;
  }
  .space-copy h2{
    font-size:3rem;
  }
  .space-copy p{
    font-size:1rem;
    line-height:1.65;
  }
  .space-gallery{
    height:430px;
    gap:14px;
  }
  .space-gallery img{
    transition:opacity .35s ease, transform .35s ease;
  }
  .space-gallery img.is-swapping{
    opacity:.55;
    transform:scale(.985);
  }

  .why-section{
    padding:44px 0 50px;
  }
  .why-grid{
    grid-template-columns:1.15fr repeat(5,1fr);
    align-items:stretch;
  }
  .why-title{
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .why-item{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:150px;
  }

  .review-section{
    padding:54px 0 58px;
  }
  .review-section .container{
    width:calc(100% - 72px);
    max-width:1220px;
  }
  .coso-home .container{
    width:calc(100% - 72px);
    max-width:1220px;
  }
  .review-row{
    grid-template-columns:250px 150px 40px 1fr 40px;
    gap:22px;
  }
  .review-card{
    min-height:150px;
    padding:18px;
  }
  .review-card p{
    min-height:64px;
    font-size:.86rem;
  }

  .booking-section{
    padding:58px 0 48px;
  }
  .booking-section .container{
    width:calc(100% - 72px);
    max-width:1220px;
    position:relative;
    z-index:1;
  }
  .booking-grid{
    grid-template-columns:290px 1fr;
    gap:34px;
  }
  .large-ticket .ticket-head{
    min-height:78px;
    padding:16px 26px;
  }
  .booking-fields{
    padding:20px 22px;
    gap:12px;
  }
  .booking-fields input,
  .booking-fields select{
    min-height:46px;
    font-size:.92rem;
  }
  .booking-submit{
    min-height:48px;
  }
}

/* Hero/footer rebalance after widening the content sections. */
@media (min-width:901px){
  .hero .container,
  .site-footer .container{
    width:calc(100% - 96px);
    max-width:1120px;
  }

  .hero{
    min-height:500px;
  }
  .hero-grid{
    grid-template-columns:minmax(0,1fr) 360px;
    min-height:500px;
    gap:72px;
    padding:42px 0 38px;
    align-items:center;
  }
  .hero-copy{
    max-width:620px;
    padding-top:34px;
  }
  .hero h1{
    font-size:5.7rem;
    line-height:1.1;
  }
  .hero-tagline{
    font-size:3rem;
  }
  .quick-book{
    width:360px;
  }
  .quick-book .ticket-head{
    padding:15px 18px;
  }
  .quick-book .ticket-body{
    padding:15px;
  }
  .flight-path{
    right:40px;
    width:360px;
  }

  .site-footer{
    padding:30px 0 0;
  }
  .footer-grid{
    grid-template-columns:1.05fr .8fr .8fr 1.15fr 1.25fr;
    gap:32px;
    align-items:start;
  }
  .footer-brand img{
    width:112px;
  }
  .footer-brand p{
    max-width:170px;
    font-size:.72rem;
    line-height:1.4;
  }
  .site-footer h3{
    font-size:1rem;
    margin-bottom:10px;
  }
  .site-footer .col a,
  .site-footer .col p{
    font-size:.72rem;
    line-height:1.35;
    margin-bottom:7px;
  }
  .map-card svg{
    height:82px;
  }
  .copyright{
    margin-top:22px;
    padding:12px 0;
    font-size:.64rem;
  }
}

/* Final proportion pass: align hero with section 2 and enlarge sections 4-5. */
@media (min-width:901px){
  .hero-photo{
    background-image:url("assets/hero-restaurant.jpg");
    background-position:center 58%;
  }

  .hero .container{
    width:calc(100% - 72px);
    max-width:1220px;
  }
  .hero{
    min-height:635px;
  }
  .hero-grid{
    grid-template-columns:minmax(0,1fr) 380px;
    min-height:635px;
    gap:64px;
    padding:46px 0 42px;
  }
  .hero-copy{
    max-width:660px;
    padding-top:32px;
  }
  .hero h1{
    font-size:5.9rem;
    line-height:1.1;
    margin-bottom:14px;
  }
  .hero-tagline{
    font-size:3.08rem;
    line-height:1.02;
    margin-bottom:16px;
  }
  .hero-sub{
    font-size:.9rem;
    line-height:1.45;
    margin-bottom:26px;
    max-width:620px;
  }
  .hero-actions{
    gap:20px;
  }
  .quick-book{
    width:380px;
  }
  .quick-book .ticket-head{
    padding:16px 20px;
  }
  .quick-book .ticket-body{
    padding:16px;
  }
  .quick-book .ticket-body label{
    grid-template-columns:34px 1fr;
    margin-bottom:10px;
    border-radius:8px;
  }
  .quick-book input,
  .quick-book select{
    min-height:42px;
    font-size:.86rem;
  }
  .quick-book .btn-block{
    min-height:42px;
    margin-top:4px;
    font-size:.92rem;
  }
  .quick-book .barcode{
    height:34px;
    margin:15px 24px 0;
  }
  .flight-path{
    right:62px;
    top:8px;
    width:385px;
  }

  .why-section{
    padding:60px 0 66px;
  }
  .why-section .container{
    width:calc(100% - 72px);
    max-width:1220px;
  }
  .why-grid{
    grid-template-columns:260px repeat(5,minmax(0,1fr));
    align-items:stretch;
  }
  .why-title{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding-right:36px;
  }
  .why-title h2{
    font-size:2.72rem;
    line-height:1.05;
  }
  .why-item{
    min-height:190px;
    padding:28px 22px;
  }
  .why-icon{
    width:60px;
    height:60px;
    margin-bottom:16px;
  }
  .why-item h3{
    font-size:1.24rem;
    line-height:1.08;
    margin-bottom:10px;
  }
  .why-item p{
    font-size:.9rem;
    line-height:1.6;
  }

  .promo-checkin{
    padding:60px 0 66px;
  }
  .promo-checkin .container{
    width:calc(100% - 72px);
    max-width:1220px;
  }
  .promo-row{
    grid-template-columns:158px 1.3fr 1.3fr 178px 1.55fr;
    gap:18px;
    align-items:stretch;
  }
  .promo-head{
    justify-content:center;
  }
  .promo-head h2{
    font-size:2.55rem;
    line-height:1.02;
    margin-bottom:24px;
  }
  .promo-head .section-no{
    margin-bottom:14px;
  }
  .mini-link{
    min-height:38px;
    padding:9px 16px;
    font-size:.88rem;
  }
  .promo-card{
    height:215px;
    border-radius:8px;
  }
  .promo-card img{
    object-position:left center;
  }
  .checkin-grid{
    height:215px;
    gap:12px;
  }
  .checkin-grid img{
    border-radius:8px;
  }

  .site-footer .container{
    width:calc(100% - 72px);
    max-width:1220px;
  }
}

/* Locked media frames and lower menu CTA. */
@media (min-width:901px){
  .menu-section .section-head{
    display:block;
  }
  .menu-cta{
    display:flex;
    justify-content:center;
    margin-top:34px;
  }
  .menu-cta .btn{
    min-height:58px;
    min-width:230px;
    padding:0 44px;
    border:2px solid rgba(226,181,63,.9);
    border-radius:10px;
    color:var(--ink);
    font-size:1.34rem;
    background:transparent;
  }

  .space-gallery{
    grid-template-columns:minmax(0,1.42fr) repeat(2,minmax(0,1fr));
    grid-template-rows:repeat(2,minmax(0,1fr));
    height:520px;
    overflow:hidden;
    align-items:stretch;
  }
  .space-gallery img,
  .space-gallery .space-main{
    width:100%;
    height:100%;
    min-width:0;
    min-height:0;
    max-width:none;
    object-fit:cover;
    object-position:center;
  }
  .space-gallery .space-main{
    grid-row:1/3;
  }

  .checkin-grid{
    grid-template-columns:repeat(3,100px);
    grid-template-rows:repeat(2,100px);
    width:324px;
    height:212px;
    aspect-ratio:auto;
    overflow:hidden;
  }
  .checkin-grid img{
    width:100px;
    height:100px;
    aspect-ratio:1/1;
    object-fit:cover;
    object-position:center;
    transition:opacity .35s ease, transform .35s ease;
  }
  .checkin-grid img.is-swapping{
    opacity:.55;
    transform:scale(.985);
  }
}

@media (max-width:900px){
  .menu-cta{
    display:flex;
    justify-content:center;
    margin-top:24px;
  }
  .menu-cta .btn{
    min-width:190px;
    border-color:rgba(226,181,63,.8);
  }
  .space-gallery{
    overflow:hidden;
  }
  .space-gallery img{
    width:100%;
    height:100%;
    object-fit:cover;
  }
  .checkin-grid{
    aspect-ratio:auto;
    height:auto;
    align-items:start;
  }
  .checkin-grid img{
    width:100%;
    height:auto;
    aspect-ratio:1/1;
    object-fit:cover;
  }
}

/* Phi Truong brand refresh and Tu Do-inspired menu presentation. */
.hero-photo{
  background-image:url("assets/hero-match.jpg");
}
.hero-overlay{
  background:linear-gradient(90deg,rgba(15,36,23,.94) 0%,rgba(15,36,23,.72) 42%,rgba(15,36,23,.24) 72%,rgba(15,36,23,.64) 100%);
}

.crew-section{
  position:relative;
  overflow:hidden;
  padding:86px 0 92px;
  background:
    radial-gradient(circle at 10% 50%, rgba(226,181,63,.16), transparent 18%),
    radial-gradient(circle at 90% 45%, rgba(226,181,63,.12), transparent 18%),
    linear-gradient(180deg,#173b26,#13331f);
}
.crew-panel{
  position:relative;
  min-height:330px;
  display:grid;
  place-items:center;
  text-align:center;
}
.crew-copy{
  position:relative;
  z-index:2;
  max-width:760px;
}
.crew-copy p{
  color:var(--gold);
  font-size:2.1rem;
  line-height:1;
  margin-bottom:20px;
  font-family:var(--font-condensed);
  text-transform:uppercase;
}
.crew-copy h2{
  color:#f5efe4;
  font-size:clamp(4rem,7vw,6.9rem);
  line-height:.95;
  margin-bottom:24px;
}
.crew-copy span{
  display:block;
  max-width:680px;
  margin:0 auto 34px;
  color:rgba(245,239,228,.72);
  font-size:1.05rem;
  line-height:1.65;
}
.crew-badge{
  position:absolute;
  z-index:1;
  pointer-events:none;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.32));
}
.crew-badge-left{
  left:-92px;
  top:50%;
  width:136px;
  opacity:.72;
  transform:translateY(-50%) rotate(-8deg);
}
.crew-badge-right{
  right:56px;
  top:50%;
  width:122px;
  opacity:.86;
  transform:translateY(-50%) rotate(8deg);
}

@media (min-width:901px){
  .hero-photo{
    background-image:url("assets/hero-match.jpg");
    background-position:center center;
  }
  .menu-section{
    background:
      linear-gradient(rgba(19,51,31,.96),rgba(19,51,31,.96)),
      radial-gradient(circle at 50% 20%,rgba(226,181,63,.18),transparent 28%);
    color:#fffaf1;
    padding:76px 0 88px;
  }
  .menu-section .section-head{
    display:block;
    text-align:center;
    margin-bottom:34px;
  }
  .menu-section .mtitle{
    display:inline-block;
  }
  .menu-section .section-no{
    background:var(--gold);
    color:var(--green);
  }
  .menu-section h2{
    color:#fffaf1;
    font-size:clamp(4rem,6.2vw,6.2rem);
    line-height:.92;
  }
  .menu-section .title-trail{
    display:none;
  }
  .dish-track{
    grid-auto-columns:calc((100% - 78px) / 4);
    gap:26px;
    padding:4px 2px 16px;
  }
  .dish-card{
    background:#fff;
    border:0;
    border-radius:9px;
    box-shadow:0 20px 45px rgba(0,0,0,.24);
  }
  .dish-card img,
  .dish-card.feature img{
    height:255px;
    padding:18px;
    background:#075935;
    object-fit:contain;
  }
  .dish-card>div{
    min-height:176px;
    padding:26px 28px 24px;
    color:#202020;
    background:#fff;
  }
  .dish-card h3{
    min-height:2.3em;
    font-family:"Be Vietnam Pro",system-ui,sans-serif;
    font-size:1.45rem;
    font-weight:800;
    line-height:1.18;
    letter-spacing:0;
    text-transform:none;
    color:#202020;
  }
  .dish-card p{
    color:#1f4028;
    font-size:1.32rem;
    font-weight:700;
  }
  .dish-card button{
    width:auto;
    height:36px;
    right:24px;
    bottom:24px;
    padding:0 16px;
    border-radius:999px;
    background:#fff;
    border:1px solid rgba(0,0,0,.16);
    color:#202020;
    font-size:1rem;
    font-family:"Be Vietnam Pro",system-ui,sans-serif;
    font-weight:800;
  }
  .menu-cta{
    margin-top:38px;
  }
  .menu-cta .btn{
    min-width:260px;
    min-height:66px;
    color:#fffaf1;
    border-color:#f0a32a;
    border-radius:10px;
    font-size:1.45rem;
  }
}

@media (max-width:900px){
  .crew-section{
    padding:58px 0 64px;
  }
  .crew-panel{
    min-height:360px;
    padding:0 18px;
  }
  .crew-copy h2{
    font-size:3.3rem;
  }
  .crew-badge-left{
    position:relative;
    left:auto;
    top:auto;
    width:120px;
    transform:rotate(-6deg);
    margin-bottom:22px;
  }
  .crew-badge-right{
    display:none;
  }
  .menu-section{
    background:#173b26;
    color:#fffaf1;
  }
  .menu-section h2{
    color:#fffaf1;
  }
  .dish-card img,
  .dish-card.feature img{
    background:#075935;
    object-fit:contain;
  }
  .dish-card>div{
    background:#fff;
    color:#202020;
  }
}

/* Final section heading balance pass. */
.space-copy,
.why-title,
.promo-head,
.review-title,
.booking-copy{
  text-align:center;
}
.space-copy .section-no,
.why-title .section-no,
.promo-head .section-no,
.review-title .section-no,
.booking-copy .section-no{
  margin-left:auto;
  margin-right:auto;
}
.space-copy h2,
.why-title h2,
.promo-head h2,
.review-title h2,
.booking-copy h2{
  font-family:"Saira Extra Condensed","Saira Condensed","Be Vietnam Pro",system-ui,sans-serif;
  font-weight:800;
  font-size:clamp(4rem,6.8vw,6.4rem);
  line-height:.96;
  margin-left:auto;
  margin-right:auto;
}
.menu-section h2,
.menu-section .section-head h2{
  font-family:"Saira Extra Condensed","Saira Condensed","Be Vietnam Pro",system-ui,sans-serif;
  font-weight:800;
  font-size:clamp(4.2rem,8.4vw,7.4rem);
  line-height:.94;
  text-align:center;
}
.menu-section .mtitle{
  display:block;
  width:100%;
  max-width:none;
}
.crew-section{
  padding:102px 0 112px;
}
.crew-panel{
  min-height:420px;
}
.crew-copy{
  max-width:980px;
}
.crew-copy p{
  margin-bottom:30px;
}
.crew-copy h2{
  font-family:"Saira Extra Condensed","Saira Condensed","Be Vietnam Pro",system-ui,sans-serif;
  font-weight:800;
  line-height:1.08;
  margin-bottom:34px;
}
.crew-copy span{
  margin-bottom:44px;
}

@media (max-width:900px){
  .space-copy h2,
  .why-title h2,
  .promo-head h2,
  .review-title h2,
  .booking-copy h2{
    font-size:clamp(2.45rem,12vw,4.2rem);
    line-height:1;
  }
  .menu-section h2,
  .menu-section .section-head h2{
    font-size:clamp(3.45rem,11.5vw,4.8rem);
    line-height:.98;
  }
  .crew-section{
    padding:72px 0 82px;
  }
  .crew-panel{
    min-height:430px;
  }
  .crew-copy h2{
    font-size:clamp(3.1rem,15vw,4.6rem);
    line-height:1.08;
  }
}

/* Final title/layout lock: keep every section title at the top, centered, and unclipped. */
.section-heading,
.menu-section .section-head{
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  width:100%;
  max-width:960px;
  margin:0 auto 44px !important;
  text-align:center;
}
.section-heading .section-no,
.menu-section .section-no{
  margin:0 auto 18px !important;
}
.section-heading h2,
.menu-section .section-head h2,
.crew-copy h2{
  display:block;
  max-width:min(980px,100%);
  margin:0 auto;
  padding:.08em 0 .1em;
  font-family:"Saira Extra Condensed","Saira Condensed","Be Vietnam Pro",system-ui,sans-serif;
  font-weight:800;
  font-size:clamp(3.6rem,5.25vw,6.05rem);
  line-height:1.16;
  letter-spacing:.01em;
  text-align:center;
  text-transform:uppercase;
  white-space:normal;
  overflow:visible;
  overflow-wrap:normal;
  word-break:normal;
}
section[id]{
  scroll-margin-top:160px;
}
.section-heading-dark h2,
.menu-section .section-head h2,
.crew-copy h2{
  color:#fffaf1;
}
.section-heading p{
  max-width:720px;
  margin:24px auto 0;
  font-size:1.05rem;
  line-height:1.7;
}

@media (min-width:901px){
  .menu-section,
  .space-section,
  .why-section,
  .promo-checkin,
  .review-section,
  .crew-section,
  .booking-section{
    padding-top:92px;
    padding-bottom:98px;
  }
  .menu-section .container,
  .space-section .container,
  .why-section .container,
  .promo-checkin .container,
  .review-section .container,
  .booking-section .container{
    width:calc(100% - 72px);
    max-width:1220px;
  }
  .menu-section .mtitle{
    display:block;
    width:100%;
    max-width:none;
  }
  .menu-section .title-trail{
    display:none;
  }
  .dish-track{
    display:grid;
    grid-auto-flow:column;
    grid-template-columns:none;
    grid-auto-columns:calc((100% - 104px) / 5);
    gap:26px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    padding:4px 2px 14px;
  }
  .dish-card{
    scroll-snap-align:start;
    min-width:0;
    background:#fff;
    border:0;
    border-radius:9px;
    box-shadow:0 20px 45px rgba(0,0,0,.24);
  }
  .dish-card img,
  .dish-card.feature img{
    width:100%;
    height:286px;
    padding:0;
    background:#075935;
    object-fit:cover;
    object-position:center;
  }
  .dish-card>div{
    min-height:172px;
    padding:26px 28px 24px;
    color:#202020;
    background:#fff;
  }
  .dish-card h3{
    min-height:2.3em;
    font-family:"Be Vietnam Pro",system-ui,sans-serif;
    font-size:1.42rem;
    font-weight:800;
    line-height:1.18;
    letter-spacing:0;
    text-transform:none;
    color:#202020;
  }
  .dish-card p{
    color:#1f4028;
    font-size:1.3rem;
    font-weight:700;
  }
  .dish-card button{
    width:auto;
    height:36px;
    right:24px;
    bottom:24px;
    padding:0 16px;
    border:1px solid rgba(0,0,0,.16);
    border-radius:999px;
    background:#fff;
    color:#202020;
    font-family:"Be Vietnam Pro",system-ui,sans-serif;
    font-size:1rem;
    font-weight:800;
  }

  .space-grid{
    grid-template-columns:minmax(260px,.34fr) minmax(0,1fr);
    gap:48px;
    align-items:center;
  }
  .space-copy{
    text-align:center;
  }
  .space-copy p{
    max-width:330px;
    margin:0 auto 28px;
    font-size:1.05rem;
    line-height:1.7;
  }
  .space-gallery{
    height:520px;
  }

  .why-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:0;
  }
  .why-item{
    min-height:230px;
    padding:34px 26px;
  }

  .promo-stack{
    display:grid;
    gap:34px;
  }
  .promo-cards-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:28px;
    width:min(860px,100%);
    margin:0 auto;
  }
  .promo-card{
    height:270px;
  }
  .checkin-heading{
    margin-top:28px !important;
  }
  .checkin-grid{
    grid-template-columns:repeat(3,116px);
    grid-template-rows:repeat(2,116px);
    width:376px;
    height:244px;
    margin:0 auto;
  }
  .checkin-grid img{
    width:116px;
    height:116px;
    aspect-ratio:1/1;
    object-fit:cover;
  }

  .review-content{
    display:grid;
    grid-template-columns:190px 46px minmax(0,1fr) 46px;
    gap:26px;
    align-items:center;
  }
  .review-cards{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .booking-grid{
    display:block !important;
    max-width:1060px;
    margin:0 auto;
  }
  .booking-section .section-heading{
    padding-top:62px;
    margin-bottom:36px !important;
  }
  .large-ticket{
    width:100%;
  }
}

@media (max-width:900px){
  .section-heading,
  .menu-section .section-head{
    margin-bottom:30px !important;
    padding-inline:10px;
  }
  .section-heading h2,
  .menu-section .section-head h2,
  .crew-copy h2{
    font-size:clamp(2.9rem,12vw,4.35rem);
    line-height:1.16;
  }
  .menu-section,
  .space-section,
  .why-section,
  .promo-checkin,
  .review-section,
  .crew-section,
  .booking-section{
    padding-top:64px;
    padding-bottom:70px;
  }
  .dish-track{
    grid-auto-columns:82%;
  }
  .dish-card img,
  .dish-card.feature img{
    height:230px;
    padding:0;
    object-fit:cover;
  }
  .space-grid,
  .why-grid,
  .review-content,
  .promo-cards-row{
    grid-template-columns:1fr;
  }
  .space-copy{
    text-align:center;
  }
  .review-content .rev-arrow{
    display:none;
  }
  .checkin-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Client correction pass: one-line section titles, compact cards, restored promo row, stable booking. */
@media (min-width:901px){
  .section-heading,
  .menu-section .section-head{
    max-width:1120px;
    margin-bottom:34px !important;
  }
  .section-heading h2,
  .menu-section .section-head h2,
  .crew-copy h2{
    width:100%;
    max-width:1120px;
    font-size:clamp(3rem,4.3vw,4.8rem);
    line-height:1.08;
    white-space:nowrap;
  }
  .menu-section .section-head h2{
    font-size:clamp(3.25rem,4.9vw,5.3rem);
  }
  .space-section,
  .why-section,
  .promo-checkin,
  .news-section,
  .review-section,
  .crew-section,
  .booking-section{
    padding-top:74px;
    padding-bottom:82px;
  }

  .dish-track{
    grid-auto-columns:calc((100% - 104px) / 5);
    gap:26px;
  }
  .dish-card img,
  .dish-card.feature img{
    height:245px;
  }
  .dish-card>div{
    min-height:132px;
    padding:20px 22px 20px;
  }
  .dish-card h3{
    min-height:2.15em;
    font-size:1.05rem;
    line-height:1.2;
    margin-bottom:10px;
  }
  .dish-card p{
    font-size:1rem;
  }
  .dish-card button{
    height:30px;
    right:18px;
    bottom:20px;
    padding:0 13px;
    font-size:.82rem;
  }

  .promo-checkin .promo-row{
    display:grid;
    grid-template-columns:170px minmax(0,1fr) minmax(0,1fr) 170px 330px;
    gap:22px;
    align-items:center;
  }
  .promo-head{
    display:flex;
    min-height:230px;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    text-align:left;
  }
  .promo-head .section-no{
    margin:0 0 16px !important;
  }
  .promo-head h2{
    margin:0 0 24px;
    color:var(--gold);
    font-size:clamp(1.72rem,2.05vw,2.35rem);
    line-height:1.04;
    white-space:nowrap;
  }
  .promo-card{
    height:230px;
  }
  .checkin-heading{
    margin:0 !important;
  }
  .checkin-grid{
    width:330px;
    height:218px;
    grid-template-columns:repeat(3,102px);
    grid-template-rows:repeat(2,102px);
    gap:10px;
  }
  .checkin-grid img{
    width:102px;
    height:102px;
  }

  .booking-section .section-heading{
    padding-top:0;
    margin-bottom:26px !important;
  }
  .booking-section .section-heading h2{
    color:var(--gold);
    font-size:clamp(3rem,4vw,4.5rem);
  }
  .booking-section .section-heading p{
    margin-top:12px;
  }
  .booking-grid{
    max-width:1120px;
  }
  .large-ticket .ticket-head{
    min-height:74px;
  }
  .booking-fields{
    grid-template-columns:repeat(3,1fr) 92px;
  }
}

.news-section{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 12%,rgba(226,181,63,.14),transparent 26%),
    linear-gradient(180deg,#12331f,#0e2919);
}
.offer-marquee{
  position:relative;
  display:flex;
  width:100%;
  overflow:hidden;
  background:#f0a32a;
  color:#12331f;
  border-top:1px solid rgba(0,0,0,.14);
  border-bottom:1px solid rgba(0,0,0,.14);
}
.offer-marquee div{
  display:flex;
  min-width:max-content;
  align-items:center;
  gap:32px;
  padding:18px 16px;
  font-family:"Saira Extra Condensed","Saira Condensed",sans-serif;
  font-size:clamp(2.5rem,5.2vw,5.8rem);
  line-height:.9;
  font-weight:900;
  text-transform:uppercase;
  animation:marqueeMove 22s linear infinite;
}
.offer-marquee b{
  color:#fffaf1;
}
@keyframes marqueeMove{
  to{transform:translateX(-100%)}
}
.news-track{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:28px;
  margin-top:18px;
}
.news-card{
  overflow:hidden;
  border-radius:10px;
  background:#fff;
  color:#202020;
  box-shadow:0 22px 50px rgba(0,0,0,.28);
}
.news-card img{
  width:100%;
  height:235px;
  object-fit:cover;
}
.news-card div{
  min-height:230px;
  padding:24px 28px 28px;
}
.news-card h3{
  margin-bottom:16px;
  color:#202020;
  font-family:"Be Vietnam Pro",system-ui,sans-serif;
  font-size:1.35rem;
  line-height:1.32;
  text-transform:none;
  letter-spacing:0;
}
.news-card p{
  color:#656158;
  font-size:.98rem;
  line-height:1.6;
}
.news-card a{
  display:inline-flex;
  align-items:center;
  margin-top:28px;
  color:#202020;
  font-weight:800;
  text-transform:uppercase;
}
.news-cta{
  display:flex;
  justify-content:center;
  margin-top:42px;
}

@media (max-width:900px){
  .section-heading h2,
  .menu-section .section-head h2,
  .crew-copy h2{
    white-space:normal;
  }
  .promo-checkin .promo-row,
  .news-track{
    display:grid;
    grid-template-columns:1fr;
  }
  .promo-head{
    align-items:center;
    text-align:center;
  }
  .checkin-grid{
    width:100%;
  }
}

/* ============ v2: marquee straddle + carousels ============ */
/* Marquee sits centered on the divide between section 06 and 07 */
.news-section{overflow:visible}
.offer-marquee{position:relative;z-index:6;margin-top:-48px;box-shadow:0 16px 40px rgba(0,0,0,.32)}
.news-section > .container{padding-top:58px;padding-bottom:88px}

/* Shared carousel controls */
.nc-arrow{flex:0 0 auto;width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;
  background:var(--gold);color:#12331f;font-size:1.8rem;line-height:1;display:grid;place-items:center;
  box-shadow:0 10px 24px rgba(0,0,0,.32);transition:.2s;font-family:system-ui}
.nc-arrow:hover{background:#fffaf1;transform:translateY(-2px)}
.nc-arrow:disabled{opacity:.3;cursor:default;transform:none}
.nc-viewport{flex:1 1 auto;min-width:0;overflow:hidden}
.nc-dots{display:flex;justify-content:center;gap:9px;margin-top:28px}
.nc-dots button{width:10px;height:10px;padding:0;border:none;border-radius:50%;cursor:pointer;
  background:rgba(255,250,241,.32);transition:.25s}
.nc-dots button.active{background:var(--gold);width:28px;border-radius:6px}

/* News carousel (section 07) — wider + slider */
.news-wide{max-width:1320px}
.news-carousel{position:relative;display:flex;align-items:center;gap:16px;margin-top:8px}
.news-carousel .news-track{display:flex;gap:26px;transition:transform .55s cubic-bezier(.4,0,.2,1);will-change:transform}
.news-carousel .news-card{flex:0 0 calc((100% - 52px)/3);min-width:0}
.news-card div{display:flex;flex-direction:column}
.news-card a{margin-top:auto}

/* Bottom banner slider (like Tự Do) */
.banner-slider-section{padding:64px 0 88px}
.banner-carousel{position:relative;display:flex;align-items:center;gap:16px}
.banner-carousel .nc-viewport{border-radius:18px;box-shadow:0 26px 60px rgba(0,0,0,.34)}
.banner-track{display:flex;transition:transform .6s cubic-bezier(.4,0,.2,1);will-change:transform}
.banner-slide{flex:0 0 100%;display:flex;align-items:center;min-height:clamp(240px,29vw,360px);
  background-size:cover;background-position:center;text-decoration:none;color:#fff}
.bs-inner{padding:0 clamp(28px,6vw,84px);max-width:680px}
.bs-kicker{display:block;color:var(--gold);font-family:"Saira Condensed","Be Vietnam Pro",sans-serif;
  font-weight:800;text-transform:uppercase;letter-spacing:.09em;font-size:clamp(.95rem,1.6vw,1.2rem);margin-bottom:12px}
.bs-title{display:block;font-family:"Saira Extra Condensed","Saira Condensed",sans-serif;font-weight:900;
  text-transform:uppercase;font-size:clamp(2.1rem,4.6vw,4.1rem);line-height:1.02;color:#fffaf1;margin-bottom:18px}
.bs-cta{display:inline-flex;color:var(--gold);font-weight:800;font-style:normal;text-transform:uppercase;letter-spacing:.05em}
.banner-slide:hover .bs-cta{text-decoration:underline}

@media (max-width:900px){
  .news-carousel .news-card{flex:0 0 calc((100% - 18px)/1.35)}
  .offer-marquee{margin-top:-32px}
  .news-section > .container{padding-top:40px;padding-bottom:64px}
}
@media (max-width:600px){
  .news-carousel .news-card{flex:0 0 88%}
  .nc-arrow{width:40px;height:40px;font-size:1.5rem}
  .banner-slider-section{padding:44px 0 60px}
}

/* ============ v3: section-03 title left, big buttons, bigger news ============ */
/* (1) Section 03 heading moved into left column, left-aligned */
.space-copy{text-align:left}
.space-copy .section-no{margin:0 0 20px !important}
.space-title{
  font-family:"Saira Extra Condensed","Saira Condensed","Be Vietnam Pro",sans-serif;
  font-weight:900;text-transform:uppercase;color:#fffaf1;text-align:left;
  font-size:clamp(2.4rem,3.4vw,3.4rem);line-height:1.0;letter-spacing:.01em;margin:0 0 22px;
}

/* (2) All section CTA buttons big & uniform (like "Xem thực đơn") */
.space-copy .btn,
.menu-cta .btn,
.promo-head .btn,
.news-cta .btn,
.crew-copy .btn,
.section-actions > .btn{
  min-height:52px !important;
  padding:0 30px !important;
  font-size:1.05rem !important;
  border-radius:9px !important;
  border-width:2px !important;
  letter-spacing:.03em !important;
}

/* (3) News cards bigger (quannhautudo-style) */
.news-wide{max-width:1360px}
.news-carousel .news-card img{height:290px}
.news-carousel .news-card > div{padding:32px 34px 34px}
.news-carousel .news-card h3{font-size:1.55rem;line-height:1.28;margin-bottom:14px}
.news-carousel .news-card p{font-size:1.05rem;line-height:1.62}
.news-carousel .news-card a{font-size:1.08rem;margin-top:22px}

@media (max-width:900px){
  .space-copy{text-align:center}
  .space-copy .section-no{margin:0 auto 18px !important}
  .space-title{text-align:center}
  .news-carousel .news-card img{height:230px}
}

/* ============ v3.1: fix section-03 title size + column ============ */
.space-copy .space-title{
  font-size:clamp(2.4rem,3vw,3.35rem) !important;
  line-height:1.02 !important;
  white-space:normal !important;
}
@media (min-width:901px){
  .space-section .space-grid{grid-template-columns:350px 1fr !important;align-items:center}
}

/* ============ v4: news wider/balanced + banner 2-up like Tự Do ============ */
/* News cards: wider & shorter so they look balanced, not tall/narrow */
.news-wide{max-width:min(1560px,94vw)}
.news-carousel .news-card img{height:250px}
.news-carousel .news-card > div{min-height:0;padding:24px 26px 26px}
.news-carousel .news-card h3{font-size:1.42rem;line-height:1.26;margin-bottom:12px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.52em}
.news-carousel .news-card p{font-size:1rem;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-carousel .news-card a{margin-top:18px}

/* Bottom banner slider: multiple landscape banner cards per view (Tự Do style) */
.banner-carousel .nc-viewport{border-radius:0;box-shadow:none;overflow:hidden}
.banner-track{display:flex;gap:24px;transition:transform .6s cubic-bezier(.4,0,.2,1);will-change:transform}
.banner-slide{flex:0 0 calc((100% - 24px)/2);min-height:clamp(240px,26vw,320px);
  border-radius:16px;overflow:hidden;background-size:cover;background-position:center;
  display:flex;align-items:flex-end;text-decoration:none;color:#fff;box-shadow:0 20px 46px rgba(0,0,0,.32)}
.banner-slide .bs-inner{padding:clamp(24px,3vw,38px);max-width:none}
.banner-slide .bs-kicker{font-size:clamp(.9rem,1.5vw,1.15rem);margin-bottom:8px}
.banner-slide .bs-title{font-size:clamp(1.7rem,2.8vw,2.7rem);line-height:1.05;margin-bottom:12px}
.banner-slide:hover{transform:translateY(-3px);transition:transform .25s}

@media (max-width:900px){
  .news-carousel .news-card img{height:210px}
}
@media (max-width:760px){
  .banner-slide{flex:0 0 88%}
}

/* ============ v5: news compact (quannhautudo-like) + banner polish ============ */
/* Compact news card body so cards are balanced, not tall */
.news-carousel .news-card img{height:225px}
.news-carousel .news-card > div{min-height:0;padding:22px 24px 24px;display:flex;flex-direction:column}
.news-carousel .news-card h3{font-size:1.4rem;line-height:1.26;margin:0 0 10px;min-height:2.52em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-carousel .news-card p{font-size:1rem;line-height:1.5;margin:0 0 16px;min-height:3em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-carousel .news-card a{margin-top:0}          /* not pushed to bottom -> no big gap */
/* subtle news arrows (like quannhautudo) */
.news-carousel .nc-arrow{width:44px;height:44px;background:transparent;border:2px solid rgba(255,250,241,.35);
  color:#fffaf1;box-shadow:none}
.news-carousel .nc-arrow:hover{background:var(--gold);border-color:var(--gold);color:var(--green)}

/* Banner: more "designed ad" look (frame + CTA pill) */
.banner-slide{border:1px solid rgba(226,181,63,.4)}
.banner-slide .bs-cta{background:var(--gold);color:#12331f;padding:11px 22px;border-radius:9px;
  font-size:.95rem;box-shadow:0 8px 20px rgba(0,0,0,.28)}
.banner-slide:hover .bs-cta{background:#fffaf1;text-decoration:none}

/* ============ v6: portrait poster banners ============ */
.banner-posters .banner-track{gap:22px}
.banner-posters .banner-slide{
  flex:0 0 calc((100% - 44px)/3);
  aspect-ratio:1024/1536; min-height:0;
  display:block; background:none; align-items:stretch;
  border-radius:16px; overflow:hidden;
  border:1px solid rgba(226,181,63,.4);
  box-shadow:0 20px 46px rgba(0,0,0,.34);
}
.banner-posters .banner-slide img{width:100%;height:100%;object-fit:cover;display:block}
.banner-posters .banner-slide:hover{transform:translateY(-4px);transition:transform .25s}
@media (max-width:900px){
  .banner-posters .banner-slide{flex:0 0 calc((100% - 22px)/2)}
}
@media (max-width:600px){
  .banner-posters .banner-slide{flex:0 0 78%}
}

/* ============ v7: news >=400px + continuous banner marquee ============ */
/* News card min width 400px */
.news-carousel .news-card{flex:0 0 clamp(400px, calc((100% - 52px)/3), 520px)}

/* Banner: continuous auto-scroll marquee (Tự Do style), not page flip */
.banner-slider-section{padding:56px 0 66px;overflow:hidden}
.banner-marquee{overflow:hidden;width:100%;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}
.banner-mtrack{display:flex;width:max-content;animation:bannerScroll 40s linear infinite}
.banner-marquee:hover .banner-mtrack{animation-play-state:paused}
@keyframes bannerScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.banner-marquee .banner-slide{flex:0 0 auto;width:clamp(400px,28vw,500px);aspect-ratio:1024/1536;
  min-height:0;margin-right:26px;display:block;background:none;align-items:stretch;
  border-radius:16px;overflow:hidden;border:1px solid rgba(226,181,63,.4);box-shadow:0 20px 46px rgba(0,0,0,.34)}
.banner-marquee .banner-slide img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:600px){
  .banner-marquee .banner-slide{width:80vw}
  .news-carousel .news-card{flex:0 0 86%}
}

/* v7.1: let news container be wide enough for 3 cards >=400px */
.news-wide{width:min(1560px, calc(100% - 44px))}

/* ============ v8: crew badges, promo cream, seamless marquee ============ */
/* (1) Crew: shrink heading so it never covers the side badges */
.crew-copy{max-width:900px !important}
.crew-copy h2{font-size:clamp(2rem,3.1vw,3.4rem) !important;line-height:1.06 !important}
.crew-copy p{font-size:clamp(1.15rem,1.7vw,1.6rem) !important;margin-bottom:14px !important}
.crew-copy span{font-size:1rem !important;margin-bottom:26px !important}
.crew-badge-left{left:-40px !important;width:104px !important}
.crew-badge-right{right:-30px !important;width:100px !important}
@media (max-width:960px){
  .crew-badge{display:none !important}
  .crew-copy h2{font-size:clamp(1.9rem,6vw,2.6rem) !important}
}

/* (3) Section 05/06 now cream -> readable colors on light bg */
.promo-checkin.section-cream .promo-head h2{color:var(--green) !important}
.promo-checkin.section-cream .promo-head .btn{border-color:var(--green) !important;color:var(--green) !important;background:transparent !important}
.promo-checkin.section-cream .promo-head .btn:hover{background:var(--green) !important;color:var(--cream) !important}

/* (2)(4) Marquee flush between sections -> no green dividing strip */
.promo-checkin{padding-bottom:22px !important}
.offer-marquee{margin-top:0 !important;box-shadow:0 12px 30px rgba(0,0,0,.22)}
.news-section > .container{padding-top:52px !important}

/* ============================================================= */
/* ============ v9: seamless canvas + full redesign ============ */
/* ============================================================= */

/* (REQ 4) One continuous green — kill the shade-jump seams between sections */
body{background:var(--green)}
.section-dark,
.menu-section,
.space-section,
.promo-checkin,
.news-section,
.review-section,
.crew-section,
.booking-section{background:var(--green) !important;color:var(--white)}
/* subtle gold glows that fade to pure green at the edges (so neighbours meet seamlessly) */
.menu-section{background:radial-gradient(120% 92% at 50% -12%,rgba(226,181,63,.09),transparent 55%),var(--green) !important}
.crew-section{background:radial-gradient(80% 72% at 50% 3%,rgba(226,181,63,.13),transparent 60%),var(--green) !important}
.news-section{background:radial-gradient(92% 60% at 50% 0%,rgba(226,181,63,.07),transparent 55%),var(--green) !important}
.review-section{background:radial-gradient(72% 60% at 50% 0%,rgba(226,181,63,.08),transparent 58%),var(--green) !important}
.space-section{background:var(--green) !important}
/* soften header/footer hairlines so they don't read as hard divider lines */
.site-header{border-bottom-color:rgba(226,181,63,.16)}
.site-footer{border-top-color:rgba(226,181,63,.16)}
main > section{scroll-margin-top:96px}

/* (REQ 2) Hero tagline strip under the hero */
.hero-strip{padding:24px 0 30px;text-align:center}
.hero-strip .container{display:flex;align-items:center;justify-content:center;gap:22px}
.hero-strip-text{
  font-family:"Saira Extra Condensed","Saira Condensed",sans-serif;font-weight:800;
  text-transform:uppercase;letter-spacing:.02em;line-height:1;
  font-size:clamp(1.85rem,4.6vw,3.5rem);color:var(--gold);
  text-shadow:0 2px 20px rgba(226,181,63,.25)}
.hero-strip .hs-wing{color:var(--gold);font-size:clamp(1.2rem,2.4vw,1.9rem);opacity:.75}
.hero-strip .hs-wing.flip{transform:scaleX(-1)}
@media(max-width:600px){.hero-strip .hs-wing{display:none}.hero-strip{padding:18px 0 22px}}

/* (REQ 3) Dish row = continuous running marquee, pauses on hover to order */
.dish-marquee{overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.dish-mtrack{display:flex;width:max-content;animation:dishScroll 46s linear infinite}
.dish-marquee:hover .dish-mtrack{animation-play-state:paused}
@keyframes dishScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.dish-marquee .dish-card{flex:0 0 auto;width:clamp(240px,23vw,300px);margin-right:24px}
@media(max-width:900px){.dish-marquee .dish-card{width:74vw;margin-right:16px}}

/* (REQ 5) Promo section — dark, stacked, two square posters + check-in grid */
.promo-checkin .promo-posters{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;
  width:min(780px,100%);margin:0 auto}
.promo-poster{display:block;border-radius:18px;overflow:hidden;background:#0f2417;
  border:1px solid rgba(226,181,63,.5);box-shadow:0 24px 55px rgba(0,0,0,.42);
  transition:transform .25s,box-shadow .25s}
.promo-poster img{width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.promo-poster:hover{transform:translateY(-5px);box-shadow:0 30px 64px rgba(0,0,0,.52)}
.promo-checkin .checkin-title{margin-top:60px !important}
.promo-checkin .checkin-grid{
  width:min(760px,100%) !important;height:auto !important;
  grid-template-columns:repeat(3,1fr) !important;grid-template-rows:auto !important;
  gap:14px !important;margin:0 auto}
.promo-checkin .checkin-grid img{
  width:100% !important;height:100% !important;aspect-ratio:4/3 !important;
  border-radius:12px;border:1px solid rgba(226,181,63,.45)}
@media(max-width:900px){
  .promo-checkin .promo-posters{gap:16px}
  .promo-checkin .checkin-title{margin-top:44px !important}
}
@media(max-width:600px){
  .promo-checkin .promo-posters{grid-template-columns:1fr;width:min(420px,100%)}
  .promo-checkin .checkin-grid{grid-template-columns:repeat(2,1fr) !important}
}

/* (REQ 6) Review — luxury dark, gold-framed cards, big quote marks */
.review-lux .rev-score-badge{
  display:flex;align-items:center;justify-content:center;gap:18px;
  width:max-content;max-width:100%;margin:0 auto 46px;padding:16px 32px;border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02));
  border:1px solid rgba(226,181,63,.42);box-shadow:0 16px 42px rgba(0,0,0,.36)}
.review-lux .rev-score-badge .google{font-weight:800;font-size:1.35rem;letter-spacing:.01em}
.review-lux .rev-score-badge strong{font-family:var(--font-condensed);font-weight:400;font-size:3.1rem;line-height:1;color:var(--gold)}
.review-lux .rsb-right{text-align:left}
.review-lux .rsb-right .stars{color:var(--gold);font-size:1.2rem;letter-spacing:.08em}
.review-lux .rsb-right small{display:block;color:rgba(245,239,228,.72);font-size:.84rem;margin-top:3px}
.review-lux .review-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.review-lux .review-card{
  position:relative;overflow:visible;border-radius:16px;padding:46px 28px 24px;
  background:linear-gradient(180deg,#fffdf7,#fbf3e2);
  border:1px solid rgba(226,181,63,.55);box-shadow:0 24px 52px rgba(0,0,0,.4)}
.review-lux .quote-mark{position:absolute;top:6px;left:24px;font-family:Georgia,"Times New Roman",serif;
  font-size:4.8rem;line-height:1;color:var(--gold);opacity:.45}
.review-lux .review-card p{color:#3a3524;font-size:1rem;line-height:1.62;min-height:0 !important;margin:0 0 20px}
.review-lux .review-user{display:flex;align-items:center;gap:12px;margin:0;padding-top:16px;
  border-top:1px solid rgba(23,50,31,.14)}
.review-lux .review-user .av{width:48px;height:48px;border-radius:50%;object-fit:cover;
  border:2px solid var(--gold);box-shadow:0 4px 12px rgba(0,0,0,.18)}
.review-lux .review-user b{display:block;color:#17321f;font-size:1rem}
.review-lux .review-user .stars{color:var(--gold);font-size:.9rem;letter-spacing:.06em}
@media(max-width:900px){
  .review-lux .review-cards{grid-template-columns:1fr;max-width:460px;margin:0 auto}
  .review-lux .rev-score-badge{flex-wrap:wrap;text-align:center}
}

/* (REQ 7) Crew — BIG message, merged with poster slider, no overlapping badges */
.crew-section{padding:86px 0 70px !important;overflow:hidden}
.crew-panel{display:block !important;min-height:0 !important;place-items:unset;text-align:center}
.crew-copy{max-width:1000px !important;margin:0 auto 52px !important}
.crew-wings{width:76px;height:auto;margin:0 auto 16px;opacity:.95;filter:drop-shadow(0 8px 18px rgba(0,0,0,.35))}
.crew-kicker{color:var(--gold) !important;font-family:var(--font-condensed);font-weight:400;
  text-transform:uppercase;letter-spacing:.16em;font-size:clamp(1.1rem,1.8vw,1.5rem) !important;margin:0 0 14px !important}
.crew-copy h2{
  color:#fff7e6 !important;font-family:"Saira Extra Condensed","Saira Condensed",sans-serif !important;
  font-weight:800 !important;text-transform:uppercase;
  font-size:clamp(2.8rem,6.6vw,5.7rem) !important;line-height:.98 !important;
  letter-spacing:.01em;margin:0 auto 22px !important;white-space:normal !important;max-width:none !important}
.crew-copy span{color:rgba(245,239,228,.82) !important;font-size:clamp(1rem,1.5vw,1.22rem) !important;
  max-width:760px;margin:0 auto 28px !important}
.crew-copy .btn{min-height:56px !important;padding:0 42px !important;font-size:1.14rem !important}
.crew-marquee{margin-top:6px}
.crew-marquee .banner-slide{width:clamp(280px,24vw,360px) !important;margin-right:22px}
@media(max-width:900px){
  .crew-section{padding:60px 0 52px !important}
  .crew-copy h2{font-size:clamp(2.4rem,9vw,3.5rem) !important}
  .crew-marquee .banner-slide{width:70vw !important}
}

/* (REQ 8) Booking — luxury boarding gate */
.booking-lux .runway-bg{opacity:.5}
.booking-lux .booking-copy h2{color:var(--gold) !important;text-shadow:0 2px 22px rgba(0,0,0,.5)}
.booking-lux .large-ticket{
  border-radius:16px;border:1.5px solid rgba(226,181,63,.6);
  background:linear-gradient(180deg,#fffdf7,#fbf3e2);
  box-shadow:0 30px 72px rgba(0,0,0,.5),0 0 0 6px rgba(226,181,63,.08)}
.booking-lux .large-ticket .ticket-head{
  background:linear-gradient(180deg,#245038,#16311e);
  border-bottom:2px dashed rgba(226,181,63,.5)}
.booking-lux .large-ticket .ticket-head span{color:var(--gold)}
.booking-lux .booking-submit{
  background:linear-gradient(180deg,var(--gold-2),var(--gold)) !important;
  box-shadow:0 12px 28px rgba(226,181,63,.32)}
@media(min-width:901px){
  .booking-lux .booking-grid{
    padding:34px;border-radius:22px;
    border:1px solid rgba(226,181,63,.28);
    background:linear-gradient(180deg,rgba(226,181,63,.06),rgba(15,36,23,.22));
    box-shadow:inset 0 1px 0 rgba(226,181,63,.15),0 30px 70px rgba(0,0,0,.35)}
}

/* ============================================================= */
/* ============ v10: Tu Do font, aviation flair, motion ======== */
/* ============================================================= */

/* (REQ 1) Hero tagline — BIG + heavy Tu Do-style poster font (Anton) */
.hero-strip{padding:34px 0 42px}
.hero-strip .container{gap:26px}
.hero-strip-text{
  font-family:"Anton","Saira Extra Condensed",sans-serif !important;
  font-weight:400 !important;text-transform:uppercase;
  font-size:clamp(2.7rem,7.4vw,6rem) !important;line-height:1 !important;
  letter-spacing:.02em !important;color:var(--gold) !important;
  text-shadow:0 4px 26px rgba(226,181,63,.28)}
.hero-strip .hs-wing{font-size:clamp(1.7rem,3.2vw,2.8rem)}
@media(max-width:600px){.hero-strip-text{font-size:clamp(2.1rem,10vw,3.2rem) !important}}

/* (REQ 2) Promo — old horizontal layout (heading beside the two posters), no check-in */
.promo-old{padding:76px 0 84px}
.promo-row2{display:grid;grid-template-columns:340px minmax(0,1fr) minmax(0,1fr);gap:30px;align-items:center}
.promo-copy{text-align:left}
.promo-copy .section-no{margin:0 0 16px !important}
.promo-copy h2{
  font-family:"Saira Extra Condensed","Saira Condensed",sans-serif;font-weight:800;
  text-transform:uppercase;color:#fff7e6;font-size:clamp(2.4rem,3.5vw,3.7rem);
  line-height:1.04;letter-spacing:.01em;margin:0 0 16px}
.promo-copy p{color:rgba(245,239,228,.82);font-size:1.02rem;line-height:1.62;margin:0 0 24px;max-width:300px}
.promo-copy .btn{min-height:52px !important;padding:0 30px !important;font-size:1.05rem !important}
.promo-old .promo-poster{aspect-ratio:1/1;border-radius:18px;overflow:hidden;background:#0f2417;
  border:1px solid rgba(226,181,63,.5);box-shadow:0 24px 55px rgba(0,0,0,.42);transition:transform .3s,box-shadow .3s}
.promo-old .promo-poster img{width:100%;height:100%;object-fit:cover}
.promo-old .promo-poster:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 32px 66px rgba(0,0,0,.55)}
@media(max-width:900px){
  .promo-row2{grid-template-columns:1fr 1fr;gap:20px}
  .promo-copy{grid-column:1/3;text-align:center;margin-bottom:8px}
  .promo-copy .section-no{margin:0 auto 14px !important}
  .promo-copy p{margin:0 auto 18px}
}
@media(max-width:560px){.promo-row2{grid-template-columns:1fr}.promo-copy{grid-column:auto}}

/* (REQ 4) Crew — even bigger + roomier line spacing */
.crew-copy h2{
  font-size:clamp(3.3rem,8.2vw,7rem) !important;
  line-height:1.22 !important;letter-spacing:.006em;margin:0 auto 30px !important}
.crew-copy{margin-bottom:56px !important}
.crew-kicker{margin-bottom:18px !important}

/* (REQ 5) Footer — larger, balanced type */
@media(min-width:901px){
  .site-footer{padding:44px 0 0 !important}
  .footer-grid{gap:36px !important}
  .footer-brand img{width:132px !important;margin-bottom:12px !important}
  .footer-brand p{max-width:230px !important;font-size:.96rem !important;line-height:1.6 !important;margin-bottom:14px !important}
  .site-footer h3{font-size:1.3rem !important;margin-bottom:16px !important}
  .site-footer .col a,.site-footer .col p{font-size:.98rem !important;line-height:1.55 !important;margin-bottom:10px !important}
  .socials a{width:36px !important;height:36px !important}
  .socials svg{width:16px !important;height:16px !important}
  .map-card svg{height:112px !important}
  .copyright{font-size:.84rem !important;margin-top:26px !important;padding:16px 0 !important}
}

/* (REQ 6) Aviation flavour — airport ticker */
.offer-marquee b{color:#0e2919 !important}

/* (REQ 7) Booking "cất cánh" — runway, taxi→takeoff plane, drifting clouds, boarding light */
.booking-lux{position:relative;overflow:hidden}
.booking-lux .sky-layer{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.booking-lux .cloud{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 70%);filter:blur(3px)}
.booking-lux .cloud.c1{width:230px;height:80px;top:14%;left:-25%}
.booking-lux .cloud.c2{width:160px;height:60px;top:40%;left:-30%}
.booking-lux .cloud.c3{width:300px;height:96px;top:66%;left:-28%}
.booking-lux .takeoff-lane{position:absolute;left:0;right:0;bottom:34px;height:3px;z-index:0;pointer-events:none;
  background:repeating-linear-gradient(90deg,rgba(226,181,63,.55) 0 28px,transparent 28px 56px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.booking-lux .lane-plane{position:absolute;left:-6%;bottom:30px;z-index:1;font-size:2rem;color:var(--gold);
  text-shadow:0 0 18px rgba(226,181,63,.6);opacity:0}
.boarding-sign{display:inline-flex;align-items:center;gap:9px;margin:0 auto 16px;padding:7px 18px;border-radius:999px;
  border:1px solid rgba(226,181,63,.5);background:rgba(226,181,63,.08);color:var(--gold);
  font-family:var(--font-condensed);font-size:.92rem;letter-spacing:.2em;text-transform:uppercase}
.boarding-sign i{width:10px;height:10px;border-radius:50%;background:#37d67a;box-shadow:0 0 12px #37d67a}
.booking-lux .booking-copy,.booking-lux .booking-grid{position:relative;z-index:1}

/* ---------- animation engine (REQ 8) ---------- */
html.janim .will-reveal{opacity:0;transform:translateY(32px)}
html.janim .will-reveal.in{opacity:1;transform:none;
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}

@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes floatyFlip{0%,100%{transform:translateY(0) scaleX(-1)}50%{transform:translateY(-7px) scaleX(-1)}}
html.janim .hero-strip .hs-wing{animation:floaty 3.4s ease-in-out infinite}
html.janim .hero-strip .hs-wing.flip{animation:floatyFlip 3.4s ease-in-out infinite .4s}
html.janim .crew-wings{animation:floaty 4s ease-in-out infinite}

@keyframes dashFly{to{stroke-dashoffset:-240}}
html.janim .flight-path path{animation:dashFly 7s linear infinite}

@keyframes shine{0%,58%{left:-70%}82%,100%{left:135%}}
.btn-gold{position:relative;overflow:hidden;isolation:isolate}
.btn-gold::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;z-index:-1;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-18deg);pointer-events:none}
html.janim .btn-gold::after{animation:shine 5s ease-in-out infinite}

@keyframes blink{50%{opacity:.22}}
html.janim .boarding-sign i{animation:blink 1.1s steps(1) infinite}

@keyframes laneDash{to{background-position:-56px 0}}
html.janim .booking-lux .takeoff-lane{animation:laneDash 1s linear infinite}

@keyframes drift{to{transform:translateX(165vw)}}
html.janim .booking-lux .cloud.c1{animation:drift 28s linear infinite}
html.janim .booking-lux .cloud.c2{animation:drift 36s linear infinite 6s}
html.janim .booking-lux .cloud.c3{animation:drift 46s linear infinite 3s}

@keyframes takeoff{
  0%{left:-6%;bottom:30px;transform:rotate(0);opacity:0}
  6%{opacity:1}
  50%{left:56%;bottom:30px;transform:rotate(0)}
  100%{left:118%;bottom:150px;transform:rotate(-18deg);opacity:0}}
html.janim .booking-lux .lane-plane{animation:takeoff 7.5s cubic-bezier(.55,.05,.75,.35) infinite}

/* gentle hover polish */
.news-card,.dish-card{transition:transform .28s ease,box-shadow .28s ease}
.news-carousel .news-card:hover,.dish-marquee .dish-card:hover{transform:translateY(-6px)}
.review-lux .review-card{transition:transform .28s ease,box-shadow .28s ease}
.review-lux .review-card:hover{transform:translateY(-5px);box-shadow:0 30px 62px rgba(0,0,0,.5)}

/* ============================================================= */
/* ============ v11: big tagline band + flight-path sections === */
/* ============================================================= */

/* (REQ 1) Hero tagline becomes a big, airy statement section (like the crew block) */
.hero-strip{padding:78px 0 86px !important}
.hero-strip .container{gap:40px}
.hero-strip-text{font-size:clamp(3rem,8.4vw,7rem) !important;line-height:1.18 !important;letter-spacing:.02em !important}
.hero-strip .hs-wing{font-size:clamp(2.1rem,3.8vw,3.5rem)}
@media(max-width:600px){
  .hero-strip{padding:52px 0 58px !important}
  .hero-strip-text{font-size:clamp(2.3rem,11vw,3.7rem) !important;line-height:1.16 !important}
}

/* (REQ 2) Airport flight-map texture on sections 02–06 — SAME green, so still seamless */
.menu-section{background:
  radial-gradient(rgba(255,250,241,.038) 1px,transparent 1.7px) 0 0/32px 32px,
  radial-gradient(120% 90% at 50% -12%,rgba(226,181,63,.10),transparent 55%),
  var(--green) !important}
.space-section{background:
  radial-gradient(rgba(255,250,241,.038) 1px,transparent 1.7px) 0 0/32px 32px,
  var(--green) !important}
.promo-old{background:
  radial-gradient(rgba(255,250,241,.038) 1px,transparent 1.7px) 0 0/32px 32px,
  var(--green) !important}
.news-section{background:
  radial-gradient(rgba(255,250,241,.038) 1px,transparent 1.7px) 0 0/32px 32px,
  radial-gradient(92% 60% at 50% 0%,rgba(226,181,63,.07),transparent 55%),
  var(--green) !important}
.review-section{background:
  radial-gradient(rgba(255,250,241,.038) 1px,transparent 1.7px) 0 0/32px 32px,
  radial-gradient(72% 60% at 50% 0%,rgba(226,181,63,.08),transparent 58%),
  var(--green) !important}

/* Flight-route divider ("đường bay") woven between sections 02–06 */
.sky-route{position:relative;height:58px;overflow:hidden;pointer-events:none}
.sky-route::before{content:"";position:absolute;left:7%;right:7%;top:50%;height:0;
  border-top:2px dashed rgba(226,181,63,.38)}
.sky-route .sr-dot{position:absolute;top:50%;width:9px;height:9px;border-radius:50%;background:var(--gold);
  transform:translateY(-50%);box-shadow:0 0 10px rgba(226,181,63,.6)}
.sky-route .sr-dot.a{left:7%}
.sky-route .sr-dot.b{right:7%}
.sky-route .sr-plane{position:absolute;top:50%;left:-5%;transform:translateY(-50%);
  font-size:1.6rem;color:var(--gold);text-shadow:0 0 16px rgba(226,181,63,.55)}
html.janim .sky-route .sr-plane{animation:srFly 7s linear infinite}
@keyframes srFly{from{left:-5%}to{left:105%}}

/* Section-number pennants read like boarding "gate" tags on sections 02–06 */
.menu-section .section-no,.space-section .section-no,.promo-old .section-no,
.news-section .section-no,.review-section .section-no{position:relative}

/* ============================================================= */
/* ============ v12: tagline spacing, tear divider, windows, tickets */
/* ============================================================= */

/* (REQ 1) Tagline — wider line spacing */
.hero-strip-text{line-height:1.38 !important}
.hero-strip{padding:82px 0 92px !important}

/* (REQ 2) Retire the running-plane dividers → static boarding-pass tear line */
.sky-route{display:none !important}
.tear-sep{position:relative;height:54px;display:flex;align-items:center;justify-content:center}
.tear-sep::before{content:"";position:absolute;left:9%;right:9%;top:50%;border-top:2px dashed rgba(226,181,63,.30)}
.tear-sep .ts-hole{position:absolute;top:50%;width:15px;height:15px;border-radius:50%;
  background:rgba(226,181,63,.55);transform:translateY(-50%);box-shadow:0 0 10px rgba(226,181,63,.4)}
.tear-sep .ts-hole.l{left:8%}
.tear-sep .ts-hole.r{right:8%}
.tear-sep .ts-seal{position:relative;z-index:1;width:42px;height:42px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:1.05rem;
  background:var(--green);border:2px solid rgba(226,181,63,.55);box-shadow:0 0 0 7px var(--green),0 8px 18px rgba(0,0,0,.32)}

/* (REQ 3) Section 03 — venue photos as AIRPLANE WINDOWS */
@media(min-width:901px){
  .space-section .space-grid{grid-template-columns:330px 1fr !important;gap:50px !important;align-items:center}
  .space-gallery{display:grid !important;grid-template-columns:repeat(3,1fr) !important;grid-template-rows:none !important;
    gap:28px !important;height:auto !important;overflow:visible !important}
  .space-gallery img{grid-row:auto !important;width:100% !important;height:auto !important;aspect-ratio:3/4 !important;
    object-fit:cover;border-radius:82px !important;border:9px solid #e2b53f !important;
    box-shadow:0 22px 46px rgba(0,0,0,.45),inset 0 0 0 4px rgba(31,64,40,.28) !important}
  .space-gallery img:nth-child(n+4){display:none !important}
}
@media(max-width:900px){
  .space-gallery{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .space-gallery img{border-radius:52px;border:6px solid #e2b53f;aspect-ratio:3/4;object-fit:cover;height:auto}
  .space-gallery img:nth-child(n+3){display:none}
}

/* (REQ 4) Section 04 — discount posters as BOARDING-PASS TICKETS */
.promo-ticket{display:block;position:relative;border-radius:16px;overflow:hidden;text-decoration:none;
  background:#fbf3e2;border:1px solid rgba(226,181,63,.5);box-shadow:0 24px 55px rgba(0,0,0,.42);
  transition:transform .3s,box-shadow .3s}
.promo-ticket:hover{transform:translateY(-6px);box-shadow:0 32px 66px rgba(0,0,0,.55)}
.promo-ticket .pt-stub{display:flex;align-items:center;justify-content:space-between;padding:11px 18px;
  background:linear-gradient(90deg,#1f4028,#12331f);color:var(--gold);
  font-family:"Saira Condensed",sans-serif;text-transform:uppercase;letter-spacing:.06em;font-size:.86rem}
.promo-ticket .pt-stub b{font-size:1.05rem;letter-spacing:.12em}
.promo-ticket .pt-perf{display:block;position:relative;height:0;border-top:2px dashed rgba(31,64,40,.3)}
.promo-ticket .pt-perf::before,.promo-ticket .pt-perf::after{content:"";position:absolute;top:-9px;width:18px;height:18px;border-radius:50%;background:var(--green)}
.promo-ticket .pt-perf::before{left:-9px}
.promo-ticket .pt-perf::after{right:-9px}
.promo-old .promo-ticket .promo-poster{display:block;aspect-ratio:1/1;overflow:hidden;
  border:0 !important;box-shadow:none !important;border-radius:0 !important;background:none !important}
.promo-old .promo-ticket .promo-poster:hover{transform:none !important}
.promo-ticket .promo-poster img{width:100%;height:100%;object-fit:cover;display:block}

/* ============================================================= */
/* ============ v13: header hotline + mobile call/book bar ===== */
/* ============================================================= */

/* Header hotline (click-to-call) */
.header-hotline{display:inline-flex;align-items:center;gap:11px;color:var(--gold);text-decoration:none;padding:0 2px;margin-left:6px}
.header-hotline .ico{width:36px;height:36px;flex:0 0 auto;padding:8px;border-radius:50%;
  background:rgba(226,181,63,.14);border:1px solid rgba(226,181,63,.42)}
.header-hotline small{display:block;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(247,236,214,.68);font-family:var(--font-condensed);line-height:1;margin-bottom:2px}
.header-hotline b{font-size:1.14rem;font-family:var(--font-condensed);letter-spacing:.02em;line-height:1;color:var(--gold)}
.header-hotline:hover b{color:var(--gold-2)}
@media(min-width:901px){.header-hotline .ico{width:38px;height:38px}}
@media(max-width:1080px){.header-hotline{display:none}}

/* Sticky mobile "Gọi / Đặt bàn" bar */
.mobile-cta-bar{display:none}
@media(max-width:820px){
  .mobile-cta-bar{display:grid;grid-template-columns:1fr 1fr;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:8500;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));
    background:linear-gradient(180deg,rgba(15,36,23,.5),#0f2417 62%);backdrop-filter:blur(8px);
    border-top:1px solid rgba(226,181,63,.32);box-shadow:0 -10px 30px rgba(0,0,0,.35)}
  .mcb-btn{display:flex;align-items:center;justify-content:center;gap:9px;min-height:50px;border-radius:12px;
    font-family:var(--font-condensed);font-weight:400;text-transform:uppercase;letter-spacing:.02em;font-size:1.08rem;text-decoration:none}
  .mcb-btn svg{width:18px;height:18px;flex:0 0 auto}
  .mcb-call{background:rgba(255,255,255,.08);color:#fff;border:1.5px solid rgba(255,255,255,.45)}
  .mcb-book{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#12331f}
  body{padding-bottom:76px}
  /* lift the right-middle cart chip a touch so it never sits under the bar */
  .pt-cart-chip{top:44% !important}
}

/* ============================================================= */
/* ============ v14: living-airport motion ==================== */
/* ============================================================= */

/* (REQ 5) Kill the section-divider lines — seamless flow */
.tear-sep,.sky-route{display:none !important}

/* (REQ 2) Site-wide plane fleet — faint gold planes gliding across the whole site */
.sky-fleet{position:fixed;inset:0;z-index:6;pointer-events:none;overflow:hidden;mix-blend-mode:screen}
.sky-fleet .pl{position:absolute;color:rgba(226,181,63,.55);filter:drop-shadow(0 0 8px rgba(226,181,63,.4));transform:rotate(-7deg)}
.sky-fleet .p1{top:7%;font-size:1.5rem;animation:flyAcross 30s linear infinite}
.sky-fleet .p2{top:34%;font-size:.95rem;opacity:.65;animation:flyAcross 46s linear infinite 9s}
.sky-fleet .p3{top:63%;font-size:1.15rem;opacity:.8;animation:flyBack 52s linear infinite 4s}
.sky-fleet .p4{top:88%;font-size:1.8rem;animation:flyAcross 38s linear infinite 15s}
@keyframes flyAcross{from{left:-9%}to{left:109%}}
@keyframes flyBack{from{left:109%;transform:rotate(187deg)}to{left:-9%;transform:rotate(187deg)}}
@media(prefers-reduced-motion:reduce){.sky-fleet{display:none}}

/* Hero: continuous takeoff plane */
.hero-plane{position:absolute;left:-8%;top:80%;z-index:4;color:var(--gold);font-size:2.1rem;pointer-events:none;
  filter:drop-shadow(0 0 12px rgba(226,181,63,.6))}
@keyframes heroFly{
  0%{left:-8%;top:82%;transform:rotate(-22deg) scale(.72);opacity:0}
  9%{opacity:1}
  55%{top:34%}
  90%{opacity:1}
  100%{left:112%;top:5%;transform:rotate(-22deg) scale(1.15);opacity:0}
}
html.janim .hero-plane{animation:heroFly 11s linear infinite}

/* Hero: moving runway at the bottom (the effect you liked) — also bridges hero → page */
.hero-runway{position:absolute;left:0;right:0;bottom:0;height:56px;z-index:2;pointer-events:none;overflow:hidden}
.hero-runway::before{content:"";position:absolute;left:0;right:0;bottom:22px;height:3px;
  background:repeating-linear-gradient(90deg,rgba(226,181,63,.6) 0 30px,transparent 30px 60px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent)}
.hero-runway::after{content:"";position:absolute;left:8%;right:8%;bottom:12px;height:0;border-top:1px dashed rgba(226,181,63,.28)}
html.janim .hero-runway::before{animation:laneDash 1.1s linear infinite}

/* Reusable blinking "on time / boarding" status dot on section pennants (the green dot you liked) */
.section-no.gold::after{content:"";display:inline-block;width:8px;height:8px;margin-left:9px;border-radius:50%;
  background:#37d67a;box-shadow:0 0 8px #37d67a;vertical-align:middle}
html.janim .section-no.gold::after{animation:blink 1.2s steps(1) infinite}

/* (REQ 4) Hero: stronger, cleaner overlay so the headline pops (mutes the busy baked-in poster text) */
.hero-overlay{background:linear-gradient(90deg,rgba(9,24,15,.95) 0%,rgba(9,24,15,.82) 34%,rgba(9,24,15,.5) 58%,rgba(9,24,15,.9) 100%) !important}
@media(max-width:820px){.hero-overlay{background:linear-gradient(180deg,rgba(9,24,15,.72),rgba(9,24,15,.94)) !important}}
/* keep the hero plane above the darker overlay */
.hero-plane{z-index:4}

/* ============================================================= */
/* ============ v15: TRUE seamless canvas ====================== */
/* Every panel shares ONE identical fixed dot-texture over the same */
/* green, so section boundaries have zero shade/texture change.     */
/* ============================================================= */
.hero-strip,.menu-section,.space-section,.promo-old,.review-section,.crew-section,.booking-section,.site-footer{
  background-color:var(--green) !important;
  background-image:radial-gradient(rgba(255,250,241,.03) 1px,transparent 1.7px) !important;
  background-size:30px 30px !important;
  background-position:0 0 !important;
  background-attachment:fixed !important;   /* anchored to viewport → pattern is continuous across sections */
}
@media(max-width:820px){
  .hero-strip,.menu-section,.space-section,.promo-old,.review-section,.crew-section,.booking-section,.site-footer{
    background-attachment:scroll !important;   /* iOS ignores fixed; scroll is safer on mobile */
  }
}

/* ============================================================= */
/* ============ v16: hero trust badge + "bán chạy" tags ======== */
/* ============================================================= */

/* 4.8★ Google trust badge in the hero */
.hero-trust{display:inline-flex;align-items:center;gap:10px;margin-top:20px;padding:9px 16px;border-radius:999px;
  background:rgba(0,0,0,.32);border:1px solid rgba(226,181,63,.42);backdrop-filter:blur(4px);text-decoration:none;
  box-shadow:0 8px 22px rgba(0,0,0,.25);transition:border-color .2s}
.hero-trust:hover{border-color:rgba(226,181,63,.72)}
.hero-trust .ht-stars{color:var(--gold);letter-spacing:.05em;font-size:1.02rem;line-height:1}
.hero-trust b{color:#fff7e6;font-family:var(--font-condensed);font-weight:400;font-size:1.22rem;line-height:1}
.hero-trust .ht-sub{color:rgba(255,250,241,.72);font-size:.82rem;line-height:1}
.hero-trust .ht-g{color:#f0c85a;font-weight:700}
@media(max-width:560px){.hero-trust{gap:8px;padding:8px 13px}.hero-trust .ht-sub{font-size:.72rem}}

/* "Bán chạy" tag on menu cards */
.food-card .fc-hot,.mcard .mc-hot{position:absolute;z-index:3;top:9px;right:9px;
  background:linear-gradient(180deg,#e0532e,#c0392b);color:#fff;
  font-family:"Saira Condensed",sans-serif;font-weight:800;font-size:.62rem;letter-spacing:.05em;
  padding:3px 9px;border-radius:7px;text-transform:uppercase;box-shadow:0 5px 12px rgba(192,57,43,.42)}
.mcard .mc-hot{top:12px;right:12px;font-size:.68rem}

/* Category bar sits ABOVE the hanging logo when it becomes sticky (menu page) */
.cat-nav{z-index:60 !important;background:#11301d !important}

/* ============================================================= */
/* ============ v17: heading balance, dots, buttons, tickets === */
/* ============================================================= */

/* (2) Blinking "on-time" dot on EVERY numbered pennant (02 was missing it) */
.section-no::after{content:"";display:inline-block;width:8px;height:8px;margin-left:9px;border-radius:50%;
  background:#37d67a;box-shadow:0 0 8px #37d67a;vertical-align:middle}
html.janim .section-no::after{animation:blink 1.2s steps(1) infinite}

/* (3) "Xem thực đơn" button = identical gold to "Săn vé vui" */
.menu-cta .btn{color:var(--gold) !important;border-color:var(--gold) !important;background:transparent !important}
.menu-cta .btn:hover{background:var(--gold) !important;color:#12331f !important}

/* (1) Balance space above/below section titles — kill the oversized gap under the tagline */
.hero-strip{padding-top:66px !important;padding-bottom:48px !important}
@media(min-width:901px){
  .menu-section,.space-section,.promo-old,.review-section{padding-top:54px !important;padding-bottom:60px !important}
  .section-heading,.menu-section .section-head{margin-bottom:28px !important}
}

/* (5) Promo uses the SAME wide container as other sections → headings line up + grid fills */
@media(min-width:901px){
  .promo-old > .container{width:calc(100% - 72px) !important;max-width:1220px !important}
  .promo-old .promo-row2{grid-template-columns:340px minmax(0,1fr) minmax(0,1fr) !important;align-items:center;gap:34px}
}

/* (4) Promo cards look like real boarding-pass tickets: stub + perforation + poster + barcode stub */
.promo-ticket{overflow:hidden}
.promo-ticket .pt-perf{position:relative;height:0;border-top:2px dashed rgba(31,64,40,.4);background:#fbf3e2}
.promo-ticket .pt-perf::before,.promo-ticket .pt-perf::after{content:"";position:absolute;top:-7px;width:14px;height:14px;border-radius:50%;background:#1f4028}
.promo-ticket .pt-perf::before{left:10px}
.promo-ticket .pt-perf::after{right:10px}
.promo-ticket .pt-foot{position:relative;display:flex;align-items:center;gap:12px;padding:11px 16px;
  background:linear-gradient(90deg,#1f4028,#12331f);border-top:2px dashed rgba(226,181,63,.42)}
.promo-ticket .pt-foot::before,.promo-ticket .pt-foot::after{content:"";position:absolute;top:-8px;width:14px;height:14px;border-radius:50%;background:var(--green)}
.promo-ticket .pt-foot::before{left:10px}
.promo-ticket .pt-foot::after{right:10px}
.promo-ticket .pt-bar{flex:1;height:22px;border-radius:2px;background:repeating-linear-gradient(90deg,#e8dcc0 0 2px,transparent 2px 5px)}
.promo-ticket .pt-foot b{color:var(--gold);font-family:"Saira Condensed",sans-serif;font-weight:800;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}

/* ============================================================= */
/* ============ v18: custom hero banner (real venue) ========== */
/* ============================================================= */
.hero-photo{background-image:url("assets/hero-banner.jpg") !important;background-size:cover !important;background-position:center 30% !important}
@media(min-width:901px){.hero-photo{background-image:url("assets/hero-banner.jpg") !important;background-position:center 34% !important}}
/* banner is already dark/green — keep just enough left shade for the headline + protect nothing on the right (form card covers it) */
.hero-overlay{background:linear-gradient(90deg,rgba(9,24,15,.9) 0%,rgba(9,24,15,.66) 30%,rgba(9,24,15,.3) 55%,rgba(9,24,15,.55) 100%) !important}
@media(max-width:820px){.hero-overlay{background:linear-gradient(180deg,rgba(9,24,15,.62),rgba(9,24,15,.92)) !important}.hero-photo{background-position:center 20% !important}}

/* ============================================================= */
/* ============ v19: hero flight-route depth + title parity ==== */
/* ============================================================= */

/* (2) Flight-route map behind the hero content — adds depth */
.hero-routes{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none;opacity:.55}
.hero-routes .hr-line{fill:none;stroke:rgba(226,181,63,.34);stroke-width:1.6;stroke-dasharray:2.5 11;stroke-linecap:round}
.hero-routes .hr-dot{fill:rgba(226,181,63,.6)}
html.janim .hero-routes .hr-line{animation:dashFly 9s linear infinite}
@media(max-width:820px){.hero-routes{opacity:.4}}

/* (1) Section 3 (Vé ưu đãi) & Section 4 (Sân đỗ) titles — identical size + weight */
.promo-copy h2,.space-title{
  font-family:"Saira Extra Condensed","Saira Condensed",sans-serif !important;
  font-weight:800 !important;
  font-size:clamp(2.5rem,3.4vw,3.5rem) !important;
  line-height:1.05 !important;
  letter-spacing:.01em !important;
}
@media(max-width:900px){
  .promo-copy h2,.space-title{font-size:clamp(2.7rem,9.5vw,3.7rem) !important}
}

/* v19.1: space title must match specificity of the old .space-copy .space-title rule */
.space-copy .space-title{font-size:clamp(2.5rem,3.4vw,3.5rem) !important;font-weight:800 !important;line-height:1.05 !important}
@media(max-width:900px){.space-copy .space-title{font-size:clamp(2.7rem,9.5vw,3.7rem) !important}}

/* ============================================================= */
/* ============ v20: runway backdrop for "Điểm cất cánh" ======= */
/* ============================================================= */
/* drop the faint route lines (wasn't what was wanted) */
.hero-routes{display:none !important}
/* real runway art as the section background → depth + "cất cánh" concept */
.hero-strip{
  background-image:url("assets/runway-strip.jpg") !important;
  background-size:100% auto !important;           /* full width, runway anchored at bottom */
  background-position:center bottom !important;
  background-repeat:no-repeat !important;
  background-attachment:scroll !important;
  background-color:#0c1e14 !important;            /* matches runway green → top blends seamlessly */
  position:relative;overflow:hidden;
  padding-top:72px !important;padding-bottom:80px !important;
}
.hero-strip::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(9,24,16,.55) 0%,rgba(9,24,16,.12) 52%,rgba(9,24,16,.40) 100%)}
.hero-strip .container{position:relative;z-index:1}
.hero-strip .hero-strip-text{text-shadow:0 3px 22px rgba(0,0,0,.6),0 2px 20px rgba(226,181,63,.25)}
@media(max-width:820px){.hero-strip{background-size:cover !important;background-position:center bottom !important;padding-top:54px !important;padding-bottom:60px !important}}

/* ============ v21: compact header on scroll ============================ */
/* Big hanging logo shrinks into the bar once scrolled, so it never covers  */
/* the sticky category menu (thực đơn) or page content.                     */
.site-header .brand img{transition:height .26s ease, margin-top .26s ease}
@media(min-width:901px){
  .site-header.compact{box-shadow:0 10px 30px rgba(0,0,0,.34)}
  .site-header.compact .brand img{height:60px !important;margin-top:5px !important}
}

/* ============ v22: bigger, wider-tracked header nav on all pages ========= */
@media(min-width:901px){
  .desktop-nav{font-size:1.18rem !important;letter-spacing:.07em !important;gap:32px !important;font-weight:500 !important}
}

/* ============ v23: footer — bố cục 4 cột lấp đầy, bỏ track trống bên phải == */
@media(min-width:901px){
  .footer-grid{grid-template-columns:1.7fr 1fr 1fr 1.45fr !important;gap:44px !important;align-items:start !important}
}
@media(min-width:901px) and (max-width:1180px){
  .footer-grid{grid-template-columns:1.5fr 1fr 1fr 1.4fr !important;gap:30px !important}
}

/* ============================================================= */
/* ============ v24: MOBILE FIXES (14 mục) ===================== */
/* ============================================================= */

/* (1) Logo méo — ảnh vuông 447x447 → giữ tỉ lệ, không ép width */
@media(max-width:820px){
  .brand img{width:auto !important;height:56px !important}
  .site-header.compact .brand img{height:48px !important}
}

/* (3)(6) Pennant "0X ✈" — LUÔN là cờ vàng (02 đang tàng hình trên nền xanh) + cách tiêu đề */
@media(max-width:820px){
  .section-no{background:var(--gold) !important;color:#12331f !important;
    margin-bottom:16px !important;padding:5px 22px 5px 15px !important;font-size:1.02rem !important}
  .section-no::after{background:#37d67a !important;box-shadow:0 0 9px #37d67a !important}
}

/* (2) Hero: ẩn form đặt bàn → popup khi bấm "Đặt bàn" */
@media(max-width:820px){
  .hero .quick-book{display:none !important}
  .hero-grid{grid-template-columns:1fr !important}
}
.book-modal{position:fixed;inset:0;z-index:9000;display:none}
.book-modal.open{display:block}
.book-modal-backdrop{position:absolute;inset:0;background:rgba(6,16,10,.74);backdrop-filter:blur(3px)}
.book-modal-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(440px,calc(100% - 26px));max-height:calc(100dvh - 30px);max-height:calc(100vh - 30px);
  overflow:auto;-webkit-overflow-scrolling:touch}
.book-modal-panel .quick-book{display:block !important;margin:0;max-width:none}
.book-modal-close{position:absolute;top:10px;right:12px;z-index:6;width:34px;height:34px;border:0;border-radius:50%;
  background:rgba(0,0,0,.3);color:#fff;font-size:1.02rem;display:grid;place-items:center;line-height:1}
.book-modal .ticket::before,.book-modal .ticket::after{display:none}

/* (5) Dish card — nút "+ Đặt" thành pill (đang tràn khỏi nút tròn), bố cục gọn */
@media(max-width:820px){
  .dish-marquee .dish-card{width:min(74vw,300px) !important;margin-right:14px}
  .dish-card img{height:190px !important}
  .dish-card>div{display:flex !important;flex-wrap:wrap;align-items:center;gap:2px 10px;padding:12px 14px 13px !important}
  .dish-card h3{flex:0 0 100%;min-height:0 !important;margin:0 0 3px !important;font-size:1.12rem}
  .dish-card p{margin:0}
  .dish-card button{position:static !important;margin-left:auto;width:auto !important;height:34px;min-width:30px;
    padding:0 15px;border-radius:17px;font-size:.9rem;font-weight:800;white-space:nowrap;
    display:inline-flex;align-items:center;gap:4px}
}

/* (4) "Xem thực đơn" — cách slider phía trên, gọn với section dưới */
.menu-cta{text-align:center;margin-top:26px}
@media(max-width:820px){.menu-cta{margin-top:20px !important}.menu-cta .btn{min-height:50px;padding:0 30px}}

/* (7) Vé ưu đãi — slider tự chạy trên mobile (desktop giữ 2 vé cạnh nhau) */
.promo-old .promo-row2{grid-template-columns:340px 1fr !important}
.promo-tickets{display:grid;grid-template-columns:1fr 1fr;gap:30px;min-width:0}
.promo-tickets .promo-dup{display:none}
@media(max-width:900px){
  .promo-old .promo-row2{grid-template-columns:minmax(0,1fr) !important;overflow:hidden}
  .promo-copy{grid-column:auto !important;text-align:center;margin-bottom:18px !important;min-width:0;width:100%}
  .promo-tickets{display:flex !important;grid-template-columns:none !important;width:max-content;gap:0;
    animation:promoScroll 20s linear infinite;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
  .promo-tickets:hover{animation-play-state:paused}
  .promo-tickets .promo-dup{display:block}
  .promo-tickets .promo-ticket{flex:0 0 auto;width:74vw;max-width:330px;margin-right:16px}
}
@keyframes promoScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* (9) Rating — slider vuốt ngang trên mobile */
@media(max-width:900px){
  .review-lux .review-cards{display:flex !important;grid-template-columns:none !important;max-width:none !important;
    overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding:6px 2px 12px;margin:0 !important;
    -webkit-overflow-scrolling:touch;scrollbar-width:none}
  .review-lux .review-cards::-webkit-scrollbar{display:none}
  .review-lux .review-card{flex:0 0 85%;scroll-snap-align:center}
}

/* (12) "Boarding Gate Phi Trường" — Phi Trường xuống dòng + to hơn */
@media(max-width:820px){
  .booking-copy h2 .bg-pt{display:block;font-size:1.42em;line-height:1;margin-top:4px}
}

/* (8)(10) Khoảng cách section trên mobile — gọn & đều */
@media(max-width:820px){
  .menu-section,.space-section,.promo-old,.review-section,.crew-section,.booking-section{
    padding-top:18px !important;padding-bottom:18px !important}
  .hero-strip{padding-top:40px !important;padding-bottom:44px !important}
  .crew-copy{margin-bottom:28px !important}
  .crew-copy h2{margin-bottom:18px !important}
}

/* (11) Footer mobile — lưới 2×2 lấp đầy, không trống bên phải */
@media(max-width:600px){
  .footer-grid{grid-template-columns:1fr 1fr !important;gap:30px 20px !important;align-items:start}
  .footer-brand p{max-width:none;font-size:.8rem}
  .footer-brand img{width:96px}
  .site-footer{padding-top:38px !important}
  .site-footer h3{font-size:1rem;margin-bottom:12px}
  .site-footer .col a,.site-footer .col p{font-size:.82rem;margin-bottom:9px}
}
@media(max-width:380px){
  .footer-grid{gap:24px 14px !important}
}

/* ============================================================= */
/* ============ v25: MOBILE FIXES đợt 2 ======================== */
/* ============================================================= */

/* (4) "HÀNH KHÁCH: ĐANG NHẬP…" không xuống dòng trên mobile */
@media(max-width:820px){
  .ticket-live{white-space:nowrap !important;overflow:hidden;text-overflow:ellipsis;
    font-size:.66rem !important;letter-spacing:.02em !important}
}

/* (6)(7)(8)(9) Tiêu đề section: 1 dòng + ĐỒNG BỘ size trên mobile */
@media(max-width:600px){
  .menu-section .section-head h2,
  .promo-copy h2,
  .space-copy .space-title,
  .review-section h2,
  .booking-copy h2{
    font-size:clamp(2.45rem,9.8vw,3.15rem) !important;
    line-height:1.14 !important}
  .dbr{display:none}                                   /* bỏ <br> ép của "Vé ưu đãi", "Sân đỗ" → 1 dòng */
  .booking-copy h2 .bg-pt{display:inline !important;font-size:1em !important;margin:0 !important}
}

/* (10) Footer mobile: ẩn cột "Khám phá" · brand ra GIỮA · Liên hệ mỗi dòng 1 thông tin */
@media(max-width:600px){
  .footer-grid{grid-template-columns:1fr 1fr !important;gap:26px 16px !important;align-items:start}
  .footer-grid > div:nth-child(2){display:none !important}     /* ẩn "Khám phá" */
  .footer-brand{grid-column:1/3 !important;text-align:center;
    display:flex;flex-direction:column;align-items:center}
  .footer-brand img{width:100px}
  .footer-brand p{max-width:320px;text-align:center;font-size:.82rem}
  .footer-brand .socials{justify-content:center}
  .site-footer .col{min-width:0}
  .site-footer .col p{white-space:nowrap;font-size:.72rem;overflow:hidden;text-overflow:ellipsis}
  .site-footer .col a{font-size:.82rem}
  .site-footer h3{font-size:1rem}
}

/* ============================================================= */
/* ============ v26: giãn dòng tiêu đề + subtitle 2 dòng ======= */
/* ============================================================= */
@media(max-width:600px){
  /* (3) Giãn dòng (line-height) các tiêu đề nhiều dòng cho thoáng */
  .menu-section .section-head h2,.promo-copy h2,.space-copy .space-title,
  .review-section h2,.booking-copy h2{line-height:1.28 !important}
  .sub-hero h1,.menu-hero h1{line-height:1.26 !important}
  /* (4) Subtitle các trang gọn trong ~2 dòng */
  .sub-hero p,.menu-hero p{font-size:.9rem !important;line-height:1.5 !important}
}

/* ============================================================= */
/* ============ v27: animation "phi trường" cho CTA mobile ===== */
/* ============================================================= */
@media(max-width:820px){
  .mobile-cta-bar{position:fixed;overflow:hidden}
  /* Đường băng vàng nhấp nháy chạy trên viền thanh CTA */
  .mobile-cta-bar::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:2;pointer-events:none;
    background:repeating-linear-gradient(90deg,rgba(226,181,63,.9) 0 16px,transparent 16px 32px);
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
  html.janim .mobile-cta-bar::before{animation:mcbRunway .9s linear infinite}

  .mcb-btn{position:relative;overflow:hidden;isolation:isolate}
  /* ĐẶT BÀN (vàng): quét sáng "boarding pass" + nảy cất cánh nhẹ + máy bay lướt */
  .mcb-book::after{content:"";position:absolute;top:0;left:-60%;width:38%;height:100%;z-index:-1;pointer-events:none;
    background:linear-gradient(100deg,transparent,rgba(255,255,255,.7),transparent);transform:skewX(-18deg)}
  html.janim .mcb-book::after{animation:mcbShine 3.4s ease-in-out infinite}
  /* GỌI NGAY: chuông rung theo nhịp + quầng sáng */
  html.janim .mcb-call svg{animation:mcbRing 2.4s ease-in-out infinite;transform-origin:50% 25%}
  html.janim .mcb-call{animation:mcbCallGlow 2.4s ease-in-out infinite}
}
@keyframes mcbRunway{to{background-position:32px 0}}
@keyframes mcbShine{0%,58%{left:-60%}86%,100%{left:130%}}
@keyframes mcbLift{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes mcbTaxi{0%,55%{transform:translateX(0) translateY(0) rotate(0);opacity:.55}
  78%{transform:translateX(-30px) translateY(-6px) rotate(-16deg);opacity:1}
  100%{transform:translateX(-64px) translateY(-16px) rotate(-22deg);opacity:0}}
@keyframes mcbRing{0%,86%,100%{transform:rotate(0)}88%{transform:rotate(-13deg)}92%{transform:rotate(11deg)}96%{transform:rotate(-5deg)}}
@keyframes mcbCallGlow{0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.30)}50%{box-shadow:0 0 0 3px rgba(255,255,255,.10)}}

/* ============================================================= */
/* ============ v28: section "Chọn sân bay" trang chủ + fix form  */
/* ============================================================= */
.coso-home{padding:54px 0 !important}
.coso-home .coso-list{display:grid;gap:24px}
.coso-home .coso-card{display:grid;grid-template-columns:1.18fr .92fr;gap:26px;align-items:stretch;
  background:rgba(255,250,241,.04);border:1px solid rgba(226,181,63,.3);border-radius:18px;padding:24px;
  box-shadow:0 18px 44px rgba(0,0,0,.3);transition:transform .25s,box-shadow .25s,border-color .25s}
.coso-home .coso-card:hover{transform:translateY(-4px);box-shadow:0 30px 60px rgba(0,0,0,.44);border-color:rgba(226,181,63,.6)}
.coso-home .cc-info{display:flex;flex-direction:column;gap:12px}
.coso-home .cc-stub{display:inline-flex;align-self:flex-start;align-items:center;gap:10px;padding:6px 15px;border-radius:999px;
  background:linear-gradient(90deg,#1f4028,#12331f);color:var(--gold);font-family:"Saira Condensed",sans-serif;
  text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;border:1px solid rgba(226,181,63,.35)}
.coso-home .cc-info h2{margin:0 !important;color:#fff7e6 !important;font-family:"Saira Extra Condensed","Saira Condensed",sans-serif !important;
  font-weight:800 !important;text-transform:uppercase;font-size:clamp(1.6rem,2.6vw,2.2rem) !important;line-height:1.05 !important}
.coso-home .cc-addr{margin:0;color:rgba(244,236,218,.82);font-size:1.02rem;line-height:1.55}
.coso-home .cc-statusrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.coso-home .cc-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;font-family:"Saira Condensed",sans-serif;
  font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:.82rem}
.coso-home .cc-badge.open{background:rgba(55,214,122,.14);color:#37d67a;border:1px solid rgba(55,214,122,.5)}
.coso-home .cc-badge.open i{width:9px;height:9px;border-radius:50%;background:#37d67a;box-shadow:0 0 10px #37d67a}
@keyframes openPulse{0%{box-shadow:0 0 0 0 rgba(55,214,122,.6),0 0 8px #37d67a}70%{box-shadow:0 0 0 7px rgba(55,214,122,0),0 0 8px #37d67a}100%{box-shadow:0 0 0 0 rgba(55,214,122,0),0 0 8px #37d67a}}
html.janim .coso-home .cc-badge.open i{animation:openPulse 1.6s ease-out infinite}
.coso-home .cc-hours{color:rgba(255,250,241,.6);font-size:.9rem;text-transform:uppercase;letter-spacing:.04em}
.coso-home .cc-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:2px}
.coso-home .cc-stat{background:rgba(226,181,63,.08);border:1px solid rgba(226,181,63,.22);border-radius:12px;padding:12px 14px;text-align:center}
.coso-home .cc-stat b{display:block;color:var(--gold);font-family:"Saira Condensed",sans-serif;font-weight:800;font-size:1.4rem;line-height:1}
.coso-home .cc-stat small{display:block;color:rgba(255,250,241,.6);font-size:.74rem;text-transform:uppercase;letter-spacing:.05em;margin-top:5px}
.coso-home .cc-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;padding-top:6px}
.coso-home .cc-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:10px;font-family:"Saira Condensed",sans-serif;
  font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:.9rem;transition:.2s;cursor:pointer;text-decoration:none}
.coso-home .cc-btn svg{width:17px;height:17px}
.coso-home .cc-btn.primary{background:linear-gradient(180deg,#f0c85a,#e2b53f);color:#12331f;border:0}
.coso-home .cc-btn.ghost{background:transparent;color:var(--gold);border:1.5px solid rgba(226,181,63,.5)}
.coso-home .cc-btn.ghost:hover{background:var(--gold);color:#12331f}
.coso-home .cc-gallery{display:grid;grid-template-columns:1.6fr 1fr;grid-template-rows:1fr 1fr;gap:10px;min-height:250px}
.coso-home .cc-gallery img{width:100%;height:100%;object-fit:cover;border-radius:12px;border:1px solid rgba(226,181,63,.4);display:block}
.coso-home .cc-gallery img:first-child{grid-row:1 / span 2}
@media(max-width:900px){.coso-home .coso-card{grid-template-columns:1fr}.coso-home .cc-gallery{min-height:200px}}
@media(max-width:600px){
  .coso-home{padding:18px 0 !important}
  .coso-home .section-heading h2{font-size:clamp(2.45rem,9.8vw,3.15rem) !important;line-height:1.16 !important}
  .coso-home .cc-gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto;min-height:0;gap:8px}
  .coso-home .cc-gallery img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
  .coso-home .cc-gallery img:first-child{grid-row:auto;grid-column:1 / span 2;aspect-ratio:16/9}
  .coso-home .cc-actions{flex-wrap:nowrap;gap:8px}
  .coso-home .cc-btn{flex:1 1 0;min-width:0;justify-content:center;padding:11px 5px;font-size:.72rem;gap:5px;letter-spacing:.01em;white-space:nowrap}
  .coso-home .cc-btn svg{width:15px;height:15px;flex:0 0 auto}
}

/* Đồng bộ chiều cao ô nhập form đặt bàn (popup + form dưới trang) trên mobile */
@media(max-width:820px){
  .ticket-body label{min-height:52px;align-items:center}
  .ticket input,.ticket select,
  .booking-fields input,.booking-fields select{
    height:50px !important;min-height:50px !important;box-sizing:border-box !important;line-height:normal;
    font-size:16px !important}
  .ticket input[type=date],.ticket input[type=time],
  .booking-fields input[type=date],.booking-fields input[type=time]{padding-top:0 !important;padding-bottom:0 !important}
}

/* ===== v29: HOME "Món mới hạng thương gia" dish cards = BOARDING PASS (VIP + NEW) ===== */
.menu-section .dish-card{
  background:linear-gradient(180deg,#1e4129,#12301f) !important;
  border:1px solid rgba(226,181,63,.42) !important;border-radius:14px !important;
  overflow:visible !important;box-shadow:0 16px 34px rgba(0,0,0,.34) !important;
  display:flex !important;flex-direction:column}
/* huỷ nền trắng + min-height của rule .dish-card>div cũ */
.menu-section .dish-card>div{background:transparent !important;min-height:0 !important}
.menu-section .dish-card .dc-head{display:flex;align-items:center;justify-content:space-between;gap:6px;
  padding:9px 13px;border-radius:14px 14px 0 0;border-bottom:1px dashed rgba(226,181,63,.3)}
.menu-section .dish-card .dc-air{font-family:var(--font-condensed),"Saira Condensed",sans-serif;font-weight:800;font-size:.66rem;
  letter-spacing:.1em;color:var(--gold);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-section .dish-card .dc-vip{flex:0 0 auto;font-family:var(--font-condensed),"Saira Condensed",sans-serif;font-weight:800;
  font-size:.64rem;letter-spacing:.1em;color:#12331f;text-transform:uppercase;
  background:linear-gradient(90deg,#f6dd85,#e2b53f);border-radius:5px;padding:2px 10px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.menu-section .dish-card .dc-img{position:relative;margin:10px 10px 0 !important;border-radius:9px;overflow:hidden;
  background:#0f2417;padding:0 !important;min-height:0 !important}
.menu-section .dish-card .dc-img img{width:100% !important;height:auto !important;aspect-ratio:4/3;object-fit:cover !important;display:block;transition:transform .45s}
.menu-section .dish-card:hover .dc-img img{transform:scale(1.06)}
.menu-section .dish-card .dc-new{position:absolute;top:9px;left:9px;z-index:2;display:inline-flex;align-items:center;gap:5px;
  background:#e23b3b;color:#fff;font-family:var(--font-condensed),"Saira Condensed",sans-serif;font-weight:800;font-size:.62rem;
  letter-spacing:.09em;padding:4px 11px;border-radius:6px;text-transform:uppercase;box-shadow:0 4px 12px rgba(0,0,0,.4)}
.menu-section .dish-card .dc-body{padding:11px 14px 8px !important;display:flex;flex-direction:column;gap:8px;flex:1;
  color:var(--white);min-height:0 !important}
.menu-section .dish-card h3{color:#f6efdd !important;font-family:var(--font-condensed),"Saira Condensed",sans-serif;
  font-weight:800 !important;text-transform:uppercase;font-size:1.12rem !important;line-height:1.08 !important;
  margin:0 !important;min-height:0 !important}
.menu-section .dish-card .dc-route{display:flex;align-items:center;gap:8px;color:rgba(226,181,63,.75);
  font-family:var(--font-condensed),"Saira Condensed",sans-serif;font-weight:700;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase}
.menu-section .dish-card .dc-route .ln{flex:1;height:0;border-top:1px dashed rgba(226,181,63,.42);position:relative}
.menu-section .dish-card .dc-route .ln:after{content:"✈";position:absolute;right:-3px;top:-7px;font-size:.58rem;color:var(--gold)}
.menu-section .dish-card .dc-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto}
.menu-section .dish-card p{color:#f0c85a !important;font-family:var(--font-condensed),"Saira Condensed",sans-serif;
  font-weight:800 !important;font-size:1.16rem !important;margin:0 !important;line-height:1}
.menu-section .dish-card button{position:static !important;width:auto !important;height:auto !important;border-radius:8px !important;
  padding:8px 15px !important;background:linear-gradient(180deg,#f0c85a,#e2b53f) !important;color:#12331f !important;
  font-family:var(--font-condensed),"Saira Condensed",sans-serif;font-weight:800 !important;font-size:.84rem !important;
  text-transform:uppercase;letter-spacing:.02em;display:inline-flex !important;align-items:center;border:0 !important;cursor:pointer;flex:0 0 auto}
.menu-section .dish-card button:hover{filter:brightness(1.08)}
.menu-section .dish-card .dc-tear{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:5px;padding:9px 14px 11px !important;border-radius:0 0 14px 14px;border-top:1px dashed rgba(226,181,63,.36);
  min-height:0 !important;color:inherit}
.menu-section .dish-card .dc-tear:before,.menu-section .dish-card .dc-tear:after{content:"";position:absolute;top:-7px;
  width:13px;height:13px;border-radius:50%;background:var(--green);border:1px solid rgba(226,181,63,.34)}
.menu-section .dish-card .dc-tear:before{left:-7px}
.menu-section .dish-card .dc-tear:after{right:-7px}
.menu-section .dish-card .dc-code{font-family:var(--font-condensed),"Saira Condensed",sans-serif;font-weight:700;font-size:.62rem;
  letter-spacing:.13em;color:rgba(244,236,218,.58);text-transform:uppercase;white-space:nowrap}
.menu-section .dish-card .dc-barcode{flex:1;height:20px;border-radius:2px;opacity:.5;
  background:repeating-linear-gradient(90deg,#f4ecda 0 1px,transparent 1px 2px,#f4ecda 2px 4px,transparent 4px 7px)}
@media(max-width:600px){
  .menu-section .dish-card h3{font-size:.98rem !important}
  .menu-section .dish-card p{font-size:1.02rem !important}
  .menu-section .dish-card button{padding:7px 12px !important;font-size:.78rem !important}
}

/* ============ v24: chặn iOS Safari tự phóng to chữ khi cuộn (text autosizing) === */
html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}
