
/* ===================================================================
   DRIVUP TRANSPORT
   Direction : Cold Luxury (argent chrome, fumée, encre)
   Theme lock : sombre unique (demande explicite du client)
   Rayons : boutons pilule / cartes et images 16px
   Accent unique : --chrome, verrouillé sur toute la page
   =================================================================== */

:root{
  /* Encres */
  --ink:        #15171B;
  --ink-2:      #1B1E23;
  --surface:    #21252B;
  --surface-2:  #2A2F37;

  /* Chrome et fumée */
  --chrome:     #F2F4F6;
  --steel:      #CBD2DA;
  --smoke:      #A8AFB9;
  --smoke-dim:  #868E99;

  /* Traits */
  --hair:       rgba(242,244,246,.12);
  --hair-2:     rgba(242,244,246,.22);

  /* Type */
  --sans: 'Geist','Outfit',system-ui,-apple-system,sans-serif;
  --mono: 'Geist Mono',ui-monospace,'SFMono-Regular',monospace;

  /* Rythme */
  --gutter: clamp(20px,5vw,64px);
  --bay:    clamp(96px,14vw,180px);
  --r:      16px;

  /* Courbes */
  --swift: cubic-bezier(.32,.72,0,1);
  --glide: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--ink);
  color:var(--chrome);
  font-family:var(--sans);
  font-weight:300;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
::selection{background:var(--chrome);color:var(--ink)}
:focus-visible{outline:2px solid var(--chrome);outline-offset:3px;border-radius:4px}

/* Grain : fixe, hors flux, jamais sur un conteneur scrollable */
.grain{
  position:fixed;inset:0;z-index:60;pointer-events:none;
  opacity:.022;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
}

.shell{width:100%;max-width:1400px;margin-inline:auto;padding-inline:var(--gutter)}

/* ===================================================================
   TYPOGRAPHIE
   =================================================================== */
.display{
  font-weight:400;
  letter-spacing:-.04em;
  line-height:1.02;
  font-size:clamp(2.6rem,6.4vw,5rem);
}
.h2{
  font-weight:400;
  letter-spacing:-.035em;
  line-height:1.06;
  font-size:clamp(2rem,4.4vw,3.4rem);
}
.lede{
  color:var(--smoke);
  font-size:clamp(1rem,1.35vw,1.12rem);
  line-height:1.72;
  max-width:52ch;
}
.tag{
  font-family:var(--mono);
  font-size:10.5px;
  font-weight:400;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--smoke-dim);
}

/* ===================================================================
   BOUTONS  (pilule, contraste vérifié, icône imbriquée)
   =================================================================== */
.act{
  position:relative;
  display:inline-flex;align-items:center;gap:.55rem;
  white-space:nowrap;
  padding:.85rem 1.05rem .85rem 1.55rem;
  border-radius:999px;
  font-size:.9rem;font-weight:400;letter-spacing:-.01em;
  transition:transform .5s var(--swift),background-color .5s var(--swift),border-color .5s var(--swift),color .5s var(--swift);
}
.act:active{transform:scale(.975)}
.act__pip{
  display:grid;place-items:center;
  width:30px;height:30px;border-radius:999px;flex:none;
  transition:transform .5s var(--swift),background-color .5s var(--swift);
}
.act__pip i{font-size:15px;line-height:1}

