:root{
  --paper:#EDE7D9;
  --paper-deep:#E2DBC8;
  --ink:#17140F;
  --stamp:#C81E1E;
  --register:#14503D;
  --mustard:#F0B42A;
  --faded:#6B6353; /* darkened from #8F8672 -- original failed WCAG AA contrast (2.93:1) against --paper; this passes at 4.82:1, same hue */
  --line: rgba(23,20,15,0.15);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{max-width:100vw;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit; text-decoration:none;}
::selection{background:var(--mustard); color:var(--ink);}
.display{font-family:'Anton',sans-serif; letter-spacing:0.3px; text-transform:uppercase;}
.mono{font-family:'IBM Plex Mono',monospace;}
.wrap{max-width:1120px; margin:0 auto; padding:0 28px;}
img{max-width:100%; display:block;}
:focus-visible{outline:3px solid var(--register); outline-offset:2px;}
button{font-family:inherit;}
@media (prefers-reduced-motion: reduce){ *{animation:none !important; transition:none !important;} html{scroll-behavior:auto;} }

/* ================= masthead strip ================= */
.masthead{background:var(--ink); color:var(--paper);}
.masthead-inner{max-width:1120px; margin:0 auto; padding:7px 28px; display:flex; gap:22px; flex-wrap:wrap; justify-content:center; font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:0.5px; text-transform:uppercase; color:#B9B09A;}

/* ================= top bar ================= */
.topbar{position:sticky; top:0; z-index:50; background:var(--paper); border-bottom:1px solid var(--ink);}
.topbar-inner{max-width:1120px; margin:0 auto; padding:20px 28px; display:flex; align-items:center; gap:28px;}
.logo{font-family:'Anton',sans-serif; font-size:24px; letter-spacing:0.5px; text-transform:uppercase;}
.logo .dot{color:var(--stamp);}
.main-nav{display:flex; gap:26px; font-family:'IBM Plex Mono'; font-size:12.5px; text-transform:uppercase; letter-spacing:0.6px;}
.main-nav a{padding-bottom:3px; border-bottom:2px solid transparent; color:var(--ink);}
.main-nav a:hover{border-color:var(--line);}
.main-nav a.current{color:var(--ink); border-color:var(--stamp); font-weight:600;}
.search-box{position:relative; flex:1; display:flex; align-items:center; gap:8px; border-bottom:1.5px solid var(--ink); padding:6px 2px; max-width:280px; margin-left:auto;}
.search-box input{border:none; background:transparent; outline:none; width:100%; font-family:'Inter'; font-size:14px; color:var(--ink);}
.search-box input::placeholder{color:var(--faded);}
.search-suggest{position:absolute; top:calc(100% + 10px); left:0; right:0; background:#FFFFFF; border-radius:10px; box-shadow:0 14px 34px rgba(23,20,15,0.16); overflow:hidden; z-index:80; text-align:left;}
.search-suggest .sg-item{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 14px; font-size:13px; cursor:pointer; border-bottom:1px solid var(--line);}
.search-suggest .sg-item:last-child{border-bottom:none;}
.search-suggest .sg-item:hover{background:var(--paper);}
.search-suggest .sg-item .sg-tag{font-family:'IBM Plex Mono'; font-size:10px; text-transform:uppercase; color:var(--faded);}
.staff-link{font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--faded); white-space:nowrap;}
.staff-link:hover{color:var(--ink);}

/* ================= starburst badge ================= */
.burst{
  --burst-size:150px;
  width:var(--burst-size); height:var(--burst-size); flex-shrink:0;
  background:var(--stamp); color:#fff; display:flex; flex-direction:column; align-items:center; justify-content:center;
  clip-path: polygon(50% 0%, 61% 18%, 82% 8%, 78% 31%, 100% 39%, 80% 52%, 91% 74%, 68% 68%, 66% 91%, 50% 76%, 34% 91%, 32% 68%, 9% 74%, 20% 52%, 0% 39%, 22% 31%, 18% 8%, 39% 18%);
  transform:rotate(-6deg); text-align:center; line-height:1;
}
.burst .n{font-family:'Anton'; font-size:calc(var(--burst-size) * 0.24);}
.burst .u{font-family:'IBM Plex Mono'; font-size:calc(var(--burst-size) * 0.075); letter-spacing:1px; margin-top:2px;}
.burst.sm{--burst-size:74px;}
.burst.md{--burst-size:96px;}
.burst.register{background:var(--register);}
.burst.ink{background:var(--ink);}

/* ================= hero ================= */
.hero{padding:56px 0 44px; display:grid; grid-template-columns:1.3fr 1fr; gap:40px; align-items:center;}
.hero-eyebrow{font-family:'IBM Plex Mono'; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--stamp); margin-bottom:14px;}
.hero h1{font-size:clamp(38px,6vw,72px); line-height:1.08; margin:0 0 20px;}
.hero h1 mark{background:var(--mustard); color:var(--ink); padding:0 8px; box-decoration-break:clone; -webkit-box-decoration-break:clone;}
.hero p{max-width:460px; color:#4B4536; font-size:16.5px; line-height:1.6; margin:0 0 28px;}
.hero-search{display:flex; align-items:center; gap:0; border-bottom:2px solid var(--ink); max-width:420px; padding-bottom:8px;}
.hero-search input{flex:1; border:none; background:transparent; outline:none; font-size:17px; font-family:'Inter'; padding:4px 0;}
.hero-search button{border:none; background:none; font-family:'IBM Plex Mono'; font-size:13px; text-transform:uppercase; letter-spacing:0.5px; cursor:pointer; border-bottom:2px solid var(--stamp); padding-bottom:2px; color:var(--stamp); font-weight:600;}
.hero-stats{display:flex; gap:28px; margin-top:26px; font-family:'IBM Plex Mono';}
.hero-stats .n{font-size:22px; font-weight:600; color:var(--register);}
.hero-stats .l{font-size:10.5px; text-transform:uppercase; letter-spacing:0.8px; color:var(--faded);}
.hero-art{display:flex; flex-direction:column; align-items:center; gap:10px;}
.hero-art .burst{--burst-size:200px;}
.hero-art .caption{font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--faded); text-align:center; text-transform:uppercase; letter-spacing:0.4px;}

/* ================= section headers ================= */
.section-head{display:flex; align-items:baseline; justify-content:space-between; margin:64px 0 22px; gap:20px; flex-wrap:wrap;}
.section-head .eyebrow{display:block; font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--stamp); margin-bottom:6px;}
.section-head h2{font-size:clamp(24px,3vw,32px); margin:0; font-family:'Anton'; text-transform:uppercase; letter-spacing:0.3px;}
.section-head a{font-family:'IBM Plex Mono'; font-size:12px; color:var(--ink); border-bottom:1px solid var(--ink); white-space:nowrap; padding-bottom:2px;}
.section-head a:hover{color:var(--stamp); border-color:var(--stamp);}

