/*
Theme Name: La gare des mondes perdus
Theme URI: https://borlnov.fr
Author: Benoît Rolandeau
Author URI: https://borlnov.fr
Description: Thème enfant d'Astra pour « La gare des mondes perdus » : voyage de nuit / de jour, Quai et tableau des départs, Le fil en flux ou en grille, Textes, Images, sons & objets, Open Cine Prod Tools.
Version: 2.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: astra-child
Template: astra
*/

/* ==========================================================================
   1. Jetons : couleurs jour (par défaut) et nuit, polices, mesures
   ========================================================================== */

/* Voyage de jour par défaut : le texte sombre sur fond clair se lit mieux (lecture en polarité positive). */
:root {
	--fond: #f3eee3;
	--panneau: #fbf8f1;
	--panneau-fonce: #fbf8f1;
	--texte: #1c2236;
	--texte-doux: #3e4660;
	--texte-2: #5c6478;
	--accent: #9a5a2e;
	--accent-2: #4b6d8c;
	--sur-accent: #f3eee3;
	--bordure: rgba(28, 34, 54, 0.14);
	--bordure-forte: rgba(28, 34, 54, 0.32);
	--bordure-accent: rgba(154, 90, 46, 0.35);
	--survol: rgba(154, 90, 46, 0.07);

	/* Pastilles de type (Le fil) */
	--t-poeme: #9a5a2e;
	--t-recit: #2f6e8c;
	--t-pensee: #7a4e99;
	--t-image: #3e7a4a;
	--t-film: #a4502f;
	--t-coulisses: #5c6478;

	--fonte-texte: "BBB ReadMe", system-ui, sans-serif;
	--fonte-titres: "Fraunces", Georgia, serif;
	--largeur: 1180px;
	--lecture: 860px;
	--gouttiere: 48px;
	--rayon: 12px;
	color-scheme: light;
}

/* Voyage de nuit : au choix du visiteur (classe posée sur <html>, mémorisée dans le navigateur). */
html.voyage-nuit {
	--fond: #0e1424;
	--panneau: #121a2e;
	--panneau-fonce: #0a101d;
	--texte: #ede6d6;
	--texte-doux: #d6cfbf;
	--texte-2: #b9b2a3;
	--accent: #e2b46a;
	--accent-2: #7fb3c8;
	--sur-accent: #0e1424;
	--bordure: rgba(237, 230, 214, 0.12);
	--bordure-forte: rgba(237, 230, 214, 0.3);
	--bordure-accent: rgba(226, 180, 106, 0.35);
	--survol: rgba(226, 180, 106, 0.08);

	--t-poeme: #e2b46a;
	--t-recit: #7fb3c8;
	--t-pensee: #c9a7d9;
	--t-image: #9cc7a2;
	--t-film: #f0a88c;
	--t-coulisses: #b9b2a3;
	color-scheme: dark;
}

@media (max-width: 921px) {
	:root { --gouttiere: 24px; }
}
@media (max-width: 544px) {
	:root { --gouttiere: 16px; }
}

/* ==========================================================================
   2. Base : fond, texte, liens, titres (passe devant les couleurs d'Astra)
   ========================================================================== */

html body,
html body #page,
html body .site-content,
html body .ast-separate-container,
html body .ast-plain-container,
html body .ast-page-builder-template,
html body .ast-separate-container .ast-article-single,
html body .ast-separate-container .comments-area,
html body .ast-separate-container .ast-author-box,
html body .ast-separate-container .ast-archive-description {
	background-color: var(--fond);
	color: var(--texte);
}

html body {
	font-family: var(--fonte-texte);
	transition: background-color .25s ease, color .25s ease;
}

html body a,
html body .entry-content a,
html body .entry-title a {
	color: var(--texte);
}
html body a:hover,
html body a:focus,
html body .entry-content a:hover,
html body .entry-title a:hover {
	color: var(--accent);
}
html body .entry-content a {
	text-decoration-color: var(--bordure-accent);
	text-underline-offset: 3px;
}

html body h1, html body h2, html body h3, html body h4, html body h5, html body h6,
html body .entry-title,
html body .ast-archive-title,
html body .site-title {
	font-family: var(--fonte-titres);
	color: var(--texte);
}

:focus-visible {
	outline: 2px solid var(--accent);
	outline-offset: 3px;
}

/* Boutons */
html body .wp-block-button__link,
html body .ast-button,
html body button.ast-custom-button,
html body input[type="submit"],
html body .wp-element-button {
	background: var(--accent);
	color: var(--sur-accent);
	border: 1px solid var(--accent);
	border-radius: 8px;
	font-family: var(--fonte-texte);
	font-weight: 700;
	min-height: 48px;
	padding: 12px 22px;
}
html body .wp-block-button__link:hover,
html body input[type="submit"]:hover {
	background: var(--texte);
	border-color: var(--texte);
	color: var(--fond);
}
html body .wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--texte);
	border-color: var(--bordure-forte);
	font-weight: 400;
}
html body .wp-block-button.is-style-outline .wp-block-button__link:hover {
	border-color: var(--accent);
	color: var(--accent);
}

/* Petites capitales d'annonce (surtitres) */
.gare-surtitre,
html body .entry-content .gare-surtitre {
	margin: 0 0 12px;
	font-size: 13px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--accent);
}

.gare-icone {
	width: 1em;
	height: 1em;
	flex: none;
}

/* ==========================================================================
   3. En-tête
   ========================================================================== */

html body .site-header,
html body .ast-primary-header-bar,
html body .main-header-bar,
html body #ast-mobile-header,
html body .ast-mobile-header-wrap .ast-primary-header-bar {
	background: var(--fond);
	border-bottom: 1px solid var(--bordure);
}
html body .ast-primary-header-bar { border-bottom: 0; }

html body .site-title a,
html body .site-title a:hover {
	color: var(--texte);
	font-family: var(--fonte-titres);
	font-weight: 500;
	font-size: 22px;
}
html body .site-description {
	color: var(--texte-2);
	font-size: 12px;
	letter-spacing: .06em;
	text-transform: uppercase;
}
html body .custom-logo-link svg,
html body .custom-logo-link img { color: var(--accent); }

/* Menu principal : une seule ligne, discret */
html body .main-header-menu .menu-item > .menu-link,
html body .ast-builder-menu-1 .menu-item > .menu-link {
	color: var(--texte);
	font-size: 16px;
	padding: 0 12px;
	min-height: 44px;
	line-height: 44px;
	letter-spacing: .02em;
	border-radius: 6px;
	white-space: nowrap;
}
html body .main-header-menu .menu-item > .menu-link:hover,
html body .ast-builder-menu-1 .menu-item:hover > .menu-link {
	color: var(--accent);
	background: var(--survol);
}
html body .main-header-menu .current-menu-item > .menu-link,
html body .main-header-menu .current-menu-ancestor > .menu-link,
html body .ast-builder-menu-1 .current-menu-item > .menu-link {
	color: var(--accent);
}
html body .ast-builder-menu-1 .main-header-menu { flex-wrap: nowrap; align-items: center; }
html body .ast-header-search .astra-search-icon,
html body .ast-header-search .ast-icon { color: var(--texte); }

/* Bouton jour / nuit */
.gare-menu-ambiance { display: flex; align-items: center; margin-left: 8px; }
.gare-bascule-ambiance,
html body .gare-bascule-ambiance {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 14px;
	border: 1px solid var(--bordure-accent);
	border-radius: 999px;
	background: transparent;
	color: var(--accent);
	font-family: var(--fonte-texte);
	font-size: 14px;
	font-weight: 400;
	line-height: 1;
	cursor: pointer;
	white-space: nowrap;
}
.gare-bascule-ambiance:hover,
html body .gare-bascule-ambiance:hover {
	background: var(--survol);
	color: var(--accent);
	border-color: var(--accent);
}
.gare-bascule-ambiance > span { display: inline-flex; align-items: center; gap: 8px; }
/* Le bouton propose l'autre ambiance : « Voyage de nuit » le jour, « Voyage de jour » la nuit. */
.gare-ambiance-jour,
html.voyage-nuit .gare-ambiance-nuit { display: none !important; }
html.voyage-nuit .gare-ambiance-jour { display: inline-flex !important; }

/* En-tête serré : sous 1366 px le menu se resserre ; sous 1200 px le bouton jour / nuit garde son icône
   et son libellé n'est lu que par les lecteurs d'écran. Le menu mobile (sous 922 px) n'est pas concerné. */
@media (max-width: 1365px) {
	html body .ast-builder-menu-1 .menu-item > .menu-link { font-size: 15px; padding: 0 9px; }
	html body .ast-builder-menu-1 .gare-bascule-ambiance { padding: 0 12px; font-size: 13px; }
}
@media (min-width: 922px) and (max-width: 1099px) {
	html body .site-header .site-description { display: none !important; }
	html body .site-title { white-space: nowrap; }
	html body .site-title a { font-size: 19px; }
	html body .ast-builder-menu-1 .menu-item > .menu-link { font-size: 14px; padding: 0 7px; }
}
@media (min-width: 922px) and (max-width: 999px) {
	html body .ast-primary-header-bar .ast-container { padding-left: 20px; padding-right: 20px; }
	html body .site-title a { font-size: 18px; }
	html body .ast-builder-menu-1 .menu-item > .menu-link { padding: 0 5px; }
	html body .ast-builder-menu-1 .gare-menu-ambiance { margin-left: 4px; }
}
@media (min-width: 922px) and (max-width: 1199px) {
	html body .ast-builder-menu-1 .gare-ambiance-libelle {
		position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
	}
	html body .ast-builder-menu-1 .gare-bascule-ambiance { padding: 0 11px; }
	html body .ast-builder-menu-1 .gare-bascule-ambiance > span { gap: 0; }
}

