/* ==========================================================================
   Internet Wizards — "Orange Hour" — main.css
   Every colour, size, radius and spacing resolves to assets/css/tokens.css,
   which is generated from DESIGN.md. Line-heights and fluid clamps follow
   the scale written in DESIGN.md.
   ========================================================================== */

:root {
  --ff-display: var(--font-display), "Noto Sans Display", "Segoe UI", Arial, sans-serif;
  --ff-body: var(--font-body), "Noto Sans", "Segoe UI", Arial, sans-serif;
  --header-h: 76px;
  --gutter: clamp(20px, 3vw, var(--spacing-lg));
  --sec-pad: clamp(var(--spacing-2xl), 9vw, var(--spacing-4xl));
  --band-pad: clamp(var(--spacing-xl), 7vw, var(--spacing-3xl));
  --fs-display: clamp(2.75rem, 1.65rem + 3.9vw, 5rem);
  --fs-h1: clamp(2.125rem, 1.45rem + 2.4vw, 3.5rem);
  --fs-h2: clamp(1.625rem, 1.3rem + 1.15vw, 2.25rem);
  --fs-h3: clamp(1.3125rem, 1.15rem + 0.55vw, 1.625rem);
  --fs-stat: clamp(2.5rem, 2rem + 1.9vw, 4rem);
  --lh-body: 1.6;
  --ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --shadow-stage: 0 40px 80px -20px color-mix(in srgb, var(--color-primary) 45%, transparent);
  --shadow-lift: 0 24px 48px -24px color-mix(in srgb, var(--color-primary) 30%, transparent);
  /* theme: light (cloud) */
  --bg: var(--color-cloud);
  --fg: var(--color-ink);
  --muted: var(--color-ink-soft);
  --line: var(--color-line);
  --surface: var(--color-neutral);
  --accent-text: var(--color-ink);
  --ghost-bg: var(--color-neutral);
}
[data-theme="white"] { --bg: var(--color-neutral); --surface: var(--color-neutral); }
[data-theme="dark"] {
  --bg: var(--color-primary);
  --fg: var(--color-on-dark);
  --muted: var(--color-on-dark-soft);
  --line: var(--color-line-dark);
  --surface: var(--color-primary-raised);
  --accent-text: var(--color-tertiary);
  --ghost-bg: var(--color-primary-raised);
}
[data-theme="orange"] {
  --bg: var(--color-tertiary);
  --fg: var(--color-ink);
  --muted: var(--color-ink);
  --line: color-mix(in srgb, var(--color-ink) 18%, transparent);
  --surface: var(--color-neutral);
  --accent-text: var(--color-ink);
  --ghost-bg: var(--color-neutral);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  font-family: var(--ff-body);
  font-size: var(--text-body);
  line-height: var(--lh-body);
  font-weight: var(--font-weight-body);
  color: var(--fg);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}
img, svg, video { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
p { text-wrap: pretty; }
:focus-visible { outline: 2px solid var(--color-tertiary); outline-offset: 3px; border-radius: 4px; }
::selection { background: var(--color-tertiary); color: var(--color-ink); }
a, button, summary, label, input, select, textarea { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 16px; top: -120px; z-index: 300; background: var(--color-tertiary); color: var(--color-ink); padding: 10px 16px; border-radius: var(--radius-sm); font-weight: 700; }
.skip:focus { top: 16px; }

/* ---------- Type ---------- */
.t-display { font-family: var(--ff-display); font-size: var(--fs-display); line-height: 1; font-weight: var(--font-weight-display); letter-spacing: var(--tracking-display); text-wrap: balance; }
.t-h1--tight { --fs-h1: clamp(1.75rem, 1.3rem + 1.6vw, 2.75rem); }
.t-h1 { font-family: var(--ff-display); font-size: var(--fs-h1); line-height: 1.04; font-weight: var(--font-weight-headline-lg); letter-spacing: var(--tracking-headline-lg); text-wrap: balance; }
.t-h2 { font-family: var(--ff-display); font-size: var(--fs-h2); line-height: 1.1; font-weight: var(--font-weight-headline-md); letter-spacing: var(--tracking-headline-md); text-wrap: balance; }
.t-h3 { font-family: var(--ff-display); font-size: var(--fs-h3); line-height: 1.15; font-weight: var(--font-weight-headline-sm); letter-spacing: var(--tracking-headline-sm); text-wrap: balance; }
.t-title { font-size: var(--text-title); font-weight: var(--font-weight-title); line-height: 1.3; letter-spacing: var(--tracking-title); }
.t-lead { font-size: var(--text-lead); font-weight: var(--font-weight-lead); line-height: 1.5; }
.t-sm { font-size: var(--text-body-sm); font-weight: var(--font-weight-body-sm); line-height: 1.5; }
.t-label { font-size: var(--text-label); font-weight: var(--font-weight-label); letter-spacing: var(--tracking-label); text-transform: uppercase; line-height: 1; }
.t-num { font-size: var(--text-numeral); font-weight: var(--font-weight-numeral); letter-spacing: var(--tracking-numeral); font-variant-numeric: tabular-nums; }
.muted { color: var(--muted); }
[data-theme="dark"] .muted { font-weight: 500; line-height: 1.62; }
.accent { color: var(--accent-text); }
.u { text-decoration: underline; text-decoration-color: var(--color-tertiary); text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* ---------- Layout ---------- */
.container { width: min(100% - 2 * var(--gutter), var(--spacing-container)); margin-inline: auto; }
.sec { padding-block: var(--sec-pad); background: var(--bg); color: var(--fg); position: relative; }
.sec--band { padding-block: var(--band-pad); }
.sec__head { display: grid; gap: var(--spacing-sm); margin-bottom: clamp(var(--spacing-lg), 5vw, var(--spacing-2xl)); max-width: 44ch; }
.sec__head--row { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: end; max-width: none; gap: var(--spacing-xl); }
.sec__head--tight { align-items: center; margin-bottom: var(--spacing-md); }
.stack { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--spacing-sm); align-content: start; }
.stack--lg { gap: var(--spacing-md); }
.cluster { display: flex; flex-wrap: wrap; align-items: center; gap: var(--spacing-md); }
.mb-lg { margin-bottom: var(--spacing-lg); }
.split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); align-items: start; }
.sticky { position: sticky; top: calc(var(--header-h) + var(--spacing-lg)); }

/* ---------- Eyebrow ---------- */
.eyebrow { display: inline-flex; align-items: center; gap: var(--spacing-2xs); font-family: var(--ff-body); font-size: var(--text-label); font-weight: var(--font-weight-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); line-height: 1.2; }
.dot { width: 8px; height: 8px; border-radius: var(--radius-full); background: var(--color-tertiary); flex: none; }

/* ---------- Buttons & links ---------- */
.btn {
  position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 var(--spacing-md); border-radius: var(--radius-md);
  background: var(--color-tertiary); color: var(--color-ink);
  font-family: var(--ff-body); font-weight: var(--font-weight-title); font-size: var(--text-title); letter-spacing: var(--tracking-title); line-height: 1.2; white-space: nowrap;
  overflow: hidden; transition: transform 0.25s var(--ease), color 0.3s;
}
.btn::before { content: ""; position: absolute; inset: 0; background: var(--color-tertiary-deep); transform: scaleX(0); transform-origin: left; transition: transform 0.45s var(--ease); z-index: -1; }
.btn:hover::before, .btn:focus-visible::before { transform: scaleX(1); }
.btn:active { transform: scale(0.98); }
.btn--lg { min-height: 60px; padding-inline: var(--spacing-lg); }
.btn--sm { min-height: 42px; padding-inline: var(--spacing-sm); font-size: var(--text-body-sm); }
.btn--ghost { background: var(--ghost-bg); color: var(--fg); box-shadow: inset 0 0 0 1px var(--line); }
.btn--ghost::before { background: var(--color-tertiary); }
.btn--ghost:hover, .btn--ghost:focus-visible { color: var(--color-ink); }
.btn--ink { background: var(--color-ink); color: var(--color-on-dark); }
.btn--ink::before { background: var(--color-primary-raised); }
.ar { display: inline-block; transition: transform 0.35s var(--ease); }
.btn:hover .ar, .link:hover .ar, .row:hover .ar { transform: translateX(4px); }
.link { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; position: relative; padding-bottom: 3px; white-space: nowrap; }
.link::after { content: ""; position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; background: var(--color-tertiary); transform: scaleX(0.28); transform-origin: left; transition: transform 0.45s var(--ease); }
.link:hover::after, .link:focus-visible::after { transform: scaleX(1); }

/* ---------- Header ---------- */
.hdr { position: fixed; inset: 0 0 auto 0; z-index: 100; height: var(--header-h); color: var(--color-on-dark); transition: background 0.35s, box-shadow 0.35s, color 0.35s, transform 0.4s var(--ease); }
.hdr[data-theme="light"] { color: var(--color-ink); }
.hdr.is-solid { background: var(--color-neutral); box-shadow: 0 1px 0 var(--color-line); }
.hdr.is-solid[data-theme="dark"] { background: var(--color-primary); box-shadow: 0 1px 0 var(--color-line-dark); }
.hdr__in { height: 100%; display: flex; align-items: center; gap: var(--spacing-lg); }
.logo { display: block; margin-right: auto; }
.logo img { height: 40px; width: auto; }
.logo__light { display: none; }
.hdr[data-theme="light"] .logo__light { display: block; }
.hdr[data-theme="light"] .logo__dark { display: none; }
.hdr__nav { display: flex; gap: var(--spacing-lg); font-size: var(--text-body-sm); font-weight: 600; }
.hdr__nav a { position: relative; padding: 6px 0; }
.hdr__nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--color-tertiary); transform: scaleX(0); transform-origin: left; transition: transform 0.35s var(--ease); }
.hdr__nav a:hover::after, .hdr__nav a:focus-visible::after, .hdr__nav a.is-active::after { transform: scaleX(1); }
.hdr__cta { display: flex; align-items: center; gap: var(--spacing-md); }
.hdr__tel { font-weight: 700; font-size: var(--text-body-sm); font-variant-numeric: tabular-nums; }
.burger { display: none; width: 44px; height: 44px; position: relative; border-radius: var(--radius-sm); }
.burger span { position: absolute; left: 10px; right: 10px; height: 2px; background: currentColor; top: 17px; transition: transform 0.35s var(--ease), top 0.35s; }
.burger span + span { top: 26px; }
body.menu-open .burger span { top: 21px; transform: rotate(45deg); }
body.menu-open .burger span + span { transform: rotate(-45deg); }
body.menu-open .hdr { color: var(--color-on-dark); background: transparent; box-shadow: none; }
body.menu-open .hdr .logo__light { display: none; }
body.menu-open .hdr .logo__dark { display: block; }

/* ---------- Mobile menu ---------- */
.menu { position: fixed; inset: 0; z-index: 90; background: var(--color-primary); color: var(--color-on-dark); padding: calc(var(--header-h) + var(--spacing-lg)) var(--gutter) var(--spacing-xl); display: grid; align-content: space-between; transform: translateY(-102%); transition: transform 0.55s var(--ease), visibility 0s 0.55s; visibility: hidden; overflow: auto; }
body.menu-open .menu { transform: none; visibility: visible; transition: transform 0.55s var(--ease); }
body.menu-open { overflow: hidden; }
.menu__main a { display: block; font-family: var(--ff-display); font-size: clamp(2rem, 8vw, 3rem); font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; padding: 12px 0; border-bottom: 1px solid var(--color-line-dark); }
.menu__contact { display: grid; gap: 8px; color: var(--color-on-dark-soft); font-weight: 600; padding-top: var(--spacing-lg); }

