/*
Theme Name: injectionX
Theme URI: https://injectionx.be
Description: Standalone bold storefront theme for injectionX. Own templates for home, shop, product, cart, checkout and content pages. Archivo display type with size-specific tracking, a single acid accent, translucent chrome, press-state feedback, full prefers-* handling. Does not depend on Astra.
Author: injectionX
Version: 1.1.1
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: injectionx
Tags: e-commerce, dark, custom-colors, custom-menu, featured-images, translation-ready
*/

/* ===========================================================
   1. TOKENS
   =========================================================== */
:root {
  --ix-ground: #0B0B0C;
  --ix-surface: #15151A;
  --ix-surface-2: #0F0F12;
  --ix-ink: #F4F4F0;
  --ix-ink-soft: #B9B9B4;
  --ix-ink-muted: #8E8E89;
  --ix-accent: #D8FF3C;
  --ix-accent-hi: #EAFF8F;
  --ix-danger: #FF5B2E;
  --ix-line: rgba(244, 244, 240, 0.10);
  --ix-line-strong: rgba(244, 244, 240, 0.28);

  --ix-display: Archivo, system-ui, -apple-system, sans-serif;
  --ix-body: Inter, system-ui, -apple-system, sans-serif;

  --ix-gutter: clamp(1.25rem, 4vw, 3rem);
  --ix-max: 1360px;
}

/* ===========================================================
   2. RESET + BASE
   =========================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--ix-ground);
  color: var(--ix-ink);
  font-family: var(--ix-body);
  font-size: 1rem;
  line-height: 1.6;
  letter-spacing: 0;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

a { color: var(--ix-accent); text-decoration: none; }
a:hover { color: var(--ix-accent-hi); }

p { margin: 0 0 1rem; color: var(--ix-ink-soft); }
ul, ol { color: var(--ix-ink-soft); }
strong, b { color: var(--ix-ink); font-weight: 600; }

::selection { background: var(--ix-accent); color: var(--ix-ground); }

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--ix-accent);
  outline-offset: 2px;
}

.ix-skip {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--ix-accent); color: var(--ix-ground);
  padding: 1rem 1.5rem; font-weight: 700;
}
.ix-skip:focus { left: 0; }

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px; overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}

/* ===========================================================
   3. TYPE — tracking and leading are size-specific
   =========================================================== */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--ix-display);
  color: var(--ix-ink);
  text-transform: uppercase;
  margin: 0 0 0.5em;
}
h1 { font-weight: 900; font-size: clamp(2.5rem, 7vw, 7rem);    line-height: 0.88; letter-spacing: -0.04em; }
h2 { font-weight: 900; font-size: clamp(1.875rem, 4.4vw, 3.25rem); line-height: 1;   letter-spacing: -0.03em; }
h3 { font-weight: 900; font-size: clamp(1.375rem, 2.6vw, 1.875rem); line-height: 1.08; letter-spacing: -0.025em; }
h4 { font-weight: 800; font-size: 1.375rem; line-height: 1.15; letter-spacing: -0.02em; }
h5 { font-weight: 700; font-size: 1.125rem; line-height: 1.2;  letter-spacing: -0.015em; }
h6 { font-weight: 700; font-size: 1rem;     line-height: 1.25; letter-spacing: -0.01em; }

.ix-eyebrow {
  font-family: var(--ix-body);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ix-accent);
  margin: 0 0 1.25rem;
}
.ix-eyebrow--muted { color: var(--ix-ink-muted); }

.ix-lede { font-size: 1.125rem; line-height: 1.6; color: var(--ix-ink-soft); max-width: 46ch; }

/* ===========================================================
   4. LAYOUT
   =========================================================== */
.ix-wrap { width: 100%; max-width: var(--ix-max); margin: 0 auto; padding-inline: var(--ix-gutter); }
.ix-section { padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.ix-section--tight { padding-block: clamp(2rem, 4vw, 3rem); }

.ix-section__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 1.5rem; flex-wrap: wrap; margin-bottom: 2.25rem;
}
.ix-section__head h2 { margin: 0; }

