@font-face{font-family:"Fraunces";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/fraunces-latin-600-normal.woff2) format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2");}
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/bodoni-moda-latin-700-normal.woff2) format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/cormorant-garamond-latin-600-normal.woff2) format("woff2");}
@font-face{font-family:"Lora";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/lora-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"Lora";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/lora-latin-600-normal.woff2) format("woff2");}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/playfair-display-latin-500-italic.woff2) format("woff2");}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nunito-sans-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"Nunito Sans";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/nunito-sans-latin-600-normal.woff2) format("woff2");}
@font-face{font-family:"Bitter";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/bitter-latin-700-normal.woff2) format("woff2");}
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-hyperlegible-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"Atkinson Hyperlegible";font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-hyperlegible-latin-700-normal.woff2) format("woff2");}
@font-face{font-family:"Spectral";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/spectral-latin-600-normal.woff2) format("woff2");}
@font-face{font-family:"Work Sans";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/work-sans-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"Work Sans";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/work-sans-latin-500-normal.woff2) format("woff2");}
@font-face{font-family:"Marcellus";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/marcellus-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-sans-3-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/source-sans-3-latin-600-normal.woff2) format("woff2");}
/*
 * Lamp & Leaf Press — design tokens
 * Source of truth: /Users/lars/Documents/00 PKA/Side Business/Shared/brands.md (§2.2 umbrella, §3 per-brand)
 * Owner: Aria (Brand Designer). Values are copied from brands.md, not retuned here.
 * Every "muted"/"decoration" token below measures under 4.5:1 against its background and
 * MUST NEVER be used for body text — decoration, borders, meta captions and rules only.
 * Scoped per brand via [data-brand="shop|a|b|c1|c2|c3|d"] so one stylesheet can serve the
 * umbrella shop and every brand's own pages (Vela wires selectors; values are locked here).
 */

:root {
  color-scheme: light dark;

  /* ---- Umbrella shop: Lamp & Leaf Press ---- */
  --ll-shop-bg: #F7F3EA;
  --ll-shop-text: #1F2A2E;
  --ll-shop-accent: #2F5D50;
  --ll-shop-accent-text: #FFFFFF;
  --ll-shop-muted: #6B7468;        /* decoration/meta only — 4.39:1 on shop-bg */
  --ll-shop-text-muted: #697266;   /* muted TEXT; never below 16px — 4.516:1 on shop-bg (WCAG 2.x relative luminance), Aria-confirmed 2026-10-14 */
  --ll-shop-glow: #C8913A;         /* decoration only — 2.51:1 on shop-bg (light) */
  --ll-shop-font-heading: "Fraunces", Georgia, serif;
  --ll-shop-font-body: "Inter", system-ui, sans-serif;
}

@media (prefers-color-scheme: dark) {
  :root {
    --ll-shop-bg: #151A19;
    --ll-shop-text: #EDE7DA;
    --ll-shop-accent: #7FB59F;
    --ll-shop-accent-text: #151A19;
    --ll-shop-muted: #9AA39C;       /* 6.78:1 on shop-bg (dark) */
    --ll-shop-text-muted: #9AA39C;  /* muted TEXT — 6.78:1 on shop-bg (dark); added by Vela 2026-10-14 for /contact; Aria to confirm */
    --ll-shop-glow: #C8913A;        /* 6.34:1 on shop-bg (dark) — usable as dark-mode small text, NOT light-mode text */
  }
}

/* ========== Brand A: The Quiet Defence ========== */
[data-brand="a"] {
  --brand-bg: #0E0F12;
  --brand-text: #ECE6DA;
  --brand-accent: #B3262E;          /* oxblood — marks/rules/keyword highlight; text-on-accent only, not accent-on-bg body text (2.95:1) */
  --brand-accent-text: #ECE6DA;     /* bone on oxblood — 5.23:1, safe for text set ON the accent */
  --brand-secondary: #C9A15B;       /* gold — thin rules; 7.97:1, safe for small text too */
  --brand-muted: #8A8780;           /* decoration/meta only — 5.35:1 on brand-bg */
  --brand-font-heading: "Bodoni Moda", Georgia, serif;
  --brand-font-body: "IBM Plex Sans", system-ui, sans-serif;
  --brand-h-weight: 700;
  --brand-h-transform: uppercase;
  --brand-h-tracking: 0.08em;
  background: var(--brand-bg);
  color: var(--brand-text);
}

