/*
Theme Name:   CFCL Kadence (enfant)
Description:  Thème enfant de Kadence pour le Chemin de Fer Charente-Limousine. Remplace onepress-child-032025.
Author:       Mathieu S
Template:     kadence
Version:      1.0.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  cfcl-kadence-child
*/

/* ---------- Typographie des contenus, reprise d'OnePress (production) ----------
 * Titres en capitales, graisse 600, gris #333 ; texte 14 px gris #4c4c4c, interligne 1,7 ; liens rouges non soulignés.
 * Tailles en partant du mobile (échelle de la production : 87,5 % puis 93,75 % puis 100 %).
 * :where() garde une priorité faible : les titres de l'accueil gardent leurs propres règles. */
:where(.entry-content, .entry-summary, .woocommerce-tabs) :is(h1, h2, h3, h4, h5, h6) {
	color: #333; text-transform: uppercase; font-weight: 600; line-height: 1.2; margin: 0 0 15px;
}
:where(.entry-content) h1 { font-size: 26px; }
:where(.entry-content) h2 { font-size: 21.875px; }
:where(.entry-content) h3 { font-size: 17.5px; line-height: 1.15; }
:where(.entry-content) h4 { font-size: 14.875px; }
:where(.entry-content) h5 { font-size: 13.125px; }
:where(.entry-content) h6 { font-size: 12.25px; }
@media (min-width: 768px) {
	:where(.entry-content) h1 { font-size: 32px; }
	:where(.entry-content) h2 { font-size: 28px; }
	:where(.entry-content) h3 { font-size: 18.75px; }
	:where(.entry-content) h4 { font-size: 15.9px; }
	:where(.entry-content) h5 { font-size: 14px; }
	:where(.entry-content) h6 { font-size: 13.1px; }
}
@media (min-width: 992px) {
	:where(.entry-content) h1 { font-size: 36px; }
	:where(.entry-content) h2 { font-size: 32px; }
	:where(.entry-content) h3 { font-size: 20px; }
	:where(.entry-content) h4 { font-size: 17px; }
	:where(.entry-content) h5 { font-size: 15px; }
	:where(.entry-content) h6 { font-size: 14px; }
}
:where(.entry-content) :where(p, li) { color: #4c4c4c; line-height: 1.7; }
:where(.entry-content) p { margin: 0 0 15px; }
:where(.entry-content) a { color: #dd1111; text-decoration: none; }
:where(.entry-content) a:hover { text-decoration: underline; }
:where(.entry-content) :where(.su-button, .wp-block-button__link, .button):hover { text-decoration: none; }
/* Sur mobile, texte aligné à gauche : le texte justifié crée de grands blancs sur une colonne étroite */
@media (max-width: 767px) { .entry-content p { text-align: left; } }
.woocommerce .product_title, .woocommerce ul.products li.product .woocommerce-loop-product__title { color: #333; }

/* Couleurs d'accent reprises d'OnePress (rouge #dd1111, survol orange #dd3300) */
:root {
	--global-palette1: #dd1111;
	--global-palette2: #dd3300;
}

/* Barre du haut : passage transparent → bleu en fondu (0,5 s, comme OnePress) */
#masthead .site-main-header-wrap,
#masthead .site-main-header-wrap .site-header-row-container-inner,
#masthead .kadence-sticky-header,
#masthead .kadence-sticky-header > .site-header-row-container-inner {
	transition: background-color .5s ease-out, background .5s ease-out, box-shadow .5s ease-out;
}

/* Titre et slogan du site en blanc, en capitales, comme OnePress */
.site-header-main-section-left { padding-left: 15px; }
.site-branding .site-title,
.site-branding .site-title a { color: #ffffff; text-transform: uppercase; font-weight: 700; font-size: 23px; line-height: 1.1; }
.site-branding .site-description { color: #ffffff; font-size: 12px; font-family: inherit; opacity: .9; margin-top: 4px; }
@media (max-width: 1024px) { .site-branding .site-title, .site-branding .site-title a { font-size: 16px; } }

/* En-tête de page : titre blanc sur photo (comme OnePress), sombre sans photo */
.entry-hero h1 {
	text-transform: uppercase; font-size: 14px; font-weight: 800; letter-spacing: 1px; line-height: 1.3; color: #333;
}
@media (min-width: 461px) { .entry-hero h1 { font-size: 16.8px; } }
@media (min-width: 991px) { .entry-hero h1 { font-size: 40px; } }
.cfcl-has-cover .entry-hero h1 { color: #ffffff; text-shadow: 0 1px 3px rgba(0, 0, 0, .35); }
.cfcl-has-cover .entry-hero .hero-section-overlay { background: rgba(0, 0, 0, .25); }


/* Menu principal en capitales grasses, comme OnePress */
.main-navigation .primary-menu-container > ul > li.menu-item > a {
	text-transform: uppercase; font-weight: 700; font-size: 13px; letter-spacing: .5px;
	padding-left: 10px; padding-right: 10px;
}


/* Boutons WooCommerce façon OnePress : rouge, texte blanc en capitales.
   Les boutons gris voulus (.button_tel, ou fond défini dans le widget) gardent leur gris. */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .product-action-wrap .button,
.cfcl-woo-zone .button {
	color: #ffffff !important;
	font-family: var(--global-heading-font-family);
	font-size: 13px !important;
	font-weight: 500 !important;
	letter-spacing: .5px;
	text-transform: uppercase !important;
	padding: 10px 20px !important;
	border: 0 !important;
	border-radius: 2px !important;
	line-height: 1.4;
	box-shadow: none;
	cursor: pointer;
}
.woocommerce a.button:not(.button_tel):not([style*="background"]),
.woocommerce button.button:not([style*="background"]),
.woocommerce input.button:not([style*="background"]),
.woocommerce ul.products li.product .button:not(.button_tel):not([style*="background"]) {
	background: #dd1111 !important;
}
.woocommerce a.button:not(.button_tel):not([style*="background"]):hover,
.woocommerce button.button:not([style*="background"]):hover,
.woocommerce ul.products li.product .button:not(.button_tel):not([style*="background"]):hover {
	background: #b80e0e !important;
}
.woocommerce .button.button_tel,
.cfcl-woo-zone .button[style*="background"] { background: #696969 !important; }
.woocommerce .button.button_tel:hover,
.cfcl-woo-zone .button[style*="background"]:hover { background: #555555 !important; }
/* Kadence ajoute une flèche/icône au bouton de la liste produits : on la masque */
.woocommerce ul.products li.product .button .kadence-svg-iconset { display: none; }

/* Fiche produit */
.single-product .kadence-breadcrumbs,
.single-product .woocommerce-breadcrumb { display: none; } /* masqué en production aussi */
.single-product .product_title { text-transform: uppercase; font-size: 40px; color: #333; line-height: 1.3; }
.single-product .product_meta,
.single-product .product_meta span,
.single-product .product_meta a { font-size: 12px !important; line-height: 1.6; }
@media (max-width: 767px) { .single-product .product_title { font-size: 26px; } }

/* Quantité + bouton « Réserver » : même hauteur, alignés, texte centré */
.woocommerce form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.woocommerce form.cart .quantity { margin: 0 !important; }
.woocommerce form.cart .quantity .qty { height: 40px; padding-top: 0; padding-bottom: 0; }
.woocommerce form.cart .single_add_to_cart_button {
	height: 40px; display: inline-flex !important; align-items: center; justify-content: center;
	padding-top: 0 !important; padding-bottom: 0 !important; margin: 0 !important; line-height: 1;
}

/* ---------- Règles mobiles reprises de la production (Simple CSS, écrites pour OnePress) ---------- */
@media (max-width: 990px) {
	/* Titre et slogan masqués : le logo seul reste dans la barre */
	.site-branding .site-title, .site-branding .site-description,
	.site-branding .site-title-wrap { display: none !important; }
}

/* Zones WooCommerce reprises de l'ancien gabarit woocommerce.php */
.cfcl-woo-zone { margin-bottom: 2%; }
.cfcl-woo-zone--basse { margin-top: 2%; margin-bottom: 0; }

/* ======================================================================
 * PIED DE PAGE (fond vert #5d9e29 de la production, puis barre bleue #224155)
 * Logos partenaires en tuiles blanches uniformes : logo entier, légende dessous.
 * CSS seul : les widgets ne sont pas modifiés.
 * ====================================================================== */
.site-footer .site-middle-footer-wrap { color: #ffffff; }
.site-footer .site-middle-footer-inner-wrap { padding-top: 40px; padding-bottom: 40px; row-gap: 32px; }
.site-footer #block-12 { display: none; } /* widget « colonnes » vide */

/* Titre « Ils nous soutiennent » : hauteur fixe (42 px) pour aligner la colonne européenne */
.site-footer #block-16 .wp-block-heading {
	color: #ffffff !important; font-size: 18px; line-height: 22px; font-weight: 600; text-transform: uppercase;
	letter-spacing: 1px; margin: 0 0 20px; padding: 0;
}

/* Les deux galeries de collectivités forment une seule grille de tuiles */
.site-footer .site-footer-middle-section-1 .footer-widget-area-inner { display: flex; flex-wrap: wrap; gap: 12px; }
.site-footer #block-16 { flex: 0 0 100%; margin: 0 !important; }
.site-footer #block-17, .site-footer #block-18,
.site-footer #block-17 .wp-block-gallery, .site-footer #block-18 .wp-block-gallery { display: contents !important; }

.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image {
	box-sizing: border-box;
	flex: 0 0 calc((100% - 12px) / 2) !important; width: calc((100% - 12px) / 2) !important;
	margin: 0 !important; padding: 14px 10px 10px;
	display: flex !important; flex-direction: column !important; align-items: center; justify-content: flex-start;
	background: #ffffff; border-radius: 3px;
}
@media (min-width: 576px) {
	.site-footer .site-footer-middle-section-1 .wp-block-gallery.has-nested-images figure.wp-block-image {
		flex-basis: calc((100% - 36px) / 4) !important; width: calc((100% - 36px) / 4) !important;
	}
}
.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image a { display: block; width: 100%; }
.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image img {
	display: block; height: 56px !important; width: 100% !important; max-width: 100%;
	object-fit: contain !important; flex: 0 0 auto !important; opacity: 1 !important; margin: 0 auto;
}
.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	position: static !important; background: none !important; max-height: none !important; overflow: visible !important;
	color: #4c4c4c !important; font-size: 11.5px !important; line-height: 1.35; text-align: center;
	padding: 10px 0 0 !important; margin: 10px 0 0 !important; width: 100%;
	border-top: 1px solid #eeeeee; text-shadow: none !important; flex-grow: 1;
}

/* Colonne européenne : alignée sur la première rangée de logos, logos puis texte LEADER */
.site-footer .site-footer-middle-section-2 .footer-widget-area-inner { display: flex; flex-direction: column; }
@media (min-width: 768px) {
	.site-footer .site-footer-middle-section-2 .footer-widget-area-inner { padding-top: 54px; } /* = hauteur du titre de gauche, marge comprise */
}
.site-footer #block-20 { order: 1; margin: 0 0 14px !important; }
.site-footer #block-14 { order: 2; margin: 0 !important; }
.site-footer #block-20 .wp-block-gallery { display: flex !important; flex-wrap: wrap; gap: 12px !important; margin: 0 !important; }
.site-footer #block-20 figure.wp-block-image img { height: 72px !important; }
.site-footer #block-14 p { color: #ffffff !important; font-size: 13px; line-height: 1.55; text-align: center !important; margin: 0; }
.site-footer #block-14 a { color: #ffffff !important; text-decoration: underline; text-underline-offset: 2px; }

/* Barre bleue du bas : copyright centré, liens sur deux colonnes */
.site-footer .site-bottom-footer-wrap,
.site-footer .site-bottom-footer-wrap a { color: #ffffff; }
.site-footer .site-bottom-footer-wrap .site-bottom-footer-inner-wrap { padding-top: 22px; padding-bottom: 22px; }
.site-footer .site-bottom-footer-wrap .footer-html,
.site-footer .site-bottom-footer-wrap .footer-html-inner { text-align: center; width: 100%; justify-content: center; font-size: 12.6px; }
.site-footer .site-bottom-footer-wrap .footer-html-inner p { text-align: center; margin-bottom: 12px; } /* Simple CSS justifie tous les <p> */
.site-footer .copyright_element { max-width: 560px; margin: 0 auto; padding-top: 12px; border-top: 1px solid rgba(255, 255, 255, .15); }
.site-footer .copyright_element .row { display: flex; flex-wrap: wrap; }
.site-footer .copyright_element .col-6 { flex: 0 0 50%; max-width: 50%; line-height: 1.9; }
.site-footer .copyright_element a { text-decoration: none; }
.site-footer .copyright_element a:hover { text-decoration: underline; }

/* ---------- Fiche produit et tableaux sur mobile ---------- */
/* Choix du parcours : la liste prend toute la largeur au lieu de déborder */
.woocommerce table.variations, .woocommerce table.variations tbody,
.woocommerce table.variations tr, .woocommerce table.variations th, .woocommerce table.variations td { display: block; width: 100%; }
.woocommerce table.variations select { width: 100%; max-width: 100%; box-sizing: border-box; }
.woocommerce table.variations td, .woocommerce table.variations th { padding-left: 0; padding-right: 0; }
/* Titre d'onglet « Description » à la taille de la production */
.woocommerce-tabs .woocommerce-Tabs-panel > h2:first-child { font-size: 17px; letter-spacing: 1px; }
/* Tableaux plus larges que l'écran : défilement horizontal dans le tableau, pas dans la page */
@media (max-width: 767px) {
	.entry-content table:not(.variations), .woocommerce-Tabs-panel table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* ---------- Grille de compatibilité OnePress (Bootstrap) ----------
 * Le contenu existant (formulaires, pages) utilise 7 classes de la grille Bootstrap que fournissait OnePress :
 * container, row, col-6, col-sm-4, col-sm-6, col-md-4, col-md-12. Seules celles-ci sont recréées. */
.entry-content .container, .cfcl-woo-zone .container { width: 100%; max-width: none; padding: 0; margin: 0 auto; }
.entry-content .row, .cfcl-woo-zone .row, .wpcf7 .row { display: flex; flex-wrap: wrap; margin-left: -15px; margin-right: -15px; }
.entry-content .row > [class*="col-"], .cfcl-woo-zone .row > [class*="col-"], .wpcf7 .row > [class*="col-"] {
	box-sizing: border-box; flex: 0 0 100%; max-width: 100%; padding-left: 15px; padding-right: 15px;
}
.entry-content .row > .col-6, .wpcf7 .row > .col-6 { flex-basis: 50%; max-width: 50%; }
@media (min-width: 576px) {
	.entry-content .row > .col-sm-4, .wpcf7 .row > .col-sm-4 { flex-basis: 33.3333%; max-width: 33.3333%; }
	.entry-content .row > .col-sm-6, .wpcf7 .row > .col-sm-6 { flex-basis: 50%; max-width: 50%; }
}
@media (min-width: 768px) {
	.entry-content .row > .col-md-4, .wpcf7 .row > .col-md-4 { flex-basis: 33.3333%; max-width: 33.3333%; }
	.entry-content .row > .col-md-12, .wpcf7 .row > .col-md-12 { flex-basis: 100%; max-width: 100%; }
}

/* ---------- Boutique : tuiles produits ----------
 * Titres en capitales comme la production ; bouton « Réserver » au survol (Kadence),
 * mais toujours visible sur écran tactile, où le survol n'existe pas. */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	text-transform: uppercase; font-weight: 600; font-size: 14px; line-height: 1.35; color: #333;
}
@media (hover: none) {
	.woocommerce ul.products li.product .product-action-wrap { position: static !important; opacity: 1 !important; transform: none !important; visibility: visible !important; margin-top: 12px; }
}

/* ---------- Formulaires Contact Form 7 : champs sur toute la largeur de leur colonne ---------- */
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="number"],
.wpcf7 input[type="date"], .wpcf7 input[type="url"], .wpcf7 select, .wpcf7 textarea {
	box-sizing: border-box; width: 100%; max-width: 100%;
	border: 1px solid #d6d6d6; border-radius: 2px; padding: 8px 10px; font-size: 14px; color: #4c4c4c; background: #fff;
}
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus { border-color: #224155; outline: none; box-shadow: 0 0 0 2px rgba(34, 65, 85, .15); }
.wpcf7 label { font-size: 13px; color: #4c4c4c; }
.wpcf7 .wpcf7-list-item { margin: 0 12px 0 0; }
.wpcf7 input[type="submit"] {
	background: #dd1111; color: #fff; border: 0; border-radius: 2px; padding: 10px 24px;
	font-size: 13px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; cursor: pointer;
}
.wpcf7 input[type="submit"]:hover { background: #b80e0e; }
@media (hover: none) {
	.woocommerce ul.products li.product .product-details .price { display: block; margin-bottom: 14px; }
}

/* ---------- Boutique : encadré « Toute l'année, votre voyage sur-mesure ! » (widget de la barre basse) ----------
 * Le cadre est écrit en style en ligne dans le widget ; il est repris ici sans toucher au contenu. */
.cfcl-woo-zone--basse #block-11 > br { display: none; }
.cfcl-woo-zone--basse #block-11 div[style*="border"] {
	display: flow-root; background: #ffffff !important; border: 1px solid #e6e6e6 !important; border-radius: 4px !important;
	padding: 24px !important; margin-top: 30px !important; min-height: 0 !important;
	color: #4c4c4c; font-size: 14px; line-height: 1.7;
}
.cfcl-woo-zone--basse #block-11 h4 {
	margin: 0 0 16px; font-size: 17px; font-weight: 600; text-transform: uppercase; color: #333; letter-spacing: .5px;
}
.cfcl-woo-zone--basse #block-11 img.alignleft {
	float: none; display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover;
	border-radius: 3px; margin: 0 0 16px;
}
.cfcl-woo-zone--basse #block-11 a { color: #dd1111; text-decoration: none; }
.cfcl-woo-zone--basse #block-11 a:hover { text-decoration: underline; }
.cfcl-woo-zone--basse #block-11 input.button { float: none !important; display: block; margin: 18px 0 0 auto; }
@media (min-width: 768px) {
	.cfcl-woo-zone--basse #block-11 div[style*="border"] { padding: 28px 32px !important; }
	.cfcl-woo-zone--basse #block-11 img.alignleft { float: left; width: 240px; margin: 4px 28px 8px 0; }
}

/* ---------- Pied de page : version épurée ----------
 * Plus d'air, logos plus petits, pas de traits superflus. Prime sur les règles du pied de page plus haut. */
.site-footer .site-middle-footer-inner-wrap { padding-top: 48px; padding-bottom: 48px; }
.site-footer #block-16 .wp-block-heading { font-size: 16px; letter-spacing: 1.5px; margin-bottom: 20px; }
.site-footer .site-footer-middle-section-1 .footer-widget-area-inner,
.site-footer #block-20 .wp-block-gallery { gap: 10px !important; }
.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image {
	padding: 14px 10px 12px; border-radius: 4px; justify-content: center;
}
.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image img { height: 44px !important; }
.site-footer #block-20 figure.wp-block-image img { height: 58px !important; }
.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	border-top: 0 !important; padding: 0 !important; margin: 8px 0 0 !important; flex-grow: 0;
	font-size: 11px !important; color: #777 !important;
}
.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image a:hover img { opacity: .8 !important; }
.site-footer #block-14 p { font-size: 12.5px; opacity: .9; margin-top: 2px; }
@media (min-width: 576px) {
	.site-footer .site-footer-middle-section-1 .wp-block-gallery.has-nested-images figure.wp-block-image {
		flex-basis: calc((100% - 30px) / 4) !important; width: calc((100% - 30px) / 4) !important;
	}
}
@media (min-width: 768px) {
	.site-footer .site-footer-middle-section-2 .footer-widget-area-inner { padding-top: 50px; } /* titre 16 px + marge */
}
.site-footer #block-20 figure.wp-block-image { flex: 0 0 calc((100% - 10px) / 2) !important; width: calc((100% - 10px) / 2) !important; }
/* Barre du bas : sans filet, liens discrets */
.site-footer .copyright_element { border-top: 0; padding-top: 4px; }
.site-footer .copyright_element a { opacity: .9; }
.site-footer .copyright_element a:hover { opacity: 1; }

/* ---------- Boutique : bandeau « Comment réserver » (widget en haut de la billetterie) ----------
 * Un panneau blanc, 4 informations séparées par des filets fins, icônes en pastille au bleu du site.
 * Les styles en ligne du contenu (couleurs, petites tailles) sont conservés. */
.cfcl-woo-zone #block-15 .wp-block-columns {
	display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 0 !important;
	background: #ffffff; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, .08); margin: 10px 0 30px;
}
.cfcl-woo-zone #block-15 .wp-block-column {
	flex-basis: auto !important; margin: 0 !important; padding: 22px 20px; box-sizing: border-box;
	border-top: 1px solid #eeeeee;
}
.cfcl-woo-zone #block-15 .wp-block-column:first-child { border-top: 0; }
@media (min-width: 576px) {
	.cfcl-woo-zone #block-15 .wp-block-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cfcl-woo-zone #block-15 .wp-block-column:nth-child(2) { border-top: 0; }
	.cfcl-woo-zone #block-15 .wp-block-column:nth-child(even) { border-left: 1px solid #eeeeee; }
}
@media (min-width: 992px) {
	.cfcl-woo-zone #block-15 .wp-block-columns { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.cfcl-woo-zone #block-15 .wp-block-column { border-top: 0; padding: 26px 22px; }
	.cfcl-woo-zone #block-15 .wp-block-column + .wp-block-column { border-left: 1px solid #eeeeee; }
}
.cfcl-woo-zone #block-15 .su-service { margin: 0; }
.cfcl-woo-zone #block-15 .su-service-title {
	position: relative; padding-left: 52px !important; min-height: 40px !important; line-height: 1.3 !important;
	display: flex; align-items: center;
	font-size: 13.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .3px; color: #333;
}
.cfcl-woo-zone #block-15 .su-service-title > i {
	position: absolute; left: 0; top: 0; width: 40px; height: 40px; border-radius: 50%;
	display: flex !important; align-items: center; justify-content: center;
	background: #eaf0f4; color: #224155 !important; font-size: 19px !important; margin: 0 !important;
}
.cfcl-woo-zone #block-15 .su-service-content {
	padding-left: 52px !important; margin-top: 8px; font-size: 13.5px; line-height: 1.6; color: #4c4c4c;
}
.cfcl-woo-zone #block-15 .su-service-content p { margin: 0 0 8px; text-align: left; }
/* Texte du bandeau sous la pastille (et non décalé sous le titre) : plus de largeur utile */
.cfcl-woo-zone #block-15 .su-service-content { padding-left: 0 !important; margin-top: 12px; }

/* ======================================================================
 * BARRE BLEUE DU BAS (copyright et liens) — composition épurée
 * Ordinateur : copyright à gauche, liens alignés à droite sur une ligne.
 * Mobile : centré, empilé. Contenu inchangé (réglage « footer_html_content »).
 * Prime sur les règles de la barre du bas plus haut.
 * ====================================================================== */
.site-footer .site-bottom-footer-wrap .site-bottom-footer-inner-wrap { padding-top: 20px !important; padding-bottom: 20px !important; }
.site-footer .site-bottom-footer-wrap .footer-html-inner {
	display: flex !important; flex-direction: column; align-items: center; gap: 14px;
	font-size: 13px !important; color: rgba(255, 255, 255, .85);
}
.site-footer .site-bottom-footer-wrap .footer-html-inner p { margin: 0 !important; text-align: center !important; line-height: 1.6; }
.site-footer .site-bottom-footer-wrap .footer-html-inner p br { display: none; }
.site-footer .site-bottom-footer-wrap .footer-html-inner p span { font-weight: 400 !important; }
/* « Site réalisé par » et « Gestion du site » : discrets, sur leur propre ligne */
.site-footer .site-bottom-footer-wrap .footer-html-inner p a.nomobile {
	font-size: 11px !important; color: rgba(255, 255, 255, .5) !important; text-decoration: none;
}
.site-footer .site-bottom-footer-wrap .footer-html-inner p a.nomobile:first-of-type::before { content: ""; display: block; height: 2px; }
.site-footer .site-bottom-footer-wrap .footer-html-inner p a.nomobile:hover { color: rgba(255, 255, 255, .85) !important; }
/* Les quatre liens : une seule rangée qui se replie proprement */
.site-footer .copyright_element { max-width: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; }
.site-footer .copyright_element .row { display: flex !important; flex-wrap: wrap; justify-content: center; gap: 6px 22px; margin: 0 !important; }
.site-footer .copyright_element .col-6 {
	flex: 0 0 auto !important; max-width: none !important; width: auto !important; padding: 0 !important;
	display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 22px; line-height: 1.6 !important; text-align: center !important;
}
.site-footer .copyright_element .col-6 br { display: none; }
.site-footer .copyright_element a { color: rgba(255, 255, 255, .85) !important; text-decoration: none !important; white-space: nowrap; opacity: 1 !important; }
.site-footer .copyright_element a:hover { color: #ffffff !important; }
.site-footer .copyright_element a i { opacity: .6; margin-right: 5px; font-size: 12px; }
@media (min-width: 992px) {
	.site-footer .site-bottom-footer-wrap .footer-html-inner { flex-direction: row; justify-content: space-between; text-align: left; }
	.site-footer .site-bottom-footer-wrap .footer-html-inner p { text-align: left !important; }
	.site-footer .copyright_element .row, .site-footer .copyright_element .col-6 { justify-content: flex-end; }
}
/* Une seule marge pour la barre du bas (Simple CSS ajoutait « .site-info { padding: 15px } », héritée d'OnePress) */
.site-footer .site-bottom-footer-wrap .site-info { padding: 0 !important; }
.site-footer .site-bottom-footer-wrap .footer-html { margin: 0 !important; }
.site-footer .site-bottom-footer-wrap .site-bottom-footer-inner-wrap { padding-top: 22px !important; padding-bottom: 22px !important; }

/* ======================================================================
 * RETOUCHES VALIDÉES (audit du 7 novembre 2026, décisions D3 à D11)
 * ====================================================================== */

/* En-tête : le menu (7 entrées) reste sur une ligne ; c'est le slogan à gauche qui passe à la ligne. */
@media (min-width: 1025px) {
	#masthead .site-main-header-inner-wrap .site-header-main-section-left { flex: 1 1 auto; min-width: 0; }
	#masthead .site-main-header-inner-wrap .site-header-main-section-right { flex: 0 0 auto; }
	#masthead .site-branding, #masthead .site-branding .site-title-wrap { min-width: 0; }
	.main-navigation .primary-menu-container > ul { flex-wrap: nowrap; }
	.main-navigation .primary-menu-container > ul > li.menu-item > a { padding-left: 8px; padding-right: 8px; }
}
@media (min-width: 1025px) and (max-width: 1240px) {
	.site-branding .site-description { display: none; }
	.site-branding .site-title, .site-branding .site-title a { font-size: 18px; }
}

/* D3 : menu mobile entièrement en capitales, comme le menu ordinateur (« PANIER » l'était déjà) */
.mobile-navigation ul li > a, .mobile-navigation ul li .drawer-nav-drop-wrap > a { text-transform: uppercase; font-weight: 700; font-size: 14px; letter-spacing: .5px; }

/* D4 : pages sans photo (Panier, Commande, Mon compte, Suivre vos réservations) : bande de titre réduite */
body:not(.cfcl-has-cover):not(.home) .entry-hero .entry-header { min-height: 100px !important; }
@media (min-width: 992px) { body:not(.cfcl-has-cover):not(.home) .entry-hero .entry-header { min-height: 140px !important; } }

/* D5 : message des codes de groupe du panier : style « information », plus « erreur » */
.woocommerce-cart .entry-content > center .su-highlight,
.woocommerce-checkout .entry-content > center .su-highlight {
	display: block; text-align: left; background: #fdf3f3 !important; color: #4c4c4c !important;
	border-left: 3px solid #dd1111; border-radius: 2px; padding: 12px 16px !important; margin: 0 0 24px; line-height: 1.6;
}

/* D6 : FAQ : questions en 15 px, séparées par un filet fin, cliquables sur toute la ligne */
.entry-content .su-spoiler { margin: 0 !important; border-bottom: 1px solid #e6e6e6; }
.entry-content .su-spoiler:first-of-type { border-top: 1px solid #e6e6e6; }
.entry-content .su-spoiler-style-default > .su-spoiler-title {
	display: block; font-size: 15px; line-height: 1.45; color: #333; padding: 14px 8px 14px 34px !important; cursor: pointer;
}
.entry-content .su-spoiler-style-default > .su-spoiler-title:hover { color: #dd1111; }
.entry-content .su-spoiler-style-default > .su-spoiler-title > .su-spoiler-icon { left: 6px !important; top: 50% !important; transform: translateY(-50%); }
.entry-content .su-spoiler-style-default > .su-spoiler-content { padding: 0 8px 18px 34px !important; font-size: 14px; }

/* D7 : un seul style d'image dans les contenus : coins arrondis 4 px, sans cadre */
body:not(.home) .entry-content img { border-radius: 4px; }
.entry-content .su-carousel img, .entry-content .su-slider img, .entry-content .su-image-carousel img { border: 0 !important; padding: 0 !important; border-radius: 4px !important; background: none !important; }
/* Fiches patrimoine : vignettes plus grandes (la page charge la taille « moyenne », voir functions.php) */
.page-id-94 .entry-content img.cfcl-vignette { width: 220px; max-width: 45%; height: auto; }

/* D8 : petits textes : plancher de 12 px, sans toucher au contenu */
.entry-content [style*="font-size: 80%"], .entry-content [style*="font-size:80%"],
.entry-content [style*="font-size: 70%"], .entry-content [style*="font-size:70%"],
.entry-content [style*="font-size: 8pt"], .entry-content [style*="font-size:8pt"],
.cfcl-woo-zone [style*="font-size: 80%"], .cfcl-woo-zone [style*="font-size:80%"] { font-size: 12px !important; }
.entry-content .wprev_showdate_T1 { font-size: 12px !important; }

/* D9 : règle des couleurs de bouton (aucun écart constaté aujourd'hui) :
 * rouge #dd1111 pour réserver et envoyer, gris #696969 pour contacter / appeler,
 * bleu #0275d8 uniquement dans les cartes « départ » de l'accueil. */

/* D10 : fil d'Ariane discret sur les pages de l'association (ajouté par functions.php) */
.cfcl-ariane { font-size: 12.5px; color: #777; margin: 0 0 24px; line-height: 1.5; }
.cfcl-ariane a { color: #777 !important; }
.cfcl-ariane a:hover { color: #dd1111 !important; text-decoration: none; }
.cfcl-ariane span[aria-hidden] { margin: 0 6px; opacity: .6; }

/* D11 : billets : bloc « Catégorie / Étiquettes » masqué */
.single-product .product_meta { display: none; }

/* F10 : message de fin de saison (même style que le message d'information du panier) */
.cfcl-saison {
	background: #fdf3f3; color: #4c4c4c; border-left: 3px solid #dd1111; border-radius: 2px;
	padding: 12px 16px; margin: 0 0 20px; font-size: 14px; line-height: 1.6; text-align: left;
}
.cfcl-saison strong { color: #333; }
.cfcl-saison a { white-space: nowrap; }

/* E8 : encadré « Préparer votre venue » des billets */
.cfcl-venue { clear: both; margin: 20px 0 0; padding: 14px 18px; background: #f6f7f8; border-radius: 4px; font-size: 14px; line-height: 1.6; text-align: left; }
.cfcl-venue strong { display: block; margin-bottom: 6px; color: #333; text-transform: uppercase; font-size: 13px; letter-spacing: .5px; }
.cfcl-venue ul { margin: 0; padding: 0; list-style: none; }
.cfcl-venue li { margin: 2px 0; color: #4c4c4c; }
.cfcl-venue a { color: #dd1111; text-decoration: none; }
.cfcl-venue a:hover { text-decoration: underline; }
.cfcl-venue a[href^="tel:"] { white-space: nowrap; }

/* Pied de page : liens légaux regroupés en un seul bouton */
.cfcl-legal { display: inline-flex; flex-wrap: wrap; justify-content: center; margin: 0; border: 1px solid rgba(255,255,255,.5); border-radius: 4px; overflow: hidden; font-size: 13px; }
.site-footer .cfcl-legal a { padding: 6px 12px; text-decoration: none !important; color: rgba(255,255,255,.85); }
.cfcl-legal a + a { border-left: 1px solid rgba(255,255,255,.5); }
.site-footer .cfcl-legal a:hover, .site-footer .cfcl-legal a:focus-visible { color: #fff; background: rgba(255,255,255,.12); text-decoration: none; }

/* Logos partenaires un peu plus grands sur ordinateur */
@media (min-width: 1025px) {
	.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image img { height: 60px !important; }
	.site-footer #block-20 figure.wp-block-image img { height: 76px !important; }
}

/* E8 : prochain train à thème sur l'accueil */
.cfcl-prochain-theme { margin: 8px 0 0; font-size: 14px; font-weight: 600; text-align: center; }

/* =========================================================================
 * PANIER ET COMMANDE : une seule mise en forme pour les deux pages.
 * Cartes blanches à filet fin, titres de section sobres, un seul bouton rouge
 * (l'action principale), boutons secondaires en contour gris.
 * ========================================================================= */
.woocommerce-cart, .woocommerce-checkout {
	--cfcl-bleu: #224155; --cfcl-rouge: #dd1111; --cfcl-filet: #e3e7eb; --cfcl-fond: #f5f7f9; --cfcl-texte: #333;
}
.woocommerce-cart .content-area, .woocommerce-checkout .content-area { margin-top: 32px; margin-bottom: 48px; }

/* Titres de section */
.woocommerce-cart .cart-summary h2,
.woocommerce-cart .cart_totals > h2,
.woocommerce-checkout #customer_details h3 {
	font-size: 15px !important; line-height: 1.3 !important; font-weight: 700 !important; letter-spacing: .06em;
	text-transform: uppercase; color: var(--cfcl-bleu) !important; margin: 0 0 16px !important; padding: 0 !important;
}

/* Messages (ajout au panier, minuterie de réservation, erreurs) */
.woocommerce-cart .woocommerce-message, .woocommerce-cart .woocommerce-info, .woocommerce-cart .woocommerce-error,
.woocommerce-checkout .woocommerce-message, .woocommerce-checkout .woocommerce-info, .woocommerce-checkout .woocommerce-error,
.bookacti-cart-expiration-container.woocommerce-info {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px;
	background: var(--cfcl-fond) !important; color: var(--cfcl-texte) !important; border: 1px solid var(--cfcl-filet) !important;
	border-left: 4px solid var(--cfcl-bleu) !important; border-radius: 4px; padding: 12px 16px !important;
	margin: 0 0 16px !important; font-size: 14px; line-height: 1.5; box-shadow: none !important;
}
.woocommerce-cart .woocommerce-message, .woocommerce-checkout .woocommerce-message { border-left-color: #2e7d32 !important; }
.woocommerce-cart .woocommerce-error, .woocommerce-checkout .woocommerce-error { border-left-color: var(--cfcl-rouge) !important; }
.woocommerce-cart .woocommerce-message::before, .woocommerce-cart .woocommerce-info::before,
.woocommerce-checkout .woocommerce-info::before, .woocommerce-checkout .woocommerce-message::before { display: none !important; }
.woocommerce-cart .woocommerce-message br { display: none; }
.woocommerce-cart .woocommerce-message .button { order: 2; margin: 0 !important; float: none !important; }
.bookacti-cart-expiration-container.woocommerce-info { border-left-color: #c77700 !important; }

/* Boutons : secondaires en contour gris, l'action principale en rouge */
.woocommerce-cart .woocommerce .button:not(.checkout-button),
.woocommerce-checkout form.checkout_coupon .button, .woocommerce-checkout .woocommerce-message .button {
	background: #fff !important; color: #444 !important; border: 1px solid #b9c0c7 !important; border-radius: 4px !important;
	font-size: 13px !important; font-weight: 600 !important; letter-spacing: .03em; text-transform: uppercase;
	padding: 10px 16px !important; line-height: 1.2 !important; min-height: 40px; box-shadow: none !important;
}
.woocommerce-cart .woocommerce .button:not(.checkout-button):hover,
.woocommerce-checkout form.checkout_coupon .button:hover { border-color: var(--cfcl-bleu) !important; color: var(--cfcl-bleu) !important; }
.woocommerce-cart .woocommerce .button:disabled, .woocommerce-cart .woocommerce .button[disabled] { opacity: .45 !important; cursor: default; }
.woocommerce-cart .checkout-button, .woocommerce-checkout #place_order {
	display: block; width: 100%; background: var(--cfcl-rouge) !important; color: #fff !important; border: 0 !important;
	border-radius: 4px !important; font-size: 15px !important; font-weight: 700 !important; letter-spacing: .04em;
	text-transform: uppercase; padding: 15px 20px !important; text-align: center; box-shadow: none !important;
}
.woocommerce-cart .checkout-button:hover, .woocommerce-checkout #place_order:hover { background: #b80e0e !important; }

/* ---------- Panier ---------- */
.woocommerce-cart .kadence-woo-cart-form-wrap { gap: 24px; align-items: flex-start; }
.woocommerce-cart .kadence-woo-cart-form-wrap > .bookacti-cart-expiration-container { flex: 0 0 100%; width: 100%; }
.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart .cart-collaterals .cart_totals {
	background: #fff; border: 1px solid var(--cfcl-filet); border-radius: 6px; padding: 20px !important; margin: 0 !important;
}
.woocommerce-cart table.shop_table { border: 0 !important; margin: 0 !important; border-collapse: collapse; }
.woocommerce-cart table.cart thead th {
	font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: #777;
	border-bottom: 1px solid var(--cfcl-filet) !important; padding: 0 8px 10px !important; background: none !important;
}
.woocommerce-cart table.cart td { padding: 16px 8px !important; border-top: 0 !important; border-bottom: 1px solid var(--cfcl-filet) !important; vertical-align: middle; font-size: 14px; }
.woocommerce-cart table.cart td.product-name a { color: #222; font-weight: 600; text-decoration: none; }
.woocommerce-cart table.cart td.product-name a:hover { color: var(--cfcl-rouge); }
.woocommerce-cart table.cart td.product-name dl.variation { margin: 6px 0 0; font-size: 13px; color: #555; }
.woocommerce-cart table.cart td.product-name dl.variation dt { font-weight: 600; margin: 0; }
.woocommerce-cart table.cart td.product-name dl.variation dd, .woocommerce-cart table.cart td.product-name dl.variation p { margin: 0; }
.woocommerce-cart table.cart td.product-thumbnail img { width: 64px !important; height: 64px; object-fit: cover; border-radius: 4px; }
.woocommerce-cart table.cart td.product-subtotal, .woocommerce-cart table.cart td.product-price { white-space: nowrap; }
.woocommerce-cart table.cart td.product-subtotal { font-weight: 700; }
.woocommerce-cart table.cart a.remove {
	display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%;
	color: #888 !important; background: var(--cfcl-fond); font-size: 18px; line-height: 1; text-decoration: none;
}
.woocommerce-cart table.cart a.remove:hover { background: var(--cfcl-rouge) !important; color: #fff !important; }
.woocommerce-cart table.cart .quantity .qty { width: 64px; height: 40px; border: 1px solid #cbd5e0; border-radius: 4px; text-align: center; }
.woocommerce-cart table.cart td.actions { border-bottom: 0 !important; padding: 16px 0 0 !important; }
.woocommerce-cart table.cart td.actions .coupon { display: flex; gap: 8px; align-items: stretch; }
.woocommerce-cart table.cart td.actions .coupon .input-text {
	width: 180px !important; height: 40px; border: 1px solid #cbd5e0; border-radius: 4px; padding: 0 12px; font-size: 14px; margin: 0 !important;
}
.woocommerce-cart table.cart td.actions > .button { float: right; }
.woocommerce-cart .cart_totals table.shop_table th, .woocommerce-cart .cart_totals table.shop_table td {
	padding: 12px 0 !important; border: 0 !important; border-bottom: 1px solid var(--cfcl-filet) !important; background: none !important; font-size: 14px;
}
.woocommerce-cart .cart_totals table.shop_table td { text-align: right; }
.woocommerce-cart .cart_totals .order-total th, .woocommerce-cart .cart_totals .order-total td { border-bottom: 0 !important; font-size: 16px; }
.woocommerce-cart .cart_totals .order-total td strong { font-size: 20px; color: #222; }
.woocommerce-cart .cart_totals .includes_tax { display: block; font-size: 12px; color: #777; font-weight: 400; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 16px 0 0 !important; }
/* Tarif de groupe : un seul encadré, au-dessus du total */
.cfcl-info-groupe {
	background: #fdf3f3; border-left: 4px solid var(--cfcl-rouge); border-radius: 4px;
	padding: 12px 14px; margin: 0 0 20px; font-size: 13.5px; line-height: 1.5; color: var(--cfcl-texte);
}
.cfcl-info-groupe strong { display: block; color: var(--cfcl-rouge); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 4px; }
.cfcl-info-groupe code { background: #fff; border: 1px solid #f0caca; border-radius: 3px; padding: 1px 5px; font-size: 12.5px; color: #222; white-space: nowrap; }
/* Panier vide */
.woocommerce-cart .cart-empty.woocommerce-info { justify-content: center; }
.woocommerce-cart .return-to-shop { text-align: center; }

@media (max-width: 767px) {
	.woocommerce-cart .woocommerce-cart-form, .woocommerce-cart .cart-collaterals .cart_totals { padding: 16px !important; }
	.woocommerce-cart table.cart td { padding: 10px 0 !important; }
	.woocommerce-cart table.cart tr.cart_item { display: block; border-bottom: 1px solid var(--cfcl-filet); padding: 8px 0; }
	.woocommerce-cart table.cart tr.cart_item td { border-bottom: 0 !important; }
	.woocommerce-cart table.cart td.actions .coupon { flex-wrap: wrap; }
	.woocommerce-cart table.cart td.actions .coupon .input-text { flex: 1 1 140px; width: auto !important; }
	.woocommerce-cart table.cart td.actions > .button { float: none; width: 100%; margin-top: 8px; }
}

/* ---------- Commande (formulaire WooCommerce classique, sans Fluid Checkout depuis novembre 2026) ----------
 * Téléphone : coordonnées, puis récapitulatif et bouton « Commander ».
 * Ordinateur (1024 px et plus) : coordonnées à gauche, récapitulatif à droite, qui reste visible au défilement.
 * Ancienne mise en forme Fluid Checkout : sauvegarde ~/recette_work/theme-avant-sans-fluid.tgz */
.woocommerce-checkout form.checkout { max-width: 1140px; margin: 0 auto; }
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review {
	background: #fff; border: 1px solid var(--cfcl-filet); border-radius: 6px; padding: 20px 16px; box-sizing: border-box;
}
.woocommerce-checkout #customer_details { margin-bottom: 20px; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { float: none !important; width: 100% !important; max-width: none !important; padding: 0 !important; }
.woocommerce-checkout #customer_details .col-2 { margin-top: 8px; padding-top: 16px !important; border-top: 1px solid var(--cfcl-filet); }
.woocommerce-checkout #customer_details h3,
.woocommerce-checkout #order_review_heading {
	font-size: 15px !important; line-height: 1.3 !important; font-weight: 700 !important; letter-spacing: .06em;
	text-transform: uppercase; color: var(--cfcl-bleu) !important; margin: 0 0 16px !important; padding: 0 !important;
}
.woocommerce-checkout #order_review_heading { margin: 0 !important; padding: 20px 16px 0 !important; background: #fff; border: 1px solid var(--cfcl-filet); border-bottom: 0; border-radius: 6px 6px 0 0; }
.woocommerce-checkout #order_review { border-top: 0; border-radius: 0 0 6px 6px; padding-top: 12px; }
/* Nombre de passagers avant les notes de commande */
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper { display: flex; flex-direction: column; }
.woocommerce-checkout #order_wcj_checkout_field_1_field { order: -1; }
.woocommerce-checkout .form-row { margin: 0 0 14px !important; padding: 0 !important; }
.woocommerce-checkout .form-row label { font-size: 13px; font-weight: 600; color: #333; margin-bottom: 4px; }
.woocommerce-checkout .form-row .input-text, .woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea, .woocommerce-checkout .select2-container .select2-selection--single {
	min-height: 44px; border: 1px solid #cbd5e0 !important; border-radius: 4px !important; font-size: 16px !important; padding: 8px 12px !important; background: #fff !important;
}
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered { padding: 0 !important; line-height: 26px !important; }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow { top: 8px; right: 6px; }
.woocommerce-checkout .form-row textarea { min-height: 88px; }
.woocommerce-checkout .form-row .input-text:focus, .woocommerce-checkout .form-row select:focus, .woocommerce-checkout .form-row textarea:focus {
	border-color: var(--cfcl-bleu) !important; box-shadow: 0 0 0 3px rgba(34, 65, 85, .15) !important; outline: 0;
}
.woocommerce-checkout .form-row .description { font-size: 12.5px; color: #666; padding: 4px 0 0 !important; background: none !important; }
.woocommerce-checkout .form-row .description::before { display: none !important; }
.woocommerce-checkout .form-row .optional { font-weight: 400; color: #777; }
.woocommerce-checkout #billing_address_2_field { margin-top: -6px !important; }
/* Récapitulatif */
.woocommerce-checkout table.woocommerce-checkout-review-order-table { margin: 0 0 16px !important; border: 0 !important; table-layout: auto; width: 100%; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td {
	font-size: 14px; padding: 10px 0 !important; border: 0 !important; border-bottom: 1px solid var(--cfcl-filet) !important; background: none !important; vertical-align: top;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #777; font-weight: 600; padding-top: 0 !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th:last-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table td:last-child { text-align: right; white-space: nowrap; padding-left: 12px !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name { color: #222; font-weight: 600; line-height: 1.35; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name dl { margin: 6px 0 0; font-weight: 400; color: #555; font-size: 13px; line-height: 1.45; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name dl dt { font-weight: 600; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name dl dd { margin: 0 0 4px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name dl p { margin: 0; text-align: left; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-quantity { font-weight: 400; color: #555; }
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th { font-weight: 600; color: #333; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td { border-bottom: 0 !important; padding-top: 14px !important; font-size: 16px; vertical-align: baseline; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total .amount { font-size: 22px; color: var(--cfcl-bleu); font-weight: 700; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-discount td { color: #2e7d32; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .includes_tax,
.woocommerce-checkout .woocommerce-checkout-review-order-table .includes_tax .amount { display: block; font-size: 12px !important; color: #777; font-weight: 400; }
/* Paiement */
.woocommerce-checkout #payment { background: none !important; border-radius: 0; }
.woocommerce-checkout #payment ul.payment_methods { margin: 0 0 16px !important; padding: 0 !important; border: 0 !important; }
.woocommerce-checkout #payment .wc_payment_method {
	list-style: none; margin: 0 !important; padding: 12px 14px !important;
	background: var(--cfcl-fond) !important; border: 1px solid var(--cfcl-filet) !important; border-radius: 4px !important;
}
.woocommerce-checkout #payment .wc_payment_method > label { display: block; margin: 0; font-size: 15px; font-weight: 700; color: var(--cfcl-bleu); line-height: 1.4; }
.woocommerce-checkout #payment .payment_box { margin: 4px 0 0 !important; padding: 0 !important; background: none !important; font-size: 14px; color: #444; }
.woocommerce-checkout #payment .payment_box::before { display: none !important; }
.woocommerce-checkout #payment .payment_box p { margin: 0; text-align: left; }
.woocommerce-checkout #payment div.form-row.place-order { margin: 0 !important; padding: 0 !important; }
.woocommerce-checkout .woocommerce-privacy-policy-text, .woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: #555; line-height: 1.5; }
.woocommerce-checkout .woocommerce-privacy-policy-text p { margin: 0 0 10px; text-align: left; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row { margin-bottom: 16px !important; }
.woocommerce-checkout .woocommerce-form__label-for-checkbox { display: flex !important; align-items: flex-start; gap: 8px; font-size: 14px !important; font-weight: 400 !important; }
.woocommerce-checkout .woocommerce-form__label-for-checkbox input { flex: 0 0 auto; width: 18px; height: 18px; margin: 1px 0 0 !important; }
.woocommerce-checkout #place_order { width: 100%; float: none; }
/* Lien « code promo » */
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { max-width: 1140px; margin-left: auto !important; margin-right: auto !important; }
.woocommerce-checkout form.checkout_coupon {
	max-width: 1140px; margin: 0 auto 16px !important; padding: 16px !important; box-sizing: border-box;
	background: #fff; border: 1px solid var(--cfcl-filet) !important; border-radius: 6px;
}
.woocommerce-checkout form.checkout_coupon p { text-align: left; }
@media (min-width: 768px) {
	.woocommerce-checkout #customer_details, .woocommerce-checkout #order_review { padding: 24px; }
	.woocommerce-checkout #order_review_heading { padding: 24px 24px 0 !important; }
	.woocommerce-checkout #order_review { padding-top: 14px; }
}
@media (min-width: 1024px) {
	.woocommerce-checkout form.checkout {
		display: grid !important; grid-template-columns: minmax(0, 1fr) 400px; grid-template-rows: auto 1fr; column-gap: 28px; align-items: start;
	}
	.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; }
	.woocommerce-checkout #customer_details { grid-column: 1; grid-row: 1 / span 2; margin: 0; }
	.woocommerce-checkout #order_review_heading { grid-column: 2; grid-row: 1; width: auto !important; float: none !important; }
	.woocommerce-checkout #order_review { grid-column: 2; grid-row: 2; width: auto !important; float: none !important; position: sticky; top: 110px; }
	.woocommerce-checkout #customer_details .woocommerce-billing-fields__field-wrapper { display: flex; flex-wrap: wrap; column-gap: 16px; }
	.woocommerce-checkout #customer_details .woocommerce-billing-fields__field-wrapper > .form-row { flex: 1 1 100%; width: auto !important; float: none !important; }
	.woocommerce-checkout #customer_details .woocommerce-billing-fields__field-wrapper > .form-row-first,
	.woocommerce-checkout #customer_details .woocommerce-billing-fields__field-wrapper > .form-row-last,
	.woocommerce-checkout #billing_postcode_field, .woocommerce-checkout #billing_city_field,
	.woocommerce-checkout #billing_phone_field, .woocommerce-checkout #billing_email_field { flex: 1 1 calc(50% - 8px) !important; }
}
.bookacti-cart-expiration-container.woocommerce-info { display: block !important; }
.bookacti-cart-expiration-container .bookacti-countdown { font-weight: 700; color: #222 !important; }
.woocommerce-cart table.cart thead th { white-space: nowrap; }
.woocommerce-cart .woocommerce p { text-align: left; }

/* ---------- Panier sur mobile : une carte par billet ---------- */
@media (max-width: 767px) {
	.woocommerce-cart table.cart tr.cart_item { position: relative; padding: 12px 0 !important; }
	.woocommerce-cart table.cart td.product-remove { position: absolute; top: 12px; right: 0; padding: 0 !important; border: 0 !important; }
	.woocommerce-cart table.cart td.product-remove::before { display: none !important; }
	.woocommerce-cart table.cart td.product-thumbnail { display: block !important; text-align: left !important; padding: 0 0 10px !important; }
	.woocommerce-cart table.cart td.product-thumbnail::before { display: none !important; }
	.woocommerce-cart table.cart td.product-name { display: block !important; text-align: left !important; padding: 0 40px 10px 0 !important; }
	.woocommerce-cart table.cart td.product-name::before { display: none !important; }
	.woocommerce-cart table.cart td.product-name dl.variation dt { float: none; }
	.woocommerce-cart table.cart td.product-price, .woocommerce-cart table.cart td.product-quantity, .woocommerce-cart table.cart td.product-subtotal {
		display: flex !important; justify-content: space-between; align-items: center; padding: 6px 0 !important; font-size: 14px;
	}
	.woocommerce-cart table.cart td.product-price::before, .woocommerce-cart table.cart td.product-quantity::before, .woocommerce-cart table.cart td.product-subtotal::before {
		float: none !important; font-weight: 400 !important; color: #666;
	}
	.woocommerce-cart .cart-summary h2 { margin-bottom: 4px !important; }
}

/* ---------- Page de confirmation de commande ---------- */
.woocommerce-order-received .woocommerce-order { max-width: 860px; margin: 0 auto; }
.woocommerce-order-received .woocommerce-order > p,
.woocommerce-order-received .woocommerce-order section p { text-align: left; }
/* Message de remerciement */
.woocommerce-order-received .woocommerce-thankyou-order-received {
	display: flex; align-items: center; gap: 14px; margin: 0 0 24px !important;
	background: #f1f8f2 !important; border: 1px solid #cfe6d3 !important; border-left: 4px solid #2e7d32 !important; border-radius: 4px;
	padding: 16px 18px !important; font-size: 16px; font-weight: 600; color: #1f4d24 !important;
}
.woocommerce-order-received .woocommerce-thankyou-order-received::before {
	content: "✓"; flex: 0 0 32px; height: 32px; border-radius: 50%; background: #2e7d32; color: #fff;
	display: flex !important; align-items: center; justify-content: center; font-size: 17px; font-weight: 700; position: static !important; margin: 0 !important;
}
/* Récapitulatif : quatre cases */
.woocommerce-order-received ul.woocommerce-order-overview {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0 0 24px !important; padding: 0 !important;
	list-style: none; background: #fff; border: 1px solid var(--cfcl-filet, #e3e7eb); border-radius: 6px; overflow: hidden;
}
.woocommerce-order-received ul.woocommerce-order-overview li {
	float: none !important; margin: 0 !important; padding: 14px 16px !important; border: 0 !important;
	border-bottom: 1px solid #e3e7eb !important; font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #777;
}
.woocommerce-order-received ul.woocommerce-order-overview li:nth-child(odd) { border-right: 1px solid #e3e7eb !important; }
.woocommerce-order-received ul.woocommerce-order-overview li strong {
	display: block; margin-top: 4px; font-size: 15px; text-transform: none; letter-spacing: 0; color: #222; word-break: break-word;
}
@media (min-width: 768px) {
	.woocommerce-order-received ul.woocommerce-order-overview { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.woocommerce-order-received ul.woocommerce-order-overview li { border-bottom: 0 !important; border-right: 1px solid #e3e7eb !important; }
	.woocommerce-order-received ul.woocommerce-order-overview li:last-child { border-right: 0 !important; }
	.woocommerce-order-received ul.woocommerce-order-overview li.method { grid-column: 1 / -1; border-top: 1px solid #e3e7eb !important; border-right: 0 !important; }
}
/* Consigne de paiement en gare */
.woocommerce-order-received .woocommerce-order > ul + p {
	background: #f5f7f9; border: 1px solid #e3e7eb; border-left: 4px solid #224155; border-radius: 4px;
	padding: 12px 16px; margin: 0 0 24px; font-size: 14px; color: #333;
}
/* Détails et adresse : cartes */
.woocommerce-order-received .woocommerce-order-details,
.woocommerce-order-received .woocommerce-customer-details {
	background: #fff; border: 1px solid #e3e7eb; border-radius: 6px; padding: 20px; margin: 0 0 24px;
}
.woocommerce-order-received .woocommerce-order-details__title,
.woocommerce-order-received .woocommerce-column__title {
	font-size: 15px !important; line-height: 1.3; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: #224155; margin: 0 0 14px !important;
}
.woocommerce-order-received table.order_details { border: 0 !important; margin: 0 !important; border-collapse: collapse; width: 100%; }
.woocommerce-order-received table.order_details th, .woocommerce-order-received table.order_details td {
	padding: 12px 0 !important; border: 0 !important; border-bottom: 1px solid #e3e7eb !important; background: none !important;
	font-size: 14px; vertical-align: top; text-align: left;
}
.woocommerce-order-received table.order_details thead th { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #777; font-weight: 600; padding-top: 0 !important; }
.woocommerce-order-received table.order_details td:last-child, .woocommerce-order-received table.order_details th:last-child { text-align: right; padding-left: 12px !important; }
.woocommerce-order-received table.order_details tfoot th { font-weight: 400; color: #555; }
.woocommerce-order-received table.order_details tfoot tr:last-child th, .woocommerce-order-received table.order_details tfoot tr:last-child td { border-bottom: 0 !important; font-size: 16px; color: #222; font-weight: 700; }
.woocommerce-order-received table.order_details .includes_tax { display: block; font-size: 12px; font-weight: 400; color: #777; }
.woocommerce-order-received table.order_details td.product-name > a { color: #222; font-weight: 600; text-decoration: none; }
.woocommerce-order-received table.order_details td.product-name > a:hover { color: #dd1111; }
.woocommerce-order-received table.order_details .wc-item-meta { margin: 8px 0 0 !important; padding: 0 !important; list-style: none; font-size: 13px; color: #555; }
.woocommerce-order-received table.order_details .wc-item-meta li { margin: 2px 0; }
.woocommerce-order-received table.order_details .wc-item-meta li strong { font-weight: 600; color: #333; }
.woocommerce-order-received table.order_details .wc-item-meta p { display: inline; margin: 0; }
/* Boutons d'action de la réservation (annuler, replanifier) : secondaires */
.woocommerce-order-received .bookacti-booking-action, .woocommerce-order-received table.order_details .button {
	display: inline-block; background: #fff !important; color: #444 !important; border: 1px solid #b9c0c7 !important;
	border-radius: 4px !important; font-size: 12px !important; font-weight: 600; text-transform: uppercase; letter-spacing: .03em;
	padding: 6px 12px !important; margin: 4px 6px 0 0 !important; box-shadow: none !important; line-height: 1.3 !important;
}
.woocommerce-order-received .bookacti-booking-action:hover { border-color: #224155 !important; color: #224155 !important; }
.woocommerce-order-received .woocommerce-customer-details address {
	border: 0 !important; padding: 0 !important; font-style: normal; font-size: 14px; line-height: 1.7; color: #333;
}
.woocommerce-order-received .woocommerce-customer-details address p { margin: 0; }
/* Encadré pratique en fin de page */
.cfcl-venue--merci { margin: 0 0 8px; }
.woocommerce-order-received ul.woocommerce-order-overview::before, .woocommerce-order-received ul.woocommerce-order-overview::after { display: none !important; content: none !important; }
/* Récapitulatif : autant de cases que d'informations (l'e-mail n'apparaît que pour un client connecté) */
.woocommerce-order-received ul.woocommerce-order-overview { display: flex !important; flex-wrap: wrap; }
.woocommerce-order-received ul.woocommerce-order-overview li { flex: 1 1 140px; border-right: 1px solid #e3e7eb !important; border-bottom: 1px solid #e3e7eb !important; margin: 0 -1px -1px 0 !important; }
.woocommerce-order-received ul.woocommerce-order-overview li.method { flex-basis: 100%; grid-column: auto; border-top: 0 !important; }
.woocommerce-order-received table.order_details { table-layout: fixed; }
.woocommerce-order-received table.order_details thead th:last-child,
.woocommerce-order-received table.order_details td.product-total { width: 96px; }
.woocommerce-order-received table.order_details td, .woocommerce-order-received table.order_details th { overflow-wrap: anywhere; }
@media (max-width: 767px) {
	.woocommerce-order-received .woocommerce-order-details, .woocommerce-order-received .woocommerce-customer-details { padding: 16px; }
	.woocommerce-order-received .woocommerce-thankyou-order-received { font-size: 15px; }
	.woocommerce-order-received table.order_details tfoot th { width: 45%; }
}
.woocommerce-cart table.cart td.actions { background: none !important; }
@media (max-width: 767px) {
	.woocommerce-cart table.cart td.product-thumbnail img { margin: 0 !important; display: block; }
	.woocommerce-cart table.cart td.product-thumbnail a { display: inline-block; }
	.woocommerce-cart table.cart td.actions { padding: 16px 0 0 !important; }
	.woocommerce-cart table.cart td.actions .coupon { flex-wrap: wrap; padding: 0 !important; }
	.woocommerce-cart table.cart td.actions .coupon .input-text, .woocommerce-cart table.cart td.actions .coupon .button { flex: 1 1 100% !important; width: 100% !important; }
}
/* Boutons secondaires : priment sur la règle générale « boutons WooCommerce en rouge » plus haut */
html body .woocommerce a.button.bookacti-booking-action.bookacti-booking-action,
html body .woocommerce a.button.bookacti-booking-group-action.bookacti-booking-group-action,
html body.woocommerce-cart .woocommerce a.button.wc-forward:not(.checkout-button),
html body.woocommerce-checkout .woocommerce-message a.button.wc-forward {
	background: #fff !important; color: #444 !important; border: 1px solid #b9c0c7 !important; border-radius: 4px !important;
	font-size: 12px !important; font-weight: 600 !important; padding: 7px 14px !important; line-height: 1.3 !important; box-shadow: none !important;
}
html body .woocommerce a.button.bookacti-booking-action.bookacti-booking-action:hover,
html body .woocommerce a.button.bookacti-booking-group-action.bookacti-booking-group-action:hover,
html body.woocommerce-cart .woocommerce a.button.wc-forward:not(.checkout-button):hover {
	background: #fff !important; border-color: #224155 !important; color: #224155 !important;
}
.bookacti-booking-actions { font-size: 0; } /* masque le séparateur « | » entre les boutons */
.bookacti-booking-actions a.button { font-size: 12px; }
/* Récapitulatif de la confirmation : largeur des colonnes automatique */
.woocommerce-order-received table.order_details { table-layout: auto !important; }
.woocommerce-order-received table.order_details thead th:last-child,
.woocommerce-order-received table.order_details td.product-total { width: auto !important; }
.woocommerce-order-received table.order_details tfoot th { width: 40%; }
.woocommerce-order-received table.order_details td, .woocommerce-order-received table.order_details th { overflow-wrap: normal; }
.woocommerce-order-received table.order_details td.product-name { overflow-wrap: anywhere; }

/* =========================================================================
 * PAGES DE CONTACT (Nous contacter, demande de devis) : mêmes cartes et mêmes
 * champs que le panier et la commande.
 * ========================================================================= */
.cfcl-contact { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 8px 0 24px; }
.cfcl-contact > div { background: #fff; border: 1px solid #e3e7eb; border-radius: 6px; padding: 20px; }
.cfcl-contact h3 {
	font-size: 15px !important; line-height: 1.3; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
	color: #224155; margin: 0 0 12px !important;
}
.cfcl-contact h3 i { color: #dd1111; margin-right: 6px; }
.cfcl-contact p { text-align: left; font-size: 14px; line-height: 1.6; margin: 0 0 10px; }
.cfcl-contact p:last-child { margin-bottom: 0; }
.cfcl-contact__tel { order: -1; }
.cfcl-contact__appel {
	display: inline-flex; align-items: center; gap: 8px; background: #4a5560; color: #fff !important; text-decoration: none !important;
	border-radius: 4px; padding: 11px 18px; font-weight: 700; font-size: 15px;
}
.cfcl-contact__appel:hover { background: #224155; }
.cfcl-contact__devis {
	background: #f5f7f9; border-left: 4px solid #224155; border-radius: 4px; padding: 10px 14px; margin: 0 0 18px !important;
}
.cfcl-contact__devis i { color: #224155; margin-right: 4px; }
.cfcl-contact__note { font-size: 13px !important; color: #555; }
.cfcl-contact__note i { color: #c77700; }
@media (min-width: 900px) {
	.cfcl-contact { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-areas: "form tel" "form faq" "form courrier"; align-items: start; }
	.cfcl-contact__form { grid-area: form; padding: 24px 28px !important; }
	.cfcl-contact__tel { grid-area: tel; }
	.cfcl-contact__faq { grid-area: faq; }
	.cfcl-contact__courrier { grid-area: courrier; }
}

/* Formulaires Contact Form 7 (contact, devis) */
.wpcf7 .wpcf7-form { font-size: 14px; }
.wpcf7 .wpcf7-form > .container { padding: 0 !important; max-width: none !important; width: auto !important; }
.wpcf7 .wpcf7-form .row { margin-left: -10px; margin-right: -10px; }
.wpcf7 .wpcf7-form .row > [class*="col-"] { padding-left: 10px; padding-right: 10px; }
.wpcf7 .wpcf7-form p { text-align: left; margin: 0 0 14px; }
.wpcf7 .wpcf7-form label { display: block; font-size: 13px; font-weight: 600; color: #333; margin: 0 0 14px; }
.wpcf7 .wpcf7-form label br { display: none; }
.wpcf7 .wpcf7-form-control-wrap { display: block; margin-top: 5px; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 input[type="number"],
.wpcf7 input[type="date"], .wpcf7 input[type="url"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; min-height: 44px; box-sizing: border-box; border: 1px solid #cbd5e0 !important; border-radius: 4px !important;
	background: #fff !important; padding: 8px 12px !important; font-size: 15px !important; font-weight: 400; color: #222; box-shadow: none !important;
}
.wpcf7 textarea { min-height: 160px; resize: vertical; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus {
	border-color: #224155 !important; box-shadow: 0 0 0 3px rgba(34, 65, 85, .15) !important; outline: 0;
}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-acceptance label { display: flex; gap: 8px; align-items: flex-start; font-weight: 400; font-size: 13px; line-height: 1.5; text-align: left; }
.wpcf7 .wpcf7-acceptance input { margin-top: 3px; flex: 0 0 auto; }
.wpcf7 .wpcf7-submit {
	background: #dd1111 !important; color: #fff !important; border: 0 !important; border-radius: 4px !important;
	font-size: 14px !important; font-weight: 700 !important; letter-spacing: .04em; text-transform: uppercase;
	padding: 13px 28px !important; cursor: pointer; box-shadow: none !important;
}
.wpcf7 .wpcf7-submit:hover { background: #b80e0e !important; }
.wpcf7 .wpcf7-submit:disabled { opacity: .45; cursor: default; }
.wpcf7 .wpcf7-not-valid-tip { font-size: 12.5px; font-weight: 400; margin-top: 4px; }
.wpcf7 .wpcf7-form-control.wpcf7-not-valid { border-color: #dd1111 !important; }
.wpcf7 form .wpcf7-response-output { border-radius: 4px; margin: 16px 0 0 !important; font-size: 14px; }
.wpcf7 .wpcf7-form span[style*="font-size:70%"], .wpcf7 .wpcf7-form span[style*="font-size: 70%"] { display: block; margin-top: -8px; font-size: 12.5px !important; color: #666 !important; }
@media (min-width: 900px) { .cfcl-contact { grid-template-rows: auto auto 1fr; } }
/* Formulaires où le libellé est fermé avant le champ (devis groupes) */
.wpcf7 .wpcf7-form p > br, .wpcf7 .wpcf7-form p > span + br { display: none; }
.wpcf7 .wpcf7-form p > label { margin: 0 !important; }
.wpcf7 .wpcf7-form p > label[style] { margin-top: 14px !important; }
.wpcf7 .wpcf7-radio, .wpcf7 .wpcf7-checkbox { display: flex; flex-wrap: wrap; gap: 6px 18px; padding: 6px 0 2px; }
.wpcf7 .wpcf7-radio .wpcf7-list-item, .wpcf7 .wpcf7-checkbox .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-radio .wpcf7-list-item label, .wpcf7 .wpcf7-checkbox .wpcf7-list-item label { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; margin: 0; }
.page-id-13612 .wpcf7 { background: #fff; border: 1px solid #e3e7eb; border-radius: 6px; padding: 24px 28px; margin: 12px 0 24px; }
@media (max-width: 767px) { .page-id-13612 .wpcf7 { padding: 16px; } }
/* Récapitulatif de la confirmation : chaque ligne gère ses propres largeurs (le moyen de paiement
 * ne rétrécit plus la colonne du billet, et inversement). */
.woocommerce-order-received table.order_details,
.woocommerce-order-received table.order_details thead,
.woocommerce-order-received table.order_details tbody,
.woocommerce-order-received table.order_details tfoot { display: block; width: 100%; }
.woocommerce-order-received table.order_details tr {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 20px; align-items: start;
	border-bottom: 1px solid #e3e7eb; padding: 12px 0;
}
.woocommerce-order-received table.order_details thead tr { padding-top: 0; }
.woocommerce-order-received table.order_details tfoot tr { grid-template-columns: auto minmax(0, 1fr); }
.woocommerce-order-received table.order_details tfoot tr:last-child { border-bottom: 0; padding-bottom: 0; }
.woocommerce-order-received table.order_details th,
.woocommerce-order-received table.order_details td {
	display: block; width: auto !important; padding: 0 !important; border: 0 !important; overflow-wrap: normal;
}
.woocommerce-order-received table.order_details td.product-total,
.woocommerce-order-received table.order_details thead th:last-child { white-space: nowrap; }
.woocommerce-order-received table.order_details tfoot th { white-space: nowrap; }
.woocommerce-order-received table.order_details tfoot td { text-align: right; }
.woocommerce-order-received table.order_details tfoot td { min-width: 0; overflow-wrap: anywhere; }

/* =========================================================================
 * AUDIT DESIGN MOBILE-FIRST (novembre 2026), lot 1 : socle commun.
 * Les règles ci-dessous priment sur celles plus haut. Doc d'audit : G1 à G8, H1, R1.
 * ========================================================================= */

/* G1 : texte courant à 16 px (réglage du thème) ; blocs secondaires à 15 px */
:where(.entry-content) :where(p, li) { line-height: 1.65; }

/* G2 : titre de page dans le bandeau */
.entry-hero h1 { font-size: 26px; letter-spacing: .5px; line-height: 1.2; }
@media (min-width: 768px) { .entry-hero h1 { font-size: 34px; } }
@media (min-width: 992px) { .entry-hero h1 { font-size: 40px; } }

/* H1 : voile en dégradé sous le titre quand le bandeau a une photo */
.cfcl-has-cover .entry-hero .hero-section-overlay {
	background: linear-gradient(180deg, rgba(0, 0, 0, .15) 0%, rgba(0, 0, 0, .35) 45%, rgba(0, 0, 0, .6) 100%) !important;
	opacity: 1 !important;
}
.cfcl-has-cover .entry-hero h1 { text-shadow: 0 2px 8px rgba(0, 0, 0, .45); }

/* G3 : plus de texte justifié, même écrit dans la page */
.entry-content [style*="justify"] { text-align: left !important; }

/* G5 : une seule échelle de titres dans les contenus (l'accueil garde ses propres titres) */
:where(.entry-content, .woocommerce-tabs, .cfcl-woo-zone) h2 { font-size: 22px; line-height: 1.25; }
:where(.entry-content, .woocommerce-tabs, .cfcl-woo-zone) h3 { font-size: 18px; line-height: 1.3; }
:where(.entry-content, .woocommerce-tabs, .cfcl-woo-zone) h4 { font-size: 16px; line-height: 1.35; }
@media (min-width: 768px) {
	:where(.entry-content, .woocommerce-tabs, .cfcl-woo-zone) h2 { font-size: 26px; }
	:where(.entry-content, .woocommerce-tabs, .cfcl-woo-zone) h3 { font-size: 19px; }
}
@media (min-width: 992px) {
	:where(.entry-content, .woocommerce-tabs, .cfcl-woo-zone) h2 { font-size: 28px; }
	:where(.entry-content, .woocommerce-tabs, .cfcl-woo-zone) h3 { font-size: 20px; }
	:where(.entry-content, .woocommerce-tabs, .cfcl-woo-zone) h4 { font-size: 17px; }
}
.entry-content h1, .entry-content h2, .entry-content h3, .entry-content h4 { margin-top: 1.4em; }
.entry-content > :first-child, .entry-content h2:first-child, .entry-content h3:first-child { margin-top: 0; }

/* G6 : couleurs des boutons (rouge = réserver, gris = contacter, contour bleu nuit = en savoir plus) */
.cfcl-btn-small .wp-block-button__link {
	background: #fff !important; color: #224155 !important; border: 1px solid #224155 !important;
}
.cfcl-btn-small .wp-block-button__link:hover { background: #224155 !important; color: #fff !important; }
.cfcl-btn-small .wp-block-button__link[href*="billetterie"] { background: #dd1111 !important; border-color: #dd1111 !important; color: #fff !important; }
.cfcl-btn-small .wp-block-button__link[href*="billetterie"]:hover { background: #b80e0e !important; border-color: #b80e0e !important; }
.cfcl-btn-small .wp-block-button__link[href*="contact"] { background: #4a5560 !important; border-color: #4a5560 !important; color: #fff !important; }
.cfcl-btn-small .wp-block-button__link[href*="contact"]:hover { background: #224155 !important; border-color: #224155 !important; }

/* G7 : plancher de 12 px pour tout le texte */
.site-branding .site-description { font-size: 12px !important; }
.site-footer figcaption, .site-footer .wp-block-gallery figcaption { font-size: 12.5px !important; }
.entry-content [style*="font-size: 70%"], .entry-content [style*="font-size:70%"],
.entry-content [style*="font-size: 75%"], .entry-content [style*="font-size:75%"],
.entry-content [style*="font-size: 80%"], .entry-content [style*="font-size:80%"],
.entry-content [style*="x-small"], .entry-content [style*="font-size: small"], .entry-content [style*="font-size:small"],
.entry-content [style*="8pt"], .entry-content [style*="9pt"], .entry-content [style*="10px"], .entry-content [style*="11px"] { font-size: 13px !important; }

/* G8 : styles écrits dans les pages qui contredisent le thème */
.entry-content div[style*="visibility: hidden"], .entry-content div[style*="visibility:hidden"] { height: 12px !important; overflow: hidden; }
.entry-content center { text-align: center; }
.entry-content [style*="font-family"] { font-family: inherit !important; }

/* R1 : sur téléphone, les images flottantes passent en pleine largeur au-dessus du texte */
@media (max-width: 599px) {
	.entry-content img.alignleft, .entry-content img.alignright,
	.entry-content .alignleft:not(.su-button), .entry-content .alignright:not(.su-button),
	.entry-content figure.alignleft, .entry-content figure.alignright,
	.entry-content .wp-caption.alignleft, .entry-content .wp-caption.alignright,
	.entry-content div[style*="float"]:has(img), .entry-content a:has(> img.alignleft), .entry-content a:has(> img.alignright) {
		float: none !important; display: block; width: 100% !important; max-width: 100% !important;
		margin: 0 0 14px !important; padding: 0 !important;
	}
	.entry-content img.alignleft, .entry-content img.alignright,
	.entry-content div[style*="float"]:has(img) img, .entry-content figure.alignleft img, .entry-content figure.alignright img {
		width: 100% !important; height: auto !important; max-height: 360px; object-fit: cover;
	}
}

/* =========================================================================
 * AUDIT DESIGN, lot 2 : accueil et billetterie (A1, A5, B1 à B6).
 * ========================================================================= */

/* A1 : « Prochains départs » et « L'association » visibles aussi sur téléphone */
@media (max-width: 460px) {
	#planifier-votre-balade, #association { display: block !important; }
	#planifier-votre-balade > .wp-block-group__inner-container { padding: 22px 16px !important; margin: 0 12px; }
}

/* A5 : boutons du hero, même largeur ; « Réserver en ligne » en premier, rouge plein */
.cfcl-hero .wp-block-buttons { gap: 12px; }
.cfcl-hero .wp-block-button { flex: 0 0 auto; }
.cfcl-hero .wp-block-button .wp-block-button__link { min-width: 240px; text-align: center; box-sizing: border-box; }
.cfcl-hero .wp-block-button:has(a[href*="billetterie"]) { order: -1; }
.cfcl-hero .wp-block-button a[href*="billetterie"] { background: #dd1111 !important; border-color: #dd1111 !important; color: #fff !important; }
.cfcl-hero .wp-block-button a[href*="billetterie"]:hover { background: #b80e0e !important; border-color: #b80e0e !important; }
.cfcl-hero .wp-block-button a:not([href*="billetterie"]) { background: transparent !important; border: 2px solid #fff !important; color: #fff !important; }
.cfcl-hero .wp-block-button a:not([href*="billetterie"]):hover { background: #fff !important; color: #333 !important; }
@media (max-width: 599px) {
	.cfcl-hero .wp-block-buttons { flex-direction: column; align-items: stretch; max-width: 300px; margin-left: auto; margin-right: auto; }
	.cfcl-hero .wp-block-button .wp-block-button__link { width: 100%; min-width: 0; }
}

/* B1 : billetterie sur téléphone, les quatre blocs deviennent des pastilles 2 × 2 qui s'ouvrent au toucher */
@media (max-width: 767px) {
	.cfcl-woo-zone #block-15 .wp-block-columns.cfcl-pastilles {
		display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px !important;
		background: none !important; box-shadow: none !important; margin: 0 0 20px !important;
	}
	.cfcl-woo-zone #block-15 .cfcl-pastilles .wp-block-column {
		background: #fff; border: 1px solid #e3e7eb !important; border-radius: 6px; padding: 0 !important; margin: 0 !important;
	}
	.cfcl-woo-zone #block-15 .cfcl-pastilles .su-service { margin: 0 !important; }
	.cfcl-woo-zone #block-15 .cfcl-pastilles .su-service-title {
		display: flex !important; align-items: center; gap: 8px; min-height: 52px !important; line-height: 1.25 !important;
		padding: 10px 28px 10px 12px !important; font-size: 13px !important; font-weight: 700; cursor: pointer; position: relative;
	}
	.cfcl-woo-zone #block-15 .cfcl-pastilles .su-service-title i { position: static !important; font-size: 20px !important; flex: 0 0 auto; margin: 0 !important; color: #224155 !important; }
	.cfcl-woo-zone #block-15 .cfcl-pastilles .su-service-title::after { content: "+"; position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font-size: 18px; color: #888; }
	.cfcl-woo-zone #block-15 .cfcl-pastilles .su-service-content { display: none; padding: 0 12px 12px !important; font-size: 14px; }
	.cfcl-woo-zone #block-15 .cfcl-pastilles .wp-block-column.is-open { grid-column: 1 / -1; }
	.cfcl-woo-zone #block-15 .cfcl-pastilles .wp-block-column.is-open .su-service-content { display: block; }
	.cfcl-woo-zone #block-15 .cfcl-pastilles .wp-block-column.is-open .su-service-title::after { content: "\2212"; }
}

/* B3 : cartes billets plus compactes (photo paysage, prix et bouton sur une ligne) */
.woocommerce ul.products li.product { text-align: left !important; }
.woocommerce ul.products li.product a.woocommerce-loop-image-link img {
	width: 100% !important; aspect-ratio: 16 / 9; height: auto !important; object-fit: cover; border-radius: 4px 4px 0 0; margin: 0 !important;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 16px !important; line-height: 1.3 !important; margin: 0 0 8px !important;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
@media (max-width: 767px) {
	.woocommerce ul.products li.product .product-details { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; padding: 12px 14px 14px !important; }
	.woocommerce ul.products li.product .product-details > * { margin: 0 !important; }
	.woocommerce ul.products li.product .product-details > .woocommerce-loop-product__title { flex: 1 1 100%; }
	.woocommerce ul.products li.product .product-details .price { font-size: 15px !important; }
}

/* B4 : fiche billet à plat, titre à gauche, formulaire dans une carte blanche */
.single-product div.product { border: 0 !important; padding: 0 !important; text-align: left !important; box-shadow: none !important; }
.single-product div.product .product_title { font-size: 22px !important; line-height: 1.25 !important; text-align: left !important; margin: 0 0 8px !important; }
@media (min-width: 992px) { .single-product div.product .product_title { font-size: 28px !important; } }
.single-product div.product .summary .price { text-align: left !important; font-size: 17px; margin: 0 0 16px !important; }
.single-product div.product form.cart {
	background: #fff; border: 1px solid #e3e7eb; border-radius: 6px; padding: 16px !important; margin: 0 0 20px !important; text-align: left;
}
.single-product div.product div.images img { border-radius: 6px; }
@media (max-width: 767px) {
	.single-product div.product div.images { margin-bottom: 16px !important; }
	.single-product div.product div.images img { aspect-ratio: 16 / 9; object-fit: cover; }
}
.single-product .cfcl-woo-zone--fiche { margin: 8px 0 24px; }

/* B5 : un seul onglet = pas de barre d'onglets */
.woocommerce-tabs ul.tabs:has(> li:only-child) { display: none !important; }
.woocommerce-tabs:has(ul.tabs > li:only-child) .wc-tab { border: 0 !important; padding: 0 !important; }
.woocommerce-tabs .wc-tab > h2:first-child { margin-top: 0 !important; }

/* B6 : aide sous le bouton « Réserver » tant qu'il est inactif */
.cfcl-aide-resa { display: none; flex-basis: 100%; margin: 8px 0 0 !important; font-size: 13px; color: #666; text-align: left; }
form.cart .single_add_to_cart_button:is(.disabled, :disabled) ~ .cfcl-aide-resa { display: block; }
@media (max-width: 767px) {
	.cfcl-woo-zone #block-15 .cfcl-pastilles .widget, .cfcl-woo-zone #block-15 .cfcl-pastilles .textwidget,
	.cfcl-woo-zone #block-15 .cfcl-pastilles .su-service { margin: 0 !important; padding: 0 !important; }
	.cfcl-woo-zone #block-15 .cfcl-pastilles .su-service-title { min-height: 0 !important; padding: 12px 26px 12px 10px !important; font-size: 12.5px !important; }
	.cfcl-woo-zone #block-15 .cfcl-pastilles .su-service-title i { width: 30px !important; height: 30px !important; font-size: 15px !important; }
}
/* B3 : cartes billets à filet fin */
.woocommerce ul.products li.product { border: 1px solid #e3e7eb !important; border-radius: 6px !important; padding: 0 !important; overflow: hidden; box-shadow: none !important; background: #fff; }
.woocommerce ul.products li.product a.woocommerce-loop-image-link img { border-radius: 0 !important; }
.woocommerce ul.products li.product .product-details { padding: 12px 14px 14px !important; }
/* B4 : pas de double cadre autour du formulaire de réservation */
.single-product .bookacti-wc-fullwidth-cart-form { border: 0 !important; padding: 0 !important; margin: 0 !important; }
.cfcl-aide-resa { clear: both; padding-top: 4px; }
/* B5 : l'onglet « Informations complémentaires » est déjà masqué : s'il ne reste que la description, pas de barre d'onglets */
.woocommerce-tabs ul.tabs:not(:has(> li:not(.description_tab):not(.additional_information_tab))) { display: none !important; }
.woocommerce-tabs:has(ul.tabs:not(:has(> li:not(.description_tab):not(.additional_information_tab)))) .wc-tab { border: 0 !important; padding: 0 !important; }
.woocommerce ul.products { margin-top: 8px !important; }
/* A1 : calendrier de l'accueil en vue liste sur téléphone, places disponibles sous le titre du départ */
#planifier-votre-balade .fc-list .bookacti-availability-container {
	position: static !important; display: block !important; margin: 4px 0 0 !important; transform: none !important;
}
#planifier-votre-balade .fc-list .bookacti-availability-container * { position: static !important; }
#planifier-votre-balade .fc-list .fc-event-main { display: flex; flex-wrap: wrap; column-gap: 10px; }

/* =========================================================================
 * AUDIT DESIGN, lot 3 : finitions (A1 compact, A2 à A4, H2 à H4, R2 à R7, U1 à U5).
 * ========================================================================= */

/* A2 : sur téléphone, les cartes « Nos activités » défilent à l'horizontale */
@media (max-width: 767px) {
	#decouvrir .cfcl-features, .cfcl-features {
		display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px !important;
		padding: 4px 16px 12px !important; margin-left: -16px !important; margin-right: -16px !important;
		-webkit-overflow-scrolling: touch; scrollbar-width: none;
	}
	#decouvrir .cfcl-features::-webkit-scrollbar { display: none; }
	#decouvrir .cfcl-features > .cfcl-feature { flex: 0 0 80% !important; max-width: 80% !important; scroll-snap-align: center; margin: 0 !important; }
	.cfcl-features > .cfcl-feature img { aspect-ratio: 4 / 3; object-fit: cover; }
}
/* A3 : carte entière cliquable quand elle a un lien */
.cfcl-feature { position: relative; }
.cfcl-feature-title a { color: inherit !important; text-decoration: none !important; }
.cfcl-feature-title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.cfcl-feature:has(.cfcl-feature-title a) { transition: box-shadow .2s ease, transform .2s ease; }
.cfcl-feature:has(.cfcl-feature-title a):hover { box-shadow: 0 4px 14px rgba(0, 0, 0, .12); transform: translateY(-2px); }
.cfcl-feature-title a:focus-visible::after { outline: 3px solid #224155; outline-offset: -3px; border-radius: 4px; }

/* A4 : « Attention au départ » en liste compacte sur téléphone, ligne entière cliquable */
@media (max-width: 767px) {
	#section-depart .cfcl-cards { gap: 8px !important; }
	#section-depart .cfcl-card {
		display: grid !important; grid-template-columns: 40px minmax(0, 1fr) 16px; column-gap: 12px; row-gap: 2px;
		align-items: center; text-align: left !important; padding: 14px 14px !important; position: relative;
	}
	#section-depart .cfcl-card > * { margin: 0 !important; }
	#section-depart .cfcl-card .cfcl-card-icon { grid-row: 1 / span 2; grid-column: 1; width: 40px !important; height: 40px !important; font-size: 17px !important; margin: 0 !important; }
	#section-depart .cfcl-card .cfcl-card-title { grid-column: 2; font-size: 15px !important; text-align: left !important; }
	#section-depart .cfcl-card .cfcl-card-text { grid-column: 2; font-size: 13.5px !important; line-height: 1.45 !important; text-align: left !important; color: #555; }
	#section-depart .cfcl-card .wp-block-buttons { grid-column: 3; grid-row: 1 / span 2; justify-content: flex-end !important; }
	#section-depart .cfcl-card .wp-block-button__link {
		font-size: 0 !important; padding: 0 !important; width: 16px; height: 16px; min-height: 0; background: none !important; border: 0 !important; box-shadow: none !important;
	}
	#section-depart .cfcl-card .wp-block-button__link::before { content: "\203A"; font-size: 26px; line-height: 16px; color: #224155; }
	#section-depart .cfcl-card .wp-block-button__link::after { content: ""; position: absolute; inset: 0; }
}

/* A1 : « L'association » sur téléphone, une liste de six liens */
@media (max-width: 767px) {
	#association .cfcl-services { display: flex !important; flex-direction: column; gap: 0 !important; background: #fff; border-radius: 6px; overflow: hidden; }
	#association .cfcl-service { padding: 0 !important; margin: 0 !important; border-bottom: 1px solid #eee; background: #fff !important; box-shadow: none !important; position: relative; }
	#association .cfcl-service:last-child { border-bottom: 0; }
	#association .cfcl-service > :not(h3) { display: none !important; }
	#association .cfcl-service h3 { margin: 0 !important; font-size: 14.5px !important; text-align: left !important; }
	#association .cfcl-service h3 a { display: block; padding: 14px 36px 14px 16px; color: #224155 !important; text-decoration: none; position: relative; }
	#association .cfcl-service h3 a::after { content: "\203A"; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-size: 24px; color: #999; }
}

/* A6 : (réglage de l'extension TripAdvisor : « Lire la suite ») */

/* H2 : logos partenaires sur trois colonnes, sans légende, sur téléphone */
@media (max-width: 575px) {
	.site-footer .site-footer-middle-section-1 .wp-block-gallery.has-nested-images figure.wp-block-image,
	.site-footer #block-20 figure.wp-block-image {
		flex: 0 0 calc((100% - 20px) / 3) !important; width: calc((100% - 20px) / 3) !important; padding: 10px 6px !important;
	}
	.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
		position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0 !important;
	}
	.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image img { height: 40px !important; }
	.site-footer #block-20 figure.wp-block-image img { height: 46px !important; }
}
/* H3 : téléphone et adresse dans le pied de page */
.cfcl-pied-coord { margin: 0 !important; font-size: 13px; color: rgba(255, 255, 255, .85); }
.cfcl-pied-coord a { color: #fff !important; font-weight: 700; text-decoration: none; white-space: nowrap; }
/* H4 : bouton « retour en haut » discret */
#kt-scroll-up, #kt-scroll-up-reader { border-radius: 50% !important; }
#kt-scroll-up { background: #224155 !important; color: #fff !important; width: 42px; height: 42px; bottom: 56px !important; opacity: .9; }

/* R2 : inventaire du matériel, une colonne sur téléphone, cartes blanches */
.carte-grise { background: #fff !important; border: 1px solid #e3e7eb; border-radius: 6px; box-sizing: border-box; padding: 14px !important; }
@media (max-width: 767px) {
	.colonnegauche, .colonnedroite, .colonnefixegauche, .colonnefixedroite {
		float: none !important; width: 100% !important; padding: 0 !important; margin: 0 0 12px !important;
	}
	.carte-grise { width: 100% !important; height: auto !important; margin: 0 0 12px !important; }
	.specialinventaire .carte-grise { min-height: 0 !important; }
	.carte-grise h3, .carte-grise h4, .carte-grise h5 { overflow-wrap: normal; word-break: normal; hyphens: auto; }
}
/* R4 : patrimoine, photo en tête de fiche sur téléphone */
@media (max-width: 599px) {
	.carte-grise img { width: 100% !important; height: auto !important; max-height: 240px; object-fit: cover; float: none !important; margin: 0 0 10px !important; }
}
/* R5 : sommaire de la page patrimoine */
.cfcl-sommaire { margin: 0 0 24px; }
.cfcl-sommaire ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.cfcl-sommaire a {
	display: inline-block; padding: 7px 14px; border: 1px solid #cbd5e0; border-radius: 999px; font-size: 14px;
	color: #224155 !important; text-decoration: none !important; background: #fff;
}
.cfcl-sommaire a:hover { border-color: #224155; }
.entry-content h2[id^="commune-"] { scroll-margin-top: 90px; }

/* U1 : FAQ plus compacte */
.su-spoiler { margin-bottom: 0 !important; }
.su-spoiler-title { padding-top: 14px !important; padding-bottom: 14px !important; line-height: 1.35 !important; }
.su-spoiler-content { padding-top: 0 !important; padding-bottom: 16px !important; }

/* U2 : plan de la voie lisible sur téléphone, il défile à l'horizontale */
@media (max-width: 767px) {
	.entry-content :is(p, figure, a, div):has(> img.wp-image-44452, > img.wp-image-44453),
	.woocommerce-tabs :is(p, figure, a, div):has(> img.wp-image-44452, > img.wp-image-44453) {
		display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; padding-bottom: 6px;
	}
	.entry-content img.wp-image-44452, .entry-content img.wp-image-44453,
	.woocommerce-tabs img.wp-image-44452, .woocommerce-tabs img.wp-image-44453 { max-width: none !important; width: 760px !important; height: auto !important; }
	:is(.entry-content, .woocommerce-tabs) :is(p, figure, a, div):has(> img.wp-image-44452, > img.wp-image-44453)::after {
		content: "Faites glisser pour voir tout le plan \2192"; position: sticky; left: 0; display: block; font-size: 12.5px; color: #666; margin-top: 4px;
	}
}
/* U3 : les tuiles des gares indiquent qu'elles ouvrent l'itinéraire */
a.tuile_gare[href*="google"]::after {
	content: "Itinéraire \2197"; display: inline-block; margin: 12px auto 4px; padding: 6px 14px; border: 1px solid rgba(255, 255, 255, .8);
	border-radius: 999px; font-size: 13px; font-weight: 700; color: #fff;
}
/* U4 : page introuvable */
.cfcl-404-liens { list-style: none; margin: 24px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.cfcl-404-liens a {
	display: inline-block; padding: 10px 18px; border: 1px solid #224155; border-radius: 4px; color: #224155 !important;
	text-decoration: none !important; font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: .03em;
}
.cfcl-404-liens li:nth-child(2) a { background: #dd1111; border-color: #dd1111; color: #fff !important; }
/* U5 : Mon compte et Suivre vos réservations, mêmes champs et boutons que la commande */
.woocommerce-account .woocommerce form .input-text, .woocommerce-account .woocommerce form select,
.page-id-44392 .entry-content input[type="text"], .page-id-44392 .entry-content input[type="email"], .page-id-44392 .entry-content input[type="number"] {
	min-height: 44px; border: 1px solid #cbd5e0 !important; border-radius: 4px !important; padding: 8px 12px !important; font-size: 15px !important; background: #fff !important;
}
.woocommerce-account .woocommerce form.login, .woocommerce-account .woocommerce form.lost_reset_password,
.woocommerce-account .woocommerce-MyAccount-content {
	background: #fff; border: 1px solid #e3e7eb !important; border-radius: 6px !important; padding: 20px !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 10px 0; border-bottom: 1px solid #eee; color: #224155; text-decoration: none; }
@media (max-width: 767px) { #section-depart { margin-top: 0 !important; margin-bottom: 0 !important; } }
.site-footer .cfcl-pied-coord a { text-decoration: none !important; }
.su-spoiler.su-spoiler-closed > .su-spoiler-content { padding: 0 !important; height: 0 !important; overflow: hidden !important; }
@media (max-width: 767px) {
	:is(.entry-content, .woocommerce-tabs) :is(p, figure, a, div):has(> img.wp-image-44452, > img.wp-image-44453)::after { left: 16px; }
}
/* Galeries WordPress classiques (page tournage) : grille régulière, 3 colonnes sur téléphone */
.entry-content .gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 0 0 20px !important; }
@media (min-width: 768px) { .entry-content .gallery { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; } }
.entry-content .gallery .gallery-item { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; float: none !important; }
.entry-content .gallery .gallery-icon img { width: 100% !important; height: auto !important; aspect-ratio: 1; object-fit: cover; border: 0 !important; margin: 0 !important; }
.entry-content .gallery br { display: none; }
/* G8 : surlignages vert/orange écrits dans la page « Présentation » : la couleur passe sur la puce */
.entry-content span[style*="#99cc00"], .entry-content span[style*="#ff9900"] { background: none !important; }
.entry-content li:has(> span[style*="#99cc00"])::marker { color: #2e7d32; font-size: 1.2em; }
.entry-content li:has(> span[style*="#ff9900"])::marker { color: #e08a00; font-size: 1.2em; }
/* G8 : tableaux des contenus (fiches techniques) aux couleurs du site */
.entry-content table { border-collapse: collapse !important; width: 100% !important; font-size: 14px; border: 0 !important; margin: 0 0 20px; }
.entry-content table td, .entry-content table th { border: 0 !important; border-bottom: 1px solid #e3e7eb !important; padding: 9px 10px !important; text-align: left !important; vertical-align: top; }
.entry-content table tr > :first-child { font-weight: 700; color: #333; width: 40%; }
.entry-content table tr:nth-child(odd) > * { background: #f7f8fa; }
/* G4 : colonne de lecture de 760 px sur les pages de texte (CGV, confidentialité, mentions, cookies, histoire). FAQ retirée le 2026-11-11 : ses deux colonnes y étaient trop serrées. */
@media (min-width: 900px) {
	:is(.page-id-7649, .page-id-13675, .page-id-95, .page-id-39624, .page-id-4090) .entry-content {
		max-width: 760px; margin-left: auto !important; margin-right: auto !important;
	}
	:is(.page-id-7649, .page-id-13675, .page-id-95, .page-id-39624, .page-id-4090) .entry-content .su-row,
	:is(.page-id-7649, .page-id-13675, .page-id-95, .page-id-39624, .page-id-4090) .entry-content table { max-width: none; }
}

/* Retouches mobile de l'accueil (retour utilisateur du 8 novembre) */
@media (max-width: 767px) {
	/* « Attention au départ » : marges de section resserrées, icône alignée sur le titre, titre détaché du texte */
	#section-depart { padding-top: 40px !important; padding-bottom: 32px !important; }
	#section-depart .cfcl-title { margin-bottom: 24px !important; }
	#section-depart .cfcl-cards { padding: 0 !important; }
	#section-depart .cfcl-card { align-items: start; column-gap: 14px; row-gap: 4px; padding: 16px 14px 16px 16px !important; }
	#section-depart .cfcl-card .cfcl-card-icon { grid-row: 1 / span 2; align-self: start; }
	#section-depart .cfcl-card .cfcl-card-title { align-self: end; padding-top: 1px !important; line-height: 1.25 !important; }
	#section-depart .cfcl-card .cfcl-card-text { font-size: 14px !important; line-height: 1.45 !important; }
	#section-depart .cfcl-card .wp-block-buttons { align-self: center; }

	/* « L'association » : des liens qui ressemblent à des liens (vignette, titre, flèche), plus de chevron d'accordéon */
	#association .cfcl-service {
		display: grid !important; grid-template-columns: 56px minmax(0, 1fr); align-items: center; column-gap: 14px;
		padding: 10px 14px !important;
	}
	#association .cfcl-service > figure { display: block !important; grid-column: 1; margin: 0 !important; width: 56px; height: 56px; }
	#association .cfcl-service > figure img { width: 56px !important; height: 56px !important; object-fit: cover; border-radius: 4px; margin: 0 !important; }
	#association .cfcl-service > :not(h3):not(figure) { display: none !important; }
	#association .cfcl-service h3 { grid-column: 2; position: static; }
	#association .cfcl-service h3 a { padding: 0 !important; position: static !important; text-decoration: underline !important; text-underline-offset: 3px; text-decoration-color: rgba(34, 65, 85, .35); }
	#association .cfcl-service h3 a::after { content: " \2192" !important; position: static !important; transform: none !important; font-size: 1em !important; color: #dd1111 !important; }
	#association .cfcl-service h3 a::before { content: ""; position: absolute; inset: 0; }
	#association .cfcl-service h3::before, #association .cfcl-service h3 a > i { display: none !important; }
}
@media (max-width: 767px) { #association .cfcl-services { margin-left: 15px !important; margin-right: 15px !important; width: auto !important; max-width: none !important; } }

/* Barre du bas sur ordinateur : deux rangées.
 * À gauche le copyright puis le téléphone et l'adresse ; à droite les liens puis le bouton légal. Rien ne se coupe. */
.site-footer .cfcl-legal { flex-wrap: nowrap !important; white-space: nowrap; }
@media (min-width: 992px) {
	.site-footer .site-bottom-footer-wrap .footer-html-inner {
		display: grid !important; grid-template-columns: minmax(0, 1fr) auto; grid-auto-flow: row;
		column-gap: 40px; row-gap: 10px; align-items: center; justify-content: stretch;
	}
	.site-footer .site-bottom-footer-wrap .footer-html-inner > p:first-child { grid-column: 1; grid-row: 1; }
	.site-footer .site-bottom-footer-wrap .footer-html-inner > .cfcl-pied-coord { grid-column: 1; grid-row: 2; text-align: left !important; }
	.site-footer .site-bottom-footer-wrap .footer-html-inner > .copyright_element { grid-column: 2; grid-row: 1; justify-self: end; }
	.site-footer .site-bottom-footer-wrap .footer-html-inner > .cfcl-legal { grid-column: 2; grid-row: 2; justify-self: end; }
	.site-footer .copyright_element .row, .site-footer .copyright_element .col-6 { flex-wrap: nowrap !important; }
	.site-footer .copyright_element a { white-space: nowrap; }
}
/* « Attention au départ » entre 768 et 1199 px : deux cartes par ligne, boutons sur une seule ligne */
@media (min-width: 768px) and (max-width: 1199px) {
	#section-depart .cfcl-cards { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
#section-depart .cfcl-card .wp-block-button__link { white-space: nowrap; }
/* Le bouton « retour en haut » ne recouvre plus les liens de la barre du bas */
.site-footer .site-bottom-footer-wrap .site-bottom-footer-inner-wrap { padding-right: 64px !important; }
@media (max-width: 991px) { .site-footer .site-bottom-footer-wrap .site-bottom-footer-inner-wrap { padding-right: 16px !important; padding-bottom: 72px !important; } }
/* Logos européens entre 576 et 1199 px : même taille que les autres tuiles, alignés à gauche */
@media (min-width: 576px) and (max-width: 1199px) {
	.site-footer #block-20 .wp-block-gallery { justify-content: flex-start !important; }
	.site-footer #block-20 figure.wp-block-image { flex: 0 0 calc((100% - 30px) / 4) !important; width: calc((100% - 30px) / 4) !important; }
	.site-footer .site-footer-middle-section-2 .footer-widget-area-inner { padding-top: 0 !important; }
}
/* Carrousels : toutes les photos au même format 2:1, flèches calées sur l'image */
.su-carousel .su-carousel-slide img { width: 100% !important; height: auto !important; aspect-ratio: 2 / 1; object-fit: cover; }
.su-carousel .su-carousel-slide { height: auto !important; }
@media (max-width: 599px) { .su-carousel .su-carousel-slide img { aspect-ratio: 4 / 3; } }
.su-carousel .su-carousel-prev, .su-carousel .su-carousel-next { opacity: .85 !important; }

/* ---------- En-tête mobile et pictos « Attention au départ » (8 novembre 2026) ---------- */
@media (max-width: 767px) {
	/* L'écart était annulé par « gap: 0 !important » de accueil.css : picto collé au texte. */
	#section-depart .cfcl-card { column-gap: 14px !important; row-gap: 4px !important; align-items: center; }
	/* Picto centré sur la hauteur de la carte, comme la flèche de droite. */
	#section-depart .cfcl-card .cfcl-card-icon { align-self: center; }
	#section-depart .cfcl-card .cfcl-card-title { align-self: end; }
	#section-depart .cfcl-card .cfcl-card-text { align-self: start; }
}
@media (max-width: 1024px) {
	/* Logo : même marge en haut, en bas et à gauche. */
	#mobile-header .site-container { padding-left: 14px; padding-right: 14px; }
	#mobile-header .site-header-main-section-left { padding-left: 0; min-width: 0; flex: 1 1 auto; }
	#mobile-header .site-main-header-inner-wrap { min-height: 72px; }
	#mobile-header .custom-logo { width: 52px; height: 52px; max-width: none; }
	/* Titre du site affiché à côté du logo ; le slogan reste masqué. */
	#mobile-header .site-branding .brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
	#mobile-header .site-branding .site-title-wrap { display: block !important; min-width: 0; }
	#mobile-header .site-branding .site-title {
		display: block !important; font-size: 15px; line-height: 1.2; letter-spacing: .3px;
		text-shadow: 0 1px 3px rgba(0, 0, 0, .55); max-width: 210px;
	}
	#mobile-header .site-branding .site-description { display: none !important; }
}

/* Bouton « Billetterie en ligne » sous le calendrier (ancien [su_button], remplacé par un bouton natif). */
.entry-content .cfcl-boutons-centre { display: flex; justify-content: center; margin-top: 24px; }
/* Petite note sous ce bouton : interligne de 90 % en style intégré, les lignes se chevauchaient. */
.entry-content div[style*="line-height: 90%"] { line-height: 1.5 !important; }

/* Gabarit unique des boutons de contenu (55 px de haut, toutes pages et toutes largeurs).
 * accueil.css n'est chargé que sur l'accueil et y réduisait les boutons sur téléphone. */
.entry-content .wp-block-button:not(.cfcl-btn-small) > .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; box-sizing: border-box;
	min-height: 55px; padding: 12px 24px !important; font-size: 17px !important; line-height: 1.6 !important;
	font-weight: 600; text-transform: uppercase; letter-spacing: 1px; border-radius: 2px; border-width: 2px; border-style: solid;
}
.entry-content .cfcl-btn-primary > .wp-block-button__link { background: #dd1111; border-color: #dd1111; color: #fff; }
.entry-content .cfcl-btn-primary > .wp-block-button__link:hover { background: #b80e0e; border-color: #b80e0e; color: #fff; }
@media (max-width: 599px) {
	.entry-content .wp-block-button:not(.cfcl-btn-small) > .wp-block-button__link { padding: 12px 18px !important; letter-spacing: .5px; }
}

/* ======================================================================
 * PIED DE PAGE, téléphone et tablette (9 novembre 2026)
 * Partenaires : titre centré, tuiles de même taille, dernière rangée centrée,
 * bloc européen regroupé dans un encadré avec son texte.
 * Barre du bas : coordonnées, puis liens en trois colonnes, puis mentions, copyright en dernier.
 * ====================================================================== */
@media (max-width: 991px) {
	.site-footer .site-middle-footer-inner-wrap { padding-top: 40px; padding-bottom: 40px; row-gap: 20px !important; }
	.site-footer #block-16 .wp-block-heading { text-align: center; margin-bottom: 18px; }
	.site-footer #block-16 .wp-block-heading::after {
		content: ""; display: block; width: 40px; height: 2px; margin: 10px auto 0; background: rgba(255, 255, 255, .6);
	}
	.site-footer .site-footer-middle-section-1 .footer-widget-area-inner { justify-content: center; gap: 8px !important; }
	.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image { justify-content: center !important; min-height: 64px; border-radius: 6px; }
	/* Encadré européen */
	.site-footer .site-footer-middle-section-2 .footer-widget-area-inner {
		padding: 18px 16px !important; border-radius: 8px; background: rgba(0, 0, 0, .12);
	}
	.site-footer #block-20 .wp-block-gallery { justify-content: center; gap: 8px !important; }
	.site-footer #block-20 { margin-bottom: 12px !important; }
	.site-footer #block-14 p { font-size: 13px; line-height: 1.5; opacity: 1; }

	/* Barre du bas */
	.site-footer .site-bottom-footer-wrap .site-bottom-footer-inner-wrap { padding-top: 28px !important; padding-bottom: 24px !important; }
	.site-footer .site-bottom-footer-wrap .footer-html-inner { gap: 20px; }
	.site-footer .site-bottom-footer-wrap .footer-html-inner > p:first-child {
		order: 4; width: 100%; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .15);
		font-size: 12px; color: rgba(255, 255, 255, .6);
	}
	.cfcl-pied-coord { order: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; }
	.cfcl-pied-coord a { font-size: 18px; letter-spacing: .5px; }
	.cfcl-pied-sep { display: none; }
	.site-footer .copyright_element { order: 2; width: 100% !important; }
	.site-footer .copyright_element .row { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 8px !important; }
	.site-footer .copyright_element .col-6 { display: contents !important; }
	.site-footer .copyright_element a {
		display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 4px;
		border-radius: 6px; background: rgba(255, 255, 255, .06); font-size: 13px; line-height: 1.3; white-space: normal;
	}
	.site-footer .copyright_element a i { margin: 0; font-size: 18px; opacity: .8; }
	.site-footer .copyright_element a:hover { background: rgba(255, 255, 255, .12); }
	.cfcl-legal { order: 3; }
}
@media (min-width: 576px) and (max-width: 991px) {
	.site-footer .site-footer-middle-section-2 { max-width: 560px; margin: 0 auto; width: 100%; }
	.site-footer #block-20 figure.wp-block-image { flex: 0 0 calc((100% - 8px) / 3) !important; width: calc((100% - 8px) / 3) !important; }
}
/* Logos nets : WordPress pose un voile flouté (backdrop-filter) sous les galeries à légende. */
.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image::before,
.site-footer .wp-block-gallery.has-nested-images figure.wp-block-image::after { display: none !important; content: none !important; }
@media (max-width: 991px) {
	.site-footer .copyright_element .row { width: 100%; }
	.site-footer .site-bottom-footer-wrap .site-bottom-footer-inner-wrap { padding-left: 0 !important; padding-right: 0 !important; }
}

/* ======================================================================
 * PAGE ACCÈS GROUPES (13612) et formulaire de devis (CF7 13610)
 * Introduction, deux encarts d'aide, puis formulaire en 4 étapes numérotées.
 * ====================================================================== */
.page-id-13612 .entry-content { max-width: 820px; margin-left: auto; margin-right: auto; }
.cfcl-groupes__intro { font-size: 17px; line-height: 1.65; text-align: left !important; margin: 0 0 24px !important; }
.cfcl-groupes__aide { display: grid; gap: 12px; margin: 0 0 40px; }
@media (min-width: 768px) { .cfcl-groupes__aide { grid-template-columns: 1fr 1fr; } }
.cfcl-groupes__carte {
	display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px;
	background: #f4f6f8; border-left: 3px solid #224155; border-radius: 0 6px 6px 0;
}
.cfcl-groupes__carte > i { flex: 0 0 auto; color: #224155; font-size: 18px; margin-top: 3px; }
.cfcl-groupes__carte p { margin: 0 !important; font-size: 14.5px; line-height: 1.6; text-align: left !important; }
.cfcl-groupes__carte a[href^="tel:"] { font-weight: 700; white-space: nowrap; }

.cfcl-devis { background: #fff; border: 1px solid #e3e7eb; border-radius: 8px; padding: 22px 16px 24px; box-shadow: 0 2px 10px rgba(0, 0, 0, .04); }
@media (min-width: 768px) { .cfcl-devis { padding: 32px 36px 36px; } }
.cfcl-devis .cfcl-devis__titre {
	font-size: 22px !important; line-height: 1.3; margin: 0 0 12px !important; color: #224155; text-transform: none; letter-spacing: 0;
}
.cfcl-devis__titre i { color: #dd1111; margin-right: 6px; }
.cfcl-devis__reserve {
	display: flex; gap: 8px; align-items: flex-start; margin: 0 0 24px !important; padding: 10px 14px;
	background: #fff4e5; border: 1px solid #f3d19c; border-radius: 6px; font-size: 14px; color: #6b4500; text-align: left !important;
}
.cfcl-devis__reserve i { color: #c77700; margin-top: 3px; }

/* Étapes */
.wpcf7 .wpcf7-form > p { margin: 0 !important; }
.cfcl-etape { border: 0; margin: 0 0 28px; padding: 0; min-width: 0; }
.cfcl-etape legend {
	display: flex; align-items: center; gap: 10px; width: 100%; padding: 0 0 10px; margin: 0 0 16px;
	border-bottom: 1px solid #e3e7eb; font-size: 16px; font-weight: 700; color: #224155; text-transform: uppercase; letter-spacing: .5px;
}
.cfcl-etape__num {
	display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: 0 0 28px;
	border-radius: 50%; background: #224155; color: #fff; font-size: 14px; letter-spacing: 0;
}
.cfcl-grille { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 600px) {
	.cfcl-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; }
	.cfcl-grille--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cfcl-champ--large { grid-column: 1 / -1; }
}
.cfcl-champ { display: flex; flex-direction: column; min-width: 0; }
.wpcf7 .wpcf7-form .cfcl-champ label:not(.wpcf7-list-item label),
.cfcl-champ__titre { display: block; margin: 0 0 6px !important; font-size: 14px; font-weight: 600; color: #333; }
.cfcl-grille--3 .cfcl-champ { justify-content: flex-end; }
.wpcf7 .wpcf7-form-control-wrap { margin-top: 0; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"],
.wpcf7 input[type="number"], .wpcf7 input[type="date"], .wpcf7 select, .wpcf7 textarea {
	width: 100%; min-height: 48px; padding: 10px 12px; font-size: 16px; border: 1px solid #c9d1d9; border-radius: 6px; background: #fff; box-sizing: border-box;
}
.wpcf7 textarea { min-height: 140px; }
.wpcf7 input:focus, .wpcf7 select:focus, .wpcf7 textarea:focus {
	border-color: #224155; box-shadow: 0 0 0 3px rgba(34, 65, 85, .15); outline: none;
}

/* Choix (type, départ) : boutons à cocher façon « pastilles » */
.wpcf7 .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; }
.wpcf7 .wpcf7-radio .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-radio .wpcf7-list-item label {
	position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 8px 16px; margin: 0 !important;
	border: 1px solid #c9d1d9; border-radius: 22px; background: #fff; cursor: pointer;
	font-size: 15px; font-weight: 500; color: #333; transition: background .15s, border-color .15s, color .15s;
}
.wpcf7 .wpcf7-radio input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.wpcf7 .wpcf7-radio .wpcf7-list-item label:hover { border-color: #224155; }
.wpcf7 .wpcf7-radio .wpcf7-list-item label:has(input:checked) { background: #224155; border-color: #224155; color: #fff; }
.wpcf7 .wpcf7-radio .wpcf7-list-item label:has(input:focus-visible) { box-shadow: 0 0 0 3px rgba(34, 65, 85, .3); }
.wpcf7 .wpcf7-radio .wpcf7-list-item-label::before { content: none; }

/* Envoi */
.cfcl-envoi { padding-top: 20px; border-top: 1px solid #e3e7eb; display: flex; flex-direction: column; gap: 18px; }
.wpcf7 .wpcf7-acceptance label { font-size: 14px; }
.wpcf7 .wpcf7-submit {
	align-self: stretch; min-height: 55px; padding: 12px 24px !important; font-size: 17px !important; font-weight: 600;
	text-transform: uppercase; letter-spacing: 1px; border-radius: 2px; background: #dd1111; border: 2px solid #dd1111; color: #fff; cursor: pointer;
}
@media (min-width: 600px) { .wpcf7 .wpcf7-submit { align-self: flex-start; min-width: 240px; } }
.wpcf7 .wpcf7-spinner { margin: 0 auto; }
.cfcl-groupes p:empty { display: none; }
.cfcl-groupes > p:not([class]), .cfcl-groupes > br, .cfcl-devis > br { display: none; }
.wpcf7 { border: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; margin: 0 !important; }
.wpcf7 .wpcf7-acceptance input[type="checkbox"] { width: 20px; height: 20px; margin-top: 1px; accent-color: #224155; }
.wpcf7 .wpcf7-acceptance label { gap: 10px; }
.cfcl-champ__aide { display: block; margin-top: 6px; font-size: 13px; color: #666; }
/* Page contact : le formulaire est déjà dans une carte, étapes un peu plus serrées */
.cfcl-contact__form .cfcl-etape { margin-bottom: 22px; }
.cfcl-contact__form .cfcl-etape legend { font-size: 15px; }
/* Page groupes : un seul encart d'aide, pleine largeur */
@media (min-width: 768px) { .cfcl-groupes__aide:has(> .cfcl-groupes__carte:only-of-type) { grid-template-columns: 1fr; } }

/* ======================================================================
 * FORMULAIRES DU SITE : même direction visuelle que les formulaires de contact et de devis
 * Champs 48 px, coins 6 px, bord gris bleuté, texte 16 px (pas de zoom sur iPhone),
 * anneau bleu nuit au focus, libellés 14 px gras, boutons d'envoi au gabarit des boutons (55 px).
 * ====================================================================== */
:is(.woocommerce-account .woocommerce, .woocommerce-cart .woocommerce, .single-product form.cart, .search-form, .bookacti-booking-form, .woocommerce-form-track-order, .post-password-form)
	:is(input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"], input[type="search"], input[type="date"], select, textarea) {
	min-height: 48px; padding: 10px 12px; font-size: 16px !important; line-height: 1.4;
	border: 1px solid #c9d1d9 !important; border-radius: 6px !important; background-color: #fff; color: #333; box-sizing: border-box; box-shadow: none;
}
:is(.woocommerce-account .woocommerce, .woocommerce-cart .woocommerce, .single-product form.cart, .search-form, .bookacti-booking-form, .woocommerce-form-track-order, .post-password-form)
	:is(input, select, textarea):focus {
	border-color: #224155 !important; box-shadow: 0 0 0 3px rgba(34, 65, 85, .15) !important; outline: none;
}
:is(.woocommerce-account .woocommerce, .woocommerce-form-track-order, .post-password-form) label { font-size: 14px; font-weight: 600; color: #333; }
:is(.woocommerce-account .woocommerce, .woocommerce-form-track-order) .form-row { margin-bottom: 16px; }
:is(.woocommerce-account .woocommerce, .woocommerce-form-track-order) input[type="checkbox"] { width: 20px; height: 20px; accent-color: #224155; vertical-align: -4px; }

/* Boutons d'envoi */
.woocommerce-account .woocommerce :is(button.button, input.button):not(.show-password-input),
.woocommerce-form-track-order button.button, .post-password-form input[type="submit"],
.single-product form.cart .single_add_to_cart_button {
	min-height: 55px; padding: 12px 24px !important; font-size: 17px !important; line-height: 1.6 !important; font-weight: 600 !important;
	text-transform: uppercase; letter-spacing: 1px; border-radius: 2px !important; border: 2px solid #dd1111 !important;
	background: #dd1111 !important; color: #fff !important; box-sizing: border-box;
}
.woocommerce-account .woocommerce :is(button.button, input.button):not(.show-password-input):hover,
.single-product form.cart .single_add_to_cart_button:not(:disabled):hover { background: #b80e0e !important; border-color: #b80e0e !important; }
@media (max-width: 599px) {
	.woocommerce-account .woocommerce :is(button.button, input.button):not(.show-password-input),
	.woocommerce-form-track-order button.button { width: 100%; }
}

/* Fiche produit : liste de parcours, quantité et bouton sur une même hauteur */
.single-product form.cart select { width: 100%; }
.single-product form.cart .quantity .qty { width: 76px; min-height: 55px; text-align: center; }
.single-product form.cart .woocommerce-variation-add-to-cart,
.single-product form.cart:not(.variations_form) { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.single-product form.cart .single_add_to_cart_button { flex: 1 1 auto; height: auto !important; }
.single-product form.cart .quantity { margin: 0 !important; }

/* Recherche (page introuvable) : champ et bouton d'une seule pièce */
.search-form { display: flex; position: relative; }
.search-form .search-field { flex: 1 1 auto; padding-right: 52px !important; }

/* Panier et commande : boutons au gabarit commun (55 px, coins 2 px) */
html body.woocommerce-cart .woocommerce .checkout-button, html body.woocommerce-checkout #place_order {
	min-height: 55px; padding: 12px 24px !important; font-size: 17px !important; line-height: 1.6 !important; font-weight: 600 !important;
	letter-spacing: 1px; border-radius: 2px !important; border: 2px solid #dd1111 !important;
}
html body.woocommerce-cart .woocommerce .button:not(.checkout-button),
html body.woocommerce-cart .woocommerce a.button.wc-forward:not(.checkout-button),
html body.woocommerce-checkout .woocommerce-message a.button.wc-forward,
html body.woocommerce-checkout form.checkout_coupon .button {
	display: inline-flex !important; align-items: center; justify-content: center; min-height: 55px;
	padding: 10px 20px !important; font-size: 15px !important; line-height: 1.3 !important; letter-spacing: .5px;
	border: 2px solid #c9d1d9 !important; border-radius: 2px !important;
}
.woocommerce-cart table.cart td.actions .coupon .input-text { min-height: 55px; }
/* Tableau du panier : pas de barre de défilement parasite sur téléphone */
.woocommerce-cart table.shop_table.cart { overflow: visible !important; }
@media (max-width: 767px) {
	.woocommerce-cart table.cart td.actions { width: 100% !important; box-sizing: border-box; float: none !important; }
	.woocommerce-cart table.cart td.actions .coupon { width: 100%; }
	.woocommerce-cart table.cart td.actions .button { width: 100% !important; white-space: nowrap; }
}
@media (max-width: 767px) {
	/* Total panier : libellé à gauche, montant à droite */
	.woocommerce-cart .cart_totals table.shop_table_responsive tr td {
		display: flex !important; justify-content: space-between; align-items: baseline; gap: 12px; width: 100% !important; box-sizing: border-box; text-align: right;
	}
	.woocommerce-cart .cart_totals table.shop_table_responsive tr td::before { float: none !important; font-weight: 600; text-align: left; flex: 0 0 auto; }
}
@media (max-width: 767px) {
	.woocommerce-cart .cart_totals table.shop_table_responsive,
	.woocommerce-cart .cart_totals table.shop_table_responsive tbody,
	.woocommerce-cart .cart_totals table.shop_table_responsive tr { display: block !important; width: 100% !important; }
	.woocommerce-cart .cart_totals table.shop_table_responsive tr td { flex-wrap: wrap; }
	.woocommerce-cart .cart_totals table.shop_table_responsive tr td::before { margin-right: auto; }
	.woocommerce-cart .cart_totals .order-total td .includes_tax { flex: 0 0 100%; text-align: right; margin-top: 2px; }
}

/* Commande : champs au même gabarit que les autres formulaires */
.woocommerce-checkout .woocommerce :is(input.input-text, select, textarea),
.woocommerce-checkout .select2-container .select2-selection--single {
	min-height: 48px !important; border: 1px solid #c9d1d9 !important; border-radius: 6px !important; font-size: 16px !important; box-shadow: none !important;
}
.woocommerce-checkout .select2-container .select2-selection--single { height: 48px !important; display: flex; align-items: center; }
.woocommerce-checkout .select2-container .select2-selection__rendered { line-height: 46px !important; padding-left: 12px !important; }
.woocommerce-checkout .select2-container .select2-selection__arrow { height: 46px !important; }
.woocommerce-checkout .woocommerce :is(input.input-text, select, textarea):focus,
.woocommerce-checkout .select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--open .select2-selection--single {
	border-color: #224155 !important; box-shadow: 0 0 0 3px rgba(34, 65, 85, .15) !important; outline: none;
}
.woocommerce-checkout .woocommerce input[type="checkbox"] { width: 20px; height: 20px; accent-color: #224155; }
.woocommerce-checkout .select2-container .select2-selection--single { padding-left: 0 !important; }
.woocommerce-form-login .woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 8px; margin: 0 0 16px; font-weight: 500; }
/* Recherche : le champ occupe toute la ligne, la loupe est dans le champ */
.search-form > label { flex: 1 1 auto; width: 100%; margin: 0; }
.search-form .search-field { width: 100% !important; }
.search-form .search-submit, .search-form .kadence-search-icon-wrap { right: 0 !important; top: 0 !important; height: 48px !important; }
/* Page introuvable : trois liens au gabarit des boutons */
.cfcl-404-liens { display: grid !important; grid-template-columns: 1fr; gap: 10px !important; padding: 0 !important; margin: 24px 0 0 !important; list-style: none; }
@media (min-width: 600px) { .cfcl-404-liens { grid-template-columns: repeat(3, auto); justify-content: start; } }
.cfcl-404-liens li { margin: 0 !important; }
.cfcl-404-liens a {
	display: flex !important; align-items: center; justify-content: center; min-height: 55px; padding: 12px 24px !important; box-sizing: border-box;
	font-size: 15px !important; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; border-radius: 2px !important; border-width: 2px !important;
}
/* Images de description réduites à la largeur, sauf les plans de la voie (défilement horizontal voulu) */
.single-product .woocommerce-tabs img:not(.wp-image-44452):not(.wp-image-44453), .single-product .woocommerce-product-details__short-description img { max-width: 100% !important; height: auto !important; }

/* ======================================================================
 * PAGE ACCÈS AUX GARES (4091) : alerte, plan, trois cartes de gare, lien conseils
 * Les couleurs d'origine des gares sont gardées (Confolens rouge, Manot gris, Roumazières vert).
 * ====================================================================== */
.page-id-4091 .entry-content { max-width: 1100px; margin-left: auto; margin-right: auto; }
.cfcl-gares > p:empty { display: none; }
.cfcl-gares__alerte {
	display: flex; gap: 14px; align-items: center; margin: 0 0 28px; padding: 16px 18px;
	background: #224155; color: #fff; border-radius: 8px;
}
.cfcl-gares__alerte > i { font-size: 30px; flex: 0 0 auto; opacity: .9; }
.cfcl-gares__alerte strong { display: block; font-size: 17px; line-height: 1.3; }
.cfcl-gares__alerte span { display: block; margin-top: 3px; font-size: 14px; opacity: .85; }
.cfcl-gares__liste { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 28px 0; }
@media (min-width: 900px) { .cfcl-gares__liste { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.cfcl-gare {
	--gare: var(--cfcl-confolens, #2b4daf); display: flex; flex-direction: column; background: #fff; border: 1px solid #e3e7eb;
	border-top: 5px solid var(--gare); border-radius: 8px; padding: 20px 20px 22px; box-shadow: 0 2px 10px rgba(0, 0, 0, .04);
}
.cfcl-gare--manot { --gare: #777576; }
.cfcl-gare--roumazieres { --gare: var(--cfcl-roumazieres, #b14c2b); }
.cfcl-gare__tete { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.cfcl-gare__tete > i {
	display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 44px;
	border-radius: 50%; background: var(--gare); color: #fff; font-size: 19px;
}
.cfcl-gare .cfcl-gare__tete h2 { margin: 0 !important; font-size: 20px !important; line-height: 1.25; color: #224155; text-transform: none; letter-spacing: 0; }
.cfcl-gare__adresse { margin: 0 0 14px !important; font-size: 14px; line-height: 1.5; color: #555; text-align: left !important; }
.cfcl-gare__services { list-style: none; margin: 0 0 14px !important; padding: 12px 0 0 !important; border-top: 1px solid #eef0f2; }
.cfcl-gare__services li { display: flex; gap: 10px; align-items: baseline; margin: 0 0 8px !important; font-size: 14.5px; line-height: 1.45; }
.cfcl-gare__services li i { flex: 0 0 18px; text-align: center; color: var(--gare); }
.cfcl-gare--manot .cfcl-gare__services li i { color: #5f5d5e; }
.cfcl-gare__note {
	display: flex; gap: 8px; align-items: baseline; margin: 0 0 16px !important; padding: 10px 12px;
	background: #fff4e5; border-radius: 6px; font-size: 13.5px; line-height: 1.45; color: #6b4500; text-align: left !important;
}
.cfcl-gare__note i { color: #c77700; }
.cfcl-gare__itineraire {
	margin-top: auto; display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 55px; box-sizing: border-box;
	padding: 12px 20px; border: 2px solid var(--gare); border-radius: 2px; background: #fff; color: #224155 !important;
	font-size: 15px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; text-decoration: none !important;
}
.cfcl-gare__itineraire i { color: var(--gare); }
.cfcl-gare__itineraire:hover { background: var(--gare); color: #fff !important; }
.cfcl-gare__itineraire:hover i { color: #fff; }
.cfcl-gare--roumazieres .cfcl-gare__itineraire:hover, .cfcl-gare--manot .cfcl-gare__itineraire:hover { color: #fff !important; }
.cfcl-gares__conseils {
	display: flex; align-items: center; gap: 14px; padding: 18px 20px; border-radius: 8px; background: #fdf3f3;
	border-left: 4px solid #dd3333; color: #222 !important; font-weight: 600; font-size: 16px; text-decoration: none !important;
}
.cfcl-gares__conseils > i:first-child { color: #dd3333; font-size: 22px; }
.cfcl-gares__conseils span { flex: 1 1 auto; }
.cfcl-gares__conseils > i:last-child { color: #999; }
.cfcl-gares__conseils:hover { background: #fbe7e7; }
.cfcl-gares p:empty { display: none; }
.cfcl-gare > p:has(> .cfcl-gare__itineraire) { margin: auto 0 0 !important; display: flex; flex-direction: column; }
.cfcl-gare > p:has(> .cfcl-gare__itineraire) br { display: none; }
.cfcl-gares > p:has(> .cfcl-gares__conseils) { margin: 0 !important; }
.cfcl-gares__alerte br, .cfcl-gare__tete br { display: none; }

/* Fiche billet : le calendrier prend toute la largeur, quantité et bouton « Réserver » dessous
 * (sinon le bouton s'étirait sur la hauteur du calendrier). */
.single-product form.cart .bookacti-wc-form-fields { flex: 0 0 100%; width: 100%; }
.single-product form.cart .woocommerce-variation-add-to-cart,
.single-product form.cart:not(.variations_form) { align-items: flex-start; }
.single-product form.cart .single_add_to_cart_button { align-self: flex-start; height: 55px !important; }
.single-product form.cart .cfcl-aide-resa { flex: 0 0 100%; margin: 0; }

/* Ordinateur large : bloc « Comment réserver » en colonne à droite du formulaire de réservation */
@media (min-width: 1200px) {
	.single-product div.product:has(> .bookacti-wc-fullwidth-cart-form):has(> .cfcl-woo-zone--fiche),
	.single-product div.product:has(> .cfcl-resa-tel):has(> .cfcl-woo-zone--fiche) {
		display: grid; grid-template-columns: 300px minmax(0, 1fr) 300px; column-gap: 24px; align-items: start;
	}
	.single-product div.product:has(> .cfcl-woo-zone--fiche) > .woocommerce-product-gallery { grid-column: 1; grid-row: 1; float: none !important; width: auto !important; margin: 0 !important; }
	.single-product div.product:has(> .cfcl-woo-zone--fiche) > .summary { grid-column: 2 / 4; grid-row: 1; float: none !important; width: auto !important; margin: 0 !important; }
	.single-product div.product:has(> .cfcl-woo-zone--fiche) > :is(.bookacti-wc-fullwidth-cart-form, .cfcl-resa-tel) { grid-column: 1 / 3; grid-row: 2; }
	.single-product div.product:has(> .cfcl-woo-zone--fiche) > .cfcl-woo-zone--fiche { grid-column: 3; grid-row: 2 / span 2; margin: 20px 0 0 !important; }
	.single-product div.product:has(> .cfcl-woo-zone--fiche) > .cfcl-venue { grid-column: 1 / 3; grid-row: 3; }
	.single-product div.product:has(> .cfcl-woo-zone--fiche) > :is(.woocommerce-tabs, .related, .upsells) { grid-column: 1 / -1; }
	.single-product .cfcl-woo-zone--fiche #block-15 .wp-block-columns { grid-template-columns: minmax(0, 1fr) !important; }
	.single-product .cfcl-woo-zone--fiche #block-15 .wp-block-column { border-left: 0 !important; border-top: 1px solid #eeeeee !important; padding: 18px 20px !important; }
	.single-product .cfcl-woo-zone--fiche #block-15 .wp-block-column:first-child { border-top: 0 !important; }
}

/* ======================================================================
 * Widget « Prochains départs » (inc/prochains-departs.php) : pastille en haut à droite,
 * tableau façon panneau de gare au clic.
 * ====================================================================== */
.cfcl-departs { position: fixed; top: 96px; right: 16px; z-index: 900; font-family: inherit; }
.admin-bar .cfcl-departs { top: 128px; }
.cfcl-departs__pastille {
	display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 0; border-radius: 999px; cursor: pointer;
	background: #172b3a; color: #fff; font-size: 13px; line-height: 1.2; box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
}
.cfcl-departs__point { width: 8px; height: 8px; border-radius: 50%; background: #2ecc71; box-shadow: 0 0 0 3px rgba(46, 204, 113, .25); }
.cfcl-departs.is-proche .cfcl-departs__point { background: #f5c518; animation: cfcl-clignote 1s infinite; }
@keyframes cfcl-clignote { 50% { opacity: .35; } }
.cfcl-departs__compte { font-variant-numeric: tabular-nums; font-weight: 700; color: #f5c518; }
.cfcl-departs__tableau {
	position: absolute; top: calc(100% + 8px); right: 0; width: 340px; max-width: calc(100vw - 32px);
	background: #172b3a; color: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 10px 30px rgba(0, 0, 0, .3);
}
.cfcl-departs__entete { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; background: #0f1e29;
	font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: #f5c518; }
.cfcl-departs__fermer { background: none; border: 0; color: #fff; font-size: 22px; line-height: 1; cursor: pointer; padding: 0 2px; }
.cfcl-departs__liste { list-style: none; margin: 0; padding: 0; }
.cfcl-departs__liste li { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; gap: 10px; align-items: center;
	padding: 10px 14px; border-top: 1px solid rgba(255, 255, 255, .08); margin: 0; }
.cfcl-departs__heure { font-size: 18px; font-weight: 700; color: #f5c518; font-variant-numeric: tabular-nums; line-height: 1.1; }
.cfcl-departs__heure small, .cfcl-departs__titre small { display: block; font-size: 11px; font-weight: 400; color: rgba(255, 255, 255, .65); margin-top: 2px; }
.cfcl-departs__titre { font-size: 13px; line-height: 1.3; }
.cfcl-departs__titre small.is-complet { color: #ff8a80; }
.cfcl-departs__resa { padding: 6px 10px; border-radius: 4px; background: #dd1111; color: #fff !important; font-size: 12px; font-weight: 700;
	text-transform: uppercase; text-decoration: none !important; white-space: nowrap; }
.cfcl-departs__resa:hover { background: #b80e0e; }
.cfcl-departs__tout { display: block; padding: 10px 14px; text-align: right; font-size: 12px; color: #fff !important; background: #0f1e29; text-decoration: none !important; }
@media (max-width: 1024px) {
	.cfcl-departs { top: auto; bottom: 64px; right: 12px; }
	.cfcl-departs__tableau { top: auto; bottom: calc(100% + 8px); }
	.cfcl-departs__libelle { display: none; }
}
/* Widget intégré à l'en-tête : même langage que le menu (blanc, filet fin), plus de pastille flottante */
.cfcl-departs.is-entete { position: relative; top: auto !important; bottom: auto !important; right: auto; z-index: 20; margin-right: 14px; display: flex; align-items: center; }
.cfcl-departs.is-entete .cfcl-departs__pastille {
	background: transparent; box-shadow: none; border: 1px solid rgba(255, 255, 255, .35); border-radius: 4px;
	padding: 6px 12px; font-size: 12px; text-transform: uppercase; letter-spacing: .5px; font-weight: 600;
}
.cfcl-departs.is-entete .cfcl-departs__pastille:hover, .cfcl-departs.is-entete .cfcl-departs__pastille[aria-expanded="true"] { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .6); }
.cfcl-departs.is-entete .cfcl-departs__compte { text-transform: none; letter-spacing: 0; }
.cfcl-departs.is-entete .cfcl-departs__tableau { top: calc(100% + 14px); bottom: auto; right: 0; border-radius: 0 0 6px 6px; border-top: 3px solid #f5c518; }
@media (max-width: 1024px) {
	.cfcl-departs.is-entete { margin-right: 8px; }
	.cfcl-departs.is-entete .cfcl-departs__pastille { padding: 6px 9px; font-size: 11px; }
	.cfcl-departs.is-entete .cfcl-departs__tableau { position: fixed; top: 72px; left: 12px; right: 12px; width: auto; max-width: none; }
}
/* Widget : à droite du menu sur ordinateur ; icône seule sur téléphone, décompte dans l'en-tête du tableau */
.cfcl-departs__icone { display: none; }
.cfcl-departs__compte2 { font-style: normal; color: #fff; font-weight: 600; text-transform: none; letter-spacing: 0; }
@media (min-width: 1025px) {
	.cfcl-departs.is-entete { margin: 0 0 0 14px; }
	.cfcl-departs__compte2 { display: none; }
}
@media (max-width: 1024px) {
	.cfcl-departs.is-entete { margin-right: 4px; }
	.cfcl-departs.is-entete .cfcl-departs__pastille { position: relative; border: 0; padding: 8px; background: transparent; }
	.cfcl-departs.is-entete .cfcl-departs__icone { display: block; }
	.cfcl-departs.is-entete .cfcl-departs__libelle, .cfcl-departs.is-entete .cfcl-departs__compte { display: none; }
	.cfcl-departs.is-entete .cfcl-departs__point { position: absolute; top: 6px; right: 5px; width: 7px; height: 7px; box-shadow: 0 0 0 2px #224155; }
}
.cfcl-departs__resa.is-tel { background: #5f6b75; font-variant-numeric: tabular-nums; }
.cfcl-departs__resa.is-tel:hover { background: #4a5560; }
/* Ordinateur large (suite) : le bloc « Comment réserver » part du haut de la fiche, à hauteur de la photo et du titre */
@media (min-width: 1200px) {
	.single-product div.product:has(> .cfcl-woo-zone--fiche) > .summary { grid-column: 2; }
	.single-product div.product:has(> .cfcl-woo-zone--fiche) > .cfcl-woo-zone--fiche { grid-column: 3; grid-row: 1 / span 3; margin: 0 !important; }
}
/* Fiche billet : bloc « Une question » retiré (le contact figure déjà dans « Préparer votre venue »).
 * Il reste affiché sur les pages de la billetterie, où c'est le seul contact. */
.single-product .cfcl-woo-zone--fiche #block-15 .wp-block-columns > .wp-block-column:nth-child(2) { display: none !important; }
@media (min-width: 768px) and (max-width: 1199px) {
	.single-product .cfcl-woo-zone--fiche #block-15 .wp-block-columns { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.single-product .cfcl-woo-zone--fiche #block-15 .wp-block-column { border-top: 0 !important; border-left: 1px solid #eeeeee !important; }
	.single-product .cfcl-woo-zone--fiche #block-15 .wp-block-column:first-child { border-left: 0 !important; }
}
@media (min-width: 1200px) {
	.single-product .cfcl-woo-zone--fiche #block-15 .wp-block-column:nth-child(3) { border-top: 1px solid #eeeeee !important; }
}

/* Widget « Prochains départs » : couleurs du thème du site (bleu nuit #224155, rouge #dd1111, blanc)
 * à la place du jaune « panneau de gare ». Prime sur le bloc du widget plus haut. */
.cfcl-departs__pastille, .cfcl-departs__tableau { background: #224155; }
.cfcl-departs__entete, .cfcl-departs__tout { background: #1a3344; color: #fff; }
.cfcl-departs__compte, .cfcl-departs__heure { color: #fff; }
.cfcl-departs__liste li { border-top-color: rgba(255, 255, 255, .12); }
.cfcl-departs.is-proche .cfcl-departs__point { background: #dd1111; box-shadow: 0 0 0 3px rgba(221, 17, 17, .3); }
.cfcl-departs.is-entete .cfcl-departs__tableau { border-top-color: #dd1111; }
.cfcl-departs__tout:hover { background: #142a38; }

/* ======================================================================
 * TABLEAU DES PROCHAINS DÉPARTS (accueil, inc/tableau-departs.php)
 * Ordre chronologique, un bandeau par jour ; train en bleu nuit, vélorail en rouge.
 * ====================================================================== */
#prochains-departs { scroll-margin-top: 110px; }
.cfcl-tableau { margin: 8px 0 28px; text-align: left; --velo: #dd1111; --velo-fond: #fdecec; --train: #224155; --train-fond: #e8eef3; }
.cfcl-tableau__filtres { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.cfcl-tableau__filtres button {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border: 1px solid #c9d1d9; border-radius: 22px;
	background: #fff; color: #333; font-size: 15px; font-weight: 600; cursor: pointer; line-height: 1;
}
.cfcl-tableau__filtres button span { font-size: 12px; font-weight: 700; padding: 3px 7px; border-radius: 10px; background: #eef1f4; color: #555; }
.cfcl-tableau__filtres button:hover { border-color: #224155; }
.cfcl-tableau__filtres button.is-actif { background: #224155; border-color: #224155; color: #fff; }
.cfcl-tableau__filtres button.is-actif span { background: rgba(255, 255, 255, .2); color: #fff; }
.cfcl-tableau__filtres button:focus-visible { outline: 3px solid rgba(34, 65, 85, .35); outline-offset: 2px; }

.cfcl-tableau__entete { display: none; }
.cfcl-tableau__jour { margin: 0 0 14px; border: 1px solid #e3e7eb; border-radius: 8px; overflow: hidden; background: #fff; }
.cfcl-tableau .cfcl-tableau__date {
	margin: 0 !important; padding: 10px 16px; background: #224155; color: #fff; font-size: 14px !important; line-height: 1.3;
	font-weight: 700; text-transform: uppercase; letter-spacing: 1px; text-align: left;
}
.cfcl-tableau__liste { list-style: none; margin: 0 !important; padding: 0 !important; }
.cfcl-depart {
	display: grid; grid-template-columns: 66px minmax(0, 1fr) auto; grid-template-areas: "heure quoi quoi" ". places action";
	gap: 10px 12px; align-items: center; margin: 0 !important; padding: 14px 16px 14px 13px;
	border-top: 1px solid #eef0f2; border-left: 4px solid var(--train);
}
.cfcl-depart:first-child { border-top: 0; }
.cfcl-depart--velorail { border-left-color: var(--velo); }
.cfcl-depart__heure { grid-area: heure; align-self: start; font-size: 24px; font-weight: 700; line-height: 1.1; color: #224155; font-variant-numeric: tabular-nums; letter-spacing: -.5px; }
.cfcl-depart__quoi { grid-area: quoi; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; }
.cfcl-depart__type {
	display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 12px; font-size: 12px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .5px; background: var(--train-fond); color: var(--train);
}
.cfcl-depart--velorail .cfcl-depart__type { background: var(--velo-fond); color: #b80e0e; }
.cfcl-depart__libelle { font-size: 16px; line-height: 1.3; color: #222; }
.cfcl-depart__trajet { font-size: 14px; color: #555; line-height: 1.35; }
.cfcl-depart__option { font-size: 12.5px; color: #4a7a2a; }
.cfcl-depart__places { grid-area: places; display: flex; flex-direction: column; font-size: 14px; font-weight: 600; color: #333; }
.cfcl-depart__places small { font-size: 12px; font-weight: 600; color: #c77700; }
.cfcl-depart__places.is-peu { color: #c77700; }
.cfcl-depart.is-complet .cfcl-depart__places { color: #888; }
.cfcl-depart.is-complet { background: #fafafa; }
.cfcl-depart.is-complet .cfcl-depart__heure, .cfcl-depart.is-complet .cfcl-depart__libelle { color: #888; }
.cfcl-depart__action { grid-area: action; justify-self: end; }
.cfcl-depart__resa {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 18px; border-radius: 2px;
	background: #dd1111; color: #fff !important; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
	text-decoration: none !important; white-space: nowrap;
}
.cfcl-depart__resa:hover { background: #b80e0e; }
.cfcl-depart__resa.is-tel { background: #4a5560; text-transform: none; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.cfcl-depart__resa.is-tel:hover { background: #224155; }
.cfcl-tableau__pied { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 12px 24px; margin-top: 6px; }
.cfcl-tableau__plus {
	min-height: 48px; padding: 10px 22px; border: 2px solid #224155; border-radius: 2px; background: #fff; color: #224155;
	font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; cursor: pointer;
}
.cfcl-tableau__plus:hover { background: #224155; color: #fff; }
.cfcl-tableau__calendrier { font-size: 14px; color: #224155 !important; text-decoration: underline; text-underline-offset: 3px; }
.cfcl-tableau--vide { margin: 8px 0 24px; }

@media (min-width: 768px) {
	.cfcl-tableau__entete {
		display: grid; grid-template-columns: 96px minmax(0, 1fr) 170px 170px; gap: 16px; padding: 0 16px 6px 20px;
		font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: #777;
	}
	.cfcl-depart { grid-template-columns: 96px minmax(0, 1fr) 170px 170px; grid-template-areas: "heure quoi places action"; gap: 16px; padding: 14px 16px; }
	.cfcl-depart__heure { align-self: center; font-size: 28px; }
	.cfcl-depart__quoi { flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 10px; }
	.cfcl-depart__type { align-self: center; }
	.cfcl-depart__trajet, .cfcl-depart__option { flex-basis: 100%; }
	.cfcl-depart__resa { width: 100%; }
}
/* Bouton « Prochain départ » de l'en-tête : c'est maintenant un lien vers le tableau de l'accueil */
a.cfcl-departs__pastille { text-decoration: none !important; color: #fff !important; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
/* Tableau des départs, téléphone : heure sur une ligne, filtres sur une ligne */
.cfcl-depart__heure { white-space: nowrap; }
@media (max-width: 767px) {
	.cfcl-depart { grid-template-columns: 70px minmax(0, 1fr) auto; padding: 12px 12px 12px 10px; gap: 8px 10px; }
	.cfcl-depart__heure { font-size: 21px; }
	.cfcl-tableau__filtres { flex-wrap: nowrap; gap: 6px; }
	.cfcl-tableau__filtres button { flex: 1 1 0; justify-content: center; min-width: 0; padding: 8px 6px; font-size: 14px; gap: 5px; }
	.cfcl-tableau__filtres button span { padding: 2px 6px; }
}
@media (max-width: 359px) { .cfcl-tableau__filtres button i { display: none; } }
.cfcl-tableau__filtres button { white-space: nowrap; }
@media (max-width: 419px) { .cfcl-tableau__filtres button span { display: none; } }

/* Tableau des départs : toute la ligne est cliquable (le lien « Réserver » couvre la ligne) */
.cfcl-depart { position: relative; transition: background-color .15s; }
.cfcl-depart__resa::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.cfcl-depart:has(.cfcl-depart__resa):hover { background: #f5f8fb; cursor: pointer; }
.cfcl-depart:has(.cfcl-depart__resa):hover .cfcl-depart__resa:not(.is-tel) { background: #b80e0e; }
.cfcl-depart:has(.cfcl-depart__resa:focus-visible) { outline: 3px solid rgba(34, 65, 85, .45); outline-offset: -3px; }
.cfcl-depart__resa:focus-visible { outline: none; }
@media (min-width: 768px) {
	.cfcl-depart:has(.cfcl-depart__resa:not(.is-tel)):hover .cfcl-depart__libelle { text-decoration: underline; text-underline-offset: 3px; }
}

/* Fiche billet : prix de la catégorie choisie bien visible */
.single-product .woocommerce-variation-price { margin: 4px 0 14px; }
.single-product .woocommerce-variation-price .price {
	display: flex; align-items: baseline; gap: 8px; margin: 0; font-size: 30px !important; font-weight: 700; color: #224155 !important; line-height: 1.1;
}
.single-product .woocommerce-variation-price .price::before {
	content: "Tarif"; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; color: #777;
}
.single-product .woocommerce-variation-price .price small,
.single-product .woocommerce-variation-price .price .woocommerce-price-suffix { font-size: 14px; font-weight: 600; color: #777; }

/* ======================================================================
 * BILLETTERIE : choix « Par parcours / Par date » (inc/billetterie.php)
 * ====================================================================== */
.cfcl-modes { margin: 0 0 24px; }
.cfcl-modes__choix { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; max-width: 640px; margin: 0 auto; }
.cfcl-modes__choix button {
	display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 12px 16px; text-align: left; cursor: pointer;
	border: 2px solid #c9d1d9; border-radius: 8px; background: #fff; color: #224155; font: inherit;
}
.cfcl-modes__choix button i { font-size: 22px; flex: 0 0 auto; color: #224155; }
.cfcl-modes__choix button span { display: flex; flex-direction: column; line-height: 1.25; }
.cfcl-modes__choix button strong { font-size: 16px; }
.cfcl-modes__choix button small { font-size: 13px; color: #666; }
.cfcl-modes__choix button:hover { border-color: #224155; }
.cfcl-modes__choix button[aria-selected="true"] { background: #224155; border-color: #224155; color: #fff; }
.cfcl-modes__choix button[aria-selected="true"] i, .cfcl-modes__choix button[aria-selected="true"] small { color: #fff; }
.cfcl-modes__choix button:focus-visible { outline: 3px solid rgba(34, 65, 85, .4); outline-offset: 2px; }
.cfcl-par-date { margin-top: 20px; padding: 20px 16px 24px; background: #fff; border: 1px solid #e3e7eb; border-radius: 8px; }
@media (min-width: 768px) { .cfcl-par-date { padding: 24px 28px 28px; } }
.cfcl-par-date__aide { margin: 0 0 14px !important; text-align: center !important; font-size: 15px; color: #444; }
.cfcl-par-date .cfcl-boutons-centre { margin-top: 20px; }
.cfcl-par-date .wp-block-button__link.is-attente { background: #b9c0c7 !important; border-color: #b9c0c7 !important; color: #fff !important; cursor: default; }
/* Mode « Par date » : la liste des billets et ses outils sont masqués */
body.cfcl-mode-date ul.products, body.cfcl-mode-date .woocommerce-pagination,
body.cfcl-mode-date .woocommerce-result-count, body.cfcl-mode-date .woocommerce-ordering,
body.cfcl-mode-date .kadence-shop-top-row, body.cfcl-mode-date .kadence-product-toggle-container { display: none !important; }
@media (max-width: 479px) {
	.cfcl-modes__choix button { flex-direction: column; align-items: flex-start; gap: 6px; padding: 10px 12px; }
	.cfcl-modes__choix button small { display: none; }
}

/* Accueil, « Prochains départs » sur ordinateur : section et tableau plus compacts */
@media (min-width: 1024px) {
	#planifier-votre-balade { padding-top: 44px !important; padding-bottom: 44px !important; }
	#planifier-votre-balade > .wp-block-group__inner-container { padding: 32px 40px 26px !important; }
	#planifier-votre-balade .cfcl-title { font-size: 32px !important; margin-bottom: 14px !important; }
	#planifier-votre-balade .cfcl-subtitle { margin-bottom: 4px !important; }
	.cfcl-tableau { margin-bottom: 18px; }
	.cfcl-tableau__filtres { margin-bottom: 12px; }
	.cfcl-tableau__filtres button { min-height: 38px; padding: 6px 14px; font-size: 14px; }
	.cfcl-tableau__jour { margin-bottom: 10px; }
	.cfcl-tableau .cfcl-tableau__date { padding: 6px 14px; font-size: 12.5px !important; }
	.cfcl-tableau__entete, .cfcl-depart { grid-template-columns: 84px minmax(0, 1fr) 150px 150px; }
	.cfcl-depart { padding: 9px 14px; gap: 14px; }
	.cfcl-depart__heure { font-size: 23px; }
	.cfcl-depart__quoi { row-gap: 1px; }
	.cfcl-depart__libelle { font-size: 15px; }
	.cfcl-depart__type { font-size: 11px; padding: 2px 8px; }
	.cfcl-depart__trajet { flex-basis: auto; font-size: 13.5px; }
	.cfcl-depart__trajet + .cfcl-depart__option { flex-basis: auto; }
	.cfcl-depart__trajet + .cfcl-depart__option::before { content: "· "; color: #999; }
	.cfcl-depart__places { font-size: 13.5px; }
	.cfcl-depart__resa { min-height: 38px; padding: 8px 14px; font-size: 13px; }
	.cfcl-tableau__plus { min-height: 42px; font-size: 14px; }
}

/* ======================================================================
 * FICHES BILLETS : lisibilité (inc/billetterie.php, fin du fichier)
 * ====================================================================== */
.single-product .summary .product_title { font-size: 24px !important; line-height: 1.25; margin-bottom: 8px !important; }
@media (min-width: 1024px) { .single-product .summary .product_title { font-size: 28px !important; } }
.single-product .summary .price { font-size: 20px !important; font-weight: 700; color: #224155 !important; margin: 0 0 12px !important; }
.single-product .summary .price small.cfcl-prix-gratuit,
ul.products .price small.cfcl-prix-gratuit { display: block; margin-top: 2px; font-size: 13px; font-weight: 600; color: #4a7a2a; }
.cfcl-accroche { margin: 0 0 8px !important; font-size: 16px; line-height: 1.55; color: #333; text-align: left !important; }
.cfcl-vers-detail { margin: 0 !important; text-align: left !important; }
.cfcl-vers-detail a { font-size: 14px; font-weight: 600; color: #224155 !important; text-decoration: underline; text-underline-offset: 3px; }
.single-product #tab-description, .single-product .woocommerce-tabs { scroll-margin-top: 110px; }
.single-product .woocommerce-Tabs-panel--description > h2:first-child { font-size: 20px !important; color: #224155; }

/* Ordinateur large : le détail remonte dans la colonne principale, les infos pratiques restent visibles */
@media (min-width: 1200px) {
	.single-product div.product:has(> .cfcl-woo-zone--fiche) > .woocommerce-tabs { grid-column: 1 / 3 !important; }
	.single-product div.product:has(> .cfcl-woo-zone--fiche) > .cfcl-woo-zone--fiche { grid-row: 1 / span 3 !important; align-self: stretch; }
	.single-product .cfcl-woo-zone--fiche > div { position: sticky; top: 110px; }
}
/* Fiche billet : seule la règle utile (vélorail ou train) dans « Réservez vos billets » */
.cfcl-billet-velorail .cfcl-woo-zone--fiche .cfcl-ligne-train,
.cfcl-billet-train .cfcl-woo-zone--fiche .cfcl-ligne-velorail { display: none; }
/* Fiche billet : contact discret sous le bouton */
.single-product form.cart .cfcl-question { flex: 0 0 100%; margin: 0 !important; font-size: 14px; color: #555; text-align: left !important; }
.single-product form.cart .cfcl-question a { color: #224155 !important; font-weight: 600; white-space: nowrap; }

/* Fiches billets sur ordinateur : éléments et calendrier plus compacts */
@media (min-width: 1024px) {
	.single-product .summary .product_title { font-size: 24px !important; margin-bottom: 6px !important; }
	.single-product .summary .price { font-size: 18px !important; margin-bottom: 8px !important; }
	.single-product .cfcl-accroche { font-size: 15px; margin-bottom: 6px !important; }
	.single-product .bookacti-wc-fullwidth-cart-form { padding: 18px 22px !important; }
	.single-product form.cart select { min-height: 42px !important; padding-top: 6px !important; padding-bottom: 6px !important; }
	.single-product form.cart table.variations { margin-bottom: 6px !important; }
	.single-product .woocommerce-variation-price { margin: 2px 0 8px; }
	.single-product .woocommerce-variation-price .price { font-size: 24px !important; }
	/* Calendrier Booking Activities */
	.single-product form.cart .fc .fc-toolbar.fc-header-toolbar { margin-bottom: 8px; }
	.single-product form.cart .fc .fc-toolbar-title { font-size: 18px !important; }
	.single-product form.cart .fc .fc-button { padding: 4px 9px !important; font-size: 13px !important; }
	.single-product form.cart .fc .fc-timegrid-slot { height: 10px !important; }
	.single-product form.cart .fc .fc-timegrid-slot-label-cushion,
	.single-product form.cart .fc .fc-col-header-cell-cushion { font-size: 12px; padding: 2px 4px; }
	.single-product form.cart .fc .fc-timegrid-event .fc-event-main { font-size: 11.5px; line-height: 1.15; padding: 0 3px; }
	.single-product form.cart .fc .fc-daygrid-day-frame { min-height: 64px; }
	.single-product form.cart .bookacti-booking-system-container > p,
	.single-product form.cart .bookacti-form-field-container > .bookacti-form-field-content > p { margin-bottom: 6px !important; font-size: 14px; }
}
/* Messages WooCommerce hors boutique : lisibles et bien séparés de la photo d'en-tête */
.kadence-woo-messages-none-woo-pages { position: relative; z-index: 1; background: #fff; }
.kadence-woo-messages-none-woo-pages:empty { display: none; }
.kadence-woo-messages-none-woo-pages .woocommerce-message, .kadence-woo-messages-none-woo-pages .woocommerce-info,
.kadence-woo-messages-none-woo-pages .woocommerce-error { margin: 0 !important; }
/* En-tête transparent au-dessus d'un message WooCommerce : fond bleu nuit pour rester lisible */
body.cfcl-avec-message #masthead .site-header-row-container-inner,
body.cfcl-avec-message #masthead #mobile-header .site-main-header-wrap { background: #224155 !important; }
/* Fiche billet : prix bien visible (gros chiffres bleu nuit, sans encart) */
.single-product .summary p.price {
	display: flex !important; flex-wrap: wrap; align-items: baseline; column-gap: 8px; row-gap: 2px;
	margin: 4px 0 12px !important; padding: 0; background: none; border: 0;
	font-size: 28px !important; font-weight: 700; color: #224155 !important; line-height: 1.15;
}
.single-product .summary p.price .woocommerce-Price-amount { color: #224155; }
.single-product .summary p.price .cfcl-prix-libelle { font-size: 14px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; color: #555; }
.single-product .summary p.price small.woocommerce-price-suffix { font-size: 14px; font-weight: 600; color: #555; }
ul.products .price .cfcl-prix-libelle { font-weight: 400; }
@media (min-width: 1024px) {
	.single-product .summary p.price { font-size: 28px !important; }
	.single-product .woocommerce-variation-price .price { font-size: 30px !important; }
}

/* Fiches billets : alignement des blocs (mêmes bords, même cadre, mêmes marges) */
.single-product .bookacti-wc-fullwidth-cart-form { padding: 0 !important; margin: 0 !important; border: 0 !important; background: none !important; } /* écart de 20 px : marge basse de la carte */
.single-product .bookacti-wc-fullwidth-cart-form > form.cart,
.single-product .woocommerce-tabs .woocommerce-Tabs-panel--description,
.single-product .cfcl-woo-zone--fiche #block-15 .wp-block-columns {
	box-sizing: border-box; background: #fff !important; border: 1px solid #e3e7eb !important; border-radius: 8px !important; box-shadow: none !important;
}
.single-product .bookacti-wc-fullwidth-cart-form > form.cart { margin: 0 !important; padding: 20px !important; }
.single-product .woocommerce-tabs { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.single-product .woocommerce-tabs .woocommerce-Tabs-panel--description { margin: 0 0 20px !important; padding: 20px 24px !important; }
.single-product .cfcl-woo-zone--fiche { margin: 0 !important; }
.single-product .cfcl-woo-zone--fiche #block-15 .wp-block-columns { margin: 0 !important; overflow: hidden; }
@media (min-width: 1024px) {
	.single-product .bookacti-wc-fullwidth-cart-form > form.cart { padding: 22px 24px !important; }
}
.single-product .cfcl-woo-zone--fiche > div, .single-product .cfcl-woo-zone--fiche section.widget { margin: 0 !important; padding: 0 !important; }
.single-product .cfcl-woo-zone--fiche #block-15 { display: block; line-height: 0; }
.single-product .cfcl-woo-zone--fiche #block-15 .wp-block-columns { line-height: normal; }
@media (max-width: 1199px) { .single-product .cfcl-woo-zone--fiche { margin-bottom: 20px !important; } }

/* ======================================================================
 * Tableau des départs : sobriété (novembre 2026, demande « moins effet IA »)
 * Filtres en onglets soulignés, plus de pastilles ni de bandes de couleur ;
 * angles et majuscules comme les boutons du site ; « Voir les départs suivants » en simple lien.
 * Les bandeaux de date bleu nuit restent tels quels.
 * ====================================================================== */
.cfcl-tableau__filtres { gap: 0 22px; border-bottom: 1px solid #dfe3e7; }
.cfcl-tableau__filtres button,
.cfcl-tableau__filtres button.is-actif {
	min-height: 40px; padding: 8px 2px; margin-bottom: -1px; border: 0; border-bottom: 3px solid transparent; border-radius: 0;
	background: none; color: #555; font-size: 14px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
}
.cfcl-tableau__filtres button:hover { color: #224155; border-color: transparent; border-bottom-color: #c9d1d9; }
.cfcl-tableau__filtres button.is-actif { color: #224155; border-bottom-color: #dd1111; }
.cfcl-tableau__filtres button span,
.cfcl-tableau__filtres button.is-actif span { padding: 0; border-radius: 0; background: none; color: #888; font-weight: 600; }
.cfcl-tableau__filtres button span::before { content: "("; }
.cfcl-tableau__filtres button span::after { content: ")"; }
.cfcl-tableau__jour { border-radius: 2px; }
.cfcl-depart, .cfcl-depart--velorail { border-left: 0; }
.cfcl-depart__type, .cfcl-depart--velorail .cfcl-depart__type { padding: 0; border-radius: 0; background: none; letter-spacing: .5px; }
.cfcl-depart--velorail .cfcl-depart__type { color: #dd1111; }
.cfcl-tableau__pied { margin-top: 2px; justify-content: flex-end; }
.cfcl-tableau__plus, .cfcl-tableau__plus:hover {
	min-height: 0; padding: 6px 0; border: 0; border-radius: 0; background: none; color: #224155;
	font-size: 15px; font-weight: 600; text-transform: none; letter-spacing: 0;
	text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px;
}
.cfcl-tableau__plus::after { content: " \203A"; text-decoration: none; display: inline-block; margin-left: 4px; }
.cfcl-tableau__plus:hover { color: #dd1111; }
@media (max-width: 767px) {
	.cfcl-tableau__filtres { gap: 0 16px; }
	.cfcl-tableau__filtres button { flex: 0 0 auto; padding: 8px 2px; font-size: 13.5px; }
	.cfcl-tableau__pied { justify-content: center; }
}
@media (min-width: 1024px) {
	.cfcl-tableau__filtres button { min-height: 38px; padding: 6px 2px; font-size: 13.5px; }
	.cfcl-tableau__plus { min-height: 0; font-size: 14.5px; }
}
/* Code promo de la page de commande : champ et bouton côte à côte, même hauteur */
.woocommerce-checkout form.checkout_coupon { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; }
.woocommerce-checkout form.checkout_coupon > p:not(.form-row) { flex: 1 1 100%; margin: 0 !important; font-size: 14px; }
.woocommerce-checkout form.checkout_coupon .form-row { float: none !important; width: auto !important; margin: 0 !important; }
.woocommerce-checkout form.checkout_coupon .form-row-first { flex: 1 1 180px; }
.woocommerce-checkout form.checkout_coupon .input-text { min-height: 55px; width: 100%; border: 1px solid #cbd5e0 !important; border-radius: 4px !important; font-size: 16px !important; }
.woocommerce-checkout form.checkout_coupon .clear { display: none; }
/* Commande : colonne des montants au plus juste, libellé du paiement sans second encadré, case des CGV alignée */
.woocommerce-checkout .woocommerce-checkout-review-order-table th:first-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table td:first-child { width: 100%; }
.woocommerce-checkout #payment .wc_payment_method > label { background: none !important; padding: 0 !important; border: 0 !important; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox {
	display: block !important; position: relative; padding-left: 28px !important; line-height: 1.45 !important;
}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox input { position: absolute; left: 0; top: 1px; margin: 0 !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .includes_tax { white-space: nowrap; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .includes_tax .amount { display: inline; }
@media (min-width: 1024px) { .woocommerce-checkout #customer_details { width: auto !important; float: none !important; } }
/* Confirmation de commande : montants du pied de tableau alignés à droite, comme la colonne « Total » */
.woocommerce-order-received .woocommerce-table--order-details tfoot th { text-align: left; font-weight: 600; }
.woocommerce-order-received .entry-content table.order_details tfoot td,
.woocommerce-order-received .entry-content table.order_details td.product-total,
.woocommerce-order-received .entry-content table.order_details thead th:last-child,
.woocommerce-checkout .entry-content .woocommerce-checkout-review-order-table th:last-child,
.woocommerce-checkout .entry-content .woocommerce-checkout-review-order-table td:last-child { text-align: right !important; }
.woocommerce-order-received .woocommerce-table--order-details tfoot td .includes_tax { display: block; white-space: nowrap; }

/* ---------- Calendrier des fiches billets : semaine plus compacte à toutes les largeurs (novembre 2026) ----------
 * Les heures affichées restent 10 h - 19 h (certains départs d'été finissent à 19 h) ; seules les lignes sont moins hautes. */
.single-product form.cart .fc .fc-timegrid-slot, .bookacti-booking-system .fc .fc-timegrid-slot { height: 10px !important; line-height: 1 !important; }
.single-product form.cart .fc .fc-timegrid-slot-label-cushion, .bookacti-booking-system .fc .fc-timegrid-slot-label-cushion { font-size: 11.5px; line-height: 1; padding: 0 4px; }
.single-product form.cart .fc .fc-timegrid-event .fc-event-main { font-size: 11.5px; line-height: 1.15; padding: 0 3px; }

/* ---------- Typographie (novembre 2026) ----------
 * Texte : Source Sans 3 (17 px), titres, menus, boutons et étiquettes : Barlow Semi Condensed.
 * Polices réglées dans Personnaliser > Typographie et hébergées sur le site (inc/typographie.php).
 * Source Sans 3 est plus petite à taille égale que Trebuchet : les textes de 13-14 px passent à 15-16 px.
 * Retour en arrière : ~/recette_work/typo/ */
:root { --cfcl-titre: var(--global-heading-font-family); }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
.entry-content p, .entry-content li { line-height: 1.6; }
h1, h2, h3, h4, h5, h6 { letter-spacing: .01em; }

/* En-tête : nom du site, accroche, menu */
.site-branding .site-title, .site-branding .site-title a { font-family: var(--cfcl-titre); font-weight: 700; letter-spacing: .02em; }
.site-branding .site-description { font-size: 13px; font-weight: 400; line-height: 1.35; }
.main-navigation .primary-menu-container > ul > li.menu-item > a,
.main-navigation .primary-menu-container > ul > li.menu-item > a.cart-contents {
	font-family: var(--cfcl-titre) !important; font-size: 15px !important; font-weight: 600 !important; letter-spacing: .03em;
}
.mobile-navigation ul li > a, .mobile-navigation ul li .drawer-nav-drop-wrap > a { font-family: var(--cfcl-titre); font-size: 18px; font-weight: 600; letter-spacing: .03em; }
.cfcl-departs__pastille { font-family: var(--cfcl-titre); font-size: 13.5px; }
.main-navigation .primary-menu-container > ul > li.menu-item > a { white-space: nowrap; }
@media (min-width: 1025px) and (max-width: 1240px) {
	.main-navigation .primary-menu-container > ul > li.menu-item > a, .main-navigation .primary-menu-container > ul > li.menu-item > a.cart-contents { font-size: 14px !important; letter-spacing: .02em; padding-left: 6px; padding-right: 6px; }
}
@media (min-width: 1025px) and (max-width: 1150px) {
	.main-navigation .primary-menu-container > ul > li.menu-item > a, .main-navigation .primary-menu-container > ul > li.menu-item > a.cart-contents { font-size: 13.5px !important; letter-spacing: .01em; padding-left: 5px; padding-right: 5px; }
	.site-branding .site-title, .site-branding .site-title a { font-size: 16px !important; }
	.cfcl-departs.is-entete .cfcl-departs__pastille { white-space: nowrap; }
	.cfcl-departs.is-entete .cfcl-departs__compte { display: none; }
}

/* Boutons */
.wp-block-button__link, .button, button.button, a.button, input[type="submit"], .single_add_to_cart_button, #place_order,
.su-button, .wpcf7-submit, .cfcl-depart__resa, .cfcl-gare__itineraire, .cfcl-contact__appel {
	font-family: var(--cfcl-titre) !important; font-weight: 600 !important; letter-spacing: .05em !important;
}
.wp-block-button__link, .woocommerce ul.products li.product .button, .woocommerce a.button, .woocommerce button.button,
.cfcl-depart__resa { font-size: 15.5px !important; }

/* Étiquettes et sur-titres en capitales */
.cfcl-subtitle { font-family: var(--cfcl-titre); font-size: 15px !important; font-weight: 600 !important; letter-spacing: .12em !important; }
.su-service-title, .su-spoiler-title, .cfcl-contact__form h3, .cfcl-contact__tel h3, .cfcl-contact__faq h3, .cfcl-contact__courrier h3,
.cfcl-etape legend { font-family: var(--cfcl-titre) !important; letter-spacing: .03em; }
.su-service-title { font-size: 16.5px !important; }
.su-spoiler-title { font-size: 17px !important; font-weight: 600 !important; line-height: 1.35 !important; }
.su-spoiler-content { font-size: 16px !important; }
.cfcl-contact__form h3, .cfcl-contact__tel h3, .cfcl-contact__faq h3, .cfcl-contact__courrier h3, .cfcl-etape legend { font-size: 18px !important; font-weight: 600 !important; }

/* Accueil : titres et textes des cartes */
.wp-block-group h3.wp-block-heading { font-size: 19px !important; font-weight: 600 !important; line-height: 1.25 !important; }
.cfcl-feature-text, .cfcl-card-text, .cfcl-service-text { font-size: 16px !important; line-height: 1.6 !important; }
.cfcl-hero-text { font-size: 23px !important; }
.cfcl-desc { font-size: 20px !important; }
figcaption, .wp-element-caption { font-size: 13.5px !important; line-height: 1.4 !important; }
.widget p.has-text-align-center, .widget p.has-text-align-center a { font-size: 14px !important; }

/* Tableau des départs */
.cfcl-tableau .cfcl-tableau__date { font-family: var(--cfcl-titre); font-size: 15px !important; font-weight: 600 !important; letter-spacing: .06em; }
.cfcl-tableau__filtres button { font-family: var(--cfcl-titre); font-size: 15.5px !important; font-weight: 600 !important; letter-spacing: .05em; }
.cfcl-tableau__entete span { font-family: var(--cfcl-titre); font-size: 13.5px !important; font-weight: 600 !important; letter-spacing: .06em; }
.cfcl-depart__heure { font-family: var(--cfcl-titre); font-weight: 600; letter-spacing: 0; }
.cfcl-depart__type { font-family: var(--cfcl-titre); font-size: 13px !important; font-weight: 600 !important; letter-spacing: .06em; }
.cfcl-depart__libelle { font-size: 17px !important; font-weight: 600 !important; }
.cfcl-depart__trajet, .cfcl-depart__places { font-size: 15px !important; }
.cfcl-depart__option, .cfcl-depart__places small { font-size: 14px !important; }
.cfcl-tableau__plus { font-size: 15.5px !important; }

/* Billetterie et fiches billets */
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--cfcl-titre); font-weight: 600; letter-spacing: .02em; }
.single-product .summary .product_title { font-weight: 700; letter-spacing: .02em; }
.price, .price .amount, .cfcl-depart__heure { font-variant-numeric: lining-nums tabular-nums; }
.price .amount bdi { font-family: var(--cfcl-titre); font-weight: 700; }
.cfcl-prix-libelle, .woocommerce-price-suffix { font-size: 13px !important; letter-spacing: .04em; }
.su-service-content, .su-service-content p, .su-service-content a, .su-service-content span { font-size: 15.5px !important; line-height: 1.55 !important; }
.su-service .su-service-content p[style*="font-size"], .su-service .su-service-content p[style*="font-size"] a { font-size: 14px !important; line-height: 1.5 !important; }
.cfcl-aide-resa, .cfcl-question, .cfcl-vers-detail, .cfcl-vers-detail a { font-size: 15.5px !important; }
.single-product .cfcl-accroche { font-size: 17px !important; }

/* Pages : fil d'Ariane, gares, contact, groupes */
.cfcl-ariane, .cfcl-ariane a, .cfcl-ariane span { font-size: 14px !important; }
.cfcl-gare__note { font-size: 15px !important; line-height: 1.5 !important; }
.cfcl-gare__adresse { font-size: 15px !important; }
.cfcl-gare__services li { font-size: 16px !important; }
.cfcl-champ label, .cfcl-champ__titre { font-size: 15.5px !important; }
.cfcl-champ__aide, .cfcl-contact__note, .cfcl-devis__reserve { font-size: 14.5px !important; }
.cfcl-contact__devis, .cfcl-contact__tel p, .cfcl-contact__faq p, .cfcl-contact__courrier p, .cfcl-groupes__carte p,
.wpcf7-list-item-label { font-size: 16px !important; }

/* Pied de page */
#colophon, #colophon p, #colophon a, #colophon span { font-size: 14.5px !important; }

/* Téléphone */
@media (max-width: 767px) {
	.cfcl-hero-text { font-size: 19px !important; }
	.cfcl-desc { font-size: 18px !important; }
	.wp-block-group h3.wp-block-heading { font-size: 18px !important; }
}
/* Typographie : derniers textes trop petits */
.site-branding .site-description { font-size: 13px !important; }
#block-17 figcaption, .widget_media_gallery figcaption.wp-element-caption { font-size: 13px !important; line-height: 1.35 !important; }
.wp-caption-text { font-size: 14px !important; }
.cfcl-section [style*="font-size: 80%"][style*="line-height: 90%"] { font-size: 14.5px !important; line-height: 1.45 !important; }
.woocommerce ul.products li.product .product-action-wrap .button { font-size: 15.5px !important; }
.woocommerce ul.products li.product small { font-size: 14px; }
@media (min-width: 1151px) { .cfcl-departs.is-entete .cfcl-departs__pastille { font-size: 13.5px; } }
.wptripadvisor_t1_P_3, .wptripadvisor_t1_P_3 span, .wptripadvisor_t1_P_3 a { font-size: 15.5px !important; line-height: 1.55 !important; }
.wptripadvisor_t1_SPAN_5, .wprev_showdate_T1 { font-size: 13.5px !important; }
[class*="wptripadvisor_t1"], [class*="wptripadvisor_t1"] *, .wprevrevtitle, .wprev_showdate_T1, .wprs_rd_more { font-family: var(--global-body-font-family) !important; }
.wprevrevtitle { font-weight: 700 !important; text-transform: none !important; }
/* Calendrier : la hauteur des demi-heures est calculée par le calendrier d'après le libellé de l'heure ;
   on réduit ce libellé pour obtenir des lignes de 10 px (aucun départ ne dure moins de 1 h 30). */
.bookacti-booking-system .fc .fc-timegrid-slot-label, .bookacti-booking-system .fc .fc-timegrid-slot-label * {
	font-size: 11px !important; line-height: 1 !important; padding-top: 0 !important; padding-bottom: 0 !important; margin-top: 0 !important; margin-bottom: 0 !important; min-height: 0 !important;
}
/* Commande : alerte de cohérence du nombre de passagers (non bloquante) */
.woocommerce-checkout .cfcl-alerte-passagers { margin: 8px 0 0 !important; padding: 10px 12px; border: 2px solid #dd1111; border-radius: 4px; background: #fff5f5; color: #dd1111; font-weight: 700; font-size: 15px; line-height: 1.45; text-align: left; }
.woocommerce-checkout .cfcl-alerte-passagers[hidden] { display: none; }
.woocommerce-checkout .form-row .input-text.cfcl-champ-alerte { border-color: #dd1111 !important; }
/* Tableau des départs : une ligne ou un jour masqué par les filtres reste masqué (la mise en grille l'emportait sur « hidden ») */
.cfcl-tableau [hidden] { display: none !important; }

/* Fiche « réservation par téléphone » (groupes) : encadré de contact à la place du formulaire de réservation */
.single-product .cfcl-resa-tel { clear: both; margin: 20px 0; padding: 20px; background: #fff; border: 1px solid var(--cfcl-filet); border-radius: 6px; }
.single-product .cfcl-resa-tel h2 { margin: 0 0 8px !important; font-size: 20px !important; color: var(--cfcl-bleu); }
.single-product .cfcl-resa-tel p { margin: 0 0 16px; text-align: left; }
.single-product .cfcl-resa-tel__boutons { display: flex; flex-wrap: wrap; gap: 12px; }
.single-product .cfcl-resa-tel__boutons .button { display: inline-flex; align-items: center; gap: 8px; min-height: 55px; margin: 0 !important; }
.single-product .cfcl-resa-tel__boutons .button.is-second { background: #4a5560 !important; border-color: #4a5560 !important; }
.single-product .cfcl-resa-tel__boutons .button.is-second:hover { background: #224155 !important; border-color: #224155 !important; }
@media (max-width: 599px) { .single-product .cfcl-resa-tel__boutons .button { width: 100%; justify-content: center; } }
@media (min-width: 768px) { .single-product .cfcl-resa-tel { padding: 22px 24px; } }
/* Pour un voyage de groupe, la règle « 1 billet = 1 personne » ne s'applique pas */
.cfcl-billet-tel .cfcl-woo-zone--fiche .cfcl-ligne-train, .cfcl-billet-tel .cfcl-woo-zone--fiche .cfcl-ligne-velorail { display: none; }
.woocommerce.single-product .cfcl-resa-tel a.button.is-second { background: #4a5560 !important; border-color: #4a5560 !important; color: #fff !important; }
.woocommerce.single-product .cfcl-resa-tel a.button.is-second:hover { background: #224155 !important; border-color: #224155 !important; }
.cfcl-billet-tel .cfcl-woo-zone--fiche .wp-block-column:has(.cfcl-ligne-train) { display: none !important; }
.cfcl-billet-tel .cfcl-woo-zone--fiche .wp-block-column:not(:has(.cfcl-ligne-train)):first-of-type,
.cfcl-billet-tel .cfcl-woo-zone--fiche .wp-block-column:has(.cfcl-ligne-train) + .wp-block-column { border-top: 0 !important; }
.single-product div.product > .cfcl-resa-tel { box-sizing: border-box; background: #fff !important; border: 1px solid #e3e7eb !important; border-radius: 8px !important; margin: 20px 0 !important; padding: 20px !important; }
@media (min-width: 1024px) { .single-product div.product > .cfcl-resa-tel { padding: 22px 24px !important; } }
.single-product .cfcl-resa-tel h2 { font-size: 20px !important; font-weight: 600 !important; text-transform: uppercase; letter-spacing: .03em; color: #224155 !important; }
/* Bloc « Comment réserver » : même espace en haut et en bas de chaque encadré
   (la marge basse des widgets, 25 px, s'ajoutait à l'espacement intérieur) */
#block-15 .wp-block-column > .widget, #block-15 .wp-block-column > .widget:last-child { margin-bottom: 0 !important; }
#block-15 .su-service-content > :last-child, #block-15 .su-service-content p:last-child { margin-bottom: 0 !important; }

/* Bandeau « nouvelle version du site » (inc/bandeau.php) : fixé en haut de l'écran, avis et commentaire ; l'en-tête collant passe dessous */
.cfcl-bandeau { position: sticky; top: 0; z-index: 10000; background: #f5f7f9; border-bottom: 1px solid #e3e7eb; color: #224155; padding: 7px 16px; }
body.admin-bar .cfcl-bandeau { top: 32px; }
@media (max-width: 782px) { body.admin-bar .cfcl-bandeau { top: 46px; } }
@media (max-width: 600px) { body.admin-bar .cfcl-bandeau { top: 0; } }
body.cfcl-avec-bandeau #masthead .item-is-fixed { top: var(--cfcl-bandeau-bas, 0px) !important; }
.cfcl-bandeau__ligne { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 12px; }
.cfcl-bandeau p { margin: 0; font-size: 14.5px; line-height: 1.4; text-align: center; }
.cfcl-bandeau__choix { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 8px; }
.cfcl-bandeau__choix[hidden], .cfcl-bandeau [hidden] { display: none !important; }
.cfcl-bandeau button.cfcl-bandeau__vote { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 3px 12px !important; border: 1px solid #c9d2db !important; border-radius: 999px !important;
	background: #fff !important; color: #224155 !important; font-family: var(--global-body-font-family) !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; line-height: 1.2 !important; box-shadow: none !important; cursor: pointer; }
.cfcl-bandeau button.cfcl-bandeau__vote:hover, .cfcl-bandeau button.cfcl-bandeau__vote:focus-visible { background: #224155 !important; border-color: #224155 !important; color: #fff !important; }
.cfcl-bandeau button.cfcl-bandeau__vote i { font-size: 13px; }
.cfcl-bandeau button.cfcl-bandeau__commenter { padding: 3px 4px !important; border: 0 !important; background: none !important; box-shadow: none !important; color: #dd1111 !important;
	font-family: var(--global-body-font-family) !important; font-size: 14px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; min-height: 32px; }
.cfcl-bandeau button.cfcl-bandeau__commenter:hover { color: #224155 !important; }
.cfcl-bandeau__merci { font-weight: 600; }
.cfcl-avis { max-width: 720px; margin: 10px auto 4px; text-align: left; }
.cfcl-avis label { display: block; font-size: 13.5px; font-weight: 600; margin: 0 0 4px; color: #224155; }
.cfcl-avis label span { font-weight: 400; color: #666; }
.cfcl-avis textarea, .cfcl-avis input[type="email"] { width: 100%; box-sizing: border-box; border: 1px solid #cbd5e0; border-radius: 4px; background: #fff; font-size: 16px; padding: 8px 10px; }
.cfcl-avis textarea { min-height: 72px; resize: vertical; }
.cfcl-avis__bas { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-top: 8px; }
.cfcl-avis__email { flex: 1 1 240px; }
.cfcl-avis__piege { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.cfcl-bandeau .cfcl-avis__envoyer { min-height: 42px; padding: 8px 22px !important; font-size: 15px !important; }
.cfcl-bandeau button.cfcl-avis__annuler { min-height: 42px; padding: 8px 6px !important; border: 0 !important; background: none !important; box-shadow: none !important; color: #4a5560 !important; text-decoration: underline;
	font-family: var(--global-body-font-family) !important; font-size: 14px !important; font-weight: 400 !important; letter-spacing: 0 !important; text-transform: none !important; }
.cfcl-bandeau p.cfcl-avis__note { margin-top: 6px; font-size: 12.5px; color: #666; text-align: left; }
.cfcl-bandeau p.cfcl-avis__erreur { margin-top: 6px; font-size: 14px; color: #dd1111; font-weight: 600; text-align: left; }
@media (max-width: 599px) {
	.cfcl-bandeau { padding: 6px 12px; }
	.cfcl-bandeau p { font-size: 13.5px; }
	.cfcl-bandeau button.cfcl-bandeau__vote { font-size: 13px !important; padding: 2px 10px !important; min-height: 30px; }
	.cfcl-bandeau button.cfcl-bandeau__commenter { font-size: 13px !important; min-height: 30px; }
}

/* ---------- Schéma de la voie ferrée (inc/schema-voie.php) ----------
 * Couleurs des gares de départ : Confolens #2b4daf, Roumazières-Loubert #b14c2b (codes des activités Booking Activities). */
:root { --cfcl-confolens: #2b4daf; --cfcl-roumazieres: #b14c2b; }
.cfcl-voie { margin: 24px 0 !important; padding: 26px 24px 22px; background: #fff; border: 1px solid #e3e7eb; border-radius: 8px; box-sizing: border-box; }
.cfcl-voie__gares { position: relative; list-style: none; margin: 0 96px !important; padding: 0 !important; height: 150px; }
.cfcl-voie__ligne { position: relative; margin: 0 96px; height: 0; }
.cfcl-voie__troncon { position: absolute; top: 59px; height: 4px; border-radius: 2px;
	background: repeating-linear-gradient(90deg, var(--c) 0 10px, transparent 10px 16px); }
.cfcl-voie__troncon--confolens { --c: var(--cfcl-confolens); }
.cfcl-voie__troncon--roumazieres { --c: var(--cfcl-roumazieres); }
/* Flèches : de chaque gare de départ vers Manot, et retour depuis Manot */
.cfcl-voie__troncon::before, .cfcl-voie__troncon::after { content: ""; position: absolute; top: -5px; border: 7px solid transparent; }
.cfcl-voie__troncon::before { left: 14px; border-left: 10px solid var(--c); border-right: 0; }
.cfcl-voie__troncon::after { right: 14px; border-right: 10px solid var(--c); border-left: 0; }
.cfcl-voie__km { position: absolute; top: 74px; transform: translateX(-50%); font-family: var(--global-heading-font-family); font-weight: 600; font-size: 16px; color: #4a5560; white-space: nowrap; }
.cfcl-voie__gare { position: absolute; top: 0; left: var(--pos); transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; width: 0; margin: 0 !important; padding: 0 !important; }
.cfcl-voie__gare::before { display: none; }
.cfcl-voie__nom { white-space: nowrap; font-family: var(--global-heading-font-family); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; font-size: 15px; line-height: 1; padding: 9px 16px; border-radius: 999px; color: #fff; }
.cfcl-voie__gare--confolens .cfcl-voie__nom { background: var(--cfcl-confolens); }
.cfcl-voie__gare--roumazieres .cfcl-voie__nom { background: var(--cfcl-roumazieres); }
.cfcl-voie__gare.is-retour .cfcl-voie__nom, .cfcl-voie__gare.is-halte .cfcl-voie__nom { background: #eef1f4; color: #224155; border: 1px solid #d5dbe1; padding: 7px 14px; }
.cfcl-voie__gare.is-halte .cfcl-voie__nom { font-size: 12.5px; color: #4a5560; }
.cfcl-voie__point { position: absolute; top: 61px; transform: translate(-50%, -50%); left: 0; width: 12px; height: 12px; border-radius: 50%; background: #4a5560; box-shadow: 0 0 0 3px #fff; }
.cfcl-voie__gare.is-depart .cfcl-voie__point { width: 20px; height: 20px; box-shadow: 0 0 0 3px #fff, 0 0 0 5px currentColor; }
.cfcl-voie__gare--confolens .cfcl-voie__point { background: var(--cfcl-confolens); color: var(--cfcl-confolens); }
.cfcl-voie__gare--roumazieres .cfcl-voie__point { background: var(--cfcl-roumazieres); color: var(--cfcl-roumazieres); }
.cfcl-voie__gare.is-halte .cfcl-voie__point { width: 10px; height: 10px; background: #8a96a3; }
.cfcl-voie__retour { position: absolute; top: 38px; white-space: nowrap; font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: #8a96a3; }
.cfcl-voie__km-mobile { display: none; }
.cfcl-voie__services { position: absolute; top: 104px; display: flex; gap: 6px; list-style: none; margin: 0 !important; padding: 0 !important; }
.cfcl-voie__services li { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin: 0 !important; padding: 0 !important; border: 1.5px solid #224155; border-radius: 5px; color: #224155; background: #fff; }
.cfcl-voie__services li::before { display: none; }
.cfcl-voie__services svg { width: 22px; height: 22px; display: block; }
/* Téléphone et petite tablette : schéma vertical */
@media (max-width: 767px) {
	.cfcl-voie { padding: 20px 16px 8px; }
	.cfcl-voie__ligne { display: none; }
	.cfcl-voie__gares { height: auto; margin: 0 !important; }
	.cfcl-voie__gare { position: relative; left: auto; transform: none; width: auto; align-items: flex-start; padding: 0 0 18px 40px !important; min-height: 64px; }
	.cfcl-voie__gare:last-child { min-height: 0; }
	/* tronçon vers la gare suivante */
	.cfcl-voie__gare[class*="suite-"]::after { content: ""; position: absolute; left: 13px; top: 18px; bottom: -2px; width: 4px; border-radius: 2px;
		background: repeating-linear-gradient(180deg, var(--c) 0 10px, transparent 10px 16px); }
	.cfcl-voie__gare.suite-confolens { --c: var(--cfcl-confolens); }
	.cfcl-voie__gare.suite-roumazieres { --c: var(--cfcl-roumazieres); }
	.cfcl-voie__point { top: 16px; left: 15px; z-index: 1; }
	.cfcl-voie__retour { position: static; margin: 6px 0 0; }
	.cfcl-voie__services { position: static; margin: 10px 0 0 !important; }
	.cfcl-voie__km-mobile { display: block; position: absolute; left: 26px; bottom: 0; transform: translateY(50%); font-family: var(--global-heading-font-family); font-weight: 600; font-size: 14px; color: #4a5560; background: #fff; padding: 0 4px; z-index: 1; }
}

/* Couleurs des gares de départ reprises discrètement (novembre 2026) */
/* Tableau des départs : pastille de la gare devant le trajet */
.cfcl-depart__trajet.de-confolens::before, .cfcl-depart__trajet.de-roumazieres::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; vertical-align: 1px; }
.cfcl-depart__trajet.de-confolens::before { background: var(--cfcl-confolens); }
.cfcl-depart__trajet.de-roumazieres::before { background: var(--cfcl-roumazieres); }
/* Fiches vélorail : filet à la couleur de la gare de départ devant les tarifs et les départs */
.cfcl-gare-confolens { --cfcl-gare: var(--cfcl-confolens); }
.cfcl-gare-roumazieres { --cfcl-gare: var(--cfcl-roumazieres); }
.cfcl-gare-confolens .woocommerce-Tabs-panel--description .cfcl-tarifs,
.cfcl-gare-roumazieres .woocommerce-Tabs-panel--description .cfcl-tarifs,
.cfcl-gare-confolens .woocommerce-Tabs-panel--description .cfcl-liste-departs,
.cfcl-gare-roumazieres .woocommerce-Tabs-panel--description .cfcl-liste-departs { border-left: 3px solid var(--cfcl-gare); padding-left: 14px !important; }

/* ---------- Page « Comment venir » : mise en page sobre (novembre 2026) ----------
 * Texte simple, trois colonnes sur ordinateur, une colonne sur téléphone ; pas de cartes ni d'encadrés. */
.cfcl-voie { border: 0 !important; background: none !important; padding: 8px 0 !important; border-radius: 0 !important; }
.cfcl-acces { color: #333; }
.cfcl-acces p { text-align: left !important; }
.cfcl-acces__intro { font-size: 17px; line-height: 1.6; margin: 0 0 20px !important; }
.cfcl-acces__intro strong { color: #224155; }
.cfcl-acces__gares { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 24px 0 0; border-top: 1px solid #e3e7eb; }
.cfcl-acces__gare { padding: 24px 0; border-bottom: 1px solid #e3e7eb; }
@media (min-width: 900px) {
	.cfcl-acces__gares { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 40px; }
	.cfcl-acces__gare { border-bottom: 0; padding: 28px 0 8px; }
}
.cfcl-acces .cfcl-acces__gare h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 10px !important; font-size: 21px !important; line-height: 1.3 !important; font-weight: 600 !important; color: #224155; text-transform: none !important; letter-spacing: 0 !important; }
.cfcl-acces .cfcl-acces__gare h2::before { content: ""; flex: 0 0 10px; width: 10px; height: 10px; border-radius: 50%; background: #8a96a3; }
.cfcl-acces .cfcl-acces__gare--confolens h2::before { background: var(--cfcl-confolens); }
.cfcl-acces .cfcl-acces__gare--roumazieres h2::before { background: var(--cfcl-roumazieres); }
.cfcl-acces address { font-style: normal; font-size: 16px; line-height: 1.5; color: #444; margin: 0 0 14px; }
.cfcl-acces__gare ul { list-style: none; margin: 0 0 14px !important; padding: 0 !important; }
.cfcl-acces__gare li { margin: 0 0 6px !important; padding: 0 !important; font-size: 16px; line-height: 1.5; }
.cfcl-acces__gare li::before { display: none !important; }
.cfcl-acces__note { font-size: 15.5px; line-height: 1.5; color: #444; margin: 0 0 14px !important; }
.cfcl-acces__itineraire { margin: 0 !important; }
.cfcl-acces__itineraire a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; color: #224155 !important; text-decoration: underline; text-underline-offset: 3px; }
.cfcl-acces__itineraire a::after { content: "\2197"; margin-left: 6px; font-size: 15px; text-decoration: none; }
.cfcl-acces__itineraire a:hover, .cfcl-acces__itineraire a:focus-visible { color: #dd1111 !important; }
.cfcl-acces__conseils { margin: 28px 0 0 !important; padding-top: 20px; border-top: 1px solid #e3e7eb; font-size: 16px; }
.cfcl-acces__conseils a { font-weight: 600; color: #224155 !important; text-decoration: underline; text-underline-offset: 3px; }
/* Schéma vertical (téléphone) : distance placée dans le texte, sous les services, pour ne pas chevaucher la gare suivante */
@media (max-width: 767px) {
	.cfcl-voie__km-mobile { position: static !important; transform: none !important; display: block; margin: 10px 0 0; padding: 0 !important; background: none !important; font-size: 13.5px; color: #6b7682; }
	.cfcl-voie__gare { padding-bottom: 22px !important; }
}
@media (max-width: 767px) { .cfcl-voie__km-mobile { order: 9; } .cfcl-voie__services { order: 8; } }
/* Tableau : le nombre de places reste sur une ligne ; bouton téléphone plus compact */
.cfcl-depart__places { white-space: nowrap; }
@media (max-width: 599px) {
	.cfcl-depart__resa.is-tel { font-size: 14px !important; padding-left: 12px !important; padding-right: 12px !important; letter-spacing: .02em !important; white-space: nowrap; }
}

/* ---------- Page « Comment venir » : inspirée de Material Design, conçue d'abord pour le téléphone (novembre 2026) ----------
 * Composants : rappel sur fond tonal, en-tête de liste avec avatar, listes à icône, bouton plein arrondi, séparateurs fins. */
.md-acces { --md-primaire: #224155; --md-texte: #1f2328; --md-texte-2: #4b5563; --md-contour: #d7dce1; --md-tonal: #edf1f5; color: var(--md-texte); }
.md-acces p { text-align: left !important; }
.md-rappel { display: flex; gap: 14px; align-items: flex-start; margin: 0 0 16px !important; padding: 14px 16px; background: var(--md-tonal); border-radius: 12px; font-size: 15.5px; line-height: 1.5; }
.md-rappel > i { flex: 0 0 20px; margin-top: 3px; color: var(--md-primaire); font-size: 18px; }
.md-rappel strong { color: var(--md-primaire); }
.md-gares { border-top: 1px solid var(--md-contour); margin-top: 8px; }
.md-gare { padding: 20px 0 16px; border-bottom: 1px solid var(--md-contour); }
.md-gare__entete { display: flex; align-items: center; gap: 16px; margin: 0 0 8px; }
.md-gare__avatar { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #6b7682; color: #fff; font-weight: 600; font-size: 17px; }
.md-gare--confolens .md-gare__avatar { background: var(--cfcl-confolens); }
.md-gare--roumazieres .md-gare__avatar { background: var(--cfcl-roumazieres); }
.md-acces .md-gare h2 { margin: 0 !important; font-size: 21px !important; line-height: 28px !important; font-weight: 600 !important; color: var(--md-texte); text-transform: none !important; letter-spacing: 0 !important; }
.md-gare__sous-titre { margin: 0 !important; font-size: 14px; line-height: 20px; color: var(--md-texte-2); }
.md-liste { list-style: none; margin: 0 0 12px !important; padding: 0 !important; }
.md-item { display: flex; align-items: center; gap: 16px; min-height: 44px; margin: 0 !important; padding: 6px 0 !important; font-size: 16px; line-height: 1.45; }
.md-item::before { display: none !important; }
.md-item__icone { flex: 0 0 24px; width: 24px; text-align: center; font-size: 18px; color: var(--md-texte-2); }
.md-item--note { color: var(--md-texte-2); font-size: 15px; }
.md-item--note .md-item__icone { color: #b26a00; }
.md-gare__action { margin: 4px 0 0 !important; }
.md-acces a.md-bouton { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 24px 0 18px; border-radius: 22px;
	background: var(--md-primaire); color: #fff !important; font-size: 15px; font-weight: 600; letter-spacing: .01em; text-decoration: none !important; box-shadow: none; transition: box-shadow .15s, background .15s; }
.md-acces a.md-bouton:hover { background: #1a3344; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); }
.md-acces a.md-bouton:focus-visible { outline: 3px solid #f5c518; outline-offset: 2px; }
.md-acces a.md-bouton i { font-size: 16px; }
.md-acces a.md-lien-liste { display: flex; align-items: center; gap: 16px; min-height: 56px; margin-top: 8px; padding: 8px 0; color: var(--md-texte) !important; font-size: 16px; text-decoration: none !important; border-bottom: 1px solid var(--md-contour); }
.md-acces a.md-lien-liste span { flex: 1; }
.md-acces a.md-lien-liste .fa-chevron-right { color: var(--md-texte-2); font-size: 14px; }
.md-acces a.md-lien-liste:hover span { text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 840px) {
	.md-gares { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 32px; }
	.md-gare { border-bottom: 0; padding: 24px 0 20px; }
	.md-acces a.md-lien-liste { border-top: 1px solid var(--md-contour); margin-top: 0; }
}
.md-acces p:empty { display: none !important; }

/* ---------- Page « Comment venir » : même présentation que la billetterie et l'accueil (novembre 2026) ----------
 * Panneaux blancs (ombre légère), colonnes séparées par un filet, icône dans un rond clair, titres en capitales. Téléphone d'abord. */
.cv { color: #4c4c4c; }
.cv p:empty { display: none !important; }
.cv p { text-align: left !important; }
.cv-panneau { display: block; background: #fff; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, .08); margin: 0 0 20px; }
.cv-icone { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; background: #eaf0f4; color: #224155; font-size: 17px; }
.cv-rappel { display: flex; align-items: flex-start; gap: 14px; padding: 18px 20px; }
.cv-rappel p { margin: 0 !important; font-size: 15.5px; line-height: 1.55; }
.cv-rappel strong, .cv-conseils__texte strong { display: block; margin: 8px 0 2px; font-family: var(--global-heading-font-family); font-size: 16.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .3px; color: #333; }
.cv-schema { padding: 16px 20px; }
.cv-schema .cfcl-voie { margin: 0 !important; }
.cv-gares { display: grid; grid-template-columns: minmax(0, 1fr); }
.cv-gare { display: flex; flex-direction: column; padding: 24px 22px; border-top: 1px solid #eeeeee; }
.cv-gare:first-child { border-top: 0; }
.cv .cv-titre { display: flex; align-items: center; gap: 14px; margin: 0 0 14px !important; font-family: var(--global-heading-font-family); font-size: 16.5px !important; line-height: 1.3 !important; font-weight: 600 !important; text-transform: uppercase; letter-spacing: .3px !important; color: #333 !important; }
.cv-gare--confolens .cv-icone { color: var(--cfcl-confolens); }
.cv-gare--roumazieres .cv-icone { color: var(--cfcl-roumazieres); }
.cv-adresse { margin: 0 0 12px !important; font-size: 15.5px; line-height: 1.55; color: #333; }
.cv-liste { list-style: none; margin: 0 0 18px !important; padding: 0 !important; }
.cv-liste li { display: flex; gap: 10px; align-items: baseline; margin: 0 0 6px !important; padding: 0 !important; font-size: 15.5px; line-height: 1.55; }
.cv-liste li::before { display: none !important; }
.cv-liste li i { flex: 0 0 18px; text-align: center; font-size: 14px; color: #224155; }
.cv-liste li.cv-note { color: #6b4500; }
.cv-liste li.cv-note i { color: #c77700; }
.cv a.cv-itineraire { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 18px; box-sizing: border-box;
	border: 1px solid #224155; border-radius: 4px; background: #fff; color: #224155 !important; font-family: var(--global-heading-font-family); font-size: 15.5px; font-weight: 600;
	text-transform: uppercase; letter-spacing: .05em; text-decoration: none !important; }
.cv a.cv-itineraire:hover, .cv a.cv-itineraire:focus-visible { background: #224155; color: #fff !important; }
.cv a.cv-conseils { display: flex; align-items: center; gap: 14px; padding: 18px 20px; color: #4c4c4c !important; text-decoration: none !important; font-size: 15.5px; }
.cv-conseils__texte { flex: 1; }
.cv-conseils__texte strong { margin-top: 0; }
.cv-chevron { color: #224155; font-size: 15px; }
.cv a.cv-conseils:hover .cv-conseils__texte strong { color: #dd1111; }
@media (min-width: 900px) {
	.cv-gares { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.cv-gare { border-top: 0; border-left: 1px solid #eeeeee; }
	.cv-gare:first-child { border-left: 0; }
	.cv-schema { padding: 20px 24px; }
}
.cv-gare > p:has(> a.cv-itineraire) { margin: auto 0 0 !important; } /* WordPress entoure le bouton d’un paragraphe : bouton calé en bas de colonne */
/* En-tête : l'accroche sous le nom du site n'apparaît que sur les grands écrans (elle s'écrasait sur 3 lignes en dessous) */
@media (max-width: 1439px) { .site-branding .site-description { display: none !important; } }
/* Comment venir : adresse copiable d'un clic, itinéraire Google Maps ou Waze */
.cv button.cv-adresse { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; width: 100%; margin: 0 0 12px !important; padding: 10px 12px !important;
	border: 1px dashed #c9d2db !important; border-radius: 4px !important; background: #f7f9fb !important; box-shadow: none !important; text-align: left; cursor: pointer;
	color: #333 !important; font-family: var(--global-body-font-family) !important; font-size: 15.5px !important; font-weight: 400 !important; line-height: 1.55 !important; letter-spacing: 0 !important; text-transform: none !important; min-height: 44px; }
.cv button.cv-adresse:hover, .cv button.cv-adresse:focus-visible { border-color: #224155 !important; background: #fff !important; }
.cv-adresse__action { font-size: 13.5px; font-weight: 600; color: #224155; white-space: nowrap; }
.cv button.cv-adresse.is-copiee { border-style: solid !important; border-color: #2e7d32 !important; }
.cv button.cv-adresse.is-copiee .cv-adresse__action { color: #2e7d32; }
.cv-gare > .cv-itineraires, .cv-gare > p:has(> .cv-itineraires) { margin: auto 0 0 !important; }
.cv-itineraires { display: flex; flex-wrap: wrap; gap: 8px; }
.cv-itineraires a.cv-itineraire { margin-top: 0; flex: 1 1 130px; justify-content: center; }
.cv-gare > p:has(> button.cv-adresse) { margin: 0 !important; } /* paragraphe ajouté par WordPress autour du bouton d'adresse */
.cv-itineraires a.cv-itineraire { white-space: nowrap; padding: 8px 12px; gap: 8px; }
/* Tableau des départs : disponibilité en mots (Places disponibles / Dernières places disponibles / Quelques places restantes) */
.cfcl-depart__places { white-space: normal !important; line-height: 1.3; max-width: 11em; }
.cfcl-depart__places.is-peu { color: #b26a00; }
.cfcl-depart__places.is-tres-peu { color: #dd1111; }
/* Tableau des départs : billet pas encore publié => « Ouverture prochaine » (sans bouton) */
.cfcl-depart__places.is-ouverture { color: #224155; }
/* « Complet » en rouge : tableau des départs et fiches billets */
.cfcl-depart.is-complet .cfcl-depart__places { color: #dd1111 !important; }
.single-product .stock.out-of-stock, .single-product p.stock.out-of-stock, .single-product .woocommerce-variation-availability .out-of-stock { color: #dd1111 !important; font-weight: 600; }
/* Tableau des départs : statuts forcés et règles horaires (menu « Départs ») */
.cfcl-depart__places.is-neutre, .cfcl-depart__places.is-termine { color: #6b7682 !important; }
.cfcl-depart.is-termine .cfcl-depart__heure, .cfcl-depart.is-passe .cfcl-depart__heure { color: #8a96a3; }
/* Comment venir : même fond gris clair que la billetterie (le modèle pleine largeur posait un fond blanc sous les panneaux blancs) */
body:has(.cv) #wrapper { background: transparent !important; }
/* Départ annulé (statut forcé) */
.cfcl-depart__places.is-annule { color: #dd1111 !important; font-weight: 700; }
.cfcl-depart.is-annule .cfcl-depart__heure { color: #8a96a3; text-decoration: line-through; }

/* Bandeau « nouvelle version » : bouton de fermeture (mémorisé dans le navigateur du visiteur) */
.cfcl-bandeau { position: sticky; }
.cfcl-bandeau .cfcl-bandeau__ligne { padding: 0 34px; }
.cfcl-bandeau button.cfcl-bandeau__fermer { position: absolute; top: 50%; right: 8px; transform: translateY(-50%); width: 32px; height: 32px; min-height: 0; padding: 0 !important; margin: 0;
	display: inline-flex; align-items: center; justify-content: center; border: 0 !important; border-radius: 50% !important; background: none !important; box-shadow: none !important;
	color: #4a5560 !important; font-size: 22px !important; line-height: 1; cursor: pointer; }
.cfcl-bandeau button.cfcl-bandeau__fermer:hover, .cfcl-bandeau button.cfcl-bandeau__fermer:focus-visible { background: #e3e7eb !important; color: #224155 !important; }
.cfcl-bandeau:has(.cfcl-avis:not([hidden])) button.cfcl-bandeau__fermer { top: 6px; transform: none; }
html.cfcl-bandeau-ferme .cfcl-bandeau:not(:has(.easy-notification-bar)) { display: none; }
html.cfcl-bandeau-ferme .cfcl-bandeau:has(.easy-notification-bar) { padding: 0; border-bottom: 0; }
html.cfcl-bandeau-ferme .cfcl-bandeau > :not(.easy-notification-bar) { display: none !important; }
@media (max-width: 600px) {
	.cfcl-bandeau .cfcl-bandeau__ligne { padding: 0 26px; }
	.cfcl-bandeau button.cfcl-bandeau__fermer { right: 2px; top: 4px; transform: none; width: 30px; height: 30px; }
}

/* Mobile : bandeau et tableau des départs plus compacts */
.cfcl-bandeau__court { display: none; }
@media (max-width: 599px) {
	.cfcl-bandeau { padding: 5px 8px 6px; }
	.cfcl-bandeau .cfcl-bandeau__ligne { padding: 0; gap: 4px 8px; }
	.cfcl-bandeau p.cfcl-bandeau__texte { padding: 0 30px; font-size: 13.5px; line-height: 1.3; }
	.cfcl-bandeau__long { display: none; }
	.cfcl-bandeau__court { display: inline; }
	.cfcl-bandeau__choix { gap: 4px 6px; }
	.cfcl-bandeau button.cfcl-bandeau__vote { min-height: 28px; padding: 2px 9px !important; font-size: 13px !important; gap: 5px; }
	.cfcl-bandeau button.cfcl-bandeau__commenter { min-height: 28px; padding: 2px 2px !important; }
	.cfcl-bandeau button.cfcl-bandeau__fermer { top: 1px; right: 0; width: 28px; height: 28px; font-size: 20px !important; }

	#planifier-votre-balade > .wp-block-group__inner-container { padding: 18px 10px 20px !important; margin-left: 8px !important; margin-right: 8px !important; }
	.cfcl-depart { grid-template-columns: 56px minmax(0, 1fr) auto; gap: 4px 10px; padding: 10px 10px 10px 8px; }
	.cfcl-depart__heure { font-size: 20px; }
	.cfcl-depart__quoi { gap: 1px; }
	.cfcl-depart__type { font-size: 11.5px !important; }
	.cfcl-depart__libelle { font-size: 16px !important; line-height: 1.25; }
	.cfcl-depart__trajet { font-size: 14px !important; }
	.cfcl-depart__places { font-size: 14px !important; }
	.cfcl-depart__resa { min-height: 38px; padding: 7px 14px; font-size: 14px !important; }
	.cfcl-tableau .cfcl-tableau__date { padding: 8px 12px; }
}

/* Audit 11/11/2026 – n°2 : billetterie mobile, les billets avant les encadrés « Comment réserver » */
@media (max-width: 767px) {
	body.post-type-archive-product main#main, body.tax-product_cat main#main { display: flex; flex-direction: column; }
	body.post-type-archive-product main#main > *, body.tax-product_cat main#main > * { order: 1; min-width: 0; }
	body.post-type-archive-product main#main > .cfcl-ariane, body.tax-product_cat main#main > .cfcl-ariane { order: 0; }
	body.post-type-archive-product main#main > .cfcl-woo-zone:not(.cfcl-woo-zone--basse), body.tax-product_cat main#main > .cfcl-woo-zone:not(.cfcl-woo-zone--basse) { order: 2; margin-top: 24px; }
	body.post-type-archive-product main#main > .cfcl-woo-zone--basse, body.tax-product_cat main#main > .cfcl-woo-zone--basse { order: 3; }
}

/* Audit 11/11/2026 – n°6 : zones tactiles d'au moins 24 px sur mobile (pied de page, fil d'Ariane, liens de l'association) */
@media (max-width: 767px) {
	.cfcl-pied__col a { display: inline-block; padding: 4px 0; }
	.cfcl-ariane a { display: inline-block; padding: 3px 0; }
	#association .wp-block-heading a { display: inline-block; padding: 3px 0; }
	.wptripadvisor_t1_P_3 a { display: inline-block; padding: 2px 0; }
}

/* Audit 11/11/2026 – n°13 : dimensions réservées pour les images des avis TripAdvisor (évite les sauts de page) */
img.wptripadvisor_t1_IMG_4 { width: 40px; height: 40px; object-fit: cover; }
img.wptripadvisor_t1_star_img_file { width: 100px; height: 22px; }
img.wptripadvisor_t1_tripadvisor_logo { width: 22px; height: 22px; }

/* ===========================================================================
 * Bas de page, nouvelle version (11/11/2026) : partenaires sur fond clair, puis bandeau bleu
 * coordonnées / réseaux sociaux / liens. Le texte est dans Apparence > Personnaliser > Pied de page (HTML),
 * les logos dans Apparence > Widgets (Pied de page 1 et 2).
 * ======================================================================== */
/* Partenaires */
#colophon .site-middle-footer-wrap { background: #fff !important; color: #4a5560 !important; border-top: 1px solid #e3e7eb; }
#colophon .site-middle-footer-inner-wrap { padding-top: 32px !important; padding-bottom: 28px !important; row-gap: 20px !important; align-items: start; }
#colophon .footer-widget-area h2.wp-block-heading { margin: 0 0 14px !important; color: #6b7682 !important; font-family: var(--cfcl-titre); font-size: 13px !important; font-weight: 600 !important; letter-spacing: .08em; text-transform: uppercase; }
#colophon .wp-block-gallery.has-nested-images { display: flex !important; flex-wrap: wrap !important; align-items: center !important; gap: 14px 26px !important; margin: 0 !important; }
#colophon .wp-block-gallery.has-nested-images figure.wp-block-image { flex: 0 0 auto !important; width: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
#colophon .wp-block-gallery.has-nested-images figure.wp-block-image a { display: block; width: auto; }
#colophon .wp-block-gallery.has-nested-images figure.wp-block-image img { width: auto !important; height: 46px !important; max-width: 130px !important; object-fit: contain !important; }
#colophon .wp-block-gallery.has-nested-images figure.wp-block-image a:hover img { opacity: .75 !important; }
#colophon .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; padding: 0 !important; margin: 0 !important; }
#colophon .footer-widget1 .wp-block-gallery + .wp-block-gallery { margin-top: 14px !important; }
#colophon .footer-widget2 .wp-block-columns:not(:has(img, p, a)) { display: none !important; }
#colophon .footer-widget2 p { margin: 12px 0 0 !important; color: #6b7682 !important; font-size: 13px !important; line-height: 1.5; text-align: left !important; }
#colophon .footer-widget2 p a { color: #224155 !important; }
#colophon .footer-widget2 { display: flex; flex-direction: column-reverse; }
#colophon .footer-widget2 > * { margin: 0; }

/* Bandeau bleu */
#colophon .site-bottom-footer-wrap { background: #224155 !important; }
#colophon .site-bottom-footer-inner-wrap { padding-top: 36px !important; padding-bottom: 20px !important; }
#colophon .cfcl-pied2 { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 24px; text-align: left; color: rgba(255, 255, 255, .85); }
#colophon .cfcl-pied2 p { margin: 0; }
#colophon .cfcl-pied2__marque, #colophon .cfcl-pied2__social { grid-column: 1 / -1; }
#colophon .cfcl-pied2__nom { color: #fff !important; font-family: var(--cfcl-titre); font-size: 17px !important; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; margin-bottom: 6px !important; }
#colophon .cfcl-pied2__adr { color: rgba(255, 255, 255, .85) !important; line-height: 1.5; }
#colophon a.cfcl-pied2__tel { display: inline-flex; align-items: center; gap: 8px; margin-top: 10px; color: #fff !important; font-size: 18px !important; font-weight: 700; text-decoration: none !important; font-variant-numeric: tabular-nums; }
#colophon a.cfcl-pied2__tel i { font-size: 15px; }
#colophon .cfcl-pied2__titre { color: #fff !important; font-family: var(--cfcl-titre); font-size: 13px !important; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 10px !important; opacity: .7; }
#colophon .cfcl-pied2__rs { display: flex; gap: 10px; }
#colophon .cfcl-pied2__rs a { flex: 1 1 0; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1px solid rgba(255, 255, 255, .45); border-radius: 2px; color: #fff !important; font-weight: 600; text-decoration: none !important; transition: background-color .15s, border-color .15s; }
#colophon .cfcl-pied2__rs a:hover, #colophon .cfcl-pied2__rs a:focus-visible { background: rgba(255, 255, 255, .1); border-color: #fff; }
#colophon .cfcl-pied2__liens ul { list-style: none; margin: 0; padding: 0; }
#colophon .cfcl-pied2__liens li { margin: 0; }
#colophon .cfcl-pied2__liens a { display: inline-block; padding: 5px 0; color: rgba(255, 255, 255, .9) !important; text-decoration: none !important; }
#colophon .cfcl-pied2__liens a:hover { color: #fff !important; text-decoration: underline !important; text-underline-offset: 3px; }
#colophon p.cfcl-pied2__bas { margin: 28px 0 0 !important; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .15); color: rgba(255, 255, 255, .6) !important; font-size: 13px !important; text-align: left; }
@media (min-width: 600px) {
	#colophon .cfcl-pied2__marque { grid-column: 1; }
	#colophon .cfcl-pied2__social { grid-column: 2; grid-row: 1; }
}
@media (min-width: 1024px) {
	#colophon .cfcl-pied2 { grid-template-columns: 1.4fr 1fr 1fr 1.1fr; gap: 32px; }
	#colophon .cfcl-pied2__social { grid-column: 4; grid-row: 1; }
	#colophon .cfcl-pied2__rs { flex-direction: column; }
}
@media (max-width: 767px) {
	#colophon .site-middle-footer-inner-wrap { padding-top: 24px !important; padding-bottom: 20px !important; }
	#colophon .wp-block-gallery.has-nested-images { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 16px 12px !important; justify-items: center; }
	#colophon .wp-block-gallery.has-nested-images figure.wp-block-image img { height: 40px !important; max-width: 100% !important; }
	#colophon .footer-widget2 .wp-block-gallery.has-nested-images { grid-template-columns: repeat(3, 1fr); justify-items: start; }
	#colophon .site-bottom-footer-inner-wrap { padding-top: 28px !important; }
}

/* Comment venir : pictos des gares en couleur pleine (code couleur des gares de départ plus visible) */
.cv-gare .cv-icone { background: #6b7682; color: #fff; }
.cv-gare--confolens .cv-icone { background: var(--cfcl-confolens); color: #fff; }
.cv-gare--roumazieres .cv-icone { background: var(--cfcl-roumazieres); color: #fff; }
#colophon .site-middle-footer-wrap .site-footer-row-container-inner { background: #fff !important; }
#colophon .site-bottom-footer-wrap .site-footer-row-container-inner { background: #224155 !important; }
#colophon .cfcl-pied2, #colophon .cfcl-pied2 *, #colophon p.cfcl-pied2__bas { text-align: left !important; }
#colophon .cfcl-pied2__adr span { display: block; }
#colophon .cfcl-pied2__rs a { justify-content: center !important; }
@media (min-width: 1024px) { #colophon .cfcl-pied2__rs a { justify-content: flex-start !important; } }
#colophon .site-middle-footer-inner-wrap, #colophon .site-middle-footer-inner-wrap .site-footer-section, #colophon .site-middle-footer-inner-wrap .footer-widget-area, #colophon .site-middle-footer-inner-wrap .footer-widget-area > * { background: transparent !important; box-shadow: none !important; border: 0 !important; border-radius: 0 !important; }
#colophon .site-middle-footer-inner-wrap .site-footer-section { padding: 0 !important; }
#colophon .footer-widget-area h2.wp-block-heading::after, #colophon .footer-widget-area h2.wp-block-heading::before { display: none !important; }
#colophon .footer-widget-area h2.wp-block-heading { text-align: left !important; }
#colophon .site-bottom-footer-wrap .footer-html-inner, #colophon .site-bottom-footer-wrap .footer-html { display: block !important; width: 100% !important; max-width: none !important; }
#colophon .site-bottom-footer-wrap .site-footer-section, #colophon .site-bottom-footer-wrap .site-info { width: 100% !important; max-width: none !important; flex: 1 1 100% !important; }

/* Barre d'annonce (Easy Notification Bar) intégrée au bandeau du haut */
.cfcl-bandeau .easy-notification-bar { position: static !important; margin: 7px -16px -7px; padding: 7px 16px; min-height: 0; font-size: 14.5px; line-height: 1.35; }
.cfcl-bandeau .easy-notification-bar-container { padding: 0; }
.cfcl-bandeau .easy-notification-bar a { color: #fff !important; text-decoration: underline; }
html.cfcl-bandeau-ferme .cfcl-bandeau .easy-notification-bar { margin: 0; }
@media (max-width: 599px) {
	.cfcl-bandeau .easy-notification-bar { margin: 6px -8px -6px; padding: 6px 34px 6px 10px; font-size: 13.5px; }
}

/* Bas de page, mobile : logos des partenaires centrés (3 par ligne, ligne incomplète centrée) */
@media (max-width: 767px) {
	#colophon .wp-block-gallery.has-nested-images,
	#colophon .footer-widget2 .wp-block-gallery.has-nested-images { display: flex !important; flex-wrap: wrap !important; justify-content: center !important; align-items: center !important; width: 100% !important; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; gap: 16px 12px !important; }
	#colophon .wp-block-gallery.has-nested-images figure.wp-block-image { flex: 0 0 calc((100% - 24px) / 3) !important; max-width: calc((100% - 24px) / 3) !important; display: flex !important; justify-content: center !important; }
	#colophon .wp-block-gallery.has-nested-images figure.wp-block-image a { display: flex; justify-content: center; width: 100%; }
	#colophon .footer-widget-area h2.wp-block-heading, #colophon .footer-widget2 p { text-align: center !important; }
}

/* Widget « Prochain départ » : pastille grise (aucun départ), verte (départ à venir), verte rayonnante (départ imminent, moins d'1 h) */
.cfcl-departs .cfcl-departs__point { background: #2ecc71 !important; box-shadow: 0 0 0 2px #224155 !important; animation: none !important; opacity: 1 !important; }
.cfcl-departs.is-aucun .cfcl-departs__point { background: #9aa3ab !important; }
.cfcl-departs.is-proche .cfcl-departs__point { background: #2ecc71 !important; animation: cfcl-rayonne 1.6s ease-out infinite !important; }
@keyframes cfcl-rayonne {
	0% { box-shadow: 0 0 0 2px #224155, 0 0 0 2px rgba(46, 204, 113, .75); }
	70% { box-shadow: 0 0 0 2px #224155, 0 0 0 9px rgba(46, 204, 113, 0); }
	100% { box-shadow: 0 0 0 2px #224155, 0 0 0 9px rgba(46, 204, 113, 0); }
}
@media (prefers-reduced-motion: reduce) { .cfcl-departs.is-proche .cfcl-departs__point { animation: none !important; box-shadow: 0 0 0 2px #224155, 0 0 0 4px rgba(46, 204, 113, .5) !important; } }
/* Billetterie « Par date » sans départ programmé : pas de cadre vide */
.cfcl-par-date.is-vide { display: none !important; }

/* Widget « Prochains départs » à deux pictos (vélorail, train), chacun avec sa pastille ; un seul texte (ordinateur) */
.cfcl-dep2 .cfcl-dep2__lien { display: inline-flex; align-items: center; gap: 2px; color: #fff !important; text-decoration: none !important; border-radius: 6px; padding: 2px 4px; }
.cfcl-dep2 .cfcl-dep2__lien:hover, .cfcl-dep2 .cfcl-dep2__lien:focus-visible { background: rgba(255, 255, 255, .1); }
.cfcl-dep2__type { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 36px; }
.cfcl-dep2__icone { display: block; width: 21px; height: 21px; }
.cfcl-dep2__point { position: absolute; top: 6px; right: 4px; width: 8px; height: 8px; border-radius: 50%; background: #2ecc71; box-shadow: 0 0 0 2px #224155; }
.cfcl-dep2__type.is-aucun .cfcl-dep2__point { background: #9aa3ab; }
.cfcl-dep2__type.is-proche .cfcl-dep2__point { animation: cfcl-rayonne 1.6s ease-out infinite; }
@media (prefers-reduced-motion: reduce) { .cfcl-dep2__type.is-proche .cfcl-dep2__point { animation: none; box-shadow: 0 0 0 2px #224155, 0 0 0 4px rgba(46, 204, 113, .5); } }
.cfcl-dep2__texte { margin-left: 6px; font-family: var(--cfcl-titre); font-size: 13.5px; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 1024px) {
	.cfcl-dep2__texte { display: none; }
	.cfcl-dep2.is-entete { margin-right: 2px; }
}

/* ---------------------------------------------------------------------------
 * Page de confirmation : encadré « Ajouter à mon agenda » (inc/confirmation-reservation.php, novembre 2026)
 * Téléphone d'abord : boutons pleine largeur, faciles à toucher ; trois boutons côte à côte dès 600 px.
 * ------------------------------------------------------------------------- */
.cfcl-agenda { clear: both; margin: 4px 0 24px; padding: 16px; background: #fff; border: 1px solid var(--cfcl-filet, #e3e7eb); border-radius: 6px; }
.cfcl-agenda__titre {
	display: flex; align-items: center; gap: 8px; margin: 0 0 12px !important; padding: 0 !important;
	font-family: var(--cfcl-titre); font-size: 15px !important; line-height: 1.3 !important; font-weight: 700 !important;
	letter-spacing: .06em; text-transform: uppercase; color: var(--cfcl-bleu, #224155) !important;
}
.cfcl-agenda__titre svg { flex: none; }
.cfcl-agenda__departs { margin: 0 0 14px !important; padding: 0 !important; list-style: none !important; }
.cfcl-agenda__depart { margin: 0 !important; padding: 0 0 0 12px; border-left: 3px solid var(--cfcl-filet, #e3e7eb); line-height: 1.45; }
.cfcl-agenda__depart + .cfcl-agenda__depart { margin-top: 12px !important; }
.cfcl-agenda__quand { display: block; font-weight: 700; color: var(--cfcl-bleu, #224155); font-size: 16px; }
.cfcl-agenda__quoi { display: block; color: #4c4c4c; font-size: 14px; }
.cfcl-agenda__liens { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 4px; font-size: 14px; }
.cfcl-agenda__liens a { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; color: var(--cfcl-bleu, #224155); font-weight: 600; }
.cfcl-agenda__boutons { display: grid; grid-template-columns: 1fr; gap: 8px; }
.cfcl-agenda__btn {
	display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 16px;
	background: #fff; border: 1px solid #c9d1d8; border-radius: 4px;
	color: var(--cfcl-texte, #333) !important; font-size: 15px; font-weight: 600; text-decoration: none !important;
}
.cfcl-agenda__btn i { width: 18px; text-align: center; font-size: 17px; color: var(--cfcl-bleu, #224155); }
.cfcl-agenda__btn:hover, .cfcl-agenda__btn:focus-visible { border-color: var(--cfcl-bleu, #224155); color: var(--cfcl-bleu, #224155) !important; }
.cfcl-agenda__autre { margin: 12px 0 0 !important; font-size: 13px; line-height: 1.5; color: #666; }
.cfcl-agenda__autre a { color: var(--cfcl-bleu, #224155); }
@media (min-width: 600px) {
	.cfcl-agenda { padding: 18px 20px; }
	.cfcl-agenda__boutons { grid-template-columns: repeat(3, 1fr); }
	.cfcl-agenda--plusieurs .cfcl-agenda__boutons { grid-template-columns: minmax(0, 320px); }
	.cfcl-agenda__btn { justify-content: center; }
}
