/* TerminalFox : base et composants communs. Les valeurs viennent de tokens.css (copie du Design System). */

/* Polices servies par le site (sous-ensemble latin, licence SIL OFL) : pas de connexion à Google Fonts qui bloque l'affichage */
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/barlow-condensed-600.965395aad327.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/barlow-condensed-700.db3da8cffd10.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Barlow Condensed"; font-style: normal; font-weight: 800; font-display: swap; src: url("../fonts/barlow-condensed-800.f0951e815d3d.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("../fonts/ibm-plex-mono-500.6708425c446b.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("../fonts/ibm-plex-mono-600.e71a597e376e.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 700; font-display: swap; src: url("../fonts/ibm-plex-mono-700.0d11e07b5aaa.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Public Sans"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("../fonts/public-sans-variable.45ac3f4b61c1.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

*, *::before, *::after { box-sizing: border-box; }
/* L'en-tête reste collé en haut : les ancres et le focus clavier s'arrêtent sous lui */
html { scroll-padding-top: 80px; }
/* overflow-wrap : une adresse web ou un e-mail trop long passe à la ligne au lieu d'élargir la page sur téléphone */
body { margin: 0; background: var(--runway); color: var(--tarmac); font-family: var(--font-sans); font-size: 16px; line-height: 1.55; overflow-wrap: break-word; }
img { max-width: 100%; height: auto; }
a { color: var(--tarmac); }
a:hover { color: var(--ember); }
:focus-visible { outline: 3px solid var(--tarmac); outline-offset: 2px; }
.on-dark :focus-visible { outline-color: var(--signal-yellow); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.container { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-8); }
.stack { display: flex; flex-direction: column; gap: var(--space-6); }

/* Logo */
/* Logo : image complète (Foxy au hublot + « terminalfox ») ; version claire du mot dans le pied de page sombre */
.logo { display: flex; flex-shrink: 0; align-items: center; text-decoration: none; }
.logo__img { display: block; width: auto; height: 56px; }

/* Boutons */
.btn { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; min-height: var(--touch-min); padding: 0 18px; border: 0; border-radius: var(--radius-control); font: 700 16px var(--font-sans); text-decoration: none; cursor: pointer; }
.btn--nav { background: var(--tarmac); color: var(--signal-yellow); }
.btn--nav:hover { background: var(--board-line); color: var(--signal-yellow); }
.btn--brand { min-height: 48px; padding: 0 22px; gap: 10px; background: var(--signal-yellow); color: var(--tarmac); }
.btn--brand:hover { color: var(--tarmac); background: #FFD55C; }

/* Chip IATA */
.chip { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: var(--radius-pill); border: var(--border-strong) solid var(--tarmac); background: var(--white); color: var(--tarmac); font: 600 15px var(--font-mono); text-decoration: none; }
.chip:hover { color: var(--tarmac); background: var(--tip-cream); }

/* SiteHeader */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--white); border-bottom: var(--border-strong) solid var(--tarmac); }
.site-header__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding-top: 12px; padding-bottom: 12px; }
.site-nav { display: flex; gap: 28px; align-items: center; }
.site-nav a, .site-menu__nav a { display: inline-flex; align-items: center; min-height: var(--touch-min); text-decoration: none; font-weight: 600; white-space: nowrap; }
.site-header__tools { display: flex; align-items: center; gap: 12px; }
/* Bouton de l'outil TSA, cœur du produit : toujours visible, même sur mobile */
.site-nav__tsa { display: inline-flex; align-items: center; gap: 8px; min-height: var(--touch-min); padding: 0 16px; border: var(--border-strong) solid var(--tarmac); border-radius: var(--radius-pill); background: var(--signal-yellow); color: var(--tarmac); font-weight: 800; font-size: 15px; text-decoration: none; white-space: nowrap; box-shadow: 0 3px 0 var(--tarmac); }
.site-nav__tsa:hover { background: #FFD55C; color: var(--tarmac); }
.icon-btn { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: var(--radius-control); background: transparent; cursor: pointer; }
.icon-btn:hover { background: var(--runway); }

/* Sélecteur de langue */
.lang { position: relative; }
.lang > summary { display: inline-flex; align-items: center; gap: 6px; min-height: var(--touch-min); padding: 0 4px; font-weight: 600; cursor: pointer; list-style: none; }
.lang > summary::-webkit-details-marker { display: none; }
.lang ul { position: absolute; top: 100%; right: 0; z-index: 10; min-width: 160px; margin: 4px 0 0; padding: 6px; list-style: none; background: var(--white); border: var(--border-strong) solid var(--tarmac); border-radius: var(--radius-control); box-shadow: var(--shadow-hard); }
.lang a { display: flex; align-items: center; min-height: var(--touch-min); padding: 0 12px; border-radius: var(--radius-badge); text-decoration: none; font-weight: 600; }
.lang a[aria-current] { background: var(--signal-yellow); color: var(--tarmac); }

/* Menu mobile (panneau ouvert par menu.js) */
.site-menu { border-top: var(--border-strong) solid var(--tarmac); background: var(--white); padding: var(--space-2) 0 var(--space-4); }
.site-menu__nav { display: flex; flex-direction: column; }

/* SiteFooter */
.site-footer { background: var(--tarmac); color: var(--runway); padding: 56px 0 32px; }
.site-footer__inner { display: flex; flex-direction: column; gap: 40px; }
.site-footer__top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 40px; }
.site-footer__brand { display: flex; flex-direction: column; gap: 14px; max-width: 320px; }
.site-footer__brand p { margin: 0; color: var(--muted-on-dark); font-size: 15px; line-height: 1.6; }
.site-footer__cols { display: flex; flex-wrap: wrap; gap: 48px; }
.site-footer__col { display: flex; flex-direction: column; gap: 10px; min-width: 160px; }
.site-footer__title { margin: 0; font: 600 13px var(--font-mono); letter-spacing: 0.12em; text-transform: uppercase; color: var(--signal-yellow); }
.site-footer__col a { color: var(--border); text-decoration: none; font-size: 15px; }
.site-footer__col a:hover { color: var(--signal-yellow); }
.site-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 24px; border-top: 1px solid var(--board-line); font-size: 14px; color: var(--muted-on-dark); }

