/* LeapCode fluid width system. Stamped into every page by scripts/build_shell.js (linked from partials/header.html,
   so it loads after each page's inline <style>). 1 container, 1 measure rule:
   - container: max 1200px, centred, fluid side padding
   - text blocks fill the container; no ch/px/rem caps shorter than the container
   Cards, tables, forms, inputs, code and decorative SVG keep their own sizes.
   !important is deliberate: page-level rules (ID/class chains, later <style> blocks) must not re-cap text. */

/* 1. Container */
.wrap, .container, .container--narrow, .wrap.nar, .wrap.hero-copy, .wrap.measure, .wrap.story, .wrap.next, .lcl-strip__in {
  box-sizing: border-box;
  width: 100%;
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: clamp(16px, 4vw, 40px) !important;
  padding-right: clamp(16px, 4vw, 40px) !important;
}

/* 2. Text fills its container (never the container itself: a .wrap.measure keeps the 1200px cap of rule 1, 1.8.5 KZ 7 Nov 2026) */
:is(h1, h2, h3, h4, p, li, dd, blockquote, figcaption,
    .lead, .lede, .sub, .sub2, .note, .op-note, .op-lead, .op-hero__sub, .intro, .cn, .clause, .cond, .alt, .small, .muted,
    .prose, .prose p, .prose li, .measure, .callout, .price, .pull, .copy, .cta p, .cta-stack__note, .next p, .unlock .cb):not(.keep-measure):not(.wrap):not(.container):not(.container--narrow):not(.path li):not(.lcx-menu__list li):not(.lcx-nav__list li) {
  max-width: none !important;
}
/* hero text blocks sit in the same container, so they take the same full width */
.hero .copy, .hero .prose, .hero .lead, .anchor .lead, .anchor .cn, .close h2, .op-hero h1, .op-hero__sub, .hero-mc h1, .hero-mc .lead,
.op-final p, .op-final h2, .op-pain h2, .op-mid h2, .bento .a h3, .bento .b p, .skim p {
  max-width: none !important;
}
/* 3. Footer fills the container */
.lcx-footer__in { max-width: calc(1200px - 2 * clamp(16px, 4vw, 40px)); } /* 1.8.6 A-2: lines up with .wrap content */
.lcx-footer__legal p { max-width: none !important; }
