
:root{
  --bg:#fff8f1;
  --bg-soft:#fff1e3;
  --surface:#ffffff;
  --surface-2:#fff7f0;
  --text:#241a16;
  --muted:#6f615a;
  --brand:#c92b2d;
  --brand-dark:#a11f21;
  --accent:#f0b34f;
  --line:#ecd9cb;
  --shadow:0 20px 45px rgba(54, 27, 14, .12);
  --radius:24px;
  --radius-sm:16px;
  --container:min(1140px, calc(100vw - 2rem));
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at top left, rgba(240,179,79,.22), transparent 26rem),
    linear-gradient(180deg, #fff9f5 0%, #fff7f0 100%);
  line-height:1.6;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
p,h1,h2,h3,h4,ul,ol,dl{margin:0}
ul{padding:0;list-style:none}
main{display:block}
.container{width:var(--container);margin:0 auto}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);border:0
}
.site-shell{min-height:100vh;display:flex;flex-direction:column}
main{flex:1}

.topbar{
  background:#2a1814;
  color:#fff5ef;
  font-size:.9rem;
}
.topbar-inner{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  padding:.7rem 0;
}
.topbar-links{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.topbar a:hover{color:#fff}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,248,241,.9);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(201,43,45,.08);
}
.nav-row{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:1.5rem;
  padding:1rem 0;
}
.brand{display:flex;align-items:center}
.brand img{width:240px;max-width:100%;height:auto}

.site-nav{
  display:flex;
  justify-content:center;
  gap:.15rem;
  flex-wrap:nowrap;
}
.site-nav a{
  padding:.72rem .82rem;
  border-radius:999px;
  font-weight:700;
  font-size:.96rem;
  color:var(--muted);
  transition:.2s ease;
}
.site-nav a:hover,
.site-nav a.active{
  background:var(--surface);
  color:var(--brand-dark);
  box-shadow:0 8px 20px rgba(40,20,10,.08);
}
.header-actions{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}
.header-actions .btn{padding:.82rem 1rem;font-size:.92rem}
.nav-toggle{
  display:none;
  border:0;
  background:var(--surface);
  width:52px;height:52px;border-radius:50%;
  box-shadow:0 10px 20px rgba(40,20,10,.08);
}
.nav-toggle{
  display:none;
  align-items:center;
  justify-content:center;
  border:0;
  background:var(--surface);
  width:52px;height:52px;border-radius:50%;
  box-shadow:0 10px 20px rgba(40,20,10,.08);
}
.nav-toggle-icon,
.nav-toggle-icon::before,
.nav-toggle-icon::after{
  display:block;
  width:22px;
  height:2px;
  border-radius:999px;
  background:#3a2620;
  transition:transform .2s ease, opacity .2s ease;
}
.nav-toggle-icon{position:relative}
.nav-toggle-icon::before,
.nav-toggle-icon::after{
  content:"";
  position:absolute;
  left:0;
}
.nav-toggle-icon::before{top:-7px}
.nav-toggle-icon::after{top:7px}
.nav-toggle[aria-expanded="true"] .nav-toggle-icon{background:transparent}
.nav-toggle[aria-expanded="true"] .nav-toggle-icon::before{transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nav-toggle-icon::after{transform:translateY(-7px) rotate(-45deg)}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  padding:.92rem 1.25rem;
  border-radius:999px;
  font-weight:800;
  letter-spacing:.01em;
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{
  background:linear-gradient(180deg, #dd3a3c 0%, var(--brand) 100%);
  color:white;
  box-shadow:0 16px 30px rgba(201,43,45,.28);
}
.btn-primary:hover{background:linear-gradient(180deg, #e34446 0%, var(--brand-dark) 100%)}
.btn-soft{
  background:linear-gradient(180deg, #ffffff 0%, #fff8f2 100%);
  color:var(--text);
  border:1px solid rgba(36,26,22,.12);
  box-shadow:0 16px 34px rgba(40,20,10,.14), 0 0 0 1px rgba(201,43,45,.04);
}
.btn-soft:hover{box-shadow:0 18px 38px rgba(40,20,10,.18), 0 0 0 1px rgba(201,43,45,.08)}

.btn-store{order:1;}
.btn-dinein{order:2;}
.button-row,.hero-actions{display:flex;flex-wrap:wrap;gap:.85rem}
.button-row .btn,.hero-actions .btn{min-width:0;}
.text-link{
  color:var(--brand-dark);
  font-weight:800;
}

.hero{
  position:relative;
  overflow:hidden;
  padding:2rem 0 5rem;
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0, 1.08fr) minmax(320px, 520px);
  gap:1.5rem;
  align-items:stretch;
}
.hero-media{
  position:relative;
  width:100%;
  max-width:520px;
  justify-self:end;
  min-height:0;
  aspect-ratio:5 / 4;
  overflow:hidden;
  border-radius:32px;
  box-shadow:var(--shadow);
}
.hero-media::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(36,26,22,.06), rgba(36,26,22,.18));
}
.hero-media img{
  width:100%;height:100%;object-fit:cover;object-position:center center;
}
.hero-card{
  width:100%;
  align-self:center;
  padding:2.4rem;
  border-radius:32px;
  background:rgba(255,252,248,.92);
  box-shadow:var(--shadow);
  border:1px solid rgba(255,255,255,.65);
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:.78rem;
  font-weight:900;
  color:var(--brand-dark);
  margin-bottom:1rem;
}
.eyebrow::before{
  content:"";
  width:28px;height:3px;border-radius:999px;background:var(--accent);
}
.hero h1,.page-hero h1{
  font-family:"Bebas Neue", Impact, sans-serif;
  font-size:clamp(3rem, 6vw, 5.5rem);
  line-height:.95;
  letter-spacing:.02em;
  margin-bottom:1rem;
}
.hero-text{
  font-size:1.08rem;
  color:var(--muted);
  max-width:52ch;
  margin-bottom:1.4rem;
}
.hero-meta{
  display:grid;
  gap:.55rem;
  margin-top:1.5rem;
  color:#4e413b;
}
.hero-meta strong{color:var(--text)}

.section{
  padding:4.5rem 0;
}
.section-heading{
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:1.5rem;
  margin-bottom:1.75rem;
}
.section-heading-stack{align-items:flex-start;margin-bottom:1.4rem}
.section h2{
  font-family:"Bebas Neue", Impact, sans-serif;
  font-size:clamp(2.15rem, 4vw, 3.6rem);
  line-height:1;
  letter-spacing:.02em;
}
.two-col{
  display:grid;
  grid-template-columns:1.08fr .92fr;
  gap:2rem;
  align-items:center;
}
.feature-list{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
  margin-top:1.6rem;
}
.feature-card,.visit-card,.menu-section-card,.contact-card,.faq-item{
  background:var(--surface);
  border-radius:var(--radius);
  padding:1.35rem;
  box-shadow:var(--shadow);
}
.feature-card h3,.menu-highlight h3,.faq-item h2,.menu-section-card h2,.contact-card h2{
  margin-bottom:.45rem;
}
.feature-card p,.menu-highlight p,.visit-card p,.menu-section-subtitle,.faq-item p,.contact-card p,.footer-copy{
  color:var(--muted);
}
.family-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
}
.family-grid-three{grid-template-columns:repeat(3, minmax(0, 1fr));align-items:stretch}
.family-grid-three .family-card{min-height:auto}
.family-grid-three .family-card img{aspect-ratio:4 / 5;object-fit:cover}
.family-grid-three .family-card:first-child img{aspect-ratio:4 / 5}
.family-card{
  margin:0;
  border-radius:32px;
  overflow:hidden;
  background:var(--surface);
  box-shadow:var(--shadow);
  min-height:260px;
}
.family-card img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.family-card:first-child img{
  aspect-ratio:4 / 3;
}
.family-card-tall img{
  aspect-ratio:4 / 5;
  object-position:center 28%;
}
.welcome-gallery-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
}
.welcome-gallery-card{
  margin:0;
  overflow:hidden;
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--shadow);
}
.welcome-gallery-card img{
  width:100%;
  aspect-ratio:4 / 5;
  object-fit:cover;
}
.button-row-tight .btn{flex:1 1 240px}
.visit-link-row,.page-hero-link{margin-top:1rem}
.location-card .button-row{margin-top:1.1rem}
.contact-address{margin-bottom:1.15rem}
.contact-order-buttons{margin-top:.2rem}