/* ========== Brand B: Old Masters, Old Wisdom ========== */
[data-brand="b"] {
  --brand-bg: #EFE6D2;
  --brand-text: #2B2118;
  --brand-accent: #8C3B2A;          /* Pompeian red — 6.10:1, usable as text */
  --brand-accent-text: #EFE6D2;
  --brand-secondary: #4E5B3C;        /* olive — 5.86:1, usable as text */
  --brand-muted: #7D725E;           /* decoration/meta only — 3.81:1 on brand-bg */
  --brand-font-heading: "Cormorant Garamond", Georgia, serif;
  --brand-font-body: "Lora", Georgia, serif;
  --brand-h-weight: 600;
  --brand-h-transform: none;
  --brand-h-variant: small-caps;
  background: var(--brand-bg);
  color: var(--brand-text);
}

/* ========== Brand C1: Grandma Vivienne ========== */
[data-brand="c1"] {
  --brand-bg: #F4EEE8;
  --brand-text: #2A2430;
  --brand-accent: #6E4B6B;          /* aubergine — 6.33:1, usable as text */
  --brand-accent-text: #F4EEE8;
  --brand-secondary: #B8A06A;        /* champagne — decoration only, 2.20:1 */
  --brand-muted: #8F848B;           /* decoration/meta only — 3.12:1 on brand-bg */
  --brand-font-heading: "Playfair Display", Georgia, serif;
  --brand-font-body: "Nunito Sans", system-ui, sans-serif;
  --brand-h-weight: 500;
  --brand-h-style: italic;
  background: var(--brand-bg);
  color: var(--brand-text);
}

/* ========== Brand C2: Grandpa Walt ========== */
[data-brand="c2"] {
  --brand-bg: #F3EBDD;
  --brand-text: #26302A;
  --brand-accent: #A44E2A;          /* rust — 4.79:1, usable as text (marginal; keep to ≥18px or bold if near AA floor) */
  --brand-accent-text: #F3EBDD;
  --brand-secondary: #3F5F80;        /* denim — 5.61:1, usable as text */
  --brand-muted: #857C6D;           /* decoration/meta only — 3.48:1 on brand-bg */
  --brand-font-heading: "Bitter", Georgia, serif;
  --brand-font-body: "Atkinson Hyperlegible", system-ui, sans-serif;
  --brand-h-weight: 700;
  background: var(--brand-bg);
  color: var(--brand-text);
}

/* ========== Brand C3: Callum ========== */
[data-brand="c3"] {
  --brand-bg: #E9ECEB;
  --brand-text: #1E252B;
  --brand-accent: #34556B;          /* slate blue — 6.65:1, usable as text */
  --brand-accent-text: #E9ECEB;
  --brand-secondary: #A88F6A;        /* stone — decoration only, 2.60:1 */
  --brand-muted: #77818A;           /* decoration/meta only — 3.34:1 on brand-bg */
  --brand-font-heading: "Spectral", Georgia, serif;
  --brand-font-body: "Work Sans", system-ui, sans-serif;
  --brand-h-weight: 600;
  background: var(--brand-bg);
  color: var(--brand-text);
}

/* ========== Brand D: Ruin & Myth ========== */
[data-brand="d"] {
  --brand-bg: #10262B;
  --brand-text: #F1E9D8;
  --brand-accent: #D08A3B;          /* bronze — 5.53:1, usable as text */
  --brand-accent-text: #10262B;
  --brand-secondary: #E4C98F;        /* pale gold — map lines; 9.78:1, usable as text too */
  --brand-muted: #7E9799;           /* decoration/meta only — 5.08:1 on brand-bg */
  --brand-font-heading: "Marcellus", Georgia, serif;
  --brand-font-body: "Source Sans 3", system-ui, sans-serif;
  --brand-h-weight: 400;
  --brand-h-transform: uppercase;
  background: var(--brand-bg);
  color: var(--brand-text);
}