/* ===========================================================
   5. CHROME — translucent, content scrolls under
   =========================================================== */
.ix-chrome {
  position: sticky; top: 0; z-index: 50;
  background: rgba(11, 11, 12, 0.66);
  -webkit-backdrop-filter: blur(22px) saturate(160%);
  backdrop-filter: blur(22px) saturate(160%);
  border-bottom: 1px solid var(--ix-line);
}
.ix-chrome__inner {
  display: flex; align-items: center; gap: 2rem;
  padding-block: 1rem;
  max-width: var(--ix-max); margin: 0 auto; padding-inline: var(--ix-gutter);
}
.ix-logo {
  font-family: var(--ix-display); font-weight: 900; font-size: 1.375rem;
  letter-spacing: -0.02em; color: var(--ix-ink); text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 0.625rem;
}
.ix-logo:hover { color: var(--ix-ink); }
.ix-logo b { color: var(--ix-accent); font-weight: 900; }
.ix-logo img { max-height: 36px; width: auto; }

.ix-nav { display: flex; gap: 1.625rem; margin: 0; padding: 0; list-style: none; }
.ix-nav a {
  font-size: 0.875rem; font-weight: 500; letter-spacing: 0.01em;
  color: #C9C9C4; text-transform: none;
}
.ix-nav a:hover,
.ix-nav .current-menu-item > a { color: var(--ix-ink); }

.ix-chrome__spacer { flex: 1 1 auto; }

.ix-cart {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border: 1px solid var(--ix-line-strong);
  border-radius: 2px; color: var(--ix-ink); background: transparent;
}
.ix-cart:hover { color: var(--ix-ground); background: var(--ix-accent); border-color: var(--ix-accent); }
.ix-cart__count {
  position: absolute; top: -7px; right: -7px; min-width: 20px; height: 20px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--ix-accent); color: var(--ix-ground);
  font-family: var(--ix-display); font-weight: 900; font-size: 0.6875rem;
  border-radius: 10px; padding: 0 5px;
}

.ix-burger {
  display: none; width: 44px; height: 44px; flex: none;
  align-items: center; justify-content: center;
  background: transparent; border: 1px solid var(--ix-line-strong); border-radius: 2px;
  color: var(--ix-ink); cursor: pointer; padding: 0;
}

/* The global `svg { height: auto }` lets an icon collapse to 0 inside a flex
   button, so chrome icons get explicit dimensions and no shrink. */
.ix-burger svg, .ix-cart svg { width: 20px; height: 20px; flex: none; }

/* ===========================================================
   6. CONTROLS
   =========================================================== */
.ix-btn,
button, input[type="submit"], input[type="button"],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--ix-display); font-weight: 900; font-size: 1rem;
  letter-spacing: -0.01em; text-transform: uppercase;
  background: var(--ix-accent); color: var(--ix-ground);
  border: none; border-radius: 2px;
  padding: 1.125rem 2rem; min-height: 44px; line-height: 1.1;
  cursor: pointer;
  transition: transform 110ms ease-out, background-color 110ms ease-out;
}
.ix-btn:hover,
button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce #respond input#submit:hover, .wp-block-button__link:hover {
  background: var(--ix-accent-hi); color: var(--ix-ground);
}
/* Feedback belongs on the press */
.ix-btn:active,
button:active, input[type="submit"]:active,
.woocommerce a.button:active, .woocommerce button.button:active { transform: scale(0.97); }

