/* ========================================================
   Amaya Cà Phê — premium tropical · Coffee · Brunch · Workspace
   Palette : espresso / terra / or / jade / crème
   ======================================================== */

:root{
  --espresso:#2a1f17;
  --espresso-2:#1c1410;
  --terra:#c8633a;
  --terra-d:#a04e2c;
  --gold:#d4a85a;
  --gold-d:#b08940;
  --jade:#6b8c5a;
  --jade-d:#4d6a3f;
  --cream:#f7f1e6;
  --cream-2:#efe4cf;
  --ink:#22150e;
  --ink-soft:#5a4838;
  --line:rgba(42,31,23,.10);

  --serif:'Cormorant Garamond', 'Be Vietnam Pro', Georgia, serif;
  --sans:'Manrope', 'Be Vietnam Pro', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --shadow-soft: 0 10px 40px -12px rgba(42,31,23,.18);
  --shadow-card: 0 18px 60px -22px rgba(42,31,23,.28);
  --shadow-photo: 0 30px 80px -30px rgba(42,31,23,.55);

  --radius: 18px;
  --maxw: 1240px;

  --t-fast: .25s cubic-bezier(.2,.7,.2,1);
  --t-med:  .55s cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--cream)}
html,body{overflow-x:clip}
body{
  margin:0;
  font-family:var(--sans);
  color:var(--ink);
  background:var(--cream);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
  font-size:16px;
}
img{display:block;max-width:100%;height:auto}
svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit}

html[data-lang="vn"] body{font-family:'Be Vietnam Pro', var(--sans);}

/* ============ NAV ============ */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; gap:24px;
  padding:14px 34px;
  background:linear-gradient(180deg, rgba(247,241,230,.96), rgba(247,241,230,.86) 70%, rgba(247,241,230,0));
  backdrop-filter:blur(14px) saturate(1.1);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);
  transition:padding .3s ease, background .3s ease;
}
.nav.is-scrolled{
  padding:10px 34px;
  background:linear-gradient(180deg, rgba(247,241,230,.98), rgba(247,241,230,.92));
  box-shadow:0 1px 0 rgba(42,31,23,.06);
}
.brand{display:flex; align-items:center; gap:12px}
.brand-mark{display:inline-flex; filter:drop-shadow(0 2px 6px rgba(200,99,58,.2))}
.brand-text{display:flex; flex-direction:column; line-height:1}
.brand-name{font-family:var(--serif); font-size:1.55rem; font-weight:600; color:var(--espresso); letter-spacing:.005em}
.brand-sub{font-family:var(--serif); font-style:italic; font-size:.78rem; color:var(--terra); letter-spacing:.12em; margin-top:3px; text-transform:uppercase}

.nav-links{display:flex; gap:28px; margin-left:auto; margin-right:14px}
.nav-links a{
  font-size:.92rem; font-weight:500; color:var(--ink-soft);
  position:relative; padding:6px 0; transition:color var(--t-fast);
}
.nav-links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1.5px;
  background:var(--terra); transition:right var(--t-med);
}
.nav-links a:hover{color:var(--espresso)}
.nav-links a:hover::after{right:0}

.lang-switch{
  display:inline-flex; gap:2px;
  background:rgba(42,31,23,.06); border:1px solid var(--line);
  padding:3px; border-radius:999px;
}
.lang-switch button{
  appearance:none; border:0; background:transparent;
  padding:6px 12px; border-radius:999px;
  font-size:.78rem; font-weight:600; letter-spacing:.06em;
  color:var(--ink-soft); cursor:pointer; transition:all var(--t-fast);
}
.lang-switch button:hover{color:var(--espresso)}
.lang-switch button.is-active{
  background:var(--espresso); color:var(--cream);
  box-shadow:0 2px 8px -2px rgba(42,31,23,.35);
}

.burger{
  display:none; appearance:none; border:0; background:transparent;
  width:40px; height:40px; padding:8px; cursor:pointer;
  flex-direction:column; justify-content:space-between; align-items:stretch;
}
.burger span{height:2px; background:var(--espresso); border-radius:2px; transition:all var(--t-fast)}