/* Menu mobile */
html body .ast-mobile-popup-drawer .ast-mobile-popup-inner,
html body .ast-mobile-header-content,
html body .ast-header-break-point .main-header-bar-navigation .main-header-menu {
	background: var(--fond);
}
html body .ast-header-break-point .main-navigation ul .menu-item .menu-link,
html body .ast-mobile-popup-content .menu-item > .menu-link {
	color: var(--texte);
	border-color: var(--bordure);
	font-size: 18px;
}
html body .ast-mobile-menu-trigger-minimal,
html body .menu-toggle { color: var(--texte); background: transparent; }
html body .ast-mobile-popup-content .gare-menu-ambiance { margin: 16px 20px; }

/* ==========================================================================
   4. Pied de page
   ========================================================================== */

html body .site-footer,
html body .site-below-footer-wrap,
html body .site-below-footer-wrap[data-section="section-below-footer-builder"] {
	background: var(--fond);
	border-top: 1px solid var(--bordure);
}
html body .ast-footer-copyright { width: 100%; color: var(--texte-2); }
html body .ast-footer-copyright p { margin: 0; }
.gare-pied {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px 24px;
	width: 100%;
	font-size: 14px;
	color: var(--texte-2);
	text-align: left;
}
.gare-pied-liens { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; }
html body .gare-pied a { color: var(--texte-2); text-decoration: none; }
html body .gare-pied a:hover { color: var(--accent); }
/* Logos des autres quais (Twitch, Vimeo…) : monochromes, au trait de la couleur du texte. */
.gare-pied-reseaux { display: inline-flex; align-items: center; gap: 4px; margin-left: 6px; }
html body .gare-pied-reseaux a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
}
html body .gare-pied-reseaux a:hover,
html body .gare-pied-reseaux a:focus-visible { background: var(--survol); }
/* Tracés des logos (Simple Icons, CC0) en masques : la couleur suit le texte. */
.gare-logo { display: block; width: 19px; height: 19px; background: currentColor; -webkit-mask: var(--logo) center / contain no-repeat; mask: var(--logo) center / contain no-repeat; }
.gare-logo--twitch { --logo: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z'/></svg>"); }
.gare-logo--vimeo { --logo: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M23.9765 6.4168c-.105 2.338-1.739 5.5429-4.894 9.6088-3.2679 4.247-6.0258 6.3699-8.2898 6.3699-1.409 0-2.578-1.294-3.553-3.881l-1.9179-7.1138c-.719-2.584-1.488-3.878-2.312-3.878-.179 0-.806.378-1.8809 1.132l-1.129-1.457a315.06 315.06 0 003.501-3.1279c1.579-1.368 2.765-2.085 3.5539-2.159 1.867-.18 3.016 1.1 3.447 3.838.465 2.953.789 4.789.971 5.5069.5389 2.45 1.1309 3.674 1.7759 3.674.502 0 1.256-.796 2.265-2.385 1.004-1.589 1.54-2.797 1.612-3.628.144-1.371-.395-2.061-1.614-2.061-.574 0-1.167.121-1.777.391 1.186-3.8679 3.434-5.7568 6.7619-5.6368 2.4729.06 3.6279 1.664 3.4929 4.7969z'/></svg>"); }
.gare-logo--youtube { --logo: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z'/></svg>"); }
.gare-logo--instagram { --logo: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.007-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077'/></svg>"); }
.gare-logo--flickr { --logo: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M5.334 6.666C2.3884 6.666 0 9.055 0 12c0 2.9456 2.3884 5.334 5.334 5.334 2.9456 0 5.332-2.3884 5.332-5.334 0-2.945-2.3864-5.334-5.332-5.334zm13.332 0c-2.9456 0-5.332 2.389-5.332 5.334 0 2.9456 2.3864 5.334 5.332 5.334C21.6116 17.334 24 14.9456 24 12c0-2.945-2.3884-5.334-5.334-5.334Z'/></svg>"); }
.gare-logo--github { --logo: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/></svg>"); }
html body .site-footer-section-1 { width: 100%; }

/* ==========================================================================
   5. Pastilles de type
   ========================================================================== */

.gare-badge {
	--t: var(--t-coulisses);
	display: inline-flex;
	align-items: center;
	padding: 2px 10px;
	border: 1px solid var(--t);
	border-radius: 999px;
	color: var(--t);
	font-family: var(--fonte-texte);
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .12em;
	line-height: 1.6;
	text-transform: uppercase;
	white-space: nowrap;
}
.gare-badge--poeme { --t: var(--t-poeme); }
.gare-badge--recit { --t: var(--t-recit); }
.gare-badge--pensee { --t: var(--t-pensee); }
.gare-badge--peinture,
.gare-badge--maquette,
.gare-badge--photo { --t: var(--t-image); }
.gare-badge--film,
.gare-badge--son { --t: var(--t-film); }

/* ==========================================================================
   6. Archives : Le fil, Textes, catégories
   ========================================================================== */

html body.archive .site-content > .ast-container,
html body.blog .site-content > .ast-container,
html body.search .site-content > .ast-container {
	max-width: calc(var(--largeur) + 2 * var(--gouttiere));
	padding: 0 var(--gouttiere);
}

/* En-tête d'archive */
html body .ast-archive-description,
html body .ast-archive-entry-banner,
html body section.ast-archive-description {
	background: transparent;
	padding: 48px 0 8px;
	margin: 0;
	border: 0;
	text-align: left;
}
html body .ast-archive-description .ast-archive-title,
html body .ast-archive-entry-banner .ast-archive-title,
html body .ast-archive-entry-banner h1 {
	font-family: var(--fonte-titres);
	font-weight: 300;
	font-size: 48px;
	line-height: 1.1;
	color: var(--texte);
}
html body .ast-archive-description p,
html body .ast-archive-entry-banner .ast-archive-description p {
	color: var(--texte-2);
	font-size: 18px;
	max-width: 60ch;
}

/* Barre d'outils : filtres + bascule */
.gare-outils-fil {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin: 24px 0 8px;
	padding: 14px 0;
	border-top: 1px solid var(--bordure);
	border-bottom: 1px solid var(--bordure);
}
.gare-filtres { display: flex; flex-wrap: wrap; gap: 8px; }
html body .gare-filtre {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 16px;
	border: 1px solid var(--bordure-forte);
	border-radius: 999px;
	color: var(--texte);
	font-size: 15px;
	text-decoration: none;
}
html body .gare-filtre:hover { border-color: var(--accent); color: var(--accent); }
html body .gare-filtre.est-actif {
	background: var(--accent);
	border-color: var(--accent);
	color: var(--sur-accent);
	font-weight: 700;
}
.gare-bascule-vue {
	display: flex;
	gap: 4px;
	padding: 4px;
	margin-left: auto;
	border: 1px solid var(--bordure-forte);
	border-radius: 8px;
}
html body .gare-bascule-vue button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 40px;
	padding: 0 14px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	color: var(--texte);
	font-family: var(--fonte-texte);
	font-size: 15px;
	font-weight: 400;
	cursor: pointer;
}
html body .gare-bascule-vue button[aria-pressed="true"] {
	background: var(--accent);
	color: var(--sur-accent);
	font-weight: 700;
}
html body .gare-bascule-vue .gare-icone { width: 18px; height: 18px; }

/* Cartes (vue grille) */
html body .ast-row { margin-left: -10px; margin-right: -10px; }
html body .ast-archive-post {
	padding: 10px;
	margin-bottom: 0;
	background: transparent;
}
html body .ast-archive-post .ast-article-inner {
	height: 100%;
	padding: 24px;
	background: var(--panneau);
	border: 1px solid var(--bordure);
	border-radius: var(--rayon);
	box-shadow: none;
	transition: border-color .2s ease;
}
html body .ast-archive-post .ast-article-inner:hover { border-color: var(--accent); }
html body .ast-archive-post .post-content { padding: 0; }
html body .ast-archive-post .ast-blog-featured-section:empty { display: none; }
html body .ast-archive-post .ast-taxonomy-container {
	display: block;
	margin: 0 0 12px;
	font-size: 12px;
}
html body .ast-archive-post .entry-title {
	margin: 0 0 6px;
	font-family: var(--fonte-titres);
	font-weight: 500;
	font-size: 24px;
	line-height: 1.2;
}
html body .ast-archive-post .entry-meta,
html body .ast-archive-post .entry-meta * {
	color: var(--texte-2);
	font-size: 14px;
	font-weight: 400;
}
html body .ast-archive-post .ast-excerpt-container {
	margin-top: 12px;
	font-size: 16px;
	line-height: 1.65;
	color: var(--texte-doux);
}
html body .ast-archive-post .ast-excerpt-container p { margin: 0 0 .8em; }
html body .ast-archive-post .ast-excerpt-container p:last-child { margin-bottom: 0; }
html body .gare-suite a { color: var(--accent); text-decoration: none; }
html body .gare-suite a:hover { text-decoration: underline; }

/* En grille, l'extrait est tenu court ; la suite se lit en flux ou sur l'article */
html:not(.gare-vue-flux) body .ast-archive-post .ast-excerpt-container {
	display: -webkit-box;
	-webkit-line-clamp: 9;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
html:not(.gare-vue-flux) body .ast-archive-post .gare-suite { display: none; }

/* Vue « lire à la suite » : une colonne de lecture, sans cadre */
html.gare-vue-flux body .ast-row { display: block; margin: 0; }
html.gare-vue-flux body .ast-archive-post {
	width: 100%;
	max-width: 760px;
	float: none;
	padding: 0;
}
html.gare-vue-flux body .ast-archive-post .ast-article-inner {
	padding: 36px 0;
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--bordure);
	border-radius: 0;
}
html.gare-vue-flux body .ast-archive-post .entry-title { font-size: 30px; }
html.gare-vue-flux body .ast-archive-post .ast-excerpt-container {
	font-size: 19px;
	line-height: 1.75;
	color: var(--texte);
}

/* Pagination et chargement continu */
html body .ast-pagination a,
html body .ast-pagination span,
html body .ast-load-more { color: var(--texte); }
html body .ast-pagination .page-numbers.current {
	background: var(--accent);
	border-color: var(--accent);
	color: var(--sur-accent);
}
html body .ast-loader > div { background-color: var(--accent); }
html body .ast-load-more {
	background: transparent;
	border: 1px solid var(--bordure-forte);
	border-radius: 8px;
}

/* ==========================================================================
   7. Article
   ========================================================================== */

html body.single-post .site-content > .ast-container {
	padding: 0 var(--gouttiere);
}
html body.single-post .ast-single-post-featured-section,
html body.single-post .ast-article-single .post-thumb-img-content {
	margin: 0 0 32px;
}
html body.single-post .ast-article-single .post-thumb-img-content img,
html body.single-post .ast-single-post-featured-section img {
	width: 100%;
	height: 220px;
	object-fit: cover;
	border-radius: 0;
}
.gare-meta-article {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
	margin: 0 0 14px;
	font-size: 13px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--texte-2);
}
html body.single-post .entry-header .entry-title,
html body.single-post .ast-single-entry-banner .entry-title {
	font-family: var(--fonte-titres);
	font-weight: 300;
	font-size: 46px;
	line-height: 1.1;
	margin-bottom: 28px;
}
html body.single-post .entry-content {
	font-size: 18px;
	line-height: 1.75;
	color: var(--texte);
}
html body.single-post .entry-content p { margin-bottom: 1.4em; }
html body.single-post .ast-article-single { padding-top: 32px; }

/* Navigation entre articles */
html body .post-navigation {
	border-top: 1px solid var(--bordure);
	padding-top: 24px;
	margin-top: 24px;
}
html body .post-navigation .nav-links {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}
html body .post-navigation .nav-links > div { width: auto; max-width: none; flex: none; }
html body .post-navigation a {
	display: flex;
	flex-direction: column;
	gap: 6px;
	height: 100%;
	padding: 18px;
	border: 1px solid var(--bordure);
	border-radius: 10px;
	text-decoration: none;
}
html body .post-navigation a:hover { border-color: var(--accent); }
html body .post-navigation .nav-next a { text-align: right; align-items: flex-end; }
html body .post-navigation .ast-post-nav {
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--texte-2);
}
html body .post-navigation p {
	margin: 0;
	font-family: var(--fonte-titres);
	font-size: 20px;
	color: var(--texte);
}
html body .post-navigation .nav-previous:only-child { grid-column: 1; }
html body .post-navigation .nav-next:only-child { grid-column: 2; }

/* Commentaires */
html body .comments-area,
html body .comment-respond { background: transparent; color: var(--texte); }
html body .comments-title,
html body .comment-reply-title { font-family: var(--fonte-titres); font-weight: 500; font-size: 24px; }
html body .comment-form input[type="text"],
html body .comment-form input[type="email"],
html body .comment-form input[type="url"],
html body .comment-form textarea,
html body input[type="search"] {
	background: var(--panneau-fonce);
	border: 1px solid var(--bordure-forte);
	border-radius: 8px;
	color: var(--texte);
	font-family: var(--fonte-texte);
	font-size: 16px;
}
html body .comment-form ::placeholder { color: var(--texte-2); }
html body .ast-comment-list .ast-comment-content,
html body .ast-comment-list .ast-comment-meta { color: var(--texte); }
html body .ast-comment-list > li,
html body .ast-comment-list .comment { border-color: var(--bordure); }

/* Commentaires : chaque commentaire est une carte */
html body .comments-area .comments-title,
html body .comments-area .comment-reply-title,
html body.ast-separate-container .comments-title,
html body.ast-narrow-container .comments-title { margin: 0 0 16px; padding: 0; }
html body .ast-comment-list li.comment,
html body .ast-comment-list li.comment .ast-comment-info {
	margin: 0;
	padding: 0;
	border: 0;
}
html body .ast-comment-list li.comment { list-style: none; }
html body.ast-separate-container .ast-comment-list li.comment,
html body.ast-narrow-container .ast-comment-list li.comment,
html body.ast-separate-container .ast-comment-list li.depth-1 .children li { padding: 0; }
html body .comments-area .comment-respond { padding-left: 0; padding-right: 0; }
html body .comments-area .ast-comment-list + .comment-respond { border-top-color: var(--bordure); }
html body .ast-comment-list article.ast-comment {
	margin: 0 0 12px;
	padding: 16px 18px;
	background: var(--panneau);
	border: 1px solid var(--bordure);
	border-radius: var(--rayon);
}
html body .ast-comment-list ol.children { margin: 0 0 0 28px; padding: 0; list-style: none; }
html body .ast-comment-list .ast-comment-info {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 8px;
}
html body .ast-comment-list .ast-comment-avatar-wrap { margin: 0; padding: 0; flex: none; }
html body .ast-comment-list .ast-comment-avatar-wrap img.avatar {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: block;
}
html body .ast-comment-list header.ast-comment-meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
	width: auto;
	align-items: baseline;
	gap: 2px 10px;
	margin: 0;
	padding: 0;
}
html body .ast-comment-list .ast-comment-cite-wrap,
html body .ast-comment-list .ast-comment-time { margin: 0; padding: 0; }
html body .ast-comment-list .ast-comment-time { margin-left: 0; font-weight: 400; }
html body .ast-comment-list .ast-comment-cite-wrap cite { font-style: normal; }
html body .ast-comment-list .ast-comment-cite-wrap cite { font-size: 15px; font-weight: 700; }
html body .ast-comment-list b.fn { font-size: 15px; font-weight: 700; color: var(--texte); }
html body .ast-comment-list .ast-comment-time,
html body .ast-comment-list .ast-comment-time a { font-size: 13px; color: var(--texte-2); text-decoration: none; }
html body .ast-comment-list section.ast-comment-content {
	margin: 0;
	padding: 0;
	font-size: 16px;
	line-height: 1.6;
}
html body .ast-comment-list .ast-comment-content p { margin: 0 0 8px; }
html body .ast-comment-list .ast-comment-edit-reply-wrap { margin: 0; padding: 0; text-align: right; }
html body .ast-comment-list .ast-reply-link a.comment-reply-link {
	padding: 0;
	border: 0;
	background: transparent;
	font-size: 13px;
	color: var(--texte-2);
	text-decoration: none;
}
html body .ast-comment-list .ast-reply-link a.comment-reply-link:hover { color: var(--accent); }
@media (max-width: 600px) {
	html body .comment-form .ast-row { flex-direction: column; gap: 0; }
}

/* Jetpack « Partager » et « J'aime » : titres et filets aux couleurs du thème. Le widget J'aime est une
   iframe wp.com qui copie les couleurs de .sd-text-color / .sd-link-color (message injectStyles, voir gare.js) ;
   son color-scheme reste clair pour que l'iframe reste transparente en voyage de nuit. */
html body div.sharedaddy h3.sd-title {
	font-family: var(--fonte-texte);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--texte-2);
}
html body div.sharedaddy h3.sd-title:before { border-top-color: var(--bordure-forte); }
html body .sharedaddy .sd-text-color { color: var(--texte); font-family: var(--fonte-texte); font-size: 14px; }
html body .sharedaddy .sd-link-color { color: var(--accent); font-family: var(--fonte-texte); font-size: 14px; text-decoration: none; }
html body iframe.jetpack-likes-widget,
html body .jetpack-comment-likes-widget-wrapper iframe { color-scheme: light; }

/* ==========================================================================
   8. Pages
   ========================================================================== */

html body.page .site-content > .ast-container {
	max-width: calc(var(--largeur) + 2 * var(--gouttiere));
	padding: 0 var(--gouttiere);
}
/* Conteneur étroit choisi dans les réglages Astra de la page : la colonne de lecture des articles. */
html body.page.ast-narrow-container .site-content > .ast-container {
	max-width: calc(var(--ast-narrow-container-width, var(--lecture)) + 2 * var(--gouttiere));
}
html body.page:not(.gare-quai) .entry-header .entry-title {
	font-family: var(--fonte-titres);
	font-weight: 300;
	font-size: 48px;
	line-height: 1.1;
}
html body.page:not(.gare-quai) .ast-article-single { padding-top: 48px; }
/* Astra ajoute 60 px de marge au-dessus du contenu : la maquette n'en a que 48 au total. */
html body #primary,
html body.ast-separate-container #primary { margin-top: 0 !important; }
html body.single-post .ast-article-single { padding-top: 48px; }

/* Onglets au-dessus du titre (Textes, Images, sons & objets, Open Cine Prod Tools) */
html body .gare-onglets-bloc--surtitre { margin-bottom: 0; }
html body .gare-onglets-bloc--surtitre .gare-surtitre { margin-bottom: 0; }
html body.archive .gare-onglets-bloc--surtitre { padding-bottom: 6px; }
html body.archive .gare-onglets-bloc--surtitre + .ast-archive-description { padding-top: 10px !important; }
html body .gare-onglets-bloc .gare-surtitre a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--bordure-accent); }
html body .gare-onglets-bloc .gare-surtitre a:hover { border-bottom-color: var(--accent); }
.gare-onglets-bloc { margin: 0 0 28px; }
html body.archive .gare-onglets-bloc { padding-top: 48px; margin-bottom: 0; }
.gare-onglets {
	display: flex;
	flex-wrap: wrap;
	gap: 0 28px;
	border-bottom: 1px solid var(--bordure);
}
html body .gare-onglet {
	display: inline-block;
	padding: 12px 0;
	margin-bottom: -1px;
	border-bottom: 2px solid transparent;
	color: var(--texte);
	font-size: 17px;
	text-decoration: none;
}
html body .gare-onglet:hover { color: var(--accent); }
html body .gare-onglet.est-actif { color: var(--accent); border-bottom-color: var(--accent); }
html body.archive .gare-onglets-bloc + .ast-archive-description,
html body.archive .gare-onglets-bloc ~ .ast-archive-entry-banner { padding-top: 24px; }

