/* Shared reading hierarchy. Change roles here instead of shrinking individual blocks. */
:root{
  --type-caption:14px;
  --type-control:16px;
  --type-body:18px;
  --type-lead:20px;
  --type-card:24px;
  --type-title:clamp(32px,3.1vw,40px);
  --type-display:clamp(32px,4.3vw,56px);
}
body{font-family:Geologica,Arial,sans-serif}
body :is(.strateg-legal-panel,.strateg-legal-bar,.strateg-legal-consent){font-family:Geologica,Arial,sans-serif;font-size:var(--type-caption);line-height:1.6}
body .strateg-legal-panel h2{font-family:Geologica,Arial,sans-serif;font-size:var(--type-card);line-height:1.3}
body .strateg-legal-actions button{font-family:Geologica,Arial,sans-serif;font-size:var(--type-control);line-height:1.5}
:is(#main,#qwiz,dialog,.brief){font-size:var(--type-body);line-height:1.65}
:is(#main,#qwiz,dialog,.brief) :is(span,strong,b,em,a,label,legend,time){font-size:inherit}
:is(#main,#qwiz,dialog,.brief) :is(h1,h2,h3,h4){font-family:Geologica,Arial,sans-serif;font-weight:500;letter-spacing:-.035em;text-wrap:pretty}
:is(#main,#qwiz,dialog,.brief) h1{font-size:var(--type-display);line-height:1.12}
:is(#main,#qwiz,dialog,.brief) h2{font-size:var(--type-title);line-height:1.2}
:is(#main,#qwiz,dialog,.brief) h3{font-size:var(--type-card);line-height:1.3}
:is(#main,#qwiz,dialog,.brief) h4{font-size:var(--type-lead);line-height:1.4}
:is(#main,#qwiz,dialog,.brief) :is(p,li,dt,dd){font-size:var(--type-body);line-height:1.65}
:is(#main,#qwiz,dialog,.brief) summary{font-size:var(--type-body);line-height:1.5}
:is(#main,#qwiz,dialog,.brief) :is(.lead,.hero-description,.section-heading>p,.section-head>p,.contact-section h2+p){font-size:var(--type-lead);line-height:1.6}
:is(#main,#qwiz,dialog,.brief) :is(button,input,select,textarea,.button,.text-link,.fld,label,legend){font-family:Geologica,Arial,sans-serif;font-size:var(--type-control);line-height:1.5}
:is(#main,#qwiz,dialog,.brief) :is(.eyebrow,.small-label,.fine-print,small,figcaption,.case-path,.case-top,.case-bottom,.case-bottom>span,.number-caption,.route-num,.route-link,.package-audience,.team-grid figcaption span,.radar-disclaimer,.radar-legend,.safe,.consent,.after,.article-meta,.breadcrumb,.breadcrumbs){font-size:var(--type-caption);line-height:1.6}
:is(#main,#qwiz,dialog,.brief) figcaption p{font-size:var(--type-caption);line-height:1.6}
:is(#main,#qwiz,dialog,.brief) :is(.hero-expertise,.service-tab,.package li,.case-tags,.case-dialog-tags span,.configuration-list li,.case-top span,.case-bottom a){font-size:var(--type-control);line-height:1.5}
:is(#main,#qwiz,dialog,.brief) :is(.case-number,.proof-number,.rate-strip strong){font-size:var(--type-title);line-height:1.2;font-variant-numeric:tabular-nums}
:is(#main,#qwiz,dialog,.brief) :is(.case-proof,.proof-inner>div>strong){font-size:var(--type-card);line-height:1.3}
:is(#main,#qwiz,dialog,.brief) .case-stat{font-size:var(--type-title);line-height:1.2}
:is(#main,#qwiz,dialog,.brief) :is(.case-stat>span,.case-evidence-footer,.capability-number){font-size:var(--type-caption);line-height:1.6}
:is(#main,#qwiz,dialog,.brief) .capability-heading{font-size:var(--type-card);line-height:1.3}
:is(#main,#qwiz,dialog,.brief) :is(.capability-teaser,.ic-hero-facts,.tools-shortcuts){font-size:var(--type-control);line-height:1.6}
:is(#main,#qwiz,dialog,.brief) .ic-map-arrow{font-size:var(--type-card)}
:is(#main,#qwiz,dialog,.brief) .ic-map-arrow span{font-size:var(--type-caption)}
:is(#main,#qwiz,dialog,.brief) .contacts a[href^="tel:"]{font-size:var(--type-card);line-height:1.4}
:is(#main,#qwiz,dialog,.brief) .contacts a[href^="mailto:"]{font-size:var(--type-body);line-height:1.6}
:is(#main,#qwiz,dialog,.brief) :is(.proof-inner>div>span,.process-line article>span:last-child,.support-streams article>span,.package details,.service-preview>span,.journal-rubrics button){font-size:var(--type-caption);line-height:1.6}
#main .process-line{gap:32px 24px}
#main .process-line article{display:flex;flex-direction:column;align-items:flex-start;padding-right:0}
#main .process-line p{max-width:none;min-height:0;margin-top:16px}
#main .process-line article>span:last-child{margin-top:auto;padding-top:20px;max-width:none;align-self:flex-start;text-align:left}
#main .delivery-ledger :is(dt,dd),#main .consulting-note p{font-size:var(--type-body);line-height:1.65}
#main .delivery-ledger dt>span{font-size:var(--type-caption)}
#main .consulting-note{gap:28px}
#main .consulting-note .text-link{flex-shrink:0}
/* Diagram headings are component titles; labels share the caption/control roles. */
#main :is(.ix-top h2,.ix-detail h3,.b24-universe-head h2,.b24-space-detail h3){font-size:var(--type-card);line-height:1.3}
#main .ix-top h2{font-size:var(--type-title);line-height:1.2}
#main .ix--compact{height:auto;grid-template-rows:auto auto clamp(440px,34vw,580px) auto auto auto;row-gap:18px}
#main .ix--compact .ix-top{padding-bottom:0}
#main .ix--compact .ix-node-name{font-size:var(--type-body);line-height:1.3}
#main .ix--compact .ix-crm-word{font-size:var(--type-card);line-height:1.2}
#main :is(.ix-demo,.ix-legend,.ix-legend small,.ix-eyebrow,.ix-note,.ix-node-sub,.ix-event-label,.ix-packet-tag,.b24-packet-label){font-size:var(--type-caption);line-height:1.6}
#main .ix--compact .ix-legend,#main .ix--compact .ix-legend small{font-size:var(--type-control);line-height:1.6}
#main .ix--compact .ix-legend{padding-block:18px;gap:16px 28px}
#main .ix--compact .ix-detail{padding:28px 16px;min-height:0;gap:40px}
#main .ix--compact .ix-detail p{display:block;font-size:var(--type-body);line-height:1.65}
#main .ix--compact .ix-event>span:last-child{font-size:var(--type-control);line-height:1.6}
#main .ix--compact .ix-event strong{font-size:var(--type-body);line-height:1.5}
#main .ix--compact .ix-reset{position:static;max-width:none;margin-top:14px;font-size:var(--type-control)}
#main .ix--compact .ix-steps button{height:auto;min-height:44px;font-size:var(--type-control)}
#main .ix--compact .ix-note{padding-top:18px;font-size:var(--type-control);line-height:1.6;max-width:85ch}
#main :is(.solar-system__eyebrow,.solar-system__hint,.solar-system__sun-label small,.solar-system__legend button,.solar-system__callout-number){font-size:var(--type-caption);line-height:1.6}
#main .solar-system__detail p{font-size:var(--type-control);line-height:1.6}
#main .solar-system__label{font-size:var(--type-caption);line-height:1.4}
#main :is(.radar-topline,.crm-kpis>div>span){font-size:var(--type-caption);line-height:1.6}
.site-header :is(.desktop-nav,.header-cta,.mega-links,.mobile-secondary){font-size:var(--type-control);line-height:1.5}
.site-footer :is(.footer-col,.footer-email){font-size:var(--type-control);line-height:1.65}
.site-footer .footer-phone{font-size:var(--type-card);line-height:1.4}
.site-footer :is(.footer-label,.footer-company,.footer-controls,.theme-toggle){font-size:var(--type-caption);line-height:1.6}
/* The narrow copy column beside the approved CRM photograph uses existing roles. */
@media(min-width:1440px) and (max-width:1600px){
  #main .home-hero h1{font-size:var(--type-title)}
  #main .home-hero .lead{font-size:var(--type-body)}
}
@media(max-width:1180px){
  #main .process-line{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:40px}
}
@media(max-width:900px){
  #main .ix--compact{grid-template-rows:auto auto 500px auto auto auto}
  #main .ix--compact .ix-top h2{max-width:24ch}
  #main .ix--compact .ix-demo{font-size:0}
  #main .ix--compact .ix-legend small{width:100%;margin:0}
}
@media(max-width:700px){
  :root{--type-body:16px;--type-lead:18px}
  #main .process-line{grid-template-columns:1fr;gap:0}
  #main .process-line article{padding:0 0 32px 28px}
  #main .process-line article>span:last-child{padding-top:14px}
  #main .consulting-note{align-items:flex-start;flex-direction:column}
  #main .ix--compact .ix-legend{gap:12px 18px}
  #main .ix--compact .ix-detail{padding-inline:12px}
}
@media(max-width:380px){
  .site-header .header-cta{max-width:118px;white-space:normal;line-height:1.35;padding:8px 12px;text-align:center}
}