/* Woo's own `.button.alt` ships its brand purple (#7f54b3) at a higher
   specificity than the base button rule, so it is matched explicitly. */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce div.product form.cart .button.alt {
  background: var(--ix-accent);
  color: var(--ix-ground);
  border: none;
}
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover {
  background: var(--ix-accent-hi);
  color: var(--ix-ground);
}
.woocommerce button.button.alt.disabled,
.woocommerce button.button.alt:disabled,
.woocommerce button.button.alt:disabled[disabled] {
  background: var(--ix-accent); color: var(--ix-ground); opacity: 0.4;
}

.ix-btn--ghost,
.woocommerce a.button.added_to_cart {
  background: transparent; color: var(--ix-ink);
  border: 1px solid var(--ix-line-strong);
}
.ix-btn--ghost:hover { background: transparent; color: var(--ix-accent); border-color: var(--ix-accent); }

.ix-btn--block { width: 100%; }

/* Disabled is the same button at reduced strength — not a different colour,
   so "choose an option first" reads as waiting rather than broken. */
button[disabled],
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce button.button.disabled,
.woocommerce div.product form.cart .button.disabled,
.woocommerce div.product form.cart button.button:disabled[disabled] {
  background: var(--ix-accent);
  color: var(--ix-ground);
  opacity: 0.4;
  cursor: not-allowed;
}
button[disabled]:hover,
.woocommerce button.button:disabled:hover,
.woocommerce button.button:disabled[disabled]:hover {
  background: var(--ix-accent); color: var(--ix-ground); opacity: 0.4;
}

/* ===========================================================
   7. FORMS
   =========================================================== */
input[type="text"], input[type="email"], input[type="url"], input[type="password"],
input[type="search"], input[type="number"], input[type="tel"], input[type="date"],
textarea, select, .select2-container .select2-selection--single {
  width: 100%;
  background: var(--ix-surface);
  border: 1px solid var(--ix-line);
  color: var(--ix-ink);
  border-radius: 2px;
  padding: 0.75rem 1rem;
  min-height: 44px;
  font-family: var(--ix-body); font-size: 1rem;
}
input:focus, textarea:focus, select:focus { border-color: var(--ix-accent); }
::placeholder { color: var(--ix-ink-muted); opacity: 1; }
label { color: var(--ix-ink-soft); font-size: 0.875rem; display: inline-block; margin-bottom: 0.375rem; }

/* ===========================================================
   8. HOME
   =========================================================== */
.ix-hero { padding-top: clamp(3rem, 6vw, 4.5rem); }
.ix-hero__grid { display: flex; gap: clamp(2rem, 4vw, 3.5rem); align-items: flex-end; flex-wrap: wrap; }
.ix-hero__copy { flex: 1 1 520px; min-width: 0; }
.ix-hero__title { margin: 0; }
.ix-hero__title em { font-style: normal; color: var(--ix-accent); }
.ix-hero__actions { display: flex; gap: 0.875rem; margin-top: 2.5rem; flex-wrap: wrap; }

.ix-feature { flex: 0 1 420px; min-width: 0; background: var(--ix-surface); border: 1px solid var(--ix-line); padding: 1.75rem; }
.ix-feature__row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-top: 1.375rem; }
/* The card is an <a>, so anything without its own colour inherits the accent. */
.ix-feature__name { font-family: var(--ix-display); font-weight: 700; font-size: 1.0625rem; letter-spacing: -0.01em; color: var(--ix-ink); }
.ix-feature:hover .ix-feature__name { color: var(--ix-accent); }
.ix-feature__price { font-family: var(--ix-display); font-weight: 900; font-size: 1.25rem; color: var(--ix-accent); }
.ix-feature__meta { margin: 0.5rem 0 0; font-size: 0.8125rem; color: var(--ix-ink-muted); }

.ix-strip { border-block: 1px solid var(--ix-line); display: flex; flex-wrap: wrap; }
.ix-strip__item { flex: 1 1 220px; padding: 1.875rem var(--ix-gutter); border-right: 1px solid var(--ix-line); }
.ix-strip__item:last-child { border-right: none; }
.ix-strip__big { margin: 0; font-family: var(--ix-display); font-weight: 900; font-size: 1.875rem; letter-spacing: -0.02em; color: var(--ix-ink); text-transform: uppercase; }
.ix-strip__label { margin: 0.375rem 0 0; font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ix-ink-muted); }