/* ---------- Hero ---------- */
.hero { position: relative; overflow: clip; background: var(--color-primary); color: var(--color-on-dark); padding-top: calc(var(--header-h) + clamp(var(--spacing-xl), 7vw, var(--spacing-3xl))); }
.hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(var(--spacing-lg), 4vw, var(--spacing-2xl)); align-items: center; }
.hero__copy { display: grid; gap: var(--spacing-md); max-width: 60ch; }
.hero__copy .eyebrow { color: var(--color-on-dark-soft); }
.hero__deck { color: var(--color-on-dark-soft); font-weight: 500; max-width: 52ch; line-height: 1.55; }
.hero__cta { display: flex; flex-wrap: wrap; gap: var(--spacing-sm); margin-top: var(--spacing-2xs); }
.hero__note { color: var(--color-on-dark-soft); max-width: 48ch; }
.hero__stage { position: relative; width: calc(100% + 4vw); max-width: 780px; }
.sun { position: absolute; z-index: 0; width: 92%; aspect-ratio: 1; border-radius: var(--radius-full); right: -26%; top: -22%; background: radial-gradient(circle at 38% 36%, var(--color-amber) 0%, var(--color-tertiary) 52%, var(--color-tertiary-deep) 100%); transform: translateY(90px); opacity: 0; transition: transform 1.6s var(--ease), opacity 1.2s ease; pointer-events: none; }
body.is-loaded .sun { transform: none; opacity: 1; }
.stage { position: relative; z-index: 1; background: var(--color-primary-raised); border: 1px solid var(--color-line-dark); border-radius: var(--radius-xl); padding: var(--spacing-xs); box-shadow: var(--shadow-stage); }
.stage__img { position: relative; overflow: hidden; border-radius: calc(var(--radius-xl) - var(--spacing-xs)); background: var(--color-primary); }
.stage__img img { width: 100%; }
.stage__svg { width: 100%; height: auto; display: block; font-family: var(--ff-body); }
.svg-h text { font-size: 19px; font-weight: 700; letter-spacing: 2px; fill: var(--color-on-dark-soft); }
.svg-links path { fill: none; stroke: var(--color-line-dark); stroke-width: 2; transition: stroke 0.5s; }
.svg-in rect, .svg-mod rect, .svg-gate rect { fill: var(--color-primary-raised); stroke: var(--color-line-dark); stroke-width: 1.5; transition: fill 0.5s, stroke 0.5s; }
.svg-in .t1 { font-size: 21px; font-weight: 700; fill: var(--color-on-dark); }
.svg-mod .t1 { font-size: 22px; font-weight: 700; fill: var(--color-on-dark); transition: fill 0.5s; }
.svg-gate .t1 { font-size: 23px; font-weight: 800; fill: var(--color-on-dark); }
.svg-in .t2, .svg-gate .t2 { font-size: 15px; font-weight: 600; fill: var(--color-on-dark-soft); }
.svg-mod .n { font-size: 17px; font-weight: 800; fill: var(--color-tertiary); font-family: var(--ff-display); transition: fill 0.5s; }
.svg-gate circle { fill: var(--color-tertiary); }
[data-step="0"] .mod-0 rect, [data-step="1"] .mod-1 rect, [data-step="2"] .mod-2 rect, [data-step="3"] .mod-3 rect, [data-step="4"] .mod-4 rect { fill: var(--color-tertiary); stroke: var(--color-tertiary); }
[data-step="0"] .mod-0 text, [data-step="1"] .mod-1 text, [data-step="2"] .mod-2 text, [data-step="3"] .mod-3 text, [data-step="4"] .mod-4 text { fill: var(--color-ink); }
[data-step="0"] .ln-0, [data-step="1"] .ln-1, [data-step="2"] .ln-2, [data-step="3"] .ln-3, [data-step="4"] .ln-4, .ln-gate { stroke: var(--color-tertiary); }
.stage--sm { border-radius: var(--radius-lg); }
.stage--sm .stage__img { border-radius: calc(var(--radius-lg) - var(--spacing-xs)); }
.stage__focus { position: absolute; left: var(--x); top: var(--y); width: var(--w); height: var(--h); border: 2px solid var(--color-tertiary); border-radius: 10px; box-shadow: 0 0 0 200vmax color-mix(in srgb, var(--color-primary) 35%, transparent); transition: left 0.65s var(--ease), top 0.65s var(--ease), width 0.65s var(--ease), height 0.65s var(--ease); pointer-events: none; }
[data-step="0"] .stage__focus { --x: 35.2%; --y: 13.5%; --w: 32.5%; --h: 13.2%; }
[data-step="1"] .stage__focus { --x: 35.2%; --y: 27.6%; --w: 32.5%; --h: 13.2%; }
[data-step="2"] .stage__focus { --x: 35.2%; --y: 41.8%; --w: 32.5%; --h: 13.2%; }
[data-step="3"] .stage__focus { --x: 35.2%; --y: 55.9%; --w: 32.5%; --h: 13.2%; }
[data-step="4"] .stage__focus { --x: 35.2%; --y: 70%; --w: 32.5%; --h: 13.2%; }
.stage__card { position: absolute; z-index: 2; right: -6%; top: 44%; width: 44%; border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--color-line-dark); box-shadow: var(--shadow-stage); background: var(--color-primary-raised); transform: translateY(24px); opacity: 0; transition: transform 0.9s var(--ease) 0.6s, opacity 0.9s ease 0.6s; }
body.is-loaded .stage__card { transform: none; opacity: 1; }
.stage__ctl { padding: var(--spacing-sm) var(--spacing-sm) var(--spacing-2xs); }
.hero__rail { position: relative; z-index: 1; }
.hero__cap { position: relative; z-index: 1; min-height: 3.3em; margin-top: var(--spacing-2xs); padding-inline: var(--spacing-2xs); color: var(--color-on-dark-soft); font-weight: 500; font-size: var(--text-body-sm); line-height: 1.5; max-width: 52ch; }
.hero__cap span { display: none; }
.hero__cap span.is-on { display: block; animation: cap-in 0.5s var(--ease); }
@keyframes cap-in { from { opacity: 0; transform: translateX(-8px); } to { opacity: 1; transform: none; } }

/* ---------- The rail (signature) ---------- */
.rail { display: grid; gap: var(--spacing-2xs); cursor: pointer; }
.rail__labels { display: grid; grid-template-columns: repeat(5, 1fr); text-align: center; font-size: var(--text-label); font-weight: var(--font-weight-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); line-height: 1.2; }
.rail__labels span { transition: color 0.3s; }
.rail__labels span.is-on { color: var(--fg); }
.rail input[type="range"] { -webkit-appearance: none; appearance: none; width: 80%; margin: 0 10%; height: 28px; background: transparent; cursor: pointer; --p: 0%; }
.rail input[type="range"]::-webkit-slider-runnable-track { height: 2px; border-radius: var(--radius-full); background: linear-gradient(90deg, var(--color-tertiary) var(--p), var(--line) 0); }
.rail input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 14px; height: 14px; margin-top: -6px; border-radius: 50%; background: var(--color-tertiary); border: 0; box-shadow: 0 0 0 5px color-mix(in srgb, var(--color-tertiary) 22%, transparent); transition: box-shadow 0.3s; }
.rail input[type="range"]::-moz-range-track { height: 2px; border-radius: 9999px; background: linear-gradient(90deg, var(--color-tertiary) var(--p), var(--line) 0); }
.rail input[type="range"]::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: var(--color-tertiary); border: 0; box-shadow: 0 0 0 5px color-mix(in srgb, var(--color-tertiary) 22%, transparent); }
.rail input[type="range"]:focus-visible { outline: none; }
.rail input[type="range"]:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px var(--bg), 0 0 0 5px var(--fg); }
.rail input[type="range"]:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 3px var(--bg), 0 0 0 5px var(--fg); }

/* ---------- Shelf (work first) ---------- */
.shelf { position: relative; z-index: 1; margin-top: clamp(var(--spacing-2xl), 8vw, var(--spacing-3xl)); padding-bottom: clamp(var(--spacing-xl), 6vw, var(--spacing-2xl)); border-top: 1px solid var(--color-line-dark); }
.shelf__head { display: flex; justify-content: space-between; align-items: center; gap: var(--spacing-md); padding-block: var(--spacing-lg); }
.shelf__head .eyebrow { color: var(--color-on-dark-soft); }
.shelf__track { display: flex; width: max-content; animation: shelf 90s linear infinite; }
.shelf:hover .shelf__track, .shelf:focus-within .shelf__track { animation-play-state: paused; }
@keyframes shelf { to { transform: translateX(-50%); } }
.shelf__list { display: flex; gap: var(--spacing-sm); padding-right: var(--spacing-sm); }
.tile { width: clamp(220px, 23vw, 340px); flex: none; }
.tile__img { aspect-ratio: 4 / 3; border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--color-line-dark); background: var(--color-primary-raised); }
.tile__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; }
.tile__name { margin-top: 10px; font-size: var(--text-body-sm); font-weight: 600; color: var(--color-on-dark-soft); }

/* ---------- Pillars ---------- */
.pillars { display: grid; grid-template-columns: repeat(12, 1fr); gap: var(--spacing-md); }
.pillars .card:nth-child(1), .pillars .card:nth-child(4) { grid-column: span 7; }
.pillars .card:nth-child(2), .pillars .card:nth-child(3) { grid-column: span 5; }
.card { background: var(--surface); color: var(--fg); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--spacing-lg); display: grid; gap: var(--spacing-sm); align-content: start; transition: transform 0.5s var(--ease), box-shadow 0.5s; }
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.card__media { height: clamp(190px, 21vw, 300px); border-radius: var(--radius-md); overflow: hidden; background: var(--color-cloud); border: 1px solid var(--line); margin-bottom: var(--spacing-2xs); }
.card__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; transition: transform 1.2s var(--ease); }
.card__media--contain { background: var(--color-primary); display: grid; place-items: center; }
.card__media--contain img { object-fit: contain; width: 100%; height: 100%; padding: 8%; }
.card:hover .card__media img { transform: scale(1.03); }
.card__tag { font-size: var(--text-label); font-weight: var(--font-weight-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); line-height: 1.3; }
.card__title { position: relative; display: inline-block; justify-self: start; }
.card__title::after { content: ""; position: absolute; left: 0; bottom: -4px; height: 3px; width: 100%; background: var(--color-tertiary); transform: scaleX(0); transform-origin: left; transition: transform 0.5s var(--ease); }
.card:hover .card__title::after, .card:focus-within .card__title::after { transform: scaleX(1); }
.card > p:not(.card__tag) { color: var(--muted); }
.card .link { margin-top: var(--spacing-2xs); }

/* ---------- Products ---------- */
.products { display: grid; }
.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(var(--spacing-lg), 5vw, var(--spacing-3xl)); align-items: center; padding-block: clamp(var(--spacing-xl), 5vw, var(--spacing-2xl)); border-top: 1px solid var(--line); }
.product:last-child { border-bottom: 1px solid var(--line); }
.product:nth-child(even) .product__media { order: 2; }
.product__body { display: grid; gap: var(--spacing-sm); max-width: 52ch; }
.product__body .cluster { margin-top: var(--spacing-2xs); }
.product__media .stage { max-width: 520px; margin-inline: auto; }
.type-tile { aspect-ratio: 4 / 3; max-width: 520px; margin-inline: auto; display: grid; align-content: center; justify-items: start; gap: 2px; background: var(--color-primary-raised); border: 1px solid var(--color-line-dark); border-radius: var(--radius-xl); padding: clamp(var(--spacing-md), 4vw, var(--spacing-xl)); font-family: var(--ff-display); font-weight: 800; letter-spacing: -0.03em; line-height: 1; box-shadow: var(--shadow-stage); }
.type-tile__from { font-family: var(--ff-body); font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-on-dark-soft); margin-bottom: var(--spacing-sm); }
.type-tile__big { font-size: clamp(3rem, 7vw, 5.5rem); color: var(--color-on-dark-soft); }
.type-tile__arrow { font-size: clamp(2.5rem, 5vw, 4rem); color: var(--color-tertiary); line-height: 0.9; }
.type-tile__to { font-size: clamp(3rem, 7vw, 5.5rem); color: var(--color-on-dark); }
.steps4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--spacing-sm); margin-top: var(--spacing-2xs); }
.steps4 li { display: grid; gap: 4px; padding-top: var(--spacing-xs); border-top: 2px solid var(--line); }
.steps4 b { color: var(--accent-text); font-family: var(--ff-display); font-size: 1.25rem; font-weight: 800; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.steps4 span { font-size: var(--text-body-sm); color: var(--muted); font-weight: 600; }
.products__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--spacing-md) var(--spacing-lg); margin-top: var(--spacing-2xl); }

