/* Shared full-screen public Menu. Identical styling for the animation iframe and all detailed pages. */
:is(#app #mobile, body #mobile).mobile-overlay{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100dvh!important;
  min-height:100vh!important;
  z-index:9999!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:stretch!important;
  background:#1f3850!important;
  color:#f3f5f7!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:none!important;
  overflow:hidden!important;
  transition:opacity .2s ease,visibility .2s ease!important;
}
:is(#app #mobile, body #mobile).mobile-overlay.open{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
:is(#app #mobile, body #mobile) .mobile-panel{
  position:relative!important;
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
  overflow:hidden!important;
}
:is(#app #mobile, body #mobile) .close-wrap{
  flex:0 0 auto!important;
  display:flex!important;
  justify-content:flex-end!important;
  padding:30px clamp(34px,5vw,70px) 0!important;
}
:is(#app #mobile, body #mobile) .close-wrap .close{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:44px!important;
  height:44px!important;
  border:1px solid rgba(255,255,255,.3)!important;
  border-radius:50%!important;
  color:#fff!important;
  background:transparent!important;
  font:300 30px/1 Arial,sans-serif!important;
  cursor:pointer!important;
}
:is(#app #mobile, body #mobile) .mobile-links.menu-layout{
  position:relative!important;
  flex:1 1 auto!important;
  min-height:0!important;
  width:100%!important;
  max-width:none!important;
  height:auto!important;
  margin:0!important;
  padding:32px clamp(44px,6vw,88px) 120px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.45fr) minmax(240px,.7fr)!important;
  gap:clamp(56px,7vw,112px)!important;
  justify-content:stretch!important;
  align-content:start!important;
  overflow-y:auto!important;
}
:is(#app #mobile, body #mobile) .menu-group{
  display:block!important;
  min-width:0!important;
}
:is(#app #mobile, body #mobile) .menu-section-label{
  display:block!important;
  margin:0 0 20px!important;
  padding:0 0 12px!important;
  border-bottom:1px solid rgba(255,255,255,.18)!important;
  color:rgba(255,255,255,.52)!important;
  font:700 11px/1.2 Arial,Helvetica,sans-serif!important;
  letter-spacing:.16em!important;
  text-transform:uppercase!important;
}
:is(#app #mobile, body #mobile) .menu-primary-grid{
  width:100%!important;
  max-width:665px!important;
  margin:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:0!important;
}
:is(#app #mobile, body #mobile) .menu-primary-grid :is(button,a){
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-height:75px!important;
  margin:0!important;
  padding:15px 0!important;
  background:transparent!important;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.12)!important;
  color:rgba(255,255,255,.70)!important;
  font:400 clamp(21px,2.2vw,32px)/1.2 Arial,Helvetica,sans-serif!important;
  letter-spacing:.015em!important;
  text-transform:uppercase!important;
  text-align:left!important;
  cursor:pointer!important;
}
:is(#app #mobile, body #mobile) .menu-primary-grid :is(button,a).active,
:is(#app #mobile, body #mobile) .menu-primary-grid :is(button,a):hover{
  color:#fff!important;
}
:is(#app #mobile, body #mobile) .menu-primary-grid :is(button,a).active::before{
  content:"•"!important;
  position:absolute!important;
  left:-14px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  font-size:15px!important;
}
:is(#app #mobile, body #mobile) .menu-legal-links{
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  gap:0!important;
  border:0!important;
}
:is(#app #mobile, body #mobile) .menu-legal-links :is(button,a){
  width:100%!important;
  min-height:50px!important;
  padding:12px 0!important;
  text-align:left!important;
  color:rgba(255,255,255,.75)!important;
  border:0!important;
  border-bottom:1px solid rgba(255,255,255,.12)!important;
  background:transparent!important;
  font:600 14px/1.3 Arial,Helvetica,sans-serif!important;
  letter-spacing:.04em!important;
  cursor:pointer!important;
}
:is(#app #mobile, body #mobile) .menu-legal-links :is(button,a):hover{color:#fff!important;}
:is(#app #mobile, body #mobile) .mobile-footer.menu-actions{
  flex:0 0 auto!important;
  position:absolute!important;
  left:clamp(44px,6vw,88px)!important;
  right:clamp(44px,6vw,88px)!important;
  width:auto!important;
  max-width:none!important;
  box-sizing:border-box!important;
  bottom:30px!important;
  min-height:76px!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-end!important;
  gap:12px!important;
  margin:0!important;
  padding:18px 0 0!important;
  background:#1f3850!important;
  border:0!important;
  border-top:1px solid rgba(255,255,255,.18)!important;
}
:is(#app #mobile, body #mobile) .menu-actions-label{
  position:absolute!important;
  top:5px!important;
  left:0!important;
  display:block!important;
  width:auto!important;
  height:auto!important;
  color:rgba(255,255,255,.55)!important;
  font:700 10px/1.2 Arial,Helvetica,sans-serif!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
}
:is(#app #mobile, body #mobile) .menu-actions :is(button,a){
  /* Same control geometry in BOTH animated and white-page menus. */
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  align-self:flex-end!important;
  box-sizing:border-box!important;
  min-width:174px!important;
  height:46px!important;
  min-height:46px!important;
  max-height:46px!important;
  margin:0!important;
  padding:0 18px!important;
  border:1px solid rgba(255,255,255,.35)!important;
  border-radius:0!important;
  background:transparent!important;
  color:#fff!important;
  font:700 12px/1 Arial,Helvetica,sans-serif!important;
  letter-spacing:.05em!important;
  text-align:center!important;
  vertical-align:middle!important;
  white-space:nowrap!important;
  text-decoration:none!important;
  cursor:pointer!important;
}
:is(#app #mobile, body #mobile) .menu-actions :is(button,a).menu-login{
  color:#1f3850!important;
  background:#fff!important;
  border-color:#fff!important;
}
@media(max-width:900px){
  :is(#app #mobile, body #mobile) .mobile-links.menu-layout{
    grid-template-columns:1fr!important;
    gap:32px!important;
    padding-bottom:160px!important;
  }
  :is(#app #mobile, body #mobile) .menu-primary-grid :is(button,a){
    min-height:56px!important;
    font-size:clamp(21px,5vw,27px)!important;
  }
}
@media(max-width:600px){
  :is(#app #mobile, body #mobile) .close-wrap{
    padding:18px 22px 0!important;
  }
  :is(#app #mobile, body #mobile) .mobile-links.menu-layout{
    padding:18px 30px 125px!important;
    gap:26px!important;
  }
  :is(#app #mobile, body #mobile) .menu-primary-grid :is(button,a){
    min-height:50px!important;
    padding:8px 0!important;
    font-size:21px!important;
  }
  :is(#app #mobile, body #mobile) .menu-legal-links :is(button,a){
    min-height:42px!important;
    font-size:12px!important;
  }
  :is(#app #mobile, body #mobile) .mobile-footer.menu-actions{
    left:22px!important;
    right:22px!important;
    width:auto!important;
    max-width:calc(100% - 44px)!important;
    box-sizing:border-box!important;
    bottom:14px!important;
    justify-content:stretch!important;
  }
  :is(#app #mobile, body #mobile) .menu-actions :is(button,a){
    flex:1 1 0!important;
    min-width:0!important;
    padding:0 6px!important;
    font-size:10.5px!important;
  }
}

/* Keep the visitor's consent choice pending, but never let the banner
   block active Menu or Contact/Login drawer controls. */
body.hi-menu-open .analytics-consent,
body.public-overlay-open .analytics-consent{
  visibility:hidden!important;
  pointer-events:none!important;
}

/* Keep real marketing links visually identical to the former menu buttons. */
:is(#app #mobile,body #mobile) a[data-key],:is(#app #mobile,body #mobile) a[data-main-route]{text-decoration:none!important;box-sizing:border-box!important}
.detail-public-nav a[data-key],.detail-public-nav a[data-main-route]{display:inline-flex!important;align-items:center!important;justify-content:center!important;pointer-events:auto!important;border:0!important;background:none!important;padding:0!important;color:inherit!important;cursor:pointer!important;text-decoration:none!important;font-family:'Helvetica Neue ME','Helvetica Neue',Helvetica,Arial,sans-serif!important}
.detail-public-nav .nav-right a[data-main-route]{position:relative!important;white-space:nowrap!important;color:#18324a!important;opacity:.78!important;font-size:13px!important;line-height:1.15!important;font-weight:600!important;letter-spacing:.055em!important;text-transform:uppercase!important}
.detail-public-nav .nav-right a[data-main-route]:hover{opacity:1!important}
.detail-public-nav .nav-right a[data-main-route="/contact"],.detail-public-nav .nav-right a[data-main-route="/login"]{min-height:40px!important;padding:0 15px!important}
.detail-public-nav .nav-right a[data-main-route="/login"]{border:1px solid #102c42!important;background:#102c42!important;color:#fff!important;opacity:1!important}

/* ================================================================
   CINEMATIC HOME COMPOSITION (single authoritative desktop rule)
   The first scene is editorial copy beside an aircraft, not a
   full-width text canvas. Constrain heading + deal grid together,
   keep their edges on the same axis and make card text readable.
   Only affects the cinematic iframe; private/public detail UIs
   retain their existing layout and animation logic.
   ================================================================ */
@media (min-width:1101px){
  .track #home .section-inner{
    width:min(595px,39vw)!important;
    max-width:595px!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:auto!important;
  }
  .track #home .title,
  .track #home .title em{
    max-width:100%!important;
    font-size:clamp(41px,3.15vw,52px)!important;
    line-height:1.045!important;
    letter-spacing:-.027em!important;
  }
  .track #home .home-intro{
    width:100%!important;
    max-width:100%!important;
    margin-top:16px!important;
    font-size:clamp(14px,.98vw,16px)!important;
    line-height:1.48!important;
  }
  .track #home .home-deal-label{
    margin-top:18px!important;
  }
  .track #home .home-deal-grid{
    width:100%!important;
    max-width:100%!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
    margin-top:9px!important;
    align-items:stretch!important;
  }
  .track #home .home-deal-pill{
    min-width:0!important;
    min-height:58px!important;
    box-sizing:border-box!important;
    padding:10px 12px!important;
    opacity:1!important;
    background:rgba(11,36,58,.68)!important;
    border:1px solid rgba(231,240,247,.5)!important;
  }
  .track #home .home-deal-pill strong{
    font-size:12.75px!important;
    line-height:1.25!important;
    letter-spacing:.005em!important;
  }
  .track #home .home-deal-pill small{
    margin-top:4px!important;
    font-size:11.5px!important;
    line-height:1.28!important;
    letter-spacing:0!important;
    color:rgba(248,251,254,.94)!important;
  }
  .track #home .section-action{
    margin-top:13px!important;
  }
}
@media (min-width:761px) and (max-width:1100px){
  .track #home .section-inner{
    width:min(580px,64vw)!important;
    max-width:580px!important;
  }
  .track #home .title,
  .track #home .title em{
    font-size:clamp(37px,4vw,46px)!important;
    line-height:1.04!important;
  }
  .track #home .home-deal-pill{
    background:rgba(11,36,58,.70)!important;
    opacity:1!important;
  }
}
@media (min-width:761px) and (max-height:770px){
  .track #home .title,
  .track #home .title em{
    font-size:clamp(37px,3vw,47px)!important;
  }
  .track #home .home-intro{margin-top:10px!important}
  .track #home .home-deal-label{margin-top:11px!important}
  .track #home .home-deal-grid{margin-top:6px!important}
  .track #home .home-deal-pill{
    min-height:47px!important;
    padding:7px 10px!important;
  }
  .track #home .section-action{margin-top:10px!important}
}


