/* company.coupons — paper is the default edition; html[data-dark] is moon.
   Never routed on prefers-color-scheme: the reader's choice, or paper.
   Every ink/ground pair below was computed to >=4.5:1 before it was written. */

:root{
  --bg:#fdfcf9; --panel:#f7f5f0; --line:#e2ddd3; --line2:#cfc8bb;
  --ink:#191614; --ink2:#57514b; --ink3:#6d665e;
  --acc:#a32148; --onacc:#fdfcf9; --accsoft:#f4e6ea;
  --ok:#186b45; --bad:#a4262c;
  --shadow:0 1px 0 #ece7dd, 0 6px 18px -14px rgba(25,22,20,.45);
  --disp:"Fraunces",Georgia,"Times New Roman",serif;
  --body:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
  --wrap:min(1140px, 100% - 2.5rem);
}
html[data-dark]{
  --bg:#16140f; --panel:#100e0b; --line:#2b2721; --line2:#3c372f;
  --ink:#f3efe7; --ink2:#b5ada2; --ink3:#968e83;
  --acc:#f2879f; --onacc:#16140f; --accsoft:#2e1f24;
  --ok:#6ed49f; --bad:#ff9b8f;
  --shadow:0 1px 0 #201d17, 0 6px 18px -14px rgba(0,0,0,.8);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.62 var(--body);
  font-synthesis-weight:none;overflow-x:hidden}
img,svg{max-width:100%}
a{color:var(--acc);text-underline-offset:.18em;text-decoration-thickness:from-font}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2.5px solid var(--acc);outline-offset:2px;border-radius:3px}
h1,h2,h3{font-family:var(--disp);font-weight:700;line-height:1.16;letter-spacing:-.012em;margin:0;text-wrap:balance}
b,strong{font-weight:700}
.sep{color:var(--ink3);padding:0 .12em}

.skip{position:absolute;left:-9999px;top:0;background:var(--acc);color:var(--onacc);
  padding:.6rem 1rem;z-index:60;border-radius:0 0 8px 0}
.skip:focus{left:0}

/* ---- masthead ------------------------------------------------------- */
.mast{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
  width:var(--wrap);margin:0 auto;padding:1.05rem 0 .9rem;
  border-bottom:1px dashed var(--line2)}
.wordmark{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink);
  text-decoration:none;font-family:var(--disp);font-weight:700;font-size:1.16rem;letter-spacing:-.02em}
.wordmark .mk{width:26px;height:26px;flex:none;stroke:var(--acc);color:var(--acc)}
.wordmark i{font-style:normal;color:var(--acc)}
.mastnav{display:flex;gap:1.05rem;margin-left:auto;flex-wrap:wrap}
.mastnav a{color:var(--ink2);text-decoration:none;font-size:.9rem;font-weight:600;
  padding:.2rem 0;border-bottom:2px solid transparent}
.mastnav a:hover{color:var(--ink);border-bottom-color:var(--acc)}

.pill{display:inline-flex;border:1px solid var(--line2);border-radius:999px;
  background:var(--panel);padding:2px;gap:2px}
.pill button{font:inherit;font-size:13px;line-height:1;cursor:pointer;border:0;border-radius:999px;
  background:transparent;color:var(--ink3);width:28px;height:24px;display:grid;place-items:center;padding:0}
.pill button[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.pill button:hover{color:var(--ink)}
.nojs .pill{display:none}

/* ---- shell ---------------------------------------------------------- */
.app{width:var(--wrap);margin:0 auto;padding:2.1rem 0 3rem}
.view>h2{font-size:1.34rem;margin:2.8rem 0 .35rem}
.view>h2+.rg,.view>h2+.cards,.view>h2+.chips{margin-top:.9rem}
.view>h2+.filters{margin-top:.7rem}
.lede{font-size:1.08rem;color:var(--ink2);margin:.7rem 0 0;max-width:64ch}
.lede b{color:var(--ink)}
.pnote{font-size:.94rem;color:var(--ink3);margin:.85rem 0 0;max-width:68ch}
.more{margin:.95rem 0 0;font-size:.94rem}
.more a{font-weight:600}

.hero h1{font-size:clamp(2.1rem,6vw,3.4rem);line-height:1.04;max-width:16ch}
.hero{padding:.6rem 0 .2rem}

.crumbs{margin:0 0 1.15rem}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;
  font-size:.84rem;color:var(--ink3)}
.crumbs li+li::before{content:"/";padding-right:.4rem;color:var(--line2)}
.crumbs a{color:var(--ink3)}

/* ---- figures -------------------------------------------------------- */
.kpis{display:grid;gap:.7rem;margin:1.9rem 0 0;
  grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr))}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:.85rem .95rem}
.kpi span{display:block;font-size:.72rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink3)}
.kpi b{display:block;font-family:var(--disp);font-size:2rem;line-height:1.12;margin:.16rem 0 0;
  font-variant-numeric:tabular-nums}
.kpi i{display:block;font-style:normal;font-size:.8rem;color:var(--ink3)}

/* ---- coupon cards ---------------------------------------------------- */
.cards{list-style:none;margin:1.1rem 0 0;padding:0;display:grid;gap:.7rem;
  grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:.9rem 1rem 1rem;display:flex;flex-direction:column;gap:.5rem;box-shadow:var(--shadow)}
.card[hidden]{display:none}
/* Titles are the WIRE's words, not ours, so they wear the body face; the serif
   is reserved for what this site says in its own voice. Clamped at five lines —
   a handful of feeds post a whole paragraph as the title. */