.ix-cats { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; }
.ix-cat {
  background: var(--ix-surface); border: 1px solid var(--ix-line);
  padding: 1.625rem 1.375rem; min-height: 150px;
  display: flex; flex-direction: column; justify-content: space-between;
  transition: border-color 160ms ease-out, transform 110ms ease-out;
}
.ix-cat:hover { border-color: rgba(216, 255, 60, 0.55); }
.ix-cat:active { transform: scale(0.97); }
.ix-cat__name { font-family: var(--ix-display); font-weight: 700; font-size: 1.1875rem; letter-spacing: -0.01em; color: var(--ix-ink); }
.ix-cat__foot { display: flex; align-items: center; justify-content: space-between; gap: 0.625rem; margin-top: 1.5rem; }
.ix-cat__count { font-size: 0.8125rem; color: var(--ix-ink-muted); }
.ix-cat__arrow { color: var(--ix-accent); font-size: 1.125rem; transition: transform 160ms ease-out; }
.ix-cat:hover .ix-cat__arrow { transform: translateX(6px); }

.ix-band { background: var(--ix-accent); color: var(--ix-ground); padding-block: clamp(3rem, 6vw, 4.75rem); }
.ix-band h2 { color: var(--ix-ground); max-width: 22ch; margin: 0; }
.ix-band .ix-eyebrow { color: var(--ix-ground); }
.ix-band p { color: #1C1C1A; max-width: 56ch; margin: 1.75rem 0 0; font-size: 1.0625rem; }

.ix-handling {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 2rem 2.5rem; margin-top: 2.75rem;
}
.ix-handling__item h3 {
  color: var(--ix-ground); font-size: 1rem; letter-spacing: 0.06em;
  margin: 0 0 0.75rem; padding-bottom: 0.75rem;
  border-bottom: 2px solid rgba(11, 11, 12, 0.25);
}
.ix-handling__item p {
  margin: 0; max-width: none; font-size: 0.9375rem; line-height: 1.65; color: #1C1C1A;
}

/* ===========================================================
   9. PRODUCT GRID
   =========================================================== */
.ix-grid,
.woocommerce ul.products {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1.25rem; margin: 0; padding: 0; list-style: none;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after { content: none; }

/* The <li> is a bare grid cell; the card is the link inside it, so the same
   card markup works in the shop loop, shortcodes and related products. */
.woocommerce ul.products li.product {
  background: transparent; border: none;
  margin: 0; padding: 0; width: auto; float: none;
  display: flex;
}

.ix-card {
  position: relative;
  background: var(--ix-surface);
  border: 1px solid var(--ix-line);
  display: flex; flex-direction: column;
  width: 100%;
  transition: border-color 160ms ease-out, transform 110ms ease-out;
}
.ix-card:hover { border-color: rgba(216, 255, 60, 0.55); }
.ix-card:active { transform: scale(0.99); }

.ix-card__media { display: block; background: var(--ix-surface-2); aspect-ratio: 1 / 1; overflow: hidden; }
.ix-card__media img { width: 100%; height: 100%; object-fit: cover; }
.ix-card__ph {
  width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
  color: #5E5E5A; font-family: var(--ix-display); font-weight: 700; font-size: 0.8125rem;
  letter-spacing: 0.08em; text-transform: uppercase;
}

.ix-card__body { padding: 1.25rem; display: flex; flex-direction: column; gap: 0.625rem; flex: 1 1 auto; }
.ix-card__cat {
  font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ix-accent);
}
.ix-card__title {
  font-family: var(--ix-display); font-weight: 700; font-size: 1.0625rem;
  line-height: 1.25; letter-spacing: -0.01em; color: var(--ix-ink);
  text-transform: none; margin: 0;
}
.ix-card:hover .ix-card__title { color: var(--ix-accent); }
.ix-card__price,
.woocommerce ul.products li.product .price {
  font-family: var(--ix-display); font-weight: 900; font-size: 1.0625rem;
  color: var(--ix-ink); margin-top: auto;
}
.ix-card__price del, .woocommerce del {
  color: var(--ix-ink-muted); font-weight: 500; text-decoration: line-through; opacity: 1;
}
.ix-card__price ins, .woocommerce ins {
  color: var(--ix-accent); background: transparent; text-decoration: none; font-weight: 900;
}

.ix-badge {
  position: absolute; top: 0.75rem; left: 0.75rem; z-index: 2;
  background: var(--ix-accent); color: var(--ix-ground);
  font-family: var(--ix-display); font-weight: 900; font-size: 0.6875rem;
  letter-spacing: 0.06em; text-transform: uppercase;
  padding: 0.3125rem 0.625rem; border-radius: 2px;
}
.ix-badge--out { background: var(--ix-surface); color: var(--ix-ink-muted); border: 1px solid var(--ix-line); }

/* ===========================================================
   10. SHOP
   =========================================================== */
.ix-shop__head { padding-top: clamp(2.5rem, 5vw, 4rem); }
.ix-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap; margin: 2rem 0 1.5rem;
}
.ix-toolbar__count { margin: 0; font-size: 1.0625rem; color: var(--ix-ink-soft); }
.ix-toolbar__count strong { color: var(--ix-ink); }
.ix-toolbar form { margin: 0; }
.ix-toolbar select { width: auto; min-width: 200px; }