/* ===== RIGHT HEADER ACTIONS: ONE ALIGNMENT CONTRACT =====
   Contact is data-main-route="/contact", never data-key="contact".
   The three actions share exactly the same visual box and baseline;
   this is intentionally scoped to the animated public header. */
@media(min-width:761px){
  #nav .nav-right{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    flex:0 0 auto!important;
    align-items:center!important;
    justify-content:flex-end!important;
    align-self:center!important;
    gap:8px!important;
    height:44px!important;
    min-height:44px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
  }
  #nav .nav-right::before,
  #nav .nav-right::after{
    display:none!important;
    content:none!important;
  }
  #nav .nav-right > :is(a,button){
    display:inline-flex!important;
    position:relative!important;
    flex:0 0 auto!important;
    box-sizing:border-box!important;
    align-items:center!important;
    justify-content:center!important;
    align-self:center!important;
    height:44px!important;
    min-height:44px!important;
    max-height:44px!important;
    margin:0!important;
    padding:0 14px!important;
    border:1px solid rgba(20,49,73,.22)!important;
    border-radius:0!important;
    background:#f7f9fa!important;
    color:#173147!important;
    font-family:Arial,Helvetica,sans-serif!important;
    font-size:12px!important;
    font-weight:700!important;
    font-style:normal!important;
    line-height:1!important;
    letter-spacing:.035em!important;
    text-align:center!important;
    text-decoration:none!important;
    text-transform:uppercase!important;
    text-shadow:none!important;
    white-space:nowrap!important;
    opacity:1!important;
    vertical-align:middle!important;
    cursor:pointer!important;
  }
  #nav .nav-right > a[data-main-route="/contact"]{
    min-width:102px!important;
    border-color:rgba(20,49,73,.28)!important;
    background:transparent!important;
  }
  #nav .nav-right > a[data-main-route="/login"]{
    min-width:138px!important;
    border-color:#102c42!important;
    background:#102c42!important;
    color:#fff!important;
  }
  #nav .nav-right > #menuBtn{
    min-width:74px!important;
    border-color:rgba(20,49,73,.22)!important;
    background:#f7f9fa!important;
  }
  #nav .nav-right > :is(a,button):focus-visible{
    outline:2px solid #347ba6!important;
    outline-offset:3px!important;
  }
}
@media(min-width:761px) and (max-width:1100px){
  #nav .nav-right{gap:6px!important}
  #nav .nav-right > :is(a,button){
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    padding-inline:10px!important;
    font-size:11px!important;
  }
  #nav .nav-right > a[data-main-route="/contact"]{min-width:90px!important}
  #nav .nav-right > a[data-main-route="/login"]{min-width:124px!important}
  #nav .nav-right > #menuBtn{min-width:68px!important}
  #nav .nav-right{height:40px!important;min-height:40px!important}
}