/* Primaire : chrome plein, texte encre. Contraste AA largement dépassé. */
.act--solid{background:var(--chrome);color:var(--ink);font-weight:500}
.act--solid .act__pip{background:rgba(21,23,27,.10)}
.act--solid:hover{background:#fff}
.act--solid:hover .act__pip{transform:translate(2px,-1px) scale(1.06);background:rgba(21,23,27,.16)}

/* Secondaire : contour, sur fond sombre uniquement */
.act--ghost{border:1px solid var(--hair-2);color:var(--chrome)}
.act--ghost .act__pip{background:rgba(242,244,246,.08)}
.act--ghost:hover{border-color:var(--steel);background:rgba(242,244,246,.05)}
.act--ghost:hover .act__pip{transform:translate(2px,-1px) scale(1.06)}

/* Sur photo : scrim intégré pour garantir la lisibilité */
.act--onphoto{
  border:1px solid rgba(242,244,246,.28);
  background:rgba(21,23,27,.42);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
.act--onphoto .act__pip{background:rgba(242,244,246,.14)}
.act--onphoto:hover{background:rgba(21,23,27,.62);border-color:rgba(242,244,246,.45)}
.act--onphoto:hover .act__pip{transform:translate(2px,-1px) scale(1.06)}

.act--sm{padding:.6rem .7rem .6rem 1.1rem;font-size:.82rem}
.act--sm .act__pip{width:25px;height:25px}
.act--sm .act__pip i{font-size:13px}

/* ===================================================================
   NAVIGATION  (îlot flottant, détaché, une seule ligne, 68px)
   =================================================================== */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:18px;pointer-events:none}
.nav__pill{
  pointer-events:auto;
  display:flex;align-items:center;justify-content:space-between;gap:28px;
  height:60px;padding:0 12px 0 24px;
  margin-inline:auto;max-width:1080px;
  border-radius:999px;
  border:1px solid transparent;
  transition:background-color .6s var(--swift),border-color .6s var(--swift),box-shadow .6s var(--swift);
}
.nav.is-lifted .nav__pill{
  background:rgba(27,30,35,.72);
  border-color:var(--hair);
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  backdrop-filter:blur(20px) saturate(150%);
  box-shadow:0 18px 50px rgba(10,11,13,.5);
}
.brand{display:flex;align-items:center;gap:.6rem;line-height:1}
.brand__mark{height:26px;width:auto;flex:none;opacity:.94;
  transition:opacity .5s var(--swift)}
.brand:hover .brand__mark{opacity:1}
.brand__txt{display:flex;align-items:baseline;gap:.45rem}
/* Signature centrale : le lockup complet ouvre le bloc de réservation */
.book__logo{width:clamp(104px,11vw,140px);height:auto;margin-bottom:clamp(28px,4vw,40px);opacity:.92}
.brand__a{font-size:16.5px;font-weight:500;letter-spacing:-.02em}
.brand__b{font-family:var(--mono);font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--smoke)}
.nav__links{display:flex;align-items:center;gap:30px}
.nav__links a{font-size:.875rem;color:var(--smoke);transition:color .4s var(--swift)}
.nav__links a:hover{color:var(--chrome)}
.nav__burger{display:none;width:42px;height:42px;place-items:center;border-radius:999px;border:1px solid var(--hair-2)}
.nav__burger span{
  display:block;width:16px;height:1.5px;background:var(--chrome);border-radius:2px;
  transition:transform .5s var(--swift),opacity .35s var(--swift);
}
.nav__burger span+span{margin-top:4.5px}
body.menu-on .nav__burger span:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.menu-on .nav__burger span:nth-child(2){opacity:0;transform:scaleX(.4)}
body.menu-on .nav__burger span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

@media(max-width:940px){
  .nav__links{display:none}
  .nav__burger{display:grid}
  .nav__cta{display:none}
}

/* Panneau plein écran */
.sheet{
  position:fixed;inset:0;z-index:45;
  display:flex;flex-direction:column;justify-content:center;gap:6px;
  padding:0 var(--gutter);
  background:rgba(21,23,27,.86);
  -webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);
  opacity:0;visibility:hidden;
  transition:opacity .6s var(--swift),visibility .6s var(--swift);
}
body.menu-on .sheet{opacity:1;visibility:visible}
.sheet a{
  font-size:clamp(2rem,8vw,3rem);font-weight:400;letter-spacing:-.04em;
  padding:.28em 0;
  opacity:0;transform:translateY(28px);
  transition:opacity .7s var(--glide),transform .7s var(--glide);
}
body.menu-on .sheet a{opacity:1;transform:none}
body.menu-on .sheet a:nth-child(1){transition-delay:.10s}
body.menu-on .sheet a:nth-child(2){transition-delay:.16s}
body.menu-on .sheet a:nth-child(3){transition-delay:.22s}
body.menu-on .sheet a:nth-child(4){transition-delay:.28s}

/* ===================================================================
   HERO  (pleine image, contenu ancré bas-gauche)
   =================================================================== */
.hero{position:relative;min-height:100dvh;display:flex;align-items:flex-end;overflow:hidden}
.hero__plate{position:absolute;inset:0;z-index:0}
.hero__plate img{transform:scale(1.08);filter:saturate(.68) contrast(1.02) brightness(.92)}
.hero__veil{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(to top,var(--ink) 2%,rgba(21,23,27,.62) 36%,rgba(21,23,27,.10) 70%,rgba(21,23,27,.42) 100%),
    radial-gradient(120% 80% at 12% 92%,rgba(21,23,27,.74),transparent 64%);
}
.hero__in{position:relative;z-index:2;width:100%;padding-bottom:clamp(56px,9vh,104px);padding-top:96px}
.hero .tag{display:flex;align-items:center;gap:.6rem;margin-bottom:22px}
/* Pavillon suisse : carré rouge et croix blanche, proportions officielles */
.flag{width:15px;height:15px;flex:none;border-radius:2px;
  box-shadow:0 0 0 1px rgba(242,244,246,.16)}