/* ==========================================================================
   9. Le Quai (page d'accueil)
   ========================================================================== */

html body.gare-quai .site-content > .ast-container { max-width: none; padding: 0; }
html body.gare-quai .ast-article-single,
html body.gare-quai .entry-content { padding: 0; margin: 0; }
html body.gare-quai .entry-content > * {
	max-width: calc(var(--largeur) + 2 * var(--gouttiere));
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--gouttiere);
	padding-right: var(--gouttiere);
	box-sizing: border-box;
}

/* Hero : ciel étoilé la nuit, soleil pâle le jour */
html body .gare-hero {
	position: relative;
	max-width: none !important;
	padding-top: 72px !important;
	padding-bottom: 56px !important;
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1280 620' preserveAspectRatio='xMidYMid slice'%3E%3Ccircle cx='1120' cy='110' r='120' fill='%23EAD9B8'/%3E%3Cpath d='M-20 560 C 300 400, 900 400, 1300 560' stroke='%234B6D8C' stroke-width='1' fill='none' opacity='.5'/%3E%3Cpath d='M-20 600 C 320 440, 920 440, 1300 600' stroke='%239A5A2E' stroke-width='1' fill='none' opacity='.4'/%3E%3Cpath d='M80 90 L 130 70 L 190 95' stroke='%234B6D8C' stroke-width='1' fill='none' opacity='.6'/%3E%3C/svg%3E");
}
html.voyage-nuit body .gare-hero {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1280 620' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='%23EDE6D6' opacity='.6'%3E%3Ccircle cx='90' cy='60' r='1.4'/%3E%3Ccircle cx='220' cy='140' r='1'/%3E%3Ccircle cx='410' cy='40' r='1.8'/%3E%3Ccircle cx='560' cy='110' r='1.1'/%3E%3Ccircle cx='700' cy='30' r='1.3'/%3E%3Ccircle cx='980' cy='70' r='1'/%3E%3Ccircle cx='1180' cy='150' r='1.6'/%3E%3Ccircle cx='1240' cy='40' r='1'/%3E%3Ccircle cx='150' cy='420' r='1.2'/%3E%3Ccircle cx='330' cy='560' r='1'/%3E%3Ccircle cx='1100' cy='520' r='1.4'/%3E%3Ccircle cx='860' cy='590' r='1'/%3E%3Ccircle cx='40' cy='300' r='1'/%3E%3Ccircle cx='1260' cy='330' r='1.2'/%3E%3C/g%3E%3Cpath d='M700 520 C 860 300, 1180 300, 1340 540' stroke='%23E2B46A' stroke-width='1.2' fill='none' opacity='.5'/%3E%3Cpath d='M740 560 C 880 380, 1160 380, 1300 580' stroke='%237FB3C8' stroke-width='1' fill='none' opacity='.4'/%3E%3Cpath d='M100 120 L 150 95 L 205 118' stroke='%237FB3C8' stroke-width='1' fill='none' opacity='.6'/%3E%3C/svg%3E");
}
html body .gare-hero > .wp-block-columns {
	max-width: var(--largeur);
	margin: 0 auto;
	gap: 32px;
	align-items: center;
}
html body .gare-hero h1 {
	margin: 0 0 22px;
	max-width: 12ch;
	font-family: var(--fonte-titres);
	font-weight: 300;
	font-size: clamp(38px, 5.2vw, 64px);
	line-height: 1.04;
}
html body .gare-hero .gare-accroche {
	max-width: 52ch;
	font-size: 19px;
	line-height: 1.6;
	color: var(--texte-doux);
}
html body .gare-hero .wp-block-buttons { margin-top: 28px; gap: 12px; }