/* ---------- Process rail ---------- */
.process { position: relative; padding-left: 64px; display: grid; gap: clamp(var(--spacing-xl), 4vw, var(--spacing-2xl)); }
.process::before { content: ""; position: absolute; left: 22px; top: 20px; bottom: 20px; width: 2px; background: var(--line); border-radius: var(--radius-full); }
.process__fill { position: absolute; left: 22px; top: 20px; width: 2px; height: max(0px, calc(var(--dot-y, 20px) - 20px)); background: var(--color-tertiary); border-radius: var(--radius-full); transition: height 0.6s var(--ease); }
.process__dot { position: absolute; left: 16px; top: calc(var(--dot-y, 20px) - 7px); width: 14px; height: 14px; border-radius: 50%; background: var(--color-tertiary); box-shadow: 0 0 0 4px var(--bg); transition: top 0.6s var(--ease); }
.step { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--spacing-md); align-items: start; }
.step__num { font-family: var(--ff-display); font-size: var(--fs-stat); font-weight: 800; line-height: 1; letter-spacing: -0.03em; color: transparent; -webkit-text-stroke: 1px var(--muted); min-width: 2.3ch; font-variant-numeric: tabular-nums; transition: color 0.5s, -webkit-text-stroke 0.5s; }
.step.is-on .step__num { color: var(--fg); -webkit-text-stroke: 1px var(--fg); }
.step__body { display: grid; gap: 8px; padding-top: 0.3em; }
.step__body p { color: var(--muted); }

/* ---------- Testimonials ---------- */
.tswitch { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(var(--spacing-lg), 5vw, var(--spacing-2xl)); align-items: start; }
.who-list { position: relative; padding-left: 36px; display: grid; }
.who-list::before { content: ""; position: absolute; left: 10px; top: 14px; bottom: 14px; width: 2px; background: var(--line); border-radius: var(--radius-full); }
.who-list .process__dot { left: 4px; top: calc(var(--dot-y, 14px) - 7px); }
.who { display: grid; gap: 2px; text-align: left; padding: var(--spacing-sm) 0; color: var(--muted); transition: color 0.3s; border-radius: var(--radius-sm); }
.who b { font-weight: 700; font-size: var(--text-title); }
.who span { font-size: var(--text-body-sm); font-weight: 500; }
.who.is-on { color: var(--fg); }
.quotes { display: grid; }
.quote { grid-area: 1 / 1; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: clamp(var(--spacing-lg), 4vw, var(--spacing-xl)); display: grid; gap: var(--spacing-md); opacity: 0; visibility: hidden; transform: translateX(12px); transition: opacity 0.5s ease, transform 0.6s var(--ease), visibility 0s 0.5s; }
.quote.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity 0.5s ease 0.1s, transform 0.6s var(--ease) 0.1s; }
body:not(.js) .quote { opacity: 1; visibility: visible; transform: none; grid-area: auto; margin-bottom: var(--spacing-md); }
.quote__text { font-size: var(--text-lead); line-height: 1.5; font-weight: 500; text-wrap: pretty; }
.quote__text::before { content: "\201C"; display: block; font-family: var(--ff-display); font-size: 4.5rem; line-height: 0.6; height: 0.5em; color: var(--color-tertiary); font-weight: 800; }
.quote__who { display: grid; gap: 2px; font-size: var(--text-body-sm); color: var(--muted); font-weight: 500; }
.quote__who b { color: var(--fg); font-weight: 700; }

/* ---------- Book ---------- */
.book { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(var(--spacing-lg), 5vw, var(--spacing-3xl)); align-items: center; }
.book__img { max-width: 440px; justify-self: center; }
.list { display: grid; gap: 10px; }
.list li { display: flex; gap: 12px; align-items: baseline; font-weight: 500; }
.list li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--color-tertiary); flex: none; transform: translateY(-2px); }

/* ---------- Big question + rows ---------- */
.bigq { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(var(--spacing-lg), 5vw, var(--spacing-2xl)); margin-bottom: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); align-items: start; }
.bigq__q { font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 700; line-height: 1.15; letter-spacing: var(--tracking-headline-md); text-wrap: balance; }
.rows { display: grid; }
.row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--spacing-md); align-items: center; padding: var(--spacing-md) 0; border-top: 1px solid var(--line); transition: padding-left 0.4s var(--ease); }
.rows li:last-child .row { border-bottom: 1px solid var(--line); }
.row:hover { padding-left: var(--spacing-2xs); }
.row__play { width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--line); display: grid; place-items: center; transition: background 0.3s, border-color 0.3s; }
.row__play::after { content: ""; border-left: 10px solid currentColor; border-top: 6px solid transparent; border-bottom: 6px solid transparent; margin-left: 3px; }
.row:hover .row__play { background: var(--color-tertiary); border-color: var(--color-tertiary); color: var(--color-ink); }
.row__date { color: var(--muted); min-width: 104px; }
.row__body { display: grid; gap: 4px; }
.row__title { font-weight: 700; font-size: var(--text-title); letter-spacing: var(--tracking-title); line-height: 1.3; }
.row__desc { color: var(--muted); font-size: var(--text-body-sm); font-weight: 500; }
.row__ar { color: var(--muted); }
.row:hover .row__ar { color: var(--fg); }

/* ---------- FAQ ---------- */
.split--faq { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
.faq { display: grid; }
.faq__item { border-top: 1px solid var(--line); }
.faq__item:last-child { border-bottom: 1px solid var(--line); }
.faq__q, .acc summary { display: flex; justify-content: space-between; align-items: center; gap: var(--spacing-md); padding: var(--spacing-md) 0; cursor: pointer; list-style: none; font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; line-height: 1.2; letter-spacing: var(--tracking-headline-sm); }
.faq__q::-webkit-details-marker, .acc summary::-webkit-details-marker { display: none; }
.pm { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); position: relative; flex: none; transition: background 0.3s, border-color 0.3s, color 0.3s; }
.pm::before, .pm::after { content: ""; position: absolute; left: 50%; top: 50%; background: currentColor; transform: translate(-50%, -50%); }
.pm::before { width: 14px; height: 2px; }
.pm::after { width: 2px; height: 14px; transition: transform 0.4s var(--ease); }
details[open] .pm { background: var(--color-tertiary); border-color: var(--color-tertiary); color: var(--color-ink); }
details[open] .pm::after { transform: translate(-50%, -50%) rotate(90deg); }
.faq__a, .acc__body { padding: 0 0 var(--spacing-md); color: var(--muted); max-width: 60ch; }
.faq__a a, .acc__body a { color: var(--fg); text-decoration: underline; text-decoration-color: var(--color-tertiary); text-decoration-thickness: 2px; text-underline-offset: 3px; }

/* ---------- Opt-in band ---------- */
.optin { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--spacing-xl); align-items: center; }
.optin .t-h2 { max-width: 30ch; }

/* ---------- Contact ---------- */
.contact { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); align-items: start; }
#contact { overflow: clip; }
.contact__big { display: grid; gap: 6px; margin-top: var(--spacing-2xs); }
.contact__big a { font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 800; letter-spacing: var(--tracking-headline-md); line-height: 1.15; width: fit-content; position: relative; }
.contact__big a::after { content: ""; position: absolute; left: 0; bottom: -2px; height: 3px; width: 100%; background: var(--color-tertiary); transform: scaleX(0); transform-origin: left; transition: transform 0.45s var(--ease); }
.contact__big a:hover::after { transform: scaleX(1); }
.contact__form { position: relative; }
.sun--sm { width: 62%; right: -22%; top: auto; bottom: -18%; transform: none; opacity: 1; z-index: 0; }
.form { position: relative; z-index: 1; background: var(--color-primary-raised); border: 1px solid var(--color-line-dark); border-radius: var(--radius-lg); padding: clamp(var(--spacing-md), 3vw, var(--spacing-xl)); box-shadow: var(--shadow-stage); }
.form__fields { display: grid; gap: var(--spacing-sm); }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--spacing-sm); }
.field { display: grid; gap: 6px; }
.field__label { font-size: var(--text-label); font-weight: var(--font-weight-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); }
.input, .textarea { width: 100%; background: var(--color-primary); color: var(--color-on-dark); border: 1px solid var(--color-line-dark); border-radius: var(--radius-sm); padding: 14px var(--spacing-sm); font: inherit; font-weight: 500; min-height: 52px; transition: border-color 0.25s, box-shadow 0.25s; }
.input::placeholder, .textarea::placeholder { color: color-mix(in srgb, var(--color-on-dark-soft) 70%, transparent); }
.input:focus, .textarea:focus { outline: none; border-color: var(--color-tertiary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-tertiary) 30%, transparent); }
.textarea { min-height: 140px; resize: vertical; }
.field__error { display: none; font-size: var(--text-body-sm); color: var(--color-amber); font-weight: 600; }
.field.is-invalid .field__error { display: block; }
.field.is-invalid .input, .field.is-invalid .textarea { border-color: var(--color-amber); }
.form__success { display: none; padding: var(--spacing-md); border-radius: var(--radius-sm); background: var(--color-primary); border: 1px solid var(--color-tertiary); font-weight: 600; }
.form.is-sent .form__fields { display: none; }
.form.is-sent .form__success { display: block; }
.form .cluster { margin-top: var(--spacing-2xs); }

/* ---------- Footer ---------- */
.ftr { background: var(--color-abyss); color: var(--color-on-dark-soft); padding-block: var(--band-pad) var(--spacing-lg); font-size: var(--text-body-sm); font-weight: 500; line-height: 1.55; }
.ftr__top { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 3fr) minmax(0, 3fr) minmax(0, 2.6fr); gap: var(--spacing-xl); }
.ftr__brand img { height: 40px; width: auto; margin-bottom: var(--spacing-sm); }
.ftr__brand p { max-width: 42ch; }
.ftr__tag { margin-top: var(--spacing-sm); font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-on-dark); }
.ftr h3 { font-family: var(--ff-body); font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-on-dark); margin-bottom: var(--spacing-sm); font-weight: 700; }
.ftr__h-gap { margin-top: var(--spacing-lg); }
.ftr ul { display: grid; gap: 8px; }
.ftr a { transition: color 0.25s; }
.ftr a:hover { color: var(--color-on-dark); }
.ftr__contact li { display: grid; gap: 2px; }
.ftr__contact .k { font-size: var(--text-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-on-dark); font-weight: 700; margin-bottom: 2px; }
.ftr__contact li + li { margin-top: var(--spacing-2xs); }
.ftr__social { display: flex !important; gap: var(--spacing-md); margin-top: var(--spacing-md); }
.ftr__social a { color: var(--color-on-dark); font-weight: 700; }
.ftr__bottom { display: flex; justify-content: space-between; flex-wrap: wrap; gap: var(--spacing-sm); margin-top: var(--spacing-2xl); padding-top: var(--spacing-md); border-top: 1px solid var(--color-line-dark); }
.ftr__legal { display: flex; gap: var(--spacing-md); flex-wrap: wrap; }