/* ============ HERO (split text + photo) ============ */
.hero{
  position:relative; min-height:100vh; min-height:100svh;
  display:flex; align-items:center;
  padding:120px 6vw 90px;
  overflow:hidden;
  color:var(--cream);
  isolation:isolate;
}
.hero-bg{position:absolute; inset:0; z-index:-1; overflow:hidden; background:var(--espresso)}
.hero-grad{
  position:absolute; inset:0;
  background:
    radial-gradient(120% 80% at 20% 20%, rgba(212,168,90,.22), transparent 60%),
    radial-gradient(80% 80% at 100% 100%, rgba(200,99,58,.32), transparent 65%),
    linear-gradient(160deg, #2a1f17 0%, #1c1410 70%);
}
.hero-aura{position:absolute; border-radius:50%; filter:blur(80px); opacity:.55}
.hero-aura-1{width:520px; height:520px; top:-120px; left:-120px; background:radial-gradient(circle, rgba(212,168,90,.6), transparent 70%); animation:auraFloat 14s ease-in-out infinite}
.hero-aura-2{width:620px; height:620px; bottom:-180px; right:-160px; background:radial-gradient(circle, rgba(200,99,58,.55), transparent 70%); animation:auraFloat 18s ease-in-out infinite reverse}
@keyframes auraFloat{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(40px,-30px)}
}

.hero-wrap{
  position:relative; width:100%; max-width:var(--maxw); margin:0 auto;
  display:grid; grid-template-columns:1.1fr .85fr; gap:80px; align-items:center;
}
.hero-content{animation:heroIn 1.1s cubic-bezier(.2,.7,.2,1) both}
@keyframes heroIn{
  from{opacity:0; transform:translateY(28px)}
  to{opacity:1; transform:none}
}
.hero-eyebrow{
  display:inline-block;
  font-size:.78rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  color:var(--gold);
  padding:8px 16px; border:1px solid rgba(212,168,90,.4);
  border-radius:999px; backdrop-filter:blur(6px);
  background:rgba(42,31,23,.3);
  margin-bottom:28px;
}
.hero-title{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(3.2rem, 7vw, 6.4rem);
  line-height:.95; letter-spacing:-.015em;
  margin:0 0 16px;
}
.hero-title-1{display:block; color:var(--cream)}
.hero-title-2{
  display:block; font-style:italic; font-weight:400;
  background:linear-gradient(120deg, #f4d289, #d4a85a 40%, #c8633a);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  margin-left:.08em;
}
.hero-baseline{
  font-size:.85rem; font-weight:600; letter-spacing:.32em; text-transform:uppercase;
  color:rgba(247,241,230,.7);
  margin:0 0 26px;
  position:relative; display:inline-block;
}
.hero-baseline::before, .hero-baseline::after{
  content:""; position:absolute; top:50%; width:18px; height:1px; background:rgba(212,168,90,.5);
}
.hero-baseline::before{right:calc(100% + 12px)}
.hero-baseline::after{left:calc(100% + 12px)}
.hero-tagline{
  font-size:clamp(1.02rem, 1.35vw, 1.18rem);
  line-height:1.65; color:rgba(247,241,230,.82);
  max-width:540px; margin:0 0 36px;
  font-weight:300;
}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:32px}
.hero-meta{display:flex; align-items:center; gap:10px; font-size:.85rem; color:rgba(247,241,230,.7)}
.meta-dot{width:8px; height:8px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 0 rgba(212,168,90,.6); animation:dotPulse 2s ease-out infinite; flex-shrink:0}
@keyframes dotPulse{
  0%{box-shadow:0 0 0 0 rgba(212,168,90,.6)}
  100%{box-shadow:0 0 0 14px rgba(212,168,90,0)}
}