/* L'aquarelle (et son emplacement tant qu'elle n'est pas là) */
html body .gare-aquarelle { margin: 0; }
html body .gare-aquarelle img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: 6px;
	border: 1px solid var(--bordure-accent);
}
html body .gare-aquarelle figcaption,
html body .gare-aquarelle-vide .gare-legende {
	margin-top: 10px;
	font-size: 13px;
	font-style: italic;
	color: var(--texte-2);
	text-align: left;
}
html body .gare-aquarelle-vide .gare-cadre {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 12px;
	aspect-ratio: 4 / 5;
	padding: 24px;
	border: 1px solid var(--bordure-accent);
	border-radius: 6px;
	background: var(--panneau);
	text-align: center;
	color: var(--texte-2);
	font-size: 14px;
}
html body .gare-aquarelle-vide .gare-cadre strong {
	color: var(--accent);
	font-weight: 400;
	letter-spacing: .1em;
	text-transform: uppercase;
}

/* Sections du Quai */
html body .gare-section { padding-top: 24px; padding-bottom: 56px; }
html body .gare-section-tete {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 18px;
}
html body .gare-section-tete h2 { margin: 0; font-weight: 500; font-size: 28px; }
html body .gare-section-tete p { margin: 0; font-size: 15px; }
html body .gare-section-tete a { color: var(--accent); text-decoration: none; }