/* ---------- Reveals & entrance ---------- */
body.js [data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity 0.7s ease, transform 0.8s var(--ease); }
body.js [data-reveal].in { opacity: 1; transform: none; }
body.js [data-stagger] > * { opacity: 0; transform: translateY(16px); transition: opacity 0.7s ease, transform 0.8s var(--ease); transition-delay: calc(var(--i, 0) * 90ms); }
body.js [data-stagger] > .in { opacity: 1; transform: none; }
body.js .hero__copy > * { opacity: 0; transform: translateY(18px); transition: opacity 0.8s ease, transform 0.9s var(--ease); }
body.js.is-loaded .hero__copy > * { opacity: 1; transform: none; }
.hero__copy > :nth-child(1) { transition-delay: 0.05s; }
.hero__copy > :nth-child(2) { transition-delay: 0.15s; }
.hero__copy > :nth-child(3) { transition-delay: 0.3s; }
.hero__copy > :nth-child(4) { transition-delay: 0.42s; }
.hero__copy > :nth-child(5) { transition-delay: 0.52s; }
body.js .hero__stage { opacity: 0; transform: translateX(32px); transition: opacity 0.9s ease 0.25s, transform 1.1s var(--ease) 0.25s; }
body.js.is-loaded .hero__stage { opacity: 1; transform: none; }


/* ---------- Approval card (hero) ---------- */
.approve { padding: var(--spacing-sm) var(--spacing-sm) var(--spacing-xs); display: grid; gap: var(--spacing-2xs); }
.approve__label { display: inline-flex; align-items: center; gap: 6px; font-size: var(--text-label); font-weight: var(--font-weight-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-on-dark-soft); }
.approve__text { font-size: var(--text-body-sm); font-weight: 600; color: var(--color-on-dark); line-height: 1.4; }
.approve__actions { display: flex; gap: 8px; margin-top: 2px; }
.approve__btn { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: var(--radius-sm); background: var(--color-tertiary); color: var(--color-ink); font-size: var(--text-label); font-weight: 700; }
.approve__btn--ghost { background: transparent; color: var(--color-on-dark); box-shadow: inset 0 0 0 1px var(--color-line-dark); }

/* ---------- Five services ---------- */
.svc { display: grid; }
.svc__item { display: grid; grid-template-columns: auto minmax(0, 7fr) minmax(0, 4fr); gap: var(--spacing-md) clamp(var(--spacing-md), 4vw, var(--spacing-2xl)); align-items: start; padding-block: clamp(var(--spacing-lg), 4vw, var(--spacing-2xl)); border-top: 1px solid var(--line); }
.svc__item:last-child { border-bottom: 1px solid var(--line); }
.svc__num { font-family: var(--ff-display); font-size: var(--fs-stat); font-weight: 800; line-height: 1; letter-spacing: -0.03em; color: transparent; -webkit-text-stroke: 1px var(--muted); min-width: 2.3ch; font-variant-numeric: tabular-nums; transition: color 0.5s, -webkit-text-stroke 0.5s; }
.svc__item:hover .svc__num, .svc__item:focus-within .svc__num { color: var(--fg); -webkit-text-stroke: 1px var(--fg); }
.svc__body { display: grid; gap: var(--spacing-sm); max-width: 62ch; }
.svc__title { position: relative; display: inline-block; justify-self: start; }
.svc__title::after { content: ""; position: absolute; left: 0; bottom: -4px; height: 3px; width: 100%; background: var(--color-tertiary); transform: scaleX(0); transform-origin: left; transition: transform 0.5s var(--ease); }
.svc__item:hover .svc__title::after, .svc__item:focus-within .svc__title::after { transform: scaleX(1); }
.svc__lead { font-size: var(--text-lead); font-weight: 600; line-height: 1.45; text-wrap: pretty; }
.svc__ex { font-size: var(--text-body-sm); color: var(--muted); line-height: 1.55; }
.svc__ex b { color: var(--fg); font-weight: 700; }
.svc__aside { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--spacing-md); display: grid; gap: var(--spacing-xs); font-size: var(--text-body-sm); line-height: 1.55; color: var(--muted); align-self: start; margin-top: 0.35em; }
.svc__aside .u { color: var(--fg); font-weight: 700; }

/* ---------- Everything else (compact rows) ---------- */
.more { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(var(--spacing-lg), 5vw, var(--spacing-3xl)); }
.more__item { display: grid; gap: var(--spacing-xs); padding-block: var(--spacing-lg); border-top: 1px solid var(--line); align-content: start; }
.more__item:nth-last-child(-n+2) { border-bottom: 1px solid var(--line); }
.more__item .link { margin-top: var(--spacing-2xs); }

/* ---------- Our own tools (compact band) ---------- */
.tools { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(var(--spacing-lg), 5vw, var(--spacing-3xl)); align-items: center; }
.tools__list { display: grid; }
.tools__item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--spacing-md); align-items: center; padding: var(--spacing-md) 0; border-top: 1px solid var(--line); transition: padding-left 0.4s var(--ease); }
.tools__list li:last-child .tools__item { border-bottom: 1px solid var(--line); }
.tools__item:hover { padding-left: var(--spacing-2xs); }
.tools__name { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 800; letter-spacing: -0.01em; min-width: 9ch; }
.tools__desc { color: var(--muted); font-size: var(--text-body-sm); font-weight: 500; }
.tools__item:hover .row__ar { color: var(--fg); transform: translateX(4px); }

/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
  .hdr__nav, .hdr__tel { display: none; }
  .burger { display: block; }
  .hero__grid { grid-template-columns: minmax(0, 1fr); }
  .hero__stage { width: 100%; max-width: none; margin-top: var(--spacing-md); }
  .stage__card { right: 0; }
  .sun { width: 80%; right: -24%; top: -18%; }
  .sec__head--row, .split, .tswitch, .book, .bigq, .contact, .product { grid-template-columns: minmax(0, 1fr); }
  .svc__item { grid-template-columns: auto minmax(0, 1fr); }
  .svc__aside { grid-column: 2; }
  .tools { grid-template-columns: minmax(0, 1fr); }
  .product:nth-child(even) .product__media { order: 0; }
  .sticky { position: static; }
  .pillars .card { grid-column: span 12 !important; }
  .ftr__top { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .optin { grid-template-columns: minmax(0, 1fr); }
  .book__img { max-width: 360px; }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .pillars .card { grid-column: span 6 !important; }
}
@media (max-width: 599px) {
  :root { --header-h: 64px; }
  .hdr__cta .btn { display: none; }
  .logo img { height: 34px; }
  .btn--lg { min-height: 56px; padding-inline: var(--spacing-md); }
  .hero__cta .btn { flex: 1 1 100%; white-space: normal; text-align: center; }
  .rail__labels { display: block; text-align: center; }
  .rail__labels span { display: none; }
  .rail__labels span.is-on { display: block; }
  .steps4 { grid-template-columns: repeat(2, 1fr); }
  .card { padding: var(--spacing-md); }
  .form__row { grid-template-columns: minmax(0, 1fr); }
  .svc__item { grid-template-columns: minmax(0, 1fr); gap: var(--spacing-sm); }
  .svc__aside { grid-column: auto; }
  .more { grid-template-columns: minmax(0, 1fr); }
  .more__item:nth-last-child(-n+2) { border-bottom: 0; }
  .more__item:last-child { border-bottom: 1px solid var(--line); }
  .tools__item { grid-template-columns: minmax(0, 1fr); gap: var(--spacing-2xs); }
  .tools__item .row__ar { display: none; }
  .ftr__top { grid-template-columns: minmax(0, 1fr); }
  .row { grid-template-columns: minmax(0, 1fr); gap: var(--spacing-2xs); }
  .row__ar { display: none; }
  .row__date { min-width: 0; }
  .row__play { width: 36px; height: 36px; }
  .process { padding-left: 44px; }
  .process::before, .process__fill { left: 12px; }
  .process__dot { left: 6px; }
  .step { grid-template-columns: 1fr; gap: var(--spacing-2xs); }
  .stage__card { position: static; width: 100%; margin-top: var(--spacing-sm); transform: none; opacity: 1; }
  .contact__big a { font-size: var(--fs-h3); }
  .shelf__head { flex-direction: column; align-items: flex-start; }
}


/* ==========================================================================
   Inner pages
   ========================================================================== */

/* ---------- Page head ---------- */
.phead { position: relative; overflow: clip; background: var(--color-primary); color: var(--color-on-dark); padding-top: calc(var(--header-h) + clamp(var(--spacing-lg), 5vw, var(--spacing-2xl))); padding-bottom: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); }
.phead__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(var(--spacing-lg), 4vw, var(--spacing-2xl)); align-items: end; }
.phead__copy { display: grid; gap: var(--spacing-md); }
.phead .t-display { max-width: 16ch; }
.phead .t-h1 { max-width: 24ch; }
.phead__lead { color: var(--color-on-dark-soft); font-weight: 500; max-width: 58ch; }
.phead__aside { display: grid; gap: var(--spacing-sm); align-content: end; }
.phead .sun { width: min(44vw, 520px); right: -12vw; top: -36%; transform: none; opacity: 1; }
.phead--light { background: var(--color-neutral); color: var(--color-ink); }
.phead--light .phead__lead { color: var(--color-ink-soft); }
.phead--light .sun { display: none; }
.phead--light .eyebrow { color: var(--color-ink-soft); }
.phead .eyebrow { color: var(--color-on-dark-soft); }
.crumbs { display: flex; flex-wrap: wrap; gap: 6px 8px; font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--color-on-dark-soft); line-height: 1.4; }
.crumbs li + li::before { content: "/"; margin-right: 8px; opacity: 0.5; }
.crumbs a:hover { color: var(--color-on-dark); }
.phead--light .crumbs { color: var(--color-ink-soft); }
.phead--light .crumbs a:hover { color: var(--color-ink); }

/* ---------- Stats / facts ---------- */
.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--spacing-md); }
.stats--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat { display: grid; gap: 6px; align-content: start; padding: var(--spacing-md); border-radius: var(--radius-lg); background: var(--surface); border: 1px solid var(--line); }
.stat__num { font-family: var(--ff-display); font-size: var(--fs-stat); font-weight: 800; line-height: 1; letter-spacing: -0.03em; color: var(--accent-text); font-variant-numeric: tabular-nums; }
.stat > span:not(.stat__num), .stat p { color: var(--muted); font-size: var(--text-body-sm); font-weight: 500; line-height: 1.5; }
.stat p b { color: var(--fg); font-weight: 800; }
.phead .stat { background: var(--color-primary-raised); border-color: var(--color-line-dark); }
.phead .stat__num { color: var(--color-tertiary); }
.phead .stat > span { color: var(--color-on-dark-soft); }

/* ---------- Rows: large variant & tags ---------- */
.row__tag { font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); min-width: 104px; font-variant-numeric: tabular-nums; }
.rows--lg .row { padding: clamp(var(--spacing-md), 3vw, var(--spacing-lg)) 0; align-items: start; }
.rows--lg .row__title { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; letter-spacing: var(--tracking-headline-sm); line-height: 1.15; }
.rows--lg .row__desc { font-size: var(--text-body); max-width: 70ch; }
.rows--lg .row__tag { padding-top: 0.35em; }
.rows--lg .row__ar { padding-top: 0.3em; }
.row__title--u { position: relative; display: inline-block; }
.row__title--u::after { content: ""; position: absolute; left: 0; bottom: -3px; height: 2px; width: 100%; background: var(--color-tertiary); transform: scaleX(0); transform-origin: left; transition: transform 0.45s var(--ease); }
.row:hover .row__title--u::after, .row:focus-visible .row__title--u::after { transform: scaleX(1); }

