/* SlashCouponCode — Home page.
 *
 * Design system per the homepage brief: 1240px content, 8px spacing scale,
 * 64–80px desktop / 44–56px mobile section rhythm, 14–16px card radius, 10px
 * button radius, 1px #E8E3EE borders, subtle shadows only. Typeface from
 * type.css (InterSCC — already self-hosted and preloaded; a second family
 * would cost a download for no gain).
 *
 * Colour variables double as the Customizer hook: the palette from
 * Appearance > Customize is printed after this file and overrides these
 * defaults, exactly like every other page the plugin renders.
 */

.scc-home-page{
  /* Values mirror the canonical --scc-* tokens in type.css (Phase 1). */
  --purple:#746093; --purple-d:#5B4A76; --purple-bg:#F0EBF5;
  --gold:#FFD84D; --gold-deep:#F2C200; --gold-ink:#212529;
  --ink:#1F2026; --body:#4A4A55; --muted:#6B6C76; --line:#E8E3EE; --bg:#F5F5F5;
  --green-d:#3B6D11; --red:#C0392F;
  --r-card:16px; --r-btn:10px;
  color:var(--ink);
}

.scc-page.scc-home-page{ max-width:1250px; margin-left:auto; margin-right:auto;
  margin-top:0; padding-top:8px !important;
  padding-left:0 !important; padding-right:0 !important; }

.scc-home-page .scc-hm-visually-hidden{ position:absolute; width:1px; height:1px;
  margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }

/* ---- Shared ---- */
.scc-hm-sec{ margin:56px 0 0; scroll-margin-top:calc(var(--scc-navbar) + 16px); }
/* Alternating tinted bands, the rhythm every reference site uses. */
.scc-hm-sec--tint{ padding:30px 26px 32px; border-radius:20px; background:var(--purple-bg); }
.scc-hm-h2{ margin:0; font-size:clamp(18px,2vw,24px); line-height:1.25; font-weight:800;
  letter-spacing:-.022em; color:var(--ink); text-wrap:balance; }
.scc-hm-h2--center{ text-align:center; }
.scc-hm-sub{ margin:5px 0 0; font-size:14px; line-height:1.5; color:var(--muted); }
.scc-hm-intro{ margin:10px auto 0; max-width:62ch; font-size:16px; line-height:1.65;
  color:var(--body); text-align:center; }

.scc-hm-head{ display:flex; align-items:flex-end; justify-content:space-between;
  gap:16px; margin:0 0 20px; }
