/* Thème L'ACTE France — compléments à theme.json (styles que l'éditeur ne sait pas exprimer).
   Charte : bleu (identité), or (actions), rouge (accents, avec parcimonie), fond crème.
   Couleurs : uniquement les variables de la palette de theme.json (--wp--preset--color--*), transparences comprises
   (color-mix) : les variations de saison (styles/*.json) repeignent tout le site. Seuls le blanc, les drapeaux et les motifs SVG de chaque saison sont fixes.
   Largeurs d'écran : 1080 px (menu ☰ en dessous), 781 px (colonnes empilées, seuil de WordPress),
   599 px (téléphone), 379 px (petit téléphone : titre du site masqué). Règles regroupées en fin de fichier. */

:root {
  --lacte-radius: 14px;
  --lacte-radius-sm: 8px;
  --lacte-shadow: 0 2px 6px color-mix(in srgb, var(--wp--preset--color--primary-dark) 6%, transparent), 0 10px 30px color-mix(in srgb, var(--wp--preset--color--primary-dark) 8%, transparent);
  --lacte-shadow-strong: 0 4px 12px color-mix(in srgb, var(--wp--preset--color--primary-dark) 10%, transparent), 0 18px 40px color-mix(in srgb, var(--wp--preset--color--primary-dark) 12%, transparent);
}

html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { -webkit-font-smoothing: antialiased; }
a { text-underline-offset: .2em; }
:where(a, button, input, select, textarea, .wp-element-button):focus-visible {
  outline: 3px solid var(--wp--preset--color--primary);
  outline-offset: 3px;
  border-radius: 4px;
}
/* Sur fond bleu, un contour bleu ne se verrait pas : contour or (contraste supérieur à 3:1 dans les deux cas). */
:where(.lacte-support, .lacte-footer, .has-primary-background-color, .has-primary-dark-background-color, .wp-block-cover.is-dark)
  :where(a, button, input, select, textarea, .wp-element-button):focus-visible {
  outline-color: var(--wp--preset--color--gold);
}
/* Texte réservé aux lecteurs d'écran (titre principal des pages au titre masqué). */
.screen-reader-text:not(:focus) {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ---------- En-tête ---------- */
/* L'en-tête reste visible au défilement. La règle vise l'enveloppe <header> de la partie de modèle : un élément
   « sticky » ne sort jamais de son parent, et cette enveloppe a exactement la hauteur de l'en-tête. */
.wp-site-blocks > header.wp-block-template-part {
  position: sticky;
  top: 0;
  z-index: 50;
}
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
.lacte-header {
  position: relative;
  z-index: 1;
  border-bottom: 1px solid var(--wp--preset--color--border);
}
/* Fond flouté porté par un pseudo-élément : un backdrop-filter sur l'en-tête lui-même enfermerait
   le menu ☰ ouvert (position fixe) dans la hauteur de l'en-tête au lieu de couvrir l'écran. */
.lacte-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: color-mix(in srgb, var(--wp--preset--color--background) 94%, transparent);
  backdrop-filter: blur(8px);
}
.lacte-brand { gap: 12px; }
.lacte-brand .wp-block-site-logo img { height: 48px; width: auto; }
.lacte-brand .wp-block-site-title a { text-decoration: none; color: var(--wp--preset--color--primary-dark); }
.lacte-brand .wp-block-site-tagline {
  font-size: .72rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--wp--preset--color--muted);
  margin: 0;
}
.lacte-header .wp-block-navigation a { text-decoration: none; padding: 6px 0; border-bottom: 2px solid transparent; }
.lacte-header .wp-block-navigation a:hover,
.lacte-header .wp-block-navigation .current-menu-item > a,
.lacte-header .wp-block-navigation [aria-current="page"] { color: var(--wp--preset--color--primary); border-bottom-color: var(--wp--preset--color--gold); }