.card-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:1rem;
}
.deal-card{
  background:linear-gradient(180deg, #fff 0%, #fff6ed 100%);
  border-radius:28px;
  padding:1.35rem;
  box-shadow:var(--shadow);
  border:1px solid rgba(201,43,45,.08);
}
.deal-card-large{padding:1.7rem}
.deal-day{
  color:var(--brand-dark);
  font-weight:900;
  font-size:1rem;
}
.deal-price{
  font-family:"Bebas Neue", Impact, sans-serif;
  font-size:3rem;
  line-height:1;
  color:var(--text);
  margin:.5rem 0 .8rem;
}
.deal-card ul{
  display:grid;
  gap:.55rem;
  margin-bottom:1rem;
}
.deal-card li{
  position:relative;
  padding-left:1rem;
  color:#4d3d36;
}
.deal-card li::before{
  content:"";
  position:absolute;
  left:0;top:.75rem;
  width:6px;height:6px;border-radius:50%;
  background:var(--accent);
}
.deal-note{
  font-size:.92rem;
  color:#806f66;
  margin-top:1rem;
}

.menu-highlight-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
}
.menu-highlight{
  display:flex;
  flex-direction:column;
  background:var(--surface);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
}
.menu-highlight img{width:100%;height:220px;object-fit:cover;flex:0 0 auto}
.menu-highlight-copy{padding:1.2rem;background:var(--surface);display:block;position:relative;z-index:1}

