/* ==========================================================================
   T&TJets International — Design Tokens
   Palette:  ink #0E1B22 (runway night) · ink-2 #16262F (panel)
             red #C0142F (Navajo red, from mark) · red-deep #7E0C1F
             grey #8F9296 (fuselage grey, from mark) · paper #F1F2EF (cloud)
             orange #E2611F (rescue orange — medevac accent only)
             gold #E8B93B (taxiway line — hairline accent only)
   Type:     Oswald (display / placard) · Inter (body) · IBM Plex Mono (data/ident)
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Inter:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --ink:#0E1B22;
  --ink-2:#16262F;
  --ink-3:#1E323C;
  --paper:#F1F2EF;
  --paper-dim:#E4E6E0;
  --red:#C0142F;
  --red-deep:#7E0C1F;
  --red-bright:#DA2E44;
  --grey:#8F9296;
  --grey-line:#3A4A52;
  --orange:#E2611F;
  --gold:#E8B93B;
  --ink-text:#101B21;
  --white:#FBFBF9;

  --display: 'Oswald', 'Arial Narrow', sans-serif;
  --body: 'Inter', -apple-system, Segoe UI, sans-serif;
  --mono: 'IBM Plex Mono', 'Consolas', monospace;

  --max: 1260px;
  --edge: clamp(20px, 5vw, 64px);
  --radius: 3px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink-text);
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0; font-family:var(--display); font-weight:600; letter-spacing:0.01em; }
p{ margin:0; }
button{ font-family:inherit; cursor:pointer; }

:focus-visible{
  outline:2px solid var(--red-bright);
  outline-offset:3px;
}

.container{
  max-width:var(--max);
  margin-inline:auto;
  padding-inline:var(--edge);
}

/* ---------- Ident / placard eyebrow ---------- */
.eyebrow{
  font-family:var(--mono);
  font-size:12.5px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--grey);
}
.eyebrow::before{
  content:"";
  width:7px; height:7px;
  background:var(--red);
  transform:rotate(45deg);
  flex:none;
}
.eyebrow.on-light{ color:#5B6A6F; }

/* ---------- Runway centerline divider ---------- */
.centerline{
  height:2px;
  width:100%;
  background-image:repeating-linear-gradient(90deg, var(--gold) 0 22px, transparent 22px 40px);
  opacity:0.55;
}
.centerline.dark{
  background-image:repeating-linear-gradient(90deg, var(--grey) 0 22px, transparent 22px 40px);
  opacity:0.35;
}

/* ---------- Buttons ---------- */
.btn{
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding:15px 26px;
  border-radius:var(--radius);
  display:inline-flex;
  align-items:center;
  gap:10px;
  border:1px solid transparent;
  transition:transform .15s ease, background .2s ease, color .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-1px); }
