/* ==========================================================
   Market Slice — shared styles
   Palette and type lifted from the Claude Design source.
   ========================================================== */

:root{
  --cream-out:#E8DFC9;
  --cream-box:#F7F2E4;
  --red:#C33227;
  --red-dark:#9C271E;
  --green:#1B7A52;
  --green-dark:#13593B;
  --muted:#8C8371;
  --ink:#1E1B16;

  --slab:'Zilla Slab',Georgia,serif;
  --script:'Pacifico',cursive;
  --script-alt:'Yellowtail',cursive;
  --sans:'Space Grotesk',system-ui,-apple-system,sans-serif;
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  background:var(--cream-out);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}

a{color:var(--red)}
a:hover{color:var(--green)}

/* ---------- the pizza box lid ---------- */

.page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 20px;
}

.page--top{align-items:flex-start}

.lid{
  width:100%;
  max-width:880px;
  background:var(--cream-box);
  border:4px solid var(--red);
  border-radius:6px;
  box-shadow:
    0 14px 40px rgba(30,27,22,.22),
    inset 0 0 0 2px var(--cream-box),
    inset 0 0 0 5px var(--red);
  padding:48px 56px 40px;
}

.strip{
  height:14px;
  margin:0 -26px 34px;
  background:repeating-conic-gradient(var(--red) 0% 25%,transparent 0% 50%) 0 0/14px 14px;
}

.strip--bottom{margin:42px -26px 0}

/* ---------- hero (home) ---------- */

.hero{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  text-align:center;
}

.hero-tag{
  font-family:var(--script-alt);
  font-size:26px;
  color:var(--red);
  margin-top:8px;
}

.hero-since{
  font-size:12px;
  font-weight:700;
  letter-spacing:4px;
  color:var(--green);
}

.hero-pitch{
  margin:22px auto 0;
  max-width:30em;
  font-size:19px;
  font-weight:500;
  line-height:1.45;
}

.hero-pitch b{color:var(--red);font-weight:700}

/* ---------- rule with a word in it ---------- */

.rule{
  display:flex;
  align-items:center;
  gap:14px;
  margin:38px 0 26px;
}

.rule::before,
.rule::after{
  content:"";
  flex:1;
  border-top:3px double var(--red);
}

.rule span{
  font-family:var(--slab);
  font-weight:600;
  font-size:18px;
  letter-spacing:4px;
  color:var(--red);
}

/* ---------- home menu list ---------- */

.menu{
  display:flex;
  flex-direction:column;
  gap:22px;
  max-width:620px;
  margin:0 auto;
}

.menu-item{
  display:flex;
  align-items:baseline;
  gap:12px;
  text-decoration:none;
  color:inherit;
  transition:transform .14s ease;
}

.menu-item:hover,
.menu-item:focus-visible{transform:translateX(6px)}

.menu-item:hover .menu-name{color:var(--green)}

.menu-text{
  display:flex;
  flex-direction:column;
  gap:3px;
  flex-shrink:0;
}

.menu-name{
  font-family:var(--slab);
  font-weight:600;
  font-size:27px;
  color:var(--red);
  transition:color .14s ease;
}

.menu-sub{
  font-size:12px;
  font-weight:600;
  letter-spacing:1px;
  color:var(--muted);
}

.leader{
  flex:1;
  border-bottom:3px dotted var(--red);
  transform:translateY(-8px);
}

.menu-num{
  font-family:var(--slab);
  font-weight:600;
  font-size:23px;
  color:var(--green);
  flex-shrink:0;
}

/* ---------- interior page header ---------- */

.top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
  margin-bottom:6px;
}

.lockup{
  text-decoration:none;
  line-height:1;
  white-space:nowrap;
}

.lockup .m{
  font-family:var(--script-alt);
  font-size:21px;
  color:var(--red);
}

.lockup .s{
  font-family:var(--script);
  font-size:25px;
  color:var(--green);
  margin-left:2px;
}

.back{
  font-size:12px;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--muted);
}

.back:hover,
.back:focus-visible{color:var(--red)}

.top-right{
  display:flex;
  align-items:center;
  gap:16px;
}

/* ---------- little tip jar chip ---------- */

.tipchip{
  display:inline-block;
  font-family:var(--slab);
  font-weight:600;
  font-size:13px;
  letter-spacing:.5px;
  padding:6px 15px;
  border-radius:999px;
  border:2px dashed var(--green);
  color:var(--green);
  text-decoration:none;
  white-space:nowrap;
  transition:background .14s ease,color .14s ease;
}

.tipchip:hover,
.tipchip:focus-visible{
  background:var(--green);
  color:#fff;
}

.tipchip.is-dormant{
  border-color:var(--muted);
  color:var(--muted);
  cursor:not-allowed;
}

.tipchip.is-dormant:hover{
  background:transparent;
  color:var(--muted);
}

.sec-title{
  font-family:var(--slab);
  font-weight:600;
  font-size:clamp(32px,7vw,44px);
  color:var(--red);
  margin:14px 0 4px;
  line-height:1.08;
}