/* ---------- Boutons ---------- */
.wp-element-button, .wp-block-button__link { transition: transform .15s ease, background-color .15s ease, box-shadow .15s ease; }
.wp-element-button:hover, .wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button:not(.is-style-secondaire):not(.is-style-clair) .wp-block-button__link { box-shadow: 0 4px 14px color-mix(in srgb, var(--wp--preset--color--gold) 35%, transparent); }
.wp-block-button.is-style-secondaire .wp-block-button__link {
  background: transparent;
  color: var(--wp--preset--color--primary);
  border: 2px solid var(--wp--preset--color--primary);
}
.wp-block-button.is-style-secondaire .wp-block-button__link:hover { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--surface); }
.wp-block-button.is-style-clair .wp-block-button__link {
  background: transparent;
  color: var(--wp--preset--color--surface);
  border: 2px solid rgba(255, 255, 255, .7);
}
.wp-block-button.is-style-clair .wp-block-button__link:hover { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--primary-dark); }

/* ---------- Éléments de mise en page ---------- */
.is-style-surtitre {
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--wp--preset--color--accent);
  margin-bottom: .6rem !important;
}
.wp-block-group.is-style-carte,
.lacte-event-details.is-style-carte {
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--wp--preset--color--border);
  border-radius: var(--lacte-radius);
  box-shadow: var(--lacte-shadow);
  padding: 1.75rem;
}
.lacte-hero {
  background:
    radial-gradient(circle at 85% 15%, color-mix(in srgb, var(--wp--preset--color--gold) 18%, transparent), transparent 40%),
    radial-gradient(circle at 10% 90%, color-mix(in srgb, var(--wp--preset--color--primary) 8%, transparent), transparent 45%);
}
.lacte-hero__photo { margin: 0; }
.lacte-hero__photo img { display: block; width: 100%; height: auto; aspect-ratio: 5 / 4; object-fit: cover; }
.lacte-hero__visual img,
.lacte-hero__visual .wp-block-cover {
  border-radius: 28px 28px 120px 28px;
  box-shadow: var(--lacte-shadow-strong);
  overflow: hidden;
}
/* Icônes décoratives : « / "" » = texte de remplacement vide (non lues par les lecteurs d'écran). */
.lacte-mission-icon--entraide::before { content: "❤" / ""; }
.lacte-mission-icon--culture::before { content: "✎" / ""; }
.lacte-mission-icon--rencontres::before { content: "☺" / ""; }
.lacte-mission-icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: var(--wp--preset--color--primary-light);
  color: var(--wp--preset--color--primary);
  font-size: 1.6rem;
  line-height: 1;
  margin-bottom: 1rem !important;
}

/* Frise chronologique : liste numérotée avec le style « Frise ». */
.wp-block-list.is-style-frise {
  list-style: none;
  padding: 0;
  margin: 2.5rem 0 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
  position: relative;
}
.wp-block-list.is-style-frise > li {
  position: relative;
  padding-top: 1.75rem;
  border-top: 3px solid var(--wp--preset--color--primary-light);
}
.wp-block-list.is-style-frise > li::before {
  content: "";
  position: absolute;
  top: -9px;
  left: 0;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: var(--wp--preset--color--gold);
  box-shadow: 0 0 0 4px var(--wp--preset--color--surface);
}
.wp-block-list.is-style-frise > li strong:first-child {
  display: block;
  font-family: var(--wp--preset--font-family--heading);
  color: var(--wp--preset--color--primary-dark);
  font-size: 1.15rem;
}

/* ---------- Cartes d'articles (boucles de requête) ---------- */
.lacte-cards .wp-block-post {
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--wp--preset--color--border);
  border-radius: var(--lacte-radius);
  overflow: hidden;
  box-shadow: var(--lacte-shadow);
  display: flex;
  flex-direction: column;
  transition: transform .2s ease, box-shadow .2s ease;
}
.lacte-cards .wp-block-post:hover { transform: translateY(-3px); box-shadow: var(--lacte-shadow-strong); }
.lacte-cards .wp-block-post-featured-image { margin: 0; }
/* Carte entièrement cliquable : le lien du titre s'étend à toute la carte (un seul lien par carte au clavier
   et pour les lecteurs d'écran) ; la catégorie reste un lien à part, au-dessus. */
