/* Vitruvia uses exactly three responsive text sizes across public pages. */
:root{
  --type-label:15px;
  --type-body:clamp(18px,1.35vw,20px);
  --type-title:clamp(30px,3.4vw,48px);
  --display:'Cinzel','Times New Roman',serif;
  --roman:'Cinzel','Times New Roman',serif;
  --body:'Manrope',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}
body{font-family:var(--body);font-size:var(--type-body)!important;font-weight:500;line-height:1.68}
h1,h2,.hero h1,.sec-title,.manifesto .quote,.foundation h2,.duo h2,.band h2,
.ams-title,.ams-score,.vdq-sec-title,.vdq-score-big{
  font-family:var(--display)!important;font-size:var(--type-title)!important;font-weight:600!important;line-height:1.14!important;
}
/* Card titles and questions share the reading size; weight supplies hierarchy. */
h3,.step h3,.step-copy h3,.benefit h3,.phase h3,.scard h3,.lead-doc .name,.member .name,
.ams-q,.ams-band,.vdq-qlabel,.vdq-tier,.article-body h2:not(:first-of-type){
  font-family:var(--display)!important;font-size:var(--type-body)!important;font-weight:700!important;line-height:1.35!important;
}
h1,h2,h3{min-width:0;overflow-wrap:anywhere}
.benefit p{color:var(--marble-2)}
p,li,a,button,input,textarea,label,blockquote,figcaption,.btn,.menu a,.mn-link,.hero p.lead,
.hero .hero-signature,.section-signature,.step-signature,.manifesto p,.manifesto .manifesto-fact,
.benefit p,.phase p,.scard p,.callout p,.symp ul,.scard ul,.step-copy p,.foundation p,.duo p,.band p,
.qcard blockquote,.lead-quote blockquote,.vdq-rec-text,.vdq-check,.vdq-redflags li,.vdq-sentinel,
.vdq-qsub,.vdq-sec-sub,.ams-lead,.ams-q-sub,.ams-opt,.vdq-opt,.vdq-binary-btn,.vdq-lead-form input,
.vdq-lead-form textarea,.vdq-lead-form select,.foot-grid a,.foot-grid p,.lab-caption,.lab-explanation,.lab-link{
  font-size:var(--type-body)!important;line-height:1.68;
}
.eyebrow,.benefit .bn,.benefit .ev,.phase .ph-when,.symp .sh,.step-num,.hero-meta,.hero .under,
.standards span,.lead-doc .role,.member .role,footer h4,.lab-label,.lab-ticks,.lab-footer,.note-line,
.disclaimer,.ams-eyebrow,.ams-meta span,.ams-cat,.ams-count,.ams-disc,.ams-ticks,.ams-dom .dn,
.ams-dom .dv,.vdq-sec-label,.vdq-scale-btn,.vdq-scale-btn .sn,.vdq-scale-btn .sl,.vdq-back,
.vdq-error,.vdq-gauge-labels,.vdq-dom .dn,.vdq-dom .dv,.vdq-rec-label,.vdq-privacy,
.vdq-redflags .rf-label,.gsw-opt,.menu a,.nav-cta .btn,.lab-explore{
  font-size:var(--type-label)!important;line-height:1.5;
}
.lab-value,.lab-value>span:not(small){font-size:var(--type-title)!important}.lab-value small{font-size:var(--type-label)!important}
.brand .word{font-family:var(--body)!important;font-size:var(--type-body)!important;font-weight:500!important}
.hero h1,.hero:has(.lab-readout) h1{max-width:100%}
.hero .hero-signature,.section-signature,.step-signature{font-family:var(--display)!important;font-style:italic;font-weight:600!important;word-spacing:.12em}
@media(max-width:720px){
  :root{--type-label:14px;--type-body:18px;--type-title:clamp(28px,7.5vw,32px)}
  .hero{min-height:auto!important;padding-top:96px!important}
  .hero .eyebrow{font-size:var(--type-label)!important}
  .hero-copy{order:0!important}.hero-figure{order:1!important;height:300px!important;max-height:300px!important}
  .hero h1,.hero:has(.lab-readout) h1{max-width:100%;white-space:normal!important}
  .hero h1 .hl-line{white-space:normal!important}
}
@media(min-width:721px) and (max-width:1100px){
  header .brand .word,.hero .eyebrow{font-size:var(--type-label)!important}
  .hero .cta-row .btn{font-size:var(--type-body)!important}
}