.btn-primary{
  background:var(--red);
  color:var(--white);
}
.btn-primary:hover{ background:var(--red-bright); }
.btn-ghost-dark{
  border-color:rgba(255,255,255,0.35);
  color:var(--white);
  background:transparent;
}
.btn-ghost-dark:hover{ border-color:#fff; background:rgba(255,255,255,0.08); }
.btn-ghost-light{
  border-color:rgba(16,27,33,0.3);
  color:var(--ink-text);
  background:transparent;
}
.btn-ghost-light:hover{ border-color:var(--ink-text); background:rgba(16,27,33,0.05); }
.btn-arrow{ font-size:15px; transition:transform .2s ease; }
.btn:hover .btn-arrow{ transform:translateX(3px); }

/* ---------- Pre-launch notice banner (remove this block + its HTML when live) ---------- */
.dev-banner{
  background:var(--ink-2);
  border-bottom:1px solid rgba(232,185,59,0.35);
  color:#D6DBDC;
  padding:12px var(--edge);
  text-align:center;
  font-size:14px;
  line-height:1.5;
}
.dev-banner .db-tag{
  color:var(--gold); font-family:var(--mono); text-transform:uppercase;
  letter-spacing:0.1em; font-size:11.5px; margin-right:10px;
}
.dev-banner a{ color:var(--red-bright); text-decoration:underline; text-underline-offset:2px; }
.dev-banner a:hover{ color:#fff; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--ink);
  border-bottom:1px solid rgba(255,255,255,0.08);
  transform:translate3d(0,0,0); -webkit-transform:translate3d(0,0,0);
  isolation:isolate;
}
/* Two rows: logo + buttons on top, the page tabs in a bar underneath. */
.site-header .container{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap;
  padding-inline:clamp(20px, 4vw, 48px);
  max-width:1360px;
}
.site-header .brand,
.site-header .header-cta{ min-height:84px; }
html{ scroll-padding-top:150px; }
.brand{ display:flex; align-items:center; gap:14px; }
/* The logo PNG has a wide transparent margin around the artwork, so the box is
   cropped to the artwork itself (1276x810 of the 1536x1024 image). --logo-h is the
   visible logo height; everything else scales from it. */
.brand-mark{
  --logo-h:68px;
  position:relative; overflow:hidden; flex:none;
  height:var(--logo-h); width:calc(var(--logo-h) * 1.5753);
}
.brand-mark img{
  position:absolute; max-width:none;
  width:calc(var(--logo-h) * 1.8963); height:calc(var(--logo-h) * 1.2642);
  left:calc(var(--logo-h) * -0.1704); top:calc(var(--logo-h) * -0.1543);
}
.footer-brand .brand-mark{ --logo-h:40px; } /* footer logo keeps its previous size */
.brand-word{ display:flex; flex-direction:column; line-height:1.05; }
.brand-word .t1{
  font-family:var(--display); color:var(--white);
  font-size:21px; letter-spacing:0.04em; font-weight:600;
}
.brand-word .t2{
  font-family:var(--mono); color:var(--grey);
  font-size:10.5px; letter-spacing:0.14em; margin-top:3px;
}

/* The tab bar: its own full-width row under the logo and buttons. */
.main-nav{
  order:2; flex:0 0 100%;
  display:flex; align-items:center; justify-content:center;
  border-top:1px solid rgba(255,255,255,0.08);
}
.main-nav > ul{ display:flex; justify-content:center; gap:40px; }
.main-nav > ul > li{ position:relative; }
.main-nav a{
  display:block;
  font-family:var(--mono); font-size:13px; letter-spacing:0.1em;
  text-transform:uppercase; color:#C7CDD0;
  position:relative; padding:14px 0 13px;
}
.main-nav a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:2px;
  background:var(--red); transition:right .2s ease;
}
.main-nav a[aria-current]::after{ right:0; }
.main-nav a[aria-current]{ color:#fff; }
@media (hover:hover){
  .main-nav a:hover{ color:#fff; }
  .main-nav a:hover::after{ right:0; }
}

/* Travel Info has a small drop-down (Baggage). Tap/click on touch devices goes straight
   to the Travel Info page, which lists the same options. */
.main-nav .chev{
  width:9px; height:9px; margin-left:6px; vertical-align:1px;
  fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;
  opacity:0.7; transition:transform .2s ease;
}
.main-nav .has-sub:hover .chev,
.main-nav .has-sub:focus-within .chev{ transform:rotate(180deg); }
.main-nav .subnav{
  display:none; position:absolute; top:100%; left:50%; transform:translateX(-50%);
  min-width:270px; padding:6px 0; z-index:30;
  background:var(--ink-2);
  border:1px solid rgba(255,255,255,0.1); border-top:2px solid var(--red);
  box-shadow:0 20px 36px rgba(0,0,0,0.45);
}
.main-nav .has-sub:hover > .subnav,
.main-nav .has-sub:focus-within > .subnav{ display:block; }
.main-nav .subnav a{
  padding:13px 22px; font-size:12.5px; white-space:nowrap;
}
.main-nav .subnav a::after{ display:none; }
.main-nav .subnav a:hover{ background:rgba(255,255,255,0.05); }

.header-cta{ display:flex; align-items:center; gap:14px; flex:none; }
.header-email{
  font-family:var(--mono); font-size:12px; color:var(--grey);
  letter-spacing:0.03em;
}
.header-email:hover{ color:#fff; }

.header-whatsapp{
  display:inline-flex; align-items:center; gap:9px; flex:none;
  padding:14px 20px; border-radius:var(--radius);
  background:#25D366; color:#fff;
  font-family:var(--mono); font-size:13px; letter-spacing:0.1em; text-transform:uppercase;
  transition:transform .15s ease, background .2s ease;
}
.header-whatsapp:hover{ background:#1ebd5a; transform:translateY(-1px); }
.header-whatsapp svg{ width:18px; height:18px; display:block; flex:none; }
@media (max-width:1100px){
  .header-whatsapp{ padding:12px; }
  .header-whatsapp .wa-label{ display:none; }
}
@media (max-width:1000px){
  .header-email{ display:none; }
}
@media (max-width:760px){
  .brand-word .t2{ display:none; }
}

.nav-toggle{
  display:none; background:none; border:1px solid rgba(255,255,255,0.3);
  width:44px; height:40px; border-radius:3px; position:relative; flex:none;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; position:absolute; left:11px; right:11px; height:2px; background:#fff;
}
.nav-toggle span{ top:19px; }
.nav-toggle span::before{ top:-7px; }
.nav-toggle span::after{ top:7px; }

/* Phones only: there isn't room for a tab bar, so the tabs fold into the menu button. */
@media (max-width: 680px){
  html{ scroll-padding-top:100px; }
  .site-header .container{ height:82px; flex-wrap:nowrap; }
  .site-header .brand,
  .site-header .header-cta{ min-height:0; }
  .brand-mark{ --logo-h:44px; }
  .brand-word .t1{ font-size:17px; }
  .header-cta .btn-primary{ display:none; }
  .nav-toggle{ display:block; }
  .main-nav{ order:0; flex:none; border-top:none; display:block; justify-content:flex-start; }
  .main-nav > ul > li{ position:static; }
  .main-nav > ul{ display:none; }
  .site-header.nav-open .main-nav > ul{
    display:flex; flex-direction:column; gap:0;
    position:absolute; top:82px; left:0; right:0; z-index:20;
    background:var(--ink-2); opacity:1;
    border-bottom:1px solid rgba(255,255,255,0.1);
    box-shadow:0 16px 32px rgba(0,0,0,0.45);
    max-height:calc(100vh - 82px); overflow-y:auto;
  }
  .site-header.nav-open .main-nav a{
    padding:18px var(--edge); border-bottom:1px solid rgba(255,255,255,0.06);
    width:100%; background:var(--ink-2);
  }
  /* In the phone menu the Baggage option simply sits indented under Travel Info. */
  .main-nav .chev{ display:none; }
  .main-nav .subnav{
    display:block; position:static; transform:none; min-width:0; padding:0;
    border:0; box-shadow:none; background:transparent;
  }
  .site-header.nav-open .main-nav .subnav a{
    padding:15px var(--edge) 15px calc(var(--edge) + 18px);
    font-size:12px; color:#AEB7BA; white-space:normal;
  }
  .nav-backdrop{
    display:none; position:fixed; inset:0 0 0 0; top:82px; z-index:10;
    background:rgba(5,10,14,0.55);
  }
  .site-header.nav-open .nav-backdrop{ display:block; }
}

/* ---------- Ident strip (stat bar) ---------- */
.ident-strip{
  background:var(--ink); border-top:1px solid rgba(255,255,255,0.06);
}
.ident-strip .container{
  /* One thin line at every width. Cells size to their label and share the
     spare width equally; on very narrow screens the line scrolls sideways. */
  display:flex; flex-wrap:nowrap; gap:0;
  overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch;
}
.ident-strip .container::-webkit-scrollbar{ display:none; }
.ident-strip .container.has-more{
  -webkit-mask-image:linear-gradient(90deg, #000 86%, transparent);
  mask-image:linear-gradient(90deg, #000 86%, transparent);
}
.ident-strip .item{
  flex:1 0 auto;
  display:flex; align-items:center; justify-content:center; text-align:center;
  padding:15px clamp(10px, 1.8vw, 24px);
  border-left:1px solid rgba(255,255,255,0.1);
  transition:background-color 160ms ease;
}
.ident-strip .item:first-child{ border-left:none; }
.ident-strip .item:hover{ background:rgba(255,255,255,0.04); }
.ident-strip .item:hover .num{ color:var(--red-bright); }
.ident-strip .num{
  font-family:var(--display); color:var(--white);
  font-size:clamp(14px, 1.7vw, 21px); font-weight:600;
  letter-spacing:0.02em; white-space:nowrap; transition:color 160ms ease;
}
@media (max-width:700px){
  .ident-strip .item{ padding:14px 16px; }
  .ident-strip .num{ font-size:16px; }
}

/* ---------- Section rhythm ---------- */
.section{ padding:96px 0; }
.section-tight{ padding:64px 0; }
.section.on-ink{ background:var(--ink); color:var(--white); }
.section.on-ink2{ background:var(--ink-2); color:var(--white); }
.section.on-paper{ background:var(--paper); }
.section-head{ max-width:640px; margin-bottom:56px; }
.section-head h2{
  font-size:clamp(30px,4vw,46px); margin-top:16px; line-height:1.08;
}
.section.on-ink .section-head h2, .section.on-ink2 .section-head h2{ color:var(--white); }
.section-head p{
  margin-top:18px; color:#4B585C; font-size:17px; max-width:52ch;
}
.section.on-ink .section-head p, .section.on-ink2 .section-head p{ color:#AAB4B7; }

/* ---------- Footer ---------- */
.site-footer{ background:#0A1318; color:#8B9498; padding:64px 0 28px; }
.footer-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px;
  padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,0.08);
}
.footer-brand .brand{ margin-bottom:16px; }
.footer-brand p{ font-size:14px; line-height:1.7; max-width:34ch; color:#7C8589; }
.footer-brand address{
  font-style:normal; font-family:var(--mono); font-size:12px; letter-spacing:0.02em;
  line-height:1.7; color:#5C6669; margin-top:16px;
}
.footer-col h4{
  font-family:var(--mono); font-size:11.5px; letter-spacing:0.14em;
  text-transform:uppercase; color:#5C6669; margin-bottom:16px;
}
.footer-col ul{ display:flex; flex-direction:column; gap:11px; }
.footer-col a{ font-size:14px; color:#AEB6B8; }
.footer-col a:hover{ color:#fff; }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center;
  padding-top:24px; font-family:var(--mono); font-size:11.5px; letter-spacing:0.04em;
  color:#5C6669; flex-wrap:wrap; gap:12px;
}
.footer-bottom .portal-link{ color:#7D8A8E; border:1px solid #2A3A42; border-radius:3px; padding:4px 10px; transition:color .2s ease, border-color .2s ease; }
.footer-bottom .portal-link:hover{ color:#fff; border-color:var(--red); }
@media (max-width:820px){
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .footer-grid{ grid-template-columns:1fr; }
}

/* ---------- Utility ---------- */
.visually-hidden{
  position:absolute; width:1px; height:1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap;
}

/* ==========================================================================
   Hero (interior pages — image band with placard)
   ========================================================================== */
.page-hero{
  position:relative; background:var(--ink); color:var(--white);
  padding:120px 0 64px; overflow:hidden;
}
.page-hero .container{ position:relative; z-index:2; }
.page-hero img.hero-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0.42; z-index:1;
}
.page-hero::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(14,27,34,0.55) 0%, var(--ink) 96%);
  z-index:1;
}
.page-hero h1{
  font-size:clamp(36px,5.4vw,64px); margin-top:18px; max-width:16ch; line-height:1.04;
}
.page-hero .lede{ margin-top:20px; max-width:56ch; color:#B7C0C3; font-size:17.5px; }

/* ==========================================================================
   Home — Hero
   ========================================================================== */
.hero{
  position:relative; min-height:min(76vh, 660px); display:flex; align-items:flex-end;
  isolation:isolate;
  background:var(--ink); overflow:hidden; color:var(--white);
}
/* The still photo sits behind the videos, so if a clip is slow, missing or fails to
   play the hero shows the photo instead of a blank dark stage. */
.hero .hero-media{ position:absolute; inset:0; background:var(--ink); }
.hero .hero-media::before{
  content:""; position:absolute; inset:0; z-index:1;
  background:url("../assets/img/hero-navajo.jpg") 60% 40% / cover no-repeat;
}
.hero .hero-media video{
  position:absolute; inset:0; background:transparent;
  width:100%; height:100%; object-fit:cover; object-position:60% 40%;
  display:block; opacity:0; z-index:0; transition:opacity 1000ms ease;
}
/* Outgoing clip stays fully opaque underneath while the incoming one fades in on top. */
.hero .hero-media video.is-leaving{ opacity:1; z-index:1; transition:none; }
.hero .hero-media video.is-active{ opacity:1; z-index:2; }
.hero .hero-scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(100deg, rgba(3,6,9,0.95) 0%, rgba(3,6,9,0.88) 38%, rgba(3,6,9,0.62) 62%, rgba(3,6,9,0.22) 80%),
    linear-gradient(180deg, rgba(6,12,16,0.85) 0%, rgba(6,12,16,0.62) 34%, rgba(6,12,16,0.7) 68%, rgba(4,8,11,0.97) 100%);
}
.hero .container{ position:relative; z-index:2; padding-bottom:64px; padding-top:24px; width:100%; }
.hero-watermark{
  position:absolute; z-index:2;
  right:clamp(20px,4vw,56px); bottom:clamp(20px,4vw,56px);
  width:min(13vw, 150px); aspect-ratio:1/1;
  padding:14px; box-sizing:border-box;
  background:rgba(6,12,16,0.55);
  border:1px solid rgba(255,255,255,0.12);
  border-radius:10px;
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  pointer-events:none;
  box-shadow:0 8px 26px rgba(0,0,0,0.45);
}
.hero-watermark img{ width:100%; height:100%; object-fit:contain; }
@media (max-width:860px){ .hero-watermark{ display:none; } }
.hero-eyebrow{ color:#E4E8E9; margin-bottom:22px; text-shadow:0 2px 4px rgba(0,0,0,0.9), 0 0 18px rgba(0,0,0,0.7); }
.hero h1{
  font-size:clamp(40px,6.4vw,84px); line-height:0.98; max-width:15ch;
  text-transform:uppercase;
  text-shadow:0 2px 6px rgba(0,0,0,0.95), 0 6px 28px rgba(0,0,0,0.75);
}
.hero h1 em{ font-style:normal; color:var(--red-bright); }
.hero .lede{
  margin-top:26px; font-size:18px; max-width:50ch; color:#F0F2F2; line-height:1.65;
  text-shadow:0 2px 5px rgba(0,0,0,0.95), 0 4px 18px rgba(0,0,0,0.7);
}
.hero .hero-actions{ margin-top:38px; display:flex; gap:16px; flex-wrap:wrap; }

/* ==========================================================================
   Services grid
   ========================================================================== */
.services-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:rgba(16,27,33,0.08); border:1px solid rgba(16,27,33,0.1);
}
.service-card{
  background:var(--paper); padding:36px 28px; display:flex; flex-direction:column;
  min-height:300px; transition:background .2s ease;
}
.service-card:hover{ background:#fff; }
.service-card .svc-index{
  font-family:var(--mono); font-size:12px; color:var(--red); letter-spacing:0.1em;
}
.service-card .svc-icon{ margin:22px 0 20px; color:var(--ink-text); }
.service-card h3{
  font-size:21px; line-height:1.2; margin-bottom:12px; text-transform:uppercase;
  letter-spacing:0.01em;
}
.service-card p{ font-size:14.5px; color:#54626657; color:#4B585C; line-height:1.65; flex:1; }
.service-card .svc-link{
  margin-top:20px; font-family:var(--mono); font-size:12px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--red); display:inline-flex; align-items:center; gap:8px;
}
.service-card .svc-link .btn-arrow{ transition:transform .2s ease; }
.service-card:hover .svc-link .btn-arrow{ transform:translateX(3px); }

@media (max-width:980px){ .services-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .services-grid{ grid-template-columns:1fr; } }

/* ==========================================================================
   Fleet cards
   ========================================================================== */
.fleet-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media (max-width:980px){ .fleet-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:680px){ .fleet-grid{ grid-template-columns:1fr; } }

.fleet-card{
  background:var(--ink-2); border:1px solid rgba(255,255,255,0.08); overflow:hidden;
  display:flex; flex-direction:column;
}
.fleet-card .fc-media{ aspect-ratio:4/3; overflow:hidden; position:relative; }
.fleet-card .fc-media img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.fleet-card:hover .fc-media img{ transform:scale(1.05); }
.fleet-card .fc-tag{
  position:absolute; top:14px; left:14px; background:var(--red); color:#fff;
  font-family:var(--mono); font-size:10.5px; letter-spacing:0.12em; text-transform:uppercase;
  padding:6px 10px;
}
.fleet-card .fc-body{ padding:26px 26px 28px; flex:1; display:flex; flex-direction:column; }
.fleet-card h3{ color:#fff; font-size:23px; text-transform:uppercase; }
.fleet-card .fc-role{
  font-family:var(--mono); font-size:11.5px; letter-spacing:0.1em; color:var(--grey);
  text-transform:uppercase; margin-top:6px;
}
.fleet-card p.fc-desc{ margin-top:16px; color:#AEB7BA; font-size:14.5px; line-height:1.65; flex:1; }
.fleet-card .fc-specs{
  display:grid; grid-template-columns:1fr 1fr; gap:10px 14px; margin-top:20px;
  padding-top:18px; border-top:1px solid rgba(255,255,255,0.08);
}
.fleet-card .fc-specs div span{ display:block; }
.fleet-card .fc-specs .k{
  font-family:var(--mono); font-size:10px; letter-spacing:0.1em; color:#6E7A7D; text-transform:uppercase;
}
.fleet-card .fc-specs .v{ font-size:14px; color:#E7EAEA; margin-top:3px; font-weight:500; }
.fleet-card .fc-link{
  margin-top:22px; font-family:var(--mono); font-size:12px; letter-spacing:0.08em;
  text-transform:uppercase; color:#fff; display:inline-flex; align-items:center; gap:8px;
}

/* ==========================================================================
   Medevac spotlight band
   ========================================================================== */
.spotlight{
  display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:0;
}
.spotlight .sp-media{ position:relative; aspect-ratio:4/3; }
.spotlight .sp-media img{ width:100%; height:100%; object-fit:cover; }
.spotlight .sp-copy{ padding:0 clamp(24px,6vw,88px); }
.spotlight .sp-copy h2{ font-size:clamp(28px,3.6vw,42px); margin-top:16px; color:#fff; }
.spotlight .sp-copy p{ margin-top:18px; color:#AEB7BA; font-size:16.5px; max-width:48ch; }
.spotlight .sp-list{ margin-top:26px; display:flex; flex-direction:column; gap:12px; }
.spotlight .sp-list li{
  display:flex; gap:12px; font-size:14.5px; color:#D6DBDC; align-items:flex-start;
}
.spotlight .sp-list li::before{
  content:""; width:8px; height:8px; margin-top:6px; background:var(--orange); flex:none;
  transform:rotate(45deg);
}
.spotlight .sp-actions{ margin-top:32px; }
@media (max-width:860px){
  .spotlight{ grid-template-columns:1fr; }
  .spotlight .sp-copy{ padding:56px clamp(20px,5vw,64px) 0; }
}

/* ==========================================================================
   CTA band
   ========================================================================== */
.cta-band{
  background:linear-gradient(120deg, var(--red-deep), var(--red) 70%);
  color:#fff; padding:80px 0; text-align:left;
}
.cta-band .container{ display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.cta-band h2{ font-size:clamp(28px,4vw,44px); max-width:14ch; line-height:1.06; }
.cta-band p{ margin-top:14px; color:#FBD9DD; max-width:44ch; font-size:16px; }
.cta-band .cta-actions{ display:flex; gap:16px; flex-wrap:wrap; }
.cta-band .btn-ghost-dark{ border-color:rgba(255,255,255,0.55); }
.cta-band .btn-ghost-dark:hover{ background:rgba(255,255,255,0.14); }

/* ==========================================================================
   Generic content blocks (about / services detail)
   ========================================================================== */
.split{
  display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
}
@media (max-width:860px){ .split{ grid-template-columns:1fr; gap:36px; } }
.split img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; }
.split .body p + p{ margin-top:16px; }
.split .body p{ color:#3D4A4E; font-size:16.5px; line-height:1.75; }
.split.on-ink .body p{ color:#AEB7BA; }
.split.on-ink h2, .split.on-ink h3{ color:#fff; }

.stack{ display:flex; flex-direction:column; gap:20px; }

.value-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:56px; }
@media (max-width:820px){ .value-grid{ grid-template-columns:1fr; } }
.value-card .vc-num{ font-family:var(--mono); color:var(--red); font-size:12px; letter-spacing:0.1em; }
.value-card h3{ margin-top:16px; font-size:20px; text-transform:uppercase; }
.value-card p{ margin-top:12px; color:#4B585C; font-size:15px; line-height:1.7; }

.gallery-strip{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
@media (max-width:820px){ .gallery-strip{ grid-template-columns:1fr 1fr; } }
.gallery-strip img{ aspect-ratio:1/1; object-fit:cover; }
.gallery-strip figure{ margin:0; overflow:hidden; position:relative; }
.gallery-strip img{ transition:transform .4s ease; }
.gallery-strip figure:hover img{ transform:scale(1.06); }
.gallery-strip video{
  width:100%; aspect-ratio:1/1; object-fit:cover; display:block;
  transition:transform .4s ease;
}
.gallery-strip figure:hover video{ transform:scale(1.06); }
.gallery-strip figure.has-video::after{
  content:"▶ VIDEO";
  position:absolute; top:10px; left:10px;
  font-family:var(--mono); font-size:10px; letter-spacing:0.1em;
  color:#fff; background:rgba(14,27,34,0.65);
  padding:5px 9px; pointer-events:none;
}

/* ---------- Aircraft spec sheet (placard-style, replaces boxed card in split layouts) ---------- */
.spec-sheet{
  margin-top:28px; max-width:440px;
  background:#fff;
  border:1px solid rgba(16,27,33,0.12);
  border-top:3px solid var(--red);
}
.spec-sheet .spec-row{
  display:flex; align-items:baseline; justify-content:space-between; gap:20px;
  padding:15px 22px; border-top:1px solid rgba(16,27,33,0.08);
}
.spec-sheet .spec-row:first-child{ border-top:none; }
.spec-sheet dt{
  font-family:var(--mono); font-size:11px; letter-spacing:0.12em;
  text-transform:uppercase; color:#6E7A7D; margin:0; flex:none;
}
.spec-sheet dd{
  margin:0; font-family:var(--body); font-weight:700; font-size:15.5px;
  color:var(--ink-text); text-align:right;
}
.spec-sheet.on-ink{
  background:var(--ink-2); border-color:rgba(255,255,255,0.1);
}
.spec-sheet.on-ink .spec-row{ border-top-color:rgba(255,255,255,0.08); }
.spec-sheet.on-ink dt{ color:var(--grey); }
.spec-sheet.on-ink dd{ color:#fff; }

/* Service detail rows */
.svc-row{
  display:grid; grid-template-columns:64px 1fr; gap:28px; padding:44px 0;
  border-top:1px solid rgba(16,27,33,0.1);
}
.svc-row:last-child{ border-bottom:1px solid rgba(16,27,33,0.1); }
.svc-row .sr-num{ font-family:var(--mono); font-size:14px; color:var(--red); padding-top:6px; }
.svc-row h3{ font-size:26px; text-transform:uppercase; }
.svc-row .sr-tag{
  font-family:var(--mono); font-size:11px; letter-spacing:0.12em; color:#6E7A7D;
  text-transform:uppercase; margin-top:8px; display:block;
}
.svc-row p{ margin-top:16px; color:#3D4A4E; font-size:16px; line-height:1.75; max-width:68ch; }
.svc-row ul{ margin-top:18px; display:flex; flex-direction:column; gap:10px; }
.svc-row ul li{ display:flex; gap:10px; font-size:15px; color:#3D4A4E; }
.svc-row ul li::before{ content:"—"; color:var(--red); flex:none; }

/* ==========================================================================
   Contact page
   ========================================================================== */
.contact-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:64px; }
@media (max-width:920px){ .contact-grid{ grid-template-columns:1fr; gap:48px; } }

.contact-card{
  background:var(--ink-2); border:1px solid rgba(255,255,255,0.08); padding:36px;
}
.contact-card h3{ color:#fff; font-size:20px; text-transform:uppercase; }
.contact-card p{ color:#AEB7BA; margin-top:12px; font-size:15px; line-height:1.7; }
.contact-card .email-link{
  display:inline-flex; margin-top:20px; font-family:var(--mono); font-size:15px;
  color:#fff; border-bottom:1px solid var(--red); padding-bottom:3px;
}
.contact-card .email-link:hover{ color:var(--red-bright); }
.contact-card .email-link.whatsapp-link{ display:flex; margin-top:14px; }

.contact-meta{ margin-top:28px; display:flex; flex-direction:column; gap:18px; }
.contact-meta .cm-row{ display:flex; gap:14px; }
.contact-meta .cm-k{
  font-family:var(--mono); font-size:11px; letter-spacing:0.1em; color:#6E7A7D;
  text-transform:uppercase; width:120px; flex:none; padding-top:2px;
}
.contact-meta .cm-v{ color:#D6DBDC; font-size:14.5px; line-height:1.6; }

.form-field{ margin-bottom:22px; }
.form-field label{
  display:block; font-family:var(--mono); font-size:11.5px; letter-spacing:0.1em;
  text-transform:uppercase; color:#5C6669; margin-bottom:9px;
}
.form-field input, .form-field select, .form-field textarea{
  width:100%; background:#fff; border:1px solid rgba(16,27,33,0.18);
  padding:13px 14px; font-family:var(--body); font-size:15px; color:var(--ink-text);
  border-radius:2px;
}
.form-field textarea{ min-height:130px; resize:vertical; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:2px solid var(--red); outline-offset:1px; border-color:var(--red);
}
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-row.cols-3{ grid-template-columns:1fr 1fr 1fr; }
@media (max-width:760px){ .form-row.cols-3{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .form-row{ grid-template-columns:1fr; } }
.form-note{ margin-top:6px; font-size:12.5px; color:#6E7A7D; }
.form-status{ margin-top:16px; font-size:14px; font-family:var(--mono); }
.form-status[data-state="ok"]{ color:#1B7A3E; }


/* ==========================================================================
   Travel info · Baggage & restricted items
   ========================================================================== */
[hidden]{ display:none !important; }
.page-hero .hero-actions{ margin-top:30px; display:flex; gap:14px; flex-wrap:wrap; position:relative; z-index:2; }
.section.on-ink .section-head p{ color:#AEB7BA; }

.ico{
  width:1em; height:1em; flex:none;
  fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;
}
.ico-badge{
  width:52px; height:52px; border-radius:50%; flex:none;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--ink); color:#fff;
}
.ico-badge .ico{ width:26px; height:26px; }
.ico-badge.dark{ background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.2); }

/* --- key rules --- */
.rule-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(250px, 1fr)); gap:20px; }
.rule-card{
  background:#fff; border:1px solid rgba(16,27,33,0.1); border-top:3px solid var(--red);
  border-radius:4px; padding:26px 24px 28px;
}
.rule-card h3{ margin-top:18px; font-size:21px; letter-spacing:0.03em; text-transform:uppercase; }
.rule-card p{ margin-top:10px; color:#3D4A4E; font-size:15px; line-height:1.7; }

/* --- search / filter toolbar --- */
.list-section .cat{ scroll-margin-top:235px; }
.bag-tools{
  position:sticky; top:142px; z-index:20;
  display:flex; gap:12px; flex-wrap:wrap; align-items:center;
  background:#fff; border:1px solid rgba(16,27,33,0.12); border-radius:6px; padding:12px;
  box-shadow:0 10px 26px rgba(16,27,33,0.1);
}
.finder{ flex:1 1 280px; position:relative; display:flex; align-items:center; margin:0; }
.finder .ico{ position:absolute; left:14px; width:18px; height:18px; color:#6E7A7D; pointer-events:none; }
.finder input{
  width:100%; padding:13px 14px 13px 42px; font:15px var(--body); color:var(--ink-text);
  background:#F6F7F4; border:1px solid rgba(16,27,33,0.18); border-radius:4px;
}
.finder input:focus{ outline:2px solid var(--red-bright); outline-offset:1px; background:#fff; }
.seg{ display:flex; flex-wrap:wrap; gap:6px; }
.seg button{
  font:600 11.5px var(--mono); letter-spacing:0.06em; text-transform:uppercase;
  padding:11px 13px; color:#2B3A40; background:#fff;
  border:1px solid rgba(16,27,33,0.18); border-radius:4px;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.seg button:hover{ border-color:var(--ink); }
.seg button.is-on{ background:var(--ink); color:#fff; border-color:var(--ink); }
.bag-meta{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px 20px; margin:18px 2px 6px; }
.count{ font:12.5px var(--mono); letter-spacing:0.08em; text-transform:uppercase; color:#5B6A6F; }
.legend{ display:flex; gap:8px; flex-wrap:wrap; }
.chip-nav{ display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 34px; }
.chip-nav a{
  padding:9px 14px; background:#fff; color:#2B3A40;
  border:1px solid rgba(16,27,33,0.18); border-radius:999px;
  font:500 12px var(--mono); letter-spacing:0.04em;
  transition:border-color .15s ease, color .15s ease;
}
.chip-nav a:hover{ border-color:var(--red); color:var(--red); }

/* --- yes / no pills --- */
.pill{
  display:inline-flex; align-items:center; gap:7px;
  padding:6px 12px; border-radius:999px;
  font:600 11.5px/1.25 var(--mono); letter-spacing:0.06em; text-transform:uppercase; white-space:nowrap;
}
.pill::before{ font-size:12px; line-height:1; font-weight:700; }
.pill.yes{ background:#E2F3E8; color:#13693A; }
.pill.yes::before{ content:"\2713"; }
.pill.no{ background:#FBE4E7; color:#A10F28; }
.pill.no::before{ content:"\2715"; }
.pill.limit{ background:#FFF1CC; color:#7D5200; white-space:normal; align-items:flex-start; text-align:left; }
.pill.limit::before{ content:"\2713"; }

/* --- category cards --- */
.cat{
  background:#fff; border:1px solid rgba(16,27,33,0.12); border-radius:6px;
  overflow:hidden; margin-bottom:26px;
}
.cat-head{
  display:flex; align-items:center; gap:16px; padding:18px 24px; color:#fff;
  background:linear-gradient(95deg, var(--ink) 0%, var(--ink-3) 100%);
}
.cat-ico{
  width:44px; height:44px; flex:none; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,0.28);
}
.cat-ico .ico{ width:22px; height:22px; }
.cat-head h3{ flex:1; font-size:clamp(17px, 2.1vw, 22px); line-height:1.2; text-transform:uppercase; letter-spacing:0.04em; }
.cat-count{ font:12px var(--mono); letter-spacing:0.1em; text-transform:uppercase; color:#AEB7BA; white-space:nowrap; }
.cols, .item-row{
  display:grid; grid-template-columns:minmax(0, 1fr) 200px 200px; column-gap:14px; padding-inline:24px;
}
.cols{
  padding-block:10px; background:#F3F4F1;
  font:600 11px var(--mono); letter-spacing:0.12em; text-transform:uppercase; color:#5B6A6F;
}
.item-row{ padding-block:14px; align-items:center; border-top:1px solid rgba(16,27,33,0.08); }
.item-row:hover{ background:#FAFBF9; }
.item-row .name{ font-weight:600; font-size:15.5px; line-height:1.4; color:var(--ink-text); }
.item-row .sub{ display:block; margin-top:3px; font-weight:400; font-size:14px; line-height:1.6; color:#4B585C; }
.note{
  margin:0; padding:15px 24px; line-height:1.7; font-size:14.5px;
  background:#FFF4F5; color:#7E0C1F;
  border-top:1px solid rgba(160,15,40,0.15); border-left:4px solid var(--red);
}
.note strong{ color:#A10F28; }
.note.info{ background:#EEF4F8; color:#1F4A66; border-top-color:rgba(46,106,148,0.18); border-left-color:#2E6A94; }
.note.info strong{ color:#1F4A66; }
.note.alert{
  display:flex; align-items:center; gap:12px;
  padding:16px 24px; background:var(--red); color:#fff;
  border-top:0; border-left:4px solid var(--red-deep); font-size:15.5px;
}
.note.alert::before{
  content:"!"; flex:none; width:26px; height:26px; border-radius:50%;
  display:grid; place-items:center; background:#fff; color:var(--red);
  font:700 16px/1 var(--body);
}
.note.alert strong{ color:#fff; }
.empty{ text-align:center; padding:44px 16px; font:14px var(--mono); letter-spacing:0.04em; color:#5B6A6F; }

/* --- the 3-1-1 liquids rule --- */
.rule-311{
  padding:28px 24px 30px; color:#fff;
  background:radial-gradient(120% 140% at 0% 0%, #18397a 0%, #0c1f47 60%, #091735 100%);
  border-top:1px solid rgba(16,27,33,0.12);
}
.r311-top{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-bottom:22px; }
.r311-nums{ display:flex; gap:12px; }
.r311-nums span{
  width:62px; height:62px; border-radius:50%; display:grid; place-items:center;
  font:500 38px/1 var(--display); color:#fff;
  background:radial-gradient(circle at 35% 30%, #e63a32, #b3111b);
  border:3px solid #fff; box-shadow:0 4px 14px rgba(0,0,0,0.35);
}
.r311-title{ font:400 clamp(26px, 3.4vw, 40px)/1 var(--body); letter-spacing:0.01em; }
.r311-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:16px; }
.r311-card{ display:flex; flex-direction:column; background:#fff; color:var(--ink-text); border-radius:4px; padding:20px 20px 0; overflow:hidden; }
.r311-card h4{ font:400 20px/1.35 var(--body); letter-spacing:0; }
.r311-card h4 strong{ font-weight:700; }
.r311-card p{ margin-top:8px; font-size:14px; color:#4B585C; line-height:1.55; }
.r311-card img{
  margin:16px -20px 0; width:calc(100% + 40px); max-width:none; height:auto;
  aspect-ratio:4 / 3; object-fit:cover; margin-top:auto;
}
.r311-card p{ margin-bottom:16px; }
.liquid-list{ padding:22px 24px 26px; border-top:1px solid rgba(16,27,33,0.1); background:#FAFBF9; }
.liquid-list h4{ font:700 14px var(--body); letter-spacing:0.02em; }
.chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.chips li{ padding:8px 13px; background:#fff; border:1px solid rgba(16,27,33,0.14); border-radius:999px; font-size:14px; color:#2B3A40; }

/* --- lithium batteries --- */
.batt-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:22px; align-items:stretch; }
.batt{ display:flex; flex-direction:column; background:#fff; color:var(--ink-text); border-radius:6px; overflow:hidden; border-top:4px solid var(--red); }
.batt-body{ flex:1; }
.batt-head{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:20px 24px; background:#F3F4F1; }
.batt-head .rating{ font:600 32px/1 var(--display); letter-spacing:0.01em; }
.batt-head .rating-sub{ font:12px var(--mono); letter-spacing:0.08em; text-transform:uppercase; color:#5B6A6F; text-align:right; }
.batt-body{ padding:20px 24px 24px; }
.batt-body > p{ font-size:15px; line-height:1.7; color:#3D4A4E; }
.pictos{ display:flex; flex-wrap:wrap; gap:18px 14px; margin:20px 0 22px; }
.pictos figure{ margin:0; width:88px; text-align:center; }
.pictos img{
  width:88px; height:88px; object-fit:cover; border-radius:50%;
  border:3px solid #E4E6E0; background:#F3F4F1;
}
.pictos figcaption{ margin-top:8px; font:500 11.5px/1.3 var(--body); color:#3D4A4E; }
.brules{ border:1px solid rgba(16,27,33,0.12); border-radius:4px; overflow:hidden; }
.bhead{ display:none; }
.brow{ display:grid; grid-template-columns:1fr 1fr; gap:10px 12px; padding:14px; border-top:1px solid rgba(16,27,33,0.08); }
.brow:first-of-type{ border-top:0; }
.brow .cfg{ grid-column:1 / -1; font-weight:700; font-size:14px; text-transform:uppercase; letter-spacing:0.04em; color:var(--ink-text); }
.brow .cell::before{
  content:attr(data-label); display:block; margin-bottom:6px;
  font:600 10.5px var(--mono); letter-spacing:0.1em; text-transform:uppercase; color:#6E7A7D;
}
.item-row .cell::before{
  content:attr(data-label); display:none; margin-bottom:6px;
  font:600 10.5px var(--mono); letter-spacing:0.1em; text-transform:uppercase; color:#6E7A7D;
}
.pnote{ display:block; margin-top:6px; font-size:12.5px; line-height:1.4; color:#4B585C; }
.batt.forbid{ border-top-color:var(--red-deep); }
.batt.forbid .batt-head{ background:#FBE4E7; }
.forbid-box{ padding:16px 18px; background:#FFF4F5; color:#7E0C1F; border-left:4px solid var(--red); }
.forbid-box strong{ display:block; font:600 18px var(--display); letter-spacing:0.06em; text-transform:uppercase; color:#A10F28; }
.forbid-box p{ margin-top:8px; font-size:14.5px; line-height:1.65; }

.source-note{
  margin-top:34px; padding-top:20px; max-width:80ch;
  border-top:1px solid rgba(255,255,255,0.12);
  font-size:13.5px; line-height:1.7; color:#8F9A9F;
}

/* --- travel info landing --- */
.tv-card{
  display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 6fr);
  background:#fff; border:1px solid rgba(16,27,33,0.12); border-radius:6px; overflow:hidden;
  transition:box-shadow .2s ease, transform .2s ease;
}
.tv-card:hover{ box-shadow:0 18px 40px rgba(16,27,33,0.14); transform:translateY(-2px); }
.tv-media{ position:relative; min-height:300px; }
.tv-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tv-tag{
  position:absolute; top:16px; left:16px; padding:7px 12px; border-radius:2px;
  background:var(--red); color:#fff; font:600 11px var(--mono); letter-spacing:0.14em; text-transform:uppercase;
}
.tv-body{ display:flex; flex-direction:column; align-items:flex-start; padding:34px 36px 36px; }
.tv-body h3{ margin-top:12px; font-size:clamp(26px, 3vw, 36px); }
.tv-body > p{ margin-top:14px; max-width:56ch; line-height:1.75; color:#3D4A4E; }
.tv-points{ display:grid; gap:9px; margin:18px 0 26px; }
.tv-points li{ position:relative; padding-left:22px; font-size:15px; color:#2B3A40; }
.tv-points li::before{ content:""; position:absolute; left:0; top:0.55em; width:8px; height:8px; background:var(--red); transform:rotate(45deg); }
.quick-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:18px; }
.quick{
  display:flex; flex-direction:column; padding:26px 24px; color:#fff;
  background:var(--ink-2); border:1px solid rgba(255,255,255,0.08); border-radius:6px;
  transition:border-color .2s ease, transform .2s ease, background .2s ease;
}
.quick:hover{ border-color:var(--red); transform:translateY(-2px); background:var(--ink-3); }
.quick h3{ margin-top:18px; font-size:20px; text-transform:uppercase; letter-spacing:0.04em; }
.quick p{ flex:1; margin-top:10px; font-size:15px; line-height:1.7; color:#AEB7BA; }
.quick .more{ margin-top:18px; font:12px var(--mono); letter-spacing:0.1em; text-transform:uppercase; color:var(--red-bright); }

@media (max-width:860px){
  .tv-card{ grid-template-columns:1fr; }
  .tv-media{ min-height:220px; }
}
@media (max-width:720px){
  .cols{ display:none; }
  .item-row{ grid-template-columns:1fr 1fr; padding-inline:18px; row-gap:12px; }
  .item-row .name{ grid-column:1 / -1; }
  .item-row .cell::before{ display:block; }
  .cat-head{ padding:16px 18px; }
  .note{ padding:14px 18px; }
  .tv-body{ padding:26px 22px 28px; }
}
@media (max-width:680px){
  .bag-tools{ position:static; box-shadow:none; }
  .list-section .cat{ scroll-margin-top:100px; }
  .seg{ display:grid; grid-template-columns:1fr 1fr; width:100%; }
  .seg button{ padding:12px 8px; }
}