.hero-photo{
  position:relative;
  animation:photoIn 1.3s cubic-bezier(.2,.7,.2,1) both;
  animation-delay:.2s;
}
@keyframes photoIn{
  from{opacity:0; transform:translateY(40px) scale(.96)}
  to{opacity:1; transform:none}
}
.hero-photo picture{display:block; position:relative; z-index:2}
.hero-photo img{
  width:100%; aspect-ratio:3/4; object-fit:cover;
  border-radius:24px; box-shadow:var(--shadow-photo);
  border:1px solid rgba(247,241,230,.08);
}
.hero-photo-deco{
  position:absolute; inset:-22px -22px 22px 22px;
  border:1.5px solid rgba(212,168,90,.4);
  border-radius:24px; z-index:1;
}

.hero-scroll{
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%);
  width:24px; height:38px; border:1.5px solid rgba(247,241,230,.4);
  border-radius:14px; display:flex; justify-content:center; padding-top:7px;
}
.scroll-dot{width:3px; height:7px; border-radius:2px; background:var(--gold); animation:scrollDot 1.8s ease-in-out infinite}
@keyframes scrollDot{
  0%{opacity:0; transform:translateY(0)}
  30%{opacity:1}
  100%{opacity:0; transform:translateY(14px)}
}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:14px 26px; border-radius:999px;
  font-size:.92rem; font-weight:600; letter-spacing:.02em;
  transition:all var(--t-fast); cursor:pointer; border:1.5px solid transparent;
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(135deg, var(--terra), var(--gold-d));
  color:#fff;
  box-shadow:0 8px 24px -10px rgba(200,99,58,.6);
}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 14px 32px -10px rgba(200,99,58,.7)}
.btn-ghost{
  background:transparent; color:var(--cream);
  border-color:rgba(247,241,230,.4);
}
.btn-ghost:hover{background:rgba(247,241,230,.08); border-color:var(--cream)}
.btn-outline{
  background:transparent; color:var(--espresso);
  border-color:var(--terra);
}
.btn-outline:hover{background:var(--terra); color:#fff; transform:translateY(-2px)}

/* ============ SECTIONS ============ */
.sec{padding:110px 6vw; position:relative}
.sec-in{max-width:var(--maxw); margin:0 auto}
.sec-cream{background:var(--cream)}
.sec-warm{background:linear-gradient(180deg, var(--cream) 0%, var(--cream-2) 100%)}
.sec-dark{background:linear-gradient(160deg, #2a1f17 0%, #1c1410 100%); color:var(--cream)}

.kicker{
  display:inline-block;
  font-size:.78rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  color:var(--terra); margin-bottom:20px;
  position:relative; padding-left:36px;
}
.kicker::before{
  content:""; position:absolute; left:0; top:50%; width:24px; height:1px;
  background:var(--terra);
}
.kicker-light{color:var(--gold)}
.kicker-light::before{background:var(--gold)}

.h2{
  font-family:var(--serif); font-weight:500;
  font-size:clamp(2.2rem, 4vw, 3.4rem);
  line-height:1.1; letter-spacing:-.01em;
  margin:0 0 28px;
  color:var(--espresso); max-width:780px;
}
.h2-light{color:var(--cream)}

.lead{font-size:1.1rem; color:var(--ink-soft); max-width:680px; margin:0 0 40px; line-height:1.65}
.lead-light{font-size:1.1rem; color:rgba(247,241,230,.78); max-width:680px; margin:0 0 50px; line-height:1.65}
.lead-light strong{color:var(--gold); font-weight:600}

/* ============ STORY ============ */
.story-grid{display:grid; grid-template-columns:1.2fr 1fr; gap:70px; align-items:start; margin-top:10px}
.story-text p{font-size:1.05rem; color:var(--ink-soft); margin:0 0 22px; line-height:1.75}
.story-text p:first-of-type{font-size:1.18rem; color:var(--espresso); font-weight:400}
.story-sig{font-family:var(--serif); font-style:italic; font-size:1.15rem !important; color:var(--terra) !important; margin:30px 0 0 !important}

.story-card{
  margin-top:38px;
  background:linear-gradient(145deg, #fff 0%, var(--cream-2) 100%);
  border:1px solid var(--line);
  border-radius:var(--radius); padding:36px 30px;
  box-shadow:var(--shadow-card);
  position:relative; overflow:hidden;
}
.story-card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, var(--terra), var(--gold), var(--jade));
}
.story-card-inner{display:flex; flex-direction:column; gap:26px}
.story-stat{display:flex; align-items:baseline; gap:18px}
.stat-num{
  font-family:var(--serif); font-size:3rem; font-weight:500;
  color:var(--terra); line-height:1; min-width:74px;
}
.stat-num sup{font-size:.5em; color:var(--gold-d); margin-left:-2px}
.stat-lab{font-size:.95rem; color:var(--ink-soft); line-height:1.4}

.story-photo{position:relative}
.story-photo picture{display:block}
.story-photo img{
  width:100%; aspect-ratio:3/4; object-fit:cover;
  border-radius:24px; box-shadow:var(--shadow-photo);
}
.story-photo::after{
  content:""; position:absolute; inset:-18px -18px 18px 18px;
  border:1.5px solid rgba(200,99,58,.3);
  border-radius:24px; z-index:-1;
}

/* ============ TASTE ============ */
.taste-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:24px;
  margin-top:30px;
}
.taste-card{
  background:rgba(247,241,230,.04);
  border:1px solid rgba(212,168,90,.18);
  border-radius:var(--radius); padding:34px 28px;
  transition:all var(--t-med); position:relative; overflow:hidden;
}
.taste-card::before{
  content:""; position:absolute; inset:0; border-radius:var(--radius);
  background:linear-gradient(135deg, rgba(212,168,90,.08), transparent 60%);
  opacity:0; transition:opacity var(--t-med);
}
.taste-card:hover{transform:translateY(-4px); border-color:rgba(212,168,90,.45)}
.taste-card:hover::before{opacity:1}
.taste-icon{
  width:52px; height:52px; border-radius:14px;
  background:linear-gradient(135deg, rgba(212,168,90,.18), rgba(200,99,58,.14));
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); margin-bottom:22px;
}
.taste-icon svg{width:26px; height:26px}
.taste-card h3{
  font-family:var(--serif); font-weight:500; font-size:1.4rem;
  margin:0 0 12px; color:var(--cream);
}
.taste-card p{font-size:.93rem; color:rgba(247,241,230,.7); line-height:1.6; margin:0}

