/* ====================================================================
   Adverbless Recipes -- EDITORIAL MAGAZINE redesign  (ASCII only)
   Aesthetic: printed food journal. Warm paper, ink black, vermilion
   accent. Oversized Fraunces serif headlines, Archivo grotesque labels,
   hairline rules, numbered indices, asymmetric overlapping layouts.
   ==================================================================== */
:root{
  --ink:#17130d; --ink-soft:#4a4339; --paper:#f3ece0; --paper-2:#eae0d0;
  --card:#fbf7ef; --rule:#d8ccb8; --rule-ink:rgba(23,19,13,.14);
  --red:#c23416; --red-d:#9c270f; --olive:#5f6b3c; --gold:#b07d2a;
  --maxw:1280px; --gut:32px;
  --shadow:0 24px 60px -34px rgba(23,19,13,.45);
}
/* legacy variable + class aliases so older page markup adopts the new look */
:root{
  --sand:#eae0d0; --green:#17130d; --green-d:#17130d; --green-l:#c23416;
  --cream:#f3ece0; --line:#d8ccb8; --terra:#c23416; --terra-d:#c23416;
  --tomato:#c23416; --muted:#4a4339;
}
.section-head{max-width:660px;margin-bottom:38px}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head .eyebrow{display:inline-block;margin-bottom:10px}
.section-head h2{font-family:"Fraunces",serif;font-size:clamp(1.9rem,4.4vw,3rem);margin:.2rem 0 .6rem;line-height:1.04}
.section-head p{color:var(--ink-soft)}
.btn-primary{background:#c23416;border-color:#c23416;color:#fff}
.btn-primary:hover{background:transparent;color:#c23416}
.bg-paper{background:#fbf7ef}
.bg-sand{background:#eae0d0}
.bg-green{background:#17130d;color:#f3ece0}
.bg-green h2,.bg-green h3{color:#f3ece0}
.bg-green .eyebrow{color:#e2a08f}
.rounded-img{border:1px solid #17130d;object-fit:cover;width:100%}
.card-cat{z-index:2}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:hidden;max-width:100vw}
html{scroll-behavior:smooth}
/* ensure the HTML hidden attribute always hides, even on flex/grid elements
   (fixes the cookie bar "Got it" dismiss and the cart count badge at 0) */
[hidden]{display:none!important}
body{font-family:"Archivo",system-ui,Arial,sans-serif;color:var(--ink);background:var(--paper);
  line-height:1.55;-webkit-font-smoothing:antialiased;font-size:17px}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:"Fraunces","Georgia",serif;line-height:1.02;font-weight:600;color:var(--ink);letter-spacing:-.01em}
::selection{background:var(--red);color:var(--paper)}
.skip-link{position:absolute;left:-999px}
.skip-link:focus{left:12px;top:12px;background:#fff;padding:8px 14px;z-index:300}

/* ---- structural helpers ---- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.section{padding:90px 0}
.section-tight{padding:52px 0}
.rule{height:1px;background:var(--ink);opacity:.85;border:0}
.hair{height:1px;background:var(--rule-ink);border:0}
.kicker,.eyebrow{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.26em;
  font-size:.7rem;font-weight:700;color:var(--red)}
.lead{font-size:1.22rem;line-height:1.5;color:var(--ink-soft);font-family:"Fraunces",serif;font-weight:400}
.serif{font-family:"Fraunces",serif}

/* section header: number + label + rule (editorial index style) */
.sec-head{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:end;margin-bottom:40px}
.sec-head .num{font-family:"Fraunces",serif;font-size:1rem;color:var(--red);font-variant-numeric:tabular-nums;
  padding-bottom:6px;border-bottom:2px solid var(--red)}
.sec-head .htext h2{font-size:clamp(2rem,5vw,3.4rem)}
.sec-head .htext .eyebrow{display:block;margin-bottom:8px}
.sec-head .htext p{color:var(--ink-soft);margin-top:8px;max-width:46ch}
.sec-head.spread{grid-template-columns:1fr;border-top:2px solid var(--ink);padding-top:14px}
.sec-head.spread .topline{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.sec-head.spread .topline .eyebrow{order:-1}

/* ---- buttons (editorial: squared, underline-driven) ---- */
.btn{display:inline-flex;align-items:center;gap:.55rem;font-family:"Archivo",sans-serif;font-weight:700;
  text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;cursor:pointer;border:1.5px solid var(--ink);
  background:var(--ink);color:var(--paper);padding:.95rem 1.5rem;border-radius:0;transition:.16s}
.btn:hover{background:transparent;color:var(--ink)}
.btn-accent{background:var(--red);border-color:var(--red);color:#fff}
.btn-accent:hover{background:transparent;color:var(--red)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-light{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.btn-light:hover{background:transparent;color:var(--paper);border-color:var(--paper)}
.btn-sm{padding:.6rem 1rem;font-size:.7rem}
.btn-block{display:flex;width:100%;justify-content:center}
.linkarrow{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;
  font-weight:700;color:var(--ink);border-bottom:2px solid var(--red);padding-bottom:3px;display:inline-block}
.linkarrow:hover{color:var(--red)}

/* ====================================================================
   MASTHEAD / NAV
   ==================================================================== */
.site-nav{position:sticky;top:0;z-index:90;background:var(--paper);border-bottom:1px solid var(--ink)}
.nav-meta{display:flex;justify-content:space-between;font-family:"Archivo",sans-serif;text-transform:uppercase;
  letter-spacing:.18em;font-size:.62rem;color:var(--ink-soft);padding:7px var(--gut);border-bottom:1px solid var(--rule-ink);max-width:var(--maxw);margin:0 auto}
.nav-inner{max-width:var(--maxw);margin:0 auto;padding:14px var(--gut);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px}
.brand{display:flex;align-items:center;gap:11px;justify-content:center}
.brand-mark{width:34px;height:34px;border:2px solid var(--ink);color:var(--ink);background:var(--red);
  font-family:"Fraunces",serif;font-weight:700;font-size:1.15rem;display:grid;place-items:center;flex:none;color:#fff}
.brand-text{font-family:"Fraunces",serif;font-weight:700;font-size:1.5rem;letter-spacing:-.02em}
.brand-text-2{font-style:italic;color:var(--red)}
.nav-links{display:flex;gap:24px;justify-self:start}
.nav-link{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:600;color:var(--ink);padding-bottom:3px;border-bottom:2px solid transparent}
.nav-link:hover,.nav-link.active{border-bottom-color:var(--red);color:var(--red)}
.nav-actions{display:flex;align-items:center;gap:18px;justify-self:end}
.nav-account{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700}
.nav-account:hover{color:var(--red)}
.nav-cart{position:relative;color:var(--ink);display:grid;place-items:center}
.nav-cart:hover{color:var(--red)}
.cart-badge{position:absolute;top:-9px;right:-10px;background:var(--red);color:#fff;font-size:.66rem;font-weight:700;
  min-width:17px;height:17px;border-radius:0;display:grid;place-items:center;padding:0 4px;font-family:"Archivo",sans-serif}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.nav-toggle span{width:24px;height:2px;background:var(--ink)}

.drawer-overlay{position:fixed;inset:0;background:rgba(23,19,13,.55);z-index:95}
.mobile-drawer{position:fixed;top:0;right:0;height:100%;width:min(86vw,340px);background:var(--paper);z-index:96;
  transform:translateX(100%);transition:transform .3s ease;padding:70px 28px 28px;border-left:2px solid var(--ink)}
.mobile-drawer.open{transform:translateX(0)}
.drawer-close{position:absolute;top:16px;right:20px;background:none;border:none;font-size:2rem;cursor:pointer;line-height:1}
.drawer-links{display:flex;flex-direction:column}
.drawer-links a{padding:.85rem 0;border-bottom:1px solid var(--rule-ink);font-family:"Fraunces",serif;font-size:1.3rem}
.drawer-cta{margin-top:18px;background:var(--red);color:#fff!important;border:none!important;text-align:center;
  text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-family:"Archivo",sans-serif;font-weight:700;padding:.9rem}

/* ====================================================================
   EDITORIAL HERO
   ==================================================================== */
.ed-hero{padding:46px 0 0;border-bottom:1px solid var(--ink)}
.ed-hero-grid{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);display:grid;grid-template-columns:1.15fr .85fr;gap:46px;align-items:start}
.ed-hero-left .issue{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.2em;font-size:.7rem;
  color:var(--red);font-weight:700;display:flex;gap:14px;align-items:center;margin-bottom:22px}
.ed-hero-left .issue::after{content:"";flex:1;height:1px;background:var(--ink)}
.ed-hero h1{font-size:clamp(2.8rem,7.4vw,6rem);line-height:.96;letter-spacing:-.025em}
.ed-hero h1 em{font-style:italic;color:var(--red)}
.ed-hero-left p.dek{font-family:"Fraunces",serif;font-size:1.28rem;color:var(--ink-soft);margin:1.4rem 0 1.8rem;max-width:30ch}
.ed-hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.ed-hero-byline{margin-top:30px;padding-top:16px;border-top:1px solid var(--rule-ink);display:flex;gap:30px;flex-wrap:wrap}
.ed-hero-byline .b strong{font-family:"Fraunces",serif;font-size:1.5rem;display:block;line-height:1}
.ed-hero-byline .b span{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;color:var(--ink-soft)}
.ed-hero-media{position:relative}
.ed-hero-media .big{aspect-ratio:3/4;object-fit:cover;width:100%;border:1px solid var(--ink)}
.ed-hero-media figcaption{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.16em;
  font-size:.62rem;color:var(--ink-soft);margin-top:8px;display:flex;justify-content:space-between}
.ed-hero-tag{position:absolute;top:14px;left:-1px;background:var(--red);color:#fff;font-family:"Archivo",sans-serif;
  text-transform:uppercase;letter-spacing:.14em;font-size:.64rem;font-weight:700;padding:7px 12px}

/* ---- marquee ticker ---- */
.marquee{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);background:var(--ink);color:var(--paper);overflow:hidden}
.marquee .track{display:flex;gap:0;white-space:nowrap;animation:slidemq 28s linear infinite}
.marquee span{font-family:"Fraunces",serif;font-style:italic;font-size:1.2rem;padding:12px 26px;display:inline-flex;align-items:center;gap:26px}
.marquee span::after{content:"\2217";color:var(--red);font-style:normal}
@keyframes slidemq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ====================================================================
   CARDS -- editorial recipe/article cards
   ==================================================================== */
.grid{display:grid;gap:38px 30px}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}
.card{background:transparent;display:flex;flex-direction:column;border:0}
.card-media{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--ink)}
.card-media img{width:100%;height:100%;object-fit:cover;transition:.5s ease;filter:saturate(1.02)}
.card:hover .card-media img{transform:scale(1.05)}
.card-no{position:absolute;top:0;left:0;background:var(--paper);color:var(--ink);font-family:"Fraunces",serif;
  font-size:.86rem;padding:5px 10px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);font-variant-numeric:tabular-nums}
.card-cat{position:absolute;bottom:0;left:0;background:var(--ink);color:var(--paper);font-family:"Archivo",sans-serif;
  text-transform:uppercase;letter-spacing:.14em;font-size:.6rem;font-weight:700;padding:5px 10px}
.lock-badge{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center}
.lock-badge svg{width:15px;height:15px}
.card-body{padding:14px 0 0;display:flex;flex-direction:column;gap:8px;flex:1}
.card-body h3{font-size:1.34rem;line-height:1.08}
.card-body h3 a:hover{color:var(--red)}
.card-body p{color:var(--ink-soft);font-size:.92rem}
.card-meta{display:flex;gap:12px;align-items:center;font-family:"Archivo",sans-serif;text-transform:uppercase;
  letter-spacing:.1em;font-size:.62rem;color:var(--ink-soft);margin-top:auto;padding-top:10px;border-top:1px solid var(--rule-ink)}
.card-meta .rate{color:var(--red);font-weight:700}
.card-meta .lvl{margin-left:auto}

/* product cards */
.prod .card-media{aspect-ratio:1/1;background:var(--card)}
.prod .price{font-family:"Fraunces",serif;font-size:1.3rem}
.prod-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;padding-top:10px;border-top:1px solid var(--rule-ink)}

/* ---- numbered INDEX list (editorial table of contents) ---- */
.index-list{border-top:2px solid var(--ink)}
.index-row{display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center;padding:20px 4px;
  border-bottom:1px solid var(--rule-ink);transition:.15s}
.index-row:hover{background:var(--card);padding-left:14px}
.index-row .ix-no{font-family:"Fraunces",serif;font-size:1.5rem;color:var(--red);font-variant-numeric:tabular-nums}
.index-row .ix-title{font-family:"Fraunces",serif;font-size:1.5rem;line-height:1.05}
.index-row .ix-title small{display:block;font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:.6rem;color:var(--ink-soft);margin-top:5px;font-weight:600}
.index-row .ix-meta{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;color:var(--ink-soft);text-align:right}

/* ---- feature split (overlapping) ---- */
.feature{display:grid;grid-template-columns:1.05fr .95fr;gap:0;align-items:center}
.feature .ph{aspect-ratio:4/3;object-fit:cover;width:100%;border:1px solid var(--ink)}
.feature .fbody{background:var(--card);border:1px solid var(--ink);padding:48px;margin-left:-60px;position:relative;z-index:2}
.feature.flip .fbody{margin-left:0;margin-right:-60px}
.feature.flip .ph{order:2}
.feature .fbody h2{font-size:clamp(1.8rem,4vw,2.8rem);margin:.4rem 0 .7rem}

/* ---- pull quote ---- */
.pullquote{text-align:center;max-width:22ch;margin:0 auto;font-family:"Fraunces",serif;font-style:italic;
  font-size:clamp(1.8rem,4.6vw,3.2rem);line-height:1.08}
.pullquote .by{display:block;font-style:normal;font-family:"Archivo",sans-serif;text-transform:uppercase;
  letter-spacing:.2em;font-size:.7rem;color:var(--red);margin-top:22px}

/* ---- photo strip / mosaic / gallery (editorial framing) ---- */
.photo-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.photo-strip img{aspect-ratio:1/1;object-fit:cover;width:100%;border:1px solid var(--ink)}
.photo-mosaic{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:12px}
.photo-mosaic img{width:100%;height:100%;object-fit:cover;border:1px solid var(--ink)}
.photo-mosaic img:nth-child(1){grid-row:span 2}
.photo-mosaic img:nth-child(6){grid-row:span 2}
.recipe-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.recipe-gallery figure{position:relative;border:1px solid var(--ink)}
.recipe-gallery img{aspect-ratio:4/3;object-fit:cover;width:100%}
.recipe-gallery figcaption{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--paper);
  font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:.58rem;padding:4px 9px}

/* category tiles */
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.cat-tile{position:relative;overflow:hidden;aspect-ratio:5/6;display:block;border:1px solid var(--ink)}
.cat-tile img{width:100%;height:100%;object-fit:cover;transition:.5s}
.cat-tile:hover img{transform:scale(1.06)}
.cat-tile .cat-cap{position:absolute;inset:0;background:linear-gradient(to top,rgba(23,19,13,.85),transparent 58%);
  display:flex;flex-direction:column;justify-content:flex-end;padding:18px;color:var(--paper)}
.cat-tile h3{color:#fff;font-size:1.5rem}
.cat-tile span{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;opacity:.9;margin-top:4px}
.cat-tile .cat-count{position:absolute;top:0;right:0;background:var(--red);color:#fff;font-family:"Archivo",sans-serif;
  font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;padding:5px 9px}

/* generic blocks */
.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.bg-paper2{background:var(--paper-2)}
.bg-ink{background:var(--ink);color:var(--paper)}
.bg-ink h2,.bg-ink h3{color:var(--paper)}
.bg-ink .eyebrow{color:#e2a08f}
.framed-img{border:1px solid var(--ink);object-fit:cover;width:100%}

/* steps */
.steps3{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:2px solid var(--ink)}
.step-card{padding:28px 26px 26px;border-right:1px solid var(--rule-ink)}
.step-card:last-child{border-right:0}
.step-num{font-family:"Fraunces",serif;font-size:2.6rem;color:var(--red);line-height:1;margin-bottom:12px}
.step-card h3{font-size:1.35rem;margin-bottom:8px}
.step-card p{color:var(--ink-soft);font-size:.95rem}

/* pricing */
.price-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;max-width:820px;margin:0 auto;border:1px solid var(--ink)}
.price-card{padding:38px 32px;position:relative;border-right:1px solid var(--ink)}
.price-card:last-child{border-right:0}
.price-card.feat{background:var(--ink);color:var(--paper)}
.price-card.feat h3,.price-card.feat .amt{color:var(--paper)}
.price-card .tag{position:absolute;top:0;right:0;background:var(--red);color:#fff;font-family:"Archivo",sans-serif;
  text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;font-weight:700;padding:5px 10px}
.price-card h3{font-size:1.6rem}
.price-card .amt{font-family:"Fraunces",serif;font-size:3.4rem;margin:.3rem 0}
.price-card .amt span{font-size:.95rem;font-family:"Archivo",sans-serif;color:var(--ink-soft)}
.price-card.feat .amt span{color:#cdbfab}
.feat-list{list-style:none;margin:18px 0 26px;display:flex;flex-direction:column}
.feat-list li{position:relative;padding:9px 0 9px 26px;border-bottom:1px solid var(--rule-ink);font-size:.95rem}
.feat-list li::before{content:"\2192";position:absolute;left:0;top:9px;color:var(--red);font-weight:700}
.price-card.feat .feat-list li{border-color:rgba(255,255,255,.16)}

/* recipe detail */
.rd-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:46px;align-items:start}
.rd-hero img{border:1px solid var(--ink);aspect-ratio:4/5;object-fit:cover;width:100%}
.pill{display:inline-block;padding:4px 11px;font-family:"Archivo",sans-serif;text-transform:uppercase;
  letter-spacing:.12em;font-size:.6rem;font-weight:700}
.pill-free{background:var(--olive);color:#fff}
.pill-members{background:var(--red);color:#fff}
.meta-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:26px 0;border:1px solid var(--ink)}
.meta-tiles .mt{padding:16px;text-align:center;border-right:1px solid var(--rule-ink)}
.meta-tiles .mt:last-child{border-right:0}
.meta-tiles .mt strong{font-family:"Fraunces",serif;display:block;font-size:1.5rem}
.meta-tiles .mt span{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:.58rem;color:var(--ink-soft)}
.rd-cols{display:grid;grid-template-columns:.85fr 1.15fr;gap:50px;margin-top:24px}
.ing-list{list-style:none;border-top:2px solid var(--ink)}
.ing-list li{padding:12px 2px;border-bottom:1px solid var(--rule-ink);display:flex;gap:12px}
.ing-list li::before{content:"\25A0";color:var(--red);font-size:.6rem;margin-top:7px}
.method-list{list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:22px}
.method-list li{position:relative;padding-left:62px;counter-increment:s}
.method-list li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:-4px;
  font-family:"Fraunces",serif;font-size:1.9rem;color:var(--red);font-variant-numeric:tabular-nums}

/* paywall */
.paywall{background:var(--ink);color:var(--paper);border:1px solid var(--ink);padding:42px 38px}
.paywall .lock-ic{width:54px;height:54px;border:2px solid var(--red);display:grid;place-items:center;margin-bottom:18px}
.paywall .lock-ic svg{width:26px;height:26px;stroke:var(--red)}
.paywall h3{color:var(--paper);font-size:1.8rem}
.paywall p{color:#cdbfab;margin:.7rem 0 1.3rem;max-width:42ch}
.paywall .feat-list{max-width:none;margin:0 0 22px}
.paywall .feat-list li{color:#e7ddcd;border-color:rgba(255,255,255,.16)}
.paywall .pw-cta{display:flex;gap:12px;flex-wrap:wrap}

.free-strip{border:1px solid var(--ink);background:var(--card);padding:18px 22px;display:flex;gap:16px;align-items:center;
  justify-content:space-between;flex-wrap:wrap;margin-bottom:34px}
.free-strip p{margin:0;font-family:"Fraunces",serif;font-size:1.05rem}
.free-strip strong{color:var(--red)}

/* forms */
.form-card{background:var(--card);border:1px solid var(--ink);padding:34px}
.field{margin-bottom:16px}
.field label{display:block;font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.12em;
  font-size:.66rem;font-weight:700;margin-bottom:6px}
.field input,.field textarea,.field select{width:100%;padding:.8rem .9rem;border:1px solid var(--ink);border-radius:0;
  font-family:inherit;font-size:1rem;background:var(--paper)}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--red);outline-offset:-2px;background:#fff}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.note{font-size:.85rem;color:var(--ink-soft)}
.alert{padding:.85rem 1.1rem;margin-bottom:16px;font-size:.95rem;border:1px solid}
.alert-error{background:#f7e7e2;color:var(--red-d);border-color:#e3b6ab}
.alert-ok{background:#e9efdd;color:#3f5223;border-color:#c2d29c}
.auth-wrap{max-width:460px;margin:0 auto}

/* cart / checkout */
.cart-row{display:grid;grid-template-columns:96px 1fr auto auto;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--rule-ink)}
.cart-row img{width:96px;height:96px;border:1px solid var(--ink);object-fit:cover}
.qty{display:inline-flex;align-items:center;border:1px solid var(--ink)}
.qty button{background:var(--card);border:none;width:32px;height:32px;font-size:1.1rem;cursor:pointer}
.qty span{min-width:36px;text-align:center;font-weight:700}
.cart-remove{background:none;border:none;color:var(--red);cursor:pointer;font-family:"Archivo",sans-serif;
  text-transform:uppercase;letter-spacing:.1em;font-size:.64rem;font-weight:700}
.summary{background:var(--card);border:1px solid var(--ink);padding:26px;position:sticky;top:120px}
.summary .line{display:flex;justify-content:space-between;padding:8px 0;color:var(--ink-soft);font-size:.95rem}
.summary .total{display:flex;justify-content:space-between;padding-top:14px;margin-top:8px;border-top:1px solid var(--ink);
  font-family:"Fraunces",serif;font-size:1.4rem}
.cart-empty{text-align:center;padding:70px 20px}
.checkout-grid{display:grid;grid-template-columns:1.4fr .9fr;gap:44px}

/* interior page hero (editorial banner) */
.page-hero{border-bottom:1px solid var(--ink);padding:54px 0 40px}
.page-hero .ph-inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
.page-hero .crumbs{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:.64rem;color:var(--red);margin-bottom:18px}
.page-hero .crumbs a:hover{color:var(--ink)}
.page-hero h1{font-size:clamp(2.6rem,6.5vw,5rem);line-height:.98;max-width:16ch}
.page-hero p{font-family:"Fraunces",serif;font-size:1.2rem;color:var(--ink-soft);margin-top:16px;max-width:52ch}
.page-hero.with-img{display:grid}
.page-hero .ph-strip{margin-top:30px}

/* prose / legal */
.prose{max-width:760px;margin:0 auto}
.prose h2{font-size:1.7rem;margin:36px 0 12px}
.prose h3{font-size:1.25rem;margin:24px 0 8px}
.prose p,.prose li{color:#36302700;color:var(--ink-soft);margin-bottom:12px;font-size:1.02rem}
.prose ul,.prose ol{padding-left:22px;margin-bottom:14px}
.prose a{color:var(--red);text-decoration:underline}
.legal-meta{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;color:var(--ink-soft);margin-bottom:26px}
.ltable{width:100%;border-collapse:collapse;margin:16px 0}
.ltable th,.ltable td{border:1px solid var(--ink);padding:10px 12px;text-align:left;font-size:.92rem;vertical-align:top}
.ltable th{background:var(--card)}

/* faq */
.faq-item{border-bottom:1px solid var(--ink)}
.faq-item:first-child{border-top:1px solid var(--ink)}
.faq-q{width:100%;text-align:left;background:none;border:none;padding:20px 4px;font-family:"Fraunces",serif;
  font-size:1.3rem;cursor:pointer;display:flex;justify-content:space-between;gap:14px;align-items:center}
.faq-q .pm{font-family:"Archivo",sans-serif;font-size:1.4rem;color:var(--red);flex:none;transition:.2s}
.faq-a{padding:0 4px;max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-a p{padding-bottom:20px;color:var(--ink-soft)}
.faq-item.open .faq-a{max-height:420px}
.faq-item.open .pm{transform:rotate(45deg)}

/* team */
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px}
.team-card .ph,.team-card .brand-mark{aspect-ratio:1/1;width:100%;height:auto;border:1px solid var(--ink);margin-bottom:12px;display:grid;place-items:center;font-size:3rem}
.team-card h3{font-size:1.25rem}
.team-card .role{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:.62rem;color:var(--red);font-weight:700;margin:5px 0 8px}
.team-card p{color:var(--ink-soft);font-size:.9rem}

/* blog */
.blog-feature{display:grid;grid-template-columns:1.15fr .85fr;gap:0;align-items:stretch;border:1px solid var(--ink);margin-bottom:46px}
.blog-feature img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/2;border-right:1px solid var(--ink)}
.blog-feature .bf-body{padding:38px}
.post-tag{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:.62rem;font-weight:700;color:var(--red);display:inline-block;margin-bottom:10px}
.post-meta{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;color:var(--ink-soft);margin-top:8px}

/* toast + cookie */
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--paper);
  padding:.85rem 1.3rem;z-index:120;opacity:0;transition:.25s;font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:700;border:1px solid var(--red)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.cookie-notice{position:fixed;left:18px;right:18px;bottom:18px;max-width:560px;margin:0 auto;background:var(--ink);color:var(--paper);
  border:1px solid var(--red);padding:16px 20px;z-index:110;display:flex;gap:16px;align-items:center}
.cookie-notice p{font-size:.85rem;margin:0}
.cookie-notice a{color:#e2a08f;text-decoration:underline}

/* footer */
.site-footer{background:var(--ink);color:var(--paper);padding:70px 0 28px;margin-top:0;border-top:3px solid var(--red)}
.footer-grid{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut);display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr 1fr;gap:34px}
.brand-footer .brand-text{color:var(--paper)}
.footer-tag{font-family:"Fraunces",serif;font-style:italic;font-size:1.2rem;margin:16px 0;max-width:24ch;color:#cdbfab}
.footer-support{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:.66rem;color:#cdbfab}
.footer-support a{color:#e2a08f;font-weight:700}
.footer-col h4{font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;color:var(--paper);margin-bottom:14px}
.footer-col a{display:block;color:#cdbfab;padding:5px 0;font-size:.92rem}
.footer-col a:hover{color:#fff}
.footer-base{max-width:var(--maxw);margin:36px auto 0;padding:22px var(--gut) 0;border-top:1px solid rgba(255,255,255,.14);
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-family:"Archivo",sans-serif;text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;color:#a99c89}

/* ====================================================================
   RESPONSIVE
   ==================================================================== */
@media(max-width:1024px){
  .nav-links{display:none}
  .nav-toggle{display:flex}
  .nav-account{display:none}
  .nav-inner{grid-template-columns:1fr auto 1fr}
  .ed-hero-grid{grid-template-columns:1fr;gap:30px}
  .ed-hero-media{max-width:520px}
  .grid-4{grid-template-columns:repeat(3,1fr)}
  .feature{grid-template-columns:1fr}
  .feature .fbody,.feature.flip .fbody{margin:-40px 16px 0;}
  .feature.flip .ph{order:0}
  .rd-cols,.rd-hero{grid-template-columns:1fr}
  .checkout-grid{grid-template-columns:1fr}
  .blog-feature{grid-template-columns:1fr}
  .blog-feature img{border-right:0;border-bottom:1px solid var(--ink)}
  .team-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr 1fr}
  .photo-mosaic{grid-template-columns:repeat(3,1fr)}
  .photo-mosaic img:nth-child(6){grid-row:auto}
}
@media(max-width:768px){
  .section{padding:60px 0}
  .grid-3,.grid-4,.grid-2{grid-template-columns:repeat(2,1fr)}
  .cat-grid{grid-template-columns:repeat(2,1fr)}
  .split{grid-template-columns:1fr;gap:30px}
  .steps3{grid-template-columns:1fr}
  .step-card{border-right:0;border-bottom:1px solid var(--rule-ink)}
  .price-grid{grid-template-columns:1fr}
  .price-card{border-right:0;border-bottom:1px solid var(--ink)}
  .photo-strip{grid-template-columns:repeat(4,1fr)}
  .recipe-gallery{grid-template-columns:repeat(2,1fr)}
  .photo-mosaic{grid-template-columns:repeat(2,1fr)}
  .photo-mosaic img:nth-child(1){grid-row:auto}
  .meta-tiles{grid-template-columns:repeat(2,1fr)}
  .meta-tiles .mt:nth-child(2){border-right:0}
  .footer-grid{grid-template-columns:1fr 1fr}
  .index-row{grid-template-columns:auto 1fr;gap:16px}
  .index-row .ix-meta{display:none}
  .cart-row{grid-template-columns:70px 1fr;grid-auto-rows:auto}
  .cart-row img{width:70px;height:70px}
}
@media(max-width:480px){
  :root{--gut:18px}
  .grid-3,.grid-4{grid-template-columns:1fr}
  .cat-grid{grid-template-columns:1fr}
  .photo-strip{grid-template-columns:repeat(3,1fr)}
  .recipe-gallery{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .ed-hero-cta{flex-direction:column;align-items:stretch}
  .ed-hero-cta .btn{justify-content:center}
  .free-strip{flex-direction:column;align-items:flex-start}
}
