/* LUMIÈRE type system — loaded last so every page uses one scale.
   One family (Calibri, then Arial), two weights (400 text, 700 labels), nine sizes. */
:root{
  --t-label:.75rem;                                  /* 12px  uppercase labels, eyebrows, meta, buttons */
  --t-small:.875rem;                                 /* 14px  captions, table cells, card text */
  --t-body:1rem;                                     /* 16px  running text */
  --t-lead:1.125rem;                                 /* 18px  intro paragraphs */
  --t-h4:1.25rem;                                    /* 20px  card titles */
  --t-h3:clamp(1.25rem,1.1rem + .5vw,1.5rem);        /* 20–24 sub-headings */
  --t-h2:clamp(1.625rem,1.3rem + 1.3vw,2.25rem);     /* 26–36 section titles */
  --t-h1:clamp(2rem,1.5rem + 2vw,3rem);              /* 32–48 page titles */
  --t-display:clamp(2.25rem,1.6rem + 2.8vw,3.75rem); /* 36–60 slider and hero */
  --lh-tight:1.12;--lh-head:1.2;--lh-body:1.65;
  --ls-label:.14em;
}
body{font:400 var(--t-body)/var(--lh-body) var(--f-body)}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:400;letter-spacing:-.01em;line-height:var(--lh-head)}

/* labels: one treatment everywhere */
.eyebrow,.hero .hint,.hero-facts,.link-arrow,.stage .tag,.pcard .meta,.proj .meta,.ncard .meta,.byline,.chip,.scene .cap,
.steps li::before,.site-foot .note,.field label,.crumb,.facts dt,th,.keyspecs span,.cfg-h,.kchip,.totals,.foot-h,
.dial-panel label,.ibtn,.ls-dot-label,.is-style-lm-eyebrow,.is-style-lm-label,.cur-ring span,.toast,.nav a,.cct-bar::after{
  font-family:var(--f-body)!important;font-size:var(--t-label)!important;line-height:1.4!important;letter-spacing:var(--ls-label)}
.eyebrow,.link-arrow,.stage .tag,.chip,.scene .cap,.steps li::before,.field label,.facts dt,th,.keyspecs span,.cfg-h,.foot-h,
.dial-panel label,.ls-dot-label,.is-style-lm-eyebrow,.is-style-lm-label,.cur-ring span{font-weight:700!important;text-transform:uppercase}
.pcard .meta,.proj .meta,.ncard .meta,.byline,.crumb,.site-foot .note,.hero-facts,.totals,.toast,.kchip,.ibtn{font-weight:400!important;letter-spacing:.04em}
.nav a{font-weight:400!important;letter-spacing:.1em}
.cfg-h b{font-weight:700}
.btn,.wp-block-button__link,.wp-element-button{font:700 var(--t-label)/1 var(--f-body)!important;letter-spacing:var(--ls-label);padding:13px 22px}
.logo{font-size:1.125rem!important}
.logo-text{letter-spacing:.3em}

/* display */
.hero h1,.ls-title{font-size:var(--t-display)!important;line-height:var(--lh-tight)!important;letter-spacing:-.02em;max-width:16ch}
/* page and section titles */
.page-head h1,.pdp h1,.pdp-info h1,.single .page-head h1{font-size:var(--t-h1)!important;line-height:var(--lh-tight)!important;max-width:22ch}
.sec-head h2,.cta h2,.lm-cta-block h2,.feature h2,.lm-band>.wp-block-heading,.lm-band h2,.entry h2,.prose h2{font-size:var(--t-h2)!important;line-height:var(--lh-head)!important}
.cta h2{max-width:20ch}
/* sub-headings */
.pdp-h,.tool h3,.tech h3,.steps h3,.lm-cards h3,.entry h3,summary,.entry .wp-block-details summary,.contact-info .pdp-h{font-size:var(--t-h3)!important;line-height:var(--lh-head)!important}
/* card titles */
.pcard h3,.proj h3,.ncard h3{font-size:var(--t-h4)!important;line-height:1.25!important}
/* figures */
.facts dd,.keyspecs b,.totals b,.is-style-lm-figure,.contact-info .facts dd{font-size:var(--t-h3)!important;line-height:1.2!important}
.ls-count b{font-size:var(--t-h2)!important}
/* running text */
.lead,.hero .lead,.page-head .lead,.ls-text,.is-style-lm-lead,.entry blockquote,.entry .wp-block-quote{font-size:var(--t-lead)!important}
.pcard p,.tech p,.steps p,.ncard p,.tool p,.sec-head p,.feat li,.lm-cards p{font-size:var(--t-small)!important;line-height:1.6}
.site-foot{font-size:var(--t-small)}
table,td,.sch th,.sch td,.sch td input,.entry table,.sources,.entry figcaption,.status,.ls-count,.dial-panel p,.note-sm{font-size:var(--t-small)!important}
td{font-family:var(--f-body)}
.polar text{font-size:9px}

/* tighter rhythm to match the smaller type */
.sec{padding-block:clamp(48px,7vw,88px)}
.sec-head{margin-bottom:clamp(24px,3vw,40px)}
.page-head{padding-block:clamp(24px,4vw,48px) clamp(20px,2.5vw,32px);gap:14px}
.hero .wrap{padding-block:clamp(48px,7vw,96px) clamp(36px,5vw,64px)}
.cta{padding-block:clamp(56px,8vw,104px)}
.grid{gap:clamp(16px,2vw,28px)}
.pcard{gap:12px}
.lslider{height:clamp(520px,80vh,800px)}
.ls-copy{gap:16px}
@media (max-width:760px){.ls-title{max-width:14ch}}

/* 3.1 legibility and touch: table labels at 12 px or more, and every link or button at least 24 px tall
   to tap (WCAG 2.2 target size), enlarged with padding offset by negative margin so nothing moves */
th,.spec-table th{font-size:max(12px,.75rem)!important}
.logo{padding-block:10px;margin-block:-10px}
.site-foot li a,.site-foot .note a{display:inline-block;padding-block:4px;margin-block:-4px}
.link-arrow{padding-block:4px;margin-block:-4px}
.ls-dot{position:relative}.ls-dot::before{content:"";position:absolute;left:0;right:0;top:-6px;bottom:-8px}
.lab-ctrl input[type=range],.sim-f input[type=range]{height:24px!important;padding-block:9px!important;background-clip:content-box!important;box-sizing:border-box}
.tv-book-t{font-size:max(9px,1em)}