/* ---------- Ruled list, three-up cards, shots ---------- */
.ruled { display: grid; }
.ruled li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--spacing-md); padding: var(--spacing-sm) 0; border-top: 1px solid var(--line); }
.ruled li:last-child { border-bottom: 1px solid var(--line); }
.ruled .t-num { color: var(--accent-text); font-family: var(--ff-display); font-size: 1.25rem; font-weight: 800; letter-spacing: -0.02em; min-width: 2.2ch; padding-top: 3px; }
.ruled b { font-weight: 800; display: block; margin-bottom: 2px; }
.ruled p { color: var(--muted); font-size: var(--text-body-sm); }
.ruled a { text-decoration: underline; text-decoration-color: var(--color-tertiary); text-decoration-thickness: 2px; text-underline-offset: 3px; font-weight: 600; color: var(--fg); }
.g3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--spacing-md); }
.g3 > article { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--spacing-lg); display: grid; gap: var(--spacing-sm); align-content: start; }
.g3 > article p { color: var(--muted); }
.shots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--spacing-md); }
.shot { display: grid; gap: 10px; }
.shot__img { aspect-ratio: 16 / 10; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); background: var(--surface); }
.shot__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; transition: transform 1.2s var(--ease); }
.shot:hover .shot__img img { transform: scale(1.03); }
.shot__cap { display: flex; justify-content: space-between; gap: var(--spacing-sm); font-size: var(--text-body-sm); }
.shot__cap b { font-weight: 800; }
.shot__cap span { color: var(--muted); font-weight: 500; }
.media { border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); background: var(--surface); }
.media img { width: 100%; }
.mt-lg { margin-top: var(--spacing-lg); }
.mt-2xl { margin-top: var(--spacing-2xl); }
.mt-3xl { margin-top: var(--spacing-3xl); }
.mb-2xl { margin-bottom: var(--spacing-2xl); }

/* ---------- Toolbar, filters, select ---------- */
.toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--spacing-sm); margin-bottom: var(--spacing-lg); }
.filters { display: flex; flex-wrap: wrap; gap: 8px; }
.filter { min-height: 40px; padding: 0 14px; border-radius: var(--radius-sm); background: var(--surface); color: var(--fg); border: 1px solid var(--line); font-size: var(--text-body-sm); font-weight: 700; transition: background 0.25s, color 0.25s, border-color 0.25s; }
.filter:hover { border-color: var(--fg); }
.filter.is-active { background: var(--color-ink); color: var(--color-on-dark); border-color: var(--color-ink); }
.select { appearance: none; -webkit-appearance: none; min-height: 40px; padding: 0 40px 0 14px; border-radius: var(--radius-sm); background-color: var(--surface); background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%235B6478' stroke-width='2'/></svg>"); background-repeat: no-repeat; background-position: right 14px center; color: var(--fg); border: 1px solid var(--line); font: inherit; font-size: var(--text-body-sm); font-weight: 600; cursor: pointer; }
.select:focus { outline: none; border-color: var(--color-tertiary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-tertiary) 30%, transparent); }
.form .select { background-color: var(--color-primary); color: var(--color-on-dark); border-color: var(--color-line-dark); min-height: 52px; width: 100%; border-radius: var(--radius-sm); }
.empty { display: none; color: var(--muted); padding: var(--spacing-lg) 0; }
.empty.is-visible { display: block; }
.is-hidden { display: none !important; }

/* ---------- Product grid ---------- */
.pgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: var(--spacing-md); }
.ptile { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--spacing-sm) var(--spacing-sm) var(--spacing-md); display: grid; gap: 10px; align-content: start; transition: transform 0.5s var(--ease), box-shadow 0.5s; }
.ptile:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.ptile__media { aspect-ratio: 4 / 3; border-radius: var(--radius-md); overflow: hidden; background: var(--color-cloud); display: grid; place-items: center; border: 1px solid var(--line); }
.ptile__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; }
.ptile__media--contain img { object-fit: contain; padding: 10%; }
.ptile__media--type { background: var(--color-primary); color: var(--color-on-dark); font-family: var(--ff-display); font-weight: 800; font-size: clamp(1.4rem, 2vw, 1.9rem); line-height: 1.05; letter-spacing: -0.02em; text-align: center; padding: var(--spacing-md); border-color: var(--color-primary); }
.ptile__media--type .ar-down { color: var(--color-tertiary); display: block; }
.ptile__cat { font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); padding-inline: 4px; line-height: 1.3; }
.ptile__title { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; line-height: 1.15; letter-spacing: -0.01em; padding-inline: 4px; text-wrap: balance; }
.ptile__title a { position: relative; }
.ptile__title a::after { content: ""; position: absolute; left: 0; bottom: -3px; height: 2px; width: 100%; background: var(--color-tertiary); transform: scaleX(0); transform-origin: left; transition: transform 0.45s var(--ease); }
.ptile:hover .ptile__title a::after, .ptile:focus-within .ptile__title a::after { transform: scaleX(1); }
.ptile__desc { color: var(--muted); font-size: var(--text-body-sm); padding-inline: 4px; }
.ptile__row { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 12px 4px 0; border-top: 1px solid var(--line); margin-top: auto; }
.ptile__price { font-weight: 800; font-size: var(--text-title); font-variant-numeric: tabular-nums; }

/* ---------- Product page ---------- */
.product-hero { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: clamp(var(--spacing-lg), 5vw, var(--spacing-3xl)); align-items: start; }
.gallery { position: sticky; top: calc(var(--header-h) + var(--spacing-md)); display: grid; gap: var(--spacing-sm); }
.gallery__main { background: var(--color-primary-raised); border: 1px solid var(--color-line-dark); border-radius: var(--radius-xl); padding: var(--spacing-xs); box-shadow: var(--shadow-stage); overflow: hidden; }
.gallery__main img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 0; border-radius: calc(var(--radius-xl) - var(--spacing-xs)); background: var(--color-primary); transition: opacity 0.25s; }
.gallery__main--contain img { object-fit: contain; background: var(--color-neutral); padding: 8%; }
.gallery__main img.is-fading { opacity: 0; }
.gallery__thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--spacing-xs); }
.gallery__thumb { border-radius: var(--radius-md); overflow: hidden; border: 2px solid transparent; background: var(--surface); aspect-ratio: 1; transition: border-color 0.25s; display: block; }
.gallery__thumb img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 0; }
.gallery__thumb--contain img { object-fit: contain; padding: 10%; background: var(--color-neutral); }
.gallery__thumb.is-active { border-color: var(--color-tertiary); }
.psum { display: grid; gap: var(--spacing-md); }
.price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.price__value { font-family: var(--ff-display); font-size: var(--fs-h1); font-weight: 800; letter-spacing: -0.03em; line-height: 1; font-variant-numeric: tabular-nums; }
.price__per { color: var(--muted); font-weight: 600; }
.opts { display: grid; gap: 10px; }
.opt { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--spacing-sm); align-items: center; padding: 14px var(--spacing-sm); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); cursor: pointer; transition: border-color 0.25s, box-shadow 0.25s; }
.opt:hover { border-color: var(--fg); }
.opt:has(input:checked) { border-color: var(--color-tertiary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-tertiary) 25%, transparent); }
.opt input { accent-color: var(--color-tertiary); width: 18px; height: 18px; margin: 0; }
.opt__name { font-weight: 800; }
.opt__desc { color: var(--muted); font-size: var(--text-body-sm); }
.opt__price { font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.trust { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--spacing-sm); padding-top: var(--spacing-md); border-top: 1px solid var(--line); }
.trust div { display: grid; gap: 4px; font-size: var(--text-body-sm); color: var(--muted); }
.trust b { color: var(--fg); font-weight: 800; }
.acc { display: grid; }
.acc details { border-top: 1px solid var(--line); }
.acc details:last-child { border-bottom: 1px solid var(--line); }
.acc__body ul { padding-left: 1.2em; list-style: disc; display: grid; gap: 6px; }
.acc__body li::marker { color: var(--color-tertiary); }
.acc__body p + p { margin-top: 0.8em; }
.acc__body b { color: var(--fg); }
.specs { width: 100%; border-collapse: collapse; font-size: var(--text-body-sm); }
.specs th { text-align: left; font-weight: 800; padding: 10px 12px 10px 0; width: 32%; vertical-align: top; color: var(--fg); border-top: 1px solid var(--line); }
.specs td { padding: 10px 0; color: var(--muted); border-top: 1px solid var(--line); }
.specs tr:first-child th, .specs tr:first-child td { border-top: 0; }

/* ---------- Posts ---------- */
.progress { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: var(--color-tertiary); z-index: 110; }
.post-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; color: var(--muted); font-size: var(--text-body-sm); font-weight: 600; }
.post-meta b { color: var(--fg); }
.post-layout { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); align-items: start; }
.post-side { position: sticky; top: calc(var(--header-h) + var(--spacing-lg)); display: grid; gap: var(--spacing-xl); }
.post-side .stack a.u { color: var(--fg); font-weight: 600; }
.toc { display: grid; gap: 4px; }
.toc a { display: block; padding: 6px 0 6px 14px; border-left: 2px solid var(--line); color: var(--muted); font-size: var(--text-body-sm); font-weight: 600; line-height: 1.4; transition: color 0.25s, border-color 0.25s; }
.toc a:hover, .toc a.is-current { color: var(--fg); border-left-color: var(--color-tertiary); }
.side-box { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--spacing-md); display: grid; gap: var(--spacing-xs); }
.prose { font-size: var(--text-body); line-height: 1.7; max-width: 66ch; }
.prose > * + * { margin-top: 1.1em; }
.prose h2 { font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 700; line-height: 1.12; letter-spacing: var(--tracking-headline-md); margin-top: 2em; text-wrap: balance; }
.prose h3 { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; line-height: 1.2; margin-top: 1.6em; }
.prose p.big { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; }
.prose ul, .prose ol { padding-left: 1.3em; list-style: disc; display: grid; gap: 0.4em; }
.prose ol { list-style: decimal; }
.prose li::marker { color: var(--color-tertiary); font-weight: 800; }
.prose a { text-decoration: underline; text-decoration-color: var(--color-tertiary); text-decoration-thickness: 2px; text-underline-offset: 3px; font-weight: 600; }
.prose blockquote { border-left: 3px solid var(--color-tertiary); padding: 4px 0 4px 20px; font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
.prose strong { font-weight: 800; }
.prose img { border-radius: var(--radius-md); }
.prose figure { margin: 0; }
.prose figcaption { font-size: var(--text-body-sm); color: var(--muted); margin-top: 8px; }
.prose table { width: 100%; border-collapse: collapse; font-size: var(--text-body-sm); }
.prose th, .prose td { text-align: left; padding: 10px 12px; border-top: 1px solid var(--line); vertical-align: top; }
.prose th { font-weight: 800; }
.prose code { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 0.9em; background: var(--surface); padding: 2px 6px; border-radius: 6px; border: 1px solid var(--line); }
.prose hr { border: 0; border-top: 1px solid var(--line); }
.author { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--spacing-md); align-items: start; padding: var(--spacing-md); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.author img { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; }
.author .u { color: var(--fg); font-weight: 700; }
.share { display: flex; flex-wrap: wrap; gap: var(--spacing-sm) var(--spacing-md); align-items: center; }
.share .u { font-weight: 700; }
.pagination { display: flex; gap: 8px; flex-wrap: wrap; }
.pagination a, .pagination span { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 14px; border-radius: var(--radius-sm); border: 1px solid var(--line); font-weight: 700; font-variant-numeric: tabular-nums; transition: border-color 0.25s; }
.pagination .is-current { background: var(--color-ink); color: var(--color-on-dark); border-color: var(--color-ink); }
.pagination a:hover { border-color: var(--fg); }

/* ---------- Sales letter ---------- */
.letter-head { display: grid; gap: var(--spacing-md); max-width: 34ch; }
.letter { max-width: 68ch; font-size: 1.125rem; }
.check { list-style: none; padding: 0; display: grid; gap: 10px; }
.check li { position: relative; padding-left: 36px; }
.check li::before { content: ""; position: absolute; left: 0; top: 0.15em; width: 22px; height: 22px; border-radius: 50%; background: var(--color-tertiary); }
.check li::after { content: ""; position: absolute; left: 8px; top: calc(0.15em + 5px); width: 6px; height: 11px; border: solid var(--color-ink); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.hl { background: linear-gradient(transparent 58%, color-mix(in srgb, var(--color-tertiary) 45%, transparent) 58%); padding: 0 0.1em; font-weight: 700; }
.proofs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--spacing-sm); }
.proofs figure { aspect-ratio: 4 / 3; display: grid; place-items: center; text-align: center; border: 2px dashed var(--line); border-radius: var(--radius-md); color: var(--muted); font-size: var(--text-body-sm); font-weight: 600; padding: var(--spacing-sm); background: var(--surface); margin: 0; }
.offer { display: grid; gap: var(--spacing-md); padding: clamp(var(--spacing-md), 4vw, var(--spacing-xl)); border-radius: var(--radius-lg); background: var(--color-primary); color: var(--color-on-dark); box-shadow: var(--shadow-stage); margin-block: var(--spacing-xl); }
.offer .eyebrow { color: var(--color-on-dark-soft); }
.offer__price { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.offer__now { font-family: var(--ff-display); font-size: clamp(3rem, 6vw, 5rem); font-weight: 800; line-height: 1; letter-spacing: -0.03em; color: var(--color-tertiary); font-variant-numeric: tabular-nums; }
.offer__was { text-decoration: line-through; color: var(--color-on-dark-soft); font-weight: 600; }
.offer .muted { color: var(--color-on-dark-soft); }
.guarantee { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--spacing-md); align-items: center; padding: var(--spacing-md); border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.guarantee img { width: 96px; height: auto; }
.guarantee b { font-weight: 800; }
.signature { display: flex; gap: var(--spacing-sm); align-items: center; }
.signature img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; }
.bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 95; background: var(--color-primary); color: var(--color-on-dark); border-top: 1px solid var(--color-line-dark); transform: translateY(110%); transition: transform 0.5s var(--ease); padding-bottom: env(safe-area-inset-bottom); }
.bar.is-visible { transform: none; }
.bar__in { display: flex; justify-content: space-between; align-items: center; gap: var(--spacing-md); padding-block: 12px; }
.bar__text { font-size: var(--text-body-sm); font-weight: 600; color: var(--color-on-dark-soft); }
.bar__text b { color: var(--color-on-dark); }

