/* ECO2PASSIVE global typography system v3.16.0 */
:root{
  --e2p-type-body:16px;
  --e2p-type-small:14px;
  --e2p-type-h1:clamp(42px,5vw,68px);
  --e2p-type-h2:clamp(30px,3.35vw,44px);
  --e2p-type-h3:clamp(21px,2.1vw,28px);
  --e2p-type-h4:clamp(18px,1.6vw,22px);
  --e2p-type-h5:clamp(17px,1.3vw,19px);
  --e2p-type-h6:16px;
}
body{font-size:var(--e2p-type-body);line-height:1.7;font-family:var(--e2p-font-body);font-weight:var(--e2p-weight-body)}
body a,body a:hover,body a:focus,body a:active{text-decoration:none!important}
body :focus-visible{outline:2px solid currentColor;outline-offset:3px}
.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single,.e2p-services-redesign{font-size:var(--e2p-type-body);line-height:1.7}

/* One semantic scale for every content template. */
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h1[class],
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h1[id]{font-size:var(--e2p-type-h1)!important;line-height:1.08!important;letter-spacing:-.045em}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h2[class],
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h2[id]{font-size:var(--e2p-type-h2)!important;line-height:1.16!important;letter-spacing:-.035em}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h3[class],
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h3[id]{font-size:var(--e2p-type-h3)!important;line-height:1.3!important;letter-spacing:-.025em}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h4[class],
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h4[id]{font-size:var(--e2p-type-h4)!important;line-height:1.35!important}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h5[class],
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h5[id]{font-size:var(--e2p-type-h5)!important;line-height:1.4!important}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h6[class],
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h6[id]{font-size:var(--e2p-type-h6)!important;line-height:1.45!important}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h1:not([class]):not([id]){font-size:var(--e2p-type-h1)!important;line-height:1.08!important;letter-spacing:-.045em}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h2:not([class]):not([id]){font-size:var(--e2p-type-h2)!important;line-height:1.16!important;letter-spacing:-.035em}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h3:not([class]):not([id]){font-size:var(--e2p-type-h3)!important;line-height:1.3!important;letter-spacing:-.025em}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h4:not([class]):not([id]){font-size:var(--e2p-type-h4)!important;line-height:1.35!important}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h5:not([class]):not([id]){font-size:var(--e2p-type-h5)!important;line-height:1.4!important}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) h6:not([class]):not([id]){font-size:var(--e2p-type-h6)!important;line-height:1.45!important}
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) :is(h1,h2,h3,h4,h5,h6):not([class]):not([id]){line-height:1.25}

/* Copy keeps a comfortable measure and never drops below 14 px. */
:is(.e2p-main,.e2p-inner-page,.e2p-division-page,.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) :is(p,li,blockquote,dd,dt){font-size:var(--e2p-type-body);line-height:1.7}
.e2p-main .e2p-eyebrow,.e2p-main .e2p-hero-kicker,.e2p-main .e2p-hero-proof,.e2p-main .e2p-focus-label,.e2p-main .e2p-card-number,.e2p-main .e2p-project-meta,.e2p-main .e2p-approach-label,.e2p-main .e2p-approach-link,.e2p-main .e2p-process-number{font-size:var(--e2p-type-small)!important;line-height:1.5;letter-spacing:.08em}
.e2p-main .e2p-section-lead,.e2p-main .e2p-focus-desc,.e2p-main .e2p-card-description,.e2p-main .e2p-about-description,.e2p-main .e2p-approach-copy,.e2p-main .e2p-process-step p:not(.e2p-process-number),.e2p-main .e2p-work-focus-body p,.e2p-main .e2p-safety-points p,.e2p-main .e2p-cta-text,.e2p-main .e2p-home-cta-action p,.e2p-main .e2p-request-direct,.e2p-main .e2p-home-contact-details>a,.e2p-main .e2p-home-contact-details>span{font-size:var(--e2p-type-body)!important;line-height:1.65}
.e2p-main .e2p-process-drawing figcaption{font-size:var(--e2p-type-body)!important;line-height:1.65}
.e2p-main .e2p-process-drawing figcaption::before{font-size:var(--e2p-type-small)!important;line-height:1.5}
.e2p-main .e2p-card-link,.e2p-main .e2p-request-form label,.e2p-main .e2p-request-form .e2p-consent label,.e2p-main .e2p-form-progress,.e2p-main .e2p-form-note{font-size:var(--e2p-type-small)!important;line-height:1.55}
.e2p-main .e2p-form-next,.e2p-main .e2p-form-submit,.e2p-main .e2p-form-back{font-size:var(--e2p-type-button)!important;line-height:1.4}
.e2p-main .wp-block-button__link,.e2p-main .e2p-header-cta,.e2p-main .e2p-btn-primary,.e2p-main .e2p-btn-secondary{font-size:var(--e2p-type-button)!important;min-height:46px}

