/* FreshDeal Flyers — grocery circular aesthetic
   Palette: classic supermarket red, butcher-paper cream, sale-tag yellow
*/
:root{
  --red:#c8102e; --red-dark:#9b0a22; --red-soft:#fff0f1;
  --gold:#ffd400; --gold-dark:#c9a400;
  --ink:#1a1a1a; --ink-soft:#54585a; --ink-faint:#7a7e80;
  --cream:#fffaf2; --paper:#fff;
  --line:#e7e0d6; --line-strong:#c9bfae;
  --shadow:0 1px 2px rgba(0,0,0,.04), 0 12px 28px -16px rgba(0,0,0,.18);
  --shadow-lg:0 4px 8px rgba(0,0,0,.06), 0 24px 60px -24px rgba(200,16,46,.25);
  --r:14px; --r-lg:22px; --maxw:1200px;
  --serif:"Georgia","Iowan Old Style","Times New Roman",ui-serif,serif;
  --sans:"Inter","Helvetica Neue",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--sans); color:var(--ink); background:var(--cream);
  line-height:1.6; -webkit-font-smoothing:antialiased; font-size:16px;
}
a{color:var(--red-dark); text-decoration:none}
a:hover{text-decoration:underline}
img,svg{max-width:100%; height:auto; display:block}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 24px}
.muted{color:var(--ink-faint); font-size:.93em}

h1,h2,h3,h4{font-family:var(--serif); font-weight:700; letter-spacing:-.01em; color:var(--ink)}
h1{line-height:1.08} h2{line-height:1.2} h3{line-height:1.3}