.halal-pill{
  display:inline-flex; align-items:center; gap:12px;
  margin-top:40px;
  padding:12px 22px;
  background:rgba(107,140,90,.15);
  border:1px solid rgba(107,140,90,.4);
  border-radius:999px;
  font-size:.92rem; color:var(--cream);
}
.halal-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:50%;
  background:var(--jade); color:#fff; font-weight:700; font-size:.78rem;
}

/* ============ MENU / CARTE ============ */
.menu-wrap{
  display:grid; grid-template-columns:.9fr 1fr; gap:60px;
  align-items:center; margin-top:30px;
}
.menu-cover{
  position:relative; max-width:440px; justify-self:center;
}
.menu-cover img{
  width:100%; aspect-ratio:7/10; object-fit:cover;
  border-radius:18px; box-shadow:var(--shadow-photo);
  border:1px solid rgba(212,168,90,.25);
  transition:transform var(--t-med);
}
.menu-cover:hover img{transform:translateY(-3px)}
.menu-cover-deco{
  position:absolute; inset:-16px -16px 16px 16px;
  border:1.5px solid rgba(212,168,90,.4);
  border-radius:18px; z-index:-1;
}
.menu-side{display:flex; flex-direction:column; align-items:flex-start; gap:18px}
.menu-badge{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 16px; border-radius:999px;
  background:rgba(107,140,90,.13); border:1px solid rgba(107,140,90,.35);
  font-size:.82rem; color:var(--jade-d); font-weight:600;
}
.menu-badge-mark{
  display:inline-flex; align-items:center; justify-content:center;
  width:20px; height:20px; border-radius:50%;
  background:var(--jade); color:#fff; font-weight:700; font-size:.7rem;
}
.menu-side-text{
  font-size:1.05rem; color:var(--ink-soft); line-height:1.7;
  margin:0; max-width:480px;
}
.menu-actions{display:flex; gap:14px; flex-wrap:wrap; margin-top:6px}
.menu-meta{
  font-size:.78rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-soft); opacity:.7; margin-top:6px;
}
.menu-grid{
  display:grid; grid-template-columns:repeat(8,1fr); gap:14px;
  margin-top:50px;
}
.menu-thumb{
  position:relative; appearance:none; border:0; padding:0; cursor:zoom-in;
  background:var(--cream-2); border-radius:10px; overflow:hidden;
  box-shadow:0 6px 22px -10px rgba(42,31,23,.25);
  transition:all var(--t-fast);
}
.menu-thumb img{
  display:block; width:100%; aspect-ratio:7/10; object-fit:cover;
  transition:transform var(--t-med), filter var(--t-med);
}
.menu-thumb::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(42,31,23,.45));
  opacity:0; transition:opacity var(--t-fast);
}
.menu-thumb:hover{transform:translateY(-3px); box-shadow:0 18px 36px -14px rgba(42,31,23,.4)}
.menu-thumb:hover img{transform:scale(1.04)}
.menu-thumb:hover::after{opacity:1}
.menu-thumb-num{
  position:absolute; bottom:8px; right:8px;
  font-family:var(--serif); font-size:.85rem; font-weight:600;
  color:#fff; background:rgba(42,31,23,.6); backdrop-filter:blur(6px);
  width:24px; height:24px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  z-index:2;
}

