/* ==========================================================================
   AIX GLOBAL LOGISTICS — custom stylesheet
   Loaded after Bootstrap 5.3. All brand styling lives here.

   Palette is taken from the logo:
     navy   #141A57   deep navy  #0B0F33
     red    #D0121A   dark red   #A50E15
   Background stays white; navy and mist carry the sections.
   ========================================================================== */

:root{
  --aix-navy:        #141A57;
  --aix-navy-deep:   #0B0F33;
  --aix-navy-soft:   #1E2670;
  --aix-red:         #D0121A;
  --aix-red-dark:    #A50E15;
  --aix-white:       #FFFFFF;
  --aix-mist:        #F4F6FB;
  --aix-line:        #E3E8F3;
  --aix-body:        #525C7A;
  --aix-ink:         #0E1330;

  --font-display: 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --font-body:    'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono:    'IBM Plex Mono', ui-monospace, monospace;

  --shadow-sm: 0 4px 18px rgba(11,15,51,.06);
  --shadow-md: 0 14px 44px rgba(11,15,51,.10);
  --shadow-lg: 0 26px 70px rgba(11,15,51,.16);

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* --------------------------------------------------------------------------
   1. BASE
   -------------------------------------------------------------------------- */
html{ scroll-behavior:smooth; }

body{
  font-family:var(--font-body);
  color:var(--aix-body);
  background:var(--aix-white);
  font-size:1rem;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,h6{
  font-family:var(--font-display);
  color:var(--aix-ink);
  font-weight:700;
  letter-spacing:.005em;
  line-height:1.1;
  text-transform:uppercase;
}

p{ margin-bottom:1rem; }
a{ text-decoration:none; color:var(--aix-navy); transition:color .25s var(--ease); }
a:hover{ color:var(--aix-red); }
img{ max-width:100%; height:auto; }

.mono{ font-family:var(--font-mono); }

::selection{ background:var(--aix-red); color:#fff; }

:focus-visible{
  outline:3px solid var(--aix-red);
  outline-offset:3px;
  border-radius:2px;
}

/* --------------------------------------------------------------------------
   2. SHARED BLOCKS
   -------------------------------------------------------------------------- */
.section{ padding:96px 0; }
.section-mist{ background:var(--aix-mist); }
.section-tight{ padding:64px 0; }

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  font-family:var(--font-mono);
  font-size:.72rem;
  font-weight:500;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--aix-red);
  margin-bottom:1rem;
}
.eyebrow::before{
  content:"";
  width:26px; height:2px;
  background:var(--aix-red);
}
.eyebrow-light{ color:#fff; }
.eyebrow-light::before{ background:var(--aix-red); }

.section-title{
  font-size:clamp(1.9rem, 3.4vw, 2.9rem);
  margin-bottom:1.1rem;
}
.section-title.text-white{ color:#fff; }

.section-sub{
  max-width:640px;
  font-size:1.05rem;
}

.section-head{
  max-width:720px;
  margin:0 auto 56px;
  text-align:center;
}
.section-head .eyebrow{ justify-content:center; }

.lead-text{
  font-size:1.08rem;
  color:var(--aix-ink);
  font-weight:500;
}

/* Buttons ------------------------------------------------------------------ */
.btn{
  font-family:var(--font-display);
  text-transform:uppercase;
  letter-spacing:.06em;
  font-weight:600;
  border-radius:2px;
  padding:.72rem 1.7rem;
  border-width:2px;
  transition:all .28s var(--ease);
}
.btn-lg{ padding:.85rem 2.1rem; font-size:1.05rem; }

.btn-aix{
  background:var(--aix-red);
  border-color:var(--aix-red);
  color:#fff;
  box-shadow:0 8px 22px rgba(208,18,26,.26);
}
.btn-aix:hover,.btn-aix:focus{
  background:var(--aix-navy);
  border-color:var(--aix-navy);
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(20,26,87,.3);
}

.btn-aix-ghost{
  background:transparent;
  border-color:rgba(255,255,255,.7);
  color:#fff;
}
.btn-aix-ghost:hover,.btn-aix-ghost:focus{
  background:#fff;
  border-color:#fff;
  color:var(--aix-navy);
  transform:translateY(-2px);
}

.btn-aix-outline{
  background:transparent;
  border-color:var(--aix-navy);
  color:var(--aix-navy);
}
.btn-aix-outline:hover,.btn-aix-outline:focus{
  background:var(--aix-navy);
  color:#fff;
  transform:translateY(-2px);
}

/* Image hover animation — used on every photo on the site ------------------- */
.img-hover{
  position:relative;
  overflow:hidden;
  border-radius:3px;
  background:var(--aix-navy-deep);
}
.img-hover img{
  width:100%;
  display:block;
  filter:saturate(.92) contrast(1.04);
  transition:transform .8s var(--ease), filter .6s var(--ease);
  will-change:transform;
}
.img-hover:hover img{ filter:saturate(1.04) contrast(1.06); }
.img-hover::after{                    /* diagonal navy sweep */
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(115deg, rgba(20,26,87,.78) 0%, rgba(20,26,87,0) 62%);
  opacity:0;
  transition:opacity .5s var(--ease);
  pointer-events:none;
}
.img-hover::before{                   /* red edge that slides in */
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:100%; height:4px;
  background:var(--aix-red);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .5s var(--ease);
  z-index:3;
}
.img-hover:hover img{ transform:scale(1.09); }
.img-hover:hover::after{ opacity:1; }
.img-hover:hover::before{ transform:scaleX(1); }

/* Check list --------------------------------------------------------------- */
.check-list{ list-style:none; padding:0; margin:1.6rem 0; }
.check-list li{
  position:relative;
  padding-left:2rem;
  margin-bottom:.7rem;
  color:var(--aix-ink);
  font-weight:500;
}
.check-list li i{
  position:absolute; left:0; top:.35rem;
  width:20px; height:20px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--aix-red);
  color:#fff;
  border-radius:2px;
  font-size:.72rem;
}

/* --------------------------------------------------------------------------
   3. HEADER
   -------------------------------------------------------------------------- */
.topbar{
  background:var(--aix-navy-deep);
  color:rgba(255,255,255,.72);
  font-size:.82rem;
  padding:.55rem 0;
}
.topbar-list{
  list-style:none; margin:0; padding:0;
  display:flex; align-items:center; gap:1.6rem;
}
.topbar-list a{ color:rgba(255,255,255,.72); }
.topbar-list a:hover{ color:#fff; }
.topbar-list i{ color:var(--aix-red); margin-right:.35rem; }
.topbar-social{ display:flex; gap:.8rem; }
.topbar-social i{ color:rgba(255,255,255,.72); margin:0; }
.topbar-social a:hover i{ color:var(--aix-red); }

.main-nav{
  background:#fff;
  padding:.85rem 0;
  border-bottom:1px solid var(--aix-line);
  transition:box-shadow .3s var(--ease), padding .3s var(--ease);
}
.main-nav.is-stuck{
  position:fixed; top:0; left:0; right:0;
  z-index:1030;
  padding:.5rem 0;
  box-shadow:var(--shadow-md);
  animation:navDrop .4s var(--ease);
}
@keyframes navDrop{ from{ transform:translateY(-100%); } to{ transform:translateY(0); } }

.brand-logo{ height:56px; width:auto; transition:height .3s var(--ease); }
.main-nav.is-stuck .brand-logo{ height:46px; }

.main-nav .nav-link{
  font-family:var(--font-display);
  text-transform:uppercase;
  font-size:1.03rem;
  font-weight:600;
  letter-spacing:.05em;
  color:var(--aix-navy);
  padding:.6rem 1rem !important;
  position:relative;
}
.main-nav .nav-link::before{
  content:"";
  position:absolute;
  left:1rem; right:1rem; bottom:.3rem;
  height:2px;
  background:var(--aix-red);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform .32s var(--ease);
}
.main-nav .nav-link:hover::before,
.main-nav .nav-link.active::before{ transform:scaleX(1); transform-origin:left; }
.main-nav .nav-link:hover,
.main-nav .nav-link.active{ color:var(--aix-red); }

.main-nav .dropdown-toggle::after{
  content:"";
  width:7px;
  height:7px;
  border:0;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  display:inline-block;
  vertical-align:middle;
  position:relative;
  top:-3px;
  transform:rotate(45deg);
  margin-left:.55rem;
  transition:transform .3s var(--ease), top .3s var(--ease);
}
.main-nav .nav-item.dropdown:hover .dropdown-toggle::after{
  top:1px;
  transform:rotate(-135deg);
}

.main-nav .dropdown-menu{
  border:0;
  border-top:3px solid var(--aix-red);
  border-radius:0;
  box-shadow:var(--shadow-md);
  padding:.6rem 0;
  margin-top:0;                 /* no dead gap — see .dropdown-menu::before */
  min-width:250px;
}
/* Transparent bridge covering the space between link and menu, so the
   pointer never leaves the .nav-item on the way down. */
.main-nav .nav-item.dropdown > .dropdown-menu::before{
  content:"";
  position:absolute;
  left:0; right:0;
  top:-14px;
  height:14px;
}
.main-nav .nav-item.dropdown{ padding-bottom:2px; }
.dropdown-menu-wide{ min-width:330px; }

.main-nav .dropdown-menu.show{
  animation:ddIn .22s var(--ease) both;
}
@keyframes ddIn{
  from{ opacity:0; transform:translateY(-8px); }
  to  { opacity:1; transform:translateY(0); }
}
.main-nav .dropdown-item{
  font-family:var(--font-body);
  font-size:.92rem;
  font-weight:500;
  color:var(--aix-navy);
  padding:.6rem 1.4rem;
  transition:all .25s var(--ease);
}
.main-nav .dropdown-item i{ color:var(--aix-red); margin-right:.5rem; width:18px; }
.main-nav .dropdown-item:hover,
.main-nav .dropdown-item:focus{
  background:var(--aix-mist);
  color:var(--aix-red);
  padding-left:1.7rem;
}

.navbar-toggler{ border:0; padding:.4rem; }
.navbar-toggler:focus{ box-shadow:none; }
.toggler-bar{
  display:block;
  width:26px; height:2px;
  background:var(--aix-navy);
  margin:5px 0;
  transition:all .3s var(--ease);
}

/* --------------------------------------------------------------------------
   4. HERO CAROUSEL
   -------------------------------------------------------------------------- */
.hero{ position:relative; }

.hero .carousel-item{
  height:clamp(560px, 82vh, 820px);
  position:relative;
  overflow:hidden;
}
.hero-slide{
  position:absolute; inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1.06);
}
.carousel-item.active .hero-slide{
  animation:kenburns 8s var(--ease) forwards;
}
@keyframes kenburns{
  from{ transform:scale(1.14); }
  to  { transform:scale(1.0); }
}

.hero-veil{
  position:absolute; inset:0;
  background:
    linear-gradient(100deg, rgba(11,15,51,.93) 0%, rgba(11,15,51,.80) 45%, rgba(11,15,51,.42) 100%),
    linear-gradient(0deg, rgba(11,15,51,.55) 0%, rgba(11,15,51,0) 45%);
}
.hero-veil::after{               /* red hairline echoing the logo swoosh */
  content:"";
  position:absolute;
  left:0; bottom:0;
  width:100%; height:5px;
  background:linear-gradient(90deg, var(--aix-red) 0%, var(--aix-red) 34%, transparent 34%);
}

.hero-caption{
  position:absolute;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  z-index:3;
}
.hero-title{
  color:#fff;
  font-size:clamp(2.1rem, 4.6vw, 3.9rem);
  line-height:1.02;
  letter-spacing:.002em;
  margin-bottom:1.15rem;
  max-width:18ch;
  text-shadow:0 2px 24px rgba(11,15,51,.45);
}
.hero-text{
  color:rgba(255,255,255,.88);
  font-size:1.05rem;
  max-width:50ch;
  margin-bottom:1.9rem;
}
.hero-actions{ display:flex; flex-wrap:wrap; gap:.9rem; }

/* staged entrance for the active slide */
.carousel-item.active .eyebrow,
.carousel-item.active .hero-title,
.carousel-item.active .hero-text,
.carousel-item.active .hero-actions{
  animation:heroUp .9s var(--ease) both;
}
.carousel-item.active .hero-title{ animation-delay:.12s; }
.carousel-item.active .hero-text{ animation-delay:.24s; }
.carousel-item.active .hero-actions{ animation-delay:.36s; }
@keyframes heroUp{
  from{ opacity:0; transform:translateY(28px); }
  to  { opacity:1; transform:translateY(0); }
}

.hero-arrow{
  width:58px; height:58px;
  top:auto; bottom:38%;
  opacity:1;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.32);
  color:#fff;
  font-size:1.2rem;
  display:flex; align-items:center; justify-content:center;
  transition:all .3s var(--ease);
}
.hero-arrow:hover{ background:var(--aix-red); border-color:var(--aix-red); }
.carousel-control-prev.hero-arrow{ left:2.2rem; }
.carousel-control-next.hero-arrow{ right:2.2rem; }

.hero-dots{
  justify-content:flex-start;
  left:auto; right:auto;
  bottom:12%;
  margin:0;
  padding-left:max(2.2rem, calc((100vw - 1320px)/2 + 12px));
}
.hero-dots [data-bs-target]{
  width:auto; height:auto;
  background:transparent;
  border:0;
  opacity:1;
  text-indent:0;
  box-sizing:content-box;
  font-family:var(--font-mono);
  font-size:.78rem;
  color:rgba(255,255,255,.5);
  padding:0 0 .45rem 0;
  margin:0 1.2rem 0 0;
  border-bottom:2px solid rgba(255,255,255,.25);
  transition:all .3s var(--ease);
}
.hero-dots [data-bs-target].active{
  color:#fff;
  border-bottom-color:var(--aix-red);
}

/* --------------------------------------------------------------------------
   5. TRACKING STRIP
   -------------------------------------------------------------------------- */
.track-strip{
  position:relative;
  margin-top:-72px;
  z-index:5;
  padding-bottom:0;
}
.track-card{
  background:#fff;
  border-radius:3px;
  box-shadow:var(--shadow-lg);
  padding:38px 40px;
  border-left:6px solid var(--aix-red);
}
.track-card-title{ font-size:1.75rem; margin:0; }
.track-form{ display:flex; gap:.75rem; flex-wrap:wrap; }
.track-input-wrap{ position:relative; flex:1 1 10px; }
.track-input-wrap i{
  position:absolute; left:1rem; top:50%;
  transform:translateY(-50%);
  color:var(--aix-red);
  font-size:1.15rem;
}
.track-form .form-control{
  height:56px;
  padding-left:3rem;
  border:1px solid var(--aix-line);
  border-radius:2px;
  background:var(--aix-mist);
  font-family:var(--font-mono);
  font-size:.95rem;
}
.track-form .form-control:focus{
  border-color:var(--aix-navy);
  box-shadow:0 0 0 3px rgba(20,26,87,.1);
  background:#fff;
}
.track-hint{
  font-size:.82rem;
  margin-top:.7rem;
  color:#8B94AE;
}

/* --------------------------------------------------------------------------
   6. INTRO MEDIA
   -------------------------------------------------------------------------- */
.intro-media{ position:relative; padding-bottom:56px; padding-right:40px; }
.intro-media-main img{ aspect-ratio:9/10; object-fit:cover; }
.intro-media-sub{
  position:absolute;
  right:0; bottom:0;
  width:52%;
  border:8px solid #fff;
  box-shadow:var(--shadow-md);
}
.intro-media-sub img{ aspect-ratio:1/1; object-fit:cover; }

.intro-badge{
  position:absolute;
  top:28px; left:-18px;
  background:var(--aix-red);
  color:#fff;
  padding:18px 22px;
  display:flex; align-items:center; gap:.8rem;
  box-shadow:var(--shadow-md);
  z-index:4;
}
.intro-badge-num{
  font-family:var(--font-display);
  font-size:2.9rem;
  font-weight:700;
  line-height:1;
}
.intro-badge-label{
  font-family:var(--font-display);
  text-transform:uppercase;
  font-size:.9rem;
  line-height:1.15;
  letter-spacing:.06em;
}

/* --------------------------------------------------------------------------
   7. SERVICE CARDS
   -------------------------------------------------------------------------- */
.service-card{
  display:block;
  background:#fff;
  border:1px solid var(--aix-line);
  border-radius:3px;
  overflow:hidden;
  height:100%;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.service-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--shadow-lg);
  border-color:transparent;
}
.service-card-media{ position:relative; }
.service-card-media .img-hover{ border-radius:0; }
.service-card-media img{ aspect-ratio:16/10; object-fit:cover; }
.service-card-icon{
  position:absolute;
  right:20px; bottom:-24px;
  width:54px; height:54px;
  display:flex; align-items:center; justify-content:center;
  background:var(--aix-red);
  color:#fff;
  font-size:1.4rem;
  z-index:4;
  transition:background .35s var(--ease), transform .35s var(--ease);
}
.service-card:hover .service-card-icon{
  background:var(--aix-navy);
  transform:rotate(-8deg);
}
.service-card-body{ padding:34px 26px 28px; }
.service-card-title{
  font-size:1.4rem;
  margin-bottom:.6rem;
  color:var(--aix-navy);
  transition:color .3s var(--ease);
}
.service-card:hover .service-card-title{ color:var(--aix-red); }
.service-card-text{ font-size:.95rem; margin-bottom:1rem; }
.service-card-link{
  font-family:var(--font-display);
  text-transform:uppercase;
  font-weight:600;
  letter-spacing:.06em;
  color:var(--aix-red);
  font-size:.95rem;
}
.service-card-link i{ transition:transform .3s var(--ease); display:inline-block; }
.service-card:hover .service-card-link i{ transform:translateX(6px); }

