/* Responsive system for the public site. */
html,body{overflow-x:clip}
img,svg,video,canvas{max-width:100%}
.container,.header__inner,.hero__grid,.stats__grid,.services__grid,.passport-demo__grid,.reviews__inner,.contact__grid,.recruitment__grid,.project-card,.service-card,.review-card,.lead-form,.recruitment-form,.modal__dialog{min-width:0}
.hero__copy,.hero__visual,.contact__grid>*,.recruitment__grid>*,.reviews__inner>*,.passport-demo__grid>*{min-width:0}
button,a,input,select,textarea{max-width:100%}

@media (max-width:1180px){
  .container{width:min(calc(100% - 48px),var(--max))}
  .header__inner{gap:16px}
  .main-nav{gap:16px}
  .main-nav a{font-size:12px}
  .hero__grid{gap:24px}
  .section-heading--split{gap:42px}
  .contact__grid{gap:64px}
}

@media (max-width:900px){
  .container{width:min(calc(100% - 40px),var(--max))}
  .header__inner{display:flex;min-height:78px;gap:14px}
  .brand--primary{flex:1 1 auto}
  .menu-toggle{display:flex;flex-direction:column;gap:5px;padding:10px}
  .menu-toggle span{display:block;width:24px;height:1px;background:var(--ink)}
  .main-nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--paper);padding:22px 20px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line);z-index:21}
  .main-nav.is-open{display:flex}
  .header__contact{display:flex;margin-left:auto}
  .header__contact .phone{display:none}
  .hero__grid{grid-template-columns:1fr;min-height:0}
  .hero__copy{padding:84px 0 38px}
  .hero__visual{height:clamp(390px,58vw,520px);margin-bottom:32px}
  .stats__grid{grid-template-columns:repeat(2,minmax(0,1fr));min-height:0}
  .stats__promise{grid-column:1/-1;border-left:0;border-top:6px solid var(--accent);padding-left:0}
  .services__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .service-card--large{grid-row:span 1;min-height:350px}
  .passport-demo__grid,.reviews__inner,.contact__grid,.recruitment__grid{grid-template-columns:1fr}
  .passport-card{width:100%;max-width:none}
  .reviews__inner,.contact__grid{gap:54px}
  .recruitment__grid{gap:48px}
}

@media (max-width:680px){
  .container{width:calc(100% - 32px)}
  .topline__inner{min-height:28px}
  .header__inner{min-height:70px}
  .main-nav{top:70px;padding:20px 16px}
  .header__contact .button{padding:12px 14px;font-size:11px;gap:12px}
  .brand--primary{gap:9px}
  .brand__symbol{width:44px;height:40px}
  .brand__wordmark strong{font-size:19px}
  .brand__wordmark small{font-size:6px}
  .hero__copy{padding:62px 0 28px}
  .hero h1,.contact h2{font-size:clamp(44px,14vw,58px)}
  .hero__lead,.contact__grid>div>p:not(.eyebrow){font-size:15px}
  .hero__actions,.worldflight__actions{align-items:stretch;flex-direction:column;gap:18px}
  .hero__actions .button,.worldflight__actions .button{width:100%}
  .hero__actions .text-link,.worldflight__actions .text-link{align-self:flex-start}
  .hero__visual{height:clamp(360px,103vw,470px);margin-bottom:24px}
  .hero-gallery{height:clamp(360px,103vw,470px);grid-template-rows:1fr 52px}
  .hero-gallery__main-copy{left:16px;right:16px;bottom:16px}
  .hero-gallery__main-copy strong{font-size:clamp(22px,7vw,29px)}
  .hero-gallery__main-copy small{font-size:9px;margin-top:9px}
  .hero-gallery .visual-note{display:none}
  .stats__grid{gap:0 12px;padding:18px 0}
  .stat{gap:8px;padding:15px 0}
  .stat strong{font-size:clamp(34px,11vw,48px)}
  .stat>span{font-size:9px;line-height:1.35}
  .stats__promise{padding:20px 0 18px}
  .stats__promise strong{font-size:23px}
  .section{padding:58px 0}
  .section-heading h2{font-size:clamp(42px,13vw,56px);overflow-wrap:anywhere}
  .section-heading--split,.section-heading--row{margin-bottom:30px}
  .section-intro{font-size:16px}
  .services__grid{grid-template-columns:1fr;gap:10px}
  .service-card,.service-card--large{min-height:285px;padding:18px}
  .service-card>div:nth-child(2){padding:12px 0 0}
  .service-card h3{font-size:25px;padding:10px 13px 11px}
  .service-card p{max-width:290px;font-size:13px}
  .process-step,.process-step:not(:first-child){grid-template-columns:34px minmax(0,1fr);gap:12px}
  .before-after__sticky>.container{padding-top:64px}
  .before-after .section-heading h2{font-size:clamp(41px,12vw,52px)}
  .before-after .ba-frame{height:clamp(280px,70vw,390px)}
  .ba-caption{font-size:8px;line-height:1.35}
  .projects__grid{gap:30px}
  .project-placeholder--one{height:min(88vw,350px)}
  .project-placeholder{height:min(66vw,260px)}
  .project-card__meta{grid-template-columns:52px minmax(0,1fr);column-gap:8px}
  .project-card__meta h3,.project-card__meta p{overflow-wrap:anywhere}
  .review-card{min-height:0;padding:30px 20px}
  .review-slide blockquote{font-size:25px}
  .contact{padding:66px 0}
  .lead-form{padding-top:18px}
  .lead-form input,.lead-form textarea,.modal-form input{font-size:16px}
  .lead-form .button{width:100%}
  .checkbox-field{font-size:12px!important}
  .footer__top{display:block;padding-bottom:34px}
  .footer__links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px;margin-top:36px}
  .footer__links>div{min-width:0}
  .footer__links a,.footer__links div>span:last-child{font-size:10px;overflow-wrap:anywhere}
  .footer__bottom{font-size:8px}
  .modal{padding:8px}
  .modal__dialog{max-height:calc(100dvh - 16px);overflow:auto;padding:32px 18px}
  .modal__dialog h2{font-size:clamp(42px,13vw,52px)}
  .modal__close{right:12px;top:10px}
  .recruitment-modal__dialog{padding:28px 18px}
  .passport-modal__dialog{padding:24px 16px 26px}
  .passport-modal__meta strong{font-size:13px;overflow-wrap:anywhere}
  .passport-modal__stages small{max-width:130px;overflow-wrap:anywhere}
}

@media (max-width:380px){
  .container{width:calc(100% - 24px)}
  .header__contact{display:none}
  .hero h1,.contact h2{font-size:43px}
  .section-heading h2{font-size:40px}
  .hero__visual,.hero-gallery{height:350px}
  .hero-gallery{grid-template-rows:1fr 46px}
  .gallery-thumb span{font-size:8px;left:5px}
  .footer__links{grid-template-columns:1fr}
  .passport-modal__stages{gap:2px}
  .passport-modal__stages small{max-width:112px;font-size:8px}
}

@media (max-width:680px) and (orientation:landscape){
  .worldflight__sticky{min-height:520px}
  .worldflight__copy--hero .container{padding-bottom:13vh}
  .hero__copy{padding-top:42px}
  .hero__visual{height:330px}
}