/* ---- Shared floor: never below 16px, body text 18px minimum on web ---- */
:root, [data-brand] {
  --ll-body-size: 18px;
  --ll-body-line-height: 1.6;
  --ll-floor-size: 16px; /* absolute minimum for any text anywhere, incl. buttons/footer */
}

/* Lamp & Leaf Press — shop styles.
 * Colours and fonts come ONLY from the brand kit's tokens.css (Aria), which the build puts in front of
 * this file. No hex value lives here. The shop scope (:root) follows prefers-color-scheme through the
 * tokens; brand scopes ([data-brand]) keep their fixed palette in both modes (Eleanor, 2026-10-14). */
:root {
  --shop-bg: var(--ll-shop-bg);
  --shop-text: var(--ll-shop-text);
  --shop-accent: var(--ll-shop-accent);
  --shop-accent-text: var(--ll-shop-accent-text);
  --shop-muted: var(--ll-shop-muted);             /* decoration only (4.39:1 light) */
  --shop-text-muted: var(--ll-shop-text-muted);   /* muted text, >= 4.5:1 in both modes */
  --shop-glow: var(--ll-shop-glow);
  --bg: var(--shop-bg);
  --text: var(--shop-text);
  --accent: var(--shop-accent);
  --accent-text: var(--shop-accent-text);
  --muted: var(--shop-muted);
  --secondary: var(--shop-glow);
  --font-h: var(--ll-shop-font-heading);
  --font-b: var(--ll-shop-font-body);
  --h-weight: 600;
  --h-style: normal;
  --h-transform: none;
  --h-tracking: normal;
  --h-variant: normal;
}
/* Brand scopes: the generic names the components use, mapped onto that brand's tokens. */
[data-brand] {
  --bg: var(--brand-bg);
  --text: var(--brand-text);
  --accent: var(--brand-accent);
  --accent-text: var(--brand-accent-text);
  --secondary: var(--brand-secondary);
  --muted: var(--brand-muted);
  --font-h: var(--brand-font-heading);
  --font-b: var(--brand-font-body);
  --h-weight: var(--brand-h-weight, 600);
  --h-style: var(--brand-h-style, normal);
  --h-transform: var(--brand-h-transform, none);
  --h-tracking: var(--brand-h-tracking, normal);
  --h-variant: var(--brand-h-variant, normal);
}
/* Fixed palettes: form controls and scrollbars follow the brand, not the visitor's mode. */
[data-brand="a"], [data-brand="d"] { color-scheme: dark; }
[data-brand="b"], [data-brand="c1"], [data-brand="c2"], [data-brand="c3"] { color-scheme: light; }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--shop-bg);
  color: var(--shop-text);
  font-family: var(--ll-shop-font-body);
  font-size: 18px;
  line-height: 1.6;
}
img, svg { max-width: 100%; }
a { color: inherit; text-underline-offset: 0.18em; }
a:focus-visible, button:focus-visible, input:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}
.wrap { max-width: 1120px; margin: 0 auto; padding: 0 16px; }
.narrow { max-width: 720px; }
.skip { position: absolute; left: -9999px; }
.skip:focus { left: 16px; top: 16px; background: var(--shop-bg); padding: 8px 12px; z-index: 10; }

/* ---------- Shop header + wordmark ---------- */
.shop-header { background: var(--shop-bg); color: var(--shop-text); border-bottom: 1px solid var(--shop-muted); }
.header-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 14px; padding-bottom: 14px; flex-wrap: wrap; }
.wordmark { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--shop-text); }
.wordmark .mark { flex: none; width: 48px; height: 48px; display: block; }
.wm-text { display: flex; flex-direction: column; line-height: 1; }
.wm-name { font-family: var(--ll-shop-font-heading); font-weight: 600; font-size: 40px; line-height: 1; }
.wm-press { font-family: var(--ll-shop-font-body); font-weight: 600; font-size: 16px; letter-spacing: 0.18em; margin-top: 4px; }
.shop-header nav a { font-weight: 600; font-size: 18px; }