/* --------------------------------------------------------------------------
   8. ROUTE BOARD  (signature element)
   -------------------------------------------------------------------------- */
.route-board{
  background:var(--aix-navy-deep);
  padding:34px 0 40px;
  overflow:hidden;
}
.route-board-head{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
  justify-content:space-between;
  align-items:center;
  margin-bottom:22px;
}
.route-live{
  font-family:var(--font-mono);
  font-size:.74rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(255,255,255,.6);
  display:inline-flex; align-items:center; gap:.6rem;
}
.route-live-dot{
  width:8px; height:8px;
  border-radius:50%;
  background:var(--aix-red);
  animation:pulse 1.9s infinite;
}
@keyframes pulse{
  0%,100%{ box-shadow:0 0 0 0 rgba(208,18,26,.65); }
  50%    { box-shadow:0 0 0 8px rgba(208,18,26,0); }
}
.route-board-link{
  font-family:var(--font-display);
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#fff;
  font-size:.95rem;
}
.route-board-link:hover{ color:var(--aix-red); }

.route-track{ position:relative; }
.route-track::before,
.route-track::after{
  content:"";
  position:absolute; top:0; bottom:0;
  width:120px; z-index:2;
  pointer-events:none;
}
.route-track::before{ left:0;  background:linear-gradient(90deg, var(--aix-navy-deep), transparent); }
.route-track::after { right:0; background:linear-gradient(270deg, var(--aix-navy-deep), transparent); }

