
/* V12 — one typographic rhythm across the site.
 * Only headings and spacing are revised. Body-copy sizes, content rails,
 * aspect ratios, navigation widths, touch targets and existing interactions stay.
 */
:root{
 --v118-home-title:40px;
 --v118-page-title:36px;
 --v118-section-title:28px;
 --v118-business-title:26px;
 --v118-card-title:21px;
 --v118-small-title:20px;
 --v118-major-space:60px;
 --v118-heading-gap:22px;
 --v118-photo-gap:16px;
 --v118-copy-gap:10px;
}
html[lang=en],html:not([data-app-ready]):has(#compat-lang-en:checked){--v118-home-title:38px}
/* Homepage: closer to the video above and the two visual entries below. */
#home-page .intro{padding-top:52px;padding-bottom:50px}
#home-page .intro h1,html[lang=en] #home-page .intro h1{font-size:var(--v118-home-title);line-height:1.28;letter-spacing:0}
html[lang=en] #home-page .intro h1{letter-spacing:-.025em}
#home-page .intro p{margin-top:14px}
#home-page .business{padding-bottom:0;row-gap:34px}
#home-page .business-item>.media-slot{margin-bottom:var(--v118-photo-gap)}
#home-page .business-item h2,html[lang=en] #home-page .business-item h2{font-size:var(--v118-business-title);line-height:1.32;margin-bottom:var(--v118-copy-gap)}
#home-page .business-item>.text-link{margin-top:8px}
#home-page .section-heading{margin-bottom:var(--v118-heading-gap)}
#home-page .section-heading h2,html[lang=en] #home-page .section-heading h2,
#home-page .mission h2,html[lang=en] #home-page .mission h2{font-size:var(--v118-section-title);line-height:1.3}
#home-page .cases{padding-top:64px;padding-bottom:26px}
#home-page .case-item .media-slot{margin-bottom:var(--v118-photo-gap)}
#home-page .case-item h3,html[lang=en] #home-page .case-item h3{font-size:var(--v118-card-title);line-height:1.36;margin-bottom:var(--v118-copy-gap)}
#home-page .case-item>.text-link{margin-top:8px}
#home-page .industries{padding-top:42px;padding-bottom:60px}
#home-page .industry-grid{row-gap:36px}
#home-page .industry-item .media-slot{margin-bottom:var(--v118-photo-gap)}
#home-page .industry-item h3,html[lang=en] #home-page .industry-item h3{font-size:var(--v118-card-title);line-height:1.32;margin-bottom:var(--v118-copy-gap)}
#home-page .industry-description{margin-top:0}
#home-page .glance{padding-top:54px;padding-bottom:52px}
#home-page .glance .section-heading{margin-bottom:27px}
#home-page .mission{padding-block:68px 64px}
#home-page .mission h2{margin-bottom:12px}
#home-page .mission-copy p{margin-bottom:18px}
/* Shared inquiry bands retain the approved left/right alignment. */
#home-page .contact-band,#history-page .contact-band{padding-top:0;padding-bottom:64px}
#home-page .contact-inner h2,#history-page .contact-inner h2,
html[lang=en] #home-page .contact-inner h2,html[lang=en] #history-page .contact-inner h2,
#technical-page .sub-cta h2,#engineering-page .sub-cta h2,
html[lang=en] #technical-page .sub-cta h2,html[lang=en] #engineering-page .sub-cta h2{
 font-size:var(--v118-section-title);line-height:1.32;margin-bottom:12px;white-space:normal
}
/* Business pages: the same heading levels, tighter vertical grouping. */
#technical-page .sub-hero-v112,#engineering-page .sub-hero-v112{padding-block:36px 40px}
#technical-page .sub-hero-copy h1,#engineering-page .sub-hero-copy h1,
html[lang=en] #technical-page .sub-hero-copy h1,html[lang=en] #engineering-page .sub-hero-copy h1{font-size:var(--v118-page-title);line-height:1.25;margin-bottom:13px}
#technical-page .sub-hero-link,#engineering-page .sub-hero-link{margin-top:20px}
#technical-page .sub-section,#engineering-page .sub-section{padding-block:56px}
#technical-page .sub-section+.sub-section,#engineering-page .sub-section+.sub-section{padding-top:12px}
#technical-page .sub-section-head,#engineering-page .sub-section-head{margin-bottom:var(--v118-heading-gap)}
#technical-page .sub-section-head h2,#engineering-page .sub-section-head h2,
html[lang=en] #technical-page .sub-section-head h2,html[lang=en] #engineering-page .sub-section-head h2,
#engineering-page #engineering-coordination .sub-section-head h2{
 font-size:var(--v118-section-title);line-height:1.3
}
#technical-page .sub-tile>.media-slot,#engineering-page .sub-tile>.media-slot{margin-bottom:var(--v118-photo-gap)}
#technical-page .sub-tile h3,#engineering-page .sub-tile h3,
html[lang=en] #technical-page .sub-tile h3,html[lang=en] #engineering-page .sub-tile h3{
 font-size:var(--v118-card-title);line-height:1.36;margin-bottom:var(--v118-copy-gap)
}
#technical-page .sub-tile>.text-link,#engineering-page .sub-tile>.text-link{margin-top:8px}
#technical-page .sub-feature-copy h2,html[lang=en] #technical-page .sub-feature-copy h2{font-size:var(--v118-section-title);line-height:1.32;margin-bottom:12px}
#technical-page .method-line{margin-top:18px}
#engineering-page .sub-coordination-band{padding-block:50px}
#engineering-page .delivery-four h3,html[lang=en] #engineering-page .delivery-four h3{font-size:var(--v118-card-title);line-height:1.35;margin-bottom:10px}
#engineering-page .delivery-four .scope-icon{margin-bottom:14px}
#engineering-page .service-sheet-links{margin-top:24px}
#engineering-page .local-support-card{padding-block:24px}
#engineering-page .local-support-card h3,html[lang=en] #engineering-page .local-support-card h3{font-size:var(--v118-business-title);line-height:1.3;margin-bottom:10px}
#engineering-page .collection-card h3,html[lang=en] #engineering-page .collection-card h3{font-size:var(--v118-card-title);line-height:1.35;margin-top:16px}
#technical-page .sub-cta,#engineering-page .sub-cta{padding-top:18px;padding-bottom:64px}
/* Case browsing and case detail use the same scale; filters stay usable. */
#cases-page.case-library{padding-bottom:60px}
#cases-page .case-library-hero{padding-block:36px 34px}
#cases-page .case-library-hero h1,html[lang=en] #cases-page .case-library-hero h1{font-size:var(--v118-page-title);line-height:1.25;margin-bottom:12px}
#cases-page .case-library-layout{padding-top:34px}
#cases-page .case-library-grid{row-gap:34px}
#cases-page .case-photo{margin-bottom:14px}
#cases-page .case-card-meta{margin-bottom:8px}
#cases-page .library-case-card h2,html[lang=en] #cases-page .library-case-card h2{font-size:var(--v118-card-title);line-height:1.34;margin-bottom:10px}
#cases-page .library-case-card .text-link{margin-top:8px}
#case-page .case-detail-header{padding-block:25px 30px}
#case-page .case-detail-header h1,html[lang=en] #case-page .case-detail-header h1{font-size:var(--v118-page-title);line-height:1.28;margin:17px 0 12px}
#case-page .case-detail-tags{margin-bottom:15px}
#case-page .case-detail-body{padding-top:32px}
#case-page .case-detail-facts{padding-block:36px 26px}
#case-page .case-detail-facts>section{padding-top:18px}
#case-page .case-detail-facts h2,html[lang=en] #case-page .case-detail-facts h2{font-size:var(--v118-card-title);line-height:1.35;margin-bottom:10px}
#case-page .case-detail-facts .text-link{margin-top:9px}
#case-page .case-detail-cta{padding-top:16px;padding-bottom:60px}
#case-page .case-detail-cta h2{font-size:var(--v118-card-title);line-height:1.4;margin-bottom:10px}
/* Story and careers: make related text closer, retain the chronological rail. */
#history-page .story-intro{padding-top:46px;padding-bottom:28px}
#history-page .story-intro h1{font-size:var(--v118-page-title);line-height:1.28;margin-bottom:13px}
#history-page .story-journey .journey-stage:nth-child(n){padding-top:23px;padding-bottom:28px}
#history-page .story-journey .journey-copy h2{font-size:var(--v118-card-title);line-height:1.35;margin-top:1px;margin-bottom:9px}
#history-page .story-journey .journey-stage::before{top:31px}
#history-page .story-journey .journey-stage::after{top:38px;bottom:-38px}
#history-page .story-today-v115{padding-top:56px;padding-bottom:50px}
#history-page .story-today-v115 h2{font-size:var(--v118-section-title);line-height:1.3;margin-bottom:20px}
#history-page .story-today-v115>p{margin-top:19px}
#careers-page .editorial-hero{padding-top:46px;padding-bottom:23px}
#careers-page .editorial-hero h1{font-size:var(--v118-page-title);line-height:1.28;margin-bottom:13px}
#careers-page .careers-body{padding-top:8px;padding-bottom:58px}
#careers-page .role-list{row-gap:16px}
#careers-page .role-row{padding-block:20px 21px;gap:11px}
#careers-page .role-row h3{font-size:var(--v118-small-title);line-height:1.33;margin-bottom:8px}
/* Technical articles and policy documents: smaller headings, existing body size. */
#article-page .editorial-hero{padding-block:34px 32px}
#article-page .editorial-hero h1{font-size:var(--v118-page-title);line-height:1.28;margin-bottom:13px}
#article-page .editorial-hero .text-link{margin-bottom:17px}
#article-page .article-layout{padding-top:36px}
#article-page .article-copy h2{font-size:24px;line-height:1.35;margin-bottom:12px}
#article-page .article-copy>section{margin-bottom:28px}
#article-page .article-copy p{margin-bottom:13px}
#article-page .article-enquiry{margin-top:30px;padding-top:24px}
#article-page.editorial-page{padding-bottom:60px}
.policy-page .editorial-hero{padding-block:32px 28px}
.policy-page .editorial-hero h1,html[lang=en] .policy-page .editorial-hero h1{font-size:30px;line-height:1.28}
.policy-page .policy-layout{padding-top:28px}
.policy-page .policy-copy h2{font-size:18px;line-height:1.4;margin-bottom:8px}
.policy-page .policy-copy>section{margin-bottom:21px}
.policy-page.editorial-page{padding-bottom:58px}
/* Shared footer and dialog headings remain secondary to page content. */
.site-footer{padding-top:48px}
.site-footer .footer-main{padding-bottom:40px}
.site-footer .company-name{margin-top:21px}
.site-footer .footer-col h3{margin-bottom:15px}
.site-footer .footer-col a{margin-bottom:8px}
.dialog-head h2,#info-dialog.job-review .dialog-head h2,#inquiry-dialog .dialog-head h2{font-size:21px;line-height:1.35}
.compat-reference h1{font-size:30px;margin-bottom:18px}
html:not([data-app-ready]) .compat-reference{padding-block:40px 58px}
.compat-reference h2{font-size:20px;margin-top:23px;margin-bottom:10px}
.presence-identity .presence-planned{display:inline-block;width:fit-content;margin-top:7px!important;color:#526e82;background:#eef3f6;padding:3px 7px;line-height:1.4!important;font-size:11px!important}
/* Intermediate displays: use a scale, never a transform that distorts text. */
@media (min-width:621px) and (max-width:1100px){
 :root{--v118-home-title:34px;--v118-page-title:32px;--v118-section-title:26px;--v118-business-title:24px;--v118-card-title:20px;--v118-small-title:19px}
 html[lang=en],html:not([data-app-ready]):has(#compat-lang-en:checked){--v118-home-title:34px}
 #home-page .intro{padding-block:46px}
 #home-page .mission{padding-block:54px 52px}
 #technical-page .sub-section,#engineering-page .sub-section{padding-block:48px}
 #technical-page .sub-section+.sub-section,#engineering-page .sub-section+.sub-section{padding-top:12px}
}
/* Phones: preserve body-copy and hit-target sizes, reduce headings and excess gaps. */
@media(max-width:620px){
 :root{--v118-home-title:24px;--v118-page-title:24px;--v118-section-title:21px;--v118-business-title:20px;--v118-card-title:18px;--v118-small-title:18px;--v118-major-space:40px;--v118-heading-gap:17px;--v118-photo-gap:13px;--v118-copy-gap:8px}
 html[lang=en],html:not([data-app-ready]):has(#compat-lang-en:checked){--v118-home-title:25px}
 #home-page .intro{padding-top:32px;padding-bottom:34px}
 #home-page .intro p{margin-top:11px}
 #home-page .business{row-gap:30px}
 #home-page .cases{padding-top:42px;padding-bottom:19px}
 #home-page .case-grid{row-gap:30px}
 #home-page .industries{padding-top:30px;padding-bottom:40px}
 #home-page .industry-grid{row-gap:26px}
 #home-page .glance{padding-block:40px}
 #home-page .glance .section-heading{margin-bottom:23px}
 #home-page .mission{padding-top:44px;padding-bottom:42px;gap:23px}
 #home-page .mission h2{margin-bottom:10px}
 #home-page .mission-copy p{margin-bottom:16px}
 #home-page .contact-band,#history-page .contact-band{padding-bottom:44px}
 #home-page .contact-inner,#history-page .contact-inner{row-gap:20px}
 #home-page .contact-inner h2,#history-page .contact-inner h2,
 html[lang=en] #home-page .contact-inner h2,html[lang=en] #history-page .contact-inner h2{margin-bottom:10px}
 #technical-page .sub-hero-v112,#engineering-page .sub-hero-v112{padding-block:25px 29px}
 #technical-page .sub-hero-copy h1,#engineering-page .sub-hero-copy h1{margin-bottom:10px}
 #technical-page .sub-hero-grid,#engineering-page .sub-hero-grid{row-gap:22px}
 #technical-page .sub-hero-link,#engineering-page .sub-hero-link{margin-top:17px}
 #technical-page .sub-section,#engineering-page .sub-section{padding-block:39px}
 #technical-page .sub-section+.sub-section,#engineering-page .sub-section+.sub-section{padding-top:10px}
 #technical-page .sub-grid,#engineering-page .sub-grid{row-gap:29px}
 #technical-page .sub-feature{row-gap:22px}
 #technical-page .sub-feature-copy h2{margin-bottom:10px}
 #technical-page .method-line{margin-top:14px}
 #engineering-page .sub-coordination-band{padding-block:36px}
 #engineering-page .delivery-four{row-gap:24px}
 #engineering-page .delivery-four h3,html[lang=en] #engineering-page .delivery-four h3{font-size:18px;margin-bottom:8px}
 #engineering-page .service-sheet-links{margin-top:21px}
 #engineering-page .local-support-card{padding-block:21px}
 #engineering-page .collection-card h3{margin-top:13px}
 #technical-page .sub-cta,#engineering-page .sub-cta{padding-top:12px;padding-bottom:46px;row-gap:20px}
 #technical-page .sub-cta h2,#engineering-page .sub-cta h2{margin-bottom:10px}
 #cases-page.case-library{padding-bottom:44px}
 #cases-page .case-library-hero{padding-block:25px}
 #cases-page .case-library-hero h1{margin-bottom:10px}
 #cases-page .case-library-layout{padding-top:23px}
 #cases-page .case-library-grid{row-gap:29px}
 #cases-page .case-photo{margin-bottom:12px}
 #case-page .case-detail-header{padding-block:21px 25px}
 #case-page .case-detail-header h1{margin-top:14px}
 #case-page .case-detail-body{padding-top:25px}
 #case-page .case-detail-facts{padding-block:27px 22px;row-gap:22px}
 #case-page .case-detail-facts>section{padding-top:15px}
 #case-page .case-detail-cta{padding-top:10px;padding-bottom:44px}
 #history-page .story-intro{padding-top:31px;padding-bottom:21px}
 #history-page .story-intro h1{margin-bottom:11px}
 #history-page .story-journey .journey-stage:nth-child(n){padding-top:19px;padding-bottom:23px}
 #history-page .story-journey .journey-copy h2{font-size:18px;margin-bottom:8px}
 #history-page .story-journey .journey-stage::before{top:27px}
 #history-page .story-journey .journey-stage::after{top:32px;bottom:-32px}
 #history-page .story-journey .journey-marker{margin-bottom:8px}
 #history-page .story-journey .media-slot{margin-top:13px}
 #history-page .story-today-v115{padding-block:36px 34px}
 #history-page .story-today-v115 h2{margin-bottom:17px}
 #history-page .story-today-v115>p{margin-top:15px}
 #careers-page .editorial-hero{padding-top:31px;padding-bottom:19px}
 #careers-page .editorial-hero h1{margin-bottom:10px}
 #careers-page .careers-body{padding-top:0;padding-bottom:39px}
 #careers-page .role-list{row-gap:7px}
 #careers-page .role-row{padding-top:18px;padding-bottom:20px;gap:10px}
 #article-page .editorial-hero{padding-block:26px}
 #article-page .article-layout{padding-top:24px}
 #article-page .article-copy h2{font-size:20px;margin-bottom:10px}
 #article-page .article-copy>section{margin-bottom:24px}
 #article-page.editorial-page{padding-bottom:44px}
 .policy-page .editorial-hero{padding-block:25px 23px}
 .policy-page .editorial-hero h1,html[lang=en] .policy-page .editorial-hero h1{font-size:23px}
 .policy-page .policy-layout{padding-top:22px}
 .policy-page .policy-copy h2{font-size:17px;margin-bottom:7px}
 .policy-page .policy-copy>section{margin-bottom:19px}
 .policy-page.editorial-page{padding-bottom:40px}
 .site-footer{padding-top:37px}
 .site-footer .footer-main{padding-bottom:30px}
 .site-footer .company-name{margin-top:19px}
 .site-footer .footer-col h3{margin-bottom:12px}
 .site-footer .footer-col a{margin-bottom:7px}
 .dialog-head h2,#info-dialog.job-review .dialog-head h2,#inquiry-dialog .dialog-head h2{font-size:19px}
 .compat-reference h1{font-size:24px;margin-bottom:16px}
 .compat-reference h2{font-size:18px}
 html:not([data-app-ready]) .compat-reference{padding-block:30px 42px}
}