.lacte-cards .wp-block-post { position: relative; }
.lacte-cards .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.lacte-cards .wp-block-post-terms a { position: relative; z-index: 2; }
.lacte-cards .wp-block-post:has(.wp-block-post-title a:focus-visible) { outline: 3px solid var(--wp--preset--color--primary); outline-offset: 3px; }
.lacte-cards .wp-block-post-title a:focus-visible { outline: none; }

/* Format des visuels de marque et des partages (1200×630) : un visuel n'est jamais rogné. */
.lacte-cards .wp-block-post-featured-image img { aspect-ratio: 40 / 21; object-fit: cover; width: 100%; }
/* Même règle pour les copies figées d'une composition (page d'accueil modifiée dans l'éditeur, qui garde l'ancien
   recadrage écrit dans la page) : tout recadrage imposé d'une image mise en avant passe au format des visuels. */
.wp-block-post-featured-image img[style*="aspect-ratio"] { aspect-ratio: 40 / 21 !important; }
.lacte-cards .lacte-card__body { padding: 1.25rem 1.5rem 1.5rem; }
.lacte-cards .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--primary-dark); }
.lacte-cards .wp-block-post-title a:hover { color: var(--wp--preset--color--primary); }
.wp-block-post-terms a {
  display: inline-block;
  text-decoration: none;
  background: var(--wp--preset--color--primary-light);
  color: var(--wp--preset--color--primary);
  padding: 2px 10px;
  border-radius: 999px;
}
.wp-block-post-terms .wp-block-post-terms__separator { display: none; }
.wp-block-post-terms a + a { margin-left: 4px; }

/* ---------- Bandeau de soutien ---------- */
.lacte-support {
  border-radius: 24px;
  background:
    radial-gradient(circle at 90% 10%, color-mix(in srgb, var(--wp--preset--color--gold) 35%, transparent), transparent 45%),
    var(--wp--preset--color--primary-dark);
}
.lacte-support :where(h2, p) { color: var(--wp--preset--color--surface); }

/* ---------- Pied de page ---------- */
.lacte-footer { background: var(--wp--preset--color--primary-dark); color: rgba(255, 255, 255, .85); }
.lacte-footer :where(h2, h3, .wp-block-site-title a) { color: var(--wp--preset--color--surface); }
.lacte-footer a { color: var(--wp--preset--color--surface); }
.lacte-footer a:hover { color: var(--wp--preset--color--gold); }
.lacte-footer .wp-block-site-logo img { background: var(--wp--preset--color--surface); border-radius: 10px; padding: 6px; }
.lacte-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .15); font-size: .85rem; }
.lacte-footer ul { list-style: none; padding: 0; }
.lacte-footer li + li { margin-top: .4rem; }

/* ---------- Contenu d'article ---------- */
.lacte-article-header .wp-block-post-featured-image img { border-radius: var(--lacte-radius); box-shadow: var(--lacte-shadow); }
.wp-block-gallery .wp-block-image img { border-radius: var(--lacte-radius-sm); }
/* Images du texte d'un article : centrées quand elles sont plus étroites que la colonne, légende discrète. */
.wp-block-post-content .wp-block-image:not(.alignleft):not(.alignright) { margin-left: auto; margin-right: auto; text-align: center; }
.wp-block-post-content .wp-block-image:not(.alignleft):not(.alignright) img { margin-left: auto; margin-right: auto; }
.wp-block-post-content .wp-block-image img { border-radius: var(--lacte-radius-sm); height: auto; }
.wp-block-post-content .wp-block-image figcaption { margin-top: .5rem; font-size: .9rem; color: var(--wp--preset--color--muted); text-align: center; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}