.ix-filters { display: flex; gap: 0.625rem; flex-wrap: wrap; margin-bottom: 2rem; }
.ix-filter {
  font-family: var(--ix-body); font-size: 0.875rem; font-weight: 600;
  padding: 0.75rem 1.25rem; min-height: 44px; border-radius: 2px;
  background: transparent; color: #C9C9C4; border: 1px solid var(--ix-line-strong);
  display: inline-flex; align-items: center;
  transition: transform 110ms ease-out, background-color 110ms ease-out;
}
.ix-filter:hover { color: var(--ix-ink); border-color: var(--ix-ink); }
.ix-filter:active { transform: scale(0.97); }
.ix-filter.is-on { background: var(--ix-accent); color: var(--ix-ground); border-color: var(--ix-accent); }

/* WooCommerce ships `.woocommerce nav.woocommerce-pagination ul li span.current`,
   so these selectors match its specificity rather than fight it with !important. */
.ix-pagination { display: flex; gap: 0.5rem; margin-top: 3rem; flex-wrap: wrap; }
.ix-pagination nav.woocommerce-pagination { width: 100%; }
.ix-pagination ul.page-numbers,
.woocommerce nav.woocommerce-pagination ul {
  display: flex; gap: 0.5rem; flex-wrap: wrap;
  margin: 0; padding: 0; border: none; list-style: none;
}
.ix-pagination ul.page-numbers li,
.woocommerce nav.woocommerce-pagination ul li {
  border: none; margin: 0; overflow: visible;
}
.ix-pagination ul.page-numbers li a.page-numbers,
.ix-pagination ul.page-numbers li span.page-numbers,
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 44px; min-height: 44px; padding: 0 0.75rem;
  border: 1px solid var(--ix-line); color: var(--ix-ink-soft);
  background: transparent;
  font-family: var(--ix-display); font-weight: 700; border-radius: 2px;
}
.ix-pagination ul.page-numbers li span.current,
.ix-pagination ul.page-numbers li a.page-numbers:hover,
.ix-pagination ul.page-numbers li a.page-numbers:focus,
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus {
  background: var(--ix-accent); color: var(--ix-ground); border-color: var(--ix-accent);
}