.gallery-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:1rem;
}
.gallery-card{
  border-radius:26px;
  overflow:hidden;
  background:var(--surface);
  box-shadow:var(--shadow);
  aspect-ratio: 4 / 3;
}
.gallery-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}

.visit-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
}
.hours-list{
  display:grid;
  gap:.9rem;
  margin-top:1rem;
}
.hours-list div{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:.8rem;
  border-bottom:1px solid var(--line);
}
.hours-list dt{font-weight:700}
.hours-list dd{margin:0;color:var(--muted);text-align:right}
.hours-note{margin-top:1rem}

.page-hero{
  padding:3.5rem 0 1rem;
}
.page-hero.narrow .container{max-width:860px}
.page-hero p{color:var(--muted)}
.page-hero .button-row{margin-top:1.35rem}

.menu-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
}
.menu-section-card h2{
  font-size:2rem;
  font-family:"Bebas Neue", Impact, sans-serif;
  line-height:1;
}
.menu-list{
  display:grid;
  gap:.9rem;
  margin-top:1rem;
}
.menu-item-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:1rem;
  align-items:start;
  padding-bottom:.9rem;
  border-bottom:1px solid var(--line);
}
.menu-item-row h3{
  font-size:1rem;
  margin-bottom:.2rem;
}
.menu-item-row p{
  color:var(--muted);
  font-size:.95rem;
  line-height:1.45;
}
.menu-item-row strong{
  white-space:nowrap;
  color:var(--brand-dark);
}
.coupon-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
}
.coupon-card{
  background:var(--surface);
  border-radius:26px;
  padding:1rem;
  box-shadow:var(--shadow);
}
.coupon-card img{
  width:100%;
  border-radius:18px;
}
.faq-list{
  display:grid;
  gap:1rem;
  max-width:900px;
}
.faq-item h2{
  font-size:1.25rem;
}
.faq-item a{
  color:var(--brand-dark);
  font-weight:700;
}
.contact-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
}
.form-wrap{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:1.2rem;
  align-items:start;
}
.contact-form{
  background:var(--surface);
  border-radius:var(--radius);
  padding:1.35rem;
  box-shadow:var(--shadow);
}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:1rem;
}
.contact-form label{
  display:grid;
  gap:.45rem;
  margin-bottom:1rem;
  font-weight:700;
}
.contact-form span{font-size:.95rem}
.contact-form input,
.contact-form textarea{
  width:100%;
  font:inherit;
  color:var(--text);
  border:1px solid var(--line);
  background:#fffdfb;
  border-radius:18px;
  padding:.9rem 1rem;
  box-shadow:inset 0 1px 2px rgba(40,20,10,.04);
}
.contact-form input:focus,
.contact-form textarea:focus{
  outline:2px solid rgba(201,43,45,.2);
  border-color:rgba(201,43,45,.35);
}
.form-alert{
  padding:1rem 1.1rem;
  border-radius:18px;
  margin-bottom:1rem;
}
.form-success{
  background:#ecfff0;color:#25512e;border:1px solid #c7eccf;
}
.form-error{
  background:#fff0f0;color:#7b2528;border:1px solid #f0c7c8;
}
.form-error ul{list-style:disc;padding-left:1.2rem}
.honeypot{position:absolute;left:-9999px;opacity:0;pointer-events:none}