/* ---------- Service line sections ---------- */
.line { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); align-items: start; }
.line__head { position: sticky; top: calc(var(--header-h) + var(--spacing-lg)); display: grid; gap: var(--spacing-sm); }
.line__num { font-family: var(--ff-display); font-size: var(--fs-stat); font-weight: 800; line-height: 1; letter-spacing: -0.03em; color: transparent; -webkit-text-stroke: 1px var(--muted); font-variant-numeric: tabular-nums; }
.line__body { display: grid; gap: var(--spacing-md); max-width: 66ch; }
.line__body h3 { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; line-height: 1.2; margin-top: var(--spacing-2xs); }
.line__body > p { color: var(--muted); }
.line__proof { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--spacing-md); display: grid; gap: var(--spacing-xs); font-size: var(--text-body-sm); line-height: 1.55; color: var(--muted); }
.line__proof .u { color: var(--fg); font-weight: 700; }

/* ---------- Inner-page responsive ---------- */
@media (max-width: 1023px) {
  .phead__grid, .product-hero, .post-layout, .line { grid-template-columns: minmax(0, 1fr); }
  .phead .sun { width: 60vw; right: -28vw; top: -14%; }
  .gallery, .post-side, .line__head { position: static; }
  .g3 { grid-template-columns: minmax(0, 1fr); }
  .stats--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .post-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .post-side > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 599px) {
  .stats, .stats--4, .shots, .proofs, .trust, .post-side { grid-template-columns: minmax(0, 1fr); }
  .rows--lg .row { grid-template-columns: minmax(0, 1fr); }
  .toolbar { align-items: stretch; }
  .gallery__thumbs { grid-template-columns: repeat(4, 1fr); }
  .opt { grid-template-columns: auto minmax(0, 1fr); }
  .opt__price { grid-column: 2; }
  .guarantee, .author { grid-template-columns: minmax(0, 1fr); }
  .bar__in { flex-direction: column; align-items: stretch; text-align: center; }
  .bar .btn { width: 100%; }
  .letter { font-size: var(--text-body); }
  .pgrid { grid-template-columns: minmax(0, 1fr); }
}


/* ---------- Small additions for inner pages ---------- */
.steps4--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.steps4 a { display: grid; gap: 4px; }
.steps4 a:hover span, .steps4 a:focus-visible span { color: var(--fg); }
.prose ul.check { list-style: none; padding-left: 0; }
.prose .check li { margin: 0; }
.prose .faq, .prose .offer, .prose .guarantee, .prose .proofs, .prose .signature { max-width: none; }
.prose .btn { text-decoration: none; font-weight: var(--font-weight-title); }
.phead .stat .t-h3 a:hover { color: var(--color-tertiary); }
.phead .stat .eyebrow { color: var(--color-on-dark-soft); }
.phead__copy .post-meta { margin-top: calc(-1 * var(--spacing-2xs)); }
.select option { color: var(--color-ink); background: var(--color-neutral); }
@media (max-width: 1023px) { .steps4--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 599px) { .steps4--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }


/* ---------- Fixes: orange-band dots, letter head, blog feature ---------- */
[data-theme="orange"] .dot, [data-theme="orange"] .list li::before { background: var(--color-ink); }
[data-theme="orange"] .eyebrow { color: var(--color-ink); }
.letter-head { max-width: 44ch; }
.letter-head .t-h1 { --fs-h1: clamp(2rem, 1.4rem + 2.2vw, 3.5rem); }
.phead .stat--feature { gap: var(--spacing-sm); padding: var(--spacing-lg); }
.phead .stat--feature .t-h3 { color: var(--color-on-dark); line-height: 1.2; }
.phead .stat--feature .t-h3 a:hover { color: var(--color-tertiary); }
.phead .stat--feature > span { color: var(--color-on-dark-soft); font-size: var(--text-body-sm); }
.phead__aside--one { grid-template-columns: minmax(0, 1fr); }


/* ==========================================================================
   Sales pages, opt-ins, product pages
   ========================================================================== */