/* ============ LIGHTBOX ============ */
.lb{
  position:fixed; inset:0; z-index:200;
  background:rgba(20,14,10,.92); backdrop-filter:blur(8px);
  display:none; align-items:center; justify-content:center;
  padding:60px 80px;
  animation:lbIn .25s ease-out;
}
.lb.is-open{display:flex}
@keyframes lbIn{from{opacity:0} to{opacity:1}}
.lb-stage{
  position:relative; max-width:100%; max-height:100%;
  display:flex; align-items:center; justify-content:center;
}
.lb-stage img{
  max-width:100%; max-height:calc(100vh - 120px);
  width:auto; height:auto; object-fit:contain;
  border-radius:10px; box-shadow:0 30px 80px -20px rgba(0,0,0,.6);
}
.lb-close, .lb-prev, .lb-next{
  position:absolute; appearance:none; border:1px solid rgba(247,241,230,.25);
  background:rgba(42,31,23,.7); color:var(--cream); cursor:pointer;
  border-radius:50%; transition:all var(--t-fast);
  display:inline-flex; align-items:center; justify-content:center;
  backdrop-filter:blur(8px);
}
.lb-close{
  top:20px; right:20px; width:48px; height:48px; font-size:1.8rem; line-height:1;
}
.lb-prev, .lb-next{
  top:50%; transform:translateY(-50%); width:56px; height:56px;
  font-size:2.2rem; font-family:var(--serif); line-height:1;
}
.lb-prev{left:20px}
.lb-next{right:20px}
.lb-close:hover, .lb-prev:hover, .lb-next:hover{
  background:var(--terra); border-color:var(--terra);
}
.lb-count{
  position:absolute; bottom:20px; left:50%; transform:translateX(-50%);
  font-size:.85rem; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(247,241,230,.7);
  background:rgba(42,31,23,.6); padding:8px 18px; border-radius:999px;
  backdrop-filter:blur(8px); border:1px solid rgba(247,241,230,.15);
}
body.lb-open{overflow:hidden}

/* ============ WORK ============ */
.sec-split{display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center}
.split-text p{font-size:1.05rem; color:var(--ink-soft); margin:0 0 28px; line-height:1.7}
.sec-dark .split-text p{color:rgba(247,241,230,.78)}
.check-list{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:14px}
.check-list li{display:flex; align-items:center; gap:14px; font-size:1rem}
.check{
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; border-radius:50%;
  background:var(--terra); color:#fff; font-weight:700; font-size:.8rem;
  flex-shrink:0;
}