.sec-num{
  font-family:var(--slab);
  font-weight:600;
  font-size:15px;
  letter-spacing:3px;
  color:var(--green);
  margin:0;
}

.sec-lede{
  color:var(--muted);
  font-weight:500;
  max-width:44em;
  margin:8px 0 0;
}

/* ---------- product rows ---------- */

.group-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin:36px 0 18px;
  padding-bottom:8px;
  border-bottom:3px double var(--red);
}

.group-row .group{
  margin:0;
  padding:0;
  border:none;
}

.group{
  font-family:var(--slab);
  font-weight:600;
  font-size:15px;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--green);
  margin:36px 0 18px;
  padding-bottom:8px;
  border-bottom:3px double var(--red);
}

.dish{margin:0 0 30px;padding-left:26px}

.dish-head{
  display:flex;
  align-items:baseline;
  gap:12px;
}

.dish-name{
  font-family:var(--slab);
  font-weight:600;
  font-size:22px;
  color:var(--red);
  margin:0;
  line-height:1.3;
}

.dish-name a{text-decoration:none;color:var(--red)}
.dish-name a:hover,
.dish-name a:focus-visible{color:var(--green)}

.dish-tag{
  font-size:11px;
  font-weight:700;
  letter-spacing:2px;
  text-transform:uppercase;
  white-space:nowrap;
  padding:5px 11px;
  border-radius:3px;
  flex-shrink:0;
}

.tag-free{background:var(--green);color:#fff}
.tag-soon{background:transparent;color:var(--muted);border:2px dashed var(--muted)}

.dish-desc{
  margin:9px 0 0;
  max-width:46em;
}

/* ---------- buttons ---------- */

.btn{
  display:inline-block;
  font-family:var(--slab);
  font-weight:600;
  font-size:16px;
  letter-spacing:1px;
  text-decoration:none;
  padding:12px 26px;
  border-radius:4px;
  background:var(--red);
  color:#fff;
  border:3px solid var(--red-dark);
  transition:background .14s ease,transform .14s ease;
}

.btn:hover,
.btn:focus-visible{
  background:var(--red-dark);
  color:#fff;
  transform:translateY(-2px);
}

.btn--green{background:var(--green);border-color:var(--green-dark)}
.btn--green:hover,
.btn--green:focus-visible{background:var(--green-dark)}

.btn--dormant{
  background:transparent;
  color:var(--muted);
  border:3px dashed var(--muted);
  cursor:not-allowed;
}

.btn--dormant:hover{
  background:transparent;
  color:var(--muted);
  transform:none;
}

.btn-row{margin:16px 0 0}

/* ---------- tip jar coupon ---------- */

.coupon{
  margin:36px 0 0;
  padding:26px 24px;
  text-align:center;
  border:3px dashed var(--green);
  border-radius:5px;
}

.coupon h3{
  font-family:var(--slab);
  font-weight:600;
  font-size:23px;
  color:var(--green);
  margin:0 0 8px;
}

.coupon p{
  margin:0 auto 18px;
  max-width:36em;
  color:var(--muted);
}

/* ---------- note ---------- */

.note{
  margin:32px 0 0;
  padding:16px 20px;
  border-left:5px solid var(--red);
  background:rgba(195,50,39,.06);
}

.note p{margin:0}

/* ---------- link list ---------- */

.links{list-style:none;padding:0 0 0 26px;margin:26px 0 0}

.links li{
  padding:13px 0;
  border-bottom:2px dotted var(--red);
}

.links a{
  font-family:var(--slab);
  font-weight:600;
  font-size:19px;
  text-decoration:none;
}

.links span{
  display:block;
  font-size:14px;
  color:var(--muted);
}

/* ---------- footer ---------- */

.foot{
  margin-top:38px;
  padding-top:20px;
  border-top:3px double var(--red);
  text-align:center;
}

.foot p{
  font-size:12.5px;
  color:var(--muted);
  margin:0 auto;
  max-width:52em;
  line-height:1.55;
}

/* ---------- a11y + motion ---------- */

a:focus-visible,
.btn:focus-visible{
  outline:3px solid var(--green);
  outline-offset:3px;
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important}
}

/* ---------- small screens ---------- */

@media (max-width:640px){
  .page{padding:20px 12px}
  .lid{padding:30px 22px 26px;border-width:3px}
  .strip{margin:0 -12px 26px}
  .strip--bottom{margin:32px -12px 0}
  .hero svg{width:130px;height:130px}
  .hero-tag{font-size:22px}
  .hero-pitch{font-size:17px}
  .rule span{font-size:15px;letter-spacing:2px}
  .menu-item{flex-wrap:wrap;gap:6px}
  .menu-text{flex:1 1 0;min-width:0}
  .menu-sub{white-space:normal;overflow-wrap:break-word}
  .leader{display:none}
  .menu-name{font-size:22px}
  .menu-num{margin-left:auto}
  .dish-head{flex-wrap:wrap;gap:8px}
  .dish-name{font-size:19px}
  .dish{padding-left:12px}
  .links{padding-left:12px}
  .top-right{gap:10px}
  .tipchip{font-size:12px;padding:5px 12px}
}