.phead--light .phead__grid { align-items: center; }
.phead--light .stage { max-width: 560px; justify-self: end; width: 100%; }
.phead__price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.phead__price .price__value { font-size: var(--fs-h1); }
.phead__price .was { text-decoration: line-through; color: var(--muted); font-weight: 600; }
.phead__with { font-size: var(--text-body-sm); color: var(--muted); font-weight: 600; }
.vsl { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius-xl); overflow: hidden; background: var(--color-primary); border: 1px solid var(--color-line-dark); box-shadow: var(--shadow-stage); }
.vsl iframe, .vsl video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; object-fit: cover; }
.vsl--inset { margin-top: calc(-1 * clamp(var(--spacing-lg), 5vw, var(--spacing-3xl))); }
.stage .vsl { border: 0; border-radius: calc(var(--radius-xl) - var(--spacing-xs)); box-shadow: none; }
.cols2 { columns: 2; column-gap: var(--spacing-xl); }
.cols2 > li { break-inside: avoid; }
.check--lg li { font-size: var(--text-lead); font-weight: 600; }
.value { display: grid; gap: var(--spacing-xs); }
.value li { display: flex; justify-content: space-between; gap: var(--spacing-md); padding: 12px 0; border-top: 1px solid var(--color-line-dark); }
.value li:last-child { border-bottom: 1px solid var(--color-line-dark); }
.value b { font-weight: 700; }
.value span { color: var(--color-on-dark-soft); text-align: right; font-variant-numeric: tabular-nums; }
.offer__total { display: flex; justify-content: space-between; align-items: baseline; gap: var(--spacing-md); flex-wrap: wrap; }
.offer__total .eyebrow { color: var(--color-on-dark-soft); }
.offer--light { background: var(--surface); color: var(--fg); border: 1px solid var(--line); box-shadow: var(--shadow-lift); }
.offer--light .eyebrow { color: var(--muted); }
.offer--light .offer__was { color: var(--muted); }
.offer--light .muted { color: var(--muted); }
.bonus { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--spacing-md); }
.bonus__item { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--spacing-sm) var(--spacing-sm) var(--spacing-md); display: grid; gap: 10px; align-content: start; }
.bonus__img { aspect-ratio: 16 / 10; border-radius: var(--radius-md); overflow: hidden; background: var(--color-cloud); border: 1px solid var(--line); }
.bonus__img img { width: 100%; height: 100%; object-fit: cover; }
.bonus__item h3 { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; line-height: 1.15; padding-inline: 4px; }
.bonus__item p { color: var(--muted); font-size: var(--text-body-sm); padding-inline: 4px; }
.bonus__value { font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--fg); padding: 10px 4px 0; border-top: 1px solid var(--line); margin-top: auto; }
.modules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--spacing-md); }
.module { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--spacing-sm) var(--spacing-sm) var(--spacing-md); display: grid; gap: var(--spacing-xs); align-content: start; }
.module__img { aspect-ratio: 16 / 9; border-radius: var(--radius-md); overflow: hidden; background: var(--color-cloud); border: 1px solid var(--line); }
.module__img img { width: 100%; height: 100%; object-fit: cover; }
.module h3 { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; line-height: 1.15; padding-inline: 4px; }
.module ul { padding: 0 4px 0 22px; list-style: disc; display: grid; gap: 6px; color: var(--muted); font-size: var(--text-body-sm); }
.module li::marker { color: var(--color-tertiary); }
.g3--text article ul { padding-left: 20px; list-style: disc; display: grid; gap: 6px; color: var(--muted); font-size: var(--text-body-sm); }
.g3--text article li::marker { color: var(--color-tertiary); }
.g3--text article h3 { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; line-height: 1.15; }
.pricing { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--spacing-md); align-items: stretch; }
.plan { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--spacing-lg); display: grid; gap: var(--spacing-sm); align-content: start; position: relative; }
.plan--hot { border-color: var(--color-tertiary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-tertiary) 25%, transparent); }
.plan__tag { position: absolute; top: -14px; left: var(--spacing-lg); background: var(--color-tertiary); color: var(--color-ink); font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; padding: 6px 12px; border-radius: var(--radius-sm); }
.plan h3 { font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 800; line-height: 1; letter-spacing: -0.02em; }
.plan__for { color: var(--muted); font-size: var(--text-body-sm); font-weight: 600; }
.plan__price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; padding-top: var(--spacing-xs); }
.plan__price .now { font-family: var(--ff-display); font-size: var(--fs-stat); font-weight: 800; line-height: 1; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.plan__price .was { text-decoration: line-through; color: var(--muted); font-weight: 600; }
.plan__price .per { color: var(--muted); font-size: var(--text-body-sm); font-weight: 600; width: 100%; }
.plan ul { display: grid; gap: 8px; padding-top: var(--spacing-xs); border-top: 1px solid var(--line); }
.plan li { display: flex; gap: 10px; align-items: baseline; font-size: var(--text-body-sm); font-weight: 500; }
.plan li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--color-tertiary); flex: none; transform: translateY(-2px); }
.plan .btn { margin-top: var(--spacing-xs); justify-self: start; }
[data-theme="dark"] .plan { background: var(--color-primary-raised); border-color: var(--color-line-dark); }
.compare { width: 100%; border-collapse: collapse; font-size: var(--text-body-sm); }
.compare th, .compare td { text-align: left; padding: 12px 10px; border-top: 1px solid var(--line); vertical-align: top; }
.compare thead th { border-top: 0; font-weight: 800; color: var(--fg); }
.compare td { color: var(--muted); font-weight: 500; }
.compare th { font-weight: 700; }
.compare td:first-child, .compare th:first-child { padding-left: 0; }
.compare .yes { color: var(--fg); font-weight: 800; }
.compare .hot { background: color-mix(in srgb, var(--color-tertiary) 12%, transparent); color: var(--fg); font-weight: 700; }
.previewtbl { width: 100%; border-collapse: collapse; font-size: 13px; background: var(--color-primary-raised); color: var(--color-on-dark); }
.previewtbl th, .previewtbl td { text-align: left; padding: 9px 10px; border-top: 1px solid var(--color-line-dark); vertical-align: top; }
.previewtbl thead th { border-top: 0; font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-on-dark-soft); font-weight: 700; }
.previewtbl .now { color: var(--color-on-dark-soft); }
.previewtbl .new { color: var(--color-amber); font-weight: 700; }
.previewtbl .st { font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--color-on-dark-soft); }
.previewtbl .st--ok { color: var(--color-tertiary); }
.previewtbl input { accent-color: var(--color-tertiary); width: 16px; height: 16px; margin: 0; }
.previewtbl small { display: block; color: var(--color-on-dark-soft); font-size: 12px; }
.demo { background: var(--color-primary-raised); border-radius: calc(var(--radius-xl) - var(--spacing-xs)); padding: var(--spacing-sm); display: grid; gap: var(--spacing-xs); }
.demo__ask { font-family: var(--ff-display); font-size: 1.1rem; font-weight: 700; color: var(--color-on-dark); line-height: 1.3; }
.demo__counts { display: flex; gap: var(--spacing-md); flex-wrap: wrap; font-size: 12px; color: var(--color-on-dark-soft); font-weight: 600; }
.demo__counts b { color: var(--color-on-dark); font-weight: 800; }
.demo__foot { display: flex; justify-content: space-between; align-items: center; gap: var(--spacing-sm); flex-wrap: wrap; font-size: 12px; color: var(--color-on-dark-soft); }
.demo .btn--sm { min-height: 36px; }
.vs { display: grid; gap: var(--spacing-xs); }
.vs li { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--spacing-md); padding: 12px 0; border-top: 1px solid var(--line); font-size: var(--text-body-sm); }
.vs li:last-child { border-bottom: 1px solid var(--line); }
.vs .a { color: var(--muted); }
.vs .a::before, .vs .b::before { display: block; font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; margin-bottom: 4px; }
.vs .a::before { content: "Αντί για"; color: var(--muted); }
.vs .b::before { content: "Εδώ"; color: var(--accent-text); }
.vs .b { font-weight: 600; }
.feat { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--spacing-sm); }
.feat li { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-md); padding: var(--spacing-sm) var(--spacing-md); display: grid; gap: 6px; }
.feat h3 { font-family: var(--ff-display); font-size: var(--text-title); font-weight: 700; line-height: 1.2; }
.feat q { color: var(--muted); font-size: var(--text-body-sm); font-style: normal; }
.feat q::before, .feat q::after { content: none; }
.feat .delta { font-size: var(--text-body-sm); display: flex; gap: 8px; flex-wrap: wrap; align-items: baseline; }
.feat .delta .k { color: var(--muted); font-weight: 600; }
.feat .delta .n { font-weight: 700; }
.feat .delta .ar { color: var(--color-tertiary); }
.feat .free { font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); }
.feat small { color: var(--muted); font-size: var(--text-body-sm); }
.avq { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--spacing-md); }
.avq figure { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: var(--spacing-md); display: grid; gap: var(--spacing-sm); align-content: start; }
.avq blockquote { font-weight: 500; line-height: 1.5; text-wrap: pretty; }
.avq figcaption { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; align-items: center; font-size: var(--text-body-sm); color: var(--muted); }
.avq figcaption img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.avq figcaption b { color: var(--fg); display: block; }
.sample-tag { display: inline-block; margin-left: 0.5em; padding: 0.1em 0.5em; font-size: 0.62em; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; border: 1px solid currentColor; border-radius: 3px; opacity: 0.55; vertical-align: middle; }
.phead .form { background: var(--color-primary-raised); }
.phead--light .form { background: var(--color-primary); }
.optin-card { background: var(--color-primary-raised); border: 1px solid var(--color-line-dark); border-radius: var(--radius-lg); padding: clamp(var(--spacing-md), 3vw, var(--spacing-xl)); display: grid; gap: var(--spacing-sm); box-shadow: var(--shadow-stage); }
.optin-card .t-h3 { color: var(--color-on-dark); }
.optin-card .muted { color: var(--color-on-dark-soft); }
.optin-card .form { background: transparent; border: 0; box-shadow: none; padding: 0; }
.secure { display: flex; gap: var(--spacing-md); flex-wrap: wrap; font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); }
.secure li { display: flex; gap: 8px; align-items: center; }
.secure li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--color-tertiary); }
.hero-note { display: grid; gap: 4px; font-size: var(--text-body-sm); color: var(--muted); }
@media (max-width: 1023px) {
  .bonus, .avq, .pricing { grid-template-columns: minmax(0, 1fr); }
  .modules, .feat { grid-template-columns: minmax(0, 1fr); }
  .phead--light .stage { justify-self: stretch; max-width: none; }
  .cols2 { columns: 1; }
  .vsl--inset { margin-top: 0; }
}
@media (min-width: 640px) and (max-width: 1023px) {
  .bonus, .modules, .feat { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
  .vs li { grid-template-columns: minmax(0, 1fr); gap: var(--spacing-xs); }
  .compare { font-size: 12px; }
  .compare th, .compare td { padding: 8px 6px; }
  .previewtbl { font-size: 12px; }
  .previewtbl th:nth-child(5), .previewtbl td:nth-child(5) { display: none; }
}


/* ---------- Sales-page fixes ---------- */
.stats--sm .stat__num { font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.6rem); }
.check--cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px var(--spacing-lg); }
.vsl__note { margin-top: var(--spacing-xs); font-size: var(--text-body-sm); color: var(--muted); }
@media (max-width: 1023px) { .check--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .check--cols { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   Batch 3: blog grid, service singles, portfolio, courses, WooCommerce, utility pages
   (token-driven; appended by build on 2026-10-20)
   ========================================================================== */
/* ---------- Blog grid ---------- */
.pgrid--posts { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }
.ptile--post { padding: var(--spacing-xs) var(--spacing-xs) var(--spacing-md); }
.ptile--post .ptile__media { aspect-ratio: 16 / 9; position: relative; display: block; }
.ptile--post .ptile__media img { transition: transform 1.2s var(--ease); }
.ptile--post:hover .ptile__media img { transform: scale(1.03); }
.ptile--post .ptile__title { font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem); line-height: 1.2; }
.ptile__body { display: grid; gap: 8px; align-content: start; padding-inline: var(--spacing-2xs); }
.ptile__meta { display: flex; gap: 4px 14px; flex-wrap: wrap; font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); line-height: 1.3; }
.ptile__play { position: absolute; left: 50%; top: 50%; width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 50%; background: var(--color-tertiary); display: grid; place-items: center; box-shadow: var(--shadow-lift); transition: transform 0.35s var(--ease); }
.ptile__play::after { content: ""; border-left: 16px solid var(--color-ink); border-top: 10px solid transparent; border-bottom: 10px solid transparent; margin-left: 4px; }
.ptile--post:hover .ptile__play { transform: scale(1.08); }
.ptile--feature { grid-column: 1 / -1; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--spacing-lg); align-items: center; padding: var(--spacing-xs); }
.ptile--feature .ptile__media { aspect-ratio: 16 / 10; }
.ptile--feature .ptile__title { font-size: var(--fs-h2); }
.ptile--feature .ptile__body { padding: var(--spacing-md); gap: var(--spacing-sm); }
.ptile--feature .ptile__desc { font-size: var(--text-body); }
.post-hero { border-radius: var(--radius-xl); overflow: hidden; border: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow-lift); }
.post-hero img { width: 100%; aspect-ratio: 16 / 7; object-fit: cover; }
.cat-head { display: grid; gap: var(--spacing-2xs); }
/* ---------- Logo wall, galleries ---------- */
.logos { display: grid; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: var(--spacing-xs); }
.logos li { aspect-ratio: 1; display: grid; place-items: center; background: var(--color-neutral); border: 1px solid var(--line); border-radius: var(--radius-md); padding: 14%; }
.logos img { width: 100%; height: 100%; object-fit: contain; }
.gal { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--spacing-sm); }
.gal figure { border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--line); background: var(--surface); margin: 0; }
.gal img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 1.2s var(--ease); }
.gal figure:hover img { transform: scale(1.03); }
.gal--cols { display: block; columns: 3; column-gap: var(--spacing-sm); }
.gal--cols figure { break-inside: avoid; margin-bottom: var(--spacing-sm); }
.gal--cols img { aspect-ratio: auto; }
.g3--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.shots--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.feat--p p { color: var(--muted); font-size: var(--text-body-sm); }
.feat li img { width: 44px; height: 44px; object-fit: contain; }
/* ---------- Prev / next ---------- */
.pn { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--spacing-sm); }
.pn a { display: grid; gap: 4px; padding: var(--spacing-sm) var(--spacing-md); border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); transition: border-color 0.25s, transform 0.4s var(--ease); }
.pn a:hover { border-color: var(--fg); transform: translateY(-2px); }
.pn a + a { text-align: right; }
.pn .k { font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); }
.pn b { font-weight: 800; line-height: 1.3; }
/* ---------- Courses (LearnDash) ---------- */
.course { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); align-items: start; }
.side-box--sticky { position: sticky; top: calc(var(--header-h) + var(--spacing-lg)); }
.side-box .price__value { font-size: var(--fs-h2); }
.side-box .list { font-size: var(--text-body-sm); }
.meter { display: grid; gap: 8px; }
.meter__track { position: relative; height: 2px; background: var(--line); border-radius: var(--radius-full); }
.meter__fill { position: absolute; left: 0; top: 0; height: 100%; width: var(--p, 0%); background: var(--color-tertiary); border-radius: var(--radius-full); transition: width 1.2s var(--ease); }
.meter__fill::after { content: ""; position: absolute; right: -7px; top: 50%; width: 14px; height: 14px; margin-top: -7px; border-radius: 50%; background: var(--color-tertiary); box-shadow: 0 0 0 4px var(--bg); }
.meter__label { display: flex; justify-content: space-between; gap: var(--spacing-sm); font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); }
.curriculum { display: grid; }
.curriculum__sec { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; padding: var(--spacing-md) 0 var(--spacing-xs); }
.lrow { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--spacing-md); align-items: center; padding: 14px 0; border-top: 1px solid var(--line); transition: padding-left 0.4s var(--ease); }
.curriculum li:last-child .lrow { border-bottom: 1px solid var(--line); }
a.lrow:hover { padding-left: var(--spacing-2xs); }
.lrow__num { width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--line); display: grid; place-items: center; font-family: var(--ff-display); font-weight: 800; font-size: var(--text-body-sm); font-variant-numeric: tabular-nums; color: var(--muted); flex: none; }
.lrow__title { font-weight: 700; line-height: 1.3; }
.lrow__meta { color: var(--muted); font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; white-space: nowrap; }
.lrow.is-done .lrow__num { background: var(--color-tertiary); border-color: var(--color-tertiary); color: var(--color-ink); }
.lrow.is-current .lrow__num { border-color: var(--color-tertiary); color: var(--fg); box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-tertiary) 25%, transparent); }
.lrow.is-current .lrow__title { color: var(--fg); }
.lrow.is-locked { color: var(--muted); }
.lrow.is-locked .lrow__title { font-weight: 600; }
.lesson { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); align-items: start; }
.lesson__side { position: sticky; top: calc(var(--header-h) + var(--spacing-lg)); display: grid; gap: var(--spacing-lg); }
.lesson__side .toc { max-height: 60vh; overflow: auto; }
.lesson__side .toc a.is-done { color: var(--muted); }
.lesson__side .toc a.is-done::before { content: "\2713\00a0"; color: var(--color-tertiary); font-weight: 800; }
.lesson__foot { display: flex; justify-content: space-between; align-items: center; gap: var(--spacing-md); flex-wrap: wrap; padding-top: var(--spacing-md); border-top: 1px solid var(--line); }
/* ---------- WooCommerce ---------- */
.cart { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); align-items: start; }
.cart-table { width: 100%; border-collapse: collapse; }
.cart-table th { text-align: left; font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); padding: 0 10px 12px 0; }
.cart-table td { padding: var(--spacing-sm) 10px var(--spacing-sm) 0; border-top: 1px solid var(--line); vertical-align: middle; }
.cart-table tr:last-child td { border-bottom: 1px solid var(--line); }
.cart-table .num { text-align: right; font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cart-table th.num { text-align: right; }
.citem { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: var(--spacing-sm); align-items: center; }
.citem img { width: 72px; height: 54px; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--line); background: var(--color-cloud); }
.citem b { font-weight: 800; display: block; line-height: 1.3; }
.citem span { color: var(--muted); font-size: var(--text-body-sm); }
.qty { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); }
.qty button { width: 36px; height: 40px; font-weight: 800; color: var(--muted); }
.qty button:hover { color: var(--fg); }
.qty input { width: 44px; height: 40px; text-align: center; border: 0; background: transparent; font: inherit; font-weight: 800; color: var(--fg); -moz-appearance: textfield; }
.qty input::-webkit-outer-spin-button, .qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.remove { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--line); color: var(--muted); display: inline-grid; place-items: center; font-size: 18px; line-height: 1; transition: background 0.25s, color 0.25s, border-color 0.25s; }
.remove:hover { background: var(--color-ink); color: var(--color-on-dark); border-color: var(--color-ink); }
.totals { display: grid; }
.totals li { display: flex; justify-content: space-between; gap: var(--spacing-md); padding: 12px 0; border-top: 1px solid var(--line); font-weight: 600; }
.totals li span:last-child { font-variant-numeric: tabular-nums; text-align: right; }
.totals li:first-child { border-top: 0; }
.totals .grand { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 800; border-top: 2px solid var(--fg); }
.totals .muted { font-weight: 500; font-size: var(--text-body-sm); }
.form--light { background: var(--surface); border-color: var(--line); box-shadow: var(--shadow-lift); color: var(--fg); }
.form--light .input, .form--light .textarea, .form--light .select { background-color: var(--color-neutral); color: var(--fg); border-color: var(--line); }
.form--light .input::placeholder, .form--light .textarea::placeholder { color: color-mix(in srgb, var(--muted) 70%, transparent); }
.form--light .form__success { background: var(--color-cloud); color: var(--fg); }
.form--plain { background: transparent; border: 0; box-shadow: none; padding: 0; }
.form--plain .input, .form--plain .select { background-color: var(--color-neutral); color: var(--fg); border-color: var(--line); }
.form--plain .input::placeholder { color: color-mix(in srgb, var(--muted) 70%, transparent); }
.form__legend { font-family: var(--ff-display); font-size: var(--fs-h3); font-weight: 700; line-height: 1.2; padding-top: var(--spacing-xs); }
.checkbox { display: flex; gap: 10px; align-items: flex-start; font-size: var(--text-body-sm); font-weight: 500; line-height: 1.45; cursor: pointer; }
.checkbox input { accent-color: var(--color-tertiary); width: 18px; height: 18px; margin: 2px 0 0; flex: none; }
.sform { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--spacing-xs); align-items: stretch; }
.sform .btn { min-height: 52px; }
.checkout { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); align-items: start; }
.review { display: grid; gap: var(--spacing-xs); }
.review li { display: flex; justify-content: space-between; gap: var(--spacing-md); padding: 10px 0; border-top: 1px solid var(--line); font-size: var(--text-body-sm); }
.review li b { font-weight: 700; }
.review li span:last-child { font-weight: 800; font-variant-numeric: tabular-nums; white-space: nowrap; }
.acct { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); align-items: start; }
.acct__nav { position: sticky; top: calc(var(--header-h) + var(--spacing-lg)); }
.auth { max-width: 480px; margin-inline: auto; }
.badge { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: var(--radius-sm); background: var(--surface); border: 1px solid var(--line); font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.badge--ok { background: var(--color-tertiary); border-color: var(--color-tertiary); color: var(--color-ink); }
.badge--ink { background: var(--color-ink); border-color: var(--color-ink); color: var(--color-on-dark); }
/* ---------- Contact, 404, search ---------- */
.map { aspect-ratio: 16 / 9; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); background: var(--surface); }
.map iframe { width: 100%; height: 100%; border: 0; display: block; }
.office { display: grid; gap: var(--spacing-xs); }
.office .t-h3 a { position: relative; }
.office .big { font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 800; letter-spacing: var(--tracking-headline-md); line-height: 1.1; }
.err { position: relative; z-index: 1; text-align: center; display: grid; gap: var(--spacing-md); justify-items: center; padding-block: clamp(var(--spacing-xl), 8vw, var(--spacing-3xl)); }
.err__code { font-family: var(--ff-display); font-size: clamp(6rem, 22vw, 15rem); font-weight: 800; line-height: 0.9; letter-spacing: -0.05em; color: transparent; -webkit-text-stroke: 2px var(--color-tertiary); font-variant-numeric: tabular-nums; }
.err .t-h1 { max-width: 20ch; }
.err .sform { width: min(100%, 560px); }
.hits { display: grid; }
.hit { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: var(--spacing-md); align-items: start; padding: var(--spacing-md) 0; border-top: 1px solid var(--line); }
.hits li:last-child .hit { border-bottom: 1px solid var(--line); }
.hit img { width: 120px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--line); background: var(--color-cloud); }
.hit__body { display: grid; gap: 4px; }
.hit__title { font-weight: 800; font-size: var(--text-title); line-height: 1.3; }
.hit__title mark, .hit p mark { background: color-mix(in srgb, var(--color-tertiary) 45%, transparent); color: inherit; padding: 0 2px; border-radius: 3px; }
.hit p { color: var(--muted); font-size: var(--text-body-sm); }
/* ---------- Quiz ---------- */
.quiz { max-width: 760px; margin-inline: auto; display: grid; gap: var(--spacing-lg); position: relative; z-index: 1; }
.sec--clip { overflow: clip; }
.quiz__step { display: none; }
.quiz__step.is-on { display: grid; gap: var(--spacing-md); animation: cap-in 0.5s var(--ease); }
.quiz__q { font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 700; line-height: 1.15; letter-spacing: var(--tracking-headline-md); text-wrap: balance; }
.quiz .opt { background: var(--color-primary-raised); border-color: var(--color-line-dark); color: var(--color-on-dark); }
.quiz .opt__desc { color: var(--color-on-dark-soft); }
.quiz .opt:hover { border-color: var(--color-on-dark); }
.quiz__foot { display: flex; justify-content: space-between; align-items: center; gap: var(--spacing-md); flex-wrap: wrap; }
.quiz__result { display: none; }
.quiz.is-done .quiz__result { display: grid; gap: var(--spacing-md); animation: cap-in 0.5s var(--ease); }
.quiz.is-done .quiz__step, .quiz.is-done .quiz__foot { display: none; }
.type { font-family: var(--ff-display); font-size: clamp(3rem, 8vw, 6rem); font-weight: 800; line-height: 1; letter-spacing: -0.04em; color: var(--color-tertiary); }
/* ---------- Thank-you steps, whitelist ---------- */
.modules--shots .module__img { aspect-ratio: auto; }
.modules--shots .module__img img { height: auto; object-fit: contain; }
.modules--shots .module p { color: var(--muted); font-size: var(--text-body-sm); padding-inline: 4px; }
/* ---------- About ---------- */
.bio { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(var(--spacing-xl), 6vw, var(--spacing-3xl)); align-items: start; }
.bio__img { position: sticky; top: calc(var(--header-h) + var(--spacing-lg)); }
.bio__img img { width: 100%; aspect-ratio: 1; object-fit: cover; }
/* ---------- Sales extras ---------- */
.cover { max-width: 380px; justify-self: center; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-stage); border: 1px solid var(--color-line-dark); }
.cover img { width: 100%; }
.ps { display: grid; gap: var(--spacing-sm); padding: var(--spacing-md) 0; border-top: 1px solid var(--line); }
.ps p { color: var(--muted); }
.ps b { color: var(--fg); font-weight: 800; }
/* ---------- Responsive ---------- */
@media (max-width: 1023px) {
  .course, .lesson, .cart, .checkout, .acct, .bio { grid-template-columns: minmax(0, 1fr); }
  .lesson__side, .acct__nav, .bio__img, .side-box--sticky { position: static; }
  .lesson__side .toc { max-height: none; }
  .gal, .shots--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gal--cols { columns: 2; }
  .ptile--feature { grid-template-columns: minmax(0, 1fr); gap: 0; }
}
@media (max-width: 599px) {
  .gal, .shots--3, .g3--2, .pn { grid-template-columns: minmax(0, 1fr); }
  .gal--cols { columns: 1; }
  .pn a + a { text-align: left; }
  .cart-table thead { display: none; }
  .cart-table tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px var(--spacing-sm); padding: var(--spacing-sm) 0; border-top: 1px solid var(--line); }
  .cart-table td { border: 0; padding: 0; }
  .cart-table td:first-child { grid-column: 1 / -1; }
  .cart-table tr:last-child td { border: 0; }
  .cart-table tr:last-child { border-bottom: 1px solid var(--line); }
  .cart-table .num { text-align: left; }
  .sform { grid-template-columns: minmax(0, 1fr); }
  .lrow { grid-template-columns: auto minmax(0, 1fr); }
  .lrow__meta { grid-column: 2; white-space: normal; }
  .hit { grid-template-columns: minmax(0, 1fr); }
  .hit img { width: 100%; }
  .err__code { -webkit-text-stroke-width: 1.5px; }
  .logos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pgrid--posts { grid-template-columns: minmax(0, 1fr); }
  .phead .cluster .btn, .optin .btn, .quiz__foot .btn, .lesson__foot .btn { white-space: normal; text-align: center; }
}

