/* BioLock's editorial rhythm: one type scale, readable measures, shared alignment. */
html{font-size:100%}
:root{
 --bio-display:clamp(3rem,5.6vw + 1rem,6rem);
 --bio-title:clamp(2.5rem,3.2vw + 1rem,4.5rem);
 --bio-section:clamp(2rem,2vw + 1rem,3.25rem);
 --bio-subtitle:clamp(1.625rem,1vw + 1rem,2.25rem);
 --bio-card:clamp(1.375rem,.6vw + 1rem,1.75rem);
 --bio-body:clamp(1rem,.25vw + .9rem,1.125rem);
 --bio-lead:clamp(1.0625rem,.35vw + .9rem,1.25rem);
 --bio-section-space:clamp(3.5rem,6vw,7rem);
 --bio-gutter:clamp(1.25rem,4vw,4rem);
 --bio-column-gap:clamp(1.5rem,4vw,4rem);
}
body{font-family:Aptos,Arial,sans-serif;font-size:var(--bio-body);line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased}
main .container,.footer .container{max-width:1440px;padding-inline:var(--bio-gutter)}
main :is(h1,h2,h3,h4,h5,h6,.component-heading){font-weight:400;letter-spacing:-.025em;text-wrap:balance}
main h1,main .h1{font-size:var(--bio-title);line-height:1.1}
main h2,main .h2{font-size:var(--bio-section);line-height:1.15}
main h3,main .h3{font-size:var(--bio-subtitle);line-height:1.2}
main h4,main .h4{font-size:var(--bio-card);line-height:1.25}
main h5,main .h5{font-size:1.375rem;line-height:1.3}
main h6,main .h6{font-size:1.25rem;line-height:1.35}
main .text-display{font-size:var(--bio-display);line-height:1.08;letter-spacing:-.035em}
main .text-paragraph{font-size:var(--bio-body);line-height:1.65}
main .text-large,main .text-lead{font-size:var(--bio-lead);line-height:1.6}
main p{margin-block:0 1rem;text-wrap:pretty}
main p:last-child{margin-bottom:0}
main .content-clear{overflow-wrap:break-word}
main .component-eyebrow{font:600 .875rem/1.45 Aptos,Arial,sans-serif;letter-spacing:.025em;gap:.5rem}
main .component-eyebrow>div{max-width:24ch}
main .button{font:600 1rem/1.4 Aptos,Arial,sans-serif;letter-spacing:0;min-height:44px}
main .component-buttons{gap:1rem 1.5rem;flex-wrap:wrap}
main .page-module[data-space-top=medium]{padding-top:var(--bio-section-space)}
main .page-module[data-space-bottom=medium]{padding-bottom:var(--bio-section-space)}
main>.page-module--theme-basic+.page-module--theme-basic{padding-top:calc(var(--bio-section-space)*.55)}

/* Page introductions: intentional line lengths, then a clear path to action. */
.module-hero--style-home .module-hero-content-wrapper{min-height:clamp(640px,88svh,940px);padding-top:clamp(156px,13vw,208px);padding-bottom:80px;justify-content:space-between;gap:56px}
.module-hero--style-home .module-hero__headings-container{max-width:1050px}
.module-hero--style-home .module-hero__bottom-panel{padding-right:0;gap:28px}
.module-hero--style-home .module-hero__description{max-width:620px;font-size:var(--bio-lead);line-height:1.6}
.module-hero--style-home .vertical-text-slider{width:100%}
.module-hero--style-home .vertical-text-slider .component-heading{text-wrap:nowrap}
.module-hero--style-v1{padding-top:clamp(144px,12vw,192px);padding-bottom:var(--bio-section-space)}
.module-hero--style-v1 .module-hero-content-wrapper{gap:28px}
.module-hero--style-v1 .module-hero__columns--right{justify-content:flex-start}
.module-hero--style-v1 .module-hero__description{width:auto;max-width:660px}
.module-hero--style-v1 h1{font-size:var(--bio-title);max-width:18ch}
.module-hero--style-v2 .module-hero__columns{padding:40px;gap:48px;align-items:start}
.module-hero--style-v2 .module-hero__top-panel{flex-direction:column;gap:20px}
.module-hero--style-v2 .module-hero__content-col_inner{padding-left:0;gap:28px}
.module-hero--style-v2 .module-hero__description{max-width:56ch}
.module-hero--style-v2 h1{font-size:clamp(2.25rem,2.5vw + 1rem,3.75rem);line-height:1.12;max-width:20ch}
.module-hero-product .container{padding-top:176px;padding-bottom:80px}
.module-hero-product{min-height:800px}
.module-hero-product h1{font-size:clamp(2.25rem,2.4vw + 1rem,3.75rem);line-height:1.12;max-width:17ch}
.module-hero-product .hero-product-description{max-width:58ch;margin-top:24px}
.module-hero-product .hero-product-specs{gap:24px;margin-top:36px;font-size:1rem;line-height:1.45}
.module-hero-product .hero-product-specs .h4{font-size:clamp(1.375rem,1vw + 1rem,2rem);line-height:1.2;margin-bottom:8px}
.module-hero-product .hero-product-specs>div{min-width:135px;flex:1}