/* Tableau des départs */
.gare-departs {
	overflow-x: auto;
	border: 1px solid var(--bordure-accent);
	border-radius: 10px;
	background: var(--panneau-fonce);
}
.gare-departs table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: 17px;
}
html body .gare-departs th,
html body .gare-departs td {
	padding: 16px 20px;
	border: 0;
	text-align: left;
	vertical-align: middle;
}
html body .gare-departs th {
	color: var(--accent);
	font-size: 13px;
	font-weight: 400;
	letter-spacing: .14em;
	text-transform: uppercase;
	background: transparent;
}
html body .gare-departs tbody tr { border-top: 1px solid var(--bordure); }
html body .gare-departs tbody tr:hover td { background: var(--survol); }
.gare-departs-heure,
.gare-departs-voie { color: var(--texte-2); width: 1%; white-space: nowrap; }
.gare-departs-heure { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
html body .gare-departs-destination a {
	font-family: var(--fonte-titres);
	font-size: 21px;
	color: var(--texte);
	text-decoration: none;
}
html body .gare-departs-destination a:hover { color: var(--accent); }
.gare-departs-etat { color: var(--accent); width: 1%; white-space: nowrap; }
.gare-departs-etat--revise { color: var(--accent-2); }

/* Destinations : cartes cliquables, icône dessinée par la feuille de style */
html body .gare-destinations > .wp-block-group__inner-container,
html body .gare-destinations.is-layout-grid,
html body .gare-destinations-grille {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 20px;
}
html body .gare-destination {
	--icone: none;
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-height: 200px;
	margin: 0 !important;
	padding: 26px 24px;
	border: 1px solid var(--bordure);
	border-radius: var(--rayon);
	background: var(--panneau);
	transition: border-color .2s ease;
}
html body .gare-destination:hover,
html body .gare-destination:focus-within { border-color: var(--accent); }
html body .gare-destination::before {
	content: "";
	width: 34px;
	height: 34px;
	background: var(--accent);
	-webkit-mask: var(--icone) center / contain no-repeat;
	mask: var(--icone) center / contain no-repeat;
}
html body .gare-destination h3 { margin: 0; font-weight: 400; font-size: 24px; }
html body .gare-destination h3 a { color: var(--texte); text-decoration: none; }
html body .gare-destination h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
html body .gare-destination p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--texte-2); }
.gare-dest--textes { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M5 4h11l3 3v13H5z'/%3E%3Cpath d='M8 10h8M8 14h8M8 18h5'/%3E%3C/svg%3E") !important; }
.gare-dest--films { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 9h18M3 15h18M8 5v14M16 5v14'/%3E%3C/svg%3E") !important; }
.gare-dest--sons { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M4 14v-3a8 8 0 0 1 16 0v3'/%3E%3Crect x='3' y='13' width='4' height='6' rx='1'/%3E%3Crect x='17' y='13' width='4' height='6' rx='1'/%3E%3C/svg%3E") !important; }
.gare-dest--images { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Ccircle cx='9' cy='10' r='2'/%3E%3Cpath d='m21 16-5-5-8 9'/%3E%3C/svg%3E") !important; }
.gare-dest--photos { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M4 8h3.5l2-3h5l2 3H20v11H4z'/%3E%3Ccircle cx='12' cy='13' r='3.5'/%3E%3C/svg%3E") !important; }
.gare-dest--arts { --icone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'%3E%3Cpath d='M12 3a9 9 0 1 0 0 18c1.6 0 2.2-1.1 1.6-2.2-.5-1 .2-2 1.4-2h1.6A3.4 3.4 0 0 0 20 13.4C20 7.8 16.4 3 12 3z'/%3E%3Ccircle cx='7.5' cy='12' r='1.1'/%3E%3Ccircle cx='9.5' cy='8' r='1.1'/%3E%3Ccircle cx='14' cy='7' r='1.1'/%3E%3C/svg%3E") !important; }
.gare-dest--machinerie { --icone: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5'><rect x='2' y='4' width='4' height='4' rx='1' fill='black' stroke='none'/><rect x='2' y='10' width='4' height='4' rx='1' fill='black' stroke='none'/><rect x='2' y='16' width='4' height='4' rx='1' fill='black' stroke='none'/><rect x='9.5' y='3.5' width='12' height='17' rx='2'/></svg>") !important; } /* marque d'Open Cine Prod Tools */

/* Le chef de gare */
html body .gare-chef {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	gap: 32px;
	align-items: center;
	margin-bottom: 64px !important;
	padding: 36px 40px !important;
	max-width: var(--largeur) !important;
	border: 1px solid var(--bordure-accent);
	border-radius: var(--rayon);
}
html body .gare-chef > .wp-block-group__inner-container { display: contents; }
html body .gare-chef .gare-citation {
	margin: 0 0 12px;
	font-family: var(--fonte-titres);
	font-weight: 300;
	font-size: 24px;
	line-height: 1.4;
}
html body .gare-chef .gare-lien-accent a { color: var(--accent); text-decoration: none; }
html body .gare-chef .wp-block-buttons { flex-direction: column; align-items: stretch; gap: 10px; }
html body .gare-chef .wp-block-button,
html body .gare-chef .wp-block-button__link { width: 100%; text-align: center; }

/* ==========================================================================
   10. Mobile
   ========================================================================== */

@media (max-width: 921px) {
	html body .gare-destinations > .wp-block-group__inner-container,
	html body .gare-destinations.is-layout-grid,
	html body .gare-destinations-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	html body .gare-destination { min-height: 120px; padding: 18px; }
	html body .gare-destination:last-child { grid-column: 1 / -1; }
	html body .gare-chef { grid-template-columns: 1fr; padding: 24px !important; }
	html body.single-post .entry-header .entry-title { font-size: 34px; }
	html body .ast-archive-description .ast-archive-title,
	html body .ast-archive-entry-banner .ast-archive-title { font-size: 38px; }
}

@media (max-width: 781px) {
	html body .gare-hero { padding-top: 32px !important; }
	html body .gare-hero > .wp-block-columns { gap: 20px; }
	html body .gare-hero .wp-block-buttons { flex-direction: column; align-items: stretch; }
	html body .gare-hero .wp-block-button__link { width: 100%; text-align: center; }

	/* Le tableau des départs devient une liste */
	.gare-departs thead { display: none; }
	.gare-departs table,
	.gare-departs tbody,
	.gare-departs tr { display: block; }
	html body .gare-departs tbody tr {
		display: grid;
		grid-template-columns: 56px minmax(0, 1fr);
		gap: 2px 12px;
		padding: 14px 16px;
	}
	html body .gare-departs td { padding: 0; width: auto; }
	.gare-departs-heure { grid-row: 1 / span 2; align-self: center; font-size: 14px; }
	html body .gare-departs-destination a { font-size: 19px; }
	.gare-departs-voie,
	.gare-departs-etat { display: inline; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
	.gare-departs-voie { grid-column: 2; }
	.gare-departs-etat { display: none; }

	.gare-bascule-vue { margin-left: 0; }
	html body .gare-bascule-vue button span,
	html body .gare-bascule-vue a span { display: none; }
	html body .post-navigation .nav-links { grid-template-columns: 1fr; }
	html body .post-navigation .nav-next:only-child { grid-column: 1; }
	html body.single-post .entry-content { font-size: 17px; }
}

/* ==========================================================================
   11. Ajustements après vérification
   ========================================================================== */

/* Élément actif du menu : laiton, pas le bleu d'Astra */
html body .ast-builder-menu-1 .menu-item.current-menu-item > .menu-link,
html body .ast-builder-menu-1 .menu-item.current-menu-ancestor > .menu-link,
html body .ast-builder-menu-1 .menu-item.current_page_item > .menu-link,
html body .main-header-menu .menu-item.current-menu-item > .menu-link,
html body .ast-mobile-popup-content .menu-item.current-menu-item > .menu-link {
	color: var(--accent);
}

/* Pas de soulignement sur les liens qui sont des titres ou des boutons */
html body .gare-departs a,
html body .gare-destination a,
html body .gare-section-tete a,
html body .gare-lien-accent a,
html body .wp-block-button__link,
html body .gare-onglet,
html body .gare-filtre { text-decoration: none; }

/* Bouton secondaire (contour) : texte clair, contour discret */
html body .wp-block-button.is-style-outline > .wp-block-button__link,
html body .wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color) {
	background: transparent;
	color: var(--texte);
	border: 1px solid var(--bordure-forte);
	font-weight: 400;
}
html body .gare-chef .wp-block-button.is-style-outline:first-child > .wp-block-button__link {
	border-color: var(--accent);
	color: var(--accent);
	font-weight: 700;
}
html body .wp-block-button.is-style-outline > .wp-block-button__link:hover {
	border-color: var(--accent);
	color: var(--accent);
	background: var(--survol);
}

/* Pied de page sur une ligne */
html body .site-below-footer-wrap .ast-builder-grid-row,
html body .site-below-footer-wrap .site-footer-section,
html body .site-below-footer-wrap .ast-builder-layout-element.ast-footer-copyright { width: 100%; flex: 1 1 100%; }
html body .site-below-footer-wrap .ast-builder-grid-row-container-inner { max-width: calc(var(--largeur) + 2 * var(--gouttiere)); padding: 0 var(--gouttiere); margin: 0 auto; }

/* En-tête d'archive aligné sur la grille, titres des cartes en Fraunces */
html body #primary > .ast-archive-description,
html body .ast-archive-description {
	padding: 48px 0 8px !important;
	margin: 0 !important;
}
html body .ast-archive-description .ast-archive-title {
	font-family: var(--fonte-titres) !important;
	font-weight: 300 !important;
	font-size: 48px !important;
	line-height: 1.1;
	margin-bottom: 12px;
}
html body .entry-title a { font-family: inherit; }
html body .ast-archive-post .entry-title,
html body .ast-archive-post .entry-title a { font-family: var(--fonte-titres) !important; }
.gare-carte-badge { margin: 0 0 12px; }

/* Vue « lire à la suite » : alignée sur la barre d'outils */
html.gare-vue-flux body #primary .ast-row { margin-left: 0 !important; margin-right: 0 !important; }
html.gare-vue-flux body #primary .ast-archive-post { padding: 0 !important; }

/* Navigation entre articles : sans le séparateur vertical d'Astra */
html body .post-navigation .nav-links::before,
html body .post-navigation .nav-links::after { display: none !important; }
html body .post-navigation .nav-previous,
html body .post-navigation .nav-next {
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
}
/* Formulaire de commentaire aligné */
html body .comment-form .ast-row { margin-left: 0; margin-right: 0; gap: 12px; flex-wrap: nowrap; }
html body .comment-form .ast-row > p { padding: 0; flex: 1; }
html body .comment-form .comment-textarea,
html body .comment-form .comment-form-textarea { padding: 0; }
html body .comment-form label,
html body .comment-form-cookies-consent { color: var(--texte-2); font-size: 14px; }

/* ==========================================================================
   12. Images, sons & objets : Vidéos (film vedette, filtres par rôle, grille de cartes)
   ========================================================================== */

/* Film vedette : image à gauche (7/12), texte à droite (5/12) */
html body .gare-film-vedette {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 28px;
	align-items: center;
	margin: 0 0 28px;
}
html body .gare-film-vedette-texte { display: flex; flex-direction: column; gap: 12px; }
html body .gare-film-vedette-texte > * { margin: 0 !important; }
html body .gare-film-vedette-titre { font-family: var(--fonte-titres); font-weight: 500; font-size: 40px; line-height: 1.1; }
html body .entry-content .gare-film-vedette-titre a { color: inherit; text-decoration: none; }
html body .gare-film-vedette-titre a:hover { color: var(--accent); }
html body .gare-film-vedette-texte-libre { font-size: 17px; line-height: 1.6; color: var(--texte-doux); max-width: 48ch; }

/* Cadres : bannières 12:5 (leur format d'origine, titre incrusté), bouton « lecture » au centre */
html body .gare-film-cadre { position: relative; margin: 0 !important; width: 100%; }
html body .gare-film > * { margin-top: 0 !important; }
html body .gare-film-cadre img {
	display: block;
	width: 100%;
	aspect-ratio: 12 / 5;
	object-fit: cover;
	border: 1px solid var(--bordure);
	border-radius: 10px;
	transition: border-color .2s ease;
}
html body .gare-film-vedette .gare-film-cadre img { border-radius: 12px; }
html body .gare-film:hover .gare-film-cadre img,
html body .gare-film-vedette:hover .gare-film-cadre img { border-color: var(--accent); }
html body .gare-film-cadre a::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 44px;
	height: 44px;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	border: 1.5px solid var(--texte);
	background: rgba(14, 20, 36, .45) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ede6d6'%3E%3Cpath d='M7 5v14l12-7z'/%3E%3C/svg%3E") center / 18px no-repeat;
	pointer-events: none;
	opacity: .9;
}
html body .gare-film-vedette .gare-film-cadre a::after {
	width: 64px;
	height: 64px;
	border: 0;
	background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%230e1424'%3E%3Cpath d='M7 5v14l12-7z'/%3E%3C/svg%3E") center / 26px no-repeat;
	opacity: 1;
}
html.voyage-nuit body .gare-film-vedette .gare-film-cadre a::after { background-color: var(--accent); }

/* Filtres par rôle */
html body .gare-films-filtres {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 0;
	margin: 0 0 24px;
	border-top: 1px solid var(--bordure);
	border-bottom: 1px solid var(--bordure);
}
.gare-puces { display: flex; flex-wrap: wrap; gap: 8px; }
html body .gare-puce {
	min-height: 40px;
	padding: 0 16px;
	border-radius: 999px;
	border: 1px solid var(--bordure-forte);
	background: transparent;
	color: var(--texte);
	font-family: var(--fonte-texte);
	font-size: 15px;
	font-weight: 400;
	cursor: pointer;
}
html body .gare-puce:hover { border-color: var(--accent); color: var(--accent); }
html body .gare-puce[aria-pressed="true"] { background: var(--accent); border-color: var(--accent); color: var(--sur-accent); font-weight: 700; }
.gare-films-compte { font-size: 14px; color: var(--texte-2); }

/* Grille de cartes */
html body .gare-films-grille {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 32px 22px;
	align-items: start;
}
html body .gare-film { position: relative; display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0 !important; }
html body .gare-film.est-masque { display: none; }
html body .gare-film .gare-film-cadre { margin-bottom: 6px !important; }
html body .gare-film-groupe {
	position: absolute;
	top: 10px;
	right: 12px;
	margin: 0 !important;
	padding: 3px 8px;
	border-radius: 999px;
	border: 1px solid var(--accent);
	background: rgba(14, 20, 36, .85);
	color: #e2b46a;
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1.4;
}
html body .gare-film--crea .gare-film-groupe { border-color: #7fb3c8; color: #7fb3c8; }
html body .gare-film--part .gare-film-groupe { border-color: #b9b2a3; color: #b9b2a3; }
html body .gare-film-titre {
	margin: 0 !important;
	font-family: var(--fonte-titres);
	font-size: 22px;
	font-weight: 400;
	line-height: 1.2;
}
html body .entry-content .gare-film-titre a { color: inherit; text-decoration: none; }
html body .gare-film-titre a:hover { color: var(--accent); }
html body .gare-film-role { margin: 0 !important; font-size: 14px; color: var(--texte-2); }
html body .gare-film-note { margin: 0 !important; font-size: 14px; line-height: 1.5; color: var(--texte-2); }
html body .gare-film-note a { color: var(--texte-2); }

@media (max-width: 921px) {
	html body .gare-films-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	html body .gare-films-grille,
	html body .gare-film-vedette { grid-template-columns: 1fr; }
	html body .gare-film-vedette-titre { font-size: 30px; }
}

/* Photos : mosaïque en trois colonnes, hauteurs libres, légende sous chaque photo */
html body .gare-photos.wp-block-gallery {
	display: block;
	columns: 3;
	column-gap: 16px;
}
html body .gare-photos.wp-block-gallery .wp-block-image {
	display: block;
	width: auto !important;
	margin: 0 0 16px !important;
	break-inside: avoid;
}
html body .gare-photos.wp-block-gallery .wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--bordure);
	border-radius: 8px;
	transition: border-color .2s ease;
}
html body .gare-photos.wp-block-gallery .wp-block-image:hover img { border-color: var(--accent); }
html body .gare-photos.wp-block-gallery .wp-block-image figcaption {
	position: static;
	margin: 8px 0 0;
	padding: 0;
	background: none;
	color: var(--texte-2);
	font-size: 14px;
	text-align: left;
}
/* Albums : un titre par album, les puces de filtre au-dessus */
html body.gare-page-photos .entry-content h2,
html body.gare-page-albums .entry-content h2 { margin: 36px 0 16px !important; font-family: var(--fonte-titres); font-weight: 500; font-size: 26px; text-align: left !important; }
html body.gare-page-photos .entry-content h2 a { color: inherit; text-decoration: none; }
html body.gare-page-photos .entry-content h2 a:hover { color: var(--accent); }
/* Photos en continu : les galeries hors écran ne sont mises en page qu'en arrivant dessus (les images sont déjà en chargement différé). */
html body.gare-page-photos .gare-photos.wp-block-gallery { content-visibility: auto; contain-intrinsic-size: auto 900px; }
/* Bascule « En continu / Albums » : des liens, dessinés comme les boutons de la bascule du fil */
html body .gare-outils-photos { justify-content: flex-end; margin: 8px 0 28px; }
html body .entry-content .gare-bascule-vue a,
html body .gare-bascule-vue a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border-radius: 6px; color: var(--texte); font-size: 15px; text-decoration: none; }
html body .gare-bascule-vue a[aria-current="page"] { background: var(--accent); color: var(--sur-accent); font-weight: 700; }

/* Sommaire des albums (page Photos) : une année, puis une grille de cartes */
html body .gare-annee { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
html body .gare-annee-compte { font-family: var(--fonte-texte); font-size: 13px; font-weight: 400; color: var(--texte-2); letter-spacing: .08em; text-transform: uppercase; }
html body .entry-content .gare-albums-grille { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; margin: 4px 0 12px; padding: 0; }
html body.gare-page-albums .entry-content h2.gare-annee { margin-bottom: 14px !important; }
html body .gare-album-carte { background: var(--panneau); border: 1px solid var(--bordure); border-radius: 12px; overflow: hidden; margin: 0; transition: border-color .15s, transform .15s; }
html body .gare-album-carte:hover { border-color: var(--accent); transform: translateY(-2px); }
html body .gare-album-carte .wp-block-image { margin: 0; }
html body .gare-album-carte .wp-block-image img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 0; }
html body .gare-album-carte h3 { font-family: var(--fonte-titres); font-weight: 500; font-size: 18px; margin: 12px 14px 2px !important; line-height: 1.3; }
html body .entry-content .gare-album-carte h3 a { color: inherit; text-decoration: none; }
html body .gare-album-carte h3 a::after { content: ""; position: absolute; inset: 0; } /* toute la carte est cliquable */
html body .gare-album-carte { position: relative; }
html body .gare-album-compte { margin: 0 14px 14px !important; font-size: 12px; color: var(--texte-2); letter-spacing: .06em; text-transform: uppercase; }
@media (max-width: 1100px) { html body .gare-albums-grille { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
@media (max-width: 700px) { html body .gare-albums-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } html body .gare-album-carte h3 { font-size: 15px; margin: 10px 10px 2px !important; } html body .gare-album-compte { margin: 0 10px 10px !important; } }

/* Page d'un album : retour au sommaire, album précédent / suivant */
html body .gare-album-nav { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 0 0 22px; font-size: 15px; }
html body .gare-album-nav--pied { margin: 34px 0 0; padding-top: 18px; border-top: 1px solid var(--bordure); }
html body .entry-content .gare-album-nav a { color: var(--texte-2); text-decoration: none; }
html body .gare-album-nav a:hover { color: var(--accent); }
html body .gare-album-nav .gare-album-nav-titre { color: var(--texte); }
html body .gare-album-nav span { display: inline-flex; gap: 6px; flex-wrap: wrap; }
/* Le filtre pose l'attribut hidden : il doit gagner sur les règles d'affichage des galeries et des titres */
html body .gare-lien-discret { font-size: 14px; }
html body .gare-lien-discret a { color: var(--texte-2); text-decoration: none; }
html body .gare-lien-discret a:hover { color: var(--accent); }
@media (max-width: 921px) { html body .gare-photos.wp-block-gallery { columns: 2; } }
@media (max-width: 600px) { html body .gare-photos.wp-block-gallery { columns: 1; } }

/* Le chef de gare : texte aligné à gauche (lisibilité), portrait à gauche, formulaire */
html body.gare-page-chef-de-gare .entry-content p { text-align: left !important; }
html body.page.gare-page-chef-de-gare .entry-content > .wp-caption.alignleft,
html body.gare-page-chef-de-gare .entry-content img.alignleft {
	float: left;
	clear: left; /* chaque portrait attend que le précédent soit passé : jamais deux images côte à côte */
	width: 300px !important;
	max-width: 100%;
	height: auto;
	margin: 6px 32px 16px 0;
	border: 1px solid var(--bordure);
	border-radius: 8px;
}
html body.gare-page-chef-de-gare .entry-content .wp-caption img { width: 100%; height: auto; display: block; margin: 0; border: 0; border-radius: 7px; }
html body.gare-page-chef-de-gare .entry-content .wp-caption-text { font-size: 13px; color: var(--texte-2); text-align: left; margin: 0; padding: 6px 8px; }
@media (max-width: 700px) {
	html body.page.gare-page-chef-de-gare .entry-content > .wp-caption.alignleft,
	html body.gare-page-chef-de-gare .entry-content img.alignleft {
		float: none;
		display: block;
		width: auto !important;
		max-width: 320px !important;
		margin: 0 auto 20px !important;
	}
	html body.gare-page-chef-de-gare .entry-content .wp-caption img { width: 100%; }
}
html body .gare-ecrire { clear: both; margin: 48px 0 12px !important; padding-top: 32px; border-top: 1px solid var(--bordure); font-size: 28px; }
html body .gare-formulaire { max-width: 640px; }
html body .gare-formulaire label { display: block; margin-bottom: 6px; font-size: 15px; color: var(--texte) !important; }
html body .gare-formulaire input,
html body .gare-formulaire textarea,
html body .entry-content .gare-formulaire input,
html body .entry-content .gare-formulaire textarea {
	width: 100%;
	padding: 10px 12px;
	border-radius: 8px;
	border: 1px solid var(--bordure-forte) !important;
	background: var(--panneau) !important;
	color: var(--texte) !important;
	font-family: var(--fonte-texte);
	font-size: 16px;
}
html body .gare-formulaire .gare-requis { color: var(--accent); }
html body .gare-formulaire button[disabled] { opacity: .6; cursor: not-allowed; }

/* Audios : lecteurs alignés sur la colonne */
.gare-soundcloud { margin: 12px 0 24px; }
.gare-soundcloud iframe { display: block; border-radius: 8px; }
html body.gare-page-audios .entry-content h2,
html body.gare-page-audios .entry-content h3 { text-align: left !important; }
html body.gare-page-audios .entry-content .wp-block-separator { margin-left: 0; border-color: var(--bordure); }

/* Pages : le contenu « large » d'Astra s'aligne sur la colonne du titre */
html body.page:not(.gare-quai) .entry-content > .alignwide,
html body.page:not(.gare-quai) .entry-content > * {
	margin-left: 0;
	margin-right: 0;
	max-width: 100%;
}

/* Tableaux dans les pages : sobres, comme le tableau des départs */
html body .entry-content .wp-block-table table { width: 100%; border: 0; border-collapse: collapse; background: transparent; font-size: 16px; }
html body .entry-content .wp-block-table th,
html body .entry-content .wp-block-table td {
	padding: 12px 14px;
	border: 0;
	border-bottom: 1px solid var(--bordure);
	background: transparent;
	text-align: left;
	font-size: 16px;
	color: var(--texte);
}
html body .entry-content .wp-block-table thead { border: 0; }
html body .entry-content .wp-block-table thead th {
	font-size: 12px;
	font-weight: 400;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--texte-2);
}
html body .entry-content .wp-block-table tr:last-child td,
html body .entry-content .wp-block-table tr:last-child th { font-weight: 700; }
.gare-onglets-bloc { padding-bottom: 20px; }

/* ==========================================================================
   13. La machinerie (Open Cine Prod Tools)
   ========================================================================== */

html body .gare-machinerie-hero { margin-bottom: 48px; }
html body .gare-machinerie-hero .wp-block-columns { gap: 32px; }
html body .gare-accroche { font-size: 19px; line-height: 1.65; color: var(--texte-doux); }
html body .gare-pastilles { display: flex; flex-wrap: wrap; gap: 8px; }
html body .gare-pastilles span {
	padding: 4px 10px;
	border: 1px solid var(--bordure-forte);
	border-radius: 999px;
	color: var(--texte-2);
	font-size: 13px;
	letter-spacing: .08em;
	text-transform: uppercase;
}
html body .gare-note { font-size: 14px; color: var(--texte-2); }
html body .gare-capture-vide .gare-cadre {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	aspect-ratio: 16 / 10;
	margin: 0;
	padding: 24px;
	border: 1px solid var(--bordure);
	border-radius: var(--rayon);
	background: var(--panneau);
	color: var(--texte-2);
	font-size: 14px;
	text-align: center;
}
html body .gare-capture-vide .gare-cadre strong {
	color: var(--accent);
	font-weight: 400;
	letter-spacing: .1em;
	text-transform: uppercase;
}

html body .gare-ateliers {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}
html body .gare-atelier,
html body .gare-encadre {
	margin: 0 !important;
	padding: 24px 28px !important;
	border: 1px solid var(--bordure);
	border-radius: var(--rayon);
	background: var(--panneau);
}
html body .gare-encadre--accent { border-color: var(--bordure-accent); background: var(--panneau-fonce); }
html body .gare-atelier h3,
html body .gare-encadre h3 { margin: 0 0 10px; font-weight: 400; font-size: 22px; }
html body .gare-atelier p { margin: 0; color: var(--texte-2); font-size: 15px; line-height: 1.55; }
html body .gare-encadre p { color: var(--texte-doux); font-size: 16px; line-height: 1.65; }
html body .gare-machinerie-duo { gap: 24px; }

html body .gare-etat-chantier { margin: 0 0 12px; padding: 0; list-style: none; }
html body .gare-etat-chantier li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid var(--bordure);
	font-size: 15px;
}
html body .gare-etat-chantier li:last-child { border-bottom: 0; }
html body .gare-etat-chantier strong { color: var(--accent); font-weight: 400; }
html body .gare-etat-chantier em { color: var(--texte-2); font-style: normal; }
html body .gare-lien-accent a { color: var(--accent); }

html body .gare-participer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 64px !important;
	background: transparent;
}
html body .gare-participer p { margin: 0; color: var(--texte-2); font-size: 15px; }
html body .gare-participer h3 { margin-bottom: 4px; }
html body .gare-participer .wp-block-buttons { gap: 10px; }
html body .gare-bouton-accent > .wp-block-button__link {
	border-color: var(--accent) !important;
	color: var(--accent) !important;
}
html body .gare-departs-vide { color: var(--texte-2); font-style: italic; }

@media (max-width: 921px) {
	html body .gare-ateliers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	html body .gare-ateliers { grid-template-columns: 1fr; }
}

/* Pages : pas de retrait intérieur sur les groupes de premier niveau (les encadrés gardent le leur) */
html body.page:not(.gare-quai) .entry-content > .wp-block-group:not(.gare-encadre),
html body.page:not(.gare-quai) .entry-content > .wp-block-columns:not(.gare-encadre) {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
/* Boutons secondaires : texte clair et contour discret, partout */
html body .entry-content .wp-block-button.is-style-outline:not(.gare-bouton-accent) > .wp-block-button__link {
	color: var(--texte) !important;
	border-color: var(--bordure-forte) !important;
	background: transparent !important;
}
html body .entry-content .wp-block-button.is-style-outline:not(.gare-bouton-accent) > .wp-block-button__link:hover {
	color: var(--accent) !important;
	border-color: var(--accent) !important;
}

/* Les couleurs fixées dans le Personnalisateur d'Astra (nuit) ne doivent pas l'emporter en voyage de jour */
html body h1, html body h2, html body h3, html body h4, html body h5, html body h6,
html body .entry-content :is(h1, h2, h3, h4, h5, h6),
html body .entry-title,
html body .entry-title a,
html body .site-title a,
html body .site-title a:hover,
html body .ast-archive-description .ast-archive-title {
	color: var(--texte) !important;
}
html body .entry-content :is(h1, h2, h3, h4, h5, h6) a:hover,
html body .entry-title a:hover { color: var(--accent) !important; }
html body .wp-block-button:not(.is-style-outline) > .wp-block-button__link,
html body input[type="submit"],
html body .ast-button {
	background-color: var(--accent) !important;
	border-color: var(--accent) !important;
	color: var(--sur-accent) !important;
}
html body .wp-block-button:not(.is-style-outline) > .wp-block-button__link:hover,
html body input[type="submit"]:hover {
	background-color: var(--texte) !important;
	border-color: var(--texte) !important;
	color: var(--fond) !important;
}
html body .gare-bouton-accent > .wp-block-button__link:hover { background: var(--survol) !important; }
html body .gare-departs a,
html body .gare-destination a,
html body .gare-section-tete a,
html body .gare-lien-accent a { text-decoration: none !important; }

/* Fond uniforme sur tous les écrans (Astra prévoit des fonds différents pour tablette et mobile) */
html body,
html body #page,
html body #content,
html body .site-content,
html body #primary,
html body .ast-narrow-container .site-content,
html body .ast-article-single,
html body .ast-article-post,
html body .ast-archive-description,
html body .ast-separate-container .ast-archive-description,
html body .ast-separate-container .comments-area { background-color: var(--fond) !important; }
html body .ast-archive-post .ast-article-inner { background-color: var(--panneau) !important; }
html.gare-vue-flux body .ast-archive-post .ast-article-inner { background-color: transparent !important; }

/* Menu mobile aux couleurs du thème */
html body .ast-mobile-header-content,
html body #ast-mobile-header .ast-mobile-header-content,
html body .ast-builder-menu-mobile .main-navigation,
html body .ast-mobile-header-content .main-header-menu,
html body .ast-mobile-header-content .menu-item > .menu-link {
	background-color: var(--fond) !important;
}
html body .ast-mobile-header-content .menu-item > .menu-link { color: var(--texte) !important; border-color: var(--bordure) !important; }
html body .ast-mobile-header-content .menu-item.current-menu-item > .menu-link { color: var(--accent) !important; }
html body .ast-mobile-header-content .gare-menu-ambiance { margin: 16px 20px; }
html body .ast-mobile-header-wrap .menu-toggle,
html body .ast-mobile-header-wrap .ast-mobile-svg { color: var(--texte); fill: var(--texte); }

@media (max-width: 544px) {
	html body .site-title a { font-size: 18px; }
	html body .site-description { font-size: 11px; }
}

html body .ast-mobile-header-content { border-bottom: 1px solid var(--bordure); }

/* Cartes avec image (catégories d'images) */
html body .ast-archive-post .ast-blog-featured-section:not(:empty) { margin: -24px -24px 20px; }
html body .ast-archive-post .ast-blog-featured-section img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--rayon) var(--rayon) 0 0;
}
html.gare-vue-flux body .ast-archive-post .ast-blog-featured-section:not(:empty) { margin: 0 0 20px; }
html.gare-vue-flux body .ast-archive-post .ast-blog-featured-section img { aspect-ratio: auto; border-radius: 8px; max-height: 70vh; width: auto; max-width: 100%; }

/* Formulaire de commentaire : Astra remet des angles carrés aux champs nom / e-mail / site */
html body .comments-area .ast-comment-formwrap input[type="text"],
html body .comments-area .ast-comment-formwrap input[type="email"],
html body .comments-area .ast-comment-formwrap input[type="url"] { border-radius: 8px; }

/* ==========================================================================
   14. Dossier de production (scénarios, découpages, trésorerie)
   ========================================================================== */

/* Pastilles de type de document : neutres, un seul accent sur le site */
html body .gare-badge--doc { border-color: var(--bordure-forte); color: var(--texte-2); }

/* Lignes (page d'un film) */
html body .gare-dossier { list-style: none; margin: 0 0 24px; padding: 0; border-top: 1px solid var(--bordure); }
html body .gare-dossier-ligne { margin: 0; padding: 0; border-bottom: 1px solid var(--bordure); }
html body .gare-dossier-ligne a {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 16px;
	padding: 14px 8px;
	color: var(--texte);
	text-decoration: none;
	transition: background-color .2s ease;
}
html body .gare-dossier-ligne a:hover { background: var(--survol); color: var(--texte); }
html body .gare-dossier-titre { font-family: var(--fonte-titres); font-size: 20px; line-height: 1.2; }
html body .gare-dossier-resume { font-size: 14px; color: var(--texte-2); white-space: nowrap; }
html body .gare-dossier-fleche { color: var(--accent); font-size: 18px; }
html body .gare-dossier-ligne a:hover .gare-dossier-fleche { transform: translateX(4px); }

/* Dossiers (page des coulisses) : une carte par film */
html body .gare-dossiers {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
	margin: 0 0 32px;
}
html body .gare-dossier-film {
	position: relative;
	padding: 22px 22px 20px;
	border: 1px solid var(--bordure);
	border-radius: var(--rayon);
	background: var(--panneau);
	transition: border-color .2s ease;
}
html body .gare-dossier-film:hover { border-color: var(--bordure-accent); }
html body .gare-dossier-film > .gare-icone { width: 26px; height: 26px; color: var(--accent); margin-bottom: 12px; }
html body .gare-dossier-film-titre { margin: 0 0 4px !important; font-family: var(--fonte-titres); font-weight: 400; font-size: 24px; line-height: 1.2; text-align: left !important; }
html body .gare-dossier-film-titre a { color: var(--texte); text-decoration: none; }
html body .gare-dossier-film-titre a:hover { color: var(--accent); }
html body .gare-dossier-film-compte { margin: 0 0 14px !important; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--texte-2); text-align: left !important; }
html body .gare-dossier-pieces { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
html body .gare-dossier-pieces li { margin: 0; }
html body .gare-dossier-piece {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 14px;
	border: 1px solid var(--bordure-forte);
	border-radius: 999px;
	color: var(--texte);
	font-size: 14px;
	text-decoration: none;
}
html body .gare-dossier-piece:hover { border-color: var(--accent); color: var(--accent); background: var(--survol); }

/* Articles de documents : retour au film, intertitres à gauche, pièces dépliables */
html body .gare-retour { margin: 0 0 20px !important; font-size: 14px; }
html body .gare-retour a { color: var(--texte-2); text-decoration: none; }
html body .gare-retour a:hover { color: var(--accent); }
html body.gare-article-document .entry-content h3 {
	margin: 32px 0 12px !important;
	font-family: var(--fonte-titres);
	font-weight: 500;
	font-size: 22px;
	text-align: left !important;
}
html body .gare-piece {
	margin: 0 0 14px;
	border: 1px solid var(--bordure);
	border-radius: var(--rayon);
	background: var(--panneau);
	overflow: hidden;
}
html body .gare-piece-tete { display: flex; align-items: center; gap: 14px; padding: 14px 16px; }
html body .gare-piece-tete > .gare-icone { flex: none; width: 26px; height: 26px; color: var(--accent); }
html body .gare-piece-texte { flex: 1 1 200px; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
html body .gare-piece-nom { font-size: 16px; color: var(--texte); word-break: break-word; }
html body .gare-piece-meta { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--texte-2); }
html body .gare-piece-actions { display: flex; flex-wrap: wrap; gap: 8px; }
html body .gare-piece-lire,
html body .gare-piece-telecharger {
	display: inline-flex;
	align-items: center;
	min-height: 40px;
	padding: 0 14px;
	border-radius: 8px;
	border: 1px solid var(--bordure-forte);
	background: transparent;
	color: var(--texte);
	font-family: var(--fonte-texte);
	font-size: 14px;
	text-decoration: none;
	cursor: pointer;
}
html body .gare-piece-lire:hover,
html body .gare-piece-telecharger:hover { border-color: var(--accent); color: var(--accent); background: var(--survol); }
html body .entry-content .gare-piece-telecharger { background: var(--accent); border-color: var(--accent); color: var(--sur-accent); font-weight: 700; }
html body .entry-content .gare-piece-telecharger:hover { background: var(--texte); border-color: var(--texte); color: var(--fond); }
html body .gare-piece-lecteur { border-top: 1px solid var(--bordure); background: var(--panneau-fonce); }
html body .gare-piece-lecteur object { display: block; width: 100%; height: 70vh; min-height: 480px; }
html body .gare-piece-lecteur p { margin: 0; padding: 16px; }

@media (max-width: 781px) {
	html body .gare-dossiers { grid-template-columns: 1fr; }
	html body .gare-dossier-ligne a { grid-template-columns: auto minmax(0, 1fr) auto; }
	html body .gare-dossier-resume { grid-column: 2; grid-row: 2; white-space: normal; }
	html body .gare-dossier-fleche { grid-row: 1 / span 2; }
	html body .gare-piece-tete { flex-wrap: wrap; }
}

/* Formulaire de contact Jetpack (site en ligne) : même allure que le formulaire de secours local */
html body .jetpack-contact-form__form,
html body form.contact-form { max-width: 640px; }
html body .contact-form .grunion-field-wrap { margin: 0 0 16px; }
html body .contact-form .grunion-field-label {
	display: block;
	margin: 0 0 6px;
	font-size: 15px;
	font-weight: 400;
	color: var(--texte);
}
html body .contact-form .grunion-label-required { font-size: 12px; color: var(--accent); margin-left: 4px; }
html body .contact-form input.grunion-field,
html body .contact-form textarea.grunion-field,
html body .entry-content .contact-form input.grunion-field,
html body .entry-content .contact-form textarea.grunion-field {
	width: 100%;
	max-width: 100%;
	padding: 10px 12px;
	border-radius: 8px;
	border: 1px solid var(--bordure-forte);
	background: var(--panneau);
	color: var(--texte);
	font-family: var(--fonte-texte);
	font-size: 16px;
	line-height: 1.5;
	box-shadow: none;
}
html body .contact-form textarea.grunion-field { min-height: 160px; height: 160px; resize: vertical; }
html body .contact-form input.grunion-field:focus,
html body .contact-form textarea.grunion-field:focus { border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 2px; }
html body .contact-form .contact-submit { margin: 8px 0 0; }
html body .contact-form button.pushbutton-wide,
html body .entry-content .contact-form button[type="submit"] {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	padding: 12px 22px;
	border-radius: 8px;
	border: 1px solid var(--accent);
	background: var(--accent);
	color: var(--sur-accent);
	font-family: var(--fonte-texte);
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
}
html body .contact-form button.pushbutton-wide:hover { background: var(--texte); border-color: var(--texte); color: var(--fond); }
html body .contact-form .contact-form__input-error,
html body .contact-form .contact-form__error-message { color: var(--accent); font-size: 14px; }

/* Open Cine Prod Tools : la marque de l'application en tête de sa page, variante claire le jour, creuse la nuit */
html body .gare-capture { margin: 0 !important; }
html body .gare-capture img { display: block; width: 100%; height: auto; border: 1px solid var(--bordure); border-radius: 12px; box-shadow: 0 12px 32px rgba(10, 16, 29, .18); }
html body .gare-ocpt-marque { display: block; width: 76px; height: 76px; margin: 0 0 18px; }
html body .gare-ocpt-marque--nuit { display: none; }
html.voyage-nuit body .gare-ocpt-marque--jour { display: none; }
html.voyage-nuit body .gare-ocpt-marque--nuit { display: block; }