/* ---------- Motion preferences ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; }
  body.js [data-reveal], body.js [data-stagger] > *, body.js .hero__copy > *, body.js .hero__stage, .sun, .stage__card { opacity: 1 !important; transform: none !important; }
  .shelf__track { animation: none; width: auto; overflow-x: auto; }
  .shelf__list[aria-hidden="true"] { display: none; }
}

/* ---------- Print ---------- */
@media print {
  .hdr, .menu, .sun, .skip, .shelf__list[aria-hidden="true"], .stage__card, .hero__rail, .hero__cap, .bar, .progress, .vsl { display: none !important; }
  body, .sec, .hero { background: #fff !important; color: #000 !important; }
  .hero { padding-top: 0; }
  a { color: inherit; }
}

/* ---------- Portfolio: featured tag on the grid, linked tiles on the home shelf ---------- */
.shot__img { position: relative; }
.shot__tag { position: absolute; top: 12px; left: 12px; z-index: 1; display: inline-block; padding: 6px 10px; border-radius: var(--radius-full); background: var(--color-tertiary); color: var(--color-ink); font-size: var(--text-label); font-weight: 700; letter-spacing: var(--tracking-label); text-transform: uppercase; }
.tile__link { display: block; color: inherit; text-decoration: none; }
.tile__link:hover .tile__name { color: var(--color-on-dark); }