/* Shared section headings and body columns sit on the same editorial grid. */
.module-stats__top,.module-large-card-slider__top-panel,.module-product-list__top-panel{gap:var(--bio-column-gap);align-items:start}
.module-stats__top .component-eyebrow,.module-large-card-slider__eyebrow,.module-product-list__eyebrow{flex:0 0 160px}
.module-stats__top-content,.module-large-card-slider__content,.module-product-list__text{gap:24px;min-width:0}
.module-stats__top-content h2,.module-large-card-slider__content h2{font-size:var(--bio-section);max-width:23ch}
.module-stats__top-content .content-clear,.module-large-card-slider__content .content-clear,.module-product-list__text .content-clear{max-width:58ch}
.module-stats__inner,.module-product-list__inner-column,.module-list__inner{gap:48px}
.module-stats__card{padding:28px 24px;gap:24px;min-height:190px}
.bio-arena .module-stats__card-value{font-size:clamp(2.75rem,3vw + 1rem,4rem);line-height:1.1}
.bio-stat-unit{font-size:1.25rem;line-height:1.35;margin-top:8px}
.module-stats__cards.card-amount-5 .module-stats__card-value{font-size:clamp(1.625rem,1.25vw + 1rem,2.5rem);line-height:1.15;white-space:normal}
.module-stats__card>div:last-child{font-size:1rem;line-height:1.5}
.module-split__grid{gap:var(--bio-column-gap)}
.module-split__eyebrow{flex:0 0 160px}
.module-split__text{min-width:0;gap:28px;justify-content:flex-start}
.module-split__content{gap:24px}
.module-split__content h2{font-size:clamp(2rem,1.7vw + 1rem,2.75rem);max-width:22ch}
.module-split__content .content-clear{max-width:54ch}
.module-split__image{min-width:0;height:440px}
.module-statement__inner{padding-right:0}
.module-statement__content h2{font-size:clamp(2.25rem,3vw + 1rem,4rem);line-height:1.15;max-width:25ch}
.module-entry__grid{gap:32px}
.module-long-content__blocks{gap:40px}
.module-long-content>.container>.component-heading{margin-bottom:48px;max-width:24ch}
.module-long-content__block{gap:var(--bio-column-gap)}
.module-long-content__block .component-heading{font-size:var(--bio-card);padding-right:0;flex:0 0 28%;max-width:22ch}
.module-long-content__content-col{gap:24px;max-width:68ch}
.module-list__top{gap:var(--bio-column-gap);align-items:start}
.module-list__top-headings{gap:20px;min-width:0}
.module-list__top-headings h2{font-size:var(--bio-section);max-width:24ch}
.module-list__top-content{align-self:start;gap:24px;max-width:54ch}
.module-list__list-wrap{gap:var(--bio-column-gap)}
.module-list__list-wrap-image .component-media{margin-right:0}
.module-list__list-wrap-rows .list-rows-item__title{font:600 1.0625rem/1.45 Aptos,Arial,sans-serif;width:150px}
.module-list__list-wrap-rows .list-rows-item__grid{gap:24px;align-items:start}
.module-list__list-wrap-rows .list-rows-item{padding:24px 0}
.module-list__list-wrap-rows .list-rows-item__description{min-width:0}
.module-product-list__top-panel h2{max-width:22ch;min-width:0}
.module-product-list__text{align-self:start}
.module-product-list__list{gap:40px 24px}
.product-item__details{padding-top:16px}
.product-item__details h3{font:400 1.25rem/1.35 NewBlackTypeface-Light,Arial,sans-serif;letter-spacing:-.015em;text-wrap:pretty}
.module-large-card-slider__top-panel{margin-bottom:48px}
.module-large-card-slider__slider-wrap{--container-width:1440px;--side-padding:64px;padding-left:max(var(--bio-gutter),calc((100vw - 1440px)/2 + var(--bio-gutter)))}
.module-card-slider__grid-cols{--container-width:1440px;--side-padding:64px;padding-left:max(var(--bio-gutter),calc((100vw - 1440px)/2 + var(--bio-gutter)))}
.bio-slider .large-card-item__content{padding:32px;gap:20px;max-width:680px}
.bio-slider .large-card-item__content h3{font-size:clamp(1.75rem,1.4vw + 1rem,2.5rem);line-height:1.2}
.bio-slider .large-card-item__content p{max-width:48ch}
.module-card-slider__static-box{padding-right:24px}
.module-card-slider__content{gap:24px}
.slider-card-item__content{gap:20px;padding:28px}
.slider-card-item__content h3{font-size:var(--bio-card)}