/* ===========================================================
   11. SINGLE PRODUCT
   =========================================================== */
.ix-crumbs { padding-top: 1.75rem; font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase; }
.ix-crumbs, .ix-crumbs a { color: var(--ix-ink-muted); }
.ix-crumbs a:hover { color: var(--ix-accent); }
.ix-crumbs span[aria-current] { color: var(--ix-ink); }

.ix-pdp { display: flex; gap: clamp(2rem, 4vw, 4rem); padding-top: 2.5rem; flex-wrap: wrap; }
.ix-pdp__media { flex: 1 1 480px; min-width: 0; }
.ix-pdp__frame { background: var(--ix-surface); border: 1px solid var(--ix-line); padding: clamp(1.5rem, 3vw, 2.5rem); }
.ix-pdp__thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; margin-top: 0.75rem; }
.ix-pdp__thumb { background: var(--ix-surface); border: 1px solid var(--ix-line); aspect-ratio: 1/1; overflow: hidden; }
.ix-pdp__thumb img { width: 100%; height: 100%; object-fit: cover; }
.ix-pdp__thumb.is-on { border-color: var(--ix-accent); }

.ix-pdp__info { flex: 1 1 440px; min-width: 0; }
.ix-pdp__title { margin: 0 0 1.5rem; }
.ix-pdp__price,
.woocommerce div.product p.price,
.woocommerce div.product span.price,
.woocommerce-variation-price .price {
  font-family: var(--ix-display); font-weight: 900;
  font-size: clamp(1.75rem, 3.2vw, 2.75rem); letter-spacing: -0.03em;
  color: var(--ix-accent); margin: 0;
}
.ix-pdp__terms {
  margin-top: 2.25rem; border: 1px solid rgba(216, 255, 60, 0.35);
  background: rgba(216, 255, 60, 0.06); padding: 1.5rem;
}
.ix-pdp__terms h2 {
  font-size: 0.875rem; letter-spacing: 0.06em; color: var(--ix-accent);
  margin: 0 0 0.625rem; text-transform: uppercase;
}
.ix-pdp__terms p { margin: 0; font-size: 0.875rem; line-height: 1.65; color: #D6D6D1; }

.ix-ship { margin-top: 1.125rem; font-size: 0.875rem; color: var(--ix-ink-soft); }

.ix-specs { margin-top: 2.5rem; border-top: 1px solid var(--ix-line); }
.ix-specs__row { display: flex; justify-content: space-between; gap: 1.25rem; padding: 0.875rem 0; border-bottom: 1px solid var(--ix-line); }
.ix-specs__k { font-size: 0.875rem; color: var(--ix-ink-muted); }
.ix-specs__v { font-size: 0.875rem; color: var(--ix-ink); font-weight: 500; text-align: right; }

/* WooCommerce bits inside our product template */

/* Woo floats the gallery at 48% for its own two-column layout. Our flex row
   already does the splitting, so the gallery fills its frame. */
.woocommerce div.product div.images,
.ix-pdp__frame .woocommerce-product-gallery {
  width: 100%; float: none; margin: 0;
}
.woocommerce div.product div.summary { width: 100%; float: none; margin: 0; }

.woocommerce div.product form.cart { margin: 2.25rem 0 0; }
.woocommerce div.product form.cart table.variations { width: 100%; border: none; margin-bottom: 1.25rem; }
.woocommerce div.product form.cart table.variations td,
.woocommerce div.product form.cart table.variations th {
  border: none; padding: 0 0 1rem; display: block; width: 100%;
  background: transparent; text-align: left;
}
.woocommerce div.product form.cart table.variations label {
  font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase;
  font-weight: 600; color: var(--ix-ink-muted);
}
.woocommerce div.product form.cart .reset_variations { color: var(--ix-ink-muted); font-size: 0.8125rem; }
.woocommerce div.product form.cart .quantity { margin-right: 0.75rem; }
.woocommerce div.product form.cart .quantity input { width: 90px; text-align: center; }
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1 1 auto; font-size: 1.125rem; padding: 1.375rem 2rem; }
.woocommerce div.product form.cart .ix-cart-row { display: flex; gap: 0.75rem; align-items: stretch; flex-wrap: wrap; }
.woocommerce div.product .stock { color: var(--ix-accent); font-size: 0.875rem; }
.woocommerce div.product .out-of-stock { color: var(--ix-danger); }

