/* ===== PHÔNG TỰ CHỨA — thay Google Fonts CDN (2026-08-12) =====
   Vì sao: PSI đo LCP 3,9-5,1s, mà trang phải mở 2 preconnect + 1 stylesheet sang
   fonts.googleapis.com trước khi vẽ được chữ. Nay woff2 nằm cùng máy chủ, cùng kết nối.
   🚨 Khai subset `latin` TRƯỚC, `vietnamese` SAU — khai ngược làm trình duyệt tải thừa.
   🚨 Mọi mặt chữ đều CÓ subset `vietnamese`: thiếu nó là dấu tiếng Việt rơi về phông dự phòng.
   Tải từ Google Fonts 2026-08-12, giữ nguyên unicode-range gốc. */
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/be-vietnam-pro-300-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:300;font-display:swap;src:url('/assets/fonts/be-vietnam-pro-300-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/be-vietnam-pro-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/be-vietnam-pro-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/be-vietnam-pro-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/be-vietnam-pro-500-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/be-vietnam-pro-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/be-vietnam-pro-600-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/be-vietnam-pro-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/be-vietnam-pro-700-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 600;font-display:swap;src:url('/assets/fonts/fraunces-300_600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:300 600;font-display:swap;src:url('/assets/fonts/fraunces-300_600-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB}

/* ===== Mộc Quê — demo nhà hàng của HAYWEB ===== */
:root{
  --green:#122a1f;        /* xanh rừng thẫm, sâu hơn */
  --green-2:#1b3a28;
  --green-deep:#0d201700; /* placeholder (không dùng trực tiếp) */
  --ink:#10201a;          /* mực thẫm cho tương phản cao cấp */
  --green-ink:#1f342a;    /* chữ trên nền kem */
  --orange:#b5772a;       /* mật ong / vàng đất — accent CTA */
  --orange-2:#dcac60;
  --gold:#c9a24e;         /* vàng champagne */
  --gold-2:#e7cd8c;       /* vàng sáng highlight */
  --gold-line:rgba(201,162,78,.42); /* hairline vàng — chữ ký sang trọng */
  --cream:#f5eddc;
  --cream-2:#fcf8ef;
  --paper:#fffdf8;
  --line:rgba(28,50,38,.13);
  --serif:"Fraunces","Cambria","Palatino Linotype",Georgia,serif;
  --sans:"Be Vietnam Pro","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;
  --wrap:1200px;
  --r:18px;
  --r-sm:12px;
  --shadow:0 30px 70px -34px rgba(10,24,16,.6);
  --shadow-soft:0 20px 50px -30px rgba(10,24,16,.4);
  --stars-light:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='100'%20height='100'%3E%3Cpath%20d='M50%200Q60%2040%20100%2050Q60%2060%2050%20100Q40%2060%200%2050Q40%2040%2050%200Z'%20fill='none'%20stroke='%23f6efe1'%20stroke-opacity='0.16'%20stroke-width='1.5'/%3E%3C/svg%3E");
  --stars-dark:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='100'%20height='100'%3E%3Cpath%20d='M50%200Q60%2040%20100%2050Q60%2060%2050%20100Q40%2060%200%2050Q40%2040%2050%200Z'%20fill='none'%20stroke='%2316301f'%20stroke-opacity='0.13'%20stroke-width='1.5'/%3E%3C/svg%3E");
  --grain:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='150'%20height='150'%3E%3Cfilter%20id='g'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.82'%20numOctaves='3'%20stitchTiles='stitch'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url(%23g)'/%3E%3C/svg%3E");
  --bg-scene-light:linear-gradient(rgba(246,239,225,.9),rgba(246,239,225,.93)),url("../img/gen/bg-room.webp");
  --bg-scene-dark:linear-gradient(rgba(20,44,29,.82),rgba(20,44,29,.86)),url("../img/gen/bg-garden.webp");
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  color:var(--green-ink);
  background-color:var(--cream);
  line-height:1.65;
  font-weight:400;
  font-variant-numeric:lining-nums;   /* số ngay ngắn, không nhấp nhô — cascade xuống Fraunces */
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
/* Fraunces: opsz cao + lining/tabular figures cho vẻ sang trọng tiết chế */
.h2,.hero__title,.hero__word,.brand__name,.set__top h3,.set__price,.menu__cat h3,
.review p,.review__name,.story__facts b,.bkstep,.bksuccess__title,.bkpay__head,
.shipset__name,.shipcart__title,.setmodal__name,.setcard__top,.setsuggest__name,
.set__price i,.hero__title em{
  font-optical-sizing:auto;
  font-variation-settings:'opsz' 44,'SOFT' 0,'WONK' 0;
  font-feature-settings:'lnum' 1,'tnum' 1;
  font-variant-numeric:lining-nums tabular-nums;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:26px}

/* ---- Type helpers ---- */
.eyebrow{display:inline-block;font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;
  font-weight:600;color:var(--orange);margin-bottom:16px}
.eyebrow--light{color:var(--gold-2)}
.h2{font-family:var(--serif);font-weight:430;font-size:clamp(1.95rem,4.2vw,3.2rem);
  line-height:1.1;color:var(--green);letter-spacing:-.012em}
.h2--light{color:var(--cream-2)}
.section{padding:clamp(64px,9vw,120px) 0;position:relative}
/* Lớp hạt nhiễu (film grain / tivi cũ) — in chìm giữa nền và nội dung */
.section::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:var(--grain);background-size:170px 170px;opacity:.3;mix-blend-mode:soft-light}
.section--dark::after{opacity:.42}
.section > *{position:relative;z-index:1}
.section__head{max-width:720px;margin-bottom:clamp(34px,5vw,56px)}
.section__sub{margin-top:14px;font-size:1.05rem;color:#4c5b50}
.section__sub--light{color:rgba(246,239,225,.75)}
.section__sub a{color:var(--orange);font-weight:600;border-bottom:1px solid transparent}
.section__sub a:hover{border-color:currentColor}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--sans);font-weight:600;font-size:.96rem;letter-spacing:.015em;padding:.86em 1.7em;border-radius:999px;
  border:1.5px solid transparent;cursor:pointer;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,background .3s,color .3s,border-color .3s}
/* 🔧 2026-08-12 — ĐẬM lại nút chính cho đạt tương phản 4,5:1. Đo trên trang sống: gradient cũ
   `#c68a34 → #a56820` với chữ `#fff8ea` cho **2,8:1** ở đầu SÁNG của dải (đầu tối được 4,3:1)
   — tức nửa nút trượt ngưỡng, mà đây đúng là nút chốt đơn. Dải mới đo lại ≥4,6:1 ở cả hai đầu.
   Giữ nguyên sắc mật ong, chỉ hạ độ sáng — không đổi họ màu, không thêm accent thứ hai. */
.btn--solid{background:linear-gradient(135deg,#9c6420,#84501a);color:#fff8ea;
  box-shadow:0 14px 30px -14px rgba(132,80,26,.85),inset 0 1px 0 rgba(255,255,255,.22)}
.btn--solid:hover{background:linear-gradient(135deg,#a06620,#7d4b17);transform:translateY(-2px);
  box-shadow:0 20px 40px -16px rgba(132,80,26,.9),inset 0 1px 0 rgba(255,255,255,.28)}
.btn--ghost{background:transparent;color:var(--cream-2);border-color:var(--gold-line)}
.btn--ghost:hover{background:rgba(231,205,140,.1);border-color:var(--gold-2);color:#fff;transform:translateY(-2px)}
/* nút viền vàng thanh mảnh — dùng trên nền sáng cho vẻ tinh tế */
.btn--gold{background:transparent;color:var(--green);border-color:var(--gold);letter-spacing:.02em}
.btn--gold:hover{background:var(--green);color:var(--gold-2);border-color:var(--green);transform:translateY(-2px)}
.btn--lg{padding:1.05em 2.1em;font-size:1.02rem}
.btn--block{width:100%}

/* ---- Brand mark ---- */
.brand{display:flex;flex-direction:row;align-items:center;gap:11px;line-height:1}
.brand__name{font-family:var(--serif);font-weight:500;font-size:1.42rem;letter-spacing:.005em;color:var(--cream-2)}
.nav--solid .brand__name{font-size:1.28rem}

/* ============ NAV ============ */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .3s,box-shadow .3s,padding .3s;padding:14px 0}
/* 🐞 Neo bị thanh đầu trang che — lỗi có từ trước, cổng `thu-neo.mjs` bắt được 2026-08-12:
   bấm 4 neo (#dac-san · #thuc-don · #set-mam · #dat-ban) thì khối nhảy tới đúng mép 0px, mà
   `.nav` là `position:fixed` cao ~74px (padding 14×2 + logo 46) nên nuốt trọn phần đầu khối —
   tiêu đề chương biến mất. Đếm thẻ `href="#..."` không bắt được ca này, phải BẤM THẬT mới thấy. */
section[id],main [id]{scroll-margin-top:92px}
.nav__inner{display:flex;align-items:center;gap:26px}
.brand__logo{height:46px;width:auto;display:block}
.nav--solid .brand__logo{height:40px;transition:height .3s}
.nav__links{display:flex;gap:26px;margin-left:auto;font-weight:600;font-size:.96rem}
.nav__links a{color:var(--cream-2);opacity:.9;position:relative;padding:4px 0}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:2px;background:var(--orange-2);transition:width .3s}
.nav__links a:hover{opacity:1}.nav__links a:hover::after{width:100%}
.nav__cta{padding:.6em 1.25em}
.nav__burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.nav__burger span{width:26px;height:2.5px;background:var(--cream-2);border-radius:2px;transition:.3s}
/* solid state (after scroll) */
.nav--solid{background:rgba(18,34,24,.92);backdrop-filter:blur(10px);box-shadow:0 8px 30px -18px #000;padding:9px 0}

/* ============ HERO — bìa split điện ảnh, sang trọng ============ */
.hero{position:relative;display:grid;grid-template-columns:1.02fr .98fr;min-height:100svh;overflow:hidden;background:var(--green)}
.hero__left{position:relative;background:
  radial-gradient(130% 90% at 8% 0%,rgba(231,205,140,.12),transparent 52%),
  linear-gradient(180deg,#143024,#0f2419);
  color:var(--cream-2);display:flex;align-items:center;padding:132px 6.4% 88px}
.hero__left::before{content:"";position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='78'%20height='78'%3E%3Cpath%20d='M39%2012L42%2035L65%2039L42%2043L39%2066L36%2043L13%2039L36%2035Z'%20fill='%23f6efe1'%20fill-opacity='0.04'/%3E%3C/svg%3E");
  background-size:78px 78px}
/* hairline vàng dọc chia 2 panel — chữ ký sang trọng */
.hero__left::after{content:"";position:absolute;top:0;bottom:0;right:0;width:1px;z-index:4;
  background:linear-gradient(180deg,transparent,var(--gold-line) 22%,var(--gold-line) 78%,transparent)}
.hero__left-inner{position:relative;max-width:544px;animation:heroIn 1s cubic-bezier(.2,.8,.2,1) both}
@keyframes heroIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.hero__brand{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.hero__emblem{width:58px;height:auto;filter:drop-shadow(0 5px 14px rgba(0,0,0,.45))}
.hero__word{font-family:var(--serif);font-weight:500;font-size:2.35rem;line-height:1;color:var(--cream-2);letter-spacing:.008em}
.hero__sub{display:block;font-size:.58rem;letter-spacing:.42em;color:var(--gold-2);font-weight:600;margin-bottom:32px}
.hero__eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:.7rem;letter-spacing:.26em;text-transform:uppercase;font-weight:600;color:var(--gold-2);margin-bottom:20px}
.hero__eyebrow::before{content:"";width:34px;height:1px;background:linear-gradient(90deg,var(--gold),transparent)}
.hero__title{font-family:var(--serif);font-weight:420;font-size:clamp(2.5rem,4.8vw,4.15rem);line-height:1.05;letter-spacing:-.018em;font-variation-settings:'opsz' 144,'SOFT' 0}
.hero__title em{font-style:normal;color:var(--gold-2)}
.hero__lead{margin-top:22px;font-size:clamp(1.02rem,1.35vw,1.16rem);color:rgba(245,237,220,.82);max-width:35em;font-weight:300;line-height:1.72}
.hero__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.hero__proof{display:flex;align-items:center;gap:11px;margin-top:30px;font-size:.95rem;color:rgba(245,237,220,.8)}
.hero__proof strong{font-size:1.16rem;color:#fff;font-family:var(--serif);font-weight:500}
.stars{color:var(--gold-2);letter-spacing:2px}
.stars__half{opacity:.4}
.hero__right{position:relative;overflow:hidden;background:#0d2016}
.hero__right img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:36% 64%;animation:kenburns 26s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1.04)}to{transform:scale(1.15)}}
/* phủ tối mép trái + dải tối dưới thanh điều hướng (ảnh thật sáng hơn ảnh cũ) + vignette */
.hero__right::before{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(10,24,16,.74),rgba(10,24,16,.34) 96px,transparent 168px),
    linear-gradient(90deg,var(--green),transparent 24%),
    radial-gradient(130% 100% at 72% 46%,transparent 38%,rgba(9,20,14,.5))}
/* viền vàng trong khung ảnh — nét gallery */
.hero__right::after{content:"";position:absolute;inset:18px;z-index:2;border:1px solid var(--gold-line);pointer-events:none}
.hero__scroll{position:absolute;left:25%;bottom:24px;transform:translateX(-50%);z-index:5;
  color:var(--gold-2);font-size:1.7rem;opacity:.75;animation:bob 1.9s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,7px)}}