/* Inner pages, service details and Projects use the same readable small-text floor. */
:is(.e2p-corporate-page,.e2p-about-page,.e2p-contact-page,.e2p-certificates-page,.e2p-portfolio,.e2p-service-archive,.e2p-service-single) :is(.e2p-eyebrow,.e2p-about-eyebrow,.e2p-about-pillars strong,.e2p-contact-eyebrow,.e2p-portfolio-tags,.e2p-portfolio-facts dt,.e2p-portfolio-link,.e2p-service-index-number,.e2p-service-aside-number,.e2p-service-index-link,.e2p-service-hero-image figcaption,.e2p-breadcrumb,.e2p-other-links a){font-size:var(--e2p-type-small)!important;line-height:1.5;letter-spacing:.06em}
.e2p-service-archive .e2p-service-scope-list li::before,.e2p-services-redesign .e2p-services-step-number{font-size:var(--e2p-type-small)!important}
.e2p-about-page :is(.e2p-about-proof,.e2p-about-richtext,.e2p-about-work-card,.e2p-about-extra-content,.e2p-about-approach-note,.e2p-about-sustainability-note){font-size:var(--e2p-type-small);line-height:1.7}
.e2p-about-page .e2p-about-work-card p,.e2p-about-page .e2p-about-richtext p,.e2p-about-page .e2p-about-richtext li{font-size:var(--e2p-type-body);line-height:1.7}
.e2p-corporate-page .e2p-corporate-content,.e2p-service-single .e2p-service-content,.e2p-portfolio .e2p-portfolio-content{font-size:var(--e2p-type-body);line-height:1.8}
.e2p-corporate-page .e2p-corporate-content :is(p,li),.e2p-service-single .e2p-service-content :is(p,li),.e2p-portfolio .e2p-portfolio-content :is(p,li){font-size:var(--e2p-type-body);line-height:1.8}
.e2p-corporate-page .e2p-corporate-side p:not(.e2p-eyebrow),.e2p-corporate-page .e2p-contact-details p:not(.e2p-eyebrow),.e2p-service-single .e2p-service-aside p,.e2p-contact-page :is(.e2p-contact-lead,.e2p-contact-form-intro,.e2p-contact-location-copy>p,.e2p-contact-location-address,.e2p-contact-cta-inner>div>p:last-child),.e2p-contact-page .e2p-contact-info-item>span:last-child{font-size:var(--e2p-type-body)!important;line-height:1.65}
.e2p-contact-page .e2p-contact-form-security{font-size:var(--e2p-type-small)!important;line-height:1.5}
.e2p-contact-page .e2p-contact-info-item>span:last-child,.e2p-contact-page .e2p-contact-map-label,.e2p-contact-page .e2p-contact-directions,.e2p-contact-page .e2p-contact-cta-inner>a,.e2p-contact-page .e2p-request-form label,.e2p-contact-page .e2p-request-form .e2p-consent label,.e2p-contact-page .e2p-request-form button,.e2p-contact-page .e2p-request-form input[type=submit],.e2p-contact-page .e2p-request-form .e2p-form-submit,.e2p-contact-page .e2p-request-form .e2p-form-next{font-size:var(--e2p-type-small)!important;line-height:1.5}
.e2p-contact-page .e2p-request-form input:not([type=checkbox]):not([type=hidden]),.e2p-contact-page .e2p-request-form select,.e2p-contact-page .e2p-request-form textarea{min-height:48px;font-size:var(--e2p-type-body)!important;line-height:1.5}
.e2p-contact-page .e2p-request-form textarea{min-height:120px}
.e2p-portfolio .e2p-portfolio-tags span,.e2p-portfolio .e2p-portfolio-facts dt,.e2p-portfolio .e2p-portfolio-facts dd,.e2p-portfolio .e2p-portfolio-link{font-size:var(--e2p-type-small)!important;line-height:1.55;white-space:normal}
.e2p-service-archive .e2p-service-index-card p,.e2p-service-archive .e2p-service-scope-list li,.e2p-service-archive .e2p-services-redesign p,.e2p-service-archive .e2p-services-redesign li{font-size:var(--e2p-type-body);line-height:1.65}
.e2p-service-archive .e2p-service-index-link,.e2p-service-archive .e2p-services-redesign a{font-size:var(--e2p-type-small);line-height:1.55}
.e2p-services-redesign .e2p-eyebrow,.e2p-services-redesign .e2p-services-button,.e2p-services-redesign .e2p-services-proof li,.e2p-services-redesign .e2p-services-points li,.e2p-services-redesign .e2p-services-card-meta,.e2p-services-redesign .e2p-services-card-link,.e2p-services-redesign .e2p-services-steps p,.e2p-services-redesign .e2p-services-trust-card p,.e2p-services-redesign .e2p-services-stats span,.e2p-services-redesign .e2p-services-view-link{font-size:var(--e2p-type-small)!important;line-height:1.55;letter-spacing:.04em}
.e2p-services-redesign .e2p-services-card-body>p,.e2p-services-redesign .e2p-services-intro-heading>p:last-child,.e2p-services-redesign .e2p-services-intro-side p,.e2p-services-redesign .e2p-services-section-heading>p,.e2p-services-redesign .e2p-services-process-copy>p:not(.e2p-eyebrow){font-size:var(--e2p-type-body)!important;line-height:1.7}

