/* En-tête : rail vertical blanc sur ordinateur, cartouche flottant sur téléphone et tablette. */
.rail { display: none; }
@media (min-width: 1024px) {
  .rail { position: relative; z-index: 6; display: flex; flex-direction: column; height: 100%; background: var(--terre);
    border-right: 1px solid var(--filet); overflow: hidden; }
  .rail a { text-decoration: none; color: var(--encre); }
  .rail-marque { display: grid; place-items: center; flex: none; height: 88px; }
  .rail-marque svg { width: 40px; height: 40px; }
  .rail-nav { position: relative; flex: none; }
  .rail-nav a { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px;
    height: 76px; font: 600 12.5px/1.1 var(--texte); transition: color .3s var(--courbe); }
  .rail-nav svg { width: 26px; height: 26px; }
  .rail-nav a[aria-current] { color: #fff; }
  .rail-nav a[aria-current]:focus-visible { outline-color: #fff; outline-offset: -6px; }
  .rail-plaque { position: absolute; left: 0; top: 0; width: 100%; height: 76px; background: var(--encre); opacity: 0;
    transform: translateY(var(--plaque-y, 0px)); transition: transform .3s var(--courbe), opacity .2s; }
  .rail-nav.engage .rail-plaque { opacity: 1; }
  .rail-tel { display: grid; place-items: center; flex: none; height: 56px; margin-top: auto; font: 600 13px/1.3 var(--texte); text-align: center; }
  .rail-resa { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; flex: none; height: 96px;
    background: var(--rose); color: #fff !important; font: 700 15px/1 var(--texte); }
  .rail-resa span { font: 600 12.5px/1 var(--texte); }
  .rail-resa:focus-visible { outline-color: #fff; outline-offset: -6px; }
  .rail-resa[aria-current] { box-shadow: inset 5px 0 0 var(--encre); }
  .rail-mentions { display: grid; place-items: center; flex: none; height: 44px; font: 500 12px/1 var(--texte); color: var(--gris) !important; }
  @media (hover: hover) {
    .rail-nav a:not([aria-current]):hover { background: var(--mer); }
    .rail-resa:hover { background: var(--rose-appui); }
    .rail-mentions:hover, .rail-tel:hover { text-decoration: underline; text-underline-offset: 3px; }
  }
}
/* Écran bas (1 024 × 600) : le rail se resserre, rien ne sort du cadre. */
@media (min-width: 1024px) and (max-height: 720px) {
  .rail-marque { height: 72px; }
  .rail-nav a, .rail-plaque { height: 62px; }
  .rail-nav a { gap: 5px; }
  .rail-resa { height: 84px; }
}

.cartouche { position: absolute; z-index: 30; top: calc(10px + env(safe-area-inset-top)); left: max(10px, env(safe-area-inset-left));
  right: max(10px, env(safe-area-inset-right)); display: flex; align-items: center; gap: 8px; height: 56px; padding: 0 6px 0 12px;
  max-width: 480px; margin: 0 auto; background: var(--terre); border-radius: 10px;
  box-shadow: 0 10px 30px -12px rgb(15 42 58 / .45); transition: box-shadow .25s var(--courbe); }
.cartouche.plein { box-shadow: 0 0 0 1px var(--filet); }
.cartouche a { text-decoration: none; }
.cartouche-marque { display: flex; align-items: center; gap: 9px; height: 44px; margin-right: auto; color: var(--encre); min-width: 44px; }
.cartouche-mono { flex: none; width: 28px; height: 28px; }
.cartouche-mot { flex: none; height: 22px; width: 135px; }
.cartouche-appel { display: flex; align-items: center; justify-content: center; gap: 6px; flex: none; width: 76px; height: 44px;
  font: 600 15px/1 var(--texte); color: var(--encre); }
.cartouche-appel svg { width: 18px; height: 18px; }
.cartouche-resa { display: grid; place-items: center; flex: none; width: 104px; height: 44px; border-radius: 6px; background: var(--rose);
  color: #fff; font: 700 16px/1 var(--texte); }
.cartouche-resa:focus-visible { outline-color: var(--encre); }
@media (max-width: 419px) {
  .cartouche { padding-left: 10px; }
  .cartouche-marque { gap: 7px; }
  .cartouche-mot { height: 19px; width: 117px; }
}
@media (max-width: 379px) { .cartouche-mot { display: none; } }
@media (min-width: 1024px) { .cartouche { display: none; } }
html.sans-js .cartouche { position: sticky; top: 0; margin: 10px; }
