:root { --ink:#181210; --cream:#f5ecdd; --terra:#b4462a; --terra-d:#7a2e1d; --gold:#d8a86a; --panel:#241a15; }
* { margin:0; padding:0; box-sizing:border-box; }
body { background:var(--ink); color:var(--cream); font-family:Georgia,'Times New Roman',serif; }
.sans { font-family:'Helvetica Neue',Helvetica,Arial,sans-serif; }
a { color:inherit; }

nav { position:sticky; top:0; z-index:10; display:flex; align-items:center; gap:26px;
      padding:16px 48px; background:rgba(24,18,16,.92); backdrop-filter:blur(6px);
      border-bottom:1px solid rgba(216,168,106,.25); }
nav .brand { font-size:22px; color:var(--gold); letter-spacing:.5px; font-family:Georgia,serif; text-decoration:none; }
nav a { color:var(--cream); text-decoration:none; font-size:15px; opacity:.85; }
nav .spacer { flex:1; }
nav .lang { border:1px solid rgba(245,236,221,.4); border-radius:20px; padding:4px 14px; font-size:13px; }
.btn { background:var(--terra); color:#fff !important; border:none; border-radius:26px; padding:12px 26px;
       font-size:15px; letter-spacing:.5px; text-decoration:none; display:inline-block; cursor:pointer; }
.btn.ghost { background:transparent; border:1.5px solid var(--gold); color:var(--gold) !important; }

.hero { position:relative; height:88vh; min-height:620px; overflow:hidden; display:flex; align-items:flex-end; }
.hero .bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero .shade { position:absolute; inset:0; background:linear-gradient(180deg, rgba(24,18,16,.25) 0%, rgba(24,18,16,.05) 35%, rgba(24,18,16,.88) 88%); }
.hero .content { position:relative; padding:0 48px 72px; max-width:880px; }
.kicker { color:var(--gold); letter-spacing:5px; font-size:13px; text-transform:uppercase; margin-bottom:14px; }
h1 { font-size:54px; line-height:1.08; font-weight:normal; margin-bottom:18px; }
.hero p.sub { font-size:19px; opacity:.9; margin-bottom:28px; max-width:560px; line-height:1.5; }
.cta-row { display:flex; gap:14px; flex-wrap:wrap; align-items:center; }

section { padding:80px 48px; }
.label { color:var(--gold); letter-spacing:4px; font-size:13px; text-transform:uppercase; margin-bottom:10px; }
h2 { font-size:36px; font-weight:normal; margin-bottom:34px; }
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.grid4 { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }

.dish { background:var(--panel); border-radius:16px; overflow:hidden; }
.dish .ph { height:220px; background-size:cover; background-position:center; background-color:#2f221a; }
.dish .body { padding:20px 22px 24px; }
.dish h3 { font-size:21px; margin-bottom:8px; }
.dish p { font-size:15px; opacity:.75; line-height:1.5; }
.chip { display:inline-block; margin-top:14px; font-size:12px; letter-spacing:1.5px; color:var(--gold);
        border:1px solid rgba(216,168,106,.45); border-radius:14px; padding:4px 12px; }

.hints { background:linear-gradient(180deg,#1e1512,#181210); }
.hint { position:relative; background:var(--panel); border-radius:16px; overflow:hidden; cursor:pointer; }
.hint .thumb { height:190px; position:relative; background:#12100e; }
.hint .thumb video { width:100%; height:190px; object-fit:cover; display:block; }
.play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.play .ring { width:62px; height:62px; border-radius:50%; background:rgba(24,18,16,.55);
              border:2px solid var(--cream); display:flex; align-items:center; justify-content:center; }
.play .tri { width:0; height:0; border-left:18px solid var(--cream); border-top:11px solid transparent;
             border-bottom:11px solid transparent; margin-left:5px; }
.dur { position:absolute; bottom:12px; right:12px; background:rgba(24,18,16,.75); border-radius:6px; padding:3px 9px; font-size:12px; }
.hint .body { padding:18px 20px 22px; }
.hint h3 { font-size:19px; margin-bottom:6px; }
.hint p { font-size:14px; opacity:.72; line-height:1.5; }

.quote { text-align:center; max-width:760px; margin:0 auto; }
.quote .stars { color:var(--gold); font-size:26px; letter-spacing:6px; margin-bottom:18px; }
.quote blockquote { font-size:26px; line-height:1.45; font-style:italic; }
.quote .who { margin-top:18px; opacity:.65; font-size:15px; }

.visit { display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; background:var(--panel);
         border-radius:20px; padding:52px; }
.visit .line { display:flex; gap:14px; font-size:17px; line-height:1.7; }
.visit .line b { color:var(--gold); min-width:120px; display:inline-block; font-weight:normal; }
.mapph { height:300px; border-radius:14px; background:repeating-linear-gradient(45deg,#2a201a,#2a201a 14px,#241a15 14px,#241a15 28px);
         display:flex; align-items:center; justify-content:center; letter-spacing:2px; font-size:14px; }
.mapph a { color:var(--gold); text-decoration:none; }

.pagehead { padding-bottom:20px; }
.pagehead h1 { font-size:44px; }
.menulist { padding-top:10px; max-width:900px; }
.menulist h2.cat { color:var(--gold); font-size:26px; margin:40px 0 18px; }
.mi { padding:18px 0; border-bottom:1px solid rgba(216,168,106,.15); }
.mi.off { opacity:.45; }
.mi .mi-head { display:flex; align-items:baseline; gap:12px; }
.mi h3 { font-size:20px; font-weight:normal; }
.mi .code { color:var(--gold); font-size:13px; letter-spacing:1px; margin-right:6px; }
.mi .dots { flex:1; border-bottom:1px dotted rgba(245,236,221,.25); }
.mi .price { font-size:18px; color:var(--gold); white-space:nowrap; }
/* long multi-option prices (e.g. "Shrimp $6.50 · Chicken $5.50 · Veg $5.00") must not force page overflow */
@media (max-width:700px){ .mi .price { white-space:normal; text-align:right; } }
.mi p { font-size:15px; opacity:.75; line-height:1.55; margin-top:6px; max-width:640px; }
.mi .notes { margin-top:8px; display:flex; gap:10px; flex-wrap:wrap; }
.note { font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--gold);
        border:1px solid rgba(216,168,106,.4); border-radius:12px; padding:2px 10px; }
.note.warn { color:#e08b6d; border-color:rgba(224,139,109,.5); }

.resv { max-width:760px; }
.resv .lede { font-size:21px; line-height:1.6; margin-bottom:16px; }
.resv p { font-size:17px; line-height:1.6; opacity:.85; }
.comingsoon { margin-top:26px; font-size:13px; letter-spacing:1px; color:var(--gold); text-transform:uppercase; }

.prose { max-width:760px; }
.prose p { font-size:17px; line-height:1.7; margin-bottom:18px; opacity:.9; }

#lightbox { display:none; position:fixed; inset:0; z-index:50; background:rgba(10,8,7,.92);
            align-items:center; justify-content:center; padding:4vw; }
#lightbox .lb-inner { max-width:960px; width:100%; }
#lightbox .lb-bar { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; gap:12px; }
#lb-title { font-family:Georgia,serif; font-size:24px; color:var(--cream);
            flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#lb-close { background:none; border:1.5px solid var(--gold); color:var(--gold); border-radius:20px;
            padding:6px 18px; font-size:14px; cursor:pointer; flex:0 0 auto; }
@media (max-width:560px){ #lb-title { font-size:17px; } }
#lb-video { width:100%; border-radius:14px; background:#000; }

footer { padding:56px 48px; border-top:1px solid rgba(216,168,106,.2); display:grid; grid-template-columns:1fr 1fr; gap:40px; }
footer .join h3 { font-size:22px; margin-bottom:10px; }
footer .join p { font-size:14px; opacity:.7; margin-bottom:18px; line-height:1.5; max-width:460px; }
footer .joined { color:var(--gold); margin-bottom:12px; }
.field { display:flex; gap:10px; max-width:520px; flex-wrap:wrap; }
.field input { flex:1; min-width:170px; background:#12100e; border:1px solid rgba(245,236,221,.3); border-radius:24px;
               padding:12px 18px; color:var(--cream); font-size:14px; }
footer .fine { font-size:12.5px; opacity:.55; line-height:1.9; text-align:right; }

@media (max-width:900px){ .grid,.grid4{grid-template-columns:1fr 1fr} .visit{grid-template-columns:1fr}
  h1{font-size:36px} footer{grid-template-columns:1fr} footer .fine{text-align:left} nav{flex-wrap:wrap;gap:14px} }
@media (max-width:560px){ .grid,.grid4{grid-template-columns:1fr} nav{padding:12px 20px} section{padding:52px 20px}
  .hero .content{padding:0 20px 48px} }

/* reservation form + status */
.resform { margin-top:26px; display:flex; flex-direction:column; gap:18px; max-width:820px; }
.resform .row3 { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.resform .row4 { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.resform .greyed { opacity:.45; }
/* grid cells must be allowed to shrink below input intrinsic width (min-width:auto trap) */
.resform .row3 > label, .resform .row4 > label { min-width:0; }
.resform label > input, .resform label > select { width:100%; min-width:0; }
.resform label { display:flex; flex-direction:column; gap:6px; font-size:13px; color:var(--gold); letter-spacing:1px; }
.resform input, .resform select { background:#12100e; border:1px solid rgba(245,236,221,.3); border-radius:10px;
  padding:11px 14px; color:var(--cream); font-size:15px; color-scheme:dark; }
.guestrow { display:grid; grid-template-columns:1fr 2fr 100px; gap:14px; padding:12px 0;
  border-bottom:1px solid rgba(216,168,106,.12); }
.guestrow-incomplete { outline:1px solid rgba(180,70,42,.7); border-radius:10px; padding:12px 8px; }
#rf-party-display { opacity:.75; }
/* long dish-option text must not set the column's min width (select min-width:auto overflow) */
.guestrow > * { min-width:0; }
.guestrow select, .guestrow input { width:100%; }
.rf-warn { background:rgba(180,70,42,.15); border:1px solid rgba(180,70,42,.5); border-radius:10px;
  padding:12px 16px; font-size:14px; line-height:1.6; }
.menu-intro { margin-bottom:38px; }
.menu-intro p { margin:10px 0 24px; line-height:1.75; opacity:.92; max-width:70ch; }
.mi-thumb { float:right; width:84px; height:84px; object-fit:cover; border-radius:10px; margin:0 0 10px 16px;
  cursor:zoom-in; position:relative; z-index:1; }
#lb-img { display:block; max-width:100%; max-height:80vh; margin:0 auto; border-radius:14px; }
.dim-note { font-size:12px; opacity:.55; }
.rstatus { display:inline-block; border-radius:22px; padding:9px 22px; font-size:14px; letter-spacing:1px; margin-bottom:22px; }
.rstatus.pending { border:1.5px solid var(--gold); color:var(--gold); }
.rstatus.confirmed { background:#2c4a2a; color:#cfe8c8; }
.rstatus.declined, .rstatus.cancelled { background:#4c1f14; color:#e8c2b4; }
.rcard { background:var(--panel); border-radius:14px; padding:20px 24px; max-width:640px; }
.rcard .line { display:flex; gap:14px; font-size:16px; line-height:1.9; }
.rcard .line b { color:var(--gold); min-width:110px; font-weight:normal; }
@media (max-width:700px){ .resform .row3, .guestrow { grid-template-columns:1fr; } .resform .row4 { grid-template-columns:1fr 1fr; } }