.route-marquee{
  display:flex;
  width:max-content;
  animation:marquee 38s linear infinite;
}
.route-marquee:hover{ animation-play-state:paused; }
@keyframes marquee{
  from{ transform:translateX(0); }
  to  { transform:translateX(-50%); }
}
.route-row{ display:flex; }
.route-item{
  font-family:var(--font-mono);
  font-size:.92rem;
  color:rgba(255,255,255,.55);
  padding:0 2.4rem;
  white-space:nowrap;
  border-right:1px solid rgba(255,255,255,.12);
  display:inline-flex; align-items:center; gap:.6rem;
}
.route-item b{ color:#fff; font-weight:500; letter-spacing:.08em; }
.route-item i{ color:var(--aix-red); }
.route-item em{
  font-style:normal;
  color:rgba(255,255,255,.45);
  text-transform:uppercase;
  font-size:.72rem;
  letter-spacing:.14em;
}
.route-item u{ text-decoration:none; color:var(--aix-red); }

/* --------------------------------------------------------------------------
   9. WHY SECTION + STATS
   -------------------------------------------------------------------------- */
.why-section{
  background:
    linear-gradient(180deg, var(--aix-navy) 0%, var(--aix-navy-deep) 100%);
  position:relative;
}
.why-text{ color:rgba(255,255,255,.75); font-size:1.05rem; margin-bottom:1.8rem; }

.why-card{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  padding:30px 26px;
  height:100%;
  border-radius:3px;
  transition:all .35s var(--ease);
}
.why-card:hover{
  background:rgba(255,255,255,.09);
  border-color:var(--aix-red);
  transform:translateY(-6px);
}
.why-card i{
  font-size:1.9rem;
  color:var(--aix-red);
  display:block;
  margin-bottom:1rem;
}
.why-card h3{ color:#fff; font-size:1.25rem; margin-bottom:.5rem; }
.why-card p{ color:rgba(255,255,255,.66); font-size:.92rem; margin:0; }

.stat-row{
  margin-top:72px;
  padding-top:52px;
  border-top:1px solid rgba(255,255,255,.14);
}
.stat-num,.stat-plus{
  font-family:var(--font-display);
  font-size:clamp(2.6rem,5vw,3.6rem);
  font-weight:700;
  color:#fff;
  line-height:1;
}
.stat-plus{ color:var(--aix-red); }
.stat p{
  font-family:var(--font-mono);
  font-size:.74rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
  margin:.7rem 0 0;
}

/* --------------------------------------------------------------------------
   10. STEPS
   -------------------------------------------------------------------------- */
.step-card{
  background:#fff;
  padding:34px 28px;
  height:100%;
  border-radius:3px;
  border-bottom:3px solid var(--aix-line);
  transition:all .35s var(--ease);
}
.step-card:hover{
  border-bottom-color:var(--aix-red);
  box-shadow:var(--shadow-md);
  transform:translateY(-6px);
}
.step-num{
  font-family:var(--font-mono);
  font-size:.95rem;
  color:var(--aix-red);
  letter-spacing:.16em;
  display:block;
  margin-bottom:1.1rem;
}
.step-card h3{ font-size:1.3rem; margin-bottom:.55rem; color:var(--aix-navy); }
.step-card p{ font-size:.93rem; margin:0; }

/* --------------------------------------------------------------------------
   11. MODE TILES
   -------------------------------------------------------------------------- */
.mode-tile{ position:relative; }
.mode-tile img{ aspect-ratio:4/5; object-fit:cover; }
.mode-tile-cap{
  position:absolute;
  left:0; right:0; bottom:0;
  padding:26px 24px;
  z-index:4;
  background:linear-gradient(0deg, rgba(11,15,51,.9) 0%, transparent 100%);
  transition:padding-bottom .4s var(--ease);
}
.mode-tile:hover .mode-tile-cap{ padding-bottom:36px; }
.mode-tile-cap span{
  color:var(--aix-red);
  font-size:.78rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.mode-tile-cap h3{ color:#fff; font-size:1.35rem; margin:.35rem 0 0; }

/* --------------------------------------------------------------------------
   12. PAGE HERO (inner pages)
   -------------------------------------------------------------------------- */
.page-hero{
  position:relative;
  background-size:cover;
  background-position:center;
  padding:120px 0 96px;
}
.page-hero-veil{
  position:absolute; inset:0;
  background:
    linear-gradient(100deg, rgba(11,15,51,.93) 0%, rgba(11,15,51,.74) 100%),
    linear-gradient(0deg, rgba(11,15,51,.4) 0%, rgba(11,15,51,0) 60%);
}
.page-hero-veil::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:100%; height:5px;
  background:linear-gradient(90deg, var(--aix-red) 0%, var(--aix-red) 26%, transparent 26%);
}
.page-hero-inner{ position:relative; z-index:2; }
.page-hero-title{
  color:#fff;
  font-size:clamp(2.2rem, 4.6vw, 3.6rem);
  margin-bottom:.9rem;
}
.aix-crumbs{
  list-style:none; display:flex; flex-wrap:wrap;
  gap:.55rem; padding:0; margin:0;
  font-family:var(--font-mono);
  font-size:.8rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.aix-crumbs li{ color:rgba(255,255,255,.55); }
.aix-crumbs li + li::before{ content:"/"; margin-right:.55rem; color:var(--aix-red); }
.aix-crumbs a{ color:rgba(255,255,255,.8); }
.aix-crumbs a:hover{ color:var(--aix-red); }

/* --------------------------------------------------------------------------
   13. CONTENT BLOCKS USED ACROSS INNER PAGES
   -------------------------------------------------------------------------- */
.value-card{
  background:#fff;
  border:1px solid var(--aix-line);
  border-radius:3px;
  padding:34px 28px;
  height:100%;
  position:relative;
  overflow:hidden;
  transition:all .35s var(--ease);
}
.value-card::before{
  content:"";
  position:absolute;
  top:0; left:0;
  width:100%; height:3px;
  background:var(--aix-red);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .4s var(--ease);
}
.value-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-6px); }
.value-card:hover::before{ transform:scaleX(1); }
.value-card i{ font-size:2rem; color:var(--aix-red); margin-bottom:1rem; display:block; }
.value-card h3{ font-size:1.3rem; color:var(--aix-navy); margin-bottom:.55rem; }
.value-card p{ font-size:.94rem; margin:0; }

/* Team --------------------------------------------------------------------- */
.team-card{
  background:#fff;
  border:1px solid var(--aix-line);
  border-radius:3px;
  overflow:hidden;
  height:100%;
  transition:all .38s var(--ease);
}
.team-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-lg); border-color:transparent; }
.team-media{ position:relative; }
.team-media img{ aspect-ratio:1/1; object-fit:cover; }
.team-media.img-hover img{ filter:none; }
.team-media.img-hover:hover img{ transform:scale(1.04); filter:none; }
.team-social{
  position:absolute;
  right:16px; bottom:16px;
  display:flex; flex-direction:column; gap:.4rem;
  z-index:4;
  opacity:0;
  transform:translateX(14px);
  transition:all .4s var(--ease);
}
.team-card:hover .team-social{ opacity:1; transform:translateX(0); }
.team-social a{
  width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  background:#fff;
  color:var(--aix-navy);
  border-radius:2px;
}
.team-social a:hover{ background:var(--aix-red); color:#fff; }
.team-body{ padding:22px 22px 26px; text-align:center; }
.team-body h3{ font-size:1.28rem; margin-bottom:.2rem; color:var(--aix-navy); }
.team-role{
  font-family:var(--font-mono);
  font-size:.74rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--aix-red);
  margin:0;
}