.site-footer{
  margin-top:2rem;
  background:#241713;
  color:#f7ece4;
  padding-top:3rem;
}
.footer-grid{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr 1fr;
  gap:1.5rem;
  padding-bottom:2rem;
}
.footer-grid h3{
  font-family:"Bebas Neue", Impact, sans-serif;
  font-size:1.45rem;
  letter-spacing:.03em;
  margin-bottom:.7rem;
}
.footer-grid a{color:#ffdca0}
.footer-logo{
  width:220px;
  max-width:100%;
  background:#fff;
  border-radius:18px;
  padding:.5rem .75rem;
  box-shadow:0 12px 28px rgba(0,0,0,.12);
  margin-bottom:1rem;
}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:1rem 0 1.4rem;
  border-top:1px solid rgba(255,255,255,.12);
  color:#d8c4b6;
  font-size:.92rem;
}

@media (max-width: 1080px){
  .nav-row{grid-template-columns:auto auto 1fr auto}
  .nav-toggle{display:inline-flex;order:3}
  .site-nav{
    position:absolute;
    top:calc(100% + .75rem);
    left:1rem;right:1rem;
    display:none;
    flex-direction:column;
    padding:1rem;
    background:rgba(255,248,241,.98);
    border-radius:24px;
    box-shadow:var(--shadow);
    border:1px solid rgba(201,43,45,.08);
  }
  .site-nav.is-open{display:flex}
  .site-nav a{width:100%;text-align:left}
  .topbar-inner,.two-col,.visit-grid,.footer-grid,.form-wrap,.contact-grid,.menu-grid,.gallery-grid,.menu-highlight-grid,.card-grid,.hero-grid{
    grid-template-columns:1fr;
  }
  .feature-list{grid-template-columns:1fr}
  .welcome-gallery-grid{grid-template-columns:repeat(3, minmax(0, 1fr));}
  .section{padding:3rem 0}
  .hero{padding:1.5rem 0 2.75rem}
  .hero-media{aspect-ratio:4 / 3;min-height:0;max-width:none;order:-1}
  .header-actions{display:none}
  .coupon-grid{grid-template-columns:1fr}
}

@media (max-width: 720px){
  .topbar-inner,.footer-bottom{flex-direction:column;align-items:flex-start}
  .nav-row{grid-template-columns:auto auto 1fr;gap:1rem;padding:.85rem 0}
  .brand img{width:190px}
  .hero-card{padding:1.3rem}
  .hero h1,.page-hero h1{font-size:clamp(2.5rem, 13vw, 4rem)}
  .hero{padding:1rem 0 2.15rem}
  .page-hero{padding:2.3rem 0 .35rem}
  .section{padding:2.35rem 0}
  .button-row,.hero-actions{flex-direction:column;align-items:stretch;gap:.7rem}
  .button-row .btn-store,.hero-actions .btn-store{order:1}
  .button-row .btn-dinein,.hero-actions .btn-dinein{order:2;background:rgba(255,255,255,.94);color:var(--ink);border:1px solid rgba(13,22,38,.12);box-shadow:0 12px 24px rgba(13,22,38,.14), 0 2px 8px rgba(13,22,38,.08)}
  .button-row .btn-dinein:hover,.hero-actions .btn-dinein:hover{background:white;box-shadow:0 16px 28px rgba(13,22,38,.18), 0 3px 10px rgba(13,22,38,.10)}
  .section-heading{margin-bottom:1.15rem}
  .page-hero .button-row{margin-top:1rem}
  .form-grid,.hours-list div{grid-template-columns:1fr}
  .menu-item-row{grid-template-columns:minmax(0,1fr) auto;gap:.75rem;align-items:start}
  .menu-item-row strong{text-align:right;justify-self:end;align-self:start}
  .section-heading{flex-direction:column;align-items:flex-start;gap:.5rem}
  .section-heading .text-link{margin-top:.1rem}
  .hours-list div{display:grid}
  .hours-list dd{text-align:left}
  .gallery-card{aspect-ratio:4/3}
  .hero-media{aspect-ratio:4 / 3;min-height:0;max-width:none}
  .welcome-gallery-grid{grid-template-columns:1fr}
  .menu-highlight img{height:240px}
}


