/*
 * GameRigCi — direction A, "Arena Light".
 * White page, #F2F3F5 tiles, ink #0B0D12, one volt accent (#C8F031, fill only — never text on white),
 * Space Grotesk headlines, Inter body, JetBrains Mono for spec labels. Loaded after style.css (inc/storefront.php).
 *
 * Product photos are normalized to white squares (tools/normalize-product-images.php); `mix-blend-mode: multiply`
 * lets the white melt into the grey tile so cards read as one surface.
 */

:root {
  --grc-ink: var(--wp--preset--color--ink, #0B0D12);
  --grc-body: var(--wp--preset--color--body, #3A3F4B);
  --grc-muted: var(--wp--preset--color--muted, #5B6170);
  --grc-line: #E6E8EC;
  --grc-tile: var(--wp--preset--color--surface, #F2F3F5);
  --grc-panel: var(--wp--preset--color--panel, #EEF0F3);
  --grc-volt: var(--wp--preset--color--accent, #C8F031);
  --grc-mono: var(--wp--preset--font-family--mono, ui-monospace, monospace);
  --grc-head: var(--wp--preset--font-family--heading, sans-serif);
  --grc-gutter: 40px;
}
@media (max-width: 999px) { :root { --grc-gutter: 24px; } }
@media (max-width: 689px) { :root { --grc-gutter: 16px; } }

body { background: #FFFFFF; color: var(--grc-body); }
h1, h2, h3, .entry-title { color: var(--grc-ink); letter-spacing: -0.03em; }

/* ---------- shared pieces ---------- */
.grc-wrap { box-sizing: border-box; width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: var(--grc-gutter); }
.entry-content .grc-wrap { max-width: 1440px; }
.entry-content .grc-band { width: auto !important; max-width: none !important; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; }
body { overflow-x: clip; }
.grc-section { padding-top: 96px; }
@media (max-width: 689px) { .grc-section { padding-top: 56px; } }

.grc-eyebrow, .grc-label, .grc-chip, .grc-card__brand {
  font-family: var(--grc-mono); font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em;
}
.grc-eyebrow { display: block; font-size: 13px; color: var(--grc-body); }
.grc-eyebrow--volt { color: var(--grc-volt); }
.grc-label { font-size: 11px; color: var(--grc-muted); }
.grc-h2 { display: block; margin: 0; font-family: var(--grc-head); font-size: clamp(32px, 4vw, 48px); line-height: 1; font-weight: 700; letter-spacing: -0.025em; color: var(--grc-ink); }
.grc-h2--xl { font-size: clamp(42px, 5vw, 64px); line-height: 0.98; color: inherit; }
.grc-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: 28px; }
.grc-head > div:first-child { display: flex; flex-direction: column; gap: 10px; }
.grc-link { font-weight: 600; font-size: 15px; color: var(--grc-ink); text-decoration: none; border-bottom: 1.5px solid currentColor; padding-bottom: 2px; }

.grc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px;
  border-radius: 999px; border: 1.5px solid transparent; font: 600 15px/1 var(--wp--preset--font-family--body); text-decoration: none; cursor: pointer;
  transition: transform .15s ease, background-color .15s ease;
}
.grc-btn:hover { transform: translateY(-1px); }
.grc-btn--ink { background: var(--grc-ink); color: #FFFFFF; }
.grc-btn--ink:hover { background: #2A2E37; color: #FFFFFF; }
.grc-btn--outline { border-color: var(--grc-ink); color: var(--grc-ink); background: transparent; }
.grc-btn--white { background: #FFFFFF; color: var(--grc-ink); }
.grc-btn--white:hover { color: var(--grc-ink); }
.grc-actions { display: flex; gap: 12px; flex-wrap: wrap; }

.grc-chip { display: inline-flex; align-items: center; padding: 6px 10px; border-radius: 8px; background: #FFFFFF; color: var(--grc-ink); font-size: 11px; line-height: 1.2; }
.grc-chip--sale { background: var(--grc-volt); font-weight: 700; }
.grc-grid-bg { position: relative; isolation: isolate; }
.grc-grid-bg::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .7; pointer-events: none;
  background-image: linear-gradient(#E1E4E9 1px, transparent 1px), linear-gradient(90deg, #E1E4E9 1px, transparent 1px);
  background-size: 56px 56px;
}

/* ---------- homepage container: full width, no Blocksy top/bottom spacing ---------- */
.home .site-main > [class*="ct-container"] { padding-top: 0; padding-bottom: 0; }
.home .entry-content.is-layout-constrained { width: 100%; max-width: none; }
.home .entry-content > * + * { margin-block-start: 0; }

/* ---------- hero ---------- */
.grc-hero { padding-top: 20px; }
/* Slides stack in one grid cell; the incoming slide fades in over the outgoing one. Each slide carries the grey panel
   and grid itself, because a fading element is isolated and the photos' multiply needs the grey inside that group. */
.grc-hero__panel { position: relative; display: grid; border-radius: 32px; background: var(--grc-panel); overflow: hidden; }
.grc-hero__slide {
  grid-area: 1 / 1; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); min-height: 640px; background: var(--grc-panel);
  visibility: hidden; opacity: 0; z-index: 0; transition: opacity .6s ease, visibility 0s linear .6s;
}
.grc-hero__slide.is-leaving { visibility: visible; opacity: 1; z-index: 1; transition: none; }
.grc-hero__slide.is-active { visibility: visible; opacity: 1; z-index: 2; transition: opacity .6s ease; }
.grc-hero__text { display: flex; flex-direction: column; justify-content: center; gap: 28px; padding: 64px 0 128px 64px; }
.grc-hero__title { margin: 0; font-family: var(--grc-head); font-size: clamp(50px, 6.4vw, 92px); line-height: .95; font-weight: 700; letter-spacing: -0.03em; color: var(--grc-ink); }
.grc-hero__lead { margin: 0; max-width: 420px; font-size: 18px; line-height: 1.55; color: var(--grc-body); }
.grc-hero__media { position: relative; display: flex; align-items: center; justify-content: center; padding: 24px 40px 24px 0; }
.grc-hero__media > a { display: block; width: 100%; max-width: 760px; }
.grc-hero__img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; mix-blend-mode: multiply; border-radius: 0; }
.grc-hero__spec {
  position: absolute; top: 88px; right: 64px; display: flex; flex-direction: column; gap: 4px; padding: 12px 16px; border-radius: 14px;
  background: #FFFFFF; box-shadow: 0 1px 0 #E1E4E9, 0 12px 32px rgba(11, 13, 18, .08);
}
.grc-hero__spec b { font-family: var(--grc-head); font-size: 22px; color: var(--grc-ink); }
.grc-hero__buy {
  position: absolute; bottom: 56px; right: 64px; display: flex; align-items: center; gap: 20px; max-width: 360px;
  padding: 16px 16px 16px 20px; border-radius: 18px; background: var(--grc-ink); color: #FFFFFF;
}
.grc-hero__buy > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.grc-hero__name { font-family: var(--grc-mono); font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #C3C8D2; text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; }
.grc-hero__name:hover { color: #FFFFFF; }
.grc-hero__price, .grc-hero__price .amount { font-family: var(--grc-head); font-size: 26px; font-weight: 700; color: #FFFFFF; }
.grc-hero__price del, .grc-hero__price del .amount { font-size: 15px; color: #A9AFBC; font-weight: 500; }
.grc-hero__price ins { text-decoration: none; }
.grc-hero__price .grc-from { color: #A9AFBC; font-size: 14px; }
a.grc-hero__add.button {
  flex: 0 0 auto; width: 48px; height: 48px; min-height: 0; padding: 0; border-radius: 999px; display: flex; align-items: center; justify-content: center;
  background: var(--grc-volt); color: var(--grc-ink); border: 0;
}
a.grc-hero__add.added::after { display: none; }
.grc-hero__media .added_to_cart { display: none; }
@media (max-width: 999px) {
  .grc-hero__panel { border-radius: 26px; }
  .grc-hero__slide { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .grc-hero__media > a { max-height: 46vh; display: flex; justify-content: center; }
  .grc-hero__img { width: auto; max-width: 100%; max-height: 46vh; }
  .grc-hero__text { padding: 32px 24px 0; gap: 18px; }
  .grc-hero__media { padding: 0 16px 16px; flex-direction: column; gap: 12px; }
  .grc-hero__media > a { max-width: 520px; }
  .grc-hero__spec { top: 8px; right: 16px; padding: 8px 12px; }
  .grc-hero__spec b { font-size: 16px; }
  .grc-hero__buy { position: static; max-width: none; width: 100%; box-sizing: border-box; justify-content: space-between; }
}
@media (max-width: 689px) {
  /* phones: photo first, then a short text block with one button — the whole slide fits the first screen */
  .grc-hero { padding-top: 12px; }
  .grc-hero__panel { grid-template-columns: minmax(0, 1fr); }
  .grc-hero__slide { display: flex; flex-direction: column; min-width: 0; }
  .grc-hero__text, .grc-hero__media { min-width: 0; }
  .grc-hero__media { order: -1; padding: 16px 16px 0; gap: 10px; }
  .grc-hero__media > a { max-height: 190px; }
  .grc-hero__img { max-height: 190px; }
  .grc-hero__text { padding: 14px 20px 22px; gap: 10px; }
  .grc-hero__title { font-size: 36px; }
  .grc-hero__lead { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 15px; }
  .grc-hero__text .grc-actions { flex-wrap: wrap; align-items: center; gap: 4px 16px; }
  .grc-hero__text .grc-btn { white-space: nowrap; padding-inline: 20px; }
  .grc-hero__text .grc-btn--outline { min-height: 44px; padding: 0; border: 0; background: none; text-decoration: underline; text-underline-offset: 3px; }
  .grc-hero__media > a { height: 170px; align-items: center; }
  .grc-hero__spec { display: none; }
}

/* hero slide indicators: label + bar that fills over the slide's time (assets/home.js advances on its animationend) */
.grc-hero__nav { position: absolute; z-index: 3; left: 64px; bottom: 40px; display: flex; align-items: flex-end; gap: 12px; }
.grc-hero__dot {
  display: flex; flex-direction: column; gap: 10px; width: 132px; padding: 10px 0; border: 0; background: none; cursor: pointer; text-align: left;
  font: 600 11px/1.2 var(--grc-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--grc-muted);
}
.grc-hero__dot[aria-current="true"], .grc-hero__dot:hover { color: var(--grc-ink); }
.grc-hero__dot:focus-visible { outline: 2px solid var(--grc-ink); outline-offset: 2px; border-radius: 4px; }
.grc-hero__dot-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grc-hero__bar { position: relative; display: block; height: 3px; border-radius: 3px; background: #D5D9E0; overflow: hidden; }
.grc-hero__fill { position: absolute; inset: 0; border-radius: 3px; background: var(--grc-ink); transform-origin: left center; transform: scaleX(0); }
.grc-hero__dot[aria-current="true"] .grc-hero__fill { transform: scaleX(1); }
@keyframes grc-fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.grc-hero.is-auto .grc-hero__dot[aria-current="true"] .grc-hero__fill { animation: grc-fill var(--grc-hero-delay, 4000ms) linear both; }
.grc-hero.is-held .grc-hero__fill { animation-play-state: paused !important; }
.grc-hero__pause { margin-left: 8px; }
@media (max-width: 1279px) { .grc-hero__dot { width: 104px; } }
@media (max-width: 999px) {
  .grc-hero__nav { position: relative; left: auto; bottom: auto; padding: 0 16px 16px; align-items: center; }
  .grc-hero__dot { flex: 1 1 0; width: auto; min-height: 44px; justify-content: center; }
  .grc-hero__dot-label { display: none; }
  .grc-hero__text { padding-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) { .grc-hero__slide, .grc-hero__slide.is-active { transition: none; } }

/* ---------- category tiles ---------- */
.grc-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.grc-tile {
  display: flex; flex-direction: column; gap: 6px; min-height: 420px; padding: 28px; border-radius: 28px;
  background: var(--grc-tile); color: var(--grc-ink); text-decoration: none; transition: transform .2s ease;
}
.grc-tile:hover { transform: translateY(-3px); color: var(--grc-ink); }
.grc-tile__title { font-family: var(--grc-head); font-size: 32px; letter-spacing: -0.03em; line-height: 1.05; }
.grc-tile__sub { font-size: 15px; color: var(--grc-body); }
.grc-tile__img { display: block; width: 100%; height: 230px; margin-top: auto; object-fit: contain; mix-blend-mode: multiply; border-radius: 0; }
.grc-tile__go { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: 15px; }
.grc-minis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.grc-mini {
  display: flex; align-items: center; gap: 14px; padding: 10px 18px 10px 10px; border-radius: 18px; border: 1px solid var(--grc-line);
  color: var(--grc-ink); font-weight: 600; font-size: 15px; text-decoration: none; transition: border-color .15s ease;
}
.grc-mini:hover { border-color: var(--grc-ink); color: var(--grc-ink); }
.grc-mini span { min-width: 0; line-height: 1.25; overflow-wrap: normal; hyphens: manual; }
.grc-mini img { width: 56px; height: 56px; flex: 0 0 56px; border-radius: 12px; background: var(--grc-tile); object-fit: contain; mix-blend-mode: multiply; }
@media (max-width: 999px) {
  .grc-tiles { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--grc-gutter); margin-inline: calc(-1 * var(--grc-gutter)); padding-inline: var(--grc-gutter); scrollbar-width: none; }
  .grc-tiles::-webkit-scrollbar { display: none; }
  .grc-tile { flex: 0 0 min(72vw, 300px); min-height: 0; padding: 20px; border-radius: 22px; scroll-snap-align: start; }
  .grc-tile__title { font-size: 24px; }
  .grc-tile__img { height: 160px; }
  .grc-minis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------- offers ---------- */
.grc-offers { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 20px; }
.grc-offer { display: flex; flex-direction: column; gap: 18px; min-height: 300px; padding: 44px; border-radius: 28px; box-sizing: border-box; }
.grc-offer--volt { background: var(--grc-volt); color: var(--grc-ink); }
.grc-offer--volt .grc-eyebrow { color: var(--grc-ink); }
.grc-offer--ink { background: var(--grc-ink); color: #FFFFFF; }
.grc-offer__title { font-family: var(--grc-head); font-size: clamp(36px, 4.2vw, 56px); line-height: .98; letter-spacing: -0.025em; }
.grc-offer__row { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.grc-offer--volt .grc-offer__row { justify-content: flex-start; }
.grc-offer__note { font-family: var(--grc-mono); font-size: 14px; color: #C3C8D2; }
.grc-offer__terms { font-family: var(--grc-mono); font-size: 13px; font-weight: 600; letter-spacing: .02em; color: var(--grc-ink); }
.grc-offer__terms--light { color: #C9CDD5; }
.grc-code {
  display: inline-flex; align-items: center; min-height: 52px; padding: 0 20px; border-radius: 14px; border: 1.5px dashed var(--grc-ink);
  font-family: var(--grc-mono); font-size: 18px; font-weight: 600;
}
@media (max-width: 689px) { .grc-offer { min-height: 0; padding: 26px 22px; border-radius: 24px; } }

/* ---------- product cards (homepage) ---------- */
.grc-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.grc-tab {
  min-height: 44px; padding: 0 20px; border-radius: 999px; border: 1px solid #DADDE3; background: #FFFFFF; color: var(--grc-ink);
  font: 600 14px/1 var(--wp--preset--font-family--body); cursor: pointer;
}
.grc-tab[aria-selected="true"] { background: var(--grc-ink); border-color: var(--grc-ink); color: #FFFFFF; }
/* Fixed card skeleton: the brand line and two title lines are always reserved and the price row sits on the card's
   bottom edge, so a long (clamped) or short title never moves the price and button out of line with the next card. */
.grc-card { display: flex; flex-direction: column; gap: 14px; min-width: 0; height: 100%; }
.grc-card__media { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 1; border-radius: 24px; background: var(--grc-tile); overflow: hidden; }
.grc-card__img { width: 88%; height: 88%; object-fit: contain; mix-blend-mode: multiply; border-radius: 0; transition: transform .3s ease; }
.grc-card:hover .grc-card__img { transform: scale(1.04); }
.grc-card__media .grc-chip--spec { position: absolute; top: 14px; left: 14px; }
.grc-card__media .grc-chip--sale { position: absolute; top: 14px; right: 14px; }
.grc-card__body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 6px; padding: 0 4px; }
.grc-card__brand { font-size: 11px; line-height: 16px; min-height: 16px; color: var(--grc-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.grc-card__title { font-size: 16px; font-weight: 600; line-height: 1.35; min-height: 2.7em; color: var(--grc-ink); text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.grc-card__title:hover { color: var(--grc-body); }
.grc-card__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 4px; min-height: 48px; }
.grc-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 8px; min-width: 0; line-height: 1.15; }
.grc-card__price del { order: 2; }
.grc-card__price, .grc-card__price .amount { font-family: var(--grc-head); font-size: 22px; font-weight: 700; color: var(--grc-ink); letter-spacing: -0.01em; }
.grc-card__price del, .grc-card__price del .amount { font-size: 14px; font-weight: 500; color: var(--grc-muted); }
.grc-card__price ins { text-decoration: none; }
.grc-from { font: 500 13px var(--wp--preset--font-family--body); color: var(--grc-body); letter-spacing: 0; }
a.grc-card__add, a.grc-card__add.button {
  flex: 0 0 44px; width: 44px; height: 44px; min-height: 0; padding: 0; border-radius: 999px; border: 0;
  display: flex; align-items: center; justify-content: center; background: var(--grc-ink); color: #FFFFFF;
}
a.grc-card__add:hover { background: #2A2E37; color: #FFFFFF; }
a.grc-card__add.loading { opacity: .6; }
a.grc-card__add.added { background: var(--grc-volt); color: var(--grc-ink); }
a.grc-card__add.added::after, .grc-card .added_to_cart { display: none; }
@media (max-width: 689px) {
  .grc-card__media { border-radius: 18px; }
  .grc-card__media .grc-chip { top: 10px; left: 10px; padding: 4px 7px; font-size: 10px; }
  .grc-card__media .grc-chip--sale { left: auto; right: 10px; }
  .grc-card__title { font-size: 14px; }
  .grc-card__price, .grc-card__price .amount { font-size: 18px; }
  a.grc-card__add, a.grc-card__add.button { width: 44px; height: 44px; flex-basis: 44px; }
}

/* ---------- memory spotlight ---------- */
.grc-split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.grc-feature {
  display: flex; flex-direction: column; gap: 14px; min-height: 560px; padding: 44px; border-radius: 28px; box-sizing: border-box;
  background: var(--grc-tile); color: var(--grc-ink); text-decoration: none;
}
.grc-feature:hover { color: var(--grc-ink); }
.grc-feature__img { display: block; width: 100%; height: 300px; margin-top: auto; object-fit: contain; mix-blend-mode: multiply; border-radius: 0; }
.grc-feature__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.grc-feature__foot > span:first-child { display: flex; flex-direction: column; gap: 4px; }
.grc-feature__name { font-size: 16px; }
.grc-feature__price, .grc-side__price { font-size: 15px; color: var(--grc-body); }
.grc-feature__price .amount, .grc-side__price .amount { font-family: var(--grc-head); font-weight: 700; color: var(--grc-ink); }
.grc-bignum { display: flex; align-items: baseline; gap: 8px; }
.grc-bignum b { font-family: var(--grc-head); font-size: 64px; line-height: 1; letter-spacing: -0.025em; }
.grc-stack { display: grid; grid-template-rows: 1fr 1fr; gap: 20px; }
.grc-side {
  display: grid; grid-template-columns: 1fr 1.1fr; align-items: center; gap: 16px; padding: 28px 32px; border-radius: 28px;
  background: var(--grc-tile); color: var(--grc-ink); text-decoration: none;
}
.grc-side:hover { color: var(--grc-ink); }
.grc-side__text { display: flex; flex-direction: column; gap: 6px; }
.grc-side__text b { font-size: 18px; line-height: 1.3; }
.grc-side__img { width: 100%; height: 200px; object-fit: contain; mix-blend-mode: multiply; border-radius: 0; }
@media (max-width: 999px) {
  .grc-split { grid-template-columns: 1fr; }
  .grc-feature { min-height: 0; padding: 26px 22px; border-radius: 24px; }
  .grc-feature__img { height: 220px; }
  .grc-side { padding: 20px; border-radius: 22px; }
  .grc-side__img { height: 140px; }
}

/* ---------- controllers band ---------- */
.grc-band { margin-top: 96px; background: var(--grc-ink); color: #FFFFFF; }
.grc-band__inner { padding-block: 88px; }
.grc-band .grc-head { margin-bottom: 36px; }
.grc-pad { display: flex; flex-direction: column; gap: 6px; padding: 20px 24px 24px; border-radius: 24px; background: var(--grc-tile); color: var(--grc-ink); text-decoration: none; overflow: hidden; }
.grc-pad:hover { color: var(--grc-ink); }
.grc-pad__img { width: 100%; height: 260px; object-fit: contain; mix-blend-mode: multiply; border-radius: 0; transition: transform .4s cubic-bezier(.2, .7, .2, 1); }
.grc-pad:hover .grc-pad__img { transform: scale(1.05) rotate(-2deg); }
.grc-pad__row { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-top: auto; }
.grc-pad__row b { font-size: 17px; line-height: 1.3; min-height: 2.6em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.grc-pad__price, .grc-pad__price .amount { font-family: var(--grc-head); font-size: 20px; font-weight: 700; white-space: nowrap; }
.grc-pad__price { display: flex; flex-direction: column; align-items: flex-end; line-height: 1.15; }
.grc-pad__price del, .grc-pad__price del .amount { order: 2; font-size: 13px; font-weight: 500; color: var(--grc-muted); }
.grc-pad__price ins { text-decoration: none; }
@media (max-width: 999px) {
  .grc-band { margin-top: 56px; }
  .grc-band__inner { padding-block: 48px; }
  .grc-pad__img { height: 200px; }
}

/* ---------- auto-scrolling rails: trending tabs and the controllers band (assets/home.js) ---------- */
.grc-rail[hidden] { display: none; }
.grc-rail__track {
  --rail-gap: 20px; --rail-per: 4;
  display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--rail-per) - 1) * var(--rail-gap)) / var(--rail-per));
  gap: var(--rail-gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none;
  padding-block: 8px; margin-block: -8px; /* room for the hover lift inside the scroller's clip */
}
.grc-rail__track::-webkit-scrollbar { display: none; }
.grc-rail__track > * { scroll-snap-align: start; }
.grc-pads.grc-rail__track { --rail-per: 3; }
.grc-rail__nav { display: flex; align-items: center; gap: 8px; margin-top: 28px; }
.grc-rail.is-static .grc-rail__nav { display: none; }
.grc-rail__bar { position: relative; flex: 1 1 auto; height: 2px; margin-right: 16px; border-radius: 2px; background: var(--grc-line); overflow: hidden; }
.grc-rail__thumb { position: absolute; top: 0; bottom: 0; left: 0; width: 25%; border-radius: 2px; background: var(--grc-ink); transition: width .3s ease; }
.grc-rail__btn {
  flex: 0 0 44px; width: 44px; height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px; border: 1px solid #DADDE3; background: #FFFFFF; color: var(--grc-ink); cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease, transform .15s ease;
}
.grc-rail__btn:hover { border-color: var(--grc-ink); }
.grc-rail__btn:active { transform: scale(.92); }
.grc-rail__btn:focus-visible { outline: 2px solid var(--grc-ink); outline-offset: 2px; }
.grc-rail__pause .grc-rail__ico-play, .grc-rail__pause[data-paused="true"] .grc-rail__ico-pause { display: none; }
.grc-rail__pause[data-paused="true"] .grc-rail__ico-play { display: inline; fill: currentColor; }
.grc-rail--dark .grc-rail__bar { background: #262A33; }
.grc-rail--dark .grc-rail__thumb { background: var(--grc-volt); }
.grc-rail--dark .grc-rail__btn { background: transparent; border-color: #343944; color: #FFFFFF; }
.grc-rail--dark .grc-rail__btn:hover { border-color: #FFFFFF; }
.grc-rail--dark .grc-rail__btn:focus-visible { outline-color: var(--grc-volt); }
@media (max-width: 1199px) { .grc-pads.grc-rail__track { --rail-per: 2.4; } }
@media (max-width: 999px) {
  .grc-rail__track { margin-inline: calc(-1 * var(--grc-gutter)); padding-inline: var(--grc-gutter); scroll-padding-inline: var(--grc-gutter); }
  .grc-cards.grc-rail__track { --rail-per: 2.5; --rail-gap: 12px; }
}
@media (max-width: 689px) {
  .grc-cards.grc-rail__track { --rail-per: 1.75; }
  .grc-pads.grc-rail__track { --rail-per: 1.2; --rail-gap: 12px; }
  .grc-rail__nav { margin-top: 20px; }
}

/* ---------- motion: hero entrance, scroll reveals (home.js), hover feedback ---------- */
@keyframes grc-rise { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@keyframes grc-zoom { from { opacity: 0; transform: scale(.94) translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes grc-pop { 0% { transform: scale(1); } 40% { transform: scale(1.18); } 100% { transform: scale(1); } }
/* fill-mode backwards, never both: an animation that stays in effect isolates its element, and the hero photo's
   multiply blend would then show its white square instead of melting into the grey panel */
.grc-motion .is-active .grc-hero__text > * { animation: grc-rise .8s cubic-bezier(.2, .7, .2, 1) backwards; }
.grc-motion .is-active .grc-hero__text > :nth-child(2) { animation-delay: .08s; }
.grc-motion .is-active .grc-hero__text > :nth-child(3) { animation-delay: .16s; }
.grc-motion .is-active .grc-hero__text > :nth-child(4) { animation-delay: .24s; }
.grc-motion .is-active .grc-hero__img { animation: grc-zoom 1s cubic-bezier(.2, .7, .2, 1) .1s backwards; } /* on the blended image itself, not its link */
.grc-motion .is-active .grc-hero__spec { animation: grc-rise .7s cubic-bezier(.2, .7, .2, 1) .45s backwards; }
.grc-motion .is-active .grc-hero__buy { animation: grc-rise .7s cubic-bezier(.2, .7, .2, 1) .55s backwards; }
.grc-motion .grc-reveal, .grc-motion .grc-stagger > * {
  opacity: 0; transform: translateY(32px);
  transition: opacity .7s cubic-bezier(.2, .7, .2, 1) var(--grc-d, 0ms), transform .7s cubic-bezier(.2, .7, .2, 1) var(--grc-d, 0ms);
}
.grc-motion .grc-reveal.is-in, .grc-motion .grc-stagger.is-in > * { opacity: 1; transform: none; }

.grc-btn svg, .grc-tile__go svg { transition: transform .2s ease; }
.grc-btn:hover svg, .grc-tile:hover .grc-tile__go svg { transform: translateX(4px); }
.grc-tile__img, .grc-mini img, .grc-feature__img, .grc-side__img { transition: transform .4s cubic-bezier(.2, .7, .2, 1); }
.grc-tile:hover .grc-tile__img, .grc-feature:hover .grc-feature__img, .grc-side:hover .grc-side__img { transform: scale(1.05); }
.grc-mini:hover img { transform: scale(1.08); }
.grc-feature, .grc-side { transition: transform .2s ease; }
.grc-feature:hover, .grc-side:hover { transform: translateY(-3px); }
.grc-pad { transition: transform .2s ease; }
.grc-pad:hover { transform: translateY(-4px); }
a.grc-card__add, a.grc-hero__add.button, [data-products] .product .ct-woo-card-actions .button { transition: background-color .15s ease, transform .15s ease; }
a.grc-card__add:active, a.grc-hero__add.button:active, [data-products] .product .ct-woo-card-actions .button:active { transform: scale(.9); }
a.grc-card__add.added, a.grc-hero__add.added, [data-products] .product .ct-woo-card-actions .button.added { animation: grc-pop .4s ease; }
.grc-cart-count.is-bump { animation: grc-pop .45s ease; }
@media (prefers-reduced-motion: reduce) {
  .grc-tile, .grc-pad, .grc-feature, .grc-side, .grc-btn { transition: none; }
  .grc-tile:hover, .grc-pad:hover, .grc-feature:hover, .grc-side:hover, .grc-btn:hover { transform: none; }
  .grc-tile__img, .grc-pad__img, .grc-card__img, .grc-feature__img, .grc-side__img, .grc-mini img, .grc-btn svg, .grc-tile__go svg { transition: none; transform: none !important; }
  a.grc-card__add.added, a.grc-hero__add.added, [data-products] .product .ct-woo-card-actions .button.added, .grc-cart-count.is-bump { animation: none; }
}

/* ---------- trust strip ---------- */
.grc-trust { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; padding-block: 64px; border-bottom: 1px solid var(--grc-line); }
.grc-trust__item { display: flex; gap: 16px; color: var(--grc-ink); }
.grc-trust__item svg { flex: 0 0 28px; }
.grc-trust__item div { display: flex; flex-direction: column; gap: 4px; }
.grc-trust__item b { font-size: 16px; }
.grc-trust__item span { font-size: 14px; line-height: 1.5; color: var(--grc-body); }
@media (max-width: 999px) { .grc-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-block: 40px; gap: 24px; } }
@media (max-width: 689px) { .grc-trust { grid-template-columns: 1fr; } }

/* ---------- category / shop header ---------- */
.woocommerce-products-header { margin: 0; }
.grc-cathead {
  position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center;
  min-height: 280px; margin-bottom: 32px; border-radius: 28px; background: var(--grc-panel); overflow: hidden;
}
.grc-cathead::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: .7;
  background-image: linear-gradient(#E1E4E9 1px, transparent 1px), linear-gradient(90deg, #E1E4E9 1px, transparent 1px); background-size: 56px 56px;
}
.grc-cathead__text { display: flex; flex-direction: column; gap: 14px; padding: 40px 56px; }
.grc-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: var(--grc-body); }
.grc-crumbs a { color: var(--grc-body); text-decoration: none; }
.grc-crumbs a:hover { color: var(--grc-ink); }
.grc-cathead__title { margin: 0; font-family: var(--grc-head); font-size: clamp(40px, 5vw, 72px); line-height: .95; font-weight: 700; letter-spacing: -0.03em; }
.grc-cathead__desc { max-width: 62ch; margin: 14px 0 0; font-size: 16px; line-height: 1.55; color: var(--grc-body); }
.grc-cathead__chips { display: flex; flex-wrap: wrap; gap: 10px; }
.grc-cathead__chips .grc-chip { font-size: 12px; }
.grc-cathead__media { height: 280px; display: flex; align-items: center; justify-content: center; padding-right: 40px; }
.grc-cathead__media img { width: 100%; height: 100%; max-height: 248px; object-fit: contain; mix-blend-mode: multiply; border-radius: 0; }
@media (max-width: 689px) {
  .grc-cathead { grid-template-columns: 1fr; min-height: 0; border-radius: 22px; margin-bottom: 20px; }
  .grc-cathead__text { padding: 24px 20px; gap: 10px; }
  .grc-cathead__media { display: none; }
}
/* shop/category screens start right under the header */
.tax-product_cat .site-main > [class*="ct-container"], .post-type-archive-product .site-main > [class*="ct-container"], .tax-product_brand .site-main > [class*="ct-container"] { padding-top: 20px; }

/* ---------- filter chips + sorting ---------- */
.grc-filters { display: flex; gap: 10px; flex-wrap: wrap; flex: 1 1 auto; }
.grc-filter {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid #DADDE3;
  background: #FFFFFF; color: var(--grc-ink); font-size: 14px; font-weight: 500; text-decoration: none; white-space: nowrap;
}
.grc-filter:hover { border-color: var(--grc-ink); color: var(--grc-ink); }
.grc-filter.is-active { background: var(--grc-ink); border-color: var(--grc-ink); color: #FFFFFF; font-weight: 600; }
.grc-filter--sale::before { content: ""; width: 8px; height: 8px; border-radius: 99px; background: var(--grc-volt); box-shadow: 0 0 0 1px var(--grc-ink); }
.woo-listing-top { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding-bottom: 20px; margin-bottom: 28px; border-bottom: 1px solid var(--grc-line); }
.woo-listing-top .woocommerce-ordering { margin: 0; }
.woo-listing-top .woocommerce-result-count { margin: 0 0 0 auto; font-family: var(--grc-mono); font-size: 12px; font-weight: 600; text-transform: uppercase; color: var(--grc-body); }
.woo-listing-top .woocommerce-ordering select:focus-visible { outline: 2px solid var(--grc-ink); outline-offset: 2px; }
.woo-listing-top .woocommerce-ordering select { min-height: 44px; padding: 0 36px 0 16px; border-radius: 999px; border: 1px solid #DADDE3; font-weight: 600; color: var(--grc-ink); background-color: #FFFFFF; }
@media (max-width: 689px) {
  /* phones: sort button and brand chips share one row, so the first products come up sooner */
  .woo-listing-top { gap: 10px; padding-bottom: 14px; margin-bottom: 20px; }
  .woo-listing-top .woocommerce-ordering { order: 1; flex: 0 0 auto; }
  .grc-filters { flex-wrap: nowrap; overflow-x: auto; order: 2; flex: 1 1 0; min-width: 0; margin-inline-end: calc(-1 * var(--grc-gutter)); padding-inline-end: var(--grc-gutter); scrollbar-width: none; }
  .grc-cathead__desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 4px; font-size: 15px; }
  .grc-cathead__chips .grc-chip + .grc-chip { display: none; } /* brands: the filter chips below name them */
  .grc-cathead__title { font-size: 36px; }
  .grc-filters::-webkit-scrollbar { display: none; }
  .grc-filter { min-height: 40px; padding: 0 14px; }
}

/* ---------- shop grid: Blocksy cards restyled to the homepage card ---------- */
[data-products] { --grid-columns-gap: 20px; row-gap: 40px; }
[data-products] .product { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 0 !important; background: transparent; border: 0; box-shadow: none; }
[data-products] .product figure { margin: 0 0 8px; }
[data-products] .product .ct-media-container {
  display: flex; align-items: center; justify-content: center; aspect-ratio: 1; border-radius: 24px; background: var(--grc-tile); overflow: hidden;
}
[data-products] .product .ct-media-container img { width: 88% !important; height: 88% !important; aspect-ratio: 1 !important; object-fit: contain !important; mix-blend-mode: multiply; border-radius: 0; transition: transform .3s ease; }
[data-products] .product:hover .ct-media-container img { transform: scale(1.04); }
[data-products] .product .onsale, [data-products] .product .ct-woo-badge-sale { display: none; }
.grc-card-chips { position: absolute; z-index: 2; top: 14px; left: 14px; right: 14px; display: flex; justify-content: space-between; gap: 8px; pointer-events: none; }
.grc-card-chips .grc-chip--sale:only-child { margin-left: auto; }
[data-products] .product .grc-card__brand { padding-inline: 4px; }
[data-products] .woocommerce-loop-product__title { margin: 0; padding-inline: 4px; min-height: 2.7em; font-family: var(--wp--preset--font-family--body); font-size: 16px; font-weight: 600; line-height: 1.35; letter-spacing: 0; }
[data-products] .woocommerce-loop-product__title a { color: var(--grc-ink); text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
[data-products] .product .price { margin-top: auto; padding: 8px 60px 0 4px; min-height: 44px; display: flex; align-items: center; align-content: center; flex-wrap: wrap; gap: 0 8px; line-height: 1.15; font-family: var(--grc-head); font-size: 22px; font-weight: 700; color: var(--grc-ink); }
[data-products] .product .price del { order: 2; font-size: 14px; font-weight: 500; color: var(--grc-muted); }
[data-products] .product .price ins { text-decoration: none; }
[data-products] .product .entry-meta, [data-products] .product .star-rating { display: none; }
[data-products] .product .ct-woo-card-actions { position: absolute; right: 4px; bottom: 0; margin: 0; opacity: 1 !important; visibility: visible !important; transform: none !important; }
[data-products] .product .ct-woo-card-actions .button {
  width: 44px; height: 44px; min-height: 0; padding: 0; border-radius: 999px; background: var(--grc-ink); color: transparent; font-size: 0; position: relative; overflow: hidden;
}
[data-products] .product .ct-woo-card-actions .button::before {
  content: ""; display: block !important; position: absolute; inset: 0; z-index: 1; margin: auto; width: 18px; height: 18px; background: #FFFFFF; opacity: 1; animation: none; filter: none; transform: none; border-radius: 0;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / contain no-repeat;
}
[data-products] .product .ct-woo-card-actions .button.product_type_variable::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E");
}
[data-products] .product .ct-woo-card-actions .button:hover { background: #2A2E37; }
[data-products] .product .ct-woo-card-actions .button.added { display: inline-flex !important; background: var(--grc-volt); }
[data-products] .product .ct-woo-card-actions .button.added::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
[data-products] .product .ct-woo-card-actions .button.added::before { background: var(--grc-ink); }
[data-products] .product .ct-woo-card-actions .button.added::after, [data-products] .product .added_to_cart { display: none; }
@media (max-width: 689px) {
  [data-products] { --grid-columns-gap: 12px; row-gap: 28px; }
  [data-products] .product .ct-media-container { border-radius: 18px; }
  .grc-card-chips { top: 10px; left: 10px; right: 10px; }
  .grc-card-chips .grc-chip { padding: 4px 7px; font-size: 10px; }
  [data-products] .woocommerce-loop-product__title { font-size: 14px; }
  [data-products] .product .price { font-size: 18px; padding-right: 50px; min-height: 44px; }
}

/* ---------- header ---------- */
.ct-header [data-row="top"] { font-size: 13px; font-weight: 500; }
.ct-header [data-row="middle"] { border-bottom: 1px solid var(--grc-line); }
.ct-header .ct-menu-link { font-weight: 500; font-size: 15px; text-transform: none; letter-spacing: 0; }
header [data-id="logo"] .site-logo-container { --logo-max-height: 34px; }
@media (max-width: 999px) { header [data-id="logo"] .site-logo-container { --logo-max-height: 30px; } }
@media (max-width: 689px) { header [data-id="logo"] .site-logo-container { --logo-max-height: 24px; } }
.ct-header [data-row="middle"] [data-column="start"] { min-width: max-content; }
.ct-header .menu-deals > .ct-menu-link::before { content: ""; width: 8px; height: 8px; margin-right: 6px; border-radius: 99px; background: var(--grc-volt); box-shadow: 0 0 0 1px var(--grc-ink); }

/* ---------- footer ---------- */
.ct-footer .ct-menu-link { text-transform: none; letter-spacing: 0; font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; }

/* ---------- pagination ---------- */
.ct-pagination .page-numbers { min-width: 44px; height: 44px; border-radius: 999px !important; text-transform: none; }
.ct-pagination .page-numbers.next, .ct-pagination .page-numbers.prev { padding: 0 18px; }
.ct-pagination .page-numbers.current { background: var(--grc-ink); color: #FFFFFF; }

/* ---------- empty filter results ---------- */
.grc-empty { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; padding: 8px 0 64px; }
.grc-empty__text { margin: 0; font-size: 18px; color: var(--grc-ink); }

/* ---------- search results: our panel carries the title (Blocksy's search hero is off) ---------- */
.search .site-main > [class*="ct-container"] { padding-top: 20px; }

/* ---------- cart page (blocks): items and totals side by side on wide screens ---------- */
.wc-block-cart.is-large { gap: 48px; flex-wrap: nowrap; }
.wc-block-cart.is-large .wc-block-components-main { flex: 1 1 auto !important; width: auto !important; min-width: 0; padding-right: 0; }
.wc-block-cart.is-large .wc-block-components-sidebar { flex: 0 0 380px !important; width: 380px !important; padding-left: 0; }

/* ---------- cart drawer: comfortable targets ---------- */
.store-cart-drawer__close { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.store-cart-drawer .remove_from_cart_button, .store-cart-drawer a.remove { min-width: 44px; min-height: 44px; display: inline-flex !important; align-items: center; justify-content: center; }

/* ---------- simple page hero (About) ---------- */
.grc-page-hero { box-sizing: border-box; max-width: 1360px; margin: 20px auto 0 !important; padding: 72px 56px; border-radius: 28px; background: var(--grc-panel); }
.grc-page-hero .grc-eyebrow { margin: 0 0 16px; }
.grc-page-hero__title { margin: 0; font-size: clamp(40px, 6vw, 80px); line-height: .95; letter-spacing: -0.03em; color: var(--grc-ink); }
@media (max-width: 689px) { .grc-page-hero { margin: 12px 16px 0 !important; padding: 36px 22px; border-radius: 22px; } }

/* 404 (inc/storefront.php) */
.grc-404 { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding-top: 72px; padding-bottom: 96px; }
.grc-404__title { margin: 0; font-family: var(--grc-head); font-size: clamp(36px, 6vw, 64px); line-height: 1; letter-spacing: -0.03em; color: var(--grc-ink); }
.grc-404__text { margin: 0; font-size: 17px; color: var(--grc-body); }
.grc-404__search { display: flex; gap: 8px; width: 100%; max-width: 560px; margin-top: 8px; }
.grc-404__search input[type="search"] { flex: 1 1 auto; min-width: 0; height: 48px; padding: 0 16px; border-radius: 12px; border: 1px solid #DADDE3; font-size: 16px; }
.grc-404__search input[type="search"]:focus { outline: none; border-color: var(--grc-ink); box-shadow: 0 0 0 3px rgba(11, 13, 18, .08); }
.grc-404__search .grc-btn { min-height: 48px; }
.grc-404__links { width: 100%; margin-top: 8px; flex-wrap: wrap; overflow: visible; }
@media (max-width: 689px) { .grc-404 { padding-top: 40px; padding-bottom: 64px; } }

/* Privacy choices ([store_privacy_choices], inc/privacy.php) */
.grc-choices { margin: 8px 0 24px; padding: 20px; border: 1px solid var(--grc-line); border-radius: 16px; background: var(--grc-tile); }
.grc-choices p { margin: 0 0 12px; }
.grc-choices__status { font-weight: 600; color: var(--grc-ink); }
.grc-choices__row { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 !important; }
.grc-choices [hidden] { display: none !important; }

/* PhotoSwipe containers (WooCommerce gallery, Customer Reviews) are printed on every page, but their CSS loads only
   on product pages (mu-plugins/store-perf.php): keep a closed one out of the layout everywhere. */
.pswp:not(.pswp--open) { display: none; }

/* Shop grid price on phones: Blocksy centres the sale-price pair; keep it under the title's left edge */
.products .price .sale-price, .products .price { justify-content: flex-start; }
/* Coupon codes are stored lowercase; show them as printed everywhere else (WELCOME10) */
.cart-discount th, .wc-block-components-totals-discount__coupon-list-item, .wc-block-components-chip__text { text-transform: uppercase; }

/* ---- audit fixes (visual / design) ---- */

/* Content pages (policies, contact, accessibility): one 760px reading column, the page title aligned with it and
   bigger than the section headings inside */
body.page:not(.home):not(.woocommerce-page) .hero-section.is-width-constrained .entry-header,
body.page:not(.home):not(.woocommerce-page) .entry-content > :not(.alignfull):not(.alignwide) { max-width: 760px; margin-left: auto; margin-right: auto; }
body.page:not(.home):not(.woocommerce-page) .hero-section .page-title { font-family: var(--grc-head); font-size: clamp(32px, 4vw, 44px); line-height: 1.15; letter-spacing: -0.02em; color: var(--grc-ink); }
body.page:not(.home):not(.woocommerce-page) .entry-content h2 { font-size: clamp(22px, 2.4vw, 26px); line-height: 1.25; letter-spacing: -0.01em; margin-top: 1.8em; }

/* Card prices: let del / ins be the flex items, so the sale price comes first and both start at the title's edge */
.grc-card__price .sale-price, .single-product .entry-summary .price .sale-price { display: contents; }

/* Spec chips on cards stay on one line */
.grc-card__media .grc-chip, .grc-card-chips .grc-chip { max-width: calc(100% - 64px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block; }

/* Hero slide labels: only from 1280px, where they fit; below that the bars alone */
@media (max-width: 1279px) { .grc-hero__dot-label { display: none; } }
/* Hero no taller than the screen on tablets */
@media (min-width: 690px) and (max-width: 1099px) { .grc-hero__slide { min-height: min(640px, calc(100vh - 160px)); } }

/* My account (login / register): theme inputs and pill buttons instead of the parent theme's squares */
.woocommerce-account .woocommerce-form .input-text { box-sizing: border-box; height: 48px; padding: 0 14px; border-radius: 12px; border: 1px solid #DADDE3; font-size: 16px; }
.woocommerce-account .woocommerce-form .input-text:focus { outline: none; border-color: var(--grc-ink); box-shadow: 0 0 0 3px rgba(11, 13, 18, .08); }
.woocommerce-account .woocommerce-form label, .woocommerce-account .woocommerce-form .required { font-family: var(--wp--preset--font-family--body); }
.woocommerce-account .woocommerce-form .button { min-height: 48px; padding: 0 28px; border-radius: 999px; background: var(--grc-ink); color: #FFFFFF; font-weight: 600; }
.woocommerce-account .woocommerce-form .button:hover { background: #2A2E37; }
.grc-empty-cart { padding: 24px 0 8px; }
.grc-empty-cart__title { margin: 0 0 16px; font-family: var(--grc-head); font-size: clamp(26px, 3vw, 34px); letter-spacing: -0.02em; color: var(--grc-ink); }
.grc-empty-cart__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 40px; }
.grc-empty-cart__picks { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 999px) { .grc-empty-cart__picks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }

/* Category facets (inc/facets.php) under the brand chips: a label, then chips with how many products each leaves.
   Desktop shows 4 rows, phones 2; the rest open with "More filters" (a row in use always shows). */
.grc-facets { display: flex; flex-direction: column; gap: 10px; flex-basis: 100%; order: 4; min-width: 0; max-width: 100%; margin-top: 4px; } /* min-width 0: else the widest chip row sets the width and no row can scroll */
.grc-facet { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.grc-facet__label { min-width: 92px; font-size: 13px; font-weight: 600; color: var(--grc-muted); }
.grc-facet .grc-filter { min-height: 36px; padding: 0 14px; font-size: 13px; gap: 6px; }
.grc-filter__n { font-size: 12px; font-weight: 500; color: var(--grc-muted); font-variant-numeric: tabular-nums; }
.grc-filter__n:empty { display: none; }
.grc-facets__more {
  align-self: flex-start; min-height: 36px; margin-left: 100px; padding: 0 2px; border: 0; background: none; cursor: pointer;
  font: 600 13px/1 var(--wp--preset--font-family--body); color: var(--grc-ink); text-decoration: underline; text-underline-offset: 3px;
}
.grc-facets:not(.is-open) .grc-facet--more-d { display: none; }
@media (min-width: 690px) { .grc-facets__more:not(.has-more-d) { display: none; } }
@media (max-width: 999px) {
  .grc-facet { flex-wrap: nowrap; overflow-x: auto; margin-inline: calc(-1 * var(--grc-gutter)); padding-inline: var(--grc-gutter); scrollbar-width: none; }
  .grc-facet::-webkit-scrollbar { display: none; }
  .grc-facet__label { flex: 0 0 auto; min-width: 0; position: sticky; left: calc(-1 * var(--grc-gutter)); z-index: 1; align-self: stretch; display: flex; align-items: center; margin-left: calc(-1 * var(--grc-gutter)); padding: 0 8px 0 var(--grc-gutter); background: linear-gradient(90deg, #FFFFFF 85%, rgba(255, 255, 255, 0)); } /* stays in view while the chips scroll */
  .grc-facet .grc-filter { flex: 0 0 auto; }
}
@media (max-width: 689px) {
  .grc-facets:not(.is-open) .grc-facet--more-m { display: none; }
  .grc-facets__more { margin-left: 0; }
}
@media (max-width: 689px) {
  .grc-card__media .grc-chip, .grc-card-chips .grc-chip { max-width: calc(100% - 50px); letter-spacing: 0; padding-inline: 6px; }
}

/* ---------- homepage: sale (home/sale.php) ---------- */
.grc-sale__ends { font-size: 15px; font-weight: 600; color: var(--grc-body); }
.grc-sale__rail { margin-bottom: 36px; }
.grc-sale__rail .grc-rail__nav { margin-top: 20px; }
.grc-sale__tiles.grc-rail__track { --rail-per: 4; --rail-gap: 16px; } /* a scrolling rail (home/sale.php); 4 in view */
.grc-sale__tile { display: flex; flex-direction: column; gap: 6px; padding: 22px 24px; border-radius: 24px; background: var(--grc-volt); color: var(--grc-ink); text-decoration: none; transition: transform .2s ease; }
.grc-sale__tile:hover { transform: translateY(-3px); color: var(--grc-ink); }
.grc-sale__pct { font-family: var(--grc-head); font-size: 44px; line-height: 1; letter-spacing: -0.03em; }
.grc-sale__pct span { font-size: 20px; letter-spacing: -0.01em; }
.grc-sale__what { font-size: 15px; font-weight: 600; line-height: 1.3; }
.grc-sale__go { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 10px; font-size: 14px; font-weight: 600; }

/* ---------- homepage: GPU series picker (home/gpus.php) ---------- */
.grc-gpus__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.grc-gpu { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 24px 24px 0; border-radius: 24px; background: var(--grc-tile); color: var(--grc-ink); text-decoration: none; overflow: hidden; transition: transform .2s ease; }
.grc-gpu:hover { transform: translateY(-3px); color: var(--grc-ink); }
.grc-gpu__title { font-family: var(--grc-head); font-size: 24px; line-height: 1.15; letter-spacing: -0.015em; }
.grc-gpu__meta { font-size: 14px; color: var(--grc-body); }
.grc-gpu__meta .amount { font-weight: 600; color: var(--grc-ink); }
.grc-gpu__off { position: absolute; top: 20px; right: 20px; }
.grc-gpu__img { display: block; width: calc(100% + 48px); max-width: none; height: 180px; margin: auto -24px 0; object-fit: cover; mix-blend-mode: multiply; /* square photos: fill the width, crop the empty top and bottom */ transition: transform .4s cubic-bezier(.2, .7, .2, 1); }
.grc-gpu:hover .grc-gpu__img { transform: scale(1.05); }

/* ---------- homepage: shop by brand (home/brands.php) ---------- */
.grc-brands__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.grc-brand { display: flex; flex-direction: column; gap: 4px; min-height: 120px; padding: 22px 24px; border-radius: 20px; border: 1px solid var(--grc-line); background: #FFFFFF; color: var(--grc-ink); text-decoration: none; transition: border-color .15s ease, transform .2s ease; }
.grc-brand:hover { border-color: var(--grc-ink); transform: translateY(-2px); color: var(--grc-ink); }
.grc-brand__name { font-family: var(--grc-head); font-size: 24px; letter-spacing: -0.015em; }
.grc-brand__cats { font-size: 13px; line-height: 1.4; color: var(--grc-body); }
.grc-brand__count { margin-top: auto; padding-top: 8px; font-size: 13px; font-weight: 600; color: var(--grc-muted); }

@media (max-width: 999px) {
  .grc-gpus__grid, .grc-brands__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grc-sale__tiles.grc-rail__track { --rail-per: 2.4; }
}
@media (max-width: 689px) {
  .grc-gpus__grid, .grc-brands__grid { gap: 10px; }
  .grc-sale__tiles.grc-rail__track { --rail-per: 1.7; --rail-gap: 10px; }
  .grc-sale__rail { margin-bottom: 28px; }
  .grc-sale__tile { padding: 16px 18px; border-radius: 20px; }
  .grc-sale__pct { font-size: 34px; }
  .grc-sale__pct span { font-size: 16px; }
  .grc-sale__what { font-size: 13px; }
  .grc-gpu { padding: 16px 16px 0; border-radius: 20px; }
  .grc-gpu__title { font-size: 18px; }
  .grc-gpu__meta { font-size: 12px; }
  .grc-gpu__off { position: static; align-self: flex-start; margin-top: 2px; font-size: 10px; }
  .grc-gpu__img { width: calc(100% + 32px); height: 110px; margin: auto -16px 0; }
  .grc-brand { min-height: 0; padding: 16px 18px; border-radius: 16px; }
  .grc-brand__name { font-size: 19px; }
  .grc-brand__cats { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .grc-sale__tile, .grc-gpu, .grc-brand, .grc-gpu__img { transition: none; }
}

/* Sold out (inc/storefront.php): our chip instead of Blocksy's badge, dimmed photo */
.out-of-stock-badge { display: none !important; }
.grc-chip--soldout { background: var(--grc-ink); color: #FFFFFF; }
.grc-card.is-soldout .grc-card__media img, [data-products] .product.outofstock .ct-media-container img { opacity: .5; }