@media (max-width: 781px) {
  .lacte-header .wp-block-buttons.lacte-header__cta { display: none; }
  .lacte-header .lacte-brand .wp-block-site-tagline { display: none; }
}

/* Menu ☰ jusqu'à 1080 px : WordPress ne replie le menu que sous 600 px ; au-dessus, les six liens
   ne tiennent pas à côté du logo (menu sur deux lignes, titre écrasé). Ouvert, le menu garde l'affichage
   plein écran de WordPress (classe is-menu-open). */
@media (min-width: 600px) and (max-width: 1080px) {
  .lacte-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
  .lacte-header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
/* Menu ☰ ouvert : plein écran aux couleurs du site, grands liens alignés à gauche.
   Sélecteurs volontairement précis : ceux de WordPress pour ce menu le sont aussi. */
.lacte-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
  --navigation-layout-justification-setting: flex-start;
  --navigation-layout-justify: flex-start;
  background-color: var(--wp--preset--color--background);
  color: var(--wp--preset--color--primary-dark);
  padding: 20px 24px;
}
.lacte-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 56px; align-items: stretch; }
.lacte-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container { align-items: stretch; gap: 0; width: 100%; }
.lacte-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item { width: 100%; align-items: stretch; border-bottom: 1px solid var(--wp--preset--color--border); }
.lacte-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
  display: block;
  padding: 14px 0;
  border-bottom: 0;
  font-family: var(--wp--preset--font-family--heading);
  font-size: 1.5rem;
  font-weight: 700;
  text-align: left;
}
.lacte-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content[aria-current="page"] { color: var(--wp--preset--color--primary); box-shadow: inset 4px 0 0 var(--wp--preset--color--gold); padding-left: 14px; }
.lacte-header .wp-block-navigation .is-menu-open .wp-block-navigation__responsive-container-close { padding: 8px; }
@media (max-width: 1080px) {
  .lacte-header .lacte-brand { min-width: 0; }
  .lacte-header .lacte-brand + .wp-block-group { gap: 12px; flex-shrink: 0; }
}

/* Téléphone : en-tête toujours dans la largeur de l'écran (logo plus petit, titre réduit puis masqué). */
@media (max-width: 599px) {
  /* La barre d'administration défile avec la page sur téléphone : l'en-tête se colle tout en haut. */
  .admin-bar .wp-site-blocks > header.wp-block-template-part { top: 0; }
  .lacte-brand { gap: 8px; }
  .lacte-brand .wp-block-site-logo img { height: 38px; }
  .lacte-brand .wp-block-site-title { font-size: 1.05rem !important; }
  .lacte-header .lacte-brand + .wp-block-group { gap: 6px; }
  .lacte-header .lacte-lang a { padding: .25rem .4rem; }
}
@media (max-width: 379px) {
  .lacte-brand .wp-block-site-title { display: none; }
}

/* Liens vers les pages des rendez-vous annuels, sous les missions. */
.lacte-mission-links { margin-top: 1rem; font-weight: 600; }
.lacte-mission-links a { text-decoration: none; }

/* ---------- Saisons ----------
   Variations de style styles/<saison>.json, choisies dans Apparence › Éditeur › Styles : elles changent la palette,
   et lacte_season() (functions.php) pose la classe « lacte-saison-<saison> » sur <body> pour les motifs ci-dessous.
   Motifs purement décoratifs (fonds CSS), discrets, estompés sous les textes. Variables par saison :
   --lacte-hero-motif (fond du bandeau d'accueil, côté photo), --lacte-hero-band (liseré du bandeau, haut ou bas),
   --lacte-support-motif (bandeau « Soutenir »), --lacte-footer-band (liseré posé au-dessus du pied de page). */