.hero__title{max-width:14ch;margin-bottom:26px}
.hero .lede{margin-bottom:36px;max-width:44ch}
.hero__acts{display:flex;flex-wrap:wrap;gap:12px}

/* Signature : balayage chrome sur le titre, une seule fois au chargement */
.sweep{
  background:linear-gradient(100deg,var(--chrome) 0 38%,#ffffff 47%,var(--steel) 56%,var(--chrome) 66% 100%);
  background-size:280% 100%;
  background-position:120% 0;
  -webkit-background-clip:text;background-clip:text;
  color:transparent;
}
@media(prefers-reduced-motion:no-preference){
  .sweep{animation:sweep 2.4s var(--glide) .35s both}
}
@keyframes sweep{from{background-position:120% 0}to{background-position:-20% 0}}

/* ===================================================================
   BANDEAU ENGAGEMENTS
   =================================================================== */
.pledge{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:var(--ink-2)}
.pledge__grid{display:grid;grid-template-columns:repeat(3,1fr)}
.pledge__cell{padding:46px 34px;border-left:1px solid var(--hair)}
.pledge__cell:first-child{border-left:0;padding-left:0}
.pledge__cell i{font-size:26px;color:var(--steel);display:block;margin-bottom:18px}
.pledge__cell h3{font-size:1.06rem;font-weight:400;letter-spacing:-.02em;margin-bottom:9px}
.pledge__cell p{color:var(--smoke);font-size:.925rem;line-height:1.68;max-width:34ch}
@media(max-width:860px){
  .pledge__grid{grid-template-columns:1fr}
  .pledge__cell{padding:32px 0;border-left:0;border-top:1px solid var(--hair)}
  .pledge__cell:first-child{border-top:0}
}

/* ===================================================================
   FLOTTE  (grille deux par deux, aucun épinglage)
   =================================================================== */
.fleet{background:var(--ink);padding-block:var(--bay)}
.fleet__head{margin-bottom:clamp(38px,5vw,62px)}
.fleet__head h2{max-width:16ch}
.fleet__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,24px)}

.card{
  border-radius:var(--r);
  background:var(--surface);
  border:1px solid var(--hair);
  overflow:hidden;
  display:flex;flex-direction:column;
  transition:border-color .6s var(--swift),transform .6s var(--swift);
}
.card:hover{border-color:var(--hair-2);transform:translateY(-4px)}
.card__frame{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--surface-2)}
.card__frame img{
  filter:saturate(.75) contrast(1.01) brightness(1.0);
  transform:scale(1.02);
  transition:transform 1.1s var(--swift),filter .8s var(--swift);
}
.card:hover .card__frame img{transform:scale(1.07);filter:saturate(.9) contrast(1.02) brightness(1.06)}

/* État vide : élégant et explicite, jamais cassé */
.card__void{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  background:
    linear-gradient(150deg,var(--surface-2),var(--surface) 62%),
    radial-gradient(90% 70% at 50% 118%,rgba(203,210,218,.09),transparent 64%);
}
.card__void i{font-size:26px;color:var(--smoke-dim)}
.card__void span{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--smoke-dim)}

.card__body{padding:26px 24px 28px;display:flex;flex-direction:column;flex:1}
.card__kind{font-size:.8rem;color:var(--smoke-dim);margin-bottom:8px}
.card__name{font-size:1.32rem;font-weight:400;letter-spacing:-.03em;margin-bottom:20px}
.card__facts{display:flex;gap:28px;margin-top:auto;padding-top:20px;border-top:1px solid var(--hair)}
.card__fact{display:flex;flex-direction:column;gap:3px}
.card__fact b{font-size:1.45rem;font-weight:300;letter-spacing:-.03em;color:var(--chrome)}
.card__fact span{font-size:.74rem;color:var(--smoke-dim);letter-spacing:.02em}

/* Repli mobile : une colonne */
@media(max-width:760px){
  .fleet__grid{grid-template-columns:1fr}
}

/* ===================================================================
   DESTINATIONS  (image pleine largeur, texte incrusté)
   =================================================================== */