/* ================= category tiles ================= */
.tile-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:14px;}
.cat-tile{background:#FFFFFF; border-radius:16px; overflow:hidden; display:flex; flex-direction:column; transition:transform .18s ease, box-shadow .18s ease; box-shadow:0 1px 2px rgba(23,20,15,0.05);}
.cat-tile:hover{transform:translateY(-4px); box-shadow:0 16px 30px rgba(23,20,15,0.18);}
.cat-tile-image{width:100%; aspect-ratio:16/10; overflow:hidden; background:linear-gradient(135deg, var(--paper-deep), var(--paper));}
.cat-tile-image img{width:100%; height:100%; object-fit:cover; display:block;}
.cat-tile-image .icon{width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:56px; margin:0;}
.cat-tile-body{padding:16px 18px 20px;}
.cat-tile .name{font-family:'Anton'; font-size:16px; text-transform:uppercase; letter-spacing:0.2px;}
.cat-tile .count{font-family:'IBM Plex Mono'; font-size:11px; color:var(--faded); margin-top:4px; text-transform:uppercase;}

/* ================= store wall ================= */
.store-wall{display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:14px;}
.store-tile{background:#FFFFFF; border-radius:16px; padding:24px; display:flex; flex-direction:column; gap:14px; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease; box-shadow:0 1px 2px rgba(23,20,15,0.05);}
.store-tile:hover{transform:translateY(-4px); box-shadow:0 16px 30px rgba(23,20,15,0.18);}
.store-tile:nth-child(3n+1):hover{background:var(--stamp); color:#fff;}
.store-tile:nth-child(3n+2):hover{background:var(--ink); color:var(--paper);}
.store-tile:nth-child(3n):hover{background:var(--register); color:var(--paper);}
.store-tile .mark{width:44px; height:44px; border-radius:11px; background:var(--paper); display:flex; align-items:center; justify-content:center; font-family:'Anton'; font-size:16px;}
.store-tile:hover .mark{background:rgba(255,255,255,0.18);}
.store-tile .name{font-size:14px; font-weight:600;}
.store-tile .count{font-family:'IBM Plex Mono'; font-size:10.5px; color:var(--faded); text-transform:uppercase;}
.store-tile:hover .count{color:inherit; opacity:0.7;}

/* ================= alpha strip ================= */
.alpha-strip{display:flex; flex-wrap:wrap; gap:2px; padding:20px 0; border-bottom:1px solid var(--line); margin-bottom:6px; font-family:'IBM Plex Mono'; font-size:12.5px;}
.alpha-strip a{padding:5px 9px;}
.alpha-strip a:hover{background:var(--ink); color:var(--paper);}

/* ================= tabs (replaces chip filters) ================= */
.tab-row{display:flex; gap:26px; border-bottom:1px solid var(--line); overflow-x:auto; margin:8px 0 6px;}
.tab{font-family:'IBM Plex Mono'; font-size:12.5px; text-transform:uppercase; letter-spacing:0.4px; padding:12px 0; border-bottom:2px solid transparent; white-space:nowrap; background:none; border-left:none; border-right:none; border-top:none; cursor:pointer; color:var(--faded);}
.tab.active{color:var(--ink); border-bottom-color:var(--stamp);}

/* ================= deal list — elevated cards, real CTA, trust signals ================= */
.deal-list{display:flex; flex-direction:column; gap:14px;}
.deal-row{display:flex; align-items:center; gap:24px; padding:24px; border-radius:18px; background:#FFFFFF; box-shadow:0 1px 2px rgba(23,20,15,0.05), 0 1px 1px rgba(23,20,15,0.03); position:relative; transition:box-shadow .18s ease, transform .18s ease;}
.deal-row:hover{box-shadow:0 18px 34px rgba(23,20,15,0.12); transform:translateY(-2px);}
.deal-row.expired{opacity:0.5;}
.deal-row.expired:hover{transform:none; box-shadow:0 1px 2px rgba(23,20,15,0.05);}
.deal-row .info{flex:1; min-width:0;}
.deal-row .store-line{display:flex; align-items:center; gap:10px; margin-bottom:5px; flex-wrap:wrap;}
.deal-row .store-line a{font-family:'IBM Plex Mono'; font-size:11px; text-transform:uppercase; letter-spacing:0.6px; color:var(--faded);}
.deal-row .store-line a:hover{color:var(--ink);}
.tag{font-family:'IBM Plex Mono'; font-size:10px; text-transform:uppercase; letter-spacing:0.4px; padding:3px 9px; border-radius:20px;}
.tag.featured{background:var(--mustard); color:var(--ink);}
.tag.verified{background:rgba(20,80,63,0.1); color:var(--register);}
.tag.verified::before{content:"✓ "; }
.tag.deal{background:rgba(23,20,15,0.06); color:var(--faded);}
.deal-row h3{font-size:18px; margin:0 0 6px; font-weight:700; line-height:1.25;}
.deal-row p{font-size:13.5px; color:#5B5340; margin:0 0 12px; line-height:1.5; max-width:520px;}
.deal-row .meta-line{display:flex; gap:16px; margin-top:10px; font-family:'IBM Plex Mono'; font-size:11px; color:var(--faded); flex-wrap:wrap; align-items:center;}
.deal-row .meta-line .soon{color:var(--stamp);}
.fresh-tag{display:flex; align-items:center; gap:5px; color:var(--register);}
.fresh-tag::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--register); display:inline-block;}
.success-meter-wrap{display:flex; align-items:center; gap:8px; margin-top:2px;}
.success-meter{height:4px; width:90px; background:rgba(23,20,15,0.08); border-radius:3px; overflow:hidden;}
.success-meter-fill{height:100%; background:var(--register); border-radius:3px;}
.success-label{font-family:'IBM Plex Mono'; font-size:10.5px; color:var(--faded);}
.deal-row .votes{display:flex; gap:14px; margin-top:10px;}
.deal-row .votes button{background:none; border:none; font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--faded); cursor:pointer; padding:0;}
.deal-row .votes button:hover{color:var(--ink);}
.deal-row .action{flex-shrink:0; display:flex; flex-direction:column; align-items:flex-end; gap:8px;}
.cta-btn{background:var(--stamp); color:#fff; border:none; padding:13px 24px; border-radius:999px; font-family:'IBM Plex Mono'; font-weight:700; font-size:12px; text-transform:uppercase; letter-spacing:0.5px; cursor:pointer; box-shadow:0 8px 18px rgba(200,30,30,0.28); white-space:nowrap; transition:transform .12s ease, box-shadow .12s ease; will-change:transform;}
.cta-btn:hover{transform:translateY(-2px); box-shadow:0 12px 22px rgba(200,30,30,0.34);}
.cta-btn:active{transform:translateY(0) scale(0.97);}
.cta-btn.outline{background:transparent; color:var(--ink); box-shadow:none; border:2px solid var(--ink); padding:11px 22px;}
.cta-btn.outline:hover{background:var(--ink); color:#fff;}
.reveal-link{background:none; border:none; font-family:'IBM Plex Mono'; font-size:13px; text-transform:uppercase; letter-spacing:0.4px; cursor:pointer; border-bottom:2px solid var(--ink); padding-bottom:3px; color:var(--ink); font-weight:600;}
.reveal-link:hover{border-color:var(--stamp); color:var(--stamp);}

/* ================= tear-to-reveal (signature interaction) ================= */
@keyframes tearAway{
  0%{transform:rotate(0deg) translate(0,0); opacity:1;}
  100%{transform:rotate(-16deg) translate(46px,-10px); opacity:0;}
}
@keyframes stubIn{
  0%{transform:scale(0.7) rotate(-4deg); opacity:0;}
  60%{transform:scale(1.04) rotate(1deg); opacity:1;}
  100%{transform:scale(1) rotate(0deg); opacity:1;}
}
@keyframes stubPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(20,80,63,0.28);}
  50%{box-shadow:0 0 0 6px rgba(20,80,63,0);}
}
.tear-btn.tearing{animation:tearAway .38s cubic-bezier(.4,0,.2,1) forwards; pointer-events:none;}
.code-stub{
  display:flex; flex-direction:column; align-items:flex-end; gap:6px;
  animation:stubIn .42s cubic-bezier(.34,1.56,.64,1) .34s both;
}
.code-stub .stub-chip{
  font-family:'IBM Plex Mono'; font-weight:700; font-size:14px; letter-spacing:1px;
  background:#fff; border:2px dashed var(--register); color:var(--register);
  border-radius:10px; padding:10px 16px; cursor:pointer; animation:stubPulse 2.2s ease-out 1;
}
.code-stub .stub-hint{font-family:'IBM Plex Mono'; font-size:10px; color:var(--faded); text-transform:uppercase;}
.code-stub.copied .stub-chip{border-color:var(--stamp); color:var(--stamp);}

/* ================= odometer stat counters ================= */
.odo{font-variant-numeric:tabular-nums;}

/* ================= live deal ticker ================= */
.ticker{overflow:hidden; white-space:nowrap; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:13px 0; margin-top:8px;}
.ticker-track{display:inline-flex; gap:0; animation:tickerScroll 32s linear infinite;}
.ticker:hover .ticker-track{animation-play-state:paused;}
@keyframes tickerScroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
.ticker-item{display:inline-flex; align-items:center; gap:8px; font-family:'IBM Plex Mono'; font-size:12px; color:var(--faded); padding:0 26px; border-right:1px solid var(--line); white-space:nowrap;}
.ticker-item b{color:var(--ink);}
.ticker-item .dot-live{width:6px; height:6px; border-radius:50%; background:var(--register); display:inline-block; animation:pulseDot 1.6s ease-in-out infinite;}
@keyframes pulseDot{0%,100%{opacity:1;} 50%{opacity:.3;}}

/* ================= magnetic burst hover ================= */
.burst{transition:transform .15s ease-out;}

/* ================= featured deal-of-day block ================= */
.deal-of-day{display:grid; grid-template-columns:auto 1fr; gap:32px; align-items:center; padding:38px 36px; background:#FFFFFF; border-radius:22px; margin:8px 0 0; box-shadow:0 20px 44px rgba(23,20,15,0.09);}
.deal-of-day .info h3{font-size:clamp(24px,3vw,34px); margin:6px 0 10px; font-family:'Anton'; text-transform:uppercase; line-height:1.05;}
.deal-of-day .info p{font-size:14.5px; color:#4B4536; max-width:760px; margin:0 0 16px;}
.deal-of-day .store-line{font-family:'IBM Plex Mono'; font-size:11.5px; text-transform:uppercase; letter-spacing:0.6px; color:var(--faded); margin-bottom:2px;}

/* ================= extension promo banner ================= */
.ext-banner{background:linear-gradient(120deg, #1F1B14, #2E271C); color:var(--paper); border-radius:22px; padding:38px 40px; display:flex; align-items:center; justify-content:space-between; gap:28px; margin:60px 0 0; flex-wrap:wrap;}
.ext-banner .copy{max-width:480px;}
.ext-banner .eyebrow{font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--mustard); margin-bottom:8px;}
.ext-banner h3{font-family:'Anton'; text-transform:uppercase; font-size:24px; margin:0 0 8px;}
.ext-banner p{color:#B9B09A; font-size:13.5px; margin:0; line-height:1.55;}
.ext-banner .cta-btn{margin-top:18px;}
.ext-badges{display:flex; gap:10px; flex-shrink:0;}
.ext-chip{background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.14); border-radius:14px; padding:16px 20px; text-align:center; min-width:96px;}
.ext-chip .n{font-family:'IBM Plex Mono'; font-weight:700; font-size:18px; color:#fff;}
.ext-chip .l{font-family:'IBM Plex Mono'; font-size:9.5px; text-transform:uppercase; color:#8f8672; margin-top:3px;}

/* ================= code reveal modal ================= */
.code-modal-overlay{position:fixed; inset:0; background:rgba(23,20,15,0.6); z-index:200; display:flex; align-items:center; justify-content:center; padding:20px;}
.code-modal{background:var(--paper); max-width:380px; width:100%; padding:36px 32px; text-align:center; position:relative;}
.code-modal .close-x{position:absolute; top:14px; right:16px; background:none; border:none; font-size:18px; cursor:pointer; color:var(--faded);}
.code-modal .burst{--burst-size:80px; margin:0 auto 16px;}
.code-modal h3{margin:0 0 6px; font-size:18px;}
.code-modal .store-sub{font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--faded); margin-bottom:22px; text-transform:uppercase;}
.code-modal .big-code{font-family:'IBM Plex Mono'; font-weight:700; font-size:23px; letter-spacing:2px; border:2px dashed var(--register); color:var(--register); background:rgba(20,80,63,0.06); padding:16px; margin-bottom:14px; cursor:pointer;}
.code-modal .copy-msg{font-size:11.5px; color:var(--register); min-height:16px; margin-bottom:18px; font-family:'IBM Plex Mono'; text-transform:uppercase;}
.code-modal .go-btn{display:block; width:100%; background:var(--ink); color:var(--paper); border:none; padding:14px; font-family:'IBM Plex Mono'; text-transform:uppercase; font-size:12.5px; cursor:pointer;}
.code-modal .go-btn:hover{background:var(--stamp);}

/* ================= detail page banner ================= */
.detail-banner{background:var(--ink); color:var(--paper); padding:52px 0; margin-bottom:6px;}
.detail-banner-inner{display:flex; align-items:center; gap:30px; flex-wrap:wrap;}
.detail-banner h1{font-size:clamp(32px,5vw,52px); margin:0 0 8px; line-height:1;}
.detail-banner p{color:#B9B09A; font-size:14.5px; max-width:820px; margin:0 0 12px;}
.detail-banner .meta-line{font-family:'IBM Plex Mono'; font-size:12px; color:#8f8672; display:flex; gap:18px; flex-wrap:wrap;}
.detail-banner .meta-line b{color:var(--mustard);}
.detail-banner .stars{color:var(--mustard);}

.event-banner{background:var(--stamp); color:#fff; padding:56px 0; text-align:center; margin-bottom:6px;}
.event-banner .date-tag{font-family:'IBM Plex Mono'; font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:#FBD9D9; margin-bottom:10px;}
.event-banner h1{font-size:clamp(32px,6vw,58px); margin:0 0 10px; line-height:0.98;}
.event-banner p{color:#FBD9D9; font-size:14.5px; max-width:480px; margin:0 auto;}
.countdown{display:flex; gap:20px; justify-content:center; margin-top:24px; font-family:'IBM Plex Mono';}
.countdown .unit .n{font-size:28px; font-weight:700; color:#fff;}
.countdown .unit .u{font-size:10px; text-transform:uppercase; color:#FBD9D9; letter-spacing:0.6px;}

/* ================= breadcrumb ================= */
.crumbs{padding:18px 0 0; font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--faded);}
.crumbs a:hover{color:var(--ink); text-decoration:underline;}
.crumbs .sep{margin:0 6px;}
.crumbs.on-dark{color:#8f8672;}
.crumbs.on-dark a:hover{color:var(--paper);}

/* ================= how it works ================= */
.how-row{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); margin-top:6px;}
.how-step{padding:26px 24px 26px 0; border-right:1px solid var(--line);}
.how-step:last-child{border-right:none;}
.how-step .step-num{font-family:'Anton'; font-size:34px; color:var(--stamp); line-height:1;}
.how-step h4{margin:10px 0 6px; font-size:14.5px; text-transform:uppercase; letter-spacing:0.3px;}
.how-step p{margin:0; font-size:13px; color:#5b5340; line-height:1.55;}

/* ================= testimonial ================= */
.quote-block{display:grid; grid-template-columns:auto 1fr; gap:20px; padding:8px 0 30px; border-bottom:1px solid var(--line); margin-bottom:26px;}
.quote-block:last-child{border-bottom:none;}
.quote-mark{font-family:'Anton'; font-size:64px; color:var(--mustard); line-height:0.6;}
.quote-block p{font-size:17px; line-height:1.55; margin:0 0 10px; max-width:820px;}
.quote-block .who{font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--faded); text-transform:uppercase;}
.quote-block .stars{color:var(--mustard); margin-left:8px;}

/* ================= newsletter ================= */
.newsletter{background:var(--register); color:var(--paper); padding:44px 0; margin:70px 0 0;}
.newsletter-inner{display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.newsletter h3{margin:0 0 6px; font-size:22px; font-family:'Anton'; text-transform:uppercase;}
.newsletter p{margin:0; color:#BFD8CE; font-size:13px; max-width:340px;}
.newsletter form{display:flex; align-items:center; gap:0; border-bottom:2px solid var(--paper); min-width:300px; max-width:100%; padding-bottom:6px;}
.newsletter input{flex:1; border:none; background:transparent; padding:8px 0; font-family:'Inter'; font-size:14.5px; outline:none; color:var(--paper);}
.newsletter input::placeholder{color:#BFD8CE;}
.newsletter button{border:none; background:none; color:var(--mustard); padding:0 0 0 14px; font-family:'IBM Plex Mono'; font-size:12.5px; text-transform:uppercase; cursor:pointer; font-weight:700;}

/* ================= FAQ accordion ================= */
.faq-list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{cursor:pointer; padding:20px 4px; font-weight:600; font-size:15px; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:12px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+"; font-family:'IBM Plex Mono'; font-size:20px; color:var(--stamp); flex-shrink:0;}
.faq-item[open] summary::after{content:"–";}
.faq-item .faq-body{padding:0 4px 20px; font-size:14px; color:#4B4536; line-height:1.65; max-width:640px;}

/* ================= related links ================= */
.related-row{display:flex; gap:0; flex-wrap:wrap; border-top:1px solid var(--line);}
.related-pill{font-family:'IBM Plex Mono'; font-size:12.5px; padding:14px 20px 14px 0; margin-right:20px; border-bottom:2px solid transparent;}
.related-pill:hover{border-bottom-color:var(--stamp); color:var(--stamp);}

/* ================= SEO content blocks ================= */
.last-updated{font-family:'IBM Plex Mono'; font-size:11px; color:var(--faded); text-transform:uppercase; letter-spacing:0.3px; display:flex; align-items:center; gap:6px; margin:14px 0 0;}
.last-updated::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--register); display:inline-block;}
.last-updated.on-dark{color:#8f8672;}

.intro-copy{max-width:1120px; font-size:14.5px; line-height:1.75; color:#3E3A32;}
.intro-copy p{margin:0 0 14px;}
.intro-copy h3{margin-top:22px;}

/* ================= collapsible about box ================= */
.about-box{position:relative; overflow:hidden; max-height:210px; transition:max-height .4s ease; background:#FFFFFF; border:1px solid var(--line); border-radius:14px; padding:24px 26px; margin-top:6px;}
.about-box.expanded{max-height:2400px;}
.about-box .fade-overlay{position:absolute; bottom:0; left:0; right:0; height:64px; background:linear-gradient(rgba(255,255,255,0), rgba(255,255,255,0.97)); pointer-events:none; transition:opacity .3s ease;}
.about-box.expanded .fade-overlay{opacity:0; pointer-events:none;}
.about-toggle{display:inline-flex; align-items:center; gap:6px; margin-top:14px; background:none; border:1.5px solid var(--ink); border-radius:20px; padding:9px 18px; font-family:'IBM Plex Mono'; font-size:11.5px; text-transform:uppercase; letter-spacing:0.4px; cursor:pointer; color:var(--ink);}
.about-toggle:hover{background:var(--ink); color:var(--paper);}
.intro-copy p:last-child{margin-bottom:0;}
.intro-copy strong{color:var(--ink);}

/* ================= legal page layout with sticky TOC sidebar ================= */
.legal-layout{display:grid; grid-template-columns:1fr 260px; gap:56px; align-items:start; margin-top:10px;}
.legal-toc{position:sticky; top:100px; background:#FFFFFF; border:1px solid var(--line); border-radius:14px; padding:22px;}
.legal-toc .toc-label{font-family:'IBM Plex Mono'; text-transform:uppercase; font-size:10.5px; color:var(--faded); letter-spacing:0.5px; margin-bottom:12px;}
.legal-toc a{display:block; padding:8px 0; color:var(--ink); text-decoration:none; font-size:13px; border-bottom:1px solid var(--line);}
.legal-toc a:last-child{border-bottom:none;}
.legal-toc a:hover{color:var(--stamp);}
@media (max-width:860px){ .legal-layout{grid-template-columns:1fr;} .legal-toc{position:static; margin-top:8px;} }

.subcat-row{display:flex; gap:0; flex-wrap:wrap; border-top:1px solid var(--line); margin-top:6px;}
.subcat-row a{font-family:'IBM Plex Mono'; font-size:12.5px; padding:14px 20px 14px 0; margin-right:20px; border-bottom:2px solid transparent; color:var(--ink);}
.subcat-row a:hover{border-bottom-color:var(--stamp); color:var(--stamp);}

/* ================= author byline (on store/category/seasonal pages) ================= */
.byline{display:flex; align-items:center; gap:12px; margin-top:16px;}
.byline .avatar{width:34px; height:34px; border-radius:50%; background:var(--stamp); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Anton'; font-size:12.5px; flex-shrink:0;}
.byline .info{font-family:'IBM Plex Mono'; font-size:11.5px; color:var(--faded); line-height:1.5;}
.byline .info b{color:var(--ink); font-weight:600;}
.byline.on-dark .info{color:#B9B09A;}
.byline.on-dark .info b{color:var(--paper);}
.byline a{color:inherit; border-bottom:1px dashed currentColor; padding-bottom:1px;}
.byline a:hover{opacity:0.75;}

/* ================= authors hub ================= */
.author-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px;}
.author-card{background:#FFFFFF; border-radius:16px; padding:26px; box-shadow:0 1px 2px rgba(23,20,15,0.05); transition:transform .18s ease, box-shadow .18s ease;}
.author-card:hover{transform:translateY(-4px); box-shadow:0 16px 30px rgba(23,20,15,0.18);}
.author-card .avatar-lg{width:72px; height:72px; border-radius:50%; background:var(--ink); color:var(--paper); display:flex; align-items:center; justify-content:center; font-family:'Anton'; font-size:24px; margin-bottom:16px;}
.author-card h2{margin:0 0 2px; font-size:16px;}
.author-card .role{font-family:'IBM Plex Mono'; font-size:10.5px; color:var(--stamp); text-transform:uppercase; letter-spacing:0.4px; margin-bottom:12px;}
.author-card p{font-size:13px; color:#5b5340; line-height:1.55; margin:0 0 14px;}
.author-card .a-stats{font-family:'IBM Plex Mono'; font-size:10.5px; color:var(--faded); display:flex; gap:14px; border-top:1px solid var(--line); padding-top:12px;}
.author-card .a-stats b{color:var(--ink);}

/* ================= author detail page ================= */
.author-banner-inner{display:flex; align-items:center; gap:26px; flex-wrap:wrap;}
.author-banner-inner .avatar-xl{width:88px; height:88px; border-radius:50%; background:var(--stamp); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Anton'; font-size:30px; flex-shrink:0;}
.author-stat-row{display:flex; gap:28px; margin-top:14px; font-family:'IBM Plex Mono'; flex-wrap:wrap;}
.author-stat-row .n{font-size:20px; font-weight:600; color:var(--mustard);}
.author-stat-row .l{font-size:10.5px; text-transform:uppercase; letter-spacing:0.6px; color:#8f8672;}

.store-blurb-list{border-top:1px solid var(--line);}
.store-blurb{display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); align-items:flex-start;}
.store-blurb > div:nth-child(2){flex:1; min-width:0;}
.store-blurb .mark{width:40px; height:40px; border-radius:10px; background:var(--ink); color:var(--paper); display:flex; align-items:center; justify-content:center; font-family:'Anton'; font-size:14px; flex-shrink:0;}
.store-blurb h4{margin:0 0 4px; font-size:14.5px;}
.store-blurb p{margin:0; font-size:13px; color:#5b5340; line-height:1.55; max-width:820px;}
.store-blurb a.view-link{font-family:'IBM Plex Mono'; font-size:11px; text-transform:uppercase; color:var(--stamp); white-space:nowrap; margin-left:auto; padding-top:10px;}

/* ================= snapshot bar (category/store freshness narrative) ================= */
.snapshot-box{background:var(--paper-deep); border-left:4px solid var(--stamp); border-radius:8px; padding:20px 24px; margin-top:22px; box-shadow:0 6px 18px rgba(23,20,15,0.06);}
.snapshot-box .snap-eyebrow{font-family:'IBM Plex Mono'; font-size:10.5px; text-transform:uppercase; letter-spacing:0.6px; color:var(--stamp);}
.snapshot-box p{font-size:13.5px; line-height:1.65; margin:8px 0 0; color:#3E3A32; max-width:none;}
.snapshot-box p b{color:var(--ink);}
.snapshot-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin-top:20px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.snapshot-stats .cell{padding:16px 18px; border-right:1px solid var(--line);}
.snapshot-stats .cell:last-child{border-right:none;}
.snapshot-stats .cell .n{font-family:'Anton'; font-size:22px;}
.snapshot-stats .cell .l{font-family:'IBM Plex Mono'; font-size:9.5px; text-transform:uppercase; letter-spacing:0.3px; color:var(--faded); margin-top:4px;}
@media (max-width:640px){ .snapshot-stats{grid-template-columns:repeat(2,1fr);} .snapshot-stats .cell:nth-child(2){border-right:none;} }

/* ================= policy icon grid ================= */
.policy-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:6px;}
.policy-item{background:#FFFFFF; padding:16px 18px; display:flex; align-items:center; gap:10px; font-size:12.5px;}
.policy-item .ic{font-size:17px; flex-shrink:0;}
.policy-item.no{opacity:0.45;}
.policy-item .lbl{color:#3E3A32;}

/* ================= more-ways-to-save tips ================= */
.tips-list{border-top:1px solid var(--line); margin-top:6px;}
.tip-row{display:flex; gap:16px; padding:18px 0; border-bottom:1px solid var(--line);}
.tip-row .tip-num{font-family:'Anton'; font-size:20px; color:var(--mustard); flex-shrink:0; width:32px;}
.tip-row > div:last-child{flex:1; min-width:0;}
.tip-row h4{margin:0 0 4px; font-size:14px;}
.tip-row p{margin:0; font-size:13px; color:#5b5340; line-height:1.6; max-width:780px;}

/* ================= live verification activity feed ================= */
.activity-feed{border-top:1px solid var(--line); margin-top:6px;}
.activity-row{display:flex; align-items:center; gap:12px; padding:12px 0; border-bottom:1px solid var(--line); font-size:12.5px; color:var(--faded);}
.activity-row .dot{width:7px; height:7px; border-radius:50%; flex-shrink:0;}
.activity-row .dot.ok{background:var(--register);}
.activity-row .dot.bad{background:var(--stamp);}
.activity-row b{color:var(--ink);}
.activity-row .time{margin-left:auto; font-family:'IBM Plex Mono'; font-size:11px; white-space:nowrap;}

/* ================= special-audience discount callout ================= */
.special-callout{background:var(--ink); color:var(--paper); border-radius:14px; padding:20px 24px; display:flex; align-items:center; gap:16px; margin-top:8px; flex-wrap:wrap;}
.special-callout .ic{font-size:26px; flex-shrink:0;}
.special-callout .txt{font-size:13px; color:#C9C3B4; line-height:1.55;}
.special-callout .txt b{color:var(--mustard);}

/* ================= customer review cards ================= */
.review-list{border-top:1px solid var(--line); margin-top:6px;}
.review-card{border-bottom:1px solid var(--line); padding:18px 0;}
.review-card .stars{color:var(--mustard); font-size:13px;}
.review-card .who{font-family:'IBM Plex Mono'; font-size:11px; color:var(--faded); margin-top:5px;}
.review-card p{font-size:13.5px; color:#3E3A32; margin:8px 0 0; line-height:1.6; max-width:820px;}

.compare-table{width:100%; max-width:760px; border-collapse:collapse; font-size:13px; margin-top:6px;}
.compare-table th{text-align:left; font-family:'IBM Plex Mono'; font-size:10.5px; text-transform:uppercase; color:var(--faded); border-bottom:2px solid var(--ink); padding:10px 8px;}
.compare-table td{border-bottom:1px solid var(--line); padding:12px 8px; vertical-align:top;}
.compare-table td strong{display:block; margin-bottom:2px;}

.expired-list{border-top:1px solid var(--line); max-width:760px;}
.expired-row{display:flex; align-items:center; gap:14px; padding:12px 0; border-bottom:1px solid var(--line); font-size:13px; color:var(--faded); opacity:0.75;}
.expired-row .badge-x{font-family:'IBM Plex Mono'; font-size:10px; text-transform:uppercase; background:rgba(200,30,30,0.08); color:var(--stamp); padding:2px 8px; border-radius:12px; flex-shrink:0;}
.expired-row .code{font-family:'IBM Plex Mono'; text-decoration:line-through; color:var(--ink);}
.expired-row .exp-date{margin-left:auto; font-family:'IBM Plex Mono'; font-size:11px; white-space:nowrap;}

.savings-banner{background:var(--paper-deep); border-radius:16px; padding:24px 30px; display:inline-flex; align-items:center; gap:0; margin-top:8px; max-width:100%;}
.savings-banner .sb-stat{display:flex; flex-direction:column;}
.savings-banner .big-num{font-family:'Anton'; font-size:28px; color:var(--register); line-height:1;}
.savings-banner .sb-label{font-size:11.5px; color:#4B4536; margin-top:6px; max-width:170px; line-height:1.45;}
.savings-banner .sb-divider{width:1px; height:42px; background:var(--line); margin:0 28px;}
@media (max-width:640px){ .savings-banner{flex-wrap:wrap; display:flex;} .savings-banner .sb-divider{display:none;} .savings-banner .sb-stat{margin-bottom:12px;} }

.store-social{display:flex; gap:14px; margin-top:14px; font-family:'IBM Plex Mono'; font-size:11.5px;}
.store-social a{color:var(--faded); border-bottom:1px dashed var(--faded);}
.store-social a:hover{color:var(--ink); border-color:var(--ink);}
.store-social-icons{display:flex; flex-wrap:wrap; gap:8px;}
.store-social-icons a{width:34px; height:34px; border-radius:50%; background:var(--paper-deep); color:var(--ink); display:inline-flex; align-items:center; justify-content:center; font-size:14px; transition:background .15s ease, color .15s ease;}
.store-social-icons a:hover{background:var(--ink); color:var(--paper);}

.price-tier-row{display:flex; gap:10px; flex-wrap:wrap; margin-top:6px;}
.price-tier-row a{font-family:'IBM Plex Mono'; font-size:12.5px; border:1.5px solid var(--ink); border-radius:20px; padding:9px 18px; color:var(--ink);}
.price-tier-row a:hover{background:var(--ink); color:var(--paper);}

.shipping-table{width:100%; border-collapse:collapse; font-size:13px; margin-top:6px; max-width:560px;}
.shipping-table th{text-align:left; font-family:'IBM Plex Mono'; font-size:10.5px; text-transform:uppercase; color:var(--faded); border-bottom:2px solid var(--ink); padding:10px 8px;}
.shipping-table td{border-bottom:1px solid var(--line); padding:11px 8px;}
.shipping-table td.method{font-weight:600;}
.shipping-table td.cutoff{font-family:'IBM Plex Mono'; color:var(--stamp);}

.yoy-note{background:var(--paper-deep); border-radius:12px; padding:16px 20px; font-size:13px; color:#4B4536; margin-top:8px; max-width:640px; line-height:1.6;}
.yoy-note b{color:var(--ink);}

.notify-row{display:flex; align-items:center; gap:0; border-bottom:2px solid var(--paper); max-width:380px; margin-top:14px; padding-bottom:6px;}
.notify-row input{flex:1; border:none; background:transparent; padding:8px 0; font-family:'Inter'; font-size:14px; outline:none; color:var(--paper);}
.notify-row input::placeholder{color:#FBD9D9;}
.notify-row button{border:none; background:none; color:#fff; font-family:'IBM Plex Mono'; font-size:12px; text-transform:uppercase; cursor:pointer; font-weight:700; padding-left:14px;}

/* ================= footer ================= */
footer.site-footer{background:var(--ink); color:#8f8672; padding:56px 0 0; margin-top:80px; font-size:12.5px; font-family:'IBM Plex Mono';}
.footer-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:30px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,0.12);}
.footer-grid h5{color:var(--paper); font-family:'Inter'; font-size:13px; text-transform:uppercase; letter-spacing:0.5px; margin:0 0 14px; font-weight:600;}
.footer-grid ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px;}
.footer-grid a:hover{color:var(--paper);}
.footer-grid .logo{color:var(--paper); margin-bottom:12px;}
.footer-bottom{padding:20px 0 36px; text-align:center;}

@media (max-width:860px){
  .hero{grid-template-columns:1fr;}
  .hero-art{order:-1;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .how-row{grid-template-columns:1fr;}
  .how-step{border-right:none; border-bottom:1px solid var(--line); padding:22px 0;}
  .deal-of-day{grid-template-columns:1fr; text-align:center;}
  .deal-of-day .burst{margin:0 auto;}
}
@media (max-width:640px){
  .search-box{display:none;}
  .main-nav{gap:14px;}
  /* Mobile menu was floating as a small box sized to its own content
     (inherited flex-grow-0/flex-shrink:0 from the desktop layout) instead
     of becoming a proper full-width dropdown panel below the logo row. */
  .navbar-collapse.show{
    flex-basis:100% !important;
    flex-grow:1 !important;
    flex-shrink:1 !important;
    width:100%;
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid var(--line);
  }
  .navbar-collapse.show .main-nav{flex-direction:column; align-items:flex-start; gap:14px;}
  /* Tighten the gap between masthead / nav row / search row / hero on
     mobile -- was leaving large empty bands above the hero content. */
  .topbar-inner{padding:14px 16px; gap:14px;}
  .hero-search{margin-top:6px;}
  .hero{padding:20px 0 24px;}
  .hero-eyebrow{margin-bottom:6px;}
  .detail-banner{padding:28px 0;}
  .deal-row{flex-direction:column; align-items:center; text-align:center;}
  .deal-row .burst{margin:0 auto;}
  .deal-row .info{width:100%;}
  .deal-row .store-line{justify-content:center;}
  .deal-row p{max-width:100%; margin-left:auto; margin-right:auto;}
  .deal-row .meta-line{justify-content:center;}
  .deal-row .votes{justify-content:center;}
  .deal-row .action{align-items:center; width:100%;}
  .quote-block{grid-template-columns:1fr;}
  .newsletter-inner{flex-direction:column; align-items:flex-start;}
  .newsletter form{width:100%; min-width:0;}
}

/* ================= category page: hero lede ================= */
.detail-banner h1{font-size:clamp(30px,4.8vw,48px); letter-spacing:0.2px;}
.detail-banner p.lede{color:#CBC3AC; font-size:14.5px; max-width:880px; margin:8px 0 4px; line-height:1.6;}
.detail-banner p.lede b{color:var(--mustard); font-weight:600;}

/* ================= category page: stat cards ================= */
.category-stat-row{display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:22px;}
.category-stat-card{background:#FFFFFF; border-radius:16px; padding:20px 22px; box-shadow:0 1px 2px rgba(23,20,15,0.05), 0 1px 1px rgba(23,20,15,0.03); transition:transform .18s ease, box-shadow .18s ease; border-top:3px solid var(--accent, var(--stamp));}
.category-stat-card:hover{transform:translateY(-3px); box-shadow:0 16px 30px rgba(23,20,15,0.12);}
.category-stat-card:nth-child(1){--accent:var(--stamp);}
.category-stat-card:nth-child(2){--accent:var(--register);}
.category-stat-card:nth-child(3){--accent:var(--mustard);}
.category-stat-card:nth-child(4){--accent:var(--ink);}
.category-stat-card .ico{width:34px; height:34px; border-radius:10px; background:var(--accent, var(--stamp)); color:#fff; display:flex; align-items:center; justify-content:center; font-size:14px; margin-bottom:14px;}
.category-stat-card .num{font-family:'Anton'; font-size:clamp(22px,3vw,30px); color:var(--ink); line-height:1;}
.category-stat-card .lbl{font-family:'IBM Plex Mono'; font-size:11px; text-transform:uppercase; letter-spacing:0.6px; color:var(--faded); margin-top:6px;}

/* ================= category page: subcategory pills ================= */
.subcat-pills{display:flex; flex-wrap:wrap; gap:10px; margin-top:20px;}
.subcat-pill{display:inline-flex; align-items:center; gap:7px; background:#FFFFFF; border:1px solid var(--line); border-radius:999px; padding:8px 16px; font-family:'IBM Plex Mono'; font-size:12.5px; color:var(--ink); text-decoration:none; transition:background .15s ease, color .15s ease, border-color .15s ease;}
.subcat-pill:hover{background:var(--ink); color:var(--paper); border-color:var(--ink);}
.subcat-pill .ct{font-size:10.5px; color:var(--faded); background:var(--paper-deep); border-radius:999px; padding:2px 7px;}
.subcat-pill:hover .ct{background:rgba(237,231,217,0.15); color:#B9B09A;}

/* ================= section-head eyebrow inline variant + count ================= */
.section-head .eyebrow{display:block; font-family:'IBM Plex Mono'; font-size:11px; letter-spacing:1.2px; text-transform:uppercase; color:var(--stamp); margin-bottom:6px;}
.section-head .count{font-family:'IBM Plex Mono'; font-size:14px; color:var(--faded); font-weight:400; text-transform:none; letter-spacing:0;}

/* ================= real logo w/ monogram fallback (used in code cards, store tiles) ================= */
.logo-wrap{position:relative; width:44px; height:44px; flex-shrink:0;}
.logo-wrap.sm{width:36px; height:36px;}
.logo-wrap .logo-img{width:100%; height:100%; object-fit:contain; background:#fff; border:1px solid var(--line); border-radius:11px; padding:4px;}
.logo-wrap .logo-mono{position:absolute; inset:0; border-radius:11px; background:var(--ink); color:var(--mustard); display:flex; align-items:center; justify-content:center; font-family:'Anton'; font-size:13px;}
.logo-wrap.sm .logo-mono{font-size:11px; border-radius:9px;}

/* ================= top codes grid ================= */
.code-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.code-card{background:#FFFFFF; border-radius:18px; padding:22px; display:flex; flex-direction:column; gap:14px; box-shadow:0 1px 2px rgba(23,20,15,0.05), 0 1px 1px rgba(23,20,15,0.03); transition:box-shadow .18s ease, transform .18s ease; position:relative;}
.code-card:hover{box-shadow:0 18px 34px rgba(23,20,15,0.12); transform:translateY(-2px);}
.code-card.pick{outline:2px solid var(--mustard); outline-offset:-2px; box-shadow:0 10px 28px rgba(240,180,42,0.28);}
.code-card .pick-flag{position:absolute; top:16px; right:16px; background:var(--mustard); color:var(--ink); font-family:'IBM Plex Mono'; font-size:9.5px; font-weight:600; letter-spacing:0.5px; text-transform:uppercase; padding:4px 9px; border-radius:5px;}
.code-card .top-row{display:flex; align-items:center; gap:12px;}
.code-card .store-name{font-weight:700; font-size:15px; line-height:1.2;}
.code-card .discount-badge{display:inline-flex; align-items:center; margin-top:5px; background:rgba(200,30,30,0.09); font-family:'IBM Plex Mono'; font-size:11px; font-weight:600; color:var(--stamp); padding:3px 9px; border-radius:999px;}
.code-card .title{font-size:15px; font-weight:700; color:#1F1B14; line-height:1.4; margin:0 0 8px; min-height:40px;}
.code-card .meta{font-family:'IBM Plex Mono'; font-size:10.5px; color:var(--faded); display:flex; align-items:center; gap:6px; text-transform:uppercase; letter-spacing:0.3px;}
.code-card .cta{display:block; text-align:center; padding:11px; border-radius:10px; font-family:'IBM Plex Mono'; font-size:12.5px; font-weight:600; text-transform:uppercase; letter-spacing:0.4px; text-decoration:none;}
.code-card .cta.fill{background:var(--mustard); color:var(--ink);}
.code-card .cta.fill:hover{background:var(--ink); color:var(--paper);}
.code-card .cta.outline{background:transparent; border:1.5px solid var(--ink); color:var(--ink);}
.code-card .cta.outline:hover{background:var(--ink); color:var(--paper);}
.code-card .all-link{font-family:'IBM Plex Mono'; font-size:11px; color:var(--faded); text-align:center; text-decoration:none;}
.code-card .all-link:hover{color:var(--ink);}

/* ================= popular stores teaser (grid, not bootstrap row/col) ================= */
.store-tile-grid{display:grid; grid-template-columns:repeat(6,1fr); gap:14px;}
.store-tile-card{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; background:#FFFFFF; border-radius:14px; padding:18px 12px; text-align:center; text-decoration:none; color:var(--ink); box-shadow:0 1px 2px rgba(23,20,15,0.05); transition:transform .18s ease, box-shadow .18s ease;}
.store-tile-card:hover{transform:translateY(-3px); box-shadow:0 14px 26px rgba(23,20,15,0.12); color:var(--ink);}
.store-tile-card .name{font-size:12.5px; font-weight:600;}

/* ================= which brands have codes ================= */
.brand-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:14px; overflow:hidden; margin-bottom:8px;}
.brand-cell{background:#FFFFFF; padding:16px 18px; display:flex; align-items:center; justify-content:space-between; font-size:13.5px; font-weight:600; text-decoration:none; color:var(--ink);}
.brand-cell:hover{background:var(--paper-deep);}
.brand-cell .ct{font-family:'IBM Plex Mono'; font-size:11.5px; font-weight:500; color:var(--faded);}

/* small coupon-count badge inside the A-Z list */
.az-list li a .ct{font-family:'IBM Plex Mono'; font-size:10px; color:var(--faded); margin-left:3px;}

/* ================= category page: A-Z store directory ================= */
.az-directory{background:#FFFFFF; border:1px solid var(--line); border-radius:16px; padding:26px 28px; margin-bottom:24px;}
.az-nav{display:flex; flex-wrap:wrap; gap:4px; padding-bottom:18px; margin-bottom:20px; border-bottom:1px solid var(--line);}
.az-nav a, .az-nav span{width:26px; height:26px; display:flex; align-items:center; justify-content:center; font-size:12px; border-radius:6px;}
.az-nav a{color:var(--ink); font-weight:600; text-decoration:none;}
.az-nav a:hover{background:var(--mustard); color:var(--ink);}
.az-nav span{color:#C9C1AC;}
.az-groups{display:flex; flex-direction:column; gap:22px;}
.az-group{scroll-margin-top:90px; display:flex; gap:22px; padding-bottom:18px; border-bottom:1px solid var(--line);}
.az-group:last-child{border-bottom:none; padding-bottom:0;}
.az-letter{font-family:'Anton'; font-size:26px; color:var(--mustard); width:36px; flex-shrink:0; -webkit-text-stroke:1px var(--ink);}
.az-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:6px 16px; flex:1;}
.az-list li a{font-size:13.5px; color:#3E3A32; text-decoration:none; border-bottom:1px solid transparent;}
.az-list li a:hover{color:var(--stamp); border-color:var(--stamp);}

@media (max-width:900px){
  .code-grid{grid-template-columns:repeat(2,1fr);}
  .store-tile-grid{grid-template-columns:repeat(3,1fr);}
  .brand-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .category-stat-row{grid-template-columns:repeat(2,1fr); gap:8px;}
  .category-stat-card{padding:14px 10px;}
  .category-stat-card .ico{width:26px; height:26px; margin-bottom:8px;}
  .az-group{flex-direction:column; gap:8px;}
  .az-letter{width:auto;}
  .code-grid{grid-template-columns:1fr;}
  .code-card{padding:16px;}
  .code-card .title{min-height:0;}
  .store-tile-grid{grid-template-columns:repeat(2,1fr);}
  .brand-grid{grid-template-columns:1fr;}
}

/* ================================================================
   SITE-WIDE MOBILE HARDENING
   Most components on the site (store page, homepage, author pages)
   had zero dedicated mobile rules before this pass — they relied
   entirely on flex/grid reflow, which breaks for long store names,
   coupon titles, and fixed min-widths. This section targets the
   specific overflow/cramping issues found on each page, rather than
   a blanket reset.
   ================================================================ */

/* store page: don't keep the sidebar pinned once it's a full-width
   stacked block above the content (Bootstrap already stacks col-lg-4
   under 992px — sticky here just causes the card to trail awkwardly
   down the page as you scroll past it) */
@media (max-width:991.98px){
  .store-sidebar-col{position:static !important; top:auto !important;}
}

@media (max-width:900px){
  /* homepage hero: two-column grid needs breathing room before it
     hits the existing 860px stack breakpoint */
  .author-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
}

@media (max-width:640px){
  /* generic page chrome: reclaim horizontal space on phones */
  .container{padding-left:16px; padding-right:16px;}
  .wrap{padding:0 16px;}
  .detail-banner .d-flex.align-items-center.gap-3{align-items:flex-start;}

  /* hero search + homepage newsletter: fixed max/min-widths assume desktop space */
  .hero-search{max-width:100%;}
  .newsletter form{min-width:0; width:100%;}

  /* code/promo modal: tighten padding so it doesn't feel cramped edge-to-edge */
  .code-modal{padding:28px 20px;}

  /* stat/snapshot boxes: reduce padding to match tighter container gutters */
  .snapshot-box, .about-box, .az-directory{padding:16px 18px;}
  .snapshot-stats .cell{padding:14px 10px;}

  /* FAQ items and the seasonal stat row were unchanged on mobile --
     desktop padding/gaps feel oversized against the tighter 16px gutters. */
  .faq-item summary{padding:16px 2px; font-size:14px;}
  .faq-item .faq-body{padding:0 2px 16px;}
  .event-stat-row{gap:16px; padding:12px 16px;}
  .event-stat-row .cell .n{font-size:20px;}

  /* 64px between sections was tuned for desktop's larger canvas --
     still clear separation on mobile without the large dead gaps. */
  .section-head{margin:36px 0 16px;}
}

@media (max-width:480px){
  /* author profile page: 84px avatar is set via inline style in
     author/view.php, so it needs !important to be overridden responsively
     without touching every inline occurrence in the template */
  .detail-banner .avatar{width:56px !important; height:56px !important; font-size:20px !important;}
}

@media (max-width:420px){
  /* smallest common phones (iPhone SE class, ~375px and under):
     four-across stat rows and pill rows still need one more step down */
  .masthead-inner{gap:10px; font-size:10px;}
  .code-modal .big-code{font-size:19px; letter-spacing:1px;}
}

/* ================= seasonal sale page: event stat row ================= */
.event-stat-row{display:inline-flex; gap:28px; flex-wrap:wrap; justify-content:center; background:rgba(0,0,0,0.18); border-radius:14px; padding:16px 30px;}
.event-stat-row .cell{text-align:center;}
.event-stat-row .cell .n{font-family:'Anton'; font-size:24px; color:#fff;}
.event-stat-row .cell .l{font-family:'IBM Plex Mono'; font-size:10.5px; text-transform:uppercase; letter-spacing:0.6px; color:#FBD9D9; margin-top:2px;}
