/* Prince typography system — 2026-09-12
Project scale informed by WCAG resize/reflow guidance — not a claim of WCAG certification
Base 16 / controls 14–15 / small 12 / H2 28–40 / H1 32–48
*/
:root{--pr-body:1rem;--pr-ui:.9375rem;--pr-small:.75rem;--pr-h1:clamp(2rem,3.5vw,3rem);--pr-h2:clamp(1.75rem,2.8vw,2.5rem);--pr-h3:clamp(1.125rem,1.5vw,1.375rem)}
body.prince-site{font-size:var(--pr-body);line-height:1.6;--pr-reading:1rem}
body.prince-site header.pr-header a.pr-brand{width:218px;max-width:46vw}
body.prince-site header.pr-header a.pr-brand img,body.prince-site header.pr-header .pr-logo-art{width:100%;max-width:218px;max-height:78px;height:auto;object-fit:contain}
body.prince-site .pr-header .pr-nav{gap:22px}
body.prince-site .pr-nav a,body.prince-site .menu-toggle{font-size:var(--pr-ui);line-height:1.4}
body.prince-site main h1{font-size:var(--pr-h1);line-height:1.15;letter-spacing:-.035em}
body.prince-site main h1 em{font-size:1em;letter-spacing:inherit}
body.prince-site main h2,body.prince-site .pr-taxi-copy h2{font-size:var(--pr-h2);line-height:1.2;letter-spacing:-.025em}
body.prince-site .pr-atelier-intro .pr-sidebar-title{font-size:1.875rem;line-height:1.15;letter-spacing:-.025em}
body.prince-site main h3{font-size:var(--pr-h3);line-height:1.35;letter-spacing:-.01em}
body.prince-site .pr-section p:not(.eyebrow),body.prince-site .pr-taxi-lead,body.prince-site .pr-taxi-service p,body.prince-site .pr-showcase-summary p,body.prince-site .pr-service-description{font-size:var(--pr-body);line-height:1.6}
body.prince-site .pr-showcase-summary .pr-summary-lead{font-size:1.125rem;line-height:1.45}
body.prince-site .process-list h3,body.prince-site .pr-taxi-service h3{font-size:1.125rem}
body.prince-site .pr-service-tabs button{font-size:var(--pr-ui);line-height:1.4}
body.prince-site .pr-service-tabs button :is(strong,span:not(.pr-service-icon)){font-size:inherit}
body.prince-site :is(.pr-button,.text-link,.pr-taxi-cta,.pr-showcase-summary>a,.pr-taxi-tabs button){font-size:.875rem;line-height:1.5;min-height:44px}
body.prince-site :is(.eyebrow,.pr-taxi-kicker,.pr-taxi-focus-top,.pr-taxi-bottom span){font-size:var(--pr-small);line-height:1.5;letter-spacing:.1em}
body.prince-site .pr-taxi-vehicle h3{font-size:1.75rem;line-height:1.25}
body.prince-site .pr-taxi-vehicle p,body.prince-site .pr-taxi-note{font-size:.875rem;line-height:1.6}
body.prince-site .pr-taxi-vehicle{min-height:190px}
body.prince-site .pr-footer{font-size:.875rem;line-height:1.6}
body.prince-site .material-art strong{font-size:var(--pr-h2);line-height:1.2}
body.prince-site .material-art :is(small,span){font-size:var(--pr-small);line-height:1.5;letter-spacing:.08em}
body.prince-site .pr-taxi-banner{padding:8px 0}
body.prince-site .pr-taxi-message{font-size:.9375rem;font-weight:500;line-height:1.5;letter-spacing:0}
body.prince-site .pr-taxi-lamp{flex-basis:78px;width:78px;height:32px}
body.prince-site .pr-taxi-lamp-label{font-size:1rem;letter-spacing:3px}
body.prince-site .pr-taxi-ticker-group{gap:28px;padding-right:28px}
@media(max-width:1000px) and (min-width:701px){body.prince-site .pr-header .pr-nav{gap:12px}body.prince-site .pr-header .nav-contact{padding-inline:10px}body.prince-site .pr-nav a{font-size:.875rem}}
@media(max-width:700px){body.prince-site header.pr-header a.pr-brand{width:172px}body.prince-site header.pr-header a.pr-brand img,body.prince-site header.pr-header .pr-logo-art{max-height:62px}body.prince-site .pr-taxi-message{font-size:.8125rem}body.prince-site .pr-taxi-lamp{flex-basis:60px;width:60px;height:25px}body.prince-site .pr-taxi-ticker-group{gap:16px;padding-right:16px}body.prince-site .pr-taxi-banner{padding:6px 0}body.prince-site .pr-taxi-lamp-label{font-size:.8125rem;letter-spacing:2px}body.prince-site .pr-service-tabs{grid-template-columns:1fr}body.prince-site .pr-service-tabs button{min-height:52px}}
/* Embedded service experiences share the same scale */
body:not(.prince-site){font-size:1rem;line-height:1.6}
body:not(.prince-site) h1{font-size:clamp(1.75rem,3.4vw,2.25rem)!important;line-height:1.15!important;letter-spacing:-.025em!important}
body:not(.prince-site) h2{font-size:1.125rem!important;line-height:1.35!important}
body:not(.prince-site) :is(.intro,.caption p,.detail p,.materialcopy p,header p){font-size:.9375rem!important;line-height:1.6!important}
body:not(.prince-site) :is(.eyebrow,.label,.tag,.badge,.caption,.foot,.note,.notes span,.stage-hint,.stage-label,.photo-note span,.diagram-label,.diagram-hint,.foamhead,.photobar span,.index,.detail small,.controls b,.project small,.material,.range-label,.help){font-size:.75rem!important;line-height:1.5!important;letter-spacing:.035em!important}
body:not(.prince-site) :is(.controls,.steps,.modes,.area,.viewtabs,.photobar,.playback,.materials) button{font-size:.8125rem!important;line-height:1.4!important;min-height:40px}
body:not(.prince-site) :is(.copy,.aside){overflow-y:auto;min-height:0}
body:not(.prince-site) .intro{max-width:48ch}
@media(max-width:580px){body:not(.prince-site) h1{font-size:1.75rem!important}body:not(.prince-site) :is(.intro,.caption p,.detail p,.materialcopy p){font-size:.875rem!important}}