/* Operations, expertise, locations, and enquiries share the same readable measures. */
.module-timeline__content{max-width:760px}
.module-timeline__content h2{font-size:var(--bio-section);max-width:24ch}
.module-timeline .timeline-list .timeline-item__headings{gap:24px;align-items:baseline}
.module-timeline .timeline-list .timeline-item__headings>.h1{font-size:2.75rem;line-height:1.1}
.module-timeline .timeline-list .timeline-item h3{font-size:var(--bio-subtitle)}
.module-timeline .timeline-list .timeline-item__left-col-inner{gap:24px}
.module-timeline .timeline-list .content-clear{max-width:54ch}
.module-location-entry__row{gap:var(--bio-column-gap)}
.module-location-entry__row-left-col{padding-right:0;gap:32px;min-width:0}
.module-location-entry__content h2{font-size:var(--bio-section);max-width:22ch}
.module-location-entry__content .text-paragraph{max-width:54ch}
.module-location-entry__row-left-col .component-buttons{margin-top:0}
.module-location-entry__stats .stats-item__value{font-size:var(--bio-card)}
.bio-people-intro{gap:var(--bio-column-gap);align-items:start}
.bio-people-intro .component-eyebrow{margin-bottom:20px}
.bio-function-label{font-size:.875rem}
.bio-function-content h3{font-size:var(--bio-card)}
.bio-function-content p{font-size:var(--bio-body);line-height:1.6}
.bio-office-card h3{font-size:var(--bio-subtitle)}
.module-accordion__top h2{font-size:var(--bio-subtitle)}
.module-accordion__items{margin-top:32px}
.module-accordion__items .accordion-item .accordion-button{font:400 var(--bio-card)/1.35 NewBlackTypeface-Light,Arial,sans-serif}
.module-accordion__items .accordion-item .accordion-body{font-size:var(--bio-body);line-height:1.65}
.module-contact .section-contact{gap:32px var(--bio-column-gap)}
.module-contact .section-contact__heading h2.component-heading{font-size:var(--bio-section);line-height:1.15;max-width:20ch}
.module-contact .section-contact__cols .content-clear{max-width:46ch}
.section-contact__grid-contact-box .text-large{font-size:1rem;line-height:1.5}
.bio-enquiry label{font-weight:600;font-size:1rem;line-height:1.45}
.bio-enquiry .bio-consent{font-weight:400;font-size:.875rem}
.bio-enquiry input:not([type=checkbox]),.bio-enquiry textarea{font-size:1rem;font-weight:400;line-height:1.5}
.module-cta__cols{padding:40px;gap:32px}
.module-cta__content-col{padding-right:0;gap:28px}
.module-cta__content-col-top,.module-cta__content-col-bottom{gap:24px}
.module-cta__content-col-top h2{max-width:24ch}
.module-cta__content-col-bottom .content-clear{max-width:58ch}
.bio-contact-dialog .h1{font-size:clamp(2rem,3vw,3rem);line-height:1.15}
.bio-footer-promise{font-size:clamp(2.5rem,5vw,5rem);line-height:1.15;max-width:20ch}
.footer-menu .menu-item>a{font-size:1.125rem;font-weight:600;line-height:1.4}
.footer-menu .sub-menu a{font-size:1rem;font-weight:400;line-height:1.5}