/* ============ STORY ============ */
.story{background-image:var(--bg-scene-light);background-size:cover;background-position:center}
.story__grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,70px);align-items:center}
.story__text p{margin-top:16px;font-size:1.06rem;color:#43524a}
.story__facts{list-style:none;display:flex;gap:26px;margin-top:32px;flex-wrap:wrap}
.story__facts li{display:flex;flex-direction:column}
.story__facts b{font-family:var(--serif);font-size:2.1rem;color:var(--orange);line-height:1}
.story__facts span{font-size:.86rem;color:#5d6b61;margin-top:4px;max-width:8em}
.story__media{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.story__media img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .8s}
.story__media:hover img{transform:scale(1.05)}
.story__media figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 22px 16px;
  background:linear-gradient(transparent,rgba(12,26,18,.85));color:var(--cream-2);font-style:normal;font-family:var(--serif)}

/* ============ DISHES (nền lá) ============ */
.section--leaves{position:relative;background:var(--green);color:var(--cream-2)}
.section--leaves::before{content:"";position:absolute;inset:0;
  background:url("../img/gen/bg-garden.webp") center/cover;opacity:.16;mix-blend-mode:luminosity}
.section--leaves>*{position:relative}
.dishes__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.dish{position:relative;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);background:#0d1c14}
.dish img{width:100%;aspect-ratio:1/1;object-fit:cover;transition:transform .7s}
.dish:hover img{transform:scale(1.09)}
.dish figcaption{position:absolute;inset:auto 0 0 0;padding:30px 16px 15px;
  background:linear-gradient(transparent,rgba(9,20,13,.9));font-weight:600;z-index:2;display:flex;flex-direction:column;gap:3px}
.dish figcaption span{font-size:1rem}
/* Việc 2 §_tu-duy — giá + ô bát/đĩa đè lên ảnh (absolute), KHÔNG cộng thêm chiều cao thẻ */
.dish__ohat{position:absolute;top:10px;left:10px;z-index:2;font-family:var(--sans);font-size:.64rem;
  font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green);
  background:var(--gold-2);padding:4px 10px;border-radius:999px;box-shadow:0 6px 14px -8px rgba(9,20,13,.6)}
