/* ============================================================
   PIZZA VOLANTE — Trattoria Glass v8
   Warm Italian trattoria × modern glassmorphism
   Cream/peach gradient · deep burgundy · charcoal ink
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400..900;1,9..144,400..900&family=Manrope:wght@300..800&display=swap');

:root{
  /* ── PALETTE ─────────────────────────────────────────── */
  --burgundy:#BD4A2C;          /* warm terracotta — softer, eye-friendly */
  --burgundy-dk:#8E3318;
  --burgundy-lt:rgba(189,74,44,.10);
  --burgundy-line:rgba(189,74,44,.24);

  --terracotta:#C55A3C;         /* accent warm clay */
  --olive:#6B7A3A;              /* accent sage/olive */
  --saffron:#D8A441;            /* accent warm gold */
  --saffron-lt:#ECC168;

  --ink:#2D2418;                /* primary charcoal text */
  --ink-soft:#6B5B47;           /* muted body */
  --ink-xs:#A08C73;             /* captions */

  --cream:#FEF7EC;              /* page cream */
  --peach:#FADFC1;              /* warm peach */
  --peach-lt:#FCE8D0;
  --parchment:#FFF9EE;

  /* legacy aliases (keep old partials working) */
  --red:var(--burgundy);
  --red-dk:var(--burgundy-dk);
  --red-lt:var(--burgundy-lt);
  --gold:var(--saffron);
  --gold-lt:var(--saffron-lt);
  --gold-bg:rgba(216,164,65,.12);
  --dark:var(--ink);
  --dark2:#3A2D1C;
  --text:var(--ink);
  --text-lt:var(--ink-soft);
  --text-xs:var(--ink-xs);
  --border:var(--burgundy-line);
  --border-focus:rgba(122,31,43,.35);

  /* ── GLASS ──────────────────────────────────────────── */
  --glass-bg:rgba(255,249,238,.72);
  --glass-bg-strong:rgba(255,249,238,.88);
  --glass-bg-dark:rgba(45,36,24,.78);
  --glass-border:rgba(122,31,43,.12);
  --glass-border-soft:rgba(255,255,255,.45);
  --glass-blur:blur(18px) saturate(140%);
  --glass-blur-strong:blur(28px) saturate(150%);

  /* ── SHADOWS ────────────────────────────────────────── */
  --shadow-sm:0 2px 10px rgba(89,16,24,.06);
  --shadow:0 6px 24px rgba(89,16,24,.08), 0 2px 6px rgba(89,16,24,.04);
  --shadow-lg:0 18px 50px rgba(89,16,24,.14), 0 6px 20px rgba(89,16,24,.08);
  --shadow-hover:0 22px 60px rgba(122,31,43,.22), 0 8px 24px rgba(122,31,43,.12);
  --shadow-red:var(--shadow-hover);
  --shadow-inset:inset 0 1px 0 rgba(255,255,255,.55);

  /* ── SHAPE ──────────────────────────────────────────── */
  --radius-xs:8px;
  --radius-sm:12px;
  --radius:16px;
  --radius-lg:22px;
  --radius-pill:999px;

  /* ── MOTION ─────────────────────────────────────────── */
  --ease:cubic-bezier(.4,0,.2,1);
  --ease-smooth:cubic-bezier(.25,.8,.25,1);
  --transition:all .28s var(--ease);

  /* ── FONTS ──────────────────────────────────────────── */
  --font-d:'Fraunces','Playfair Display',Georgia,serif;
  --font-b:'Manrope','Inter','SF Pro Text',system-ui,-apple-system,sans-serif;
  --font-display:var(--font-d);
  --font-body:var(--font-b);

  --nav-h:74px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:16px;}
body{
  font-family:var(--font-b);
  color:var(--ink);
  min-height:100vh;
  overflow-x:hidden;
  font-feature-settings:"ss01","cv11";
  -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1200px 780px at 70% -5%, #F6A48E 0%, rgba(246,164,142,0) 55%),
    radial-gradient(1000px 700px at -10% 40%, #FCCFB4 0%, rgba(252,207,180,0) 55%),
    radial-gradient(900px 600px at 50% 105%, #FDE7C6 0%, rgba(253,231,198,0) 60%),
    linear-gradient(180deg, #FFE4D0 0%, #FDEFDD 55%, #FFF6E8 100%);
  background-attachment:fixed;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
button{cursor:pointer;font-family:var(--font-b);}
::selection{background:var(--burgundy);color:#fff;}

/* ── NAVBAR — floating glass pill ───────────────────────────── */
.navbar{
  position:fixed;
  top:14px;left:50%;transform:translateX(-50%);
  z-index:1001;
  width:min(1240px, calc(100% - 28px));
  height:calc(var(--nav-h) - 10px);
  padding:0 10px 0 18px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--glass-bg);
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border-soft);
  border-radius:var(--radius-pill);
  box-shadow:var(--shadow-lg), var(--shadow-inset);
  transition:var(--transition);
}
.navbar.scrolled{
  background:var(--glass-bg-strong);
  box-shadow:0 12px 40px rgba(89,16,24,.18), var(--shadow-inset);
}
.nav-brand{display:flex;align-items:center;gap:11px;text-decoration:none;flex-shrink:0;}
.nav-logo,.nav-logo-circle{
  width:46px;height:46px;border-radius:50%;
  background:
    radial-gradient(circle at 30% 28%, #8E2733 0%, var(--burgundy) 55%, #4A0E16 100%);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
  box-shadow:0 4px 14px rgba(122,31,43,.35), inset 0 1px 0 rgba(255,255,255,.22);
  position:relative;overflow:hidden;
}
.nav-logo-circle svg,.nav-logo svg{
  width:80%;height:80%;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));
}
/* Brand logo (PNG) variant — ditches the burgundy gradient since the artwork already has its own circular composition */
.nav-logo-img{
  background:transparent !important;
  box-shadow:0 3px 10px rgba(89,16,24,.18);
  width:48px;height:48px;
}
.nav-logo-img img{
  width:100%;height:100%;object-fit:contain;display:block;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.15));
}
.nav-brand-name,.nav-brand-text{
  color:var(--burgundy);font-family:var(--font-d);font-size:1.15rem;font-weight:800;line-height:1;letter-spacing:.005em;
}
.nav-brand-name small,.nav-brand-text span{
  color:var(--burgundy);display:block;font-size:.6rem;font-weight:600;letter-spacing:.18em;
  font-family:var(--font-b);margin-top:3px;text-transform:uppercase;
}

.nav-links{display:flex;align-items:center;gap:2px;list-style:none;}
.nav-links a{
  color:var(--ink-soft);
  padding:8px 14px;border-radius:var(--radius-pill);
  font-size:.86rem;font-weight:500;
  transition:var(--transition);
  position:relative;
}
.nav-links a:hover{color:#8A3A1F;background:rgba(216,164,65,.16);}
.nav-links a.active{
  color:#5B1A12;font-weight:700;
  background:linear-gradient(135deg, #F6D689 0%, #E8B85A 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55), 0 2px 8px rgba(216,164,65,.35);
}

.nav-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}

/* IT/EN/DE pill toggle */
.lang-picker{
  display:inline-flex;gap:2px;align-items:center;padding:3px;
  background:rgba(122,31,43,.06);
  border:1px solid var(--glass-border);
  border-radius:var(--radius-pill);
}
.lang-btn{
  background:transparent;border:none;
  color:var(--ink-soft);
  border-radius:var(--radius-pill);
  min-width:32px;height:28px;padding:0 9px;
  font-family:var(--font-b);font-size:.68rem;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;
  display:inline-flex;align-items:center;justify-content:center;
  transition:var(--transition);cursor:pointer;line-height:1;
}
.lang-btn:hover{color:var(--burgundy);background:rgba(255,255,255,.55);}
.lang-btn.active-lang{
  background:var(--burgundy);color:#fff;
  box-shadow:0 2px 8px rgba(122,31,43,.3);
}

.cart-btn,.cart-fab{
  position:relative;flex-shrink:0;
  background:var(--burgundy);color:#fff;border:none;
  width:42px;height:42px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;cursor:pointer;transition:var(--transition);
  box-shadow:0 4px 14px rgba(122,31,43,.3), inset 0 1px 0 rgba(255,255,255,.18);
}
.cart-btn::before{
  content:"";display:block;width:18px;height:18px;
  background:currentColor;-webkit-mask:var(--cart-svg) center/contain no-repeat;
                        mask:var(--cart-svg) center/contain no-repeat;
}
.cart-btn{
  --cart-svg:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='20' r='1.3'/><circle cx='18' cy='20' r='1.3'/><path d='M3 4h2.5l2.7 11.3a2 2 0 0 0 2 1.5h7.5a2 2 0 0 0 2-1.4L22 8H6.2'/></svg>");
  font-size:0;
}
.cart-btn:hover,.cart-fab:hover{background:var(--burgundy-dk);transform:translateY(-1px) scale(1.04);}
.cart-count,.cart-badge{
  position:absolute;top:-4px;right:-4px;
  background:var(--saffron);color:var(--ink);
  font-size:.6rem;font-weight:800;
  min-width:18px;height:18px;padding:0 4px;border-radius:var(--radius-pill);
  display:none;align-items:center;justify-content:center;
  border:2px solid var(--parchment);
}
.cart-count.show,.cart-badge.show{display:flex;}

.hamburger{display:none;flex-direction:column;gap:5px;background:transparent;border:none;padding:8px;flex-shrink:0;}
.hamburger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:var(--transition);}
.hamburger.open span:first-child{transform:translateY(7px) rotate(45deg);}
.hamburger.open span:nth-child(2){opacity:0;}
.hamburger.open span:last-child{transform:translateY(-7px) rotate(-45deg);}

.mobile-nav,.mobile-drawer{
  display:none;position:fixed;top:calc(var(--nav-h) + 8px);
  left:14px;right:14px;
  background:var(--glass-bg-strong);
  -webkit-backdrop-filter:var(--glass-blur-strong);backdrop-filter:var(--glass-blur-strong);
  border:1px solid var(--glass-border-soft);
  border-radius:var(--radius);
  z-index:999;flex-direction:column;padding:12px;
  box-shadow:var(--shadow-lg);
  max-height:calc(100vh - var(--nav-h) - 24px);overflow-y:auto;
  animation:drawerSlide .28s var(--ease);
}
.mobile-nav.open,.mobile-drawer.open{display:flex;}
.mobile-drawer ul{list-style:none;display:flex;flex-direction:column;gap:2px;}
.mobile-drawer a,.mobile-nav a{
  color:var(--ink);
  padding:12px 16px;border-radius:var(--radius-sm);
  font-weight:600;font-size:.92rem;display:block;
  transition:var(--transition);
}
.mobile-drawer a:hover,.mobile-nav a:hover{background:var(--burgundy-lt);color:var(--burgundy);}
.mobile-drawer .lang-picker{margin:.25rem auto 0;}
@keyframes drawerSlide{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:translateY(0);}}
body.drawer-open{overflow:hidden;}

/* ── PAGE HERO ───────────────────────────────────────────── */
.page-hero{
  padding:calc(var(--nav-h) + 2.5rem) 5% 3rem;
  position:relative;overflow:hidden;
  background:
    radial-gradient(700px 400px at 90% 0%, rgba(216,164,65,.22) 0%, transparent 60%),
    radial-gradient(600px 360px at 5% 50%, rgba(122,31,43,.12) 0%, transparent 60%),
    linear-gradient(180deg, transparent 0%, rgba(254,247,236,.65) 100%);
}
.page-hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg, transparent, var(--burgundy-line) 30%, var(--burgundy-line) 70%, transparent);
}
.page-hero h1{
  font-family:var(--font-d);
  font-size:clamp(2rem, 4.5vw, 3.2rem);
  font-weight:800;letter-spacing:-.015em;line-height:1.06;
  color:var(--ink);margin-bottom:.6rem;
}
.page-hero h1 em,.page-hero h1 span{color:#C04A2B;font-style:italic;}
.page-hero p{color:#5E4A38;font-size:1rem;max-width:640px;line-height:1.55;}
.page-hero-inner{position:relative;z-index:1;max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;}

/* ── BREADCRUMB ──────────────────────────────────────────── */
.breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--ink-xs);flex-wrap:wrap;margin-bottom:.75rem;}
.breadcrumb a{color:var(--burgundy);transition:opacity .2s;font-weight:600;}
.breadcrumb a:hover{opacity:.75;}
.breadcrumb span{opacity:.5;}

/* ── MENU NAV TABS ───────────────────────────────────────── */
.menu-tabs{
  background:var(--glass-bg-strong);
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border-bottom:1px solid var(--glass-border);
  position:sticky;top:calc(var(--nav-h) + 4px);z-index:100;
  box-shadow:0 4px 16px rgba(89,16,24,.04);
}
.menu-tabs-inner{max-width:1200px;margin:0 auto;padding:0 5%;display:flex;gap:4px;overflow-x:auto;}
.menu-tab,.menu-tab-link{
  padding:14px 20px;font-weight:600;font-size:.88rem;
  color:var(--ink-soft);
  border-bottom:3px solid transparent;
  white-space:nowrap;transition:var(--transition);
  text-decoration:none;display:flex;align-items:center;gap:.5rem;
  font-family:var(--font-b);letter-spacing:.005em;
}
.menu-tab:hover,.menu-tab-link:hover{color:var(--burgundy);}
.menu-tab.active,.menu-tab-link.active{color:var(--burgundy);border-bottom-color:var(--burgundy);font-weight:700;}

/* ── LAYOUT ──────────────────────────────────────────────── */
.page-wrap{max-width:1200px;margin:0 auto;padding:2.5rem 5% 5rem;}
.two-col{display:grid;grid-template-columns:230px 1fr;gap:2.5rem;}
.sticky-sidebar{position:sticky;top:calc(var(--nav-h) + 80px);height:fit-content;}

/* ── CATEGORY SIDEBAR ────────────────────────────────────── */
.cat-box{
  background:var(--glass-bg-strong);
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border-radius:var(--radius);border:1px solid var(--glass-border);
  overflow:hidden;box-shadow:var(--shadow);
}
.cat-box-head{
  background:linear-gradient(135deg, var(--burgundy), var(--burgundy-dk));
  color:var(--saffron-lt);
  font-family:var(--font-d);font-size:.82rem;font-weight:700;
  padding:14px 18px;letter-spacing:.1em;text-transform:uppercase;
}
.cat-list{list-style:none;padding:6px 0;}
.cat-list a{
  display:flex;align-items:center;gap:8px;
  padding:10px 18px;color:var(--ink-soft);
  font-size:.88rem;font-weight:500;transition:var(--transition);
  border-left:3px solid transparent;text-decoration:none;
}
.cat-list a:hover{color:var(--burgundy);background:var(--burgundy-lt);}
.cat-list a.active{color:var(--burgundy);font-weight:700;border-left-color:var(--burgundy);background:var(--burgundy-lt);}

/* ── SEARCH ──────────────────────────────────────────────── */
.search-wrap,.search-bar{position:relative;margin-bottom:1.5rem;}
.search-wrap input,.search-bar input{
  width:100%;padding:13px 18px 13px 44px;
  border-radius:var(--radius-pill);
  border:1.5px solid var(--glass-border);
  background:var(--glass-bg-strong);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  font-family:var(--font-b);font-size:.9rem;color:var(--ink);
  transition:var(--transition);
}
.search-wrap input:focus,.search-bar input:focus{
  outline:none;border-color:var(--burgundy);
  box-shadow:0 0 0 4px var(--burgundy-lt);
  background:#fff;
}
.search-wrap .si,.search-bar .si{
  position:absolute;left:16px;top:50%;transform:translateY(-50%);
  color:var(--ink-xs);font-size:1rem;pointer-events:none;
  width:16px;height:16px;
  background:currentColor;
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3'/></svg>") center/contain no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m21 21-4.3-4.3'/></svg>") center/contain no-repeat;
}

/* ── FILTER PILLS ────────────────────────────────────────── */
.filter-pills,.filter-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:1.75rem;}
.pill,.filter-tab{
  padding:7px 16px;border-radius:var(--radius-pill);
  font-size:.8rem;font-weight:600;cursor:pointer;
  border:1.5px solid var(--glass-border);
  background:var(--glass-bg-strong);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transition:var(--transition);color:var(--ink-soft);white-space:nowrap;line-height:1.4;
}
.pill:hover,.filter-tab:hover{border-color:var(--burgundy);color:var(--burgundy);}
.pill.active,.filter-tab.active{
  background:var(--burgundy);color:#fff;border-color:var(--burgundy);
  box-shadow:0 4px 12px rgba(122,31,43,.28);
}

/* ── CATEGORY HEADING ────────────────────────────────────── */
.cat-heading{display:flex;align-items:center;gap:1rem;margin:2.25rem 0 1.25rem;scroll-margin-top:calc(var(--nav-h)+90px);}
.cat-heading h2{
  font-family:var(--font-d);font-size:clamp(1.4rem, 2.2vw, 1.7rem);
  font-weight:800;color:var(--ink);white-space:nowrap;letter-spacing:-.01em;
}
.cat-heading hr{flex:1;border:none;border-top:1px dashed var(--burgundy-line);}