/* Header and footer are included in the same system, without inflating decorative icons. */
.e2p-topbar{min-height:38px;font-size:var(--e2p-type-small)!important;line-height:1.45}
.e2p-topbar-inner{min-height:38px}
.e2p-topbar-contact>a,.e2p-topbar-contact>span,.e2p-menu a,.e2p-menu .sub-menu a{font-size:var(--e2p-type-nav)!important;line-height:1.45}
.e2p-header-cta,.e2p-mobile-only-cta{font-size:var(--e2p-type-button)!important;line-height:1.45}
.e2p-menu{gap:clamp(12px,1.45vw,21px)}
.e2p-brand-subtitle,.e2p-brand--footer .e2p-brand-subtitle{font-size:var(--e2p-type-small)!important;line-height:1.3;letter-spacing:.035em}
.e2p-footer-column h2,.e2p-footer-contact h2{font-size:var(--e2p-type-body)!important;line-height:1.4}
.e2p-footer-column .e2p-menu a,.e2p-footer-column>a,.e2p-footer-contact a,.e2p-contact-location,.e2p-footer-company p,.e2p-footer-company-details>span,.e2p-footer-bottom,.e2p-footer-bottom a{font-size:var(--e2p-type-footer)!important;line-height:1.6}
.e2p-footer-column h2,.e2p-footer-contact h2{font-size:var(--e2p-type-footer_heading)!important;line-height:1.4}
.e2p-footer-bottom{min-height:64px}

/* Form controls remain comfortable to read and operate. */
:is(.e2p-main,.e2p-contact-page) :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){font-size:var(--e2p-type-body)!important;line-height:1.5}
:is(.e2p-main,.e2p-contact-page) :is(button,input[type=submit],.e2p-form-next,.e2p-form-submit,.e2p-form-back){min-height:44px;font-size:var(--e2p-type-button)!important;line-height:1.4}

@media(max-width:940px){
  .e2p-topbar{font-size:var(--e2p-type-small)!important}
  .e2p-menu{gap:12px}
}
@media(max-width:680px){
  :root{--e2p-type-h1:clamp(38px,10vw,52px);--e2p-type-h2:clamp(29px,7.5vw,38px);--e2p-type-h3:clamp(21px,5.5vw,25px);--e2p-type-h4:19px;--e2p-type-h5:17px;--e2p-type-h6:16px}
  .e2p-topbar{font-size:var(--e2p-type-small)!important}
  .e2p-topbar-inner{flex-wrap:wrap;gap:8px 16px;padding-block:7px}
  .e2p-footer-grid{row-gap:22px}
  .e2p-footer-bottom{align-items:flex-start;flex-direction:column;justify-content:center;gap:6px;padding-block:14px}
  .e2p-contact-page .e2p-contact-info-list{gap:13px}
  .e2p-contact-page .e2p-contact-info-item>span:last-child{font-size:var(--e2p-type-small)!important;line-height:1.5}
  .e2p-contact-page .e2p-contact-form-card{padding:24px 20px}
}