.dish__ohat--dia{background:var(--orange-2)}
.dish__name{font-size:1rem}
.dish figcaption .dish__meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin-top:1px}
.dish figcaption .dish__price{font-family:var(--sans);font-weight:700;font-size:.9rem;color:var(--gold-2);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.dish figcaption .dish__price i{font-style:normal;font-size:.78em;opacity:.82;margin-left:1px}
.dish figcaption .dish__note{font-size:.68rem;font-weight:600;color:rgba(246,239,225,.7);
  border:1px solid rgba(246,239,225,.32);border-radius:999px;padding:2px 8px;white-space:nowrap}

/* ============ THỰC ĐƠN GỌI MÓN ============ */
.menu{background-image:var(--bg-scene-light);background-size:cover;background-position:center}
.menu__cat h3 .cat-thumb{width:46px;height:46px;border-radius:11px;object-fit:cover;flex-shrink:0}
.menu__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,72px)}
.menu__cat{margin-bottom:30px}
.menu__cat:last-child{margin-bottom:0}
.menu__cat h3{font-family:var(--serif);font-size:1.32rem;color:var(--green);display:flex;align-items:center;gap:14px;margin-bottom:14px}
.menu__cat h3::after{content:"";flex:1;height:1px;background:var(--line)}
.menu__item{display:flex;align-items:baseline;gap:6px;padding:6px 0}
.menu__item .nm{color:#3c4b42;font-size:1.02rem}
.menu__item .dots{flex:1;border-bottom:1px dotted #bcc6bd;min-width:16px;transform:translateY(-3px)}
.menu__item .pr{font-weight:700;color:var(--orange);white-space:nowrap;font-size:1.02rem}
.menu__item .pr small{color:#9aa69d;font-weight:600;font-size:.76em;margin-left:1px}
.menu__note{margin-top:26px;font-size:.94rem;color:#5d6b61}
.menu__note a{color:var(--orange);font-weight:700}

/* ============ SETS ============ */
.sets{background-image:var(--bg-scene-light);background-size:cover;background-position:center}
.sets__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.set{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  padding:28px 26px;display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}
.set:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.set__top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding-bottom:16px;margin-bottom:16px;border-bottom:1px dashed var(--line)}
.set__top h3{font-family:var(--serif);font-size:1.4rem;color:var(--green)}
.set__price{font-weight:700;font-size:1.28rem;color:var(--orange);white-space:nowrap}
.set__price i{font-style:normal;font-size:.85em;margin-left:1px}
.set ul{list-style:none;display:flex;flex-direction:column;gap:9px;flex:1}
.set li{position:relative;padding-left:20px;font-size:.97rem;color:#4c5b50}
.set li::before{content:"•";position:absolute;left:2px;color:var(--orange);font-weight:700}
.set__cta{margin-top:22px;font-weight:700;color:var(--green);align-self:flex-start;transition:color .2s,gap .2s}
.set__cta:hover{color:var(--orange)}
.set--feature{border-color:var(--orange);box-shadow:0 20px 46px -24px rgba(200,100,44,.55)}
.set__flag{position:absolute;top:-13px;left:26px;background:var(--orange);color:#fff;font-size:.74rem;
  font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 12px;border-radius:999px}
/* Việc 4 §_tu-duy — đếm ô: gắn vào hàng .set__top có sẵn, xuống dòng riêng gọn (order+basis100%, không phá bố cục tiêu đề/giá) + dòng đổi ngang */
.set__top{flex-wrap:wrap}
.set__top h3{order:1}
.set__top .set__price{order:2}
.set__count{order:3;flex-basis:100%;margin-top:7px;font-size:.74rem;font-weight:700;letter-spacing:.02em;color:#8a9690}
.set__swap{margin-top:12px;padding-top:11px;border-top:1px dashed var(--line);font-size:.8rem;color:#5d6b61;line-height:1.5}
.set__swap b{color:var(--green);font-weight:600}
.set__swap-diff{color:var(--orange);font-weight:700;white-space:nowrap}
/* Mâm THIẾU Ô — set nào 0 bát là sai lối bày "bán sơn bán thuỷ" mà chính trang vừa nêu ở dải
   #luat-mam. Đánh dấu bằng CHÍNH accent đang có (mật ong), KHÔNG thêm màu thứ hai — cổng bản
   sắc bắt "một accent duy nhất". Đây là chỗ câu sự thật §2c làm việc: trang CHỈ RA ô còn trống
   rồi mách cách điền, thay vì im lặng bán một mâm sai luật. */
/* 🐞 HAI THANH DÁN ĐÁY CHỒNG NHAU — soi mắt khổ 390px bắt được 2026-08-12, cổng máy không bắt.
   Đo bằng Playwright: `.mobilebar` nằm y=776 cao 68 (z-index 95) và `.hw-actionbar` nằm y=788
   cao 56 (z-index 9999) — actionbar đè lên mobilebar ngay chỗ chốt đơn, nuốt mất nút "Đặt bàn".
   Hai thanh BÙ NHAU chứ không thay nhau: mobilebar có Đặt bàn nhưng thiếu Zalo và Chỉ đường;
   actionbar có Zalo + Chỉ đường nhưng thiếu Đặt bàn. Nên hợp nhất: thêm nút Đặt bàn vào
   `.hw-actionbar` (thanh chuẩn xưởng, mang marker `data-hw-actionbar` mà cổng G3 dò), rồi ẩn
   `.mobilebar`. Giữ nguyên `.mobilebar` trong mã để lùi lại được nếu cần. */
.mobilebar{display:none!important}
.hw-actionbar a[data-hw-act="dat"]{background:var(--orange);color:#fffdf8}

/* 🎆 BANNER RẢI (2026-08-12, Điện Hạ: "rải rác một cách thông minh sẽ tốt hơn là tụ một chỗ…
   để như hiện tại thì nhỏ quá"). Trước đây ba tấm xếp một hàng trong khối #uu-dai riêng, mỗi
   tấm chỉ ~390px nên chữ trên banner đọc không ra. Nay mỗi tấm đứng RIÊNG, RỘNG HẾT KHỔ, và
   nằm ngay cuối khối hàng mà nó quảng bá:
     mam-1 (4 bát 6 đĩa)        → cuối #dac-san, ngay sau lưới thẻ vừa gắn chip BÁT/ĐĨA
     mam-3 (tám bát tám đĩa)    → cuối #thuc-don, ngay sau kho món dùng để điền ô
     mam-2 (đãi khách, đổi món) → cuối #set-mam, ngay sau sáu mâm có dòng đổi ngang
   🚨 Rải VÀO TRONG khối hàng chứ không dựng khối riêng: px của banner cộng vào chính khối
   đang được cổng `do-ti-le.mjs` tính là "hàng hoá", nên bày banner to KHÔNG làm loãng trọng
   tâm trang — nếu tách ra khối riêng thì mỗi tấm là px thuần vào mẫu số. */
.mamban{display:block;position:relative;margin:clamp(30px,4vw,46px) auto 0;max-width:1180px;
  border-radius:var(--r);overflow:hidden;border:1px solid var(--gold-line);
  box-shadow:0 34px 74px -34px rgba(10,24,16,.72);
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.mamban img{width:100%;height:auto;display:block}
.mamban:hover{transform:translateY(-3px);box-shadow:0 46px 92px -34px rgba(10,24,16,.82)}
@media(max-width:760px){
  .mamban{margin-top:24px;border-radius:var(--r-sm)}
}
@media(prefers-reduced-motion:reduce){.mamban{transition:none}.mamban:hover{transform:none}}

.set__count--thieu{color:var(--orange)}
.set__swap--thieu{border-top-color:rgba(181,119,42,.42)}
.set__swap--thieu::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--orange);margin-right:7px;vertical-align:1px}

/* ============ LUẬT MÂM — dải mảnh, chặng dẫn giữa Đặc sản & Thực đơn ============ */
.matlaw{position:relative;background:var(--green-2);padding:clamp(26px,3.6vw,40px) 0;overflow:hidden}
.matlaw::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--gold-line),transparent);opacity:.5}
.matlaw__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}
.matlaw__note{max-width:34em;color:rgba(246,239,225,.86);font-size:.95rem;line-height:1.55}
.matlaw__note b{color:var(--gold-2);font-weight:600}
.matlaw__tiers{display:flex;gap:16px;flex-wrap:wrap}
.matlaw__tier{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 16px;
  border:1px solid var(--gold-line);border-radius:12px;min-width:104px}
.matlaw__tier b{font-family:var(--serif);font-size:1rem;color:var(--gold-2);
  font-variation-settings:'opsz' 44;font-feature-settings:'lnum' 1,'tnum' 1}
.matlaw__tier span{font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;color:rgba(246,239,225,.65)}
@media(max-width:820px){.matlaw__inner{flex-direction:column;align-items:flex-start}}

/* ============ BOOKING / FLOOR ============ */
.section--dark{background-image:var(--bg-scene-dark);background-size:cover;background-position:center;color:var(--cream-2)}
.booking__layout{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:start}
.floor{background:rgba(255,255,255,.04);border:1px solid rgba(246,239,225,.14);border-radius:var(--r);padding:22px}
.floor__legend{display:flex;gap:20px;flex-wrap:wrap;font-size:.86rem;margin-bottom:18px;color:rgba(246,239,225,.85)}
.floor__legend span{display:inline-flex;align-items:center;gap:7px}
.dot{width:13px;height:13px;border-radius:50%;display:inline-block}
.dot--free{background:#3f6b4d;border:1.5px solid var(--orange-2)}
.dot--sel{background:var(--orange)}
.dot--busy{background:#4a4a4a;border:1.5px dashed #7d7d7d}
.floor__stage{display:flex;flex-direction:column;gap:16px}
.zone{border:1.5px dashed rgba(246,239,225,.22);border-radius:12px;padding:26px 18px 24px;position:relative}
.zone__name{position:absolute;top:-11px;left:14px;background:var(--green);padding:0 10px;font-size:.78rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--orange-2);font-weight:700}
.zone__tables{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:36px 42px;
  justify-items:center;align-items:center;padding:18px 20px 10px;margin-top:6px}
.zone__tables--vip{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:44px 50px}
/* sàn lát mờ trong mỗi khu — cho ra dáng mặt bằng thật */
.zone::before{content:"";position:absolute;inset:0;border-radius:12px;pointer-events:none;
  background-image:repeating-linear-gradient(0deg,rgba(246,239,225,.05) 0 1px,transparent 1px 46px),
    repeating-linear-gradient(90deg,rgba(246,239,225,.05) 0 1px,transparent 1px 46px)}
/* ghế quanh bàn (4 cạnh) — gợi bàn 4-6 chỗ */
.table::before{content:"";position:absolute;top:-11px;left:-11px;right:-11px;bottom:-11px;border-radius:12px;pointer-events:none;
  --seat:rgba(222,169,90,.5);
  background-image:linear-gradient(var(--seat),var(--seat)),linear-gradient(var(--seat),var(--seat)),
    linear-gradient(var(--seat),var(--seat)),linear-gradient(var(--seat),var(--seat)),
    linear-gradient(var(--seat),var(--seat)),linear-gradient(var(--seat),var(--seat));
  background-repeat:no-repeat;
  background-size:18px 5px,18px 5px,18px 5px,18px 5px,5px 20px,5px 20px;
  background-position:28% 0,72% 0,28% 100%,72% 100%,0 50%,100% 50%}
.table--vip::before{--seat:rgba(222,169,90,.62);background-size:22px 6px,22px 6px,22px 6px,22px 6px,6px 22px,6px 22px}
.table{position:relative;width:86px;height:58px;border-radius:8px;border:2px solid var(--orange-2);
  background:linear-gradient(160deg,#3f6b4d,#25482f);color:var(--cream-2);
  font-weight:700;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;
  transition:transform .2s,box-shadow .2s,background .2s;font-family:var(--sans);font-size:.92rem}
.table small{font-size:.62rem;font-weight:600;opacity:.8}
.table--vip{width:140px;height:72px;border-radius:9px}
.table--vip::after{content:"";position:absolute;left:8px;bottom:-2px;width:16px;height:3px;background:var(--orange-2);border-radius:2px}
/* Bản đồ mặt bằng chi tiết */
.zone{min-height:168px}
.floor__stage{gap:22px}
.zone--garden{background:linear-gradient(rgba(63,107,77,.16),rgba(63,107,77,.05))}
.zone--vip{background:rgba(200,100,44,.06)}
.deco{position:absolute;pointer-events:none;user-select:none}
.deco.tree{font-size:1.45rem;opacity:.9;filter:saturate(1.15) drop-shadow(0 2px 3px rgba(0,0,0,.35))}
.planbar{display:flex;justify-content:center;margin:2px 0}
.planbar span{font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:rgba(246,239,225,.72);font-weight:700;border:1px dashed rgba(246,239,225,.3);border-radius:20px;padding:4px 14px;background:rgba(255,255,255,.03)}
.planbar--stairs span{color:var(--orange-2);border-color:rgba(221,138,74,.45)}
.planfront{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:4px;padding-top:12px;border-top:2px solid rgba(246,239,225,.2)}
.planfront__rec{font-size:.8rem;font-weight:700;color:var(--cream-2);background:rgba(255,255,255,.08);border:1px solid rgba(246,239,225,.22);border-radius:8px;padding:7px 13px}
.planfront__gate{font-size:.82rem;font-weight:800;letter-spacing:.07em;color:#12241c;background:var(--orange-2);border-radius:8px;padding:7px 18px}
.table:not(.is-busy):hover{transform:translateY(-3px) scale(1.05);box-shadow:0 10px 20px -8px rgba(0,0,0,.5)}
.table.is-selected{background:var(--orange);border-color:#fff;box-shadow:0 0 0 4px rgba(200,100,44,.35);animation:pulse 1.3s infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(200,100,44,.35)}50%{box-shadow:0 0 0 9px rgba(200,100,44,.08)}}
.table.is-busy{background:repeating-linear-gradient(45deg,#3a3a3a,#3a3a3a 5px,#424242 5px,#424242 10px);
  border-color:#666;color:#9a9a9a;cursor:not-allowed}
.table.is-busy small{opacity:.7}
.floor__hint{margin-top:auto;padding-top:18px;text-align:center;font-size:.82rem;color:rgba(246,239,225,.6)}

.bkform{background:var(--cream-2);color:var(--green-ink);border-radius:var(--r);padding:26px;box-shadow:var(--shadow)}
.bkform__empty{text-align:center;padding:34px 10px;color:#5d6b61}
.bkform__icon{font-size:2.4rem;margin-bottom:12px}
.bkform__form{display:flex;flex-direction:column;gap:14px}
.bkform__form[hidden]{display:none}
.bkform__chosen{background:var(--green);color:var(--cream-2);border-radius:10px;padding:12px 16px;
  display:flex;justify-content:space-between;align-items:center}
.bkform__chosen strong{font-family:var(--serif);font-size:1.15rem;color:var(--orange-2)}
.bkform label{display:flex;flex-direction:column;gap:6px;font-size:.86rem;font-weight:600;color:#3f4d44}
.bkform input,.bkform select{font-family:var(--sans);font-size:1rem;padding:.7em .8em;border:1.5px solid var(--line);
  border-radius:9px;background:#fff;color:var(--green-ink)}
.bkform input:focus,.bkform select:focus{outline:none;border-color:var(--orange)}
.bkform__row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bkform__cancel{background:none;border:0;color:#7a8880;font-weight:600;cursor:pointer;padding:6px;text-decoration:underline}
.bkform__cancel:hover{color:var(--orange)}
.booking__note{margin-top:22px;font-size:.85rem;color:rgba(246,239,225,.6);max-width:60ch}
/* Đặt bàn: 2 tầng + biểu mẫu trước + gợi ý mâm */
.floor__bar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.floor__tabs{display:flex;gap:8px;flex-wrap:wrap}
.floor__tab{background:rgba(255,255,255,.06);border:1px solid rgba(246,239,225,.18);color:var(--cream-2);padding:.5em 1em;border-radius:999px;cursor:pointer;font-weight:600;font-size:.84rem;transition:.2s}
.floor__tab:hover{background:rgba(255,255,255,.12)}
.floor__tab.is-active{background:var(--orange);border-color:var(--orange);color:#fff}
.floor__stage[hidden]{display:none}
.table--dim{opacity:.32;filter:grayscale(.5)}
.table--fit{box-shadow:0 0 0 2px #7aa07d,0 0 12px -2px rgba(122,160,125,.7)}
/* cảnh báo ghép bàn / ngồi chật */
.bkwarn{background:rgba(200,145,47,.1);border:1px solid rgba(191,127,42,.4);border-radius:12px;padding:16px}
.bkwarn__msg{font-size:.92rem;line-height:1.55;color:#5a4a2a}
.bkwarn__msg b{color:var(--orange)}
.bkwarn__insist{margin-top:12px;width:100%;background:none;border:1px solid var(--line);color:var(--green);padding:.7em 1em;border-radius:999px;font-weight:600;cursor:pointer;font-size:.9rem;transition:.2s}
.bkwarn__insist:hover{border-color:var(--orange);color:var(--orange)}
.bkstep{display:flex;align-items:center;gap:10px;margin:4px 0 14px;font-family:var(--serif);font-size:1.08rem;color:var(--green-ink)}
.bkstep__n{width:24px;height:24px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-size:.8rem;font-family:var(--sans);font-weight:700;flex-shrink:0}
.bkfields{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.bkfield--guests{grid-column:1/-1}
.setsuggest{background:rgba(200,100,44,.09);border:1px solid rgba(221,138,74,.42);border-radius:12px;padding:15px 17px;margin-bottom:20px}
.setsuggest__head{font-weight:700;color:var(--orange);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:7px}
.setsuggest__name{font-family:var(--serif);font-size:1.18rem;color:var(--green-ink);line-height:1.3}
.setsuggest__price{color:var(--orange);font-weight:700;font-family:var(--sans);font-size:.95rem;white-space:nowrap}
.setsuggest__note{font-size:.9rem;color:#4c5b50;margin-top:7px;line-height:1.5}
/* Đặt bàn: khoá sơ đồ + chọn mâm/tự chọn món + tìm món */
.bkstep--mt{margin-top:22px}
.floor{position:relative;align-self:stretch;display:flex;flex-direction:column}
.floor__lock{position:absolute;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;text-align:center;background:rgba(14,28,18,.8);backdrop-filter:blur(3px);border-radius:var(--r);padding:24px;color:var(--cream-2)}
.floor.is-open .floor__lock{display:none}
.floor__lock-ic{font-size:2rem;display:block;margin-bottom:10px}
.floor__lock p{max-width:26ch;margin:0 auto;line-height:1.5}
.floor__lock b{color:var(--orange-2)}
.bkmodes{display:flex;gap:6px;margin:0 0 14px;flex-wrap:wrap}
.bkmode{flex:1;min-width:92px;background:#fff;border:1.5px solid var(--line);border-radius:9px;padding:.55em .4em;font-weight:600;font-size:.82rem;color:#4c5b50;cursor:pointer;transition:.2s}
.bkmode.is-active{background:var(--orange);border-color:var(--orange);color:#fff}
.bkpick{display:grid;gap:8px;margin-bottom:16px}
.bkpick[hidden]{display:none}
.setcard{text-align:left;background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:11px 13px;cursor:pointer;transition:.2s;font-family:var(--sans)}
.setcard:hover{border-color:var(--orange-2)}
.setcard.is-active{border-color:var(--orange);box-shadow:0 0 0 2px rgba(200,100,44,.2)}
.setcard__top{display:flex;justify-content:space-between;gap:8px;font-family:var(--serif);font-size:1.02rem;color:var(--green)}
.setcard__price{color:var(--orange);font-weight:700;font-family:var(--sans);font-size:.88rem;white-space:nowrap}
.setcard__note{font-size:.8rem;color:#6b776e;margin-top:3px}
.dishsearch{width:100%;font-size:1rem;padding:.7em .9em;border:1.5px solid var(--line);border-radius:9px;margin-bottom:10px;font-family:var(--sans);color:var(--green-ink)}
.dishsearch:focus{outline:none;border-color:var(--orange)}
.dishresults{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;margin-bottom:12px}
.dishrow{display:flex;align-items:center;gap:8px;padding:7px 2px;border-bottom:1px solid var(--line)}
.dishrow__nm{flex:1;font-size:.93rem;color:#3c4b42}
.dishrow__pr{font-size:.84rem;color:#6b776e;white-space:nowrap}
.dishrow__add{background:var(--green);color:#fff;border:0;width:26px;height:26px;border-radius:7px;font-size:1.15rem;line-height:1;cursor:pointer;flex-shrink:0}
.dishrow__add:hover{background:var(--orange)}
/* Kho: món hết hàng */
.dishrow--out{opacity:.62}
.dishrow--out .dishrow__nm{color:#8a8a8a;text-decoration:line-through;text-decoration-color:rgba(0,0,0,.25)}
.dishrow__tag{font-size:.8rem;font-weight:700;color:#b23b2e;white-space:nowrap}
.menu__item.is-out{opacity:.72}
.menu__item.is-out .nm{color:#8a8a8a}
.menu__item.is-out .dots{opacity:.35}
.menu__item.is-out .pr{display:none}
.menu__item.is-out::after{content:"Hết hàng";color:#b23b2e;font-weight:700;font-size:.85rem;white-space:nowrap}
.cart{background:rgba(200,100,44,.07);border:1px solid rgba(221,138,74,.35);border-radius:10px;padding:12px 14px;margin-bottom:18px}
.cart__empty{font-size:.85rem;color:#6b776e;text-align:center;padding:6px}
.cartrow{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:.9rem}
.cartrow__nm{flex:1;color:#33413a}
.cartqty{display:flex;align-items:center;gap:7px;font-weight:600}
.cartqty button{width:22px;height:22px;border-radius:6px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:700;color:var(--green);line-height:1}
.cart__total{display:flex;justify-content:space-between;border-top:1px dashed var(--line);margin-top:8px;padding-top:8px;font-weight:700;color:var(--green)}
.cart__total b{color:var(--orange)}
/* Mâm gập/mở (accordion) */
.setcard__head{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;background:none;border:0;cursor:pointer;font-family:var(--serif);font-size:1.02rem;color:var(--green);text-align:left;padding:0}
.setcard__chev{display:inline-block;transition:transform .25s;color:var(--orange);font-size:.7rem;margin-left:4px}
.setcard.is-open .setcard__chev{transform:rotate(90deg)}
.setcard__dishes{list-style:none;margin:10px 0 0;padding:10px 0 0;border-top:1px dashed var(--line);display:none;flex-direction:column;gap:5px}
.setcard.is-open .setcard__dishes{display:flex}
.setcard__dishes li{position:relative;padding-left:16px;font-size:.86rem;color:#4c5b50}
.setcard__dishes li::before{content:"•";position:absolute;left:2px;color:var(--orange)}
.setcard__pick{margin-top:10px;align-self:flex-start;font-weight:700;font-size:.86rem;color:var(--orange);background:none;border:0;cursor:pointer;padding:0}
.setcard.is-chosen{border-color:var(--orange);box-shadow:0 0 0 2px rgba(200,100,44,.2)}
/* Gợi ý cân bằng */
.bkbalance{background:rgba(63,107,77,.12);border:1px solid rgba(63,107,77,.4);border-radius:10px;padding:13px 15px;margin-bottom:16px}
.bkbalance[hidden]{display:none}
.bkbalance p{font-size:.92rem;color:#33413a;margin-bottom:10px}
.bkbalance p b{color:#2e6b45}
.bkbalance__btns{display:flex;gap:8px;flex-wrap:wrap}
.bkbalance__yes{background:#3f6b4d;color:#fff;border:0;border-radius:8px;padding:.55em 1em;font-weight:700;font-size:.86rem;cursor:pointer;animation:blinkbtn 1.1s ease-in-out infinite}
@keyframes blinkbtn{0%,100%{box-shadow:0 0 0 0 rgba(63,107,77,.55)}50%{box-shadow:0 0 0 7px rgba(63,107,77,0)}}
.bkbalance__yes:hover{background:#34583f}
.bkbalance__skip{background:none;border:1px solid var(--line);border-radius:8px;padding:.55em 1em;color:#6b776e;font-weight:600;font-size:.86rem;cursor:pointer}
.bkcat-label{font-size:.8rem;font-weight:700;color:var(--orange);text-transform:uppercase;letter-spacing:.04em;margin:2px 0 6px}
/* Thanh toán QR + thành công */
.bkpay[hidden],.bksuccess[hidden]{display:none}
.bkpay{text-align:center}
.bkpay__head{font-family:var(--serif);font-size:1.2rem;color:var(--green);margin-bottom:12px}
.bkpay__box{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:14px}
.bkpay__qr{width:118px;height:118px;border-radius:8px;flex-shrink:0}
.bkpay__side{text-align:left}
.bkpay__label{font-size:.76rem;color:#6b776e;text-transform:uppercase;letter-spacing:.04em}
.bkpay__amt{font-family:var(--serif);font-size:1.6rem;color:var(--orange);font-weight:700;margin:3px 0}
.bkpay__sub{font-size:.82rem;color:#6b776e;line-height:1.4}
.bksuccess{text-align:center;padding:8px 0}
.bksuccess__ic{font-size:2.6rem}
.bksuccess__title{font-family:var(--serif);font-size:1.4rem;color:var(--green);margin:6px 0 10px}
.bksuccess__info{font-size:.94rem;color:#3c4b42;line-height:1.55;margin-bottom:12px}
.bksuccess__info b{color:var(--orange)}
.bksuccess__hold{background:rgba(200,100,44,.09);border:1px solid rgba(221,138,74,.4);border-radius:10px;padding:10px 12px;font-size:.9rem;color:#3c4b42;margin-bottom:12px}
.bksuccess__hold b{color:var(--orange)}

/* ============ REVIEWS ============ */
.reviews{background-image:var(--bg-scene-light);background-size:cover;background-position:center}
.reviews__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.review{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:28px 26px;box-shadow:0 12px 30px -22px rgba(16,32,22,.4)}
.review__head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.review__ava{width:48px;height:48px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid rgba(191,127,42,.4)}
.review__ava--m{display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:700;font-size:1.28rem;color:var(--cream-2);background:linear-gradient(140deg,var(--green-2),var(--green))}
.review__who{display:flex;flex-direction:column;gap:3px}
.review__name{font-style:normal;font-weight:700;font-size:1rem;color:var(--green)}
.review__stars{color:var(--gold);font-size:1rem;letter-spacing:2px}
.review__half{opacity:.35}
.review p{font-family:var(--serif);font-size:1.06rem;line-height:1.55;color:#33413a}
.review__src{display:block;margin-top:16px;font-size:.82rem;color:#8a9089;font-weight:600}

/* ============ CONTACT ============ */
.contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,64px);align-items:center}
.contact__list{list-style:none;margin:26px 0 30px;display:flex;flex-direction:column;gap:16px}
.contact__list li{display:flex;flex-direction:column;gap:3px;padding-bottom:16px;border-bottom:1px solid rgba(246,239,225,.14)}
.contact__list span{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-2);font-weight:700}
.contact__list b{font-size:1.08rem;font-weight:600;color:var(--cream-2)}
.contact__list a:hover{color:var(--orange-2)}
.contact__media{border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.contact__media img{width:100%;aspect-ratio:5/4;object-fit:cover}
.contact__map{margin-top:clamp(28px,5vw,48px);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(246,239,225,.16)}
.contact__map iframe{width:100%;height:clamp(300px,40vw,420px);border:0;display:block}

/* ============ FOOTER ============ */
.footer{background:#0e1e14;color:rgba(246,239,225,.6);padding:34px 0}
.footer__inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer .brand__mark--sm{border-color:var(--orange);color:var(--orange)}
.footer p{font-size:.86rem}
.credit{margin-top:20px;padding-top:16px;border-top:1px solid rgba(246,239,225,.1);text-align:center;font-size:.86rem;color:rgba(246,239,225,.5)}
.credit__link{color:var(--orange-2);font-weight:700;position:relative;text-decoration:none;transition:color .25s;padding-bottom:2px;white-space:nowrap}
.credit__link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:linear-gradient(90deg,var(--orange),var(--gold));transform:scaleX(0);transform-origin:left;transition:transform .3s}
.credit__link:hover{color:var(--gold)}
.credit__link:hover::after{transform:scaleX(1)}
/* Chỉ đường + thanh đặt bàn mobile */
.contact__maprow{text-align:center;margin-top:16px}
.mobilebar{display:none}
@media (max-width:768px){
  .mobilebar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:95;gap:10px;padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:rgba(15,29,20,.96);backdrop-filter:blur(8px);border-top:1px solid var(--gold-line)}
  .mobilebar a{padding:.85em;border-radius:11px;font-weight:600;font-size:1rem;text-align:center;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:.4em}
  .mobilebar__call{flex:0 0 92px;background:rgba(231,205,140,.1);color:var(--gold-2);border:1px solid var(--gold-line)}
  .mobilebar__book{flex:1;background:linear-gradient(135deg,#c68a34,#a56820);color:#fff8ea}
  body{padding-bottom:68px}
  .toast{bottom:84px}
}

/* ============ TOAST ============ */
.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,140%);z-index:80;
  background:#12241c;color:var(--cream-2);border:1px solid var(--orange);border-left:5px solid var(--orange);
  border-radius:12px;padding:16px 22px;max-width:min(92vw,440px);box-shadow:0 22px 50px -18px #000;
  transition:transform .45s cubic-bezier(.2,.9,.3,1.2);font-size:.96rem}
.toast.is-show{transform:translate(-50%,0)}
.toast b{color:var(--orange-2)}

/* ============ REVEAL (ẩn/hiện điều khiển bằng JS inline-style — fail-safe) ============ */
.reveal{transition:opacity .8s cubic-bezier(.22,.68,.16,1),transform .8s cubic-bezier(.22,.68,.16,1)}

/* ===== Nét nghệ đặc trưng (tinh, không phô) ===== */
.scrollbar{position:fixed;top:0;left:0;height:3px;width:0;z-index:100;background:linear-gradient(90deg,var(--orange),var(--gold));box-shadow:0 0 10px rgba(200,100,44,.45);transition:width .12s ease-out}
.eyebrow::before{content:"";display:inline-block;width:13px;height:13px;margin-right:9px;vertical-align:-1px;opacity:.92;
  background:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3E%3Cpath%20d='M12%201C13%208%2016%2011%2023%2012C16%2013%2013%2016%2012%2023C11%2016%208%2013%201%2012C8%2011%2011%208%2012%201Z'%20fill='%23c8642c'/%3E%3C/svg%3E") center/contain no-repeat}
.section__head .eyebrow::after{content:"";display:inline-block;width:30px;height:1px;background:currentColor;opacity:.4;vertical-align:middle;margin-left:12px}
.hero__title em{position:relative}
.hero__title em::after{content:"";position:absolute;left:.02em;right:.02em;bottom:0;height:2px;background:var(--orange-2);opacity:.45;transform:scaleX(0);transform-origin:left;animation:drawline .9s cubic-bezier(.6,0,.2,1) 1s forwards}
@keyframes drawline{to{transform:scaleX(1)}}
.dish::after{content:"";position:absolute;inset:0;border-radius:14px;border:1.5px solid transparent;transition:border-color .35s;pointer-events:none}
.dish:hover::after{border-color:rgba(215,164,65,.55)}
@media (prefers-reduced-motion:reduce){.hero__title em::after{animation:none;transform:scaleX(1)}}

/* ============ RESPONSIVE ============ */
@media (max-width:900px){
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero__right{order:-1;height:42vh;min-height:250px}
  /* bỏ vignette dọc nhưng GIỮ dải tối dưới thanh điều hướng — ảnh thật sáng, tên quán + nút menu đè lên ảnh */
  .hero__right::before{background:linear-gradient(180deg,rgba(10,24,16,.82),rgba(10,24,16,.38) 84px,transparent 148px)}
  .hero__left{padding:92px 24px 52px}
  .hero__scroll{display:none}
  .menu__grid{grid-template-columns:1fr;gap:0}
}
@media (max-width:1024px){
  .booking__layout{grid-template-columns:1fr}
  .floor{display:block}
  .dishes__grid{grid-template-columns:repeat(2,1fr)}
  .sets__grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:768px){
  .nav__links,.nav__cta{display:none}
  .nav__burger{display:flex}
  .nav__links.is-open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;
    background:rgba(14,30,20,.98);padding:18px 24px;gap:16px}
  .story__grid,.contact__grid{grid-template-columns:1fr}
  .story__media{order:-1}
  .reviews__grid{grid-template-columns:1fr}
}
@media (max-width:480px){
  .dishes__grid,.sets__grid{grid-template-columns:1fr}
  .hero__actions{flex-direction:column;align-items:stretch}
  .bkform__row{grid-template-columns:1fr}
  .footer__inner{flex-direction:column;text-align:center}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important}
  .reveal{opacity:1;transform:none}
}

/* ============ ĐẶT GIAO TẬN NƠI ============ */
.ship{background-image:var(--bg-scene-light);background-size:cover;background-position:center}
.ship__layout{display:grid;grid-template-columns:1.4fr 1fr;gap:26px;align-items:start}
.ship__sets{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.shipset{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px 16px 14px;transition:border-color .2s,box-shadow .2s}
.shipset.is-on{border-color:var(--orange);box-shadow:0 12px 26px -18px rgba(191,127,42,.6)}
.shipset__top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.shipset__name{font-family:var(--serif);font-size:1.08rem;color:var(--green);font-weight:700}
.shipset__price{font-weight:700;color:var(--orange);white-space:nowrap}
.shipset__desc{font-size:.83rem;color:#5d6b61;margin:6px 0 12px;line-height:1.5}
.shipset__qty{display:flex;align-items:center;gap:14px}
.qtybtn{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--line);background:var(--cream);color:var(--green);font-size:1.2rem;font-weight:700;line-height:1;cursor:pointer;transition:.2s}
.qtybtn:hover{border-color:var(--orange);color:var(--orange);transform:translateY(-1px)}
.shipset__n{min-width:1.4em;text-align:center;font-weight:700;font-size:1.05rem;color:var(--green-ink)}
.ship__cart{position:sticky;top:84px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--shadow)}
.shipcart__title{font-family:var(--serif);font-size:1.15rem;color:var(--green);font-weight:700;margin-bottom:14px}
.shipcart__empty{font-size:.9rem;color:#6c7a70;line-height:1.5}
.shipcart__line{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:.94rem;color:#33413a}
.shipcart__sum{margin-top:12px}
.shipcart__row{display:flex;justify-content:space-between;padding:4px 0;font-size:.92rem;color:#4c5b50}
.shipcart__row--total{border-top:1.5px solid var(--line);margin-top:6px;padding-top:10px;font-size:1.05rem;color:var(--green);font-weight:700}
.shipcart__row--total b{color:var(--orange);font-size:1.16rem}
.shipform{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.shipform label{display:flex;flex-direction:column;gap:5px;font-size:.84rem;font-weight:600;color:#3f4d44}
.shipform input,.shipform select{font:inherit;padding:.6em .7em;border:1px solid var(--line);border-radius:9px;background:var(--cream-2);color:var(--green-ink)}
.shipform__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:900px){.ship__layout{grid-template-columns:1fr}.ship__cart{position:static}}
@media (max-width:520px){.ship__sets{grid-template-columns:1fr}.shipform__row{grid-template-columns:1fr}}
/* tab chế độ */
.shipmodes{display:flex;gap:8px;margin-bottom:16px}
.shipmode{flex:1;background:rgba(255,255,255,.72);border:1px solid var(--line);color:var(--green-ink);padding:.62em 1em;border-radius:999px;cursor:pointer;font-weight:600;font-size:.9rem;transition:.2s}
.shipmode:hover{border-color:var(--orange)}
.shipmode.is-active{background:var(--orange);border-color:var(--orange);color:#fff}
/* tự gọi món */
.ship__custom .dishsearch{width:100%}
.ship__custom .dishresults{max-height:420px;overflow:auto;margin-top:10px}
/* stepper món lẻ trong giỏ */
.shipqty{display:inline-flex;align-items:center;gap:7px}
.shipqty__b{width:24px;height:24px;border-radius:50%;border:1px solid var(--line);background:var(--cream);color:var(--green);font-weight:700;line-height:1;cursor:pointer}
.shipqty__b:hover{border-color:var(--orange);color:var(--orange)}
.shipcart__lp{white-space:nowrap}
/* theo dõi giao: ETA + tiến trình + bản đồ */
.shiptrack{text-align:center}
.shiptrack__ic{font-size:2.2rem;margin-bottom:4px}
.shiptrack__eta{margin:10px 0 16px;font-size:.96rem;color:var(--green-ink)}
.shiptrack__eta b{color:var(--orange)}
.shiptrack__steps{list-style:none;text-align:left;margin:0 0 16px;padding:0;counter-reset:st}
.shiptrack__steps li{position:relative;padding:7px 0 7px 30px;font-size:.9rem;color:#93a096}
.shiptrack__steps li::before{counter-increment:st;content:counter(st);position:absolute;left:0;top:6px;width:20px;height:20px;border-radius:50%;background:var(--line);color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center}
.shiptrack__steps li.is-done{color:var(--green-ink)}
.shiptrack__steps li.is-done::before{content:"✓";background:var(--green-2)}
.shiptrack__steps li.is-active{color:var(--green);font-weight:700}
.shiptrack__steps li.is-active::before{background:var(--orange);box-shadow:0 0 0 4px rgba(191,127,42,.25)}
.shiptrack__map{border-radius:12px;overflow:hidden;border:1px solid var(--line);margin-bottom:14px}
.shiptrack__map iframe{width:100%;height:220px;border:0;display:block}
/* 🔧 hidden phải thắng display:grid/flex (nếu không, đổi chế độ set→món bị tràn) */
[hidden]{display:none!important}
/* nút xem chi tiết + hàng chân thẻ set */
.shipset__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px}
.shipset__detail{background:none;border:0;color:var(--orange);font-weight:600;font-size:.85rem;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:3px}
.shipset__detail:hover{color:#a56d1f}
/* 2 nút hành động khi đã chọn set */
.shipactions{display:flex;gap:12px;margin-top:16px}
.shipactions .btn{flex:1}
.shipactions__more{background:var(--orange);color:#fff;border-color:var(--orange);animation:pulseGlow 1.4s ease-in-out infinite}
.shipactions__more:hover{background:#a56d1f;transform:translateY(-2px)}
.shipactions__next{background:var(--paper);color:var(--green);border-color:var(--line)}
.shipactions__next:hover{border-color:var(--orange);color:var(--orange);transform:translateY(-2px)}
@keyframes pulseGlow{0%,100%{box-shadow:0 0 0 0 rgba(222,169,90,.5)}50%{box-shadow:0 0 22px 5px rgba(222,169,90,.78)}}
@media (prefers-reduced-motion:reduce){.shipactions__more{animation:none}}
/* modal xem chi tiết set */
.setmodal{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px}
.setmodal__backdrop{position:absolute;inset:0;background:rgba(12,26,18,.62);backdrop-filter:blur(3px)}
.setmodal__box{position:relative;background:var(--paper);border-radius:16px;max-width:440px;width:100%;max-height:84vh;overflow:auto;padding:30px 26px 24px;box-shadow:var(--shadow);animation:heroIn .3s ease both}
.setmodal__x{position:absolute;top:12px;right:14px;background:none;border:0;font-size:1.3rem;color:#8a978d;cursor:pointer;line-height:1}
.setmodal__name{font-family:var(--serif);font-size:1.5rem;color:var(--green);font-weight:700;padding-right:24px}
.setmodal__price{color:var(--orange);font-weight:700;font-size:1.12rem;margin:4px 0 16px}
.setmodal__list{list-style:none;margin:0 0 20px;padding:0}
.setmodal__list li{padding:8px 0 8px 22px;border-bottom:1px solid var(--line);font-size:.96rem;color:#33413a;position:relative}
.setmodal__list li::before{content:"•";position:absolute;left:4px;color:var(--orange);font-weight:700}
/* xem trước bản đồ + ETA khi nhập địa chỉ (trước thanh toán) */
.shipprev{margin-top:2px;animation:heroIn .3s ease both}
.shipprev__eta{font-size:.95rem;color:var(--green-ink);margin-bottom:8px}
.shipprev__eta b{color:var(--orange)}
.shipprev__km{color:#5d6b61;font-size:.86rem}
.shipprev__load{color:#8a978d}
.shipprev .shiptrack__map iframe{height:186px}
.ship .booking__note{color:#5d6b61}   /* khu Giao nền sáng → note phải màu tối mới đọc được */
/* đồng hồ giữ chỗ / giữ đơn 2 phút ở bước thanh toán */
.paytimer{text-align:center;font-size:.9rem;color:#8a6a2a;background:rgba(200,145,47,.12);border:1px solid rgba(191,127,42,.25);border-radius:9px;padding:7px 10px;margin-bottom:12px}
.paytimer b{color:var(--orange);font-variant-numeric:tabular-nums;font-size:1.02rem}
.paytimer.is-low{background:rgba(192,57,43,.1);border-color:rgba(192,57,43,.3)}
.paytimer.is-low b{color:#c0392b}

/* ============ LIÊN HỆ QUA MESSENGER (Day 51+ 2026-07-22) ============ */
/* Nút Messenger trong khu Liên hệ */
.contact__cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}
.btn--mess{background:linear-gradient(135deg,#0a7cff,#8a2be2);color:#fff;box-shadow:0 10px 22px -10px rgba(10,124,255,.75)}
.btn--mess:hover{background:linear-gradient(135deg,#0a6ee0,#7a1fd0);color:#fff;transform:translateY(-2px)}
.contact__list a[data-mess]{color:var(--cream-2)}
/* Bong bóng Messenger nổi (desktop) */
.msgr-fab{position:fixed;right:22px;bottom:24px;z-index:96;display:inline-flex;align-items:center;gap:.55em;
  padding:.7em 1.2em .7em .8em;border-radius:999px;font-weight:600;font-size:.96rem;color:var(--cream-2);text-decoration:none;
  background:linear-gradient(135deg,#1b3a28,#122a1f);border:1px solid var(--gold-line);
  box-shadow:0 14px 32px -12px rgba(9,20,13,.7);transition:transform .2s,box-shadow .2s,background .2s}
.msgr-fab:hover{color:#fff;transform:translateY(-2px);background:linear-gradient(135deg,#22452f,#163020);box-shadow:0 18px 36px -12px rgba(9,20,13,.82)}
.msgr-fab svg{width:24px;height:24px;flex:0 0 24px}
/* messenger glyph về màu thương hiệu: bong bóng vàng, swoosh xanh (né xanh-tím vendor) */
.msgr-fab svg path:nth-child(1){fill:var(--gold-2)}
.msgr-fab svg path:nth-child(2){fill:#122a1f}
/* Trên mobile: giấu bong bóng nổi (đã có nút trong thanh đáy) để khỏi che thanh đặt bàn */
@media (max-width:720px){
  .msgr-fab{display:none}
  .mobilebar__call{flex:0 0 54px;padding-left:0;padding-right:0}
  .mobilebar__mess{flex:1;background:linear-gradient(135deg,#1f4330,#15311f);color:var(--cream-2);border:1px solid var(--gold-line);display:inline-flex;align-items:center;justify-content:center;gap:.4em}
}
/* SĐT founder nổi bật ở khu tiêu đề hero (nền xanh đậm → chữ sáng) */
.hero__phone{margin-top:14px;font-size:1.08rem;font-weight:700;color:var(--cream-2,#f2e6cf)}
.hero__phone a{color:var(--orange-2);text-decoration:none;border-bottom:2px solid rgba(220,172,96,.4)}
.hero__phone a:hover{border-color:var(--gold-2)}

/* ============================================================
   LỚP NÂNG CẤP SANG TRỌNG — Day 51+ 2026-07-24
   (Fraunces + Be Vietnam Pro · hairline vàng champagne · cards editorial)
   ============================================================ */

/* ---- Nav: hairline vàng khi cuộn + mục Ưu đãi nổi bật ---- */
.nav__links{gap:22px}
.nav--solid{background:rgba(15,29,20,.94);border-bottom:1px solid var(--gold-line);box-shadow:0 10px 34px -20px #000}
.nav__hot{color:var(--gold-2)}
.nav__hot::after{background:var(--gold-2)}
.nav__cta{letter-spacing:.02em}

/* ---- Section head: chữ ký gạch vàng dưới tiêu đề ---- */
.section__head .h2{position:relative;padding-bottom:20px}
.section__head .h2::after{content:"";position:absolute;left:0;bottom:0;width:56px;height:2px;
  background:linear-gradient(90deg,var(--gold),transparent)}
.section__sub{font-weight:300;font-size:1.06rem}

/* ---- Story: số liệu Fraunces vàng + ảnh khung vàng ---- */
.story__facts b{color:var(--orange)}
.story__media{box-shadow:var(--shadow)}
.story__media::after{content:"";position:absolute;inset:14px;border:1px solid var(--gold-line);pointer-events:none;z-index:2}

/* ---- Dishes: viền vàng khi rê chuột, nét gallery ---- */
.dish{border-radius:var(--r-sm)}
.dish figcaption span{font-family:var(--serif);font-weight:500;letter-spacing:.005em}
.dish:hover::after{border-color:var(--gold-2)}

/* ---- Menu: thumbnail có vòng vàng ---- */
.menu__cat h3 .cat-thumb{border:1px solid var(--gold-line);box-shadow:0 8px 18px -12px rgba(10,24,16,.55)}
.menu__cat h3{font-weight:460}
.menu__item .pr{color:var(--orange)}

/* ---- Sets: card editorial, gạch vàng đỉnh thẻ ---- */
.set{border-radius:var(--r);border-color:rgba(28,50,38,.1);
  background:linear-gradient(180deg,#fffdf8,#fbf5e9);box-shadow:0 16px 44px -32px rgba(10,24,16,.55)}
.set::after{content:"";position:absolute;top:0;left:26px;right:26px;height:2px;
  background:linear-gradient(90deg,transparent,var(--gold-line),transparent)}
.set:hover{box-shadow:var(--shadow)}
.set__top h3{font-weight:480}
.set--feature{background:linear-gradient(180deg,#fffdf6,#f7edd6);border-color:var(--gold)}
.set__flag{background:linear-gradient(135deg,#c68a34,#a56820);letter-spacing:.08em}

/* ---- Reviews: dấu ngoặc kép Fraunces + nền kem ---- */
.reviews__grid{gap:24px}
.review{border-radius:var(--r);background:linear-gradient(180deg,#fffdf8,#fbf6ea);position:relative;overflow:hidden}
.review::after{content:"\201D";position:absolute;top:2px;right:20px;font-family:var(--serif);
  font-size:4.4rem;line-height:1;color:rgba(201,162,78,.22);pointer-events:none}
.review p{font-weight:400}
.review__stars{color:var(--gold-2)}

/* ---- Footer: hairline vàng ---- */
.footer{border-top:1px solid var(--gold-line)}

/* ============ DẢI BANNER KHUYẾN MÃI — banner chuẩn banner-composer (bake gemini-3-pro-image) ============ */
.promo{position:relative;overflow:hidden;background:linear-gradient(180deg,#0f2419,#0c1d14);color:var(--cream-2);
  padding:clamp(56px,7vw,92px) 0}
.promo__inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:28px}
.promo__banner{display:block;width:100%;max-width:1080px;border-radius:var(--r);overflow:hidden;
  border:1px solid var(--gold-line);box-shadow:0 34px 78px -34px rgba(0,0,0,.72);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.promo__banner img{width:100%;height:auto;display:block}
.promo__banner:hover{transform:translateY(-3px);box-shadow:0 44px 88px -34px rgba(0,0,0,.82)}
.promo__cta{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
@media (max-width:480px){.promo__cta{width:100%}.promo__cta .btn{flex:1;min-width:0}}
/* 2 banner cùng 1 hàng, cứ ~4s tự đổi chỗ (trượt ngang qua nhau) */
/* 🔁 2026-08-12: khối này từ HAI banner đổi chỗ nhau nay thành BA banner (§6 đòi ba bố cục
   khác nhau, ≥1 tấm không khung). Bỏ luôn phép hoán vị trái-phải: nó chỉ có nghĩa với đúng
   hai tấm; ba tấm mà vẫn đảo thì tấm thứ ba đứng trơ, nhìn ra ngay là hiệu ứng thừa.
   Ba tấm nay chia đều một hàng, tấm giữa là tấm có người nên hơi nhỉnh hơn để mắt bám vào. */
.promo__row{display:flex;gap:18px;width:100%;max-width:1240px;align-items:stretch;position:relative}
.promo__row .promo__banner{flex:1 1 0;min-width:0;max-width:none;transition:transform .45s ease,box-shadow .45s ease}
.promo__row .promo__banner:nth-child(2){flex:1.14 1 0}
.promo__row .promo__banner:hover{transform:none;box-shadow:0 44px 88px -34px rgba(0,0,0,.85)}
.promo__row.is-swapped .promo__banner:first-child:hover{transform:translateX(calc(100% + 22px))}
.promo__row.is-swapped .promo__banner:nth-child(2):hover{transform:translateX(calc(-100% - 22px))}
@media (max-width:760px){
  .promo__row{flex-direction:column;max-width:1080px;gap:20px}
  .promo__row .promo__banner{flex:1 1 auto}
  .promo__row.is-swapped .promo__banner{transform:none!important}
}
@media (prefers-reduced-motion:reduce){.promo__row.is-swapped .promo__banner{transform:none!important}}

/* ---- Nav gọn hơn ở khổ tablet để chứa 8 mục ---- */
@media (min-width:769px) and (max-width:1080px){
  .nav__links{gap:16px;font-size:.9rem}
}

/* ---- Footer đầy đủ NAP (địa chỉ · hotline · giờ · chỉ đường) ---- */
.footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1.1fr;gap:44px;padding-bottom:28px;margin-bottom:20px;
  border-bottom:1px solid rgba(245,237,220,.1)}
.footer__col--brand .brand{margin-bottom:14px}
.footer__tag{font-size:.92rem;line-height:1.7;color:rgba(245,237,220,.58);max-width:36ch}
.footer__col h4{font-family:var(--serif);font-weight:500;font-size:1.1rem;color:var(--gold-2);margin-bottom:14px}
.footer__col p{font-size:.94rem;line-height:1.7;color:rgba(245,237,220,.72);margin:0 0 8px}
.footer__col a{color:var(--gold-2)}
.footer__col a:hover{color:#fff}
.footer__link{display:inline-block;margin-top:6px;font-weight:600;font-size:.9rem;color:var(--gold-2);
  border-bottom:1px solid var(--gold-line);padding-bottom:2px}
.footer__link:hover{color:#fff;border-color:var(--gold-2)}
.footer__inner{justify-content:flex-start}
@media (max-width:760px){.footer__grid{grid-template-columns:1fr;gap:26px}}

/* ============ CHỮ KÝ MỘC QUÊ — số chương editorial Fraunces (motif đáng nhớ, xuất hiện 6×) ============ */
body{counter-reset:chapter}
.section__head{counter-increment:chapter}
.section__head::before{
  content:counter(chapter,decimal-leading-zero);
  display:block;font-family:var(--serif);font-weight:430;line-height:.85;
  font-size:clamp(2.4rem,4.6vw,3.7rem);margin-bottom:14px;letter-spacing:.02em;
  font-variation-settings:'opsz' 144,'SOFT' 0;
  color:rgba(201,162,78,.13);
  -webkit-text-stroke:1.1px rgba(201,162,78,.5)}
/* trên nền tối → vàng sáng */
.section--leaves .section__head::before,
.section--dark .section__head::before{
  color:rgba(231,205,140,.12);
  -webkit-text-stroke-color:rgba(231,205,140,.55)}
@media (max-width:600px){.section__head::before{font-size:2.2rem;margin-bottom:8px}}

/* Hero gọn hơn (Day 51+ 2026-07-25): icon phone vàng + eyebrow thoáng */
.hero__phone svg{color:var(--orange-2);vertical-align:-2px;margin-right:2px}
.hero__eyebrow{margin-bottom:22px}