.lacte-saison-noel {
  --lacte-hero-motif: url(../images/saisons/noel-flocons.svg) 0 0 / 200px 200px repeat;
  --lacte-support-motif: url(../images/saisons/noel-etoiles.svg) 0 0 / 160px 160px repeat;
  --lacte-footer-band: url(../images/saisons/noel-guirlande.svg) 0 0 / 120px 28px repeat-x;
  --lacte-footer-band-height: 28px;
}
.lacte-saison-alsace {
  --lacte-hero-band: url(../images/saisons/alsace-kelsch.svg) 0 0 / 18px 18px repeat;
  --lacte-hero-band-inset: 0 0 auto 0;
  --lacte-support-motif: url(../images/saisons/alsace-kelsch.svg) 0 0 / 36px 36px repeat;
  --lacte-support-motif-opacity: .12;
  --lacte-footer-band: url(../images/saisons/alsace-kelsch.svg) 0 0 / 18px 18px repeat;
  --lacte-footer-band-height: 12px;
}
.lacte-saison-paste {
  --lacte-hero-band: url(../images/saisons/paste-frise.svg) 0 50% / 32px 22px repeat-x;
  --lacte-hero-band-inset: 6px 0 auto 0;
  --lacte-hero-band-height: 22px;
  --lacte-support-motif: url(../images/saisons/paste-oeufs.svg) 0 0 / 180px 180px repeat;
  --lacte-footer-band: url(../images/saisons/paste-frise.svg) 0 50% / 64px 44px repeat-x;
  --lacte-footer-band-height: 44px;
}
.lacte-saison-ete {
  /* Soleil levé derrière le coin de la photo. */
  --lacte-hero-motif: url(../images/saisons/ete-soleil.svg) right -90px top -34px / 220px 220px no-repeat;
  --lacte-hero-motif-mask: none;
  --lacte-hero-band: url(../images/saisons/ete-vagues.svg) 0 100% / 160px 28px repeat-x;
  --lacte-hero-band-inset: auto 0 0 0;
  --lacte-hero-band-height: 28px;
  --lacte-footer-band: url(../images/saisons/ete-vagues.svg) 0 100% / 160px 28px repeat-x;
  --lacte-footer-band-height: 28px;
}
body[class*="lacte-saison-"] :where(.lacte-hero, .lacte-support, .lacte-footer) { position: relative; isolation: isolate; }
body[class*="lacte-saison-"] .lacte-hero::before,
body[class*="lacte-saison-"] .lacte-hero::after,
body[class*="lacte-saison-"] .lacte-support::before,
body[class*="lacte-saison-"] .lacte-footer::before {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
}
/* Motif du bandeau : côté photo, estompé sous le titre et l'introduction. */
body[class*="lacte-saison-"] .lacte-hero::before {
  inset: 0;
  background: var(--lacte-hero-motif, none);
  -webkit-mask-image: var(--lacte-hero-motif-mask, linear-gradient(90deg, transparent 30%, #000 75%));
  mask-image: var(--lacte-hero-motif-mask, linear-gradient(90deg, transparent 30%, #000 75%));
}
body[class*="lacte-saison-"] .lacte-hero::after {
  inset: var(--lacte-hero-band-inset, 0 0 auto 0);
  height: var(--lacte-hero-band-height, 12px);
  background: var(--lacte-hero-band, none);
}
body[class*="lacte-saison-"] .lacte-support { overflow: hidden; }
body[class*="lacte-saison-"] .lacte-support::before {
  inset: 0;
  background: var(--lacte-support-motif, none);
  opacity: var(--lacte-support-motif-opacity, 1);
  /* Estompé sous le titre et le texte, à gauche ; visible autour des boutons. */
  -webkit-mask-image: linear-gradient(90deg, transparent 45%, #000 85%);
  mask-image: linear-gradient(90deg, transparent 45%, #000 85%);
}
/* Liseré au-dessus du pied de page (guirlande, carreaux, frise, vagues), sur le fond de la page. */
body[class*="lacte-saison-"] .lacte-footer::before {
  left: 0;
  right: 0;
  bottom: 100%;
  height: var(--lacte-footer-band-height, 0px);
  background: var(--lacte-footer-band, none);
}

/* ---------- Page introuvable : la page qui a raté le train (patterns/t-404.php) ---------- */
.lacte-404 { text-align: center; }
.lacte-404 > * { margin-left: auto !important; margin-right: auto !important; }
.lacte-404__code {
  margin-bottom: 0 !important;
  font-family: var(--wp--preset--font-family--heading);
  font-size: clamp(4.5rem, 14vw, 8rem);
  font-weight: 700;
  line-height: 1;
  color: var(--wp--preset--color--primary-dark);
  letter-spacing: .04em;
}
.lacte-404 h1 { margin-top: .4rem; }
.lacte-404__trip {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: end;
  gap: 14px;
  max-width: 820px;
  margin-top: 2.5rem !important;
  margin-bottom: 2rem !important;
}
.lacte-404__city {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 2px;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--wp--preset--color--primary-dark);
  white-space: nowrap;
}
.lacte-404__flag { display: block; border-radius: 3px; flex: none; }
/* Voie : traverses, rail, et un filet qui passe du bleu-blanc-rouge au bleu-jaune-rouge. */
.lacte-404__track {
  position: relative;
  height: 84px;
  background:
    linear-gradient(90deg, #002395, #FFFFFF 18%, #ED2939 36%, #002B7F 64%, #FCD116 82%, #CE1126) 0 100% / 100% 3px no-repeat,
    linear-gradient(var(--wp--preset--color--primary-dark), var(--wp--preset--color--primary-dark)) 0 calc(100% - 8px) / 100% 3px no-repeat,
    repeating-linear-gradient(90deg, var(--wp--preset--color--muted) 0 6px, transparent 6px 18px) 0 calc(100% - 3px) / 100% 6px no-repeat;
}
.lacte-404__train {
  position: absolute;
  bottom: 11px;
  left: 0;
  width: 120px;
  height: 64px;
  animation: lacte-train 9s ease-in-out infinite alternate;
}
.lacte-404__loco { display: block; }
.lacte-404__loco-body { fill: var(--wp--preset--color--primary); }
.lacte-404__loco-dark { fill: var(--wp--preset--color--primary-dark); }
.lacte-404__loco-wheel { fill: var(--wp--preset--color--accent); }
/* Logo de l'association dans la fenêtre du wagon. */
.lacte-404 .lacte-404__logo {
  position: absolute;
  left: 14px;
  top: 26px;
  width: 58px;
  height: 18px;
  object-fit: contain;
}
.lacte-404__smoke {
  position: absolute;
  left: 8px;
  top: -12px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--wp--preset--color--border);
  box-shadow: -8px -10px 0 -1px var(--wp--preset--color--border), -18px -18px 0 -3px var(--wp--preset--color--border);
}
@keyframes lacte-train {
  from { left: 0; }
  to { left: calc(100% - 120px); }
}
.lacte-404__search-label { margin-top: 2rem !important; color: var(--wp--preset--color--muted); font-size: var(--wp--preset--font-size--small); }
.lacte-404 .wp-block-search { max-width: 420px; }
@media (prefers-reduced-motion: reduce) {
  /* Sans animation : le train reste arrêté « quelque part entre les deux ». */
  .lacte-404__train { animation: none; left: calc(50% - 60px); }
}
@media (max-width: 599px) {
  .lacte-404__trip { grid-template-columns: 1fr 1fr; grid-template-areas: "from to" "track track"; row-gap: 6px; }
  .lacte-404__city--from { grid-area: from; justify-self: start; }
  .lacte-404__city--to { grid-area: to; justify-self: end; }
  .lacte-404__track { grid-area: track; }
  body[class*="lacte-saison-"] .lacte-hero::before { display: none; }
}
