/* Final responsive layer shared by both languages and legal pages. */
html{scroll-padding-top:calc(var(--nav-height,100px) + 18px);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-width:0}
.wrap{width:min(1320px,92%)}
button,input,select,textarea{max-width:100%}
.button{min-height:48px;white-space:normal;text-align:center;line-height:1.35;max-width:100%}
.button span{flex-shrink:0}
.language-switch a,.nav nav a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.nav.wrap{display:grid;grid-template-columns:minmax(140px,230px) minmax(0,1fr) auto;gap:20px;align-items:center}
.nav .logo{width:100%;max-width:230px;min-width:0;padding:0}
.nav nav{gap:clamp(16px,2.5vw,40px);min-width:0}
.language-switch{justify-content:flex-end}
.hero-copy{width:min(780px,76%);padding-bottom:85px}
.hero h1{font-size:clamp(46px,5.5vw,82px);overflow-wrap:normal}
.hero-strip{right:4%;flex-wrap:wrap;row-gap:14px}
.hero-strip>span{flex-shrink:1}
.call-actions{min-width:0}
.brands-heading>div,.consult-banner>div,.consult-fields>div,.consult-form-layout>*{min-width:0}
.brands-subtitle,.consult-note,.email-address,.legal-content{overflow-wrap:anywhere}
.consult-banner .call-actions{flex:0 1 300px}
.service-copy{overflow-wrap:break-word}
.service svg,.service .maintenance-photo{max-width:100%}
.contact .call-actions .button{flex:1 1 140px;margin-top:10px}
.fineprint{line-height:1.6}
.map iframe{display:block;min-height:240px}
.consult-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
#coordinar{max-width:calc(100vw - 24px);max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;scrollbar-gutter:stable}
.consult-dialog-inner{padding:48px clamp(22px,4vw,46px) 32px}
.consult-close{width:44px;height:44px;z-index:1}
#service-form input,#service-form select{min-height:48px;font-size:16px}
#service-form textarea{font-size:16px}
.legal .language-switch a{color:#fff}
.legal-content{padding-inline:clamp(18px,5vw,40px)}

@media(max-width:1100px){
  .nav.wrap{grid-template-columns:minmax(145px,190px) minmax(0,1fr) auto;gap:16px}
  .nav nav{gap:16px;font-size:13px}
  .hero-copy{width:80%}
  .contact{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
  .footer-brand{grid-column:1/-1;display:flex;align-items:center;gap:28px}
  .footer-brand .logo{max-width:230px}
  .consult-banner{gap:24px;padding:30px}
  .consult-banner h2{font-size:clamp(32px,4.4vw,50px)}
  .consult-form-layout{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:24px}
  .consult-fields{grid-template-columns:1fr;gap:0}
}

@media(max-width:800px){
  .nav.wrap{grid-template-columns:minmax(110px,190px) auto;gap:4px 16px;padding:10px 4%}
  .nav nav{grid-column:1/-1;grid-row:2;order:initial;justify-content:center;gap:24px;font-size:13px}
  .nav nav a:nth-child(2){display:inline-flex}
  .language-switch{grid-column:2;grid-row:1;gap:5px}
  .language-switch a{padding:8px;font-size:12px}
  .hero.wrap{padding:48px 5%;min-height:640px;min-height:max(640px,calc(100svh - var(--nav-height)))}
  .hero-copy{width:100%;padding:0 0 100px}
  .hero h1,html[lang="en"] .hero h1{font-size:clamp(43px,8.5vw,68px);line-height:1.03}
  .hero-copy>p{max-width:600px;font-size:18px}
  .hero:after{background:linear-gradient(90deg,#06101de8,#06101d80)}
  .hero-strip{left:5%;right:5%;bottom:24px;gap:14px}
  .hero-strip small{font-size:11px}
  .hero-strip>span{font-size:23px;padding-right:14px}
  .consult-banner{flex-direction:column;align-items:flex-start}
  .consult-banner .call-actions{flex:auto;width:100%;justify-content:flex-start}
  .consult-banner .call-actions .button{flex:1 1 180px}
  .consult-form-layout{grid-template-columns:1fr}
  .consult-form-layout aside{display:none}
  .consult-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .brands-heading{align-items:flex-start;flex-direction:column}
  .transmission-row{flex-direction:column;gap:20px;text-align:center}
  .route-intro{display:block}
  .route-intro small{display:block;text-align:left;margin-top:12px}
  .route{min-height:0;max-height:40%;height:auto}
  .route .town text{font-size:32px}
  .arrival-copy.wrap{padding:35px 6%}
  .arrival h2{font-size:clamp(46px,8.5vw,72px)}
}

@media(max-width:600px){
  .contact{grid-template-columns:1fr;gap:28px}
  .contact-info{padding:0;border:0}
  .footer-brand{grid-column:1;display:block}
  .footer-brand .logo{width:210px;max-width:100%}
  .consultation{padding-block:38px}
  .consult-banner{padding:24px}
  .consult-banner h2{font-size:clamp(30px,8vw,44px)}
  .consult-fields{grid-template-columns:1fr;gap:0}
  .consult-steps{grid-template-columns:1fr;gap:14px;margin:26px 0}
  .consult-steps li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:4px 12px;padding-top:12px}
  .consult-steps b{grid-row:1/3}
  .consult-steps h3{font-size:23px;margin:0;line-height:1.15}
  .consult-steps p{font-size:14px;grid-column:2}
  .consult-dialog-inner>h2{font-size:clamp(32px,8vw,46px)}
  #coordinar{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);border-radius:10px}
  .consult-dialog-inner{padding:60px 18px max(24px,env(safe-area-inset-bottom))}
  .consult-actions{flex-direction:column}
  .consult-actions .button{width:100%;justify-content:center}
  .fineprint{gap:12px 20px}
  .fineprint>span{flex-basis:100%}
}

@media(max-width:520px){
  .nav.wrap{grid-template-columns:minmax(0,1fr) auto;gap:2px 10px}
  .nav .logo{width:min(165px,100%)}
  .nav nav{gap:22px;font-size:12px}
  .language-switch a{font-size:11px;padding:7px}
  .hero.wrap{padding:36px 5%;min-height:670px}
  .hero h1,html[lang="en"] .hero h1{font-size:clamp(39px,10vw,52px)}
  .hero-copy>p{font-size:16px;line-height:1.6}
  .hero-copy{padding-bottom:110px}
  .hero .call-actions{gap:10px}
  .hero .call-actions .button{flex:1 1 135px;padding:14px 12px;font-size:12px;gap:8px}
  .hero-strip{display:flex;gap:10px;bottom:22px;padding:0}
  .hero-strip>span{font-size:19px;padding-right:8px;gap:6px}
  .hero-strip small{font-size:10px}
  .service,.service.right{grid-template-columns:minmax(0,1fr)!important;gap:14px;padding:25px 0}
  .service>.service-copy,.service.right>.service-copy{order:1;padding:0!important}
  .service>svg,.service>.maintenance-photo{order:2;width:100%;height:auto}
  .service h3{font-size:30px}
  .service h3{white-space:normal}
  .service li{font-size:15px;line-height:1.6}
  .service h3:after{margin:12px 0}
  .service-grid{gap:0}
  .route-intro h2{font-size:clamp(30px,8.5vw,42px)}
  .route-intro p{font-size:16px}
  .route .town text{font-size:40px}
  .route-intro small{font-size:11px}
  .arrival h2{font-size:clamp(42px,11vw,58px)}
  .arrival p{font-size:16px}
  .arrival .call-actions{gap:10px}
  .arrival .button{padding:14px 12px;font-size:12px;gap:12px}
  .brands-heading h2{font-size:36px}
  .brands-toggle{min-height:44px}
  .brands-subtitle{font-size:16px}
  .transmission-row h3{font-size:24px}
}

/* A short landscape screen cannot comfortably hold a pinned full-screen scene. */
@media(max-height:560px) and (max-width:1100px){
  .nav.wrap{position:relative}
  .journey{height:auto}
  .journey-stage{position:relative;top:auto;height:auto;min-height:430px}
  .route-scene{display:none}
  .arrival{opacity:1!important;pointer-events:auto;position:relative;min-height:430px}
  .arrival-copy.wrap{padding:36px 6%}
  .hero.wrap{min-height:590px}
}
@media(prefers-reduced-motion:reduce){
  .brand-track{animation:none}.brand-belt{overflow-x:auto}.brand-group[aria-hidden]{display:none}
}