/* ---------- Footer (legal small print, still >= 16px) ---------- */
.shop-footer { background: var(--shop-bg); color: var(--shop-text); border-top: 1px solid var(--shop-muted); padding: 24px 0 32px; }
.fine { font-size: 16px; line-height: 1.6; margin: 0 0 8px; overflow-wrap: anywhere; }

/* ---------- Zones ---------- */
.shop-zone { background: var(--shop-bg); color: var(--shop-text); padding: 32px 0 56px; }
.brand-zone {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-b);
  padding: 32px 0 64px;
  min-height: 60vh;
}
.brand-zone h1, .brand-zone h2, .brand-name, .product-title, .offer-title {
  font-family: var(--font-h);
  font-weight: var(--h-weight);
  font-style: var(--h-style);
  text-transform: var(--h-transform);
  letter-spacing: var(--h-tracking);
  font-variant: var(--h-variant);
}
h1, h2, h3 { font-family: var(--font-h); font-weight: 600; line-height: 1.2; margin: 0 0 16px; }
h1 { font-size: clamp(32px, 6vw, 52px); }
h2 { font-size: clamp(24px, 4vw, 32px); margin-top: 32px; }
h3 { font-size: 22px; margin-top: 24px; }
p { margin: 0 0 16px; }

/* ---------- Home ---------- */
.hero { padding-bottom: 24px; }
.hero-line { font-size: clamp(30px, 5.5vw, 48px); max-width: 22ch; }
.shelf { display: flex; gap: 10px; align-items: flex-end; height: 72px; border-bottom: 3px solid var(--shop-glow); padding-left: 8px; margin-top: 8px; width: max-content; }
.spine { display: block; width: 22px; border-radius: 2px 2px 0 0; }
.spine:nth-child(1) { height: 64px; } .spine:nth-child(2) { height: 56px; } .spine:nth-child(3) { height: 68px; } .spine:nth-child(4) { height: 60px; }
.brands { display: grid; grid-template-columns: 1fr; gap: 20px; margin-top: 16px; }
@media (min-width: 900px) { .brands { grid-template-columns: 1fr 1fr; } .persona-group { grid-column: 1 / -1; } }
.brand-card {
  display: flex; flex-direction: column; gap: 8px; padding: 28px 24px; border-radius: 10px;
  background: var(--bg); color: var(--text); text-decoration: none; font-family: var(--font-b);
  border-top: 6px solid var(--accent);
}
.brand-card:hover .bc-product { text-decoration: underline; }
.bc-name {
  font-family: var(--font-h); font-weight: var(--h-weight); font-style: var(--h-style); text-transform: var(--h-transform);
  letter-spacing: var(--h-tracking); font-variant: var(--h-variant); font-size: 30px; line-height: 1.15;
}
.bc-tagline { font-size: 18px; }
.bc-product { font-size: 18px; font-weight: 600; }
.group-title { margin-top: 8px; }
.persona-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 900px) { .persona-grid { grid-template-columns: repeat(3, 1fr); } }

.ai-badge {
  display: inline-block; align-self: flex-start; font-family: var(--font-b); font-size: 16px; font-weight: 600; line-height: 1.3;
  padding: 2px 10px; border: 1px solid currentColor; border-radius: 999px; margin: 0 0 0 8px; vertical-align: middle;
  font-style: normal; text-transform: none; letter-spacing: normal;
}
.brand-card .ai-badge, .brand-hero .ai-badge { margin-left: 0; }