.ix-tabs { margin-top: clamp(3rem, 6vw, 4.5rem); }
.ix-tabs__nav { display: flex; gap: 1.5rem; border-bottom: 1px solid var(--ix-line); margin: 0 0 1.75rem; padding: 0; list-style: none; flex-wrap: wrap; }
.ix-tabs__nav a {
  display: inline-block; padding: 0 0 0.875rem;
  font-family: var(--ix-display); font-weight: 700; text-transform: uppercase;
  letter-spacing: -0.01em; color: var(--ix-ink-muted); border-bottom: 2px solid transparent;
}
.ix-tabs__nav .is-on a, .ix-tabs__nav a:hover { color: var(--ix-accent); border-bottom-color: var(--ix-accent); }
.ix-tabs__panel { max-width: 70ch; }
.ix-tabs__panel[hidden] { display: none; }

/* ===========================================================
   12. CONTENT PAGES (cart, checkout, account, editorial)
   =========================================================== */
.ix-page { padding-block: clamp(2.5rem, 5vw, 4rem) clamp(3.5rem, 7vw, 5.5rem); }
.ix-page__title { margin: 0 0 2.5rem; }
.ix-prose { max-width: 70ch; }
.ix-prose h2, .ix-prose h3 { margin-top: 2.5rem; }
.ix-prose a { text-decoration: underline; text-underline-offset: 3px; }

.woocommerce table.shop_table {
  width: 100%; border-collapse: collapse; border: 1px solid var(--ix-line);
  background: var(--ix-surface); border-radius: 0; margin-bottom: 2rem;
}
.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-bottom: 1px solid var(--ix-line); padding: 1rem; color: var(--ix-ink-soft); background: transparent;
}
.woocommerce table.shop_table th {
  color: var(--ix-ink); font-family: var(--ix-display); font-weight: 700;
  text-transform: uppercase; font-size: 0.8125rem; letter-spacing: 0.06em;
}
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-MyAccount-navigation {
  background: var(--ix-surface); border: 1px solid var(--ix-line); padding: 1.5rem;
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li { padding: 0.5rem 0; }
.woocommerce-MyAccount-navigation a { color: var(--ix-ink-soft); }
.woocommerce-MyAccount-navigation .is-active a { color: var(--ix-accent); }

.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
  background: var(--ix-surface); color: var(--ix-ink);
  border: 1px solid var(--ix-line); border-top: 2px solid var(--ix-accent);
  border-radius: 2px; padding: 1.125rem 1.25rem; margin-bottom: 1.5rem; list-style: none;
}
.woocommerce-error { border-top-color: var(--ix-danger); }

/* ===========================================================
   12b. ABOUT — research library
   =========================================================== */
.ix-studies { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 1.25rem; }
.ix-study {
  background: var(--ix-surface); border: 1px solid var(--ix-line);
  padding: 1.875rem; display: flex; flex-direction: column;
  transition: border-color 160ms ease-out;
}
.ix-study:hover { border-color: rgba(216, 255, 60, 0.45); }
.ix-study__num {
  margin: 0 0 1rem; font-family: var(--ix-display); font-weight: 900;
  font-size: 2rem; line-height: 1; letter-spacing: -0.03em; color: var(--ix-accent);
}
.ix-study__title {
  margin: 0 0 0.875rem; font-size: 1.25rem; line-height: 1.15;
  letter-spacing: -0.02em; text-transform: none; color: var(--ix-ink);
}
.ix-study__body { margin: 0 0 1.5rem; font-size: 0.9375rem; line-height: 1.65; }
.ix-study__link {
  margin-top: auto; font-size: 0.8125rem; font-weight: 600;
  letter-spacing: 0.08em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 0.375rem; min-height: 44px;
}
.ix-study__link--todo { color: var(--ix-ink-muted); font-family: var(--ix-body); }