.work-photo{position:relative}
.work-photo picture{display:block}
.work-photo img{
  width:100%; aspect-ratio:3/4; object-fit:cover;
  border-radius:24px; box-shadow:var(--shadow-photo);
}
.work-photo::after{
  content:""; position:absolute; inset:18px -18px -18px 18px;
  border:1.5px solid rgba(107,140,90,.4);
  border-radius:24px; z-index:-1;
}

/* ============ GALLERY ============ */
.gallery{
  display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:160px;
  gap:14px; margin-top:30px;
}
.gal-item{
  position:relative; overflow:hidden; border-radius:var(--radius);
  cursor:zoom-in; transition:transform var(--t-med);
  display:block; background:var(--cream-2);
}
.gal-item picture, .gal-item img{
  width:100%; height:100%; object-fit:cover;
  transition:transform var(--t-med), filter var(--t-med);
}
.gal-item::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(42,31,23,.35));
  opacity:0; transition:opacity var(--t-fast); pointer-events:none;
}
.gal-item:hover{transform:translateY(-2px)}
.gal-item:hover img{transform:scale(1.04)}
.gal-item:hover::after{opacity:1}
.gal-1{grid-column:span 3; grid-row:span 2}
.gal-2{grid-column:span 3; grid-row:span 1}
.gal-3{grid-column:span 2; grid-row:span 1}
.gal-4{grid-column:span 1; grid-row:span 1}
.gal-5{grid-column:span 2; grid-row:span 2}
.gal-6{grid-column:span 4; grid-row:span 1}

/* ============ FIND ============ */
.find-block{margin:24px 0}
.find-label{
  font-size:.74rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); margin-bottom:8px;
}
.find-value{font-size:1.05rem; line-height:1.6; color:var(--cream)}
.find-value a{color:var(--cream); border-bottom:1px solid rgba(247,241,230,.2); transition:border-color var(--t-fast)}
.find-value a:hover{border-color:var(--gold)}
.muted{opacity:.6}
.find-cta{margin-top:32px}
.map-wrap{
  height:480px; border-radius:var(--radius); overflow:hidden;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.6);
  border:1px solid rgba(212,168,90,.2);
}