/* ---------- Brand + product pages ---------- */
.eyebrow { font-size: 18px; margin-bottom: 20px; }
.eyebrow a { font-weight: 600; }
.brand-rule { width: 96px; height: 3px; background: var(--accent); margin: 0 0 20px; }
.brand-zone .brand-rule { background: var(--secondary); }
.lead { font-size: 20px; max-width: 46ch; }
.product-card {
  display: block; padding: 28px 24px; margin-top: 24px; border: 1px solid var(--muted); border-left: 6px solid var(--accent);
  border-radius: 8px; text-decoration: none; color: var(--text); max-width: 760px;
}
.product-card span { display: block; }
.pc-format { font-size: 16px; font-weight: 600; margin-bottom: 4px; }
.pc-title { font-family: var(--font-h); font-weight: var(--h-weight); font-style: var(--h-style); font-size: 28px; line-height: 1.2; margin-bottom: 12px; }
.pc-promise { margin-bottom: 12px; }
.pc-more { font-weight: 600; text-decoration: underline; }
.format { font-weight: 600; font-size: 16px; margin-bottom: 8px; }
.product-title { max-width: 24ch; }
.bullets { padding-left: 1.2em; max-width: 60ch; }
.bullets li { margin-bottom: 10px; }
.bullets li::marker { color: var(--secondary); }
.ai-voice { font-style: italic; }
.offers { display: grid; grid-template-columns: 1fr; gap: 20px; margin: 32px 0 16px; }
@media (min-width: 900px) { .offers { grid-template-columns: 1fr 1fr; } }
.offer { border: 1px solid var(--muted); border-top: 6px solid var(--accent); border-radius: 10px; padding: 24px; display: flex; flex-direction: column; }
.offer-title { font-size: 26px; margin: 0 0 4px; }
.offer-format { font-size: 16px; margin-bottom: 8px; }
.price { font-size: 36px; font-weight: 600; margin: 8px 0 8px; font-family: var(--font-b); }
.note { font-size: 16px; }
.refund-line { font-weight: 600; margin-top: 8px; }
@media (min-width: 900px) { .offers-single { grid-template-columns: minmax(0, 560px); } }
.includes { padding-left: 1.2em; margin: 0 0 16px; }
.includes li { margin-bottom: 8px; }
.consent { display: grid; grid-template-columns: 28px 1fr; gap: 10px; align-items: start; margin: 8px 0 16px; font-size: 16px; }
.consent input { width: 24px; height: 24px; margin: 2px 0 0; accent-color: var(--accent); }
.consent-error { outline: 2px solid currentColor; outline-offset: 6px; border-radius: 4px; }
.error-msg { grid-column: 1 / -1; font-weight: 600; margin: 0; }
.btn {
  display: inline-block; margin-top: auto; background: var(--accent); color: var(--accent-text); border: 0; border-radius: 8px;
  font: 600 18px/1.2 var(--font-b); padding: 16px 24px; cursor: pointer; text-decoration: none; text-align: center; min-height: 48px;
}
.btn:hover { filter: brightness(1.08); }
.shop-zone .btn { background: var(--shop-accent); color: var(--shop-accent-text); }

/* ---------- Thanks / legal / stats ---------- */
.downloads { list-style: none; padding: 0; display: grid; gap: 12px; margin: 24px 0; }
.downloads .btn { width: 100%; }
.legal h2 { font-size: 24px; }
.legal blockquote { margin: 0 0 16px; padding: 12px 16px; border-left: 4px solid var(--shop-accent); }
.legal-dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 20px; }
.legal-dl dt { font-weight: 600; }
.legal-dl dd { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 560px) { .legal-dl { grid-template-columns: 1fr; } .legal-dl dd { margin-bottom: 8px; } }
.form-model { padding: 16px; border: 1px dashed var(--shop-muted); }
.table-scroll { overflow-x: auto; margin-bottom: 16px; }
.stats-table { border-collapse: collapse; font-size: 16px; min-width: 640px; }
.stats-table th, .stats-table td { border-bottom: 1px solid var(--shop-muted); padding: 8px 10px; text-align: left; vertical-align: top; }