.alpine{position:relative;min-height:78vh;display:flex;align-items:flex-end;overflow:hidden}
.alpine__plate{position:absolute;inset:0;z-index:0}
.alpine__plate img{filter:saturate(.5) contrast(1.05) brightness(.85);will-change:transform}
.alpine__veil{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,var(--ink) 4%,rgba(21,23,27,.6) 40%,rgba(21,23,27,.15) 100%);
}
.alpine__in{position:relative;z-index:2;width:100%;padding-block:clamp(56px,8vw,96px)}
.alpine__in h2{max-width:15ch;margin-bottom:22px}
.alpine__peaks{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.peak{
  padding:.5rem 1rem;border-radius:999px;
  border:1px solid rgba(242,244,246,.2);
  background:rgba(21,23,27,.42);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  font-size:.85rem;color:var(--chrome);
}

/* ===================================================================
   PRESTATIONS  (bento asymétrique, 4 cellules pour 4 contenus)
   =================================================================== */
.serve{padding-block:var(--bay);background:var(--ink)}
.serve__head{margin-bottom:clamp(38px,5vw,62px)}
.serve__head h2{max-width:17ch}
.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}

.tile{
  position:relative;border-radius:var(--r);overflow:hidden;
  border:1px solid var(--hair);
  display:flex;flex-direction:column;justify-content:flex-end;
  min-height:270px;padding:30px 28px;
  transition:border-color .6s var(--swift)}
.tile:hover{border-color:var(--hair-2)}
.tile h3{font-size:1.28rem;font-weight:400;letter-spacing:-.03em;margin-bottom:10px}
.tile p{color:var(--smoke);font-size:.925rem;line-height:1.68;max-width:38ch}

.tile--a{grid-column:span 7;min-height:380px}
.tile--b{grid-column:span 5;min-height:380px}
.tile--c{grid-column:span 5}
.tile--d{grid-column:span 7}

/* Variation de fond : deux photos, un dégradé chrome, une surface tramée */
.tile__plate{position:absolute;inset:0;z-index:0}
.tile__plate img{filter:saturate(.6) contrast(1.03) brightness(.72);transition:transform 1.2s var(--swift)}
.tile:hover .tile__plate img{transform:scale(1.05)}
.tile__plate::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(21,23,27,.94) 6%,rgba(21,23,27,.55) 52%,rgba(21,23,27,.22) 100%);
}
.tile__lit{
  position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(90% 70% at 78% 8%,rgba(203,210,218,.16),transparent 58%),
    linear-gradient(158deg,var(--surface-2),var(--ink-2) 68%);
}
.tile__mesh{
  position:absolute;inset:0;z-index:0;background:var(--ink-2);
  background-image:
    linear-gradient(var(--hair) 1px,transparent 1px),
    linear-gradient(90deg,var(--hair) 1px,transparent 1px);
  background-size:56px 56px;
}
.tile__mesh::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(80% 70% at 24% 96%,rgba(21,23,27,.2),var(--ink-2) 72%);
}
.tile__txt{position:relative;z-index:1}

@media(max-width:880px){
  .bento{grid-template-columns:1fr;gap:14px}
  .tile--a,.tile--b,.tile--c,.tile--d{grid-column:span 1;min-height:250px}
  .tile{padding:26px 22px}
}

/* ===================================================================
   RÉSERVATION
   =================================================================== */
.book{
  position:relative;overflow:hidden;
  border-top:1px solid var(--hair);
  padding-block:clamp(96px,15vw,190px);
  text-align:center;
  background:var(--ink-2);
}
.book__lit{
  position:absolute;left:50%;top:-46%;transform:translateX(-50%);
  width:min(1200px,150vw);aspect-ratio:1.5/1;pointer-events:none;
  background:radial-gradient(ellipse at 50% 50%,rgba(203,210,218,.16),rgba(203,210,218,.04) 42%,transparent 68%);
}
.book__in{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}
.book__in h2{max-width:19ch;margin-bottom:24px}
.book__in .lede{text-align:center;margin-bottom:40px;max-width:46ch}
.book__acts{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.book__foot{margin-top:34px;font-size:.85rem;color:var(--smoke-dim)}

/* ===================================================================
   PIED DE PAGE
   =================================================================== */
.foot{background:var(--ink);border-top:1px solid var(--hair);padding-top:clamp(64px,9vw,104px)}
.foot__top{display:grid;grid-template-columns:1fr 1fr;gap:clamp(34px,6vw,80px);align-items:start}
@media(max-width:920px){.foot__top{grid-template-columns:1fr}}

.foot__name{font-size:clamp(1.6rem,3vw,2.1rem);font-weight:400;letter-spacing:-.035em;margin-bottom:16px}
.foot__addr{font-style:normal;color:var(--smoke);line-height:1.85;margin-bottom:30px}
.foot__addr strong{display:block;color:var(--chrome);font-weight:400}

.reach{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:480px}
.reach a{
  display:flex;align-items:center;gap:.7rem;
  padding:.9rem 1.1rem;border-radius:999px;
  border:1px solid var(--hair-2);color:var(--chrome);font-size:.88rem;
  transition:border-color .5s var(--swift),background-color .5s var(--swift),transform .5s var(--swift);
}
.reach a i{font-size:17px;color:var(--steel)}
.reach a:hover{border-color:var(--steel);background:rgba(242,244,246,.05);transform:translateY(-2px)}
.reach a:active{transform:scale(.98)}
@media(max-width:440px){.reach{grid-template-columns:1fr}}

.atlas{border:1px solid var(--hair);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.atlas__frame{position:relative;width:100%;aspect-ratio:16/11;background:var(--surface-2)}
.atlas__frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(1) invert(.92) contrast(.84) hue-rotate(180deg)}
.atlas__bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-top:1px solid var(--hair)}
.atlas__bar span{font-size:.82rem;color:var(--smoke)}