/* ============ FOOTER ============ */
.ft{background:#1a120d; color:rgba(247,241,230,.7); padding:60px 6vw 36px}
.ft-in{max-width:var(--maxw); margin:0 auto}
.ft-brand{
  font-family:var(--serif); font-size:1.8rem; font-weight:500;
  color:var(--cream); margin-bottom:32px;
}
.ft-brand .brand-sub{color:var(--terra); font-style:italic; font-size:.85rem; letter-spacing:.15em; margin-left:6px; text-transform:uppercase}
.ft-cols{
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:40px;
  padding:32px 0; border-top:1px solid rgba(247,241,230,.08);
  border-bottom:1px solid rgba(247,241,230,.08);
}
.ft-label{
  font-size:.74rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); margin-bottom:10px;
}
.ft-cols p{margin:0; font-size:.92rem; line-height:1.6}
.lang-switch-ft{margin-top:4px}
.lang-switch-ft button{color:rgba(247,241,230,.7)}
.lang-switch-ft{background:rgba(247,241,230,.06); border-color:rgba(247,241,230,.1)}
.lang-switch-ft button.is-active{background:var(--terra); color:#fff}
.ft-copy{
  padding-top:28px; display:flex; gap:8px; justify-content:center;
  font-size:.82rem; opacity:.6; flex-wrap:wrap;
}
.ft-dot{opacity:.5}

/* ============ REVEAL ============ */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.is-in{opacity:1; transform:none}

/* ============ RESPONSIVE ============ */
@media(max-width:1024px){
  .hero{padding:120px 5vw 80px}
  .hero-wrap{grid-template-columns:1fr; gap:48px}
  .hero-photo{max-width:520px; margin:0 auto}
  .hero-photo img{aspect-ratio:4/5}
  .story-grid{grid-template-columns:1fr; gap:50px}
  .story-photo{max-width:520px; margin:0 auto}
  .story-photo::after{inset:-12px -12px 12px 12px}
  .sec-split{grid-template-columns:1fr; gap:50px}
  .work-photo{max-width:520px; margin:0 auto}
  .work-photo::after{inset:12px -12px -12px 12px}
  .taste-grid{grid-template-columns:repeat(2,1fr)}
  .menu-wrap{grid-template-columns:1fr; gap:40px}
  .menu-cover{max-width:380px}
  .menu-side{align-items:center; text-align:center}
  .menu-side-text{text-align:center}
  .menu-grid{grid-template-columns:repeat(4,1fr); gap:12px}
  .gallery{grid-template-columns:repeat(4,1fr); grid-auto-rows:130px}
  .gal-1{grid-column:span 2; grid-row:span 2}
  .gal-2{grid-column:span 2}
  .gal-3{grid-column:span 2}
  .gal-4{grid-column:span 2}
  .gal-5{grid-column:span 2; grid-row:span 2}
  .gal-6{grid-column:span 4}
  .nav-links{
    display:none; position:fixed; top:64px; left:0; right:0;
    background:rgba(247,241,230,.98); backdrop-filter:blur(14px);
    flex-direction:column; gap:0; padding:18px 24px 28px;
    border-bottom:1px solid var(--line);
    box-shadow:0 12px 30px -12px rgba(42,31,23,.18);
  }
  .nav-links.is-open{display:flex}
  .nav-links a{padding:14px 0; font-size:1rem; border-bottom:1px solid var(--line)}
  .nav-links a:last-child{border-bottom:0}
  .nav-links a::after{display:none}
  .burger{display:flex}
  .sec{padding:80px 5vw}
  .map-wrap{height:380px}
}

@media(max-width:640px){
  .nav{padding:12px 18px; gap:10px}
  .brand-name{font-size:1.3rem}
  .brand-sub{font-size:.65rem; letter-spacing:.15em}
  .brand-mark svg{width:32px; height:32px}
  .lang-switch button{padding:6px 9px; font-size:.74rem}
  .hero{padding:108px 22px 80px; min-height:auto}
  .hero-eyebrow{font-size:.7rem; padding:6px 12px; margin-bottom:22px}
  .hero-title{font-size:3.4rem}
  .hero-baseline{font-size:.7rem; letter-spacing:.24em}
  .hero-baseline::before, .hero-baseline::after{display:none}
  .hero-cta{flex-direction:column; gap:10px}
  .hero-cta .btn{width:100%}
  .hero-photo{max-width:100%}
  .hero-photo-deco{inset:-14px -14px 14px 14px}
  .hero-scroll{display:none}
  .sec{padding:64px 22px}
  .taste-grid{grid-template-columns:1fr; gap:16px}
  .menu-grid{grid-template-columns:repeat(2,1fr); gap:10px}
  .menu-cover{max-width:300px}
  .menu-cover-deco{inset:-10px -10px 10px 10px}
  .menu-actions{flex-direction:column; width:100%; gap:10px}
  .menu-actions .btn{width:100%}
  .lb{padding:30px 16px}
  .lb-close{top:12px; right:12px; width:42px; height:42px; font-size:1.5rem}
  .lb-prev, .lb-next{width:44px; height:44px; font-size:1.8rem}
  .lb-prev{left:8px}
  .lb-next{right:8px}
  .lb-stage img{max-height:calc(100vh - 110px)}
  .gallery{grid-template-columns:repeat(2,1fr); grid-auto-rows:200px}
  .gal-1, .gal-5{grid-column:span 2; grid-row:span 2}
  .gal-2, .gal-3, .gal-4, .gal-6{grid-column:span 1; grid-row:span 1}
  .map-wrap{height:320px}
  .ft-cols{grid-template-columns:1fr; gap:28px}
  .ft{padding:48px 22px 30px}
  .story-card{padding:30px 24px; margin-top:30px}
  .stat-num{font-size:2.5rem; min-width:56px}
}

/* ============ ACCESSIBILITY ============ */
@media(prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important; transition-duration:.01ms!important}
  .hero-aura, .scroll-dot, .meta-dot{animation:none!important}
}
:focus-visible{outline:2px solid var(--terra); outline-offset:3px; border-radius:6px}