/* Newspaper top-bar (date strip) */
.top-strip{background:var(--ink); color:#fff; font-size:.78rem; letter-spacing:.14em; text-transform:uppercase}
.top-strip .wrap{display:flex; justify-content:space-between; align-items:center; padding-block:8px; gap:16px; flex-wrap:wrap}
.top-strip .strip-right{color:#ffd400}

/* Header */
.site-header{background:var(--paper); border-bottom:3px solid var(--red); position:sticky; top:0; z-index:50; box-shadow:0 2px 0 #e7e0d6}
.header-wrap{display:flex; align-items:center; justify-content:space-between; padding-block:16px; gap:24px}
.brand{display:flex; align-items:center; gap:12px; font-family:var(--serif); font-weight:800; font-size:1.45rem; color:var(--ink); text-transform:none}
.brand:hover{text-decoration:none}
.brand img{width:44px; height:44px; border-radius:10px}
.brand-name{letter-spacing:-.02em; line-height:1}
.brand-accent{color:var(--red)}
.primary-nav{display:flex; gap:6px; align-items:center; flex-wrap:wrap}
.primary-nav a{color:var(--ink); font-weight:700; font-size:.95rem; padding:8px 14px; border-radius:8px; text-transform:uppercase; letter-spacing:.04em; font-family:var(--sans)}
.primary-nav a:hover{color:var(--red); background:var(--red-soft); text-decoration:none}

/* Main */
.site-main{padding:36px 24px 64px}
section{margin:38px 0}
section h2{font-size:1.7rem; margin:0 0 .5rem}
section p{max-width:75ch}

/* Hero — flyer cover */
.hero{
  background:linear-gradient(135deg,#fff5f5 0%,#fff 60%,#fff8e6 100%);
  border:2px solid var(--red); border-radius:var(--r-lg);
  padding:38px; margin:8px 0 36px;
  display:grid; grid-template-columns:1.15fr .85fr; gap:36px; align-items:center;
  position:relative; overflow:hidden;
}
.hero::before{
  content:""; position:absolute; inset:8px; border:1px dashed rgba(200,16,46,.35); border-radius:calc(var(--r-lg) - 8px); pointer-events:none;
}
.hero h1{font-size:clamp(2.2rem,4vw,3.4rem); margin:.4rem 0 .8rem; color:var(--red-dark)}
.eyebrow{
  display:inline-block; text-transform:uppercase; letter-spacing:.14em;
  font-size:.76rem; font-weight:800; color:#fff; background:var(--red);
  padding:7px 14px; border-radius:4px; font-family:var(--sans);
}
.lede{font-size:1.18rem; color:var(--ink-soft); max-width:60ch; line-height:1.55}
.hero-cta{display:flex; gap:12px; margin-top:22px; flex-wrap:wrap}
.btn{
  display:inline-block; padding:14px 26px; border-radius:8px;
  font-weight:800; font-family:var(--sans); border:2px solid transparent;
  cursor:pointer; transition:transform .1s ease, box-shadow .15s ease, background .15s ease;
  text-transform:uppercase; letter-spacing:.05em; font-size:.92rem;
}
.btn:hover{transform:translateY(-1px); text-decoration:none}
.btn-primary{background:var(--red); color:#fff; box-shadow:0 4px 0 var(--red-dark)}
.btn-primary:hover{background:var(--red-dark); box-shadow:0 2px 0 var(--red-dark); transform:translateY(1px)}
.btn-ghost{background:#fff; color:var(--ink); border-color:var(--ink)}
.btn-ghost:hover{background:var(--ink); color:#fff}
.btn-cta{background:var(--gold); color:var(--ink); width:100%; font-size:1rem; padding:15px 22px; box-shadow:0 4px 0 var(--gold-dark)}
.btn-cta:hover{background:var(--gold-dark); box-shadow:0 2px 0 var(--gold-dark); transform:translateY(1px); color:#fff}

.hero-stats{list-style:none; padding:0; margin:26px 0 0; display:grid; grid-template-columns:repeat(4,1fr); gap:12px}
.hero-stats li{
  background:#fff; border:1px solid var(--line); border-radius:10px;
  padding:14px 10px; text-align:center; font-size:.82rem; color:var(--ink-soft);
  text-transform:uppercase; letter-spacing:.05em; font-weight:600;
}
.hero-stats strong{display:block; font-size:1.7rem; color:var(--red); margin-bottom:2px; font-family:var(--serif); letter-spacing:-.02em}
.hero-art{position:relative}
.hero-art img,.hero-art svg{
  border-radius:14px; box-shadow:var(--shadow-lg); aspect-ratio:8/5; object-fit:cover;
  border:2px solid #fff;
}
.hero-art::after{
  content:"SALE"; position:absolute; top:-14px; right:-14px;
  background:var(--gold); color:var(--ink); font-family:var(--sans);
  font-weight:900; font-size:1.05rem; letter-spacing:.08em;
  width:78px; height:78px; border-radius:50%;
  display:grid; place-items:center; transform:rotate(12deg);
  box-shadow:0 6px 16px -4px rgba(0,0,0,.25); border:3px dashed #fff;
}

/* Page header */
.page-header{margin:8px 0 28px; padding-bottom:18px; border-bottom:3px double var(--line-strong)}
.page-header h1{font-size:clamp(1.9rem,3vw,2.6rem); margin:.5rem 0 .6rem; color:var(--red-dark)}
.page-header .lede{font-size:1.08rem}

.crumbs{font-size:.85rem; color:var(--ink-faint); margin-bottom:8px; text-transform:uppercase; letter-spacing:.06em; font-weight:600}
.crumbs a{color:var(--red-dark)}
.crumbs span{margin:0 6px; color:var(--line-strong)}

/* Bands */
.band{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg); padding:32px; box-shadow:var(--shadow); margin:32px 0}
.band > h2{margin-top:0}

/* Cards */
.card{
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  padding:18px; transition:transform .12s ease, box-shadow .15s ease, border-color .15s ease;
  position:relative;
}
.card:hover{transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--red); text-decoration:none}

.region-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:14px; margin-top:18px}
.region-card h3{margin:0 0 6px; color:var(--ink); font-size:1.1rem}

.category-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:14px; margin-top:18px}
.category-card{display:flex; gap:14px; align-items:center}
.category-card h3{margin:0 0 2px; font-size:1.05rem}
.cat-glyph{
  width:50px; height:50px; border-radius:12px;
  background:var(--red); color:#fff; font-weight:800;
  display:grid; place-items:center; font-size:1.4rem; flex:0 0 50px;
}

.store-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; margin-top:18px}
.store-card{position:relative; padding-top:22px}
.store-card::before{
  content:""; position:absolute; top:0; left:18px; right:18px; height:6px;
  background:repeating-linear-gradient(90deg,var(--red) 0 12px,#fff 12px 18px);
  border-radius:0 0 6px 6px;
}
.store-card h3{margin:0 0 6px; font-size:1.1rem}
.store-validity{
  display:inline-block; color:var(--red-dark); font-weight:800; margin:0 0 8px;
  font-size:.82rem; background:var(--red-soft); padding:4px 8px; border-radius:4px;
  text-transform:uppercase; letter-spacing:.04em;
}

/* Featured "Deals This Week" strip */
.featured-deals{margin:36px 0}
.featured-deals .featured-head{display:flex; justify-content:space-between; align-items:baseline; gap:16px; flex-wrap:wrap; margin-bottom:14px}
.featured-deals h2{margin:0; font-size:1.9rem}
.featured-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px}
.featured-deal{
  background:#fff; border:2px solid var(--red); border-radius:var(--r);
  padding:18px; position:relative; overflow:hidden;
}
.featured-deal::after{
  content:"SALE"; position:absolute; top:10px; right:10px;
  background:var(--gold); color:var(--ink); font-weight:900;
  font-size:.7rem; padding:3px 8px; border-radius:3px; letter-spacing:.08em;
}
.featured-deal .fd-store{font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); font-weight:700}
.featured-deal .fd-headline{
  font-family:var(--serif); font-size:1.25rem; font-weight:700;
  color:var(--red-dark); margin:6px 0 8px; line-height:1.25;
}
.featured-deal .fd-cat{font-size:.85rem; color:var(--ink-soft)}
.featured-deal a{color:inherit; display:block}
.featured-deal:hover{box-shadow:var(--shadow); transform:translateY(-2px); transition:all .15s ease}

/* Explainer */
.explainer{display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:48px; padding-top:32px; border-top:3px double var(--line-strong)}
.checklist{padding-left:1.2rem; margin:.4rem 0}
.checklist li{margin-bottom:.5rem}

/* 2-col layout */
.layout-2col{display:grid; grid-template-columns:1fr 320px; gap:32px; align-items:start}
.layout-2col .primary section{margin-top:0; margin-bottom:36px}
.sidebar{position:sticky; top:96px; display:flex; flex-direction:column; gap:18px}
.sidebar-card{padding:20px}
.sidebar-card h3{margin:0 0 10px; font-size:1.05rem; color:var(--red-dark); text-transform:uppercase; letter-spacing:.04em; font-family:var(--sans); font-weight:800}
.plain-list{list-style:none; padding:0; margin:0}
.plain-list li{padding:8px 0; border-bottom:1px dashed var(--line); font-size:.95rem}
.plain-list li:last-child{border-bottom:none}

/* Editorial recommendations (PBN slot styling) */
.editorial-block{
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  padding:20px;
}
.editorial-block .editorial-label{
  font-size:.7rem; text-transform:uppercase; letter-spacing:.16em; color:var(--ink-faint);
  font-weight:700; margin:0 0 4px;
}
.editorial-block h3{font-size:1.05rem; margin:0 0 12px; color:var(--red-dark); font-family:var(--sans); text-transform:uppercase; letter-spacing:.04em}
.editorial-block ol{padding-left:1.1rem; margin:0; counter-reset:rec}
.editorial-block ol li{padding:8px 0; border-bottom:1px dashed var(--line); font-size:.93rem; line-height:1.45}
.editorial-block ol li:last-child{border-bottom:none}
.editorial-block ol li a{color:var(--ink); font-weight:600}
.editorial-block ol li a:hover{color:var(--red)}
.editorial-block .rec-source{display:block; font-size:.78rem; color:var(--ink-faint); margin-top:2px; font-weight:400}

/* Lead capture */
.lead-wrap{margin:40px 0}
.lead-panel{
  background:linear-gradient(180deg,#fff,#fff8e6); border:2px solid var(--gold);
  border-radius:var(--r-lg); padding:28px; box-shadow:var(--shadow);
  position:relative;
}
.lead-panel::before{
  content:"FREE"; position:absolute; top:-14px; left:24px;
  background:var(--gold); color:var(--ink); font-weight:900; font-size:.8rem;
  padding:4px 12px; border-radius:4px; letter-spacing:.08em;
}
.lead-trust{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px}
.trust-pill{
  font-size:.74rem; font-weight:800; color:var(--red-dark);
  background:var(--red-soft); padding:5px 10px; border-radius:4px;
  text-transform:uppercase; letter-spacing:.06em;
}
.lead-panel h2{margin:.2rem 0 .35rem; font-size:1.5rem; color:var(--red-dark)}
.lead-sub{margin:.2rem 0 1rem; color:var(--ink-soft)}
.lead-form{display:grid; gap:10px}
.lead-form label{display:block; font-size:.78rem; font-weight:800; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em}
.lead-form label span{display:block; margin-bottom:4px}
.lead-form input{width:100%; padding:13px 14px; font-size:1rem; border:2px solid var(--line-strong); border-radius:8px; background:#fff; font-family:inherit}
.lead-form input:focus{outline:none; border-color:var(--red); box-shadow:0 0 0 3px var(--red-soft)}
.lead-fineprint{font-size:.78rem; color:var(--ink-faint); margin:.3rem 0 0}
.lead-badges{display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; padding-top:14px; border-top:1px dashed var(--line-strong)}
.logo-badge{font-size:.7rem; font-weight:800; padding:5px 10px; border-radius:4px; background:#fff; border:1px solid var(--line); color:var(--ink-soft); letter-spacing:.04em; text-transform:uppercase}

/* Deal blocks */
.deal-block{border-top:2px dashed var(--line); padding-top:24px; margin-top:24px}
.deal-block:first-of-type{border-top:none; padding-top:0; margin-top:14px}
.deal-head{display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap}
.deal-head h3{margin:0; font-size:1.35rem; color:var(--red-dark)}
.link-pill{
  font-size:.78rem; font-weight:800; color:#fff; background:var(--red);
  padding:6px 12px; border-radius:999px; text-transform:uppercase; letter-spacing:.05em;
}
.link-pill:hover{background:var(--red-dark); text-decoration:none}
.deal-headline{
  font-family:var(--serif); font-size:1.2rem; color:var(--red-dark);
  font-weight:700; margin:.5rem 0 .8rem; line-height:1.3;
}
.deal-table{width:100%; border-collapse:collapse; margin:.4rem 0; background:#fff; border:1px solid var(--line); border-radius:8px; overflow:hidden}
.deal-table th,.deal-table td{text-align:left; padding:11px 14px; border-bottom:1px solid var(--line)}
.deal-table th{font-size:.74rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-faint); background:#faf5e8; font-weight:800}
.deal-table tr:last-child td{border-bottom:none}
.deal-table td:last-child{font-weight:800; color:var(--red-dark); white-space:nowrap}

/* Deal lists */
.deal-list{display:grid; gap:12px; margin-top:14px}
.deal-row{display:flex; align-items:center; justify-content:space-between; gap:18px; padding:18px}
.deal-row-main h3{margin:0 0 4px; font-size:1.05rem}

.comparison-list{padding-left:1.1rem}
.comparison-list li{margin-bottom:.5rem; padding-bottom:.5rem; border-bottom:1px dashed var(--line); list-style:disc}
.comparison-list li:last-child{border-bottom:none}

.related-list{list-style:none; padding:0; columns:2; column-gap:24px; margin-top:14px}
.related-list li{padding:6px 0; break-inside:avoid; border-bottom:1px dashed var(--line)}

/* Footer */
.site-footer{background:#1a1a1a; color:#dcdcdc; margin-top:60px; padding:48px 0 24px; border-top:6px solid var(--red)}
.site-footer a{color:#fff}
.site-footer a:hover{color:var(--gold)}
.footer-grid{display:grid; grid-template-columns:1.5fr 1fr 1fr 1.5fr; gap:32px}
.footer-grid h4{margin:0 0 12px; color:#fff; font-size:.85rem; text-transform:uppercase; letter-spacing:.1em; font-family:var(--sans); font-weight:800}
.footer-grid ul{list-style:none; padding:0; margin:0}
.footer-grid li{padding:4px 0; font-size:.92rem}
.footer-base{margin-top:36px; padding-top:18px; border-top:1px solid #333; color:#999; font-size:.82rem}

.footer-editorial ol{padding-left:1.1rem; margin:0}
.footer-editorial li{padding:5px 0; font-size:.88rem; border-bottom:1px dashed #333}
.footer-editorial li:last-child{border-bottom:none}
.footer-editorial li a{color:#dcdcdc; font-weight:600}

/* Inline editorial recommendation inside articles */
.inline-rec{
  margin:24px 0; padding:16px 20px; background:var(--red-soft);
  border-left:4px solid var(--red); border-radius:6px; font-size:.95rem;
}
.inline-rec strong{color:var(--red-dark); display:block; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:4px}

/* Responsive */
@media (max-width:920px){
  .hero{grid-template-columns:1fr; gap:24px; padding:28px}
  .hero-art::after{width:62px; height:62px; font-size:.85rem; top:-10px; right:-10px}
  .hero-stats{grid-template-columns:repeat(2,1fr)}
  .layout-2col{grid-template-columns:1fr}
  .sidebar{position:static}
  .explainer{grid-template-columns:1fr; gap:18px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .related-list{columns:1}
}
@media (max-width:600px){
  .primary-nav{gap:2px; font-size:.85rem}
  .primary-nav a{padding:6px 10px}
  .band{padding:22px}
  .hero{padding:22px}
  .hero h1{font-size:2rem}
  .footer-grid{grid-template-columns:1fr}
  .top-strip{display:none}
}
