/* Fluid layout shared by the three local landing variants. */
.hero-copy,.hero-conversion,.intro-copy,.team-copy,.case-copy,.risk-title,.closing-glass{min-width:0}
@media(min-width:1441px){
 :root{--screen-gutter:4vw;--fluid-copy:clamp(17px,1.05vw,28px)}
 .wrap{width:calc(100% - 2 * var(--screen-gutter));max-width:none}
 .section{padding-block:clamp(110px,7vw,230px)}
 .section-index{font-size:clamp(10px,.65vw,18px);margin-bottom:clamp(65px,4.5vw,140px)}
 .eyebrow,.hero .eyebrow{font-size:clamp(10px,.65vw,18px)}
 h2,.intro-copy h2,.team-copy h2,.risk-title h2,.section-heading h2{font-size:clamp(52px,3.5vw,108px)}
 .intro-copy>p:not(.eyebrow),.team-copy>p:not(.eyebrow),.risk-title>p:not(.eyebrow){font-size:var(--fluid-copy);max-width:40ch}
 .section-heading>p,.section-heading>div>p{font-size:var(--fluid-copy);max-width:36ch}
 .hero{display:flex;flex-direction:column;min-height:92svh;padding-top:clamp(28px,2vw,65px)}
 .hero-layout{flex:1;padding-block:clamp(55px,4vw,150px)}
 h1{font-size:clamp(78px,5.3vw,172px)}
 .hero-description,.layout-premium .hero-description{font-size:var(--fluid-copy);max-width:40ch}
 .hero-detail p{font-size:clamp(12px,.85vw,23px)}
 .hero-detail>span,.cta-note,.layout-premium .cta-note{font-size:clamp(11px,.75vw,20px)}
 .button,.text-link,.case-copy .text-link,.closing-glass .button{font-size:clamp(15px,1vw,25px);min-height:clamp(58px,3.8vw,100px)}
 .button-arrow{font-size:clamp(21px,1.4vw,36px);width:clamp(32px,2.1vw,55px)}
 .hero-cta{margin-top:clamp(20px,1.5vw,45px)}
 .brand svg{width:clamp(40px,2.6vw,76px);height:clamp(40px,2.6vw,76px)}
 .brand>span{font-size:clamp(18px,1.2vw,34px)}
 .brand small{font-size:clamp(8px,.55vw,15px)}
 .top-caption,.hero-bottom{font-size:clamp(10px,.65vw,18px)}
 .video-content p{font-size:clamp(21px,1.6vw,44px)}
 .play{width:clamp(64px,4.5vw,120px);height:clamp(64px,4.5vw,120px)}
 .video-bar>span,.video-bottom{font-size:clamp(9px,.6vw,16px)}
 .credibility{padding:clamp(28px,2vw,64px);gap:2vw}
 .credibility b{font-size:clamp(35px,2.6vw,75px)}
 .credibility>p,.credibility>div>span{font-size:clamp(12px,.85vw,23px)}
 .credibility .icon{width:clamp(34px,2.2vw,60px);height:clamp(34px,2.2vw,60px)}
 .image-main{height:clamp(450px,32vw,1000px)}
 .image-small{height:clamp(210px,14vw,430px)}
 .glass-label,.intro-promise p{font-size:clamp(12px,.85vw,23px)}
 .process{padding-bottom:0}
 .process-visual{min-height:clamp(460px,32vw,1000px)}
 .process-step summary{padding-block:clamp(25px,1.7vw,55px)}
 .process-step h3,.risk-list h3{font-size:clamp(19px,1.35vw,36px)}
 .step-content,.risk-list p{font-size:var(--fluid-copy)}
 .step-deliverable{font-size:clamp(9px,.65vw,18px)}
 .process-caption>p{font-size:clamp(23px,1.6vw,44px)}
 .process-end{padding-inline:var(--screen-gutter);font-size:clamp(40px,2.6vw,76px)}
 .sector-gallery{padding-inline:var(--screen-gutter);gap:1.3vw}
 .sector-card{max-width:none;flex-basis:27%;height:clamp(420px,30vw,920px)}
 .sector-caption h3{font-size:clamp(26px,1.8vw,50px)}
 .sector-caption>span,.sector-top,.gallery-foot{font-size:clamp(10px,.65vw,18px)}
 .case-photo-caption{left:var(--screen-gutter)}
 .case-photo-caption>p{font-size:clamp(40px,2.8vw,80px)}
 .case-copy h2{font-size:clamp(46px,3.3vw,100px)}
 .case-copy>p:not(.eyebrow):not(.case-client){font-size:var(--fluid-copy);max-width:52ch}
 .case-client{font-size:clamp(18px,1.3vw,34px)}
 .case-metrics b{font-size:clamp(58px,4vw,110px)}
 .case-metrics>div>span{font-size:clamp(11px,.8vw,22px)}
 .team-image{min-height:clamp(490px,36vw,1100px)}
 .team-glass>p{font-size:clamp(22px,1.65vw,44px)}
 .team-glass>span:last-child,.signature>div,.signature>div>span{font-size:clamp(11px,.8vw,22px)}
 .risk-list article{padding-block:clamp(25px,1.8vw,55px)}
 .closing{padding-block:clamp(95px,6vw,190px)}
 .closing h2{font-size:clamp(78px,5.2vw,150px)}
 .closing-glass h3{font-size:clamp(28px,2vw,54px)}
 .closing-glass>p{font-size:var(--fluid-copy)}
 .closing-wa,.footer-top>div>p,.footer-contact>a{font-size:clamp(13px,.9vw,24px)}
 .footer-base,.legal{font-size:clamp(10px,.7vw,18px)}
 .legal{max-width:85ch}
 /* Editorial hero: retain its asymmetric composition. */
 .layout-premium .hero{min-height:92svh}
 .layout-premium h1{font-size:clamp(91px,6.3vw,190px)}
 .layout-premium .hero-layout{padding-block:clamp(60px,4.5vw,155px)}
 .layout-premium .hero .eyebrow{font-size:clamp(10px,.65vw,18px)}
 .layout-premium .hero-cta{margin-top:0}
 .editorial-glass{max-width:78%;padding:clamp(28px,2vw,65px) clamp(70px,5vw,150px) clamp(30px,2.2vw,65px) clamp(28px,2vw,65px)}
 .editorial-glass p{font-size:clamp(21px,1.5vw,42px)}
 .editorial-glass em{font-size:clamp(27px,1.9vw,56px)}
 .editorial-label{font-size:clamp(8px,.6vw,16px)}
 /* Stacked hero: grow the video within the available viewport height. */
 .layout-vertical .hero{min-height:92svh}
 .layout-vertical .hero-layout{flex:1;justify-content:center;padding-block:22px;gap:clamp(18px,1.2vw,36px)}
 .layout-vertical .hero-copy{max-width:70%}
 .layout-vertical h1{font-size:clamp(54px,3.8vw,110px)}
 .layout-vertical .hero-description{max-width:58ch;font-size:clamp(15px,1vw,26px)}
 .layout-vertical .hero-conversion{width:min(54vw,calc((100svh - clamp(420px,24vw,800px))*1.55));min-width:380px}
 .layout-vertical .video-content p{font-size:clamp(19px,1.5vw,40px)}
 .layout-vertical .hero .eyebrow{font-size:clamp(9px,.65vw,18px)}
}
@media(min-width:601px) and (max-width:900px){
 body:not(.layout-vertical):not(.layout-premium) .hero-layout{grid-template-columns:1fr 1fr;gap:4%}
 body:not(.layout-vertical):not(.layout-premium) h1{font-size:clamp(36px,5.5vw,49px)}
 .layout-premium h1{font-size:clamp(40px,6.4vw,57px)}
 .closing-content{gap:4%}
 .closing-glass{padding:20px}
 .closing-glass .button{white-space:normal;gap:8px}
 .case-metrics>div{min-width:0}
}
/* Intake form: approved brand palette and grouped questions. */
.calendar .cal-side{background:#003366}
.calendar .cal-form .btn-primary{background:#8cc63f;border-color:#8cc63f;color:#003366}
.calendar .choices input:checked+span{background:#003366;border-color:#003366;color:#fff}
.calendar .choices input:focus-visible+span,.calendar input:focus{outline-color:#00aeef}
.question-group{border:0;padding:0;margin:0;min-width:0}
.question-group legend{font:500 14px/1.5 var(--head);letter-spacing:0;margin-bottom:9px}
.cal-form p.mt{font:500 14px/1.5 var(--head);color:var(--ink);margin-top:14px}
.calendar .cal-side .mark{width:72px;height:72px}

/* Desktop hero (1101 px and up): same composition as at 1920 px on every
   screen. Sizes follow the width like the large-screen block above and, on
   short screens, the height too (min(vw, svh), reference 1920x944), so the
   whole hero scales together instead of shrinking only the title and video. */
@media(min-width:1101px){
 .hero .wrap{width:calc(100% - 2 * 4vw);max-width:none}
 .hero .eyebrow{font-size:max(9px,min(.65vw,1.322svh))}
 .hero{min-height:92svh;padding-top:min(2vw,4.068svh)}
 .hero-layout{padding-block:min(4vw,8.136svh)}
 .hero-description,.layout-premium .hero-description{font-size:max(14px,min(1.05vw,2.136svh))}
 .hero h1{font-size:min(5.3vw,10.78svh)}
 .hero-detail p{font-size:max(9px,min(.85vw,1.729svh))}
 .hero-detail>span,.hero .cta-note,.layout-premium .hero .cta-note{font-size:max(9px,min(.75vw,1.525svh))}
 .hero .button{font-size:max(14px,min(1vw,2.034svh));min-height:min(3.8vw,7.729svh)}
 .hero .button-arrow{font-size:max(14px,min(1.4vw,2.847svh));width:min(2.1vw,4.271svh)}
 .hero-cta{margin-top:min(1.5vw,3.051svh)}
 .hero .brand svg{width:min(2.6vw,5.288svh);height:min(2.6vw,5.288svh)}
 .hero .brand>span{font-size:max(14px,min(1.2vw,2.441svh))}
 .hero .brand small{font-size:max(9px,min(.55vw,1.119svh))}
 .hero .top-caption,.hero-bottom{font-size:max(9px,min(.65vw,1.322svh))}
 .hero .video-content p{font-size:max(14px,min(1.6vw,3.254svh))}
 .hero .play{width:min(4.5vw,9.153svh);height:min(4.5vw,9.153svh)}
 .hero .video-bar>span,.hero .video-bottom{font-size:max(9px,min(.6vw,1.22svh))}
 .layout-premium .hero{min-height:92svh}
 .layout-premium .hero h1{font-size:min(6.3vw,12.814svh)}
 .layout-premium .hero-layout{padding-block:min(4.5vw,9.153svh)}
 .layout-premium .hero .eyebrow{font-size:max(9px,min(.65vw,1.322svh))}
 .hero .editorial-glass{padding:min(2vw,4.068svh) min(5vw,10.169svh) min(2.2vw,4.475svh) min(2vw,4.068svh)}
 .hero .editorial-glass p{font-size:max(14px,min(1.5vw,3.051svh))}
 .hero .editorial-glass em{font-size:max(14px,min(1.9vw,3.864svh))}
 .hero .editorial-label{font-size:max(9px,min(.6vw,1.22svh))}
 .layout-vertical .hero{min-height:92svh}
 .layout-vertical .hero-layout{gap:min(1.2vw,2.441svh)}
 .layout-vertical .hero h1{font-size:min(3.8vw,7.729svh)}
 .layout-vertical .hero-description{font-size:max(14px,min(1vw,2.034svh))}
 .layout-vertical .hero-conversion{width:min(54vw,calc((100svh - min(24vw,48.814svh))*1.4))}
 .layout-vertical .hero .video-content p{font-size:max(14px,min(1.5vw,3.051svh))}
 .layout-vertical .hero .eyebrow{font-size:max(9px,min(.65vw,1.322svh))}
}
