@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&family=Lora:ital,wght@0,400;0,500;0,600;1,400&display=swap');

:root{
  --bg: var(--cms-bg, #d9cdb4);
  --card: var(--cms-card, #f7f0e2);
  --text: var(--cms-text, #2a1c14);
  --text-muted: #5c4534;
  --text-soft: #7a5b3f;
  --line: #e2d5ba;
  --line-strong: #cbb896;
  --dot: #c4ad8c;
  --accent: var(--cms-accent, #7a2318);
  --accent-dark: var(--cms-accent-dark, #5f1a12);
  --gold: var(--cms-gold, #cf9a3c);
  --gold-light: color-mix(in srgb, var(--gold) 65%, white);
  --tag-veg-bg: #e4e6d2; --tag-veg-text: #4f5a2f;
  --tag-spice-bg: #f7e3c6; --tag-spice-text: #7a2318;
}
*{box-sizing:border-box;}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:Lora, Georgia, serif; font-size:16px; line-height:1.6;
}
a{color:var(--accent); text-decoration:none;}
a:hover{color:var(--gold);}
img{max-width:100%; display:block;}
.font-display{font-family:'Playfair Display', serif;}
.wrap{max-width:1320px; margin:0 auto;}
.card-shell{background:var(--card); box-shadow:0 3px 30px rgba(42,28,20,.18); margin:0 auto;}

/* announcement bar */
.announce{display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;
  padding:9px; background:var(--accent); color:#f0dfc0; font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; text-align:center;}
.announce .sep{opacity:.5;}

/* nav */
.nav{display:flex; align-items:center; gap:24px; padding:22px 52px; border-bottom:1px solid var(--line-strong); flex-wrap:wrap;}
.nav-brand{display:flex; flex-direction:column; margin-right:auto;}
.nav-brand .name{font-family:'Playfair Display', serif; font-weight:700; font-size:28px; letter-spacing:.02em; line-height:1; color:var(--text);}
.nav-brand .tag{font-size:10.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--text-soft); margin-top:5px;}
.nav a.nav-link{font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:var(--text);}
.btn{display:inline-block; padding:12px 26px; font-size:12.5px; letter-spacing:.18em; text-transform:uppercase; border:1px solid var(--accent); background:var(--accent); color:var(--card); cursor:pointer;}
.btn:hover{background:var(--accent-dark); border-color:var(--accent-dark); color:var(--card);}
.btn-outline{background:transparent; color:var(--accent);}
.btn-outline:hover{background:var(--accent); color:var(--card);}
.btn-gold{background:var(--gold); border-color:var(--gold); color:#2a1c14;}
.btn-gold:hover{background:var(--gold-light); border-color:var(--gold-light); color:#2a1c14;}

/* hero */
.hero{position:relative; min-height:520px; background-size:cover; background-position:center;}
.hero::after{content:'';position:absolute; inset:0; background:linear-gradient(90deg, rgba(30,17,11,.82) 0%, rgba(30,17,11,.5) 55%, rgba(30,17,11,.22) 100%);}
.hero-inner{position:relative; z-index:1; display:flex; flex-direction:column; justify-content:center; gap:20px; min-height:520px; padding:48px 52px; max-width:720px; color:#f7f0e2;}
.hero-kicker{font-size:11.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-light);}
.hero h1{font-weight:600; font-size:clamp(38px,6vw,74px); line-height:1.04; margin:0; letter-spacing:-.01em;}
.hero h1 em{font-style:italic; font-weight:500;}
.hero p{font-size:18px; line-height:1.7; margin:0; max-width:50ch; color:rgba(247,240,226,.86);}
.hero-actions{display:flex; gap:14px; margin-top:8px; flex-wrap:wrap;}

/* info */
.info{padding:60px 52px 52px; border-bottom:1px solid var(--line-strong);}
.info-head{display:flex; flex-direction:column; align-items:center; gap:10px; margin-bottom:40px; text-align:center;}
.info-head .kicker{font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:#a8825a;}
.info-head h2{font-weight:600; font-size:clamp(28px,4vw,40px); margin:0;}
.info-head .dots{color:var(--gold); font-size:15px; letter-spacing:.5em;}
.info-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:44px;}
@media (max-width:900px){.info-grid{grid-template-columns:1fr; gap:32px;}}
.info-cell{display:flex; flex-direction:column; gap:12px; padding-right:44px; border-right:1px solid var(--line);}
.info-cell:last-child{border-right:none; padding-right:0;}
@media (max-width:900px){.info-cell{border-right:none; padding-right:0; padding-bottom:24px; border-bottom:1px solid var(--line);} .info-cell:last-child{border-bottom:none;}}
.info-cell .label{font-size:10.5px; letter-spacing:.26em; text-transform:uppercase; color:#a8825a;}
.info-cell h3{font-family:'Playfair Display', serif; font-weight:600; font-size:22px; margin:0; line-height:1.3;}
.info-cell p{margin:0; font-size:15px; line-height:1.75; color:var(--text-muted);}
.hours-row{display:flex; align-items:baseline; gap:10px; font-size:15.5px;}
.hours-row .fill{flex:1; border-bottom:1px dotted var(--dot);}
.hours-row .val{font-variant-numeric:tabular-nums;}
.hours-row.note{color:var(--text-soft);}
.tag-chip{padding:6px 14px; border:1px solid var(--line-strong); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--text-soft);}
.tag-row{display:flex; gap:8px; flex-wrap:wrap; margin-top:2px;}

/* gallery */
.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
@media (max-width:700px){.gallery{grid-template-columns:1fr;}}
.gallery figure{margin:0; position:relative; height:280px; border-right:2px solid var(--card); background-size:cover; background-position:center;}
.gallery figure:last-child{border-right:none;}
.gallery figcaption{position:absolute; left:0; bottom:0; padding:9px 16px; background:var(--card); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-soft);}

/* menu */
.menu-section{padding:64px 52px 24px;}
.menu-head{display:flex; flex-direction:column; align-items:center; gap:12px; padding-bottom:26px; border-bottom:3px double var(--gold);}
.menu-head .kicker{font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:#a8825a;}
.menu-head h2{font-weight:600; font-size:clamp(34px,5vw,54px); margin:0; letter-spacing:-.01em;}
.menu-head .sub{margin:0; font-size:15.5px; font-style:italic; color:var(--text-soft);}
.menu-toolbar{display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; padding:22px 52px 26px;}
.mode-toggle{display:flex; border:1px solid var(--accent);}
.mode-toggle span{padding:9px 22px; font-size:12px; letter-spacing:.16em; text-transform:uppercase;}
.mode-toggle span.active{background:var(--accent); color:var(--card);}
.mode-toggle span:not(.active){color:var(--accent);}
.next-slot{font-size:14px; color:var(--text-muted); font-style:italic;}
.filters{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
.filters .label{font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:#a8825a;}
.filter-chip{padding:7px 15px; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; border:1px solid var(--line-strong); color:var(--text-muted); cursor:pointer;}
.filter-chip.active{background:var(--text); color:var(--card); border-color:var(--text);}

.menu-grid{padding:0 52px 56px; display:grid; grid-template-columns:1fr 1fr; gap:0 56px;}
@media (max-width:900px){.menu-grid{grid-template-columns:1fr;}}
.cat-head{display:flex; flex-direction:column; align-items:center; gap:5px; padding:14px 0 18px;}
.cat-head.second{padding-top:40px;}
.cat-head h3{font-weight:600; font-size:29px; margin:0;}
.cat-head .sub{font-size:13px; font-style:italic; color:var(--text-soft);}
.cat-head .rule{width:56px; border-bottom:1px solid var(--gold); margin-top:6px;}

.menu-row{display:flex; gap:14px; align-items:flex-start; padding:15px 0; border-bottom:1px solid var(--line);}
.menu-row.unavailable{opacity:.45;}
.menu-row-photo{width:56px; height:56px; flex:none; border-radius:2px; background-size:cover; background-position:center; background-color:var(--line);}
.menu-row-body{flex:1; display:flex; flex-direction:column; gap:5px; min-width:0;}
.menu-row-top{display:flex; align-items:baseline; gap:10px;}
.menu-row-top .name{font-family:'Playfair Display', serif; font-weight:600; font-size:20px;}
.menu-row-top .fill{flex:1; border-bottom:1px dotted var(--dot);}
.menu-row-top .price{font-family:'Playfair Display', serif; font-size:20px; font-variant-numeric:tabular-nums;}
.menu-row .desc{font-size:15px; line-height:1.65; color:var(--text-muted); max-width:52ch;}
.tag{padding:2px 9px; font-size:10px; letter-spacing:.14em; text-transform:uppercase;}
.tag-gf{border:1px solid var(--line-strong); color:var(--text-soft);}
.tag-veg{background:var(--tag-veg-bg); color:var(--tag-veg-text);}
.tag-spicy{background:var(--tag-spice-bg); color:var(--tag-spice-text);}

.order-summary{margin-top:40px; border:1px solid var(--line-strong); background:#fffaf0; padding:26px 28px; display:flex; flex-direction:column; gap:11px;}
.order-summary-head{display:flex; flex-direction:column; align-items:center; gap:4px; padding-bottom:12px; border-bottom:3px double var(--line-strong); text-align:center;}
.order-summary-head .label{font-size:10.5px; letter-spacing:.26em; text-transform:uppercase; color:#a8825a;}
.order-summary-head .title{font-family:'Playfair Display', serif; font-size:21px;}
.order-summary .note{text-align:center; font-size:13px; font-style:italic; color:var(--text-soft);}

/* footer */
.site-footer{padding:52px; background:#2a1c14; color:#f0dfc0; display:grid; grid-template-columns:2fr 1fr 1fr; gap:44px;}
@media (max-width:800px){.site-footer{grid-template-columns:1fr; gap:28px;}}
.site-footer .brand{font-family:'Playfair Display', serif; font-weight:700; font-size:28px;}
.site-footer .tagline{font-size:10.5px; letter-spacing:.3em; text-transform:uppercase; color:#b89a72;}
.site-footer p{margin:8px 0 0; font-size:15px; line-height:1.75; color:rgba(240,223,192,.75); max-width:42ch;}
.footer-col{display:flex; flex-direction:column; gap:9px; font-size:15px; color:rgba(240,223,192,.8);}
.footer-col .label{font-size:10.5px; letter-spacing:.26em; text-transform:uppercase; color:#b89a72; margin-bottom:4px;}