.foot__end{
  margin-top:clamp(52px,8vw,88px);border-top:1px solid var(--hair);
  padding-block:26px;display:flex;flex-wrap:wrap;gap:14px 30px;
  align-items:center;justify-content:space-between;
}
.foot__end p,.foot__end a{font-size:.8rem;color:var(--smoke-dim)}
.foot__end a:hover{color:var(--chrome)}
.foot__end nav{display:flex;gap:24px;flex-wrap:wrap}

/* ===================================================================
   RÉVÉLATION AU DÉFILEMENT
   =================================================================== */
.rise{opacity:0;transform:translateY(30px);filter:blur(6px)}
.rise.shown{
  opacity:1;transform:none;filter:blur(0);
  transition:opacity .95s var(--glide),transform .95s var(--glide),filter .95s var(--glide);
}
.rise-2.shown{transition-delay:.09s}
.rise-3.shown{transition-delay:.18s}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-delay:0s!important;
    transition-duration:.001ms!important;transition-delay:0s!important;
  }
  .rise{opacity:1;transform:none;filter:none}
  .sweep{color:var(--chrome);background:none;-webkit-background-clip:initial;background-clip:initial}
  .hero__plate img{transform:none}
}

/* ===================================================================
   COMPOSANTS DES PAGES INTÉRIEURES
   Ajoutés au socle commun. Mêmes jetons, mêmes courbes.
   =================================================================== */

/* Fil d'Ariane */
.crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:22px}
.crumb a,.crumb span{font-size:.8rem;color:var(--smoke-dim)}
.crumb a{transition:color .4s var(--swift)}
.crumb a:hover{color:var(--chrome)}
.crumb i{font-size:11px;color:var(--smoke-dim);opacity:.6}
.crumb [aria-current]{color:var(--smoke)}

/* En-tête de page intérieure : compact, jamais plein écran */
.phero{position:relative;overflow:hidden;padding-top:130px;padding-bottom:clamp(48px,7vw,84px);background:var(--ink-2)}
.phero__plate{position:absolute;inset:0;z-index:0}
.phero__plate img{filter:saturate(.55) contrast(1.03) brightness(.66)}
.phero__veil{position:absolute;inset:0;z-index:1;
  background:linear-gradient(to top,var(--ink) 3%,rgba(21,23,27,.66) 48%,rgba(21,23,27,.30) 100%),
             radial-gradient(110% 90% at 8% 96%,rgba(21,23,27,.8),transparent 62%)}
.phero__in{position:relative;z-index:2}
.phero h1{max-width:17ch;margin-bottom:22px;font-weight:400;letter-spacing:-.035em;line-height:1.04;
  font-size:clamp(2.1rem,5vw,3.7rem)}
.phero .lede{margin-bottom:32px}
.phero__acts{display:flex;flex-wrap:wrap;gap:12px}

/* Bandeau de chiffres clés */
.facts{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:var(--ink-2)}
.facts__in{display:grid;grid-template-columns:repeat(4,1fr)}
.fact{padding:30px 26px;border-left:1px solid var(--hair)}
.fact:first-child{border-left:0;padding-left:0}
.fact b{display:block;font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:300;letter-spacing:-.035em;margin-bottom:5px}
.fact span{font-size:.82rem;color:var(--smoke-dim)}
@media(max-width:820px){
  .facts__in{grid-template-columns:repeat(2,1fr)}
  .fact{padding:24px 20px;border-top:1px solid var(--hair)}
  .fact:nth-child(-n+2){border-top:0}
  .fact:nth-child(odd){border-left:0;padding-left:0}
}

