/* ==========================================================================
   Clip, compiled stylesheet. Every value traces to DESIGN-TOKENS.md (canon).
   Authored from the inline styles in Clip Coupons.dc.html. No framework.
   ========================================================================== */

:root {
  --accent: #4f46e5;
  --accent-soft: #eef2ff;
  --clip-w: 1200px;
  /* Theming tokens, every surface/text/line color flows through these so the
     site can render light or dark from one switch. */
  --bg: #ffffff; --surface: #ffffff; --raised: #f4f5f7;
  --ink: #16181d; --ink2: #4b5563; --muted: #6b7280; --faint: #6f747d;
  --line: #ececf0;
  /* --good stays for icons/large text; --good-ink is the AA-safe green for
     small metadata text (e.g. the "N% worked" microcopy). */
  --good: #059669; --good-ink: #047857; --good-soft: #ecfdf5;
  --hdr-bg: rgba(255,255,255,.85);
  --on-accent: #ffffff;
  color-scheme: light;
}
/* Light is the default for everyone. Dark applies only when the visitor opts in
   via the header toggle (sets data-theme="dark" on <html>), we intentionally do
   NOT follow the OS prefers-color-scheme, so a device in dark mode still opens
   the site in light. */
:root[data-theme="dark"], html[data-theme="dark"] {
  --accent: #8078f2; --accent-soft: #211f3d;
  --bg: #0f1013; --surface: #191b22; --raised: #21232c;
  --ink: #eef0f5; --ink2: #c4c9d3; --muted: #9aa0ad; --faint: #8b909c;
  --line: #2a2d37;
  --good: #34d399; --good-ink: #34d399; --good-soft: #12291f;
  --hdr-bg: rgba(16,17,21,.82);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: 'Manrope', sans-serif;
  color: var(--ink);
  background: var(--surface);
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; max-width: 100%; }
h1, h2, h3, h4, p { margin: 0; }
::selection { background: rgba(79,70,229,.18); }
input::placeholder { color: var(--muted); }
/* The hidden attribute must always win, even over inline display:* on a component. */
[hidden] { display: none !important; }

/* ---- Focus visibility (a11y) ----
   One keyboard-only focus ring for every interactive control. Mouse clicks stay
   clean because :focus-visible only matches keyboard focus. The five fields that
   set outline:none re-add their own :focus-visible ring next to their base rule. */
:where(a, button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"]), [role="button"]):focus-visible {
  outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 8px;
}