@media(max-width:1199px){
 .module-stats__top .component-eyebrow,.module-large-card-slider__eyebrow,.module-product-list__eyebrow,.module-split__eyebrow{flex-basis:120px}
 .module-contact .section-contact{gap:32px}
}
@media(max-width:991px){
 .module-stats__top .component-eyebrow,.module-large-card-slider__eyebrow,.module-product-list__eyebrow,.module-split__eyebrow{flex:initial}
 .module-stats__top,.module-large-card-slider__top-panel,.module-product-list__top-panel{gap:20px}
 .module-split__grid{gap:20px}
 .module-split__text{gap:24px}
 .module-split__image{height:400px;margin-top:12px}
 .module-hero--style-v2 .module-hero__columns{padding:32px;gap:28px}
 .module-hero--style-v2 .module-hero__top-panel{gap:16px}
 .module-hero-product{min-height:0}
 .module-hero-product .container{padding-top:144px;padding-bottom:64px}
 .module-hero-product .hero-product-specs{margin-top:28px}
 .module-long-content__block .component-heading{flex:initial;max-width:none}
 .module-list__list-wrap-rows .list-rows-item__title{width:auto}
 .module-list__list-wrap-rows .list-rows-item__grid{gap:12px}
 .module-card-slider__static-box{padding-right:var(--bio-gutter)}
 .bio-people-intro{grid-template-columns:1fr;gap:24px}
 .module-contact .section-contact__heading h2.component-heading{max-width:24ch}
 .bio-contact-hero .module-hero__content{width:100%}
}
@media(max-width:575px){
 :root{--bio-display:clamp(2.5rem,8vw + .75rem,3.75rem);--bio-title:clamp(2.125rem,6vw + .5rem,2.75rem);--bio-section:clamp(1.875rem,4vw + .75rem,2.375rem)}
 .module-hero--style-home .module-hero-content-wrapper{padding-top:136px;padding-bottom:72px;min-height:720px;min-height:max(640px,85svh);gap:48px}
 .module-hero--style-home .module-hero__description{max-width:34ch}
 .module-hero--style-home .module-hero__bottom-panel{gap:24px}
 .module-hero--style-v1{padding-top:128px}
 .module-hero--style-v1 .module-hero-content-wrapper{gap:24px}
 .module-hero--style-v2 .module-hero__columns{padding:24px;gap:28px}
 .module-hero--style-v2 h1{font-size:var(--bio-title)}
 .module-hero-product .container{padding-top:128px;padding-bottom:56px}
 .module-hero-product h1{font-size:var(--bio-title)}
 .module-hero-product .hero-product-specs{gap:24px 16px}
 .module-hero-product .hero-product-specs>div{min-width:120px}
 .module-stats__inner,.module-product-list__inner-column,.module-list__inner{gap:32px}
 .module-stats__card{min-height:150px;padding:24px;gap:20px}
 .bio-arena .module-stats__card-value{font-size:3.25rem}
 .module-split__content h2{font-size:var(--bio-section)}
 .module-split__image{height:auto;aspect-ratio:4/3;margin-top:8px}
 .module-statement__content h2{font-size:var(--bio-section);line-height:1.2}
 .module-product-list__list{gap:32px}
 .module-large-card-slider__top-panel{margin-bottom:32px}
 .bio-slider .large-card-item__content{padding:24px;gap:16px;max-width:100%}
 .module-list__list-wrap{gap:32px}
 .module-list__list-wrap-rows .list-rows-item{padding:20px 0}
 .module-long-content__block{gap:16px}
 .module-timeline .timeline-list .timeline-item__headings{gap:16px;align-items:flex-start}
 .module-timeline .timeline-list .timeline-item__headings>.h1{font-size:2.25rem}
 .module-cta__cols{padding:24px}
 .module-cta__content-col-top,.module-cta__content-col-bottom{gap:20px}
 .module-accordion__items .accordion-item .accordion-button{font-size:1.25rem}
}
