/*
Theme Name: Obinomag
Theme URI: https://obinomag.com
Author: COM2WIN
Author URI: https://www.com2win.fr
Description: Thème sur mesure d'Obinomag, excursions en pirogue dans le delta du Sine Saloum au départ de Ndangane. Pages construites avec l'éditeur de blocs.
Version: 1.0.0
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: obinomag
*/

:root {
	--gouttiere: clamp(16px, 4vw, 56px);
	--rayon: 26px;
	--mangrove: #0E2621;
	--mangrove-clair: #15352E;
	--ligne: #2A5247;
	--ecume: #EEF3EE;
	--sauge: #A9BDB5;
	--soleil: #F2C230;
	--whatsapp: #1E8449;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
:focus-visible { outline: 3px solid var(--soleil); outline-offset: 3px; }

.screen-reader-text, .formulaire-piege {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}
.aller-au-contenu { position: absolute; left: -9999px; top: 12px; z-index: 100; background: var(--soleil); color: var(--mangrove); padding: 12px 18px; border-radius: 10px; font-weight: 700; }
.aller-au-contenu:focus { left: 12px; }

/* Liseré aux couleurs du drapeau */
.liseret { display: flex; height: 6px; position: relative; z-index: 30; }
.liseret span { flex: 1; }
.liseret span:nth-child(1) { background: #138A4B; }
.liseret span:nth-child(2) { background: #F4C21B; }
.liseret span:nth-child(3) { background: #D7322B; }

/* Boutons du thème (hors blocs) */
.bouton { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 13px 22px; border-radius: 14px; font-weight: 700; text-decoration: none; }
.bouton--soleil { background: var(--soleil); color: var(--mangrove); }
.bouton--soleil:hover { background: #FFD95C; }

/* ---------- En-tête ---------- */
.entete {
	position: relative; z-index: 20;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	padding: 18px var(--gouttiere);
	background: var(--mangrove);
}
.entete-transparent .entete { background: transparent; margin-bottom: -98px; }
.logo { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ecume); }
.logo-texte { display: flex; flex-direction: column; line-height: 1; }
.logo-nom { font-weight: 700; font-size: 31px; letter-spacing: -0.01em; }
.logo-signature { font-size: 10.5px; font-weight: 500; letter-spacing: 0.26em; text-transform: uppercase; color: var(--sauge); margin-top: 4px; }
.entete-nav { display: flex; align-items: center; gap: 28px; }
.menu-principal { display: flex; flex-wrap: wrap; gap: 6px 26px; margin: 0; padding: 0; list-style: none; font-weight: 500; }
.menu-principal a { color: var(--ecume); text-decoration: none; padding: 8px 0; }
.menu-principal a:hover, .menu-principal .current-menu-item > a { color: var(--soleil); }
.entete-bouton { display: none; background: none; border: 0; color: var(--ecume); width: 48px; height: 48px; align-items: center; justify-content: center; cursor: pointer; }

@media (max-width: 1100px) {   /* 7 entrées de menu : hamburger sous 1100 px */
	.entete-bouton { display: inline-flex; }
	.entete-nav {
		display: none; position: absolute; top: 100%; left: 0; right: 0;
		flex-direction: column; align-items: stretch; gap: 8px;
		padding: 16px var(--gouttiere) 24px; background: var(--mangrove); border-top: 1px solid var(--ligne);
	}
	.menu-ouvert .entete-nav { display: flex; }
	.menu-principal { flex-direction: column; gap: 0; }
	.menu-principal a { display: block; padding: 12px 0; font-size: 1.15rem; border-bottom: 1px solid var(--ligne); }
	.logo-nom { font-size: 26px; }
	.logo .pictogramme { width: 44px; height: 44px; }
}

/* ---------- Bandeau des pages intérieures ---------- */
.bandeau { padding: 72px var(--gouttiere) 56px; max-width: 1280px; margin: 0 auto; }
.bandeau h1 { margin: 0; font-size: var(--wp--preset--font-size--titre-geant); }
.bandeau p { margin: 18px 0 0; max-width: 680px; font-size: 1.25rem; color: var(--sauge); }

/* ---------- Contenu ---------- */
.contenu { padding: 0 var(--gouttiere) 96px; }
.contenu > :not(.alignfull):not(.alignwide) { max-width: 820px; margin-left: auto; margin-right: auto; }
.contenu > .alignwide { max-width: 1280px; margin-left: auto; margin-right: auto; }
.contenu > .alignfull { margin-left: calc(-1 * var(--gouttiere)); margin-right: calc(-1 * var(--gouttiere)); max-width: none; }
.contenu > .alignfull:first-child { margin-top: 0; }
.contenu > .alignfull + .alignfull { margin-top: 0; }
.home .contenu, .entete-transparent .contenu { padding-bottom: 0; }
.contenu a:not(.wp-block-button__link) { color: var(--soleil); }
.contenu .has-blanc-background-color a:not(.wp-block-button__link),
.contenu .has-creme-background-color a:not(.wp-block-button__link) { color: #12233F; }

/* Couverture d'accueil */
.hero { align-items: flex-end !important; padding-bottom: 84px !important; padding-top: 140px !important; }
.hero { padding-left: var(--gouttiere) !important; padding-right: var(--gouttiere) !important; }
.contenu .wp-block-cover.alignfull > .wp-block-cover__inner-container { max-width: 1280px; margin-left: auto; margin-right: auto; width: 100%; }
.hero h1 { max-width: 1000px; }
.hero p:not(.badge) { max-width: 620px; font-size: 1.25rem; color: #DCE6E0; }
.badge { display: inline-block; background: var(--soleil); color: var(--mangrove); font-weight: 700; font-size: 0.875rem; padding: 8px 14px; border-radius: 999px; margin: 0; }

/* Surtitres, prix, chiffres */
.surtitre { font-size: 0.8125rem; letter-spacing: 0.18em; text-transform: uppercase; font-weight: 700; margin: 0; }
.prix { font-weight: 800; font-size: 1.25rem; margin-top: auto !important; }
.chiffre { font-size: clamp(3.5rem, 6vw, 5rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1; margin: 0; color: var(--soleil); }

/* Cartes */
.carte { width: 100%; border-radius: var(--rayon); overflow: hidden; display: flex; flex-direction: column; height: 100%; gap: 0 !important; }
.carte > .wp-block-image { margin: 0; }
.carte > .wp-block-image img { width: 100%; height: 220px; object-fit: cover; display: block; }
.carte-corps { padding: 26px 28px 30px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.carte-corps > * { margin: 0; }
.carte-corps p:not(.surtitre):not(.prix) { line-height: 1.55; }
.carte-vide { height: 220px; display: flex; align-items: center; justify-content: center; margin: 0; font-size: 0.875rem; letter-spacing: 0.1em; text-transform: uppercase; opacity: 0.75; }
.wp-block-columns.cartes { gap: 20px; }
.wp-block-columns.cartes > .wp-block-column { display: flex; }
.contenu .carte h3 a:not(.wp-block-button__link) { color: inherit; text-decoration: none; }
.carte h3 a:hover { text-decoration: underline; }

/* Photos décalées du bloc guide */
.photos-guide { gap: 14px !important; }
.photos-guide img { width: 100%; height: 400px; object-fit: cover; border-radius: var(--rayon); }
.photos-guide > .wp-block-column:last-child { padding-top: 48px; }

/* Boutons de blocs */
.wp-block-button.bouton-whatsapp .wp-block-button__link { background: var(--whatsapp); color: #FFFFFF; }
.wp-block-button.bouton-clair .wp-block-button__link { background: var(--ecume); color: var(--mangrove); }
.wp-block-button__link:hover { filter: brightness(1.08); }
.boutons-pleins .wp-block-button { width: 100%; }
.boutons-pleins .wp-block-button__link { width: 100%; font-size: 1.125rem; }

/* Galerie */
.wp-block-gallery.has-nested-images figure.wp-block-image img { border-radius: 18px; }

/* ---------- Formulaire ---------- */
.formulaire { display: flex; flex-direction: column; gap: 14px; background: var(--mangrove-clair); padding: 32px; border-radius: var(--rayon); }
.formulaire label { display: flex; flex-direction: column; gap: 6px; font-size: 0.875rem; color: var(--sauge); }
.formulaire input, .formulaire select, .formulaire textarea {
	background: var(--mangrove); border: 1px solid var(--ligne); border-radius: 12px; padding: 14px; color: var(--ecume); font: inherit; font-size: 1rem; width: 100%;
}
.formulaire input:focus, .formulaire select:focus, .formulaire textarea:focus { border-color: var(--soleil); outline: none; }
.formulaire-ligne { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
.formulaire button { background: var(--soleil); color: var(--mangrove); border: 0; font: inherit; font-weight: 700; padding: 16px; min-height: 48px; border-radius: 14px; cursor: pointer; }
.formulaire button:hover { background: #FFD95C; }
.formulaire-retour { margin: 0; padding: 14px 16px; border-radius: 12px; font-weight: 500; }
.formulaire-retour--ok { background: #1E5A3F; color: #FFFFFF; }
.formulaire-retour--erreur { background: #7A1F1A; color: #FFFFFF; }

/* ---------- Pied de page ---------- */
.pied { border-top: 1px solid var(--ligne); color: var(--sauge); font-size: 0.9375rem; }
.pied-haut { max-width: 1280px; margin: 0 auto; padding: 56px var(--gouttiere) 40px; display: flex; flex-wrap: wrap; gap: 40px 64px; }
.pied-marque { flex: 2 1 320px; }
.pied-marque p { max-width: 380px; }
.pied-colonne { flex: 1 1 220px; }
.pied h2 { font-size: 0.8125rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ecume); margin: 0 0 12px; }
.pied a { color: var(--ecume); text-decoration: none; }
.pied a:hover { color: var(--soleil); }
.pied-bas { max-width: 1280px; margin: 0 auto; padding: 20px var(--gouttiere) 28px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; border-top: 1px solid var(--ligne); }
.menu-pied { display: flex; flex-wrap: wrap; gap: 20px; list-style: none; margin: 0; padding: 0; }

@media (max-width: 781px) {
	.hero { min-height: min(100svh, 640px) !important; padding-bottom: 56px !important; }
	.photos-guide img { height: 280px; }
	.photos-guide > .wp-block-column:last-child { padding-top: 0; }
	.photos-guide { flex-wrap: nowrap !important; }
}

/* Légendes, frise et sources */
.contenu figure.wp-block-image { margin-bottom: 0; }
.contenu .wp-element-caption { font-size: 0.8125rem; color: var(--sauge); margin-top: 8px; line-height: 1.4; }
.contenu .has-creme-background-color .wp-element-caption { color: #5B6578; }
.contenu .wp-block-image img { border-radius: 18px; }
.contenu .carte .wp-block-image img { border-radius: 0; }
.reperes { list-style: none; padding-left: 0; border-left: 2px solid var(--soleil); }
.reperes li { position: relative; padding: 0 0 18px 24px; }
.reperes li::before { content: ""; position: absolute; left: -7px; top: 9px; width: 12px; height: 12px; border-radius: 50%; background: var(--soleil); }
.sources { font-size: 0.9375rem; color: var(--sauge); border-top: 1px solid var(--ligne); }
.sources h3 { color: var(--ecume); }

/* Page des crédits photos */
.contenu > .credits { max-width: 1280px !important; }
.credits { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 20px; }
.credit { display: flex; gap: 16px; align-items: center; background: var(--mangrove-clair); border-radius: 18px; padding: 12px; }
.credit-vignette { width: 104px; height: 78px; object-fit: cover; border-radius: 12px; flex: none; }
.credit-texte { display: flex; flex-direction: column; gap: 4px; font-size: 0.9375rem; line-height: 1.4; min-width: 0; }
.credit-texte strong a { color: var(--ecume) !important; }
.credit-texte span { color: var(--sauge); }
.credit-pages { font-size: 0.8125rem; }

/* Photos côte à côte dans des colonnes : même hauteur, recadrées sans déformation */
.contenu .wp-block-columns:not(.cartes):not(.photos-guide) .wp-block-image { height: 100%; }
.contenu .wp-block-columns:not(.cartes):not(.photos-guide) .wp-block-image img {
	display: block; width: 100%; height: clamp(240px, 30vw, 420px); object-fit: cover;
}

/* ---------- Page Excursions ---------- */

/* Pastilles (liste de mots-clés) */
.puces { list-style: none; padding: 0 !important; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.puces li { background: rgba(238, 243, 238, 0.12); border: 1px solid rgba(238, 243, 238, 0.25); padding: 6px 14px; border-radius: 999px; font-size: 0.875rem; font-weight: 500; }
.has-creme-background-color .puces li, .has-blanc-background-color .puces li { background: rgba(18, 35, 63, 0.06); border-color: rgba(18, 35, 63, 0.18); }
.hero .puces li { background: rgba(14, 38, 33, 0.55); backdrop-filter: blur(4px); }

/* Sommaire des formules : pastilles cliquables vers chaque section */
.sommaire-formules { list-style: none; padding: 0 !important; margin: 24px 0 0; display: flex; flex-wrap: wrap; gap: 10px; }
.sommaire-formules a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--soleil); color: var(--soleil) !important; font-weight: 600; text-decoration: none; transition: background .2s, color .2s; }
.sommaire-formules a:hover, .sommaire-formules a:focus-visible { background: var(--soleil); color: var(--mangrove) !important; }
.sommaire-formules--petit { margin-top: 12px; margin-bottom: 28px !important; }
.sommaire-formules--petit a { min-height: 40px; padding: 0 14px; font-size: 0.9375rem; }
.itineraires-grande { margin-top: 20px !important; margin-bottom: 0; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
[id] { scroll-margin-top: 24px; }

/* Formules : badge de durée sur la photo */
.carte { position: relative; }
.carte .duree { position: absolute; top: 14px; left: 14px; margin: 0; background: var(--soleil); color: var(--mangrove); font-weight: 700; font-size: 0.8125rem; padding: 6px 12px; border-radius: 999px; z-index: 2; }
.carte .prix { font-size: 1.5rem; }
.prix small { display: block; font-size: 0.95rem; font-weight: 500; color: var(--sauge); margin-top: 4px; }
.carte .wp-block-buttons { margin-top: 6px; }
.carte .wp-block-button__link { padding: 12px 20px; font-size: 0.9375rem; }

/* Atouts avec pictogrammes */
.atouts { gap: 20px !important; }
.atout { background: var(--mangrove-clair); border-radius: var(--rayon); padding: 28px; height: 100%; }
.atout > * { margin: 0 0 8px; }
.atout h3 { font-size: 1.25rem; }
.atout p { color: var(--sauge); line-height: 1.55; margin: 0; }
.atout::before {
	content: ""; display: block; width: 48px; height: 48px; margin-bottom: 16px; border-radius: 14px;
	background: var(--soleil) var(--picto) center / 26px no-repeat;
}
.picto-poisson { --picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2621' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12c3-5 9-6 14-3l5-3v12l-5-3c-5 3-11 2-14-3z'/%3E%3Ccircle cx='8' cy='11' r='1'/%3E%3C/svg%3E"); }
.picto-lutte { --picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2621' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='5' r='2'/%3E%3Cpath d='M4 10l4-1 4 3 4-3 4 1M8 9l-1 6 2 6M16 9l1 6-2 6M9 15h6'/%3E%3C/svg%3E"); }
.picto-charrette { --picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2621' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='8' cy='17' r='4'/%3E%3Cpath d='M8 13V7h12M8 17h13M2 7h6'/%3E%3C/svg%3E"); }
.picto-tente { --picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2621' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20L12 4l9 16H3zM12 4v16M9 20l3-6 3 6'/%3E%3C/svg%3E"); }
.picto-repas { --picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2621' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13h18a9 9 0 0 1-18 0zM12 9V5M8 9V7M16 9V7'/%3E%3C/svg%3E"); }
.picto-boussole { --picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2621' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M15.5 8.5l-2 5-5 2 2-5z'/%3E%3C/svg%3E"); }
.picto-piscine { --picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2621' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 17c2 1.5 3.5 1.5 5 0s3.5-1.5 5 0 3.5 1.5 5 0 3.5-1.5 5 0M8 14V5a2 2 0 0 1 4 0M16 14V5a2 2 0 0 0-4 0M8 8h8'/%3E%3C/svg%3E"); }
.picto-plage { --picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2621' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a9 9 0 0 1 9 9H3a9 9 0 0 1 9-9zM12 12l3 9M2 21h20'/%3E%3C/svg%3E"); }
.picto-wifi { --picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2621' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 9a15 15 0 0 1 20 0M5 12.5a10 10 0 0 1 14 0M8.5 16a5 5 0 0 1 7 0'/%3E%3Ccircle cx='12' cy='19.5' r='1'/%3E%3C/svg%3E"); }
.picto-gardien { --picto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2621' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8-8 9-4.6-1-8-4.5-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E"); }

/* Itinéraire en étapes */
.etapes { list-style: none; padding: 0 !important; margin: 0; counter-reset: etape; }
.etapes li { counter-increment: etape; position: relative; padding: 0 0 26px 64px; min-height: 48px; }
.etapes li::before {
	content: counter(etape); position: absolute; left: 0; top: -4px; width: 44px; height: 44px; border-radius: 50%;
	display: flex; align-items: center; justify-content: center; font-weight: 800; background: var(--soleil); color: var(--mangrove);
}
.etapes li:not(:last-child)::after { content: ""; position: absolute; left: 21px; top: 44px; bottom: 2px; width: 2px; background: rgba(242, 194, 48, 0.4); }
.etapes strong { display: block; font-size: 1.125rem; margin-bottom: 2px; }
.has-creme-background-color .etapes li::after, .has-blanc-background-color .etapes li::after { background: rgba(18, 35, 63, 0.2); }

/* Photo haute à côté d'un programme */
.photo-programme img { height: clamp(320px, 42vw, 620px) !important; border-radius: var(--rayon) !important; }

/* Variantes et bivouacs */
.carte-corps .puces li { font-size: 0.8125rem; padding: 4px 10px; }
.wp-block-details { border-top: 1px solid var(--ligne); padding-top: 12px; margin-top: 4px; }
.wp-block-details summary { cursor: pointer; font-weight: 700; color: var(--soleil); list-style-position: inside; padding: 6px 0; }
.wp-block-details[open] summary { margin-bottom: 10px; }
.wp-block-details ul { padding-left: 18px; margin: 0; }
.wp-block-details li { margin-bottom: 8px; color: var(--ecume); line-height: 1.5; font-size: 0.9375rem; }

/* Carte des lieux */
.carte-bloc { position: relative; }
.carte-lieux { height: clamp(420px, 60vw, 640px); border-radius: var(--rayon); overflow: hidden; background: var(--mangrove-clair); }
.carte-legende { list-style: none; padding: 0; margin: 16px 0 0; display: flex; flex-wrap: wrap; gap: 8px 24px; color: var(--sauge); font-size: 0.9375rem; }
.carte-legende li { display: flex; align-items: center; gap: 8px; }
.point, .repere span { display: inline-block; width: 14px; height: 14px; border-radius: 50%; border: 2px solid #FFFFFF; box-shadow: 0 1px 4px rgba(0,0,0,.5); }
.point--depart, .repere--depart span { background: #D7322B; }
.point--journee, .repere--journee span { background: var(--soleil); }
.point--bivouac, .repere--bivouac span { background: #3FB37F; }
.repere { background: none; border: 0; }
.repere span { width: 100%; height: 100%; display: block; box-sizing: border-box; }
.repere b { position: absolute; left: 28px; top: 50%; transform: translateY(-50%); white-space: nowrap; background: #D7322B; color: #FFFFFF; font: 700 13px/1 Outfit, sans-serif; padding: 6px 10px; border-radius: 999px; }
.leaflet-popup-content { font-family: Outfit, sans-serif; font-size: 14px; color: #12233F; }
.leaflet-container a { color: #12233F; }

@media (max-width: 781px) {
	.etapes li { padding-left: 56px; }
}

/* Carte Google de la page Contact : même largeur que les colonnes au-dessus */
.wp-block-column:has(> .carte-contact) { display: flex; flex-direction: column; }
.carte-contact { margin-top: 20px; flex: 1; display: flex; min-height: 280px; }
.carte-contact iframe { display: block; flex: 1; width: 100%; height: auto; min-height: 280px; border: 0; border-radius: var(--rayon); background: var(--mangrove-clair); }

/* Badge des avis Google */
.avis {
	display: inline-flex; align-items: center; gap: 7px; padding: 4px 12px 4px 4px; border-radius: 999px;
	background: rgba(14, 38, 33, 0.55); border: 1px solid rgba(238, 243, 238, 0.28); backdrop-filter: blur(6px);
	color: var(--ecume) !important; text-decoration: none; font-weight: 600; line-height: 1; min-height: 32px;
}
.avis:hover { border-color: var(--soleil); }
.avis-g { width: 24px; height: 24px; padding: 4px; background: #FFFFFF; border-radius: 50%; flex: none; }
.avis-note { font-size: 0.9375rem; font-weight: 800; }
.avis-nombre { font-size: 0.8125rem; font-weight: 500; color: var(--sauge); }
.etoiles { position: relative; display: inline-block; width: 70px; height: 14px; flex: none; }
.etoiles svg { display: block; width: 70px; height: 14px; }
.etoiles-vides { fill: rgba(238, 243, 238, 0.28); }
.etoiles-pleines { position: absolute; inset: 0 auto 0 0; overflow: hidden; }
.etoiles-pleines svg { fill: #FBBC05; }
.hero .avis { margin-top: 8px; }
.avis--pied { background: var(--mangrove-clair); backdrop-filter: none; margin-top: 4px; }
.avis-groupe { display: inline-flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.hero .avis-groupe { margin-top: 8px; }
.hero .avis-groupe .avis { margin-top: 0; }
.avis--ta .etoiles-pleines svg { fill: #34E0A1; }
.avis-ta { width: 24px; height: 24px; padding: 4px; background: #34E0A1; fill: #000000; border-radius: 50%; flex: none; }

/* ---------- Page Circuits ---------- */

/* Programme jour par jour (dans un bloc Détails) */
.wp-block-details .programme-jours { list-style: none; padding: 0 !important; margin: 8px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 14px; }
.wp-block-details .programme-jours li { margin: 0; background: var(--mangrove-clair); border-radius: 18px; padding: 20px 22px; color: var(--sauge); font-size: 0.9375rem; line-height: 1.55; }
.has-mangrove-clair-background-color .wp-block-details .programme-jours li { background: var(--mangrove); }
.programme-jours em { display: block; font-style: normal; font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; color: var(--soleil); margin-bottom: 4px; }
.programme-jours strong { display: block; color: var(--ecume); font-size: 1.0625rem; margin-bottom: 6px; }
.wp-block-details summary { font-size: 1.125rem; }

/* Tout compris et tableau des tarifs */
.tout-compris { gap: 20px !important; }
.tout-compris > .wp-block-column { background: rgba(14, 38, 33, 0.35); border: 1px solid var(--ligne); border-radius: var(--rayon); padding: 28px; }
.tout-compris h3 { margin-top: 0; font-size: 1.375rem; }
.inclus { list-style: none; padding: 0 !important; margin: 0; }
.inclus li { position: relative; padding: 0 0 10px 32px; line-height: 1.5; }
.inclus li::before {
	content: ""; position: absolute; left: 0; top: 2px; width: 20px; height: 20px; border-radius: 50%;
	background: var(--soleil) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E2621' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.tarifs { margin: 0; }
.tarifs table { width: 100%; border-collapse: collapse; }
.tarifs th, .tarifs td { text-align: left; padding: 14px 4px; border: 0; border-bottom: 1px solid var(--ligne); }
.tarifs th { font-size: 0.8125rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--sauge); font-weight: 700; }
.tarifs td:last-child, .tarifs th:last-child { text-align: right; }
.tarifs td:last-child { font-weight: 800; font-size: 1.125rem; }
/* Tableau à plusieurs formules (sorties pêche) : FCFA en gras, euros dessous */
.tarifs--multi table { table-layout: auto !important; }
.tarifs--multi th:not(:first-child), .tarifs--multi td:not(:first-child) { text-align: right; }
.tarifs--multi td:not(:first-child) { font-weight: 800; font-size: 1rem; white-space: nowrap; }
.tarifs--multi td span { display: block; font-weight: 500; font-size: 0.8125rem; color: var(--sauge); }
.tarifs--multi th { letter-spacing: 0.06em; }
@media (max-width: 600px) {
	.tarifs--multi th, .tarifs--multi td { padding: 12px 2px; }
	.tarifs--multi th { font-size: 0.6875rem; }
	.tarifs--multi td:not(:first-child) { font-size: 0.875rem; }
}
.tout-compris h4 { margin: 22px 0 6px; font-size: 1rem; }
.tout-compris h4 + p { margin-top: 0; line-height: 1.6; }
.tout-compris > .wp-block-column > .tarifs + .notes-tarif { margin-top: 16px; }
.notes-tarif { list-style: none; padding: 0 !important; margin: 0; font-size: 0.875rem; color: var(--sauge); }
.notes-tarif li { padding: 2px 0; }
.has-creme-background-color .tout-compris > .wp-block-column { background: rgba(255, 255, 255, 0.6); border-color: rgba(14, 38, 33, 0.12); }
.has-creme-background-color .tarifs th, .has-creme-background-color .notes-tarif, .has-creme-background-color .tout-compris .has-sauge-color { color: var(--wp--preset--color--encre-douce); }
.has-creme-background-color .tarifs th, .has-creme-background-color .tarifs td { border-bottom-color: rgba(14, 38, 33, 0.12); }
.wp-block-column > p + .puces { margin-top: 18px; }
.wp-block-column > .puces + .prix { margin-top: 18px !important; }

/* Mention importante (passeport…) */
.avertissement { margin-top: 18px !important; padding: 12px 16px 12px 46px; border-radius: 14px; background: rgba(242, 194, 48, 0.12); border: 1px solid rgba(242, 194, 48, 0.45); position: relative; font-size: 0.9375rem; }
.avertissement::before {
	content: "!"; position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; border-radius: 50%;
	background: var(--soleil); color: var(--mangrove); font-weight: 800; font-size: 0.875rem; display: flex; align-items: center; justify-content: center;
}
.tout-compris h3 + .inclus { margin-top: 14px; }
.wp-block-columns.cartes + .tout-compris { margin-top: 40px !important; }

/* Galerie en mosaïque : chaque photo garde son format (page Location) */
.wp-block-gallery.galerie-mosaique { display: block !important; columns: 4 220px; column-gap: 12px; }
.wp-block-gallery.galerie-mosaique > figure.wp-block-image { display: block; width: 100% !important; margin: 0 0 12px !important; break-inside: avoid; }
.wp-block-gallery.galerie-mosaique > figure.wp-block-image img { width: 100%; height: auto !important; object-fit: initial !important; border-radius: var(--rayon); }
@media (max-width: 600px) { .wp-block-gallery.galerie-mosaique { columns: 2; column-gap: 8px; } .wp-block-gallery.galerie-mosaique > figure.wp-block-image { margin-bottom: 8px !important; } }

/* Transferts : photos des véhicules, même hauteur */
.vehicules .wp-block-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; border-radius: var(--rayon); }

/* Pastilles cliquables (en-tête d'Excursions) */
.puces li a { color: inherit; text-decoration: none; }
.puces li:has(a) { transition: background 0.2s, color 0.2s; }
.puces li:has(a):hover { background: var(--soleil); border-color: var(--soleil); color: var(--mangrove); }

/* Encart horizontal (calèche sous les formules) */
.encart-horizontal { border-radius: var(--rayon); padding: clamp(16px, 3vw, 28px); }
.encart-horizontal .wp-block-columns { margin: 0; }
.encart-horizontal .wp-block-image { margin: 0; }
.encart-horizontal .wp-block-image img { border-radius: calc(var(--rayon) - 6px); width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.encart-horizontal .surtitre, .encart-horizontal h3 { margin-bottom: 6px; }
.encart-horizontal .prix { margin: 14px 0 !important; }
.encart-horizontal .photo-programme .wp-block-image, .encart-horizontal .photo-programme img { height: auto !important; min-height: 0 !important; aspect-ratio: 16 / 10 !important; }

/* Pied de page : précision sous le point de rendez-vous */
.pied-note { display: inline-block; margin-top: 6px; opacity: 0.75; font-size: 0.875em; }

/* Mobile : textes plus grands (pas les titres) — demande de Rod, 2026-10-09 */
@media (max-width: 781px) {
	:root {
		--wp--preset--font-size--normal: 1.15rem;
		--wp--preset--font-size--petit: 0.9375rem;
		--wp--preset--font-size--grand: 1.3125rem;
	}
	body { font-size: 1.15rem; }
	.puces li { font-size: 0.9375rem; }
	.carte-corps .puces li { font-size: 0.875rem; }
	.notes-tarif, .carte-legende, .sources, .credit-texte, .formulaire label, .prix small { font-size: 1rem; }
	.wp-block-details li, .wp-block-details .programme-jours li, .avertissement, .pied { font-size: 1.0625rem; }
	.tarifs td { font-size: 1.0625rem; }
	.tarifs--multi td:not(:first-child) { font-size: 0.9375rem; }
	.tarifs--multi td span, .contenu .wp-element-caption, .avis-nombre, .credit-pages { font-size: 0.875rem; }
	.carte .wp-block-button__link, .sommaire-formules--petit a { font-size: 1rem; }
}

/* Photo de carte cliquable : le lien prend toute la largeur (WordPress le met en inline-block) + léger zoom au survol */
.carte > .wp-block-image { overflow: hidden; }
.carte > .wp-block-image a { display: block; }
.carte > .wp-block-image a img { transition: transform 0.4s ease; }
.carte > .wp-block-image a:hover img, .carte > .wp-block-image a:focus-visible img { transform: scale(1.04); }
@media (prefers-reduced-motion: reduce) { .carte > .wp-block-image a img { transition: none; } }

/* Menu à 7 entrées : un peu plus serré entre 1101 et 1280 px */
@media (min-width: 1101px) and (max-width: 1280px) { .menu-principal { gap: 6px 18px; flex-wrap: nowrap; } .entete-nav { gap: 20px; } }

/* Accueil : accroche au-dessus du titre principal (h1 = mots recherchés, 2026-10-09) */
.hero p.accroche { font-size: clamp(1.25rem, 2.1vw, 1.75rem); font-weight: 700; color: var(--ecume); margin: 20px 0 6px; letter-spacing: -0.01em; }
.hero .titre-accueil { font-size: clamp(2.5rem, 5.4vw, 5rem); line-height: 1.02; letter-spacing: -0.03em; margin: 0; max-width: 15ch; }

/* Questions fréquentes (blocs Détails .faq) */
.wp-block-details.faq { border-bottom: 1px solid var(--ligne); padding: 6px 0 14px; margin: 0; }
.wp-block-details.faq summary { font-weight: 700; font-size: 1.125rem; cursor: pointer; padding: 10px 0; }
.wp-block-details.faq p { color: var(--sauge); margin: 4px 0 0; line-height: 1.6; }
.wp-block-details.faq p a { color: var(--soleil); }

/* « fcfa » en minuscules et plus petit (inc/devise.php) */
.devise {
	font-size: 0.78em;
	letter-spacing: 0.02em;
}

/* Boutons des cartes alignés en bas, même sans ligne de prix (10-10) */
.carte-corps > .wp-block-buttons { margin-top: auto !important; padding-top: 6px; }
.carte-corps > .prix + .wp-block-buttons { margin-top: 0 !important; }
