/* Brighton Flyway Transport — polished public mobile navigation — 2026-09-14 */

/*
 * Desktop guard:
 * The JavaScript enhances the existing links with mobile-only chrome. Keep that
 * enhancement completely invisible above the mobile/tablet breakpoint so the
 * original desktop header remains clean and unchanged.
 */
.public-nav-menu-head,
.public-nav-menu-foot,
.public-nav-index,
.public-nav-arrow{display:none}
.public-nav-text{display:inline}

.public-nav-backdrop{
  position:fixed;
  inset:0;
  z-index:70;
  background:rgba(5,5,6,.52);
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .22s ease,visibility .22s ease;
}
.public-nav-backdrop.is-visible{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

@media(max-width:900px){
  body.public-nav-lock{overflow:hidden}

  .public-site-header{
    isolation:isolate;
  }

  .public-site-header .public-menu-toggle{
    position:relative;
    z-index:103;
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    gap:9px;
    min-width:48px!important;
    min-height:48px!important;
    height:48px;
    padding:0 14px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:15px!important;
    background:linear-gradient(180deg,#1d1d20 0%,#111113 100%)!important;
    color:#fff!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 8px 24px rgba(0,0,0,.18)!important;
    transition:background .2s ease,border-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease!important;
  }
  .public-site-header .public-menu-toggle:hover{
    border-color:rgba(255,255,255,.3)!important;
    transform:translateY(-1px);
  }
  .public-site-header .public-menu-toggle:active{transform:translateY(0) scale(.98)}
  .public-site-header.nav-open .public-menu-toggle{
    background:linear-gradient(180deg,#252527 0%,#161618 100%)!important;
    border-color:rgba(241,100,25,.62)!important;
    color:#fff!important;
    box-shadow:0 10px 30px rgba(0,0,0,.28),0 0 0 3px rgba(241,100,25,.12)!important;
  }
  .public-site-header .public-menu-toggle .menu-icon{
    width:20px!important;
    height:16px!important;
  }
  .public-site-header .public-menu-toggle .menu-icon i{
    width:20px;
    height:2px!important;
    border-radius:99px!important;
    transform-origin:center;
  }
  .public-site-header.nav-open .public-menu-toggle .menu-icon i:nth-child(1){transform:translateY(7px) rotate(45deg)!important}
  .public-site-header.nav-open .public-menu-toggle .menu-icon i:nth-child(3){transform:translateY(-7px) rotate(-45deg)!important}
  .public-site-header .public-menu-toggle .menu-label{
    font-size:13px;
    font-weight:850;
    letter-spacing:.01em;
  }

  /* Keep the panel mounted so it can animate instead of popping in/out. */
  .public-site-header .public-nav,
  .topbar .marketing-nav,
  .seo-header .seo-nav{
    display:flex!important;
    position:absolute!important;
    grid-column:auto!important;
    grid-row:auto!important;
    justify-self:auto!important;
    align-self:auto!important;
    top:calc(100% + 10px)!important;
    left:auto!important;
    right:12px!important;
    width:min(420px,calc(100vw - 24px))!important;
    max-width:calc(100vw - 24px)!important;
    max-height:min(610px,calc(100dvh - 126px));
    margin:0!important;
    padding:10px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:2px!important;
    background:
      radial-gradient(circle at 88% -14%,rgba(166,59,0,.22),transparent 34%),
      linear-gradient(180deg,#151517 0%,#0b0b0c 100%)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:22px!important;
    box-shadow:0 30px 90px rgba(0,0,0,.42),0 5px 18px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.05)!important;
    z-index:102!important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px) scale(.985);
    transform-origin:top right;
    transition:opacity .2s ease,transform .24s cubic-bezier(.2,.8,.2,1),visibility .2s ease!important;
    scrollbar-width:thin;
    scrollbar-color:#46464b transparent;
  }
  .public-site-header .public-nav::-webkit-scrollbar{width:5px!important;height:5px!important}
  .public-site-header .public-nav::-webkit-scrollbar-thumb{background:#46464b;border-radius:99px}

  .public-site-header.nav-open .public-nav,
  .topbar.nav-open .marketing-nav,
  .seo-header.nav-open .seo-nav{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translateY(0) scale(1)!important;
  }

  .public-nav-menu-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px;
    padding:10px 10px 13px;
    margin-bottom:3px;
    border-bottom:1px solid rgba(255,255,255,.09);
  }
  .public-nav-menu-head>span{display:flex;flex-direction:column;gap:2px;min-width:0}
  .public-nav-menu-head small{
    color:#f16419;
    font-size:10px;
    line-height:1.2;
    font-weight:900;
    letter-spacing:.15em;
    text-transform:uppercase;
  }
  .public-nav-menu-head strong{
    color:#fff;
    font-size:18px;
    line-height:1.2;
    letter-spacing:-.025em;
  }
  .public-nav-menu-head em{
    color:#85858b;
    font-size:11px;
    line-height:1.35;
    font-style:normal;
    text-align:right;
    white-space:nowrap;
  }

  .public-site-header .public-nav a,
  .public-site-header .public-nav .nav-link,
  .topbar .site-link,
  .topbar .marketing-nav .nav-link,
  .seo-header .seo-nav a{
    display:grid!important;
    grid-template-columns:34px minmax(0,1fr) 30px;
    align-items:center!important;
    gap:12px!important;
    width:100%;
    min-height:58px!important;
    padding:8px 9px!important;
    margin:0!important;
    border:1px solid transparent!important;
    border-radius:14px!important;
    background:transparent!important;
    color:#f8f8f8!important;
    text-decoration:none!important;
    font-size:16px!important;
    font-weight:850!important;
    line-height:1.15!important;
    letter-spacing:-.015em;
    text-align:left;
    transition:background .16s ease,border-color .16s ease,transform .16s ease,color .16s ease!important;
  }
  .public-site-header .public-nav a:hover,
  .public-site-header .public-nav .nav-link:hover,
  .public-site-header .public-nav a:focus-visible,
  .public-site-header .public-nav .nav-link:focus-visible{
    background:rgba(255,255,255,.07)!important;
    border-color:rgba(255,255,255,.08)!important;
    color:#fff!important;
    transform:translateX(2px);
  }
  .public-site-header .public-nav a[aria-current="page"]{
    background:linear-gradient(90deg,rgba(166,59,0,.2),rgba(166,59,0,.07))!important;
    border-color:rgba(241,100,25,.24)!important;
    color:#fff!important;
  }

  .public-nav-index{
    display:grid;
    place-items:center;
    width:32px;
    height:32px;
    border:1px solid rgba(255,255,255,.1);
    border-radius:10px;
    background:rgba(255,255,255,.045);
    color:#8d8d93;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
  }
  a[aria-current="page"] .public-nav-index{
    border-color:rgba(241,100,25,.3);
    background:rgba(166,59,0,.18);
    color:#f16419;
  }
  .public-nav-text{min-width:0}
  .public-nav-arrow{
    display:grid;
    place-items:center;
    width:30px;
    height:30px;
    border-radius:10px;
    color:#74747a;
    font-size:15px;
    transition:background .16s ease,color .16s ease,transform .16s ease;
  }
  .public-site-header .public-nav a:hover .public-nav-arrow,
  .public-site-header .public-nav a:focus-visible .public-nav-arrow,
  .public-site-header .public-nav a[aria-current="page"] .public-nav-arrow{
    background:rgba(255,255,255,.08);
    color:#f16419;
    transform:translateX(1px);
  }

  .public-nav-menu-foot{
    display:flex;
    align-items:center;
    gap:9px;
    margin-top:4px;
    padding:12px 10px 7px;
    border-top:1px solid rgba(255,255,255,.08);
    color:#77777e;
    font-size:10px;
    line-height:1.35;
    font-weight:850;
    letter-spacing:.11em;
    text-transform:uppercase;
  }
  .public-nav-menu-foot i{
    width:7px;
    height:7px;
    flex:0 0 auto;
    border-radius:50%;
    background:#f16419;
    box-shadow:0 0 0 4px rgba(241,100,25,.1);
  }

  .public-site-header.nav-open .public-nav>a{
    animation:publicNavItemIn .32s both cubic-bezier(.2,.8,.2,1);
  }
  .public-site-header.nav-open .public-nav>a:nth-of-type(1){animation-delay:.025s}
  .public-site-header.nav-open .public-nav>a:nth-of-type(2){animation-delay:.05s}
  .public-site-header.nav-open .public-nav>a:nth-of-type(3){animation-delay:.075s}
  .public-site-header.nav-open .public-nav>a:nth-of-type(4){animation-delay:.1s}
  .public-site-header.nav-open .public-nav>a:nth-of-type(5){animation-delay:.125s}
  .public-site-header.nav-open .public-nav>a:nth-of-type(6){animation-delay:.15s}

  @keyframes publicNavItemIn{
    from{opacity:0;transform:translateY(-5px)}
    to{opacity:1;transform:translateY(0)}
  }
}

@media(max-width:620px){
  .public-site-header .public-menu-toggle{
    width:48px!important;
    min-width:48px!important;
    padding:0!important;
    border-radius:15px!important;
  }
  .public-site-header .public-menu-toggle .menu-label{display:none!important}
  .public-site-header .public-nav,
  .topbar .marketing-nav,
  .seo-header .seo-nav{
    /* Do not size this drawer with 100vw on iOS. Safari can report a layout
       viewport that differs from the visible viewport while its browser chrome
       is expanded/collapsed, which can leave the drawer hanging off-screen. */
    left:max(10px, env(safe-area-inset-left))!important;
    right:max(10px, env(safe-area-inset-right))!important;
    width:auto!important;
    inline-size:auto!important;
    max-width:none!important;
    box-sizing:border-box!important;
    border-radius:20px!important;
    padding:9px!important;
  }
  .public-nav-menu-head{padding:9px 9px 12px}
  .public-nav-menu-head strong{font-size:17px}
  .public-nav-menu-head em{font-size:10px}
  .public-site-header .public-nav a,
  .public-site-header .public-nav .nav-link,
  .topbar .site-link,
  .topbar .marketing-nav .nav-link,
  .seo-header .seo-nav a{
    min-height:56px!important;
    font-size:15px!important;
  }
}

@media(max-height:560px) and (max-width:900px){
  .public-site-header .public-nav,
  .topbar .marketing-nav,
  .seo-header .seo-nav{
    max-height:calc(100dvh - 94px)!important;
  }
  .public-nav-menu-head{padding-top:7px;padding-bottom:9px}
  .public-nav-menu-foot{display:none}
  .public-site-header .public-nav a,
  .public-site-header .public-nav .nav-link,
  .topbar .site-link,
  .topbar .marketing-nav .nav-link,
  .seo-header .seo-nav a{min-height:50px!important}
}

@media(prefers-reduced-motion:reduce){
  .public-nav-backdrop,
  .public-site-header .public-menu-toggle,
  .public-site-header .public-nav,
  .public-site-header .public-nav a,
  .public-nav-arrow{
    transition:none!important;
    animation:none!important;
  }
}
