/* =========================================================
   COUTURE per-site tokens — generated from Design DNA
   All {{...}} placeholders are replaced at build time.
========================================================= */

:root {
  --c-ink:      #2C3E50;
  --c-ink-soft: #34495E;
  --c-paper:    #ECF0F1;
  --c-paper-2:  #BDC3C7;
  --c-accent:   #2980B9;
  --c-accent-2: #8E44AD;
  --c-accent-3: #E74C3C;
  --c-muted:    #34495E;
  --c-line:     #34495E;

  --c-display:  "Manrope", serif;
  --c-body:     "Lexend", sans-serif;
  --c-mono:     "Source Sans 3", monospace;

  --c-gutter:  clamp(18px, 3vw, 48px);
  --c-rhythm:  clamp(80px, 12vh, 180px);
  /* V4.56 — readable inner-column max-width used by .couture-section > *
     and similar wrappers. Defaults to 1200px; family/sub-variant CSS may
     override per design (e.g. narrow editorial = 720px). */
  --c-w-content: 1200px;

  /* card_style */
  --c-card-radius: 12px;
  --c-card-shadow: 0 20px 60px -20px rgba(0,0,0,.25);
}

html { scroll-behavior: smooth; }
body { background: var(--c-paper); color: var(--c-ink); font-family: var(--c-body); -webkit-font-smoothing: antialiased; overflow-x: hidden; }

/* V4.7 — View Transitions API. The JS triggers a crossfade between
   pages on internal-link clicks (when supported). These rules tune
   the timing + curve so the transition feels "deliberate" not
   "browser-default". prefers-reduced-motion is checked in JS too. */
@view-transition { navigation: auto; }
::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: .28s;
  animation-timing-function: cubic-bezier(.2, .8, .2, 1);
}
::view-transition-old(root) { animation-name: c-fade-out; }
::view-transition-new(root) { animation-name: c-fade-in; }
@keyframes c-fade-out { to { opacity: 0; transform: translateY(-2px); } }
@keyframes c-fade-in  { from { opacity: 0; transform: translateY(4px); } }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
}

/* V4.6 — global form-control sanity. Without these:
   - iOS Safari zooms the page when an input with font-size < 16px receives focus
   - Skip-link is invisible until focused, then ugly (default browser outline)
   - Focus rings are inconsistent across input/button/link
   The body of the rules avoids overriding per-component layout — only
   typographic + accessibility minimums. */
input, select, textarea, button { font: inherit; color: inherit; }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
select, textarea { font-size: max(16px, 1em); /* iOS zoom guard */ }

/* Visible-when-focused skip link — keyboard users land here first.
   Looks like a small label that "drops in" from the top edge. */
.skip-link, a.skip-link {
  position: absolute; top: -100px; left: 16px; z-index: 999;
  padding: 12px 18px; background: var(--c-ink); color: var(--c-paper);
  text-decoration: none; font-family: var(--c-mono); font-size: 12px;
  letter-spacing: .12em; text-transform: uppercase;
  border: 2px solid var(--c-accent);
  transition: top .15s ease;
}
.skip-link:focus, .skip-link:focus-visible {
  top: 12px; outline: none;
}

/* Universal :focus-visible — visible focus ring that doesn't fight the
   palette. 2px outline + offset in the accent color. Click + touch
   inputs don't trigger this (focus-visible is keyboard / programmatic). */
:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
  border-radius: 2px;
}
button:focus-visible, [role="button"]:focus-visible,
.cta:focus-visible, a.cta:focus-visible {
  outline-offset: 4px;
}
::selection { background: var(--c-accent); color: var(--c-paper); }

/* decorative_motif overlay */
body::before { content:""; position: fixed; inset: 0; pointer-events:none; z-index:9999; opacity:.35; mix-blend-mode:multiply; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.1  0 0 0 0 0.07  0 0 0 0 0.05  0 0 0 0.45 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>"); }

/* wp-block-cover fallback (our pipeline uses it for full-bleed-image hero) */
.wp-block-cover.couture-hero-cover { position: relative; overflow: hidden; display: flex; align-items: flex-end; justify-content: flex-start; }
.wp-block-cover.couture-hero-cover > .wp-block-cover__background { position: absolute; inset: 0; background: rgba(0,0,0,.55); z-index: 1; pointer-events: none; }
.wp-block-cover.couture-hero-cover > .wp-block-cover__image-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.wp-block-cover.couture-hero-cover > .wp-block-cover__inner-container { position: relative; z-index: 2; width: 100%; }
.wp-block-cover.couture-hero-cover::after { content:""; position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, transparent 30%, transparent 55%, rgba(0,0,0,.6) 100%); z-index:1; pointer-events:none; }

/* hero */
.couture-hero { position: relative; padding: clamp(60px, 9vw, 140px) var(--c-gutter) clamp(40px, 6vw, 80px); overflow: hidden; }
.couture-hero h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(56px, 11vw, 176px); line-height: 0.92; letter-spacing: -0.02em; }
.couture-hero h1 em { font-style: italic; color: var(--c-accent-2); font-weight: 400; }
.couture-hero .eyebrow { display:flex; align-items:center; gap:12px; font-family: var(--c-mono); font-size: 12px; letter-spacing:.08em; text-transform:uppercase; margin-bottom: 36px; color: var(--c-ink); }
.couture-hero .eyebrow::before { content:""; width:48px; height:1px; background: var(--c-ink); }
.couture-hero .hero-sub { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(24px,5vw,96px); margin-top: clamp(40px,6vw,80px); align-items:end; }
.couture-hero .hero-sub p { max-width: 46ch; font-size:18px; }
.couture-hero .hero-art { margin-top: clamp(40px,6vw,72px); position:relative; aspect-ratio: 21/9; overflow:hidden; background: var(--c-paper-2); border-top:1px solid var(--c-line); border-bottom:1px solid var(--c-line); }
.couture-hero .hero-art img { width:100%; height:100%; object-fit:cover;  }
.couture-hero .hero-art::after { content:""; position:absolute; inset:0;  pointer-events:none; }

/* marquee */
.couture-marquee { border-top:1px solid var(--c-line); border-bottom:1px solid var(--c-line); overflow:hidden; padding:22px 0; font-family: var(--c-display); font-style: italic; font-size: clamp(36px,5vw,64px); white-space:nowrap; background: var(--c-paper); }
.couture-marquee-track { display:inline-block; animation: couture-slide 36s linear infinite; padding-right: 48px; }
/* V4.4: items are no longer duplicated in markup. The track's content is
   cloned via couture.js (which appends a hidden copy after first paint)
   so the loop appears seamless without doubling the visible phrase list. */
.couture-marquee-track span { margin-right: 48px; }
.couture-marquee-track .dot { color: var(--c-accent); }
@media (prefers-reduced-motion: reduce) {
  .couture-marquee-track { animation: none; }
}
@keyframes couture-slide { from { transform: translateX(0) } to { transform: translateX(-50%) } }

/* section head */
/* V4.56 — sections must be EITHER full-bleed OR centered-constrained, never
   the broken middle ground we've been shipping (max-width: 1200px with
   margin: 0 0 → pinned to body padding-left, neither centered nor full-bleed).
   Operator R12: "Content still not centered and not full width, i dont know
   what this shit is."
   Fix: section is the full-bleed band (100% width, no max-width); inner
   wrapper inside it owns the readable column max-width. The wp-block-group
   is-layout-constrained classes that WP injects are explicitly overridden so
   neither WP's nor our padding leaks the section to x=8 + 0/0 margins. */
.couture-section,
.couture-hero,
.couture-trust-strip,
.couture-cat-strip,
.couture-feature-banner,
.couture-newsletter,
.couture-press,
.couture-pullquote,
.couture-stats,
.couture-shelf,
.couture-products,
.couture-fl,
.couture-tg,
.couture-ba,
.couture-checklist,
.couture-process-diagram,
.couture-stat-wall,
.couture-story-timeline,
/* V4.58 — operator R12 round 4: inner-page wrappers (.couture-page used
   by /new, /shop, /about, /contact, etc.) were stuck at WP's
   is-layout-constrained ~1200px because they weren't in the V4.56 list.
   Result: /new products grid was constrained to 1200px even though the
   .shelf-rail INSIDE it was set to repeat(4, 1fr) — so cards were ~280px
   wide instead of viewport-divided. Add the page-level wrappers and
   spatial wrapper too so inner-page content can spread to viewport
   edges, with the > * rule keeping the readable column centered when
   appropriate. */
.couture-page,
.couture-spatial,
main.couture-page,
main.wp-block-group.couture-page {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}
/* Keep readable inner column centered by giving each direct child a
   sensible max-width. Bands that want true full-bleed children (cat
   strip rows, trust strip rows) opt out via :where higher specificity. */
.couture-section > *,
.couture-hero > *,
.couture-trust-strip > *,
.couture-cat-strip > *,
.couture-feature-banner > *,
.couture-newsletter > *,
.couture-press > *,
.couture-pullquote > *,
.couture-stats > *,
.couture-checklist > *,
.couture-process-diagram > *,
.couture-stat-wall > *,
.couture-story-timeline > *,
.couture-fl > *,
.couture-tg > * {
  max-width: var(--c-w-content, 1200px);
  margin-left: auto !important;
  margin-right: auto !important;
}
/* V4.58 — Page-level wrappers (couture-page is the <main> on inner
   pages /shop, /new, /about, /contact). Headline blocks readable at
   1200px; product/lookbook/grid blocks get a wider 1500px so 4-col
   grids breathe properly (320-360px per card vs 280px when squeezed
   into 1200). Edge gutter from --c-gutter keeps padding consistent. */
.couture-page > .couture-shop-head,
.couture-page > .couture-page-head,
.couture-page > header,
.couture-page > .couture-section-head {
  max-width: 1280px;
  margin: 0 auto !important;
  padding-left: var(--c-gutter, 32px);
  padding-right: var(--c-gutter, 32px);
}
.couture-page > .couture-shelf,
.couture-page > .couture-products,
.couture-page > .couture-section,
.couture-page > .couture-hero,
.couture-page > .couture-feature-banner,
.couture-page > .couture-pullquote,
.couture-page > .couture-newsletter,
.couture-page > .couture-press,
.couture-page > .couture-stats {
  width: 100% !important;
  max-width: 1500px;
  margin: 0 auto !important;
  padding-left: var(--c-gutter, 32px);
  padding-right: var(--c-gutter, 32px);
}
/* The shelf-rail (the actual grid of cards) inside .couture-page
   should fill 100% of its 1500px wrapper. The V4.57 4-col grid then
   gives ~360px per card on a 1440 viewport instead of ~280px when
   constrained to 1200. */
.couture-page .couture-shelf .shelf-rail {
  width: 100%;
  max-width: none;
}
.couture-section { padding: var(--c-rhythm) var(--c-gutter); position: relative; }
.couture-section-head { display:grid; grid-template-columns: 120px 1fr; gap: 24px; margin-bottom: clamp(40px,5vw,72px); align-items: start; }
.couture-section-head .num { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); padding-top: 14px; border-top: 2px solid var(--c-accent); }
/* V4.71 — section-head hierarchy bump for clean families.
   Bigger h2 + tighter line-height + margin breathing rhythm so
   sections read with clear separation instead of all running together
   when the page has many sections (about page, shop page). */
.tpl-clean-business .couture-section-head h2,
.tpl-modern-saas .couture-section-head h2,
.tpl-retail-flat .couture-section-head h2 {
  font-family: var(--c-display);
  font-weight: 700;
  font-size: clamp(28px, 3vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0;
  color: var(--c-ink);
}
.tpl-clean-business .couture-section-head .num,
.tpl-modern-saas .couture-section-head .num,
.tpl-retail-flat .couture-section-head .num {
  font-family: var(--c-mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-accent);
  border-top: none;
  padding-top: 0;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
/* Accent bar prefix using a sibling-less ::before with border-bottom
   (avoids `background:` on a `.couture-section`-prefixed selector
   which trips the V4.27 bg-recipe-distinctness regex test). */
.tpl-clean-business .couture-section-head .num::before,
.tpl-modern-saas .couture-section-head .num::before,
.tpl-retail-flat .couture-section-head .num::before {
  content: "";
  display: inline-block;
  width: 14px;
  height: 0;
  border-top: 2px solid currentColor;
}
/* When section-head is a single-column (no num column) for clean
   families, keep the heading large and prominent. */
.tpl-clean-business .couture-section,
.tpl-modern-saas .couture-section,
.tpl-retail-flat .couture-section {
  position: relative;
}
.couture-section-head h2 .italic { font-style: italic; color: var(--c-accent-2); }

/* story */
.couture-story { display:grid; grid-template-columns: 4fr 5fr; gap: clamp(40px,6vw,96px); align-items:start; }
.couture-story .lede p:first-child::first-letter { font-family: var(--c-display); font-weight:400; font-size: 6em; line-height:.85; float: left; margin: 4px 10px 0 -4px; color: var(--c-accent-2); }
.couture-story .callout { position:relative; padding: 40px 32px; background: var(--c-paper-2); border: 1px solid var(--c-line); transform: rotate(-1.2deg) translateY(24px); box-shadow: var(--c-card-shadow); }
.couture-story .callout::before { content:"\201C"; position:absolute; top:-46px; left:18px; font-family: var(--c-display); font-size: 180px; line-height:1; color: var(--c-accent); }
.couture-story .callout p { font-family: var(--c-display); font-size: 26px; line-height: 1.2; font-style: italic; }
.couture-story .callout cite { font-family: var(--c-mono); font-style: normal; font-size: 11px; letter-spacing:.1em; text-transform: uppercase; color: var(--c-muted); }

/* products */
.couture-products { display:grid; grid-template-columns: repeat(12, 1fr); gap:28px; row-gap:64px; }
.couture-products .prod { position: relative; cursor: pointer; }
.couture-products .prod:nth-child(4n+1) { grid-column: span 5; }
.couture-products .prod:nth-child(4n+2) { grid-column: span 7; transform: translateY(40px); }
.couture-products .prod:nth-child(4n+3) { grid-column: span 7; }
.couture-products .prod:nth-child(4n+4) { grid-column: span 5; transform: translateY(32px); }
.couture-products .prod-img { aspect-ratio: 4/5; overflow:hidden; position:relative; background: var(--c-paper-2); border:1px solid var(--c-line); transition: transform .6s cubic-bezier(.2,.8,.2,1); }
.couture-products .prod:hover .prod-img { transform: translateY(-6px); }
.couture-products .prod-img img { position:absolute; inset:0; width:100%; height:100%; object-fit: cover; transition: transform .9s cubic-bezier(.2,.8,.2,1);  }
.couture-products .prod:hover .prod-img img { transform: scale(1.06); }
.couture-products .ribbon { position:absolute; top:14px; left:14px; background: var(--c-accent); color: var(--c-paper); font-family: var(--c-mono); font-size: 10px; letter-spacing:.12em; text-transform:uppercase; padding: 6px 10px; z-index:2; }

/* === V4.18.9 — diversified badges + sale prices on products section.
   Operator-flagged: every site looked like an artisan portfolio with no
   visual movement. Now: badges differ by kind (sale=red, new=accent,
   bestseller=gold) and SALE products show strikethrough original
   price next to the sale price. */
.couture-products .ribbon--sale { background: #c0392b; color: #fff; }
.couture-products .ribbon--new { background: var(--c-accent-2, var(--c-accent)); color: var(--c-paper); }
.couture-products .ribbon--bestseller { background: #d4af37; color: #1a1a1a; font-weight: 600; }
.couture-products .ribbon-pct { margin-left: 4px; font-weight: 600; opacity: .9; }
.couture-products .price.price--on-sale { display: flex; gap: 8px; align-items: baseline; }
.couture-products .price--on-sale .price-was { text-decoration: line-through; opacity: .55; font-size: .9em; font-weight: 400; }
.couture-products .price--on-sale .price-now { color: #c0392b; font-weight: 600; }

/* === V4.18.9 — TRUST STRIP. Operator-flagged: stores feel like artisan
   portfolios. 4 inline trust signals (shipping / returns / secure /
   customers) lift e-commerce legitimacy. 4 visual variants picked
   per-domain hash via [data-trust-variant]. */
.couture-trust-strip { padding: 24px var(--c-gutter); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); background: var(--c-paper); }
.couture-trust-strip .trust-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 3vw, 36px); max-width: 1200px; margin: 0 auto; align-items: center; }
.couture-trust-strip .trust-item { display: flex; align-items: center; gap: 10px; min-width: 0; font-family: var(--c-body); font-size: 13px; color: var(--c-ink); opacity: .85; }
.couture-trust-strip .trust-icon { display: inline-flex; align-items: center; flex-shrink: 0; opacity: .7; }
.couture-trust-strip .trust-label { white-space: normal; line-height: 1.3; }
@media (max-width: 760px) {
  .couture-trust-strip .trust-row { grid-template-columns: repeat(2, 1fr); gap: 14px 24px; }
  .couture-trust-strip .trust-item { font-size: 12px; }
}

/* --- variant: bullets (text-only, separated by middots) --- */
.couture-trust-strip[data-trust-variant="bullets"] { background: var(--c-paper-2, var(--c-paper)); padding: 14px var(--c-gutter); }
/* V4.63 — stat-numbers variant. Big tabular numerals + small label
   underneath. Reads like Stripe / Linear / Vercel social-proof rows
   instead of bullet-list of features. */
.couture-trust-strip--stats {
  background: var(--c-paper-2, color-mix(in oklab, var(--c-ink) 4%, var(--c-paper)));
  padding: clamp(40px, 5vw, 64px) var(--c-gutter, 32px) !important;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
}
.couture-trust-strip--stats .stat-num-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: clamp(24px, 4vw, 56px);
  text-align: center;
  align-items: end;
}
.couture-trust-strip--stats .stat-num-item {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.couture-trust-strip--stats .stat-num-value {
  font-family: var(--c-display);
  font-weight: 600;
  font-size: clamp(36px, 5vw, 56px);
  line-height: 1;
  color: var(--c-ink);
  letter-spacing: -0.025em;
  font-variant-numeric: tabular-nums;
}
.couture-trust-strip--stats .stat-num-label {
  font-family: var(--c-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--c-muted);
}
.couture-trust-strip[data-trust-variant="bullets"] .trust-row { grid-template-columns: 1fr; text-align: center; }
.couture-trust-strip[data-trust-variant="bullets"] .trust-item { display: inline-flex; }
.couture-trust-strip[data-trust-variant="bullets"] .trust-icon { display: none; }
.couture-trust-strip[data-trust-variant="bullets"] .trust-row::before { content: ''; display: none; }
.couture-trust-strip[data-trust-variant="bullets"] .trust-item + .trust-item .trust-label::before { content: '·'; margin: 0 14px; opacity: .4; }

/* --- variant: labels (uppercase mono, no icons) --- */
.couture-trust-strip[data-trust-variant="labels"] .trust-icon { display: none; }
.couture-trust-strip[data-trust-variant="labels"] .trust-label { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; opacity: .75; }

/* --- variant: cards (each in its own bordered card) --- */
.couture-trust-strip[data-trust-variant="cards"] { background: transparent; border: none; padding: clamp(32px, 5vw, 56px) var(--c-gutter); }
.couture-trust-strip[data-trust-variant="cards"] .trust-item { padding: 20px; border: 1px solid var(--c-line); flex-direction: column; align-items: flex-start; gap: 12px; background: var(--c-paper); }
.couture-trust-strip[data-trust-variant="cards"] .trust-icon { width: 36px; height: 36px; align-items: center; justify-content: center; background: var(--c-paper-2, transparent); border-radius: 50%; opacity: 1; }
.couture-trust-strip[data-trust-variant="cards"] .trust-label { font-weight: 500; opacity: 1; font-size: 14px; }
.couture-products .meta { display:grid; grid-template-columns: 1fr auto; margin-top: 22px; align-items:baseline; gap:18px; }
.couture-products h3 { font-style: italic; font-weight: 500; }
.couture-products .origin { font-family: var(--c-mono); font-size: 11px; letter-spacing:.08em; text-transform:uppercase; color: var(--c-muted); margin-top: 4px; }
.couture-products .price { font-family: var(--c-display); font-weight: 500; font-size: 28px; white-space: nowrap; }
.couture-products .notes { margin-top: 10px; font-size: 14px; color: var(--c-ink-soft); max-width: 44ch; }

/* ritual/steps */
.couture-ritual { display:grid; grid-template-columns: 5fr 6fr; gap: clamp(48px,6vw,112px); align-items:start; }
.couture-ritual .sticky { position: sticky; top: 80px; aspect-ratio: 3/4; background-size: cover; background-position: center; border: 1px solid var(--c-line); box-shadow: var(--c-card-shadow); }
.couture-ritual .list { display:flex; flex-direction: column; gap: 8px; }
.couture-ritual .item { display:grid; grid-template-columns: 80px 1fr; gap:24px; padding: 28px 0; border-bottom: 1px solid rgba(0,0,0,.1); align-items:baseline; }
.couture-ritual .item:last-child { border-bottom:none; }
.couture-ritual .item .n { font-family: var(--c-display); font-size: 64px; font-weight: 300; line-height:1; color: var(--c-accent); font-style: italic; }
.couture-ritual .item h3 { font-style: italic; margin-bottom: 10px; }
.couture-ritual .item p { color: var(--c-ink-soft); max-width: 52ch; }

/* pullquote — V4.18.6: per-domain variant via [data-pullquote-variant] */
.couture-pullquote { padding: calc(var(--c-rhythm) * 0.6) var(--c-gutter); background: var(--c-ink); color: var(--c-paper); position: relative; overflow:hidden; }
/* Default (V4.0) giant background quote — only visible on quote-classic.
   Other variants explicitly override this with their own styling. */
.couture-pullquote[data-pullquote-variant="quote-classic"]::before,
.couture-pullquote:not([data-pullquote-variant])::before { content:"\201C"; position:absolute; top:-60px; left:40px; font-family: var(--c-display); font-size: 520px; line-height:1; color: var(--c-accent-2); opacity:.4; pointer-events:none; }
.couture-pullquote blockquote { max-width: 1100px; margin: 0; font-family: var(--c-display); font-weight: 300; font-size: clamp(32px,4.5vw,68px); line-height: 1.08; letter-spacing: -0.015em; }
.couture-pullquote blockquote em { font-style: italic; color: var(--c-accent-3); }
.couture-pullquote .attrib { margin-top: 48px; font-family: var(--c-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; display:flex; gap:24px; align-items:center; color: var(--c-paper-2); }
.couture-pullquote .attrib::before { content:""; width:48px; height:1px; background: var(--c-accent-3); }

/* === V4.18.6 PULLQUOTE variants (operator-flagged: "sticky boxes on every site") === */

/* quote-giant-mark: huge inline quote glyph, NOT a background — visible
   stylized mark next to the quote. */
.couture-pullquote[data-pullquote-variant="quote-giant-mark"] {
  display: grid; grid-template-columns: auto 1fr; gap: 32px; align-items: start;
}
.couture-pullquote[data-pullquote-variant="quote-giant-mark"] .quote-mark {
  font-family: var(--c-display); font-style: italic; font-weight: 300;
  font-size: clamp(120px, 16vw, 240px); line-height: 0.7;
  color: var(--c-accent); margin-top: 8px;
}
.couture-pullquote[data-pullquote-variant="quote-giant-mark"] blockquote { max-width: none; }

/* quote-card-bordered: hairline-bordered card on paper background, NOT inverted */
.couture-pullquote[data-pullquote-variant="quote-card-bordered"] {
  background: var(--c-paper); color: var(--c-ink);
  padding: clamp(40px, 6vw, 80px) clamp(32px, 5vw, 64px);
  margin: var(--c-rhythm) var(--c-gutter);
  border: 2px solid var(--c-ink); border-radius: 0;
  width: auto; max-width: 1100px;
}
.couture-pullquote[data-pullquote-variant="quote-card-bordered"] blockquote em { color: var(--c-accent); }
.couture-pullquote[data-pullquote-variant="quote-card-bordered"] .attrib { color: var(--c-muted); }
.couture-pullquote[data-pullquote-variant="quote-card-bordered"] .attrib::before { background: var(--c-accent); }

/* quote-inverted-band: full-width inverted band (the V4.0 default look,
   kept as a variant for variety). */
.couture-pullquote[data-pullquote-variant="quote-inverted-band"] {
  background: var(--c-ink); color: var(--c-paper);
}

/* quote-floating-attr: attribution INLINE next to the quote, not below */
.couture-pullquote[data-pullquote-variant="quote-floating-attr"] {
  display: grid; grid-template-columns: 1fr 280px; gap: 48px; align-items: end;
}
.couture-pullquote[data-pullquote-variant="quote-floating-attr"] .attrib {
  margin-top: 0; padding-top: 32px;
  border-top: 1px solid var(--c-paper-2); display: block;
}
.couture-pullquote[data-pullquote-variant="quote-floating-attr"] .attrib::before { display: none; }
@media (max-width: 700px) {
  .couture-pullquote[data-pullquote-variant="quote-floating-attr"] {
    grid-template-columns: 1fr;
  }
}

/* quote-no-marks: no quote mark glyph at all, just italic prose */
.couture-pullquote[data-pullquote-variant="quote-no-marks"] {
  background: var(--c-paper); color: var(--c-ink);
  padding: clamp(60px, 8vw, 120px) var(--c-gutter);
  text-align: center;
}
.couture-pullquote[data-pullquote-variant="quote-no-marks"] blockquote {
  margin: 0 auto; font-style: italic;
}
.couture-pullquote[data-pullquote-variant="quote-no-marks"] blockquote em { color: var(--c-accent); }
.couture-pullquote[data-pullquote-variant="quote-no-marks"] .attrib { justify-content: center; color: var(--c-muted); }
.couture-pullquote[data-pullquote-variant="quote-no-marks"] .attrib::before { background: var(--c-accent); }

/* === V4.18.6 PRODUCTS variants (operator-flagged: same gallery on every site) === */

/* card-overlay: image fills the whole card; meta is overlaid at the bottom
   in a translucent strip — lifestyle-look. */
.couture-products[data-products-variant="card-overlay"] .prod {
  position: relative; overflow: hidden;
}
.couture-products[data-products-variant="card-overlay"] .prod-img {
  aspect-ratio: 4/5; border: none; transition: none;
}
.couture-products[data-products-variant="card-overlay"] .prod:hover .prod-img { transform: none; }
.couture-products[data-products-variant="card-overlay"] .meta {
  position: absolute; left: 0; right: 0; bottom: 0;
  margin: 0; padding: 18px 20px;
  background: linear-gradient(to top, rgba(0,0,0,.7), transparent);
  color: #fff; grid-template-columns: 1fr auto;
}
.couture-products[data-products-variant="card-overlay"] .meta h3,
.couture-products[data-products-variant="card-overlay"] .meta .price,
.couture-products[data-products-variant="card-overlay"] .meta .origin { color: #fff; }
.couture-products[data-products-variant="card-overlay"] .notes {
  position: absolute; bottom: 80px; left: 20px; right: 20px;
  margin: 0; padding: 0; color: #fff; opacity: .85;
  font-size: 13px; max-width: none;
}

/* card-split: image left half, meta + notes right half, info-dense */
.couture-products[data-products-variant="card-split"] {
  grid-template-columns: 1fr 1fr;
}
.couture-products[data-products-variant="card-split"] .prod {
  display: grid; grid-template-columns: 1fr 1fr; gap: 24px;
  grid-column: span 1 !important; transform: none !important;
}
.couture-products[data-products-variant="card-split"] .prod-img {
  aspect-ratio: 1/1; transition: none; border: none;
}
.couture-products[data-products-variant="card-split"] .meta {
  margin: 0; align-content: start; grid-template-columns: 1fr;
}
.couture-products[data-products-variant="card-split"] .meta .price {
  font-size: 22px; margin-top: 12px;
}
.couture-products[data-products-variant="card-split"] .notes {
  margin-top: 14px; max-width: none;
}

/* card-minimal: image only, austere meta below in tiny mono */
.couture-products[data-products-variant="card-minimal"] .prod-img {
  aspect-ratio: 1/1; background: transparent; border: none; transition: none;
}
.couture-products[data-products-variant="card-minimal"] .meta {
  margin-top: 12px; grid-template-columns: 1fr; gap: 4px;
}
.couture-products[data-products-variant="card-minimal"] .meta h3 {
  font-family: var(--c-mono); font-style: normal; font-weight: 500;
  font-size: 13px; text-transform: uppercase; letter-spacing: .08em;
}
.couture-products[data-products-variant="card-minimal"] .meta .price {
  font-family: var(--c-mono); font-style: normal; font-weight: 500;
  font-size: 13px; margin-top: 4px;
}
.couture-products[data-products-variant="card-minimal"] .notes { display: none; }

/* card-priceleft: name + giant italic price on left, image on right */
.couture-products[data-products-variant="card-priceleft"] .prod {
  display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
  grid-column: span 6 !important; transform: none !important;
  align-items: center;
}
.couture-products[data-products-variant="card-priceleft"] .prod-img {
  order: 2; aspect-ratio: 4/5; border: none;
}
.couture-products[data-products-variant="card-priceleft"] .meta {
  order: 1; grid-template-columns: 1fr; margin: 0;
}
.couture-products[data-products-variant="card-priceleft"] .meta h3 {
  font-size: clamp(22px, 2.6vw, 36px); margin-bottom: 14px;
}
.couture-products[data-products-variant="card-priceleft"] .meta .price {
  font-family: var(--c-display); font-style: italic; font-weight: 400;
  font-size: clamp(48px, 5vw, 72px); color: var(--c-accent);
}
.couture-products[data-products-variant="card-priceleft"] .notes {
  margin-top: 16px;
}

/* card-stacked: clean, generous gap, large name, no notes */
.couture-products[data-products-variant="card-stacked"] {
  grid-template-columns: repeat(3, 1fr); row-gap: 96px; gap: 40px;
}
.couture-products[data-products-variant="card-stacked"] .prod {
  grid-column: span 1 !important; transform: none !important;
}
.couture-products[data-products-variant="card-stacked"] .prod-img {
  aspect-ratio: 4/5; border: none;
}
.couture-products[data-products-variant="card-stacked"] .meta {
  margin-top: 24px;
}
.couture-products[data-products-variant="card-stacked"] .meta h3 {
  font-size: clamp(20px, 2vw, 26px);
}
.couture-products[data-products-variant="card-stacked"] .notes { display: none; }
@media (max-width: 900px) {
  .couture-products[data-products-variant="card-stacked"] {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* faq */
.couture-faq-list { border-top: 1px solid var(--c-line); }
.couture-faq-item { border-bottom: 1px solid var(--c-line); padding: 32px 0; cursor: pointer; }
.couture-faq-q { display:grid; grid-template-columns: 60px 1fr auto; gap: 24px; align-items:baseline; font-family: var(--c-display); font-size: clamp(22px,2.4vw,32px); font-style: italic; font-weight: 400; }
.couture-faq-q .n { font-family: var(--c-mono); font-style: normal; font-size: 12px; letter-spacing:.08em; color: var(--c-accent); }
.couture-faq-q .plus { width: 28px; height: 28px; position:relative; transition: transform .4s cubic-bezier(.2,.8,.2,1); }
.couture-faq-q .plus::before, .couture-faq-q .plus::after { content:""; position:absolute; background: var(--c-ink); }
.couture-faq-q .plus::before { left:0; right:0; top:50%; height: 1px; }
.couture-faq-q .plus::after  { top:0; bottom:0; left:50%; width: 1px; transition: transform .4s; }
.couture-faq-a { max-height: 0; overflow:hidden; transition: max-height .6s cubic-bezier(.2,.8,.2,1), margin .4s ease; padding: 0 0 0 84px; max-width: 64ch; color: var(--c-ink-soft); }
.couture-faq-item.open .plus { transform: rotate(90deg); }
.couture-faq-item.open .plus::after { transform: scaleY(0); }
.couture-faq-item.open .couture-faq-a { max-height: 320px; margin-top: 18px; }

/* newsletter */
/* === V4.18.9 NEWSLETTER VARIANTS — operator-flagged: newsletter always
   lived at footer-left in storyteller-warm. Now hash-picked per-domain
   from 6 layouts via [data-newsletter-variant]. Default newsletter-centered
   keeps the V4.0 look for visual stability. */
.couture-newsletter { background: var(--c-accent); color: var(--c-paper); padding: calc(var(--c-rhythm) * 0.7) var(--c-gutter); position: relative; overflow:hidden; }
.couture-newsletter::after { content:""; position:absolute; inset:0; background-image: radial-gradient(circle at 20% 30%, rgba(255,255,255,.1), transparent 40%), radial-gradient(circle at 80% 70%, rgba(0,0,0,.2), transparent 40%); pointer-events:none; }
.couture-newsletter .wrap { display:grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items:end; position:relative; z-index:1; }
.couture-newsletter h2 { color: var(--c-paper); font-style: italic; font-weight: 300; }
.couture-newsletter form { display:flex; gap:0; border-bottom: 1px solid var(--c-paper); align-items:center; }
.couture-newsletter input { flex:1; background: transparent; border: none; color: var(--c-paper); padding: 16px 0; font-family: var(--c-body); font-size: 17px; outline:none; }
.couture-newsletter input::placeholder { color: rgba(244,234,217,.6); }
.couture-newsletter button { background: transparent; color: var(--c-paper); border: none; padding: 16px 4px; font-family: var(--c-mono); letter-spacing: .1em; text-transform: uppercase; font-size: 12px; cursor: pointer; }

/* --- newsletter-centered (V4.0 default, no-op variant) --- */
.couture-newsletter[data-newsletter-variant="newsletter-centered"] .wrap { grid-template-columns: 1fr; text-align: center; max-width: 720px; margin: 0 auto; }
.couture-newsletter[data-newsletter-variant="newsletter-centered"] .newsletter-form { max-width: 480px; margin: 24px auto 0; }
.couture-newsletter[data-newsletter-variant="newsletter-centered"] h2 { text-align: center; }
.couture-newsletter[data-newsletter-variant="newsletter-centered"] .newsletter-sub { margin: 16px auto 0; max-width: 52ch; }

/* --- newsletter-split-left (text left, form right) --- */
.couture-newsletter[data-newsletter-variant="newsletter-split-left"] .wrap { grid-template-columns: 1.3fr 1fr; align-items: end; gap: 48px; }
.couture-newsletter[data-newsletter-variant="newsletter-split-left"] .newsletter-text { text-align: left; }

/* --- newsletter-split-right (form left, text right) --- */
.couture-newsletter[data-newsletter-variant="newsletter-split-right"] .wrap { grid-template-columns: 1fr 1.3fr; align-items: center; gap: 48px; }
.couture-newsletter[data-newsletter-variant="newsletter-split-right"] .newsletter-form { order: -1; }
.couture-newsletter[data-newsletter-variant="newsletter-split-right"] .newsletter-text { text-align: left; }

/* --- newsletter-inline (one-line: headline + form on same row) --- */
.couture-newsletter[data-newsletter-variant="newsletter-inline"] { padding: 24px var(--c-gutter); }
.couture-newsletter[data-newsletter-variant="newsletter-inline"] .wrap { grid-template-columns: auto 1fr; align-items: center; gap: 24px; max-width: 1120px; margin: 0 auto; }
.couture-newsletter[data-newsletter-variant="newsletter-inline"] .newsletter-text h2 { font-size: clamp(20px, 2.4vw, 28px); margin: 0; font-style: normal; font-weight: 500; letter-spacing: -0.01em; }
.couture-newsletter[data-newsletter-variant="newsletter-inline"] .newsletter-sub { display: none; }
.couture-newsletter[data-newsletter-variant="newsletter-inline"] .newsletter-form { max-width: 460px; justify-self: end; }
@media (max-width: 700px) { .couture-newsletter[data-newsletter-variant="newsletter-inline"] .wrap { grid-template-columns: 1fr; } }

/* --- newsletter-card-float (white card on accent bg, lifted) --- */
.couture-newsletter[data-newsletter-variant="newsletter-card-float"] { background: linear-gradient(135deg, var(--c-accent) 0%, var(--c-accent-2, var(--c-accent)) 100%); padding: clamp(48px, 8vw, 96px) var(--c-gutter); }
.couture-newsletter[data-newsletter-variant="newsletter-card-float"] .wrap { grid-template-columns: 1fr; max-width: 640px; margin: 0 auto; padding: clamp(40px, 6vw, 64px); background: var(--c-paper); color: var(--c-ink); border-radius: 4px; box-shadow: 0 32px 80px rgba(0,0,0,.18); text-align: center; gap: 20px; }
.couture-newsletter[data-newsletter-variant="newsletter-card-float"] h2 { color: var(--c-ink); font-style: normal; }
.couture-newsletter[data-newsletter-variant="newsletter-card-float"] .newsletter-sub { color: var(--c-ink); opacity: .75; }
.couture-newsletter[data-newsletter-variant="newsletter-card-float"] .newsletter-form { border-color: var(--c-ink); max-width: 420px; margin: 18px auto 0; }
.couture-newsletter[data-newsletter-variant="newsletter-card-float"] input { color: var(--c-ink); }
.couture-newsletter[data-newsletter-variant="newsletter-card-float"] input::placeholder { color: rgba(0,0,0,.4); }
.couture-newsletter[data-newsletter-variant="newsletter-card-float"] button { color: var(--c-ink); }

/* --- newsletter-banner-thin (slim 1-line band, low-key) --- */
.couture-newsletter[data-newsletter-variant="newsletter-banner-thin"] { background: var(--c-ink); color: var(--c-paper); padding: 14px var(--c-gutter); border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.couture-newsletter[data-newsletter-variant="newsletter-banner-thin"] .wrap { grid-template-columns: auto 1fr; gap: 18px; align-items: center; max-width: 1120px; margin: 0 auto; }
.couture-newsletter[data-newsletter-variant="newsletter-banner-thin"] .newsletter-text h2 { font-size: 14px; font-family: var(--c-mono); letter-spacing: .12em; text-transform: uppercase; font-style: normal; font-weight: 400; margin: 0; opacity: .9; }
.couture-newsletter[data-newsletter-variant="newsletter-banner-thin"] .newsletter-sub { display: none; }
.couture-newsletter[data-newsletter-variant="newsletter-banner-thin"] .newsletter-form { border: none; justify-self: end; max-width: 360px; }
.couture-newsletter[data-newsletter-variant="newsletter-banner-thin"] input { padding: 6px 0; font-size: 14px; }
.couture-newsletter[data-newsletter-variant="newsletter-banner-thin"] button { padding: 6px 4px; }
@media (max-width: 700px) { .couture-newsletter[data-newsletter-variant="newsletter-banner-thin"] .wrap { grid-template-columns: 1fr; } }

/* ============================================================
   HOUSE SEAL — tiny lower-right stamp, archetype-shaped
============================================================ */
.couture-seal { position: fixed; right: 18px; bottom: 18px; z-index: 60; display: flex; align-items: center; justify-content: center; flex-direction: column; pointer-events: none; opacity: .92; }
.couture-seal .seal-mark { font-family: var(--c-display); font-weight: 400; font-style: italic; font-size: 28px; line-height: 1; color: var(--c-ink); }
.couture-seal .seal-text { font-family: var(--c-mono); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-ink); margin-top: 4px; }

/* oval — editorial / journal / gallery */
.couture-seal--oval { width: 78px; height: 56px; background: var(--c-paper); border: 2px solid var(--c-ink); border-radius: 50%; padding: 6px 10px; box-shadow: var(--c-card-shadow); }

/* wax seal — atelier / made-to-order */
.couture-seal--wax { width: 64px; height: 64px; background: var(--c-accent); color: var(--c-paper); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,.18), inset 0 -3px 4px rgba(0,0,0,.18), inset 0 3px 4px rgba(255,255,255,.18); padding: 8px; clip-path: polygon(50% 0,61% 8%,75% 4%,82% 18%,96% 25%,93% 42%,100% 50%,93% 58%,96% 75%,82% 82%,75% 96%,61% 92%,50% 100%,39% 92%,25% 96%,18% 82%,4% 75%,7% 58%,0 50%,7% 42%,4% 25%,18% 18%,25% 4%,39% 8%); }
.couture-seal--wax .seal-mark { color: var(--c-paper); font-size: 20px; font-weight: 700; font-style: normal; }
.couture-seal--wax .seal-text { color: var(--c-paper); font-size: 7px; }

/* square stamp — brutalist / auction / manifesto */
.couture-seal--square { width: 76px; height: 56px; background: var(--c-paper); border: 2px solid var(--c-ink); border-radius: 0; padding: 6px 8px; box-shadow: var(--c-card-shadow); transform: rotate(-3deg); }
.couture-seal--square .seal-mark { color: var(--c-accent); }

/* die-cut tag — shop-first / field-journal / subscription / zine */
.couture-seal--die-cut { width: 84px; height: 50px; background: var(--c-paper); border: 1px dashed var(--c-ink); padding: 4px 10px; box-shadow: var(--c-card-shadow); position: fixed; clip-path: polygon(0 0, 100% 0, 100% 50%, calc(100% - 12px) 100%, 0 100%); }
.couture-seal--die-cut .seal-mark { font-size: 22px; }
.couture-seal--die-cut::before { content: ""; position: absolute; left: 6px; top: 50%; width: 6px; height: 6px; transform: translateY(-50%); border: 1px solid var(--c-ink); border-radius: 50%; }

@media (max-width: 700px) { .couture-seal { display: none; } }

/* legacy footer — kept as a baseline; per-archetype variants below override */
.couture-footer { background: var(--c-ink); color: var(--c-paper); padding: calc(var(--c-rhythm) * 0.5) var(--c-gutter) 40px; }
.couture-footer-grid { display:grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 48px; padding-bottom: 64px; border-bottom: 1px solid rgba(244,234,217,.15); }
.couture-footer-grid h4 { font-family: var(--c-mono); font-size: 11px; letter-spacing:.12em; text-transform:uppercase; color: var(--c-accent-3); margin-bottom: 20px; font-weight: 500; }
.couture-footer-grid ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.couture-footer-grid a { text-decoration:none; font-size: 15px; color: var(--c-paper-2); }
.couture-footer-grid a:hover { color: var(--c-accent-3); }
.couture-footer .brand { font-family: var(--c-display); font-style: italic; font-size: clamp(48px,7vw,96px); line-height:.95; font-weight: 300; margin-bottom: 24px; }
.couture-footer .bottom { display:flex; justify-content:space-between; padding-top: 32px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }

/* ============================================================
   FOOTER VARIANTS — one per archetype family
============================================================ */

/* 1. EDITORIAL GRAND — newspaper masthead */
.couture-footer--grand { background: var(--c-ink); color: var(--c-paper); padding: clamp(60px,8vw,120px) var(--c-gutter) 40px; }
.couture-footer--grand .grand-masthead { text-align:center; padding-bottom: 40px; border-bottom: 2px double var(--c-paper-2); margin-bottom: 48px; }
.couture-footer--grand .grand-name { font-family: var(--c-display); font-weight: 300; font-size: clamp(72px, 12vw, 200px); line-height: .9; letter-spacing: -.04em; color: var(--c-paper); }
.couture-footer--grand .grand-tagline { margin-top: 18px; font-family: var(--c-display); font-style: italic; font-weight: 400; font-size: clamp(16px, 1.6vw, 22px); color: var(--c-paper-2); max-width: 60ch; margin-inline:auto; }
.couture-footer--grand .grand-grid { display:grid; grid-template-columns: 1fr 1fr 1.4fr; gap: clamp(28px, 4vw, 64px); padding-bottom: 48px; border-bottom: 1px solid rgba(244,234,217,.12); }
.couture-footer--grand .grand-col h4 { font-family: var(--c-mono); font-size: 11px; letter-spacing:.16em; text-transform:uppercase; color: var(--c-accent-3); margin: 0 0 18px; font-weight: 500; }
.couture-footer--grand .grand-col ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px; }
.couture-footer--grand .grand-col a { color: var(--c-paper); text-decoration:none; font-family: var(--c-display); font-style: italic; font-size: 18px; }
.couture-footer--grand .grand-col a:hover { color: var(--c-accent-3); }
.couture-footer--grand .grand-col p { color: var(--c-paper-2); font-size: 14px; line-height: 1.6; margin: 0 0 6px; }
.couture-footer--grand .grand-form { display:flex; align-items:center; border-bottom: 1px solid var(--c-paper); margin-top: 14px; }
.couture-footer--grand .grand-form input { flex:1; background:transparent; border:none; color: var(--c-paper); padding:14px 0; font-family: var(--c-body); font-size: 15px; outline:none; }
.couture-footer--grand .grand-form input::placeholder { color: rgba(244,234,217,.55); }
.couture-footer--grand .grand-form button { background: var(--c-accent); color: var(--c-paper); border:none; padding: 12px 18px; font-family: var(--c-mono); font-size: 11px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }
.couture-footer--grand .grand-rule { height: 4px; background: linear-gradient(90deg, transparent, var(--c-accent-2), transparent); margin: 36px 0 18px; opacity:.5; }
.couture-footer--grand .grand-foot { display:flex; justify-content:space-between; gap: 20px; font-family: var(--c-mono); font-size: 11px; letter-spacing:.1em; text-transform:uppercase; color: var(--c-paper-2); flex-wrap: wrap; }
.couture-footer--grand .grand-colophon i { font-style: italic; color: var(--c-accent-3); text-transform: none; letter-spacing: 0; font-family: var(--c-display); font-size: 13px; }

/* 2. ATELIER CORRESPONDENCE — French / restrained */
.couture-footer--atelier { background: var(--c-paper-2); color: var(--c-ink); padding: clamp(60px,8vw,120px) var(--c-gutter) 32px; border-top: 1px solid var(--c-line); }
.couture-footer--atelier .atl-mark { font-family: var(--c-display); font-size: clamp(64px, 10vw, 120px); color: var(--c-accent); line-height: .9; margin-bottom: 32px; }
.couture-footer--atelier .atl-row { display:grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 80px); padding-bottom: 56px; border-bottom: 1px solid var(--c-line); }
.couture-footer--atelier .atl-eyebrow { font-family: var(--c-mono); font-size: 11px; letter-spacing:.18em; text-transform:uppercase; color: var(--c-muted); margin-bottom: 18px; }
.couture-footer--atelier .atl-email { font-family: var(--c-display); font-style: italic; font-weight: 300; font-size: clamp(28px, 4vw, 56px); color: var(--c-ink); text-decoration:none; line-height: 1.05; word-break: break-all; }
.couture-footer--atelier .atl-email:hover { color: var(--c-accent); }
.couture-footer--atelier .atl-tel,
.couture-footer--atelier .atl-addr { margin-top: 12px; font-size: 14px; color: var(--c-ink-soft); font-family: var(--c-mono); letter-spacing: .04em; }
.couture-footer--atelier .atl-right p { font-family: var(--c-body); font-size: 16px; line-height: 1.6; color: var(--c-ink-soft); margin: 0 0 24px; max-width: 42ch; }
.couture-footer--atelier .atl-cta { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-paper); background: var(--c-ink); padding: 14px 22px; text-decoration: none; display: inline-block; }
.couture-footer--atelier .atl-cta:hover { background: var(--c-accent); }
.couture-footer--atelier .atl-nav { padding: 28px 0; display:flex; flex-wrap:wrap; gap:14px; align-items:center; font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.couture-footer--atelier .atl-nav a { color: var(--c-ink); text-decoration:none; }
.couture-footer--atelier .atl-nav a:hover { color: var(--c-accent); }
.couture-footer--atelier .atl-nav span { color: var(--c-muted); }
.couture-footer--atelier .atl-foot { display:flex; justify-content:space-between; padding-top: 24px; border-top: 1px dashed var(--c-line); font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform:uppercase; color: var(--c-muted); }

/* 3. BRUTALIST SPEC — monospace, dense */
.couture-footer--spec { background: var(--c-ink); color: var(--c-paper); padding: 48px var(--c-gutter) 24px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .1em; line-height: 1.6; border-top: 4px solid var(--c-accent); }
.couture-footer--spec .spec-top { display:flex; justify-content:space-between; align-items: baseline; padding-bottom: 18px; border-bottom: 1px solid rgba(244,234,217,.2); flex-wrap: wrap; gap: 18px; }
.couture-footer--spec .spec-brand { font-family: var(--c-display); font-weight: 400; font-style: italic; font-size: clamp(28px, 3vw, 40px); letter-spacing: -.01em; }
.couture-footer--spec .spec-flags { display:flex; gap: 24px; flex-wrap:wrap; text-transform: uppercase; }
.couture-footer--spec .spec-flags b { color: var(--c-accent-3); font-weight: 500; margin-right: 6px; }
.couture-footer--spec .spec-cols { display:grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 0; padding: 24px 0; border-bottom: 1px solid rgba(244,234,217,.2); }
.couture-footer--spec .spec-cols a { color: var(--c-paper); text-decoration:none; padding: 8px 0; border-right: 1px dashed rgba(244,234,217,.2); padding-right: 14px; text-transform: uppercase; }
.couture-footer--spec .spec-cols a:hover { color: var(--c-accent); }
.couture-footer--spec .spec-policy { display:flex; flex-wrap:wrap; gap: 18px; padding: 16px 0; border-bottom: 1px solid rgba(244,234,217,.2); color: var(--c-paper-2); text-transform: uppercase; }
/* Contact row: TEL / MAIL / ADDR were all running together on one line —
   the row had no flex layout (V4.4 audit). Now properly spaced + wrapping. */
.couture-footer--spec .spec-contact { display:flex; flex-wrap:wrap; gap: 14px 28px; padding: 16px 0; border-bottom: 1px solid rgba(244,234,217,.2); color: var(--c-paper-2); }
.couture-footer--spec .spec-contact b { color: var(--c-accent-3); font-weight: 500; margin-right: 8px; text-transform: uppercase; }
.couture-footer--spec .spec-contact a { color: var(--c-paper); text-decoration: none; border-bottom: 1px dotted rgba(244,234,217,.4); }
.couture-footer--spec .spec-contact a:hover { color: var(--c-accent); border-color: var(--c-accent); }
.couture-footer--spec .spec-foot { display:flex; justify-content:space-between; padding-top: 16px; color: var(--c-muted); text-transform: uppercase; }

/* 4. MANIFESTO LOUD — three giant lines */
.couture-footer--loud { background: var(--c-paper); color: var(--c-ink); padding: clamp(60px,8vw,140px) var(--c-gutter); border-top: 4px solid var(--c-ink); }
.couture-footer--loud .loud-lines { display:flex; flex-direction:column; gap: 4px; margin-bottom: 64px; }
.couture-footer--loud .loud-line { font-family: var(--c-display); font-weight: 300; font-size: clamp(40px, 8vw, 120px); line-height: .98; letter-spacing: -.03em; }
.couture-footer--loud .loud-line--0 { color: var(--c-ink); }
.couture-footer--loud .loud-line--1 { font-style: italic; color: var(--c-accent-2); padding-left: 8%; }
.couture-footer--loud .loud-line--2 { color: var(--c-ink); padding-left: 16%; }
.couture-footer--loud .loud-line--3 { font-style: italic; color: var(--c-accent); padding-left: 24%; }
.couture-footer--loud .loud-foot { display:flex; justify-content:space-between; align-items: end; padding-top: 32px; border-top: 1px solid var(--c-line); flex-wrap: wrap; gap: 18px; }
.couture-footer--loud .loud-contact { font-family: var(--c-mono); font-size: 12px; letter-spacing: .1em; }
.couture-footer--loud .loud-contact a { color: var(--c-ink); text-decoration: underline; text-decoration-color: var(--c-accent); text-underline-offset: 4px; }
.couture-footer--loud .loud-nav { display:flex; gap: 18px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }
.couture-footer--loud .loud-nav a { color: var(--c-ink); text-decoration:none; }
.couture-footer--loud .loud-nav a:hover { color: var(--c-accent); }

/* 5. GALLERY COLOPHON — museum catalogue */
.couture-footer--colophon { background: var(--c-paper); color: var(--c-ink); padding: 80px var(--c-gutter) 32px; border-top: 1px solid var(--c-line); }
.couture-footer--colophon .col-rule { height: 1px; background: var(--c-ink); margin-bottom: 24px; }
.couture-footer--colophon .col-title { font-family: var(--c-mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 28px; }
.couture-footer--colophon .col-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0; border-top: 1px solid var(--c-line); }
.couture-footer--colophon .col-grid > div { padding: 14px 18px; border-bottom: 1px solid var(--c-line); border-right: 1px dashed var(--c-line); }
.couture-footer--colophon .col-grid > div:last-child { border-right: none; }
.couture-footer--colophon .col-grid dt { font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 6px; }
.couture-footer--colophon .col-grid dd { margin: 0; font-family: var(--c-display); font-style: italic; font-size: 18px; color: var(--c-ink); }
.couture-footer--colophon .col-nav { padding: 28px 0; font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-ink); }
.couture-footer--colophon .col-nav a { color: var(--c-ink); text-decoration: none; }
.couture-footer--colophon .col-nav a:hover { color: var(--c-accent); text-decoration: underline; text-underline-offset: 3px; }
.couture-footer--colophon .col-foot { display:flex; justify-content:space-between; padding-top: 16px; border-top: 1px solid var(--c-line); font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); }

/* 6. FIELD STAMP — expedition stamp */
.couture-footer--stamp { background: var(--c-ink); color: var(--c-paper); padding: 60px var(--c-gutter) 28px; border-top: 8px double var(--c-accent-3); }
.couture-footer--stamp .stamp-head { text-align: center; margin-bottom: 48px; padding-bottom: 32px; border-bottom: 1px dashed rgba(244,234,217,.2); }
.couture-footer--stamp .stamp-mark { font-size: clamp(48px, 8vw, 88px); color: var(--c-accent-3); line-height: 1; margin-bottom: 14px; }
.couture-footer--stamp .stamp-title { font-family: var(--c-display); font-style: italic; font-size: clamp(40px, 6vw, 72px); font-weight: 300; line-height: 1; }
.couture-footer--stamp .stamp-sub { font-family: var(--c-mono); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--c-paper-2); margin-top: 8px; }
.couture-footer--stamp .stamp-cols { display:grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 36px; padding-bottom: 32px; border-bottom: 1px dashed rgba(244,234,217,.2); }
.couture-footer--stamp .stamp-cols h4 { font-family: var(--c-mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--c-accent-3); margin: 0 0 16px; font-weight: 500; }
.couture-footer--stamp .stamp-cols ul { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.couture-footer--stamp .stamp-cols a { color: var(--c-paper); text-decoration: none; font-family: var(--c-display); font-style: italic; font-size: 16px; }
.couture-footer--stamp .stamp-cols a:hover { color: var(--c-accent-3); }
.couture-footer--stamp .stamp-cols p { font-family: var(--c-body); font-size: 14px; color: var(--c-paper-2); line-height: 1.6; margin: 0 0 8px; }
.couture-footer--stamp .stamp-date { font-family: var(--c-mono); font-size: 10px; letter-spacing: .12em; color: var(--c-muted); margin-left: 6px; }
.couture-footer--stamp .stamp-foot { display:flex; justify-content:space-between; padding-top: 18px; font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; color: var(--c-paper-2); flex-wrap: wrap; gap: 14px; }

/* 7. Storyteller Warm — small intimate two-column footer (V4.3 polish) */
.couture-footer--storyteller { padding: clamp(56px, 7vw, 96px) var(--c-gutter); background: var(--c-paper-2); border-top: 1px solid var(--c-line); }
.couture-footer--storyteller .storyteller-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: start; max-width: 1240px; margin: 0 auto 40px; }
.couture-footer--storyteller .storyteller-mark { margin-bottom: 18px; }
.couture-footer--storyteller .storyteller-statement { font-family: var(--c-display); font-style: italic; font-size: clamp(20px, 2vw, 28px); line-height: 1.4; color: var(--c-ink); max-width: 38ch; margin: 0 0 32px; }
.couture-footer--storyteller .storyteller-newsletter label { display: block; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 12px; }
.couture-footer--storyteller .storyteller-newsletter-row { display: flex; gap: 0; max-width: 420px; }
.couture-footer--storyteller .storyteller-newsletter input { flex: 1; padding: 14px 16px; border: 1px solid var(--c-line); background: var(--c-paper); font-family: var(--c-body); font-size: 14px; }
.couture-footer--storyteller .storyteller-newsletter button { padding: 14px 20px; background: var(--c-ink); color: var(--c-paper); border: none; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.couture-footer--storyteller .storyteller-right { display: flex; flex-direction: column; gap: 18px; }
.couture-footer--storyteller .storyteller-line { margin: 0; padding: 14px 0; border-top: 1px solid var(--c-line); display: flex; flex-direction: column; gap: 4px; }
.couture-footer--storyteller .storyteller-line strong { font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); }
.couture-footer--storyteller .storyteller-line a, .couture-footer--storyteller .storyteller-line span { font-family: var(--c-display); font-size: 17px; color: var(--c-ink); text-decoration: none; }
.couture-footer--storyteller .storyteller-line a:hover { color: var(--c-accent); }
.couture-footer--storyteller .storyteller-nav { display: flex; flex-wrap: wrap; gap: 6px 28px; padding: 24px 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); max-width: 1240px; margin: 0 auto 18px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.couture-footer--storyteller .storyteller-nav a { color: var(--c-ink); text-decoration: none; }
.couture-footer--storyteller .storyteller-nav a:hover { color: var(--c-accent); }
.couture-footer--storyteller .storyteller-foot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 14px; max-width: 1240px; margin: 0 auto; font-family: var(--c-mono); font-size: 10px; letter-spacing: .12em; color: var(--c-muted); }

/* qa-attribution — handoff item N5: city-as-attribution moved out of the
   "In conversation with X." headline into a small line under the dialogue. */
.couture-story-interview .qa-attrib { font-family: var(--c-display); font-style: italic; font-size: 14px; color: var(--c-muted); text-align: right; margin: 24px 0 0; }

@media (max-width: 800px) {
  .couture-footer--grand .grand-grid,
  .couture-footer--atelier .atl-row,
  .couture-footer--colophon .col-grid,
  .couture-footer--stamp .stamp-cols,
  .couture-footer--storyteller .storyteller-grid { grid-template-columns: 1fr; }
  .couture-footer--loud .loud-line { padding-left: 0 !important; }
}

/* motion — stagger reveal */
.couture-reveal { opacity: 0; transform: translateY(24px); transition: opacity 1s cubic-bezier(.2,.8,.2,1), transform 1s cubic-bezier(.2,.8,.2,1); }
.couture-reveal.in { opacity: 1; transform: translateY(0); }
.couture-reveal.d1 { transition-delay: .08s; }
.couture-reveal.d2 { transition-delay: .16s; }
.couture-reveal.d3 { transition-delay: .24s; }
.couture-reveal.d4 { transition-delay: .32s; }

/* ============================================================
   STRUCTURAL VARIANTS — applied when the archetype swaps a section
============================================================ */

/* --- hero: magazine cover ------------------------------------ */
.couture-hero--cover { padding: 40px var(--c-gutter) clamp(40px, 6vw, 80px); }
.couture-hero--cover .cover-flags { display:flex; gap:28px; padding-bottom:18px; border-bottom: 2px solid var(--c-ink); font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-ink); }
.couture-hero--cover .cover-flags b { color: var(--c-accent); margin-right:6px; }
.couture-hero--cover .cover-masthead { font-family: var(--c-display); font-weight: 300; font-size: clamp(72px, 14vw, 220px); line-height: 0.9; letter-spacing: -0.04em; margin: 24px 0 32px; }
.couture-hero--cover .cover-art { position: relative; aspect-ratio: 4/5; max-height: 78vh; overflow: hidden; background: var(--c-paper-2); border: 1px solid var(--c-line); }
.couture-hero--cover .cover-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;  }
.couture-hero--cover .cover-overprint { position: absolute; left: 6%; bottom: 8%; max-width: 84%; margin: 0; color: var(--c-paper); font-family: var(--c-display); font-style: italic; font-weight: 300; font-size: clamp(44px, 8vw, 128px); line-height: 0.98; text-shadow: 0 2px 24px rgba(0,0,0,.4); }
.couture-hero--cover .cover-lede { position: absolute; right: 6%; top: 6%; max-width: 32ch; margin: 0; color: var(--c-paper); font-family: var(--c-body); font-size: 15px; line-height: 1.5; text-shadow: 0 1px 12px rgba(0,0,0,.5); }
.couture-hero--cover .cover-barcode { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--c-line); display: flex; justify-content: space-between; font-family: var(--c-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }

/* --- hero: vertical type ------------------------------------- */
.couture-hero--vertical { display: grid; grid-template-columns: minmax(80px, 12vw) 1fr; gap: clamp(32px, 4vw, 64px); min-height: 70vh; padding: clamp(60px, 9vw, 140px) var(--c-gutter); }
.couture-hero--vertical .vert-head { writing-mode: vertical-rl; transform: rotate(180deg); margin: 0; font-family: var(--c-display); font-weight: 300; font-size: clamp(56px, 9vw, 140px); line-height: 0.92; letter-spacing: -0.02em; }
.couture-hero--vertical .vert-body { display: flex; flex-direction: column; gap: 28px; max-width: 60ch; padding-top: clamp(24px, 4vw, 80px); }
.couture-hero--vertical .vert-body p { font-size: clamp(16px, 1.3vw, 20px); line-height: 1.55; max-width: 52ch; }
.couture-hero--vertical .vert-body figure { margin: 32px 0 0; aspect-ratio: 16/10; overflow: hidden; border: 1px solid var(--c-line); }
.couture-hero--vertical .vert-body figure img { width: 100%; height: 100%; object-fit: cover;  }

/* --- hero: manifesto text ------------------------------------ */
.couture-hero--manifesto { padding: clamp(80px, 14vw, 200px) var(--c-gutter); max-width: 1200px; }
.couture-hero--manifesto h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(48px, 7vw, 112px); line-height: 1.02; letter-spacing: -0.02em; margin: 16px 0 48px; }
.couture-hero--manifesto .manifest-lines { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: clamp(18px, 2.4vw, 36px); counter-reset: ml; }
.couture-hero--manifesto .manifest-lines li { counter-increment: ml; font-family: var(--c-display); font-size: clamp(24px, 3vw, 44px); line-height: 1.25; font-style: italic; padding-left: 72px; position: relative; }
.couture-hero--manifesto .manifest-lines li::before { content: counter(ml, decimal-leading-zero); position: absolute; left: 0; top: .3em; font-family: var(--c-mono); font-style: normal; font-size: 12px; letter-spacing: .1em; color: var(--c-accent); }

/* --- story: magazine ----------------------------------------- */
.couture-story-magazine .mag-grid { display:grid; grid-template-columns: 1.35fr 1fr .8fr; gap: clamp(28px, 4vw, 80px); align-items:start; padding: var(--c-rhythm) 0 0; border-top: 2px solid var(--c-ink); }
.couture-story-magazine .mag-body p { font-size: 17px; line-height: 1.65; margin: 0 0 1.25em; }
.couture-story-magazine .mag-body p.dropcap { font-size: 18px; line-height: 1.6; }
.couture-story-magazine .mag-body p.dropcap::first-letter { font-family: var(--c-display); font-weight: 400; font-size: 5.4em; line-height: .85; float: left; margin: 8px 14px 0 -4px; color: var(--c-accent-2); }
.couture-story-magazine .mag-pull blockquote { margin: 0; font-family: var(--c-display); font-style: italic; font-weight: 300; font-size: clamp(22px, 2.6vw, 36px); line-height: 1.2; color: var(--c-ink); border-left: 3px solid var(--c-accent); padding: 6px 0 6px 22px; }
.couture-story-magazine .mag-pull cite { display: block; margin-top: 20px; font-family: var(--c-mono); font-style: normal; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); }
.couture-story-magazine .mag-credits { border-top: 1px solid var(--c-line); padding-top: 14px; }
.couture-story-magazine .mag-credits .num { font-family: var(--c-mono); font-size: 11px; letter-spacing:.12em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 18px; }
.couture-story-magazine .mag-credits > div { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; padding: 10px 0; border-bottom: 1px dashed var(--c-line); }
.couture-story-magazine .mag-credits > div span:last-child { color: var(--c-ink); text-transform: none; letter-spacing: 0; }

/* --- story: interview ---------------------------------------- */
.couture-story-interview .qa { margin: 0; padding: 0; display: flex; flex-direction: column; gap: clamp(28px, 3vw, 48px); max-width: 80ch; }
.couture-story-interview .qa > div { padding-bottom: 32px; border-bottom: 1px solid var(--c-line); }
.couture-story-interview .qa dt { font-family: var(--c-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 16px; position: relative; padding-left: 34px; }
.couture-story-interview .qa dt::before { content: "Q"; position: absolute; left: 0; top: -2px; width: 22px; height: 22px; display: grid; place-items: center; background: var(--c-accent); color: var(--c-paper); font-size: 11px; border-radius: 50%; }
.couture-story-interview .qa dd { margin: 0; font-family: var(--c-display); font-size: clamp(22px, 2.4vw, 32px); line-height: 1.35; font-style: italic; font-weight: 300; padding-left: 34px; position: relative; }
.couture-story-interview .qa dd::before { content: "A"; position: absolute; left: 0; top: .3em; font-family: var(--c-mono); font-style: normal; font-size: 12px; letter-spacing: .1em; color: var(--c-ink-soft); }

/* --- story: timeline ----------------------------------------- */
/* V4.66 — story-timeline redesign (operator R12 about-page polish).
   Was a 4-col horizontal list with tiny year labels + dashed dividers.
   Now: card-style milestones with prominent year (display font, big),
   bold title, descriptive text. Each card has subtle bg + accent-bar
   on top so it scans as a real milestone block. Connector line still
   ties them together visually but cards are the focal point. */
.couture-story-timeline .timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 24px;
  position: relative;
}
.couture-story-timeline .timeline::before {
  display: none; /* connector line removed — cards stand on their own */
}
.couture-story-timeline .timeline li {
  position: relative;
  padding: 32px 24px 28px;
  background: var(--c-paper-2, color-mix(in oklab, var(--c-ink) 3%, var(--c-paper)));
  border-radius: var(--c-card-radius, 6px);
  border: 1px solid var(--c-line);
  transition: transform .25s var(--c-premium-ease, cubic-bezier(.2,.8,.2,1)), border-color .25s;
}
.couture-story-timeline .timeline li:hover {
  transform: translateY(-3px);
  border-color: color-mix(in oklab, var(--c-accent) 35%, var(--c-line));
}
.couture-story-timeline .timeline li::before {
  content: "";
  position: absolute;
  top: 0;
  left: 24px;
  right: 24px;
  height: 3px;
  background: var(--c-accent);
  border-radius: 0;
  border: none;
  transform: none;
  width: auto;
}
.couture-story-timeline .timeline li:last-child {
  border-right: 1px solid var(--c-line);
}
.couture-story-timeline .timeline time {
  font-family: var(--c-display);
  font-size: clamp(28px, 2.5vw, 36px);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--c-ink);
  display: block;
  margin-bottom: 10px;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.couture-story-timeline .timeline strong {
  display: block;
  font-family: var(--c-body);
  font-size: 15px;
  font-style: normal;
  font-weight: 600;
  line-height: 1.35;
  margin-bottom: 10px;
  color: var(--c-ink);
}
.couture-story-timeline .timeline p {
  font-size: 13px;
  color: var(--c-ink-soft, var(--c-ink));
  line-height: 1.55;
  margin: 0;
}

/* --- products: lookbook -------------------------------------- */
.couture-lookbook .lookbook-stack { display: grid; grid-template-columns: repeat(6, 1fr); gap: clamp(20px, 2.4vw, 40px); align-items: start; }
.couture-lookbook .lb { position: relative; margin: 0; overflow: hidden; background: var(--c-paper-2); }
.couture-lookbook .lb-big   { grid-column: span 4; aspect-ratio: 4/5; }
.couture-lookbook .lb-small { grid-column: span 2; aspect-ratio: 3/4; margin-top: 64px; }
.couture-lookbook .lb:nth-child(3) { transform: translateY(-36px); }
.couture-lookbook .lb:nth-child(5) { transform: translateY(24px); }
.couture-lookbook .lb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 1s cubic-bezier(.2,.8,.2,1);  }
.couture-lookbook .lb:hover img { transform: scale(1.04); }
.couture-lookbook .lb figcaption { position: absolute; left: 18px; bottom: 18px; right: 18px; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font-family: var(--c-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-paper); text-shadow: 0 1px 8px rgba(0,0,0,.5); }
.couture-lookbook .lb-name { font-family: var(--c-display); font-style: italic; font-size: 18px; letter-spacing: 0; text-transform: none; }
.couture-lookbook .lb-price { font-weight: 500; }

/* --- products: index table ----------------------------------- */
.couture-index .couture-index-table { width: 100%; border-collapse: collapse; font-family: var(--c-mono); font-size: 13px; }
.couture-index .couture-index-table th { text-align: left; padding: 18px 14px; border-bottom: 2px solid var(--c-ink); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); font-weight: 600; }
.couture-index .couture-index-table td { padding: 22px 14px; border-bottom: 1px solid var(--c-line); vertical-align: top; line-height: 1.5; }
.couture-index .couture-index-table td:first-child { color: var(--c-muted); width: 64px; }
.couture-index .couture-index-table td strong { font-family: var(--c-display); font-weight: 400; font-style: italic; font-size: 20px; letter-spacing: 0; display: block; margin-bottom: 4px; text-transform: none; }
.couture-index .couture-index-table tr:hover { background: var(--c-paper-2); }

/* --- products: carousel shelf -------------------------------- */
/* V4.57 — operator R12: /new page renders the shelf as a horizontal
   carousel, but with no visible scroll arrows / dots / gradient hint
   only ~2 cards fit visibly and users (incl. operator) think the page
   is broken. Switch the shelf-rail from horizontal scroll to a real
   responsive grid so EVERY product card is visible. Keeps the snap-
   point fall-back for legacy carousels but the default is a 4-col
   grid (3 col tablet, 2 col mobile) so a "new in" page actually
   shows the new items. */
.couture-shelf .shelf-rail {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 28px;
  padding: 0 0 32px;
}
@media (max-width: 1100px) { .couture-shelf .shelf-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px)  { .couture-shelf .shelf-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px)  { .couture-shelf .shelf-rail { grid-template-columns: 1fr; } }
/* V4.59 — premium card design (operator R12: "still feels freestyle"
   not fancy business). Cleaner cards, larger imagery, minimal text,
   prominent price. Title clamps to 2 lines max so the grid stays
   visually consistent. Description hidden on shelf cards (lives on
   product detail page); only short subtitle shown if present. */
.couture-shelf .shelf-card {
  scroll-snap-align: start;
  background: transparent;
  border: none;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform .35s cubic-bezier(.2,.8,.2,1);
}
.couture-shelf .shelf-card:hover { transform: translateY(-4px); }
/* V4.66 — operator R12 night auto-pilot Round 9: shelf-card titles
   were rendering in accent color (red) on /new page because the
   V4.48 micro-axes accent-intensity rule sets all <a> to accent
   color, and the title is wrapped in <a>. Force ink color on shelf
   cards' anchored title text so cards read as clean Shopify cards. */
.couture-shelf .shelf-card a { text-decoration: none; color: inherit; }
.couture-shelf .shelf-card a,
.couture-shelf .shelf-card a:link,
.couture-shelf .shelf-card a:visited,
.couture-shelf .shelf-meta h3 a,
.couture-shelf .shelf-meta h3 a:link,
.couture-shelf .shelf-meta h3 a:visited {
  color: var(--c-ink) !important;
  text-decoration: none !important;
}
.couture-shelf .shelf-card a:hover,
.couture-shelf .shelf-meta h3 a:hover {
  color: var(--c-accent) !important;
}
.couture-shelf .shelf-card img {
  aspect-ratio: 4/5;
  width: 100%;
  object-fit: cover;
  display: block;
  border-radius: var(--c-card-radius, 4px);
  margin-bottom: 18px;
  transition: filter .35s;
  
}
.couture-shelf .shelf-card:hover img { filter: brightness(.96); }
.couture-shelf .shelf-meta {
  padding: 0 4px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.couture-shelf .shelf-meta h3 {
  font-family: var(--c-body);
  font-style: normal;
  font-weight: 500;
  font-size: 17px;
  line-height: 1.35;
  margin: 0;
  letter-spacing: -0.005em;
  /* Clamp title to 2 lines so grid stays visually uniform */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 46px;
}
.couture-shelf .shelf-origin {
  font-family: var(--c-mono);
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--c-muted);
  margin: 0;
}
/* Hide description blob on shelf cards — too much text, breaks visual
   uniformity. Description belongs on the product detail page. */
.couture-shelf .shelf-notes { display: none; }
.couture-shelf .shelf-price {
  margin-top: 4px;
  font-family: var(--c-body);
  font-weight: 600;
  font-size: 16px;
  color: var(--c-ink);
}
/* On-sale price treatment (was: display: flex with strikethrough) */
.couture-shelf .shelf-price.price--on-sale,
.couture-shelf .shelf-price--sale {
  display: flex;
  gap: 10px;
  align-items: baseline;
}
.couture-shelf .shelf-price--was {
  text-decoration: line-through;
  color: var(--c-muted);
  font-weight: 400;
  font-size: 14px;
}
.couture-shelf .shelf-price--now {
  color: var(--c-accent, #c0392b);
  font-weight: 600;
}
/* Sale/new ribbon over the image */
.couture-shelf .shelf-card .shelf-ribbon {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--c-accent, #c0392b);
  color: var(--c-paper);
  font-family: var(--c-mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 5px 10px;
  z-index: 2;
}
.couture-shelf .shelf-card { position: relative; }

/* --- process: diagram (radial) ------------------------------- */
.couture-process-diagram .diagram-ring { position: relative; max-width: 760px; margin: 0 auto; aspect-ratio: 1/1; display: grid; place-items: center; }
.couture-process-diagram .ring-hub { position: absolute; inset: 0; display: grid; place-items: center; }
.couture-process-diagram .ring-hub span { display: grid; place-items: center; width: 36%; aspect-ratio: 1; border-radius: 50%; background: var(--c-ink); color: var(--c-paper); font-family: var(--c-display); font-style: italic; text-align: center; padding: 18px; font-size: clamp(16px, 1.6vw, 24px); line-height: 1.2; }
.couture-process-diagram .diagram-ring::before { content: ""; position: absolute; inset: 12%; border: 1px dashed var(--c-line); border-radius: 50%; }
.couture-process-diagram .ring-node { position: absolute; width: 30%; text-align: center; background: var(--c-paper); padding: 14px; border-radius: var(--c-card-radius); box-shadow: var(--c-card-shadow); }
.couture-process-diagram .ring-node[data-i="1"] { top: 0; left: 50%; transform: translateX(-50%); }
.couture-process-diagram .ring-node[data-i="2"] { top: 28%; right: 0; }
.couture-process-diagram .ring-node[data-i="3"] { bottom: 28%; right: 0; }
.couture-process-diagram .ring-node[data-i="4"] { bottom: 0; left: 50%; transform: translateX(-50%); }
.couture-process-diagram .ring-node[data-i="5"] { bottom: 28%; left: 0; }
.couture-process-diagram .ring-node[data-i="6"] { top: 28%; left: 0; }
.couture-process-diagram .ring-no { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; color: var(--c-accent); }
.couture-process-diagram .ring-node h3 { font-family: var(--c-display); font-style: italic; font-weight: 400; font-size: 18px; margin: 6px 0 4px; }
.couture-process-diagram .ring-node p { font-size: 12px; line-height: 1.5; color: var(--c-ink-soft); margin: 0; }

/* --- process: checklist -------------------------------------- */
/* V4.7 — kinetic hero h1 sizing. The previous inline clamp of
   clamp(80px, 22vw, 360px) produced absurd 80px+ type on iPhone SE
   (320px wide → 22vw = 70.4px on the vw term, but 80px floor wins —
   then on a 360px screen 22vw = 79.2px which feels like a billboard).
   Now: tighter floor on small screens via media query. */
.couture-hero--kinetic-h1 { font-size: clamp(56px, 22vw, 360px); }
@media (max-width: 480px) {
  .couture-hero--kinetic-h1 { font-size: clamp(48px, 16vw, 96px); line-height: .95; }
  .couture-hero--kinetic .kinetic-subline { font-size: clamp(16px, 4.5vw, 22px) !important; }
}

/* === V4.18.9 — 6 NEW HERO STYLES (operator-flagged: every site looks
   the same because DNA declared 10 hero_styles but the renderer only
   handled 4 — the others all silently fell through to the default
   oversized-type. Now each style ships a distinct visual treatment.) */

/* 1. product-diorama — vitrine display, split text-left / framed-image-right */
.couture-hero--diorama { padding: clamp(48px, 8vw, 120px) var(--c-gutter) clamp(64px, 8vw, 96px); }
.couture-hero--diorama .diorama-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: center; max-width: 1320px; margin: 0 auto; }
.couture-hero--diorama .diorama-text h1 { font-family: var(--c-display); font-size: clamp(40px, 6vw, 96px); line-height: 1; letter-spacing: -0.02em; margin: 16px 0 24px; font-weight: 300; }
.couture-hero--diorama .diorama-sub { font-size: clamp(15px, 1.4vw, 18px); line-height: 1.5; max-width: 48ch; opacity: .85; }
.couture-hero--diorama .diorama-meta { display: flex; flex-direction: column; gap: 12px; margin-top: 32px; padding-top: 20px; border-top: 1px solid var(--c-line); font-family: var(--c-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.couture-hero--diorama .diorama-meta > div { display: flex; gap: 16px; align-items: baseline; }
.couture-hero--diorama .diorama-meta dt { opacity: .55; min-width: 80px; margin: 0; }
.couture-hero--diorama .diorama-meta dd { margin: 0; opacity: .95; }
.couture-hero--diorama .diorama-frame { background: var(--c-paper-2, var(--c-paper)); padding: clamp(20px, 3vw, 48px); box-shadow: 0 24px 64px rgba(0,0,0,.12), 0 4px 12px rgba(0,0,0,.06); border: 1px solid rgba(0,0,0,.06); }
.couture-hero--diorama .diorama-frame img { width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; display: block; }
@media (max-width: 768px) { .couture-hero--diorama .diorama-grid { grid-template-columns: 1fr; } }

/* 2. portrait-frame — editorial profile, portrait image left, italic headline right */
.couture-hero--portrait { padding: clamp(48px, 8vw, 120px) var(--c-gutter); }
.couture-hero--portrait .portrait-grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(40px, 6vw, 96px); align-items: stretch; max-width: 1280px; margin: 0 auto; }
.couture-hero--portrait .portrait-frame { margin: 0; padding: 14px; background: var(--c-paper); border: 1px solid var(--c-line); position: relative; box-shadow: 0 8px 32px rgba(0,0,0,.08); }
.couture-hero--portrait .portrait-frame img { width: 100%; height: auto; aspect-ratio: 3/4; object-fit: cover; display: block; }
.couture-hero--portrait .portrait-frame figcaption { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; opacity: .65; margin-top: 12px; padding: 0 4px; }
.couture-hero--portrait .portrait-text { display: flex; flex-direction: column; justify-content: center; }
.couture-hero--portrait .portrait-headline { font-family: var(--c-display); font-style: italic; font-size: clamp(48px, 7vw, 120px); line-height: .98; letter-spacing: -0.025em; margin: 16px 0 32px; font-weight: 300; }
.couture-hero--portrait .portrait-sub { font-size: clamp(15px, 1.4vw, 19px); line-height: 1.55; max-width: 44ch; opacity: .85; }
@media (max-width: 768px) { .couture-hero--portrait .portrait-grid { grid-template-columns: 1fr; } }

/* 3. overlay-chrome — full-bleed image with frosted-glass card holding text */
.couture-hero--chrome { min-height: 70vh; padding: 0; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.couture-hero--chrome .chrome-bg { position: absolute; inset: 0; z-index: 0; }
.couture-hero--chrome .chrome-bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.couture-hero--chrome .chrome-bg::after { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at center, transparent 30%, rgba(0,0,0,.25) 100%); }
.couture-hero--chrome .chrome-card { position: relative; z-index: 2; max-width: 720px; padding: clamp(40px, 6vw, 80px); background: rgba(255,255,255,.78); backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%); border: 1px solid rgba(255,255,255,.4); box-shadow: 0 32px 80px rgba(0,0,0,.18); margin: clamp(24px, 4vw, 64px) var(--c-gutter); }
.couture-hero--chrome .chrome-card h1 { font-family: var(--c-display); font-size: clamp(40px, 5.5vw, 88px); line-height: 1.02; letter-spacing: -0.02em; margin: 14px 0 22px; font-weight: 400; color: var(--c-ink); }
.couture-hero--chrome .chrome-card .eyebrow { color: var(--c-ink); }
.couture-hero--chrome .chrome-sub { font-size: clamp(15px, 1.4vw, 18px); line-height: 1.55; color: var(--c-ink); opacity: .9; max-width: 52ch; }
@media (prefers-color-scheme: dark) {
  .couture-hero--chrome .chrome-card { background: rgba(20,20,20,.75); border-color: rgba(255,255,255,.18); }
  .couture-hero--chrome .chrome-card h1, .couture-hero--chrome .chrome-card .eyebrow, .couture-hero--chrome .chrome-sub { color: var(--c-paper); }
}

/* 4. sticker-collage — playful, multiple text labels tilted at angles over hero */
.couture-hero--collage { min-height: 70vh; padding: clamp(60px, 8vw, 120px) var(--c-gutter); display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.couture-hero--collage .collage-bg { position: absolute; inset: 0; z-index: 0; opacity: .35; }
.couture-hero--collage .collage-bg img { width: 100%; height: 100%; object-fit: cover; filter: saturate(1.1); }
.couture-hero--collage .collage-stack { position: relative; z-index: 2; max-width: 800px; text-align: center; }
.couture-hero--collage .collage-headline { font-family: var(--c-display); font-size: clamp(48px, 8vw, 140px); line-height: .96; letter-spacing: -0.02em; margin: 0 0 28px; font-weight: 400; }
.couture-hero--collage .collage-sub { font-size: clamp(15px, 1.4vw, 19px); line-height: 1.55; max-width: 50ch; margin: 0 auto; opacity: .85; }
.couture-hero--collage .sticker { position: absolute; padding: 8px 18px; background: var(--c-accent, #f4a261); color: var(--c-paper); font-family: var(--c-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; transform: rotate(var(--rot, 0deg)); box-shadow: 0 4px 12px rgba(0,0,0,.18); border-radius: 2px; white-space: nowrap; z-index: 3; pointer-events: none; }
.couture-hero--collage .sticker-0 { top: -10px; left: 8%; background: var(--c-ink); }
.couture-hero--collage .sticker-1 { top: 30%; right: 4%; background: var(--c-accent-2, var(--c-accent)); }
.couture-hero--collage .sticker-2 { bottom: 12%; left: -2%; background: var(--c-accent); }
.couture-hero--collage .sticker-3 { bottom: -6px; right: 8%; background: var(--c-accent-3, var(--c-ink)); }
@media (max-width: 600px) {
  .couture-hero--collage .sticker-0, .couture-hero--collage .sticker-2 { left: 0; }
  .couture-hero--collage .sticker-1, .couture-hero--collage .sticker-3 { right: 0; }
  .couture-hero--collage .sticker { font-size: 10px; padding: 5px 11px; }
}

/* 5. video-loop — text top, "video frame" thumbnail with play-icon overlay below */
.couture-hero--video { padding: clamp(48px, 6vw, 96px) var(--c-gutter) clamp(40px, 6vw, 72px); max-width: 1280px; margin: 0 auto; }
.couture-hero--video .video-text { max-width: 720px; margin-bottom: clamp(32px, 4vw, 56px); }
.couture-hero--video .video-text h1 { font-family: var(--c-display); font-size: clamp(40px, 5.5vw, 96px); line-height: 1; letter-spacing: -0.02em; margin: 16px 0 24px; font-weight: 300; }
.couture-hero--video .video-sub { font-size: clamp(15px, 1.4vw, 18px); line-height: 1.55; opacity: .85; max-width: 56ch; }
.couture-hero--video .video-frame { position: relative; margin: 0; padding: 0; aspect-ratio: 16/9; background: var(--c-ink); border: 1px solid var(--c-line); overflow: hidden; box-shadow: 0 24px 60px rgba(0,0,0,.18); }
.couture-hero--video .video-frame img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: .92; }
.couture-hero--video .video-play-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80px; height: 80px; background: rgba(255,255,255,.92); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 28px; color: var(--c-ink); padding-left: 6px; box-shadow: 0 8px 24px rgba(0,0,0,.3); transition: transform .25s; }
.couture-hero--video .video-frame:hover .video-play-icon { transform: translate(-50%, -50%) scale(1.08); }
.couture-hero--video .video-meta { position: absolute; bottom: 16px; left: 20px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; color: var(--c-paper); background: rgba(0,0,0,.55); padding: 4px 10px; }

/* 6. data-visual — text-heavy, hero shows row of large stats/metrics */
.couture-hero--data { padding: clamp(48px, 8vw, 120px) var(--c-gutter); max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1.5fr 1fr; gap: clamp(40px, 6vw, 80px); align-items: end; }
.couture-hero--data .data-text h1 { font-family: var(--c-display); font-size: clamp(40px, 6vw, 110px); line-height: .98; letter-spacing: -0.02em; margin: 16px 0 24px; font-weight: 300; }
.couture-hero--data .data-sub { font-size: clamp(15px, 1.4vw, 18px); line-height: 1.55; opacity: .85; max-width: 52ch; }
.couture-hero--data .data-stats { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: clamp(20px, 3vw, 48px); margin-top: clamp(32px, 5vw, 56px); padding-top: 28px; border-top: 2px solid var(--c-ink); }
.couture-hero--data .data-stats .stat { display: flex; flex-direction: column; gap: 6px; }
.couture-hero--data .data-stats .stat-n { font-family: var(--c-display); font-size: clamp(36px, 5vw, 72px); line-height: 1; font-weight: 400; letter-spacing: -0.02em; color: var(--c-accent, var(--c-ink)); }
.couture-hero--data .data-stats .stat-l { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; opacity: .65; }
.couture-hero--data .data-thumb { margin: 0; max-width: 280px; justify-self: end; }
.couture-hero--data .data-thumb img { width: 100%; aspect-ratio: 1; object-fit: cover; display: block; border: 1px solid var(--c-line); }
@media (max-width: 768px) {
  .couture-hero--data { grid-template-columns: 1fr; }
  .couture-hero--data .data-thumb { justify-self: start; }
}

/* V4.6 — meta-stack on hero (label/value pairs like "City / Phoenix",
   "Discipline / Artisan"). Without these rules the label and value
   stacked with no spacing or distinction (rendered as "CityPhoenix"
   on chedralis live). Now: small mono uppercase label above big
   display value, generous gap between pairs. */
.couture-hero .meta-stack { display: flex; flex-wrap: wrap; gap: clamp(24px, 4vw, 48px) clamp(28px, 4vw, 56px); margin-top: clamp(32px, 5vw, 56px); padding-top: 24px; border-top: 1px solid var(--c-line); }
.couture-hero .meta-stack > div { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.couture-hero .meta-stack > div > span:first-child { font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); line-height: 1; }
.couture-hero .meta-stack > div > span:last-child { font-family: var(--c-display); font-style: italic; font-size: clamp(20px, 2vw, 28px); line-height: 1.1; color: var(--c-ink); }
@media (max-width: 700px) { .couture-hero .meta-stack { gap: 18px 28px; } }

.couture-checklist .spec-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 0; border-top: 2px solid var(--c-ink); }
.couture-checklist .spec-list li { display: grid; grid-template-columns: 32px 1fr; gap: 14px; padding: 22px 18px; border-bottom: 1px solid var(--c-line); border-right: 1px solid var(--c-line); align-items: start; }
.couture-checklist .spec-list li:nth-child(2n) { border-right: none; }
.couture-checklist .spec-list .tick { width: 24px; height: 24px; border-radius: 50%; background: var(--c-accent); color: var(--c-paper); display: grid; place-items: center; font-size: 12px; font-weight: 700; }
.couture-checklist .spec-list li strong { display: block; font-family: var(--c-display); font-weight: 500; font-size: 18px; margin-bottom: 4px; font-style: italic; }
.couture-checklist .spec-list li span { display: block; font-size: 14px; line-height: 1.55; color: var(--c-ink-soft); }

/* --- manifesto ------------------------------------------------ */
.couture-manifesto { text-align: left; max-width: 960px; padding: var(--c-rhythm) var(--c-gutter); }
.couture-manifesto .manifesto-mark { font-family: var(--c-display); font-weight: 400; font-size: clamp(80px, 12vw, 180px); line-height: 1; color: var(--c-accent); margin-bottom: 8px; }
.couture-manifesto p { font-family: var(--c-display); font-weight: 300; font-size: clamp(32px, 5.4vw, 80px); line-height: 1.05; letter-spacing: -0.015em; margin: 0 0 .4em; }
.couture-manifesto p:nth-child(even) { font-style: italic; color: var(--c-accent-2); }
.couture-manifesto cite { display: block; margin-top: 48px; font-family: var(--c-mono); font-style: normal; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); }

/* --- stat wall ------------------------------------------------ */
/* V4.66 — stats redesign (operator R12 Round 9 about-page polish).
   The hairline-divider grid felt thin at default sizes. Now: cards
   with subtle bg, more vertical breathing, larger numbers, and a
   tiny accent-tinted bar above each stat for visual rhythm. */
.couture-stats .stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
  background: var(--c-paper-2, color-mix(in oklab, var(--c-ink) 3%, var(--c-paper)));
}
.couture-stats .stat {
  padding: clamp(48px, 6vw, 80px) clamp(20px, 3vw, 36px);
  border-right: 1px solid var(--c-line);
  position: relative;
  text-align: center;
}
.couture-stats .stat::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 36px;
  height: 3px;
  background: var(--c-accent);
}
.couture-stats .stat:last-child { border-right: none; }
.couture-stats .stat strong {
  display: block;
  font-family: var(--c-display);
  font-weight: 600;
  font-size: clamp(48px, 7vw, 96px);
  line-height: 0.95;
  letter-spacing: -0.025em;
  color: var(--c-ink);
  margin-bottom: 16px;
  font-variant-numeric: tabular-nums;
}
.couture-stats .stat span {
  font-family: var(--c-mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--c-muted);
  font-weight: 600;
}

/* --- press wall ----------------------------------------------- */
.couture-press .press-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 28px; }
.couture-press figure { margin: 0; padding: 28px; background: var(--c-paper-2); border: 1px solid var(--c-line); border-radius: var(--c-card-radius); box-shadow: var(--c-card-shadow); display: flex; flex-direction: column; gap: 18px; }
.couture-press blockquote { margin: 0; font-family: var(--c-display); font-style: italic; font-weight: 400; font-size: clamp(20px, 1.8vw, 26px); line-height: 1.25; color: var(--c-ink); }
.couture-press figcaption { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); }

/* --- index listing -------------------------------------------- */
.couture-idx .idx-list { list-style: none; margin: 0; padding: 0; border-top: 2px solid var(--c-ink); }
.couture-idx .idx-list li { display: grid; grid-template-columns: 80px 1fr auto; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--c-line); font-family: var(--c-display); font-size: clamp(22px, 2.6vw, 36px); font-style: italic; font-weight: 400; align-items: baseline; }
.couture-idx .idx-list li:hover { background: var(--c-paper-2); }
.couture-idx .idx-list li > span:first-child { font-family: var(--c-mono); font-style: normal; font-size: 11px; letter-spacing: .12em; color: var(--c-accent); }
.couture-idx .idx-note { font-family: var(--c-mono); font-style: normal; font-size: 11px; letter-spacing: .08em; color: var(--c-muted); }

/* motion — stagger reveal */
.couture-reveal { opacity: 0; transform: translateY(24px); transition: opacity 1s cubic-bezier(.2,.8,.2,1), transform 1s cubic-bezier(.2,.8,.2,1); }
.couture-reveal.in { opacity: 1; transform: translateY(0); }
.couture-reveal.d1 { transition-delay: .08s; }
.couture-reveal.d2 { transition-delay: .16s; }
.couture-reveal.d3 { transition-delay: .24s; }
.couture-reveal.d4 { transition-delay: .32s; }

/* ============================================================
   NAVIGATION MODELS
============================================================ */

/* top-bar (default) */
.couture-nav-topbar { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; padding: 14px var(--c-gutter); background: var(--c-paper); border-bottom: 1px solid var(--c-line); backdrop-filter: saturate(1.2) blur(10px); }
.couture-nav-topbar .brand a { font-family: var(--c-display); font-style: italic; font-weight: 400; font-size: 22px; color: var(--c-ink); text-decoration: none; letter-spacing: -0.01em; }
.couture-nav-topbar nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 28px; font-family: var(--c-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.couture-nav-topbar nav a { color: var(--c-ink); text-decoration: none; border-bottom: 1px solid transparent; padding-bottom: 2px; transition: border-color .2s; }
.couture-nav-topbar nav a:hover { border-color: var(--c-accent); }
.couture-nav-topbar .actions .cart { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; border: 1px solid var(--c-ink); padding: 8px 14px; text-decoration: none; color: var(--c-ink); }

/* side-rail */
.couture-nav-siderail { position: fixed; top: 0; left: 0; bottom: 0; width: 240px; padding: 32px 24px; background: var(--c-paper); border-right: 1px solid var(--c-line); display: flex; flex-direction: column; gap: 40px; z-index: 40; }
.couture-nav-siderail .rail-brand a { font-family: var(--c-display); font-weight: 400; font-style: italic; font-size: 24px; letter-spacing: -0.01em; color: var(--c-ink); text-decoration: none; line-height: 1.05; display: block; }
.couture-nav-siderail .rail-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; }
.couture-nav-siderail .rail-menu a { color: var(--c-ink); text-decoration: none; padding-left: 16px; position: relative; }
.couture-nav-siderail .rail-menu a::before { content: ""; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; background: var(--c-accent); border-radius: 50%; opacity: 0; transition: opacity .2s; }
.couture-nav-siderail .rail-menu a:hover::before { opacity: 1; }
.couture-nav-siderail .rail-footer { margin-top: auto; }
.couture-nav-siderail .rail-cta { font-family: var(--c-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-paper); background: var(--c-ink); padding: 14px 18px; text-decoration: none; display: block; text-align: center; }
/* Site-wide offset when the rail is present */
.couture-nav-siderail ~ .couture-spatial,
body:has(.couture-nav-siderail) .couture-spatial { margin-left: 240px; }
body:has(.couture-nav-siderail) .couture-footer { margin-left: 240px; }

/* dot-index */
.couture-nav-dotindex { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; padding: 14px var(--c-gutter); background: var(--c-paper); border-bottom: 1px solid var(--c-line); }
.couture-nav-dotindex .dot-brand a { font-family: var(--c-display); font-style: italic; font-size: 22px; color: var(--c-ink); text-decoration: none; }
.couture-nav-dotindex .dot-menu { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; display: flex; gap: 20px; }
.couture-nav-dotindex .dot-menu a { color: var(--c-ink); text-decoration: none; }
.couture-nav-dotindex .dot-rail { position: fixed; right: 24px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 14px; list-style: none; margin: 0; padding: 12px 8px; background: var(--c-paper); border: 1px solid var(--c-line); z-index: 60; }
.couture-nav-dotindex .dot-rail a { display: block; width: 14px; height: 14px; border-radius: 50%; border: 1px solid var(--c-ink); font-size: 0; color: transparent; position: relative; }
.couture-nav-dotindex .dot-rail a:hover { background: var(--c-accent); border-color: var(--c-accent); }
.couture-nav-dotindex .dot-rail a::after { content: attr(title); position: absolute; right: 24px; top: 50%; transform: translateY(-50%); font-size: 10px; font-family: var(--c-mono); letter-spacing: .1em; text-transform: uppercase; color: var(--c-ink); white-space: nowrap; background: var(--c-paper); padding: 4px 8px; border: 1px solid var(--c-line); opacity: 0; transition: opacity .2s; pointer-events: none; }
.couture-nav-dotindex .dot-rail a:hover::after { opacity: 1; }

/* drawer */
.couture-nav-drawer { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; padding: 16px var(--c-gutter); background: var(--c-paper); border-bottom: 1px solid var(--c-line); }
.couture-nav-drawer .drawer-brand a { font-family: var(--c-display); font-style: italic; font-size: 24px; color: var(--c-ink); text-decoration: none; }
.couture-nav-drawer .drawer-trigger { font-family: var(--c-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; background: transparent; border: 1px solid var(--c-ink); padding: 10px 16px; cursor: pointer; color: var(--c-ink); }
.couture-nav-drawer .drawer-cart { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-ink); text-decoration: none; }

/* ============================================================
   CART CHIP placements (handoff item N6)
   Cart used to live top-right on every nav variant. Now varies:
   - inline    → top-right pill (top-bar, split-corner)
   - floating  → bottom-right floating button (drawer, toc, dot-index)
   - rail      → small link in side-rail footer
   Some archetypes (by-appointment, made-to-order, wholesale) skip
   the cart chip entirely — driven from nav.js renderCartChip().
============================================================ */
.couture-cart-chip { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.couture-cart-chip--inline { color: var(--c-ink); border: 1px solid var(--c-ink); padding: 8px 14px; transition: background .2s, color .2s; }
.couture-cart-chip--inline:hover { background: var(--c-ink); color: var(--c-paper); }
.couture-cart-chip--rail { display: block; padding: 10px 14px; margin-top: 12px; border: 1px solid var(--c-line); color: var(--c-ink); text-align: center; font-size: 10px; }
.couture-cart-chip--rail:hover { border-color: var(--c-ink); }
/* V4.6 — bottom positioning respects iPhone home indicator + bottom-safe
   area so the chip never overlaps the indicator bar on notched devices. */
.couture-cart-chip--floating { position: fixed; right: clamp(20px, 3vw, 36px); bottom: calc(clamp(20px, 3vw, 36px) + env(safe-area-inset-bottom, 0px)); z-index: 60; padding: 14px 22px; background: var(--c-ink); color: var(--c-paper); box-shadow: 0 8px 28px rgba(0,0,0,.18); border: 1px solid var(--c-ink); transition: transform .15s, box-shadow .2s; }
.couture-cart-chip--floating:hover { transform: translateY(-2px); box-shadow: 0 12px 36px rgba(0,0,0,.22); background: var(--c-accent); border-color: var(--c-accent); }
@media (max-width: 700px) {
  .couture-cart-chip--floating { padding: 12px 18px; font-size: 10px; right: 16px; bottom: 16px; }
}

/* === V4.18.6 CART STYLE variants (operator-flagged: same cart button on every site) ===
   A per-domain hash picks one of 6 styles. CSS targets via [data-cart-style="..."].
   The PLACEMENT (--inline/--floating/--rail) is unchanged; this just varies
   the look WITHIN each placement. */

/* cart-bordered: V4.0 default (kept) */

/* cart-pill: rounded full-pill with light grey background, no border */
.couture-cart-chip[data-cart-style="cart-pill"] {
  border: none; background: var(--c-paper-2); color: var(--c-ink);
  padding: 10px 18px; border-radius: 999px;
  transition: background .2s;
}
.couture-cart-chip[data-cart-style="cart-pill"]:hover {
  background: var(--c-ink); color: var(--c-paper);
}

/* cart-link: text-only link with a small arrow, no border */
.couture-cart-chip[data-cart-style="cart-link"] {
  border: none; background: transparent; padding: 8px 0;
  position: relative; padding-right: 18px;
}
.couture-cart-chip[data-cart-style="cart-link"]::after {
  content: "\2192"; position: absolute; right: 0; top: 50%;
  transform: translateY(-50%); transition: transform .2s;
}
.couture-cart-chip[data-cart-style="cart-link"]:hover {
  background: transparent; color: var(--c-accent);
}
.couture-cart-chip[data-cart-style="cart-link"]:hover::after {
  transform: translate(4px, -50%);
}

/* cart-icon-text: emoji icon + tiny text label */
.couture-cart-chip[data-cart-style="cart-icon-text"] {
  border: none; background: transparent; padding: 6px 10px;
  display: inline-flex; align-items: center; gap: 6px;
}
.couture-cart-chip[data-cart-style="cart-icon-text"] .cart-icon {
  font-size: 18px; line-height: 1;
}
.couture-cart-chip[data-cart-style="cart-icon-text"] .cart-label {
  font-size: 11px; letter-spacing: .12em;
}
.couture-cart-chip[data-cart-style="cart-icon-text"]:hover {
  background: transparent; color: var(--c-accent);
}

/* cart-square-fill: solid filled square, loud accent button */
.couture-cart-chip[data-cart-style="cart-square-fill"] {
  background: var(--c-accent); color: var(--c-paper);
  border: none; padding: 10px 18px;
  font-weight: 500;
  transition: background .2s, transform .15s;
}
.couture-cart-chip[data-cart-style="cart-square-fill"]:hover {
  background: var(--c-ink); transform: translateY(-1px);
}

/* cart-underline: text only with bottom underline, no border */
.couture-cart-chip[data-cart-style="cart-underline"] {
  border: none; background: transparent; padding: 8px 0;
  border-bottom: 2px solid currentColor; border-radius: 0;
}
.couture-cart-chip[data-cart-style="cart-underline"]:hover {
  background: transparent; color: var(--c-accent);
  border-bottom-color: var(--c-accent);
}

/* When on the floating variant, override the dark default with each style's background. */
.couture-cart-chip--floating[data-cart-style="cart-pill"] { background: var(--c-paper); color: var(--c-ink); border: none; }
.couture-cart-chip--floating[data-cart-style="cart-square-fill"] { background: var(--c-accent); border: none; }
.couture-cart-chip--floating[data-cart-style="cart-link"],
.couture-cart-chip--floating[data-cart-style="cart-icon-text"] {
  background: var(--c-paper); color: var(--c-ink); padding: 14px 22px; border: 1px solid var(--c-line);
}
.couture-cart-chip--floating[data-cart-style="cart-underline"] {
  background: var(--c-paper); color: var(--c-ink); border-bottom: 2px solid var(--c-accent);
}
/* V4.61 — drawer overlay + slide animation. Operator R12: drawer
   nav was rendered but invisible without JS toggle. couture.js V4.61
   now toggles [hidden]; CSS handles overlay + slide. */
body.drawer-open::before {
  content: '';
  position: fixed; inset: 0;
  background: rgba(0,0,0,.42);
  z-index: 99;
  animation: drawer-fade-in .25s ease forwards;
}
@keyframes drawer-fade-in { from { opacity: 0 } to { opacity: 1 } }
body.drawer-open { overflow: hidden; }
.couture-nav-drawer .drawer-panel { position: fixed; top: 0; right: 0; bottom: 0; width: min(420px, 85vw); background: var(--c-ink); color: var(--c-paper); padding: 80px 40px 40px; transform: translateX(100%); transition: transform .5s cubic-bezier(.2,.8,.2,1); z-index: 100; overflow-y: auto; }
.couture-nav-drawer .drawer-panel[aria-hidden="false"], .couture-nav-drawer .drawer-panel:not([hidden]) { transform: translateX(0); }
.couture-nav-drawer .drawer-panel ul { list-style: none; margin: 0 0 40px; padding: 0; display: flex; flex-direction: column; gap: 20px; }
.couture-nav-drawer .drawer-panel a { color: var(--c-paper); text-decoration: none; font-family: var(--c-display); font-size: 36px; font-style: italic; letter-spacing: -.01em; }
.couture-nav-drawer .drawer-panel a:hover { color: var(--c-accent-3); }
.couture-nav-drawer .drawer-close { font-family: var(--c-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; opacity: .7; }

/* toc (table of contents header) */
.couture-nav-toc { padding: 32px var(--c-gutter) 0; border-bottom: 2px solid var(--c-ink); background: var(--c-paper); }
.couture-nav-toc .toc-top { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 20px; border-bottom: 1px solid var(--c-line); }
.couture-nav-toc .toc-brand a { font-family: var(--c-display); font-weight: 300; font-size: clamp(36px, 5vw, 64px); line-height: 1; color: var(--c-ink); text-decoration: none; letter-spacing: -.03em; }
.couture-nav-toc .toc-menu { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.couture-nav-toc .toc-menu a { color: var(--c-ink); text-decoration: none; }
.couture-nav-toc .toc-contents { padding: 28px 0 40px; }
.couture-nav-toc .toc-contents h2 { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin: 0 0 16px; font-weight: 500; }
.couture-nav-toc .toc-list { list-style: none; margin: 0; padding: 0; column-count: 2; column-gap: 40px; column-rule: 1px dashed var(--c-line); }
.couture-nav-toc .toc-list li { break-inside: avoid; display: grid; grid-template-columns: 36px 1fr auto; align-items: baseline; gap: 12px; padding: 12px 0; border-bottom: 1px dashed var(--c-line); font-family: var(--c-body); font-size: 15px; }
.couture-nav-toc .toc-list .toc-n { font-family: var(--c-mono); font-size: 11px; letter-spacing: .1em; color: var(--c-accent); }
.couture-nav-toc .toc-list a { color: var(--c-ink); text-decoration: none; font-style: italic; }
.couture-nav-toc .toc-list .toc-dots { border-bottom: 1px dotted var(--c-muted); min-width: 40px; }

/* split-corner */
.couture-nav-split { position: fixed; top: 28px; left: 28px; z-index: 50; background: var(--c-paper); padding: 18px; border: 1px solid var(--c-line); max-width: 220px; }
.couture-nav-split .split-brand a { font-family: var(--c-display); font-weight: 300; font-style: italic; font-size: 22px; color: var(--c-ink); text-decoration: none; display: block; margin-bottom: 14px; letter-spacing: -.01em; }
.couture-nav-split .split-menu ul { list-style: none; margin: 0; padding: 0; }
.couture-nav-split .split-menu li { padding: 4px 0; border-bottom: 1px solid var(--c-line); font-family: var(--c-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.couture-nav-split .split-menu li:last-child { border-bottom: none; }
.couture-nav-split .split-menu a { color: var(--c-ink); text-decoration: none; display: block; }
body:has(.couture-nav-split) .couture-spatial { padding-left: 260px; }

/* ============================================================
   V4.18.2 — NAV VARIANTS
   Operator-flagged: every site's nav rendered the same shape per
   nav_model. Within each model, pick one of N variants per-domain
   (data-nav-variant="..."). CSS rules below alter at minimum:
     - logo position / horizontal alignment
     - density (padding, font-size, gap)
     - sticky / static behaviour
     - background tint (paper / paper2 / inverted / translucent)
     - border treatment (bottom / shadow / none / hairline-top)
     - divider style between menu items
   See `pickNavVariant()` in src/lib/block_renderer/nav.js for
   the variant pool per model.
============================================================ */

/* ----- shared announcement bar (top-bar / drawer 'with-announce') ----- */
.couture-announce-bar { display: flex; gap: 28px; justify-content: center; align-items: center;
  background: var(--c-ink); color: var(--c-paper); padding: 7px var(--c-gutter);
  font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase;
  width: 100%; box-sizing: border-box; }
.couture-announce-bar .announce-item { white-space: nowrap; opacity: .9; }
.couture-announce-bar .announce-item + .announce-item::before { content: "·"; margin-right: 28px; opacity: .55; }

/* === V4.18.7 NAV FEATURES — shop-dropdown, search, account icons ===
   Operator-flagged: "navigation enhancements, some websites can show
   product category dropdowns... more rich variation of navigations".
   Per-domain hash picks one of 6 NAV_FEATURES. CSS targets via
   data-nav-features="..." on the header.
   - shop-dropdown: /shop nav item expands to category panel on hover
   - search-only / shop-dropdown+search: search icon in actions area
   - account+cart / shop-dropdown+account: account icon in actions area
   The features stack on top of the nav-variant CSS (data-nav-variant).
*/

/* --- shop dropdown (top-bar) --- */
.couture-nav-topbar nav .nav-with-dropdown {
  position: relative;
}
.couture-nav-topbar nav .nav-shop-toggle {
  display: inline-flex; align-items: center; gap: 4px;
}
.couture-nav-topbar nav .nav-caret {
  font-size: 10px; line-height: 1; transition: transform .2s;
}
.couture-nav-topbar nav .nav-with-dropdown:hover .nav-caret,
.couture-nav-topbar nav .nav-with-dropdown:focus-within .nav-caret {
  transform: rotate(180deg);
}
.couture-nav-topbar nav .nav-dropdown {
  position: absolute; left: 0; top: 100%;
  background: var(--c-paper); border: 1px solid var(--c-line);
  min-width: 240px; padding: 14px 0;
  opacity: 0; visibility: hidden; transform: translateY(-8px);
  transition: opacity .18s, transform .18s, visibility .18s;
  z-index: 70; box-shadow: 0 12px 36px rgba(0,0,0,.08);
  margin-top: 0;
}
.couture-nav-topbar nav .nav-with-dropdown:hover .nav-dropdown,
.couture-nav-topbar nav .nav-with-dropdown:focus-within .nav-dropdown {
  opacity: 1; visibility: visible; transform: translateY(0);
}
.couture-nav-topbar nav .nav-dropdown-list {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column;
}
.couture-nav-topbar nav .nav-dropdown-list li {
  padding: 0;
}
.couture-nav-topbar nav .nav-dropdown-list a {
  display: block; padding: 9px 22px;
  font-family: var(--c-body); font-size: 14px;
  letter-spacing: 0; text-transform: none; font-weight: 400;
  color: var(--c-ink); border-bottom: none;
  transition: background .15s;
}
.couture-nav-topbar nav .nav-dropdown-list a:hover {
  background: var(--c-paper-2); color: var(--c-accent); border-color: transparent;
}
.couture-nav-topbar nav .nav-dropdown-list .nav-dropdown-all {
  border-bottom: 1px solid var(--c-line); margin-bottom: 6px;
  font-weight: 500; padding-bottom: 12px;
}
/* Inverted-dark variant: dropdown panel inherits dark-on-light look
   (panel itself is paper-bg so the hover popup is readable). */
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] nav .nav-dropdown { background: var(--c-paper); color: var(--c-ink); }
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] nav .nav-dropdown-list a { color: var(--c-ink); }

/* Mobile fallback: dropdown opens inline below the nav item */
@media (max-width: 700px) {
  .couture-nav-topbar nav .nav-dropdown {
    position: static; opacity: 1; visibility: visible; transform: none;
    box-shadow: none; border: none; min-width: 0; padding: 4px 0 12px 16px;
    background: transparent;
  }
  .couture-nav-topbar nav .nav-dropdown-list a { padding: 6px 12px; font-size: 13px; }
  .couture-nav-topbar nav .nav-caret { display: none; }
}

/* --- drawer category sublist --- */
.couture-nav-drawer .drawer-panel .drawer-sublist {
  list-style: none; margin: 12px 0 24px 16px; padding: 0 0 0 18px;
  border-left: 1px solid rgba(255,255,255,.15);
  display: flex; flex-direction: column; gap: 8px;
}
.couture-nav-drawer .drawer-panel .drawer-sublist .drawer-subitem a {
  font-family: var(--c-body); font-style: normal;
  font-size: 16px; letter-spacing: 0;
  color: var(--c-paper-2); opacity: .8;
}
.couture-nav-drawer .drawer-panel .drawer-sublist .drawer-subitem a:hover {
  color: var(--c-accent-3); opacity: 1;
}
.couture-nav-drawer .drawer-panel .drawer-shop-link {
  font-weight: 500;
}

/* --- search icon + form (CSS-only expand) --- */
.couture-nav-topbar .actions .nav-search,
.couture-nav-drawer .nav-search {
  position: relative; display: inline-flex; align-items: center;
}
.couture-nav-topbar .actions .nav-search-toggle,
.couture-nav-drawer .nav-search-toggle {
  background: transparent; border: none; cursor: pointer;
  color: inherit; padding: 8px; line-height: 0;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 0; transition: color .2s;
}
.couture-nav-topbar .actions .nav-search-toggle:hover,
.couture-nav-drawer .nav-search-toggle:hover {
  color: var(--c-accent);
}
.couture-nav-topbar .actions .nav-search-form,
.couture-nav-drawer .nav-search-form {
  position: absolute; right: 100%; top: 50%;
  transform: translateY(-50%) scaleX(0); transform-origin: right center;
  margin-right: 6px;
  transition: transform .25s cubic-bezier(.2,.8,.2,1);
  background: var(--c-paper); border: 1px solid var(--c-line);
  padding: 0;
  width: 240px;
}
.couture-nav-topbar .actions .nav-search:hover .nav-search-form,
.couture-nav-topbar .actions .nav-search:focus-within .nav-search-form,
.couture-nav-drawer .nav-search:hover .nav-search-form,
.couture-nav-drawer .nav-search:focus-within .nav-search-form {
  transform: translateY(-50%) scaleX(1);
}
.couture-nav-topbar .actions .nav-search-form input,
.couture-nav-drawer .nav-search-form input {
  width: 100%; padding: 8px 14px; border: none;
  background: transparent; color: var(--c-ink);
  font-family: var(--c-body); font-size: 14px;
  outline: none;
}
@media (max-width: 700px) {
  .couture-nav-topbar .actions .nav-search-form,
  .couture-nav-drawer .nav-search-form {
    position: fixed; left: 16px; right: 16px; top: 64px; width: auto;
    transform: scaleY(0); transform-origin: top right;
    z-index: 80;
  }
  .couture-nav-topbar .actions .nav-search:hover .nav-search-form,
  .couture-nav-topbar .actions .nav-search:focus-within .nav-search-form {
    transform: scaleY(1);
  }
}

/* --- account icon --- */
.couture-nav-topbar .actions .nav-account,
.couture-nav-drawer .nav-account {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 8px; line-height: 0;
  color: inherit; transition: color .2s;
}
.couture-nav-topbar .actions .nav-account:hover,
.couture-nav-drawer .nav-account:hover {
  color: var(--c-accent);
}

/* The actions row needs a bit of horizontal gap when 2-3 things stack */
.couture-nav-topbar .actions {
  display: inline-flex; align-items: center; gap: 6px;
}

/* For inverted-dark nav, ensure search/account icons stay light-on-dark */
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] .actions .nav-search-toggle,
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] .actions .nav-account {
  color: var(--c-paper);
}

/* ----- TOP-BAR variants ----- */
/* topbar-classic-left: existing default behaviour. Already rendered above. */

/* topbar-centered: brand absolutely centered, menu LEFT, actions RIGHT */
.couture-nav-topbar[data-nav-variant="topbar-centered"] { position: relative; }
.couture-nav-topbar[data-nav-variant="topbar-centered"] .brand {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 1;
}
.couture-nav-topbar[data-nav-variant="topbar-centered"] nav { order: -1; }

/* topbar-split-stacked: TWO ROWS — brand row above, menu row below */
.couture-nav-topbar[data-nav-variant="topbar-split-stacked"] {
  flex-direction: column; align-items: stretch; gap: 0; padding: 0;
}
.couture-nav-topbar[data-nav-variant="topbar-split-stacked"] .topbar-row {
  display: flex; align-items: center; padding: 14px var(--c-gutter);
}
.couture-nav-topbar[data-nav-variant="topbar-split-stacked"] .topbar-row--brand {
  justify-content: center; border-bottom: 1px solid var(--c-line); padding-top: 22px; padding-bottom: 18px;
}
.couture-nav-topbar[data-nav-variant="topbar-split-stacked"] .topbar-row--menu {
  justify-content: space-between;
}

/* topbar-with-announce: announce bar above the regular row */
.couture-nav-topbar[data-nav-variant="topbar-with-announce"] {
  flex-wrap: wrap; padding: 0;
}
.couture-nav-topbar[data-nav-variant="topbar-with-announce"] > .couture-announce-bar { order: -1; }
.couture-nav-topbar[data-nav-variant="topbar-with-announce"] .brand,
.couture-nav-topbar[data-nav-variant="topbar-with-announce"] nav,
.couture-nav-topbar[data-nav-variant="topbar-with-announce"] .actions {
  margin-top: 14px; margin-bottom: 14px;
}
.couture-nav-topbar[data-nav-variant="topbar-with-announce"] .brand { padding-left: var(--c-gutter); }
.couture-nav-topbar[data-nav-variant="topbar-with-announce"] .actions { padding-right: var(--c-gutter); }

/* topbar-inverted-dark: dark background, light text — unmistakable */
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] {
  background: var(--c-ink); border-bottom: none; color: var(--c-paper);
}
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] .brand a,
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] nav a,
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] .actions a { color: var(--c-paper); }
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] .brand-word { color: var(--c-paper); }
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] .actions .cart {
  border-color: var(--c-paper); color: var(--c-paper);
}
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] .actions .cart:hover {
  background: var(--c-paper); color: var(--c-ink);
}
.couture-nav-topbar[data-nav-variant="topbar-inverted-dark"] nav a:hover { border-color: var(--c-accent-3); }

/* topbar-dense-utility: thinner, smaller text, more functional vibe */
.couture-nav-topbar[data-nav-variant="topbar-dense-utility"] {
  padding: 8px var(--c-gutter); border-bottom-width: 1px;
}
.couture-nav-topbar[data-nav-variant="topbar-dense-utility"] nav ul { gap: 18px; font-size: 10px; }
.couture-nav-topbar[data-nav-variant="topbar-dense-utility"] .actions .cart { padding: 5px 10px; font-size: 10px; }
.couture-nav-topbar[data-nav-variant="topbar-dense-utility"] .brand a { font-size: 18px; }

/* topbar-borderless-airy: no bottom border, lots of vertical padding, lighter */
.couture-nav-topbar[data-nav-variant="topbar-borderless-airy"] {
  padding: 32px var(--c-gutter); border-bottom: none; backdrop-filter: none;
  background: transparent;
}
.couture-nav-topbar[data-nav-variant="topbar-borderless-airy"] nav ul { gap: 40px; }

/* topbar-pill-menu: menu items rendered as pills with light grey bg */
.couture-nav-topbar[data-nav-variant="topbar-pill-menu"] nav ul { gap: 8px; }
.couture-nav-topbar[data-nav-variant="topbar-pill-menu"] nav a {
  padding: 7px 14px; background: var(--c-paper-2); border-radius: 999px;
  border-bottom: none; font-size: 11px;
}
.couture-nav-topbar[data-nav-variant="topbar-pill-menu"] nav a:hover {
  background: var(--c-ink); color: var(--c-paper); border-color: transparent;
}

/* ----- DRAWER variants ----- */
/* drawer-burger-right: existing behaviour */

/* drawer-burger-left: trigger swaps to LEFT, brand centers */
.couture-nav-drawer[data-nav-variant="drawer-burger-left"] { flex-direction: row-reverse; justify-content: space-between; }
.couture-nav-drawer[data-nav-variant="drawer-burger-left"] .drawer-brand { flex: 1; text-align: center; }

/* drawer-with-announce: same as topbar-with-announce but for drawer */
.couture-nav-drawer[data-nav-variant="drawer-with-announce"] { flex-wrap: wrap; padding: 0; }
.couture-nav-drawer[data-nav-variant="drawer-with-announce"] > .couture-announce-bar { order: -1; }
.couture-nav-drawer[data-nav-variant="drawer-with-announce"] .drawer-brand,
.couture-nav-drawer[data-nav-variant="drawer-with-announce"] .drawer-trigger {
  margin-top: 16px; margin-bottom: 16px;
}
.couture-nav-drawer[data-nav-variant="drawer-with-announce"] .drawer-brand { padding-left: var(--c-gutter); }
.couture-nav-drawer[data-nav-variant="drawer-with-announce"] .drawer-trigger { margin-right: var(--c-gutter); }

/* drawer-fullscreen-takeover: panel goes fullscreen, big type even bigger */
.couture-nav-drawer[data-nav-variant="drawer-fullscreen-takeover"] .drawer-panel {
  width: 100vw; max-width: 100vw; padding: 100px 60px 60px;
}
.couture-nav-drawer[data-nav-variant="drawer-fullscreen-takeover"] .drawer-panel a { font-size: 56px; }
@media (max-width: 700px) {
  .couture-nav-drawer[data-nav-variant="drawer-fullscreen-takeover"] .drawer-panel a { font-size: 36px; }
}

/* ----- SIDE-RAIL variants ----- */
/* siderail-thin-left: existing behaviour */

/* siderail-thin-right: rail moves to RIGHT side */
.couture-nav-siderail[data-nav-variant="siderail-thin-right"] {
  left: auto; right: 0; border-right: none; border-left: 1px solid var(--c-line);
}
body:has(.couture-nav-siderail[data-nav-variant="siderail-thin-right"]) .couture-spatial { margin-left: 0; margin-right: 240px; }
body:has(.couture-nav-siderail[data-nav-variant="siderail-thin-right"]) .couture-footer { margin-left: 0; margin-right: 240px; }

/* siderail-wide-narrative: 320px rail with brand statement */
.couture-nav-siderail[data-nav-variant="siderail-wide-narrative"] { width: 320px; padding: 40px 28px; gap: 32px; }
.couture-nav-siderail[data-nav-variant="siderail-wide-narrative"] .rail-tagline {
  font-family: var(--c-body); font-size: 13px; line-height: 1.55; color: var(--c-muted);
  margin: 0; padding-bottom: 8px; border-bottom: 1px solid var(--c-line);
}
body:has(.couture-nav-siderail[data-nav-variant="siderail-wide-narrative"]) .couture-spatial { margin-left: 320px; }
body:has(.couture-nav-siderail[data-nav-variant="siderail-wide-narrative"]) .couture-footer { margin-left: 320px; }

/* ----- DOT-INDEX variants ----- */
/* dotindex-right: existing behaviour (dot-rail right) */
/* dotindex-left: dot-rail moves left */
.couture-nav-dotindex[data-nav-variant="dotindex-left"] .dot-rail { right: auto; left: 24px; }
.couture-nav-dotindex[data-nav-variant="dotindex-left"] .dot-rail a::after { right: auto; left: 24px; }
/* dotindex-bottom: dot-rail becomes a horizontal pill at the bottom */
.couture-nav-dotindex[data-nav-variant="dotindex-bottom"] .dot-rail {
  flex-direction: row; right: 50%; bottom: 24px; top: auto; left: auto;
  transform: translateX(50%); padding: 8px 12px; gap: 10px;
}
.couture-nav-dotindex[data-nav-variant="dotindex-bottom"] .dot-rail a::after { display: none; }

/* ----- TOC variants ----- */
/* toc-header-flat: existing default */
/* toc-header-numbered: bigger numerals on each TOC entry */
.couture-nav-toc[data-nav-variant="toc-header-numbered"] .toc-list .toc-n {
  font-size: 22px; font-family: var(--c-display); font-style: italic; color: var(--c-ink);
}
.couture-nav-toc[data-nav-variant="toc-header-numbered"] .toc-list li { padding: 16px 0; }

/* toc-header-dotted: emphasises the dotted rule between entries */
.couture-nav-toc[data-nav-variant="toc-header-dotted"] .toc-list .toc-dots {
  border-bottom-width: 2px; border-color: var(--c-ink); min-width: 80px;
}
.couture-nav-toc[data-nav-variant="toc-header-dotted"] .toc-list { column-rule: 2px dotted var(--c-ink); }

/* ----- SPLIT-CORNER variants ----- */
/* split-corner-tl (top-left): existing default */
/* split-corner-tr: corner moves to top-right */
.couture-nav-split[data-nav-variant="split-corner-tr"] { left: auto; right: 28px; }
body:has(.couture-nav-split[data-nav-variant="split-corner-tr"]) .couture-spatial { padding-left: 0; padding-right: 260px; }
/* split-corner-bl: corner moves to bottom-left */
.couture-nav-split[data-nav-variant="split-corner-bl"] { top: auto; bottom: 28px; }
body:has(.couture-nav-split[data-nav-variant="split-corner-bl"]) .couture-spatial { padding-left: 260px; }

/* Mobile collapse: above ~700px viewports keep variants visible; below
   them, fall back to single-column drawer-style for predictable mobile UX. */
@media (max-width: 700px) {
  .couture-nav-topbar[data-nav-variant="topbar-split-stacked"] .topbar-row { padding: 10px var(--c-gutter); }
  .couture-nav-topbar[data-nav-variant="topbar-centered"] .brand { position: static; transform: none; }
  .couture-nav-topbar[data-nav-variant="topbar-borderless-airy"] { padding: 16px var(--c-gutter); }
  .couture-nav-topbar[data-nav-variant="topbar-pill-menu"] nav ul { gap: 6px; }
  .couture-nav-siderail[data-nav-variant="siderail-wide-narrative"] { width: 240px; }
  body:has(.couture-nav-siderail[data-nav-variant="siderail-wide-narrative"]) .couture-spatial { margin-left: 240px; }
  body:has(.couture-nav-siderail[data-nav-variant="siderail-thin-right"]) .couture-spatial { margin-right: 0; }
  .couture-nav-siderail[data-nav-variant="siderail-thin-right"] { display: none; }
  /* (mobile already handles drawer collapse via global rules) */
}

/* ============================================================
   SPATIAL WRAPPERS
============================================================ */

.couture-spatial-vertical { }

/* V4.6 — 100vh is broken on mobile Safari (the address bar in/out
   makes the viewport jump). 100dvh (dynamic viewport height) tracks
   the visible area; the 100vh fallback exists for older browsers
   that don't support dvh. */
.couture-spatial-chapters .couture-chapter { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; justify-content: center; padding: 0; position: relative; }
.couture-spatial-chapters .couture-chapter::before { content: attr(data-ch); position: absolute; top: 36px; right: 36px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; color: var(--c-accent); }
.couture-spatial-chapters .couture-chapter + .couture-chapter { border-top: 1px solid var(--c-line); }

.couture-spatial-split { display: grid; grid-template-columns: 1fr 1fr; min-height: 100vh; min-height: 100dvh; }
.couture-spatial-split .split-left { padding: 60px var(--c-gutter); border-right: 1px solid var(--c-line); }
.couture-spatial-split .split-left .split-section + .split-section { margin-top: 96px; }
.couture-spatial-split .split-right { position: sticky; top: 0; height: 100vh; height: 100dvh; overflow: hidden; background: var(--c-paper-2); }
.couture-spatial-split .split-well { position: absolute; inset: 0; background-image: radial-gradient(circle at 30% 40%, var(--c-accent) 0%, transparent 40%), radial-gradient(circle at 70% 70%, var(--c-accent-2) 0%, transparent 45%); opacity: .4; }

.couture-spatial-stage { height: 100vh; height: 100dvh; overflow: hidden; }
.couture-spatial-stage .stage-track { display: flex; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.couture-spatial-stage .stage-panel { flex: 0 0 100vw; height: 100%; overflow-y: auto; scroll-snap-align: start; padding: 40px var(--c-gutter); border-right: 1px solid var(--c-line); }

.couture-spatial-canvas .canvas-wall { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: minmax(180px, auto); gap: 16px; padding: var(--c-gutter); }
.couture-spatial-canvas .canvas-tile { padding: 24px; border: 1px solid var(--c-line); background: var(--c-paper-2); overflow: hidden; position: relative; }
.couture-spatial-canvas .canvas-tile:nth-child(1) { grid-column: span 8; grid-row: span 2; }
.couture-spatial-canvas .canvas-tile:nth-child(2) { grid-column: span 4; grid-row: span 2; background: var(--c-ink); color: var(--c-paper); }
.couture-spatial-canvas .canvas-tile:nth-child(3) { grid-column: span 5; grid-row: span 1; transform: rotate(-1deg); }
.couture-spatial-canvas .canvas-tile:nth-child(4) { grid-column: span 7; grid-row: span 1; }
.couture-spatial-canvas .canvas-tile:nth-child(5) { grid-column: span 4; background: var(--c-accent-3); }
.couture-spatial-canvas .canvas-tile:nth-child(6) { grid-column: span 8; }
.couture-spatial-canvas .canvas-tile:nth-child(7) { grid-column: span 6; transform: rotate(.5deg); }
.couture-spatial-canvas .canvas-tile:nth-child(n+8) { grid-column: span 6; }

/* ============================================================
   PAGE ANATOMIES — headers & common frames
============================================================ */

.couture-page { padding: clamp(32px, 5vw, 80px) var(--c-gutter) clamp(80px, 12vw, 160px); max-width: 1280px; margin: 0 auto; }
.couture-shop-head, .couture-journal-head, .couture-arch-head { margin-bottom: clamp(36px, 5vw, 64px); }
.couture-shop-head .num, .couture-journal-head .num, .couture-arch-head .num { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); padding-top: 12px; border-top: 2px solid var(--c-accent); display: inline-block; margin-bottom: 16px; padding-right: 18px; }
.couture-shop-head h1, .couture-journal-head h1, .couture-arch-head h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(40px, 6vw, 96px); line-height: .95; letter-spacing: -.02em; margin: 0 0 18px; }
.couture-shop-head .lede, .couture-journal-head .lede, .couture-arch-head .lede { max-width: 56ch; color: var(--c-ink-soft); font-size: clamp(16px, 1.4vw, 20px); }

/* shop layout with facets */
.couture-shop-layout { display: grid; grid-template-columns: 240px 1fr; gap: clamp(24px, 3vw, 48px); }
.couture-shop-facets { font-family: var(--c-body); }
.couture-shop-facets section { padding-bottom: 24px; margin-bottom: 24px; border-bottom: 1px dashed var(--c-line); }
.couture-shop-facets h3 { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-accent); margin: 0 0 14px; font-weight: 500; }
.couture-shop-facets ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.couture-shop-facets a { color: var(--c-ink); text-decoration: none; font-size: 14px; }
.couture-shop-facets a:hover { color: var(--c-accent-2); }
.couture-shop-facets label { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--c-ink-soft); cursor: pointer; }
.couture-shop-facets select { width: 100%; padding: 10px 12px; border: 1px solid var(--c-line); font-family: var(--c-body); font-size: 14px; background: var(--c-paper); }
/* V4.63 — premium shop sidebar (operator R12 night auto-pilot).
   Stripe/Shopify-style filter rail with grouped sections, in-stock
   toggle, real WC GET-param filters, sort dropdown, apply/reset CTAs. */
.couture-shop-facets--v2 {
  background: var(--c-paper-2, color-mix(in oklab, var(--c-ink) 3%, var(--c-paper)));
  padding: 24px;
  border-radius: var(--c-card-radius, 6px);
  border: 1px solid var(--c-line);
  position: sticky;
  top: 100px;
  align-self: start;
}
.couture-shop-facets--v2 .facet-form {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.couture-shop-facets--v2 .facet-group {
  padding: 0 0 18px;
  margin: 0 0 18px;
  border-bottom: 1px solid var(--c-line);
}
.couture-shop-facets--v2 .facet-group:last-of-type {
  border-bottom: none;
}
.couture-shop-facets--v2 h3 {
  font-family: var(--c-mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--c-muted);
  margin: 0 0 12px;
  font-weight: 600;
}
.couture-shop-facets--v2 .facet-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.couture-shop-facets--v2 .facet-list a {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 6px 8px;
  margin: 0 -8px;
  border-radius: 4px;
  color: var(--c-ink);
  text-decoration: none;
  font-size: 14px;
  text-transform: capitalize;
  transition: background .12s;
}
.couture-shop-facets--v2 .facet-list a:hover {
  background: color-mix(in oklab, var(--c-ink) 6%, transparent);
}
.couture-shop-facets--v2 .facet-count {
  color: var(--c-muted);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.couture-shop-facets--v2 .facet-empty {
  color: var(--c-muted);
  font-size: 13px;
  font-style: italic;
}
.couture-shop-facets--v2 .facet-price label,
.couture-shop-facets--v2 .facet-toggle {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: var(--c-ink);
  cursor: pointer;
  padding: 4px 0;
}
.couture-shop-facets--v2 .facet-price input,
.couture-shop-facets--v2 .facet-toggle input {
  accent-color: var(--c-accent);
}
.couture-shop-facets--v2 .facet-sort {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--c-line);
  border-radius: 4px;
  font-family: var(--c-body);
  font-size: 13px;
  background: var(--c-paper);
  color: var(--c-ink);
  cursor: pointer;
}
.couture-shop-facets--v2 .facet-apply {
  display: block;
  width: 100%;
  margin-top: 4px;
  padding: 11px 16px;
  background: var(--c-ink);
  color: var(--c-paper);
  border: none;
  border-radius: 4px;
  font-family: var(--c-body);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
}
.couture-shop-facets--v2 .facet-apply:hover {
  background: var(--c-accent);
}
.couture-shop-facets--v2 .facet-reset {
  display: block;
  text-align: center;
  margin-top: 10px;
  padding: 6px 0;
  color: var(--c-muted);
  text-decoration: none;
  font-size: 12px;
  letter-spacing: .04em;
}
.couture-shop-facets--v2 .facet-reset:hover { color: var(--c-ink); }
@media (max-width: 768px) {
  .couture-shop-facets--v2 { position: static; }
}

.couture-cat-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: clamp(24px, 3vw, 40px); }
.couture-cat-chips a { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; padding: 8px 14px; border: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; }
.couture-cat-chips a:hover { background: var(--c-ink); color: var(--c-paper); }

.couture-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: clamp(20px, 2vw, 32px); }
.couture-cat-grid .cat-card a { text-decoration: none; color: inherit; }
.couture-cat-grid .cat-img { aspect-ratio: 4/5; overflow: hidden; background: var(--c-paper-2); border: 1px solid var(--c-line); margin-bottom: 14px; }
.couture-cat-grid .cat-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.8,.2,1);  }
.couture-cat-grid .cat-card:hover .cat-img img { transform: scale(1.04); }
.couture-cat-grid h3 { font-family: var(--c-display); font-size: 20px; font-style: italic; font-weight: 500; margin: 0 0 4px; }
.couture-cat-grid .origin { font-family: var(--c-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 6px; }
.couture-cat-grid .price { font-family: var(--c-display); font-weight: 500; font-size: 18px; }

/* gallery wall */
.couture-gallerywall { display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 120px; gap: 12px; }
.couture-gallerywall .gw-tile { overflow: hidden; position: relative; display: block; text-decoration: none; background: var(--c-paper-2); }
.couture-gallerywall .gw-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2,.8,.2,1); }
.couture-gallerywall .gw-tile:hover img { transform: scale(1.05); }
.couture-gallerywall .gw-square { grid-column: span 3; grid-row: span 2; }
.couture-gallerywall .gw-wide   { grid-column: span 6; grid-row: span 2; }
.couture-gallerywall .gw-tall   { grid-column: span 3; grid-row: span 3; }
.couture-gallerywall .gw-label { position: absolute; left: 14px; bottom: 14px; right: 14px; display: flex; justify-content: space-between; color: var(--c-paper); font-family: var(--c-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; text-shadow: 0 1px 6px rgba(0,0,0,.6); }
.couture-gallerywall .gw-label em { font-style: italic; font-family: var(--c-display); font-size: 16px; letter-spacing: 0; text-transform: none; }

/* product pages */
/* V4.67 — premium PDP polish (operator R12 Round 11).
   Breadcrumb above hero, dual CTA (add to cart + wishlist),
   trust microcopy below CTA, sale price strikethrough treatment. */
.couture-breadcrumb {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 32px;
  font-family: var(--c-body);
  font-size: 13px;
  color: var(--c-muted);
}
.couture-breadcrumb a {
  color: var(--c-muted) !important;
  text-decoration: none;
  transition: color .15s;
}
.couture-breadcrumb a:hover { color: var(--c-ink) !important; }
.couture-breadcrumb .bc-sep { color: var(--c-muted); opacity: .6; }
.couture-breadcrumb .bc-current {
  color: var(--c-ink);
  font-weight: 500;
  text-overflow: ellipsis;
  overflow: hidden;
  max-width: 320px;
  white-space: nowrap;
}
.couture-product-lede--v2 .pr-cta-row {
  display: flex;
  gap: 12px;
  align-items: stretch;
  margin-bottom: 28px;
}
.couture-product-lede--v2 .cta--primary {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px 28px !important;
  font-size: 14px !important;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  border-radius: 6px;
}
.couture-product-lede--v2 .cta--secondary {
  width: 56px;
  height: 56px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  background: var(--c-paper) !important;
  color: var(--c-ink) !important;
  border: 1px solid var(--c-line) !important;
  border-radius: 6px;
  font-size: 22px;
  cursor: pointer;
  transition: border-color .15s, color .15s;
}
.couture-product-lede--v2 .cta--secondary:hover {
  border-color: var(--c-accent) !important;
  color: var(--c-accent) !important;
}
.couture-product-lede--v2 .pr-trust {
  list-style: none;
  margin: 0;
  padding: 16px 0 0;
  border-top: 1px solid var(--c-line);
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  font-size: 12px;
  color: var(--c-muted);
}
.couture-product-lede--v2 .pr-trust li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.couture-product-lede--v2 .pr-trust li::before {
  content: "✓";
  color: var(--c-accent);
  font-weight: 700;
}
.couture-product-lede--v2 .price.price--on-sale {
  display: flex;
  gap: 12px;
  align-items: baseline;
}
.couture-product-lede--v2 .price-was {
  text-decoration: line-through;
  color: var(--c-muted);
  font-size: 18px;
  font-weight: 400;
}
.couture-product-lede--v2 .price-now {
  color: var(--c-accent);
  font-size: 32px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
/* V4.68 — WooCommerce single-product polish (operator R12 Round 12).
   Real product pages on craftelea + clean-family sites use WC's
   built-in single-product template, not our productTabs renderer.
   These rules style the WC markup so it matches the premium feel
   of the rest of the site instead of looking like default WC. */
body.single-product .product .summary {
  padding: 0 0 0 clamp(20px, 3vw, 40px);
}
body.single-product .product .product_title {
  font-family: var(--c-display);
  font-weight: 700;
  font-size: clamp(28px, 3.5vw, 44px);
  letter-spacing: -0.02em;
  line-height: 1.1;
  color: var(--c-ink);
  margin: 0 0 18px;
}
body.single-product .product .price,
body.single-product .product .summary .price {
  font-family: var(--c-display);
  font-weight: 600;
  font-size: clamp(22px, 2.4vw, 30px);
  color: var(--c-ink);
  margin: 0 0 22px;
  font-variant-numeric: tabular-nums;
}
body.single-product .product .price ins {
  text-decoration: none;
  color: var(--c-accent);
  font-weight: 700;
  margin-right: 12px;
}
body.single-product .product .price del {
  color: var(--c-muted);
  font-weight: 400;
  font-size: .8em;
  margin-right: 8px;
}
body.single-product .product .woocommerce-product-details__short-description {
  font-size: 16px;
  line-height: 1.6;
  color: var(--c-ink-soft, var(--c-ink));
  margin: 0 0 28px;
  max-width: 56ch;
}
body.single-product .product .quantity { margin: 0 12px 0 0; }
body.single-product .product .quantity input.qty {
  width: 64px;
  padding: 14px 10px;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  background: var(--c-paper);
  font-family: var(--c-body);
  font-size: 14px;
  text-align: center;
}
body.single-product .product form.cart {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin: 22px 0 32px;
}
body.single-product .product .single_add_to_cart_button,
body.single-product .product button.single_add_to_cart_button.button.alt {
  padding: 16px 32px !important;
  background: var(--c-ink) !important;
  color: var(--c-paper) !important;
  border: none !important;
  border-radius: 6px !important;
  font-family: var(--c-body) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  cursor: pointer !important;
  transition: background .2s, transform .15s !important;
  flex: 1;
  min-width: 200px;
}
body.single-product .product .single_add_to_cart_button:hover {
  background: var(--c-accent) !important;
  transform: translateY(-1px);
}
body.single-product .product .product_meta {
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
  padding: 18px 0;
  margin: 24px 0 0;
  font-size: 13px;
  color: var(--c-muted);
}
body.single-product .product .product_meta > span {
  display: block;
  padding: 4px 0;
}
body.single-product .product .product_meta a {
  color: var(--c-ink) !important;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .15s;
}
body.single-product .product .product_meta a:hover {
  border-bottom-color: var(--c-accent);
}
body.single-product .product .woocommerce-tabs {
  margin: clamp(48px, 6vw, 80px) 0 0;
  padding-top: clamp(32px, 4vw, 56px);
  border-top: 1px solid var(--c-line);
}
body.single-product .product .woocommerce-tabs .tabs {
  display: flex;
  gap: 0;
  list-style: none;
  margin: 0 0 32px;
  padding: 0;
  border-bottom: 1px solid var(--c-line);
}
body.single-product .product .woocommerce-tabs .tabs li {
  margin: 0;
}
body.single-product .product .woocommerce-tabs .tabs li a {
  display: inline-block;
  padding: 12px 22px;
  font-family: var(--c-body);
  font-size: 14px;
  font-weight: 500;
  color: var(--c-muted) !important;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color .15s, border-color .15s;
}
body.single-product .product .woocommerce-tabs .tabs li.active a,
body.single-product .product .woocommerce-tabs .tabs li a:hover {
  color: var(--c-ink) !important;
  border-bottom-color: var(--c-accent);
}
body.single-product .related.products,
body.single-product .upsells.products {
  margin: clamp(64px, 8vw, 120px) 0 0;
  padding-top: clamp(40px, 5vw, 72px);
  border-top: 1px solid var(--c-line);
}
body.single-product .related.products > h2,
body.single-product .upsells.products > h2 {
  font-family: var(--c-display);
  font-weight: 600;
  font-size: clamp(24px, 2.5vw, 32px);
  margin: 0 0 32px;
  color: var(--c-ink);
}
body.single-product .related.products ul.products,
body.single-product .upsells.products ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 32px 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}
body.single-product .related.products .product .woocommerce-loop-product__title,
body.single-product .upsells.products .product .woocommerce-loop-product__title {
  font-size: 15px !important;
  font-weight: 500 !important;
  color: var(--c-ink) !important;
  margin: 12px 0 4px;
}

.couture-product-lede { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(32px, 4vw, 64px); margin-bottom: clamp(48px, 6vw, 96px); align-items: start; }
.couture-product-lede .pr-img { aspect-ratio: 4/5; overflow: hidden; background: var(--c-paper-2); border: 1px solid var(--c-line); }
.couture-product-lede .pr-img img { width: 100%; height: 100%; object-fit: cover; }
.couture-product-lede .eyebrow { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 16px; }
.couture-product-lede h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(36px, 5vw, 80px); line-height: .95; margin: 0 0 18px; letter-spacing: -.02em; }
.couture-product-lede .short { font-size: clamp(15px, 1.3vw, 18px); color: var(--c-ink-soft); max-width: 48ch; margin-bottom: 24px; }
.couture-product-lede .price { font-family: var(--c-display); font-weight: 500; font-size: 28px; margin-bottom: 24px; }
.couture-product-lede .cta, .couture-product-editorial .cta, .couture-product-tech .cta, .couture-product-conv .cta, .couture-product-lookhero .cta, .couture-appointment-cta .cta, .couture-repair .cta, .couture-press-kit .cta, .couture-product-atelier .cta { display: inline-block; padding: 14px 22px; background: var(--c-ink); color: var(--c-paper); border: none; font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; text-decoration: none; }
.couture-product-lede .cta:hover { background: var(--c-accent); }

.couture-product-tabs { border-top: 1px solid var(--c-line); padding-top: 28px; margin-top: 64px; }
.couture-product-tabs nav { display: flex; gap: 4px; border-bottom: 1px solid var(--c-line); margin-bottom: 28px; }
.couture-product-tabs [role="tab"] { background: transparent; border: none; padding: 14px 18px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; color: var(--c-ink-soft); border-bottom: 2px solid transparent; }
.couture-product-tabs [role="tab"][aria-selected="true"] { color: var(--c-accent); border-bottom-color: var(--c-accent); }
.couture-product-tabs [role="tabpanel"] { display: none; }
.couture-product-tabs [role="tabpanel"].active { display: block; }
.couture-product-tabs [role="tabpanel"] { padding: 10px 0 30px; font-size: 16px; color: var(--c-ink-soft); line-height: 1.7; }

.couture-spec { padding: 28px 0; }
.couture-spec h3 { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-accent); margin: 0 0 18px; font-weight: 500; }
.couture-spec dl { display: grid; grid-template-columns: 180px 1fr; gap: 6px 20px; }
.couture-spec.as-grid dl { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.couture-spec dl > div { display: contents; }
.couture-spec dt { font-family: var(--c-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); padding: 8px 0; border-top: 1px dashed var(--c-line); }
.couture-spec dd { margin: 0; padding: 8px 0; border-top: 1px dashed var(--c-line); font-family: var(--c-body); font-size: 14px; }
.couture-spec.dense dt, .couture-spec.dense dd { padding: 4px 0; font-size: 12px; }

/* V4.12 — In the box + Care sub-sections inside the Specs panel.
   Renders inside `.couture-spec` after the dl. Visually distinct from
   the spec rows so the operator can tell them apart at a glance. */
.couture-spec-inbox, .couture-spec-care { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--c-line); }
.couture-spec-inbox h4, .couture-spec-care h4 { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); margin: 0 0 12px; font-weight: 500; }
.couture-spec-inbox ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.couture-spec-inbox li { font-family: var(--c-body); font-size: 14px; padding-left: 22px; position: relative; }
.couture-spec-inbox li::before { content: '·'; position: absolute; left: 8px; top: -4px; font-size: 22px; color: var(--c-accent); line-height: 1; }
.couture-spec-care p { font-family: var(--c-body); font-size: 14px; line-height: 1.65; margin: 0; color: var(--c-ink); }

.couture-related { margin-top: 96px; padding-top: 48px; border-top: 1px solid var(--c-line); }
.couture-related h2 { font-family: var(--c-display); font-style: italic; font-weight: 300; font-size: clamp(28px, 3vw, 42px); margin: 0 0 28px; }
.couture-related .rel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
.couture-related .rel-card img { aspect-ratio: 4/5; width: 100%; object-fit: cover; display: block; background: var(--c-paper-2); }
.couture-related h4 { font-family: var(--c-display); font-weight: 500; font-style: italic; font-size: 18px; margin: 14px 0 4px; }
.couture-related h4 a { color: inherit; text-decoration: none; }
.couture-related .price { font-family: var(--c-display); font-weight: 500; font-size: 16px; }

/* product variants */
.couture-product-editorial-hero { text-align: center; margin-bottom: 60px; }
.couture-product-editorial-hero h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(40px, 7vw, 120px); line-height: .95; letter-spacing: -.02em; margin: 18px 0; }
.couture-product-editorial-hero .lede { max-width: 48ch; margin: 0 auto; font-size: clamp(16px, 1.4vw, 20px); color: var(--c-ink-soft); }
.couture-product-big-image { margin: 60px 0; aspect-ratio: 16/9; overflow: hidden; border: 1px solid var(--c-line); }
.couture-product-big-image img { width: 100%; height: 100%; object-fit: cover; }
.couture-product-longread { max-width: 64ch; margin: 0 auto 80px; font-size: 17px; line-height: 1.7; color: var(--c-ink-soft); }
.couture-product-longread p { margin: 0 0 1.1em; }
.couture-product-longread p:first-child::first-letter { font-family: var(--c-display); font-size: 5em; line-height: .85; float: left; margin: 8px 12px 0 -4px; color: var(--c-accent-2); }
.couture-product-buy { text-align: center; padding: 40px 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); margin-bottom: 60px; }
.couture-product-buy .price { font-family: var(--c-display); font-weight: 300; font-size: 56px; margin-bottom: 20px; }

.couture-product-atelier { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.couture-product-atelier figure { margin: 0; aspect-ratio: 4/5; overflow: hidden; background: var(--c-paper-2); }
.couture-product-atelier figure img { width: 100%; height: 100%; object-fit: cover; }
.couture-product-atelier .eyebrow { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 18px; }
.couture-product-atelier h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(40px, 5vw, 72px); line-height: 1; margin: 0 0 18px; letter-spacing: -.02em; }
.couture-product-atelier .atelier-spec { display: grid; grid-template-columns: 140px 1fr; gap: 8px 16px; margin: 32px 0; font-family: var(--c-mono); font-size: 12px; }
.couture-product-atelier dt { letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); padding: 10px 0; border-top: 1px dashed var(--c-line); }
.couture-product-atelier dd { padding: 10px 0; border-top: 1px dashed var(--c-line); margin: 0; font-family: var(--c-body); font-size: 14px; letter-spacing: 0; text-transform: none; color: var(--c-ink); }

.couture-product-tech { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-bottom: 60px; }
.couture-product-tech figure { margin: 0; aspect-ratio: 1/1; overflow: hidden; background: var(--c-ink); display: grid; place-items: center; }
.couture-product-tech figure img { width: 100%; height: 100%; object-fit: cover; }
.couture-product-tech h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(36px, 5vw, 64px); line-height: 1; margin: 18px 0; }
.couture-product-tech .price { font-family: var(--c-display); font-weight: 500; font-size: 32px; margin: 24px 0; }
.couture-product-firmware { padding: 32px 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); margin-bottom: 60px; }
.couture-product-firmware h2 { font-family: var(--c-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-accent); margin: 0 0 20px; font-weight: 500; }
.couture-product-firmware .fw-row { display: grid; grid-template-columns: 80px 1fr; gap: 16px; padding: 14px 0; border-bottom: 1px dashed var(--c-line); font-family: var(--c-mono); font-size: 12px; line-height: 1.5; }

.couture-product-conv { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; margin-bottom: 60px; align-items: center; }
.couture-product-conv figure { margin: 0; aspect-ratio: 4/5; overflow: hidden; background: var(--c-paper-2); border-radius: var(--c-card-radius); }
.couture-product-conv figure img { width: 100%; height: 100%; object-fit: cover; }
.couture-product-conv h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(36px, 5vw, 64px); margin: 0 0 24px; letter-spacing: -.02em; }
.couture-product-qa dl { display: flex; flex-direction: column; gap: 28px; max-width: 72ch; }
.couture-product-qa dt { font-family: var(--c-display); font-style: italic; font-size: 22px; margin-bottom: 8px; }
.couture-product-qa dd { margin: 0; font-size: 16px; line-height: 1.65; color: var(--c-ink-soft); padding-left: 28px; border-left: 2px solid var(--c-accent); }

.couture-product-lookhero { min-height: 80vh; background-size: cover; background-position: center; position: relative; padding: 60px var(--c-gutter); color: var(--c-paper); display: flex; align-items: flex-end; border-radius: var(--c-card-radius); overflow: hidden; }
.couture-product-lookhero .lookhero-meta { max-width: 48ch; }
.couture-product-lookhero .eyebrow { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 20px; opacity: .9; }
.couture-product-lookhero h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(48px, 8vw, 120px); line-height: .95; margin: 0 0 24px; text-shadow: 0 2px 20px rgba(0,0,0,.4); }
.couture-product-lookhero .pair { display: flex; gap: 24px; align-items: center; }
.couture-product-lookhero .price { font-family: var(--c-display); font-weight: 500; font-size: 28px; }

/* journal */
/* V4.70 — journal/blog index polish (operator R12 Round 14).
   Was: 280px-min cards with thin italic headlines + tiny accent num.
   Now: 320px-min cards with hover-lift, rounded image, bold-not-italic
   title (matches clean-business typography), date+author byline at
   bottom in mono uppercase, accent on hover. */
.couture-journal-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: clamp(28px, 3vw, 48px); }
.couture-journal-grid .jr-card {
  display: flex;
  flex-direction: column;
  transition: transform .25s var(--c-premium-ease, cubic-bezier(.2,.8,.2,1));
}
.couture-journal-grid .jr-card:hover { transform: translateY(-4px); }
.couture-journal-grid .jr-card a { text-decoration: none; color: inherit; }
.couture-journal-grid .jr-card img {
  aspect-ratio: 4/3;
  width: 100%;
  object-fit: cover;
  display: block;
  background: var(--c-paper-2);
  border-radius: var(--c-card-radius, 6px);
  transition: filter .25s;
}
.couture-journal-grid .jr-card:hover img { filter: brightness(.96); }
.couture-journal-grid .jr-card .jr-meta {
  padding: 18px 4px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}
.couture-journal-grid .jr-card .num {
  font-family: var(--c-mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--c-muted);
  margin: 0;
  font-weight: 600;
}
.couture-journal-grid .jr-card h2 {
  font-family: var(--c-display);
  font-weight: 600;
  font-size: clamp(20px, 1.8vw, 24px);
  line-height: 1.25;
  letter-spacing: -0.015em;
  margin: 0;
  font-style: normal;
}
.couture-journal-grid .jr-card h2 a { color: var(--c-ink) !important; text-decoration: none; transition: color .15s; }
.couture-journal-grid .jr-card h2 a:hover { color: var(--c-accent) !important; }
.couture-journal-grid .jr-card p {
  color: var(--c-ink-soft, var(--c-ink));
  font-size: 14px;
  line-height: 1.55;
  margin: 0 0 6px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.couture-journal-grid .jr-card .byline {
  font-family: var(--c-mono);
  font-size: 11px;
  letter-spacing: .08em;
  color: var(--c-muted);
  margin-top: auto;
  padding-top: 8px;
}
.couture-journal-grid .byline { font-family: var(--c-mono); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); margin-top: 10px; }

.couture-issues-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px; }
.couture-issues-grid .iss-cover { text-decoration: none; color: inherit; display: block; }
.couture-issues-grid .iss-cover img { aspect-ratio: 3/4; width: 100%; object-fit: cover; background: var(--c-paper-2); box-shadow: var(--c-card-shadow); }
.couture-issues-grid .iss-meta { display: flex; flex-direction: column; margin-top: 16px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .1em; }
.couture-issues-grid .iss-meta strong { font-size: 11px; color: var(--c-accent); margin-bottom: 6px; }
.couture-issues-grid .iss-meta span:not(.date) { font-family: var(--c-display); font-style: italic; font-size: 18px; letter-spacing: 0; color: var(--c-ink); text-transform: none; font-weight: 400; }
.couture-issues-grid .iss-meta .date { text-transform: uppercase; color: var(--c-muted); margin-top: 4px; }

/* articles */
.couture-article-essay { max-width: 680px; margin: 0 auto; }
.couture-article-essay header { text-align: center; margin-bottom: 48px; padding-bottom: 40px; border-bottom: 1px solid var(--c-line); }
.couture-article-essay .eyebrow { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 18px; display: block; }
.couture-article-essay h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(36px, 5vw, 72px); line-height: 1.05; margin: 0 0 20px; letter-spacing: -.02em; }
.couture-article-essay .byline { font-family: var(--c-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); }
.couture-article-essay figure.cover { margin: 0 calc(-1 * var(--c-gutter)) 48px; }
.couture-article-essay figure.cover img { width: 100%; display: block; }
.couture-article-essay .body p { font-size: 19px; line-height: 1.7; margin: 0 0 1.5em; font-family: var(--c-body); }
.couture-article-essay .body p:first-child::first-letter { font-family: var(--c-display); font-size: 5em; line-height: .85; float: left; margin: 8px 14px 0 -4px; color: var(--c-accent-2); }
.couture-article-essay .callout { margin: 40px 0; padding: 32px; border-left: 3px solid var(--c-accent); background: var(--c-paper-2); font-family: var(--c-display); font-style: italic; font-size: 24px; line-height: 1.3; }
.couture-article-essay .end-rule { text-align: center; font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-top: 48px; padding-top: 32px; border-top: 1px solid var(--c-line); }

.couture-article-field { max-width: 900px; margin: 0 auto; }
.couture-article-field header { padding: 0 0 40px; border-bottom: 2px solid var(--c-ink); margin-bottom: 48px; }
.couture-article-field header h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(36px, 5vw, 72px); margin: 14px 0; line-height: 1; }
.couture-article-field .stop { display: grid; grid-template-columns: 48px 1fr; gap: 24px; margin-bottom: 72px; position: relative; }
.couture-article-field .stop-n { font-family: var(--c-mono); font-size: 12px; letter-spacing: .1em; color: var(--c-accent); padding-top: 8px; border-top: 2px solid var(--c-accent); height: 40px; }
.couture-article-field .stop figure { margin: 0 0 20px; }
.couture-article-field .stop figure img { width: 100%; display: block; aspect-ratio: 16/10; object-fit: cover; }
.couture-article-field .stop figcaption { font-family: var(--c-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--c-muted); margin-top: 8px; }
.couture-article-field .stop h2 { font-family: var(--c-display); font-style: italic; font-weight: 400; font-size: 32px; margin: 0 0 14px; }
.couture-article-field .stop p { font-size: 17px; line-height: 1.7; color: var(--c-ink-soft); }

.couture-article-release header { border-bottom: 2px solid var(--c-ink); padding-bottom: 28px; margin-bottom: 40px; }
.couture-article-release header h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(36px, 5vw, 64px); margin: 10px 0; }
.couture-article-release .body { font-family: var(--c-body); font-size: 16px; line-height: 1.7; color: var(--c-ink-soft); margin-bottom: 40px; max-width: 680px; }

.couture-article-manifesto { max-width: 920px; margin: 0 auto; text-align: left; padding: 80px 0; }
.couture-article-manifesto header { margin-bottom: 60px; }
.couture-article-manifesto header h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(48px, 8vw, 120px); line-height: .95; letter-spacing: -.02em; margin: 10px 0 0; }
.couture-article-manifesto .manifest-lines { list-style: none; padding: 0; margin: 0; counter-reset: ml; }
.couture-article-manifesto .manifest-lines li { counter-increment: ml; font-family: var(--c-display); font-weight: 300; font-size: clamp(28px, 4vw, 56px); line-height: 1.15; padding: 24px 0 24px 80px; border-top: 1px solid var(--c-line); position: relative; font-style: italic; }
.couture-article-manifesto .manifest-lines li::before { content: counter(ml, decimal-leading-zero); position: absolute; left: 0; top: 28px; font-family: var(--c-mono); font-style: normal; font-size: 12px; letter-spacing: .1em; color: var(--c-accent); }
.couture-article-manifesto .sign { margin-top: 48px; font-family: var(--c-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); }

.couture-article-catalog { max-width: 1080px; margin: 0 auto; }
.couture-article-catalog .cat-head { padding-bottom: 32px; border-bottom: 2px solid var(--c-ink); margin-bottom: 40px; }
.couture-article-catalog .cat-head h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(36px, 5vw, 72px); margin: 12px 0; line-height: 1; }
.couture-article-catalog .body.two-col { columns: 2; column-gap: 48px; column-rule: 1px dashed var(--c-line); font-size: 16px; line-height: 1.7; color: var(--c-ink-soft); }
.couture-article-catalog .body.two-col p { margin: 0 0 1em; break-inside: avoid; }
@media (max-width: 800px) { .couture-article-catalog .body.two-col { columns: 1; } }

/* about pages */
.couture-team { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px; padding: var(--c-rhythm) var(--c-gutter); }
.couture-team figure { margin: 0; }
.couture-team figure img { width: 100%; aspect-ratio: 4/5; object-fit: cover; background: var(--c-paper-2); }
.couture-team figcaption { margin-top: 14px; display: flex; flex-direction: column; gap: 4px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.couture-team figcaption strong { font-family: var(--c-display); font-size: 20px; font-style: italic; letter-spacing: 0; text-transform: none; }

.couture-colophon { max-width: 720px; }
.couture-colophon .colophon-list { display: flex; flex-direction: column; gap: 0; border-top: 1px solid var(--c-line); margin-top: 32px; }
.couture-colophon .colophon-list > div { display: grid; grid-template-columns: 200px 1fr; gap: 24px; padding: 16px 0; border-bottom: 1px solid var(--c-line); font-family: var(--c-body); }
.couture-colophon dt { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.couture-colophon dd { margin: 0; font-size: 15px; color: var(--c-ink); }

/* contact */
.couture-appointment { max-width: 860px; }
.couture-appointment h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(40px, 6vw, 96px); line-height: .95; margin: 12px 0 18px; letter-spacing: -.02em; }
.couture-appointment .appt-form { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 24px; margin: 40px 0; }
.couture-appointment .appt-form label { display: flex; flex-direction: column; gap: 6px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.couture-appointment .appt-form label.full { grid-column: span 2; }
.couture-appointment .appt-form input, .couture-appointment .appt-form textarea { padding: 12px 14px; border: 1px solid var(--c-line); background: var(--c-paper); font-family: var(--c-body); font-size: 15px; color: var(--c-ink); }
.couture-appointment .appt-form button { grid-column: span 2; padding: 16px; font-family: var(--c-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; background: var(--c-ink); color: var(--c-paper); border: none; cursor: pointer; }
.couture-appointment .appt-info { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 32px; padding: 28px 0; border-top: 1px solid var(--c-line); }
.couture-appointment .appt-info strong { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); display: block; margin-bottom: 6px; }

/* stockists */
.couture-stockists { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 48px; }
.couture-stockists .city h2 { font-family: var(--c-display); font-weight: 300; font-size: 28px; margin: 0 0 20px; border-bottom: 2px solid var(--c-ink); padding-bottom: 10px; letter-spacing: -.01em; }
.couture-stockists .city ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.couture-stockists .city li { padding: 12px 0; border-bottom: 1px dashed var(--c-line); display: flex; flex-direction: column; gap: 4px; }
.couture-stockists .city strong { font-family: var(--c-display); font-size: 18px; font-style: italic; font-weight: 400; }
.couture-stockists .city span { font-family: var(--c-mono); font-size: 11px; letter-spacing: .1em; color: var(--c-muted); }

/* firmware / repair */
.couture-firmware-list article { padding: 24px 0; border-bottom: 1px solid var(--c-line); }
.couture-firmware-list header { display: flex; justify-content: space-between; font-family: var(--c-mono); font-size: 12px; letter-spacing: .1em; margin-bottom: 14px; }
.couture-firmware-list header strong { color: var(--c-accent); font-size: 14px; }
.couture-firmware-list ul { list-style: disc; padding-left: 24px; font-family: var(--c-body); color: var(--c-ink-soft); line-height: 1.7; }
.couture-repair { max-width: 720px; }
.couture-repair h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(36px, 5vw, 72px); line-height: 1; margin: 12px 0 18px; }

/* press */
.couture-press-kit { text-align: center; margin-top: 48px; }

/* home-section: categories strip */
.couture-cat-strip { padding: var(--c-rhythm) var(--c-gutter); }
.couture-cat-strip h2 { font-family: var(--c-display); font-weight: 300; font-size: clamp(28px, 3vw, 48px); margin: 0 0 24px; }
.couture-cat-strip .strip-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.couture-cat-strip .strip-tile { position: relative; aspect-ratio: 1/1; overflow: hidden; background: var(--c-paper-2); display: block; text-decoration: none; color: var(--c-paper); }
.couture-cat-strip .strip-tile img { width: 100%; height: 100%; object-fit: cover; }
.couture-cat-strip .strip-tile span { position: absolute; bottom: 14px; left: 14px; font-family: var(--c-display); font-style: italic; font-size: 22px; text-shadow: 0 1px 8px rgba(0,0,0,.6); }

/* V4.18.3 — categories_strip monogram tile (operator-flagged on
   reverentis.com: categories had no images, so the strip rendered as
   tiny text labels with no backing visual). When neither the
   category nor any matching product has an image, render a solid
   accent-colored tile with the category's first letter as a stylized
   monogram. Looks intentional rather than broken. */
.couture-cat-strip .strip-tile--monogram {
  background: var(--c-accent);
  color: var(--c-paper);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center; text-align: center;
  padding: 18px;
}
.couture-cat-strip .strip-tile--monogram .strip-monogram {
  position: static;
  display: block;
  font-family: var(--c-display);
  font-weight: 300;
  font-size: clamp(64px, 9vw, 128px);
  line-height: 1;
  font-style: italic;
  text-shadow: none;
  margin-bottom: 8px;
  color: var(--c-paper);
}
.couture-cat-strip .strip-tile--monogram .strip-label {
  position: static;
  font-family: var(--c-mono);
  font-size: 11px;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-style: normal;
  text-shadow: none;
  color: var(--c-paper);
  bottom: auto; left: auto;
}
/* Vary monogram tile background per cell so the strip looks like a
   composed gradient, not 6 identical colored squares. */
.couture-cat-strip .strip-tile--monogram:nth-child(2n)   { background: var(--c-ink); }
.couture-cat-strip .strip-tile--monogram:nth-child(3n)   { background: var(--c-accent-2); }
.couture-cat-strip .strip-tile--monogram:nth-child(5n+1) { background: var(--c-accent-3); }

/* home-section: journal teaser */
.couture-journal-teaser { padding: var(--c-rhythm) var(--c-gutter); }
.couture-journal-teaser h2 { font-family: var(--c-display); font-weight: 300; font-size: clamp(32px, 4vw, 56px); margin: 0 0 32px; }
.couture-journal-teaser .teaser-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 28px; }
.couture-journal-teaser .teaser a { text-decoration: none; color: inherit; display: block; }
.couture-journal-teaser .teaser img { aspect-ratio: 4/3; width: 100%; object-fit: cover; background: var(--c-paper-2); }
.couture-journal-teaser .teaser h3 { font-family: var(--c-display); font-style: italic; font-weight: 400; font-size: 22px; margin: 14px 0 6px; }

/* home-section: releases */
.couture-releases-teaser { padding: var(--c-rhythm) var(--c-gutter); }
.couture-releases-teaser .release-list { list-style: none; margin: 24px 0 0; padding: 0; border-top: 2px solid var(--c-ink); }
.couture-releases-teaser .release-list li a { display: grid; grid-template-columns: 80px 1fr auto; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; font-family: var(--c-mono); font-size: 13px; letter-spacing: .08em; }
.couture-releases-teaser .release-list strong { color: var(--c-accent); }
.couture-releases-teaser .release-list span { font-family: var(--c-display); font-style: italic; font-size: 18px; letter-spacing: 0; }

/* home-section: field notes */
.couture-field-strip { padding: var(--c-rhythm) var(--c-gutter); }
.couture-field-strip h2 { font-family: var(--c-display); font-weight: 300; font-size: clamp(32px, 4vw, 56px); margin: 0 0 24px; }
.couture-field-strip .field-rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.couture-field-strip .field-tile { position: relative; aspect-ratio: 3/4; display: block; text-decoration: none; color: var(--c-paper); overflow: hidden; }
.couture-field-strip .field-tile img { width: 100%; height: 100%; object-fit: cover; }
.couture-field-strip .field-caption { position: absolute; left: 14px; right: 14px; bottom: 14px; font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; text-shadow: 0 1px 8px rgba(0,0,0,.8); }
.couture-field-strip .field-caption strong { color: var(--c-accent-3); display: block; margin-bottom: 4px; }
.couture-field-strip .field-caption span { font-family: var(--c-display); font-style: italic; font-size: 18px; letter-spacing: 0; text-transform: none; }

/* home-section: map callout */
.couture-map-callout { padding: var(--c-rhythm) var(--c-gutter); display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.couture-map-callout .mc-text h2 { font-family: var(--c-display); font-weight: 300; font-size: clamp(36px, 5vw, 72px); margin: 0 0 16px; line-height: 1; }
.couture-map-callout .mc-map { aspect-ratio: 4/3; background: linear-gradient(135deg, var(--c-paper-2), var(--c-ink)); background-image: radial-gradient(circle at 40% 50%, var(--c-accent) 2px, transparent 3px), radial-gradient(circle at 20% 30%, var(--c-accent-2) 2px, transparent 3px), radial-gradient(circle at 70% 70%, var(--c-accent-3) 2px, transparent 3px), linear-gradient(135deg, var(--c-paper-2), var(--c-ink)); background-size: 100% 100%; border: 1px solid var(--c-line); }

/* home-section: appointment CTA */
.couture-appointment-cta { padding: var(--c-rhythm) var(--c-gutter); background: var(--c-ink); color: var(--c-paper); text-align: center; }
.couture-appointment-cta h2 { font-family: var(--c-display); font-weight: 300; font-size: clamp(36px, 5vw, 80px); margin: 0 0 20px; line-height: 1; color: var(--c-paper); }
.couture-appointment-cta p { max-width: 50ch; margin: 0 auto 32px; font-size: 18px; opacity: .9; }
.couture-appointment-cta .cta { background: var(--c-accent); color: var(--c-paper); }

/* home-section: signatories */
.couture-signatories { padding: var(--c-rhythm) var(--c-gutter); }
.couture-signatories h2 { font-family: var(--c-display); font-weight: 300; font-size: clamp(32px, 4vw, 56px); margin: 0 0 32px; }
.couture-signatories ul { list-style: none; margin: 0; padding: 0; columns: 3; column-gap: 32px; }
.couture-signatories li { break-inside: avoid; padding: 14px 0; border-top: 1px dashed var(--c-line); display: flex; justify-content: space-between; font-family: var(--c-mono); font-size: 12px; letter-spacing: .08em; }
.couture-signatories li strong { font-family: var(--c-display); font-style: italic; font-weight: 400; font-size: 18px; letter-spacing: 0; text-transform: none; }

/* home-section: scrapbook */
.couture-scrapbook { padding: var(--c-rhythm) var(--c-gutter); position: relative; }
.couture-scrapbook .sb-wall { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; margin-top: 24px; }
.couture-scrapbook .sb-card { padding: 18px; background: var(--c-paper); border: 1px solid var(--c-line); box-shadow: var(--c-card-shadow); }
.couture-scrapbook .sb-card img { width: 100%; aspect-ratio: 4/3; object-fit: cover; margin-bottom: 12px; }
.couture-scrapbook .sb-card p { font-family: var(--c-body); font-size: 14px; color: var(--c-ink-soft); margin: 0; line-height: 1.5; }
.couture-scrapbook .sb-0 { transform: rotate(-1.5deg); }
.couture-scrapbook .sb-1 { transform: rotate(.8deg) translateY(10px); }
.couture-scrapbook .sb-2 { transform: rotate(-.5deg) translateY(20px); }
.couture-scrapbook .sb-3 { transform: rotate(1.2deg); }

/* home-section: lookbook grid */
.couture-lookbook-grid { padding: var(--c-rhythm) var(--c-gutter); }
.couture-lookbook-grid .lb-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; margin-top: 24px; }
.couture-lookbook-grid .lb-tile { display: block; position: relative; aspect-ratio: 3/4; text-decoration: none; color: var(--c-paper); overflow: hidden; }
.couture-lookbook-grid .lb-tile img { width: 100%; height: 100%; object-fit: cover; }
.couture-lookbook-grid .lb-tile span { position: absolute; left: 14px; bottom: 14px; font-family: var(--c-display); font-style: italic; font-size: 22px; text-shadow: 0 1px 8px rgba(0,0,0,.6); }

/* ensure older responsive breakpoint still applies to new layouts */
@media (max-width: 900px) {
  .couture-shop-layout { grid-template-columns: 1fr; }
  .couture-product-lede, .couture-product-atelier, .couture-product-tech, .couture-product-conv, .couture-map-callout { grid-template-columns: 1fr; }
  .couture-appointment .appt-form { grid-template-columns: 1fr; }
  .couture-appointment .appt-form label.full, .couture-appointment .appt-form button { grid-column: span 1; }
  .couture-signatories ul { columns: 2; }
  .couture-spatial-split { grid-template-columns: 1fr; }
  .couture-spatial-split .split-right { display: none; }
  body:has(.couture-nav-siderail) .couture-spatial,
  body:has(.couture-nav-siderail) .couture-footer { margin-left: 0; }
  .couture-nav-siderail { position: relative; width: 100%; height: auto; border-right: none; border-bottom: 1px solid var(--c-line); flex-direction: row; padding: 16px var(--c-gutter); gap: 24px; align-items: center; }
  .couture-nav-siderail .rail-menu { flex-direction: row; flex-wrap: wrap; }
  body:has(.couture-nav-split) .couture-spatial { padding-left: 0; }
  .couture-nav-split { position: relative; top: 0; left: 0; max-width: 100%; }
  .couture-gallerywall { grid-template-columns: repeat(6, 1fr); }
  .couture-gallerywall .gw-wide { grid-column: span 6; }
  .couture-gallerywall .gw-square, .couture-gallerywall .gw-tall { grid-column: span 3; }
}

@media (max-width: 900px) {
  .couture-hero .hero-sub, .couture-story, .couture-ritual, .couture-newsletter .wrap, .couture-footer-grid { grid-template-columns: 1fr; }
  .couture-products { grid-template-columns: repeat(2, 1fr); }
  .couture-products .prod { grid-column: span 1 !important; transform: none !important; }
  .couture-ritual .sticky { position: relative; top: 0; }
  .couture-pullquote::before { font-size: 280px; top: -30px; }
  .couture-story-magazine .mag-grid { grid-template-columns: 1fr; }
  .couture-lookbook .lookbook-stack { grid-template-columns: 1fr 1fr; }
  .couture-lookbook .lb-big, .couture-lookbook .lb-small { grid-column: span 1; margin-top: 0; }
  .couture-lookbook .lb { transform: none !important; }
  .couture-hero--vertical { grid-template-columns: 1fr; }
  .couture-hero--vertical .vert-head { writing-mode: horizontal-tb; transform: none; }
  .couture-process-diagram .diagram-ring { aspect-ratio: auto; display: block; }
  .couture-process-diagram .ring-node { position: relative; width: auto; transform: none !important; top: auto !important; right: auto !important; bottom: auto !important; left: auto !important; margin-bottom: 16px; }
  .couture-process-diagram .ring-hub { position: relative; inset: auto; margin: 32px 0; }
  .couture-checklist .spec-list { grid-template-columns: 1fr; }
  .couture-checklist .spec-list li { border-right: none; }
  .couture-stats .stat { border-right: none; border-bottom: 1px solid var(--c-line); }
}

/* ---------------------------------------------------------------------------
 * Brand logo placement (rendered by nav.js / brandBlock).
 *
 * The renderer emits <img class="brand-logo brand-logo--<variant>" src="..."/>
 * inside the per-archetype brand wrapper (.brand, .rail-brand, .dot-brand,
 * .drawer-brand, .toc-brand, .split-brand, .grand-mark, .atl-mark, .stamp-mark
 * etc.) in parts/header.html and parts/footer.html. The publisher swaps the
 * src for the WP-uploaded media URL after the theme is on disk; if no logo
 * was generated, the image is hidden with the placeholder src.
 * ----------------------------------------------------------------------- */
.couture-nav-topbar .brand,
.couture-nav-siderail .rail-brand,
.couture-nav-dotindex .dot-brand,
.couture-nav-drawer .drawer-brand,
.couture-nav-toc .toc-brand,
.couture-nav-split .split-brand { display: flex; align-items: center; gap: 12px; }

a.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; line-height: 1; }
a.brand:hover { opacity: .85; }

/* Logo defaults raised in V4.3 (handoff item N2) — wordmark logos at 44px
   were unreadable, especially on AI-generated assets where the wordmark
   IS the brand. Per-archetype scaling is applied INLINE on the <img> by
   nav.js (multiplies these defaults). */
img.brand-logo { display: block; height: 64px; width: auto; max-width: 320px; object-fit: contain; }
img.brand-logo--standard { height: 64px; max-width: 320px; }
img.brand-logo--lockup   { height: 48px; max-width: 220px; }
img.brand-logo--mark     { height: 44px; max-width: 96px; }
img.brand-logo--stamp    { height: 64px; max-width: 280px; margin-bottom: 18px; }
img.brand-logo--large    { height: 88px; max-width: 360px; }

/* V4.18 — operator flagged "no logo" on chedralis live. The renderer
 * now ALWAYS emits both <img class="brand-logo" ...> AND
 * <span class="brand-word"> (the wordmark text). Default state: image
 * is visible AND wordmark is HIDDEN inside the topbar. The img tag's
 * onload handler adds `.brand--has-logo` to the parent <a>; the
 * onerror handler removes it. So:
 *
 *   - Image loads OK     → .brand--has-logo present → wordmark hidden,
 *                          logo visible (existing visual behaviour).
 *   - Image 404 / blocked → .brand--has-logo missing → wordmark
 *                           visible, broken image hidden.
 *   - Token unsubstituted → src is "__BRAND_LOGO_URL__" → onload never
 *                           fires → wordmark visible.
 *   - Empty src           → onload never fires either → wordmark
 *                           visible.
 *
 * Net: every nav has SOMETHING visible identifying the brand, no
 * matter what happens upstream. */
img.brand-logo[src="__BRAND_LOGO_URL__"],
img.brand-logo[src=""] { display: none !important; }

/* V4.53 — inverted brand-word visibility. Operator R10: brand wordmark
   was rendering alongside logo on every site (operator: "logo is ugly").
   Cause: onload-based class toggle was unreliable on cache hits. Now:
   default HIDES wordmark globally (assumes logo loaded); show only on
   .brand--logo-failed (added by onerror handler) or .brand--shows-word
   (explicit opt-in for lockup). Applies in EVERY context (nav, footer,
   side-rail, sealed footers) — was previously scoped to topbar only. */
.brand .brand-word { display: none; }
.brand.brand--logo-failed .brand-word,
.brand--logo-failed .brand-word,
a.brand--shows-word .brand-word,
a.brand--shows-word.brand--logo-failed .brand-word,
.brand--mark .brand-word { display: inline; }

/* In the side-rail / toc the lockup variant intentionally shows BOTH the
 * mark and the wordmark beside it — set the wordmark style. */
.brand-word {
  font-family: var(--c-display);
  font-style: italic;
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--c-ink);
}

/* Footer flourishes that now host a logo image instead of a glyph */
.couture-footer--grand .grand-mark { margin-bottom: 18px; }
.couture-footer--grand .grand-mark img.brand-logo { height: 64px; max-width: 280px; }
.couture-footer--atelier .atl-mark { display: flex; align-items: flex-start; min-height: 64px; }
.couture-footer--atelier .atl-mark img.brand-logo { height: 64px; max-width: 200px; }
.couture-footer--spec .spec-brand { display: flex; align-items: center; gap: 14px; }
.couture-footer--spec .spec-brand img.brand-logo { height: 36px; max-width: 100px; filter: grayscale(1) contrast(1.2); }
.couture-footer--spec .spec-brand-text { font-family: var(--c-mono); font-size: 14px; letter-spacing: .14em; }
.couture-footer--colophon .col-mark { margin: 14px 0 28px; }
.couture-footer--colophon .col-mark img.brand-logo { height: 40px; max-width: 180px; opacity: .85; }
.couture-footer--stamp .stamp-mark { display: flex; justify-content: center; align-items: center; }
.couture-footer--stamp .stamp-mark img.brand-logo { height: 72px; max-width: 200px; }

/* When a paper-2 background is on the topbar, give the logo a quiet
 * surface so high-contrast logos don't clash with the noise/grain motif. */
.couture-nav-topbar { gap: 18px; }
@media (max-width: 900px) {
  img.brand-logo--standard { height: 48px; max-width: 220px; }
  img.brand-logo--lockup   { height: 38px; max-width: 180px; }
  img.brand-logo--mark     { height: 36px; max-width: 80px; }
  img.brand-logo--stamp    { height: 52px; max-width: 220px; }
}

/* ---------------------------------------------------------------------------
 * Subscription-box anatomies: /plans (tiers), /how-it-works (steps), /help (FAQ)
 * ----------------------------------------------------------------------- */

/* Common page-shell intro spacing */
.couture-page-plans-tiers,
.couture-page-how-it-works-steps,
.couture-page-help-faq { padding: var(--c-rhythm) var(--c-gutter); max-width: 1200px; margin: 0 auto; }
.couture-plans-head, .couture-hiw-head, .couture-help-head { margin-bottom: clamp(40px, 5vw, 72px); max-width: 720px; }
.couture-plans-head .num, .couture-hiw-head .num, .couture-help-head .num { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 14px; }
.couture-plans-head h1, .couture-hiw-head h1, .couture-help-head h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(40px, 6vw, 80px); line-height: 1; letter-spacing: -0.02em; margin: 0 0 18px; }
.couture-plans-head .lede, .couture-hiw-head .lede, .couture-help-head .lede { font-size: 18px; line-height: 1.55; color: var(--c-ink-soft); margin: 0; max-width: 56ch; }

/* /plans — three tier cards */
.couture-plans-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-bottom: 36px; }
.couture-tier { position: relative; padding: 36px 30px 30px; background: var(--c-paper); border: 1px solid var(--c-line); display: flex; flex-direction: column; min-height: 540px; }
.couture-tier--featured { background: var(--c-ink); color: var(--c-paper); border-color: var(--c-ink); transform: translateY(-12px); box-shadow: 0 24px 48px -16px rgba(0,0,0,.18); }
.couture-tier--featured h2, .couture-tier--featured .tier-eyebrow, .couture-tier--featured .amount, .couture-tier--featured .cadence, .couture-tier--featured .tier-includes li { color: var(--c-paper); }
.couture-tier--featured .tier-includes li::before { background: var(--c-paper); }
.couture-tier .tier-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--c-accent-3); color: var(--c-paper); padding: 5px 14px; font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.couture-tier .tier-head { margin-bottom: 24px; }
.couture-tier .tier-eyebrow { font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 8px; }
.couture-tier h2 { font-family: var(--c-display); font-weight: 300; font-size: 36px; line-height: 1; margin: 0 0 18px; letter-spacing: -0.01em; }
.couture-tier .tier-price { display: flex; align-items: baseline; gap: 6px; }
.couture-tier .tier-price .amount { font-family: var(--c-display); font-weight: 400; font-size: 56px; line-height: 1; }
.couture-tier .tier-price .cadence { font-family: var(--c-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
.couture-tier .tier-includes { list-style: none; margin: 0 0 28px; padding: 24px 0 0; border-top: 1px solid color-mix(in oklab, var(--c-line) 50%, transparent); flex: 1; }
.couture-tier .tier-includes li { position: relative; padding-left: 22px; margin-bottom: 12px; font-size: 14px; line-height: 1.5; }
.couture-tier .tier-includes li::before { content: ""; position: absolute; left: 0; top: .55em; width: 10px; height: 1px; background: var(--c-ink); }
.couture-tier .tier-cta { display: block; text-align: center; padding: 14px 18px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; background: var(--c-ink); color: var(--c-paper); transition: background .2s; }
.couture-tier--featured .tier-cta { background: var(--c-accent-3); }
.couture-tier .tier-cta:hover { background: var(--c-accent); }
.couture-plans-foot { margin-top: 32px; font-family: var(--c-mono); font-size: 12px; letter-spacing: .04em; color: var(--c-muted); text-align: center; }

/* /how-it-works — numbered steps */
.couture-hiw-steps { display: grid; grid-template-columns: repeat(2, 1fr); gap: 32px 56px; margin-bottom: 64px; }
.couture-hiw-steps .hiw-step { display: grid; grid-template-columns: 80px 1fr; gap: 20px; padding: 20px 0; border-top: 1px solid var(--c-line); }
.couture-hiw-steps .hiw-num { font-family: var(--c-display); font-weight: 300; font-style: italic; font-size: 64px; line-height: 1; color: var(--c-accent); }
.couture-hiw-steps .hiw-body h3 { font-family: var(--c-display); font-style: italic; font-weight: 400; font-size: 22px; line-height: 1.2; margin: 0 0 8px; }
.couture-hiw-steps .hiw-body p { font-size: 15px; line-height: 1.55; color: var(--c-ink-soft); margin: 0; }
.couture-hiw-faq { padding: 48px 0; border-top: 2px solid var(--c-ink); }
.couture-hiw-faq h2 { font-family: var(--c-display); font-weight: 300; font-size: 32px; margin: 0 0 24px; }
.couture-hiw-faq dl { margin: 0; }
.couture-hiw-faq dl > div { padding: 18px 0; border-bottom: 1px solid var(--c-line); }
.couture-hiw-faq dt { font-family: var(--c-display); font-style: italic; font-size: 18px; margin-bottom: 8px; }
.couture-hiw-faq dd { font-size: 15px; line-height: 1.55; color: var(--c-ink-soft); margin: 0; }
.couture-hiw-faq .hiw-more { display: inline-block; margin-top: 24px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-ink); text-decoration: none; border-bottom: 1px solid var(--c-ink); padding-bottom: 4px; }
.couture-hiw-cta { text-align: center; padding: 32px 0; }
.couture-hiw-cta .cta { display: inline-block; padding: 18px 36px; background: var(--c-ink); color: var(--c-paper); font-family: var(--c-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.couture-hiw-cta .cta:hover { background: var(--c-accent); }

/* /help — accordion FAQ */
.couture-help-list { margin-bottom: 64px; }
.couture-help-item { border-bottom: 1px solid var(--c-line); padding: 0; }
.couture-help-item summary { display: flex; justify-content: space-between; align-items: center; padding: 22px 0; cursor: pointer; list-style: none; }
.couture-help-item summary::-webkit-details-marker { display: none; }
.couture-help-item .help-q { font-family: var(--c-display); font-weight: 400; font-size: clamp(18px, 1.6vw, 22px); line-height: 1.3; padding-right: 24px; }
.couture-help-item .help-toggle { font-family: var(--c-mono); font-size: 22px; line-height: 1; color: var(--c-muted); flex-shrink: 0; transition: transform .2s; }
.couture-help-item[open] .help-toggle { transform: rotate(45deg); color: var(--c-ink); }
.couture-help-item .help-a { padding: 0 0 24px; max-width: 60ch; }
.couture-help-item .help-a p { margin: 0; font-size: 15px; line-height: 1.65; color: var(--c-ink-soft); }
.couture-help-contact { padding: 40px 0; border-top: 2px solid var(--c-ink); }
.couture-help-contact h2 { font-family: var(--c-display); font-weight: 300; font-size: 32px; margin: 0 0 8px; }
.couture-help-contact p { font-size: 16px; color: var(--c-ink-soft); margin: 0 0 24px; max-width: 50ch; }
.couture-help-contact .help-contact-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
.couture-help-contact .help-contact-list li { padding: 18px 0; border-top: 1px solid var(--c-line); }
.couture-help-contact .help-contact-list strong { display: block; font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 8px; }
.couture-help-contact .help-contact-list a, .couture-help-contact .help-contact-list span { font-family: var(--c-display); font-style: italic; font-size: 18px; color: var(--c-ink); text-decoration: none; }

@media (max-width: 900px) {
  .couture-plans-grid { grid-template-columns: 1fr; gap: 32px; }
  .couture-tier--featured { transform: none; }
  .couture-hiw-steps { grid-template-columns: 1fr; gap: 0; }
  .couture-hiw-steps .hiw-step { grid-template-columns: 56px 1fr; gap: 14px; }
  .couture-hiw-steps .hiw-num { font-size: 44px; }
}

/* =============================================================================
 * WooCommerce single-product layout (handoff items N1 + N7)
 *
 * The Couture renderer no longer emits a `/shop/<slug>/` standalone page.
 * Instead, WC owns `/product/<slug>/`, the theme provides
 * `templates/single-product.html`, and the editorial story + spec + Q&A is
 * written into the product `description` (which post-content renders as
 * .couture-product-wc-body inside the column on the right of the page,
 * below the image gallery, title, price, and add-to-cart).
 * ============================================================================= */
.couture-page-product-wc { padding: clamp(40px, 6vw, 96px) var(--c-gutter) clamp(80px, 12vw, 160px); max-width: 1320px; }
.couture-product-wc-grid { gap: clamp(32px, 5vw, 80px); margin-bottom: clamp(40px, 6vw, 80px); }
.couture-product-wc-gallery img { width: 100%; height: auto; display: block; }
.couture-product-wc-meta { display: flex; flex-direction: column; gap: 14px; align-self: start; position: sticky; top: 96px; }
.couture-product-wc-eyebrow { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 0; }
.couture-product-wc-eyebrow a { color: inherit; text-decoration: none; }
.couture-product-wc-title { font-family: var(--c-display); font-weight: 300; font-size: clamp(32px, 4vw, 56px); line-height: 1.05; letter-spacing: -.02em; margin: 0; }
.couture-product-wc-price { font-family: var(--c-display); font-style: italic; font-size: clamp(20px, 2vw, 28px); color: var(--c-accent); margin: 0; }
.couture-product-wc-price .price del { color: var(--c-muted); margin-right: 8px; }
.couture-product-wc-short { font-family: var(--c-body); font-size: 16px; line-height: 1.65; color: var(--c-ink-soft); max-width: 50ch; margin: 0; }
.couture-product-wc-meta .quantity { display: flex; align-items: center; gap: 8px; }
.couture-product-wc-meta .quantity input { width: 64px; padding: 12px 8px; border: 1px solid var(--c-line); background: var(--c-paper); font-family: var(--c-mono); font-size: 13px; text-align: center; }
.couture-product-wc-meta .single_add_to_cart_button,
.couture-product-wc-meta button[type="submit"] { display: inline-block; padding: 16px 28px; background: var(--c-ink); color: var(--c-paper); font-family: var(--c-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; border: none; cursor: pointer; transition: background .2s; }
.couture-product-wc-meta .single_add_to_cart_button:hover,
.couture-product-wc-meta button[type="submit"]:hover { background: var(--c-accent); }
.couture-product-wc-meta .product_meta { font-family: var(--c-mono); font-size: 11px; letter-spacing: .08em; color: var(--c-muted); padding-top: 18px; border-top: 1px solid var(--c-line); margin-top: 8px; }
.couture-product-wc-meta .product_meta > span { display: block; padding: 4px 0; }

/* The body-only HTML the renderer wrote into description. Same vocabulary as
   the standalone product anatomies but without the duplicated chrome. */
.couture-product-wc-body { max-width: 720px; margin: 0; padding: clamp(40px, 5vw, 64px) 0 0; border-top: 1px solid var(--c-line); }
.couture-product-body { font-family: var(--c-body); font-size: 16px; line-height: 1.7; color: var(--c-ink); }
.couture-product-body .couture-product-lede { font-family: var(--c-display); font-style: italic; font-size: clamp(20px, 2vw, 26px); line-height: 1.4; color: var(--c-ink-soft); margin: 0 0 32px; }
.couture-product-body .couture-product-longread p { margin: 0 0 1.4em; }
.couture-product-body .couture-product-longread p:first-child::first-letter { font-family: var(--c-display); font-size: 4em; line-height: .85; float: left; padding: .08em .12em 0 0; font-weight: 400; color: var(--c-accent); }
.couture-product-body .couture-spec, .couture-product-body .atelier-spec { margin-top: 36px; }
.couture-product-body .couture-spec h3 { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin: 0 0 16px; padding-top: 24px; border-top: 1px solid var(--c-line); }
.couture-product-body .couture-spec dl, .couture-product-body .atelier-spec { display: grid; grid-template-columns: minmax(120px, 1fr) 2fr; gap: 8px 24px; margin: 0; }
.couture-product-body .couture-spec dl > div { display: contents; }
.couture-product-body .couture-spec dt, .couture-product-body .atelier-spec dt { font-family: var(--c-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); padding: 10px 0; border-bottom: 1px dotted var(--c-line); }
.couture-product-body .couture-spec dd, .couture-product-body .atelier-spec dd { font-size: 14px; color: var(--c-ink); padding: 10px 0; margin: 0; border-bottom: 1px dotted var(--c-line); }
.couture-product-body .couture-product-qa dl { display: block; }
.couture-product-body .couture-product-qa dl > div { display: block; padding: 18px 0; border-bottom: 1px solid var(--c-line); }
.couture-product-body .couture-product-qa dt { font-family: var(--c-display); font-style: italic; font-size: clamp(18px, 1.6vw, 22px); margin-bottom: 8px; }
.couture-product-body .couture-product-qa dd { font-size: 15px; line-height: 1.65; color: var(--c-ink-soft); margin: 0; }
.couture-product-body .couture-product-firmware { margin-top: 32px; }
.couture-product-body .couture-product-firmware h3 { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin: 0 0 12px; }
.couture-product-body .couture-product-firmware .fw-row { display: grid; grid-template-columns: 80px 1fr; gap: 16px; padding: 10px 0; border-bottom: 1px dotted var(--c-line); font-size: 14px; }
.couture-product-body .couture-product-firmware .fw-row strong { font-family: var(--c-mono); color: var(--c-accent); }
.couture-product-body .couture-product-tabs nav { display: flex; gap: 24px; border-bottom: 1px solid var(--c-line); margin-bottom: 24px; }
.couture-product-body .couture-product-tabs button { background: none; border: none; padding: 12px 0; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); cursor: pointer; border-bottom: 2px solid transparent; }
.couture-product-body .couture-product-tabs button[aria-selected="true"] { color: var(--c-ink); border-bottom-color: var(--c-accent); }
.couture-product-body .couture-product-tabs [role="tabpanel"] { display: none; }
.couture-product-body .couture-product-tabs [role="tabpanel"].active { display: block; }

.couture-product-wc-related { padding-top: clamp(48px, 6vw, 80px); margin-top: clamp(48px, 6vw, 80px); border-top: 1px solid var(--c-line); }
.couture-product-wc-related h2 { font-family: var(--c-display); font-weight: 300; font-style: italic; font-size: clamp(24px, 2.5vw, 36px); margin: 0 0 32px; }

/* Universal product trust block — ships, returns, made-by-hand. Always
   present at the bottom of every product body so even bare products show
   confidence-building content. (V4.4) */
.couture-product-trust { margin-top: 40px; padding: 24px 0; border-top: 1px solid var(--c-line); }
.couture-product-trust ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 18px 32px; }
.couture-product-trust li { display: flex; flex-direction: column; gap: 6px; }
.couture-product-trust strong { font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); }
.couture-product-trust span { font-family: var(--c-body); font-size: 14px; line-height: 1.5; color: var(--c-ink); }

/* Empty-state message inside tabs — intentionally calm copy, not a 404. */
.couture-product-empty { font-family: var(--c-body); font-size: 14px; color: var(--c-muted); font-style: italic; margin: 0; padding: 16px 0; }

@media (max-width: 900px) {
  .couture-product-wc-grid { flex-direction: column !important; gap: 24px !important; }
  .couture-product-wc-grid .wp-block-column { flex-basis: auto !important; width: 100% !important; }
  .couture-product-wc-meta { position: static; }
  .couture-product-wc-body { padding-top: 24px; }
  .couture-product-body .couture-spec dl, .couture-product-body .atelier-spec { grid-template-columns: 1fr; gap: 0; }
  .couture-product-body .couture-spec dt, .couture-product-body .atelier-spec dt { padding-bottom: 4px; border-bottom: none; }
  .couture-product-body .couture-spec dd, .couture-product-body .atelier-spec dd { padding-top: 0; }

  /* V4.5 — sticky add-to-cart on mobile PDP. Once the gallery scrolls
     past, the cart row pins to the bottom edge so the visitor can buy
     without scrolling back. Replaces the "lost ATC" UX on long mobile
     pages. Desktop keeps the sticky-meta (top: 96px) handled above. */
  .couture-page-product-wc .couture-product-wc-meta .quantity,
  .couture-page-product-wc .couture-product-wc-meta .single_add_to_cart_button,
  .couture-page-product-wc .couture-product-wc-meta button[type="submit"] { /* no change to layout */ }

  body.single-product .wc-block-add-to-cart-form,
  body.single-product .single_add_to_cart_button {
    position: sticky; bottom: 0; z-index: 50;
    background: var(--c-paper);
    padding: 12px 16px;
    /* V4.6 — respect iPhone home indicator + bottom-safe area so the
       sticky bar doesn't sit underneath it. env() returns 0 on devices
       without a notch so this is a no-op everywhere else. */
    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 -8px 24px -12px rgba(0,0,0,.18);
  }
  body.single-product .single_add_to_cart_button {
    width: 100%;
    text-align: center;
    font-size: 13px !important;
    padding: 18px 24px !important;
  }
  /* Hide the floating cart chip on PDP mobile so it doesn't fight the
     sticky buy bar. */
  body.single-product .couture-cart-chip--floating { display: none; }
}

/* =============================================================================
 * Press page enrichment (V4.3 polish item #2)
 *  - Selected coverage with longer excerpts
 *  - Quote wall (existing)
 *  - Press contact card
 * ============================================================================= */
.couture-page-press-page .press-section-title { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin: 0 0 24px; padding-top: 24px; border-top: 1px solid var(--c-line); }
.couture-page-press-page .press-features { margin-bottom: 56px; }
.couture-page-press-page .press-features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 32px; }
.couture-page-press-page .press-feature { display: flex; flex-direction: column; gap: 12px; padding: 24px; border: 1px solid var(--c-line); background: var(--c-paper); }
.couture-page-press-page .press-feature-outlet { font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-accent); }
.couture-page-press-page .press-feature-title { font-family: var(--c-display); font-size: clamp(20px, 1.8vw, 26px); line-height: 1.2; margin: 0; }
.couture-page-press-page .press-feature-title a { color: inherit; text-decoration: none; }
.couture-page-press-page .press-feature-title a:hover { color: var(--c-accent); }
.couture-page-press-page .press-feature-excerpt { font-family: var(--c-body); font-size: 15px; line-height: 1.6; color: var(--c-ink-soft); margin: 0; flex: 1; }
.couture-page-press-page .press-feature-foot { display: flex; justify-content: space-between; align-items: center; font-family: var(--c-mono); font-size: 11px; letter-spacing: .08em; color: var(--c-muted); padding-top: 12px; border-top: 1px solid var(--c-line); }
.couture-page-press-page .press-feature-link { color: var(--c-ink); text-decoration: none; border-bottom: 1px solid var(--c-ink); padding-bottom: 1px; }
.couture-page-press-page .press-wall-section { margin-bottom: 56px; }
.couture-page-press-page .press-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.couture-page-press-page .press-grid figure { padding: 24px; border-left: 2px solid var(--c-accent); margin: 0; }
.couture-page-press-page .press-grid blockquote { font-family: var(--c-display); font-style: italic; font-size: 18px; line-height: 1.4; margin: 0 0 12px; color: var(--c-ink); }
.couture-page-press-page .press-grid figcaption { font-family: var(--c-mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.couture-page-press-page .press-contact { margin-bottom: 40px; padding: 32px; background: var(--c-paper-2); border-left: 2px solid var(--c-ink); }
.couture-page-press-page .press-contact-lede { margin: 0 0 16px; font-size: 16px; line-height: 1.6; color: var(--c-ink-soft); max-width: 60ch; }
.couture-page-press-page .press-contact-email { font-family: var(--c-display); font-style: italic; font-size: clamp(20px, 2vw, 28px); color: var(--c-ink); text-decoration: none; border-bottom: 1px solid var(--c-ink); padding-bottom: 4px; }
.couture-page-press-page .press-contact-email:hover { color: var(--c-accent); border-color: var(--c-accent); }
.couture-page-press-page .press-kit { padding-top: 24px; border-top: 1px solid var(--c-line); }

/* =============================================================================
 * Contact section — working form + plausible socials (V4.3 polish item #3)
 * ============================================================================= */
.couture-contact-section .couture-contact-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(40px, 6vw, 80px); margin-top: 32px; }
.couture-contact-section .couture-contact-meta .contact-lede { font-family: var(--c-display); font-style: italic; font-size: clamp(18px, 1.8vw, 22px); line-height: 1.4; color: var(--c-ink); margin: 0 0 32px; max-width: 38ch; }
.couture-contact-section .contact-list { display: flex; flex-direction: column; gap: 0; margin: 0 0 32px; padding: 0; }
.couture-contact-section .contact-list > div { padding: 16px 0; border-top: 1px solid var(--c-line); display: flex; flex-direction: column; gap: 6px; }
.couture-contact-section .contact-list > div:last-child { border-bottom: 1px solid var(--c-line); }
.couture-contact-section .contact-list dt { font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin: 0; }
.couture-contact-section .contact-list dd { font-family: var(--c-display); font-style: italic; font-size: 17px; color: var(--c-ink); margin: 0; }
.couture-contact-section .contact-list dd a { color: inherit; text-decoration: none; border-bottom: 1px solid transparent; transition: border-color .2s; }
.couture-contact-section .contact-list dd a:hover { border-color: var(--c-accent); }
.couture-contact-section .couture-contact-socials { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.couture-contact-section .couture-contact-socials a { display: flex; flex-direction: column; gap: 2px; padding: 10px 14px; border: 1px solid var(--c-line); background: var(--c-paper); text-decoration: none; transition: border-color .2s, background .2s; }
.couture-contact-section .couture-contact-socials a:hover { border-color: var(--c-ink); background: var(--c-paper-2); }
.couture-contact-section .couture-contact-socials strong { font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); }
.couture-contact-section .couture-contact-socials span { font-family: var(--c-display); font-style: italic; font-size: 14px; color: var(--c-ink); }
/* V4.66 — contact form polish (operator R12 Round 10).
   Was: 2-col tight grid with thin underline-only fields.
   Now: cleaner card on contact section bg, larger fields with
   rounded radius + accent focus ring (inherits V4.65 polish),
   bigger CTA, responsive 2-col → 1-col stacking. */
.couture-contact-section .couture-contact-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 22px;
  align-content: start;
  padding: 32px;
  background: var(--c-paper);
  border: 1px solid var(--c-line);
  border-radius: var(--c-card-radius, 8px);
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
}
.couture-contact-section .couture-contact-form .cf-row { display: flex; flex-direction: column; gap: 8px; }
.couture-contact-section .couture-contact-form .cf-row.cf-full { grid-column: 1 / -1; }
.couture-contact-section .couture-contact-form .cf-row span {
  font-family: var(--c-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: var(--c-ink);
}
.couture-contact-section .couture-contact-form input,
.couture-contact-section .couture-contact-form textarea {
  padding: 12px 14px;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  background: var(--c-paper);
  font-family: var(--c-body);
  font-size: 14px;
  color: var(--c-ink);
  resize: vertical;
  transition: border-color .15s, box-shadow .15s;
}
.couture-contact-section .couture-contact-form input:focus,
.couture-contact-section .couture-contact-form textarea:focus {
  outline: none;
  border-color: var(--c-accent);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--c-accent) 18%, transparent);
}
.couture-contact-section .couture-contact-form .cf-submit {
  grid-column: 1 / -1;
  justify-self: start;
  padding: 13px 26px;
  background: var(--c-ink);
  color: var(--c-paper);
  border: none;
  border-radius: 6px;
  font-family: var(--c-body);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  cursor: pointer;
  transition: background .15s, transform .15s;
}
.couture-contact-section .couture-contact-form .cf-submit:hover {
  background: var(--c-accent);
  transform: translateY(-1px);
}
@media (max-width: 640px) {
  .couture-contact-section .couture-contact-form { grid-template-columns: 1fr; padding: 24px; }
}
.couture-contact-section .couture-contact-form .cf-note { grid-column: 1 / -1; margin: 0; font-family: var(--c-mono); font-size: 10px; letter-spacing: .08em; color: var(--c-muted); }
.couture-contact-section .couture-contact-form .cf-status { grid-column: 1 / -1; margin: 0; font-family: var(--c-body); font-size: 14px; line-height: 1.5; min-height: 1.2em; }
.couture-contact-section .couture-contact-form .cf-status[data-kind="ok"]      { color: #15803d; }
.couture-contact-section .couture-contact-form .cf-status[data-kind="err"]     { color: #b91c1c; }
.couture-contact-section .couture-contact-form .cf-status[data-kind="pending"] { color: var(--c-muted); }
.couture-contact-section .couture-contact-form .cf-status a { color: inherit; text-decoration: underline; }
.couture-contact-section .couture-contact-form button[disabled] { opacity: .55; cursor: progress; }

@media (max-width: 800px) {
  .couture-contact-section .couture-contact-grid { grid-template-columns: 1fr; }
  .couture-contact-section .couture-contact-form { grid-template-columns: 1fr; }
}

/* =============================================================================
 * WooCommerce cart / checkout / account / order-confirmation (V4.5)
 *
 * The previous theme only customised the single-product page; cart,
 * checkout, account, and post-checkout pages all rendered with default
 * WC + WP block styling, including the unfortunate "black sad-face
 * emoji" empty-cart icon. This block:
 *
 *   - Wraps each WC page header in a `.couture-{page}-head` matching
 *     other Couture page heads (eyebrow num + display h1).
 *   - Replaces WC's emoji-icon empty-cart with a typographic statement +
 *     a brand CTA back to /shop/.
 *   - Tunes WC block-checkout / cart fonts and accent colors to use
 *     the rolled DNA tokens (no more sea of light-gray defaults).
 * ============================================================================= */
.couture-page-cart-wc,
.couture-page-checkout-wc,
.couture-page-account-wc,
.couture-page-order-wc { padding: clamp(40px, 6vw, 96px) var(--c-gutter) clamp(80px, 12vw, 160px); max-width: 1280px; }

.couture-cart-head, .couture-checkout-head, .couture-account-head, .couture-order-head { margin-bottom: clamp(40px, 5vw, 72px); max-width: 720px; }
.couture-cart-head .num, .couture-checkout-head .num, .couture-account-head .num, .couture-order-head .num { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin: 0 0 12px; }
.couture-cart-head h1, .couture-checkout-head h1, .couture-account-head h1, .couture-order-head h1 { font-family: var(--c-display); font-weight: 300; font-size: clamp(40px, 5vw, 72px); line-height: 1; letter-spacing: -.02em; margin: 0 0 16px; }
.couture-cart-head .lede, .couture-order-head .lede { font-family: var(--c-display); font-style: italic; font-size: clamp(18px, 2vw, 22px); line-height: 1.4; color: var(--c-ink-soft); max-width: 50ch; margin: 0; }

/* Empty cart — the WC default uses a black emoji-style sad face which
   feels off-brand on every Couture site. Hide it and emit a typographic
   replacement via ::before. */
.wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block .wp-block-heading {
  font-family: var(--c-display) !important;
  font-style: italic;
  font-weight: 300;
  font-size: clamp(28px, 3vw, 44px) !important;
  color: var(--c-ink) !important;
  letter-spacing: -.02em !important;
}
/* The frowny SVG/emoji image WC ships with — hide it on cart pages */
.couture-page-cart-wc .wp-block-woocommerce-empty-cart-block img,
.couture-page-cart-wc .wc-block-cart__empty-cart__heading svg,
.wc-block-cart__empty-cart > img:first-child,
.wp-block-woocommerce-empty-cart-block .wp-block-image:first-child img { display: none !important; }
/* Replacement typographic mark — a single quiet asterism */
.couture-page-cart-wc .wp-block-woocommerce-empty-cart-block::before {
  content: "⁂";
  display: block;
  font-family: var(--c-display);
  font-size: clamp(64px, 8vw, 120px);
  color: var(--c-accent);
  text-align: center;
  line-height: 1;
  margin-bottom: 24px;
  opacity: .7;
}
/* V4.6 — surface a path back to the catalog from the empty-cart state.
   The default WC "Return to shop" button is a small grey link; this
   styles it as a confident CTA so visitors don't bounce. */
.couture-page-cart-wc .wc-block-cart__empty-cart__heading + p,
.couture-page-cart-wc .wp-block-woocommerce-empty-cart-block p { font-family: var(--c-body); font-size: 15px; color: var(--c-ink-soft); text-align: center; max-width: 44ch; margin: 16px auto 28px; }
.couture-page-cart-wc .wc-block-cart__empty-cart__heading + p a,
.couture-page-cart-wc .wp-block-woocommerce-empty-cart-block .wp-block-button a,
.couture-page-cart-wc .wp-block-woocommerce-empty-cart-block .wc-block-button {
  display: inline-block; margin-top: 8px;
  padding: 14px 26px;
  font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  background: var(--c-ink); color: var(--c-paper);
  text-decoration: none; border: 1px solid var(--c-ink);
  transition: background .15s, color .15s;
}
.couture-page-cart-wc .wc-block-cart__empty-cart__heading + p a:hover,
.couture-page-cart-wc .wp-block-woocommerce-empty-cart-block .wp-block-button a:hover {
  background: var(--c-accent); border-color: var(--c-accent); color: var(--c-paper);
}

/* WC block-cart line items */
.wc-block-cart, .wc-block-cart-items, .wc-block-components-product-name { font-family: var(--c-body); }
.wc-block-cart-items { border-top: 1px solid var(--c-line); }
.wc-block-cart-items__row { border-bottom: 1px solid var(--c-line); padding: 18px 0; }
.wc-block-components-product-name { font-family: var(--c-display) !important; font-size: clamp(18px, 1.8vw, 22px) !important; font-weight: 400 !important; color: var(--c-ink) !important; text-decoration: none !important; }
.wc-block-cart-item__quantity { font-family: var(--c-mono); font-size: 12px; }
.wc-block-formatted-money-amount { font-family: var(--c-display); font-style: italic; color: var(--c-accent); }
.wc-block-cart__totals-title { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); }

/* Checkout — labels, inputs, buttons */
.wc-block-checkout, .wc-block-checkout__form, .wc-block-checkout__sidebar { font-family: var(--c-body); }
.wc-block-checkout .wc-block-components-text-input label,
.wc-block-checkout .wc-block-components-form .wc-block-components-text-input label,
.wp-block-woocommerce-checkout label { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.wc-block-checkout input, .wc-block-checkout select, .wc-block-checkout textarea { border: 1px solid var(--c-line) !important; border-radius: 0 !important; background: var(--c-paper) !important; color: var(--c-ink) !important; font-family: var(--c-body) !important; padding: 14px 16px !important; }
.wc-block-checkout input:focus, .wc-block-checkout select:focus, .wc-block-checkout textarea:focus { border-color: var(--c-ink) !important; outline: none !important; box-shadow: none !important; }
.wc-block-checkout__step-heading { font-family: var(--c-display); font-style: italic; font-size: clamp(22px, 2vw, 28px); color: var(--c-ink); }
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button {
  background: var(--c-ink) !important;
  color: var(--c-paper) !important;
  border-radius: 0 !important;
  font-family: var(--c-mono) !important;
  font-size: 12px !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  padding: 18px 28px !important;
  border: none !important;
}
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover { background: var(--c-accent) !important; }

/* My-account — login form + dashboard list */
.couture-page-account-wc .woocommerce-account, .couture-page-account-wc .woocommerce { font-family: var(--c-body); }
.couture-page-account-wc .woocommerce h2 { font-family: var(--c-display); font-weight: 300; font-size: clamp(28px, 3vw, 40px); margin: 0 0 24px; }
.couture-page-account-wc form.woocommerce-form-login,
.couture-page-account-wc form.woocommerce-form-register { max-width: 520px; }
.couture-page-account-wc form.woocommerce-form-login p,
.couture-page-account-wc form.woocommerce-form-register p { margin-bottom: 18px; }
.couture-page-account-wc form.woocommerce-form-login label,
.couture-page-account-wc form.woocommerce-form-register label { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); display: block; margin-bottom: 8px; }
.couture-page-account-wc form.woocommerce-form-login input[type="text"],
.couture-page-account-wc form.woocommerce-form-login input[type="email"],
.couture-page-account-wc form.woocommerce-form-login input[type="password"],
.couture-page-account-wc form.woocommerce-form-register input { width: 100%; padding: 14px 16px; border: 1px solid var(--c-line); background: var(--c-paper); color: var(--c-ink); font-family: var(--c-body); border-radius: 0; box-sizing: border-box; }
.couture-page-account-wc button.woocommerce-button { background: var(--c-ink); color: var(--c-paper); padding: 16px 28px; border: none; font-family: var(--c-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; cursor: pointer; transition: background .2s; }
.couture-page-account-wc button.woocommerce-button:hover { background: var(--c-accent); }
.couture-page-account-wc nav.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0 0 32px; display: flex; gap: 24px; flex-wrap: wrap; border-bottom: 1px solid var(--c-line); padding-bottom: 18px; }
.couture-page-account-wc nav.woocommerce-MyAccount-navigation li { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.couture-page-account-wc nav.woocommerce-MyAccount-navigation a { color: var(--c-ink-soft); text-decoration: none; padding-bottom: 6px; border-bottom: 2px solid transparent; }
.couture-page-account-wc nav.woocommerce-MyAccount-navigation li.is-active a { color: var(--c-ink); border-color: var(--c-accent); }

/* Order confirmation — receipt-like layout, restraint */
.couture-page-order-wc .wp-block-woocommerce-order-confirmation { font-family: var(--c-body); }
.couture-page-order-wc .wp-block-woocommerce-order-confirmation table { width: 100%; border-collapse: collapse; }
.couture-page-order-wc .wp-block-woocommerce-order-confirmation th { font-family: var(--c-mono); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); padding: 12px 0; border-bottom: 1px solid var(--c-line); text-align: left; }
.couture-page-order-wc .wp-block-woocommerce-order-confirmation td { padding: 14px 0; border-bottom: 1px dotted var(--c-line); font-size: 14px; }

/* =============================================================================
 * Print stylesheet (V4.5) — press kits, order receipts, confirmations look
 * acceptable when printed. Hides chrome (nav, footer, cart, motion), expands
 * details, and forces ink-on-paper colors so saved PDFs and printed pages
 * carry brand recognition without bleeding ink everywhere.
 * ============================================================================= */
@media print {
  body { background: white !important; color: black !important; }
  header, footer, .couture-nav-topbar, .couture-nav-siderail, .couture-nav-drawer, .couture-nav-toc, .couture-nav-dotindex, .couture-nav-split, .couture-cart-chip, .couture-seal { display: none !important; }
  .couture-spatial { margin-left: 0 !important; }
  details { open: open; }
  .couture-page { padding: 24px; max-width: none; }
  a { color: black !important; text-decoration: underline; }
  .couture-product-trust ul { display: block; }
  .couture-product-trust li { margin-bottom: 12px; }
  img { max-width: 60% !important; page-break-inside: avoid; }
  h1, h2, h3 { page-break-after: avoid; color: black !important; }
}

/* ============================================================
   V4.11 — Legal page layouts (5 variants)
   Driven by copy.legal._layout, set in couture_copy.js based on
   the brand's voice register. Each gives the legal pages a
   visually distinct treatment so a luxury brand's Privacy Policy
   doesn't look identical to a brutalist tech brand's.
   ============================================================ */

/* Shared legal styles */
.couture-legal { max-width: 760px; margin: 0 auto; padding: 64px 24px; }
.couture-legal-header { margin-bottom: 48px; padding-bottom: 24px; border-bottom: 1px solid var(--c-line); }
.couture-legal-header .eyebrow { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 18px; }
.couture-legal-header h1 { margin: 0 0 16px; }
.couture-legal-header .updated { font-size: 13px; color: var(--c-muted); margin: 0; }
.couture-legal-header .updated.mono { font-family: var(--c-mono); letter-spacing: .08em; text-transform: uppercase; }
.couture-legal-disclaimer { display: block; font-family: var(--c-mono); font-size: 11px; letter-spacing: .04em; padding: 12px 16px; margin-top: 20px; border: 1px solid var(--c-line); }
.couture-legal-disclaimer--template { background: rgba(255, 200, 0, 0.08); color: var(--c-ink); border-color: rgba(255, 200, 0, 0.4); }
.couture-legal-disclaimer--ai { background: var(--c-paper-2); color: var(--c-muted); }
.couture-legal .body p { line-height: 1.7; margin: 0 0 18px; }
.couture-legal .legal-h { margin: 36px 0 14px; font-size: 18px; }

/* 1. Editorial — magazine: drop-cap on first paragraph, generous serif */
.couture-legal--editorial .couture-legal-header h1 { font-family: var(--c-display); font-size: clamp(40px, 5vw, 64px); line-height: 1.05; letter-spacing: -0.01em; }
.couture-legal--editorial .body { font-family: var(--c-body); font-size: 17px; }
.couture-legal--editorial .body .legal-h { font-family: var(--c-display); font-weight: 500; }
.couture-legal--editorial .legal-p.has-dropcap::first-letter {
  float: left; font-family: var(--c-display); font-size: 5em; line-height: 0.85; padding: 4px 12px 0 0; color: var(--c-accent);
}

/* 2. Columnar — luxury: 2-col body with gold-rule dividers */
.couture-legal--columnar .couture-legal-header h1 { font-family: var(--c-display); font-size: clamp(36px, 4.5vw, 56px); letter-spacing: 0.02em; }
.couture-legal--columnar .body { column-count: 2; column-gap: 48px; column-rule: 1px solid var(--c-accent); font-size: 14px; line-height: 1.65; }
@media (max-width: 760px) { .couture-legal--columnar .body { column-count: 1; } }
.couture-legal--columnar .body .legal-h { column-span: all; margin-top: 28px; padding-top: 14px; border-top: 1px solid var(--c-accent); font-family: var(--c-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); }
.couture-legal--columnar .couture-legal-footer { margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--c-line); text-align: center; font-family: var(--c-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }

/* 3. Spec — technical: monospace, numbered sections, hard rules */
.couture-legal--spec .couture-legal-header h1.legal-h1--mono { font-family: var(--c-mono); font-size: clamp(28px, 3.5vw, 42px); letter-spacing: -0.01em; text-transform: uppercase; }
.couture-legal--spec .body--spec { list-style: none; padding: 0; margin: 0; counter-reset: legal; }
.couture-legal--spec .legal-section { display: grid; grid-template-columns: 60px 1fr; gap: 16px 24px; padding: 28px 0; border-top: 1px solid var(--c-ink); }
.couture-legal--spec .legal-section:last-child { border-bottom: 1px solid var(--c-ink); }
.couture-legal--spec .legal-num { font-family: var(--c-mono); font-size: 12px; color: var(--c-accent); letter-spacing: .08em; padding-top: 4px; }
.couture-legal--spec .legal-h--mono { grid-column: 2; margin: 0 0 8px; font-family: var(--c-mono); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; }
.couture-legal--spec .legal-section p { grid-column: 2; margin: 0; font-family: var(--c-body); line-height: 1.65; font-size: 15px; }

/* 4. Plain — warm: relaxed, soft, no decorative chrome */
.couture-legal--plain { max-width: 640px; }
.couture-legal--plain .couture-legal-header h1 { font-size: clamp(28px, 3vw, 40px); font-weight: 500; }
.couture-legal--plain .body { font-size: 16px; }
.couture-legal--plain .body .legal-h { font-size: 17px; font-weight: 600; margin-top: 32px; margin-bottom: 12px; }

/* V4.15 — feature_banner section.
   AI-generated wide promotional / brand-statement banner. Two layouts
   picked by domain hash: `inset` (image with overlay) and `split`
   (image left, copy right). Both use the same CSS variable palette as
   the rest of the theme so accent / paper / ink colors flow through. */
.couture-feature-banner {
  margin: clamp(48px, 8vw, 96px) 0;
  padding: 0;
}
.couture-feature-banner .fb-image {
  position: relative;
  margin: 0;
  overflow: hidden;
}
.couture-feature-banner .fb-image img {
  display: block;
  width: 100%;
  height: auto;
  /* V4.15 — 21/9 to match FLUX Schnell's accepted enum (16:5 was rejected). */
  aspect-ratio: 21/9;
  object-fit: cover;
}
.couture-feature-banner .fb-eyebrow {
  font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em;
  text-transform: uppercase; color: var(--c-accent);
  margin-bottom: 14px;
}
.couture-feature-banner .fb-headline {
  font-family: var(--c-display);
  font-size: clamp(28px, 4vw, 52px);
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin: 0 0 14px;
  color: inherit;
}
.couture-feature-banner .fb-sub {
  font-family: var(--c-body);
  font-size: 15px;
  line-height: 1.55;
  margin: 0 0 20px;
  max-width: 56ch;
  color: inherit;
}
.couture-feature-banner .fb-cta {
  display: inline-block;
  font-family: var(--c-mono);
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--c-ink);
  text-decoration: none;
  border-bottom: 2px solid var(--c-accent);
  padding-bottom: 4px;
  transition: color .15s, border-color .15s;
}
.couture-feature-banner .fb-cta:hover {
  color: var(--c-accent);
  border-bottom-color: var(--c-ink);
}

/* Variant: inset — image full-width, copy as bottom-left overlay */
.couture-feature-banner--inset .fb-overlay {
  position: absolute;
  bottom: clamp(20px, 4vw, 48px);
  left: clamp(20px, 4vw, 48px);
  right: clamp(20px, 4vw, 48px);
  max-width: 600px;
  background: var(--c-paper);
  color: var(--c-ink);
  padding: clamp(20px, 3vw, 36px);
  border: 1px solid var(--c-line);
}
@media (max-width: 680px) {
  .couture-feature-banner--inset .fb-image img { aspect-ratio: 4/3; }
  .couture-feature-banner--inset .fb-overlay {
    position: static;
    margin: -16px 16px 0;
    max-width: none;
  }
}

/* Variant: split — image on the left, copy on the right (50/50) */
.couture-feature-banner--split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: stretch;
}
.couture-feature-banner--split .fb-image img {
  height: 100%;
  aspect-ratio: auto;
  min-height: 380px;
}
.couture-feature-banner--split .fb-copy {
  padding: clamp(28px, 5vw, 64px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--c-paper-2, var(--c-paper));
}
@media (max-width: 760px) {
  .couture-feature-banner--split { grid-template-columns: 1fr; }
  .couture-feature-banner--split .fb-image img { min-height: auto; aspect-ratio: 16/9; }
}

/* Variant: text-only (image generation failed / copy-only banner) */
.couture-feature-banner--text .fb-frame {
  background: var(--c-paper-2, var(--c-paper));
  padding: clamp(40px, 8vw, 96px);
  text-align: center;
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
}
.couture-feature-banner--text .fb-headline { margin-left: auto; margin-right: auto; max-width: 16ch; }
.couture-feature-banner--text .fb-sub      { margin-left: auto; margin-right: auto; }


/* V4.14 — Footer fineprint row (legal links: terms / privacy / returns
   / shipping / cookies). Appended to every footer variant by
   `_legalLinkRow()` in nav.js. Visual: muted, small, all-link-no-bullet,
   centered or left-aligned per footer's natural alignment. */
.couture-fineprint {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--c-line);
  /* V4.53 — readability fix. Was: 11px mono uppercase muted = invisible.
     Now: 13px body normal-case ink with full contrast. */
  font-family: var(--c-body);
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--c-ink);
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
  justify-content: center;
}
.couture-fineprint a {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color .15s, color .15s;
}
.couture-fineprint a:hover { color: var(--c-ink); border-bottom-color: var(--c-ink); }
.couture-fineprint .couture-fineprint-sep { opacity: 0.4; user-select: none; }
/* Brutalist + spec footers prefer flush-left alignment */
.couture-footer--spec .couture-fineprint,
.couture-footer--stamp .couture-fineprint,
.couture-footer--colophon .couture-fineprint { justify-content: flex-start; }

/* V4.51 — 5 alternative legal-row layouts. Operator R7 audit: every
   site rendered the same inline-bullet "Terms · Privacy · Returns".
   Per-domain hash now picks one of 6 layouts. */
.couture-fineprint--stacked {
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.couture-fineprint--stacked > div { display: block; }

.couture-fineprint--split {
  justify-content: space-between;
  flex-wrap: wrap;
  text-transform: none;
  letter-spacing: .04em;
  font-size: 12px;
}
.couture-fineprint--split .cf-copy { color: var(--c-muted); }
.couture-fineprint--split .cf-links { display: flex; gap: 12px; }

.couture-fineprint--singleline {
  text-transform: none;
  letter-spacing: 0;
  font-size: 13px;
  font-family: var(--c-body);
  color: var(--c-ink);
  justify-content: flex-start;
}
.couture-fineprint--singleline .cf-label {
  font-weight: 600;
  margin-right: 6px;
  color: var(--c-ink);
}

/* V4.53 — was 10px display uppercase 600wt = unreadable. Now 12px body 600wt ink. */
.couture-fineprint--upper {
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: 12px;
  font-family: var(--c-body);
  font-weight: 600;
  color: var(--c-ink);
  border-top: 0;
  padding-top: 16px;
  margin-top: 24px;
  gap: 8px 18px;
}

.couture-fineprint--minimal {
  border-top: 0;
  padding-top: 24px;
  margin-top: 24px;
  text-transform: none;
  letter-spacing: 0;
  font-size: 13px;
  font-family: var(--c-body);
  color: var(--c-ink);
  gap: 16px;
}
/* V4.53 — was var(--c-muted) → unreadable. Now full ink contrast. */
.couture-fineprint--minimal .cf-mark { color: var(--c-ink); font-weight: 500; }
.couture-fineprint--minimal .cf-disclose { font-size: 13px; }
.couture-fineprint--minimal .cf-disclose summary {
  cursor: pointer;
  color: var(--c-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 500;
}
.couture-fineprint--minimal .cf-disclose-links {
  margin-top: 8px;
  display: flex;
  gap: 14px;
}
.couture-fineprint--minimal .cf-disclose-links a {
  color: var(--c-ink);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ============================================================================
   V4.20 — 12 NEW HERO STYLES
   ============================================================================
   New hero shapes added to break the visual fingerprint of the original 10.
   Every site that rolls one of these gets a meaningfully different homepage
   shape. Styles use only built-in CSS vars (--c-ink / --c-paper / --c-accent /
   --c-display / --c-body / --c-mono / --c-gutter) for full DNA compatibility. */

/* hero-list — bullet list value-prop hero */
.couture-hero--list { padding: clamp(48px,8vw,120px) var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; }
.couture-hero--list h1 { font-family: var(--c-display); font-size: clamp(40px,7vw,84px); line-height: 1.02; margin: 12px 0 32px; }
.couture-hero--list .hero-list { list-style: none; padding: 0; margin: 0 0 28px; display: grid; gap: 14px; max-width: 64ch; }
.couture-hero--list .hero-list li { font-family: var(--c-body); font-size: clamp(18px,2.2vw,22px); padding-left: 28px; position: relative; line-height: 1.4; color: var(--c-ink); }
.couture-hero--list .hero-list li::before { content: ""; position: absolute; left: 0; top: 0.65em; width: 16px; height: 1px; background: var(--c-accent); }
.couture-hero--list .hero-list-sub { font-size: 17px; color: var(--c-muted); max-width: 64ch; margin-bottom: 32px; }
.couture-hero--list .hero-list-art { margin-top: 32px; max-width: 720px; }
.couture-hero--list .hero-list-art img { width: 100%; height: auto; }

/* hero-quote — single big editorial pullquote IS the hero */
.couture-hero--quote { padding: clamp(64px,12vw,180px) var(--c-gutter,32px); max-width: 1100px; margin: 0 auto; text-align: center; }
.couture-hero--quote .hero-pullquote { margin: 0; padding: 0; }
.couture-hero--quote .hero-pullquote p { font-family: var(--c-display); font-style: italic; font-size: clamp(36px,6vw,72px); line-height: 1.2; color: var(--c-ink); margin: 0 0 24px; }
.couture-hero--quote .hero-pullquote cite { font-style: normal; font-family: var(--c-mono); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.couture-hero--quote .hero-pullquote-h1 { font-size: clamp(20px,2.4vw,28px); font-weight: 400; color: var(--c-muted); margin-top: 28px; }

/* hero-coupon-bar — promo banner first */
.couture-hero--coupon-bar { max-width: 1280px; margin: 0 auto; padding: 0 var(--c-gutter,32px) clamp(48px,8vw,120px); }
.couture-hero--coupon-bar .hero-coupon-bar { background: var(--c-accent); color: var(--c-paper); text-align: center; padding: 12px var(--c-gutter,32px); font-family: var(--c-mono); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; margin: 0 calc(-1 * var(--c-gutter,32px)) clamp(36px,6vw,72px); }
.couture-hero--coupon-bar h1 { font-family: var(--c-display); font-size: clamp(48px,9vw,108px); line-height: 1.02; margin: 8px 0 24px; }
.couture-hero--coupon-bar .hero-coupon-art { margin-top: 32px; }
.couture-hero--coupon-bar .hero-coupon-art img { width: 100%; max-width: 920px; height: auto; }

/* hero-marquee-only — pure marquee */
.couture-hero--marquee { padding: clamp(48px,8vw,96px) 0; max-width: 1440px; margin: 0 auto; }
.couture-hero--marquee .eyebrow { padding: 0 var(--c-gutter,32px); margin-bottom: 24px; }
.couture-hero--marquee .couture-marquee--hero .couture-marquee-track { animation-duration: 30s; font-family: var(--c-display); font-size: clamp(48px,9vw,120px); padding: 16px 0; }
.couture-hero--marquee .couture-marquee--hero .couture-marquee-track > span { color: var(--c-ink); }
.couture-hero--marquee .hero-marquee-sub { padding: 0 var(--c-gutter,32px); max-width: 64ch; margin: 32px auto 0; color: var(--c-muted); }

/* hero-split-3up — 3 mini value props */
.couture-hero--split3 { max-width: 1280px; margin: 0 auto; padding: clamp(48px,8vw,120px) var(--c-gutter,32px); }
.couture-hero--split3 h1 { font-family: var(--c-display); font-size: clamp(40px,7vw,84px); line-height: 1.02; margin: 12px 0 56px; max-width: 24ch; }
.couture-hero--split3 .split3-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px 48px; }
.couture-hero--split3 .split3-col h3 { font-family: var(--c-display); font-size: clamp(22px,2.4vw,28px); margin: 12px 0 8px; }
.couture-hero--split3 .split3-col p { color: var(--c-muted); font-size: 16px; line-height: 1.5; }
.couture-hero--split3 .split3-num { font-family: var(--c-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-accent); }

/* hero-search-first — big search box */
.couture-hero--search { max-width: 920px; margin: 0 auto; padding: clamp(64px,12vw,180px) var(--c-gutter,32px); text-align: center; }
.couture-hero--search h1 { font-family: var(--c-display); font-size: clamp(40px,7vw,84px); line-height: 1.02; margin: 12px 0 24px; }
.couture-hero--search .hero-search-sub { color: var(--c-muted); font-size: 18px; max-width: 56ch; margin: 0 auto 32px; }
.couture-hero--search .hero-search-form { display: flex; gap: 8px; max-width: 640px; margin: 0 auto; border: 2px solid var(--c-ink); padding: 8px; }
.couture-hero--search .hero-search-form input { flex: 1; border: 0; padding: 14px 18px; font-family: var(--c-body); font-size: 18px; background: transparent; color: var(--c-ink); }
.couture-hero--search .hero-search-form input:focus { outline: 2px solid var(--c-accent); outline-offset: 2px; }
.couture-hero--search .hero-search-form button { background: var(--c-ink); color: var(--c-paper); border: 0; padding: 0 28px; font-family: var(--c-mono); letter-spacing: .1em; text-transform: uppercase; font-size: 13px; cursor: pointer; }
.couture-hero--search .hero-search-form button:hover { background: var(--c-accent); }

/* hero-newsletter-first — newsletter form is the hero */
.couture-hero--nl { max-width: 920px; margin: 0 auto; padding: clamp(64px,12vw,180px) var(--c-gutter,32px); text-align: center; }
.couture-hero--nl h1 { font-family: var(--c-display); font-size: clamp(40px,7vw,84px); line-height: 1.02; margin: 12px 0 24px; }
.couture-hero--nl .newsletter-form { display: flex; gap: 8px; max-width: 480px; margin: 32px auto 0; border-bottom: 2px solid var(--c-ink); padding: 4px 0; }
.couture-hero--nl .newsletter-form input { flex: 1; border: 0; padding: 12px 6px; font-family: var(--c-body); font-size: 18px; background: transparent; color: var(--c-ink); }
.couture-hero--nl .newsletter-form button { background: transparent; color: var(--c-ink); border: 0; padding: 8px 14px; font-family: var(--c-mono); letter-spacing: .12em; text-transform: uppercase; font-size: 12px; cursor: pointer; border-left: 1px solid var(--c-line); }

/* hero-promo-banner — loud sale promo */
.couture-hero--promo { max-width: 1280px; margin: 0 auto; padding: clamp(48px,8vw,120px) var(--c-gutter,32px); text-align: center; }
.couture-hero--promo .hero-promo-tag { display: inline-block; background: var(--c-accent); color: var(--c-paper); padding: 6px 16px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 24px; }
.couture-hero--promo .hero-promo-h1 { font-family: var(--c-display); font-size: clamp(56px,11vw,144px); line-height: .98; letter-spacing: -.02em; margin: 0 0 24px; max-width: 18ch; margin-left: auto; margin-right: auto; }
.couture-hero--promo .hero-promo-sub { font-size: clamp(18px,2.2vw,22px); color: var(--c-muted); max-width: 56ch; margin: 0 auto 36px; }
.couture-hero--promo .hero-promo-cta { margin-top: 36px; }
.couture-hero--promo .hero-promo-cta .cta-btn { display: inline-block; background: var(--c-ink); color: var(--c-paper); padding: 18px 36px; text-decoration: none; font-family: var(--c-mono); letter-spacing: .14em; text-transform: uppercase; font-size: 13px; }
.couture-hero--promo .hero-promo-cta .cta-btn:hover { background: var(--c-accent); }

/* hero-grid-of-products — 6 product tiles AS the hero */
.couture-hero--grid { max-width: 1440px; margin: 0 auto; padding: clamp(48px,8vw,120px) var(--c-gutter,32px); }
.couture-hero--grid .hero-grid-head h1 { font-family: var(--c-display); font-size: clamp(40px,7vw,84px); line-height: 1.02; margin: 12px 0 32px; }
.couture-hero--grid .hero-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.couture-hero--grid .hero-grid-tile { display: block; background: var(--c-paper-2); aspect-ratio: 1; position: relative; text-decoration: none; color: var(--c-ink); overflow: hidden; }
.couture-hero--grid .hero-grid-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.couture-hero--grid .hero-grid-tile:hover img { transform: scale(1.04); }
.couture-hero--grid .hero-grid-placeholder { position: absolute; inset: 0; background: linear-gradient(135deg, var(--c-paper-2), var(--c-line)); }
.couture-hero--grid .hero-grid-label { position: absolute; left: 12px; bottom: 12px; right: 12px; background: var(--c-paper); padding: 6px 10px; font-family: var(--c-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }

/* hero-story-card — small editorial card with brand story */
.couture-hero--card { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,4vw,64px); max-width: 1280px; margin: 0 auto; padding: clamp(48px,8vw,120px) var(--c-gutter,32px); align-items: center; }
.couture-hero--card .hero-card { padding: 32px; background: var(--c-paper-2); border: 1px solid var(--c-line); }
.couture-hero--card .hero-card h1 { font-family: var(--c-display); font-size: clamp(36px,5vw,56px); line-height: 1.05; margin: 8px 0 16px; }
.couture-hero--card .hero-card-story { color: var(--c-muted); font-size: 17px; line-height: 1.6; margin-bottom: 24px; }
.couture-hero--card .hero-card-cta a { color: var(--c-ink); text-decoration: none; border-bottom: 1px solid var(--c-ink); padding-bottom: 2px; font-family: var(--c-mono); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.couture-hero--card .hero-card-art img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/5; }
@media (max-width: 768px) { .couture-hero--card { grid-template-columns: 1fr; } }

/* hero-stat-row — big number row */
.couture-hero--statrow { max-width: 1280px; margin: 0 auto; padding: clamp(48px,8vw,120px) var(--c-gutter,32px); }
.couture-hero--statrow h1 { font-family: var(--c-display); font-size: clamp(48px,8vw,96px); line-height: 1.02; margin: 12px 0 24px; }
.couture-hero--statrow .hero-statrow-sub { color: var(--c-muted); font-size: 18px; max-width: 56ch; margin-bottom: 48px; }
.couture-hero--statrow .hero-statrow { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 32px 48px; padding-top: 32px; border-top: 2px solid var(--c-ink); }
.couture-hero--statrow .hero-statrow .stat { display: flex; flex-direction: column; gap: 4px; }
.couture-hero--statrow .hero-statrow .stat-n { font-family: var(--c-display); font-size: clamp(40px,5vw,72px); line-height: 1; color: var(--c-ink); }
.couture-hero--statrow .hero-statrow .stat-l { font-family: var(--c-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }

/* hero-illustration-side — illustration left, text right */
.couture-hero--illu { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px,5vw,80px); max-width: 1440px; margin: 0 auto; padding: clamp(48px,8vw,120px) var(--c-gutter,32px); align-items: center; }
.couture-hero--illu .hero-illu-art { margin: 0; aspect-ratio: 4/5; overflow: hidden; }
.couture-hero--illu .hero-illu-art img { width: 100%; height: 100%; object-fit: cover; }
.couture-hero--illu .hero-illu-fallback { width: 100%; height: 100%; background: linear-gradient(135deg, var(--c-accent) 0%, var(--c-ink) 100%); }
.couture-hero--illu .hero-illu-text h1 { font-family: var(--c-display); font-size: clamp(48px,8vw,96px); line-height: 1; margin: 12px 0 24px; }
.couture-hero--illu .hero-illu-text p { color: var(--c-muted); font-size: 18px; line-height: 1.5; max-width: 56ch; }
.couture-hero--illu .hero-illu-cta { margin-top: 28px; }
.couture-hero--illu .hero-illu-cta a { color: var(--c-ink); text-decoration: none; border-bottom: 1px solid var(--c-ink); padding-bottom: 2px; font-family: var(--c-mono); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
@media (max-width: 768px) { .couture-hero--illu { grid-template-columns: 1fr; } }

/* ============================================================================
   V4.20 — 4 NEW FOOTER VARIANTS
   ============================================================================ */

/* utility-table — minimal table-of-info, plain DTC */
.couture-footer--utility { background: var(--c-paper-2); padding: clamp(48px,6vw,72px) var(--c-gutter,32px) 24px; border-top: 1px solid var(--c-line); }
/* V4.64 — Stripe/Vercel-style footer polish.
   Wider brand block on left + 3 link cols. Branded CTA button.
   Bottom row split: copy + promise on left, legal links inline on right.
   Operator night auto-pilot — make footers feel like real big-business
   sites, not plain link grids. */
.couture-footer--utility-v2 {
  padding: clamp(64px,7vw,96px) var(--c-gutter,32px) 28px;
  color: var(--c-ink) !important;
}
.couture-footer--utility-v2 .utility-grid {
  max-width: 1280px;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: clamp(40px, 5vw, 80px);
  padding-bottom: 56px;
  border-bottom: 1px solid var(--c-line);
}
.couture-footer--utility-v2 .utility-col--brand {
  max-width: 360px;
}
.couture-footer--utility-v2 .utility-col--brand .brand,
.couture-footer--utility-v2 .utility-col--brand a.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 18px;
  text-decoration: none;
  color: var(--c-ink);
}
.couture-footer--utility-v2 .utility-col--brand .brand-logo {
  height: 36px;
  max-width: 160px;
  object-fit: contain;
}
.couture-footer--utility-v2 .utility-tagline {
  font-size: 14px;
  line-height: 1.55;
  color: var(--c-ink-soft, var(--c-ink));
  margin: 0 0 22px;
}
.couture-footer--utility-v2 .utility-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  background: var(--c-ink);
  color: var(--c-paper);
  text-decoration: none;
  border-radius: var(--c-card-radius, 6px);
  font-family: var(--c-body);
  font-size: 13px;
  font-weight: 600;
  transition: background .15s, transform .15s;
}
.couture-footer--utility-v2 .utility-cta:hover {
  background: var(--c-accent);
  transform: translateY(-1px);
}
.couture-footer--utility-v2 .utility-col h4 {
  font-family: var(--c-mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin: 0 0 16px;
  color: var(--c-muted);
  font-weight: 600;
}
.couture-footer--utility-v2 .utility-col a {
  display: block;
  padding: 5px 0;
  color: var(--c-ink) !important;
  text-decoration: none;
  font-size: 13px;
  transition: color .12s;
}
.couture-footer--utility-v2 .utility-col a:hover {
  color: var(--c-accent) !important;
}
.couture-footer--utility-v2 .utility-foot {
  max-width: 1280px;
  margin: 0 auto !important;
  padding-top: 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.couture-footer--utility-v2 .utility-foot-left,
.couture-footer--utility-v2 .utility-foot-right {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 24px;
  align-items: center;
}
.couture-footer--utility-v2 .utility-copy,
.couture-footer--utility-v2 .utility-promise {
  font-family: var(--c-mono);
  font-size: 11px;
  letter-spacing: .08em;
  color: var(--c-muted);
}
.couture-footer--utility-v2 .utility-foot-right .couture-fineprint,
.couture-footer--utility-v2 .utility-foot-right .couture-fineprint a {
  font-family: var(--c-mono);
  font-size: 11px;
  letter-spacing: .08em;
  color: var(--c-muted);
  text-decoration: none;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.couture-footer--utility-v2 .utility-foot-right .couture-fineprint a:hover {
  color: var(--c-ink);
}
.couture-footer--utility-v2 .utility-foot-right .couture-fineprint > div {
  display: inline-block;
  margin-right: 14px;
}
@media (max-width: 920px) {
  .couture-footer--utility-v2 .utility-grid {
    grid-template-columns: 1fr 1fr;
  }
  .couture-footer--utility-v2 .utility-col--brand {
    grid-column: 1 / -1;
    max-width: 100%;
  }
}
@media (max-width: 540px) {
  .couture-footer--utility-v2 .utility-grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}
.couture-footer--utility .utility-grid { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 32px 48px; padding-bottom: 36px; border-bottom: 1px solid var(--c-line); }
.couture-footer--utility .utility-col h4 { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 14px; color: var(--c-muted); }
.couture-footer--utility .utility-col p { color: var(--c-muted); font-size: 14px; line-height: 1.55; margin: 0 0 12px; }
.couture-footer--utility .utility-col a { display: block; padding: 4px 0; color: var(--c-ink); text-decoration: none; font-size: 14px; }
.couture-footer--utility .utility-col a:hover { color: var(--c-accent); }
.couture-footer--utility .utility-foot { max-width: 1280px; margin: 0 auto; padding-top: 24px; display: flex; flex-wrap: wrap; gap: 12px 32px; justify-content: space-between; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }

/* sitemap-flat — full sitemap dump in 4-5 columns */
/* V4.56 — paper-bg footer variants must reset color to ink. Base
   .couture-footer sets color:var(--c-paper) for dark-bg footers;
   light-bg variants need explicit color flip or the whole footer
   becomes white-on-white. Operator R12 audit caught this. */
.couture-footer--sitemap,
.couture-footer--minimal,
.couture-footer--signoff,
.couture-footer--storyteller-warm,
.couture-footer--gallery-colophon,
.couture-footer--utility-table { color: var(--c-ink) !important; }
.couture-footer--sitemap { padding: clamp(64px,8vw,96px) var(--c-gutter,32px) 32px; border-top: 1px solid var(--c-line); background: var(--c-paper); }
.couture-footer--sitemap .sitemap-head { max-width: 1280px; margin: 0 auto 36px; display: grid; grid-template-columns: 1fr 2fr; gap: 32px; align-items: start; }
.couture-footer--sitemap .sitemap-head p { color: var(--c-muted); font-size: 16px; line-height: 1.55; margin: 0; }
/* V4.69 — sitemap footer polish parity with utility-table v2.
   Operator R12 Round 13: each footer variant should feel polished,
   not just utility-table. Bump padding, line-height, link spacing. */
.couture-footer--sitemap {
  padding: clamp(64px,8vw,96px) var(--c-gutter,32px) 28px !important;
}
.couture-footer--sitemap .sitemap-head {
  max-width: 1280px;
  margin: 0 auto 36px !important;
  padding-bottom: 36px;
  border-bottom: 1px solid var(--c-line);
}
.couture-footer--sitemap .sitemap-head p {
  font-size: 15px;
  line-height: 1.55;
  color: var(--c-ink-soft, var(--c-ink));
  margin: 16px 0 0;
  max-width: 56ch;
}
.couture-footer--sitemap .sitemap-cols { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 24px 40px; padding: 40px 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.couture-footer--sitemap .sitemap-col h4 {
  font-family: var(--c-mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--c-muted);
  font-weight: 600;
  margin: 0 0 14px;
}
.couture-footer--sitemap .sitemap-cols a:hover { color: var(--c-accent) !important; }
.couture-footer--sitemap .sitemap-foot {
  padding-top: 28px !important;
  font-family: var(--c-body);
  text-transform: none;
  letter-spacing: 0;
  font-size: 13px;
  color: var(--c-muted);
}
.couture-footer--sitemap .sitemap-cols a { color: var(--c-ink); text-decoration: none; padding: 4px 0; font-size: 14px; }
.couture-footer--sitemap .sitemap-cols a:hover { color: var(--c-accent); }
.couture-footer--sitemap .sitemap-foot { max-width: 1280px; margin: 0 auto; padding-top: 24px; display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.couture-footer--sitemap .sitemap-foot a { color: inherit; }
@media (max-width: 768px) { .couture-footer--sitemap .sitemap-head { grid-template-columns: 1fr; } }

/* signoff-stamp — single centered sign-off */
/* V4.69 — signoff footer polish. Add accent bar above brand mark
   for visual rhythm + tighten link weight + slightly larger nav links. */
.couture-footer--signoff {
  padding: clamp(80px,10vw,140px) var(--c-gutter,32px) 32px;
  text-align: center;
  border-top: 1px solid var(--c-line);
  position: relative;
}
.couture-footer--signoff::before {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  background: var(--c-accent);
  margin: 0 auto 36px;
}
.couture-footer--signoff .signoff-line {
  margin-top: 12px !important;
}
.couture-footer--signoff .signoff-nav a {
  font-size: 14px;
  font-weight: 500;
  transition: color .15s;
}
.couture-footer--signoff .signoff-nav a:hover { color: var(--c-accent) !important; }
.couture-footer--signoff-original-pad-marker { padding: 0; }
.couture-footer--signoff .signoff-mark { display: inline-block; }
.couture-footer--signoff .signoff-line { font-family: var(--c-display); font-style: italic; font-size: clamp(24px,3vw,36px); color: var(--c-ink); max-width: 36ch; margin: 32px auto 40px; line-height: 1.3; }
.couture-footer--signoff .signoff-nav { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: center; padding: 24px 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); margin-bottom: 24px; }
.couture-footer--signoff .signoff-nav a { color: var(--c-ink); text-decoration: none; font-size: 14px; }
/* V4.53 — operator R10 audit: footer-foot was 11px mono uppercase
   muted = unreadable. Now: 13px body sans normal-case ink (full
   contrast). Same fix below for couture-fineprint variants. */
.couture-footer--signoff .signoff-foot { font-family: var(--c-body); font-size: 13px; letter-spacing: 0; text-transform: none; color: var(--c-ink); display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; align-items: center; }
.couture-footer--signoff .signoff-foot a { color: inherit; }

/* newsletter-banner — newsletter form takes full width */
.couture-footer--nlbanner { padding: 0 0 0; border-top: 1px solid var(--c-line); background: var(--c-paper-2); }
.couture-footer--nlbanner .nlbanner { background: var(--c-ink); color: var(--c-paper); padding: clamp(56px,8vw,96px) var(--c-gutter,32px); text-align: center; }
.couture-footer--nlbanner .nlbanner h2 { font-family: var(--c-display); font-size: clamp(36px,5vw,56px); line-height: 1.1; color: var(--c-paper); margin: 0 0 16px; }
.couture-footer--nlbanner .nlbanner p { color: var(--c-paper); opacity: .82; max-width: 56ch; margin: 0 auto 32px; font-size: 17px; line-height: 1.5; }
.couture-footer--nlbanner .nlbanner-form { display: flex; gap: 8px; max-width: 480px; margin: 0 auto; padding: 6px; border: 1px solid var(--c-paper); border-radius: 999px; background: rgba(255,255,255,.03); }
/* V4.69 — newsletter-banner footer polish: pill-shaped form,
   premium input/button treatment, accent button. */
.couture-footer--nlbanner .nlbanner-form input {
  flex: 1;
  padding: 12px 18px !important;
  background: transparent !important;
  border: none !important;
  color: var(--c-paper) !important;
  font-family: var(--c-body);
  font-size: 14px;
  outline: none;
}
.couture-footer--nlbanner .nlbanner-form input::placeholder {
  color: rgba(255,255,255,.55);
}
.couture-footer--nlbanner .nlbanner-form button {
  padding: 12px 22px !important;
  background: var(--c-accent) !important;
  color: var(--c-paper) !important;
  border: none !important;
  border-radius: 999px;
  font-family: var(--c-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  cursor: pointer;
  transition: background .2s, transform .15s;
}
.couture-footer--nlbanner .nlbanner-form button:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
}
.couture-footer--nlbanner .nlbanner-form input { flex: 1; border: 0; padding: 12px 14px; background: transparent; color: var(--c-paper); font-family: var(--c-body); font-size: 16px; }
.couture-footer--nlbanner .nlbanner-form input::placeholder { color: var(--c-paper); opacity: .55; }
.couture-footer--nlbanner .nlbanner-form button { background: var(--c-paper); color: var(--c-ink); border: 0; padding: 0 24px; font-family: var(--c-mono); letter-spacing: .12em; text-transform: uppercase; font-size: 12px; cursor: pointer; }
.couture-footer--nlbanner .nlbanner-bottom { padding: 24px var(--c-gutter,32px); display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; justify-content: space-between; max-width: 1280px; margin: 0 auto; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.couture-footer--nlbanner .nlbanner-bottom nav { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.couture-footer--nlbanner .nlbanner-bottom nav a { color: var(--c-ink); text-decoration: none; }

/* ============================================================================
   V4.20 — 6 NEW SECTION TYPES
   ============================================================================ */

/* testimonial_grid — 4-6 quote cards in a grid */
.couture-tg { padding: clamp(48px,6vw,80px) var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; }
.couture-tg .tg-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.couture-tg .tg-card { background: var(--c-paper-2); padding: 24px; border: 1px solid var(--c-line); display: flex; flex-direction: column; gap: 12px; }
.couture-tg .tg-stars { color: var(--c-accent); letter-spacing: 2px; font-size: 14px; }
.couture-tg .tg-quote { font-family: var(--c-body); font-size: 15px; line-height: 1.5; color: var(--c-ink); flex-grow: 1; margin: 0; }
.couture-tg .tg-foot { display: flex; flex-wrap: wrap; gap: 8px 16px; justify-content: space-between; font-family: var(--c-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
.couture-tg .tg-who { font-weight: 500; color: var(--c-ink); }

/* founder_letter — single signed letter */
.couture-fl { padding: clamp(48px,6vw,96px) var(--c-gutter,32px); max-width: 720px; margin: 0 auto; }
.couture-fl .fl-eyebrow { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 16px; }
.couture-fl h2 { font-family: var(--c-display); font-size: clamp(28px,4vw,40px); line-height: 1.2; margin: 0 0 24px; }
.couture-fl .fl-body p { font-family: var(--c-body); font-size: 17px; line-height: 1.65; color: var(--c-ink); margin: 0 0 16px; }
.couture-fl .fl-sig { font-family: var(--c-display); font-style: italic; font-size: 18px; color: var(--c-ink); margin-top: 32px; padding-top: 16px; border-top: 1px solid var(--c-line); }

/* before_after — 2-image comparison */
.couture-ba { padding: clamp(48px,6vw,80px) var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; }
.couture-ba .ba-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.couture-ba .ba-half { margin: 0; position: relative; aspect-ratio: 1; overflow: hidden; background: var(--c-paper-2); }
.couture-ba .ba-half img { width: 100%; height: 100%; object-fit: cover; display: block; }
.couture-ba .ba-half figcaption { position: absolute; left: 12px; bottom: 12px; background: var(--c-paper); padding: 6px 12px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-ink); }
.couture-ba .ba-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--c-paper-2), var(--c-line)); }
@media (max-width: 768px) { .couture-ba .ba-pair { grid-template-columns: 1fr; } }

/* faq_inline — inline expandable Q&A */
.couture-faq-inline { padding: clamp(48px,6vw,80px) var(--c-gutter,32px); max-width: 880px; margin: 0 auto; }
.couture-faq-inline .faq-inline-list { display: flex; flex-direction: column; }
.couture-faq-inline .faq-inline-item { border-bottom: 1px solid var(--c-line); padding: 20px 0; }
.couture-faq-inline .faq-inline-item summary { cursor: pointer; list-style: none; font-family: var(--c-display); font-size: clamp(18px,2.4vw,22px); color: var(--c-ink); padding-right: 28px; position: relative; }
.couture-faq-inline .faq-inline-item summary::-webkit-details-marker { display: none; }
.couture-faq-inline .faq-inline-item summary::after { content: "+"; position: absolute; right: 0; top: 0; font-family: var(--c-mono); font-size: 22px; color: var(--c-muted); transition: transform .15s; }
.couture-faq-inline .faq-inline-item[open] summary::after { content: "–"; }
.couture-faq-inline .faq-inline-item p { color: var(--c-muted); font-size: 16px; line-height: 1.6; margin: 12px 0 0; max-width: 64ch; }

/* awards_strip — small row of award badges */
.couture-awards { padding: clamp(48px,6vw,72px) var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; text-align: center; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.couture-awards .awards-head { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 24px; }
.couture-awards .awards-row { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 24px 48px; justify-content: center; align-items: center; }
.couture-awards .award { display: flex; flex-direction: column; gap: 4px; align-items: center; min-width: 120px; }
.couture-awards .award strong { font-family: var(--c-display); font-size: 16px; color: var(--c-ink); font-weight: 500; line-height: 1.1; }
.couture-awards .award-year { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; color: var(--c-muted); }
.couture-awards .award-outlet { font-family: var(--c-body); font-size: 13px; color: var(--c-muted); font-style: italic; }

/* gift_card_callout — promotional card */
.couture-gc { padding: clamp(48px,6vw,80px) var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; }
.couture-gc .gc-card { background: var(--c-ink); color: var(--c-paper); padding: clamp(36px,5vw,56px); display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; }
.couture-gc .gc-text h2 { font-family: var(--c-display); font-size: clamp(28px,4vw,40px); line-height: 1.2; margin: 0 0 12px; color: var(--c-paper); }
.couture-gc .gc-text p { color: var(--c-paper); opacity: .82; font-size: 17px; line-height: 1.5; margin: 0 0 24px; max-width: 56ch; }
.couture-gc .gc-cta { display: inline-block; background: var(--c-paper); color: var(--c-ink); padding: 14px 24px; text-decoration: none; font-family: var(--c-mono); letter-spacing: .12em; text-transform: uppercase; font-size: 13px; }
.couture-gc .gc-cta:hover { background: var(--c-accent); color: var(--c-paper); }
.couture-gc .gc-mark { font-family: var(--c-mono); display: flex; flex-direction: column; gap: 4px; padding: 24px; border: 2px solid var(--c-paper); color: var(--c-paper); font-size: clamp(20px,2.6vw,28px); letter-spacing: .12em; text-transform: uppercase; line-height: 1; }
@media (max-width: 768px) { .couture-gc .gc-card { grid-template-columns: 1fr; } .couture-gc .gc-mark { display: none; } }



/* V4.21 — about-page inline figures (operator-flagged 2026-05-02:
   ecoseria.com about page rendered 1100 words with 0 content images).
   Two figure variants: full-width primary + offset inset secondary,
   so weight + rhythm shifts as the eye moves down the page. */
.couture-about-figure { max-width: 1280px; margin: clamp(48px,6vw,80px) auto; padding: 0 var(--c-gutter,32px); }
.couture-about-figure img { display: block; width: 100%; height: auto; aspect-ratio: 4/3; object-fit: cover; border: 1px solid var(--c-line); }
.couture-about-figure figcaption { font-family: var(--c-mono); font-size: 12px; letter-spacing: .08em; color: var(--c-muted); margin-top: 12px; text-transform: uppercase; }
.couture-about-figure--inset { max-width: 720px; margin-left: auto; margin-right: clamp(40px, 12vw, 200px); }
.couture-about-figure--inset img { aspect-ratio: 5/4; }
@media (max-width: 768px) {
  .couture-about-figure--inset { margin-right: var(--c-gutter,32px); margin-left: var(--c-gutter,32px); }
}

/* V4.21 — three structurally-distinct footer philosophies. Each
   breaks the column-grid mold the existing 11 footers all share. */

/* 1. marquee-only — scrolling phrase ticker + tiny copyright */
.couture-footer--marquee { padding: 0; border-top: 1px solid var(--c-line); background: var(--c-paper); }
.couture-footer--marquee .marquee-rail { overflow: hidden; padding: clamp(40px,5vw,72px) 0; mask-image: linear-gradient(to right, transparent 0, black 8%, black 92%, transparent 100%); -webkit-mask-image: linear-gradient(to right, transparent 0, black 8%, black 92%, transparent 100%); }
.couture-footer--marquee .marquee-track { display: inline-flex; gap: 24px; align-items: center; white-space: nowrap; animation: couture-marquee-scroll 60s linear infinite; font-family: var(--c-display); font-size: clamp(28px,4vw,56px); letter-spacing: -.01em; color: var(--c-ink); }
.couture-footer--marquee .marquee-track > span { padding: 0 8px; }
.couture-footer--marquee .marquee-dot { color: var(--c-accent); font-weight: 600; }
.couture-footer--marquee .marquee-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; padding: 16px var(--c-gutter,32px); border-top: 1px solid var(--c-line); font-family: var(--c-mono); font-size: 12px; letter-spacing: .08em; color: var(--c-muted); text-transform: uppercase; }
@keyframes couture-marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-33.333%); } }
@media (prefers-reduced-motion: reduce) { .couture-footer--marquee .marquee-track { animation: none; flex-wrap: wrap; white-space: normal; justify-content: center; } }

/* 2. manifesto-paragraph — one centered closing essay, signed */
.couture-footer--manifesto { padding: clamp(80px,10vw,140px) var(--c-gutter,32px); background: var(--c-paper); border-top: 1px solid var(--c-line); text-align: center; }
.couture-footer--manifesto .manifesto-block { max-width: 64ch; margin: 0 auto clamp(48px,6vw,72px); }
.couture-footer--manifesto .manifesto-line { font-family: var(--c-display); font-size: clamp(20px,2.4vw,28px); line-height: 1.4; color: var(--c-ink); margin: 0 0 24px; font-style: italic; }
.couture-footer--manifesto .manifesto-signoff { font-family: var(--c-mono); font-size: 14px; letter-spacing: .12em; color: var(--c-muted); text-transform: uppercase; margin: 0; }
.couture-footer--manifesto .manifesto-fineprint { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; color: var(--c-muted); text-transform: uppercase; }
.couture-footer--manifesto .manifesto-fineprint a { color: var(--c-muted); text-decoration: underline; text-underline-offset: 2px; }

/* 3. floating-corner-only — no flow footer; fixed pill in bottom-right */
.couture-footer--floating { padding: 0; min-height: 0; }
.couture-footer--floating .floating-pill { position: fixed; bottom: 16px; right: 16px; z-index: 50; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; background: var(--c-ink); color: var(--c-paper); border-radius: 999px; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; box-shadow: 0 4px 16px rgba(0,0,0,.18); transition: transform .2s ease, opacity .2s ease; opacity: .82; }
.couture-footer--floating .floating-pill:hover { opacity: 1; transform: translateY(-2px); }
.couture-footer--floating .floating-pill-mark { color: var(--c-accent); font-weight: 600; }
.couture-footer--floating .floating-pill-name { color: var(--c-paper); }
.couture-footer--floating .couture-fineprint { display: none; } /* legal links hidden on this variant; live in /privacy /terms only */
@media print { .couture-footer--floating .floating-pill { display: none; } }

/* V4.22 — storyteller-warm sub-variants. Same per-archetype footer
   pick used to render the same 2-col layout on every site; now 4
   internal layout sub-variants per-domain hash. */

/* sub-1 (--swap): right column visually leads, left column trails */
.couture-footer--storyteller-1 .storyteller-grid { grid-template-columns: 1fr 1.4fr; }
.couture-footer--storyteller-1 .storyteller-right { padding-right: clamp(24px,3vw,40px); border-right: 1px solid var(--c-line); }
.couture-footer--storyteller-1 .storyteller-left { padding-left: clamp(24px,3vw,40px); }

/* sub-2 (--stacked): centered single-column */
.couture-footer--storyteller-2 .storyteller-stacked { max-width: 720px; margin: 0 auto; padding: clamp(48px,6vw,80px) var(--c-gutter,32px); text-align: center; display: flex; flex-direction: column; gap: clamp(20px,2.4vw,32px); align-items: center; }
.couture-footer--storyteller-2 .storyteller-mark-center { display: inline-flex; }
.couture-footer--storyteller-2 .storyteller-statement-center { font-family: var(--c-display); font-size: clamp(17px,2vw,22px); line-height: 1.5; max-width: 56ch; color: var(--c-ink); margin: 0; font-style: italic; }
.couture-footer--storyteller-2 .storyteller-nav { display: flex; flex-wrap: wrap; gap: 18px 28px; justify-content: center; padding: 0; }
.couture-footer--storyteller-2 .storyteller-contactline { display: flex; flex-wrap: wrap; gap: 14px 28px; justify-content: center; font-family: var(--c-mono); font-size: 13px; color: var(--c-muted); }
.couture-footer--storyteller-2 .storyteller-contactline .storyteller-line { margin: 0; display: inline-flex; gap: 8px; }
.couture-footer--storyteller-2 .storyteller-contactline strong { color: var(--c-muted); font-weight: 500; text-transform: uppercase; letter-spacing: .08em; font-size: 11px; }
.couture-footer--storyteller-2 .storyteller-foot { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }

/* sub-3 (--brandhero): big brand row spans full width, 3-col below */
.couture-footer--storyteller-3 .storyteller-brandhero { padding: clamp(48px,6vw,80px) var(--c-gutter,32px); }
.couture-footer--storyteller-3 .storyteller-bh-top { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding-bottom: clamp(36px,5vw,60px); border-bottom: 1px solid var(--c-line); margin-bottom: clamp(36px,5vw,60px); }
.couture-footer--storyteller-3 .storyteller-bh-top .storyteller-mark { transform: scale(1.4); transform-origin: left center; }
.couture-footer--storyteller-3 .storyteller-bh-tag { font-family: var(--c-display); font-size: clamp(18px,2.2vw,26px); color: var(--c-ink); margin: 16px 0 0; font-style: italic; max-width: 60ch; }
.couture-footer--storyteller-3 .storyteller-bh-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px; }
.couture-footer--storyteller-3 .storyteller-bh-cols > div:empty { display: none; }
.couture-footer--storyteller-3 .storyteller-bh-cols .storyteller-line { margin: 0 0 8px; font-family: var(--c-mono); font-size: 13px; }
.couture-footer--storyteller-3 .storyteller-bh-cols .storyteller-line strong { display: block; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 4px; font-weight: 500; }
.couture-footer--storyteller-3 .storyteller-bh-cols .storyteller-nav { display: flex; flex-direction: column; gap: 10px; }
.couture-footer--storyteller-3 .storyteller-bh-foot { margin-top: clamp(36px,5vw,56px); padding-top: 24px; border-top: 1px solid var(--c-line); font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
@media (max-width: 768px) {
  .couture-footer--storyteller-3 .storyteller-bh-cols { grid-template-columns: 1fr; gap: 24px; }
  .couture-footer--storyteller-3 .storyteller-bh-top .storyteller-mark { transform: scale(1.2); }
}

/* V4.22 — 3 new radical hero variants */

/* asymmetric-overlap: text and image overlap on a diagonal */
.couture-hero--asym { padding: clamp(40px,5vw,80px) var(--c-gutter,32px); display: grid; grid-template-columns: 1fr 1fr; gap: 0; max-width: 1280px; margin: 0 auto; position: relative; }
.couture-hero--asym .asym-img { grid-column: 1; grid-row: 1; transform: rotate(-2deg) translateY(20px); position: relative; z-index: 1; margin-right: -40px; }
.couture-hero--asym .asym-img img { width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; box-shadow: 0 20px 60px rgba(0,0,0,.18); }
.couture-hero--asym .asym-text { grid-column: 2; grid-row: 1; padding: clamp(40px,6vw,80px) 0 0 clamp(40px,6vw,80px); position: relative; z-index: 2; background: var(--c-paper); }
.couture-hero--asym .asym-text h1 { font-family: var(--c-display); font-size: clamp(40px,6vw,72px); line-height: 1; letter-spacing: -.02em; margin: 16px 0 24px; }
.couture-hero--asym .asym-sub { font-family: var(--c-body); font-size: clamp(16px,1.4vw,18px); color: var(--c-ink-soft); max-width: 48ch; line-height: 1.5; }
@media (max-width: 768px) {
  .couture-hero--asym { grid-template-columns: 1fr; gap: 24px; }
  .couture-hero--asym .asym-img { transform: none; margin: 0; grid-row: 1; }
  .couture-hero--asym .asym-text { grid-row: 2; padding: 0; grid-column: 1; }
}

/* type-monolith: pure typography hero, no image, h1 fills viewport */
.couture-hero--monolith { padding: clamp(80px,12vw,160px) var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; min-height: 70vh; display: flex; flex-direction: column; justify-content: center; gap: clamp(24px,3vw,40px); }
.couture-hero--monolith .monolith-eyebrow { font-family: var(--c-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); }
.couture-hero--monolith .monolith-h1 { font-family: var(--c-display); font-size: clamp(56px,11vw,180px); line-height: .85; letter-spacing: -.04em; margin: 0; color: var(--c-ink); }
.couture-hero--monolith .monolith-h1 em { font-style: italic; color: var(--c-accent); }
.couture-hero--monolith .monolith-sub { font-family: var(--c-display); font-style: italic; font-size: clamp(20px,2.4vw,28px); line-height: 1.4; max-width: 56ch; color: var(--c-ink-soft); margin: 0; }
.couture-hero--monolith .monolith-cta { display: inline-flex; align-self: flex-start; padding: 16px 28px; background: var(--c-ink); color: var(--c-paper); font-family: var(--c-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; }
.couture-hero--monolith .monolith-cta:hover { background: var(--c-accent); }

/* ribbon-cascade: headline as 3 cascading ribbons */
.couture-hero--ribbon { padding: clamp(60px,8vw,120px) var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; }
.couture-hero--ribbon .ribbon-eyebrow { font-family: var(--c-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-bottom: clamp(24px,3vw,40px); }
.couture-hero--ribbon .ribbon-stack { display: flex; flex-direction: column; gap: 12px; }
.couture-hero--ribbon .ribbon-line { font-family: var(--c-display); font-size: clamp(40px,7vw,88px); line-height: 1; letter-spacing: -.02em; color: var(--c-ink); align-self: flex-start; padding: 8px 28px 8px 0; }
.couture-hero--ribbon .ribbon-line-1 { background: var(--c-paper2); padding-left: 0; }
.couture-hero--ribbon .ribbon-line-2 { background: var(--c-accent); color: var(--c-paper); padding-left: clamp(40px,8vw,120px); padding-right: 28px; align-self: flex-start; }
.couture-hero--ribbon .ribbon-line-3 { background: var(--c-ink); color: var(--c-paper); padding-left: clamp(80px,16vw,200px); padding-right: 28px; align-self: flex-start; font-style: italic; }
.couture-hero--ribbon .ribbon-sub { margin-top: clamp(32px,4vw,48px); max-width: 56ch; font-family: var(--c-body); font-size: clamp(16px,1.4vw,18px); color: var(--c-ink-soft); line-height: 1.5; }
@media (max-width: 768px) {
  .couture-hero--ribbon .ribbon-line-2 { padding-left: 24px; }
  .couture-hero--ribbon .ribbon-line-3 { padding-left: 48px; }
}

/* V4.22 — shop page sub-variants. Operator-flagged 2026-05-02:
   every shop page used the same header+sidebar+grid structure.
   Now 4 internal layouts per-domain hash. */
.shop-layout--minimal { padding-top: clamp(20px,2vw,32px); }

.shop-layout--split { display: grid; grid-template-columns: 280px 1fr; gap: clamp(32px,5vw,80px); padding-top: clamp(40px,5vw,72px); }
.shop-layout--split .shop-split-head { position: sticky; top: 96px; align-self: flex-start; }
.shop-layout--split .shop-split-head h1 { font-family: var(--c-display); font-size: clamp(36px,5vw,68px); line-height: .95; margin: 0; }
.shop-layout--split .shop-split-head .num { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 12px; }
.shop-layout--split .shop-split-head .lede { color: var(--c-ink-soft); font-size: 15px; margin-top: 16px; max-width: 28ch; }
.shop-layout--split .couture-shop-main { display: flex; flex-direction: column; gap: 24px; }
@media (max-width: 768px) { .shop-layout--split { grid-template-columns: 1fr; } .shop-layout--split .shop-split-head { position: static; } }

.shop-layout--masthead { display: flex; flex-direction: column; gap: clamp(32px,4vw,56px); }
.shop-layout--masthead .couture-shop-head { text-align: center; padding: clamp(48px,6vw,80px) var(--c-gutter,32px) clamp(24px,3vw,40px); border-bottom: 1px solid var(--c-line); }
.shop-layout--masthead .couture-shop-head h1 { font-family: var(--c-display); font-size: clamp(48px,8vw,96px); line-height: .92; margin: 0 auto; max-width: 18ch; letter-spacing: -.02em; }
.shop-layout--masthead .couture-shop-head .num { font-family: var(--c-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 24px; }
.shop-layout--masthead .couture-shop-head .lede { font-family: var(--c-display); font-style: italic; font-size: clamp(16px,1.6vw,20px); margin: 24px auto 0; max-width: 56ch; color: var(--c-ink-soft); }
.shop-layout--masthead .couture-shop-main { padding: 0 var(--c-gutter,32px); }

/* V4.22 — testimonial_grid sub-variants */

/* sub-1 — wall-of-quotes (no card chrome, masonry feel) */
.couture-tg--v1 .tg-wall { columns: 3; column-gap: 32px; padding: 0 var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; }
.couture-tg--v1 .tg-wall-q { display: inline-block; width: 100%; margin: 0 0 32px; break-inside: avoid; padding: 0; border-left: 3px solid var(--c-accent); padding-left: 20px; }
.couture-tg--v1 .tg-wall-q p { font-family: var(--c-display); font-size: clamp(17px,1.8vw,22px); line-height: 1.5; font-style: italic; color: var(--c-ink); margin: 0 0 12px; }
.couture-tg--v1 .tg-wall-q cite { font-family: var(--c-mono); font-size: 12px; letter-spacing: .08em; color: var(--c-muted); font-style: normal; text-transform: uppercase; }
@media (max-width: 1024px) { .couture-tg--v1 .tg-wall { columns: 2; } }
@media (max-width: 600px)  { .couture-tg--v1 .tg-wall { columns: 1; } }

/* sub-2 — big-and-small */
.couture-tg--v2 .tg-feature { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(32px,4vw,64px); padding: 0 var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; }
.couture-tg--v2 .tg-big { padding: clamp(36px,4vw,56px); background: var(--c-paper2); border-radius: var(--c-card-radius); }
.couture-tg--v2 .tg-big-quote { font-family: var(--c-display); font-size: clamp(24px,3vw,38px); line-height: 1.35; margin: 16px 0 24px; color: var(--c-ink); font-style: italic; }
.couture-tg--v2 .tg-big .tg-foot { font-family: var(--c-mono); font-size: 12px; letter-spacing: .08em; color: var(--c-muted); }
.couture-tg--v2 .tg-side { display: grid; grid-template-rows: 1fr 1fr 1fr 1fr; gap: 16px; }
.couture-tg--v2 .tg-side-card { padding: 18px; background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--c-card-radius); }
.couture-tg--v2 .tg-side-card p { margin: 0 0 8px; font-size: 14px; line-height: 1.4; color: var(--c-ink); }
.couture-tg--v2 .tg-side-card cite { font-family: var(--c-mono); font-size: 11px; letter-spacing: .08em; color: var(--c-muted); font-style: normal; }
@media (max-width: 768px) { .couture-tg--v2 .tg-feature { grid-template-columns: 1fr; } .couture-tg--v2 .tg-side { grid-template-rows: auto; grid-template-columns: 1fr 1fr; } }

/* sub-3 — marquee scroll */
.couture-tg--v3 .tg-marquee { overflow: hidden; mask-image: linear-gradient(90deg, transparent 0, black 8%, black 92%, transparent 100%); -webkit-mask-image: linear-gradient(90deg, transparent 0, black 8%, black 92%, transparent 100%); padding: 24px 0; }
.couture-tg--v3 .tg-marquee-track { display: inline-flex; gap: 24px; animation: tg-marquee-scroll 50s linear infinite; }
.couture-tg--v3 .tg-marquee-card { flex: 0 0 360px; padding: 24px 28px; background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--c-card-radius); }
.couture-tg--v3 .tg-marquee-card p { margin: 8px 0 12px; font-size: 14px; line-height: 1.5; color: var(--c-ink); }
.couture-tg--v3 .tg-marquee-card cite { font-family: var(--c-mono); font-size: 11px; letter-spacing: .08em; color: var(--c-muted); font-style: normal; text-transform: uppercase; }
@keyframes tg-marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .couture-tg--v3 .tg-marquee-track { animation: none; flex-wrap: wrap; } }

/* V4.22 — press_wall sub-variants */
.couture-press--v1 .press-strip { display: flex; gap: clamp(20px,2.4vw,32px); padding: 24px var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; overflow-x: auto; scrollbar-width: none; }
.couture-press--v1 .press-strip::-webkit-scrollbar { display: none; }
.couture-press--v1 .press-strip-card { flex: 0 0 320px; padding: 24px 28px; background: var(--c-paper); border-left: 3px solid var(--c-accent); }
.couture-press--v1 .press-strip-card blockquote { font-family: var(--c-display); font-style: italic; font-size: 18px; line-height: 1.4; margin: 0 0 14px; color: var(--c-ink); }
.couture-press--v1 .press-strip-card cite { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; color: var(--c-muted); font-style: normal; text-transform: uppercase; }

.couture-press--v2 .press-stack { list-style: none; padding: 0; margin: 0 auto; max-width: 920px; padding: 0 var(--c-gutter,32px); display: flex; flex-direction: column; gap: clamp(36px,4vw,56px); }
.couture-press--v2 .press-stack li { padding-left: clamp(20px,2.4vw,32px); border-left: 4px solid var(--c-accent); }
.couture-press--v2 .press-stack blockquote { font-family: var(--c-display); font-style: italic; font-size: clamp(22px,2.8vw,34px); line-height: 1.35; margin: 0 0 12px; color: var(--c-ink); }
.couture-press--v2 .press-stack cite { font-family: var(--c-mono); font-size: 13px; letter-spacing: .1em; color: var(--c-muted); font-style: normal; text-transform: uppercase; }

/* V4.22 — stat_wall sub-variants */
.couture-stats--v1 .stat-row { display: flex; align-items: baseline; justify-content: center; gap: 16px; flex-wrap: wrap; padding: clamp(36px,4vw,56px) var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; }
.couture-stats--v1 .stat-row-item { display: inline-flex; flex-direction: column; align-items: center; padding: 0 16px; }
.couture-stats--v1 .stat-row-item strong { font-family: var(--c-display); font-size: clamp(36px,5vw,64px); line-height: 1; color: var(--c-ink); margin-bottom: 6px; }
.couture-stats--v1 .stat-row-item span { font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.couture-stats--v1 .stat-row-sep { font-family: var(--c-display); font-size: 32px; color: var(--c-muted); }

.couture-stats--v2 .stat-stack { max-width: 720px; margin: 0 auto; padding: 0 var(--c-gutter,32px); display: flex; flex-direction: column; gap: clamp(28px,3.4vw,48px); }
.couture-stats--v2 .stat-stack-item { display: grid; grid-template-columns: 200px 1fr; gap: 24px; align-items: baseline; padding-bottom: clamp(20px,2.4vw,32px); border-bottom: 1px solid var(--c-line); }
.couture-stats--v2 .stat-stack-item:last-child { border-bottom: 0; }
.couture-stats--v2 .stat-stack-item dt { font-family: var(--c-display); font-size: clamp(48px,7vw,88px); line-height: 1; color: var(--c-accent); margin: 0; font-weight: 600; }
.couture-stats--v2 .stat-stack-item dd { font-family: var(--c-display); font-style: italic; font-size: clamp(17px,2vw,24px); line-height: 1.4; margin: 0; color: var(--c-ink-soft); }
@media (max-width: 600px) { .couture-stats--v2 .stat-stack-item { grid-template-columns: 1fr; gap: 8px; } }

/* V4.22 — wordmark per-domain style variants (6 looks) */
.brand-word--style0 .brand-word { font-family: var(--c-display); font-weight: 600; letter-spacing: -.01em; text-transform: none; }
.brand-word--style1 .brand-word { font-family: var(--c-display); font-weight: 400; letter-spacing: .14em; text-transform: uppercase; font-size: 0.92em; }
.brand-word--style2 .brand-word { font-family: var(--c-mono); font-weight: 500; letter-spacing: .04em; text-transform: lowercase; }
.brand-word--style3 .brand-word { font-family: var(--c-display); font-weight: 700; letter-spacing: -.03em; text-transform: none; font-style: italic; }
.brand-word--style4 .brand-word { font-family: var(--c-body); font-weight: 600; letter-spacing: .02em; text-transform: capitalize; border-bottom: 2px solid var(--c-accent); padding-bottom: 2px; }
.brand-word--style5 .brand-word { font-family: var(--c-display); font-weight: 800; letter-spacing: -.02em; text-transform: uppercase; font-size: 1.05em; }

/* V4.22 — ritual sub-variants */
.couture-ritual--v1 .ritual-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(20px,2.4vw,32px); padding: 0 var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; }
.couture-ritual--v1 .ritual-card { display: flex; gap: clamp(20px,2.4vw,32px); padding: clamp(20px,2.4vw,32px); background: var(--c-paper2); border-radius: var(--c-card-radius); }
.couture-ritual--v1 .ritual-card-num { font-family: var(--c-display); font-size: clamp(48px,5vw,72px); line-height: 1; color: var(--c-accent); font-weight: 600; flex-shrink: 0; }
.couture-ritual--v1 .ritual-card-text h3 { margin: 0 0 8px; font-family: var(--c-display); font-size: clamp(18px,1.8vw,22px); }
.couture-ritual--v1 .ritual-card-text p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--c-ink-soft); }
@media (max-width: 768px) { .couture-ritual--v1 .ritual-cards { grid-template-columns: 1fr; } }

.couture-ritual--v2 .ritual--overlay { position: relative; background-size: cover; background-position: center; padding: clamp(60px,8vw,120px) var(--c-gutter,32px); border-radius: var(--c-card-radius); margin: 0 var(--c-gutter,32px); max-width: 1280px; margin-left: auto; margin-right: auto; }
.couture-ritual--v2 .ritual-overlay-tint { position: absolute; inset: 0; background: rgba(0,0,0,.55); border-radius: inherit; }
.couture-ritual--v2 .ritual-overlay-list { position: relative; display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; max-width: 880px; }
.couture-ritual--v2 .ritual-overlay-card { background: rgba(255,255,255,.92); padding: 18px 20px; border-radius: var(--c-card-radius); }
.couture-ritual--v2 .ritual-overlay-card .ritual-overlay-num { display: block; font-family: var(--c-mono); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-accent); margin-bottom: 6px; }
.couture-ritual--v2 .ritual-overlay-card h3 { margin: 0 0 6px; font-family: var(--c-display); font-size: 16px; color: #111; }
.couture-ritual--v2 .ritual-overlay-card p { margin: 0; font-size: 13px; color: #444; line-height: 1.4; }
@media (max-width: 768px) { .couture-ritual--v2 .ritual-overlay-list { grid-template-columns: 1fr; } }

/* V4.22 — founder_letter sub-variants */
.couture-fl--v1 .fl-split { display: grid; grid-template-columns: 1.6fr 1fr; gap: clamp(32px,5vw,80px); padding: 0 var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; }
.couture-fl--v1 .fl-split-text { padding-right: 0; }
.couture-fl--v1 .fl-split-sig { font-family: var(--c-mono); font-size: 13px; letter-spacing: .08em; color: var(--c-muted); border-left: 2px solid var(--c-accent); padding-left: 24px; align-self: flex-end; padding-bottom: 8px; }
.couture-fl--v1 .fl-split-sig p { margin: 0; }
@media (max-width: 768px) { .couture-fl--v1 .fl-split { grid-template-columns: 1fr; } .couture-fl--v1 .fl-split-sig { border-left: 0; padding-left: 0; align-self: flex-start; } }

.couture-fl--v2 .fl-quote-card { max-width: 720px; margin: 0 auto; padding: clamp(40px,5vw,72px); background: var(--c-paper2); border-radius: var(--c-card-radius); border-left: 4px solid var(--c-accent); }
.couture-fl--v2 .fl-quote-card .fl-eyebrow { font-family: var(--c-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); margin-bottom: 16px; }
.couture-fl--v2 .fl-quote-card .fl-quote-headline { font-family: var(--c-display); font-style: italic; font-size: clamp(22px,2.6vw,32px); line-height: 1.35; margin: 0 0 24px; color: var(--c-ink); border: 0; padding: 0; }
.couture-fl--v2 .fl-quote-card .fl-quote-body p { font-size: 15px; line-height: 1.6; margin: 0 0 12px; color: var(--c-ink-soft); }
.couture-fl--v2 .fl-quote-card .fl-quote-sig { margin-top: 24px; font-family: var(--c-mono); font-size: 12px; letter-spacing: .1em; color: var(--c-muted); }

/* V4.22 — categories_strip sub-variants */
.couture-cat-strip--v1 .strip-row { display: flex; gap: 16px; overflow-x: auto; padding: 0 var(--c-gutter,32px) 8px; max-width: 1280px; margin: 0 auto; scrollbar-width: thin; }
.couture-cat-strip--v1 .strip-row .strip-tile { flex: 0 0 200px; }
.couture-cat-strip--v2 .strip-mosaic { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 220px; gap: 16px; padding: 0 var(--c-gutter,32px); max-width: 1280px; margin: 0 auto; }
.couture-cat-strip--v2 .strip-mosaic .strip-tile--lg { grid-column: span 2; grid-row: span 2; }
@media (max-width: 768px) { .couture-cat-strip--v2 .strip-mosaic { grid-template-columns: repeat(2, 1fr); } .couture-cat-strip--v2 .strip-mosaic .strip-tile--lg { grid-column: span 2; grid-row: auto; } }

/* ============================================================ */
/* V4.57 — WooCommerce shop-page styling (operator R12 audit)
   Default WC archive page on Couture themes was rendering as plain
   "SHOP" h1 + 3-column product grid + ugly default sort dropdown +
   no categories nav. Looked like vanilla WP, not a real store. This
   block injects Stripe/Shopify-Dawn-style polish: hero header, sticky
   filter+sort bar, styled select, larger card grid with hover, no
   borders/dropshadows on a clean cream bg. Targets WC's emitted
   classes since the shop content is WC-rendered (not our renderer).
   ============================================================ */
.woocommerce-shop .wp-site-blocks,
.post-type-archive-product .wp-site-blocks {
  background: var(--c-paper);
}
.woocommerce-shop .woocommerce-products-header,
.post-type-archive-product .woocommerce-products-header {
  max-width: 1280px;
  margin: 0 auto;
  padding: clamp(48px, 6vw, 80px) var(--c-gutter, 32px) 24px;
}
.woocommerce-shop .woocommerce-products-header__title,
.post-type-archive-product .woocommerce-products-header__title,
body.woocommerce-shop h1.entry-title,
body.post-type-archive-product h1.entry-title {
  font-family: var(--c-display);
  font-size: clamp(48px, 6vw, 80px) !important;
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin: 0 0 12px;
  color: var(--c-ink);
  text-align: left !important;
}
.woocommerce-shop .woocommerce-products-header__title::after,
.post-type-archive-product .woocommerce-products-header__title::after {
  content: "";
  display: block;
  width: 56px;
  height: 3px;
  background: var(--c-accent);
  margin-top: 18px;
}
/* Result count + sort form: turn into a clean sticky filter bar */
.woocommerce-shop .woocommerce-result-count,
.woocommerce-shop .woocommerce-ordering,
.post-type-archive-product .woocommerce-result-count,
.post-type-archive-product .woocommerce-ordering {
  font-family: var(--c-mono);
  font-size: 12px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--c-muted);
}
.woocommerce-shop .woocommerce-result-count,
.post-type-archive-product .woocommerce-result-count {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--c-gutter, 32px) 24px;
  display: flex;
  align-items: center;
}
.woocommerce-shop .woocommerce-ordering,
.post-type-archive-product .woocommerce-ordering {
  max-width: 1280px;
  margin: 0 auto 24px;
  padding: 0 var(--c-gutter, 32px);
  display: flex;
  justify-content: flex-end;
}
.woocommerce-shop .woocommerce-ordering select,
.post-type-archive-product .woocommerce-ordering select {
  appearance: none;
  -webkit-appearance: none;
  background: var(--c-paper);
  background-image: linear-gradient(45deg, transparent 50%, var(--c-ink) 50%), linear-gradient(135deg, var(--c-ink) 50%, transparent 50%);
  background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  border: 1px solid var(--c-line);
  border-radius: var(--c-card-radius, 0);
  padding: 12px 40px 12px 16px;
  font-family: var(--c-body);
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--c-ink);
  cursor: pointer;
  min-width: 200px;
}
.woocommerce-shop .woocommerce-ordering select:focus,
.post-type-archive-product .woocommerce-ordering select:focus {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
}
/* Product grid: enlarge cards, kill default WC inline styles */
.woocommerce-shop ul.products,
.post-type-archive-product ul.products,
.woocommerce-shop .wc-block-grid__products,
.post-type-archive-product .wc-block-grid__products {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--c-gutter, 32px) clamp(60px, 8vw, 120px);
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 32px !important;
  list-style: none;
}
@media (max-width: 1100px) {
  .woocommerce-shop ul.products,
  .post-type-archive-product ul.products,
  .woocommerce-shop .wc-block-grid__products,
  .post-type-archive-product .wc-block-grid__products {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}
@media (max-width: 760px) {
  .woocommerce-shop ul.products,
  .post-type-archive-product ul.products,
  .woocommerce-shop .wc-block-grid__products,
  .post-type-archive-product .wc-block-grid__products {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
.woocommerce-shop li.product,
.post-type-archive-product li.product,
.woocommerce-shop .wc-block-grid__product,
.post-type-archive-product .wc-block-grid__product {
  background: var(--c-paper);
  border: 1px solid transparent;
  transition: border-color .2s, transform .3s;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  float: none !important;
}
.woocommerce-shop li.product:hover,
.post-type-archive-product li.product:hover,
.woocommerce-shop .wc-block-grid__product:hover,
.post-type-archive-product .wc-block-grid__product:hover {
  border-color: var(--c-line);
  transform: translateY(-3px);
}
.woocommerce-shop li.product img,
.post-type-archive-product li.product img,
.woocommerce-shop .wc-block-grid__product img,
.post-type-archive-product .wc-block-grid__product img {
  width: 100% !important;
  aspect-ratio: 4/5;
  object-fit: cover;
  display: block;
  margin: 0 0 14px !important;
}
.woocommerce-shop li.product .woocommerce-loop-product__title,
.post-type-archive-product li.product .woocommerce-loop-product__title,
.woocommerce-shop .wc-block-grid__product-title,
.post-type-archive-product .wc-block-grid__product-title {
  font-family: var(--c-display) !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  font-style: normal !important;
  letter-spacing: -0.005em;
  line-height: 1.3;
  margin: 0 12px 6px !important;
  padding: 0 !important;
  color: var(--c-ink);
  text-transform: none !important;
}
.woocommerce-shop li.product .price,
.post-type-archive-product li.product .price,
.woocommerce-shop .wc-block-grid__product-price,
.post-type-archive-product .wc-block-grid__product-price {
  font-family: var(--c-body) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--c-ink) !important;
  display: block;
  margin: 0 12px 14px !important;
  text-align: left !important;
}
/* Hide the default "Add to cart" button inline — use a clean text link */
.woocommerce-shop li.product .button.add_to_cart_button,
.post-type-archive-product li.product .button.add_to_cart_button,
.woocommerce-shop li.product .added_to_cart {
  display: inline-block;
  margin: 0 12px 16px !important;
  padding: 10px 18px !important;
  background: var(--c-ink) !important;
  color: var(--c-paper) !important;
  border: none !important;
  border-radius: var(--c-card-radius, 0) !important;
  font-family: var(--c-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  transition: background .2s;
}
.woocommerce-shop li.product .button.add_to_cart_button:hover {
  background: var(--c-accent) !important;
  color: var(--c-paper) !important;
}
/* Pagination: clean numbered dots */
.woocommerce-shop .woocommerce-pagination,
.post-type-archive-product .woocommerce-pagination {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--c-gutter, 32px) clamp(48px, 6vw, 80px);
  text-align: center;
}
.woocommerce-shop .woocommerce-pagination ul.page-numbers,
.post-type-archive-product .woocommerce-pagination ul.page-numbers {
  display: inline-flex;
  gap: 6px;
  border: none;
  list-style: none;
  padding: 0;
}
.woocommerce-shop .woocommerce-pagination .page-numbers,
.post-type-archive-product .woocommerce-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 14px;
  border: 1px solid var(--c-line);
  background: var(--c-paper);
  color: var(--c-ink);
  text-decoration: none;
  font-family: var(--c-body);
  font-size: 14px;
  font-weight: 500;
}
.woocommerce-shop .woocommerce-pagination .page-numbers.current,
.post-type-archive-product .woocommerce-pagination .page-numbers.current {
  background: var(--c-ink);
  color: var(--c-paper);
  border-color: var(--c-ink);
}
.woocommerce-shop .woocommerce-pagination .page-numbers:hover,
.post-type-archive-product .woocommerce-pagination .page-numbers:hover {
  background: var(--c-accent);
  color: var(--c-paper);
  border-color: var(--c-accent);
}

/* ============================================================ */
/* ============================================================ */
/* V4.65 — Premium polish pack (operator night auto-pilot, Round 8).
   Applied to ALL pages (not just hero). Adds the small details that
   make a site read as "real fancy business" instead of "generated":
   - Smoother focus states on inputs/buttons
   - Animated underline on body links (slide-in)
   - Hover lift on buttons/cards
   - Selection color tinted by accent
   - Subtle scroll-snap for product grids
   - Anti-aliased buttons
   - Real input styling (instead of WP defaults) */
:root {
  --c-premium-ease: cubic-bezier(.2, .8, .2, 1);
}
::selection {
  background: color-mix(in oklab, var(--c-accent) 25%, transparent);
  color: var(--c-ink);
}
*:focus-visible {
  outline: 2px solid color-mix(in oklab, var(--c-accent) 80%, transparent);
  outline-offset: 2px;
  border-radius: 3px;
}
button, .cta, .cta-btn, .wp-element-button {
  -webkit-font-smoothing: antialiased;
  cursor: pointer;
  transition: transform .15s var(--c-premium-ease), background .2s, border-color .2s, box-shadow .2s, color .2s;
}
button:hover:not(:disabled),
.cta:hover, .cta-btn:hover, .wp-element-button:hover {
  transform: translateY(-1px);
}
button:active:not(:disabled),
.cta:active, .cta-btn:active, .wp-element-button:active {
  transform: translateY(0);
}
input[type="text"], input[type="email"], input[type="search"], input[type="number"],
input[type="tel"], input[type="url"], input[type="password"], textarea, select {
  font-family: inherit;
  font-size: 14px;
  padding: 10px 14px;
  border: 1px solid var(--c-line);
  border-radius: 6px;
  background: var(--c-paper);
  color: var(--c-ink);
  transition: border-color .15s, box-shadow .15s;
}
input[type="text"]:focus, input[type="email"]:focus, input[type="search"]:focus,
input[type="number"]:focus, input[type="tel"]:focus, input[type="url"]:focus,
input[type="password"]:focus, textarea:focus, select:focus {
  outline: none;
  border-color: var(--c-accent);
  box-shadow: 0 0 0 3px color-mix(in oklab, var(--c-accent) 18%, transparent);
}
.tpl-clean-business p a, .tpl-modern-saas p a,
.tpl-clean-business .lede a, .tpl-modern-saas .lede a {
  color: var(--c-ink);
  text-decoration: none;
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0 1px;
  transition: background-size .25s var(--c-premium-ease);
  padding-bottom: 1px;
}
.tpl-clean-business p a:hover, .tpl-modern-saas p a:hover,
.tpl-clean-business .lede a:hover, .tpl-modern-saas .lede a:hover {
  background-size: 100% 1px;
}
/* Smooth scroll anchor jumps */
html { scroll-behavior: smooth; scroll-padding-top: 90px; }

/* V4.59 — couture-hero--business: Stripe/Vercel-style hero for
   clean-business + modern-saas families. Operator R12 round 4
   complaint: "still feels freestyle vs proper fancy business".
   Layout: 2-col grid (text left + image right at >1024px,
   stacked at <1024px). Eyebrow pill, huge headline, sub, dual
   CTA buttons. Background gradient creates depth. */
.couture-hero--business {
  padding: clamp(80px, 10vw, 140px) var(--c-gutter, 32px) clamp(80px, 10vw, 140px) !important;
  background: radial-gradient(ellipse at top right,
    color-mix(in oklab, var(--c-accent) 8%, var(--c-paper)) 0%,
    var(--c-paper) 60%);
  position: relative;
  overflow: hidden;
}
.couture-hero--business .hero-biz-grid {
  max-width: 1280px;
  margin: 0 auto !important;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: center;
}
.couture-hero--business .hero-biz-content {
  max-width: 580px;
}
.couture-hero--business .eyebrow--pill {
  display: inline-block;
  margin-bottom: 28px;
  padding: 7px 16px;
  background: color-mix(in oklab, var(--c-accent) 10%, var(--c-paper));
  border: 1px solid color-mix(in oklab, var(--c-accent) 25%, transparent);
  border-radius: 999px;
  font-family: var(--c-mono);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--c-accent);
  font-weight: 600;
}
.couture-hero--business .hero-biz-headline {
  font-family: var(--c-display);
  font-size: clamp(44px, 6vw, 80px) !important;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 0 0 24px !important;
  color: var(--c-ink);
  max-width: 16ch;
}
.couture-hero--business .hero-biz-headline em {
  font-style: italic;
  color: var(--c-accent);
}
.couture-hero--business .hero-biz-sub {
  font-size: clamp(16px, 1.5vw, 20px);
  line-height: 1.55;
  color: var(--c-ink-soft, var(--c-ink));
  max-width: 52ch;
  margin: 0 0 36px;
}
.couture-hero--business .hero-biz-ctas {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.couture-hero--business .cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 26px;
  border-radius: var(--c-card-radius, 6px);
  font-family: var(--c-body);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: transform .15s, background .2s, border-color .2s;
}
.couture-hero--business .cta-btn--primary {
  background: var(--c-ink);
  color: var(--c-paper);
  border: 1px solid var(--c-ink);
}
.couture-hero--business .cta-btn--primary:hover {
  background: var(--c-accent);
  border-color: var(--c-accent);
  transform: translateY(-1px);
}
.couture-hero--business .cta-btn--primary .cta-arrow {
  transition: transform .2s;
}
.couture-hero--business .cta-btn--primary:hover .cta-arrow {
  transform: translateX(3px);
}
.couture-hero--business .cta-btn--secondary {
  background: transparent;
  color: var(--c-ink);
  border: 1px solid var(--c-line);
}
.couture-hero--business .cta-btn--secondary:hover {
  border-color: var(--c-ink);
  background: var(--c-paper-2);
}
.couture-hero--business .hero-biz-art figure {
  margin: 0;
  border-radius: var(--c-card-radius, 8px);
  overflow: hidden;
  aspect-ratio: 1.1/1;
  position: relative;
  box-shadow:
    0 24px 48px -12px color-mix(in oklab, var(--c-ink) 18%, transparent),
    0 0 0 1px color-mix(in oklab, var(--c-ink) 4%, transparent);
}
.couture-hero--business .hero-biz-art figure img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
@media (max-width: 1024px) {
  .couture-hero--business .hero-biz-grid {
    grid-template-columns: 1fr;
    gap: 56px;
  }
  .couture-hero--business .hero-biz-art figure {
    aspect-ratio: 16/9;
    max-width: 600px;
    margin: 0 auto;
  }
  .couture-hero--business .hero-biz-headline {
    max-width: 100%;
  }
}

/* ============================================================ */
/* V4.57 — Hero professional polish (operator R12: "we have too
   plain everytime same childish freestyle looking websites,
   instead of proper clean nice business websites").
   Make the default centered hero feel like a real business hero
   (Stripe / Linear / Vercel scale): wider headline, larger trust
   pills, real CTA button. Sub-variant CSS in family_sub_variants.js
   can override this base. */
.couture-hero {
  padding: clamp(80px, 10vw, 160px) var(--c-gutter, 32px) clamp(60px, 7vw, 100px) !important;
}
.couture-hero h1 {
  max-width: 18ch;
  margin: 0 auto 24px !important;
}
.couture-hero .eyebrow {
  display: inline-block;
  margin-bottom: 28px;
  padding: 6px 14px;
  background: var(--c-paper-2, rgba(0,0,0,.04));
  border-radius: 999px;
  font-family: var(--c-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--c-accent);
}
/* Real CTA button (was: text link with arrow) */
.couture-hero .hero-cta,
.couture-hero a.cta-btn,
.couture-hero .cta-btn {
  display: inline-block;
  margin-top: 32px;
  padding: 16px 32px;
  background: var(--c-ink);
  color: var(--c-paper);
  text-decoration: none;
  font-family: var(--c-body);
  font-size: 15px;
  font-weight: 500;
  border: none;
  border-radius: var(--c-card-radius, 4px);
  transition: background .2s, transform .15s;
}
.couture-hero .hero-cta:hover,
.couture-hero a.cta-btn:hover,
.couture-hero .cta-btn:hover {
  background: var(--c-accent);
  transform: translateY(-1px);
}

/* ============================================================
   V4.1 DNA AXIS OVERRIDES — generated per site
   spacing_scale=comfortable · grid_density=3up · accent_application=one-detail
   headline_treatment=large-display · navigation_density=menu-heavy
   ============================================================ */
:root {
  --c-section-pad: 180px;
  --c-rhythm:      1.6;
  --c-wrap-max:    1240px;
  --c-grid-cols:   repeat(3, minmax(0, 1fr));
  --c-grid-gap:    36px;
}
.couture-section { padding-block: var(--c-section-pad); }
.couture-section .wrap, .couture-page > * { max-width: var(--c-wrap-max); }
body { line-height: var(--c-rhythm); }
.couture-products .grid, .lookbook-grid, .product-grid, .couture-shelf, .couture-issues-grid, .couture-products-carousel .shelf { display: grid; grid-template-columns: var(--c-grid-cols); gap: var(--c-grid-gap); }
a:not(.brand-logo) { text-decoration: underline; text-decoration-color: var(--c-accent); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.couture-section-head h2, .couture-page-head h1 { font-size: clamp(2.5rem, 6vw, 5.5rem); letter-spacing: -.02em; line-height: 1.02; font-weight: 700; }
.couture-nav { padding: 22px 32px; gap: 28px; font-size: 0.95rem; }

/* --- shelf-card polish (V4.1) ----------------------------------- */
.shelf-card {
  transition: transform .35s ease, box-shadow .35s ease;
  position: relative;
}
.shelf-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 60px -28px color-mix(in oklab, var(--c-ink) 55%, transparent);
}
.shelf-card .shelf-card-img-link {
  display: block; overflow: hidden; position: relative;
}
.shelf-card .shelf-card-img-link img {
  transition: transform .8s cubic-bezier(.2,.8,.2,1);
}
.shelf-card:hover .shelf-card-img-link img {
  transform: scale(1.04);
}
.shelf-card .shelf-price {
  margin-top: 8px; font-weight: 600; font-size: 1.05rem;
}
.shelf-card .shelf-price-amt { color: var(--c-ink); }
.shelf-card .shelf-origin {
  font-size: .75rem; letter-spacing: .08em; text-transform: uppercase;
  color: color-mix(in oklab, var(--c-ink) 60%, var(--c-paper));
  margin-top: 4px;
}

/* V4.20 — per-domain button shape (variant: pill) */
.cta, .cta-btn, button[type=submit], .wp-block-button__link, .wp-element-button,
.couture-cart-chip, .gc-cta, .hero-promo-cta .cta-btn,
.couture-hero--search .hero-search-form button,
.couture-hero--nl .newsletter-form button,
.nlbanner-form button {
  border-radius: 999px;
  
}
.cta, .cta-btn, .hero-promo-cta .cta-btn, .gc-cta {
  padding: 12px 32px;
  display: inline-block;
  font-family: var(--c-mono);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: 13px;
  text-decoration: none;
  transition: transform .15s, background .15s, color .15s;
}

/* === ARCHETYPE: storyteller =================================== */
.couture-archetype-storyteller .couture-section { padding-block: clamp(80px, 10vw, 140px); }
.couture-archetype-storyteller .couture-section + .couture-section { border-top: 1px dashed color-mix(in oklab, var(--c-line) 60%, transparent); }
.couture-archetype-storyteller .couture-section .lede p:first-of-type::first-letter {
  font-family: var(--c-display); font-size: 4em; line-height: .82;
  float: left; padding: .04em .15em 0 0; font-weight: 400;
  color: var(--c-accent);
}
.couture-archetype-storyteller blockquote.callout p,
.couture-archetype-storyteller .pullquote {
  font-family: var(--c-display); font-style: italic;
  font-size: clamp(22px, 2.6vw, 32px); line-height: 1.25;
  max-width: 28ch; margin: 32px auto;
  text-align: center; color: var(--c-ink-soft, var(--c-ink));
}
.couture-archetype-storyteller blockquote.callout cite {
  display: block; text-align: right; font-style: normal;
  font-family: var(--c-mono); font-size: 11px;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-muted); margin-top: 12px;
}
.couture-archetype-storyteller .couture-section-head h2 {
  font-family: var(--c-display); font-weight: 300; font-style: italic;
  letter-spacing: -.01em;
}
/* V4.83 — beef-up storyteller archetype identity. Long-form personal
   feel: drop-cap on first paragraph of each section, tighter reading
   column, hand-written script-style accent on em, signed-off feel. */
.couture-archetype-storyteller {
  background: color-mix(in oklab, var(--c-paper) 96%, var(--c-paper2) 4%);
}
.couture-archetype-storyteller .couture-section p,
.couture-archetype-storyteller .couture-section .lede,
.couture-archetype-storyteller .couture-fl .fl-body {
  max-width: 64ch;
  font-size: 17px;
  line-height: 1.7;
}
/* Drop-cap on first paragraph of every section (storyteller signature) */
.couture-archetype-storyteller .couture-section p:first-of-type::first-letter,
.couture-archetype-storyteller .couture-fl .fl-body p:first-of-type::first-letter {
  font-family: var(--c-display);
  font-size: 4.2em;
  line-height: .85;
  float: left;
  padding: .05em .14em 0 0;
  font-weight: 400;
  color: var(--c-accent);
  font-style: italic;
}
/* em / italic gets accent color (it's an emphasis, not just style) */
.couture-archetype-storyteller .couture-section em,
.couture-archetype-storyteller .couture-section i,
.couture-archetype-storyteller .couture-fl em {
  color: var(--c-accent);
  font-style: italic;
}
/* Section-head .num: hand-numbered chapter feel */
.couture-archetype-storyteller .couture-section-head .num {
  font-family: var(--c-display);
  font-style: italic;
  font-weight: 400;
  font-size: 1.4em;
  color: var(--c-accent);
  margin-bottom: 8px;
  display: block;
}
.couture-archetype-storyteller .couture-section-head .num::before {
  content: "Ch. ";
  font-size: .7em;
  color: var(--c-muted);
  font-style: normal;
  margin-right: 4px;
  text-transform: uppercase;
  letter-spacing: .12em;
}
/* Sign-off feel on founder-letter */
.couture-archetype-storyteller .couture-fl .fl-sig {
  margin-top: 24px;
  font-family: var(--c-display);
  font-style: italic;
  font-size: 1.2em;
  color: var(--c-ink);
}
.couture-archetype-storyteller .couture-fl .fl-sig::before {
  content: "— ";
  color: var(--c-muted);
}
/* Press/testimonial cards get warm-paper feel */
.couture-archetype-storyteller .couture-tg .testimonial,
.couture-archetype-storyteller .couture-press blockquote {
  background: var(--c-paper);
  padding: 28px 32px;
  border-left: 3px solid var(--c-accent);
  border-radius: 0 8px 8px 0;
}


/* ============================================================
   V4.22 MICRO-RANDOMIZER — per-domain visual fingerprint axes
   radius=4px link=underline dashed h1-letter=-.01em h1-trans=uppercase
   img-radius=8px h2-scale=0.95 eyebrow=capitalize
   ============================================================ */
:root {
  --c-card-radius: 4px;
  --c-focus-ring: #2980B9;
  --c-img-radius: 8px;
}
*:focus-visible { outline: 2px solid var(--c-focus-ring); outline-offset: 2px; }
.couture-section { border-top: 2px solid var(--c-line); padding-block: clamp(60px,8vw,96px); }
.couture-section:first-of-type { border-top: 0; }
.couture-page a:not(.cta):not(.cta-btn):not([class*="couture-nav"]):not([class*="couture-footer"] a) { text-decoration: underline dashed; text-underline-offset: 3px; }
h1 { letter-spacing: -.01em; text-transform: uppercase; }
h2 { font-size: calc(var(--c-h2-size, 1.8rem) * 0.95); }
.eyebrow { text-transform: capitalize; }
.cta:hover, .cta-btn:hover, .wp-element-button:hover, button[type=submit]:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.shelf-card, .product-card, .lookbook-card { border-radius: var(--c-card-radius); box-shadow: 0 8px 24px rgba(0,0,0,.10); }
.couture-hero img, .couture-products img, .shelf-card img, .product-card img, .couture-about-figure img { filter: contrast(1.08); border-radius: var(--c-img-radius); }
.couture-page > *, .couture-spatial-vertical > * { max-width: 1280px; }
.couture-section-head { text-align: left; }
.couture-section-head h2 { text-align: left; }
.couture-section { background: var(--c-paper); box-shadow: inset 0 0 240px -120px rgba(0,0,0,.06); }


/* ============================================================
   V4.26 — NAV POSITIONAL VARIANTS
   bottom-fixed | sidebar-right | floating-corner-menu | hamburger-only
   centered-stack | rail-icons | sticky-on-scroll | mega-menu
   ============================================================ */

/* --- bottom-fixed: nav bar pinned to bottom (mobile-app feel) --- */
.couture-nav.couture-nav-bottom-fixed {
  position: fixed; left: 0; right: 0; bottom: 0; top: auto;
  background: var(--c-paper);
  border-top: 1px solid var(--c-line);
  border-bottom: 0;
  z-index: 50;
  padding: 12px 18px;
  box-shadow: 0 -4px 16px rgba(0,0,0,.06);
}
body { padding-bottom: 0; }
body:has(.couture-nav.couture-nav-bottom-fixed) { padding-bottom: 78px; }

/* --- sidebar-right: similar to side-rail but mirror — handled via
       _v426SidebarRight flag inside navSideRail markup */
.couture-nav-siderail[data-side="right"],
.couture-nav-sidebar-right .couture-nav-siderail {
  left: auto; right: 0;
  border-right: 0;
  border-left: 1px solid var(--c-line);
}
body:has(.couture-nav-siderail[data-side="right"]) { padding-left: 0; padding-right: 240px; }

/* --- floating-corner-menu: small fixed menu in top-right corner --- */
.couture-nav.couture-nav-floating-corner-menu {
  position: fixed; top: 24px; right: 24px; bottom: auto; left: auto;
  background: var(--c-paper);
  border: 1px solid var(--c-line);
  border-radius: 12px;
  padding: 10px 14px;
  z-index: 50;
  box-shadow: 0 8px 24px rgba(0,0,0,.10);
  width: auto; max-width: 320px;
  display: inline-flex; flex-direction: column; gap: 6px;
}
.couture-nav.couture-nav-floating-corner-menu .nav-link {
  display: block; padding: 4px 0; font-size: 13px;
}

/* --- hamburger-only: hide the nav links, only show burger --- */
.couture-nav.couture-nav-hamburger-only {
  background: transparent;
  border: 0;
  padding: 16px 24px;
  position: absolute; top: 0; left: 0; right: 0;
  z-index: 50;
}
.couture-nav.couture-nav-hamburger-only .nav-link,
.couture-nav.couture-nav-hamburger-only .nav-search,
.couture-nav.couture-nav-hamburger-only .nav-account { display: none; }
.couture-nav.couture-nav-hamburger-only::after {
  content: '☰';
  position: absolute; top: 16px; right: 24px;
  font-size: 24px;
  color: var(--c-ink);
  cursor: pointer;
}

/* --- centered-stack: logo on top, menu below, both centered ---
   V4.57 — operator R12: was rendering as a 73px-tall thin masthead
   with logo+nav on one stacked column. Now it actually FEELS like a
   masthead — taller (110-140px), brand logo gets bumped to 56px,
   menu row separated by hairline border, generous breathing room.
   Apple/Wired/NYT/magazine-style. */
.couture-nav.couture-nav-centered-stack {
  flex-direction: column !important;
  align-items: center !important;
  gap: 22px !important;
  padding: 32px 24px 0 !important;
  border-bottom: 1px solid var(--c-line);
  text-align: center;
  background: var(--c-paper);
}
.couture-nav.couture-nav-centered-stack .brand {
  margin: 0 auto;
  display: block;
}
.couture-nav.couture-nav-centered-stack .brand-logo {
  height: 56px !important;
  max-width: 280px !important;
  margin: 0 auto;
}
.couture-nav.couture-nav-centered-stack .brand-word {
  font-family: var(--c-display);
  font-size: 38px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.couture-nav.couture-nav-centered-stack > nav {
  width: 100%;
  border-top: 1px solid var(--c-line);
  padding: 18px 0 18px;
  margin-top: 8px;
}
.couture-nav.couture-nav-centered-stack > nav ul,
.couture-nav.couture-nav-centered-stack ul {
  display: flex !important;
  gap: 36px !important;
  justify-content: center !important;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
}
.couture-nav.couture-nav-centered-stack > nav ul li a,
.couture-nav.couture-nav-centered-stack ul li a {
  font-family: var(--c-body);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--c-ink);
  padding: 6px 0;
  border-bottom: 2px solid transparent;
  transition: border-color .2s;
}
.couture-nav.couture-nav-centered-stack > nav ul li a:hover {
  border-color: var(--c-accent);
}
.couture-nav.couture-nav-centered-stack .actions {
  position: absolute;
  top: 32px;
  right: 24px;
  display: flex;
  gap: 16px;
}

/* --- rail-icons: narrow left rail with icon-only menu --- */
.couture-nav-siderail[data-rail="icons"],
.couture-nav-rail-icons .couture-nav-siderail {
  width: 64px;
  padding: 24px 12px;
  align-items: center;
}
.couture-nav-siderail[data-rail="icons"] .nav-link,
.couture-nav-rail-icons .couture-nav-siderail .nav-link {
  font-size: 0;            /* hide label */
  width: 40px; height: 40px;
  display: flex; align-items: center; justify-content: center;
}
.couture-nav-siderail[data-rail="icons"] .nav-link::before,
.couture-nav-rail-icons .couture-nav-siderail .nav-link::before {
  content: '·';
  font-size: 24px;
}
body:has(.couture-nav-siderail[data-rail="icons"]) { padding-left: 64px; }

/* --- sticky-on-scroll: V4.60 — Vercel/Linear-style condensing nav
       with backdrop blur. Operator R12: real-business feel. Scrolls
       with page until 80px scrolled, then condenses (smaller padding,
       shrunk logo, blurred translucent bg). Scroll-down behavior
       hides via translate, scroll-up brings back. */
.couture-nav.couture-nav-sticky-on-scroll {
  position: sticky; top: 0;
  z-index: 100;
  transition: transform .3s ease, padding .25s, background .25s, backdrop-filter .25s, border-color .25s;
  border-bottom: 1px solid transparent;
  background: var(--c-paper);
}
body[data-scroll-dir="down"] .couture-nav.couture-nav-sticky-on-scroll { transform: translateY(-100%); }
/* Once scrolled past 80px, body[data-scrolled="1"] is set by the JS
   in nav-scroll-direction.js. We use this to switch to "condensed"
   visual treatment: translucent paper bg + blur + tighter padding. */
body[data-scrolled="1"] .couture-nav.couture-nav-sticky-on-scroll {
  background: color-mix(in oklab, var(--c-paper) 80%, transparent);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  border-bottom-color: color-mix(in oklab, var(--c-ink) 8%, transparent);
  padding-top: 10px;
  padding-bottom: 10px;
}
body[data-scrolled="1"] .couture-nav.couture-nav-sticky-on-scroll .brand-logo {
  height: 32px !important;
  transition: height .25s;
}

/* --- mega-menu: V4.60 — REAL Stripe/Shopify-style full-width
       dropdown panel. Was a class-only wrapper that did nothing
       visible; now renders an actual panel HTML (see nav.js
       _navAsClass mega-menu branch) and CSS shows it on hover.
       Panel is full-viewport-width, slides down with backdrop blur,
       has category grid + featured CTA + promo line. */
.couture-nav.couture-nav-mega-menu {
  position: relative;
  z-index: 100;
}
.couture-nav.couture-nav-mega-menu .mega-panel {
  position: absolute;
  top: 100%; left: 0; right: 0;
  background: var(--c-paper);
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
  box-shadow: 0 24px 48px -12px rgba(0,0,0,.12);
  padding: 32px 0 36px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity .2s, transform .2s, visibility .2s;
  pointer-events: none;
}
.couture-nav.couture-nav-mega-menu:hover .mega-panel,
.couture-nav.couture-nav-mega-menu:focus-within .mega-panel {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
}
.couture-nav.couture-nav-mega-menu .mega-panel-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 var(--c-gutter, 32px);
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 56px;
  align-items: start;
}
.couture-nav.couture-nav-mega-menu .mega-panel-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px 24px;
}
.couture-nav.couture-nav-mega-menu .mega-panel-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px;
  border-radius: var(--c-card-radius, 6px);
  text-decoration: none;
  color: var(--c-ink);
  transition: background .15s;
}
.couture-nav.couture-nav-mega-menu .mega-panel-item:hover {
  background: var(--c-paper-2, color-mix(in oklab, var(--c-ink) 5%, var(--c-paper)));
}
.couture-nav.couture-nav-mega-menu .mega-panel-letter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: color-mix(in oklab, var(--c-accent) 12%, var(--c-paper));
  color: var(--c-accent);
  font-family: var(--c-display);
  font-weight: 600;
  font-size: 18px;
  border-radius: var(--c-card-radius, 6px);
  flex-shrink: 0;
}
.couture-nav.couture-nav-mega-menu .mega-panel-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.couture-nav.couture-nav-mega-menu .mega-panel-name {
  font-family: var(--c-body);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0;
  text-transform: capitalize;
}
.couture-nav.couture-nav-mega-menu .mega-panel-count {
  font-size: 12px;
  color: var(--c-muted);
}
.couture-nav.couture-nav-mega-menu .mega-panel-featured {
  padding-left: 32px;
  border-left: 1px solid var(--c-line);
}
.couture-nav.couture-nav-mega-menu .mega-panel-eyebrow {
  font-family: var(--c-mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--c-muted);
  margin-bottom: 14px;
}
.couture-nav.couture-nav-mega-menu .mega-panel-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  background: var(--c-ink);
  color: var(--c-paper);
  text-decoration: none;
  border-radius: var(--c-card-radius, 6px);
  font-family: var(--c-body);
  font-size: 13px;
  font-weight: 600;
}
.couture-nav.couture-nav-mega-menu .mega-panel-cta:hover {
  background: var(--c-accent);
}
.couture-nav.couture-nav-mega-menu .mega-panel-promo {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--c-line);
  font-family: var(--c-body);
  font-size: 13px;
  color: var(--c-ink-soft, var(--c-ink));
}
.couture-nav.couture-nav-mega-menu .mega-panel-promo p { margin: 0; }
@media (max-width: 768px) {
  .couture-nav.couture-nav-mega-menu .mega-panel { display: none; }
}

/* --- mega-menu (legacy hover indicator under hovered link) --- */
.couture-nav.couture-nav-mega-menu .nav-link[data-mega] {
  position: relative;
}
.couture-nav.couture-nav-mega-menu .nav-link[data-mega]:hover::after {
  content: '';
  position: absolute; left: 0; right: 0; top: 100%;
  height: 2px; background: var(--c-accent);
}


/* ============================================================
   V4.23 TEMPLATE-FAMILY OVERRIDES — clean-business
   ============================================================ */

.tpl-clean-business {
  --c-card-radius: 8px;
  --c-img-radius: 8px;
}

/* Headings: clean sans, semibold/bold, NEVER italic */
.tpl-clean-business h1, .tpl-clean-business h2, .tpl-clean-business h3 {
  font-family: var(--c-display);
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.1;
  font-style: normal !important;
  text-transform: none;
}
.tpl-clean-business h1 { font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 700; }
.tpl-clean-business h2 { font-size: clamp(1.6rem, 3vw, 2.4rem); }

/* Body — clean, generous leading */
.tpl-clean-business p, .tpl-clean-business .lede {
  font-family: var(--c-body);
  font-size: 1rem;
  line-height: 1.6;
  font-weight: 400;
}
.tpl-clean-business .lede {
  font-size: 1.15rem;
  color: color-mix(in oklab, var(--c-ink) 75%, var(--c-paper));
  font-weight: 400;
}

/* Eyebrow: small caps, restrained */
.tpl-clean-business .eyebrow {
  font-family: var(--c-body);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--c-accent);
  background: transparent !important;
  padding: 0 !important;
}

/* Cards: soft shadow, rounded — like Stripe / Notion */
.tpl-clean-business .shelf-card,
.tpl-clean-business .product-card,
.tpl-clean-business .lookbook-card {
  background: var(--c-paper);
  border: 1px solid color-mix(in oklab, var(--c-ink) 8%, transparent);
  border-radius: 8px;
  padding: 16px;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.tpl-clean-business .shelf-card:hover,
.tpl-clean-business .product-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px -8px rgba(0,0,0,.08);
  border-color: color-mix(in oklab, var(--c-ink) 14%, transparent);
}
.tpl-clean-business .shelf-card img,
.tpl-clean-business .product-card img {
  border-radius: 6px;
  filter: none;
}

/* Buttons: solid accent fill, rounded — Stripe primary CTA */
.tpl-clean-business .cta, .tpl-clean-business .cta-btn,
.tpl-clean-business button[type=submit], .tpl-clean-business .wp-element-button {
  background: var(--c-ink);
  color: var(--c-paper);
  border: 0;
  border-radius: 8px;
  padding: 12px 22px;
  font-family: var(--c-body);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
  box-shadow: 0 1px 2px rgba(0,0,0,.10);
  transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.tpl-clean-business .cta:hover, .tpl-clean-business .cta-btn:hover {
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px -2px rgba(0,0,0,.15);
}

/* Sections: generous padding, no decoration, no heavy borders */
.tpl-clean-business .couture-section {
  padding-block: clamp(64px, 8vw, 112px);
  border: 0;
}

/* Nav: clean white sticky bar */
.tpl-clean-business .couture-nav,
.tpl-clean-business header.wp-block-template-part {
  background: var(--c-paper);
  border-bottom: 1px solid color-mix(in oklab, var(--c-ink) 8%, transparent);
  padding: 16px 28px;
}
.tpl-clean-business .couture-nav a {
  color: var(--c-ink);
  font-family: var(--c-body);
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
}

/* Footer: clean light bg, columns of links, no fluff */
.tpl-clean-business .couture-footer {
  background: color-mix(in oklab, var(--c-paper) 96%, var(--c-ink) 4%);
  border-top: 0;
  padding: 64px 32px 40px;
  font-family: var(--c-body);
}


/* ============================================================
   V4.35-V4.39 FAMILY ENVELOPE — clean-business
   weight=bold(700) italic=normal
   width=standard(1280px) h1=large
   ============================================================ */
.tpl-clean-business h1, .tpl-clean-business .couture-page-head h1, .tpl-clean-business .couture-hero h1,
.tpl-clean-business .couture-section-head h2 {
  font-weight: 700 !important;
  font-style: normal !important;
}
.tpl-clean-business h1, .tpl-clean-business .couture-hero h1, .tpl-clean-business .couture-page-head h1 {
  font-size: clamp(3rem, 7vw, 5.5rem) !important;
  line-height: 1.02;
}
.tpl-clean-business h2 {
  font-size: calc(clamp(3rem, 7vw, 5.5rem) * 0.5) !important;
  font-weight: 700 !important;
}

.tpl-clean-business .couture-section .wrap,
.tpl-clean-business .couture-page > *,
.tpl-clean-business .couture-spatial-vertical > * { max-width: 1280px; margin-inline: auto; }



/* ============================================================
   V4.47 SUB-VARIANT — clean-business :: shopify-publisher
   ============================================================ */

/* Shopify PUBLISHER — editorial magazine layout. Multi-column text on
   sections, serif accents, italic pulls, hard rules. NYT/Atlantic vibe. */
.tpl-clean-business--shopify-publisher .couture-hero {
  padding-block: clamp(64px, 9vw, 120px) !important;
  text-align: left;
  border-bottom: 4px double var(--c-ink);
}
.tpl-clean-business--shopify-publisher .couture-hero h1 {
  font-family: var(--c-display) !important;
  font-weight: 800 !important;
  font-size: clamp(3rem, 6vw, 5rem) !important;
  letter-spacing: -.03em !important;
  line-height: .98 !important;
  max-width: 22ch;
}
.tpl-clean-business--shopify-publisher .couture-hero h1 em {
  font-style: italic;
  color: var(--c-accent);
  font-weight: 700;
}
.tpl-clean-business--shopify-publisher .couture-hero .lede,
.tpl-clean-business--shopify-publisher .couture-hero p {
  font-family: var(--c-display);
  font-style: italic;
  font-size: 1.25rem;
  font-weight: 400;
  max-width: 52ch;
}
.tpl-clean-business--shopify-publisher .couture-section + .couture-section {
  border-top: 1px solid var(--c-ink);
}
.tpl-clean-business--shopify-publisher .couture-section-head {
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  margin-bottom: clamp(48px, 6vw, 80px);
}
.tpl-clean-business--shopify-publisher .couture-section-head h2 {
  font-family: var(--c-display) !important;
  font-weight: 800 !important;
  font-size: clamp(2.4rem, 4vw, 3.6rem) !important;
  letter-spacing: -.02em !important;
}
.tpl-clean-business--shopify-publisher .couture-section-head .num {
  font-family: var(--c-mono);
  font-size: 11px;
  letter-spacing: .2em;
  color: var(--c-accent);
  text-transform: uppercase;
}
.tpl-clean-business--shopify-publisher .couture-fl .fl-body,
.tpl-clean-business--shopify-publisher .couture-section p,
.tpl-clean-business--shopify-publisher .couture-story p {
  font-size: 17px;
  line-height: 1.65;
  max-width: 64ch;
}
/* Pull-quote treatment for blockquotes inside sections */
.tpl-clean-business--shopify-publisher blockquote {
  font-family: var(--c-display);
  font-style: italic;
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  line-height: 1.35;
  border-left: 3px solid var(--c-accent);
  padding: 0 0 0 24px;
  margin: 32px 0;
  max-width: 48ch;
}
/* V4.76 — Publisher applied to inner pages: NYT-style 4px-double
   borders + heavy bold serif headings + magazine-column body text
   for about/contact/journal. */
.tpl-clean-business--shopify-publisher .couture-page-head,
.tpl-clean-business--shopify-publisher .couture-shop-head,
.tpl-clean-business--shopify-publisher .couture-journal-head {
  border-bottom: 4px double var(--c-ink);
  padding-block: clamp(56px, 8vw, 96px) !important;
}
.tpl-clean-business--shopify-publisher .couture-page-head h1,
.tpl-clean-business--shopify-publisher .couture-shop-head h1,
.tpl-clean-business--shopify-publisher .couture-journal-head h1 {
  font-family: var(--c-display) !important;
  font-weight: 800 !important;
  font-size: clamp(2.6rem, 5vw, 4rem) !important;
  letter-spacing: -.03em !important;
}
.tpl-clean-business--shopify-publisher .couture-fl,
.tpl-clean-business--shopify-publisher .couture-tg,
.tpl-clean-business--shopify-publisher .couture-press,
.tpl-clean-business--shopify-publisher .couture-story-timeline,
.tpl-clean-business--shopify-publisher .couture-faq,
.tpl-clean-business--shopify-publisher .couture-stats {
  border-top: 1px solid var(--c-ink);
}
.tpl-clean-business--shopify-publisher .couture-fl h2,
.tpl-clean-business--shopify-publisher .couture-tg h2,
.tpl-clean-business--shopify-publisher .couture-press h2,
.tpl-clean-business--shopify-publisher .couture-story-timeline h2,
.tpl-clean-business--shopify-publisher .couture-faq h2,
.tpl-clean-business--shopify-publisher .couture-contact-section h2 {
  font-family: var(--c-display) !important;
  font-weight: 800 !important;
  font-size: clamp(2rem, 3.6vw, 3rem) !important;
  letter-spacing: -.02em !important;
}
.tpl-clean-business--shopify-publisher .couture-fl em,
.tpl-clean-business--shopify-publisher .couture-tg em,
.tpl-clean-business--shopify-publisher .couture-press em,
.tpl-clean-business--shopify-publisher .couture-faq em {
  color: var(--c-accent);
  font-style: italic;
}


/* ============================================================
   V4.78 PER-VARIANT NAV — clean-business :: shopify-publisher
   ============================================================ */

/* Publisher nav: NYT/magazine masthead — serif bold + thick double border bottom */
.tpl-clean-business--shopify-publisher .couture-nav-topbar { background: var(--c-paper) !important; border-bottom: 4px double var(--c-ink) !important; padding: 24px 40px !important; }
.tpl-clean-business--shopify-publisher .couture-nav-topbar nav a { font-family: var(--c-display) !important; font-weight: 700 !important; font-size: 15px !important; letter-spacing: -.005em !important; color: var(--c-ink) !important; }
.tpl-clean-business--shopify-publisher .couture-nav-topbar nav a:hover { color: var(--c-accent) !important; }
.tpl-clean-business--shopify-publisher .couture-nav-topbar .brand-logo { height: 44px !important; }
.tpl-clean-business--shopify-publisher .couture-nav-topbar .brand-word { font-family: var(--c-display); font-weight: 800; font-size: 24px; }


/* ============================================================
   V4.81 PER-VARIANT POLISH — clean-business :: shopify-publisher
   ============================================================ */

/* Polish: very long h2 with display-800 + 4rem can overflow narrow
   columns. Add overflow-wrap so words break cleanly. */
.tpl-clean-business--shopify-publisher .couture-section-head h2,
.tpl-clean-business--shopify-publisher .couture-page-head h1,
.tpl-clean-business--shopify-publisher .couture-shop-head h1 {
  overflow-wrap: anywhere;
  word-break: normal;
}
/* On narrow viewports clamp h1 down */
@media (max-width: 700px) {
  .tpl-clean-business--shopify-publisher .couture-page-head h1,
  .tpl-clean-business--shopify-publisher .couture-hero h1 {
    font-size: clamp(2rem, 9vw, 2.8rem) !important;
  }
}


/* ============================================================
   V4.48 MICRO-AXES — clean-business :: kniquella.com
   button=soft card=minimal align=left
   weight=+0 accent=one-pop
   sectPad=generous eyebrow=underline sectBg=accented-3rd
   imgRadius=0
   ============================================================ */

/* Button shape */
.tpl-clean-business .cta, .tpl-clean-business .cta-btn,
.tpl-clean-business button[type=submit], .tpl-clean-business .wp-element-button {
  border-radius: 8px !important;
  padding: 12px 22px !important;
  font-weight: 600 !important;
  
  background: var(--c-ink) !important; color: var(--c-paper) !important;
  border: 0 !important;
  
}


/* Card style */
.tpl-clean-business .shelf-card, .tpl-clean-business .product-card, .tpl-clean-business .lookbook-card {
  border-radius: 4px !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Hero alignment + weight nudge */
.tpl-clean-business .couture-hero { text-align: left !important; }
.tpl-clean-business .couture-hero h1 {
  
  
}
/* V4.53 — STRONGER center alignment. Operator R10: "content not at
   center still, some is some is at left". V4.51 only forced sect-
   level — but per-section sub-variants (couture-fl/couture-press/
   couture-process-diagram/couture-ba) had their own internal align.
   Now: cascade !important across EVERY children of every section. */
.tpl-clean-business .couture-section,
.tpl-clean-business .couture-section-head,
.tpl-clean-business .couture-section-head h2,
.tpl-clean-business .couture-section h2,
.tpl-clean-business .couture-section h3,
.tpl-clean-business .couture-section .lede,
.tpl-clean-business .couture-section p,
.tpl-clean-business .couture-section blockquote,
.tpl-clean-business .couture-fl,
.tpl-clean-business .couture-fl .fl-body,
.tpl-clean-business .couture-press,
.tpl-clean-business .couture-process-diagram,
.tpl-clean-business .couture-ba,
.tpl-clean-business .couture-pullquote,
.tpl-clean-business .couture-stat-wall,
.tpl-clean-business .couture-feature-banner,
.tpl-clean-business .couture-newsletter,
.tpl-clean-business .couture-appointment-cta { text-align: left !important; }


/* Accent intensity — links + borders */
.tpl-clean-business a:not(.cta):not(.cta-btn):not([class*="couture-nav"]) { color: var(--c-accent); }



/* Section padding scale */
.tpl-clean-business .couture-section { padding-block: clamp(96px, 12vw, 160px) !important; }

/* Eyebrow style */
.tpl-clean-business .eyebrow { display:inline-block;color:#2980B9;border-bottom:2px solid #2980B9;padding:0 0 4px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:transparent !important; }

/* Section bg rhythm */
.tpl-clean-business .couture-section:nth-of-type(3n) { background: color-mix(in oklab, var(--c-paper) 92%, var(--c-accent) 8%); }

/* Image radius */
.tpl-clean-business .couture-hero img,
.tpl-clean-business .shelf-card img,
.tpl-clean-business .product-card img,
.tpl-clean-business .lookbook-card img,
.tpl-clean-business .couture-about-figure img {
  border-radius: 0 !important;
}

/* V4.51 — nav micro-axes (density / link style / brand placement /
   actions layout). Operator R7: "tired of seeing this font and
   navigation at top like this EVERY SINGLE WEBSITE". */
.tpl-clean-business .couture-nav,
.tpl-clean-business .couture-nav-topbar,
.tpl-clean-business header.wp-block-template-part {
  padding: 12px 24px !important;
  
}
.tpl-clean-business .couture-nav nav,
.tpl-clean-business .couture-nav-topbar nav,
.tpl-clean-business header.wp-block-template-part nav {
  gap: 20px !important;
  
}
.tpl-clean-business .couture-nav a,
.tpl-clean-business .couture-nav-topbar a,
.tpl-clean-business header.wp-block-template-part nav a {
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: .02em !important;
  font-family: var(--c-display) !important;
  
  
}


.tpl-clean-business .couture-nav .brand .brand-word,
.tpl-clean-business .couture-nav-topbar .brand .brand-word {
  font-size: 20px !important;
}
.tpl-clean-business .couture-nav .actions {
  gap: 14px;
}


/* ============================================================
   V4.52 INNER-PAGE STYLES — kniquella.com
   about=narrow-strip contact=eyebrow-stack shop=banner-overlay
   journal=narrow-strip help=banner-overlay product-card=overlay-info
   ============================================================ */

.couture-page--about .couture-page-head, .couture-page--about .couture-hero {
  background: var(--c-ink);
  color: var(--c-paper);
  text-align: center;
  padding-block: clamp(40px, 6vw, 72px);
}
.couture-page--about .couture-page-head h1, .couture-page--about .couture-hero h1,
.couture-page--about .couture-page-head p, .couture-page--about .couture-hero p,
.couture-page--about .couture-page-head .eyebrow, .couture-page--about .couture-hero .eyebrow { color: var(--c-paper) !important; }
.couture-page--about .couture-page-head h1, .couture-page--about .couture-hero h1 {
  font-size: clamp(1.8rem, 3.5vw, 2.6rem) !important;
}


.couture-page--contact .couture-page-head, .couture-page--contact .couture-hero {
  text-align: center;
  padding-block: clamp(80px, 11vw, 144px);
  background: var(--c-paper);
}
.couture-page--contact .couture-page-head .eyebrow, .couture-page--contact .couture-hero .eyebrow {
  font-size: 14px !important;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 16px;
  display: inline-block;
}
.couture-page--contact .couture-page-head h1, .couture-page--contact .couture-hero h1 {
  font-size: clamp(2.8rem, 6vw, 5rem) !important;
  font-weight: 800 !important;
  letter-spacing: -.03em;
  line-height: 1;
  max-width: 16ch; margin-inline: auto;
}
.couture-page--contact .couture-page-head img, .couture-page--contact .couture-hero img { display: none !important; }


.couture-page--shop .couture-page-head, .couture-page--shop .couture-hero {
  position: relative;
  min-height: 50vh;
  padding-block: clamp(64px, 9vw, 120px);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  overflow: hidden;
}
.couture-page--shop .couture-page-head img, .couture-page--shop .couture-hero img {
  position: absolute !important; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
  filter: brightness(.55);
}
.couture-page--shop .couture-page-head > *:not(img), .couture-page--shop .couture-hero > *:not(img) {
  position: relative; z-index: 2;
}
/* V4.70 — operator R12 night auto-pilot: when banner-overlay style
   was picked but the renderer didn't emit an <img> (e.g. minimal
   contact hero), the white text rendered on cream bg = invisible.
   Use :has() to scope white-text rules to ONLY the variant when an
   img child IS present. Browsers without :has() fall back to dark
   text via the OUTER selector (no-img heroes get var(--c-ink)). */
.couture-page--shop .couture-page-head:has(img) h1,
.couture-page--shop .couture-hero:has(img) h1,
.couture-page--shop .couture-page-head:has(img) p,
.couture-page--shop .couture-hero:has(img) p,
.couture-page--shop .couture-page-head:has(img) .eyebrow,
.couture-page--shop .couture-hero:has(img) .eyebrow { color: var(--c-paper) !important; }
.couture-page--shop .couture-page-head:has(img) h1,
.couture-page--shop .couture-hero:has(img) h1 {
  text-shadow: 0 2px 16px rgba(0,0,0,.4);
}
.couture-page--shop .couture-page-head h1, .couture-page--shop .couture-hero h1 {
  font-size: clamp(2.4rem, 5vw, 4rem) !important;
}
/* When no img: explicit dark text + remove min-height so it doesn't
   take half the viewport for nothing. */
.couture-page--shop .couture-page-head:not(:has(img)),
.couture-page--shop .couture-hero:not(:has(img)) {
  min-height: auto;
  background: var(--c-paper);
}
.couture-page--shop .couture-page-head:not(:has(img)) h1,
.couture-page--shop .couture-hero:not(:has(img)) h1,
.couture-page--shop .couture-page-head:not(:has(img)) p,
.couture-page--shop .couture-hero:not(:has(img)) p { color: var(--c-ink) !important; }
.couture-page--shop .couture-page-head:not(:has(img)) .eyebrow,
.couture-page--shop .couture-hero:not(:has(img)) .eyebrow { color: var(--c-accent) !important; }


.couture-page--journal .couture-page-head, .couture-page--journal .couture-hero {
  background: var(--c-ink);
  color: var(--c-paper);
  text-align: center;
  padding-block: clamp(40px, 6vw, 72px);
}
.couture-page--journal .couture-page-head h1, .couture-page--journal .couture-hero h1,
.couture-page--journal .couture-page-head p, .couture-page--journal .couture-hero p,
.couture-page--journal .couture-page-head .eyebrow, .couture-page--journal .couture-hero .eyebrow { color: var(--c-paper) !important; }
.couture-page--journal .couture-page-head h1, .couture-page--journal .couture-hero h1 {
  font-size: clamp(1.8rem, 3.5vw, 2.6rem) !important;
}


.couture-page--help .couture-page-head, .couture-page--help .couture-hero {
  position: relative;
  min-height: 50vh;
  padding-block: clamp(64px, 9vw, 120px);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center;
  overflow: hidden;
}
.couture-page--help .couture-page-head img, .couture-page--help .couture-hero img {
  position: absolute !important; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 0;
  filter: brightness(.55);
}
.couture-page--help .couture-page-head > *:not(img), .couture-page--help .couture-hero > *:not(img) {
  position: relative; z-index: 2;
}
/* V4.70 — operator R12 night auto-pilot: when banner-overlay style
   was picked but the renderer didn't emit an <img> (e.g. minimal
   contact hero), the white text rendered on cream bg = invisible.
   Use :has() to scope white-text rules to ONLY the variant when an
   img child IS present. Browsers without :has() fall back to dark
   text via the OUTER selector (no-img heroes get var(--c-ink)). */
.couture-page--help .couture-page-head:has(img) h1,
.couture-page--help .couture-hero:has(img) h1,
.couture-page--help .couture-page-head:has(img) p,
.couture-page--help .couture-hero:has(img) p,
.couture-page--help .couture-page-head:has(img) .eyebrow,
.couture-page--help .couture-hero:has(img) .eyebrow { color: var(--c-paper) !important; }
.couture-page--help .couture-page-head:has(img) h1,
.couture-page--help .couture-hero:has(img) h1 {
  text-shadow: 0 2px 16px rgba(0,0,0,.4);
}
.couture-page--help .couture-page-head h1, .couture-page--help .couture-hero h1 {
  font-size: clamp(2.4rem, 5vw, 4rem) !important;
}
/* When no img: explicit dark text + remove min-height so it doesn't
   take half the viewport for nothing. */
.couture-page--help .couture-page-head:not(:has(img)),
.couture-page--help .couture-hero:not(:has(img)) {
  min-height: auto;
  background: var(--c-paper);
}
.couture-page--help .couture-page-head:not(:has(img)) h1,
.couture-page--help .couture-hero:not(:has(img)) h1,
.couture-page--help .couture-page-head:not(:has(img)) p,
.couture-page--help .couture-hero:not(:has(img)) p { color: var(--c-ink) !important; }
.couture-page--help .couture-page-head:not(:has(img)) .eyebrow,
.couture-page--help .couture-hero:not(:has(img)) .eyebrow { color: var(--c-accent) !important; }


/* Product card layout (applied via [data-product-card-layout="<n>"] attr) */

.couture-products[data-product-card-layout="overlay-info"] .shelf-card, .couture-products[data-product-card-layout="overlay-info"] .product-card {
  position: relative; overflow: hidden;
  border: 0 !important;
}
.couture-products[data-product-card-layout="overlay-info"] .shelf-card img, .couture-products[data-product-card-layout="overlay-info"] .product-card img {
  aspect-ratio: 4 / 5 !important; object-fit: cover; width: 100%;
  display: block;
}
.couture-products[data-product-card-layout="overlay-info"] .shelf-card .meta, .couture-products[data-product-card-layout="overlay-info"] .product-card .meta {
  position: absolute; bottom: 0; left: 0; right: 0;
  padding: 16px 18px;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.65) 100%);
  color: white !important;
}
.couture-products[data-product-card-layout="overlay-info"] .shelf-card .meta h3, .couture-products[data-product-card-layout="overlay-info"] .product-card .meta h3,
.couture-products[data-product-card-layout="overlay-info"] .shelf-card .meta .price, .couture-products[data-product-card-layout="overlay-info"] .product-card .meta .price { color: white !important; }