@media (max-width: 959px) {
  .container { padding: 0 var(--space-4); }
}

/* En-tête : la navigation desktop ne tient pas en français et en espagnol sous 1120 px */
@media (max-width: 1119px) {
  html { scroll-padding-top: 72px; }
  .site-header__bar { padding-top: 10px; padding-bottom: 10px; gap: var(--space-2); }
  .site-header .logo__img { height: 44px; }
  .site-nav, .site-header__find { display: none; }
  .icon-btn { display: inline-flex; }
  .site-header__tools { gap: 4px; }
  .site-nav__tsa { min-height: 40px; padding: 0 12px; font-size: 14px; gap: 6px; }
}
/* Téléphone : logo, sélecteur de langue et bouton TSA ne tiennent pas sur une ligne (surtout en français et en espagnol).
   L'en-tête passe sur deux lignes : logo et langue en haut, bouton TSA en pleine largeur dessous ; il ne reste plus collé
   en haut, pour ne pas manger l'écran pendant la lecture. */
@media (max-width: 560px) {
  html { scroll-padding-top: 16px; }
  .site-header { position: static; }
  .site-header__bar { flex-wrap: wrap; justify-content: flex-start; row-gap: 8px; }
  .site-header .logo { margin-right: auto; }
  .site-header__tools { display: contents; }
  .site-nav__tsa { order: 3; flex: 1 1 100%; justify-content: center; }
}

@media (min-width: 1120px) {
  .site-menu { display: none; }
}