/* Corps de texte long */
.prose{max-width:68ch}
.prose h2{font-size:clamp(1.5rem,3vw,2.15rem);font-weight:400;letter-spacing:-.03em;line-height:1.12;
  margin:clamp(44px,6vw,68px) 0 18px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.14rem;font-weight:400;letter-spacing:-.02em;margin:30px 0 10px}
.prose p{color:var(--smoke);line-height:1.78;margin-bottom:16px}
.prose strong{color:var(--chrome);font-weight:400}
.prose a{color:var(--chrome);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:var(--hair-2);transition:text-decoration-color .4s var(--swift)}
.prose a:hover{text-decoration-color:var(--steel)}
.prose ul{list-style:none;margin:6px 0 20px}
.prose li{position:relative;padding-left:22px;color:var(--smoke);line-height:1.72;margin-bottom:9px}
.prose li::before{content:"";position:absolute;left:2px;top:.72em;width:5px;height:1px;background:var(--steel)}

/* Deux colonnes : texte et encadré latéral */
.split{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(30px,5vw,64px);align-items:start}
@media(max-width:900px){.split{grid-template-columns:1fr}}

.aside{position:sticky;top:96px;border:1px solid var(--hair);border-radius:var(--r);
  background:var(--surface);padding:26px 24px}
.aside h3{font-size:1.06rem;font-weight:400;letter-spacing:-.02em;margin-bottom:8px}
.aside p{font-size:.9rem;color:var(--smoke);line-height:1.68;margin-bottom:18px}
.aside .act{width:100%;justify-content:space-between;margin-bottom:9px}
.aside__note{font-size:.78rem;color:var(--smoke-dim);margin:14px 0 0;line-height:1.6}
@media(max-width:900px){.aside{position:static}}

/* Tableau des liaisons */
.routes{width:100%;border-collapse:collapse;margin:8px 0 6px;font-size:.92rem}
.routes caption{text-align:left;color:var(--smoke-dim);font-size:.8rem;padding-bottom:12px}
.routes th,.routes td{padding:14px 16px;border-bottom:1px solid var(--hair);text-align:left}
.routes th{font-weight:400;font-size:.78rem;color:var(--smoke-dim);letter-spacing:.02em}
.routes td{color:var(--smoke)}
.routes td:first-child{color:var(--chrome)}
.routes tbody tr{transition:background-color .4s var(--swift)}
.routes tbody tr:hover{background:rgba(242,244,246,.03)}
.routes a{color:var(--chrome);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hair-2)}
@media(max-width:640px){
  .routes th:nth-child(3),.routes td:nth-child(3){display:none}
  .routes th,.routes td{padding:12px 10px}
}

/* Questions fréquentes */
.faq{border-top:1px solid var(--hair);max-width:74ch}
.faq details{border-bottom:1px solid var(--hair)}
.faq summary{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;
  padding:22px 0;cursor:pointer;list-style:none;font-size:1.04rem;letter-spacing:-.015em;
  transition:color .4s var(--swift)}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--steel)}
.faq summary i{font-size:17px;color:var(--smoke-dim);flex:none;margin-top:.15em;
  transition:transform .45s var(--swift)}
.faq details[open] summary i{transform:rotate(45deg)}
.faq__a{padding:0 0 24px;color:var(--smoke);line-height:1.76;max-width:64ch}
.faq__a p+p{margin-top:12px}