/* The accent bar that marks every left-aligned section title. */
.scc-hm-head .scc-hm-h2{ border-left:4px solid var(--gold); padding-left:12px; }
.scc-hm-all{ flex:none; display:inline-flex; align-items:center; min-height:44px;
  padding:0 18px; border-radius:999px; border:1.5px solid var(--purple);
  font-size:14px; font-weight:700; color:var(--purple); text-decoration:none; white-space:nowrap;
  background:#fff; transition:background-color .15s, color .15s; }
.scc-hm-all:hover{ background:var(--purple); color:#fff; }

.scc-hm-btn{ display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:0 22px; border-radius:var(--r-btn); border:1.5px solid transparent;
  font:inherit; font-size:15px; font-weight:700; text-decoration:none; cursor:pointer;
  transition:background-color .15s, border-color .15s, transform .12s; }
.scc-hm-btn--gold{ background:var(--gold); color:var(--gold-ink); }
.scc-hm-btn--gold:hover{ background:var(--gold-deep); color:var(--gold-ink); }
.scc-hm-btn:active{ transform:translateY(1px); }
.scc-home-page a:focus-visible,
.scc-home-page button:focus-visible,
.scc-home-page input:focus-visible{ outline:3px solid var(--purple); outline-offset:2px; }

.scc-hm-ico{ flex:none; display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:12px; background:var(--purple-bg); color:var(--purple); }
.scc-hm-ico svg{ width:20px; height:20px; }

/* ---- Announcement bar ---- */
.scc-hm-annc{ display:flex; align-items:center; justify-content:center; min-height:34px;
  margin:0 0 12px; padding:6px 14px; border-radius:10px;
  font-size:13.5px; font-weight:600; text-align:center; }
.scc-hm-annc a{ text-decoration:underline; text-underline-offset:2px; }


/* ---- Banner carousel: centre-with-peek, CouponMoto layout ----
   Re-measured on couponmoto.com 2026-08-05 per the owner's observation:
   - the carousel is FULL-BLEED on desktop — the peeking neighbours are cut
     by the viewport edge, no side padding;
   - the track begins with a CLONE of the last banner, so the centred slide
     is the second element and BOTH sides always show a real banner (home.js
     builds the clones and jumps across them for an endless loop).
   Native CSS scroll-snap does the sliding; images always render WHOLE at
   their natural shape. Phones: one full-width banner, no peek (owner). */
.scc-hm-peek{ position:relative; margin:0 0 8px; }
.scc-hm-peek-track{ display:flex; gap:16px; overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory; scroll-behavior:smooth;
  -ms-overflow-style:none; scrollbar-width:none; padding:0 0 2px; }
.scc-hm-peek-track::-webkit-scrollbar{ display:none; }
.scc-hm-peek-slide{ flex:0 0 70%; scroll-snap-align:center; border-radius:14px;
  overflow:hidden; display:block; }
.scc-hm-peek--single .scc-hm-peek-slide{ flex-basis:100%; }
/* Whole image, natural shape — the !importants beat the theme's
   object-fit:contain and sizing rules (verified on staging 2026-08-04). */
body.home .scc-hm-peek-slide img{ display:block; width:100% !important;
  height:auto !important; max-height:none !important; object-fit:fill !important; }

/* Desktop: break out of the content column to the full viewport width. */
@media (min-width:783px){
  .scc-hm-peek{ width:100vw; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
}

.scc-hm-peek-nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:5;
  width:44px; height:44px; border-radius:50%; border:1px solid var(--line);
  background:#fff; color:var(--ink); font-size:18px; line-height:1; cursor:pointer;
  box-shadow:0 4px 14px rgba(33,37,41,.18); }
.scc-hm-peek-nav:hover{ background:var(--purple-bg); }
.scc-hm-peek-nav--prev{ left:18px; }
.scc-hm-peek-nav--next{ right:18px; }

.scc-hm-peek-dots{ display:flex; justify-content:center; gap:6px; margin:8px 0 0; }
.scc-hm-peek-dot{ width:24px; height:20px; padding:0; border:0; background:none;
  cursor:pointer; position:relative; }
.scc-hm-peek-dot::after{ content:""; position:absolute; left:50%; top:50%;
  transform:translate(-50%,-50%); width:8px; height:5px; border-radius:999px;
  background:#cfc7dd; transition:width .2s, background-color .2s; }
.scc-hm-peek-dot.is-on::after{ width:22px; background:var(--gold); }

/* ---- Network deals page (/deals/) — the reference deal-of-the-day card
   (measured on couponzguru.com/deal-of-the-day 2026-08-06): image panel with
   a floating store chip, title, green discount line, one full-width rounded
   CTA, "Valid till" in the footer. Colours come from our palette, not theirs:
   money buttons are gold sitewide (owner's Phase 1 decision). */
.scc-nd-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px; margin-top:22px; }
.scc-nd-card{ display:flex; flex-direction:column; background:#fff;
  border:1px solid var(--line); border-radius:var(--r-card); overflow:hidden;
  text-decoration:none; color:var(--ink);
  transition:box-shadow .15s, transform .15s; }
.scc-nd-card:hover{ box-shadow:0 10px 26px rgba(33,37,41,.10); transform:translateY(-2px); }
.scc-nd-media{ position:relative; display:flex; align-items:center; justify-content:center;
  height:190px; padding:18px; background:var(--scc-primary-subtle,#FAF8FC);
  border-bottom:1px solid var(--line); }
/* The media panel: the deal's PRODUCT PHOTO when it has one (brand logo
   tucked in the top-left corner, reference style), otherwise the brand logo
   alone — sized like a logo, never stretched to fill the panel. */
.scc-nd-photo{ max-width:100%; max-height:100%; object-fit:contain; }
.scc-nd-logo{ max-width:72%; max-height:104px; object-fit:contain; }
.scc-nd-corner{ position:absolute; top:10px; left:10px; z-index:2; display:flex;
  align-items:center; padding:4px 8px; border-radius:8px; background:#fff;
  border:1px solid var(--line); box-shadow:0 2px 8px rgba(33,37,41,.10); }
.scc-nd-corner img{ display:block; height:20px; width:auto; max-width:86px;
  object-fit:contain; }
.scc-nd-init{ display:flex; align-items:center; justify-content:center;
  width:84px; height:84px; border-radius:18px; background:var(--purple-bg);
  color:var(--purple); font-size:26px; font-weight:800; }
.scc-nd-body{ display:flex; flex-direction:column; flex:1; gap:8px; padding:16px 16px 14px; }
.scc-nd-title{ font-size:15.5px; font-weight:600; line-height:1.4; color:var(--ink);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.scc-nd-off{ font-size:14px; font-weight:800; color:var(--green-d); }
.scc-nd-code{ align-self:flex-start; padding:4px 12px; border:1.5px dashed var(--purple);
  border-radius:8px; background:var(--purple-bg); color:var(--purple-d);
  font-size:12.5px; font-weight:800; letter-spacing:.08em; }
.scc-nd-cta{ margin-top:auto; display:flex; align-items:center; justify-content:center;
  min-height:46px; border-radius:999px; background:var(--gold); color:var(--gold-ink);
  font-size:14px; font-weight:800; letter-spacing:.02em;
  transition:background-color .15s; }
.scc-nd-card:hover .scc-nd-cta{ background:var(--gold-deep); }
.scc-nd-till{ margin-top:2px; text-align:right; font-size:12px; color:var(--muted); }
.scc-nd-empty{ margin:24px 0 8px; padding:28px 20px; border:1px dashed var(--line);
  border-radius:16px; text-align:center; color:var(--muted); font-size:15px;
  line-height:1.7; }
@media (max-width:1023px){
  .scc-nd-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
}
@media (max-width:600px){
  .scc-nd-grid{ grid-template-columns:minmax(0,1fr); }
  .scc-nd-media{ height:170px; }
}

/* ---- Tagline strip — GrabOn's slim positioning band, below the banner.
   Carries the page's H1, sized like a tagline, never like a hero.
   Owner's spec 2026-08-05: full-bleed edge to edge, white band, charcoal
   text; hairline borders give the band its edges on the off-white page. */
.scc-hm-tagline{ margin:14px 0 0; padding:18px 16px; background:var(--gold);
  border-radius:0; width:100vw;
  margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); }
.scc-hm-tagline h1{ display:flex; align-items:center; justify-content:center; gap:20px;
  margin:0; font-size:clamp(14.5px,1.6vw,17px); line-height:1.4;
  font-weight:800; letter-spacing:-.01em; color:var(--gold-ink); text-wrap:balance;
  text-align:center; }
/* The reference ornament: a dot with a line reaching toward the title. */
.scc-hm-tagline h1::before,
.scc-hm-tagline h1::after{ content:""; flex:none; width:70px; height:8px; }
.scc-hm-tagline h1::before{
  background:radial-gradient(circle, var(--gold-ink) 3.5px, transparent 4px) left center/8px 8px no-repeat,
             linear-gradient(var(--gold-ink), var(--gold-ink)) right center/calc(100% - 13px) 2px no-repeat; }
.scc-hm-tagline h1::after{
  background:radial-gradient(circle, var(--gold-ink) 3.5px, transparent 4px) right center/8px 8px no-repeat,
             linear-gradient(var(--gold-ink), var(--gold-ink)) left center/calc(100% - 13px) 2px no-repeat; }

/* ---- Offer cards ---- */
.scc-hm-deals{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.scc-hm-deal{ display:flex; flex-direction:column; gap:12px; padding:20px 18px 18px;
  background:#fff; border:1px solid var(--line); border-radius:var(--r-card);
  text-decoration:none; color:var(--ink); }
/* Vertical, centred body: big logo on top — the logo IS the store's identity. */
.scc-hm-deal-body{ display:flex; flex-direction:column; align-items:center; gap:12px;
  min-width:0; text-align:center; }
.scc-hm-deal-logo{ flex:none; width:96px; height:96px; border-radius:16px; object-fit:contain;
  background:#fff; border:1px solid var(--line); padding:10px; }
.scc-hm-deal-init{ flex:none; display:inline-flex; align-items:center; justify-content:center;
  width:96px; height:96px; border-radius:16px; background:var(--purple-bg); color:var(--purple);
  font-size:30px; font-weight:800; }
.scc-hm-deal-txt{ display:flex; flex-direction:column; gap:5px; min-width:0; align-items:center; }
/* The saving is the headline — pulled from the coupon's own title. */
.scc-hm-deal-disc{ font-size:20px; line-height:1.15; font-weight:800; letter-spacing:-.02em;
  color:var(--purple-d); }
.scc-hm-deal-t{ font-size:13px; line-height:1.45; font-weight:500; color:var(--muted);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
/* No discount figure in the title: the title itself takes the headline slot. */
.scc-hm-deal-t--big{ font-size:14.5px; font-weight:700; color:var(--ink); -webkit-line-clamp:3; }
.scc-hm-deal-meta{ display:flex; justify-content:center; gap:12px; font-size:12px;
  color:var(--muted); border-top:1px solid var(--line); padding-top:9px; }
.scc-hm-deal-ends{ color:var(--red); font-weight:700; }
/* The conversion CTA: the canonical yellow money button (Phase 1) —
   same system as the store pages' reveal buttons. */
.scc-hm-deal-cta{ margin-top:auto; display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:0 16px; border-radius:var(--r-btn);
  background:var(--gold); color:var(--gold-ink); font-size:14px; font-weight:800;
  transition:background-color .15s; }
.scc-hm-deal:hover .scc-hm-deal-cta{ background:var(--gold-deep); }

/* Exclusive: the dark panel */
.scc-hm-excl{ padding:32px 28px 34px; border-radius:20px;
  background:linear-gradient(135deg,#3d3352 0%,var(--purple-d) 60%,#6d4a72 100%); }
.scc-hm-head--onDark .scc-hm-h2{ color:#fff; }
.scc-hm-head--onDark .scc-hm-sub{ color:rgba(255,255,255,.78); }
.scc-hm-deals--excl{ grid-template-columns:repeat(4,minmax(0,1fr)); margin-top:20px; }
.scc-hm-deal--dark{ background:rgba(255,255,255,.07); border-color:rgba(255,255,255,.22); color:#fff; }
.scc-hm-deal--dark .scc-hm-deal-t{ color:rgba(255,255,255,.85); }
.scc-hm-deal--dark .scc-hm-deal-logo{ background:#fff; }
.scc-hm-deal--dark .scc-hm-deal-disc{ color:var(--gold); }
.scc-hm-deal--dark .scc-hm-deal-meta{ color:rgba(255,255,255,.72); }


/* ---- Popular Stores — GrabOn layout (owner's screenshots 2026-08-06) ----
   Dark Store Of The Month card left; paginated grid of white logo cards with
   the name below each; hover flips a card to the brand colour showing the
   live offer count. Arrows + page dots live in the section header. */
.scc-hm-h2--bar{ display:table; margin-left:auto; margin-right:auto;
  border-left:4px solid var(--gold); padding-left:12px; }
.scc-hm-head--row{ align-items:center; }
.scc-hm-stnav{ display:flex; align-items:center; gap:12px; }
.scc-hm-stnav-btn{ width:34px; height:34px; border-radius:50%; border:1px solid var(--line);
  background:#fff; color:var(--ink); font-size:18px; line-height:1; cursor:pointer; }
.scc-hm-stnav-btn:hover{ background:var(--purple-bg); }
.scc-hm-stiles-dots{ display:flex; align-items:center; gap:7px; }
.scc-hm-stiles-dots i{ width:8px; height:8px; border-radius:999px; background:#DCD6E6;
  transition:width .2s, background-color .2s; }
.scc-hm-stiles-dots i.is-on{ width:24px; background:var(--gold); }

.scc-hm-topstores{ display:grid; grid-template-columns:250px minmax(0,1fr); gap:18px; }

/* Store Of The Month — the dark portrait card. */
.scc-hm-fstore{ display:flex; flex-direction:column; text-align:center;
  padding:20px 18px 16px; border-radius:18px; text-decoration:none; overflow:hidden;
  background:linear-gradient(160deg,#9b87bd 0%,var(--purple) 45%,var(--purple-d) 100%);
  color:#fff; }
.scc-hm-fstore-eyebrow{ font-size:13px; font-weight:800; letter-spacing:.08em;
  text-transform:uppercase; color:var(--gold); }
.scc-hm-fstore-title{ margin:6px 0 0; font-size:19px; font-weight:800; letter-spacing:-.015em; }
.scc-hm-fstore-panel{ display:flex; align-items:center; justify-content:center;
  align-self:center; width:180px; height:100px; margin:auto 0; border-radius:14px;
  background:#fff; padding:12px; }
.scc-hm-fstore-panel img{ max-width:100%; max-height:72px; width:auto; height:auto;
  object-fit:contain; }
.scc-hm-fstore-init{ font-size:28px; font-weight:800; color:var(--purple); }
.scc-hm-fstore-foot{ display:flex; align-items:stretch; justify-content:center; gap:16px;
  margin:auto 0 0; padding:14px 0; border-top:1px solid rgba(255,255,255,.25);
  border-bottom:1px dashed rgba(255,255,255,.35); }
.scc-hm-fstore-stat{ display:flex; flex-direction:column; align-items:center; gap:6px;
  font-size:13.5px; font-weight:700; font-variant-numeric:tabular-nums; }
.scc-hm-fstore-stat svg{ width:17px; height:17px; color:var(--gold); }
.scc-hm-fstore-div{ border-left:1px dashed rgba(255,255,255,.35); }
.scc-hm-fstore-cta{ display:flex; align-items:center; justify-content:center;
  min-height:46px; margin:14px 0 0; padding:0 16px;
  border-radius:10px; background:var(--gold); color:var(--gold-ink);
  font-size:13.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.scc-hm-fstore:hover .scc-hm-fstore-cta{ background:var(--gold-deep); }

/* The paginated tile track: 4 columns x 3 rows per page on desktop. */
.scc-hm-stiles{ display:grid; grid-auto-flow:column; overflow-anchor:none;
  grid-template-rows:repeat(3,minmax(0,1fr));
  grid-auto-columns:calc((100% - 3 * 16px) / 4);
  gap:14px 16px; overflow-x:auto; overscroll-behavior-x:contain;
  scroll-snap-type:x proximity; -ms-overflow-style:none; scrollbar-width:none;
  padding:0 0 4px; }
.scc-hm-stiles::-webkit-scrollbar{ display:none; }
.scc-hm-stcell{ display:flex; flex-direction:column; text-decoration:none;
  scroll-snap-align:start; }
.scc-hm-stile{ position:relative; display:flex; align-items:center; justify-content:center;
  min-height:96px; background:#fff; border:1px solid var(--line); border-radius:12px;
  overflow:hidden; }
.scc-hm-stile-logo{ display:flex; align-items:center; justify-content:center; padding:10px; }
.scc-hm-stile-logo img{ max-width:96px; max-height:52px; width:auto; height:auto; object-fit:contain; }
.scc-hm-stile-init{ display:inline-flex; align-items:center; justify-content:center;
  width:64px; height:44px; border-radius:10px; background:var(--purple-bg); color:var(--purple);
  font-size:18px; font-weight:800; }
/* Hover flip: the count card, like the reference's blue tile. */
.scc-hm-stile-flip{ position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:1px;
  background:var(--purple); color:#fff; opacity:0; transition:opacity .16s; }
.scc-hm-stile-flip-n{ font-size:24px; font-weight:800; font-variant-numeric:tabular-nums; }
.scc-hm-stile-flip-w{ font-size:12.5px; font-weight:600; color:rgba(255,255,255,.85); }
.scc-hm-stname{ margin:9px 0 0; text-align:center; font-size:14px; font-weight:600;
  color:var(--ink); }
@media (hover:hover) and (pointer:fine){
  .scc-hm-stcell:hover .scc-hm-stile-flip{ opacity:1; }
  .scc-hm-stcell:hover .scc-hm-stname::after{ content:" \2197"; color:var(--purple); }
}
.scc-hm-stcell:focus-visible .scc-hm-stile-flip{ opacity:1; }

@media (max-width:991px){
  .scc-hm-topstores{ grid-template-columns:1fr; }
}
@media (max-width:782px){
  /* Phone (owner's mobile screenshot): full-width horizontal month card,
     3 columns x 4 rows of tiles per page, dots only. */
  .scc-hm-stnav-btn{ display:none; }
  .scc-hm-fstore{ display:grid; grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-areas:"logo eyebrow cta" "logo title cta" "logo foot cta";
    align-items:center; column-gap:14px; row-gap:5px; padding:14px 16px; text-align:left; }
  .scc-hm-fstore-panel{ grid-area:logo; width:104px; height:88px; margin:0; padding:9px; }
  .scc-hm-fstore-panel img{ max-height:62px; }
  .scc-hm-fstore-eyebrow{ grid-area:eyebrow; align-self:end; font-size:11.5px; }
  .scc-hm-fstore-title{ grid-area:title; align-self:center; margin:0; font-size:17px; }
  /* "N Coupons & N Offers" on one compact line. */
  .scc-hm-fstore-foot{ grid-area:foot; align-self:start; justify-content:flex-start;
    gap:7px; margin:0; padding:0; border:0; }
  .scc-hm-fstore-stat{ flex-direction:row; gap:5px; font-size:12.5px; }
  .scc-hm-fstore-stat svg{ width:14px; height:14px; }
  .scc-hm-fstore-div{ border:0; }
  .scc-hm-fstore-foot{ border-bottom:0; }
  .scc-hm-fstore-cta{ grid-area:cta; align-self:center; justify-self:end;
    min-height:34px; margin:0; padding:0 12px; font-size:11px; border-radius:8px; }
  .scc-hm-fstore-div::after{ content:"&"; font-size:12.5px; font-weight:700;
    color:rgba(255,255,255,.85); }
  .scc-hm-stiles{ grid-template-rows:repeat(4,minmax(0,1fr));
    grid-auto-columns:calc((100% - 2 * 8px) / 3); gap:10px 8px; }
  .scc-hm-stile{ min-height:76px; border-radius:10px; }
  .scc-hm-stile-logo{ padding:7px; }
  .scc-hm-stile-logo img{ max-width:72px; max-height:38px; }
  .scc-hm-stile-init{ width:44px; height:32px; font-size:14px; }
  .scc-hm-stile-flip-n{ font-size:18px; }
  .scc-hm-stile-flip-w{ font-size:11px; }
  .scc-hm-stname{ font-size:12px; margin-top:6px; }
}

/* ---- Tabs ---- */
.scc-hm-tabbar{ display:flex; flex-wrap:wrap; justify-content:center; gap:8px; margin:20px 0 22px; }
.scc-hm-tab{ min-height:44px; padding:0 18px; border-radius:999px; cursor:pointer;
  border:1px solid var(--line); background:#fff; color:var(--ink);
  font:inherit; font-size:14px; font-weight:700; transition:background-color .15s, border-color .15s; }
.scc-hm-tab:hover{ border-color:var(--purple); }
.scc-hm-tab.is-on{ background:var(--purple); border-color:var(--purple); color:#fff; }
/* GrabOn split card (owner's screenshots 2026-08-06): saving big at left of
   a dashed divider, title right; footer row = brand logo + "View All". */
.scc-hm-gc-grid{ display:grid; grid-auto-flow:column;
  grid-template-rows:repeat(2,minmax(0,1fr));
  grid-auto-columns:calc((100% - 2 * 18px) / 3); gap:18px;
  overflow-x:auto; overflow-anchor:none; overscroll-behavior-x:contain;
  scroll-snap-type:x proximity; padding:0 0 12px;
  scrollbar-width:thin; scrollbar-color:#d9d3e4 transparent; }
.scc-hm-gc-grid::-webkit-scrollbar{ height:6px; }
.scc-hm-gc-grid::-webkit-scrollbar-thumb{ background:#d9d3e4; border-radius:999px; }
.scc-hm-gc{ scroll-snap-align:start; }
.scc-hm-gc{ display:grid; grid-template-columns:minmax(0,37%) minmax(0,1fr);
  grid-template-rows:1fr auto; grid-template-areas:"big t" "brand link";
  background:#fff; border:1px solid var(--line); border-radius:var(--r-card);
  overflow:hidden; text-decoration:none; color:var(--ink);
  transition:box-shadow .15s, transform .15s; }
.scc-hm-gc:hover{ box-shadow:0 10px 26px rgba(33,37,41,.12); transform:translateY(-2px); }
.scc-hm-gc-big{ grid-area:big; display:flex; align-items:center; justify-content:center;
  min-height:132px; padding:24px 14px; border-right:1.5px dashed #d9d3e4;
  text-align:center; font-size:clamp(17px,1.4vw,21px); line-height:1.3;
  font-weight:800; letter-spacing:.02em; text-transform:uppercase;
  color:var(--purple); overflow-wrap:anywhere; }
.scc-hm-gc-t{ grid-area:t; align-self:center; padding:22px 18px; font-size:15.5px;
  line-height:1.55; font-weight:500;
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
/* Footer band: the reference logo ships at 96x48 — shown at full size. */
.scc-hm-gc-brand{ grid-area:brand; display:flex; align-items:center; justify-content:center;
  padding:14px 12px; border-top:1px solid var(--line); background:#FBFBFD; }
.scc-hm-gc-brand img{ height:auto; max-height:56px; max-width:126px; object-fit:contain; }
.scc-hm-gc-init{ display:flex; align-items:center; justify-content:center;
  min-width:72px; height:44px; padding:0 10px; border-radius:10px;
  background:var(--purple-bg); color:var(--purple); font-weight:800; font-size:16px; }
.scc-hm-gc-link{ grid-area:link; display:flex; align-items:center; gap:7px; min-width:0;
  padding:14px 18px 14px 4px; border-top:1px solid var(--line); background:#FBFBFD;
  font-size:14px; font-weight:700; color:var(--purple); }
/* Text trims with an ellipsis; the external-link icon never disappears. */
.scc-hm-gc-link-t{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scc-hm-gc-link svg{ flex:none; width:16px; height:16px; }
.scc-hm-gc:hover .scc-hm-gc-link{ text-decoration:underline; }
.scc-hm-panel-more{ margin:18px 0 0; text-align:center; }
.scc-hm-panel-more a{ display:inline-flex; align-items:center; min-height:44px;
  font-size:14.5px; font-weight:700; color:var(--purple); text-decoration:none; }
.scc-hm-panel-more a:hover{ text-decoration:underline; }

/* ---- Categories ---- */
.scc-hm-cats{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.scc-hm-cat{ display:flex; flex-direction:column; align-items:center; gap:8px;
  padding:20px 14px 16px; background:#fff; border:1px solid var(--line);
  border-radius:var(--r-card); text-decoration:none; color:var(--ink); text-align:center; }
.scc-hm-cat-icon{ display:inline-flex; width:44px; height:44px; }
.scc-hm-cat-icon svg{ width:100%; height:100%; }
.scc-hm-cat-n{ font-size:14px; font-weight:700; line-height:1.3; }
.scc-hm-cat-c{ font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }

/* ---- Verification steps ---- */
.scc-hm-steps{ list-style:none; margin:26px 0 0; padding:0;
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; counter-reset:scc-step; }
.scc-hm-steps li{ position:relative; padding:22px; background:#fff;
  border:1px solid var(--line); border-radius:var(--r-card); counter-increment:scc-step; }
.scc-hm-steps li::after{ content:counter(scc-step); position:absolute; top:18px; right:18px;
  font-size:26px; font-weight:800; color:var(--line); line-height:1; }
.scc-hm-step-h{ margin:14px 0 0; font-size:16px; font-weight:800; letter-spacing:-.012em; }
.scc-hm-step-p{ margin:7px 0 0; font-size:14px; line-height:1.6; color:#54525e; }

/* ---- Editorial ---- */
.scc-hm-posts{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.scc-hm-post{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line);
  border-radius:var(--r-card); overflow:hidden; text-decoration:none; color:var(--ink); }
.scc-hm-post-thumb{ display:block; }
.scc-hm-post-thumb img,
.scc-hm-post-noimg{ display:block; width:100%; aspect-ratio:16/9; object-fit:cover;
  background:var(--purple-bg); }
.scc-hm-post-noimg{ background:linear-gradient(135deg,var(--purple-bg),#e6def0); }
.scc-hm-post-b{ display:flex; flex-direction:column; gap:7px; padding:16px 18px 18px; }
.scc-hm-post-meta{ display:flex; align-items:center; gap:10px; font-size:12.5px; color:var(--muted); }
.scc-hm-post-cat{ padding:2px 9px; border-radius:999px; background:var(--purple-bg);
  color:var(--purple-d); font-weight:700; }
.scc-hm-post-t{ font-size:15.5px; line-height:1.35; font-weight:700; letter-spacing:-.01em;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.scc-hm-post-ex{ font-size:13.5px; line-height:1.55; color:var(--muted);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.scc-hm-post-more{ margin-top:4px; font-size:13.5px; font-weight:700; color:var(--purple); }

/* ---- Newsletter ---- */
.scc-hm-news{ padding:36px 24px 34px; border-radius:20px; background:#fff;
  border:1px solid var(--line); text-align:center; }
.scc-hm-news-ico{ margin:0 auto 12px; }
.scc-hm-news-form{ display:flex; gap:10px; justify-content:center; max-width:520px; margin:22px auto 0; }
.scc-hm-news-form input[type="email"]{ flex:1 1 auto; min-width:0; min-height:48px;
  padding:0 16px; border:1.5px solid var(--line); border-radius:var(--r-btn);
  font:inherit; font-size:15px; color:var(--ink); background:#fff; }
.scc-hm-news-form input[type="email"]:focus{ border-color:var(--purple); outline:none; }
.scc-hm-news-form input[type="email"][aria-invalid="true"]{ border-color:var(--red); }
.scc-hm-hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.scc-hm-news-note{ margin:12px 0 0; font-size:13px; color:var(--muted); }
.scc-hm-news-note.is-err{ color:var(--red); font-weight:600; }
.scc-hm-news-note.is-ok{ color:var(--green-d); font-weight:600; }

/* ---- SEO intro: a structured band, not a wall of text ---- */

/* ---- FAQ ---- */
.scc-hm-faq-list{ max-width:760px; margin:22px auto 0; }
.scc-hm-faq-item{ background:#fff; border:1px solid var(--line); border-radius:14px;
  margin:0 0 10px; overflow:hidden; }
.scc-hm-faq-h{ margin:0; font-size:inherit; }
.scc-hm-faq-btn{ display:flex; align-items:center; justify-content:space-between; gap:14px;
  width:100%; min-height:52px; padding:14px 18px; border:0; background:none; cursor:pointer;
  font:inherit; font-size:15.5px; font-weight:700; color:var(--ink); text-align:left; }
.scc-hm-faq-x{ flex:none; position:relative; width:16px; height:16px; }
.scc-hm-faq-x::before, .scc-hm-faq-x::after{ content:""; position:absolute; inset:0; margin:auto;
  background:var(--purple); border-radius:2px; transition:transform .2s; }
.scc-hm-faq-x::before{ width:16px; height:2.5px; }
.scc-hm-faq-x::after{ width:2.5px; height:16px; }
.scc-hm-faq-btn[aria-expanded="true"] .scc-hm-faq-x::after{ transform:rotate(90deg); }
.scc-hm-faq-a{ padding:0 18px 16px; }
.scc-hm-faq-a p{ margin:0; font-size:14.5px; line-height:1.65; color:var(--body); }

/* ---- Hover polish, pointer devices only ---- */
@media (hover:hover) and (pointer:fine){
  .scc-hm-deal, .scc-hm-stile, .scc-hm-cat, .scc-hm-post{
    transition:border-color .15s, box-shadow .15s, transform .15s; }
  .scc-hm-deal:hover, .scc-hm-stile:hover, .scc-hm-cat:hover, .scc-hm-post:hover{
    border-color:#d9d3e6; box-shadow:0 6px 20px rgba(60,40,90,.08); transform:translateY(-2px); }
  .scc-hm-deal--dark:hover{ border-color:rgba(255,255,255,.4); }
}

/* ---- Tablet ---- */
@media (max-width:991px){
  .scc-page.scc-home-page{ padding-left:20px !important; padding-right:20px !important; }
  .scc-hm-sec{ margin-top:56px; }
  .scc-hm-deals, .scc-hm-deals--excl{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .scc-hm-gc-grid{ grid-auto-columns:calc((100% - 14px) / 2); gap:14px; }
  .scc-hm-cats{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .scc-hm-posts{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .scc-hm-posts > :last-child{ grid-column:1 / -1; }
}

/* ---- Phone ---- */
@media (max-width:782px){
  /* Tighter edges everywhere (verified live 2026-08-05): the theme's
     container sneaks 16px past the base override, stacking to a 28px inset.
     Killing it here leaves the column's own 12px — the competitor norm. */
  body.home .scc-page.scc-home-page{ padding-left:0 !important; padding-right:0 !important; }
  /* The banner lines up with the other components' 12px edges (owner's
     direction 2026-08-05) — a rounded card, same margins as everything else. */
  body.home .scc-hm-peek{ width:auto !important; margin-left:0 !important;
    margin-right:0 !important; }
  body.home .scc-hm-peek-slide{ border-radius:14px !important; }
  /* No peek on phones (owner's direction 2026-08-04): one full-width banner
     at a time, whole image, swipe for the next. */
  .scc-hm-peek-slide{ flex-basis:100%; }
  .scc-hm-peek-track{ gap:10px; }
  .scc-hm-peek-nav{ display:none; }
  .scc-page.scc-home-page{ padding-left:16px !important; padding-right:16px !important; }
  .scc-hm-sec{ margin-top:48px; }
  .scc-hm-head{ align-items:center; gap:10px; }
  .scc-hm-all{ min-height:34px; padding:0 14px; font-size:12px; }
  .scc-hm-deals, .scc-hm-deals--excl{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .scc-hm-tabbar{ flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto;
    overscroll-behavior-x:contain; -ms-overflow-style:none; scrollbar-width:none;
    padding:0 0 4px; }
  .scc-hm-tabbar::-webkit-scrollbar{ display:none; }
  .scc-hm-tab{ flex:none; min-height:40px; padding:0 15px; font-size:13px; }
  .scc-hm-gc-grid{ display:grid; grid-auto-flow:column;
    grid-template-rows:repeat(2,minmax(0,1fr)); grid-auto-columns:min(320px,86%);
    grid-template-columns:none; gap:12px; overflow-x:auto; overflow-anchor:none;
    overscroll-behavior-x:contain; scroll-snap-type:x proximity;
    -ms-overflow-style:none; scrollbar-width:none; padding:0 0 4px; }
  .scc-hm-gc-grid::-webkit-scrollbar{ display:none; }
  .scc-hm-gc{ scroll-snap-align:start; grid-template-columns:auto minmax(0,1fr);
    grid-template-rows:auto 1fr auto; grid-template-areas:"brand big" "t t" "link link"; }
  .scc-hm-gc-big{ justify-content:flex-start; min-height:0; padding:14px 14px 0 4px;
    border-right:0; text-align:left; font-size:16px; }
  /* The round logo chip from the reference mobile card. */
  .scc-hm-gc-brand{ padding:14px 4px 0 14px; border-top:0; background:none; }
  .scc-hm-gc-brand img{ height:40px; width:auto; max-width:96px; border-radius:10px;
    background:#F7F7F8; padding:4px 7px; }
  .scc-hm-gc-init{ min-width:44px; height:40px; padding:0 8px;
    border-radius:10px; font-size:13px; }
  .scc-hm-gc-t{ padding:10px 14px 12px; font-size:14px; line-height:1.5; }
  .scc-hm-gc-link{ padding:12px 14px; font-size:13.5px; }
  .scc-hm-gc-link svg{ width:15px; height:15px; }
  .scc-hm-h2--bar{ display:block; margin:0; border-left:0; padding-left:0;
    text-align:center; }
  .scc-hm-h2--bar::after{ content:""; display:block; width:44px; height:4px;
    border-radius:2px; background:var(--gold); margin:8px auto 0; }
  .scc-hm-h2--bar + .scc-hm-intro{ text-align:center; margin:10px auto 0; }
  .scc-hm-steps li{ padding:18px; }
  .scc-hm-steps li::after{ font-size:22px; top:16px; right:16px; }
  .scc-hm-step-h{ margin:11px 0 0; }
  .scc-hm-tagline h1{ gap:12px; }
  .scc-hm-tagline h1::before,
  .scc-hm-tagline h1::after{ width:34px; }
  .scc-hm-deal{ padding:14px 12px 14px; }
  .scc-hm-deal-disc{ font-size:16px; }
  .scc-hm-deal-logo, .scc-hm-deal-init{ width:76px; height:76px; }
  .scc-hm-deal-cta{ min-height:44px; font-size:13px; }
  .scc-hm-sec--tint{ padding:22px 14px 24px; border-radius:16px; }
  /* Phone banner: GRABON'S OWN RECIPE, measured on grabon.in 2026-08-04
     (their file: 904x360, ratio 2.5:1, object-fit:fill, 8px radius card) and
     verified on staging: the SAME image serves desktop and phone, shown WHOLE
     at its natural ratio — never cropped, never zoomed. The banner's height
     comes entirely from the artwork's shape: 2.5:1 art gives the chunky
     GrabOn look. The !importants beat the theme rules that forced contain. */

  .scc-hm-cats{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .scc-hm-posts{ grid-template-columns:1fr; }
  .scc-hm-posts > :last-child{ grid-column:auto; }
  .scc-hm-steps{ grid-template-columns:1fr; }
  .scc-hm-excl{ padding:24px 18px 26px; }
  .scc-hm-news-form{ flex-direction:column; }
  .scc-hm-news-form .scc-hm-btn{ width:100%; }
}

/* ---- Reduced motion ---- */
@media (prefers-reduced-motion:reduce){
  .scc-hm-peek-track{ scroll-behavior:auto; }
  .scc-hm-btn, .scc-hm-deal, .scc-hm-stile, .scc-hm-cat, .scc-hm-post,
  .scc-hm-tab, .scc-hm-all, .scc-hm-faq-x::before, .scc-hm-faq-x::after{ transition:none; }
}
