/* R14: one readable type system, independent of legacy component sizing. */
:root {
  --type-h1:clamp(3.5rem,4.2vw,5.5rem);
  --type-h2:clamp(2.5rem,3.1vw,4rem);
  --type-h3:clamp(1.5rem,1.65vw,2.125rem);
  --type-intro:clamp(1.125rem,1.1vw,1.25rem);
  --type-body:clamp(1rem,.83vw,1.0625rem);
  --type-secondary:1rem;
  --type-label:.875rem;
  --type-decorative:.75rem;
  --measure:70ch;
}
body {font-size:var(--type-body);}
/* Shared footer marks stay visible while their profile URLs are pending. */
.site-footer .footer-social {gap:.875rem;flex-wrap:wrap;}
.site-footer .footer-social :is(a,.social-pending) {
  width:clamp(3.25rem,3vw,3.5rem);
  height:clamp(3.25rem,3vw,3.5rem);
  flex:none;
  color:var(--lime);
  background:var(--panel);
  border-color:color-mix(in srgb,var(--lime) 38%,var(--rule));
}
.site-footer .footer-social .icon {width:1.75rem;height:1.75rem;}
.site-footer .footer-social .social-pending {opacity:1;cursor:default;}
main small {font-size:var(--type-label)!important;line-height:1.5;}
main time {font-size:.9375rem!important;}
main a strong,.experience-proof span,.demo-status,.home-faq-list summary>span {font-size:.9375rem!important;line-height:1.5!important;}
.sector-row-link strong,.demo-flow b {font-size:.9375rem!important;line-height:1.5!important;}
.site-header nav a {min-height:44px;display:inline-flex;align-items:center;}
.nav-dropdown-toggle {min-width:44px!important;min-height:44px!important;}
main h1 {font-size:var(--type-h1)!important;line-height:1.08!important;overflow-wrap:normal;}
main h2 {font-size:var(--type-h2)!important;line-height:1.13!important;}
main h3 {font-size:var(--type-h3)!important;line-height:1.22!important;}
main h4 {font-size:1.25rem!important;line-height:1.3!important;}
main :is(h1,h2) {text-shadow:0 0 32px #c4f93012!important;}
main :is(p,li,dd,dt),footer p {font-size:var(--type-body);line-height:1.65;}
main p {max-width:var(--measure);font-weight:400;}
main :is(small,label,legend),footer small {font-size:var(--type-label);line-height:1.5;}
main :is(input,textarea,select) {font-size:1rem!important;line-height:1.5;}
main :is(button,.button),.site-header :is(a,button),footer a {font-size:1rem;}
:is(.hero-copy,.page-hero,.service-hero,.contact-intro)>p,.section-heading>p,.section-header>p,.hero-bridge>p {font-size:var(--type-intro)!important;line-height:1.65!important;}
.hero-note {font-size:.9375rem!important;line-height:1.65!important;margin-top:2rem!important;max-width:65ch;}
.hero-cta,.button {font-size:1rem!important;white-space:normal!important;line-height:1.45!important;min-height:48px;}
.hero-process li,.hero-steps li {font-size:1rem!important;line-height:1.5!important;}
.hero-process b,.hero-steps b {font-size:1.25rem!important;}
.hero-copy h1 {max-width:18ch;}
.hero-copy>p {max-width:62ch;}
.section :is(p,li),.service-hero p,.sector-fit-row p,.sector-pain-item p,.application-grid p,.pain-cluster li p,.pain-outcome p,.solution-panel :is(p,li),.sector-hub-row li,.sector-row p,.common-tools p,.article-card p,.demo-card p,.contact-principles span,.contact-intro p,.footer-statement p,.faq-item p {font-size:var(--type-body)!important;line-height:1.65!important;}
.pain-cluster li strong,.sector-pain-item strong,.sector-fit-row strong {font-size:1.125rem!important;line-height:1.4!important;}
.pain-outcome small,.pain-cluster-label,.application-grid small,.application-measures>strong,.service-tag,.eyebrow,.article-meta,.sector-index,.section-index,.solution-number {font-size:var(--type-label)!important;line-height:1.5!important;}
.application-measures li,.sector-hub-row>strong,.sector-hub-row a strong,.demo-card small,.form-alternative-note,.form-status,.field-error,.field>span small,.footer-meta,.footer-meta p,.footer-meta small {font-size:.9375rem!important;line-height:1.6!important;}
.application-head {gap:1.5rem 2rem;flex-wrap:wrap;align-items:start;margin-bottom:2rem;}
.application-head h3 {flex:1 1 22rem;max-width:27ch;}
.service-tags {max-width:32rem;flex-wrap:wrap;gap:.5rem;}
.service-tag {white-space:normal;max-width:100%;min-height:36px;padding:.45rem .8rem;display:inline-flex;align-items:center;}
.application-grid>div {min-height:0;padding:1.6rem 1.5rem 1.7rem 0;}
.application-grid>div+div {padding-left:1.5rem;}
.application-grid p {margin:0;max-width:65ch;}
.application-grid small {display:block;margin-bottom:.85rem;letter-spacing:.06em;}
.application-measures {grid-template-columns:180px minmax(0,1fr);gap:1rem 1.5rem;margin-top:1.6rem;}
.application-measures ul {gap:.9rem 1.5rem;}
.application-measures li {align-items:flex-start;}
.application-measures li svg {flex-shrink:0;margin-top:.25rem;}
.sector-application {padding-block:3.5rem;}
.sector-hub-row,.sector-fit-row,.sector-pain-item,.pain-cluster li {min-width:0;}
.sector-hub-row strong {font-size:1rem!important;line-height:1.5!important;}
.sector-hub-row h3 {max-width:26ch;}
.pain-outcome p {max-width:65ch;}
.pain-cluster li {padding-block:1.35rem;}
.solution-panel h3 {max-width:25ch;}
.solution-panel li {gap:.65rem;align-items:flex-start;}
.solution-panel li svg {flex-shrink:0;margin-top:.35rem;}
.article-content {max-width:76ch;}
.article-content p {font-size:var(--type-body)!important;}
.article-content h2,.privacy-copy h2 {margin-top:2.5rem;font-size:clamp(1.75rem,2.5vw,2.5rem)!important;}
.faq-item summary,.faq-list summary {font-size:1.125rem!important;line-height:1.5!important;min-height:48px;padding-block:1rem;}
.site-header {gap:clamp(1rem,1.7vw,2rem);}
.site-header .button,.site-nav>a,.site-nav button,.nav-submenu a {font-size:1rem!important;}
.site-header .brand small {font-size:.9375rem!important;line-height:1.4;}
.site-footer :is(a,li,small,p),footer :is(a,li,small) {font-size:.9375rem!important;line-height:1.6!important;}
footer .footer-statement p {font-size:clamp(1.375rem,1.8vw,1.875rem)!important;line-height:1.35!important;}
footer a {min-height:44px;display:inline-flex;align-items:center;}
.text-link,.text-button {font-size:1rem!important;min-height:44px;line-height:1.5;}
.field>span {font-size:1rem!important;line-height:1.5;}
.field-error:empty {display:none;}
.field-error {color:#ffad96;}
.field {margin-bottom:1.5rem;}
.form-actions {gap:1rem;}
.form-alternative-note,.privacy-note {margin-top:1.25rem;}
.privacy-note {font-size:.9375rem!important;line-height:1.65!important;}
.privacy-note a {text-decoration:underline;text-underline-offset:3px;}
.form-recovery {padding:1.5rem;border:1px solid #ffad9666;background:#ff765408;margin-block:1.5rem;border-radius:12px;}
.form-recovery .form-actions {display:flex;flex-wrap:wrap;margin-top:1rem;}
.form-recovery p {margin:0;}
.contact-steps li {font-size:1rem!important;}
.contact-layout:has([data-form-schedule]:not([hidden])) {grid-template-columns:1fr;}
.contact-layout:has([data-form-schedule]:not([hidden])) .contact-intro {max-width:75ch;}
.contact-layout:has([data-form-schedule]:not([hidden])) .diagnostic-form {width:100%;max-width:1200px;}
.schedule-heading {display:flex;flex-wrap:wrap;gap:1.5rem;align-items:start;justify-content:space-between;margin-bottom:1.5rem;}
.schedule-panel,.form-success,#cal-booker {scroll-margin-top:128px;}
.schedule-heading h2,.form-success h2 {font-size:clamp(1.75rem,2.7vw,2.5rem)!important;}
.schedule-heading p {margin-top:1rem;}
.calendar-provider {min-width:0;margin:0;}
#cal-booker {width:100%;min-height:640px;overflow:auto;border-radius:12px;}
#cal-booker:has(cal-inline[loading="done"]) {min-height:0;}
.calendar-status:empty {display:none;}
.calendar-fallback {display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:1.5rem;}
.calendar-status {font-size:1rem!important;padding:1rem 0;}
.form-success {padding:clamp(1.5rem,4vw,3rem);border:1px solid #c4f93066;}
.form-success p {margin-top:1.25rem;}
.spam-trap {position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;}
[hidden] {display:none!important;}
:is(a,button,input,textarea,select,summary):focus-visible {outline:3px solid var(--lime);outline-offset:5px;}
button[disabled] {cursor:wait;opacity:.65;}
/* The diagram uses real space for its labels instead of reducing their type. */
.system-map {height:auto!important;min-height:640px!important;display:flex;flex-direction:column;padding:2rem 1.5rem!important;gap:1.5rem;}
.map-nodes {position:relative!important;inset:auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1rem!important;order:2;margin:0!important;padding:0;}
.map-node {position:relative!important;inset:auto!important;transform:none!important;width:auto!important;min-width:0!important;min-height:115px!important;padding:1rem!important;gap:.75rem!important;display:flex!important;}
.map-node strong {font-size:1rem!important;line-height:1.3!important;}
.map-node small {font-size:.9375rem!important;line-height:1.45!important;margin-top:.35rem;}
.map-node>span:not(.node-icon) {min-width:0;}
.node-icon {flex-shrink:0;}
.operation-core {position:relative!important;inset:auto!important;transform:none!important;order:1;align-self:center;width:auto!important;min-width:160px;height:auto!important;min-height:100px;padding:1rem!important;margin:0!important;}
.operation-core strong {font-size:1rem!important;line-height:1.4!important;}
.map-connections {opacity:.18;}
@media(min-width:1800px) {
  .site-header .brand-logo {width:220px;}
  .site-header :is(a,button),.site-header .button {font-size:1.0625rem!important;}
}
@media(max-width:1180px) {
  .site-header .brand small {display:none;}
  .system-map {min-height:0!important;}
}
@media(max-width:900px) {
  .sector-fit-row {grid-template-columns:1fr!important;gap:1rem!important;}
  .sector-fit-row h3 {max-width:28ch;}
  .application-grid {grid-template-columns:1fr;}
  .application-grid>div,.application-grid>div+div {border-right:0;min-height:0;padding:1.5rem 0;}
  .application-measures {grid-template-columns:1fr;}
}
@media(max-width:680px) {
  :root {--type-h1:clamp(2.25rem,9.4vw,3rem);--type-h2:clamp(1.875rem,8vw,2.375rem);--type-h3:clamp(1.375rem,5.8vw,1.75rem);--type-intro:1.125rem;--type-body:1rem;--type-secondary:.9375rem;--type-label:.8125rem;}
  .hero-copy h1 {max-width:none;}
  .hero-cta {padding:1rem 1.2rem!important;}
  .hero-note {margin-top:1.75rem!important;}
  .hero-process li {padding-inline:.55rem;}
  .service-tag {min-height:44px;}
  .application-head h3 {flex-basis:auto;}
  .application-head {gap:1.25rem;}
  .sector-application {padding-block:2.75rem;grid-template-columns:1fr;gap:.75rem;}
  .sector-application>.application-number {font-size:var(--type-label);}
  .application-measures ul {display:grid;}
  .system-map {padding:1.5rem .9rem!important;gap:1.25rem;}
  .map-nodes {gap:.75rem!important;}
  .map-node {display:flex!important;flex-direction:column;align-items:flex-start!important;padding:1rem .8rem!important;min-height:0!important;}
  .map-node .node-icon {width:38px;height:38px;}
  .operation-core {min-width:160px;}
  .site-header .brand-logo {max-width:145px;}
  .site-header .button {font-size:1rem!important;}
  .contact-layout {padding-inline:var(--gutter);}
  .field-row {grid-template-columns:1fr;gap:0;}
  .schedule-heading {display:block;}
  #cal-booker {min-height:640px;}
  .schedule-panel,.form-success,#cal-booker {scroll-margin-top:90px;}
  .form-recovery .form-actions {flex-direction:column;align-items:stretch;}
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}
