/* =========================================================
   HORN AIR — design tokens
   ========================================================= */
:root{
  --navy:        #0B2A4A;
  --sky:         #2E9BF0;
  --sky-deep:    #1C7DD1;
  --sky-light:   #EAF6FF;
  --white:       #FFFFFF;
  --amber:       #F4A93B;
  --text:        #14293D;
  --text-muted:  #5B7186;
  --border:      #D9E8F5;

  --font-display: 'Sora', sans-serif;
  --font-body:    'Inter', sans-serif;

  --radius: 14px;
  --shadow-sm: 0 2px 10px rgba(11,42,74,.06);
  --shadow-md: 0 12px 32px rgba(11,42,74,.10);
  --max: 1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text);
  background:var(--white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{ font-family:var(--font-display); color:var(--navy); margin:0 0 .5em; line-height:1.15; }
p{ margin:0 0 1em; color:var(--text-muted); }
a{ color:inherit; text-decoration:none; }
img,svg{ display:block; max-width:100%; }
ul{ margin:0; padding:0; list-style:none; }

.skip-link{
  position:absolute; left:-999px; top:0; background:var(--navy); color:var(--white);
  padding:.75em 1em; z-index:200; border-radius:0 0 8px 0;
}
.skip-link:focus{ left:0; }

:focus-visible{ outline:3px solid var(--amber); outline-offset:2px; }

.eyebrow{
  font-family:var(--font-display);
  font-size:.8rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:var(--sky-deep); margin-bottom:.6em;
}

.section-inner{ max-width:var(--max); margin:0 auto; padding:5rem 1.5rem; }

/* =========================================================
   BUTTONS
   ========================================================= */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:600; font-size:.95rem;
  padding:.7em 1.3em; border-radius:999px; border:2px solid transparent;
  cursor:pointer; transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-1px); }
.btn-primary{ background:var(--sky); color:var(--white); box-shadow:var(--shadow-sm); }
.btn-primary:hover{ background:var(--sky-deep); box-shadow:var(--shadow-md); }
.btn-ghost{ background:transparent; color:var(--navy); border-color:var(--border); }
.btn-ghost:hover{ border-color:var(--sky); color:var(--sky-deep); }
.btn-lg{ padding:.85em 1.7em; font-size:1rem; }
.btn[disabled]{ opacity:.6; cursor:not-allowed; transform:none; }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(255,255,255,.85); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.header-inner{
  max-width:var(--max); margin:0 auto; padding:.9rem 1.5rem;
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.brand{ display:flex; align-items:center; gap:.6rem; color:var(--navy); }
.brand-mark{ color:var(--sky); display:flex; }
.brand-text{ display:flex; flex-direction:column; line-height:1.1; }
.brand-name{ font-family:var(--font-display); font-weight:800; letter-spacing:.04em; font-size:1.05rem; }
.brand-sub{ font-size:.7rem; color:var(--text-muted); letter-spacing:.03em; }

.main-nav{ display:flex; gap:2rem; transition:max-height .35s ease, opacity .3s ease, padding .35s ease; }
.main-nav a{
  font-family:var(--font-display); font-weight:600; font-size:.92rem; color:var(--navy);
  position:relative; padding:.3em 0;
}
.main-nav a::after{
  content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--sky);
  transition:width .2s ease;
}
.main-nav a:hover::after{ width:100%; }