/* Admin */
.admin-body,.admin-login-body{background:#f4f4f6}
.admin-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}
.admin-sidebar{background:#1f2328;color:#fff;padding:1.5rem;position:sticky;top:0;height:100vh}
.admin-brand{display:block;color:#fff;text-decoration:none;font:700 2rem/1 'Bebas Neue',sans-serif;letter-spacing:.04em;margin-bottom:1.25rem}
.admin-nav{display:grid;gap:.5rem}
.admin-nav a{color:#d9dde3;text-decoration:none;padding:.7rem .9rem;border-radius:12px}
.admin-nav a:hover{background:rgba(255,255,255,.08);color:#fff}
.admin-main{padding:1.5rem}
.admin-topbar{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1.25rem}
.admin-topbar h1{margin:0}
.admin-grid{display:grid;gap:1rem}
.admin-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1rem}
.two-up{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-bottom:1rem}
.admin-card{background:#fff;border:1px solid #e5e7eb;border-radius:20px;padding:1.2rem;box-shadow:0 8px 22px rgba(0,0,0,.05)}
.stat-label{margin:0;color:#6b7280;font-size:.9rem}.stat-value{margin:.35rem 0 0;font-size:2rem;font-weight:800}
.admin-list{margin:.4rem 0 0 1.1rem;padding:0;display:grid;gap:.5rem}
.admin-form-grid,.stack-form{display:grid;gap:.9rem}
.admin-form-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.admin-form-grid label,.stack-form label{display:grid;gap:.35rem}
.admin-form-grid input,.admin-form-grid textarea,.stack-form input,.stack-form textarea,.stack-form select{width:100%;padding:.8rem .9rem;border:1px solid #d1d5db;border-radius:12px;font:inherit;background:#fff}
.inline-check{display:flex !important;align-items:center;gap:.55rem}.inline-check input{width:auto}
.admin-actions{grid-column:1/-1;display:flex;gap:.75rem}.admin-actions.split{justify-content:flex-start}
.admin-alert{padding:.9rem 1rem;border-radius:14px;margin-bottom:1rem}
.admin-alert-success{background:#ecfdf5;color:#166534;border:1px solid #bbf7d0}
.admin-alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.admin-block{margin-bottom:1rem}.admin-flex-between{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin-bottom:.8rem}
.admin-table-wrap{overflow:auto;margin-top:1rem}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:.7rem;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:top}
.inside-details{margin-top:.8rem}.compact-form{margin-bottom:.75rem}
.admin-image-preview img{max-width:280px;width:100%;height:auto;border-radius:14px;border:1px solid #e5e7eb;margin-bottom:1rem}
.admin-login-card{max-width:460px;margin:8vh auto;background:#fff;padding:1.6rem;border-radius:24px;box-shadow:0 10px 30px rgba(0,0,0,.08);border:1px solid #e5e7eb}
.admin-login-card form{display:grid;gap:.9rem;margin-top:1rem}.admin-login-card label{display:grid;gap:.35rem}
.admin-login-card input{width:100%;padding:.8rem .9rem;border:1px solid #d1d5db;border-radius:12px;font:inherit}
.admin-btn-full{width:100%}.admin-note{color:#6b7280;font-size:.95rem}
@media (max-width: 900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto}.admin-topbar{flex-direction:column}.admin-main{padding:1rem}}

.admin-password-form{max-width:620px}
.admin-password-form .btn{justify-self:start}