/* Sidebar (service detail) ------------------------------------------------- */
.side-box{
  background:var(--aix-mist);
  border-radius:3px;
  padding:28px 24px;
  margin-bottom:28px;
}
.side-box-title{
  font-size:1.2rem;
  color:var(--aix-navy);
  padding-bottom:.8rem;
  margin-bottom:1.1rem;
  border-bottom:2px solid var(--aix-line);
  position:relative;
}
.side-box-title::after{
  content:"";
  position:absolute; left:0; bottom:-2px;
  width:46px; height:2px; background:var(--aix-red);
}
.side-nav{ list-style:none; padding:0; margin:0; }
.side-nav li{ margin-bottom:.45rem; }
.side-nav a{
  display:flex; align-items:center; justify-content:space-between;
  background:#fff;
  border:1px solid var(--aix-line);
  padding:.8rem 1rem;
  font-weight:500;
  font-size:.92rem;
  color:var(--aix-navy);
  border-radius:2px;
  transition:all .3s var(--ease);
}
.side-nav a:hover,.side-nav a.is-active{
  background:var(--aix-navy);
  border-color:var(--aix-navy);
  color:#fff;
}
.side-nav a.is-active i,.side-nav a:hover i{ color:#fff; }
.side-nav i{ color:var(--aix-red); }

.side-cta{
  background:var(--aix-navy);
  background-image:linear-gradient(160deg, var(--aix-navy) 0%, var(--aix-navy-deep) 100%);
  color:#fff;
  padding:34px 26px;
  border-radius:3px;
  text-align:center;
}
.side-cta i{ font-size:2.4rem; color:var(--aix-red); }
.side-cta h3{ color:#fff; font-size:1.35rem; margin:.9rem 0 .5rem; }
.side-cta p{ color:rgba(255,255,255,.7); font-size:.92rem; }
.side-cta .phone{
  font-family:var(--font-mono);
  font-size:1.05rem;
  color:#fff;
  display:block;
  margin-top:.6rem;
}

/* Accordion (FAQ / terms) -------------------------------------------------- */
.aix-accordion .accordion-item{
  border:1px solid var(--aix-line);
  border-radius:3px !important;
  margin-bottom:.85rem;
  overflow:hidden;
}
.aix-accordion .accordion-button{
  font-family:var(--font-display);
  text-transform:uppercase;
  font-size:1.1rem;
  font-weight:600;
  letter-spacing:.04em;
  color:var(--aix-navy);
  background:#fff;
  padding:1.05rem 1.3rem;
  box-shadow:none;
}
.aix-accordion .accordion-button:not(.collapsed){
  background:var(--aix-navy);
  color:#fff;
}
.aix-accordion .accordion-button::after{
  background-image:none;
  content:"\f4fe";                 /* bi-plus */
  font-family:"bootstrap-icons";
  font-size:1.1rem;
  line-height:1;
  color:var(--aix-red);
  transform:none;
  width:auto; height:auto;
}
.aix-accordion .accordion-button:not(.collapsed)::after{
  content:"\f2ea";                 /* bi-dash */
  color:#fff;
}
.aix-accordion .accordion-body{ padding:1.3rem; font-size:.96rem; }

/* Numbered document list (guideline / terms) ------------------------------- */
.doc-block{ margin-bottom:2.6rem; }
.doc-block h3{
  font-size:1.45rem;
  color:var(--aix-navy);
  margin-bottom:.8rem;
  display:flex; align-items:baseline; gap:.8rem;
}
.doc-block h3 span{
  font-family:var(--font-mono);
  font-size:.85rem;
  color:var(--aix-red);
  letter-spacing:.12em;
}
.doc-list{ padding-left:1.15rem; }
.doc-list li{ margin-bottom:.55rem; }

/* Tracking page ------------------------------------------------------------ */
.track-panel{
  background:#fff;
  border:1px solid var(--aix-line);
  border-radius:3px;
  box-shadow:var(--shadow-sm);
  padding:40px;
}
.track-timeline{ list-style:none; padding:0; margin:2rem 0 0; position:relative; }
.track-timeline::before{
  content:"";
  position:absolute;
  left:11px; top:8px; bottom:8px;
  width:2px;
  background:var(--aix-line);
}
.track-timeline li{
  position:relative;
  padding-left:3rem;
  padding-bottom:1.8rem;
}
.track-timeline li::before{
  content:"";
  position:absolute;
  left:4px; top:5px;
  width:16px; height:16px;
  border-radius:50%;
  background:#fff;
  border:3px solid var(--aix-line);
  z-index:2;
}
.track-timeline li.is-done::before{ border-color:var(--aix-navy); background:var(--aix-navy); }
.track-timeline li.is-current::before{ border-color:var(--aix-red); background:var(--aix-red); }
.track-timeline h4{ font-size:1.15rem; color:var(--aix-navy); margin-bottom:.15rem; }
.track-timeline .t-meta{
  font-family:var(--font-mono);
  font-size:.78rem;
  color:#8B94AE;
  letter-spacing:.08em;
}

/* Contact ------------------------------------------------------------------ */
.contact-card{
  background:#fff;
  border:1px solid var(--aix-line);
  border-radius:3px;
  padding:32px 26px;
  height:100%;
  text-align:center;
  transition:all .35s var(--ease);
}
.contact-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-md); }
.contact-icon{
  width:62px; height:62px;
  margin:0 auto 1.1rem;
  display:flex; align-items:center; justify-content:center;
  background:var(--aix-mist);
  color:var(--aix-red);
  font-size:1.5rem;
  border-radius:50%;
  transition:all .35s var(--ease);
}
.contact-card:hover .contact-icon{ background:var(--aix-red); color:#fff; }
.contact-card h3{ font-size:1.2rem; color:var(--aix-navy); margin-bottom:.5rem; }
.contact-card p,.contact-card a{ font-size:.95rem; margin:0; }

.aix-form .form-label{
  font-family:var(--font-display);
  text-transform:uppercase;
  font-size:.9rem;
  letter-spacing:.06em;
  color:var(--aix-navy);
  font-weight:600;
  margin-bottom:.4rem;
}
.aix-form .form-control,
.aix-form .form-select{
  border:1px solid var(--aix-line);
  border-radius:2px;
  padding:.75rem 1rem;
  font-size:.95rem;
  background:var(--aix-mist);
}
.aix-form .form-control:focus,
.aix-form .form-select:focus{
  border-color:var(--aix-navy);
  box-shadow:0 0 0 3px rgba(20,26,87,.1);
  background:#fff;
}

.map-frame{
  border:0;
  width:100%;
  height:440px;
  filter:grayscale(1) contrast(1.05);
  transition:filter .5s var(--ease);
}
.map-frame:hover{ filter:none; }

/* CTA band ----------------------------------------------------------------- */
.cta-band{
  background:var(--aix-navy);
  background-image:linear-gradient(115deg, var(--aix-navy-deep) 0%, var(--aix-navy-soft) 100%);
  padding:64px 0;
  position:relative;
  overflow:hidden;
}
.cta-band::after{
  content:"";
  position:absolute;
  right:-80px; top:-60px;
  width:340px; height:340px;
  border:60px solid rgba(255,255,255,.03);
  border-radius:50%;
}
.cta-title{ color:#fff; font-size:clamp(1.7rem,3vw,2.4rem); margin-bottom:.6rem; }
.cta-text{ color:rgba(255,255,255,.74); max-width:60ch; }

/* --------------------------------------------------------------------------
   14. FOOTER
   -------------------------------------------------------------------------- */
.site-footer{ background:var(--aix-navy-deep); color:rgba(255,255,255,.66); }
.footer-main{ padding:76px 0 56px; }
.footer-logo{
  height:auto;
  max-height:86px;
  background:#fff;
  padding:12px 16px;
  border-radius:3px;
  margin-bottom:1.4rem;
}
.footer-text{ font-size:.94rem; }
.footer-heading{
  color:#fff;
  font-size:1.2rem;
  margin-bottom:1.4rem;
  position:relative;
  padding-bottom:.7rem;
}
.footer-heading::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:34px; height:2px;
  background:var(--aix-red);
}
.footer-links{ list-style:none; padding:0; margin:0; }
.footer-links li{ margin-bottom:.6rem; }
.footer-links a{
  color:rgba(255,255,255,.66);
  font-size:.94rem;
  display:inline-block;
  transition:all .28s var(--ease);
}
.footer-links a:hover{ color:#fff; transform:translateX(6px); }

.footer-contact{ list-style:none; padding:0; margin:0; }
.footer-contact li{
  display:flex; gap:.8rem;
  margin-bottom:1rem;
  font-size:.94rem;
}
.footer-contact i{ color:var(--aix-red); margin-top:.35rem; }
.footer-contact a{ color:rgba(255,255,255,.66); }
.footer-contact a:hover{ color:#fff; }

.footer-social{ display:flex; gap:.6rem; }
.footer-social a{
  width:40px; height:40px;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.07);
  color:#fff;
  border-radius:2px;
  transition:all .3s var(--ease);
}
.footer-social a:hover{ background:var(--aix-red); transform:translateY(-3px); }

.footer-bottom{
  border-top:1px solid rgba(255,255,255,.09);
  padding:20px 0;
  font-size:.86rem;
}
.footer-tagline{
  font-family:var(--font-mono);
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:.74rem;
  color:var(--aix-red);
}

/* Back to top -------------------------------------------------------------- */
.back-to-top{
  position:fixed;
  right:24px; bottom:24px;
  width:46px; height:46px;
  display:flex; align-items:center; justify-content:center;
  background:var(--aix-red);
  color:#fff;
  border-radius:2px;
  z-index:1040;
  opacity:0;
  visibility:hidden;
  transform:translateY(14px);
  transition:all .35s var(--ease);
}
.back-to-top.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover{ background:var(--aix-navy); color:#fff; }

/* Scroll reveal ------------------------------------------------------------ */
.reveal{
  opacity:0;
  transform:translateY(30px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal.is-in{ opacity:1; transform:none; }

/* --------------------------------------------------------------------------
   15. RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width:1199.98px){
  .hero-dots{ padding-left:2.2rem; }
}

@media (max-width:991.98px){
  .section{ padding:68px 0; }
  .main-nav{ padding:.7rem 0; }
  .navbar-collapse{
    background:#fff;
    margin-top:.8rem;
    padding:.6rem 0 1.2rem;
    border-top:1px solid var(--aix-line);
    max-height:78vh;
    overflow-y:auto;
  }
  .main-nav .nav-link{ padding:.7rem .2rem !important; }
  .main-nav .nav-link::before{ left:.2rem; right:auto; width:26px; }
  .main-nav .dropdown-menu{
    border:0;
    border-left:2px solid var(--aix-red);
    box-shadow:none;
    margin:0 0 .5rem .6rem;
    padding:.2rem 0;
    background:var(--aix-mist);
  }
  .hero .carousel-item{ height:auto; min-height:560px; }
  .hero-caption{
    position:relative;
    top:auto; left:auto;
    transform:none;
    padding-top:120px;
    padding-bottom:150px;
  }
  .hero-arrow{ display:none; }
  .hero-dots{ bottom:8%; }
  .intro-media{ padding-right:0; margin-bottom:1rem; }
  .stat-row{ margin-top:52px; padding-top:40px; }
  .track-panel{ padding:28px; }
}

@media (max-width:767.98px){
  .section{ padding:56px 0; }
  .section-head{ margin-bottom:38px; }
  .track-strip{ margin-top:-46px; }
  .track-card{ padding:26px 22px; }
  .track-form{ flex-direction:column; }
  .track-form .btn{ width:100%; }
  .intro-badge{ left:0; top:12px; padding:14px 16px; }
  .intro-badge-num{ font-size:2.2rem; }
  .page-hero{ padding:84px 0 64px; }
  .route-item{ padding:0 1.4rem; font-size:.82rem; }
  .cta-band{ padding:48px 0; }
  .cta-band .text-lg-end{ text-align:left !important; }
  .footer-main{ padding:56px 0 40px; }
  .back-to-top{ right:14px; bottom:14px; }
}

@media (max-width:575.98px){
  .hero-title{ font-size:2.2rem; }
  .hero-actions .btn{ width:100%; }
  .hero-caption{ padding-top:96px; padding-bottom:130px; }
}

/* Accessibility: honour reduced-motion preferences ------------------------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  .reveal{ opacity:1; transform:none; }
}

/* Print -------------------------------------------------------------------- */
@media print{
  .site-header,.site-footer,.back-to-top,.cta-band,.hero{ display:none !important; }
  body{ color:#000; }
}