.header-actions{ display:flex; align-items:center; gap:1rem; }
.nav-toggle{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; border:1px solid var(--border); border-radius:8px;
  background:var(--white); cursor:pointer;
}
.nav-toggle span{ height:2px; background:var(--navy); border-radius:2px; transition:transform .25s ease, opacity .2s ease; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* =========================================================
   HERO
   ========================================================= */
.hero{ background:linear-gradient(180deg, var(--sky-light) 0%, var(--white) 78%); overflow:hidden; }
.hero-inner{
  max-width:var(--max); margin:0 auto; padding:5rem 1.5rem 4rem;
  display:grid; grid-template-columns:1.05fr .95fr; gap:3rem; align-items:center;
}
.hero h1{ font-size:clamp(2.2rem, 4.2vw, 3.4rem); letter-spacing:-.01em; }
.hero h1 .hl{ color:var(--sky-deep); }
.hero-lead{ font-size:1.08rem; max-width:46ch; }
.hero-ctas{ display:flex; gap:1rem; flex-wrap:wrap; margin:1.6rem 0 2.4rem; }

.hero-stats{ display:flex; gap:2.2rem; flex-wrap:wrap; margin:0; }
.hero-stats dt{ font-size:.78rem; color:var(--text-muted); margin-bottom:.2em; }
.hero-stats dd{ margin:0; font-family:var(--font-display); font-weight:700; color:var(--navy); font-size:1.15rem; }

.hero-visual{ position:relative; }
.route-map{ width:100%; height:auto; }
.landmass{ fill:var(--sky-light); stroke:var(--sky); stroke-width:1.5; }
.city{ fill:var(--navy); }
.route-line{
  fill:none; stroke:var(--sky-deep); stroke-width:2; stroke-dasharray:6 6;
  animation:dash 3s linear infinite;
}
.plane-icon{ color:var(--amber); }
.visual-caption{
  text-align:center; font-size:.8rem; color:var(--text-muted); margin-top:.5rem;
}
@keyframes dash{ to{ stroke-dashoffset:-24; } }

/* =========================================================
   SERVICES
   ========================================================= */
.services{ background:var(--white); }
.services h2, .network h2, .about h2, .contact h2{ font-size:clamp(1.7rem, 3vw, 2.3rem); }

.service-grid{
  display:grid; grid-template-columns:repeat(3, 1fr); gap:1.6rem; margin-top:2.4rem;
}
.service-card{
  background:var(--white); border:1px solid var(--border); border-radius:var(--radius);
  padding:2rem; box-shadow:var(--shadow-sm);
  opacity:0; transform:translateY(16px);
  transition:opacity .6s ease, transform .6s ease, box-shadow .2s ease, border-color .2s ease;
}
.service-card.in-view{ opacity:1; transform:translateY(0); }
.service-card:hover{ box-shadow:var(--shadow-md); border-color:var(--sky); }
.service-icon{
  width:52px; height:52px; border-radius:12px; background:var(--sky-light); color:var(--sky-deep);
  display:flex; align-items:center; justify-content:center; margin-bottom:1.2rem;
}
.service-icon svg{ width:26px; height:26px; }
.service-card h3{ font-size:1.2rem; }
.card-link{
  display:inline-block; margin-top:.6rem; font-family:var(--font-display); font-weight:600;
  color:var(--sky-deep); font-size:.9rem;
}
.card-link:hover{ text-decoration:underline; }

/* =========================================================
   NETWORK
   ========================================================= */
.network{ background:var(--sky-light); }
.network-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:3rem; align-items:center; }
.feature-list{ margin-top:1.4rem; display:flex; flex-direction:column; gap:.9rem; }
.feature-list li{ padding-left:1.4rem; position:relative; color:var(--text-muted); }
.feature-list li::before{
  content:''; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:50%;
  background:var(--sky);
}
.feature-list strong{ color:var(--navy); }

.network-panel{
  background:var(--white); border:1px solid var(--border); border-radius:var(--radius);
  padding:1.4rem; box-shadow:var(--shadow-sm);
}
.panel-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:.75rem .3rem; font-family:var(--font-display); font-weight:600; color:var(--navy);
  border-bottom:1px solid var(--border); font-size:.92rem;
}
.panel-row:last-child{ border-bottom:none; }
.panel-row .dot{ width:8px; height:8px; border-radius:50%; background:var(--amber); }

/* =========================================================
   ABOUT
   ========================================================= */
.about-inner{ max-width:760px; text-align:left; }
.about p{ font-size:1.05rem; }

/* =========================================================
   CONTACT
   ========================================================= */
.contact{ background:var(--navy); }
.contact .eyebrow{ color:var(--amber); }
.contact h2{ color:var(--white); }
.contact-copy p{ color:#B9CAD9; }
.contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:3rem; }