.card h3{font-family:var(--body);font-size:1rem;line-height:1.4;font-weight:600;letter-spacing:0;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}
.card h3 a{color:var(--ink);text-decoration:none}
.card h3 a:hover{color:var(--acc);text-decoration:underline}
.cmeta{margin:0;font-size:.79rem;color:var(--ink3);font-weight:600;letter-spacing:.01em}
.cline{margin:auto 0 0;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}

/* the code is a tear-off stub: dashed perforation, monospace, copy on click */
.code{font:inherit;cursor:pointer;display:inline-flex;align-items:stretch;gap:0;padding:0;
  border:1.5px dashed var(--acc);border-radius:8px;background:var(--accsoft);color:var(--acc);overflow:hidden}
.code span{font-family:var(--mono);font-size:.86rem;font-weight:700;letter-spacing:.04em;
  padding:.34rem .6rem;display:grid;place-items:center}
.code i{font-style:normal;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:.34rem .5rem;display:grid;place-items:center;border-left:1.5px dashed var(--acc)}
.code:hover{background:var(--acc);color:var(--onacc);border-style:solid}
.code:hover i{border-left-style:solid;border-left-color:var(--onacc)}
.code.done{background:var(--ok);border-color:var(--ok);border-style:solid;color:var(--bg)}
.code.done i{border-left-color:var(--bg);border-left-style:solid}

.tag{font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ink3);border:1px solid var(--line2);border-radius:999px;padding:.24rem .55rem}
.tag.pct{color:var(--ok);border-color:var(--ok)}
.price{font-family:var(--mono);font-size:.85rem;font-weight:700;color:var(--ink)}

/* ---- registers ------------------------------------------------------- */
.rg{list-style:none;margin:0;padding:0}
.rg.cols{display:grid;gap:0 1.6rem;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr))}
.rg li a{display:flex;align-items:baseline;gap:.6rem;padding:.5rem 0;
  border-bottom:1px dashed var(--line);color:var(--ink);text-decoration:none}
.rg li a:hover .rgn{color:var(--acc);text-decoration:underline}
.rgn{flex:1 1 auto;min-width:0}
.rgc{font-family:var(--mono);font-size:.84rem;color:var(--ink3);font-variant-numeric:tabular-nums}

.chips{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0 0}
.chip{display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;
  border:1px solid var(--line2);border-radius:999px;padding:.34rem .75rem;
  color:var(--ink);background:var(--panel);font-size:.88rem;font-weight:600}
.chip span{font-family:var(--mono);font-size:.78rem;color:var(--ink3);font-variant-numeric:tabular-nums}
.chip:hover{border-color:var(--acc);color:var(--acc)}
.chip:hover span{color:var(--acc)}

.filters{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.2rem 0 0}
.tg{font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;
  border:1px solid var(--line2);border-radius:999px;padding:.34rem .8rem;
  background:var(--panel);color:var(--ink2)}
.tg:hover{color:var(--ink);border-color:var(--ink3)}
.tg.is-on{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.nojs .filters{display:none}

/* ---- prose & table --------------------------------------------------- */
.prose{max-width:70ch}
.prose p{color:var(--ink2);margin:.85rem 0 0}
.prose h2{font-size:1.28rem;margin:2.4rem 0 0}
.prose i{color:var(--ink)}
.prose code{font-family:var(--mono);font-size:.88em;background:var(--panel);
  border:1px solid var(--line);border-radius:5px;padding:.08em .34em}
.prose .kpis{max-width:none}

.tbl{width:100%;border-collapse:collapse;margin:1.1rem 0 0;font-size:.9rem;display:table}
.tbl caption{text-align:left;font-size:.76rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink3);padding-bottom:.5rem}
.tbl th,.tbl td{text-align:left;padding:.44rem .6rem;border-bottom:1px solid var(--line)}
.tbl thead th{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);
  border-bottom:1px solid var(--line2)}
.tbl tbody th{font-weight:600;color:var(--ink)}
.tbl td{color:var(--ink2);font-variant-numeric:tabular-nums}
.tbl td.ok{color:var(--ok);font-weight:700}
.tbl td.bad{color:var(--bad);font-weight:700}
.tblwrap{overflow-x:auto}

.empty{background:var(--panel);border:1px dashed var(--line2);border-radius:12px;
  padding:1.6rem 1.4rem;margin:1.9rem 0 0;text-align:center}
.empty h1,.empty h2{font-size:1.4rem}
.empty p{color:var(--ink2);max-width:56ch;margin:.6rem auto 0}
.actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1.1rem}
.actions a{text-decoration:none;font-weight:600;font-size:.92rem;
  border:1px solid var(--line2);border-radius:999px;padding:.42rem .95rem;color:var(--ink)}
.actions a.pri{background:var(--acc);border-color:var(--acc);color:var(--onacc)}

/* ---- footer ---------------------------------------------------------- */
.foot{width:var(--wrap);margin:0 auto;padding:1.7rem 0 3.2rem;
  border-top:1px dashed var(--line2);font-size:.85rem;color:var(--ink3)}
.foot p{margin:.75rem 0 0;max-width:78ch}
.foot p:first-child{margin-top:0}
.foot a{color:var(--ink2)}
.fmeta{font-variant-numeric:tabular-nums}
.fine{color:var(--ink3)}

@media (max-width:640px){
  :root{--wrap:min(1140px, 100% - 1.6rem)}
  .mastnav{width:100%;margin-left:0;order:3;gap:.9rem}
  .pill{margin-left:auto}
  .app{padding-top:1.5rem}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