/* ── SECTION HEADER ──────────────────────────────────────── */
.section-header{text-align:center;margin-bottom:2.25rem;}
.section-tag{
  display:inline-block;
  background:rgba(122,31,43,.08);color:var(--burgundy);
  border:1px solid rgba(122,31,43,.18);
  padding:6px 16px;border-radius:var(--radius-pill);
  font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  margin-bottom:.9rem;font-family:var(--font-b);
}
.section-title{
  font-family:var(--font-d);
  font-size:clamp(1.85rem,3.2vw,2.7rem);
  color:var(--ink);font-weight:800;letter-spacing:-.015em;line-height:1.12;
}
.section-title span,.section-title em{color:#C04A2B;font-style:italic;}

/* ── TOP / FEATURED BADGE ────────────────────────────────── */
.ic.is-top,.pizza-card.is-top{
  position:relative;
  border:1.5px solid #E8B85A !important;
  box-shadow:0 8px 24px rgba(232,184,90,.25), 0 4px 10px rgba(122,31,43,.08) !important;
}
.ic-top-badge{
  position:absolute;top:10px;right:10px;z-index:6;
  background:linear-gradient(135deg,#E8B85A 0%,#D8A441 100%);
  color:#5B1A12;font-weight:800;font-size:.66rem;
  letter-spacing:.10em;padding:4px 9px;border-radius:999px;
  box-shadow:0 4px 10px rgba(216,164,65,.45), inset 0 1px 0 rgba(255,255,255,.55);
  pointer-events:none;text-transform:uppercase;line-height:1;
}

/* ── PIZZA CARD ──────────────────────────────────────────── */
.pizza-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.pizza-card{
  position:relative;
  background:#FFFBF3;
  border-radius:22px;
  border:1px solid rgba(122,31,43,.10);
  overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 6px 20px rgba(122,31,43,.06);
  transition:transform .22s ease, box-shadow .22s ease;
}
.pizza-card:hover,.pc-hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(122,31,43,.12);border-color:rgba(122,31,43,.20);}
.pc-head,.pizza-card-head{
  background:linear-gradient(135deg,#FFEED1 0%,#FAD3B3 100%);
  padding:1.05rem 1.25rem;display:flex;align-items:flex-start;gap:12px;
  border-bottom:1px solid rgba(122,31,43,.08);
}
.pc-num,.pizza-num{
  background:var(--burgundy);color:#fff;
  font-weight:800;font-size:.78rem;min-width:30px;height:30px;
  border-radius:10px;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;letter-spacing:-.02em;
  box-shadow:0 3px 8px rgba(192,74,43,.30);
}
.pc-name,.pizza-name{
  color:#1E1410;font-family:var(--font-d);
  font-size:1.22rem;font-weight:800;line-height:1.15;flex:1;letter-spacing:-.01em;
}
.pc-tag,.pizza-tag{
  font-size:.58rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 9px;border-radius:var(--radius-pill);
  flex-shrink:0;align-self:flex-start;margin-top:2px;
}
.tag-veg,.tag-vegetarian{background:rgba(107,122,58,.15);color:#4A5528;}
.tag-buf,.tag-bufala{background:rgba(33,150,243,.18);color:#1565c0;}
.tag-fish{background:rgba(0,188,212,.18);color:#00838f;}
.tag-white{background:rgba(90,70,55,.15);color:#5A4637;}
.tag-cal,.tag-calzone{background:rgba(197,90,60,.18);color:#C55A3C;}
.tag-sweet{background:rgba(233,30,99,.18);color:#880e4f;}

.pc-body,.pizza-card-body{padding:1rem 1.2rem;flex:1;display:flex;flex-direction:column;gap:12px;}
.pc-ing,.pizza-ingredients{font-size:.82rem;color:var(--ink-soft);line-height:1.55;}
.pc-ing strong,.pizza-ingredients strong{
  display:block;font-size:.66rem;text-transform:uppercase;
  letter-spacing:.08em;color:var(--ink-xs);margin-bottom:3px;font-weight:700;
}
.pc-sizes,.pizza-size-price{display:flex;gap:8px;flex-wrap:wrap;}
.sz-btn,.size-btn{
  flex:1 1 0;min-width:0;padding:9px 10px;
  border-radius:14px;
  border:1.5px solid rgba(122,31,43,.15);
  background:#fff;
  font-family:var(--font-b);font-size:.8rem;font-weight:700;
  transition:all .18s ease;text-align:center;cursor:pointer;color:#3A2A1E;
  display:flex;flex-direction:column;align-items:center;gap:3px;
}
.sz-btn:hover,.size-btn:hover{border-color:var(--burgundy);color:var(--burgundy);background:#FFF4F2;}
.sz-btn.sel,.size-btn.selected{background:var(--burgundy);color:#fff;border-color:var(--burgundy);box-shadow:0 4px 10px rgba(192,74,43,.28);}
.sz-price{display:block;font-size:.85rem;font-weight:800;margin-top:1px;
  font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;}
.add-btn,.add-to-cart-btn{
  width:100%;padding:12px;border-radius:14px;
  background:var(--burgundy);color:#fff;
  border:none;
  font-family:var(--font-b);font-weight:800;font-size:.92rem;letter-spacing:.01em;
  transition:all .18s ease;
  display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;
  box-shadow:0 4px 12px rgba(192,74,43,.25);
}
.add-btn:hover,.add-to-cart-btn:hover{
  background:var(--burgundy-dk);
  box-shadow:0 8px 20px rgba(192,74,43,.38);
  transform:translateY(-1px);
}
.add-btn:active,.add-to-cart-btn:active{transform:scale(.97);}
.add-btn.done,.add-to-cart-btn.added{background:#16A34A;box-shadow:0 4px 12px rgba(22,163,74,.3);}

/* ── ITEM CARD (.ic) ───────────────────────────────────── */
.item-grid,.ic-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));}
.ic,.item-card{
  background:var(--glass-bg-strong);
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border-radius:var(--radius);
  border:1px solid var(--glass-border);
  display:flex;flex-direction:column;
  box-shadow:var(--shadow);transition:var(--transition);
  overflow:hidden;position:relative;
}
.ic:hover,.item-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);border-color:rgba(122,31,43,.25);}

.ic-img{
  width:100%;height:130px;
  display:flex;align-items:center;justify-content:center;
  position:relative;overflow:hidden;flex-shrink:0;
  background:linear-gradient(135deg, var(--peach-lt) 0%, var(--peach) 100%) !important;
  border-bottom:1px solid rgba(122,31,43,.06);
}
.ic-img svg{width:54%;height:54%;filter:drop-shadow(0 4px 10px rgba(89,16,24,.15));}
.ic-img.ic-img-photo{background:#000 !important;}
.ic-img.ic-img-photo img{border-radius:0;}

/* Peach-tinted name header tile */
.ic-body{
  padding:0;
  display:flex;flex-direction:column;flex:1;
}
.ic-body::before{content:"";display:block;height:0;}
.ic-name{
  font-family:var(--font-d);font-size:1.05rem;font-weight:700;
  color:var(--ink);line-height:1.25;letter-spacing:-.005em;
  padding:.75rem 1rem .35rem;
  background:linear-gradient(135deg, rgba(250,223,193,.55), rgba(252,232,208,.35));
  border-bottom:1px solid rgba(122,31,43,.06);
}
.ic-desc{
  font-size:.78rem;color:var(--ink-soft);line-height:1.55;
  padding:.6rem 1rem .5rem;
  font-family:var(--font-b);
}
/* Size tiles — label on top, price below, selected = burgundy fill */
.ic-sizes{
  display:flex;flex-wrap:nowrap;gap:7px;
  padding:.55rem 1rem .55rem;
}
.ic-sz{
  flex:1 1 0;min-width:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;
  border:1.5px solid rgba(122,31,43,.18);
  background:rgba(250,223,193,.35);
  color:var(--ink);
  font-family:var(--font-b);
  padding:7px 4px 8px;border-radius:10px;
  cursor:pointer;transition:var(--transition);line-height:1.15;
  font-size:0;
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
}
.ic-sz .ic-sz-lbl{
  font-size:.66rem;font-weight:700;letter-spacing:.06em;
  color:var(--ink-soft);text-transform:uppercase;line-height:1;
}
.ic-sz .ic-sz-price{
  font-family:var(--font-b);font-size:.88rem;font-weight:800;
  color:var(--burgundy);letter-spacing:.01em;line-height:1.1;
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
}
.ic-sz:hover{
  border-color:var(--burgundy);
  background:rgba(250,223,193,.6);
  transform:translateY(-1px);
}
.ic-sz.active{
  background:var(--burgundy);border-color:var(--burgundy);
  box-shadow:0 3px 10px rgba(192,74,43,.3);
}
.ic-sz.active .ic-sz-lbl{color:rgba(255,245,236,.85);}
.ic-sz.active .ic-sz-price{color:#fff;}

.ic-footer,.item-card-footer{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:auto;padding:.7rem 1rem .9rem;
  border-top:1px dashed rgba(122,31,43,.1);
}
.ic-price,.item-price{
  font-family:var(--font-b);font-size:1.3rem;font-weight:800;
  color:var(--burgundy);min-width:58px;letter-spacing:.005em;
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
  line-height:1;
}
.ic-add,.item-add-btn{
  background:var(--burgundy);color:#fff;
  border:1.5px solid var(--burgundy);
  cursor:pointer;
  padding:7px 16px;border-radius:var(--radius-pill);
  font-family:var(--font-b);font-weight:700;font-size:.78rem;
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  transition:var(--transition);flex-shrink:0;
  letter-spacing:.02em;
  width:auto;height:auto;
}
.ic-add::before,.item-add-btn::before{
  content:"+";font-size:1.05rem;font-weight:700;line-height:1;margin-right:2px;
}
.ic-add:hover,.item-add-btn:hover{
  background:var(--burgundy-dk);border-color:var(--burgundy-dk);color:#fff;
  box-shadow:0 4px 12px rgba(192,74,43,.35);transform:translateY(-1px);
}
.ic-add:active{transform:scale(.96);}
.ic-add.done,.item-add-btn.done{
  background:var(--olive);color:#fff;border-color:var(--olive);
  box-shadow:0 4px 12px rgba(107,122,58,.3);
}
.ic-add.done::before,.item-add-btn.done::before{content:"";margin:0;}

/* ── CART DRAWER ─────────────────────────────────────────── */
.overlay,.cart-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(45,36,24,.55);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  z-index:2000;opacity:0;pointer-events:none;
  transition:opacity .3s;
}
.overlay.open,.cart-overlay.open{display:block;opacity:1;pointer-events:all;}
/* ═══ CART DRAWER — v3 "Osteria" ═══════════════════════════════ */
.cart-drawer{
  position:fixed;top:0;right:0;
  height:100vh;height:100dvh;
  width:min(440px,100vw);
  background:#FFFBF3;
  z-index:2001;
  box-shadow:-28px 0 70px -10px rgba(45,20,10,.35);
  display:flex;flex-direction:column;
  transform:translateX(105%);
  transition:transform .42s var(--ease-smooth);
  font-family:var(--font-b);
}
.cart-drawer.open{transform:translateX(0);}

/* Dark charcoal header with warm accents */
.cd-head,.cart-drawer-header{
  position:relative;
  padding:1.35rem 1.4rem 1.15rem;
  background:
    radial-gradient(300px 160px at 85% -10%, rgba(216,164,65,.24) 0%, transparent 65%),
    linear-gradient(135deg,#2A1610 0%,#3D1F17 60%,#4A2415 100%);
  color:#FFF6E3;
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  overflow:hidden;
  flex-shrink:0;
}
.cd-head::after,.cart-drawer-header::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,transparent,#D8A441 30%,#E8B85A 50%,#D8A441 70%,transparent);
}
.cd-head > div:first-child,.cart-drawer-header > div:first-child{
  display:flex;align-items:center;gap:.75rem;min-width:0;flex:1;
}
.cd-logo{
  flex-shrink:0;width:48px;height:48px;border-radius:50%;
  background:radial-gradient(circle at 30% 28%,#8E2733 0%,var(--burgundy) 55%,#4A0E16 100%);
  box-shadow:0 4px 14px rgba(216,164,65,.28),inset 0 1px 0 rgba(255,255,255,.22);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.cd-logo svg{width:78%;height:78%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3));}
/* PNG-logo variant for cart drawer — transparent so the brand artwork shows through */
.cd-logo-img{background:#FFFAF0 !important;box-shadow:0 3px 10px rgba(216,164,65,.35);}
.cd-logo-img img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 1px 1px rgba(0,0,0,.15));}
.cd-title-wrap{min-width:0;}
.cd-head h3,.cart-drawer-header h3{
  color:#FFF6E3;font-family:var(--font-d);font-size:1.28rem;font-weight:800;
  letter-spacing:-.005em;line-height:1.05;
}
.cart-sub{
  font-size:.7rem;color:#F4C77D;margin-top:5px;
  text-transform:uppercase;letter-spacing:.18em;font-weight:700;
  font-family:var(--font-b);display:flex;align-items:center;gap:.45rem;
}
.cart-sub svg{width:12px;height:12px;flex-shrink:0;}
.cd-close,.cart-close-btn{
  background:rgba(255,246,227,.12);border:1px solid rgba(255,246,227,.22);color:#FFF6E3;
  width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.9rem;transition:var(--transition);cursor:pointer;flex-shrink:0;
}
.cd-close:hover,.cart-close-btn:hover{background:rgba(255,246,227,.22);transform:rotate(90deg);}

/* ASAP / Scheduled pill row */
.cd-mode{
  padding:.9rem 1.2rem;background:#FFF4DC;
  border-bottom:1px solid rgba(122,31,43,.08);
  display:flex;gap:.55rem;flex-shrink:0;
}
.cd-mode-pill{
  flex:1;display:flex;align-items:center;gap:.5rem;
  padding:.55rem .8rem;border-radius:999px;
  background:#fff;border:1.5px solid rgba(122,31,43,.1);
  font-size:.78rem;font-weight:700;color:#5E4A38;
  cursor:pointer;transition:var(--transition);
}
.cd-mode-pill svg{width:16px;height:16px;flex-shrink:0;color:#C04A2B;}
.cd-mode-pill.on{
  background:linear-gradient(135deg,#FFD66B,#E8B85A);
  border-color:#D8A441;color:#3D1F17;
  box-shadow:0 4px 12px rgba(216,164,65,.32),inset 0 1px 0 rgba(255,255,255,.5);
}
.cd-mode-pill.on svg{color:#3D1F17;}

/* Items list */
.cd-items,.cart-items{
  flex:1;overflow-y:auto;overflow-x:hidden;
  padding:1rem 1.1rem .6rem;
  display:flex;flex-direction:column;gap:.7rem;
  background:linear-gradient(180deg,#FFFBF3 0%,#FFF4DC 100%);
}
.cd-items::-webkit-scrollbar,.cart-items::-webkit-scrollbar{width:6px;}
.cd-items::-webkit-scrollbar-thumb,.cart-items::-webkit-scrollbar-thumb{background:rgba(122,31,43,.2);border-radius:999px;}

/* Empty state */
.cd-empty,.cart-empty{
  text-align:center;padding:3.5rem 1.2rem;color:#8C7252;
  display:flex;flex-direction:column;align-items:center;gap:.8rem;
}
.cd-empty-emoji{font-size:3.2rem;filter:grayscale(.2);animation:bob 2.4s ease-in-out infinite;}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-6px);}}
.cd-empty h4{font-family:var(--font-d);font-size:1.25rem;color:#1E1410;font-weight:800;letter-spacing:-.01em;}
.cd-empty p{font-size:.88rem;color:#8C7252;max-width:240px;line-height:1.45;}

/* Item row */
.cart-item{
  background:#fff;border-radius:18px;
  padding:.8rem .9rem;
  display:grid;
  grid-template-columns:44px 1fr auto;
  grid-template-rows:auto auto;
  gap:.3rem .75rem;
  border:1px solid rgba(122,31,43,.08);
  box-shadow:0 3px 14px rgba(89,16,24,.06);
  animation:fadeIn .25s ease;
}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

.ci-icon,.cart-item-icon{
  grid-row:1/3;grid-column:1;align-self:center;
  width:48px;height:48px;border-radius:12px;
  background:linear-gradient(135deg,#FFEED1 0%,#FAD3B3 100%);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;flex-shrink:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 2px 6px rgba(192,74,43,.1);
  position:relative;
}
.cart-item-icon.has-photo{
  background:#fff;border:1px solid rgba(122,31,43,.1);
}
.cart-item-icon > svg{width:26px;height:26px;color:#8A3A1F;}
.cart-item-photo{
  width:100%;height:100%;object-fit:cover;display:block;
  border-radius:12px;
}
.cart-item-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;}
.cart-item-fallback svg{width:26px;height:26px;color:#8A3A1F;}
.ci-info,.cart-item-info{min-width:0;grid-column:2;align-self:center;grid-row:1/3;}
.ci-name,.cart-item-name{
  font-weight:800;font-size:.96rem;color:#1E1410;
  font-family:var(--font-d);letter-spacing:-.005em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.15;
}
.ci-size,.cart-item-size{
  font-size:.66rem;color:#8A3A1F;margin-top:3px;
  text-transform:uppercase;letter-spacing:.14em;font-weight:700;
  display:inline-flex;align-items:center;gap:.3rem;
  background:rgba(216,164,65,.18);padding:2px 7px;border-radius:999px;
}

.ci-price,.cart-item-price{
  font-family:var(--font-d);
  font-size:1.45rem;font-weight:800;font-style:italic;
  letter-spacing:-.012em;line-height:1;white-space:nowrap;
  /* Warm trattoria gradient: burgundy → terracotta */
  background:linear-gradient(135deg, #8A2F16 0%, var(--burgundy) 45%, #C55A3C 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1,"lnum" 1,"swsh" 1;
  /* Layered drop shadow for depth + soft white emboss */
  filter:
    drop-shadow(0 1px 0 rgba(255,255,255,.65))
    drop-shadow(0 2px 4px rgba(122,31,43,.18));
  position:relative;
  padding:.05rem 0 .35rem 0;
  grid-row:2;grid-column:3;align-self:end;justify-self:end;
}
/* Saffron gold underline accent — hand-drawn-feel */
.ci-price::after,.cart-item-price::after{
  content:"";position:absolute;
  left:18%;right:4%;bottom:.05rem;height:2px;border-radius:3px;
  background:linear-gradient(90deg, transparent 0%, rgba(216,164,65,.75) 30%, rgba(232,184,90,.95) 50%, rgba(216,164,65,.75) 70%, transparent 100%);
  filter:drop-shadow(0 1px 2px rgba(216,164,65,.35));
}

/* Refined quantity stepper — sleek glass pill, scaled to harmonise with price */
.qty-ctrl,.cart-item-qty{
  display:inline-flex;align-items:center;gap:0;
  background:linear-gradient(180deg,rgba(255,251,243,.95) 0%,rgba(255,233,194,.85) 100%);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  border-radius:999px;padding:3px;
  border:1px solid rgba(122,31,43,.15);
  box-shadow:
    0 3px 10px rgba(122,31,43,.10),
    inset 0 1px 0 rgba(255,255,255,.85),
    inset 0 -1px 0 rgba(122,31,43,.04);
  grid-row:2;grid-column:2;align-self:end;justify-self:start;
  margin-top:.3rem;
  user-select:none;
  position:relative;
}
.qty-ctrl::before,.cart-item-qty::before{
  content:"";position:absolute;inset:-1px;border-radius:999px;
  background:linear-gradient(135deg,rgba(216,164,65,.5),transparent 35%,transparent 65%,rgba(216,164,65,.35));
  z-index:-1;opacity:0;transition:opacity .25s ease;
  pointer-events:none;
}
.qty-ctrl:hover::before,.cart-item-qty:hover::before{opacity:1;}
.qty-btn{
  width:30px;height:30px;border-radius:50%;
  border:none;
  background:transparent;
  color:var(--burgundy);
  font-size:1.05rem;font-weight:900;cursor:pointer;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:transform .14s var(--ease), background .18s ease, box-shadow .18s ease, color .18s ease;
  -webkit-tap-highlight-color:transparent;
}
.qty-btn:hover{
  background:linear-gradient(135deg,var(--burgundy) 0%,var(--burgundy-dk) 100%);
  color:#fff;
  box-shadow:0 3px 10px rgba(122,31,43,.42), inset 0 1px 0 rgba(255,255,255,.18);
  transform:translateY(-1px) scale(1.05);
}
.qty-btn:active{
  transform:scale(.86);
  box-shadow:inset 0 2px 6px rgba(122,31,43,.3);
}
.qty-n,.qty-val{
  font-weight:800;font-size:.98rem;min-width:24px;text-align:center;color:var(--ink);
  font-family:var(--font-d);
  font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;
  padding:0 4px;letter-spacing:.01em;line-height:1;
  transition:transform .2s var(--ease), color .2s ease;
  display:inline-block;
}
.qty-val.bump{
  animation:qtyBump .38s cubic-bezier(.36,.07,.19,.97);
  color:var(--burgundy);
}
@keyframes qtyBump{
  0%{transform:scale(1)}
  35%{transform:scale(1.42) rotate(-4deg);color:var(--burgundy)}
  65%{transform:scale(.92) rotate(2deg)}
  100%{transform:scale(1) rotate(0)}
}

/* Mobile: keep tap targets generous, scale price slightly bigger to dominate */
@media(max-width:560px){
  .ci-price,.cart-item-price{font-size:1.32rem;}
  .qty-ctrl,.cart-item-qty{padding:4px;}
  .qty-btn{width:34px;height:34px;font-size:1.1rem;}
  .qty-n,.qty-val{font-size:1rem;min-width:26px;}
}

/* Dark theme adjustments */
body.theme-dark .ci-price,body.theme-dark .cart-item-price{
  background:linear-gradient(135deg, #E0623E 0%, #FF8A66 45%, #F8D285 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  filter:
    drop-shadow(0 1px 0 rgba(0,0,0,.45))
    drop-shadow(0 2px 6px rgba(224,98,62,.35));
}
body.theme-dark .ci-price::after,body.theme-dark .cart-item-price::after{
  background:linear-gradient(90deg, transparent 0%, rgba(248,210,133,.7) 30%, rgba(248,210,133,.95) 50%, rgba(248,210,133,.7) 70%, transparent 100%);
  filter:drop-shadow(0 1px 3px rgba(248,210,133,.4));
}
body.theme-dark .qty-ctrl,body.theme-dark .cart-item-qty{
  background:linear-gradient(180deg,rgba(42,27,17,.95) 0%,rgba(31,20,12,.9) 100%);
  border-color:rgba(239,185,88,.28);
  box-shadow:
    0 3px 10px rgba(0,0,0,.5),
    inset 0 1px 0 rgba(239,185,88,.12),
    inset 0 -1px 0 rgba(0,0,0,.3);
}
body.theme-dark .qty-ctrl::before,body.theme-dark .cart-item-qty::before{
  background:linear-gradient(135deg,rgba(248,210,133,.5),transparent 35%,transparent 65%,rgba(248,210,133,.35));
}
body.theme-dark .qty-btn{
  background:transparent;
  color:#FFB890;
}
body.theme-dark .qty-btn:hover{
  background:linear-gradient(135deg,var(--burgundy) 0%,var(--burgundy-dk) 100%);
  color:#fff;
  box-shadow:0 4px 14px rgba(224,98,62,.45), inset 0 1px 0 rgba(255,255,255,.2);
}
body.theme-dark .qty-btn:active{box-shadow:inset 0 2px 6px rgba(0,0,0,.5);}
body.theme-dark .qty-n,body.theme-dark .qty-val{color:#F4E5CC;}
body.theme-dark .qty-val.bump{color:#FF8A66;}

/* Footer breakdown */
.cd-foot,.cart-footer{
  padding:1rem 1.25rem 1.2rem;
  background:#FFFBF3;
  border-top:1px solid rgba(122,31,43,.1);
  box-shadow:0 -12px 28px -10px rgba(89,16,24,.1);
  flex-shrink:0;
}
.cd-breakdown{
  display:flex;flex-direction:column;gap:.45rem;
  margin-bottom:.85rem;
  padding-bottom:.85rem;border-bottom:1px dashed rgba(122,31,43,.22);
}
.cd-row{
  display:flex;justify-content:space-between;align-items:center;
  font-size:.84rem;color:#5E4A38;
}
.cd-row span:first-child{display:inline-flex;align-items:center;gap:.45rem;}
.cd-row svg{width:15px;height:15px;color:#8A3A1F;}
.cd-row .v{font-family:var(--font-d);font-weight:700;color:#1E1410;font-size:.92rem;}
.cd-row.free .v{color:#4F6B28;}

.cd-total,.cart-total{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:1rem;color:#1E1410;
}
.cd-total span:first-child,.cart-total span:first-child{
  font-weight:800;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;color:#5E4A38;
}
.cd-total strong,.cart-total strong{
  color:#C04A2B;font-family:var(--font-d);font-size:1.8rem;font-weight:800;letter-spacing:-.015em;
  line-height:1;
}

.cart-footer .btn-red,.cart-footer .btn-full{
  width:100%;padding:15px 22px;border-radius:14px;
  background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));color:#fff;
  font-weight:800;font-size:1rem;letter-spacing:.01em;
  box-shadow:0 10px 28px rgba(192,74,43,.32),inset 0 1px 0 rgba(255,255,255,.22);
  border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:.55rem;
  transition:transform .2s ease, box-shadow .2s ease;
  position:relative;overflow:hidden;
}
.cart-footer .btn-red::before,.cart-footer .btn-full::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.22) 50%,transparent 70%);
  transform:translateX(-100%);transition:transform .6s ease;
}
.cart-footer .btn-red:hover,.cart-footer .btn-full:hover{
  transform:translateY(-1px);box-shadow:0 14px 36px rgba(192,74,43,.4);
}
.cart-footer .btn-red:hover::before,.cart-footer .btn-full:hover::before{transform:translateX(100%);}
.cart-footer .btn-red svg,.cart-footer .btn-full svg{width:18px;height:18px;position:relative;z-index:1;}
.cart-footer .btn-red span,.cart-footer .btn-full span{position:relative;z-index:1;}
.cart-footer .cta-sub{
  text-align:center;font-size:.7rem;color:#8C7252;margin-top:.55rem;
  text-transform:uppercase;letter-spacing:.12em;font-weight:700;
  display:flex;align-items:center;justify-content:center;gap:.4rem;
}
.cart-footer .cta-sub svg{width:13px;height:13px;color:#6B7A3A;}

/* ── BUTTONS ─────────────────────────────────────────────── */
.btn{
  padding:12px 22px;border-radius:var(--radius-pill);
  border:none;font-family:var(--font-b);font-weight:700;font-size:.9rem;letter-spacing:.01em;
  transition:var(--transition);
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  cursor:pointer;text-decoration:none;
}
.btn-red,.btn-primary{
  background:linear-gradient(135deg, var(--burgundy), var(--burgundy-dk));
  color:#fff;
  box-shadow:0 6px 16px rgba(122,31,43,.3), inset 0 1px 0 rgba(255,255,255,.18);
}
.btn-red:hover,.btn-primary:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 24px rgba(122,31,43,.38), inset 0 1px 0 rgba(255,255,255,.2);
}
.btn-gold{
  background:linear-gradient(135deg, var(--saffron), var(--saffron-lt));
  color:var(--ink);
  box-shadow:0 6px 16px rgba(216,164,65,.3), inset 0 1px 0 rgba(255,255,255,.3);
}
.btn-gold:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(216,164,65,.4);}
.btn-outline{
  background:transparent;
  border:1.5px solid var(--burgundy);color:var(--burgundy);
}
.btn-outline:hover{background:var(--burgundy);color:#fff;}
.btn-full{width:100%;}
.btn-lg{padding:15px 30px;font-size:1rem;}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important;}

/* ═══ CHECKOUT MODAL — v3 "Osteria" ═══════════════════════════ */
.modal-overlay{
  display:none;position:fixed;inset:0;
  background:rgba(20,10,5,.55);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  z-index:3000;align-items:center;justify-content:center;
  padding:1rem;
  overflow:hidden;opacity:0;pointer-events:none;
  transition:opacity .3s ease;
}
.modal-overlay.open{display:flex;opacity:1;pointer-events:all;}
.modal{
  background:#FFFBF3;
  border-radius:24px;
  width:min(560px,100%);max-height:calc(100dvh - 2rem);
  overflow:hidden;
  box-shadow:0 40px 100px rgba(45,20,10,.4);
  transform:translateY(20px) scale(.97);
  transition:transform .4s var(--ease-smooth);
  display:flex;flex-direction:column;
  position:relative;
}
.modal-overlay.open .modal{transform:translateY(0) scale(1);}

/* Header — dark charcoal with eagle */
.modal-head,.modal-header{
  padding:1.2rem 1.4rem;
  background:
    radial-gradient(300px 160px at 85% -10%, rgba(216,164,65,.24) 0%, transparent 65%),
    linear-gradient(135deg,#2A1610 0%,#3D1F17 60%,#4A2415 100%);
  color:#FFF6E3;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  position:relative;flex-shrink:0;
}
.modal-head::after,.modal-header::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:3px;
  background:linear-gradient(90deg,transparent,#D8A441 30%,#E8B85A 50%,#D8A441 70%,transparent);
}
.modal-head h2,.modal-header h2{
  color:#FFF6E3;font-family:var(--font-d);font-size:1.35rem;font-weight:800;
  letter-spacing:-.01em;line-height:1.05;display:flex;align-items:center;gap:.6rem;
}
.modal-head h2::before,.modal-header h2::before{
  content:"";width:30px;height:30px;border-radius:50%;flex-shrink:0;
  background:radial-gradient(circle at 30% 28%,#8E2733 0%,var(--burgundy) 55%,#4A0E16 100%);
  box-shadow:0 2px 8px rgba(216,164,65,.32),inset 0 1px 0 rgba(255,255,255,.22);
}
.modal-x{
  background:rgba(255,246,227,.12);border:1px solid rgba(255,246,227,.22);color:#FFF6E3;
  width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:.9rem;
  cursor:pointer;transition:var(--transition);flex-shrink:0;
}
.modal-x:hover,.modal-header .cart-close-btn:hover{background:rgba(255,246,227,.22);transform:rotate(90deg);}

.modal-body{
  padding:1.4rem 1.4rem 1rem;
  display:flex;flex-direction:column;gap:1rem;
  overflow-y:auto;overflow-x:hidden;
  flex:1;min-height:0;
  background:linear-gradient(180deg,#FFFBF3 0%,#FFF4DC 100%);
}
.modal-body::-webkit-scrollbar{width:6px;}
.modal-body::-webkit-scrollbar-thumb{background:rgba(122,31,43,.2);border-radius:999px;}

.modal-foot,.modal-footer{
  padding:1rem 1.3rem 1.2rem;
  display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;
  background:#FFFBF3;
  border-top:1px solid rgba(122,31,43,.1);
  box-shadow:0 -12px 28px -10px rgba(89,16,24,.1);
  flex-shrink:0;
  padding-bottom:max(1.2rem,env(safe-area-inset-bottom));
}
.modal-foot .btn,.modal-footer .btn{flex:1;justify-content:center;}
.modal-foot .btn-outline,.modal-footer .btn-outline{flex:0 0 auto;min-width:90px;}

/* Step indicator — circular chips with SVG */
.steps,.step-indicator{
  display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:.4rem;
  position:relative;
}
.step-bar,.step{
  position:relative;
  width:34px;height:34px;border-radius:50%;
  background:#fff;color:#8C7252;
  border:2px solid rgba(122,31,43,.15);
  display:flex;align-items:center;justify-content:center;
  font-size:.85rem;font-weight:800;font-family:var(--font-d);
  flex:0 0 34px;
  transition:all .3s var(--ease);
  z-index:2;
}
.step-bar:not(:last-child),.step:not(:last-child){margin-right:48px;}
.step-bar:not(:last-child)::after,.step:not(:last-child)::after{
  content:"";position:absolute;left:100%;top:50%;
  width:48px;height:2px;background:rgba(122,31,43,.15);
  transform:translateY(-50%);z-index:1;
  transition:background .3s;
}
.step-bar:last-child::after,.step:last-child::after{display:none!important;}
.step-bar.on,.step.active{
  background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));color:#fff;border-color:var(--burgundy-dk);
  box-shadow:0 6px 18px rgba(192,74,43,.4);transform:scale(1.08);
}
.step-bar.done,.step.done{
  background:#6B7A3A;color:#fff;border-color:#5A6630;
}
.step-bar.done::after,.step.done::after{background:#6B7A3A;}

/* Step content card */
.step-card{
  background:#fff;
  border-radius:18px;
  border:1px solid rgba(122,31,43,.08);
  padding:1rem 1.05rem;
  box-shadow:0 3px 14px rgba(89,16,24,.06);
}
.step-card + .step-card{margin-top:.85rem;}
.step-card-label{
  font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;
  color:#5B1A12;margin-bottom:.7rem;font-family:var(--font-b);
  display:flex;align-items:center;gap:.5rem;
}
.step-card-label svg{width:15px;height:15px;color:#C04A2B;}

/* Selection tiles with SVG icon */
.sel-tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;}
.sel-tile{
  position:relative;
  cursor:pointer;user-select:none;
  padding:.85rem .85rem .85rem 3.4rem;
  border-radius:14px;
  border:1.5px solid rgba(122,31,43,.12);
  background:#FFFBF3;
  transition:var(--transition);
  min-height:72px;
  display:flex;flex-direction:column;justify-content:center;
}
.sel-tile::before{
  content:"";position:absolute;left:.7rem;top:50%;transform:translateY(-50%);
  width:34px;height:34px;border-radius:10px;
  background:linear-gradient(135deg,#FFEED1 0%,#FAD3B3 100%);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.sel-tile > svg{
  position:absolute;left:1.1rem;top:50%;transform:translateY(-50%);
  width:18px;height:18px;color:#5B1A12;z-index:1;pointer-events:none;
}
.sel-tile:hover{border-color:#C04A2B;transform:translateY(-1px);box-shadow:0 4px 12px rgba(192,74,43,.12);}
.sel-tile.on{
  border-color:#C04A2B;background:linear-gradient(135deg,#FFF4DC 0%,#FFE9CB 100%);
  box-shadow:0 6px 18px rgba(192,74,43,.18);
}
.sel-tile.on::before{background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));}
.sel-tile.on > svg{color:#fff;}
.sel-tile-title{font-weight:800;font-size:.94rem;color:#1E1410;font-family:var(--font-d);letter-spacing:-.005em;line-height:1.1;}
.sel-tile-sub{font-size:.72rem;color:#8C7252;margin-top:.2rem;line-height:1.35;}
.sel-tile-tick{
  position:absolute;top:.55rem;right:.6rem;
  width:20px;height:20px;border-radius:50%;
  background:#6B7A3A;color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:.65rem;font-weight:800;
  box-shadow:0 2px 6px rgba(107,122,58,.4);
  animation:tickPop .25s var(--ease-smooth);
}
@keyframes tickPop{from{transform:scale(0);}to{transform:scale(1);}}

/* ── FORM ────────────────────────────────────────────────── */
.fg,.form-group{display:flex;flex-direction:column;gap:6px;}
.fg label,.form-group label{
  font-weight:600;font-size:.82rem;color:var(--ink);
  font-family:var(--font-b);letter-spacing:.005em;
}
.fg input,.fg select,.fg textarea,
.form-group input,.form-group select,.form-group textarea{
  padding:11px 14px;border-radius:var(--radius-sm);
  border:1.5px solid var(--glass-border);
  font-family:var(--font-b);font-size:.95rem;
  color:var(--ink);
  background:rgba(255,255,255,.72);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transition:var(--transition);
}
.fg input:focus,.fg select:focus,.fg textarea:focus,
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  outline:none;border-color:var(--burgundy);
  box-shadow:0 0 0 4px var(--burgundy-lt);
  background:#fff;
}
.fg input.err,.fg select.err{border-color:#ef4444;}
.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}

/* ── ORDER TYPE TABS ─────────────────────────────────────── */
.ot-tabs{
  display:flex;gap:2px;
  background:var(--glass-border);
  border-radius:var(--radius-pill);overflow:hidden;padding:3px;
}
.ot-tab{
  flex:1;padding:11px;text-align:center;
  font-weight:700;font-size:.88rem;
  background:transparent;color:var(--ink-soft);
  transition:var(--transition);cursor:pointer;
  border:none;font-family:var(--font-b);border-radius:var(--radius-pill);
}
.ot-tab.on{background:var(--burgundy);color:#fff;box-shadow:0 3px 10px rgba(122,31,43,.3);}

/* ── PAYMENT OPTIONS ─────────────────────────────────────── */
.pay-opts{display:flex;flex-direction:column;gap:.65rem;}
.pay-opt,.payment-option{
  padding:14px;border-radius:var(--radius-sm);
  border:2px solid var(--glass-border);
  cursor:pointer;transition:var(--transition);
  background:rgba(255,255,255,.65);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  display:flex;align-items:flex-start;gap:.85rem;
}
.pay-opt:hover,.payment-option:hover{border-color:var(--burgundy);background:rgba(255,255,255,.85);}
.pay-opt.on,.payment-option.selected{
  border-color:var(--burgundy);
  background:linear-gradient(135deg, var(--burgundy-lt), rgba(216,164,65,.06));
  box-shadow:0 4px 12px rgba(122,31,43,.1);
}
.pay-icon{font-size:1.4rem;flex-shrink:0;}
.pay-label{font-size:.88rem;font-weight:700;color:var(--ink);}

/* ── ORDER SUMMARY ───────────────────────────────────────── */
.order-summary{
  background:var(--parchment);
  border-radius:var(--radius);
  padding:1.1rem 1.2rem;
  border:1px solid var(--glass-border);
  box-shadow:var(--shadow-sm);
}
.order-summary h4{
  font-family:var(--font-d);margin-bottom:.8rem;font-size:1.05rem;
  color:var(--ink);font-weight:700;letter-spacing:-.005em;
  padding-bottom:.5rem;border-bottom:1px dashed rgba(122,31,43,.15);
  display:flex;align-items:center;gap:.5rem;
}
.order-summary h4 svg{width:18px;height:18px;color:#C04A2B;}
.summary-item.summary-total{
  border-top:2px solid rgba(122,31,43,.2)!important;
  margin-top:.4rem;padding-top:.7rem!important;
  font-size:1.1rem!important;color:#C04A2B!important;
  font-family:var(--font-d)!important;
}
.order-summary h4{flex-wrap:wrap;}

/* ── Editable order summary rows (Step 1) ──────────────────── */
.summary-edit{
  display:grid;
  grid-template-columns:1fr auto 28px;
  align-items:center;
  gap:.55rem .7rem;
  padding:.6rem .15rem;
  border-bottom:1px dashed rgba(122,31,43,.10);
  animation:fadeIn .2s ease;
}
.summary-edit:last-of-type{border-bottom:none;padding-bottom:.4rem;}
.se-info{min-width:0;}
.se-name{
  font-weight:700;color:var(--ink);font-size:.96rem;line-height:1.2;
  font-family:var(--font-d);letter-spacing:-.005em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.se-size{
  font-size:.6rem;color:var(--burgundy);
  text-transform:uppercase;letter-spacing:.12em;font-weight:700;
  margin-top:3px;display:inline-block;
  background:rgba(216,164,65,.18);padding:1px 7px;border-radius:999px;
}
.se-actions{
  display:flex;align-items:center;gap:.55rem;
  justify-self:end;
}
.se-stepper{
  display:inline-flex;align-items:center;gap:0;
  background:linear-gradient(180deg,rgba(255,251,243,.95) 0%,rgba(255,233,194,.85) 100%);
  border:1px solid rgba(122,31,43,.16);
  border-radius:999px;padding:2px;
  box-shadow:0 2px 6px rgba(122,31,43,.08), inset 0 1px 0 rgba(255,255,255,.7);
}
.se-stepper button{
  width:24px;height:24px;border-radius:50%;border:none;
  background:transparent;color:var(--burgundy);
  font-size:.95rem;font-weight:900;cursor:pointer;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s ease;
  -webkit-tap-highlight-color:transparent;
}
.se-stepper button:hover{
  background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));
  color:#fff;box-shadow:0 2px 6px rgba(122,31,43,.32);
}
.se-stepper button:active{transform:scale(.85);}
.se-stepper span{
  min-width:22px;text-align:center;
  font-weight:800;font-family:var(--font-d);
  font-size:.92rem;color:var(--ink);padding:0 5px;
  font-variant-numeric:tabular-nums lining-nums;
}
.se-price{
  font-family:var(--font-d);font-weight:800;font-size:1.05rem;
  color:var(--burgundy);min-width:60px;text-align:right;
  font-variant-numeric:tabular-nums lining-nums;
  letter-spacing:-.005em;
}
.se-remove{
  width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;
  background:rgba(122,31,43,.08);color:var(--burgundy);
  font-size:.95rem;font-weight:700;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:all .18s ease;
  -webkit-tap-highlight-color:transparent;
  justify-self:end;
}
.se-remove:hover{
  background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));
  color:#fff;transform:scale(1.1);
  box-shadow:0 4px 10px rgba(122,31,43,.32);
}
.se-remove:active{transform:scale(.92);}

@media(max-width:480px){
  .summary-edit{grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.35rem .5rem;}
  .se-info{grid-column:1/2;grid-row:1;}
  .se-actions{grid-column:1/3;grid-row:2;justify-self:start;width:100%;justify-content:space-between;}
  .se-remove{grid-column:2/3;grid-row:1;align-self:start;}
}

/* Dark theme */
body.theme-dark .summary-edit{border-bottom-color:rgba(239,185,88,.12);}
body.theme-dark .se-name{color:#F0E2CC;}
body.theme-dark .se-size{background:rgba(239,185,88,.16);color:#FFB890;}
body.theme-dark .se-stepper{
  background:linear-gradient(180deg,rgba(42,27,17,.95) 0%,rgba(31,20,12,.9) 100%);
  border-color:rgba(239,185,88,.22);
  box-shadow:0 2px 6px rgba(0,0,0,.45), inset 0 1px 0 rgba(239,185,88,.1);
}
body.theme-dark .se-stepper button{color:#FFB890;}
body.theme-dark .se-stepper button:hover{
  background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));
  color:#fff;
}
body.theme-dark .se-stepper span{color:#F0E2CC;}
body.theme-dark .se-price{color:#FF8A66;}
body.theme-dark .se-remove{background:rgba(224,98,62,.16);color:#FFB890;}
body.theme-dark .se-remove:hover{background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));color:#fff;}

/* ── Free-delivery info card (replaces zone picker in checkout step 1) */
.delivery-info-card{
  display:flex !important;
  align-items:center;
  gap:1rem;
  background:linear-gradient(135deg, #EEF4D8 0%, #FBE6B8 100%) !important;
  border:1.5px solid rgba(107,122,58,.45) !important;
  border-radius:16px !important;
  padding:1rem 1.1rem !important;
  box-shadow:0 6px 18px rgba(107,122,58,.18), inset 0 1px 0 rgba(255,255,255,.55) !important;
  position:relative;
  min-height:74px;
}
.delivery-info-card .dic-icon{
  width:48px;height:48px;border-radius:14px;
  background:linear-gradient(135deg, #8FA04E 0%, #5A6630 100%);
  display:inline-flex;align-items:center;justify-content:center;
  color:#FFF8E8;
  box-shadow:0 6px 16px rgba(107,122,58,.42), inset 0 1px 0 rgba(255,255,255,.28);
  flex-shrink:0;
}
.delivery-info-card .dic-icon svg{width:24px;height:24px;}
.delivery-info-card .dic-text{
  flex:1 1 auto;min-width:0;
  display:flex;flex-direction:column;gap:3px;
}
.delivery-info-card .dic-title{
  font-family:var(--font-d);font-weight:800;font-size:1.08rem;
  color:#2F3A14;letter-spacing:-.005em;line-height:1.2;
}
.delivery-info-card .dic-sub{
  font-size:.78rem;color:#5A6630;font-weight:500;
  line-height:1.4;
}
.delivery-info-card .dic-badge{
  flex-shrink:0;
  background:linear-gradient(135deg, #7A8A48 0%, #4A5528 100%);
  color:#FFF8E8;font-weight:900;font-size:.68rem;letter-spacing:.14em;
  padding:7px 13px;border-radius:999px;text-transform:uppercase;
  box-shadow:0 5px 14px rgba(107,122,58,.5), inset 0 1px 0 rgba(255,255,255,.3);
  line-height:1;
}
body.theme-dark .delivery-info-card{
  background:linear-gradient(135deg, rgba(74,85,40,.4) 0%, rgba(58,38,24,.45) 100%) !important;
  border-color:rgba(156,176,95,.5) !important;
  box-shadow:0 6px 18px rgba(0,0,0,.4), inset 0 1px 0 rgba(239,185,88,.1) !important;
}
body.theme-dark .delivery-info-card .dic-title{color:#D4E3A4;}
body.theme-dark .delivery-info-card .dic-sub{color:#9CB05F;}
body.theme-dark .delivery-info-card .dic-icon{
  background:linear-gradient(135deg, #9CB05F 0%, #6B7A3A 100%);
  box-shadow:0 5px 14px rgba(156,176,95,.45), inset 0 1px 0 rgba(255,255,255,.18);
}
body.theme-dark .delivery-info-card .dic-badge{
  background:linear-gradient(135deg, #B5C779, #7A8A48);
  color:#1A1F0A;
  box-shadow:0 5px 14px rgba(156,176,95,.42), inset 0 1px 0 rgba(255,255,255,.32);
}

.co-info-delivery .co-info-icon{
  background:linear-gradient(135deg, #6B7A3A, #4A5528) !important;
  color:#FFF8E8 !important;
}
.co-info-delivery .co-info-label{color:#4A5528 !important;font-weight:800;}
body.theme-dark .co-info-delivery .co-info-label{color:#C5D89A !important;}

@media(max-width:480px){
  .delivery-info-card{padding:.85rem .9rem !important;gap:.75rem;}
  .delivery-info-card .dic-icon{width:42px;height:42px;border-radius:12px;}
  .delivery-info-card .dic-icon svg{width:20px;height:20px;}
  .delivery-info-card .dic-title{font-size:.98rem;}
  .delivery-info-card .dic-sub{font-size:.72rem;}
  .delivery-info-card .dic-badge{font-size:.6rem;padding:6px 10px;letter-spacing:.12em;}
}

/* ════════════════════════════════════════════════════════════
   CART + CHECKOUT — refined "printed trattoria slip" v4
   Quieter surfaces, slimmer type, tighter rhythm.
   ════════════════════════════════════════════════════════════ */

/* Cart drawer — slimmer header, gold hairline */
.cd-head,.cart-drawer-header{
  padding:1rem 1.25rem .9rem;
  background:linear-gradient(135deg,#1F110A 0%,#2D1810 55%,#3A1F15 100%);
}
.cd-head::after,.cart-drawer-header::after{
  height:1.5px;
  background:linear-gradient(90deg,transparent,rgba(216,164,65,.55) 30%,#E8B85A 50%,rgba(216,164,65,.55) 70%,transparent);
}
.cd-logo,.cd-logo-img{width:40px!important;height:40px!important;}
.cd-head h3,.cart-drawer-header h3{font-size:1.14rem;letter-spacing:-.01em;}
.cart-sub{
  font-size:.62rem;letter-spacing:.22em;color:#EBC36C;margin-top:4px;font-weight:600;
}
.cd-close,.cart-close-btn{width:30px;height:30px;font-size:.82rem;}

/* ASAP/Schedule mode pills — quieter, tighter */
.cd-mode{padding:.65rem 1.15rem;background:#FFF8E8;border-bottom-color:rgba(122,31,43,.06);}
.cd-mode-pill{padding:.45rem .75rem;font-size:.72rem;border-color:rgba(122,31,43,.08);}
.cd-mode-pill.on{
  background:linear-gradient(135deg,#F6D689 0%,#E8B85A 100%);
  box-shadow:0 3px 10px rgba(216,164,65,.28),inset 0 1px 0 rgba(255,255,255,.4);
}

/* Items list — receipt aesthetic */
.cd-items,.cart-items{
  background:#FFFBF3;
  padding:.85rem 1.1rem .5rem;
  gap:.5rem;
}

/* Vibrant cart-item rows — grid: [icon | name+size | ×]
                                  [icon | qty stepper | price] */
.cart-item{
  background:#fff;
  border-radius:16px;
  padding:.85rem .95rem .85rem 1.05rem;
  border:1px solid rgba(122,31,43,.06);
  box-shadow:0 3px 12px rgba(89,16,24,.05);
  display:grid;
  grid-template-columns:54px 1fr auto;
  grid-template-rows:auto 1fr;
  gap:.35rem .85rem;
  position:relative;
  transition:box-shadow .22s ease, transform .22s ease, border-color .22s ease;
  overflow:hidden;
}
.cart-item:hover{
  box-shadow:0 6px 20px rgba(89,16,24,.10);
  border-color:rgba(122,31,43,.14);
  transform:translateY(-1px);
}

/* Category accent stripe on the left edge */
.cart-item::before{
  content:"";position:absolute;left:0;top:8px;bottom:8px;
  width:4px;border-radius:0 4px 4px 0;
  background:linear-gradient(180deg,var(--burgundy),var(--burgundy-dk));
  opacity:.85;
}
.cart-item.cat-pizza::before{background:linear-gradient(180deg,#C04A2B 0%,#8A2F16 100%);box-shadow:0 0 12px rgba(192,74,43,.35);}
.cart-item.cat-kebab::before{background:linear-gradient(180deg,#C55A3C 0%,#8E2733 100%);box-shadow:0 0 12px rgba(197,90,60,.35);}
.cart-item.cat-fastfood::before{background:linear-gradient(180deg,#E8B85A 0%,#B8801F 100%);box-shadow:0 0 12px rgba(232,184,90,.4);}
.cart-item.cat-bevande::before{background:linear-gradient(180deg,#7A8A48 0%,#4A5528 100%);box-shadow:0 0 12px rgba(122,138,72,.35);}

/* Icon — bigger, vibrant, category-tinted gradient */
.ci-icon,.cart-item-icon{
  grid-row:1/3;grid-column:1;align-self:center;
  width:54px;height:54px;border-radius:13px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;flex-shrink:0;
  background:linear-gradient(135deg,#FFEED1 0%,#FAD3B3 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.7),
    inset 0 -1px 0 rgba(122,31,43,.06),
    0 3px 8px rgba(192,74,43,.14);
  position:relative;
}
.ci-icon.cat-pizza,.cart-item-icon.cat-pizza{background:linear-gradient(135deg,#FFE0CC,#FFB590);}
.ci-icon.cat-kebab,.cart-item-icon.cat-kebab{background:linear-gradient(135deg,#FCE1DA,#F8B7AA);}
.ci-icon.cat-fastfood,.cart-item-icon.cat-fastfood{background:linear-gradient(135deg,#FFE9C9,#FBC99C);}
.ci-icon.cat-bevande,.cart-item-icon.cat-bevande{background:linear-gradient(135deg,#E5EBC7,#B8C788);}
.cart-item-icon.has-photo{background:#fff;border:1px solid rgba(122,31,43,.1);padding:0;}
.ci-icon > svg,.cart-item-icon > svg{width:28px;height:28px;color:#5B1A12;filter:drop-shadow(0 1px 2px rgba(89,16,24,.15));}
.cart-item-photo{width:100%;height:100%;object-fit:cover;border-radius:12px;}

/* Info block — name + size pill */
.ci-info,.cart-item-info{
  grid-row:1;grid-column:2;
  align-self:center;min-width:0;
  padding-right:.3rem;
}
.ci-name,.cart-item-name{
  font-size:1rem;font-weight:700;
  font-family:var(--font-d);
  color:var(--ink);letter-spacing:-.005em;line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  text-rendering:optimizeLegibility;
}
.ci-size,.cart-item-size{
  display:inline-block;
  font-size:.6rem;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--burgundy);
  background:linear-gradient(135deg,rgba(216,164,65,.22),rgba(192,74,43,.10));
  padding:2px 9px;border-radius:999px;
  margin-top:5px;
  border:1px solid rgba(216,164,65,.28);
}

/* Remove button — top-right corner */
.cart-item-remove{
  grid-row:1;grid-column:3;
  align-self:start;justify-self:end;
  width:28px;height:28px;border-radius:50%;
  border:1px solid rgba(122,31,43,.1);cursor:pointer;
  background:rgba(122,31,43,.05);
  color:var(--burgundy);
  font-size:.85rem;font-weight:700;line-height:1;
  display:flex;align-items:center;justify-content:center;
  transition:all .18s ease;
  -webkit-tap-highlight-color:transparent;
  flex-shrink:0;
}
.cart-item-remove:hover{
  background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));
  color:#fff;border-color:var(--burgundy-dk);
  transform:scale(1.1);
  box-shadow:0 4px 12px rgba(122,31,43,.32);
}
.cart-item-remove:active{transform:scale(.92);}

/* Cart drawer breakdown rows */
.cd-row{padding:5px 0;font-size:.82rem;color:#5E4A38;}
.cd-row .v{font-size:.88rem;}

/* Cart total — refined gradient figure */
.cd-total,.cart-total{margin-bottom:.85rem;align-items:baseline;}
.cd-total span:first-child,.cart-total span:first-child{
  font-size:.7rem;letter-spacing:.18em;color:#7A6448;
}
.cd-total strong,.cart-total strong{
  font-size:1.7rem;font-style:italic;letter-spacing:-.012em;
  background:linear-gradient(135deg,#8A2F16 0%,var(--burgundy) 45%,#C55A3C 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.55)) drop-shadow(0 2px 4px rgba(122,31,43,.18));
}

/* Cart footer — tear-edge dashed border */
.cd-foot,.cart-footer{
  padding:.95rem 1.2rem 1.1rem;
  background:linear-gradient(180deg,#FFFBF3 0%,#FFF6E3 100%);
  border-top:1.5px dashed rgba(122,31,43,.18);
  box-shadow:0 -8px 22px -10px rgba(89,16,24,.08);
}

/* Refined CTA in cart */
.cart-footer .btn-red,.cart-footer .btn-full{
  padding:14px 22px;border-radius:13px;
  background:linear-gradient(135deg,var(--burgundy) 0%,var(--burgundy-dk) 100%);
  box-shadow:0 8px 22px rgba(122,31,43,.3),inset 0 1px 0 rgba(255,255,255,.18);
}
.cart-footer .cta-sub{font-size:.66rem;letter-spacing:.16em;color:#9A8866;}

/* ── CHECKOUT MODAL ─────────────────────────────────────── */
.modal{border-radius:22px;box-shadow:0 28px 80px rgba(45,20,10,.42);}
.modal-head,.modal-header{
  padding:.95rem 1.3rem;
  background:linear-gradient(135deg,#1F110A 0%,#2D1810 55%,#3A1F15 100%);
}
.modal-head::after,.modal-header::after{
  height:1.5px;
  background:linear-gradient(90deg,transparent,rgba(216,164,65,.55) 30%,#E8B85A 50%,rgba(216,164,65,.55) 70%,transparent);
}
.modal-head h2,.modal-header h2{font-size:1.14rem;letter-spacing:-.012em;}
.modal-head h2::before,.modal-header h2::before{width:26px;height:26px;}
.modal-x{width:30px;height:30px;font-size:.82rem;}
.modal-body{
  padding:1.15rem 1.25rem .85rem;
  gap:.85rem;
  background:linear-gradient(180deg,#FFFBF3 0%,#FFF6E3 100%);
}
.modal-foot,.modal-footer{
  padding:.85rem 1.25rem 1.05rem;
  background:#FFFBF3;
  border-top:1.5px dashed rgba(122,31,43,.18);
  box-shadow:none;
  padding-bottom:max(1.05rem,env(safe-area-inset-bottom));
}

/* Step indicator — slim, refined */
.steps,.step-indicator{margin-bottom:.55rem;gap:0;}
.step-bar,.step{
  width:30px;height:30px;border-radius:50%;
  background:#FFFBF3;color:#9A8866;
  border:1.5px solid rgba(122,31,43,.16);
  font-size:.78rem;
  flex:0 0 30px;
  transition:all .3s var(--ease);
}
.step-bar:not(:last-child),.step:not(:last-child){margin-right:38px;}
.step-bar:not(:last-child)::after,.step:not(:last-child)::after{
  width:38px;height:1.5px;background:rgba(122,31,43,.13);
}
.step-bar.on,.step.active{
  background:linear-gradient(135deg,var(--burgundy) 0%,var(--burgundy-dk) 100%);
  color:#fff;border-color:var(--burgundy-dk);
  box-shadow:0 4px 14px rgba(122,31,43,.35);transform:scale(1.06);
}
.step-bar.done,.step.done{
  background:linear-gradient(135deg,#8A9A4F 0%,#6B7A3A 100%);
  color:#fff;border-color:#6B7A3A;
  box-shadow:0 3px 10px rgba(107,122,58,.28);
}
.step-bar.done::after,.step.done::after{background:rgba(107,122,58,.45);}

/* Step cards — soft parchment */
.step-card{
  background:linear-gradient(180deg,#FFFBF3 0%,#FFF6E3 100%);
  border-radius:16px;
  border:1px solid rgba(122,31,43,.08);
  padding:.95rem 1rem;
  box-shadow:0 2px 10px rgba(89,16,24,.04);
}
.step-card + .step-card{margin-top:.7rem;}
.step-card-label{
  font-size:.66rem;letter-spacing:.18em;
  color:var(--burgundy-dk);
  margin-bottom:.6rem;font-weight:800;
}
.step-card-label svg{width:13px;height:13px;}

/* Selection tiles — slimmer, more refined */
.sel-tile{
  padding:.72rem .85rem .72rem 3.1rem;
  border-radius:12px;
  min-height:62px;
  border:1px solid rgba(122,31,43,.1);
  background:#fff;
  transition:transform .18s var(--ease), box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
.sel-tile::before{
  width:28px;height:28px;border-radius:8px;
  left:.6rem;
}
.sel-tile > svg{
  left:.95rem;width:16px;height:16px;
}
.sel-tile-title{font-size:.9rem;letter-spacing:-.005em;}
.sel-tile-sub{font-size:.7rem;line-height:1.4;}
.sel-tile:hover{
  border-color:rgba(192,74,43,.4);
  transform:translateY(-1px);
  box-shadow:0 5px 14px rgba(192,74,43,.1);
}
.sel-tile.on{
  border-color:var(--burgundy);
  background:linear-gradient(135deg,#FFFBF3 0%,#FFF1D9 100%);
  box-shadow:0 5px 14px rgba(192,74,43,.15);
}
.sel-tile-tick{width:18px;height:18px;font-size:.6rem;top:.5rem;right:.55rem;}

/* Order summary — printed slip with notch edges */
.order-summary{
  background:linear-gradient(180deg,#FFFBF3 0%,#FFF6E3 100%);
  border:1.5px dashed rgba(122,31,43,.2);
  border-radius:14px;
  padding:1rem 1.1rem;
  box-shadow:none;
  position:relative;
  margin-top:.4rem;
}
.order-summary::before,.order-summary::after{
  content:"";position:absolute;left:50%;width:14px;height:14px;
  border-radius:50%;
  background:linear-gradient(180deg,#FFFBF3 0%,#FFF6E3 100%);
  border:1.5px dashed rgba(122,31,43,.2);
  transform:translateX(-50%);
}
.order-summary::before{top:-8px;}
.order-summary::after{bottom:-8px;}
.order-summary h4{
  font-size:.92rem;letter-spacing:-.005em;
  padding-bottom:.5rem;border-bottom-style:dashed;
  border-bottom-color:rgba(122,31,43,.18);
}

/* Pay total banner on step 2 — quieter slip */
.pay-total-banner{
  background:linear-gradient(135deg,rgba(122,31,43,.04) 0%,rgba(216,164,65,.06) 100%) !important;
  border:1.5px dashed rgba(122,31,43,.18) !important;
  border-radius:14px !important;
  padding:.7rem 1rem !important;
  box-shadow:none !important;
}
.ptb-amount{
  font-style:italic;
  background:linear-gradient(135deg,#8A2F16 0%,var(--burgundy) 45%,#C55A3C 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.5)) drop-shadow(0 2px 4px rgba(122,31,43,.18));
}

/* Form inputs — softer, fuller */
.fg input,.fg select,.fg textarea,
.form-group input,.form-group select,.form-group textarea{
  padding:12px 14px;border-radius:11px;
  border:1.5px solid rgba(122,31,43,.12);
  background:#fff;
  font-size:.92rem;
}
.fg input:focus,.fg select:focus,.fg textarea:focus,
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  border-color:var(--burgundy);
  box-shadow:0 0 0 4px rgba(192,74,43,.10);
}

/* Outline button refinement */
.btn-outline{
  border:1.5px solid rgba(122,31,43,.4);
  color:var(--burgundy);
  background:transparent;
  font-weight:700;
}
.btn-outline:hover{
  background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));
  color:#fff;
  border-color:var(--burgundy-dk);
}

/* Modal-foot Avanti / Conferma button */
.modal-foot .btn-red,.modal-footer .btn-red{
  padding:13px 22px;border-radius:13px;
  background:linear-gradient(135deg,var(--burgundy) 0%,var(--burgundy-dk) 100%);
  box-shadow:0 6px 18px rgba(122,31,43,.28),inset 0 1px 0 rgba(255,255,255,.18);
}

/* Mobile fine-tuning */
@media(max-width:560px){
  .cd-head,.cart-drawer-header{padding:.85rem 1rem .75rem;}
  .cd-logo,.cd-logo-img{width:36px!important;height:36px!important;}
  .cd-head h3,.cart-drawer-header h3{font-size:1.06rem;}
  .modal{border-radius:22px 22px 0 0;}
  .modal-head,.modal-header{padding:.85rem 1.1rem;}
  .modal-body{padding:1rem 1.1rem .75rem;gap:.7rem;}
  .step-card{padding:.85rem .9rem;}
  .order-summary{padding:.85rem 1rem;}
  .order-summary h4 small{display:block;width:100%;margin-top:.2rem;margin-left:0!important;}
}

/* Dark theme — refinement layer */
body.theme-dark .cd-head,body.theme-dark .cart-drawer-header,
body.theme-dark .modal-head,body.theme-dark .modal-header{
  background:linear-gradient(135deg,#0E0805 0%,#1A0E08 55%,#22120A 100%);
}
body.theme-dark .cd-mode{background:rgba(36,26,18,.85);border-bottom-color:rgba(239,185,88,.1);}
body.theme-dark .cd-mode-pill{background:rgba(20,14,9,.85);color:#D4C0A2;border-color:rgba(239,185,88,.18);}
body.theme-dark .cd-mode-pill.on{
  background:linear-gradient(135deg,#F8D285,#EFB958);color:#1A0F08;border-color:#EFB958;
}
body.theme-dark .cd-items,body.theme-dark .cart-items{
  background:#1B130C;
}
body.theme-dark .cart-item{
  background:rgba(36,26,18,.92);
  border-color:rgba(239,185,88,.14);
  box-shadow:0 2px 10px rgba(0,0,0,.4);
}
body.theme-dark .cart-item:hover{box-shadow:0 6px 18px rgba(0,0,0,.55);}
body.theme-dark .cd-foot,body.theme-dark .cart-footer{
  background:linear-gradient(180deg,#1F160E 0%,#1B130C 100%);
  border-top-color:rgba(239,185,88,.18);
}
body.theme-dark .cd-row{color:#C9B59A;}
body.theme-dark .cd-row .v{color:#F0E2CC;}
body.theme-dark .cd-total span:first-child,body.theme-dark .cart-total span:first-child{color:#917D63;}
body.theme-dark .cd-total strong,body.theme-dark .cart-total strong{
  background:linear-gradient(135deg,#E0623E 0%,#FF8A66 45%,#F8D285 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 1px 0 rgba(0,0,0,.45)) drop-shadow(0 2px 6px rgba(224,98,62,.3));
}
body.theme-dark .step-card{
  background:linear-gradient(180deg,rgba(36,26,18,.85) 0%,rgba(20,14,9,.85) 100%);
  border-color:rgba(239,185,88,.16);
  box-shadow:0 2px 10px rgba(0,0,0,.4);
}
body.theme-dark .step-card-label{color:#FFB890;}
body.theme-dark .step-card-label svg{color:#FF8A66;}
body.theme-dark .sel-tile{background:rgba(36,26,18,.85);border-color:rgba(239,185,88,.18);}
body.theme-dark .sel-tile:hover{border-color:rgba(224,98,62,.5);}
body.theme-dark .sel-tile.on{
  border-color:#E0623E;
  background:linear-gradient(135deg,rgba(36,26,18,.95) 0%,rgba(58,38,24,.85) 100%);
  box-shadow:0 5px 14px rgba(224,98,62,.2);
}
body.theme-dark .sel-tile-title{color:#F4E5CC;}
body.theme-dark .sel-tile-sub{color:#C9B59A;}
body.theme-dark .order-summary{
  background:linear-gradient(180deg,rgba(36,26,18,.85) 0%,rgba(20,14,9,.85) 100%);
  border-color:rgba(239,185,88,.22);
}
body.theme-dark .order-summary::before,body.theme-dark .order-summary::after{
  background:linear-gradient(180deg,#1B130C 0%,#0F0805 100%);
  border-color:rgba(239,185,88,.22);
}
body.theme-dark .pay-total-banner{
  background:linear-gradient(135deg,rgba(239,185,88,.06) 0%,rgba(224,98,62,.06) 100%) !important;
  border-color:rgba(239,185,88,.22) !important;
}
body.theme-dark .ptb-amount{
  background:linear-gradient(135deg,#E0623E 0%,#FF8A66 45%,#F8D285 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 1px 0 rgba(0,0,0,.45)) drop-shadow(0 2px 6px rgba(224,98,62,.3));
}
body.theme-dark .modal-body{
  background:linear-gradient(180deg,#1B130C 0%,#150D07 100%);
}
body.theme-dark .modal-foot,body.theme-dark .modal-footer{
  background:#1B130C;border-top-color:rgba(239,185,88,.18);
}

/* Cart item names — were inheriting the light-mode dark color (#1E1410)
   which made them invisible against the dark cart background. */
body.theme-dark .ci-name,body.theme-dark .cart-item-name{color:#F4E5CC;}
body.theme-dark .ci-size,body.theme-dark .cart-item-size{
  background:rgba(239,185,88,.18);color:#F8D285;
}
body.theme-dark .ci-icon,body.theme-dark .cart-item-icon{
  background:linear-gradient(135deg,#3A271A 0%,#2A1B11 100%);
  box-shadow:
    inset 0 1px 0 rgba(239,185,88,.14),
    inset 0 -1px 0 rgba(0,0,0,.3),
    0 3px 8px rgba(0,0,0,.4);
}
body.theme-dark .ci-icon.cat-pizza,body.theme-dark .cart-item-icon.cat-pizza{background:linear-gradient(135deg,#4A2516,#2E1408);}
body.theme-dark .ci-icon.cat-kebab,body.theme-dark .cart-item-icon.cat-kebab{background:linear-gradient(135deg,#4A2018,#2E0E0A);}
body.theme-dark .ci-icon.cat-fastfood,body.theme-dark .cart-item-icon.cat-fastfood{background:linear-gradient(135deg,#4A3318,#2E1F0A);}
body.theme-dark .ci-icon.cat-bevande,body.theme-dark .cart-item-icon.cat-bevande{background:linear-gradient(135deg,#2D3818,#1A220A);}
body.theme-dark .ci-icon > svg,body.theme-dark .cart-item-icon > svg,
body.theme-dark .cart-item-fallback svg{color:#FFB890;}
body.theme-dark .cart-item-remove{
  background:rgba(239,185,88,.08);color:#FFB890;
  border-color:rgba(239,185,88,.22);
}
body.theme-dark .cart-item-remove:hover{
  background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));
  color:#fff;border-color:var(--burgundy-dk);
}
body.theme-dark .ci-size,body.theme-dark .cart-item-size{
  background:linear-gradient(135deg,rgba(239,185,88,.16),rgba(224,98,62,.12));
  border-color:rgba(239,185,88,.3);color:#F8D285;
}
body.theme-dark .cd-empty,body.theme-dark .cart-empty{color:#917D63;}
body.theme-dark .cd-empty h4{color:#F4E5CC;}

/* Homepage features section — themable surface (replaces removed inline style) */
.home-sec-feat{
  background:rgba(255,249,238,.45);
  border-top:1px solid var(--glass-border);
  border-bottom:1px solid var(--glass-border);
}
body.theme-dark .home-sec-feat{
  background:linear-gradient(180deg,rgba(20,14,9,.5) 0%,rgba(36,26,18,.4) 100%);
  border-color:rgba(239,185,88,.14);
}

/* ── CHECKOUT EXTRAS ─────────────────────────────────────── */
/* Total banner above payment tiles */
.pay-total-banner{
  display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(135deg,#FFF4DC 0%,#FFE9CB 100%);
  border:1.5px dashed #D8A441;
  border-radius:14px;padding:.8rem 1rem;margin-bottom:.85rem;
}
.ptb-label{font-size:.7rem;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:#5B1A12;font-family:var(--font-b);}
.ptb-amount{font-family:var(--font-d);font-size:1.55rem;font-weight:800;
  color:#C04A2B;letter-spacing:-.01em;}

/* Disabled "coming soon" sel-tile + badge */
.sel-tile.sel-tile-disabled{
  cursor:not-allowed;border-style:dashed;background:#FAF3E5;
  opacity:.78;margin-top:.6rem;
}
.sel-tile.sel-tile-disabled:hover{transform:none;border-color:rgba(122,31,43,.18);box-shadow:none;}
.sel-tile.sel-tile-disabled::before{background:linear-gradient(135deg,#E8DCC8,#D8CBB3);}
.sel-tile.sel-tile-disabled > svg{color:#8C7252;}
.sel-tile-badge{
  position:absolute;top:.55rem;right:.6rem;
  background:linear-gradient(135deg,#F6D689,#E8B85A);
  color:#5B1A12;font-size:.6rem;font-weight:800;
  padding:.22rem .55rem;border-radius:50px;
  letter-spacing:.08em;text-transform:uppercase;
  box-shadow:0 2px 6px rgba(216,164,65,.4);
}

/* Constrain stray SVGs inside alerts so they never balloon */
.alert > svg,.alert svg{width:18px;height:18px;flex-shrink:0;vertical-align:middle;}
.alert{display:flex;align-items:center;gap:.5rem;}

/* Floating-label inputs — clean, modern, no overlapping icons */
.fg-float{position:relative;display:block;}
.fg-float input,
.fg-float textarea,
.fg-float select{
  width:100%;
  padding:1.35rem 1rem .55rem;
  border-radius:14px;
  border:1.5px solid rgba(122,31,43,.15);
  background:#fff;
  font-family:var(--font-b);font-size:.95rem;color:#1E1410;
  transition:border-color .2s,box-shadow .2s;
  appearance:none;
}
.fg-float textarea{resize:vertical;min-height:80px;padding-top:1.5rem;}
.fg-float input:focus,
.fg-float textarea:focus,
.fg-float select:focus{
  outline:none;border-color:#C04A2B;
  box-shadow:0 0 0 4px rgba(192,74,43,.12);
}
.fg-float > label{
  position:absolute;left:1rem;top:1rem;
  font-size:.92rem;color:#9C8770;font-weight:500;
  pointer-events:none;
  transition:all .18s var(--ease);
  background:transparent;padding:0 .25rem;
  font-family:var(--font-b);
}
.fg-float input:focus + label,
.fg-float input:not(:placeholder-shown) + label,
.fg-float textarea:focus + label,
.fg-float textarea:not(:placeholder-shown) + label{
  top:-.5rem;left:.85rem;
  font-size:.68rem;font-weight:700;
  color:#C04A2B;
  background:#fff;
  letter-spacing:.04em;text-transform:uppercase;
}
/* Required asterisk */
.fg-float .req{color:#C04A2B;margin-left:.15rem;}
/* Hint line under input */
.fg-hint{font-size:.7rem;color:#8C7252;margin-top:.35rem;padding-left:.25rem;}

/* Compact info card (pickup destination / scheduled-for chip) */
.co-info-card{
  display:flex;align-items:center;gap:.85rem;
  padding:.85rem 1rem;border-radius:14px;
  background:linear-gradient(135deg,#F2F5E5 0%,#E5EBC8 100%);
  border:1px solid rgba(107,122,58,.25);
  margin-bottom:.85rem;
}
.co-info-icon{
  width:42px;height:42px;border-radius:12px;flex-shrink:0;
  background:linear-gradient(135deg,#8BA147,#6B7A3A);
  color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 10px rgba(107,122,58,.25);
}
.co-info-icon svg{width:22px;height:22px;}
.co-info-text{flex:1;min-width:0;}
.co-info-label{font-size:.66rem;font-weight:800;letter-spacing:.14em;
  text-transform:uppercase;color:#4A5528;font-family:var(--font-b);
  margin-bottom:.1rem;}
.co-info-value{font-family:var(--font-d);font-size:1rem;font-weight:800;
  color:#1E2410;letter-spacing:-.005em;line-height:1.2;}
.co-info-sub{font-size:.74rem;color:#5F6648;margin-top:.1rem;}

/* Modal-foot buttons with SVG icons (arrow/check/back) */
.modal-foot .btn,.modal-footer .btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  padding:.85rem 1.2rem;font-size:.95rem;font-weight:700;
}
.modal-foot .btn svg,.modal-footer .btn svg{width:18px;height:18px;flex-shrink:0;}

/* Order summary inside checkout — small tweak to fit new modal vibe */
.modal-body .order-summary{
  background:linear-gradient(135deg,#FFFBF3 0%,#FFF4DC 100%);
  border:1px solid rgba(192,74,43,.15);
}

/* ── MOBILE: bottom-sheet checkout ───────────────────────── */
@media(max-width:560px){
  .modal-overlay{padding:0;align-items:flex-end;}
  .modal{
    width:100%;max-width:100%;
    max-height:92dvh;
    border-radius:22px 22px 0 0;
    transform:translateY(100%);
  }
  .modal-overlay.open .modal{transform:translateY(0);}
  .modal-head,.modal-header{padding:1rem 1.1rem;border-radius:22px 22px 0 0;}
  .modal-head h2,.modal-header h2{font-size:1.18rem;}
  .modal-head h2::before,.modal-header h2::before{width:26px;height:26px;}
  .modal-body{padding:1.1rem 1.1rem .8rem;}
  .modal-foot,.modal-footer{padding:.85rem 1.1rem;
    padding-bottom:max(1rem,env(safe-area-inset-bottom));}
  .modal-foot .btn,.modal-footer .btn{padding:.85rem .9rem;font-size:.9rem;}
  .step-card{padding:.85rem .9rem;border-radius:16px;}
  .sel-tile-grid{gap:.5rem;}
  .sel-tile{padding:.7rem .7rem .7rem 3.1rem;min-height:64px;}
  .sel-tile-title{font-size:.88rem;}
  .sel-tile-sub{font-size:.68rem;}
  .ptb-amount{font-size:1.35rem;}
  .step-bar:not(:last-child)::after,.step:not(:last-child)::after{width:34px;}
  .step-bar,.step{width:30px;height:30px;flex-basis:30px;font-size:.78rem;}
}
.sum-row,.summary-item{
  display:flex;justify-content:space-between;padding:6px 0;
  font-size:.88rem;color:var(--ink);
  border-bottom:1px solid rgba(122,31,43,.06);
}
.sum-row:last-child,.summary-item:last-child{
  border:none;font-weight:800;font-size:1.02rem;color:var(--burgundy);
  font-family:var(--font-d);padding-top:.7rem;margin-top:.2rem;
  border-top:2px solid rgba(122,31,43,.15);
}

/* ── ALERTS ──────────────────────────────────────────────── */
.alert{
  padding:11px 15px;border-radius:var(--radius-sm);
  font-size:.85rem;font-weight:500;line-height:1.45;
}
.alert-info{background:rgba(33,150,243,.08);color:#1565c0;border:1px solid rgba(33,150,243,.2);}
.alert-warn,.alert-warning{background:rgba(216,164,65,.12);color:#7a5200;border:1px solid rgba(216,164,65,.3);}
.alert-ok,.alert-success{background:rgba(107,122,58,.1);color:#4A5528;border:1px solid rgba(107,122,58,.25);}
.alert-error{background:rgba(122,31,43,.08);color:var(--burgundy);border:1px solid rgba(122,31,43,.2);}

/* ── TOAST ───────────────────────────────────────────────── */
.toast-wrap,.toast-container{
  position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;
  display:flex;flex-direction:column;gap:.6rem;pointer-events:none;
}
.toast{
  background:var(--glass-bg-dark);
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  color:#fff;padding:12px 20px;
  border-radius:var(--radius-sm);
  font-size:.86rem;font-weight:500;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 12px 36px rgba(0,0,0,.28);
  display:flex;align-items:center;gap:10px;
  animation:toastIn .3s var(--ease), toastOut .3s ease 2.6s forwards;
  max-width:320px;pointer-events:auto;
}
.toast.ok,.toast.success{border-left:3px solid var(--olive);}
.toast.err,.toast.error{border-left:3px solid var(--burgundy);}
@keyframes toastIn{from{opacity:0;transform:translateX(30px) scale(.95);}to{opacity:1;transform:translateX(0) scale(1);}}
@keyframes toastOut{to{opacity:0;transform:translateX(30px);}}

/* ── FOOTER ──────────────────────────────────────────────── */
footer{
  background:linear-gradient(180deg, var(--ink) 0%, #1E170E 100%);
  color:rgba(255,247,232,.75);
  padding:4rem 5% 2rem;
  position:relative;
}
footer::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg, transparent, var(--saffron) 50%, transparent);
}
.footer-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:2.5rem;}
.footer-brand-logo{display:block;width:108px;height:108px;object-fit:contain;margin-bottom:.85rem;filter:drop-shadow(0 4px 14px rgba(0,0,0,.35));}
.footer-brand h3{font-family:var(--font-d);font-size:1.5rem;color:#fff;margin-bottom:.5rem;font-weight:700;letter-spacing:-.005em;}
.footer-brand p{font-size:.86rem;line-height:1.7;opacity:.65;}
.footer-col h4{color:var(--saffron);font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;margin-bottom:1rem;font-weight:700;}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:.5rem;}
.footer-col li,.footer-col a{font-size:.84rem;opacity:.78;transition:opacity .2s;}
.footer-col a:hover{opacity:1;color:var(--saffron);}
.footer-social{display:flex;gap:10px;margin-top:1rem;}
.footer-social a{
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:center;
  font-size:.88rem;font-weight:700;transition:var(--transition);
}
.footer-social a:hover{background:var(--burgundy);border-color:var(--burgundy);color:#fff;transform:translateY(-2px);}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.08);
  margin-top:2.75rem;padding-top:1.5rem;
  text-align:center;font-size:.78rem;opacity:.45;
}

/* ── UTILITIES ───────────────────────────────────────────── */
.hidden{display:none!important;}
.fade-up{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.25,.8,.25,1),transform .7s cubic-bezier(.25,.8,.25,1);}
.fade-up.visible{opacity:1;transform:translateY(0);}

/* ============================================================
   AMBIENT ANIMATIONS — subtle motion that gives the page life
   ============================================================ */
/* Drifting hero background gradient (10% movement, very slow) */
@keyframes pvHeroDrift{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(-2%,1.4%) scale(1.05);}
}
.home-hero::before{animation:pvHeroDrift 18s ease-in-out infinite;}
.home-hero::after{animation:pvHeroDrift 22s ease-in-out -9s infinite;}

/* Floating "CONSEGNA Gratis" badge */
@keyframes pvBadgeFloat{
  0%,100%{transform:rotate(-3deg) translateY(0);}
  50%{transform:rotate(-1deg) translateY(-5px);}
}
.hh-badge{animation:pvBadgeFloat 3.6s ease-in-out infinite;will-change:transform;}

/* Hero gold accent underline — gentle scale pulse */
@keyframes pvAccentPulse{
  0%,100%{opacity:.45;transform:scaleX(1);}
  50%{opacity:.78;transform:scaleX(1.04);}
}
.hh-title .accent::after{
  transform-origin:left center;
  animation:pvAccentPulse 4.2s ease-in-out infinite;
}

/* Stagger reveal — children of fade-up.visible cascade in */
.fade-up.visible > *{
  animation:pvSlideUp .65s cubic-bezier(.25,.8,.25,1) backwards;
}
.fade-up.visible > *:nth-child(1){animation-delay:.05s;}
.fade-up.visible > *:nth-child(2){animation-delay:.13s;}
.fade-up.visible > *:nth-child(3){animation-delay:.21s;}
.fade-up.visible > *:nth-child(4){animation-delay:.29s;}
.fade-up.visible > *:nth-child(5){animation-delay:.37s;}
.fade-up.visible > *:nth-child(6){animation-delay:.45s;}
@keyframes pvSlideUp{
  from{opacity:0;transform:translateY(14px);}
  to{opacity:1;transform:translateY(0);}
}

/* Category card — emoji bobs on hover */
@keyframes pvCatBob{
  0%,100%{transform:scale(1) translateY(0) rotate(0);}
  20%{transform:scale(1.12) translateY(-3px) rotate(-6deg);}
  45%{transform:scale(1) translateY(0) rotate(4deg);}
  70%{transform:scale(1.06) translateY(-2px) rotate(-2deg);}
}
.cat-card:hover .cat-emoji{animation:pvCatBob 1.4s cubic-bezier(.36,.07,.19,.97);}

/* Cat-card link arrow — slight slide loop */
@keyframes pvLinkArrow{
  0%,100%{transform:translateX(0);}
  60%{transform:translateX(4px);}
}
.cat-card:hover .cat-link::after{animation:pvLinkArrow 1.1s ease-in-out infinite;}

/* Hero meta numbers — counter target reveal */
.hh-meta-num{
  display:inline-block;
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
}

/* Bottom-nav active item — gentle saffron halo pulse */
@keyframes pvBnPulse{
  0%{box-shadow:0 4px 12px rgba(122,31,43,.35), inset 0 1px 0 rgba(255,255,255,.18), 0 0 0 0 rgba(216,164,65,.55);}
  60%{box-shadow:0 4px 12px rgba(122,31,43,.4), inset 0 1px 0 rgba(255,255,255,.18), 0 0 0 8px rgba(216,164,65,0);}
  100%{box-shadow:0 4px 12px rgba(122,31,43,.35), inset 0 1px 0 rgba(255,255,255,.18), 0 0 0 0 rgba(216,164,65,0);}
}
.bottom-nav a.active{animation:pvBnPulse 2.8s ease-in-out infinite 1.5s;}

/* Cart drawer items — soft slide-in stagger when drawer opens */
@keyframes pvCartItemIn{
  from{opacity:0;transform:translateX(20px);}
  to{opacity:1;transform:translateX(0);}
}
.cart-drawer.open .cart-item{
  animation:pvCartItemIn .4s cubic-bezier(.25,.8,.25,1) backwards;
}
.cart-drawer.open .cart-item:nth-child(1){animation-delay:.04s;}
.cart-drawer.open .cart-item:nth-child(2){animation-delay:.10s;}
.cart-drawer.open .cart-item:nth-child(3){animation-delay:.16s;}
.cart-drawer.open .cart-item:nth-child(4){animation-delay:.22s;}
.cart-drawer.open .cart-item:nth-child(5){animation-delay:.28s;}
.cart-drawer.open .cart-item:nth-child(n+6){animation-delay:.34s;}

/* Primary CTA — soft gold halo on hover */
.btn-red.btn-lg,.cart-footer .btn-red,.cart-footer .btn-full{position:relative;}
.btn-red.btn-lg::after{
  content:"";position:absolute;inset:-4px;border-radius:inherit;
  background:radial-gradient(closest-side,rgba(216,164,65,.45),transparent 70%);
  opacity:0;transition:opacity .35s ease;z-index:-1;pointer-events:none;
}
.btn-red.btn-lg:hover::after{opacity:1;}

/* Fly-to-cart clone — tiny pulse so motion feels alive */
@keyframes pvFlyPulse{
  0%{filter:drop-shadow(0 4px 8px rgba(122,31,43,.4));}
  50%{filter:drop-shadow(0 6px 14px rgba(216,164,65,.6));}
  100%{filter:drop-shadow(0 4px 8px rgba(122,31,43,.4));}
}
.cart-fly{animation:pvFlyPulse .9s ease-in-out;}

/* Respect users who prefer reduced motion */
@media(prefers-reduced-motion:reduce){
  .home-hero::before,.home-hero::after,
  .hh-badge,
  .hh-title .accent::after,
  .fade-up.visible > *,
  .bottom-nav a.active,
  .cat-card:hover .cat-emoji,
  .cat-card:hover .cat-link::after,
  .cart-drawer.open .cart-item,
  .cart-fly{
    animation:none!important;
  }
  .fade-up{transition:opacity .35s ease,transform .35s ease;}
}

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media(max-width:960px){
  .two-col{grid-template-columns:1fr;}
  .sticky-sidebar{display:none;}
}
@media(max-width:768px){
  .navbar{top:10px;padding:0 6px 0 14px;width:calc(100% - 20px);}
  .nav-links{display:none;}
  .hamburger{display:flex;}
  .nav-brand-text{font-size:1.02rem;}
  .nav-brand-text span{font-size:.55rem;}
  .pizza-grid,.item-grid,.ic-grid{grid-template-columns:1fr;}
  .form-row-2{grid-template-columns:1fr;}
  footer{padding:3rem 1.25rem 1.5rem;}
  .modal-body{padding:1.1rem 1.25rem;}
  .modal-head,.modal-header{padding:1.1rem 1.25rem;}
  .modal-foot,.modal-footer{padding:.8rem 1.25rem 1.2rem;}
  .page-hero{padding:calc(var(--nav-h) + 2rem) 5% 2rem;}
}
@media(max-width:480px){
  #langPickerNav .lang-btn{min-width:28px;padding:0 6px;font-size:.64rem;}
  .menu-tab,.menu-tab-link{padding:.85rem 1rem;font-size:.8rem;}
  .cart-btn,.cart-fab{width:40px;height:40px;}
}

/* ============================================================
   THEME TOGGLE — sun/moon round button (desktop) + drawer row (mobile)
   ============================================================ */
.theme-btn{
  position:relative;flex-shrink:0;
  background:linear-gradient(135deg,rgba(216,164,65,.18),rgba(122,31,43,.08));
  border:1.5px solid var(--saffron);
  width:38px;height:38px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;transition:var(--transition);
  color:#7A4A18;
  box-shadow:0 3px 10px rgba(216,164,65,.25), inset 0 1px 0 rgba(255,255,255,.4);
}
.theme-btn:hover{background:rgba(216,164,65,.32);transform:translateY(-1px) rotate(-12deg);}
.theme-btn svg{width:18px;height:18px;}
.theme-btn .ti-moon{display:block;}
.theme-btn .ti-sun{display:none;}
body.theme-dark .theme-btn{background:linear-gradient(135deg,rgba(239,185,88,.22),rgba(224,98,62,.14));border-color:#F8D285;color:#F8D285;}
body.theme-dark .theme-btn .ti-moon{display:none;}
body.theme-dark .theme-btn .ti-sun{display:block;}

/* On small screens: hide inline theme-btn (we use the drawer row instead) */
@media(max-width:768px){
  .nav-right .theme-btn{display:none;}
}

/* Mobile drawer — actions row (lang + theme together) */
.drawer-actions{
  display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  margin:.6rem 0 .25rem;padding:0 .25rem;
}
.theme-row{
  flex:1 1 0;min-width:0;
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  padding:8px 12px;border-radius:var(--radius-pill);
  background:linear-gradient(135deg,rgba(216,164,65,.18),rgba(122,31,43,.08));
  border:1.5px solid var(--saffron);
  color:#7A4A18;font-family:var(--font-b);font-size:.78rem;font-weight:700;
  cursor:pointer;transition:var(--transition);
  letter-spacing:.02em;
}
.theme-row:hover{background:rgba(216,164,65,.3);}
.theme-row svg{width:16px;height:16px;}
.theme-row .ti-moon,.theme-row .theme-row-light{display:inline-flex;align-items:center;}
.theme-row .ti-sun,.theme-row .theme-row-dark{display:none;}
body.theme-dark .theme-row{background:linear-gradient(135deg,rgba(239,185,88,.2),rgba(224,98,62,.14));border-color:#F8D285;color:#F8D285;}
body.theme-dark .theme-row .ti-moon,body.theme-dark .theme-row .theme-row-light{display:none;}
body.theme-dark .theme-row .ti-sun,body.theme-dark .theme-row .theme-row-dark{display:inline-flex;}

/* ============================================================
   MOBILE BOTTOM NAV (icons-only quick switcher, <=768px)
   ============================================================ */
.bottom-nav{
  display:none;
  position:fixed;left:10px;right:10px;
  bottom:max(10px,env(safe-area-inset-bottom));
  z-index:1000;
  background:var(--glass-bg-strong);
  -webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border-soft);
  border-radius:18px;
  padding:6px;
  box-shadow:var(--shadow-lg), var(--shadow-inset);
  justify-content:space-around;align-items:center;
  gap:2px;
}
.bottom-nav a{
  flex:1 1 0;min-width:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:2px;padding:7px 4px;
  font-size:.6rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--ink-soft);border-radius:12px;line-height:1;
  transition:var(--transition);text-align:center;
}
.bottom-nav a svg{width:20px;height:20px;display:block;}
.bottom-nav a:hover{color:var(--burgundy);}
.bottom-nav a.active{
  color:#fff;
  background:linear-gradient(135deg,var(--burgundy) 0%,var(--burgundy-dk) 100%);
  box-shadow:0 4px 12px rgba(122,31,43,.35), inset 0 1px 0 rgba(255,255,255,.18);
}
.bottom-nav a span{display:block;}
@media(max-width:768px){
  .bottom-nav{display:flex;}
  body{padding-bottom:78px;}
  /* keep cart drawer / footer above bottom nav */
  footer{padding-bottom:5rem;}
}

/* ============================================================
   MOBILE — compact menu cards & navbar trim
   ============================================================ */
@media(max-width:768px){
  /* Tighter pizza cards */
  .pizza-grid{gap:.85rem;}
  .pc-head,.pizza-card-head{padding:.7rem .85rem;gap:9px;}
  .pc-num,.pizza-num{min-width:26px;height:26px;font-size:.72rem;border-radius:8px;}
  .pc-name,.pizza-name{font-size:1.05rem;line-height:1.18;}
  .pc-body,.pizza-card-body{padding:.7rem .85rem;gap:8px;}
  .pc-ing,.pizza-ingredients{font-size:.78rem;line-height:1.45;}
  .pc-sizes,.pizza-size-price{gap:6px;}
  .sz-btn,.size-btn{padding:7px 8px;font-size:.74rem;border-radius:11px;}
  .sz-price{font-size:.8rem;}
  .add-btn,.add-to-cart-btn{padding:9px;font-size:.84rem;border-radius:11px;}

  /* Tighter item cards (.ic) — single price only via sizes/footer */
  .ic-grid,.item-grid{gap:.85rem;}
  .ic-img{height:118px;}
  .ic-name{font-size:.98rem;padding:.6rem .85rem .3rem;}
  .ic-desc{font-size:.74rem;padding:.45rem .85rem .35rem;}
  .ic-sizes{padding:.45rem .85rem;gap:5px;}
  .ic-sz{padding:6px 3px 7px;}
  .ic-sz .ic-sz-lbl{font-size:.6rem;}
  .ic-sz .ic-sz-price{font-size:.78rem;}
  .ic-footer,.item-card-footer{padding:.6rem .85rem .8rem;justify-content:space-between;gap:.5rem;}
  .ic-add,.item-add-btn{padding:7px 14px;font-size:.76rem;flex-shrink:0;}
  /* Hide duplicate total when size pills already show prices (mobile only) */
  .ic-sizes ~ .ic-footer .ic-price,
  .ic-sizes ~ .ic-footer .item-price{display:none;}
  .ic-price,.item-price{font-size:1rem;min-width:0;padding-left:.1rem;}

  /* Free up header — drop subtitle on small screens */
  .nav-brand-text span,.nav-brand-name small{display:none;}

  /* Compact search bar on menu pages */
  .search-wrap,.search-bar{margin-bottom:1rem;}
  .search-wrap input,.search-bar input{padding:9px 14px 9px 36px;font-size:.86rem;}
  .filter-pills,.filter-tabs{gap:5px;margin-bottom:1rem;}
  .pill,.filter-tab{padding:5px 11px;font-size:.74rem;}
}
@media(max-width:420px){
  /* Even tighter: hide language pill from nav (still in drawer) */
  #langPickerNav{display:none;}
  .nav-brand-text,.nav-brand-name{font-size:.95rem;}
  .nav-logo,.nav-logo-circle{width:40px;height:40px;}
  .nav-logo-img{width:42px;height:42px;}
  .navbar{gap:6px;padding:0 6px 0 10px;}
}

/* ============================================================
   DARK THEME — espresso warmth, terracotta + saffron accents
   Activated by adding `theme-dark` class to <body>
   ============================================================ */
body.theme-dark{
  --burgundy:#E0623E;
  --burgundy-dk:#B8431F;
  --burgundy-lt:rgba(224,98,62,.14);
  --burgundy-line:rgba(224,98,62,.28);

  --saffron:#EFB958;
  --saffron-lt:#F8D285;
  --gold-bg:rgba(239,185,88,.16);

  --olive:#9CB05F;

  --ink:#F0E2CC;
  --ink-soft:#C9B59A;
  --ink-xs:#917D63;

  --cream:#1B130C;
  --peach:#2A1D12;
  --peach-lt:#241810;
  --parchment:#1F160E;

  --red:var(--burgundy);
  --red-dk:var(--burgundy-dk);
  --red-lt:var(--burgundy-lt);
  --gold:var(--saffron);
  --gold-lt:var(--saffron-lt);
  --dark:var(--ink);
  --dark2:#0F0A06;
  --text:var(--ink);
  --text-lt:var(--ink-soft);
  --text-xs:var(--ink-xs);
  --border:var(--burgundy-line);

  --glass-bg:rgba(36,26,18,.62);
  --glass-bg-strong:rgba(30,22,15,.85);
  --glass-bg-dark:rgba(15,10,6,.92);
  --glass-border:rgba(239,185,88,.18);
  --glass-border-soft:rgba(239,185,88,.12);

  --shadow-sm:0 2px 10px rgba(0,0,0,.4);
  --shadow:0 6px 24px rgba(0,0,0,.5), 0 2px 6px rgba(0,0,0,.35);
  --shadow-lg:0 18px 50px rgba(0,0,0,.6), 0 6px 20px rgba(0,0,0,.4);
  --shadow-hover:0 22px 60px rgba(224,98,62,.28), 0 8px 24px rgba(0,0,0,.5);
  --shadow-red:var(--shadow-hover);
  --shadow-inset:inset 0 1px 0 rgba(255,235,200,.06);

  background:
    radial-gradient(1200px 780px at 70% -5%, #3A1D14 0%, rgba(58,29,20,0) 55%),
    radial-gradient(1000px 700px at -10% 40%, #2A1810 0%, rgba(42,24,16,0) 55%),
    radial-gradient(900px 600px at 50% 105%, #1F1208 0%, rgba(31,18,8,0) 60%),
    linear-gradient(180deg, #150E08 0%, #100A06 55%, #0B0704 100%);
  background-attachment:fixed;
  color:var(--ink);
}
body.theme-dark::selection{background:var(--burgundy);color:#fff;}

/* Brand & nav */
body.theme-dark .nav-brand-name,body.theme-dark .nav-brand-text{color:#F8D285;}
body.theme-dark .nav-brand-text span,body.theme-dark .nav-brand-name small{color:#EFB958;}
body.theme-dark .nav-links a{color:#D4C0A2;}
body.theme-dark .nav-links a:hover{color:#FFB890;background:rgba(239,185,88,.12);}
body.theme-dark .nav-links a.active{
  color:#1A0F08;
  background:linear-gradient(135deg,#F8D285 0%,#EFB958 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 2px 8px rgba(239,185,88,.35);
}
body.theme-dark .hamburger span{background:#F0E2CC;}
body.theme-dark .lang-btn{color:#D4C0A2;}
body.theme-dark .lang-btn:hover{color:#FFB890;background:rgba(239,185,88,.1);}
body.theme-dark .lang-btn.active-lang{background:var(--burgundy);color:#fff;}

/* Page hero / breadcrumb */
body.theme-dark .page-hero{
  background:
    radial-gradient(700px 400px at 90% 0%, rgba(239,185,88,.12) 0%, transparent 60%),
    radial-gradient(600px 360px at 5% 50%, rgba(224,98,62,.10) 0%, transparent 60%),
    linear-gradient(180deg, transparent 0%, rgba(20,14,9,.4) 100%);
}
body.theme-dark .page-hero h1{color:#F4E5CC;}
body.theme-dark .page-hero h1 em,body.theme-dark .page-hero h1 span{color:#FF8A66;}
body.theme-dark .page-hero p{color:#C9B59A;}
body.theme-dark .breadcrumb{color:#917D63;}
body.theme-dark .breadcrumb a{color:#FFB890;}

/* Tabs / pills / search */
body.theme-dark .menu-tabs{background:rgba(20,14,9,.85);border-bottom-color:rgba(239,185,88,.12);}
body.theme-dark .menu-tab,body.theme-dark .menu-tab-link{color:#C9B59A;}
body.theme-dark .menu-tab:hover,body.theme-dark .menu-tab-link:hover{color:#FFB890;}
body.theme-dark .menu-tab.active,body.theme-dark .menu-tab-link.active{
  color:#FFB890;border-bottom-color:#E0623E;
}
body.theme-dark .pill,body.theme-dark .filter-tab{background:rgba(36,26,18,.7);color:#D4C0A2;border-color:rgba(239,185,88,.18);}
body.theme-dark .pill:hover,body.theme-dark .filter-tab:hover{border-color:#E0623E;color:#FFB890;}
body.theme-dark .pill.active,body.theme-dark .filter-tab.active{background:var(--burgundy);border-color:var(--burgundy);color:#fff;}
body.theme-dark .search-wrap input,body.theme-dark .search-bar input{
  background:rgba(20,14,9,.7);color:#F0E2CC;border-color:rgba(239,185,88,.18);
}
body.theme-dark .search-wrap input::placeholder,body.theme-dark .search-bar input::placeholder{color:#917D63;}
body.theme-dark .search-wrap input:focus,body.theme-dark .search-bar input:focus{
  background:rgba(36,26,18,.95);border-color:#E0623E;
}

/* Section / category */
body.theme-dark .section-tag{background:rgba(224,98,62,.12);color:#FFB890;border-color:rgba(224,98,62,.28);}
body.theme-dark .section-title,body.theme-dark .cat-heading h2{color:#F4E5CC;}
body.theme-dark .section-title em,body.theme-dark .section-title span{color:#FF8A66;}
body.theme-dark .cat-heading hr{border-top-color:rgba(239,185,88,.18);}
body.theme-dark .cat-box{background:rgba(28,20,14,.7);border-color:rgba(239,185,88,.14);}
body.theme-dark .cat-box-head{background:linear-gradient(135deg,#1F140C,#2A1B11);color:#F8D285;}
body.theme-dark .cat-list a{color:#C9B59A;}
body.theme-dark .cat-list a:hover{background:rgba(224,98,62,.1);color:#FFB890;}
body.theme-dark .cat-list a.active{background:rgba(224,98,62,.16);color:#FFB890;border-left-color:#E0623E;}

/* Pizza cards */
body.theme-dark .pizza-card{background:#231811;border-color:rgba(239,185,88,.14);box-shadow:0 8px 22px rgba(0,0,0,.45);}
body.theme-dark .pizza-card:hover{box-shadow:0 18px 40px rgba(224,98,62,.2);border-color:rgba(224,98,62,.35);}
body.theme-dark .pc-head,body.theme-dark .pizza-card-head{
  background:linear-gradient(135deg,#2A1B12 0%,#3A271A 100%);
  border-bottom-color:rgba(239,185,88,.1);
}
body.theme-dark .pc-num,body.theme-dark .pizza-num{background:var(--burgundy);box-shadow:0 3px 8px rgba(224,98,62,.4);}
body.theme-dark .pc-name,body.theme-dark .pizza-name{color:#F4E5CC;}
body.theme-dark .pc-ing,body.theme-dark .pizza-ingredients{color:#C9B59A;}
body.theme-dark .pc-ing strong,body.theme-dark .pizza-ingredients strong{color:#917D63;}
body.theme-dark .sz-btn,body.theme-dark .size-btn{
  background:#1A120B;color:#E8D6BB;border-color:rgba(239,185,88,.18);
}
body.theme-dark .sz-btn:hover,body.theme-dark .size-btn:hover{
  background:rgba(224,98,62,.14);color:#FFB890;border-color:#E0623E;
}
body.theme-dark .sz-btn.sel,body.theme-dark .size-btn.selected{
  background:var(--burgundy);color:#fff;border-color:var(--burgundy);box-shadow:0 4px 10px rgba(224,98,62,.4);
}
body.theme-dark .add-btn,body.theme-dark .add-to-cart-btn,
body.theme-dark .ic-add,body.theme-dark .item-add-btn{
  background:var(--burgundy);border-color:var(--burgundy);box-shadow:0 4px 12px rgba(224,98,62,.32);
}
body.theme-dark .add-btn:hover,body.theme-dark .add-to-cart-btn:hover,
body.theme-dark .ic-add:hover,body.theme-dark .item-add-btn:hover{
  background:#FF7A52;border-color:#FF7A52;
}
body.theme-dark .add-btn.done,body.theme-dark .add-to-cart-btn.done,
body.theme-dark .ic-add.done,body.theme-dark .item-add-btn.done{
  background:#7AB04E;border-color:#7AB04E;box-shadow:0 4px 12px rgba(122,176,78,.35);
}

/* Item cards */
body.theme-dark .ic,body.theme-dark .item-card{
  background:rgba(28,20,14,.78);border-color:rgba(239,185,88,.14);box-shadow:0 8px 22px rgba(0,0,0,.45);
}
body.theme-dark .ic:hover,body.theme-dark .item-card:hover{box-shadow:0 18px 40px rgba(224,98,62,.18);border-color:rgba(224,98,62,.32);}
body.theme-dark .ic-img{background:linear-gradient(135deg,#2A1C13,#3A2618)!important;border-bottom-color:rgba(239,185,88,.08);}
body.theme-dark .ic-img.ic-img-photo{background:#0B0704!important;}
body.theme-dark .ic-name{
  background:linear-gradient(135deg,rgba(58,38,24,.6),rgba(72,48,30,.4));
  color:#F4E5CC;border-bottom-color:rgba(239,185,88,.1);
}
body.theme-dark .ic-desc{color:#C9B59A;}
body.theme-dark .ic-sz{background:#1A120B;color:#E8D6BB;border-color:rgba(239,185,88,.18);}
body.theme-dark .ic-sz .ic-sz-lbl{color:#C9B59A;}
body.theme-dark .ic-sz .ic-sz-price{color:#FF8A66;}
body.theme-dark .ic-sz:hover{background:rgba(224,98,62,.14);border-color:#E0623E;}
body.theme-dark .ic-sz.active{background:var(--burgundy);border-color:var(--burgundy);}
body.theme-dark .ic-sz.active .ic-sz-lbl,body.theme-dark .ic-sz.active .ic-sz-price{color:#fff;}
body.theme-dark .ic-footer,body.theme-dark .item-card-footer{border-top-color:rgba(239,185,88,.12);}
body.theme-dark .ic-price,body.theme-dark .item-price{color:#FF8A66;}

/* Top badge stays gold but with darker text */
body.theme-dark .ic.is-top,body.theme-dark .pizza-card.is-top{
  border-color:#EFB958!important;box-shadow:0 8px 22px rgba(239,185,88,.25),0 4px 10px rgba(0,0,0,.4)!important;
}

/* Cart drawer + modals */
body.theme-dark .cart-drawer,body.theme-dark .modal{background:#1B130C;color:#F0E2CC;border-color:rgba(239,185,88,.12);}
body.theme-dark .modal-overlay{background:rgba(0,0,0,.65);}
body.theme-dark .modal-head,body.theme-dark .modal-header{background:linear-gradient(135deg,#1F160E 0%,#2A1B11 100%);color:#F0E2CC;border-bottom-color:rgba(239,185,88,.12);}
body.theme-dark .modal-foot,body.theme-dark .modal-footer{background:#1B130C;border-top-color:rgba(239,185,88,.1);}
body.theme-dark .step-card,body.theme-dark .sel-tile,body.theme-dark .pay-opt,body.theme-dark .payment-option{
  background:rgba(36,26,18,.55);border-color:rgba(239,185,88,.14);color:#E8D6BB;
}
body.theme-dark .sel-tile.selected,body.theme-dark .pay-opt.selected,body.theme-dark .payment-option.selected{
  background:rgba(224,98,62,.16);border-color:#E0623E;
}
body.theme-dark .pay-label{color:#F0E2CC;}
body.theme-dark .ot-tab{color:#C9B59A;}
body.theme-dark .ot-tab.on{background:var(--burgundy);color:#fff;box-shadow:0 3px 10px rgba(224,98,62,.4);}
body.theme-dark .sum-row,body.theme-dark .summary-item{color:#E8D6BB;border-bottom-color:rgba(239,185,88,.08);}
body.theme-dark .sum-row:last-child,body.theme-dark .summary-item:last-child{color:#FF8A66;border-top-color:rgba(239,185,88,.18);}

/* Inputs */
body.theme-dark input,body.theme-dark textarea,body.theme-dark select{
  background:#1F160E!important;color:#F0E2CC;border-color:rgba(239,185,88,.18);
}
body.theme-dark input::placeholder,body.theme-dark textarea::placeholder{color:#917D63;}
body.theme-dark input:focus,body.theme-dark textarea:focus,body.theme-dark select:focus{
  border-color:#E0623E;background:#2A1B11!important;box-shadow:0 0 0 3px rgba(224,98,62,.18);
}
body.theme-dark label{color:#D4C0A2;}

/* Buttons */
body.theme-dark .btn-outline{border-color:#E0623E;color:#FFB890;}
body.theme-dark .btn-outline:hover{background:#E0623E;color:#fff;}

/* Alerts */
body.theme-dark .alert-info{background:rgba(96,165,250,.14);color:#9DC4FF;border-color:rgba(96,165,250,.3);}
body.theme-dark .alert-warn,body.theme-dark .alert-warning{background:rgba(239,185,88,.16);color:#F8D285;border-color:rgba(239,185,88,.32);}
body.theme-dark .alert-ok,body.theme-dark .alert-success{background:rgba(156,176,95,.14);color:#C5D89A;border-color:rgba(156,176,95,.3);}
body.theme-dark .alert-error{background:rgba(224,98,62,.14);color:#FF8A66;border-color:rgba(224,98,62,.32);}

/* Toast */
body.theme-dark .toast{background:rgba(15,10,6,.95);border-color:rgba(239,185,88,.15);color:#F0E2CC;}

/* Mobile drawer / bottom nav */
body.theme-dark .mobile-drawer,body.theme-dark .mobile-nav{background:rgba(20,14,9,.92);border-color:rgba(239,185,88,.14);}
body.theme-dark .mobile-drawer a,body.theme-dark .mobile-nav a{color:#E8D6BB;}
body.theme-dark .mobile-drawer a:hover,body.theme-dark .mobile-nav a:hover{background:rgba(224,98,62,.14);color:#FFB890;}
body.theme-dark .bottom-nav{background:rgba(20,14,9,.85);border-color:rgba(239,185,88,.18);}
body.theme-dark .bottom-nav a{color:#C9B59A;}
body.theme-dark .bottom-nav a:hover{color:#FFB890;}
body.theme-dark .bottom-nav a.active{
  background:linear-gradient(135deg,var(--burgundy) 0%,var(--burgundy-dk) 100%);
  color:#fff;box-shadow:0 4px 12px rgba(224,98,62,.4),inset 0 1px 0 rgba(255,255,255,.18);
}

/* Theme toggle button */
body.theme-dark .theme-btn{background:rgba(239,185,88,.12);border-color:rgba(239,185,88,.22);color:#F8D285;}
body.theme-dark .theme-btn:hover{background:rgba(239,185,88,.22);border-color:#EFB958;}

/* Cart button stays vivid */
body.theme-dark .cart-btn,body.theme-dark .cart-fab{background:var(--burgundy);box-shadow:0 4px 14px rgba(224,98,62,.45),inset 0 1px 0 rgba(255,255,255,.18);}
body.theme-dark .cart-btn:hover,body.theme-dark .cart-fab:hover{background:#FF7A52;}
body.theme-dark .cart-count,body.theme-dark .cart-badge{background:var(--saffron);color:#1A0F08;border-color:#1B130C;}

/* Footer */
body.theme-dark footer{background:linear-gradient(180deg,#0B0704 0%,#080502 100%);color:rgba(245,230,210,.7);}
body.theme-dark .footer-col h4{color:#F8D285;}
body.theme-dark .footer-brand h3{color:#F4E5CC;}
body.theme-dark .footer-social a{background:rgba(255,235,200,.06);border-color:rgba(239,185,88,.16);color:#E8D6BB;}
body.theme-dark .footer-social a:hover{background:var(--burgundy);border-color:var(--burgundy);color:#fff;}
body.theme-dark .footer-bottom{border-top-color:rgba(239,185,88,.1);}

/* Misc surfaces */
body.theme-dark .navbar{background:rgba(20,14,9,.78);border-color:rgba(239,185,88,.14);box-shadow:0 14px 38px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,235,200,.05);}
body.theme-dark .navbar.scrolled{background:rgba(15,10,6,.92);}
body.theme-dark .lang-picker{background:rgba(239,185,88,.08);border-color:rgba(239,185,88,.18);}
body.theme-dark .qty-btn{color:#E8D6BB;}
body.theme-dark .qty-btn:hover{background:#2A1B11;color:#FFB890;}

/* ============================================================
   HOMEPAGE — dark overrides for hero slider + category tiles
   ============================================================ */
/* Hero copy */
body.theme-dark .hh-title{color:#F4E5CC;}
body.theme-dark .hh-title em,body.theme-dark .hh-title .accent{color:#FF8A66;}
body.theme-dark .hh-title .accent::after{background:rgba(239,185,88,.32);}
body.theme-dark .hh-sub{color:#C9B59A;}
body.theme-dark .hh-meta{border-top-color:rgba(239,185,88,.22);}
body.theme-dark .hh-meta-num{color:#FF8A66;}
body.theme-dark .hh-meta-lbl{color:#917D63;}

/* Hero slider cards */
body.theme-dark .hh-slide{
  background:linear-gradient(155deg, var(--bgD, #2D1E14) 0%, var(--bgD2, #3F2A1A) 100%);
  border-color:rgba(239,185,88,.18);
  box-shadow:
    0 50px 90px -22px rgba(0,0,0,.6),
    0 18px 40px -8px rgba(224,98,62,.18),
    inset 0 1px 0 rgba(255,235,200,.08);
}
body.theme-dark .hh-slide-disc{
  background:
    radial-gradient(circle at 32% 28%, rgba(255,235,200,.22) 0%, rgba(255,235,200,0) 60%),
    radial-gradient(circle at 50% 50%, rgba(58,38,24,.85) 0%, rgba(36,24,16,.95) 100%);
  box-shadow:inset 0 -8px 18px rgba(0,0,0,.4);
  filter:drop-shadow(0 16px 28px rgba(0,0,0,.5));
}
body.theme-dark .hh-slide-name{color:#F4E5CC;}
body.theme-dark .hh-slide-tag{color:#F8D285;}
body.theme-dark .hh-slide-price{
  background:linear-gradient(135deg,#E0623E,#FF7A52);color:#FFF6E0;
  box-shadow:0 8px 18px rgba(224,98,62,.4);
}
body.theme-dark .hh-arrow{
  background:rgba(36,26,18,.85);border-color:rgba(239,185,88,.25);color:#F8D285;
  box-shadow:0 8px 22px rgba(0,0,0,.5);
}
body.theme-dark .hh-arrow:hover{background:#E0623E;color:#FFF6E0;border-color:#E0623E;}
body.theme-dark .hh-dot{background:rgba(239,185,88,.25);}
body.theme-dark .hh-dot.on{background:#E0623E;box-shadow:0 4px 10px rgba(224,98,62,.45);}
body.theme-dark .hh-badge{
  background:linear-gradient(135deg,#F8D285,#EFB958);color:#1A0F08;
  box-shadow:0 8px 18px rgba(239,185,88,.32), inset 0 1px 0 rgba(255,255,255,.4);
}

/* Info strip */
body.theme-dark .info-strip{background:rgba(20,14,9,.7);border-color:rgba(239,185,88,.14);}
body.theme-dark .info-strip-inner{color:#C9B59A;}
body.theme-dark .info-strip-item strong{color:#F4E5CC;}
body.theme-dark .info-strip-item svg{color:#FF8A66;}
body.theme-dark .info-strip-sep{background:rgba(239,185,88,.22);}

/* Home section copy */
body.theme-dark .home-sec-head p{color:#C9B59A;}

/* Category tiles — colored but darker, warm hued */
body.theme-dark .cat-card{
  border-color:rgba(239,185,88,.16);
  box-shadow:0 10px 30px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,235,200,.06);
}
body.theme-dark .cat-card:hover{box-shadow:0 18px 40px rgba(224,98,62,.25);}
body.theme-dark .cat-card::after{background:rgba(239,185,88,.06);}
body.theme-dark .cat-card.cc-pizza {background:linear-gradient(135deg,#3D2A18 0%,#5A3F22 100%);}
body.theme-dark .cat-card.cc-kebab {background:linear-gradient(135deg,#3D241F 0%,#5A3429 100%);}
body.theme-dark .cat-card.cc-ff    {background:linear-gradient(135deg,#3A2620 0%,#523029 100%);}
body.theme-dark .cat-card.cc-drinks{background:linear-gradient(135deg,#3D2D18 0%,#5A4424 100%);}
body.theme-dark .cat-name{color:#F4E5CC;}
body.theme-dark .cat-desc{color:#C9B59A;}
body.theme-dark .cat-link{color:#FFB890;}

/* Feature grid cards */
body.theme-dark .feat{background:rgba(36,26,18,.62);border-color:rgba(239,185,88,.14);}
body.theme-dark .feat-icon{background:rgba(224,98,62,.16);color:#FF8A66;}
body.theme-dark .feat-title{color:#F4E5CC;}
body.theme-dark .feat-desc{color:#C9B59A;}

/* ============================================================
   CHECKOUT UPSELL — "You might also like" recommendation strip
   ============================================================ */
.upsell-card{
  background:linear-gradient(135deg,rgba(216,164,65,.12),rgba(192,74,43,.06)) !important;
  border:1.5px dashed rgba(216,164,65,.45) !important;
  position:relative;overflow:visible;
}
.upsell-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:.7rem;}
.upsell-title{
  font-family:var(--font-d);font-weight:800;font-size:1.05rem;
  color:var(--ink);letter-spacing:-.005em;line-height:1.2;
}
.upsell-sub{font-size:.74rem;color:var(--ink-soft);margin-top:.15rem;font-weight:500;}
.upsell-strip{
  display:flex;gap:.7rem;
  overflow-x:auto;overflow-y:hidden;
  margin:0 -.4rem;padding:.3rem .4rem .55rem;
  scroll-snap-type:x mandatory;
  -ms-overflow-style:none;scrollbar-width:none;
}
.upsell-strip::-webkit-scrollbar{display:none;}
.upsell-card-mini{
  flex:0 0 138px;scroll-snap-align:start;
  background:#FFFBF3;
  border-radius:16px;
  border:1px solid rgba(122,31,43,.1);
  box-shadow:0 4px 12px rgba(122,31,43,.06);
  display:flex;flex-direction:column;
  padding:.55rem;gap:.45rem;
  position:relative;
  transition:transform .2s var(--ease), box-shadow .2s ease, border-color .2s ease;
}
.upsell-card-mini:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 22px rgba(122,31,43,.14);
  border-color:rgba(216,164,65,.55);
}
.upsell-tag{
  position:absolute;top:6px;left:6px;z-index:2;
  background:linear-gradient(135deg,#E8B85A 0%,#D8A441 100%);
  color:#5B1A12;font-weight:800;font-size:.55rem;
  letter-spacing:.08em;padding:2px 6px;border-radius:999px;
  box-shadow:0 2px 6px rgba(216,164,65,.4), inset 0 1px 0 rgba(255,255,255,.5);
  pointer-events:none;text-transform:uppercase;line-height:1;
}
.upsell-img{
  width:100%;aspect-ratio:1.15/1;
  border-radius:12px;
  background:linear-gradient(135deg,#FFEED1 0%,#FAD3B3 100%);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;flex-shrink:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
}
.upsell-img img{width:100%;height:100%;object-fit:cover;}
.upsell-img svg{width:88%;height:88%;display:block;filter:drop-shadow(0 3px 6px rgba(89,16,24,.15));}
.upsell-img-svg{padding:4px;}
.upsell-emoji{font-size:2.4rem;line-height:1;filter:drop-shadow(0 3px 6px rgba(89,16,24,.18));}
.upsell-name{
  font-family:var(--font-d);font-weight:700;font-size:.86rem;
  color:var(--ink);line-height:1.18;letter-spacing:-.005em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;min-height:2.2em;
}
.upsell-foot{
  display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin-top:auto;
}
.upsell-price{
  font-family:var(--font-d);font-weight:800;font-size:1rem;
  color:var(--burgundy);letter-spacing:-.01em;
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
}
.upsell-add{
  width:32px;height:32px;border-radius:50%;
  border:none;cursor:pointer;flex-shrink:0;
  background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));
  color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  box-shadow:0 4px 10px rgba(122,31,43,.32), inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .15s var(--ease), box-shadow .2s ease, background .2s ease;
  -webkit-tap-highlight-color:transparent;
}
.upsell-add svg{width:16px;height:16px;}
.upsell-add:hover{
  transform:translateY(-1px) scale(1.06);
  box-shadow:0 6px 16px rgba(122,31,43,.45);
}
.upsell-add:active{transform:scale(.9);}
.upsell-add.added{
  background:linear-gradient(135deg,#7AB04E,#5C8A3A);
  box-shadow:0 4px 10px rgba(107,122,58,.4);
}

/* Mobile compact tweaks */
@media(max-width:560px){
  .upsell-card-mini{flex:0 0 130px;}
  .upsell-name{font-size:.82rem;}
  .upsell-price{font-size:.95rem;}
}

/* Dark theme */
body.theme-dark .upsell-card{
  background:linear-gradient(135deg,rgba(239,185,88,.1),rgba(224,98,62,.08)) !important;
  border-color:rgba(239,185,88,.35) !important;
}
body.theme-dark .upsell-title{color:#F4E5CC;}
body.theme-dark .upsell-sub{color:#C9B59A;}
body.theme-dark .upsell-card-mini{
  background:rgba(36,26,18,.85);
  border-color:rgba(239,185,88,.18);
  box-shadow:0 6px 18px rgba(0,0,0,.5);
}
body.theme-dark .upsell-card-mini:hover{
  border-color:rgba(239,185,88,.5);
  box-shadow:0 12px 26px rgba(224,98,62,.25);
}
body.theme-dark .upsell-img{background:linear-gradient(135deg,#2A1C13,#3A2618);}
body.theme-dark .upsell-name{color:#F4E5CC;}
body.theme-dark .upsell-price{color:#FF8A66;}

/* ============================================================
   FLY-TO-CART ANIMATION (item flies from card to cart icon)
   ============================================================ */
.cart-fly{
  position:fixed;z-index:9999;pointer-events:none;
  width:54px;height:54px;border-radius:50%;
  background:linear-gradient(135deg,var(--burgundy),var(--burgundy-dk));
  border:2px solid var(--saffron);
  box-shadow:0 10px 28px rgba(122,31,43,.5), 0 4px 12px rgba(216,164,65,.4);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
  transition:transform .9s cubic-bezier(.55,-.05,.4,1.1), opacity .9s ease;
  font-size:1.5rem;
  will-change:transform,opacity;
}
.cart-fly img,.cart-fly svg{
  width:100%;height:100%;object-fit:cover;border-radius:50%;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));
}
@keyframes cartBump{
  0%{transform:scale(1) rotate(0)}
  35%{transform:scale(1.32) rotate(-10deg)}
  60%{transform:scale(.9) rotate(8deg)}
  100%{transform:scale(1) rotate(0)}
}
.cart-btn.cart-bump,.bottom-nav a.cart-bump,#bottomCart.cart-bump,.cart-fab.cart-bump{
  animation:cartBump .55s cubic-bezier(.36,.07,.19,.97);
}
/* Make the badge pop too */
@keyframes cartBadgePop{
  0%{transform:scale(1)}50%{transform:scale(1.55);background:var(--olive);color:#fff}100%{transform:scale(1)}
}
.cart-btn.cart-bump .cart-badge,.cart-btn.cart-bump .cart-count{
  animation:cartBadgePop .55s ease;
}