/* Grille de liens vers les autres pages */
.links{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:900px){.links{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.links{grid-template-columns:1fr}}
.link{display:flex;flex-direction:column;justify-content:space-between;gap:26px;min-height:150px;
  padding:22px 22px 20px;border:1px solid var(--hair);border-radius:var(--r);background:var(--surface);
  transition:border-color .5s var(--swift),transform .5s var(--swift),background-color .5s var(--swift)}
.link:hover{border-color:var(--hair-2);background:var(--surface-2);transform:translateY(-3px)}
.link b{font-size:1.06rem;font-weight:400;letter-spacing:-.02em;display:block;margin-bottom:7px}
.link span{font-size:.86rem;color:var(--smoke);line-height:1.6}
.link i{font-size:16px;color:var(--steel)}

/* Bandeau d'appel en fin de page */
.strip{position:relative;overflow:hidden;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  background:var(--ink-2);padding-block:clamp(60px,9vw,110px);text-align:center}
.strip__lit{position:absolute;left:50%;top:-52%;transform:translateX(-50%);width:min(1000px,140vw);
  aspect-ratio:1.6/1;pointer-events:none;
  background:radial-gradient(ellipse at 50% 50%,rgba(203,210,218,.15),transparent 66%)}
.strip__in{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}
.strip h2{max-width:20ch;margin-bottom:20px}
.strip .lede{text-align:center;margin-bottom:32px;max-width:44ch}
.strip__acts{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* Encadré d'information */
.note{border-left:2px solid var(--steel);padding:16px 0 16px 20px;margin:24px 0;background:rgba(242,244,246,.025)}
.note p{margin:0;color:var(--smoke);font-size:.92rem;line-height:1.72}
.note b{color:var(--chrome);font-weight:400}

/* Sections génériques */
.band{padding-block:clamp(64px,9vw,110px)}
.band--tint{background:var(--ink-2);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.band__head{margin-bottom:clamp(30px,4vw,48px)}
.band__head h2{max-width:20ch}
.band__head p{color:var(--smoke);margin-top:14px;max-width:56ch;line-height:1.72}

/* Menu déroulant de navigation */
.nav__drop{position:relative}
.nav__drop>button{display:flex;align-items:center;gap:.35rem;font-size:.875rem;color:var(--smoke);
  transition:color .4s var(--swift)}
.nav__drop>button:hover,.nav__drop[data-open="true"]>button{color:var(--chrome)}
.nav__drop>button i{font-size:12px;transition:transform .4s var(--swift)}
.nav__drop[data-open="true"]>button i{transform:rotate(180deg)}
.nav__menu{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(-6px);
  min-width:260px;padding:8px;border-radius:14px;border:1px solid var(--hair);
  background:rgba(27,30,35,.94);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);
  box-shadow:0 22px 60px rgba(10,11,13,.6);
  opacity:0;visibility:hidden;transition:opacity .35s var(--swift),transform .35s var(--swift),visibility .35s}
.nav__drop[data-open="true"] .nav__menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.nav__menu a{display:block;padding:10px 12px;border-radius:9px;font-size:.875rem;color:var(--smoke);
  transition:background-color .3s var(--swift),color .3s var(--swift)}
.nav__menu a:hover{background:rgba(242,244,246,.06);color:var(--chrome)}

/* Le panneau plein écran accueille désormais des sous-liens */
.sheet__sub{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;max-width:640px}
.sheet__sub a{font-size:.9rem;padding:.5rem .9rem;border:1px solid var(--hair-2);border-radius:999px;
  opacity:0;transform:translateY(14px)}
body.menu-on .sheet__sub a{opacity:1;transform:none;transition-delay:.3s}

/* Plan du site en pied de page */
.foot__plan{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 48px;
  margin-top:clamp(40px,6vw,64px);padding-top:32px;border-top:1px solid var(--hair)}
.foot__plan>div{display:flex;flex-direction:column;gap:9px}
.foot__plan b{font-size:.78rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;
  color:var(--smoke-dim);margin-bottom:5px}
.foot__plan a{font-size:.9rem;color:var(--smoke);transition:color .4s var(--swift)}
.foot__plan a:hover{color:var(--chrome)}
@media(max-width:640px){.foot__plan{grid-template-columns:1fr;gap:26px}}

/* Adresse enrichie du pied de page */
.foot__addr a{color:var(--smoke);text-decoration:underline;text-underline-offset:3px;
  text-decoration-color:var(--hair-2)}
.foot__addr a:hover{color:var(--chrome)}
.foot__end nav{display:flex;gap:24px;flex-wrap:wrap}

/* Description dans les cartes de véhicule */
.card__txt{font-size:.88rem;color:var(--smoke);line-height:1.62;margin-bottom:18px}

/* La grille de flotte sert aussi hors page d'accueil */
.fleet__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,2vw,24px)}
@media(max-width:760px){.fleet__grid{grid-template-columns:1fr}}

/* Lien de la grille : structure interne */
.link>span:first-child{display:block}

/* Sélecteur de langue */
.lang{display:inline-flex;align-items:center;gap:.45rem;padding:.5rem .8rem;border-radius:999px;
  border:1px solid var(--hair-2);font-size:.78rem;letter-spacing:.08em;color:var(--smoke);
  transition:border-color .4s var(--swift),color .4s var(--swift),background-color .4s var(--swift)}
.lang:hover{border-color:var(--steel);color:var(--chrome);background:rgba(242,244,246,.05)}
.flag--sw{width:17px;height:11px;border-radius:2px;box-shadow:0 0 0 1px rgba(242,244,246,.18)}
.sheet__lang{margin-top:26px}
.sheet__lang .lang{opacity:0;transform:translateY(14px);
  transition:opacity .7s var(--glide),transform .7s var(--glide)}