.ix-disclaimer { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.25rem; }
.ix-disclaimer__item {
  border-left: 2px solid var(--ix-accent);
  padding: 0.25rem 0 0.25rem 1.5rem;
}
.ix-disclaimer__item h3 {
  font-size: 1rem; letter-spacing: 0.06em; margin: 0 0 0.625rem; color: var(--ix-accent);
}
.ix-disclaimer__item p { margin: 0; font-size: 0.875rem; line-height: 1.7; }

/* ===========================================================
   13. FOOTER
   =========================================================== */
.ix-footer { border-top: 1px solid var(--ix-line); padding-block: clamp(3rem, 5vw, 4.5rem) 3.5rem; }
.ix-footer__cols { display: flex; gap: clamp(2rem, 4vw, 3.5rem); flex-wrap: wrap; }
.ix-footer__brand { flex: 1 1 300px; min-width: 0; }
.ix-footer__col { flex: 0 1 180px; }
.ix-footer__h {
  margin: 0 0 1rem; font-size: 0.75rem; letter-spacing: 0.12em;
  text-transform: uppercase; color: #6E6E6A; font-weight: 600;
}
.ix-footer__col ul { list-style: none; margin: 0; padding: 0; }
.ix-footer__col li { margin-bottom: 0.625rem; }
.ix-footer__col a { color: #C9C9C4; font-size: 0.875rem; }
.ix-footer__col a:hover { color: var(--ix-ink); }
.ix-footer__legal { margin: 3.5rem 0 0; font-size: 0.8125rem; color: #6E6E6A; }
.ix-footer__disclaimer { font-size: 0.875rem; line-height: 1.7; color: var(--ix-ink-muted); max-width: 42ch; }

/* ===========================================================
   14. SMALL SCREENS
   =========================================================== */
@media (max-width: 860px) {
  .ix-burger { display: inline-flex; }
  .ix-nav {
    display: none; position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; gap: 0;
    background: var(--ix-ground); border-bottom: 1px solid var(--ix-line);
    padding: 0.5rem var(--ix-gutter) 1rem;
  }
  .ix-nav.is-open { display: flex; }
  .ix-nav li { border-bottom: 1px solid var(--ix-line); }
  .ix-nav a { display: block; padding: 0.875rem 0; min-height: 44px; }
  .ix-chrome { position: relative; }
  .ix-strip__item { border-right: none; border-bottom: 1px solid var(--ix-line); }
  .ix-grid, .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.875rem; }
  .ix-pdp__thumbs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
  .ix-grid, .woocommerce ul.products { grid-template-columns: 1fr; }
}

/* ===========================================================
   15. PREFERENCES
   =========================================================== */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .ix-btn:active, button:active, .ix-cat:active, .ix-card:active, .ix-filter:active { transform: none !important; }
  .ix-cat:hover .ix-cat__arrow { transform: none; }
}

@media (prefers-reduced-transparency: reduce) {
  .ix-chrome { background: var(--ix-ground); -webkit-backdrop-filter: none; backdrop-filter: none; }
}

@media (prefers-contrast: more) {
  :root {
    --ix-line: #F4F4F0;
    --ix-line-strong: #F4F4F0;
    --ix-ink-muted: #D6D6D1;
    --ix-ink-soft: #F4F4F0;
  }
  .ix-chrome { background: #000; -webkit-backdrop-filter: none; backdrop-filter: none; }
}