/* ---- Motion (verbatim from design) ---- */
@keyframes fadeUp { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes listFade { from { opacity: .25; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes modalIn { from { opacity: 0; transform: translateY(24px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes backdropIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes dropIn { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
[data-reveal] { animation: fadeUp .6s both; }
/* Staggered list reveal, same proven mechanism as [data-reveal] but opacity-only,
   so the finished fill state never pins a card's transform (keeps :hover lift). */
@keyframes clipListIn { from { opacity: 0; } to { opacity: 1; } }
[data-listfx] > * { animation: clipListIn .5s both; }
[data-listfx] > *:nth-child(1)  { animation-delay: 0s; }
[data-listfx] > *:nth-child(2)  { animation-delay: .04s; }
[data-listfx] > *:nth-child(3)  { animation-delay: .08s; }
[data-listfx] > *:nth-child(4)  { animation-delay: .12s; }
[data-listfx] > *:nth-child(5)  { animation-delay: .16s; }
[data-listfx] > *:nth-child(6)  { animation-delay: .20s; }
[data-listfx] > *:nth-child(7)  { animation-delay: .24s; }
[data-listfx] > *:nth-child(8)  { animation-delay: .28s; }
[data-listfx] > *:nth-child(9)  { animation-delay: .32s; }
[data-listfx] > *:nth-child(10) { animation-delay: .36s; }
[data-listfx] > *:nth-child(11) { animation-delay: .40s; }
[data-listfx] > *:nth-child(n+12) { animation-delay: .44s; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal],
  [data-listfx] > *,
  .clip-search__panel,
  .clip-menu-panel,
  .clip-livedrop--inline,
  .clip-modal-backdrop,
  .clip-modal { animation: none !important; }
}

/* ---- Layout ---- */
.clip-container { max-width: var(--clip-w); margin: 0 auto; padding: 0 32px; }
.clip-main { max-width: var(--clip-w); margin: 0 auto; padding: 0 32px 90px; }

/* ==========================================================================
   Header
   ========================================================================== */
.clip-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--hdr-bg);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
}
.clip-header__inner {
  /* Full-width header bar (SimplyCodes-style): content spans edge-to-edge with
     side padding; the page content below stays centered at --clip-w. */
  max-width: none; margin: 0;
  display: flex; align-items: center; justify-content: space-between;
  padding: 15px 24px; gap: 24px;
}
.clip-header__left { display: flex; align-items: center; gap: 32px; }
.clip-logo {
  display: flex; align-items: center; gap: 10px;
  font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 26px;
  letter-spacing: -.03em; color: var(--ink);
}
.clip-logo__mark {
  display: grid; place-items: center; width: 36px; height: 36px;
  border-radius: 10px; background: var(--accent); color: #fff; flex-shrink: 0;
}
.clip-nav { display: flex; align-items: center; gap: 22px; font-size: 15px; font-weight: 600; color: var(--ink2); }
.clip-nav a { transition: color .15s; }
.clip-nav a:hover { color: var(--ink); }
.clip-header__right { display: flex; align-items: center; gap: 14px; }
.clip-search { position: relative; }
.clip-search__toggle {
  display: grid; place-items: center; width: 40px; height: 40px;
  border-radius: 11px; background: var(--raised); border: 1px solid var(--line);
  color: var(--ink); cursor: pointer; transition: background .15s;
}
.clip-search__toggle:hover { background: var(--line); }
.clip-search__panel {
  position: absolute; top: 50px; right: 0; width: 340px; z-index: 60;
  background: var(--surface); border: 1px solid var(--line); border-radius: 14px;
  box-shadow: 0 24px 54px -22px rgba(0,0,0,.34); padding: 10px;
  animation: dropIn .2s ease;
}
.clip-search__box {
  display: flex; align-items: center; gap: 8px;
  background: var(--raised); border: 1px solid var(--line); border-radius: 11px;
  padding: 9px 14px; width: 100%;
}
.clip-search__box input { border: none; background: transparent; outline: none; font-size: 14px; font-weight: 500; color: var(--ink); width: 100%; }
.clip-search__box input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.clip-btn-dark {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 11px 18px; background: #16181d; color: #fff; border: 0;
  border-radius: 11px; font-size: 14px; font-weight: 700; cursor: pointer;
  white-space: nowrap; transition: transform .15s;
}
.clip-btn-dark:hover { transform: translateY(-1px); }

/* live-search results, sit inside the search panel, below the field */
.clip-livedrop { margin-top: 6px; }
.clip-livedrop__row { display: flex; align-items: center; gap: 11px; padding: 9px 10px; border-radius: 9px; cursor: pointer; }
.clip-livedrop__row:hover { background: var(--raised); }
.clip-livedrop__empty { padding: 14px 12px; font-size: 13px; color: var(--muted); font-weight: 600; }
/* Inline variant for the hero / page search forms: floats a full-width dropdown
   directly under the field (the form is position:relative). */
.clip-livedrop--inline {
  position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 40; margin-top: 0;
  background: var(--surface); border: 1px solid var(--line); border-radius: 14px;
  box-shadow: 0 24px 54px -22px rgba(0,0,0,.34); padding: 6px;
  animation: dropIn .2s ease;
}

/* ---- Skip link (a11y: first focusable; visible only on focus) ---- */
.clip-skip-link {
  position: absolute; left: 12px; top: -60px; z-index: 200;
  background: #16181d; color: #fff; padding: 10px 16px; border-radius: 10px;
  font-size: 14px; font-weight: 700; transition: top .15s;
}
.clip-skip-link:focus { top: 12px; }

/* ---- Mobile menu (hamburger), hidden on desktop, shown ≤760px ---- */
.clip-menu-toggle {
  display: none; width: 40px; height: 40px; border-radius: 11px;
  background: var(--raised); border: 1px solid var(--line); color: var(--ink);
  cursor: pointer; align-items: center; justify-content: center; transition: background .15s;
}
.clip-menu-toggle:hover { background: #eceef1; }
.clip-menu-panel {
  border-top: 1px solid var(--line); background: var(--surface);
  padding: 14px 18px 18px; animation: dropIn .2s ease;
}
.clip-menu-search {
  display: flex; align-items: center; gap: 8px; margin-bottom: 12px;
  background: var(--raised); border: 1px solid var(--line); border-radius: 11px; padding: 10px 14px;
}
.clip-menu-search input { border: none; background: transparent; outline: none; font-size: 15px; font-weight: 500; color: var(--ink); width: 100%; }
.clip-menu-search input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.clip-menu-links { display: flex; flex-direction: column; }
.clip-menu-links a { padding: 12px 4px; font-size: 16px; font-weight: 700; color: var(--ink); border-bottom: 1px solid var(--line); }
.clip-menu-links a:hover { color: var(--accent); }
.clip-menu-cta { display: inline-flex; justify-content: center; width: 100%; margin-top: 14px; }
/* Desktop safety: the panel never renders on wide viewports. */
@media (min-width: 761px) { .clip-menu-panel { display: none !important; } }

/* ==========================================================================
   Shared bits
   ========================================================================== */
.clip-monogram {
  display: grid; place-items: center; border-radius: 11px; flex-shrink: 0;
  font-family: 'Space Grotesk', sans-serif; font-weight: 700;
}
.clip-sec { padding: 44px 0 4px; }
.clip-sec-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 18px; }
.clip-h2 { font-family: 'Space Grotesk', sans-serif; font-size: 24px; font-weight: 700; letter-spacing: -.025em; margin: 0; }
.clip-seeall { font-size: 14px; font-weight: 700; color: var(--accent); cursor: pointer; }
.clip-seeall:hover { color: var(--ink); }

/* pills (filter chips) */
.clip-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.clip-pill {
  padding: 9px 17px; border-radius: 100px; font-size: 14px; font-weight: 700;
  cursor: pointer; white-space: nowrap; transition: all .18s;
  background: var(--surface); color: var(--ink2); border: 1px solid var(--line);
}
.clip-pill:hover { border-color: var(--accent); color: var(--accent); }
.clip-pill--active { background: var(--accent); color: #fff; border-color: transparent; }
.clip-pill--sm { padding: 8px 15px; font-size: 13px; }

/* verified/success microcopy */
.clip-verified { display: inline-flex; align-items: center; gap: 4px; color: var(--good-ink); }

/* A11y control resets, agent D turns the rating SVGs into <button data-star> and
   the disclosure spans/divs into real <button>s. Strip the button chrome so they
   render identically to the old markup (existing inline styles still win). */
.clip-star { border: 0; background: none; padding: 0; cursor: pointer; line-height: 0; }
.clip-rowtoggle, [data-clip-howto-toggle] { border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }

/* ==========================================================================
   Hero (home)
   ========================================================================== */
.clip-hero { padding-top: 26px; }
.clip-hero__card {
  position: relative; background: var(--accent); border-radius: 26px;
  padding: 62px 56px 66px; overflow: hidden;
}
.clip-dot-texture {
  position: absolute; inset: 0;
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.12) 1.5px, transparent 0);
  background-size: 28px 28px;
}
.clip-hero__inner { position: relative; text-align: center; }
.clip-hero__badge {
  display: inline-flex; align-items: center; gap: 8px; padding: 7px 15px;
  background: rgba(255,255,255,.16); color: #fff; border-radius: 100px;
  font-size: 13px; font-weight: 700; margin-bottom: 24px;
}
.clip-hero__badge .dot { width: 7px; height: 7px; border-radius: 50%; background: #d4f24a; }
.clip-hero__title {
  font-family: 'Space Grotesk', sans-serif; font-size: 60px; line-height: 1;
  font-weight: 700; letter-spacing: -.035em; margin: 0 auto 18px; max-width: 740px; color: #fff;
}
.clip-hero__sub { font-size: 19px; line-height: 1.5; color: rgba(255,255,255,.84); max-width: 520px; margin: 0 auto 34px; font-weight: 500; }
.clip-hero__search {
  display: flex; align-items: center; gap: 10px; max-width: 580px; margin: 0 auto;
  background: var(--surface); border-radius: 15px; padding: 8px 8px 8px 18px;
  box-shadow: 0 18px 40px -16px rgba(0,0,0,.45);
}
.clip-hero__search input { flex: 1; border: none; outline: none; font-size: 16px; font-weight: 500; color: var(--ink); background: transparent; }
.clip-hero__search input:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.clip-hero__search button {
  padding: 12px 26px; background: var(--accent); color: #fff; border: 0;
  border-radius: 11px; font-size: 15px; font-weight: 700; cursor: pointer;
}

/* stats strip */
.clip-stats { display: flex; justify-content: center; gap: 46px; padding: 38px 0 4px; }
.clip-stat { text-align: center; }
.clip-stat__num { font-family: 'Space Grotesk', sans-serif; font-size: 27px; font-weight: 700; letter-spacing: -.02em; }
.clip-stat__label { font-size: 13px; color: var(--muted); font-weight: 600; margin-top: 2px; }
.clip-stat__rule { width: 1px; background: #eceef1; }

/* ==========================================================================
   Cards: popular store grid
   ========================================================================== */
.clip-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }
.clip-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.clip-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.clip-grid-5 { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 12px; }
/* All-deals listing + store-directory letter grid + category store table.
   Columns live here (not inline) so the media queries below can collapse them. */
.clip-deals-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.clip-letter-grid { display: grid; grid-template-columns: repeat(8, minmax(0,1fr)); gap: 10px; }
.clip-cat-store-table { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); }

.clip-store-card {
  border: 1px solid var(--line); border-radius: 14px; padding: 18px; cursor: pointer;
  background: var(--surface); transition: transform .16s, box-shadow .16s, border-color .16s;
  display: block;
}
.clip-store-card:hover { transform: translateY(-2px); box-shadow: 0 12px 26px -18px rgba(0,0,0,.22); border-color: #e3e5ea; }
.clip-store-card__top { display: flex; align-items: center; gap: 11px; margin-bottom: 13px; }
.clip-store-card__mono { width: 40px; height: 40px; border-radius: 11px; font-size: 17px; }
.clip-store-card__name { font-weight: 700; font-size: 15px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.clip-store-card__codes { display: flex; align-items: center; gap: 5px; font-size: 12px; color: var(--muted); font-weight: 600; margin-bottom: 11px; }
.clip-store-card__codes .dot { width: 6px; height: 6px; border-radius: 50%; background: #10b981; }
.clip-bar { height: 6px; border-radius: 100px; background: #eef0f3; overflow: hidden; margin-bottom: 7px; }
.clip-bar__fill { height: 100%; border-radius: 100px; background: #10b981; }
.clip-store-card__health { font-size: 11.5px; font-weight: 700; color: var(--muted); }

/* coupon card (2-col) */
.clip-coupon-card {
  border: 1px solid var(--line); border-radius: 18px; padding: 20px; display: flex; gap: 16px;
  align-items: center; cursor: pointer; background: var(--surface); width: 100%; text-align: left;
  transition: transform .18s, box-shadow .18s, border-color .18s;
}
.clip-coupon-card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px -18px rgba(0,0,0,.24); border-color: #e0e2e8; }
.clip-coupon-card__mono { width: 54px; height: 54px; border-radius: 14px; font-size: 22px; }
.clip-coupon-card__body { flex: 1; min-width: 0; display: block; }
.clip-coupon-card__store { display: inline-block; font-size: 13px; font-weight: 700; color: var(--muted); }
.clip-coupon-card__store:hover { color: var(--accent); text-decoration: underline; }
.clip-coupon-card__title { display: block; font-size: 19px; font-weight: 800; letter-spacing: -.02em; margin: 2px 0 7px; color: var(--ink); }
.clip-coupon-card__meta { display: flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; color: var(--muted); }
.clip-coupon-card__cta { padding: 11px 17px; color: #fff; border-radius: 11px; font-size: 13px; font-weight: 700; flex-shrink: 0; border: 0; cursor: pointer; }

/* how it works */
.clip-step { border: 1px solid var(--line); border-radius: 18px; padding: 26px; }
.clip-step__num { width: 40px; height: 40px; border-radius: 11px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 18px; margin-bottom: 16px; }
.clip-step__h { font-size: 17px; font-weight: 800; letter-spacing: -.01em; margin-bottom: 7px; }
.clip-step__p { font-size: 14px; line-height: 1.55; color: var(--muted); font-weight: 500; }

/* category tiles */
.clip-cat-tile {
  border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; cursor: pointer;
  background: var(--surface); display: flex; align-items: center; gap: 13px;
  transition: border-color .18s, box-shadow .18s, transform .18s;
}
.clip-cat-tile:hover { border-color: var(--accent); box-shadow: 0 10px 22px -16px rgba(79,70,229,.6); transform: translateY(-2px); }
.clip-cat-tile__icon { width: 40px; height: 40px; border-radius: 11px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; flex-shrink: 0; }
.clip-cat-tile__name { font-weight: 700; font-size: 15px; }
.clip-cat-tile__count { font-size: 12.5px; color: var(--muted); font-weight: 600; margin-top: 2px; }
.clip-cat-tile__arrow { color: var(--faint); font-weight: 700; flex-shrink: 0; }

/* extension CTA */
.clip-cta { padding: 56px 0 4px; }
.clip-cta__card {
  position: relative; background: #16181d; border-radius: 24px; padding: 46px 52px;
  overflow: hidden; display: flex; align-items: center; justify-content: space-between;
  gap: 32px; flex-wrap: wrap;
}
.clip-cta__body { position: relative; max-width: 560px; }
.clip-cta__h { font-family: 'Space Grotesk', sans-serif; font-size: 32px; font-weight: 700; letter-spacing: -.03em; margin: 0 0 10px; color: #fff; }
.clip-cta__p { font-size: 16px; line-height: 1.5; color: rgba(255,255,255,.84); margin: 0; font-weight: 500; }
.clip-cta__right { position: relative; }
.clip-cta__btn { display: inline-flex; align-items: center; gap: 8px; padding: 15px 26px; background: var(--surface); color: var(--ink); border: 0; border-radius: 13px; font-size: 15px; font-weight: 700; cursor: pointer; transition: transform .15s; }
.clip-cta__btn:hover { transform: translateY(-2px); }
.clip-cta__note { font-size: 12.5px; color: rgba(255,255,255,.7); font-weight: 600; margin-top: 12px; text-align: center; }

/* ==========================================================================
   Footer
   ========================================================================== */
.clip-footer { border-top: 1px solid var(--line); background: var(--raised); }
.clip-footer__inner { max-width: var(--clip-w); margin: 0 auto; padding: 48px 32px 32px; }
.clip-footer__cols { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr 1fr 1fr; gap: 28px; }
.clip-footer__brand { display: flex; align-items: center; gap: 9px; font-family: 'Space Grotesk', sans-serif; font-weight: 700; font-size: 21px; letter-spacing: -.03em; margin-bottom: 12px; }
.clip-footer__brand .clip-logo__mark { width: 30px; height: 30px; }
.clip-footer__tag { font-size: 13.5px; line-height: 1.6; color: var(--muted); font-weight: 500; margin: 0; max-width: 260px; }
.clip-footer__h { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: 14px; }
.clip-footer__links { display: flex; flex-direction: column; gap: 10px; font-size: 14px; font-weight: 600; color: #5b6470; }
.clip-footer__links a:hover { color: var(--ink); }
.clip-footer__bottom { display: flex; align-items: center; justify-content: space-between; margin-top: 38px; padding-top: 22px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); font-weight: 600; }

/* ==========================================================================
   Reveal modal
   ========================================================================== */
.clip-modal-backdrop {
  position: fixed; inset: 0; z-index: 100; background: rgba(16,18,29,.55);
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center; padding: 24px;
  animation: backdropIn .25s ease;
}
.clip-modal {
  width: 480px; max-width: 100%; max-height: 88vh; overflow-y: auto; overflow-x: hidden;
  background: var(--surface); border-radius: 22px; box-shadow: 0 40px 100px -30px rgba(0,0,0,.5);
  animation: modalIn .42s cubic-bezier(.2,.8,.2,1);
}
.clip-modal__head { position: relative; padding: 24px 26px 22px; border-bottom: 1px solid var(--line); }
.clip-modal__close { position: absolute; top: 18px; right: 18px; width: 30px; height: 30px; border-radius: 50%; background: var(--raised); display: grid; place-items: center; cursor: pointer; border: 0; }
.clip-modal__close:hover { background: #eceef1; }
.clip-eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.clip-modal__code { font-family: 'Space Grotesk', sans-serif; font-size: 30px; font-weight: 700; letter-spacing: .1em; color: var(--ink); }
.clip-copied { display: inline-flex; align-items: center; gap: 5px; padding: 6px 12px; background: var(--good-soft); color: var(--good); border-radius: 100px; font-size: 12px; font-weight: 700; }
.clip-modal__title { font-size: 16px; font-weight: 700; color: var(--ink); margin: 12px 0 10px; }
.clip-modal__conf { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.clip-dots { display: inline-flex; gap: 3px; align-items: center; }
.clip-dots span { width: 6px; height: 6px; border-radius: 50%; }
.clip-modal__merchant { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 700; color: var(--good); cursor: pointer; }
.clip-modal__section { padding: 18px 26px; border-bottom: 1px solid var(--line); }
.clip-modal__row { display: flex; align-items: center; gap: 12px; padding: 12px 8px; border-radius: 8px; border-bottom: 1px solid #f6f7f9; }
.clip-copybtn { padding: 7px 0; width: 50px; text-align: center; border: 1px solid var(--line); border-radius: 8px; font-size: 10px; font-weight: 800; letter-spacing: .04em; color: var(--good); cursor: pointer; background: var(--surface); }
.clip-copybtn:hover { background: var(--good-soft); border-color: #a7f3d0; }
.clip-modal__foot { padding: 16px 26px; background: var(--raised); border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }

/* breadcrumb */
.clip-crumb { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--muted); margin-bottom: 26px; flex-wrap: wrap; }
.clip-crumb a:hover { color: var(--ink2); }
.clip-crumb .current { color: var(--ink); }

/* utility */
.clip-eyebrow-accent { display: inline-flex; align-items: center; gap: 6px; padding: 6px 13px; background: var(--accent-soft); color: var(--accent); border-radius: 100px; font-size: 12px; font-weight: 700; }

/* ==========================================================================
   Store page
   ========================================================================== */
.clip-store-grid { display: grid; grid-template-columns: minmax(0,1fr) 326px; gap: 30px; align-items: start; }
.clip-store-aside { position: sticky; top: 80px; display: flex; flex-direction: column; gap: 16px; }
.clip-reviews-grid { display: grid; grid-template-columns: 300px 1fr; gap: 22px; }

.clip-jump { padding: 9px 16px; border: 1px solid var(--line); border-radius: 100px; font-size: 13.5px; font-weight: 700; color: var(--ink); background: var(--surface); transition: all .16s; }
.clip-jump:hover { border-color: var(--accent); color: var(--accent); }
.clip-sort { padding: 9px 14px; border: 1px solid var(--line); border-radius: 10px; font-size: 14px; font-weight: 600; color: var(--ink2); background: var(--surface); cursor: pointer; outline: none; }
.clip-sort:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.clip-lift { transition: transform .15s; }
.clip-lift:hover { transform: translateY(-1px); }
.clip-card-lift { transition: transform .18s, box-shadow .18s, border-color .18s; }
.clip-card-lift:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -18px rgba(0,0,0,.24); border-color: #e3e5ea; }
.clip-codecard { transition: box-shadow .16s, border-color .16s; }
.clip-codecard:hover { box-shadow: 0 16px 34px -22px rgba(0,0,0,.2); border-color: #e0e2e8; }
.clip-codes-list .clip-codecard { background: var(--surface); }
.clip-codes-list .clip-codecard:hover { border-color: #3a3f4b; box-shadow: 0 16px 34px -22px rgba(0,0,0,.55); }
.clip-code-detail { border-top: 1px solid var(--line); background: var(--raised); padding: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.clip-code-detail[hidden] { display: none; }

/* FAQ accordion (native <details>) */
.clip-faq { border: 1px solid var(--line); border-radius: 14px; background: var(--surface); overflow: hidden; }
.clip-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 20px; cursor: pointer; list-style: none; }
.clip-faq summary::-webkit-details-marker { display: none; }
.clip-faq__icon { color: var(--accent); font-size: 20px; font-weight: 700; flex-shrink: 0; transition: transform .18s; }
.clip-faq[open] .clip-faq__icon { transform: rotate(45deg); }

@media (max-width: 900px) {
  .clip-store-grid { grid-template-columns: 1fr; }
  .clip-store-aside { position: static; }
  .clip-reviews-grid { grid-template-columns: 1fr; }
  .clip-code-detail { grid-template-columns: 1fr !important; }
}

/* ==========================================================================
   Category page
   ========================================================================== */
.clip-kicker { font-family: 'Space Grotesk', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--accent); margin-bottom: 10px; }
.clip-subpill { padding: 8px 14px; border: 1px solid var(--line); border-radius: 100px; font-size: 13px; font-weight: 600; color: var(--ink2); background: var(--raised); transition: all .16s; }
.clip-subpill:hover { border-color: var(--accent); color: var(--accent); background: var(--surface); }
.clip-brand-chip { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); transition: border-color .16s, box-shadow .16s; }
.clip-brand-chip:hover { border-color: var(--accent); box-shadow: 0 10px 22px -18px rgba(79,70,229,.5); }

/* ==========================================================================
   Responsive (design breakpoints: 900 / 760 / 560)
   ========================================================================== */
@media (max-width: 900px) {
  .clip-main { padding-left: 18px; padding-right: 18px; }
  .clip-header__inner, .clip-footer__inner { padding-left: 18px; padding-right: 18px; }
  .clip-grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .clip-grid-5 { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .clip-letter-grid { grid-template-columns: repeat(6, minmax(0,1fr)); }
  .clip-footer__cols { grid-template-columns: 1fr 1fr 1fr; }
}
@media (max-width: 760px) {
  /* Header collapses to logo + hamburger; nav, desktop search and the CTA move
     into the mobile menu panel so nothing overflows a phone viewport. */
  .clip-nav { display: none; }
  .clip-header__right .clip-search,
  .clip-header__right > .clip-btn-dark { display: none; }
  .clip-menu-toggle { display: inline-flex; }
  .clip-grid-2, .clip-grid-3, .clip-deals-grid { grid-template-columns: 1fr; }
  .clip-grid-5 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .clip-letter-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
  .clip-cat-store-table { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .clip-hero__card { padding: 44px 24px 48px; }
  .clip-hero__title { font-size: 38px; }
  .clip-stats { flex-wrap: wrap; gap: 22px; }
  .clip-footer__cols { grid-template-columns: 1fr 1fr; row-gap: 26px; }
  .clip-cta__card { padding: 32px 26px; }
}
@media (max-width: 560px) {
  .clip-grid-4, .clip-grid-5 { grid-template-columns: 1fr; }
  .clip-letter-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .clip-cat-store-table { grid-template-columns: 1fr; }
  .clip-hero__title { font-size: 30px; line-height: 1.12; }
  .clip-h2 { font-size: 21px; }
}

/* ==========================================================================
   Prose (Article single.php + generic/legal page.php)
   ========================================================================== */
.clip-prose { font-size: 18px; line-height: 1.7; color: var(--ink2); font-weight: 500; }
.clip-prose > *:first-child { margin-top: 0; }
.clip-prose > *:last-child { margin-bottom: 0; }
.clip-prose p { margin: 0 0 22px; }
.clip-prose h2 { font-family: 'Space Grotesk', sans-serif; font-size: 25px; font-weight: 700; letter-spacing: -.02em; color: var(--ink); margin: 36px 0 14px; line-height: 1.18; }
.clip-prose h3 { font-family: 'Space Grotesk', sans-serif; font-size: 20px; font-weight: 700; letter-spacing: -.015em; color: var(--ink); margin: 30px 0 12px; line-height: 1.25; }
.clip-prose ul, .clip-prose ol { margin: 0 0 22px; padding-left: 22px; }
.clip-prose li { margin: 0 0 9px; }
.clip-prose a { color: var(--accent, var(--accent)); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
.clip-prose a:hover { text-decoration: none; }
.clip-prose strong { color: var(--ink); font-weight: 700; }
.clip-prose blockquote { margin: 0 0 22px; padding: 4px 0 4px 18px; border-left: 3px solid var(--accent, var(--accent)); color: var(--ink2); font-style: italic; }
.clip-prose img { max-width: 100%; height: auto; border-radius: 16px; margin: 0 0 22px; }

/* Legal variant: tighter body + per-section dividers (page.php legal layout) */
.clip-prose--legal { font-size: 15.5px; line-height: 1.75; color: var(--ink2); }
.clip-prose--legal p { font-size: 15.5px; line-height: 1.75; margin: 0 0 18px; }
.clip-prose--legal h2 { font-size: 20px; padding-top: 28px; border-top: 1px solid var(--line); margin: 36px 0 11px; }
.clip-prose--legal > h2:first-child { margin-top: 28px; padding-top: 0; border-top: 0; }
.clip-prose--legal h3 { font-size: 16px; margin: 26px 0 9px; }
.clip-legal-nav-link { transition: color .15s, background .15s; }
.clip-legal-nav-link:not(.is-active):hover { color: var(--ink); background: #f6f7f9; }
@media (max-width: 760px) { .clip-legal-aside { position: static !important; } }

/* ==========================================================================
   Cookie consent banner
   ========================================================================== */
.clip-consent {
  position: fixed; left: 16px; right: auto; bottom: 16px; z-index: 120;
  width: 320px; max-width: calc(100vw - 32px);
  background: #16181d; color: #fff; border-radius: 14px;
  box-shadow: 0 20px 48px -20px rgba(0,0,0,.55);
}
.clip-consent__inner { display: block; padding: 14px 16px; }
.clip-consent__text { font-size: 12px; line-height: 1.45; font-weight: 500; color: rgba(255,255,255,.82); margin: 0 0 11px; }
.clip-consent__text a { color: #fff; text-decoration: underline; }
.clip-consent__actions { display: flex; gap: 8px; justify-content: flex-end; }
.clip-consent__btn { padding: 7px 15px; border-radius: 9px; font-size: 12.5px; font-weight: 700; cursor: pointer; border: 0; background: var(--surface); color: var(--ink); transition: transform .15s; }
.clip-consent__btn:hover { transform: translateY(-1px); }
.clip-consent__btn--ghost { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.3); }
@media (max-width: 560px) { .clip-consent { left: 12px; right: 12px; width: auto; } .clip-logo-img { height: 54px; max-width: 280px; } }

/* ==========================================================================
   Newsletter capture (replaces the extension CTA)
   ========================================================================== */
.clip-subscribe { display: flex; gap: 10px; max-width: 460px; flex-wrap: wrap; }
.clip-subscribe input[type="email"] { flex: 1; min-width: 200px; border: 0; border-radius: 12px; padding: 14px 16px; font-size: 15px; font-weight: 500; color: var(--ink); background: var(--surface); outline: none; }
.clip-subscribe input[type="email"]:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.clip-subscribe button { padding: 14px 24px; border-radius: 12px; border: 0; background: var(--accent); color: #fff; font-size: 15px; font-weight: 700; cursor: pointer; transition: transform .15s; }
.clip-subscribe button:hover { transform: translateY(-1px); }
.clip-subscribe__note { font-size: 12.5px; color: rgba(255,255,255,.8); font-weight: 600; margin-top: 10px; min-height: 1em; }


/* ==========================================================================
   Theme toggle + dark-mode chrome
   ========================================================================== */
.clip-theme-toggle { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: var(--raised); border: 1px solid var(--line); color: var(--ink); cursor: pointer; transition: background .15s, color .15s; }
.clip-theme-toggle:hover { background: var(--line); }
.clip-theme-toggle .moon { display: none; }
.clip-logo-img { height: 64px; width: auto; max-width: 320px; display: block; }
.clip-logo-img--dark { display: none; }
.clip-footer__brand .clip-logo-img { height: 48px; }
[data-theme="dark"] .clip-logo-img--light { display: none; }
[data-theme="dark"] .clip-logo-img--dark  { display: block; }
[data-theme="dark"] .clip-theme-toggle .sun { display: none; }
[data-theme="dark"] .clip-theme-toggle .moon { display: block; }
[data-theme="dark"] .clip-btn-dark { background: var(--ink); color: var(--bg); }

/* ==========================================================================
   Store savings-insights panel (.clip-savings), an honest, SimplyCodes-style
   data-study card. Dark self-contained surface, site-violet bars; every number
   is real (live coupons + a monthly snapshot that accumulates over time).
   ========================================================================== */
.clip-savings { --sv-accent:#8078f2; background:#0b0d12; color:#fafafa; border:1px solid #1c1f27; border-radius:22px; padding:30px 32px; margin:28px 0 22px; }
.clip-savings__head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.clip-savings__title { display:flex; align-items:center; gap:12px; font-family:'Space Grotesk',sans-serif; font-size:26px; font-weight:700; letter-spacing:-.02em; line-height:1.12; margin:0; color:#fff; }
.clip-savings__title svg { color:var(--sv-accent); flex-shrink:0; }
.clip-savings__badge { flex-shrink:0; font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--sv-accent); background:rgba(128,120,242,.1); border:1px solid rgba(128,120,242,.28); border-radius:8px; padding:8px 12px; white-space:nowrap; }
.clip-savings__summary { font-size:14.5px; line-height:1.5; color:#c7cad2; background:#14161d; border:1px solid #1c1f27; border-radius:14px; padding:14px 18px; margin-bottom:18px; }
.clip-savings__summary b { color:var(--sv-accent); font-weight:700; }
.clip-savings__stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:22px; }
.clip-savings__stat { background:#14161d; border:1px solid #1c1f27; border-radius:16px; padding:18px 20px; }
.clip-savings__num { display:block; font-family:'Space Grotesk',sans-serif; font-size:30px; font-weight:800; letter-spacing:-.02em; line-height:1; color:var(--sv-accent); }
.clip-savings__label { display:block; margin-top:9px; font-size:13.5px; font-weight:600; color:#c7cad2; }
.clip-savings__sub { display:block; margin-top:6px; font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:11.5px; color:#8b909c; }
.clip-savings__desc { font-size:14px; line-height:1.55; color:#aeb2bd; margin:0 0 26px; max-width:70ch; }
.clip-savings__chart-label { font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:#8b909c; margin-bottom:16px; }
.clip-savings__chart { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; align-items:end; gap:10px; height:300px; }
.clip-savings__bar { display:flex; flex-direction:column; align-items:center; gap:8px; height:100%; justify-content:flex-end; min-width:0; }
.clip-savings__pct { font-size:12.5px; font-weight:700; color:#c7cad2; min-height:16px; }
.clip-savings__bar.is-empty .clip-savings__pct { color:transparent; }
.clip-savings__track { position:relative; width:100%; max-width:46px; flex:1; display:flex; align-items:flex-end; background:#14161d; border:1px solid #1c1f27; border-radius:8px; overflow:hidden; }
.clip-savings__fill { width:100%; border-radius:7px 7px 0 0; background:linear-gradient(180deg, var(--sv-accent), color-mix(in srgb, var(--sv-accent) 42%, #0b0d12)); }
.clip-savings__bar.is-current .clip-savings__fill { background:linear-gradient(180deg, #a78bfa, var(--sv-accent)); }
.clip-savings__month { font-size:12px; color:#8b909c; }
.clip-savings__tip { display:flex; align-items:flex-start; gap:10px; margin-top:24px; padding:14px 18px; background:#14161d; border:1px solid #1c1f27; border-radius:14px; font-size:13.5px; line-height:1.5; color:#c7cad2; }
.clip-savings__tip svg { color:var(--sv-accent); flex-shrink:0; margin-top:2px; }
.clip-savings__tip b { color:#fff; }
@media (max-width:720px){
  .clip-savings { padding:22px 18px; }
  .clip-savings__title { font-size:20px; }
  .clip-savings__stats { grid-template-columns:repeat(2,1fr); }
  .clip-savings__chart { height:210px; gap:5px; }
}

/* ==========================================================================
   Similar-brands grid (.clip-similar), SimplyCodes-style "Which brands are
   most like {Store}?", LIGHT card (site tokens), site-violet discounts.
   ========================================================================== */
.clip-similar { background:var(--surface); color:var(--ink); border:1px solid var(--line); border-radius:22px; padding:30px 32px; margin:48px 0 0; box-shadow:0 8px 30px -22px rgba(0,0,0,.15); }
.clip-similar__head { margin-bottom:6px; }
.clip-similar__title { display:flex; align-items:center; gap:12px; font-family:'Space Grotesk',sans-serif; font-size:22px; font-weight:700; letter-spacing:-.025em; line-height:1.15; margin:0; color:var(--ink); }
.clip-similar__title svg { color:var(--accent); flex-shrink:0; }
.clip-similar__sub { font-size:14px; color:var(--muted); margin:0 0 22px; }
.clip-similar__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.clip-similar__card { display:flex; align-items:center; gap:14px; background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:15px 18px; text-decoration:none; transition:border-color .15s, box-shadow .15s, transform .15s; }
.clip-similar__card:hover { border-color:var(--accent); box-shadow:0 12px 26px -18px rgba(79,70,229,.45); transform:translateY(-1px); }
.clip-similar__logo { width:44px; height:44px; flex-shrink:0; border-radius:11px; overflow:hidden; display:grid; place-items:center; }
.clip-similar__meta { display:flex; flex-direction:column; gap:5px; min-width:0; }
.clip-similar__name { font-family:'Space Grotesk',sans-serif; font-size:15.5px; font-weight:700; letter-spacing:-.01em; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.clip-similar__deal { font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--accent); }
@media (max-width:900px){ .clip-similar__grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .clip-similar { padding:22px 18px; } .clip-similar__grid { grid-template-columns:1fr; } .clip-similar__title { font-size:20px; } }

/* Comprehensive About: quick-facts list + honest-method note. */
.clip-about-body { font-size:15px; line-height:1.65; color:var(--ink2); font-weight:500; max-width:760px; }
.clip-about-body p { margin:0 0 12px; }
.clip-about-facts { display:grid; grid-template-columns:repeat(2,1fr); gap:0 32px; margin:20px 0 6px; max-width:760px; }
.clip-about-fact { display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding:11px 2px; border-bottom:1px solid var(--line); font-size:14px; }
.clip-about-fact dt { color:var(--muted); font-weight:600; margin:0; }
.clip-about-fact dd { margin:0; color:var(--ink); font-weight:700; text-align:right; }
.clip-about-method { margin-top:22px; padding:16px 20px; background:var(--raised); border:1px solid var(--line); border-radius:14px; max-width:760px; }
.clip-about-method h3 { font-family:'Space Grotesk',sans-serif; font-size:15px; font-weight:700; letter-spacing:-.01em; margin:0 0 6px; color:var(--ink); }
.clip-about-method p { font-size:13.5px; line-height:1.6; color:var(--ink2); margin:0; }
@media (max-width:560px){ .clip-about-facts { grid-template-columns:1fr; } }

/* Expandable "About {Store}", pure-CSS "Show more" clamp (no JS). The full text
   is always in the DOM (screen readers get everything); the clamp is visual only. */
.clip-about-body h3 { font-family:'Space Grotesk',sans-serif; font-size:16px; font-weight:700; letter-spacing:-.01em; color:var(--ink); margin:22px 0 8px; }
.clip-about-body strong { color:var(--ink); font-weight:700; }
.clip-about__toggle { position:absolute; width:1px; height:1px; opacity:0; margin:-1px; }
.clip-about__clamp { position:relative; max-height:156px; overflow:hidden; transition:max-height .28s ease; }
.clip-about__clamp::after { content:""; position:absolute; left:0; right:0; bottom:0; height:76px; background:linear-gradient(transparent, var(--bg)); pointer-events:none; transition:opacity .2s; }
.clip-about__toggle:checked ~ .clip-about__clamp { max-height:2000px; }
.clip-about__toggle:checked ~ .clip-about__clamp::after { opacity:0; }
.clip-about__more { display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:14px; font-weight:700; color:var(--accent); cursor:pointer; user-select:none; }
.clip-about__more-close { display:none; }
.clip-about__toggle:checked ~ .clip-about__more .clip-about__more-open { display:none; }
.clip-about__toggle:checked ~ .clip-about__more .clip-about__more-close { display:inline-flex; align-items:center; gap:6px; }
.clip-about__toggle:focus-visible ~ .clip-about__more { outline:2px solid var(--accent); outline-offset:3px; border-radius:6px; }

/* ==========================================================================
   Expert-guide embed (.clip-guide), the store "About" as a self-contained
   data-study card at the end of the page, with the existing "Show more" clamp.
   Theme-aware (site tokens): light card on the light page, dark card in dark mode.
   ========================================================================== */
.clip-guide { padding:30px 32px; margin:44px 0 0; background:var(--surface); border:1px solid var(--line); border-radius:22px; box-shadow:0 8px 30px -22px rgba(0,0,0,.18); }
.clip-guide__head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.clip-guide__title { display:flex; align-items:center; gap:12px; font-family:'Space Grotesk',sans-serif; font-size:24px; font-weight:700; letter-spacing:-.02em; line-height:1.14; margin:0; color:var(--ink); }
.clip-guide__title svg { color:var(--accent); flex-shrink:0; }
.clip-guide__badge { flex-shrink:0; font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); background:var(--accent-soft); border:1px solid color-mix(in srgb, var(--accent) 30%, transparent); border-radius:8px; padding:8px 12px; white-space:nowrap; }
.clip-guide .clip-about__clamp::after { background:linear-gradient(transparent, var(--surface)); }
@media (max-width:560px){ .clip-guide { padding:22px 18px; } .clip-guide__title { font-size:20px; } }

/* Store: moat challenge-pricing table (the differentiator no generic coupon site can build). */
.clip-moat { border-collapse:collapse; width:100%; min-width:440px; font-size:14px; background:var(--surface); }
.clip-moat thead th { text-align:left; font-size:11px; font-weight:750; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); padding:12px 16px; border-bottom:1px solid var(--line); background:var(--accent-soft); }
.clip-moat tbody td { padding:13px 16px; border-bottom:1px solid var(--line); font-variant-numeric:tabular-nums; color:var(--ink2); }
.clip-moat tbody tr:last-child td { border-bottom:0; }
.clip-moat tbody tr:hover td { background:color-mix(in srgb, var(--accent) 5%, transparent); }
.clip-moat__ch { font-weight:700; color:var(--ink); white-space:nowrap; }
.clip-moat__win { font-weight:800; color:var(--ink); }
.clip-moat__save { font-weight:700; color:var(--good); white-space:nowrap; }
.clip-moat__note { color:var(--muted); font-weight:600; font-size:13px; }