.contact-details{ margin-top:1.6rem; display:flex; flex-direction:column; gap:1rem; }
.contact-details li{ display:flex; flex-direction:column; gap:.15rem; }
.contact-details strong{ color:var(--sky); font-family:var(--font-display); font-size:.8rem; letter-spacing:.04em; text-transform:uppercase; }
.contact-details span{ color:var(--white); }

.contact-form{
  background:var(--white); border-radius:var(--radius); padding:2rem; box-shadow:var(--shadow-md);
}
.form-row{ margin-bottom:1.1rem; display:flex; flex-direction:column; }
.form-row-split{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:0; }
.form-row-split > div{ display:flex; flex-direction:column; margin-bottom:1.1rem; }
label{ font-family:var(--font-display); font-weight:600; font-size:.85rem; color:var(--navy); margin-bottom:.4rem; }
input, select, textarea{
  font-family:var(--font-body); font-size:.95rem; color:var(--text);
  padding:.7em .85em; border:1.5px solid var(--border); border-radius:9px; background:var(--white);
  transition:border-color .15s ease, box-shadow .15s ease;
}
input:focus, select:focus, textarea:focus{
  border-color:var(--sky); box-shadow:0 0 0 3px rgba(46,155,240,.15); outline:none;
}
textarea{ resize:vertical; }
.field-error{ color:#D64545; font-size:.78rem; min-height:1.1em; margin-top:.3rem; }

.contact-form .btn{ width:100%; margin-top:.4rem; }
.form-status{ margin:.8rem 0 0; font-size:.9rem; min-height:1.2em; }
.form-status.success{ color:#1E8E5A; }
.form-status.error{ color:#D64545; }

/* =========================================================
   INTERNAL PAGES — hero band, subnav, service detail sections
   ========================================================= */
.main-nav a.active{ color:var(--sky-deep); }
.main-nav a.active::after{ width:100%; }

.page-hero{
  background:linear-gradient(180deg, var(--sky-light) 0%, var(--white) 100%);
  padding-bottom:1rem;
  position:relative; overflow:hidden;
}
.page-hero .section-inner{ position:relative; z-index:1; }
.page-hero .section-inner{ padding-bottom:2.5rem; max-width:820px; }
.page-hero h1{ font-size:clamp(2rem, 3.6vw, 2.8rem); letter-spacing:-.01em; }
.page-hero-lead{ font-size:1.05rem; max-width:60ch; }

.subnav{
  display:flex; flex-wrap:wrap; gap:.6rem;
  max-width:var(--max); margin:0 auto; padding:0 1.5rem 2.5rem;
}
.subnav a{
  font-family:var(--font-display); font-weight:600; font-size:.85rem;
  padding:.55em 1.1em; border-radius:999px; border:1.5px solid var(--border);
  color:var(--navy); background:var(--white); transition:border-color .15s ease, color .15s ease;
}
.subnav a:hover{ border-color:var(--sky); color:var(--sky-deep); }

.service-section{ background:var(--white); }
.service-section-alt{ background:var(--sky-light); position:relative; overflow:hidden; }
.service-section-alt .section-inner{ position:relative; z-index:1; }
.section-lead{ max-width:64ch; font-size:1.02rem; }

.service-grid-4{ grid-template-columns:repeat(4, 1fr); }

.detail-grid{
  display:grid; grid-template-columns:repeat(2, 1fr); gap:1.4rem; margin-top:2.2rem;
}
.detail-grid-2{ grid-template-columns:repeat(2, 1fr); }
.detail-card{
  background:var(--white); border:1px solid var(--border); border-radius:var(--radius);
  padding:1.6rem; box-shadow:var(--shadow-sm);
}
.service-section-alt .detail-card{ background:var(--white); }
.detail-card-highlight{ border-color:var(--sky); background:var(--sky-light); }
.detail-card h3{ font-size:1.05rem; display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.detail-card p{ font-size:.95rem; margin-bottom:0; }

.tag{
  font-family:var(--font-display); font-size:.65rem; font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; padding:.2em .6em; border-radius:999px;
  background:var(--sky); color:var(--white);
}
.tag-vip{ background:var(--amber); }

.route-list{ margin-top:.9rem; display:flex; flex-direction:column; gap:.5rem; }
.route-list li{
  display:flex; align-items:center; gap:.6rem; font-size:.9rem; font-family:var(--font-display);
  font-weight:600; color:var(--navy); background:var(--white); border:1px solid var(--border);
  border-radius:8px; padding:.5em .8em;
}
.route-arrow{ color:var(--sky-deep); font-weight:400; }

.triad{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.4rem; margin-top:2.4rem; }
.triad-item{
  border-left:3px solid var(--sky); padding-left:1rem;
}
.triad-item h4{ font-family:var(--font-display); color:var(--navy); margin-bottom:.35em; font-size:1rem; }
.triad-item p{ font-size:.9rem; margin-bottom:0; }

.about-body{ max-width:900px; }

.contact-cta{ padding:0; }
.contact-cta-inner{
  display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;
}
.contact-cta-inner p{ color:#B9CAD9; margin-bottom:0; }
.contact-cta-inner h2{ color:var(--white); }

.brand-mark{ width:56px; height:56px; border-radius:8px; overflow:hidden; flex-shrink:0; }
.brand-mark img{ width:100%; height:100%; object-fit:contain; }

/* =========================================================
   FLEET PAGE
   ========================================================= */
.fleet-grid{ display:flex; flex-direction:column; gap:2.4rem; }
.fleet-card{
  display:grid; grid-template-columns:1fr 1fr; gap:2.4rem; align-items:center;
  background:var(--white); border:1px solid var(--border); border-radius:var(--radius);
  padding:1.6rem; box-shadow:var(--shadow-sm);
  opacity:0; transform:translateY(16px);
  transition:opacity .6s ease, transform .6s ease;
}
.fleet-card.in-view{ opacity:1; transform:translateY(0); }
.fleet-card-reverse .fleet-media{ order:2; }
.fleet-media{
  border-radius:10px; overflow:hidden; background:var(--sky-light);
  aspect-ratio:4/3; display:flex; align-items:center; justify-content:center;
}
.fleet-media img{ width:100%; height:100%; object-fit:cover; }
.fleet-body h2{ font-size:1.5rem; margin-bottom:.3em; }
.fleet-specs{ margin-top:1.2rem; display:flex; flex-direction:column; gap:.5rem; }
.fleet-specs li{
  display:flex; justify-content:space-between; gap:1rem; font-size:.88rem;
  border-top:1px solid var(--border); padding-top:.5rem;
}
.fleet-specs li span:first-child{ font-family:var(--font-display); font-weight:600; color:var(--navy); }
.fleet-specs li span:last-child{ color:var(--text-muted); text-align:right; }

.fleet-teaser-grid{
  display:grid; grid-template-columns:repeat(4, 1fr); gap:1.2rem; margin-top:2rem;
}
.fleet-teaser-card{
  display:flex; flex-direction:column; border-radius:var(--radius); overflow:hidden;
  background:var(--white); border:1px solid var(--border); box-shadow:var(--shadow-sm);
  transition:box-shadow .2s ease, border-color .2s ease;
}
.fleet-teaser-card:hover{ box-shadow:var(--shadow-md); border-color:var(--sky); }
.fleet-teaser-card img{ width:100%; aspect-ratio:4/3; object-fit:cover; }
.fleet-teaser-card span{
  font-family:var(--font-display); font-weight:600; font-size:.85rem; color:var(--navy);
  padding:.8rem;
}

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--navy); border-top:1px solid rgba(255,255,255,.08); position:relative; overflow:hidden; }
.footer-inner{ padding:2.4rem 1.5rem; text-align:center; color:#8FA6BC; }
.footer-brand{ display:flex; flex-direction:column; align-items:center; color:var(--white); margin-bottom:.6rem; }
.footer-brand .brand-name{ font-family:var(--font-display); font-weight:800; letter-spacing:.06em; }
.footer-note{ font-size:.85rem; margin-bottom:.4rem; }
.footer-copy{ font-size:.78rem; margin:0; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 900px){
  .hero-inner, .network-grid, .contact-grid{ grid-template-columns:1fr; }
  .hero-visual{ order:-1; max-width:360px; margin:0 auto; }
  .service-grid, .service-grid-4, .detail-grid, .detail-grid-2, .triad{ grid-template-columns:1fr; }
  .fleet-card, .fleet-card-reverse{ grid-template-columns:1fr; }
  .fleet-card-reverse .fleet-media{ order:0; }
  .fleet-teaser-grid{ grid-template-columns:repeat(2, 1fr); }
  .main-nav{
    position:absolute; top:100%; left:0; right:0; background:var(--white);
    flex-direction:column; padding:0 1.5rem; border-bottom:1px solid var(--border);
    display:flex; max-height:0; opacity:0; overflow:hidden; padding-top:0; padding-bottom:0;
  }
  .main-nav.open{ max-height:320px; opacity:1; padding-top:1rem; padding-bottom:1rem; }
  .nav-toggle{ display:flex; }
  .header-actions .btn-primary{ display:none; }
  .form-row-split{ grid-template-columns:1fr; }
  .contact-cta-inner{ flex-direction:column; align-items:flex-start; }
  .triad-item{ border-left:none; border-top:3px solid var(--sky); padding-left:0; padding-top:.8rem; }
}

@media (max-width: 700px){
  .service-grid-4{ grid-template-columns:1fr; }
  .fleet-teaser-grid{ grid-template-columns:1fr; }
}
@media (min-width: 701px) and (max-width: 1000px){
  .service-grid-4{ grid-template-columns:repeat(2, 1fr); }
}

/* =========================================================
   ENHANCEMENTS — entrance transitions & decorative graphics
   (additive only: no layout, color, spacing or markup changes)
   ========================================================= */

/* ---- page load ---- */
@keyframes pageFadeIn{ from{ opacity:0; } to{ opacity:1; } }
body{ animation:pageFadeIn .5s ease; }

/* ---- hero entrance (home) ---- */
@keyframes fadeInUp{ from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:translateY(0); } }
@keyframes fadeInScale{ from{ opacity:0; transform:scale(.94); } to{ opacity:1; transform:scale(1); } }

.hero-copy > *{ animation:fadeInUp .7s ease both; }
.hero-copy > *:nth-child(1){ animation-delay:.05s; }
.hero-copy > *:nth-child(2){ animation-delay:.15s; }
.hero-copy > *:nth-child(3){ animation-delay:.25s; }
.hero-copy > *:nth-child(4){ animation-delay:.35s; }
.hero-copy > *:nth-child(5){ animation-delay:.45s; }
.hero-visual{ animation:fadeInScale .9s ease .25s both; }

/* ---- hero route-map dots: gentle pulse ---- */
@keyframes pulseDot{ 0%,100%{ r:4; opacity:1; } 50%{ r:5.5; opacity:.55; } }
.route-dots circle{ animation:pulseDot 2.6s ease-in-out infinite; }
.route-dots circle:nth-child(1){ animation-delay:0s; }
.route-dots circle:nth-child(2){ animation-delay:.3s; }
.route-dots circle:nth-child(3){ animation-delay:.6s; }
.route-dots circle:nth-child(4){ animation-delay:.9s; }
.route-dots circle:nth-child(5){ animation-delay:1.2s; }

/* ---- internal page hero: staggered entrance ---- */
.page-hero .section-inner > *{ animation:fadeInUp .6s ease both; }
.page-hero .section-inner > *:nth-child(1){ animation-delay:.05s; }
.page-hero .section-inner > *:nth-child(2){ animation-delay:.15s; }
.page-hero .section-inner > *:nth-child(3){ animation-delay:.25s; }
.subnav{ animation:fadeInUp .6s ease .3s both; }

/* ---- decorative graphic: faint orbit + waypoint behind every page-hero ---- */
.page-hero::before{
  content:'';
  position:absolute; top:-90px; right:-110px; width:440px; height:440px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='440' height='440'%3E%3Ccircle cx='220' cy='220' r='170' fill='none' stroke='%232E9BF0' stroke-width='1.5' stroke-dasharray='5 11' opacity='0.35'/%3E%3Ccircle cx='220' cy='50' r='4' fill='%23F4A93B' opacity='0.7'/%3E%3Ccircle cx='372' cy='300' r='3' fill='%231C7DD1' opacity='0.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; pointer-events:none; z-index:0;
  animation:spinSlow 90s linear infinite;
}
@keyframes spinSlow{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }

/* ---- decorative graphic: small plane trail drifting across internal hero bands ---- */
.page-hero::after{
  content:'';
  position:absolute; top:38px; left:-40px; width:34px; height:34px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M2 15.5l7-2 5-8 2 .4-3 8 7-1 2.5 2-8.5 3-3 6-2-.4 1-6-7 2z' fill='%232E9BF0'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-size:contain;
  opacity:0; pointer-events:none; z-index:0;
  animation:flyAcross 16s linear infinite;
}
@keyframes flyAcross{
  0%{ transform:translate(0,0); opacity:0; }
  8%{ opacity:.4; }
  50%{ transform:translate(60vw,-14px); opacity:.4; }
  92%{ opacity:.4; }
  100%{ transform:translate(110vw,-22px); opacity:0; }
}

/* ---- decorative graphic: faint dotted texture on alternate service sections ---- */
.service-section-alt::before{
  content:''; position:absolute; inset:0;
  background-image:repeating-linear-gradient(135deg, rgba(46,155,240,.07) 0px, rgba(46,155,240,.07) 2px, transparent 2px, transparent 26px);
  pointer-events:none; z-index:0; opacity:.6;
}

/* ---- decorative graphic: dotted skyline rule along footer top edge ---- */
.site-footer::before{
  content:''; position:absolute; top:0; left:0; right:0; height:2px;
  background-image:repeating-linear-gradient(90deg, var(--sky) 0 10px, transparent 10px 22px);
  opacity:.45;
}

/* ---- scroll-reveal fleet cards reuse existing .reveal/.in-view pattern ---- */
.fleet-card{ transition:opacity .6s ease, transform .6s ease, box-shadow .25s ease, border-color .25s ease; }
.fleet-card:hover{ box-shadow:var(--shadow-md); border-color:var(--sky); }
.fleet-media img{ transition:transform .5s ease; }
.fleet-card:hover .fleet-media img{ transform:scale(1.05); }

.fleet-teaser-card{ transition:box-shadow .25s ease, border-color .25s ease, transform .25s ease; }
.fleet-teaser-card:hover{ transform:translateY(-3px); }
.fleet-teaser-card img{ transition:transform .5s ease; }
.fleet-teaser-card:hover img{ transform:scale(1.06); }

/* ---- hover transitions on existing elements (no structural change) ---- */
.brand-mark img{ transition:transform .3s ease; }
.brand:hover .brand-mark img{ transform:scale(1.08) rotate(-3deg); }

.service-icon{ transition:transform .3s ease, background .25s ease; }
.service-card:hover .service-icon{ transform:rotate(-6deg) scale(1.08); background:#DCF0FF; }

.detail-card{ transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.detail-card:hover{ transform:translateY(-3px); box-shadow:var(--shadow-md); border-color:var(--sky); }

.route-list li{ transition:background .2s ease, border-color .2s ease, transform .2s ease; }
.route-list li:hover{ background:var(--sky-light); border-color:var(--sky); transform:translateX(3px); }

.triad-item{ transition:transform .25s ease; }
.triad-item:hover{ transform:translateX(4px); }

.panel-row{ transition:background .2s ease; }
.panel-row:hover{ background:var(--sky-light); }
.panel-row .dot{ transition:transform .25s ease; }
.panel-row:hover .dot{ transform:scale(1.35); }

.card-link{ transition:transform .2s ease; display:inline-block; }
.card-link:hover{ transform:translateX(3px); }

.hero-stats > div{ transition:transform .2s ease; }
.hero-stats > div:hover{ transform:translateY(-2px); }

label{ transition:color .2s ease; }
.form-row:focus-within label, .form-row-split > div:focus-within label{ color:var(--sky-deep); }

.btn:active{ transform:scale(.97); }

.subnav a{ transition:border-color .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease; }
.subnav a:hover{ transform:translateY(-2px); box-shadow:var(--shadow-sm); }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}