/* Product page: Calliope's full copy, sale states */
.subtitle { font-size: 20px; margin: -8px 0 16px; max-width: 46ch; }
.product-section { max-width: 68ch; margin-top: 8px; }
.product-section h2 { margin-top: 40px; }
.product-section .bullets { padding-left: 1.2em; }
.taste { margin: 0 0 16px; padding: 4px 0 4px 20px; border-left: 4px solid var(--secondary); }
.taste p:last-child { margin-bottom: 0; }
.faq-item h3 { font-family: var(--font-b); font-size: 18px; font-weight: 600; margin: 24px 0 8px; font-style: normal; text-transform: none; letter-spacing: normal; font-variant: normal; }
.faq-item p { margin: 0; }
.under-button { font-size: 16px; margin: 16px 0 0; }
.offer .refund-line { margin: 0 0 12px; }
.soon { font-size: 24px; font-weight: 600; margin: 12px 0 8px; font-family: var(--font-b); }
.offer-pending, .offer-soon { border-top-style: solid; border-top-color: var(--muted); }
.product-card .pc-soon { display: inline; }
.brand-line { margin-top: 40px; padding-top: 16px; border-top: 1px solid var(--muted); font-size: 16px; max-width: 68ch; }
.product-images { display: grid; grid-template-columns: 1fr; gap: 24px; margin: 32px 0 8px; align-items: start; }
@media (min-width: 900px) { .product-images { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); } }
.product-images figure { margin: 0; }
.product-images img { display: block; width: 100%; height: auto; border-radius: 4px; }
.product-images figcaption { font-size: 16px; margin-top: 8px; }
.offer .seller-link { margin: 12px 0 0; }

/* Test-mode bar: checkout pages only, while the Stripe key is a test key. */
.test-bar { margin: 0; padding: 8px 16px; text-align: center; font-size: 16px; font-weight: 600; line-height: 1.4; background: var(--shop-text); color: var(--shop-bg); }

/* Home brand cards carry the old brand overview (brand + its book). */
.bc-format { font-size: 16px; font-weight: 600; }
.bc-promise { font-size: 18px; }
.bc-more { font-weight: 600; text-decoration: underline; }
.spine { background: var(--brand-accent); }

/* /contact: top block, divider, one quiet inline line (muted TEXT token, >= 4.5:1, 16px). */
.contact-block { font-size: 18px; line-height: 1.8; }
.contact-rule { border: 0; border-top: 1px solid var(--shop-muted); margin: 32px 0 16px; }
.contact-legal { font-size: 16px; color: var(--shop-text-muted); overflow-wrap: anywhere; }

/* ---------- Landing pages: no header, no navigation, the brand's fixed palette edge to edge ---------- */
body.landing { background: var(--bg); color: var(--text); font-family: var(--font-b); }
.landing-main { padding: 24px 0 48px; }
.landing { max-width: 760px; }
.landing h1, .landing h2, .landing-brand {
  font-family: var(--font-h); font-weight: var(--h-weight); font-style: var(--h-style);
  text-transform: var(--h-transform); letter-spacing: var(--h-tracking); font-variant: var(--h-variant);
}
.landing-brand { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 20px; margin: 0 0 24px; padding-bottom: 12px; border-bottom: 2px solid var(--secondary); }
.landing-brand .ai-badge { margin: 0; }
.landing-headline { font-size: clamp(32px, 7vw, 48px); max-width: 20ch; }
.landing .lead { font-size: 20px; max-width: 52ch; }
.landing-buy { margin: 24px 0 40px; padding: 24px 0 8px; border-top: 1px solid var(--muted); border-bottom: 1px solid var(--muted); }
.landing-price { font-size: 18px; margin: 0 0 8px; }
.landing-buy .refund-line { font-weight: 400; font-size: 16px; }
.landing-price .price { font-size: 32px; margin: 0; display: inline; }
.landing-buy .btn { display: block; width: 100%; max-width: 420px; }
.landing-section { margin-top: 8px; }
.landing-section h2 { margin-top: 40px; }
.landing-section .bullets li::marker { color: var(--secondary); }
.landing-sample { margin: 40px 0 8px; }
.landing-sample img { display: block; width: 100%; max-width: 560px; height: auto; border: 1px solid var(--muted); }
.landing-sample figcaption { font-size: 16px; margin-top: 8px; max-width: 560px; }
.landing-line { display: flex; gap: 12px; align-items: center; }
.landing-line .mark { flex: none; width: 32px; height: 32px; }
.landing-footer { background: var(--bg); color: var(--text); border-top: 1px solid var(--muted); padding: 24px 0 32px; }
.landing .under-button { font-size: var(--ll-body-size); }
