﻿:root{
  --accent:#D3182B;
  --brand-red:#D3182B;
  --brand-red-soft:#FF4558;
  --brand-wine:#7B1020;
  --brand-rose:#FFF1F3;
  --dark:#1D1D1F;
  --paper:#F2F2F2;
  --ink:#1D1D1F;
  --muted:#5d5a66;
  --line:#ead8dc;
  --white:#fff;
  --brand-gradient:linear-gradient(135deg,var(--brand-wine) 0%,var(--brand-red) 54%,var(--brand-red-soft) 100%);
  --brand-shadow:0 18px 42px color-mix(in srgb, var(--brand-red) 22%, transparent);
  --shadow:0 14px 34px rgba(29,29,31,.10);
  color-scheme:light;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
[v-cloak]{display:none !important}
body{
  margin:0;
  font-family:"Manrope", "Inter", system-ui, sans-serif;
  color:var(--ink);
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--accent) 14%, transparent), transparent 32rem),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,250,252,.94)),
    var(--paper);
}
body.menu-body{
  background:#f8f4ea;
}

#app.is-tenant-loading > :not(.menu-loading),
#app.is-menu-unavailable > :not(.menu-unavailable){
  visibility:hidden;
}

body.menu-body .menu-loading{
  position:fixed;
  inset:0;
  z-index:2100;
  padding:24px;
  display:grid;
  place-items:center;
  overflow:hidden;
  color:#201a21;
  background:
    radial-gradient(circle at 18% 16%,rgba(236,43,120,.08),transparent 29rem),
    radial-gradient(circle at 84% 82%,rgba(255,155,47,.09),transparent 27rem),
    #fff;
}
body.menu-body .menu-loading-content{
  width:min(100%,430px);
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  animation:menuLoadingReveal .48s cubic-bezier(.22,1,.36,1) both;
}
body.menu-body .menu-loading-content>img{
  width:164px;
  margin-bottom:38px;
}
body.menu-body .menu-loading-spinner{
  position:relative;
  width:62px;
  height:62px;
  margin-bottom:28px;
  border:1px solid rgba(236,43,120,.13);
  border-radius:50%;
  background:rgba(255,255,255,.9);
  box-shadow:0 16px 42px rgba(71,31,54,.1);
}
body.menu-body .menu-loading-spinner::before,
body.menu-body .menu-loading-spinner::after{
  content:"";
  position:absolute;
  border-radius:50%;
}
body.menu-body .menu-loading-spinner::before{
  inset:8px;
  border:2px solid rgba(236,43,120,.12);
  border-top-color:#ec2b78;
  animation:menuLoadingSpin .9s linear infinite;
}
body.menu-body .menu-loading-spinner::after{
  inset:22px;
  background:linear-gradient(135deg,#ec2b78,#ff9b2f);
  box-shadow:0 0 0 7px rgba(236,43,120,.08);
  animation:menuLoadingPulse 1.25s ease-in-out infinite;
}
body.menu-body .menu-loading-eyebrow{
  color:#ec2b78;
  font-size:.73rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
body.menu-body .menu-loading-content h1{
  margin:10px 0 11px;
  font-family:"Lexend",sans-serif;
  font-size:clamp(2rem,7vw,3rem);
  line-height:1.08;
  letter-spacing:-.045em;
}
body.menu-body .menu-loading-content p{
  max-width:360px;
  margin:0;
  color:#716971;
  font-size:.9rem;
  line-height:1.65;
}
body.menu-body .menu-loading-progress{
  width:148px;
  height:3px;
  margin-top:28px;
  overflow:hidden;
  border-radius:999px;
  background:#f1e9ed;
}
body.menu-body .menu-loading-progress i{
  display:block;
  width:54%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#ec2b78,#ff9b2f);
  animation:menuLoadingProgress 1.15s ease-in-out infinite;
}
@keyframes menuLoadingReveal{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:none}
}
@keyframes menuLoadingSpin{
  to{transform:rotate(360deg)}
}
@keyframes menuLoadingPulse{
  50%{transform:scale(.76);opacity:.72}
}
@keyframes menuLoadingProgress{
  from{transform:translateX(-110%)}
  to{transform:translateX(200%)}
}

body.menu-body .menu-unavailable{
  position:fixed;
  inset:0;
  z-index:2000;
  padding:24px;
  display:grid;
  place-items:center;
  overflow:auto;
  background:
    radial-gradient(circle at 18% 20%,rgba(236,43,120,.1),transparent 30%),
    radial-gradient(circle at 83% 78%,rgba(255,155,47,.12),transparent 30%),
    rgba(255,255,255,.64);
  -webkit-backdrop-filter:blur(24px) saturate(.65);
  backdrop-filter:blur(24px) saturate(.65);
  animation:menuUnavailableReveal .45s ease-out both;
}
body.menu-body .menu-unavailable-card{
  width:min(100%,600px);
  padding:46px;
  border:1px solid rgba(255,255,255,.86);
  border-radius:32px;
  background:rgba(255,255,255,.82);
  box-shadow:
    0 34px 90px rgba(50,27,47,.16),
    inset 0 1px 0 rgba(255,255,255,.92);
  text-align:center;
  -webkit-backdrop-filter:blur(18px);
  backdrop-filter:blur(18px);
  animation:menuUnavailableCardReveal .55s cubic-bezier(.22,1,.36,1) both;
}
body.menu-body .menu-unavailable-card>a:first-child img{
  width:166px;
  margin:0 auto 30px;
}
body.menu-body .menu-unavailable-icon{
  width:64px;
  height:64px;
  margin:0 auto 20px;
  display:grid;
  place-items:center;
  border-radius:22px;
  color:#ec2b78;
  background:linear-gradient(145deg,#fff,#fff0f6);
  box-shadow:0 14px 32px rgba(236,43,120,.14);
}
body.menu-body .menu-unavailable-icon svg{
  width:29px;
  height:29px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
}
body.menu-body .menu-unavailable-card .eyebrow{
  color:#ec2b78;
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
body.menu-body .menu-unavailable-card h1{
  margin:12px auto 16px;
  max-width:510px;
  color:#201a21;
  font-family:"Lexend",sans-serif;
  font-size:clamp(2.35rem,6vw,4rem);
  line-height:1.05;
  letter-spacing:-.05em;
}
body.menu-body .menu-unavailable-card p{
  max-width:470px;
  margin:0 auto;
  color:#655d66;
  font-size:.98rem;
  line-height:1.7;
}
body.menu-body .menu-unavailable-card small{
  display:block;
  max-width:430px;
  margin:12px auto 0;
  color:#928992;
  font-size:.78rem;
  line-height:1.55;
}
body.menu-body .menu-unavailable-help{
  min-height:48px;
  margin-top:26px;
  padding:0 22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  color:#fff;
  background:linear-gradient(135deg,#ec2b78,#c81761);
  box-shadow:0 14px 30px rgba(236,43,120,.22);
  font-size:.82rem;
  font-weight:700;
  transition:transform .2s ease,box-shadow .2s ease;
  border:0;
  cursor:pointer;
}
body.menu-body .menu-unavailable-help:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 36px rgba(236,43,120,.28);
}
body.menu-body .menu-unavailable.is-not-found{
  background:
    radial-gradient(circle at 18% 20%,rgba(50,88,160,.08),transparent 30%),
    radial-gradient(circle at 83% 78%,rgba(112,64,160,.08),transparent 30%),
    rgba(255,255,255,.82);
}
body.menu-body .menu-unavailable.is-not-found .menu-unavailable-icon{
  color:#385c9b;
  background:linear-gradient(145deg,#fff,#eef4ff);
  box-shadow:0 14px 32px rgba(56,92,155,.13);
}
body.menu-body .menu-unavailable.is-not-found .eyebrow{color:#385c9b}
body.menu-body .menu-unavailable.is-not-found .menu-unavailable-help{
  background:linear-gradient(135deg,#385c9b,#273f71);
  box-shadow:0 14px 30px rgba(56,92,155,.2);
}
body.menu-body .menu-unavailable.is-error .menu-unavailable-icon,
body.menu-body .menu-unavailable.is-error .eyebrow{color:#ad620e}
body.menu-body .menu-unavailable.is-error .menu-unavailable-help{
  background:linear-gradient(135deg,#c67518,#9e5508);
  box-shadow:0 14px 30px rgba(173,98,14,.2);
}
@keyframes menuUnavailableReveal{
  from{opacity:0}
  to{opacity:1}
}
@keyframes menuUnavailableCardReveal{
  from{opacity:0;transform:translateY(18px) scale(.98)}
  to{opacity:1;transform:none}
}
@media (max-width:560px){
  body.menu-body .menu-unavailable{padding:14px}
  body.menu-body .menu-unavailable-card{padding:36px 22px;border-radius:26px}
  body.menu-body .menu-unavailable-card>a:first-child img{width:150px;margin-bottom:26px}
}
@media (prefers-reduced-motion:reduce){
  body.menu-body .menu-loading-content,
  body.menu-body .menu-loading-spinner::before,
  body.menu-body .menu-loading-spinner::after,
  body.menu-body .menu-loading-progress i,
  body.menu-body .menu-unavailable,
  body.menu-body .menu-unavailable-card{animation:none}
}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
button{cursor:pointer}
img{max-width:100%;display:block}

.site-shell{min-height:100vh}
.topbar{
  position:sticky;
  top:0;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px clamp(18px,4vw,56px);
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(18px);
  border-bottom:1px solid var(--line);
}
.brand-lockup{display:flex;align-items:center;gap:12px;min-width:0}
.brand-header-logo{
  width:auto;
  height:46px;
  flex:0 0 auto;
  object-fit:contain;
}
.brand-mark{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--dark);
  color:var(--accent);
  font-weight:900;
  letter-spacing:.04em;
  box-shadow:0 12px 30px rgba(0,0,0,.12);
  flex:0 0 auto;
}
.brand-logo-mark{
  overflow:hidden;
  border-radius:14px;
  background:transparent;
  color:inherit;
  box-shadow:0 12px 26px rgba(211,24,43,.18);
}
.brand-logo-mark img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.brand-copy{display:flex;flex-direction:column;min-width:0}
.brand-copy strong{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-copy span{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-title{
  font-family:"Rubik","Manrope",system-ui,sans-serif;
  color:var(--dark);
  letter-spacing:0;
}
.brand-title span,
.brand-title small{
  color:var(--accent);
}
.brand-title small{
  margin-left:2px;
  font-size:.72em;
  font-weight:800;
}
.topnav{display:flex;align-items:center;gap:8px}
.topnav a,.ghost-link{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 16px;
  border-radius:999px;
  color:#4a4032;
  font-weight:800;
  font-size:.9rem;
}
.topnav a:hover,.ghost-link:hover{background:rgba(214,165,65,.14)}
.primary-btn,.secondary-btn,.icon-btn{
  border:0;
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border-radius:999px;
  font-weight:900;
  line-height:1;
}
.primary-btn{
  padding:0 20px;
  background:var(--dark);
  color:#fff;
  box-shadow:0 14px 34px rgba(23,19,12,.18);
}
.secondary-btn{
  padding:0 18px;
  background:#fff;
  color:var(--dark);
  border:1px solid var(--line);
}
.icon-btn{
  width:46px;
  padding:0;
  background:#fff;
  color:var(--dark);
  border:1px solid var(--line);
}
.hamburger{display:none}
.hamburger span{
  width:18px;
  height:2px;
  display:block;
  border-radius:999px;
  background:currentColor;
}

.hero{
  min-height:calc(100vh - 78px);
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(320px,.78fr);
  align-items:center;
  gap:clamp(30px,5vw,72px);
  padding:48px clamp(18px,5vw,76px) 34px;
}
.hero-copy{max-width:760px}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:0 12px;
  border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);
  border-radius:999px;
  background:color-mix(in srgb, var(--accent) 9%, #fff);
  color:color-mix(in srgb, var(--accent) 70%, #1f2937);
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
}
.hero h1{
  margin:18px 0 18px;
  font-family:"Fraunces", Georgia, serif;
  font-size:clamp(2.7rem,6.4vw,6rem);
  line-height:.96;
  letter-spacing:0;
  max-width:11ch;
}
.hero p{
  margin:0;
  color:#5f5446;
  font-size:clamp(1rem,1.8vw,1.2rem);
  line-height:1.75;
  max-width:62ch;
}
.hero-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero-proof{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:12px;margin-top:34px;max-width:680px}
.proof-item{
  padding:16px;
  border-radius:8px;
  background:#fff;
  border:1px solid var(--line);
}
.proof-item strong{display:block;font-size:1.4rem;font-weight:900}
.proof-item span{display:block;margin-top:4px;color:var(--muted);font-size:.86rem;font-weight:700}

.phone-stage{
  position:relative;
  min-height:620px;
  display:grid;
  place-items:center;
}
.phone-frame{
  position:relative;
  width:min(392px,88vw);
  aspect-ratio:430/932;
  padding:10px;
  border:2px solid #2b2d33;
  border-radius:58px;
  overflow:visible;
  background:linear-gradient(145deg,#0b0c0f 0%,#24272e 48%,#07080a 100%);
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,.08),
    inset 0 0 0 8px #111316,
    0 34px 96px rgba(15,10,5,.32);
}
.phone-frame::before,
.phone-frame::after{
  content:"";
  position:absolute;
  z-index:1;
  width:3px;
  border-radius:999px;
  background:#14161b;
}
.phone-frame::before{
  left:-5px;
  top:128px;
  height:78px;
}
.phone-frame::after{
  right:-5px;
  top:178px;
  height:118px;
}
.phone-screen{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  border-radius:46px;
  background:#fff;
  isolation:isolate;
}
.dynamic-island{
  position:absolute;
  top:14px;
  left:50%;
  z-index:8;
  width:112px;
  height:33px;
  border-radius:999px;
  background:#050505;
  transform:translateX(-50%);
  box-shadow:0 8px 18px rgba(0,0,0,.22);
}
.menu-preview-frame{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  border:0;
  background:#fff;
}
.phone-cover{
  position:relative;
  height:220px;
  overflow:hidden;
  background:#e1e3e4;
}
.phone-cover::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.58), transparent);
}
.phone-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.phone-store{
  padding:18px;
  margin-top:-64px;
  position:relative;
  z-index:2;
}
.store-head{
  display:flex;
  align-items:center;
  gap:12px;
}
.store-avatar{
  width:64px;
  height:64px;
  border-radius:20px;
  display:grid;
  place-items:center;
  background:var(--dark);
  color:var(--accent);
  border:4px solid #fff;
  font-weight:900;
  overflow:hidden;
}
.store-avatar img{width:100%;height:100%;object-fit:cover}
.store-head h3{margin:0;font-size:1rem}
.store-head p{margin:4px 0 0;color:var(--muted);font-size:.78rem}
.mini-tabs{display:flex;gap:8px;overflow:hidden;margin:18px 0}
.mini-tabs span{
  white-space:nowrap;
  padding:9px 12px;
  border-radius:999px;
  background:color-mix(in srgb, var(--accent) 12%, #f8fafc);
  font-size:.76rem;
  font-weight:900;
}
.mini-card{
  display:grid;
  grid-template-columns:72px 1fr;
  gap:12px;
  align-items:center;
  padding:10px;
  margin-bottom:10px;
  border:1px solid var(--line);
  border-radius:8px;
}
.mini-card img{width:72px;height:72px;border-radius:8px;object-fit:cover}
.mini-card strong{font-size:.9rem}
.mini-card span{display:block;margin-top:5px;color:var(--accent);font-weight:900}
.float-note{
  position:absolute;
  right:2%;
  bottom:12%;
  width:190px;
  padding:16px;
  border-radius:8px;
  background:#111827;
  color:#fff;
  box-shadow:var(--shadow);
}
.float-note strong{display:block;color:var(--accent)}
.float-note span{display:block;margin-top:6px;font-size:.82rem;color:rgba(255,255,255,.72)}

.section{padding:74px clamp(18px,5vw,76px)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}
.section-head h2{
  margin:0;
  font-family:"Fraunces", Georgia, serif;
  font-size:clamp(2rem,4vw,3.5rem);
  line-height:1;
}
.section-head p{margin:0;color:var(--muted);max-width:56ch;line-height:1.65}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.feature-card,.panel-card{
  border:1px solid var(--line);
  background:rgba(255,255,255,.74);
  border-radius:8px;
  padding:22px;
}
.feature-card i{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:color-mix(in srgb, var(--accent) 14%, #fff);
  color:color-mix(in srgb, var(--accent) 70%, #111827);
  margin-bottom:18px;
}
.feature-card h3{margin:0 0 10px;font-size:1.05rem}
.feature-card p{margin:0;color:var(--muted);line-height:1.65}
.pricing-band{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:24px;
  align-items:center;
  background:var(--dark);
  color:#fff;
  border-radius:8px;
  padding:clamp(22px,4vw,44px);
}
.pricing-band h2{font-family:"Fraunces", Georgia, serif;font-size:clamp(2rem,4vw,3.4rem);margin:0 0 12px}
.pricing-band p{margin:0;color:rgba(255,255,255,.72);line-height:1.7}
.price-card{
  background:#fff;
  color:var(--dark);
  border-radius:8px;
  padding:24px;
}
.price-card strong{font-size:2.8rem;font-weight:900}
.price-card span{color:var(--muted);font-weight:800}
.footer{
  padding:34px clamp(18px,5vw,76px);
  border-top:1px solid var(--line);
  color:var(--muted);
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.landing-v2{
  --olive:var(--accent);
  --black:var(--dark);
  background:#fff;
  font-family:"Rubik","Roboto",system-ui,-apple-system,sans-serif;
  letter-spacing:0;
}
.landing-v2 h1,
.landing-v2 h2,
.landing-v2 h3,
.landing-v2 strong,
.landing-v2 button,
.landing-v2 a{
  font-family:"Rubik","Roboto",system-ui,-apple-system,sans-serif;
  letter-spacing:0;
}
.landing-v2 p,
.landing-v2 input,
.landing-v2 textarea,
.landing-v2 select,
.landing-v2 span{
  font-family:"Rubik","Roboto",system-ui,-apple-system,sans-serif;
  font-weight:400;
}
.landing-v2 .brand-mark,
.landing-v2 .store-avatar{
  border-radius:18px;
  background:var(--black);
  color:#fff;
}
.landing-v2 .brand-logo-mark{
  border-radius:14px;
  background:transparent;
  color:inherit;
}
.landing-v2 .primary-btn{
  background:var(--olive);
  color:#fff;
  box-shadow:0 16px 32px color-mix(in srgb, var(--olive) 28%, transparent);
}
.landing-v2 .secondary-btn{
  background:#fff;
  color:var(--black);
  border-color:rgba(5,5,5,.12);
}
.desktop-cta{display:inline-flex}
.header-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
}
.header-actions .secondary-btn{
  min-height:44px;
  padding:0 17px;
  background:#fff;
}
.header-actions .primary-btn{
  min-height:44px;
  padding:0 18px;
}
.pf-hero{
  min-height:calc(100vh - 76px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(330px,.82fr);
  align-items:center;
  gap:clamp(28px,5vw,80px);
  padding:44px clamp(18px,5vw,76px) 42px;
  background:
    radial-gradient(circle at 80% 10%, color-mix(in srgb, var(--olive) 18%, transparent), transparent 30rem),
    linear-gradient(180deg,#fff 0%,#f7f8f2 100%);
}
.pf-hero h1{
  max-width:12ch;
  margin:18px 0;
  font-family:"Rubik","Roboto",system-ui,-apple-system,sans-serif;
  font-size:clamp(2.65rem,6.4vw,6.15rem);
  line-height:.96;
  letter-spacing:0;
  font-weight:800;
}
.pf-hero p{
  max-width:62ch;
  color:#4b5563;
  font-size:clamp(1rem,1.6vw,1.18rem);
  line-height:1.75;
  font-weight:400;
}
.landing-v2 .section-head h2,
.landing-v2 .pricing-band h2,
.landing-v2 .plan-card h3,
.landing-v2 .step-card h3,
.landing-v2 .feature-card h3,
.landing-v2 .contact-copy h2,
.landing-v2 .footer-columns h3{
  font-family:"Rubik","Roboto",system-ui,-apple-system,sans-serif;
  letter-spacing:0;
}
.landing-v2 .section-head h2,
.landing-v2 .pricing-band h2,
.landing-v2 .contact-copy h2{
  font-weight:800;
  line-height:1.06;
}
.landing-v2 .feature-card p,
.landing-v2 .step-card p,
.landing-v2 .plan-card li,
.landing-v2 .faq-list p,
.landing-v2 .section-head p,
.landing-v2 .plan-card p,
.landing-v2 .contact-copy p,
.landing-v2 .footer-brand p,
.landing-v2 .contact-form input,
.landing-v2 .contact-form textarea,
.landing-v2 .contact-form select{
  font-weight:400;
}
.landing-v2 .topnav a,
.landing-v2 .primary-btn,
.landing-v2 .secondary-btn,
.landing-v2 .trust-row span{
  font-weight:700;
}
.landing-v2 .eyebrow{
  text-transform:none;
  font-size:.86rem;
  font-weight:700;
}
.landing-v2 .brand-copy strong{
  font-weight:700;
}
.landing-v2 .brand-copy span,
.landing-v2 .footer-columns a,
.landing-v2 .footer-columns span{
  font-weight:400;
}
.landing-v2 .logo-strip span,
.landing-v2 .logo-strip b,
.landing-v2 .mini-tabs span,
.landing-v2 .contact-points span,
.landing-v2 .plan-price span,
.landing-v2 .form-divider span{
  font-weight:500;
}
.landing-v2 .footer-brand strong,
.landing-v2 .plan-card h3,
.landing-v2 .feature-card h3,
.landing-v2 .step-card h3{
  font-weight:700;
}
.landing-v2 .feature-grid-wide{
  gap:10px 28px;
}
.landing-v2 .feature-card{
  position:relative;
  padding:8px 0 8px 26px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.landing-v2 .feature-card::before{
  content:"";
  position:absolute;
  left:0;
  top:11px;
  width:4px;
  height:38px;
  border-radius:999px;
  background:var(--olive);
}
.landing-v2 .feature-card i{
  width:10px;
  height:10px;
  display:block;
  margin:0 0 14px;
  border-radius:999px;
  background:var(--olive);
  color:transparent;
  font-size:0;
}
.landing-v2 .feature-card h3{
  margin:0 0 8px;
  color:#121513;
  font-size:1.08rem;
  font-weight:700;
}
.landing-v2 .feature-card p{
  color:#667085;
  line-height:1.62;
}
.benefits-showcase{
  padding-top:54px;
  padding-bottom:60px;
  background:#fff;
}
.benefits-title{
  max-width:980px;
  margin:0 auto 42px;
  text-align:center;
}
.benefits-title h2{
  margin:0;
  color:#050505;
  font-family:"Rubik","Roboto",system-ui,-apple-system,sans-serif;
  font-size:clamp(2rem,4vw,3.45rem);
  line-height:1.08;
  font-weight:800;
}
.benefits-title h2 span{
  color:#D3182B;
}
.benefits-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(24px,4vw,58px);
  align-items:start;
}
.benefit-card{
  display:grid;
  justify-items:center;
  gap:24px;
  text-align:center;
}
.benefit-visual{
  position:relative;
  width:min(240px,100%);
  aspect-ratio:1;
  display:grid;
  place-items:center;
}
.benefit-visual::before{
  content:"";
  position:absolute;
  inset:18px;
  border-radius:999px;
  background:#D3182B;
}
.benefit-visual > img{
  position:relative;
  z-index:1;
  width:82%;
  height:82%;
  object-fit:cover;
  border-radius:999px;
  object-position:center;
}
.visual-customer > img{
  width:94%;
  height:94%;
  object-position:center top;
}
.benefit-phone{
  position:relative;
  z-index:1;
  width:112px;
  min-height:188px;
  padding:9px 8px 10px;
  border:7px solid #111316;
  border-radius:24px;
  background:#fff;
  box-shadow:0 16px 34px rgba(5,5,5,.18);
  transform:rotate(-2deg);
}
.benefit-phone span{
  position:absolute;
  top:6px;
  left:50%;
  width:42px;
  height:10px;
  border-radius:999px;
  background:#050505;
  transform:translateX(-50%);
}
.benefit-phone img{
  width:100%;
  height:82px;
  margin-top:14px;
  border-radius:12px;
  object-fit:cover;
}
.benefit-phone strong{
  display:block;
  margin-top:8px;
  color:#050505;
  font-size:.58rem;
  line-height:1.15;
  text-align:left;
}
.benefit-phone small{
  display:block;
  margin-top:5px;
  color:#D3182B;
  font-size:.56rem;
  font-weight:800;
  text-align:left;
}
.benefit-dashboard{
  position:relative;
  z-index:1;
  width:220px;
  height:132px;
}
.dash-window{
  position:absolute;
  left:0;
  bottom:10px;
  width:176px;
  height:112px;
  padding:14px;
  border:7px solid #17191d;
  border-radius:10px 10px 8px 8px;
  background:#fff;
  box-shadow:0 16px 30px rgba(5,5,5,.18);
}
.dash-window::after{
  content:"";
  position:absolute;
  left:34px;
  right:34px;
  bottom:-18px;
  height:10px;
  border-radius:0 0 10px 10px;
  background:#2a2d33;
}
.dash-window span{
  display:block;
  height:10px;
  margin-bottom:12px;
  border-radius:999px;
  background:linear-gradient(90deg,#D3182B 34%,#eef0f5 34%);
}
.dash-window div{
  height:44px;
  border-radius:8px;
  background:
    linear-gradient(to top,#D3182B 58%,transparent 58%) 82% 100%/16px 44px no-repeat,
    linear-gradient(to top,#12b981 36%,transparent 36%) 64% 100%/16px 44px no-repeat,
    linear-gradient(to top,#D3182B 78%,transparent 78%) 46% 100%/16px 44px no-repeat,
    #f5f6fb;
}
.dash-window b{
  display:block;
  width:78px;
  height:9px;
  margin-top:11px;
  border-radius:999px;
  background:#e8ebf2;
}
.dash-mobile{
  position:absolute;
  right:0;
  bottom:0;
  width:54px;
  height:94px;
  border:6px solid #17191d;
  border-radius:16px;
  background:
    linear-gradient(#D3182B,#D3182B) 50% 72%/28px 8px no-repeat,
    repeating-linear-gradient(to bottom,#eef0f5 0 8px, transparent 8px 16px),
    #fff;
  box-shadow:0 14px 26px rgba(5,5,5,.18);
}
.benefit-copy h3{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:0 0 14px;
  color:#050505;
  font-family:"Rubik","Roboto",system-ui,-apple-system,sans-serif;
  font-size:1.22rem;
  line-height:1.18;
  font-weight:800;
}
.benefit-copy h3 span{
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:999px;
  background:#D3182B;
  color:#fff;
  font-size:.98rem;
  font-weight:800;
}
.benefit-copy p{
  max-width:32ch;
  margin:0 auto;
  color:#111827;
  font-size:1.05rem;
  line-height:1.55;
  font-weight:400;
}
.landing-v2 .olive-section{
  background:#111814;
}
.landing-v2 .steps-grid{
  gap:14px;
}
.landing-v2 .step-card{
  padding:22px;
  border:0;
  border-radius:16px;
  background:rgba(255,255,255,.08);
  box-shadow:none;
}
.landing-v2 .step-card strong{
  width:auto;
  height:auto;
  display:inline-flex;
  align-items:center;
  margin:0 0 16px;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:#d7f28d;
  font-size:.78rem;
  font-weight:600;
}
.landing-v2 .step-card strong::before{
  content:"";
}
.landing-v2 .step-card h3{
  margin:0 0 8px;
  font-size:1.12rem;
  font-weight:700;
}
.landing-v2 .step-card p{
  color:rgba(255,255,255,.68);
  line-height:1.62;
}
.menu-showcase{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(320px,.72fr);
  gap:clamp(24px,5vw,76px);
  align-items:center;
  background:#fbfcf8;
}
.showcase-copy h2{
  margin:14px 0;
  max-width:14ch;
  color:#111814;
  font-size:clamp(2.1rem,4.5vw,4rem);
  line-height:1.04;
  font-weight:800;
}
.showcase-copy p{
  max-width:56ch;
  margin:0;
  color:#667085;
  line-height:1.72;
}
.showcase-list{
  display:grid;
  gap:10px;
}
.showcase-list article{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  gap:14px;
  align-items:center;
  min-height:74px;
  padding:14px 16px;
  border-radius:18px;
  background:#fff;
  box-shadow:0 14px 38px rgba(17,24,20,.06);
}
.showcase-list strong{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:color-mix(in srgb, var(--olive) 14%, #f8fafc);
  color:var(--olive);
  font-size:.8rem;
  font-weight:700;
}
.showcase-list span{
  color:#202420;
  font-weight:500;
  line-height:1.45;
}
.trial-band{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin:0 clamp(18px,5vw,76px);
  padding:clamp(26px,5vw,44px);
  border-radius:28px;
  background:
    radial-gradient(circle at 90% 15%, color-mix(in srgb, var(--olive) 26%, transparent), transparent 26rem),
    #111814;
  color:#fff;
}
.trial-band h2{
  max-width:16ch;
  margin:12px 0;
  font-size:clamp(2rem,4vw,3.5rem);
  line-height:1.06;
  font-weight:800;
}
.trial-band p{
  max-width:58ch;
  margin:0;
  color:rgba(255,255,255,.72);
  line-height:1.7;
}
.trial-actions{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.trial-band .secondary-btn{
  background:rgba(255,255,255,.10);
  color:#fff;
  border-color:rgba(255,255,255,.18);
}
.trust-row{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  margin-top:28px;
}
.trust-row span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:24px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#374151;
  font-weight:600;
  font-size:.86rem;
  line-height:1.2;
  opacity:0;
  transform:translateY(12px);
  animation:trustEntrance .62s cubic-bezier(.16,1,.3,1) forwards;
}
.trust-row span:nth-child(2){animation-delay:.08s}
.trust-row span:nth-child(3){animation-delay:.16s}
.trust-row span::before{
  content:"";
  width:7px;
  height:7px;
  flex:0 0 7px;
  border-radius:999px;
  background:var(--accent);
  box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 12%, transparent);
}
@keyframes trustEntrance{
  to{
    opacity:1;
    transform:translateY(0);
  }
}
.pf-phone{
  transform:rotate(1.2deg);
  border-color:#111316;
  background:#fff;
}
.logo-strip{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(14px,4vw,38px);
  flex-wrap:wrap;
  padding:18px clamp(18px,5vw,76px);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#fff;
}
.logo-strip span{
  color:var(--muted);
  font-weight:900;
  text-transform:uppercase;
  font-size:.78rem;
}
.logo-strip b{
  color:#111827;
  font-size:1rem;
}
.feature-grid-wide{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.olive-section{
  background:#11140d;
  color:#fff;
}
.olive-section .section-head p{color:rgba(255,255,255,.68)}
.steps-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.step-card{
  padding:24px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:rgba(255,255,255,.06);
}
.step-card strong{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--olive);
  color:#fff;
  margin-bottom:18px;
}
.step-card h3{margin:0 0 10px}
.step-card p{margin:0;color:rgba(255,255,255,.72);line-height:1.65}
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
  max-width:920px;
  margin:0 auto;
}
.plan-card{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:24px;
  border:1px solid rgba(5,5,5,.10);
  border-radius:8px;
  background:#fff;
  box-shadow:0 18px 48px rgba(5,5,5,.06);
}
.plan-card.featured{
  background:#10130b;
  color:#fff;
  transform:translateY(-8px);
}
.plan-card h3{margin:0;font-size:1.35rem}
.plan-card p{margin:0;color:var(--muted);line-height:1.6}
.plan-card.featured p{color:rgba(255,255,255,.72)}
.plan-price{display:flex;align-items:end;gap:6px}
.plan-price strong{font-size:3rem;line-height:1}
.plan-price strong small{
  margin-left:2px;
  font-size:.42em;
  font-weight:900;
  vertical-align:super;
}
.plan-price span{color:var(--muted);font-weight:900}
.plan-card.featured .plan-price span{color:rgba(255,255,255,.68)}
.plan-card ul{
  display:grid;
  gap:10px;
  padding:0;
  margin:0 0 8px;
  list-style:none;
}
.plan-card li{
  position:relative;
  padding-left:24px;
  color:#374151;
  line-height:1.45;
}
.plan-card.featured li{color:rgba(255,255,255,.82)}
.plan-card li::before{
  content:"";
  position:absolute;
  left:0;
  top:.35em;
  width:12px;
  height:12px;
  border-radius:999px;
  background:var(--olive);
}
.plan-card .primary-btn{margin-top:auto;width:100%}
.plan-badge{
  position:absolute;
  top:18px;
  right:18px;
  min-height:30px;
  display:inline-flex;
  align-items:center;
  padding:0 11px;
  border-radius:999px;
  background:var(--olive);
  color:#fff;
  font-size:.76rem;
  font-weight:900;
}
.demo-band{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  background:linear-gradient(135deg,#050505,#1b2111);
  color:#fff;
}
.demo-band h2{
  margin:12px 0;
  font-family:"Rubik","Manrope",system-ui,sans-serif;
  font-size:clamp(2rem,4vw,4rem);
  line-height:1;
}
.demo-band p{max-width:62ch;color:rgba(255,255,255,.72);line-height:1.7}
.faq-list{
  display:grid;
  gap:12px;
  max-width:980px;
  margin:0 auto;
}
.faq-list details{
  border:1px solid rgba(5,5,5,.10);
  border-radius:8px;
  background:#fff;
  padding:0 18px;
}
.faq-list summary{
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  cursor:pointer;
  font-weight:900;
}
.faq-list summary::after{
  content:"+";
  font-size:1.4rem;
  color:var(--olive);
}
.faq-list details[open] summary::after{content:"-"}
.faq-list p{
  margin:0;
  padding:0 0 18px;
  color:#4b5563;
  line-height:1.65;
}
.contact-section{
  display:grid;
  grid-template-columns:minmax(0,.86fr) minmax(320px,1fr);
  gap:28px;
  align-items:start;
  background:#f5f6ef;
}
.contact-copy h2{
  margin:14px 0;
  font-family:"Rubik","Manrope",system-ui,sans-serif;
  font-size:clamp(2.2rem,5vw,4.4rem);
  line-height:.98;
}
.contact-copy p{
  color:#4b5563;
  line-height:1.7;
  max-width:56ch;
}
.contact-points{
  display:grid;
  gap:10px;
  margin-top:24px;
}
.contact-points span{
  padding:14px 16px;
  border-radius:8px;
  background:#fff;
  border:1px solid rgba(5,5,5,.08);
  font-weight:900;
}
.contact-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  padding:22px;
  border-radius:8px;
  background:#fff;
  border:1px solid rgba(5,5,5,.08);
  box-shadow:0 20px 58px rgba(5,5,5,.08);
}
.contact-form label{
  display:grid;
  gap:8px;
  font-weight:900;
  color:#374151;
}
.contact-form label.full{grid-column:1/-1}
.contact-form input,
.contact-form select,
.contact-form textarea{
  width:100%;
  min-height:46px;
  border:1px solid rgba(5,5,5,.12);
  border-radius:8px;
  padding:10px 12px;
  background:#fff;
}
.contact-form textarea{min-height:118px;resize:vertical}
.contact-form button{grid-column:1/-1;width:100%}

.menu-header{
  position:sticky;
  top:0;
  z-index:20;
  background:#fff;
  border-bottom:1px solid var(--line);
}
.menu-cover{
  height:260px;
  background-image:var(--cover-image);
  background-position:center;
  background-size:cover;
  position:relative;
}
.menu-cover::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.66), rgba(0,0,0,.08));
}
.menu-cover-content{
  position:absolute;
  inset:auto clamp(18px,5vw,62px) 24px;
  z-index:2;
  color:#fff;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
}
.menu-cover h1{margin:0;font-family:"Fraunces", Georgia, serif;font-size:clamp(2.2rem,6vw,4rem);line-height:1}
.menu-cover p{margin:8px 0 0;color:rgba(255,255,255,.78)}
.menu-shell{
  display:grid;
  grid-template-columns:minmax(0,1fr) 380px;
  gap:22px;
  padding:22px clamp(14px,4vw,58px) 110px;
}
.category-row{
  position:sticky;
  top:74px;
  z-index:15;
  display:flex;
  gap:10px;
  overflow:auto;
  padding:12px clamp(14px,4vw,58px);
  background:#fff;
  border-bottom:1px solid var(--line);
}
.category-row button{
  flex:0 0 auto;
  border:1px solid var(--line);
  background:#fff;
  color:var(--dark);
  border-radius:999px;
  min-height:42px;
  padding:0 15px;
  font-weight:900;
}
.category-row button.active{background:var(--dark);color:#fff;border-color:var(--dark)}
.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.product-card{
  display:grid;
  grid-template-columns:134px minmax(0,1fr);
  gap:14px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px;
  box-shadow:0 12px 30px rgba(20,15,8,.05);
}
.product-card img{width:134px;height:134px;border-radius:8px;object-fit:cover}
.product-info{min-width:0;display:flex;flex-direction:column;gap:8px}
.product-info h3{margin:0;font-size:1rem}
.product-info p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.45}
.product-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}
.price{font-weight:900;color:color-mix(in srgb, var(--accent) 70%, #111827)}
.badge{
  display:inline-flex;
  width:max-content;
  min-height:24px;
  align-items:center;
  padding:0 9px;
  border-radius:999px;
  background:rgba(214,165,65,.18);
  color:#73571f;
  font-size:.72rem;
  font-weight:900;
}
.add-btn{
  border:0;
  background:var(--dark);
  color:#fff;
  border-radius:999px;
  min-height:38px;
  padding:0 13px;
  font-weight:900;
}
.cart-panel{
  position:sticky;
  top:146px;
  align-self:start;
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:18px;
  box-shadow:var(--shadow);
}
.cart-panel h2{margin:0 0 14px;font-size:1.2rem}
.cart-empty{color:var(--muted);line-height:1.5}
.cart-line{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 0;border-top:1px solid var(--line)}
.cart-line strong{display:block}
.cart-line span{color:var(--muted);font-size:.84rem}
.cart-line small{display:block;margin-top:5px;color:#6b7280;font-size:.78rem;line-height:1.4}
.qty{display:flex;align-items:center;gap:8px;margin-top:8px}
.qty button{width:28px;height:28px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:900}
.cart-total{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;margin-top:10px;font-weight:900;font-size:1.1rem}
.cart-note{width:100%;min-height:88px;resize:vertical;border:1px solid var(--line);border-radius:8px;padding:12px;margin:14px 0}
.checkout-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:14px;
}
.checkout-fields input,.checkout-fields select{
  width:100%;
  min-height:42px;
  border:1px solid var(--line);
  border-radius:8px;
  padding:0 11px;
  background:#fff;
}
.mobile-cart{
  display:none;
  position:fixed;
  left:12px;
  right:12px;
  bottom:12px;
  z-index:40;
}

.product-modal{
  position:fixed;
  inset:0;
  z-index:70;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(17,24,39,.62);
}
.product-dialog{
  position:relative;
  width:min(940px,100%);
  max-height:92vh;
  overflow:auto;
  display:grid;
  grid-template-columns:minmax(280px,.85fr) minmax(0,1fr);
  background:#fff;
  border-radius:8px;
  box-shadow:0 30px 90px rgba(0,0,0,.32);
}
.product-dialog > img{
  width:100%;
  height:100%;
  min-height:520px;
  object-fit:cover;
}
.product-dialog-body{padding:24px}
.product-dialog-body h2{
  margin:10px 0 8px;
  font-family:"Fraunces", Georgia, serif;
  font-size:2.1rem;
  line-height:1;
}
.product-dialog-body p{margin:0 0 18px;color:var(--muted);line-height:1.6}
.modal-close{
  position:absolute;
  top:12px;
  right:12px;
  z-index:2;
  width:38px;
  height:38px;
  border:0;
  border-radius:999px;
  background:#fff;
  box-shadow:0 10px 24px rgba(0,0,0,.16);
  font-size:1.35rem;
}
.option-group{
  padding:14px 0;
  border-top:1px solid var(--line);
}
.option-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.option-head span{
  color:var(--muted);
  font-size:.78rem;
  font-weight:900;
  text-transform:uppercase;
}
.option-choice{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:10px;
  align-items:center;
  min-height:44px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:8px;
  margin-bottom:8px;
}
.option-choice input{accent-color:var(--accent)}
.option-choice b{color:color-mix(in srgb, var(--accent) 72%, #111827)}
.dialog-footer{
  position:sticky;
  bottom:-24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:18px -24px -24px;
  padding:14px 24px;
  background:#fff;
  border-top:1px solid var(--line);
}
.mobile-cart button{width:100%;justify-content:space-between}

.admin-body{
  background:#f7f8f5;
  font-family:"Manrope","Inter",system-ui,sans-serif;
}
.admin-shell{
  display:grid;
  grid-template-columns:280px minmax(0,1fr);
  min-height:100vh;
}
.admin-sidebar{
  position:sticky;
  top:0;
  height:100vh;
  padding:18px 16px;
  background:linear-gradient(180deg,#111814 0%,#070908 100%);
  color:#fff;
  border-right:1px solid rgba(255,255,255,.08);
}
.admin-sidebar .brand-lockup{
  padding:10px;
  border-radius:18px;
  background:rgba(255,255,255,.06);
}
.admin-sidebar .brand-mark{
  background:#fff;
  color:#111814;
  border-radius:14px;
}
.admin-sidebar .brand-copy strong{font-weight:850}
.admin-sidebar .brand-copy span{color:rgba(255,255,255,.58)}
.tenant-session-card{
  display:grid;
  gap:4px;
  margin-top:12px;
  padding:12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:rgba(255,255,255,.07);
}
.tenant-session-card span{
  color:rgba(255,255,255,.56);
  font-size:.74rem;
  font-weight:800;
  text-transform:uppercase;
}
.tenant-session-card strong{
  color:#fff;
  font-weight:850;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tenant-session-card small{
  color:var(--accent);
  font-weight:800;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-nav{
  display:grid;
  gap:6px;
  margin-top:24px;
}
.admin-nav button,.admin-nav a{
  width:100%;
  min-height:46px;
  display:flex;
  align-items:center;
  gap:10px;
  border:0;
  border-radius:14px;
  padding:0 14px;
  background:transparent;
  color:rgba(255,255,255,.68);
  font-weight:750;
  text-align:left;
  transition:background .18s ease, color .18s ease, transform .18s ease;
}
.admin-nav button.active,
.admin-nav button:hover,
.admin-nav a:hover{
  background:rgba(255,255,255,.11);
  color:#fff;
  transform:translateX(2px);
}
.admin-nav button.active{
  box-shadow:inset 3px 0 0 var(--accent);
}
.admin-main{padding:24px clamp(16px,4vw,44px) 44px}
.admin-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px}
.admin-top h1{margin:0;font-family:"Fraunces", Georgia, serif;font-size:2.3rem}
.admin-session-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:12px;
  min-width:min(420px,100%);
}
.admin-session-actions > div{
  display:grid;
  justify-items:end;
  gap:3px;
  min-width:0;
}
.admin-session-actions span{
  color:var(--muted);
  font-size:.75rem;
  font-weight:800;
  text-transform:uppercase;
}
.admin-session-actions strong{
  max-width:260px;
  overflow:hidden;
  color:var(--ink);
  font-size:.9rem;
  font-weight:850;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-session-actions .secondary-btn{
  min-height:42px;
  padding:0 15px;
  white-space:nowrap;
}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.admin-card{
  background:#fff;
  border:1px solid rgba(17,24,20,.08);
  border-radius:16px;
  padding:20px;
  box-shadow:0 16px 45px rgba(17,24,20,.06);
}
.admin-card.full{grid-column:1/-1}
.ops-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}
.ops-head h2{
  margin:10px 0 8px;
  font-size:2rem;
}
.ops-head p{
  max-width:64ch;
  margin:0;
  color:var(--muted);
  line-height:1.6;
}
.ops-status-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:16px;
}
.ops-status-grid > div{
  min-height:108px;
  display:grid;
  align-content:center;
  gap:8px;
  padding:18px;
  border-radius:20px;
  background:
    radial-gradient(circle at 92% 18%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 12rem),
    #fbfaf7;
  border:1px solid rgba(17,24,20,.08);
}
.ops-status-grid span{
  color:var(--muted);
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
}
.ops-status-grid strong{
  min-width:0;
  overflow:hidden;
  color:#111814;
  font-size:clamp(1.7rem,3vw,2.35rem);
  font-weight:900;
  line-height:1;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ops-help-box{
  margin-bottom:16px;
  padding:16px 18px;
  border:1px solid color-mix(in srgb, var(--accent) 22%, var(--line));
  border-radius:18px;
  background:color-mix(in srgb, var(--accent) 7%, #fff);
}
.ops-help-box strong{display:block;margin-bottom:6px}
.ops-help-box p{
  margin:0;
  color:var(--muted);
  line-height:1.6;
}
.category-admin-grid{
  display:grid;
  gap:12px;
}
.category-admin-card{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) auto auto;
  gap:14px;
  align-items:center;
  padding:14px;
  border:1px solid rgba(17,24,20,.08);
  border-radius:20px;
  background:#fff;
  box-shadow:0 12px 32px rgba(17,24,20,.045);
}
.category-order-badge{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:#111814;
  color:#fff;
  font-weight:900;
}
.category-card-main{
  display:grid;
  gap:6px;
  min-width:0;
}
.category-card-main label,
.checkout-option-card label{
  color:var(--muted);
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
}
.category-card-main input,
.checkout-option-card input{
  width:100%;
  min-height:44px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:0 12px;
  background:#fbfaf7;
  color:var(--ink);
  font-weight:850;
  outline:0;
}
.category-card-main small{
  color:var(--muted);
  font-weight:750;
}
.admin-switch{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--ink);
  font-weight:850;
  white-space:nowrap;
}
.admin-switch input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.admin-switch span{
  width:46px;
  height:26px;
  position:relative;
  flex:0 0 auto;
  border-radius:999px;
  background:#d9d6cb;
  transition:background .18s ease;
}
.admin-switch span::after{
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:20px;
  height:20px;
  border-radius:999px;
  background:#fff;
  box-shadow:0 4px 10px rgba(0,0,0,.16);
  transition:transform .18s ease;
}
.admin-switch input:checked + span{
  background:var(--accent);
}
.admin-switch input:checked + span::after{
  transform:translateX(20px);
}
.category-card-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.category-card-actions button:disabled{
  opacity:.42;
  cursor:not-allowed;
}
.orders-admin-grid{
  grid-template-columns:1fr;
}
.checkout-config-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.checkout-config-card{
  display:grid;
  gap:12px;
  padding:16px;
  border:1px solid rgba(17,24,20,.08);
  border-radius:22px;
  background:#fbfaf7;
}
.checkout-config-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.checkout-config-head span{
  display:block;
  color:var(--accent);
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
}
.checkout-config-head strong{
  display:block;
  margin-top:5px;
  color:#111814;
  font-size:1.18rem;
  line-height:1.15;
}
.checkout-option-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:12px;
  align-items:end;
  padding:12px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(226,189,200,.62);
}
.rates-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}
.rates-head h2{
  margin:10px 0 8px;
  font-size:2rem;
}
.rates-head p{
  max-width:62ch;
  margin:0;
  color:var(--muted);
  line-height:1.6;
}
.rate-visibility-toggle{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:6px 12px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fbfaf7;
  color:var(--ink);
  font-weight:850;
  white-space:nowrap;
}
.rate-visibility-toggle input{position:absolute;opacity:0;pointer-events:none}
.rate-visibility-toggle span{
  width:46px;
  height:26px;
  position:relative;
  border-radius:999px;
  background:#d9d6cb;
  transition:background .18s ease;
}
.rate-visibility-toggle span::after{
  content:"";
  position:absolute;
  top:3px;
  left:3px;
  width:20px;
  height:20px;
  border-radius:999px;
  background:#fff;
  box-shadow:0 4px 10px rgba(0,0,0,.16);
  transition:transform .18s ease;
}
.rate-visibility-toggle input:checked + span{background:var(--accent)}
.rate-visibility-toggle input:checked + span::after{transform:translateX(20px)}
.active-rate-card{
  padding:22px;
  border-radius:22px;
  background:
    radial-gradient(circle at 92% 12%, color-mix(in srgb, var(--accent) 28%, transparent), transparent 18rem),
    linear-gradient(135deg,#111814,#1c241d);
  color:#fff;
  box-shadow:0 18px 48px rgba(17,24,20,.16);
}
.active-rate-card span{
  display:block;
  color:rgba(255,255,255,.62);
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.04em;
}
.active-rate-card strong{
  display:block;
  margin-top:9px;
  font-size:clamp(1.9rem,4vw,3.3rem);
  line-height:1;
}
.active-rate-card p{
  margin:10px 0 0;
  color:rgba(255,255,255,.72);
  line-height:1.55;
}
.rate-mode-switch{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:16px;
}
.rate-mode-switch button{
  min-height:132px;
  display:grid;
  align-content:start;
  gap:8px;
  padding:18px;
  border:1px solid rgba(17,24,20,.10);
  border-radius:22px;
  background:#fbfaf7;
  color:var(--ink);
  text-align:left;
  box-shadow:0 10px 28px rgba(17,24,20,.04);
  transition:transform .18s ease, border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.rate-mode-switch button:hover{transform:translateY(-1px)}
.rate-mode-switch button.active{
  border-color:color-mix(in srgb, var(--accent) 55%, transparent);
  background:#fff;
  box-shadow:0 18px 42px color-mix(in srgb, var(--accent) 14%, transparent);
}
.rate-mode-switch small{
  width:max-content;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(17,24,20,.07);
  color:var(--muted);
  font-weight:900;
}
.rate-mode-switch button.active small{
  background:color-mix(in srgb, var(--accent) 14%, #fff);
  color:var(--accent);
}
.rate-mode-switch strong{
  font-size:1.35rem;
  font-weight:900;
}
.rate-mode-switch span{
  color:var(--muted);
  line-height:1.5;
}
.rate-help-box{
  margin-top:16px;
  padding:16px 18px;
  border:1px solid color-mix(in srgb, var(--accent) 22%, var(--line));
  border-radius:18px;
  background:color-mix(in srgb, var(--accent) 7%, #fff);
}
.rate-help-box strong{display:block;margin-bottom:6px}
.rate-help-box p{
  margin:0;
  color:var(--muted);
  line-height:1.6;
}
.admin-rate-dialog{
  width:min(520px,calc(100vw - 28px));
}
.rate-modal-copy{
  margin:0 0 16px;
  color:var(--muted);
  line-height:1.6;
}
.rate-modal-preview{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:14px 0 18px;
  padding:14px 16px;
  border-radius:16px;
  background:#fbfaf7;
}
.rate-modal-preview span{
  color:var(--muted);
  font-weight:850;
}
.rate-modal-preview strong{
  color:var(--accent);
  font-weight:900;
}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:grid;gap:7px}
.field.full{grid-column:1/-1}
.field label{font-weight:900;font-size:.88rem;color:#4c4032}
.field input,.field textarea,.field select{
  width:100%;
  border:1px solid var(--line);
  border-radius:8px;
  min-height:44px;
  padding:10px 12px;
  background:#fff;
  color:var(--ink);
}
.field textarea{min-height:92px;resize:vertical}
.product-admin-row{
  display:grid;
  grid-template-columns:80px 1fr auto;
  align-items:center;
  gap:12px;
  padding:12px 0;
  border-top:1px solid rgba(17,24,20,.08);
}
.product-admin-row img{width:80px;height:70px;object-fit:cover;border-radius:8px}
.admin-product-modal{
  position:fixed;
  inset:0;
  z-index:120;
  display:grid;
  place-items:center;
  padding:20px;
  background:rgba(5,8,6,.46);
  backdrop-filter:blur(14px);
  animation:fadeIn .18s ease;
}
.admin-product-dialog{
  width:min(980px,100%);
  max-height:90vh;
  overflow:auto;
  animation:adminDialogIn .22s ease;
}
.admin-modal-head{
  position:sticky;
  top:0;
  z-index:3;
  display:flex;
  align-items:start;
  justify-content:space-between;
  gap:16px;
  margin:-20px -20px 18px;
  padding:18px 20px;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid rgba(17,24,20,.08);
  backdrop-filter:blur(12px);
}
.admin-modal-head h2{
  margin:8px 0 0;
  font-family:"Rubik","Manrope",system-ui,sans-serif;
  font-size:clamp(1.55rem,3vw,2.1rem);
  line-height:1.1;
}
.admin-image-uploader{
  display:grid;
  grid-template-columns:160px minmax(0,1fr);
  gap:16px;
  align-items:center;
  padding:14px;
  border:1px dashed rgba(17,24,20,.18);
  border-radius:18px;
  background:#fbfcf8;
}
.admin-image-uploader img{
  width:160px;
  height:130px;
  border-radius:14px;
  object-fit:cover;
  background:#edf0ea;
}
.admin-image-uploader strong{
  display:block;
  color:#111814;
  font-weight:800;
}
.admin-image-uploader p{
  margin:6px 0 12px;
  color:#667085;
  line-height:1.55;
}
.brand-image-field{
  gap:10px;
}
.brand-image-uploader{
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:16px;
  align-items:center;
  padding:14px;
  border:1px dashed rgba(17,24,20,.18);
  border-radius:18px;
  background:#fbfcf8;
}
.brand-image-uploader img{
  width:220px;
  height:124px;
  border-radius:14px;
  object-fit:cover;
  background:#edf0ea;
}
.brand-image-uploader.logo-preview{
  grid-template-columns:116px minmax(0,1fr);
}
.brand-image-uploader.logo-preview img{
  width:116px;
  height:116px;
  border-radius:24px;
}
.brand-image-uploader strong{
  display:block;
  color:#111814;
  font-weight:800;
}
.brand-image-uploader p{
  margin:6px 0 12px;
  color:#667085;
  line-height:1.55;
}
.file-upload-btn{
  position:relative;
  cursor:pointer;
}
.file-upload-btn input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
}
.admin-image-search{
  margin-top:14px;
  padding:14px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(17,24,20,.08);
  box-shadow:0 12px 32px rgba(17,24,20,.06);
}
.admin-image-searchbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
}
.admin-image-searchbar input{
  min-height:46px;
  border:1px solid rgba(17,24,20,.12);
  border-radius:999px;
  padding:0 15px;
  outline:0;
}
.image-search-hint{
  margin:10px 0 0;
  color:#667085;
  font-size:.88rem;
  line-height:1.45;
}
.admin-image-results{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-top:14px;
}
.admin-image-results button{
  display:grid;
  gap:8px;
  min-width:0;
  padding:8px;
  border:1px solid rgba(17,24,20,.10);
  border-radius:14px;
  background:#fbfcf8;
  color:#111814;
  text-align:left;
}
.admin-image-results button:hover{
  border-color:var(--accent);
  box-shadow:0 10px 24px rgba(17,24,20,.08);
}
.admin-image-results img{
  width:100%;
  aspect-ratio:1.15/1;
  object-fit:cover;
  border-radius:10px;
  background:#edf0ea;
}
.admin-image-results span{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:34px;
  color:#4b5563;
  font-size:.82rem;
  line-height:1.25;
}
@keyframes adminDialogIn{
  from{opacity:0;transform:translateY(22px) scale(.98)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
.option-builder{
  margin-top:18px;
  border-top:1px solid var(--line);
}
.option-admin-card{
  border:1px solid var(--line);
  border-radius:8px;
  padding:14px;
  margin-top:12px;
  background:#fbfaf7;
}
.choice-admin-row,.setting-row{
  display:grid;
  grid-template-columns:1fr 130px auto;
  gap:10px;
  align-items:center;
  margin:10px 0;
}
.choice-admin-row input,.setting-row input,.setting-row select{
  width:100%;
  min-height:40px;
  border:1px solid var(--line);
  border-radius:8px;
  padding:0 10px;
  background:#fff;
}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap}
.danger-btn{background:#8f2d20;color:#fff;border:0;border-radius:999px;min-height:38px;padding:0 13px;font-weight:900}
.small-btn{border:1px solid var(--line);background:#fff;border-radius:999px;min-height:38px;padding:0 13px;font-weight:900}
.preview-strip{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:14px;
  align-items:center;
}
.preview-strip img{height:130px;width:180px;border-radius:8px;object-fit:cover}
.admin-preview-grid .admin-card{
  overflow:hidden;
}
.preview-admin-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:22px;
}
.preview-admin-head h2{
  margin:10px 0 8px;
  font-size:2rem;
}
.preview-admin-head p{
  margin:0;
  color:var(--muted);
  line-height:1.55;
}
.device-preview-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,360px);
  gap:24px;
  align-items:center;
}
.desktop-device-preview{
  min-width:0;
  padding:12px 12px 18px;
  border-radius:24px;
  background:#111814;
  box-shadow:0 22px 60px rgba(17,24,20,.18);
}
.desktop-device-top{
  height:34px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 8px;
  color:rgba(255,255,255,.58);
}
.desktop-device-top span{
  width:10px;
  height:10px;
  border-radius:999px;
  background:#d9d6cb;
}
.desktop-device-top span:first-child{background:#ff6b6b}
.desktop-device-top span:nth-child(2){background:#f6c445}
.desktop-device-top span:nth-child(3){background:#23c483}
.desktop-device-top strong{
  min-width:0;
  margin-left:8px;
  overflow:hidden;
  font-size:.78rem;
  font-weight:800;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.desktop-device-screen{
  overflow:hidden;
  border-radius:16px;
  background:#fbfaf7;
}
.preview-menu-hero{
  min-height:178px;
  display:flex;
  align-items:flex-end;
  gap:16px;
  padding:22px;
  background-size:cover;
  background-position:center;
  color:#fff;
}
.preview-menu-hero img{
  width:86px;
  height:86px;
  flex:0 0 auto;
  border:5px solid #fff;
  border-radius:24px;
  background:#fff;
  object-fit:cover;
  box-shadow:0 12px 34px rgba(0,0,0,.24);
}
.preview-menu-hero small,
.iphone-preview-hero small{
  display:inline-flex;
  margin-bottom:6px;
  padding:5px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:.68rem;
  font-weight:900;
  text-transform:uppercase;
}
.preview-menu-hero h3{
  margin:0;
  font-size:2.15rem;
  line-height:1;
}
.preview-menu-hero p{
  margin:7px 0 0;
  color:rgba(255,255,255,.88);
  font-weight:800;
}
.preview-menu-tabs{
  display:flex;
  gap:8px;
  padding:14px 16px;
  overflow:hidden;
  border-bottom:1px solid rgba(226,189,200,.55);
}
.preview-menu-tabs span,
.iphone-preview-tabs span{
  white-space:nowrap;
  padding:8px 13px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(226,189,200,.75);
  color:#191c1d;
  font-size:.82rem;
  font-weight:900;
}
.preview-menu-tabs span:first-child,
.iphone-preview-tabs span:first-child{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}
.preview-menu-products{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  padding:16px;
}
.preview-menu-products article,
.iphone-preview-products article{
  display:grid;
  grid-template-columns:74px minmax(0,1fr);
  gap:10px;
  align-items:center;
  padding:10px;
  border:1px solid rgba(226,189,200,.78);
  border-radius:14px;
  background:#fff;
}
.preview-menu-products img,
.iphone-preview-products img{
  width:74px;
  height:74px;
  border-radius:12px;
  object-fit:cover;
}
.preview-menu-products strong,
.iphone-preview-products strong{
  display:block;
  color:#191c1d;
  font-weight:900;
  line-height:1.18;
}
.preview-menu-products small{
  display:block;
  margin:4px 0;
  color:var(--muted);
  font-weight:800;
}
.preview-menu-products b,
.iphone-preview-products b{
  color:var(--accent);
  font-weight:900;
}
.iphone17-preview{
  position:relative;
  width:min(330px,100%);
  aspect-ratio:1290/2796;
  justify-self:center;
  padding:9px;
  border:2px solid #2a2d33;
  border-radius:48px;
  background:linear-gradient(145deg,#0c0d10,#22252c 48%,#07080a);
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,.06),
    inset 0 0 0 7px #111316,
    0 30px 76px rgba(17,24,20,.28);
}
.iphone17-preview::before,
.iphone17-preview::after{
  content:"";
  position:absolute;
  width:3px;
  border-radius:999px;
  background:#17191f;
}
.iphone17-preview::before{
  left:-4px;
  top:118px;
  height:74px;
}
.iphone17-preview::after{
  right:-4px;
  top:164px;
  height:108px;
}
.iphone17-island{
  position:absolute;
  top:20px;
  left:50%;
  z-index:4;
  width:96px;
  height:30px;
  border-radius:999px;
  background:#050505;
  transform:translateX(-50%);
  box-shadow:0 8px 18px rgba(0,0,0,.26);
}
.iphone17-screen{
  width:100%;
  height:100%;
  overflow:hidden;
  border-radius:39px;
  background:#fbfaf7;
}
.iphone-preview-hero{
  min-height:214px;
  display:grid;
  align-content:end;
  gap:8px;
  padding:66px 16px 16px;
  background-size:cover;
  background-position:center;
  color:#fff;
}
.iphone-preview-hero img{
  width:76px;
  height:76px;
  border:4px solid #fff;
  border-radius:22px;
  background:#fff;
  object-fit:cover;
  box-shadow:0 12px 26px rgba(0,0,0,.22);
}
.iphone-preview-hero h3{
  margin:0;
  font-size:1.65rem;
  line-height:1;
}
.iphone-preview-hero p{
  margin:0;
  color:rgba(255,255,255,.86);
  font-size:.82rem;
  font-weight:800;
}
.iphone-preview-tabs{
  display:flex;
  gap:7px;
  padding:12px;
  overflow:hidden;
}
.iphone-preview-products{
  display:grid;
  gap:10px;
  padding:0 12px 14px;
}
.iphone-preview-products article{
  grid-template-columns:64px minmax(0,1fr);
  padding:9px;
  border-radius:15px;
}
.iphone-preview-products img{
  width:64px;
  height:64px;
}
.iphone-preview-products strong{
  font-size:.84rem;
}
.iphone-preview-products b{
  display:block;
  margin-top:4px;
  font-size:.82rem;
}
.toast{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:80;
  background:var(--dark);
  color:#fff;
  padding:13px 16px;
  border-radius:8px;
  opacity:0;
  transform:translateY(12px);
  pointer-events:none;
  transition:.2s ease;
  box-shadow:var(--shadow);
}
.toast.show{opacity:1;transform:translateY(0)}

body.menu-body .toast{
  left:50%;
  right:auto;
  bottom:calc(18px + env(safe-area-inset-bottom));
  z-index:70;
  width:max-content;
  max-width:min(88vw, 360px);
  text-align:center;
  border-radius:999px;
  transform:translate(-50%, 12px);
  box-shadow:0 16px 40px rgba(0,0,0,.22);
  pointer-events:none;
}
body.menu-body .toast.show{
  transform:translate(-50%, 0);
}

@media (max-width: 1020px){
  .hero{grid-template-columns:1fr;min-height:auto;padding-top:38px}
  .pf-hero{grid-template-columns:1fr;min-height:auto}
  .phone-stage{min-height:auto}
  .float-note{display:none}
  .feature-grid,.product-grid{grid-template-columns:1fr}
  .feature-grid-wide,.steps-grid,.pricing-grid{grid-template-columns:1fr}
  .plan-card.featured{transform:none}
  .contact-section{grid-template-columns:1fr}
  .pricing-band,.menu-shell{grid-template-columns:1fr}
  .cart-panel{position:static}
  .admin-shell{grid-template-columns:1fr}
  .admin-sidebar{
    position:relative;
    height:auto;
    border-right:0;
  }
  .admin-nav{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .admin-top{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .rates-head{
    display:grid;
  }
  .rate-mode-switch{
    grid-template-columns:1fr;
  }
  .rate-visibility-toggle{
    width:max-content;
    max-width:100%;
    white-space:normal;
  }
  .admin-session-actions{
    justify-content:flex-start;
    min-width:0;
    width:100%;
  }
  .admin-session-actions > div{
    justify-items:start;
  }
  .admin-session-actions strong{
    max-width:min(70vw,360px);
  }
  .admin-main{padding-top:18px}
  .admin-grid,.form-grid{grid-template-columns:1fr}
  .admin-card.full,.field.full{grid-column:auto}
  .ops-head{
    display:grid;
  }
  .ops-status-grid,
  .checkout-config-grid{
    grid-template-columns:1fr;
  }
  .category-admin-card,
  .checkout-option-card{
    grid-template-columns:1fr;
    align-items:start;
  }
  .category-order-badge{
    width:44px;
    height:44px;
    border-radius:14px;
  }
  .category-card-actions,
  .checkout-config-head{
    justify-content:flex-start;
  }
  .preview-admin-head{
    display:grid;
  }
  .device-preview-grid{
    grid-template-columns:1fr;
  }
  .iphone17-preview{
    width:min(330px,100%);
  }
}

@media (max-width: 720px){
  .topbar{padding:12px 14px}
  .topnav{display:none;position:absolute;left:12px;right:12px;top:68px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px;box-shadow:var(--shadow)}
  .topnav.open{display:grid}
  .desktop-cta,.header-actions{display:none}
  .hamburger{display:inline-flex}
  .pf-hero{padding:30px 14px}
  .pf-hero h1{font-size:3.05rem}
  .trust-row span{width:auto;justify-content:flex-start}
  .demo-band{display:grid}
  .contact-form{grid-template-columns:1fr;padding:16px}
  .preview-menu-hero{
    display:grid;
    min-height:160px;
    padding:18px;
  }
  .preview-menu-products{
    grid-template-columns:1fr;
  }
  .desktop-device-preview{
    padding:8px 8px 12px;
    border-radius:18px;
  }
  .desktop-device-screen{
    border-radius:12px;
  }
  .iphone17-preview{
    width:min(310px,100%);
    border-radius:44px;
  }
  .iphone17-screen{
    border-radius:35px;
  }
  .brand-image-uploader,
  .brand-image-uploader.logo-preview{
    grid-template-columns:1fr;
  }
  .brand-image-uploader img,
  .brand-image-uploader.logo-preview img{
    width:100%;
    height:180px;
    border-radius:16px;
  }
  .hero{padding:28px 14px 24px}
  .hero h1{font-size:3rem;max-width:12ch}
  .hero-proof{grid-template-columns:1fr}
  .section{padding:46px 14px}
  .section-head{display:grid}
  .phone-frame{width:min(350px,94vw)}
  .menu-cover{height:220px}
  .menu-cover-content{inset:auto 14px 20px;display:grid}
  .category-row{top:69px;padding:10px 14px}
  .menu-shell{padding:14px 12px 92px}
  .product-card{grid-template-columns:104px 1fr}
  .product-card img{width:104px;height:116px}
  .cart-panel{display:none}
  .checkout-fields{grid-template-columns:1fr}
  .mobile-cart{display:block}
  .product-modal{padding:0;align-items:end}
  .product-dialog{
    width:100%;
    max-height:94vh;
    grid-template-columns:1fr;
    border-radius:8px 8px 0 0;
  }
  .product-dialog > img{height:230px;min-height:230px}
  .product-dialog-body{padding:18px}
  .dialog-footer{margin:18px -18px -18px;padding:12px 18px}
  .dialog-footer .primary-btn{padding:0 14px}
  .admin-top{display:grid}
  .product-admin-row{grid-template-columns:64px 1fr}
  .product-admin-row img{width:64px;height:58px}
  .product-admin-row .admin-actions{grid-column:1/-1}
  .admin-product-modal{
    padding:10px;
    align-items:end;
  }
  .admin-product-dialog{
    max-height:94vh;
    border-radius:18px 18px 0 0;
  }
  .admin-image-uploader{
    grid-template-columns:1fr;
  }
  .admin-image-uploader img{
    width:100%;
    height:190px;
  }
  .admin-image-searchbar{
    grid-template-columns:1fr;
  }
  .admin-image-results{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .choice-admin-row,.setting-row{grid-template-columns:1fr}
  .preview-strip{grid-template-columns:1fr}
  .preview-strip img{width:100%;height:180px}
}

.restaurant-hero{
  position:relative;
  padding:0 clamp(14px,4vw,58px) 28px;
  background:#fff;
}
body.menu-body{
  font-family:"Inter", "Manrope", system-ui, sans-serif;
  background:#f8f9fa;
  color:#191c1d;
}
.restaurant-cover{
  height:340px;
  margin:0 calc(clamp(14px,4vw,58px) * -1);
  background-color:#222;
  position:relative;
  overflow:hidden;
}
.restaurant-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.restaurant-cover::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.48), rgba(0,0,0,.04) 56%, rgba(0,0,0,.10));
}
.restaurant-info{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  gap:18px;
  align-items:end;
  margin-top:-72px;
  color:#fff;
}
.restaurant-logo{
  width:118px;
  height:118px;
  display:grid;
  place-items:center;
  border-radius:28px;
  border:6px solid #fff;
  background:var(--dark);
  color:#fff;
  box-shadow:0 18px 42px rgba(0,0,0,.25);
  overflow:hidden;
  font-size:2.2rem;
  font-weight:900;
}
.restaurant-logo img{width:100%;height:100%;object-fit:cover}
.restaurant-copy h1{
  margin:10px 0 8px;
  font-family:"Lexend", "Manrope", system-ui, sans-serif;
  font-size:clamp(2.3rem,6vw,4.8rem);
  line-height:.95;
  letter-spacing:-.02em;
}
.restaurant-copy p{margin:0;color:rgba(255,255,255,.78)}
.restaurant-meta-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:12px;
  color:rgba(255,255,255,.86);
  font-weight:800;
}
.status-pill{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:#2e3132;
  font-size:.82rem;
}
.status-pill::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:999px;
  margin-right:7px;
}
.status-pill.open::before{background:#10b981}
.status-pill.closed::before{background:#ba1a1a}
.rate-pill{
  width:max-content;
  max-width:100%;
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
  padding:10px 13px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  color:var(--dark);
  box-shadow:0 14px 30px rgba(0,0,0,.14);
}
.rate-pill strong{color:#55612f}
.featured-section{
  padding:20px clamp(14px,4vw,58px) 8px;
  background:#fff;
}
.featured-section .menu-section-head{
  margin-bottom:14px;
}
.carousel-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.featured-carousel{
  display:grid;
  grid-template-columns:44px repeat(3, minmax(0, 1fr)) 44px;
  align-items:center;
  gap:14px;
  overflow:hidden;
}
.featured-carousel > .carousel-arrow:first-child{grid-column:1}
.featured-carousel > .carousel-arrow:last-child{grid-column:5}
.featured-slide{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:0 18px 54px rgba(0,0,0,.10);
  cursor:pointer;
  transition:transform .18s ease, box-shadow .18s ease;
}
.featured-slide:hover{transform:translateY(-3px);box-shadow:0 20px 60px rgba(0,0,0,.14)}
.featured-slide img{
  width:100%;
  height:155px;
  border-radius:10px;
  object-fit:cover;
}
.featured-slide h3{
  margin:10px 0 6px;
  font-size:1.04rem;
}
.featured-slide p{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:42px;
  margin:0 0 12px;
  color:var(--muted);
  line-height:1.45;
  font-size:.88rem;
}
.carousel-arrow{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:var(--dark);
  font-size:1.8rem;
  box-shadow:0 12px 30px rgba(0,0,0,.08);
}
.featured-section > .menu-section-head .carousel-actions{display:none}
.menu-content{
  padding:22px clamp(14px,4vw,58px) 120px;
}
.menu-section{margin-bottom:34px}
.menu-section-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}
.menu-section-head h2{
  position:relative;
  margin:0;
  padding-left:14px;
  font-family:"Lexend", "Manrope", system-ui, sans-serif;
  font-size:clamp(1.15rem,2.2vw,1.55rem);
  line-height:1.05;
  font-weight:900;
  letter-spacing:0;
}
.menu-section-head h2::before{
  content:"";
  position:absolute;
  left:0;
  top:.08em;
  width:4px;
  height:1.25em;
  border-radius:999px;
  background:var(--accent);
}
.menu-section-head span{color:var(--muted);font-weight:900}
.cart-fab{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:45;
  min-width:min(310px, calc(100vw - 24px));
  min-height:56px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  border:0;
  border-radius:999px;
  padding:0 20px;
  background:var(--dark);
  color:#fff;
  box-shadow:0 18px 44px rgba(0,0,0,.24);
  font-weight:900;
  text-transform:uppercase;
}
.cart-fab strong{color:var(--accent)}
.cart-modal{
  position:fixed;
  inset:0;
  z-index:65;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(5,5,5,.42);
  backdrop-filter:blur(12px);
  animation:fadeIn .18s ease;
}
.cart-dialog{
  position:relative;
  width:min(560px,100%);
  max-height:88vh;
  overflow:auto;
  animation:popIn .22s ease;
  border-radius:14px;
  font-family:"Manrope", system-ui, sans-serif;
}
.cart-modal .cart-panel{display:block}
.cart-dialog h2{
  font-size:1.55rem;
  font-weight:900;
  letter-spacing:0;
}
.cart-empty-state{
  display:grid;
  justify-items:center;
  text-align:center;
  gap:10px;
  padding:28px 12px 20px;
}
.cart-empty-state strong{
  font-size:1.35rem;
  color:var(--dark);
}
.cart-empty-state p{
  max-width:34ch;
  margin:0;
  color:var(--muted);
  line-height:1.55;
}
.cart-empty-state .secondary-btn{
  margin-top:8px;
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.site-footer{
  padding:42px clamp(18px,5vw,76px) 24px;
  background:#050505;
  color:#fff;
}
.footer-brand{
  display:flex;
  align-items:center;
  gap:14px;
  max-width:560px;
}
.footer-brand p{margin:6px 0 0;color:rgba(255,255,255,.66);line-height:1.6}
.footer-columns{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:24px;
  margin-top:34px;
  padding-top:28px;
  border-top:1px solid rgba(255,255,255,.12);
}
.footer-columns div{display:grid;gap:10px;align-content:start}
.footer-columns h3{
  margin:0 0 4px;
  color:var(--accent);
  font-size:.92rem;
  text-transform:uppercase;
}
.footer-columns a,.footer-columns span{
  color:rgba(255,255,255,.72);
  font-weight:700;
  line-height:1.4;
}
.footer-columns a:hover{color:#fff}
.footer-bottom{
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-top:32px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.55);
}
.landing-whatsapp-float{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:9999;
  min-height:56px;
  max-width:260px;
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  padding:0;
  border-radius:0;
  background:transparent;
  color:#128c52;
  text-decoration:none;
  font-family:"Rubik","Manrope",system-ui,sans-serif;
  font-weight:800;
  box-shadow:none;
  overflow:visible;
  transform:translateZ(0);
  will-change:transform;
}
.landing-whatsapp-float span{
  color:#128c52;
  white-space:nowrap;
  text-shadow:0 1px 0 rgba(255,255,255,.85), 0 8px 22px rgba(255,255,255,.72);
  overflow:hidden;
  animation:landingHelpText 6.5s ease-in-out 2.8s infinite;
}
.landing-whatsapp-float svg{
  width:56px;
  height:56px;
  flex:0 0 56px;
  padding:12px;
  border-radius:999px;
  background:#22c55e;
  color:#fff;
  fill:currentColor;
  stroke:none;
  box-shadow:0 16px 36px rgba(18,140,82,.32);
}
@keyframes landingHelpText{
  0%, 46%{
    max-width:170px;
    opacity:1;
    transform:translateX(0);
  }
  58%, 100%{
    max-width:0;
    opacity:0;
    transform:translateX(16px);
  }
}

@media (max-width: 900px){
  .featured-carousel{grid-template-columns:38px repeat(2, minmax(0, 1fr)) 38px}
  .featured-carousel > .carousel-arrow:last-child{grid-column:4}
  .featured-slide:nth-of-type(n+3){display:none}
  .footer-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
  .landing-v2 .feature-grid-wide,
  .landing-v2 .steps-grid,
  .menu-showcase{
    grid-template-columns:1fr;
  }
  .trial-band{
    display:grid;
    margin:0 clamp(18px,5vw,76px);
  }
}

@media (max-width: 620px){
  .restaurant-cover{height:270px}
  .restaurant-info{
    grid-template-columns:86px minmax(0,1fr);
    align-items:center;
    margin-top:-54px;
  }
  .restaurant-logo{width:86px;height:86px;border-radius:22px;font-size:1.5rem}
  .rate-pill{border-radius:14px}
  .featured-section{padding:16px 14px 4px}
  .featured-carousel{grid-template-columns:38px minmax(0,1fr) 38px}
  .featured-carousel > .carousel-arrow:last-child{grid-column:3}
  .featured-slide:nth-of-type(n+2){display:none}
  .featured-slide img{height:180px}
  .menu-section-head{align-items:start;display:grid}
  .footer-columns{grid-template-columns:1fr}
  .landing-whatsapp-float{
    right:14px;
    bottom:14px;
    min-height:52px;
  }
  .landing-whatsapp-float svg{
    width:52px;
    height:52px;
    flex-basis:52px;
  }
  .menu-showcase{
    gap:22px;
  }
  .showcase-copy h2,
  .trial-band h2{
    max-width:none;
    font-size:clamp(1.85rem,9vw,2.6rem);
  }
  .showcase-list article{
    grid-template-columns:38px minmax(0,1fr);
    border-radius:16px;
  }
  .trial-band{
    margin:0 14px;
    border-radius:22px;
  }
  .trial-actions{
    display:grid;
  }
  .trial-actions .primary-btn,
  .trial-actions .secondary-btn{
    width:100%;
  }
  .cart-modal .cart-panel{display:block}
  .cart-dialog{max-height:90vh}
  .cart-fab{
    right:12px;
    left:12px;
    min-width:0;
    width:auto;
  }
}

body.menu-body .product-grid{
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:24px;
}
body.menu-body .product-card{
  display:flex;
  flex-direction:column;
  gap:0;
  padding:0;
  overflow:hidden;
  border-radius:16px;
  background:#fff;
  border:0;
  box-shadow:0 4px 20px rgba(0,0,0,.05);
  transition:transform .18s ease, box-shadow .18s ease;
}
body.menu-body .product-card:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 32px rgba(0,0,0,.10);
}
body.menu-body .product-card img{
  width:100%;
  height:auto;
  aspect-ratio:16/9;
  border-radius:0;
  object-fit:cover;
  transition:transform .25s ease;
}
body.menu-body .product-card:hover img{transform:scale(1.035)}
body.menu-body .product-info{
  padding:16px;
  min-height:218px;
}
body.menu-body .product-info h3{
  font-family:"Lexend", "Manrope", system-ui, sans-serif;
  font-size:1.05rem;
  line-height:1.25;
}
body.menu-body .product-info p{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
body.menu-body .price{
  font-family:"Lexend", "Manrope", system-ui, sans-serif;
  font-size:1.05rem;
}

@media (max-width: 1020px){
  body.menu-body .product-grid{grid-template-columns:repeat(2, minmax(0,1fr))}
}

@media (max-width: 680px){
  body.menu-body .product-grid{grid-template-columns:1fr}
  body.menu-body .product-info{min-height:auto}
}

/* Vibrant Gastronomy menu skin */
body.menu-body{
  --surface:#f8f9fa;
  --surface-container:#edeeef;
  --surface-glass:rgba(255,255,255,.8);
  --on-surface:#191c1d;
  --on-surface-variant:#5a3f48;
  --outline:#8e6f79;
  --outline-variant:#e2bdc8;
  --primary:#b40068;
  --primary-container:#D3182B;
  --success-green:#10b981;
  --warning-amber:#f59e0b;
  --dark:#191c1d;
  --accent:#D3182B;
  --paper:#f8f9fa;
  --ink:#191c1d;
  --muted:#5a3f48;
  --line:#e2bdc8;
  --shadow:0 12px 32px rgba(0,0,0,.10);
  min-height:100vh;
  background:var(--surface);
  color:var(--on-surface);
  font-family:"Inter", system-ui, sans-serif;
}
body.menu-body #app{
  min-height:100vh;
  background:
    radial-gradient(circle at 92% 8%, rgba(211,24,43,.13), transparent 26rem),
    linear-gradient(180deg, #ffffff 0%, var(--surface) 56%);
}
body.menu-body .menu-header{
  position:sticky;
  top:0;
  z-index:70;
  border-bottom:1px solid rgba(226,189,200,.68);
  background:rgba(255,255,255,.82);
  backdrop-filter:blur(18px);
}
body.menu-body .topbar{
  max-width:1280px;
  margin:0 auto;
  padding:14px clamp(20px,4vw,48px);
  background:transparent;
  border-bottom:0;
}
body.menu-body .brand-lockup{gap:12px}
body.menu-body .brand-mark{
  width:48px;
  height:48px;
  border-radius:16px;
  background:#fff;
  color:var(--accent);
  box-shadow:0 12px 30px rgba(0,0,0,.10);
  overflow:hidden;
}
body.menu-body .brand-mark-image img{
  width:100%;
  height:100%;
  object-fit:cover;
}
body.menu-body .brand-copy strong{
  font-family:"Lexend", system-ui, sans-serif;
  font-size:1.02rem;
  font-weight:700;
  color:var(--on-surface);
}
body.menu-body .brand-copy span{
  color:var(--on-surface-variant);
  font-size:.78rem;
}
body.menu-body .topnav a{
  min-height:40px;
  padding:0 15px;
  border-radius:999px;
  color:var(--on-surface-variant);
  font-weight:700;
}
body.menu-body .topnav a:hover{
  background:rgba(211,24,43,.10);
  color:var(--primary);
}
body.menu-body .hamburger{
  border-color:rgba(226,189,200,.8);
  color:var(--primary);
}

body.menu-body .restaurant-hero{
  position:relative;
  padding:0 0 34px;
  background:var(--surface);
}
body.menu-body .restaurant-cover{
  height:450px;
  margin:0;
  background-color:#e1e3e4;
  position:relative;
  overflow:hidden;
}
body.menu-body .restaurant-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
body.menu-body .restaurant-cover::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(25,28,29,.70) 0%, rgba(25,28,29,.34) 38%, rgba(25,28,29,.04) 100%);
}
body.menu-body .restaurant-info{
  width:min(1280px,100%);
  margin:-160px auto 0;
  padding:0 clamp(20px,4vw,48px);
  display:grid;
  grid-template-columns:132px minmax(0,1fr);
  align-items:end;
  gap:24px;
  color:#fff;
}
body.menu-body .restaurant-logo{
  width:132px;
  height:132px;
  border-radius:32px;
  border:6px solid #fff;
  background:#fff;
  color:var(--primary);
  box-shadow:0 12px 32px rgba(0,0,0,.18);
}
body.menu-body .restaurant-logo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
body.menu-body .restaurant-copy{
  max-width:760px;
  padding-bottom:8px;
  text-shadow:0 3px 18px rgba(0,0,0,.36);
}
body.menu-body .restaurant-copy .eyebrow{
  min-height:32px;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.34);
  background:rgba(255,255,255,.18);
  color:#fff;
  backdrop-filter:blur(10px);
  font-family:"Inter", system-ui, sans-serif;
  font-size:.78rem;
  font-weight:700;
  letter-spacing:0;
  text-transform:uppercase;
}
body.menu-body .restaurant-copy h1{
  margin:14px 0 8px;
  font-family:"Lexend", system-ui, sans-serif;
  font-size:clamp(2.6rem,6vw,4.9rem);
  line-height:1;
  font-weight:700;
  letter-spacing:0;
}
body.menu-body .restaurant-copy p{
  margin:0;
  color:rgba(255,255,255,.88);
  font-size:clamp(1rem,1.8vw,1.15rem);
  line-height:1.5;
}
body.menu-body .restaurant-meta-row{
  margin-top:14px;
  gap:10px;
  color:rgba(255,255,255,.92);
  font-weight:700;
}
body.menu-body .restaurant-social-link{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:0 13px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:#191c1d;
  text-shadow:none;
  box-shadow:0 4px 20px rgba(0,0,0,.08);
}
body.menu-body .restaurant-social-link svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:#e1306c;
  stroke-width:2;
}
body.menu-body .restaurant-social-link span{
  color:#191c1d;
  font-weight:850;
}
body.menu-body .status-pill{
  min-height:34px;
  padding:0 13px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(255,255,255,.92);
  color:var(--on-surface);
  font-size:.84rem;
  text-shadow:none;
  box-shadow:0 4px 20px rgba(0,0,0,.08);
}
body.menu-body .status-pill.open{
  background:var(--success-green);
  color:#fff;
}
body.menu-body .status-pill.closed{
  background:#ba1a1a;
  color:#fff;
}
body.menu-body .status-pill::before{background:currentColor}
body.menu-body .rate-pill{
  min-height:44px;
  margin-top:14px;
  padding:8px 14px;
  border:1px solid rgba(255,255,255,.54);
  border-radius:999px;
  background:rgba(255,255,255,.86);
  color:var(--on-surface);
  text-shadow:none;
  box-shadow:0 12px 32px rgba(0,0,0,.10);
  backdrop-filter:blur(18px);
}
body.menu-body .rate-pill strong{
  color:var(--primary);
  font-family:"Lexend", system-ui, sans-serif;
  font-weight:600;
}

body.menu-body .category-row{
  position:sticky;
  top:77px;
  z-index:60;
  display:flex;
  gap:10px;
  padding:14px clamp(20px,4vw,48px);
  background:rgba(248,249,250,.82);
  border-top:1px solid rgba(226,189,200,.45);
  border-bottom:1px solid rgba(226,189,200,.66);
  backdrop-filter:blur(18px);
  overflow:auto;
  scrollbar-width:none;
}
body.menu-body .category-row::-webkit-scrollbar{display:none}
body.menu-body .category-row button{
  flex:0 0 auto;
  min-height:42px;
  padding:0 18px;
  border:1px solid rgba(142,111,121,.26);
  border-radius:999px;
  background:#fff;
  color:var(--on-surface);
  font-weight:700;
  transition:background .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
body.menu-body .category-row button:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 20px rgba(0,0,0,.05);
}
body.menu-body .category-row button.active{
  border-color:var(--primary-container);
  background:var(--primary-container);
  color:#fff;
  box-shadow:0 12px 32px rgba(211,24,43,.22);
}

body.menu-body .featured-section,
body.menu-body .menu-content{
  width:min(1280px,100%);
  margin:0 auto;
  background:transparent;
}
body.menu-body .featured-section{
  padding:26px clamp(20px,4vw,48px) 8px;
}
body.menu-body .featured-carousel{
  grid-template-columns:48px repeat(3,minmax(0,1fr)) 48px;
  gap:16px;
  align-items:stretch;
}
body.menu-body .carousel-arrow{
  align-self:center;
  width:44px;
  height:44px;
  border:0;
  border-radius:999px;
  background:#fff;
  color:var(--primary);
  font-size:2rem;
  box-shadow:0 12px 32px rgba(0,0,0,.10);
  transition:transform .18s ease, background .18s ease, color .18s ease;
}
body.menu-body .carousel-arrow:hover{
  transform:scale(1.05);
  background:var(--primary-container);
  color:#fff;
}
body.menu-body .featured-slide{
  border:0;
  border-radius:16px;
  background:#fff;
  box-shadow:0 4px 20px rgba(0,0,0,.05);
  overflow:hidden;
  padding:0;
}
body.menu-body .featured-slide img{
  height:auto;
  aspect-ratio:16/9;
  border-radius:0;
}
body.menu-body .featured-slide > div{
  display:flex;
  min-height:172px;
  flex-direction:column;
  padding:16px;
}
body.menu-body .featured-slide h3,
body.menu-body .product-info h3,
body.menu-body .product-dialog-body h2,
body.menu-body .cart-dialog h2,
body.menu-body .menu-section-head h2{
  font-family:"Lexend", system-ui, sans-serif;
  letter-spacing:0;
}
body.menu-body .featured-slide h3,
body.menu-body .product-info h3{
  margin:10px 0 7px;
  color:var(--on-surface);
  font-size:1.05rem;
  font-weight:600;
  line-height:1.28;
}
body.menu-body .featured-slide p,
body.menu-body .product-info p{
  color:var(--on-surface-variant);
  font-size:.92rem;
  line-height:1.5;
}
body.menu-body .menu-content{
  padding:26px clamp(20px,4vw,48px) 120px;
}
body.menu-body .menu-section{margin-bottom:42px}
body.menu-body .menu-section-head{
  align-items:center;
  margin-bottom:16px;
}
body.menu-body .menu-section-head h2{
  padding-left:16px;
  font-size:clamp(1.3rem,2.2vw,1.85rem);
  font-weight:600;
  color:var(--on-surface);
}
body.menu-body .menu-section-head h2::before{
  width:5px;
  height:1.18em;
  background:var(--primary-container);
}
body.menu-body .menu-section-head span{
  color:var(--on-surface-variant);
  font-size:.9rem;
  font-weight:700;
}
body.menu-body .product-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
body.menu-body .product-card{
  border:0;
  border-radius:16px;
  background:#fff;
  box-shadow:0 4px 20px rgba(0,0,0,.05);
}
body.menu-body .product-card:hover{
  box-shadow:0 12px 32px rgba(0,0,0,.10);
}
body.menu-body .product-info{
  padding:16px;
  min-height:222px;
}
body.menu-body .badge{
  min-height:26px;
  border:0;
  border-radius:999px;
  background:#F2F2F2;
  color:var(--primary);
  font-family:"Inter", system-ui, sans-serif;
  font-size:.74rem;
  font-weight:700;
}
body.menu-body .price{
  color:var(--primary);
  font-family:"Lexend", system-ui, sans-serif;
  font-size:1.08rem;
  font-weight:600;
}
body.menu-body .add-btn,
body.menu-body .primary-btn{
  border:0;
  border-radius:999px;
  background:var(--primary-container);
  color:#fff;
  font-weight:700;
  box-shadow:0 12px 32px rgba(211,24,43,.20);
}
body.menu-body .add-btn{
  min-height:38px;
  padding:0 14px;
}
body.menu-body .secondary-btn{
  border:1px solid rgba(142,111,121,.25);
  background:#fff;
  color:var(--on-surface);
}
body.menu-body .cart-fab{
  right:22px;
  bottom:22px;
  min-width:min(320px,calc(100vw - 28px));
  background:var(--on-surface);
  color:#fff;
  box-shadow:0 12px 32px rgba(0,0,0,.18);
  font-family:"Lexend", system-ui, sans-serif;
  font-weight:600;
}
body.menu-body .cart-fab strong{color:#FF4558}
body.menu-body .cart-modal{
  background:rgba(25,28,29,.38);
  backdrop-filter:blur(14px);
}
body.menu-body .cart-dialog,
body.menu-body .product-dialog{
  border:0;
  border-radius:20px;
  background:#fff;
  box-shadow:0 24px 70px rgba(0,0,0,.18);
}
body.menu-body .cart-dialog{
  font-family:"Inter", system-ui, sans-serif;
}
body.menu-body .cart-dialog h2,
body.menu-body .product-dialog-body h2{
  color:var(--on-surface);
  font-weight:600;
}
body.menu-body .modal-close{
  background:#fff;
  color:var(--primary);
  box-shadow:0 12px 32px rgba(0,0,0,.10);
}
body.menu-body .checkout-fields input,
body.menu-body .checkout-fields select,
body.menu-body .cart-note,
body.menu-body .field textarea{
  border-color:rgba(142,111,121,.28);
  background:#fff;
}
body.menu-body .option-choice{
  border-color:rgba(142,111,121,.28);
  background:#fff;
}
body.menu-body .option-choice input{accent-color:var(--primary-container)}
body.menu-body .option-choice b{color:var(--primary)}
body.menu-body .dialog-footer{
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);
}

@media (max-width:1020px){
  body.menu-body .featured-carousel{grid-template-columns:44px repeat(2,minmax(0,1fr)) 44px}
  body.menu-body .featured-carousel > .carousel-arrow:last-child{grid-column:4}
  body.menu-body .featured-slide:nth-of-type(n+3){display:none}
  body.menu-body .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:720px){
  body.menu-body .menu-header .topbar{padding:10px 14px}
  body.menu-body .topnav{
    top:68px;
    border:1px solid rgba(226,189,200,.72);
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(18px);
  }
  body.menu-body .topnav a{
    justify-content:flex-start;
    border-radius:12px;
    font-family:"Lexend", system-ui, sans-serif;
    font-weight:600;
  }
  body.menu-body .hamburger{display:inline-flex}
  body.menu-body .restaurant-cover{height:350px;background-position:center}
  body.menu-body .restaurant-info{
    grid-template-columns:88px minmax(0,1fr);
    gap:14px;
    margin-top:-118px;
    padding:0 16px;
  }
  body.menu-body .restaurant-logo{
    width:88px;
    height:88px;
    border-radius:24px;
    border-width:4px;
  }
  body.menu-body .restaurant-copy{padding-bottom:0}
  body.menu-body .restaurant-copy h1{font-size:clamp(2rem,12vw,3.2rem)}
  body.menu-body .restaurant-copy p{font-size:.92rem}
  body.menu-body .restaurant-meta-row{font-size:.88rem}
  body.menu-body .rate-pill{
    width:100%;
    border-radius:16px;
    align-items:flex-start;
  }
  body.menu-body .category-row{
    top:69px;
    padding:12px 14px;
  }
  body.menu-body .featured-section{padding:22px 14px 4px}
  body.menu-body .featured-carousel{grid-template-columns:42px minmax(0,1fr) 42px;gap:10px}
  body.menu-body .featured-carousel > .carousel-arrow:last-child{grid-column:3}
  body.menu-body .featured-slide:nth-of-type(n+2){display:none}
  body.menu-body .featured-slide > div{min-height:auto}
  body.menu-body .menu-content{padding:24px 14px 108px}
  body.menu-body .menu-section-head{display:flex;align-items:center}
  body.menu-body .product-grid{grid-template-columns:1fr;gap:16px}
  body.menu-body .product-info{min-height:auto}
  body.menu-body .product-meta{align-items:center}
  body.menu-body .cart-fab{
    right:12px;
    left:12px;
    bottom:12px;
    min-width:0;
    width:auto;
  }
  body.menu-body .cart-dialog{
    width:100%;
    max-height:88vh;
    border-radius:18px;
  }
  body.menu-body .product-dialog{
    width:100%;
    max-height:94vh;
    border-radius:20px 20px 0 0;
  }
}

/* Final landing preview and cart modal corrections */
.landing-v2 .pf-hero{
  min-height:auto;
  padding-top:34px;
  padding-bottom:34px;
}
.landing-v2 .pf-hero h1{
  max-width:13ch;
  font-size:clamp(2.45rem,5.6vw,5.4rem);
  line-height:1;
}
.landing-v2 .pf-hero p{
  line-height:1.6;
}
.landing-v2 .hero-actions{
  margin-top:22px;
}
.landing-v2 .trust-row{
  margin-top:18px;
}
.landing-v2 .phone-stage{
  min-height:560px;
}
.landing-v2 .phone-frame{
  width:min(300px,78vw);
  border-width:10px;
  border-radius:48px;
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,.10),
    0 22px 60px rgba(15,10,5,.24);
}
.landing-v2 .phone-frame::before{
  left:-12px;
  top:118px;
  height:58px;
}
.landing-v2 .phone-frame::after{
  right:-12px;
  top:156px;
  height:86px;
}
.landing-v2 .dynamic-island{
  top:11px;
  width:88px;
  height:27px;
}
.landing-v2 .phone-cover{
  height:188px;
}
.landing-v2 .phone-cover::after{
  background:linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.46) 52%, rgba(0,0,0,.08) 100%);
}
.landing-v2 .phone-store{
  margin-top:-106px;
  padding:14px;
}
.landing-v2 .store-head{
  align-items:center;
  min-height:82px;
  padding:10px;
  border-radius:18px;
  background:linear-gradient(90deg, rgba(5,5,5,.66), rgba(5,5,5,.22));
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.74);
  backdrop-filter:blur(1px);
}
.landing-v2 .store-avatar{
  width:58px;
  height:58px;
  border-radius:16px;
  border-width:3px;
  box-shadow:0 10px 24px rgba(0,0,0,.24);
  text-shadow:none;
}
.landing-v2 .store-head h3{
  color:#fff;
  font-size:1rem;
  font-weight:900;
  line-height:1.05;
}
.landing-v2 .store-head p{
  max-width:176px;
  color:rgba(255,255,255,.94);
  font-size:.72rem;
  line-height:1.28;
}
.landing-v2 .mini-tabs{
  gap:6px;
  margin:12px 0 10px;
}
.landing-v2 .mini-tabs span{
  padding:7px 10px;
  font-size:.68rem;
  font-weight:800;
}
.landing-v2 .mini-card{
  grid-template-columns:58px 1fr;
  gap:9px;
  padding:8px;
  margin-bottom:8px;
  background:#fff;
}
.landing-v2 .mini-card img{
  width:58px;
  height:58px;
}
.landing-v2 .mini-card strong{
  display:block;
  color:#191c1d;
  font-size:.78rem;
  line-height:1.18;
}
.landing-v2 .mini-card small{
  color:#5a3f48;
  font-size:.68rem;
}
.landing-v2 .mini-card span{
  margin-top:3px;
  font-size:.76rem;
}

body.menu-body .cart-modal{
  position:fixed;
  inset:0;
  z-index:999;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100vw;
  min-height:100dvh;
  padding:18px;
  overflow:hidden;
}
body.menu-body .cart-modal .cart-panel,
body.menu-body .cart-dialog{
  position:relative;
  inset:auto;
  display:flex;
  flex-direction:column;
  width:min(560px,calc(100vw - 36px));
  max-height:min(86dvh,760px);
  margin:0;
  overflow:hidden;
  transform:none;
}
body.menu-body .cart-dialog{
  padding:0;
}
body.menu-body .cart-checkout-head{
  flex:0 0 auto;
  min-height:76px;
  display:grid;
  grid-template-columns:42px 1fr 42px;
  align-items:center;
  gap:10px;
  padding:14px 18px;
  background:#050505;
  color:#fff;
}
body.menu-body .cart-checkout-head h2{
  margin:0;
  color:#fff;
  font-family:"Lexend", system-ui, sans-serif;
  font-size:1.2rem;
  font-weight:700;
  line-height:1.15;
}
body.menu-body .cart-back,
body.menu-body .cart-close{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:999px;
  background:transparent;
  color:#fff;
  font-size:1.8rem;
  line-height:1;
}
body.menu-body .cart-close{
  font-size:1.45rem;
}
body.menu-body .cart-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding:24px;
  background:#fff;
}
body.menu-body .checkout-section{
  display:grid;
  gap:14px;
  margin-bottom:28px;
}
body.menu-body .checkout-details-step{
  display:grid;
  gap:0;
}
body.menu-body .checkout-details-step[style*="display: none"],
body.menu-body .order-summary[style*="display: none"]{
  display:none !important;
}
body.menu-body .checkout-section h3{
  margin:0;
  color:#191c1d;
  font-family:"Lexend", system-ui, sans-serif;
  font-size:1.15rem;
  font-weight:700;
  line-height:1.2;
}
body.menu-body .checkout-section h3 span,
body.menu-body .customer-details label span{
  color:var(--primary-container);
}
body.menu-body .order-summary .cart-line{
  border-top:1px solid rgba(226,189,200,.7);
}
body.menu-body .order-summary .cart-line:first-of-type{
  border-top:0;
}
body.menu-body .choice-pills{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
body.menu-body .choice-pills button{
  min-height:48px;
  display:inline-flex;
  align-items:center;
  gap:9px;
  border:1px solid rgba(142,111,121,.22);
  border-radius:10px;
  padding:0 13px;
  background:#fff;
  color:#191c1d;
  font-weight:700;
  box-shadow:0 4px 14px rgba(0,0,0,.04);
}
body.menu-body .choice-pills button i{
  width:24px;
  height:24px;
  border:2px solid #d6d6d6;
  border-radius:999px;
  box-shadow:inset 0 0 0 5px #fff;
}
body.menu-body .choice-pills button.active{
  border-color:var(--primary-container);
  color:var(--primary-container);
  box-shadow:0 10px 24px rgba(211,24,43,.12);
}
body.menu-body .choice-pills button.active i{
  border-color:var(--primary-container);
  background:var(--primary-container);
}
body.menu-body .customer-details label{
  display:grid;
  gap:8px;
  color:#191c1d;
  font-weight:800;
}
body.menu-body .customer-details input,
body.menu-body .customer-details textarea{
  width:100%;
  min-height:58px;
  border:0;
  border-radius:6px;
  padding:0 16px;
  background:#f3f4f5;
  color:#191c1d;
  font-weight:600;
  outline:1px solid transparent;
}
body.menu-body .customer-details textarea{
  min-height:96px;
  padding:14px 16px;
  resize:vertical;
}
body.menu-body .customer-details input:focus,
body.menu-body .customer-details textarea:focus{
  outline-color:rgba(211,24,43,.36);
  background:#fff;
}
body.menu-body .cart-submit-bar{
  position:sticky;
  bottom:0;
  flex:0 0 auto;
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  padding:14px 24px calc(14px + env(safe-area-inset-bottom));
  border-top:1px solid rgba(226,189,200,.75);
  background:rgba(255,255,255,.94);
  box-shadow:0 -14px 30px rgba(0,0,0,.08);
  backdrop-filter:blur(14px);
}
body.menu-body .cart-submit-bar .cart-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:0;
  padding:0;
  border:0;
  color:#191c1d;
  font-family:"Lexend", system-ui, sans-serif;
  font-size:1rem;
}
body.menu-body .cart-submit-bar .cart-total strong{
  font-size:1.12rem;
}
body.menu-body .checkout-submit{
  width:100%;
  min-height:58px;
  justify-content:center;
  border-radius:999px;
  font-family:"Lexend", system-ui, sans-serif;
  font-size:1.02rem;
  box-shadow:0 12px 30px rgba(211,24,43,.22);
}
body.menu-body .checkout-submit span{
  font-size:1.4rem;
  line-height:1;
}

@media (max-width:720px){
  .landing-v2 .pf-hero{
    padding-top:24px;
    padding-bottom:28px;
  }
  .landing-v2 .phone-stage{
    min-height:500px;
  }
  .landing-v2 .phone-frame{
    width:min(270px,82vw);
    transform:none;
  }
  .landing-v2 .phone-cover{
    height:168px;
  }
  .landing-v2 .phone-store{
    margin-top:-96px;
  }
  .landing-v2 .store-head{
    min-height:78px;
    padding:9px;
  }
  .landing-v2 .store-head p{
    max-width:148px;
    font-size:.68rem;
  }
  body.menu-body .cart-modal{
    align-items:center;
    justify-content:center;
    padding:14px;
  }
  body.menu-body .cart-dialog{
    width:calc(100vw - 28px);
    height:calc(100dvh - 28px);
    max-height:none;
    border-radius:18px;
  }
}

/* Mobile restaurant hero and floating cart refinements */
@media (max-width:720px){
  body.menu-body .restaurant-hero{
    padding-bottom:22px;
  }
  body.menu-body .restaurant-cover{
    height:430px;
  }
  body.menu-body .restaurant-cover::after{
    background:linear-gradient(to top, rgba(25,28,29,.78) 0%, rgba(25,28,29,.44) 46%, rgba(25,28,29,.06) 100%);
  }
  body.menu-body .restaurant-info{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
    margin-top:-235px;
    padding:0 18px;
    color:#fff;
  }
  body.menu-body .restaurant-copy{
    order:1;
    width:100%;
    max-width:100%;
    padding:0;
  }
  body.menu-body .restaurant-logo{
    order:2;
    width:78px;
    height:78px;
    border-radius:22px;
    border-width:4px;
    margin-top:2px;
  }
  body.menu-body .restaurant-copy .eyebrow{
    min-height:31px;
    padding:0 12px;
    font-size:.76rem;
  }
  body.menu-body .restaurant-copy h1{
    margin:12px 0 8px;
    font-size:clamp(2.25rem,10vw,3rem);
    line-height:1.02;
  }
  body.menu-body .restaurant-copy p{
    max-width:29ch;
    color:rgba(255,255,255,.92);
    font-size:.88rem;
    line-height:1.35;
  }
  body.menu-body .restaurant-meta-row{
    margin-top:12px;
    gap:8px;
    color:rgba(255,255,255,.9);
    font-size:.82rem;
  }
  body.menu-body .restaurant-meta-row > span:not(.status-pill){
    max-width:15ch;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  body.menu-body .restaurant-social-link{
    min-height:32px;
    padding:0 11px;
    font-size:.82rem;
  }
  body.menu-body .status-pill{
    min-height:32px;
    padding:0 12px;
    font-size:.8rem;
  }
  body.menu-body .rate-pill{
    width:100%;
    display:grid;
    gap:4px;
    margin-top:12px;
    padding:13px 16px;
    border-radius:18px;
    background:rgba(255,255,255,.96);
    box-shadow:0 14px 34px rgba(0,0,0,.12);
  }
  body.menu-body .rate-pill strong{
    font-size:.96rem;
  }
  body.menu-body .category-row{
    top:69px;
  }
  body.menu-body .cart-fab{
    left:auto;
    right:14px;
    bottom:calc(14px + env(safe-area-inset-bottom));
    width:auto;
    min-width:188px;
    max-width:230px;
    min-height:52px;
    padding:0 15px;
    gap:12px;
    border-radius:999px;
    font-size:.8rem;
    box-shadow:0 14px 34px rgba(0,0,0,.24);
  }
body.menu-body .cart-fab span,
  body.menu-body .cart-fab strong{
    white-space:nowrap;
  }
}

/* Menu UX v3: no header, plus actions, icon fields */
body.menu-body .menu-header{
  display:none !important;
}
body.menu-body .category-row{
  top:0 !important;
}
body.menu-body .product-meta{
  align-items:center;
}
body.menu-body .icon-add-btn{
  flex:0 0 auto;
  width:42px;
  height:42px;
  min-width:42px;
  min-height:42px;
  display:grid;
  place-items:center;
  padding:0;
  border-radius:999px;
  background:var(--primary-container);
  color:#fff;
  box-shadow:0 12px 24px rgba(211,24,43,.20);
}
body.menu-body .icon-add-btn svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
body.menu-body .icon-add-btn:hover{
  transform:translateY(-1px) scale(1.03);
  box-shadow:0 16px 30px rgba(211,24,43,.28);
}
body.menu-body .customer-details{
  gap:16px;
}
body.menu-body .customer-details label{
  gap:8px;
  min-width:0;
}
body.menu-body .field-shell{
  position:relative;
  display:flex;
  align-items:center;
  min-width:0;
  border-radius:10px;
  background:#f3f4f5;
  outline:1px solid transparent;
  transition:background .18s ease, outline-color .18s ease, box-shadow .18s ease;
}
body.menu-body .field-shell:focus-within{
  background:#fff;
  outline-color:rgba(211,24,43,.34);
  box-shadow:0 10px 24px rgba(0,0,0,.06);
}
body.menu-body .field-shell svg{
  position:absolute;
  left:14px;
  top:18px;
  width:20px;
  height:20px;
  fill:none;
  stroke:var(--on-surface-variant);
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}
body.menu-body .customer-details .field-shell input,
body.menu-body .customer-details .field-shell textarea{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:#191c1d;
  font-weight:650;
}
body.menu-body .customer-details .field-shell input{
  min-height:58px;
  padding:0 14px 0 46px;
}
body.menu-body .customer-details .field-shell textarea{
  min-height:102px;
  padding:16px 14px 14px 46px;
  resize:vertical;
}
body.menu-body .customer-details input,
body.menu-body .customer-details textarea{
  min-width:0;
}

@media (max-width:720px){
  body.menu-body .category-row{
    top:0 !important;
  }
  body.menu-body .icon-add-btn{
    width:38px;
    height:38px;
    min-width:38px;
    min-height:38px;
  }
  body.menu-body .icon-add-btn svg{
    width:19px;
    height:19px;
  }
  body.menu-body .customer-details{
    gap:14px;
  }
  body.menu-body .checkout-section h3{
    font-size:1.06rem;
  }
  body.menu-body .customer-details .field-shell input{
    min-height:54px;
  }
body.menu-body .customer-details .field-shell textarea{
    min-height:88px;
  }
}

/* Checkout review step */
body.menu-body .checkout-review-step{
  display:grid;
  gap:22px;
}
body.menu-body .review-products{
  display:grid;
  gap:14px;
}
body.menu-body .review-products h3,
body.menu-body .review-card h3{
  margin:0;
  color:#191c1d;
  font-family:"Lexend", system-ui, sans-serif;
  font-size:1.18rem;
  font-weight:750;
}
body.menu-body .review-product{
  display:grid;
  grid-template-columns:84px minmax(0,1fr);
  gap:13px;
  align-items:start;
}
body.menu-body .review-product-image{
  position:relative;
  width:84px;
  height:84px;
  border-radius:12px;
  overflow:visible;
  background:#f3f4f5;
}
body.menu-body .review-product-image img{
  width:100%;
  height:100%;
  border-radius:12px;
  object-fit:cover;
}
body.menu-body .review-product-image span{
  position:absolute;
  top:-9px;
  right:-9px;
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--primary-container);
  color:#fff;
  font-weight:900;
  box-shadow:0 8px 18px rgba(211,24,43,.26);
}
body.menu-body .review-product strong{
  display:block;
  color:#191c1d;
  font-family:"Lexend", system-ui, sans-serif;
  line-height:1.18;
}
body.menu-body .review-product small{
  display:block;
  margin-top:5px;
  color:#5a3f48;
  font-size:.84rem;
  line-height:1.35;
}
body.menu-body .review-product b{
  display:block;
  margin-top:7px;
  color:var(--primary-container);
  font-family:"Lexend", system-ui, sans-serif;
}
body.menu-body .review-card{
  display:grid;
  gap:9px;
  padding:22px;
  border:1px solid rgba(226,189,200,.58);
  border-radius:18px;
  background:#fafafa;
  box-shadow:0 12px 32px rgba(0,0,0,.06);
}
body.menu-body .review-card p{
  margin:0;
  color:#191c1d;
  line-height:1.4;
}
body.menu-body .review-card p strong{
  font-weight:850;
}
body.menu-body .review-divider{
  height:1px;
  margin:10px 0;
  background:rgba(226,189,200,.9);
}
body.menu-body .review-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
body.menu-body .review-row span{
  color:#191c1d;
}
body.menu-body .review-row strong{
  font-family:"Lexend", system-ui, sans-serif;
}
body.menu-body .review-row.total-row{
  font-family:"Lexend", system-ui, sans-serif;
  font-size:1.16rem;
  font-weight:800;
}
body.menu-body .review-row.total-row strong{
  color:var(--primary-container);
  font-size:1.28rem;
}
body.menu-body .bolivar-box{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  margin-top:8px;
  padding-top:16px;
  border-top:1px solid rgba(226,189,200,.9);
}
body.menu-body .bolivar-box strong{
  display:block;
  color:#191c1d;
  font-family:"Lexend", system-ui, sans-serif;
  line-height:1.2;
}
body.menu-body .bolivar-box span{
  display:block;
  margin-top:5px;
  color:#8e6f79;
  font-size:.86rem;
}
body.menu-body .bolivar-box b{
  color:var(--primary-container);
  font-family:"Lexend", system-ui, sans-serif;
  font-size:1.2rem;
  white-space:nowrap;
}
body.menu-body .terms-check{
  display:flex;
  align-items:center;
  gap:12px;
  color:#191c1d;
  font-weight:650;
}
body.menu-body .terms-check input{
  width:24px;
  height:24px;
  accent-color:var(--primary-container);
}
body.menu-body .terms-check a{
  color:var(--primary-container);
  text-decoration:underline;
  font-weight:800;
}
body.menu-body .checkout-submit.disabled{
  opacity:.65;
}

@media (max-width:720px){
  body.menu-body .review-card{
    padding:18px;
    border-radius:16px;
  }
  body.menu-body .review-product{
    grid-template-columns:74px minmax(0,1fr);
  }
  body.menu-body .review-product-image{
    width:74px;
    height:74px;
  }
  body.menu-body .bolivar-box{
    grid-template-columns:1fr;
    gap:8px;
  }
  body.menu-body .bolivar-box b{
    font-size:1.25rem;
  }
}

/* KP registration */
.register-body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  background:
    radial-gradient(circle at 50% -8rem, color-mix(in srgb, var(--accent) 34%, transparent), transparent 23rem),
    linear-gradient(180deg, color-mix(in srgb, var(--accent) 8%, #fff) 0%, #fff 42%, #f8f9fb 100%);
  color:#111;
  font-family:"Manrope","Inter", system-ui, sans-serif;
}
.register-page{
  min-height:100vh;
  display:grid;
  overflow-x:hidden;
}
.register-topbar{
  position:sticky;
  top:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px clamp(18px,5vw,64px);
  background:rgba(255,255,255,.88);
  border-bottom:1px solid rgba(5,5,5,.08);
  backdrop-filter:blur(16px);
}
.register-brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.register-mark{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#050505;
  color:var(--accent);
  font-family:"Rubik","Manrope", system-ui, sans-serif;
  font-weight:800;
  letter-spacing:.04em;
  box-shadow:0 14px 32px rgba(0,0,0,.15);
}
.register-mark.large{
  width:56px;
  height:56px;
  border-radius:16px;
  background:#070707;
  color:#fff;
  box-shadow:0 14px 30px rgba(0,0,0,.16);
}
.register-logo-mark{
  overflow:hidden;
  background:transparent !important;
  color:inherit;
  border-radius:16px;
  box-shadow:0 16px 32px rgba(211,24,43,.20);
}
.register-logo-mark img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.register-brand strong{
  display:block;
  font-family:"Rubik","Manrope", system-ui, sans-serif;
  font-weight:700;
  line-height:1.1;
}
.register-brand small{
  display:block;
  margin-top:3px;
  color:#5b6148;
  font-weight:650;
}
.register-login{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 16px;
  border:1px solid rgba(5,5,5,.10);
  border-radius:999px;
  background:#fff;
  color:#050505;
  font-weight:700;
}
.register-shell{
  width:100%;
  max-width:1120px;
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,.86fr) minmax(360px,500px);
  gap:clamp(24px,5vw,64px);
  align-items:center;
  min-height:100svh;
  padding:34px clamp(18px,5vw,58px) 46px;
}
.register-shell.login-shell{
  max-width:500px;
  grid-template-columns:1fr;
  gap:0;
  justify-content:center;
}
.register-intro{
  max-width:660px;
}
.login-shell .register-intro{
  display:none;
}
.register-eyebrow{
  display:inline-flex;
  min-height:32px;
  align-items:center;
  padding:0 12px;
  border-radius:999px;
  background:color-mix(in srgb, var(--accent) 12%, #fff);
  color:color-mix(in srgb, var(--accent) 68%, #111827);
  font-weight:750;
  text-transform:uppercase;
  font-size:.78rem;
}
.register-intro h1{
  margin:18px 0 16px;
  max-width:12ch;
  color:#050505;
  font-family:"Rubik","Manrope",system-ui,sans-serif;
  font-size:clamp(2.35rem,5.2vw,4.7rem);
  line-height:1;
  letter-spacing:0;
  font-weight:700;
}
.register-intro p{
  margin:0;
  max-width:58ch;
  color:#4b5563;
  font-size:1rem;
  line-height:1.7;
}
.register-proof{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}
.register-proof span{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:0 13px;
  background:#fff;
  color:#1f2937;
  font-weight:650;
  box-shadow:0 10px 24px rgba(0,0,0,.06);
}
.register-card{
  width:100%;
  min-width:0;
  padding:30px;
  border:1px solid rgba(211,24,43,.10);
  border-radius:26px;
  background:rgba(255,255,255,.96);
  box-shadow:0 20px 54px rgba(31,20,28,.10);
  backdrop-filter:blur(18px);
}
.login-shell .register-card{
  padding:34px 30px 28px;
}
.register-card-head{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:20px;
}
.login-shell .register-card-head{
  display:grid;
  justify-items:center;
  text-align:center;
  gap:13px;
  margin-bottom:22px;
}
.register-card h2{
  margin:0;
  color:#050505;
  font-family:"Rubik","Manrope",system-ui,sans-serif;
  font-size:clamp(1.7rem,3vw,2.15rem);
  line-height:1.08;
  font-weight:700;
}
.register-card p{
  margin:7px 0 0;
  color:#6b7280;
  font-weight:500;
  line-height:1.5;
}
.google-btn{
  width:100%;
  min-height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:1px solid rgba(5,5,5,.10);
  border-radius:999px;
  background:#fff;
  color:#1f2937;
  font-weight:650;
  box-shadow:0 8px 18px rgba(0,0,0,.04);
}
.google-btn span{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#f3f4f6;
  color:#4285f4;
  font-weight:800;
}
.form-divider{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:12px;
  margin:18px 0;
  color:#7b8170;
  font-size:.76rem;
  font-weight:700;
  text-transform:uppercase;
}
.form-divider::before,
.form-divider::after{
  content:"";
  height:1px;
  background:rgba(5,5,5,.10);
}
.register-form{
  display:grid;
  gap:14px;
}
.register-form label{
  display:grid;
  gap:7px;
  color:#050505;
  font-weight:700;
}
.register-form label small{
  color:#7b8170;
  font-size:.86rem;
  font-weight:500;
}
.register-field{
  position:relative;
  min-height:54px;
  display:flex;
  align-items:center;
  border:1px solid rgba(5,5,5,.09);
  border-radius:14px;
  background:#f8f8fa;
  overflow:hidden;
  transition:border-color .18s ease, box-shadow .18s ease;
}
.register-field:focus-within{
  border-color:var(--accent);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 14%, transparent);
}
.register-field > svg{
  position:absolute;
  left:15px;
  width:19px;
  height:19px;
  fill:none;
  stroke:var(--accent);
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.register-field input{
  width:100%;
  min-height:54px;
  border:0;
  outline:0;
  padding:0 48px;
  background:transparent;
  color:#050505;
  font-weight:500;
}
.register-field button{
  position:absolute;
  right:8px;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:999px;
  background:#fff;
  box-shadow:0 8px 16px rgba(0,0,0,.05);
}
.register-field button svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:#050505;
  stroke-width:2;
}
.forgot-password-link{
  justify-self:end;
  margin-top:-6px;
  border:0;
  background:transparent;
  color:var(--accent);
  font:inherit;
  font-size:.9rem;
  font-weight:700;
  text-align:right;
  padding:2px 0;
  cursor:pointer;
}
.forgot-password-link:hover{
  text-decoration:underline;
}
.forgot-password-link:disabled{
  cursor:progress;
  opacity:.62;
}
.register-terms{
  display:flex !important;
  grid-template-columns:none;
  align-items:center;
  gap:10px !important;
  color:#4b5563 !important;
  font-size:.92rem;
  font-weight:500 !important;
}
.register-terms input{
  width:22px;
  height:22px;
  accent-color:var(--accent);
}
.register-terms a{
  color:var(--primary);
  font-weight:750;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.register-submit{
  min-height:56px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 72%, #050505));
  color:#fff;
  font-family:"Rubik","Manrope",system-ui,sans-serif;
  font-size:1rem;
  font-weight:700;
  box-shadow:0 16px 34px color-mix(in srgb, var(--accent) 24%, transparent);
}
.register-submit svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.register-submit:disabled{
  cursor:progress;
  opacity:.72;
  box-shadow:none;
}
.register-footnote{
  margin:18px 0 0 !important;
  text-align:center;
  color:#6b7280 !important;
  overflow-wrap:anywhere;
}
.register-footnote a{
  color:var(--accent);
  font-weight:750;
}

@media (max-width:900px){
  .register-shell{
    grid-template-columns:1fr;
    padding-top:28px;
  }
  .register-shell.login-shell{
    max-width:500px;
  }
  .register-intro{
    text-align:center;
    margin:0 auto;
  }
  .register-intro h1{
    max-width:14ch;
    margin-left:auto;
    margin-right:auto;
    font-size:clamp(2.25rem,11vw,4.2rem);
  }
  .register-proof{
    justify-content:center;
  }
  .benefits-grid{
    grid-template-columns:1fr;
    gap:42px;
  }
  .benefit-visual{
    width:min(230px,78vw);
  }
  .benefit-copy p{
    max-width:34ch;
  }
}

@media (max-width:560px){
  .register-body{
    background:
      radial-gradient(circle at 50% -6rem, color-mix(in srgb, var(--accent) 32%, transparent), transparent 18rem),
      linear-gradient(180deg, #fff 0%, #fff 38%, #f8f9fb 100%);
  }
  .register-topbar{
    padding:12px 14px;
  }
  .register-brand small{
    display:none;
  }
  .register-login{
    min-height:38px;
    padding:0 12px;
    font-size:.86rem;
  }
  .register-shell{
    width:100%;
    max-width:100%;
    padding:18px 12px 34px;
    gap:22px;
  }
  .register-shell.login-shell{
    width:100%;
    max-width:100%;
    min-height:100svh;
    align-content:center;
    padding:18px 14px;
  }
  .register-intro p{
    font-size:.98rem;
  }
  .register-intro{
    width:100%;
    max-width:370px;
    justify-self:center;
    overflow:hidden;
  }
  .register-intro h1{
    max-width:10ch;
    font-size:clamp(2rem,10vw,2.65rem);
    line-height:1.04;
  }
  .register-intro p{
    max-width:100%;
    padding:0 4px;
  }
  .register-proof{
    justify-content:center;
    gap:8px;
  }
  .register-proof span{
    min-height:34px;
    max-width:calc(50vw - 20px);
    padding:0 10px;
    text-align:center;
    font-size:.86rem;
    white-space:normal;
  }
  .register-card{
    width:100%;
    max-width:370px;
    justify-self:center;
    padding:20px;
    border-radius:22px;
  }
  .register-card h2{
    max-width:13ch;
    margin-inline:auto;
    text-align:center;
    font-size:1.7rem;
  }
  .register-card p{
    text-align:center;
  }
  .login-shell .register-card{
    width:100%;
    max-width:370px;
    padding:26px 20px 22px;
  }
  .login-shell .register-card h2{
    max-width:12ch;
    margin-inline:auto;
    font-size:1.72rem;
  }
  .login-shell .register-card p{
    font-size:.94rem;
  }
  .register-card-head{
    display:grid;
    justify-items:center;
    text-align:center;
  }
  .login-shell .register-footnote{
    max-width:24ch;
    margin-left:auto !important;
    margin-right:auto !important;
  }
}

/* Juan Licores */
body.liquor-menu{
  --accent:#c58b2a;
  --primary:#8a5a12;
  --primary-container:#c58b2a;
  --dark:#090909;
  --on-surface:#141414;
  --on-surface-variant:#62513a;
  --outline-variant:#ead7b3;
}
body.liquor-menu #app{
  background:
    radial-gradient(circle at 88% 10%, rgba(197,139,42,.14), transparent 24rem),
    linear-gradient(180deg,#fff 0%,#f8f5ef 100%);
}
body.liquor-menu .restaurant-cover::after{
  background:linear-gradient(to top, rgba(9,9,9,.82) 0%, rgba(9,9,9,.42) 45%, rgba(9,9,9,.05) 100%);
}
body.liquor-menu .restaurant-logo{
  background:#090909;
  border-color:#fff;
}
body.liquor-menu .restaurant-copy .eyebrow,
body.liquor-menu .status-pill.open,
body.liquor-menu .category-row button.active,
body.liquor-menu .icon-add-btn,
body.liquor-menu .checkout-submit,
body.liquor-menu .add-btn,
body.liquor-menu .primary-btn{
  background:#c58b2a;
  color:#fff;
}
body.liquor-menu .rate-pill strong,
body.liquor-menu .price,
body.liquor-menu .cart-fab strong,
body.liquor-menu .review-row.total-row strong,
body.liquor-menu .bolivar-box b{
  color:#c58b2a;
}
body.liquor-menu .badge{
  background:#f4e4bf;
  color:#7a4d12;
}
body.liquor-menu .cart-fab{
  background:#090909;
}
body.liquor-menu .menu-search svg{
  stroke:#c58b2a;
}
body.liquor-menu .choice-pills button.active{
  border-color:#c58b2a;
  color:#8a5a12;
}
body.liquor-menu .choice-pills button.active i{
  border-color:#c58b2a;
  background:#c58b2a;
}

/* Juan Licores hero readability */
body.liquor-menu .restaurant-cover::after{
  background:linear-gradient(to top, rgba(9,9,9,.88) 0%, rgba(9,9,9,.56) 48%, rgba(9,9,9,.12) 100%);
}
body.liquor-menu .restaurant-info{
  margin-top:-205px;
  align-items:end;
}
body.liquor-menu .restaurant-copy{
  max-width:820px;
  padding:14px 16px 12px;
  border-radius:18px;
  background:linear-gradient(90deg, rgba(9,9,9,.58), rgba(9,9,9,.22));
  backdrop-filter:blur(8px);
}
body.liquor-menu .restaurant-copy h1,
body.liquor-menu .restaurant-copy p,
body.liquor-menu .restaurant-meta-row{
  text-shadow:0 3px 18px rgba(0,0,0,.65);
}

@media (max-width:720px){
  body.liquor-menu .restaurant-cover{
    height:410px;
  }
  body.liquor-menu .restaurant-info{
    margin-top:-250px;
    grid-template-columns:82px minmax(0,1fr);
    gap:12px;
  }
  body.liquor-menu .restaurant-logo{
    width:82px;
    height:82px;
    align-self:start;
    margin-top:8px;
  }
  body.liquor-menu .restaurant-copy{
    align-self:start;
    padding:12px 13px;
    border-radius:16px;
    background:linear-gradient(90deg, rgba(9,9,9,.68), rgba(9,9,9,.34));
  }
  body.liquor-menu .restaurant-copy h1{
    font-size:clamp(1.75rem,8vw,2.45rem);
  }
  body.liquor-menu .restaurant-copy p{
    max-width:27ch;
  }
}

/* Menu UX v4: logo inside banner and product search */
body.menu-body .restaurant-info{
  grid-template-columns:118px minmax(0,1fr);
  align-items:end;
  margin-top:-148px;
}
body.menu-body .restaurant-logo{
  align-self:end;
}
body.menu-body .category-row{
  align-items:center;
  gap:10px;
}
body.menu-body .menu-search{
  flex:0 0 min(310px,42vw);
  min-height:42px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 11px;
  border:1px solid rgba(142,111,121,.24);
  border-radius:999px;
  background:#fff;
  box-shadow:0 4px 16px rgba(0,0,0,.04);
}
body.menu-body .menu-search svg{
  flex:0 0 auto;
  width:19px;
  height:19px;
  fill:none;
  stroke:var(--primary-container);
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
body.menu-body .menu-search input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:#191c1d;
  font-weight:700;
}
body.menu-body .menu-search input::placeholder{
  color:#8e6f79;
}
body.menu-body .menu-search button{
  flex:0 0 auto;
  width:24px;
  height:24px;
  border:0;
  border-radius:999px;
  background:#f3f4f5;
  color:#5a3f48;
  font-weight:900;
  line-height:1;
}

@media (max-width:720px){
  body.menu-body .restaurant-cover{
    height:390px;
  }
  body.menu-body .restaurant-info{
    display:grid;
    grid-template-columns:78px minmax(0,1fr);
    align-items:end;
    gap:12px;
    margin-top:-150px;
    padding:0 18px 0;
  }
  body.menu-body .restaurant-logo{
    order:0;
    grid-column:1;
    grid-row:1;
    align-self:end;
    margin:0;
  }
  body.menu-body .restaurant-copy{
    order:0;
    grid-column:2;
    grid-row:1;
    align-self:end;
  }
  body.menu-body .restaurant-copy .eyebrow{
    display:none;
  }
  body.menu-body .restaurant-copy h1{
    margin:0 0 6px;
    font-size:clamp(1.55rem,7.8vw,2.25rem);
    line-height:1.02;
  }
  body.menu-body .restaurant-copy p{
    max-width:24ch;
    font-size:.78rem;
    line-height:1.3;
  }
  body.menu-body .restaurant-meta-row{
    margin-top:8px;
  }
  body.menu-body .rate-pill{
    grid-column:1 / -1;
    grid-row:2;
    margin-top:2px;
  }
  body.menu-body .category-row{
    flex-wrap:nowrap;
    padding:10px 12px;
  }
  body.menu-body .menu-search{
    flex:0 0 48px;
    width:48px;
    max-width:48px;
    min-height:42px;
    height:42px;
    justify-content:center;
    padding:0;
    gap:0;
  }
  body.menu-body .menu-search svg{
    margin:0;
  }
  body.menu-body .menu-search:focus-within{
    flex-basis:min(240px,72vw);
    width:min(240px,72vw);
    max-width:min(240px,72vw);
    justify-content:flex-start;
    padding:0 11px;
    gap:8px;
  }
  body.menu-body .menu-search input{
    flex:0 0 0;
    width:0;
    opacity:0;
    pointer-events:none;
  }
  body.menu-body .menu-search:focus-within input,
  body.menu-body .menu-search input:not(:placeholder-shown){
    flex:1 1 auto;
    width:100%;
    opacity:1;
    pointer-events:auto;
  }
  body.menu-body .menu-search:has(input:not(:placeholder-shown)){
    flex-basis:min(240px,72vw);
    width:min(240px,72vw);
    max-width:min(240px,72vw);
    justify-content:flex-start;
    padding:0 11px;
    gap:8px;
  }
}

/* Product modal: fixed add footer */
body.menu-body .product-modal{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
  overflow:hidden;
}
body.menu-body .product-dialog{
  display:grid;
  grid-template-columns:minmax(260px,.85fr) minmax(320px,1fr);
  width:min(940px,100%);
  max-height:min(92dvh,760px);
  overflow:hidden;
}
body.menu-body .product-dialog > img{
  height:100%;
  min-height:0;
  object-fit:cover;
}
body.menu-body .product-dialog-body{
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  padding:24px 24px 0;
}
body.menu-body .product-dialog-body > .badge,
body.menu-body .product-dialog-body > h2,
body.menu-body .product-dialog-body > p{
  flex:0 0 auto;
}
body.menu-body .product-dialog-scroll{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  padding-bottom:18px;
}
body.menu-body .dialog-footer{
  position:sticky;
  bottom:0;
  flex:0 0 auto;
  margin:0 -24px;
  padding:14px 24px calc(14px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);
  border-top:1px solid rgba(226,189,200,.75);
  box-shadow:0 -12px 28px rgba(0,0,0,.08);
  backdrop-filter:blur(14px);
}
body.menu-body .dialog-footer .primary-btn{
  min-height:52px;
  padding:0 18px;
}

@media (max-width:720px){
  body.menu-body .product-modal{
    align-items:flex-end;
    padding:0;
  }
  body.menu-body .product-dialog{
    width:100%;
    max-height:94dvh;
    grid-template-columns:1fr;
    grid-template-rows:190px minmax(0,1fr);
    border-radius:20px 20px 0 0;
  }
  body.menu-body .product-dialog > img{
    width:100%;
    height:190px;
    min-height:190px;
  }
  body.menu-body .product-dialog-body{
    padding:18px 18px 0;
  }
  body.menu-body .dialog-footer{
    margin:0 -18px;
    padding:12px 18px calc(12px + env(safe-area-inset-bottom));
    gap:10px;
  }
  body.menu-body .dialog-footer .primary-btn{
    min-height:50px;
    padding:0 14px;
  }
}

/* Menu hero readability and tenant rate settings */
@media (min-width:721px){
  body.menu-body .restaurant-hero{
    padding-bottom:0;
    background:#f8f9fa;
  }
  body.menu-body .restaurant-cover{
    height:520px;
  }
  body.menu-body .restaurant-cover img{
    object-position:center 46%;
  }
  body.menu-body .restaurant-cover::after{
    background:
      linear-gradient(to top, rgba(0,0,0,.80) 0%, rgba(0,0,0,.48) 42%, rgba(0,0,0,.10) 100%),
      linear-gradient(90deg, rgba(0,0,0,.40), rgba(0,0,0,.08) 58%, rgba(0,0,0,.18));
  }
  body.menu-body .restaurant-info{
    position:absolute;
    left:50%;
    bottom:34px;
    transform:translateX(-50%);
    z-index:2;
    grid-template-columns:118px minmax(0,1fr);
    align-items:end;
    gap:22px;
    margin:0;
    padding-bottom:0;
  }
  body.menu-body .restaurant-logo{
    width:118px;
    height:118px;
    border-radius:30px;
    box-shadow:0 18px 44px rgba(0,0,0,.30);
  }
  body.menu-body .restaurant-copy{
    max-width:820px;
    padding:18px 20px 16px;
    border-radius:22px;
    background:linear-gradient(90deg, rgba(0,0,0,.42), rgba(0,0,0,.10));
    text-shadow:0 3px 18px rgba(0,0,0,.68);
    backdrop-filter:blur(2px);
  }
  body.menu-body .restaurant-copy h1{
    margin:12px 0 8px;
    font-size:clamp(3rem,5vw,4.45rem);
  }
  body.menu-body .restaurant-copy p,
  body.menu-body .restaurant-meta-row{
    color:rgba(255,255,255,.96);
  }
  body.menu-body .rate-pill{
    width:max-content;
    max-width:min(520px,100%);
    background:rgba(255,255,255,.94);
  }
}

/* Landing viewport compact pass */
.landing-v2 .topbar{
  padding-top:12px;
  padding-bottom:12px;
}
.landing-v2 .pf-hero{
  min-height:auto;
  grid-template-columns:minmax(0,1.05fr) minmax(300px,.72fr);
  gap:clamp(18px,3.5vw,48px);
  padding:18px clamp(18px,4.4vw,64px) 18px;
}
.landing-v2 .pf-hero h1{
  max-width:12ch;
  margin:10px 0;
  font-size:clamp(2.25rem,4.65vw,4.35rem);
  line-height:.98;
}
.landing-v2 .pf-hero p{
  max-width:58ch;
  font-size:clamp(.94rem,1.25vw,1.03rem);
  line-height:1.48;
}
.landing-v2 .phone-stage{
  min-height:520px;
}
.landing-v2 .phone-frame{
  width:min(282px,74vw);
}
.landing-v2 .store-head{
  min-height:70px;
  padding:8px;
}
.landing-v2 .store-avatar{
  width:50px;
  height:50px;
}
.landing-v2 .mini-card{
  grid-template-columns:48px 1fr;
  padding:7px;
}
.landing-v2 .mini-card img{
  width:48px;
  height:48px;
}
.landing-v2 .hero-actions,
.landing-v2 .trust-row{
  margin-top:16px;
}
.landing-v2 .logo-strip{
  padding-top:12px;
  padding-bottom:12px;
}
.landing-v2 .section{
  padding-top:38px;
  padding-bottom:38px;
}
.landing-v2 .benefits-showcase{
  padding-top:34px;
  padding-bottom:38px;
}
.landing-v2 .benefits-title{
  margin-bottom:22px;
}
.landing-v2 .benefits-title h2,
.landing-v2 .section-head h2,
.landing-v2 .showcase-copy h2,
.landing-v2 .contact-copy h2{
  font-size:clamp(1.9rem,3.3vw,2.9rem);
}
.landing-v2 .benefit-visual{
  width:min(184px,100%);
}
.landing-v2 .benefit-card{
  gap:16px;
}
.landing-v2 .menu-showcase{
  gap:clamp(20px,3.6vw,48px);
}
.landing-v2 .showcase-list article{
  min-height:56px;
  padding:10px 12px;
}
.landing-v2 .plan-card{
  gap:12px;
  padding:18px;
}
.landing-v2 .trial-band{
  padding:22px 24px;
}
.landing-v2 .trial-band h2{
  font-size:clamp(1.9rem,3.5vw,3rem);
}
.landing-v2 .contact-form{
  padding:18px;
}
.landing-v2 .site-footer{
  padding-top:30px;
}
.landing-v2 .footer-columns{
  margin-top:0;
  padding-top:0;
  border-top:0;
}

@media (max-width:720px){
  .brand-header-logo{
    width:auto;
    height:32px;
  }
  .landing-v2 .hamburger{
    position:absolute;
    right:14px;
    top:50%;
    transform:translateY(-50%);
    z-index:2;
    display:inline-flex;
    flex-direction:column;
    gap:4px;
    width:42px;
    min-width:42px;
    height:42px;
    min-height:42px;
    padding:0;
    color:var(--dark);
    background:#fff;
    border:1px solid var(--line);
  }
  .landing-v2 .pf-hero{
    grid-template-columns:1fr;
    gap:18px;
    padding:22px 14px 24px;
  }
  .landing-v2 .hero-copy{
    max-width:100%;
  }
  .landing-v2 .pf-hero h1{
    max-width:10ch;
    font-size:clamp(2.2rem,11vw,3rem);
  }
  .landing-v2 .pf-hero p{
    max-width:32ch;
  }
  .landing-v2 .hero-actions{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .landing-v2 .hero-actions .primary-btn,
  .landing-v2 .hero-actions .secondary-btn{
    width:100%;
  }
  .landing-v2 .phone-stage{
    min-height:500px;
    place-items:center;
  }
  .landing-v2 .phone-frame{
    width:min(270px,76vw);
    justify-self:center;
  }
  .landing-v2 .section{
    padding-top:38px;
    padding-bottom:38px;
  }
  .landing-v2 .benefits-showcase{
    padding-top:34px;
    padding-bottom:38px;
  }
}

/* Landing phone: real mobile menu preview */
.landing-v2 .phone-stage{
  min-height:500px;
}
.landing-v2 .phone-frame{
  width:min(276px,70vw);
  aspect-ratio:430/932;
  padding:9px;
  border:2px solid #2b2d33;
  border-radius:56px;
  overflow:visible;
  background:linear-gradient(145deg,#0b0c0f 0%,#24272e 48%,#07080a 100%);
  box-shadow:
    inset 0 0 0 2px rgba(255,255,255,.08),
    inset 0 0 0 8px #111316,
    0 32px 82px rgba(15,10,5,.30);
}
.landing-v2 .phone-frame::before{
  left:-5px;
  top:128px;
  width:3px;
  height:78px;
}
.landing-v2 .phone-frame::after{
  right:-5px;
  top:178px;
  width:3px;
  height:118px;
}
.landing-v2 .phone-screen{
  border-radius:44px;
}
.landing-v2 .dynamic-island{
  top:13px;
  width:104px;
  height:31px;
}
.landing-v2 .phone-cover,
.landing-v2 .phone-store{
  display:none;
}
.landing-v2 .menu-preview-frame{
  display:block;
}
.landing-v2 .phone-stage .float-note{
  display:none;
}
html.landing-preview-mode,
body.menu-body.landing-preview-mode{
  overflow:hidden;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
html.landing-preview-mode::-webkit-scrollbar,
body.menu-body.landing-preview-mode::-webkit-scrollbar,
body.menu-body.landing-preview-mode *::-webkit-scrollbar{
  width:0;
  height:0;
  display:none;
}
body.menu-body.landing-preview-mode #app > :not(.landing-menu-preview){
  display:none !important;
}
.landing-menu-preview{
  position:relative;
  min-height:100vh;
  height:100vh;
  display:flex;
  flex-direction:column;
  background:#fff;
  color:var(--dark);
  font-family:"Inter","Manrope",system-ui,sans-serif;
  overflow:hidden;
}
.landing-preview-hero{
  position:relative;
  min-height:215px;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  padding:56px 14px 16px;
  color:#fff;
}
.landing-preview-hero > img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.landing-preview-hero::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.42) 52%, rgba(0,0,0,.08) 100%);
}
.landing-preview-hero-copy{
  position:relative;
  z-index:1;
  display:grid;
  justify-items:start;
  gap:4px;
  max-width:240px;
}
.landing-preview-logo{
  width:50px;
  height:50px;
  border:3px solid #fff;
  border-radius:16px;
  background:#fff;
  object-fit:cover;
  box-shadow:0 10px 24px rgba(0,0,0,.22);
}
.landing-preview-hero-copy > span{
  display:inline-flex;
  min-height:20px;
  align-items:center;
  padding:0 7px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:.58rem;
  font-weight:800;
  text-transform:uppercase;
}
.landing-preview-hero h1{
  margin:0;
  color:#fff;
  font-family:"Lexend","Inter",system-ui,sans-serif;
  font-size:1.82rem;
  line-height:.95;
  letter-spacing:0;
}
.landing-preview-hero p{
  margin:0;
  max-width:24ch;
  color:rgba(255,255,255,.86);
  font-size:.62rem;
  font-weight:700;
  line-height:1.22;
}
.landing-preview-hero b{
  display:inline-flex;
  min-height:24px;
  align-items:center;
  gap:6px;
  margin-top:4px;
  padding:0 10px;
  border-radius:999px;
  background:#d3182b;
  color:#fff;
  font-size:.62rem;
  font-weight:900;
}
.landing-preview-hero b::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:#fff;
}
.landing-preview-hero b.open{
  background:#15c987;
}
.landing-preview-rate{
  position:relative;
  z-index:2;
  display:grid;
  gap:2px;
  margin:-14px 14px 8px;
  padding:10px 12px;
  border-radius:16px;
  background:#fff;
  box-shadow:0 12px 26px rgba(29,29,31,.10);
}
.landing-preview-rate strong{
  color:var(--accent);
  font-size:.76rem;
}
.landing-preview-rate span{
  color:#34363a;
  font-size:.72rem;
  font-weight:700;
}
.landing-preview-tabs{
  display:flex;
  gap:7px;
  overflow:hidden;
  padding:6px 14px 8px;
}
.landing-preview-tabs span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
  padding:7px 11px;
  min-height:34px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  color:#1d1d1f;
  font-size:.66rem;
  font-weight:900;
  line-height:1;
}
.landing-preview-tabs span:first-child{
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}
.landing-preview-products{
  display:grid;
  gap:7px;
  padding:0 14px 68px;
  overflow:hidden;
}
.landing-preview-products article{
  position:relative;
  display:grid;
  grid-template-columns:50px minmax(0,1fr) 20px;
  gap:10px;
  align-items:center;
  min-height:62px;
  padding:8px 10px 8px 8px;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 18px rgba(29,29,31,.05);
}
.landing-preview-products img{
  width:50px;
  height:50px;
  border-radius:12px;
  object-fit:cover;
}
.landing-preview-products strong{
  display:block;
  overflow:hidden;
  color:#1d1d1f;
  font-size:.69rem;
  line-height:1.12;
  font-weight:900;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:100%;
}
.landing-preview-products small{
  display:block;
  margin:2px 0;
  color:#6b7280;
  font-size:.58rem;
  font-weight:700;
}
.landing-preview-products span{
  color:var(--accent);
  font-size:.66rem;
  font-weight:900;
}
.landing-preview-products i{
  width:20px;
  height:20px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--accent);
  color:#fff;
  font-style:normal;
  font-size:.82rem;
  line-height:1;
  font-weight:800;
}
.landing-preview-cart{
  position:absolute;
  left:auto;
  right:14px;
  bottom:12px;
  z-index:4;
  width:142px;
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:0;
  border-radius:999px;
  padding:0 10px;
  background:#151719;
  color:#fff;
  box-shadow:0 12px 26px rgba(0,0,0,.20);
  font-size:.54rem;
  font-weight:900;
  text-transform:uppercase;
  line-height:1;
}
.landing-preview-cart strong{
  color:#ff4558;
  line-height:1;
}
body.menu-body.landing-preview-mode .restaurant-cover{
  height:330px;
}
body.menu-body.landing-preview-mode .restaurant-info{
  margin-top:-210px;
  padding:0 14px;
}
body.menu-body.landing-preview-mode .restaurant-logo{
  width:70px;
  height:70px;
  border-radius:20px;
}
body.menu-body.landing-preview-mode .restaurant-copy h1{
  font-size:2.55rem;
}
body.menu-body.landing-preview-mode .cart-fab{
  right:10px;
  bottom:10px;
  min-width:min(210px, calc(100vw - 20px));
  min-height:48px;
  padding:0 14px;
  font-size:.74rem;
}

@media (max-width:720px){
  .landing-v2 .phone-stage{
    min-height:470px;
  }
  .landing-v2 .phone-frame{
    width:min(248px,72vw);
  }
}

/* Final button alignment + compact cart button */
.primary-btn,
.secondary-btn,
.checkout-submit,
.cart-fab,
.landing-preview-cart,
.landing-preview-tabs span,
.category-row button,
.choice-pills button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  line-height:1 !important;
  box-sizing:border-box !important;
  vertical-align:middle;
}

.primary-btn,
.secondary-btn,
.checkout-submit{
  white-space:normal;
}

.primary-btn *,
.secondary-btn *,
.checkout-submit *,
.cart-fab *,
.landing-preview-cart *,
.landing-preview-tabs span *{
  line-height:1 !important;
}

body.menu-body .category-row button,
.landing-preview-tabs span{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

body.menu-body .cart-fab{
  position:fixed !important;
  left:auto !important;
  right:12px !important;
  inset-inline-end:12px !important;
  bottom:calc(14px + env(safe-area-inset-bottom)) !important;
  width:auto !important;
  min-width:0 !important;
  max-width:180px !important;
  min-height:46px !important;
  margin:0 !important;
  padding:0 12px !important;
  gap:8px;
  justify-content:center !important;
  border-radius:999px;
  font-size:.68rem;
  transform:none !important;
}

body.menu-body .cart-fab span,
body.menu-body .cart-fab strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  white-space:nowrap;
}

@media (max-width:720px){
  html,
  body.menu-body,
  body.menu-body #app{
    max-width:100%;
    overflow-x:hidden;
  }

  body.menu-body .toast{
    bottom:calc(76px + env(safe-area-inset-bottom));
    max-width:76vw;
    font-size:.86rem;
  }

  body.menu-body .cart-fab{
    right:12px !important;
    inset-inline-end:12px !important;
    bottom:calc(12px + env(safe-area-inset-bottom)) !important;
    width:auto !important;
    min-width:0 !important;
    max-width:172px !important;
    min-height:44px !important;
    padding:0 12px !important;
    font-size:.64rem;
  }
}