body.menu-on .sheet__lang .lang{opacity:1;transform:none;transition-delay:.36s}
@media(max-width:940px){.nav__cta{display:none}}

/* ===================================================================
   SIMULATEUR DE TARIF
   =================================================================== */
.calc{border:1px solid var(--hair);border-radius:var(--r);background:var(--surface);overflow:hidden}
.calc__form{padding:clamp(22px,3vw,32px)}
.calc__row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.calc__row--one{grid-template-columns:1fr}
@media(max-width:620px){.calc__row{grid-template-columns:1fr}}

.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field>label{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--smoke-dim)}

.calc select{
  appearance:none;-webkit-appearance:none;width:100%;
  padding:.92rem 2.4rem .92rem 1rem;border-radius:11px;
  border:1px solid var(--hair-2);background:var(--ink-2);color:var(--chrome);
  font-family:var(--sans);font-size:.95rem;font-weight:300;line-height:1.3;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23A8AFB9' stroke-width='1.4' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 1rem center;
  transition:border-color .4s var(--swift),background-color .4s var(--swift);
}
.calc select:hover{border-color:var(--steel)}
.calc select:focus-visible{outline:2px solid var(--chrome);outline-offset:2px}
.calc optgroup{background:var(--ink-2);color:var(--smoke-dim);font-style:normal;font-weight:400}
.calc option{background:var(--ink-2);color:var(--chrome);padding:6px}

/* Sélecteur de sens */
.seg{display:flex;gap:4px;padding:4px;border:1px solid var(--hair-2);border-radius:999px;background:var(--ink-2)}
.seg button{flex:1;padding:.62rem .5rem;border-radius:999px;font-size:.85rem;color:var(--smoke);
  transition:background-color .4s var(--swift),color .4s var(--swift)}
.seg button[aria-pressed="true"]{background:var(--chrome);color:var(--ink);font-weight:500}
.seg button:not([aria-pressed="true"]):hover{color:var(--chrome)}

/* Panneau de résultat */
.calc__out{border-top:1px solid var(--hair);background:var(--ink-2);padding:clamp(22px,3vw,32px)}
.calc__empty{color:var(--smoke-dim);font-size:.92rem;line-height:1.7;margin:0}

.quote{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px;
  padding-bottom:20px;border-bottom:1px solid var(--hair);margin-bottom:20px}
.quote__route{font-size:1.02rem;letter-spacing:-.015em;line-height:1.4;max-width:36ch}
.quote__route span{display:block;color:var(--smoke-dim);font-size:.84rem;margin-top:5px}
.quote__price{text-align:right;line-height:1}
.quote__price b{display:block;font-size:clamp(1.9rem,4.4vw,2.7rem);font-weight:300;letter-spacing:-.04em}
.quote__price span{display:block;font-size:.78rem;color:var(--smoke-dim);margin-top:7px}

.quote__inc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 22px;margin-bottom:22px}
.quote__inc li{list-style:none;position:relative;padding-left:20px;font-size:.85rem;color:var(--smoke);line-height:1.6}
.quote__inc li::before{content:"";position:absolute;left:2px;top:.62em;width:6px;height:1px;background:var(--steel)}
@media(max-width:620px){.quote__inc{grid-template-columns:1fr}}

.quote__acts{display:flex;flex-wrap:wrap;gap:10px}
.quote__note{margin:18px 0 0;font-size:.78rem;color:var(--smoke-dim);line-height:1.62}

/* Bloc tarif sur les pages station */
.pricebox{border:1px solid var(--hair);border-radius:var(--r);background:var(--surface);
  padding:clamp(22px,3vw,30px);margin:28px 0}
.pricebox h3{font-size:1.06rem;font-weight:400;letter-spacing:-.02em;margin:0 0 18px}
.pricebox__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px}
@media(max-width:620px){.pricebox__grid{grid-template-columns:1fr}}
.pricebox__cell{border:1px solid var(--hair);border-radius:12px;padding:16px 16px 14px;background:var(--ink-2)}
.pricebox__cell b{display:block;font-size:1.32rem;font-weight:300;letter-spacing:-.03em;margin-bottom:4px}
.pricebox__cell span{display:block;font-size:.8rem;color:var(--smoke-dim)}
.pricebox p{font-size:.82rem;color:var(--smoke-dim);line-height:1.62;margin:0}
.pricebox .act{margin-top:16px}
