/*
Theme Name: Davguitravel
Theme URI: https://davguitravel.com
Author: Davguitravel
Description: Thème bloc sur mesure de Davguitravel — le tourisme en Guinée autrement. Entièrement éditable dans l'éditeur de blocs.
Version: 1.5.2
Requires at least: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: davguitravel
Tags: block-theme, full-site-editing, travel, blog
*/

/* ===== Jetons — charte de davguitravel.com ===== */
:root {
  --terre: #b24326;        /* couleur de marque : boutons, accents */
  --terre-fonce: #93351c;
  --terre-clair: #e8875f;  /* accent lisible sur photo sombre */
  --nuit: #1b1710;         /* titres, bandes sombres */
  --brun: #5b5245;         /* texte courant */
  --sable: #ede6d8;        /* filets, bordures */
  --creme: #f4eee4;        /* fonds doux */
  --blanc: #ffffff;
  --r: 6px;                /* rayon des boutons du site */
  --r-carte: 12px;
  --titre: "Bricolage Grotesque", system-ui, sans-serif;
  --texte: "Public Sans", system-ui, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--blanc); color: var(--brun); font: 400 16px/1.6 var(--texte); -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { margin: 0; font-family: var(--titre); font-weight: 800; text-transform: uppercase; letter-spacing: -0.01em; line-height: 1.05; color: var(--nuit); hyphens: none; text-wrap: balance; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
figure { margin: 0; }
svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }

.enveloppe { width: min(1200px, 100% - 48px); margin-inline: auto; }
.section { padding: 96px 0; }
.centre { text-align: center; justify-content: center; margin-inline: auto; }
.titre-section { font-size: 44px; margin-bottom: 18px; max-width: 760px; }
.intro { max-width: 640px; margin-bottom: 44px; font-size: 17px; }
.sur-titre-sombre, .sur-titre-clair, .region { font-family: var(--texte); font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--terre); margin-bottom: 14px; }
.sur-titre-clair { color: var(--terre-clair); }
.petit { font-size: 13px; }
.lien-fleche { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 14px; color: var(--terre); }
.lien-fleche a::after { transition: transform .2s; }
.lien-fleche a:hover::after { transform: translateX(4px); }

/* ===== Boutons ===== */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; border-radius: var(--r); font-family: var(--texte); font-weight: 600; font-size: 15px; padding: 14px 24px; border: 1.5px solid transparent; transition: transform .2s, background .2s, border-color .2s; white-space: nowrap; cursor: pointer; }
.btn:hover { transform: translateY(-1px); }
.btn-petit { font-size: 14px; padding: 12px 20px; }
.btn-mini { font-size: 13px; padding: 8px 14px; }
.btn-terre { background: var(--terre); color: var(--blanc); }
.btn-terre:hover { background: var(--terre-fonce); }
.btn-blanc { background: var(--blanc); color: var(--nuit); }
.btn-contour { border-color: var(--nuit); color: var(--nuit); }
.btn-contour-clair { border-color: rgba(255,255,255,.7); color: var(--blanc); }
.btn-contour-clair:hover { background: rgba(255,255,255,.1); }
.btn-fleche { background: var(--terre); color: var(--blanc); padding: 6px 6px 6px 20px; }
.btn-fleche:hover { background: var(--terre-fonce); }
.btn-fleche .rond { width: 36px; height: 36px; border-radius: 4px; background: var(--blanc); color: var(--terre); display: grid; place-items: center; }
.btn-grand { font-size: 16px; padding: 7px 7px 7px 24px; }
.btn-grand .rond { width: 44px; height: 44px; }
.btn-video { padding: 7px 22px 7px 7px; font-size: 16px; }
.lecture { width: 44px; height: 44px; border-radius: 4px; background: rgba(255,255,255,.15); display: grid; place-items: center; }
.lecture svg { fill: currentColor; stroke: none; width: 16px; }

/* ===== Hero (composition de la 2e image) ===== */
.hero { position: relative; min-height: 900px; padding-top: 88px; color: var(--blanc); overflow: hidden; display: flex; flex-direction: column; isolation: isolate; }
.hero h1, .hero h3 { color: var(--blanc); }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 55%; z-index: -2; }
.hero::before { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(27,23,16,.82) 0%, rgba(27,23,16,.5) 42%, rgba(27,23,16,.05) 72%), linear-gradient(180deg, rgba(27,23,16,.6) 0%, rgba(27,23,16,0) 22%, rgba(27,23,16,0) 66%, rgba(27,23,16,.7) 100%); }

.entete { position: fixed; z-index: 50; top: 0; left: 50%; transform: translateX(-50%); display: flex; align-items: center; justify-content: space-between; gap: 20px; height: 88px; color: var(--blanc); }
.entete::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: calc(50% - 50vw); right: calc(50% - 50vw); background: rgba(27,23,16,.86); backdrop-filter: blur(14px); box-shadow: 0 10px 30px rgba(0,0,0,.18); opacity: 0; transition: opacity .35s; }
.colle .entete::before { opacity: 1; }
.logo img { height: 46px; width: auto; }
/* Menu : onglet de verre suspendu au bord haut, côtés évasés (référence TrailNest) */
.menu { position: relative; isolation: isolate; display: flex; align-items: center; gap: 36px; align-self: flex-start; height: 76px; padding: 12px 64px 0; font-size: 15px; font-weight: 500; }
.menu::before, .menu::after { content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none; transition: opacity .35s; }
.menu::before {
  background: rgba(27,23,16,.42); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 76' preserveAspectRatio='none'%3E%3Cpath d='M0 0C10 0 16 6 19 14L33 60C36 70 44 76 56 76V0Z'/%3E%3C/svg%3E") left top / 56px 100% no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 76' preserveAspectRatio='none'%3E%3Cpath d='M56 0C46 0 40 6 37 14L23 60C20 70 12 76 0 76V0Z'/%3E%3C/svg%3E") right top / 56px 100% no-repeat, linear-gradient(#000, #000) center top / calc(100% - 110px) 100% no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 76' preserveAspectRatio='none'%3E%3Cpath d='M0 0C10 0 16 6 19 14L33 60C36 70 44 76 56 76V0Z'/%3E%3C/svg%3E") left top / 56px 100% no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 76' preserveAspectRatio='none'%3E%3Cpath d='M56 0C46 0 40 6 37 14L23 60C20 70 12 76 0 76V0Z'/%3E%3C/svg%3E") right top / 56px 100% no-repeat, linear-gradient(#000, #000) center top / calc(100% - 110px) 100% no-repeat;
}
.menu::after {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 76' preserveAspectRatio='none'%3E%3Cpath d='M0 0C10 0 16 6 19 14L33 60C36 70 44 75.5 56 75.5' fill='none' stroke='rgba(255,255,255,.22)' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") left top / 56px 100% no-repeat, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 76' preserveAspectRatio='none'%3E%3Cpath d='M56 0C46 0 40 6 37 14L23 60C20 70 12 75.5 0 75.5' fill='none' stroke='rgba(255,255,255,.22)' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") right top / 56px 100% no-repeat, linear-gradient(rgba(255,255,255,.22), rgba(255,255,255,.22)) center bottom / calc(100% - 110px) 1px no-repeat;
}
.colle .menu::before, .colle .menu::after { opacity: 0; }
.menu a { opacity: .88; transition: opacity .2s, color .2s; }
.menu a:hover { opacity: 1; }
.menu a.actif { opacity: 1; color: var(--terre-clair); box-shadow: 0 2px 0 var(--terre-clair); padding-bottom: 4px; }
/* Bouton d'en-tête : pilule claire, texte sombre, rond sombre et flèche blanche */
.entete-cta.btn-fleche { height: 50px; padding: 4px 4px 4px 22px; gap: 14px; border-radius: 999px; background: var(--terre-clair); color: var(--nuit); font-size: 15px; font-weight: 600; }
.entete-cta.btn-fleche:hover { background: #ee9a76; }
.entete-cta.btn-fleche .rond { width: 42px; height: 42px; border-radius: 50%; background: var(--nuit); color: var(--blanc); }
.burger { display: none; width: 46px; height: 46px; border-radius: var(--r); border: 1px solid rgba(255,255,255,.3); background: rgba(27,23,16,.45); backdrop-filter: blur(10px); cursor: pointer; flex-direction: column; justify-content: center; align-items: center; gap: 4px; }
.burger span { width: 18px; height: 2px; border-radius: 2px; background: var(--blanc); }
.burger span:nth-child(2) { width: 12px; margin-left: 6px; }

.hero-contenu { margin-top: 70px; }
.sur-titre { font-size: 13px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; margin-bottom: 20px; }
.sur-titre b { margin: 0 6px; }
.hero-titre { font-size: 66px; line-height: 1; max-width: 940px; }
.hero-titre span { display: block; color: var(--terre-clair); }
.hero-texte { font-size: 18px; max-width: 560px; margin: 24px 0 34px; opacity: .92; }
.hero-boutons { display: flex; gap: 14px; flex-wrap: wrap; }

.repere { position: absolute; display: inline-flex; align-items: center; gap: 10px; font-size: 12.5px; font-weight: 600; padding: 6px 12px; border-radius: var(--r); background: rgba(27,23,16,.5); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.25); }
.repere i { position: absolute; right: -28px; width: 14px; height: 14px; border-radius: 50%; background: var(--blanc); box-shadow: 0 0 0 5px rgba(255,255,255,.3); }
.repere i::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--terre); }

.carte-hero { position: absolute; right: max(24px, calc((100% - 1200px) / 2)); bottom: 120px; width: 300px; padding: 12px 12px 18px; border-radius: var(--r-carte); background: rgba(27,23,16,.6); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.18); box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.carte-hero figure { position: relative; }
.carte-hero figure img { width: 100%; height: 180px; object-fit: cover; border-radius: 8px; }
.agrandir { position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; border-radius: 50%; background: rgba(0,0,0,.35); display: grid; place-items: center; }
.agrandir svg { width: 14px; height: 14px; }
.carte-hero h3 { font-size: 20px; margin: 14px 4px 6px; }
.carte-hero p { font-size: 13px; margin: 0 4px; opacity: .85; }
.carte-hero .lieu { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; }
.carte-hero .lieu::before { width: 14px; height: 14px; color: var(--terre-clair); }
/* Carrousel d'articles : toutes les diapositives sont dans la page, le script bascule « actif » */
.carte-hero { padding-bottom: 41px; }
.carte-hero-piste { display: grid; margin: 0; padding: 0; list-style: none; }
.carte-hero-piste > * { grid-area: 1 / 1; min-width: 0; margin: 0; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1), visibility 0s .7s; }
.carte-hero-piste > .actif { opacity: 1; visibility: visible; transform: none; transition: opacity .7s ease .1s, transform .7s cubic-bezier(.2,.8,.2,1) .1s; }
.carte-hero-piste figure { overflow: hidden; border-radius: 8px; }
.carte-hero-piste > .actif figure img { animation: carte-zoom 6s ease-out both; }
.carte-hero h3 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.1em; }
.carte-hero h3 a { color: inherit; text-decoration: none; }
.carte-hero h3 a:hover { color: var(--terre-clair); }
.carte-hero .extrait, .carte-hero-texte p { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 3.2em; line-height: 1.6; }
/* barre de progression : 4 traits, le trait actif se remplit pendant l'affichage */
.carte-hero::after { content: ""; position: absolute; left: 16px; bottom: 18px; width: calc(var(--nb, 4) * 19px - 5px); height: 4px; border-radius: 2px; background: repeating-linear-gradient(90deg, rgba(255,255,255,.3) 0 14px, transparent 14px 19px); }
.carte-hero::before { content: ""; position: absolute; z-index: 1; left: calc(16px + var(--n, 0) * 19px); bottom: 18px; width: 14px; height: 4px; border-radius: 2px; background: var(--terre-clair); transform-origin: left center; transition: left .4s ease; }
.carte-hero.defile::before { animation: carte-progression var(--duree, 5.5s) linear both; }
.carte-hero.en-pause::before { animation-play-state: paused; }
@keyframes carte-progression { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes carte-zoom { from { transform: scale(1.08); } to { transform: scale(1); } }

.chiffres { margin-top: auto; padding-bottom: 46px; }
.chiffres-barre { display: inline-flex; border-radius: var(--r-carte); background: rgba(27,23,16,.55); backdrop-filter: blur(14px); border: 1px solid rgba(255,255,255,.18); }
.chiffres-barre > p { display: flex; align-items: center; gap: 12px; padding: 18px 24px; }
.chiffres-barre > p + div { border-left: 1px solid rgba(255,255,255,.18); }
.chiffres-barre > p::before { width: 24px; height: 24px; color: var(--terre-clair); }
.chiffres-barre p { font-size: 12.5px; opacity: .85; line-height: 1.3; }
.chiffres-barre strong { display: block; font-family: var(--titre); font-size: 24px; font-weight: 800; line-height: 1.1; }

.bandeau-promo { background: var(--terre); color: var(--blanc); }
.bandeau-promo .enveloppe { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 14px 0; font-size: 14.5px; }

/* ===== Destinations ===== */
.grille-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.carte-circuit { border: 1px solid var(--sable); border-radius: var(--r-carte); overflow: hidden; background: var(--blanc); display: flex; flex-direction: column; transition: box-shadow .3s, transform .3s; }
.carte-circuit:hover { box-shadow: 0 18px 40px rgba(27,23,16,.1); transform: translateY(-3px); }
.carte-circuit figure img { width: 100%; height: 220px; object-fit: cover; }
.carte-corps { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.carte-corps .region { margin-bottom: 8px; }
.carte-corps h3 { font-size: 24px; margin-bottom: 8px; }
.etapes { font-size: 14.5px; margin-bottom: 18px; }
.carte-corps .lien-fleche { margin-top: auto; }

.carte-plus { position: relative; border-radius: var(--r-carte); padding: 28px 26px; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; background: var(--creme); }
.carte-plus h3 { font-size: 26px; margin-top: 8px; }
.carte-plus p { font-size: 14px; margin-bottom: 12px; }
.carte-plus > .carte-plus-photo { margin-top: auto; max-width: none; width: calc(100% + 52px); margin-inline: -26px; margin-bottom: -28px; height: 190px; object-fit: cover; }
.pastille-icone { width: 44px; height: 44px; border-radius: var(--r); background: var(--terre); color: var(--blanc); display: grid; place-items: center; }

.vedette { position: relative; margin: 20px 0; min-height: 420px; border-radius: var(--r-carte); overflow: hidden; background: var(--nuit); color: var(--blanc); display: flex; align-items: center; }
.vedette h3 { color: var(--blanc); font-size: 52px; margin-bottom: 12px; }
.vedette-photo { position: absolute; right: 0; top: 0; height: 100%; width: 68%; object-fit: cover; }
.vedette::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, var(--nuit) 34%, rgba(27,23,16,.85) 46%, rgba(27,23,16,0) 72%); }
.vedette-texte { position: relative; z-index: 2; padding: 48px; max-width: 520px; }
.region-claire { color: var(--terre-clair); }
.vedette .etapes { color: rgba(255,255,255,.78); font-size: 16px; }
.vedette-liste { display: grid; gap: 10px; margin-bottom: 26px; font-size: 14px; }
.vedette-liste li { display: flex; gap: 10px; align-items: center; }
.vedette-liste li::before { color: var(--terre-clair); }

.carte-image { position: relative; border-radius: var(--r-carte); overflow: hidden; min-height: 300px; color: var(--blanc); }
.carte-image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.carte-image:hover img { transform: scale(1.05); }
.carte-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(27,23,16,.85) 0%, rgba(27,23,16,.1) 60%); }
.carte-image-texte { position: relative; z-index: 1; padding: 22px; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 4px; height: 100%; min-height: 300px; }
.carte-image-texte .petit:first-child { font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: 11.5px; color: var(--terre-clair); }
.carte-image-texte .petit { color: rgba(255,255,255,.85); }
.carte-image-texte h3 { color: var(--blanc); font-size: 28px; }
.carte-image-texte .btn { margin-top: 12px; }

/* ===== Bandes sombres ===== */
.bande-nuit { background: var(--nuit); color: rgba(255,255,255,.75); }
.bande-nuit h2, .bande-nuit h3 { color: var(--blanc); }
.boutons { display: flex; gap: 12px; flex-wrap: wrap; }
.grille-etapes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.grille-etapes .etape { position: relative; padding: 30px 26px; border-radius: var(--r-carte); background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); transition: background .3s, border-color .3s; }
.grille-etapes .etape:hover { background: rgba(178,67,38,.12); border-color: rgba(232,135,95,.4); }
.grille-etapes .num { position: absolute; top: 22px; right: 24px; font-family: var(--titre); font-weight: 800; font-size: 40px; color: rgba(255,255,255,.08); }
.grille-etapes .etape::before { width: 30px; height: 30px; color: var(--terre-clair); stroke-width: 1.6; margin-bottom: 20px; }
.grille-etapes h3 { font-size: 20px; margin-bottom: 10px; }
.grille-etapes p { font-size: 14px; }

/* ===== Partenariat ===== */
.explorer-grille { display: grid; grid-template-columns: 1.1fr 1fr; gap: 80px; align-items: center; }
.explorer-visuel { position: relative; padding-bottom: 40px; }
.explorer-visuel > .explorer-photo { width: 100%; height: 460px; object-fit: cover; border-radius: var(--r-carte); box-shadow: 0 30px 60px rgba(27,23,16,.18); }
.explorer-carte { position: absolute; left: -32px; bottom: 0; width: 340px; padding: 24px; border-radius: var(--r-carte); background: var(--nuit); color: rgba(255,255,255,.75); box-shadow: 0 24px 50px rgba(27,23,16,.35); }
.explorer-carte h3 { color: var(--blanc); font-size: 22px; margin-bottom: 8px; }
.explorer-carte p { font-size: 14px; margin-bottom: 14px; }
.explorer-carte ul { display: grid; gap: 8px; font-size: 13.5px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.14); }
.explorer-carte li { display: flex; gap: 10px; align-items: center; word-break: break-all; }
.explorer-carte li::before { width: 16px; height: 16px; color: var(--terre-clair); }
.explorer-texte > p:not(.sur-titre-sombre) { margin-bottom: 28px; font-size: 17px; }
.contact-ligne { display: flex; gap: 12px; flex-wrap: wrap; }

/* ===== Blog ===== */
.collections { padding-top: 0; }
.titre-ligne { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 36px; }
.titre-ligne .titre-section { margin-bottom: 0; }
.grille-blog { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.carte-destination figure { position: relative; margin-bottom: 18px; border-radius: var(--r-carte); overflow: hidden; }
.carte-destination img { width: 100%; height: 250px; object-fit: cover; transition: transform .6s; }
.carte-destination:hover img { transform: scale(1.05); }
.etiquette { position: absolute; left: 14px; top: 14px; padding: 5px 10px; border-radius: 4px; background: var(--terre); color: var(--blanc); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.carte-destination h3 { font-size: 22px; margin-bottom: 8px; }
.carte-destination .desc { font-size: 14.5px; margin-bottom: 14px; }

.banniere { position: relative; margin-top: 56px; border-radius: var(--r-carte); overflow: hidden; color: var(--blanc); display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 36px 44px; background: var(--terre); isolation: isolate; }
.banniere > .banniere-photo { position: absolute; right: 0; top: 0; width: 60%; height: 100%; object-fit: cover; z-index: -2; }
.banniere::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, var(--terre) 40%, rgba(178,67,38,.75) 65%, rgba(178,67,38,.35) 100%); }
.banniere h3 { color: var(--blanc); font-size: 28px; max-width: 560px; }
.banniere p { font-size: 15px; opacity: .9; margin-top: 10px; max-width: 520px; }
.banniere-action { display: flex; flex-direction: column; align-items: flex-end; gap: 14px; }
.avatars { display: flex; align-items: center; }
.avatars .avatar, .avatars .avatars-total { width: 38px; height: 38px; border-radius: 50%; border: 2px solid var(--blanc); margin-left: -10px; object-fit: cover; }
.avatars .avatars-total { display: grid; place-items: center; background: var(--nuit); color: var(--blanc); font-size: 11px; font-weight: 700; }

/* ===== Témoignages ===== */
.temoignages .titre-section { margin-bottom: 48px; }
.avis-zone { display: flex; align-items: center; gap: 40px; max-width: 1000px; margin: 0 auto; }
.avis-nav { flex: none; width: 48px; height: 48px; border-radius: var(--r); border: 1.5px solid rgba(255,255,255,.3); background: transparent; color: var(--blanc); display: grid; place-items: center; cursor: pointer; transition: background .2s, border-color .2s; }
.avis-nav:hover { background: var(--terre); border-color: var(--terre); }
.avis-piste { flex: 1; display: grid; }
.avis { grid-area: 1 / 1; display: grid; grid-template-columns: 320px 1fr; gap: 44px; align-items: center; opacity: 0; visibility: hidden; transition: opacity .45s; }
.avis.actif { opacity: 1; visibility: visible; }
.avis > .avis-photo { width: 100%; height: 260px; object-fit: cover; border-radius: var(--r-carte); }
.etoiles { color: var(--terre-clair); letter-spacing: .2em; margin-bottom: 14px; }
.citation { font-family: var(--titre); font-weight: 600; color: var(--blanc); font-size: 24px; line-height: 1.35; margin-bottom: 24px; }
.auteur { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.auteur .auteur-photo { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.auteur strong { display: block; color: var(--blanc); font-size: 15px; }

/* ===== FAQ ===== */
.faq .titre-section { margin-bottom: 44px; }
.faq-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 24px; max-width: 1000px; margin: 0 auto; align-items: start; }
.question { border: 1px solid var(--sable); border-radius: var(--r-carte); padding: 0 22px; background: var(--blanc); transition: border-color .2s, background .2s; }
.question[open] { border-color: var(--terre); background: #fff7f0; }
.question summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 14px; padding: 20px 0; font-weight: 600; font-size: 15.5px; color: var(--nuit); }
.question summary::-webkit-details-marker { display: none; }
.question summary::before { content: "+"; flex: none; width: 28px; height: 28px; border-radius: var(--r); background: var(--nuit); color: var(--blanc); display: grid; place-items: center; font-size: 17px; line-height: 1; }
.question[open] summary { color: var(--terre); }
.question[open] summary::before { content: "−"; background: var(--terre); }
.question p { padding: 0 0 20px 42px; font-size: 14.5px; }

/* ===== Appel + pied ===== */
.pied { position: relative; color: rgba(255,255,255,.75); background: var(--nuit); overflow: hidden; isolation: isolate; }
.pied-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; z-index: -2; }
.pied::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(27,23,16,.55) 0%, rgba(27,23,16,.88) 42%, var(--nuit) 66%); }
.appel { text-align: center; padding: 130px 0 96px; }
.appel h2 { color: var(--blanc); font-size: 68px; line-height: .98; }
.appel h2 span { color: var(--terre-clair); }
.appel p { max-width: 560px; margin: 22px auto 32px; font-size: 17px; }
.pied-colonnes { display: grid; grid-template-columns: 1.8fr 1fr 1fr 1.3fr; gap: 40px; padding: 56px 0 44px; border-top: 1px solid rgba(255,255,255,.14); }
.pied-colonnes h4 { color: var(--blanc); font-size: 14px; letter-spacing: .12em; margin-bottom: 16px; }
.pied-col p a { display: block; font-size: 14.5px; margin-bottom: 10px; transition: color .2s; }
.pied-col p a:hover { color: var(--terre-clair); }
.pied-colonnes p { font-size: 14.5px; margin-bottom: 10px; word-break: break-word; }
.pied-marque p { margin: 16px 0 20px; max-width: 360px; }
.reseaux { display: flex; gap: 10px; }
.reseaux-ancien { width: 38px; height: 38px; border-radius: var(--r); background: rgba(255,255,255,.08); display: grid; place-items: center; margin: 0; }
.reseaux-ancien:hover { background: var(--terre); color: var(--blanc); }
.reseaux svg { width: 17px; height: 17px; }
.pied-bas { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 24px 0 32px; border-top: 1px solid rgba(255,255,255,.14); font-size: 13px; }
.haut { width: 40px; height: 40px; border-radius: var(--r); background: var(--terre); color: var(--blanc); display: grid; place-items: center; flex: none; }

/* ===== Pages internes ===== */
.page-hero { position: relative; min-height: 600px; padding-top: 88px; color: var(--blanc); overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; isolation: isolate; }
.page-hero-court { min-height: 460px; }
.page-hero::before { background: linear-gradient(90deg, rgba(27,23,16,.85) 0%, rgba(27,23,16,.55) 50%, rgba(27,23,16,.2) 100%), linear-gradient(180deg, rgba(27,23,16,.6) 0%, rgba(27,23,16,0) 30%); }
.page-hero-contenu { padding: 80px 0 72px; }
.page-hero h1 { color: var(--blanc); }
.page-titre { font-size: 64px; line-height: 1; max-width: 900px; }
.page-titre span { color: var(--terre-clair); }
.page-hero .hero-texte { margin-bottom: 0; }
.fil { display: flex; gap: 10px; align-items: center; font-size: 13px; margin-bottom: 26px; opacity: .8; }
.fil a:hover { color: var(--terre-clair); }
.fil span { opacity: .5; }

.coches { display: grid; gap: 8px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--sable); font-size: 14px; color: var(--nuit); }
.coches li { display: flex; gap: 10px; align-items: baseline; }
.coches li::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 2px; background: var(--terre); transform: translateY(-1px); }

.grille-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.carte-service { padding: 30px 28px; border: 1px solid var(--sable); border-radius: var(--r-carte); background: var(--blanc); transition: border-color .3s, box-shadow .3s, transform .3s; }
.carte-service:hover { border-color: var(--terre); box-shadow: 0 18px 40px rgba(27,23,16,.08); transform: translateY(-3px); }
.carte-service h3 { font-size: 22px; margin: 22px 0 10px; }
.carte-service > p { font-size: 15px; }
.carte-service:nth-child(2) { background: var(--creme); border-color: var(--creme); }
.carte-service:nth-child(4) { background: var(--nuit); border-color: var(--nuit); color: rgba(255,255,255,.75); }
.carte-service:nth-child(4) h3, .carte-service:nth-child(4) .coches { color: var(--blanc); }
.carte-service:nth-child(4) .coches { border-color: rgba(255,255,255,.14); }

.tableau-defile { overflow-x: auto; border-radius: var(--r-carte); border: 1px solid rgba(255,255,255,.12); }
.comparatif { width: 100%; min-width: 680px; border-collapse: collapse; font-size: 15px; }
.comparatif th, .comparatif td { padding: 18px 22px; text-align: left; border-bottom: 1px solid rgba(255,255,255,.1); }
.comparatif thead th { font-family: var(--titre); font-weight: 800; text-transform: uppercase; font-size: 14px; color: var(--blanc); background: rgba(255,255,255,.04); }
.comparatif tbody tr:last-child td { border-bottom: 0; }
.comparatif td:first-child { color: var(--blanc); font-weight: 600; }
.comparatif .nous { background: rgba(178,67,38,.18); color: var(--blanc); font-weight: 700; }
.comparatif thead .nous { background: var(--terre); }

.banniere-appel { margin-top: 72px; }
.banniere-boutons { flex-direction: row; flex-wrap: wrap; }

.histoire { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.histoire-visuel { position: relative; padding: 0 60px 60px 0; }
.histoire-grande { width: 100%; height: 540px; object-fit: cover; border-radius: var(--r-carte); }
.histoire-petite { position: absolute; right: 0; bottom: 0; width: 46%; height: 240px; object-fit: cover; border-radius: var(--r-carte); border: 6px solid var(--blanc); box-shadow: 0 24px 50px rgba(27,23,16,.2); }
.histoire-badge { position: absolute; left: 24px; top: 24px; padding: 16px 20px; border-radius: var(--r-carte); background: var(--terre); color: var(--blanc); font-size: 12.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.histoire-badge strong { display: block; font-family: var(--titre); font-size: 36px; line-height: 1; letter-spacing: 0; }
.histoire-texte > p:not(.sur-titre-sombre) { margin-bottom: 16px; font-size: 16.5px; }
.mise-en-avant { padding: 18px 22px; border-left: 3px solid var(--terre); background: var(--creme); border-radius: 0 var(--r) var(--r) 0; color: var(--nuit); font-weight: 500; }
.bande-chiffres { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 88px; border-top: 1px solid var(--sable); border-bottom: 1px solid var(--sable); }
.bande-chiffres > p { padding: 30px 24px; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.bande-chiffres > p + li { border-left: 1px solid var(--sable); }
.bande-chiffres strong { display: block; font-family: var(--titre); font-size: 52px; font-weight: 800; letter-spacing: -.01em; line-height: 1.05; color: var(--terre); }

.grille-public { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.grille-public .carte-image, .grille-public .carte-image-texte { min-height: 380px; }
.grille-public .carte-image-texte h3 { font-size: 24px; }

.article-une { display: grid; grid-template-columns: 1.25fr 1fr; border-radius: var(--r-carte); overflow: hidden; background: var(--nuit); color: rgba(255,255,255,.78); margin-bottom: 56px; }
.article-une img { width: 100%; height: 100%; min-height: 380px; object-fit: cover; }
.article-une-texte { padding: 48px 44px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 18px; }
.article-une h2 { color: var(--blanc); font-size: 32px; line-height: 1.1; }
.etiquette-fixe { position: static; }
.filtres { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 36px; }
.filtre { font: 600 14px var(--texte); padding: 10px 18px; border-radius: var(--r); border: 1.5px solid var(--sable); background: var(--blanc); color: var(--nuit); cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.filtre:hover { border-color: var(--terre); }
.filtre.actif { background: var(--terre); border-color: var(--terre); color: var(--blanc); }
.grille-articles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px 24px; }
.grille-articles .carte-destination.masque { display: none; }
.grille-articles h3 { font-size: 20px; line-height: 1.12; }

.contact-grille { display: grid; grid-template-columns: 420px 1fr; gap: 64px; align-items: start; }
.carte-coordonnees { padding: 36px 32px 32px; border-radius: var(--r-carte); background: var(--nuit); color: rgba(255,255,255,.78); }
.carte-coordonnees h2 { color: var(--blanc); font-size: 28px; margin-bottom: 26px; }
.carte-coordonnees ul { display: grid; gap: 20px; }
.carte-coordonnees li { display: flex; gap: 16px; align-items: center; }
.carte-coordonnees p { font-size: 15px; color: var(--blanc); word-break: break-word; }
.carte-coordonnees small { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--terre-clair); margin-bottom: 2px; }
.coordonnees-photo { margin-top: 30px; border-radius: var(--r); overflow: hidden; }
.coordonnees-photo img { width: 100%; height: 180px; object-fit: cover; }
.formulaire .titre-section { margin-bottom: 30px; }
.champs { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 26px; }
.champs .large { grid-column: 1 / -1; }
.champs label span { display: block; font-size: 13.5px; font-weight: 600; color: var(--nuit); margin-bottom: 8px; }
.champs input, .champs textarea { width: 100%; font: 400 15px var(--texte); color: var(--nuit); padding: 14px 16px; border: 1.5px solid var(--sable); border-radius: var(--r); background: var(--blanc); outline: none; transition: border-color .2s, box-shadow .2s; resize: vertical; }
.champs input:focus, .champs textarea:focus { border-color: var(--terre); box-shadow: 0 0 0 4px rgba(178,67,38,.12); }

.barre-boutique { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 32px; padding-bottom: 20px; border-bottom: 1px solid var(--sable); font-size: 14.5px; }
.tri { display: flex; align-items: center; gap: 12px; font-size: 13.5px; font-weight: 600; color: var(--nuit); }
.tri select { font: 500 14px var(--texte); color: var(--nuit); padding: 10px 14px; border: 1.5px solid var(--sable); border-radius: var(--r); background: var(--blanc); }
.grille-produits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.carte-produit { border: 1px solid var(--sable); border-radius: var(--r-carte); overflow: hidden; transition: box-shadow .3s, transform .3s; }
.carte-produit:hover { box-shadow: 0 18px 40px rgba(27,23,16,.1); transform: translateY(-3px); }
.carte-produit figure { background: var(--creme); }
.carte-produit img { width: 100%; height: 300px; object-fit: cover; }
.carte-produit-texte { padding: 22px; display: grid; gap: 8px; justify-items: start; }
.carte-produit h3 { font-size: 22px; }
.prix-produit { font-family: var(--titre); font-weight: 800; font-size: 20px; color: var(--terre); margin-bottom: 8px; }

/* ===== Menu mobile ===== */
.tiroir { position: fixed; inset: 0; z-index: 100; visibility: hidden; pointer-events: none; transition: visibility 0s .5s; }
.tiroir::before { position: absolute; inset: 0; background: rgba(27,23,16,.55); backdrop-filter: blur(4px); opacity: 0; transition: opacity .4s; }
.tiroir-panneau { position: absolute; top: 0; right: 0; bottom: 0; width: min(420px, 100%); background: var(--nuit); color: var(--blanc); padding: 22px 24px 28px; display: flex; flex-direction: column; overflow-y: auto; transform: translateX(100%); transition: transform .5s cubic-bezier(.2,.8,.2,1); }
.menu-ouvert .tiroir { visibility: visible; pointer-events: auto; transition: none; }
.menu-ouvert .tiroir::before { opacity: 1; }
.menu-ouvert .tiroir-panneau { transform: none; }
.menu-ouvert { overflow: hidden; }
.tiroir-haut { display: flex; align-items: center; justify-content: space-between; margin-bottom: 28px; }
.tiroir-haut .logo img { height: 40px; }
.tiroir-fermer { width: 44px; height: 44px; border-radius: var(--r); border: 1px solid rgba(255,255,255,.25); background: transparent; color: var(--blanc); display: grid; place-items: center; cursor: pointer; }
.tiroir-liens li { border-bottom: 1px solid rgba(255,255,255,.1); opacity: 0; transform: translateX(24px); transition: opacity .4s, transform .5s; }
.menu-ouvert .tiroir-liens li { opacity: 1; transform: none; }
.menu-ouvert .tiroir-liens li:nth-child(2) { transition-delay: .04s; }
.menu-ouvert .tiroir-liens li:nth-child(3) { transition-delay: .08s; }
.menu-ouvert .tiroir-liens li:nth-child(4) { transition-delay: .12s; }
.menu-ouvert .tiroir-liens li:nth-child(5) { transition-delay: .16s; }
.menu-ouvert .tiroir-liens li:nth-child(6) { transition-delay: .2s; }
.tiroir-liens a { display: flex; align-items: baseline; gap: 16px; padding: 14px 0; font-family: var(--titre); font-size: 28px; font-weight: 800; text-transform: uppercase; }
.tiroir-liens a::before { font-family: var(--texte); font-size: 12px; font-weight: 700; color: var(--terre-clair); letter-spacing: .08em; }
.tiroir-liens a.actif { color: var(--terre-clair); }
.tiroir-carte { position: relative; margin: 26px 0 20px; border-radius: var(--r-carte); overflow: hidden; }
.tiroir-carte img { width: 100%; height: 140px; object-fit: cover; }
.tiroir-carte figcaption { position: absolute; inset: auto 0 0; padding: 30px 16px 14px; background: linear-gradient(0deg, rgba(27,23,16,.9), transparent); display: grid; gap: 2px; font-size: 14px; }
.tiroir-carte .petit { color: var(--terre-clair); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; font-size: 11px; }
.tiroir-cta { justify-content: space-between; }
.tiroir-contact { margin-top: auto; padding-top: 24px; font-size: 13px; color: rgba(255,255,255,.6); }

/* ===== Responsive ===== */
@media (max-width: 1100px) {
  .menu { display: none; }
  .burger { display: flex; }
  .entete-cta { margin-left: auto; }
  .titre-section { font-size: 38px; }
  .grille-3 { grid-template-columns: 1fr 1fr; }
  .grille-3 > :last-child { grid-column: 1 / -1; }
  .carte-plus > .carte-plus-photo { display: none; }
  .grille-etapes { grid-template-columns: 1fr 1fr; }
  .grille-blog { grid-template-columns: 1fr 1fr; }
  .grille-blog > :last-child { display: none; }
  .vedette-photo { width: 78%; }
  .explorer-grille { grid-template-columns: 1fr; gap: 56px; }
  .explorer-carte { left: 16px; }
  .pied-colonnes { grid-template-columns: 1fr 1fr; }
  .page-titre { font-size: 52px; }
  .grille-services, .grille-articles, .grille-produits { grid-template-columns: 1fr 1fr; }
  .grille-public { grid-template-columns: 1fr 1fr; }
  .histoire { grid-template-columns: 1fr; gap: 56px; }
  .histoire-visuel { max-width: 640px; }
  .article-une { grid-template-columns: 1fr; }
  .article-une img { min-height: 0; height: 320px; }
  .contact-grille { grid-template-columns: 1fr; }
  .bande-chiffres strong { font-size: 40px; }
}
@media (max-width: 760px) {
  body { font-size: 15px; }
  .section { padding: 68px 0; }
  .entete { height: 72px; }
  .entete-cta { display: none; }
  .logo img { height: 38px; }
  .bandeau-promo .enveloppe { flex-direction: column; align-items: flex-start; gap: 12px; }
  .titre-section { font-size: 30px; }
  .intro { font-size: 15.5px; margin-bottom: 32px; }
  .grille-3, .grille-etapes, .grille-blog { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin-inline: -24px; padding: 0 24px 10px; scroll-padding-inline: 24px; scrollbar-width: none; }
  .grille-3::-webkit-scrollbar, .grille-etapes::-webkit-scrollbar, .grille-blog::-webkit-scrollbar { display: none; }
  .grille-3 > *, .grille-etapes > .etape, .grille-blog > * { flex: 0 0 82%; scroll-snap-align: start; }
  .grille-blog > :last-child { display: block; }
  .vedette { margin: 14px 0; }
  .carte-destination img { height: 210px; }
  .titre-ligne { flex-direction: column; align-items: flex-start; }
  .vedette { flex-direction: column; align-items: stretch; min-height: 0; }
  .vedette-photo { position: relative; width: 100%; height: 220px; }
  .vedette::before { display: none; }
  .vedette h3 { font-size: 36px; }
  .vedette-texte { padding: 28px 24px 32px; }
  .explorer-visuel > .explorer-photo { height: 320px; }
  .explorer-carte { position: relative; left: 0; width: auto; margin: -70px 16px 0; }
  .banniere { flex-direction: column; align-items: flex-start; padding: 30px 24px; }
  .banniere > .banniere-photo { width: 100%; }
  .banniere::before { background: linear-gradient(180deg, rgba(178,67,38,.85), var(--terre) 70%); }
  .banniere h3 { font-size: 24px; }
  .banniere-action { align-items: flex-start; }
  .avis-zone { flex-wrap: wrap; justify-content: center; gap: 28px 12px; }
  .avis-piste { flex: 0 0 100%; order: -1; }
  .avis { grid-template-columns: 1fr; gap: 22px; }
  .avis > .avis-photo { height: 220px; }
  .citation { font-size: 19px; }
  .faq-grille { grid-template-columns: 1fr; }
  .question p { padding-left: 0; }
  .appel { padding: 96px 0 72px; }
  .appel h2 { font-size: 40px; }
  .appel .boutons .btn { width: 100%; }
  .pied-colonnes { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
  .pied-marque, .pied-colonnes > :last-child { grid-column: 1 / -1; }
  .pied-bas { flex-direction: column; align-items: flex-start; }
  .page-hero { min-height: 0; padding-top: 72px; }
  .page-hero-contenu { padding: 72px 0 52px; }
  .page-titre { font-size: clamp(34px, 10vw, 46px); }
  .fil { margin-bottom: 18px; }
  .grille-services, .grille-articles, .grille-produits { grid-template-columns: 1fr; }
  .grille-public { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; margin-inline: -24px; padding: 0 24px 10px; scrollbar-width: none; }
  .grille-public::-webkit-scrollbar { display: none; }
  .grille-public > * { flex: 0 0 78%; scroll-snap-align: start; }
  .grille-public .carte-image, .grille-public .carte-image-texte { min-height: 340px; }
  .banniere-appel { margin-top: 52px; }
  .banniere-boutons .btn { width: 100%; }
  .histoire-visuel { padding: 0 28px 40px 0; }
  .histoire-grande { height: 400px; }
  .histoire-petite { height: 160px; }
  .histoire-badge strong { font-size: 28px; }
  .bande-chiffres { grid-template-columns: 1fr 1fr; margin-top: 56px; }
  .bande-chiffres > p { padding: 22px 14px; font-size: 11.5px; }
  .bande-chiffres > p:nth-child(3) { border-left: 0; }
  .bande-chiffres > p:nth-child(n+3) { border-top: 1px solid var(--sable); }
  .bande-chiffres strong { font-size: 34px; }
  .article-une img { height: 220px; }
  .article-une-texte { padding: 28px 24px 32px; }
  .article-une h2 { font-size: 24px; }
  .filtres { flex-wrap: nowrap; overflow-x: auto; margin-inline: -24px; padding: 0 24px 4px; scrollbar-width: none; }
  .filtre { flex: none; }
  .carte-coordonnees { padding: 28px 22px; }
  .champs { grid-template-columns: 1fr; }
  .formulaire .btn { width: 100%; justify-content: space-between; }
  .barre-boutique { flex-direction: column; align-items: flex-start; }
}

/* =========================================================================
   Héros responsive — la composition validée ne bouge pas : titre et boutons
   à gauche, repères sur la photo, carte en bas à droite au-dessus des
   chiffres, barre de chiffres en bas à gauche. Seules les tailles s'adaptent.
   Au-dessus de 1280 px : rendu identique au pixel à la maquette validée.
   ========================================================================= */
@media (max-width: 1280px) {
  .hero-titre { font-size: clamp(34px, 5.16vw, 66px); }
  .carte-hero { width: clamp(210px, 23.4vw, 300px); }
  .chiffres-barre > p { padding-inline: clamp(14px, 1.7vw, 24px); }
  .carte-hero figure img { height: clamp(110px, 14vw, 180px); }
  /* le repère central ne doit jamais toucher les boutons */
  .repere-2 { left: max(47%, calc(max(24px, (100% - 1200px) / 2) + 595px)) !important; }
}
@media (max-width: 1100px) {
  /* la carte reste en bas à droite, mais dans le flux : elle ne peut plus recouvrir le texte */
  .hero { min-height: 940px; }
  .hero-texte { max-width: min(560px, 100%); }
  .carte-hero { position: relative; right: auto; bottom: auto; align-self: flex-end; margin: auto max(24px, calc((100% - 1200px) / 2)) 0 0; }
  .chiffres { margin-top: 20px; padding-bottom: 40px; }
  .chiffres-barre > p { padding: 16px 18px; }
  .repere { font-size: 12px; }
  .repere-1 { left: 52% !important; top: 15% !important; }
  .repere-2 { left: 24px !important; top: auto !important; bottom: calc(var(--bas-repere, 230px) + 70px); }
  .repere-3 { left: 24px !important; top: auto !important; bottom: var(--bas-repere, 230px); }
}
@media (max-width: 760px) {
  .hero { min-height: 0; padding-top: 72px; --bas-repere: 200px; }
  .hero::before { background: linear-gradient(180deg, rgba(27,23,16,.65) 0%, rgba(27,23,16,.4) 45%, rgba(27,23,16,.75) 100%); }
  .hero-contenu { margin-top: 48px; }
  .sur-titre { letter-spacing: .16em; font-size: 11px; }
  .hero-titre { font-size: clamp(34px, 10vw, 50px); }
  .hero-texte { font-size: 16px; }
  .carte-hero { width: min(260px, 64vw); margin-top: 20px; padding: 10px 10px 36px; }
  .carte-hero::after, .carte-hero::before { bottom: 15px; }
  .carte-hero figure img { height: 120px; }
  .carte-hero h3 { font-size: 17px; margin-top: 12px; }
  .carte-hero p { font-size: 12.5px; }
  /* les repères restent sur la photo, entre le texte et la carte, en quinconce */
  .repere { position: relative; align-self: flex-start; top: auto !important; bottom: auto !important; font-size: 11px; padding: 5px 10px; margin-top: 16px; }
  .repere-1 { left: 24px !important; margin-top: 40px; }
  .repere-2 { left: 38% !important; }
  .repere-3 { left: 14% !important; }
  .chiffres-barre { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .chiffres-barre > p { padding: 14px 12px; }
  .chiffres-barre > p:nth-child(3) { border-left: 0; }
  .chiffres-barre > p:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.18); }
  .chiffres-barre p { font-size: 12px; }
}
@media (max-width: 480px) {
  .hero-boutons .btn { width: 100%; justify-content: space-between; }
  .hero-boutons .btn-video { justify-content: flex-start; }
}

/* ===== Icônes (masques CSS) ===== */
.i-lieu{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2021s7-6.2%207-12a7%207%200%201%200-14%200c0%205.8%207%2012%207%2012z%27%2F%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%279%27%20r%3D%272.5%27%2F%3E%3C%2Fsvg%3E")}
.i-video{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%275%27%20width%3D%2718%27%20height%3D%2714%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27m10%209%205%203-5%203z%27%2F%3E%3C%2Fsvg%3E")}
.i-carte{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%206l6-3%206%203%206-3v15l-6%203-6-3-6%203z%27%2F%3E%3Cpath%20d%3D%27M9%203v15M15%206v15%27%2F%3E%3C%2Fsvg%3E")}
.i-groupe{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%279%27%20cy%3D%278%27%20r%3D%273.5%27%2F%3E%3Cpath%20d%3D%27M2.5%2020a6.5%206.5%200%200%201%2013%200M16%204.5a3.5%203.5%200%200%201%200%207M18%2014a6%206%200%200%201%203.5%206%27%2F%3E%3C%2Fsvg%3E")}
.i-recherche{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2711%27%20cy%3D%2711%27%20r%3D%277%27%2F%3E%3Cpath%20d%3D%27m21%2021-4.5-4.5%27%2F%3E%3C%2Fsvg%3E")}
.i-camera{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%272%27%20y%3D%276%27%20width%3D%2714%27%20height%3D%2712%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27m16%2010%206-3v10l-6-3%27%2F%3E%3C%2Fsvg%3E")}
.i-doc{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%204h11l5%205v11H4z%27%2F%3E%3Cpath%20d%3D%27M15%204v5h5M8%2013h8M8%2017h5%27%2F%3E%3C%2Fsvg%3E")}
.i-calendrier{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%275%27%20width%3D%2718%27%20height%3D%2716%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27M3%2010h18M8%203v4M16%203v4%27%2F%3E%3C%2Fsvg%3E")}
.i-telephone{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%203h4l2%205-2.5%201.5a11%2011%200%200%200%206%206L16%2013l5%202v4a2%202%200%200%201-2%202A16%2016%200%200%201%203%205a2%202%200%200%201%202-2%27%2F%3E%3C%2Fsvg%3E")}
.i-mail{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%275%27%20width%3D%2718%27%20height%3D%2714%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27m3%207%209%206%209-6%27%2F%3E%3C%2Fsvg%3E")}
.i-horloge{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%279%27%2F%3E%3Cpath%20d%3D%27M12%207v5l3%202%27%2F%3E%3C%2Fsvg%3E")}
.i-oeil{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%273%27%2F%3E%3Cpath%20d%3D%27M2%2012s4-7%2010-7%2010%207%2010%207-4%207-10%207S2%2012%202%2012z%27%2F%3E%3C%2Fsvg%3E")}
.i-colonnes{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2021h18M5%2021V10M9%2021V10M15%2021V10M19%2021V10M2%2010l10-7%2010%207z%27%2F%3E%3C%2Fsvg%3E")}
.i-batiment{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2021h18M5%2021V8l7-5%207%205v13M9%2021v-6h6v6%27%2F%3E%3C%2Fsvg%3E")}
.i-bulle{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M21%2012a8%208%200%200%201-11.6%207.1L4%2020l1-4.6A8%208%200%201%201%2021%2012z%27%2F%3E%3C%2Fsvg%3E")}
.i-fleche{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h14M13%206l6%206-6%206%27%2F%3E%3C%2Fsvg%3E")}
.i-fleche-gauche{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M19%2012H5M11%206l-6%206%206%206%27%2F%3E%3C%2Fsvg%3E")}
.i-fleche-haut{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2019V5M6%2011l6-6%206%206%27%2F%3E%3C%2Fsvg%3E")}
.i-croix{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M6%206l12%2012M18%206%206%2018%27%2F%3E%3C%2Fsvg%3E")}
.i-agrandir{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M15%203h6v6M9%2021H3v-6M21%203l-7%207M3%2021l7-7%27%2F%3E%3C%2Fsvg%3E")}
.i-voiture{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2017H3.5v-5l2-5h13l2%205v5H19%27%2F%3E%3Cpath%20d%3D%27M3.5%2012h17%27%2F%3E%3Ccircle%20cx%3D%277.5%27%20cy%3D%2717%27%20r%3D%272%27%2F%3E%3Ccircle%20cx%3D%2716.5%27%20cy%3D%2717%27%20r%3D%272%27%2F%3E%3Cpath%20d%3D%27M9.5%2017h5%27%2F%3E%3C%2Fsvg%3E")}
.i-maison{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2011%2012%204l9%207%27%2F%3E%3Cpath%20d%3D%27M5%209.5V20h14V9.5%27%2F%3E%3Cpath%20d%3D%27M10%2020v-5.5h4V20%27%2F%3E%3C%2Fsvg%3E")}
.i-terrain{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2021h18%27%2F%3E%3Cpath%20d%3D%27m5%2021%203-8h8l3%208%27%2F%3E%3Cpath%20d%3D%27M12%2013V3l5%202.5L12%208%27%2F%3E%3C%2Fsvg%3E")}
.i-avion{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M10.5%204a1.5%201.5%200%200%201%203%200v5l7.5%204.5v2l-7.5-2.5v4.5l2.2%201.6V21L12%2020l-3.7%201v-1.9l2.2-1.6V13L3%2015.5v-2L10.5%209z%27%2F%3E%3C%2Fsvg%3E")}
.i-boussole{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%279%27%2F%3E%3Cpath%20d%3D%27m15.5%208.5-2%205-5%202%202-5z%27%2F%3E%3C%2Fsvg%3E")}
.i-coeur{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2020s-7.5-4.6-7.5-10.2A4.3%204.3%200%200%201%2012%207a4.3%204.3%200%200%201%207.5%202.8C19.5%2015.4%2012%2020%2012%2020z%27%2F%3E%3C%2Fsvg%3E")}
.i-sac{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%208h14l-1.2%2013H6.2z%27%2F%3E%3Cpath%20d%3D%27M9%208V6.5a3%203%200%200%201%206%200V8%27%2F%3E%3C%2Fsvg%3E")}
.i-bouclier{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203%204.5%206v5.5c0%204.7%203.2%208%207.5%209.5%204.3-1.5%207.5-4.8%207.5-9.5V6z%27%2F%3E%3Cpath%20d%3D%27m9%2012%202%202%204-4%27%2F%3E%3C%2Fsvg%3E")}
.i-whatsapp{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M20.5%2012a8.5%208.5%200%200%201-12.6%207.4L3.5%2020.5l1.1-4.2A8.5%208.5%200%201%201%2020.5%2012z%27%2F%3E%3Cpath%20d%3D%27M9%208.5c0%203.5%203%206.5%206.5%206.5l1-1.6-2-1-1%20.9c-1-.4-2.4-1.8-2.8-2.8l.9-1-1-2z%27%2F%3E%3C%2Fsvg%3E")}
:is([class^="i-"],[class*=" i-"])::before{content:"";display:inline-block;flex:none;width:var(--ico-t,18px);height:var(--ico-t,18px);background-color:var(--ico-c,currentColor);-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
:root{--ico-fleche:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h14M13%206l6%206-6%206%27%2F%3E%3C%2Fsvg%3E");--ico-fleche-gauche:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M19%2012H5M11%206l-6%206%206%206%27%2F%3E%3C%2Fsvg%3E");--ico-fleche-haut:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2019V5M6%2011l6-6%206%206%27%2F%3E%3C%2Fsvg%3E");--ico-croix:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M6%206l12%2012M18%206%206%2018%27%2F%3E%3C%2Fsvg%3E");--ico-agrandir:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M15%203h6v6M9%2021H3v-6M21%203l-7%207M3%2021l7-7%27%2F%3E%3C%2Fsvg%3E");--ico-lecture:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M8%205v14l11-7z%27%20fill%3D%27black%27%20stroke%3D%27none%27%2F%3E%3C%2Fsvg%3E");--ico-fleche-terre:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23b24326%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h14M13%206l6%206-6%206%27%2F%3E%3C%2Fsvg%3E");--ico-fleche-blanc:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23ffffff%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h14M13%206l6%206-6%206%27%2F%3E%3C%2Fsvg%3E");--ico-whatsapp:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M20.5%2012a8.5%208.5%200%200%201-12.6%207.4L3.5%2020.5l1.1-4.2A8.5%208.5%200%201%201%2020.5%2012z%27%2F%3E%3Cpath%20d%3D%27M9%208.5c0%203.5%203%206.5%206.5%206.5l1-1.6-2-1-1%20.9c-1-.4-2.4-1.8-2.8-2.8l.9-1-1-2z%27%2F%3E%3C%2Fsvg%3E");--ico-mail:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%273%27%20y%3D%275%27%20width%3D%2718%27%20height%3D%2714%27%20rx%3D%272%27%2F%3E%3Cpath%20d%3D%27m3%207%209%206%209-6%27%2F%3E%3C%2Fsvg%3E");--ico-telephone:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%203h4l2%205-2.5%201.5a11%2011%200%200%200%206%206L16%2013l5%202v4a2%202%200%200%201-2%202A16%2016%200%200%201%203%205a2%202%200%200%201%202-2%27%2F%3E%3C%2Fsvg%3E");--ico-lecture-blanc:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M8%205v14l11-7z%27%20fill%3D%27white%27%20stroke%3D%27none%27%2F%3E%3C%2Fsvg%3E")}

/* =========================================================================
   Adaptations WordPress — le DOM des blocs natifs diffère de la maquette :
   images dans des <figure>, boutons dans des <div>, icônes en CSS, couches
   décoratives en pseudo-éléments. Rappel : le CSS des blocs est imprimé
   APRÈS cette feuille, d'où des sélecteurs volontairement plus spécifiques.
   ========================================================================= */

/* ---- Neutralisations à spécificité nulle (blockGap coupé dans theme.json) ---- */
:where(.wp-block-group) > :where(*), :where(.wp-block-buttons) { margin-block: 0; }
figure.wp-block-image, figure.wp-block-table { margin: 0; }
.wp-block-image img { height: auto; }
:where(.wp-site-blocks) > * { margin-block: 0; }
main.wp-block-group { margin: 0; }
.wp-block-post-content > *, .entry-content > * { margin-block: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }

/* ---- Images de cadrage : remplir leur figure ---- */
.wp-block-image.hero-photo img, .wp-block-image.pied-photo img, .wp-block-image.vedette-photo img,
.wp-block-image.banniere-photo img, .wp-block-image.carte-image-photo img, .wp-block-image.explorer-photo img,
.wp-block-image.histoire-grande img, .wp-block-image.histoire-petite img, .wp-block-image.avis-photo img,
.wp-block-image.auteur-photo img, .wp-block-image.avatar img, .wp-block-image.carte-plus-photo img,
.wp-block-image.carte-circuit-photo img, .wp-block-image.coordonnees-photo img,
.wp-block-image.produit-photo img, .wp-block-image.tiroir-carte img {
  display: block; width: 100%; height: 100%; object-fit: cover; max-width: none;
}
.wp-block-image.carte-image-photo { position: absolute; inset: 0; margin: 0; }
.wp-block-image.carte-image-photo img { transition: transform .6s; }
.carte-image:hover .wp-block-image.carte-image-photo img { transform: scale(1.05); }
.wp-block-image.carte-circuit-photo { height: 220px; }
.wp-block-image.carte-plus-photo { margin-top: auto; width: calc(100% + 52px); max-width: none; margin-inline: -26px; margin-bottom: -28px; height: 190px; }
.wp-block-image.explorer-photo { height: 460px; border-radius: var(--r-carte); overflow: hidden; box-shadow: 0 30px 60px rgba(27,23,16,.18); }
.wp-block-image.histoire-grande { height: 540px; border-radius: var(--r-carte); overflow: hidden; }
.wp-block-image.histoire-petite { overflow: hidden; }
.wp-block-image.avis-photo { height: 260px; border-radius: var(--r-carte); overflow: hidden; }
.wp-block-image.auteur-photo { flex: none; width: 44px; height: 44px; border-radius: 50%; overflow: hidden; }
.wp-block-image.coordonnees-photo { margin-top: 30px; height: 180px; border-radius: var(--r); overflow: hidden; }
.wp-block-image.produit-photo { height: 300px; background: var(--creme); }
.wp-block-image.tiroir-carte { position: relative; margin: 26px 0 20px; height: 140px; border-radius: var(--r-carte); overflow: hidden; }
.wp-block-image.tiroir-carte figcaption { position: absolute; inset: auto 0 0; margin: 0; padding: 30px 16px 14px; background: linear-gradient(0deg, rgba(27,23,16,.9), transparent); color: var(--blanc); font-size: 14px; text-align: left; line-height: 1.4; }
.wp-block-image.tiroir-carte figcaption strong { display: block; color: var(--terre-clair); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }

/* ---- Couches décoratives : pseudo-éléments ---- */
.hero::before, .page-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; }
.hero::before { background: linear-gradient(90deg, rgba(27,23,16,.82) 0%, rgba(27,23,16,.5) 42%, rgba(27,23,16,.05) 72%), linear-gradient(180deg, rgba(27,23,16,.6) 0%, rgba(27,23,16,0) 22%, rgba(27,23,16,0) 66%, rgba(27,23,16,.7) 100%); }
.page-hero::before { background: linear-gradient(90deg, rgba(27,23,16,.85) 0%, rgba(27,23,16,.55) 50%, rgba(27,23,16,.2) 100%), linear-gradient(180deg, rgba(27,23,16,.6) 0%, rgba(27,23,16,0) 30%); }
.hero-titre em, .page-titre em, .appel h2 em { font-style: normal; color: var(--terre-clair); }
.hero-titre em { display: block; }

/* Repères du héros */
.repere { margin: 0; }
.repere::after { content: ""; position: absolute; right: -28px; top: 50%; width: 14px; height: 14px; margin-top: -7px; border-radius: 50%; background: radial-gradient(circle, var(--terre) 0 3px, var(--blanc) 3.5px); box-shadow: 0 0 0 5px rgba(255,255,255,.3); }
.repere-1 { left: 64%; top: 15%; }
.repere-2 { left: 47%; top: 56%; }
.repere-3 { left: 58%; top: 76%; }

/* Carte du héros : carrousel des derniers articles (boucle de requête) */
.carte-hero-requete, .carte-hero-requete .wp-block-post-template { margin: 0; padding: 0; }
.wp-block-post-featured-image.carte-hero-photo { position: relative; height: 180px; margin: 0; border-radius: 8px; overflow: hidden; }
.wp-block-post-featured-image.carte-hero-photo a, .wp-block-post-featured-image.carte-hero-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.carte-hero-piste > .actif .wp-block-post-featured-image img { animation: carte-zoom 6s ease-out both; }
.carte-hero-photo::after { content: ""; position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; border-radius: 50%; background: rgba(0,0,0,.35); pointer-events: none; }
.carte-hero-photo::before { content: ""; position: absolute; z-index: 1; top: 18px; right: 18px; width: 14px; height: 14px; background: var(--blanc); -webkit-mask: var(--ico-agrandir) center/contain no-repeat; mask: var(--ico-agrandir) center/contain no-repeat; pointer-events: none; }
.carte-hero .wp-block-post-title { font-family: var(--titre); font-weight: 800; text-transform: uppercase; line-height: 1.05; color: var(--blanc); }
.carte-hero .wp-block-post-title a { display: inline; color: inherit; text-decoration: none; }
.carte-hero .lieu { --ico-t: 14px; --ico-c: var(--terre-clair); font-size: 13px; margin: 0 4px 10px; opacity: .85; }
.carte-hero .lieu a { color: inherit; text-decoration: none; pointer-events: none; }
.carte-hero .lieu .wp-block-post-terms__separator, .carte-hero .lieu a + a, .carte-hero .lieu .wp-block-post-terms__separator + a { display: none; }
.carte-hero-texte { margin: 0; }
.carte-hero-texte .wp-block-post-excerpt__excerpt { margin: 0 4px; }
.carte-hero-texte .wp-block-post-excerpt__more-text { display: none; }

/* Barre de chiffres : icône + chiffre + libellé dans un seul paragraphe */
.chiffres-barre > p { display: grid; grid-template-columns: auto 1fr; column-gap: 12px; row-gap: 0; align-items: center; margin: 0; --ico-t: 24px; --ico-c: var(--terre-clair); }
.chiffres-barre > p::before { grid-row: 1 / 3; }

/* Pastilles d'icône des cartes (carré terre + pictogramme blanc) */
.pastille { position: relative; }
.pastille::before { width: 44px; height: 44px; border-radius: var(--r); background: var(--terre); -webkit-mask: none; mask: none; display: block; margin-bottom: 8px; }
.pastille::after { content: ""; position: absolute; top: calc(var(--pastille-y, 28px) + 12px); left: calc(var(--pastille-x, 26px) + 12px); width: 20px; height: 20px; background: var(--blanc); -webkit-mask: var(--ico) center/contain no-repeat; mask: var(--ico) center/contain no-repeat; }
.carte-plus.pastille { --pastille-y: 28px; --pastille-x: 26px; }
.carte-plus.pastille::before { margin-bottom: 0; }
.carte-service.pastille { --pastille-y: 30px; --pastille-x: 28px; }
.carte-service.pastille::before { margin-bottom: 0; }

/* Étapes (méthode, engagements) */
.grille-etapes .etape { position: relative; padding: 30px 26px; border-radius: var(--r-carte); background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); transition: background .3s, border-color .3s; --ico-t: 30px; --ico-c: var(--terre-clair); }
.grille-etapes .etape:hover { background: rgba(178,67,38,.12); border-color: rgba(232,135,95,.4); }
.grille-etapes .etape::before { display: block; margin-bottom: 27px; }

/* Listes à icône */
.vedette-liste, .explorer-carte ul { margin: 0; padding: 0; list-style: none; }
.vedette-liste { margin-bottom: 26px; }
.vedette-liste li, .explorer-carte li { display: flex; gap: 10px; align-items: center; }
.vedette-liste li { --ico-c: var(--terre-clair); }
.explorer-carte li { --ico-t: 16px; --ico-c: var(--terre-clair); }
.explorer-carte ul { display: grid; gap: 8px; font-size: 13.5px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.14); }
.explorer-carte a { color: inherit; }
.coches { list-style: none; padding-left: 0; margin-bottom: 0; }

/* Liens fléchés */
.lien-fleche a { display: inline-flex; align-items: center; gap: 8px; color: var(--terre); text-decoration: none; font-weight: 700; }
.lien-fleche a::after { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ico-fleche) center/contain no-repeat; mask: var(--ico-fleche) center/contain no-repeat; transition: transform .2s; }
.lien-fleche a:hover::after { transform: translateX(4px); }
.carte-corps .lien-fleche { margin-top: auto; }

/* ---- Boutons natifs ---- */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.wp-block-buttons > .wp-block-button { margin: 0; }
.wp-block-button .wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 12px; border-radius: var(--r); font-family: var(--texte); font-weight: 600; font-size: 15px; line-height: 1.6; padding: 14px 24px; border: 1.5px solid transparent; background: var(--terre); color: var(--blanc); text-decoration: none; transition: transform .2s, background .2s, border-color .2s; white-space: nowrap; }
.wp-block-button .wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.b-petit .wp-block-button__link { font-size: 14px; padding: 12px 20px; }
.wp-block-button.b-mini .wp-block-button__link { font-size: 13px; padding: 8px 14px; }
.wp-block-button.b-terre .wp-block-button__link { background: var(--terre); color: var(--blanc); }
.wp-block-button.b-terre .wp-block-button__link:hover, .wp-block-button.b-fleche .wp-block-button__link:hover { background: var(--terre-fonce); }
.wp-block-button.b-blanc .wp-block-button__link { background: var(--blanc); color: var(--nuit); }
.wp-block-button.b-contour .wp-block-button__link { background: transparent; border-color: var(--nuit); color: var(--nuit); }
.wp-block-button.b-contour-clair .wp-block-button__link { background: transparent; border-color: rgba(255,255,255,.7); color: var(--blanc); }
.wp-block-button.b-contour-clair .wp-block-button__link:hover { background: rgba(255,255,255,.1); }
.wp-block-button.b-fleche .wp-block-button__link { padding: 6px 6px 6px 20px; }
.wp-block-button.b-fleche .wp-block-button__link::after { content: ""; flex: none; width: 36px; height: 36px; border-radius: 4px; background: var(--blanc) var(--ico-fleche-terre) center / 18px no-repeat; }
.wp-block-button.b-grand .wp-block-button__link { font-size: 16px; padding: 7px 7px 7px 24px; }
.wp-block-button.b-grand .wp-block-button__link::after { width: 44px; height: 44px; }
.wp-block-button.b-video .wp-block-button__link { background: transparent; border-color: rgba(255,255,255,.7); color: var(--blanc); padding: 7px 22px 7px 7px; font-size: 16px; }
.wp-block-button.b-video .wp-block-button__link::before { content: ""; flex: none; width: 44px; height: 44px; border-radius: 4px; background: rgba(255,255,255,.15) var(--ico-lecture-blanc) center / 16px no-repeat; }
.wp-block-button.b-video .wp-block-button__link:hover { background: rgba(255,255,255,.1); }
.boutons.centre { justify-content: center; }

/* ---- En-tête ---- */
.wp-block-template-part { margin: 0; }
.admin-bar .entete { top: 32px; }
@media (max-width: 782px) { .admin-bar .entete { top: 46px; } }
.wp-block-site-logo.logo img { height: 46px; width: auto; }
.wp-block-site-logo.logo a { display: block; }
.wp-block-navigation.menu { display: flex; }
.wp-block-navigation.menu .wp-block-navigation__container { gap: 36px; }
.wp-block-navigation.menu .wp-block-navigation-item__content { color: inherit; opacity: .88; transition: opacity .2s; padding: 0; }
.wp-block-navigation.menu .wp-block-navigation-item__content:hover { opacity: 1; }
.wp-block-navigation.menu .wp-block-navigation-item__content.actif { opacity: 1; color: var(--terre-clair); box-shadow: 0 2px 0 var(--terre-clair); padding-bottom: 4px; }
.entete-cta { flex: none; }
/* Bouton d'en-tête : pilule claire, texte sombre, rond sombre et flèche blanche (référence TrailNest) */
.wp-block-buttons.entete-cta .wp-block-button.b-fleche .wp-block-button__link { height: 50px; padding: 4px 4px 4px 22px; gap: 14px; border-radius: 999px; background: var(--terre-clair); color: var(--nuit); font-size: 15px; font-weight: 600; }
.wp-block-buttons.entete-cta .wp-block-button.b-fleche .wp-block-button__link:hover { background: #ee9a76; }
.wp-block-buttons.entete-cta .wp-block-button.b-fleche .wp-block-button__link::after { width: 42px; height: 42px; border-radius: 50%; background: var(--nuit) var(--ico-fleche-blanc) center / 18px no-repeat; }
.burger { display: none; position: relative; width: 46px; height: 46px; margin: 0; border-radius: var(--r); border: 1px solid rgba(255,255,255,.3); background: rgba(27,23,16,.45); backdrop-filter: blur(10px); cursor: pointer; font-size: 0; color: transparent; }
.burger::before { content: ""; position: absolute; left: 13px; top: 17px; width: 18px; height: 2px; border-radius: 2px; background: var(--blanc); box-shadow: 6px 5px 0 -0px var(--blanc), 0 10px 0 var(--blanc); }

/* Tiroir mobile */
.tiroir::before { content: ""; position: absolute; inset: 0; background: rgba(27,23,16,.55); backdrop-filter: blur(4px); opacity: 0; transition: opacity .4s; }
.menu-ouvert .tiroir::before { opacity: 1; }
.tiroir-fermer { position: relative; width: 44px; height: 44px; margin: 0; border-radius: var(--r); border: 1px solid rgba(255,255,255,.25); cursor: pointer; font-size: 0; color: transparent; }
.tiroir-fermer::before { content: ""; position: absolute; inset: 12px; background: var(--blanc); -webkit-mask: var(--ico-croix) center/contain no-repeat; mask: var(--ico-croix) center/contain no-repeat; }
.tiroir-haut .wp-block-site-logo.logo img { height: 40px; }
.wp-block-navigation.tiroir-liens { display: block; }
.wp-block-navigation.tiroir-liens .wp-block-navigation__container { display: block; counter-reset: lien; }
.tiroir-liens .wp-block-navigation-item { counter-increment: lien; display: block; }
.wp-block-navigation.tiroir-liens .wp-block-navigation-item__content { display: flex; align-items: baseline; gap: 16px; padding: 14px 0; font-family: var(--titre); font-size: 28px; font-weight: 800; text-transform: uppercase; color: var(--blanc); }
.tiroir-liens .wp-block-navigation-item__content::before { content: "0" counter(lien); font-family: var(--texte); font-size: 12px; font-weight: 700; color: var(--terre-clair); letter-spacing: .08em; }
.wp-block-navigation.tiroir-liens .wp-block-navigation-item__content.actif { color: var(--terre-clair); }
.tiroir-cta .wp-block-button, .tiroir-cta .wp-block-button__link { width: 100%; justify-content: space-between; }
.tiroir-contact { margin-top: auto; }

/* ---- Pied de page ---- */
.pied-photo { position: absolute; inset: 0; z-index: -2; margin: 0; }
.wp-block-image.pied-photo img { object-position: 50% 40%; }
.wp-block-navigation.pied-menu { display: block; }
.wp-block-navigation.pied-menu .wp-block-navigation__container { display: grid; gap: 0; }
.wp-block-navigation.pied-menu .wp-block-navigation-item { margin-bottom: 10px; }
.wp-block-navigation.pied-menu .wp-block-navigation-item__content { padding: 0; font-size: 14.5px; color: rgba(255,255,255,.75); transition: color .2s; }
.wp-block-navigation.pied-menu .wp-block-navigation-item__content:hover { color: var(--terre-clair); }
.pied-col p a { color: inherit; text-decoration: none; }
.pied-col p a:hover { color: var(--terre-clair); }
.wp-block-social-links.reseaux { display: flex; gap: 10px; padding: 0; margin: 0; }
.wp-block-social-links.reseaux .wp-social-link { margin: 0; width: 38px; height: 38px; border-radius: var(--r); background: rgba(255,255,255,.08); color: var(--blanc); display: grid; place-items: center; transition: background .2s; }
.wp-block-social-links.reseaux .wp-social-link:hover { background: var(--terre); transform: none; }
.wp-block-social-links.reseaux .wp-social-link a { padding: 0; display: grid; place-items: center; width: 100%; height: 100%; color: inherit; }
.wp-block-social-links.reseaux .wp-social-link svg { width: 17px; height: 17px; fill: currentColor; stroke: none; }
.pied-bas > p { margin: 0; }
.haut { margin: 0; flex: none; }
.haut a { display: block; width: 40px; height: 40px; border-radius: var(--r); background: var(--terre); font-size: 0; position: relative; }
.haut a::before { content: ""; position: absolute; inset: 11px; background: var(--blanc); -webkit-mask: var(--ico-fleche-haut) center/contain no-repeat; mask: var(--ico-fleche-haut) center/contain no-repeat; }

/* ---- Bannière, avatars ---- */
.banniere > .banniere-photo { position: absolute; right: 0; top: 0; width: 60%; height: 100%; z-index: -2; margin: 0; }
.banniere-texte h3 { color: var(--blanc); }
.avatars .avatar, .avatars .avatars-total { width: 38px; height: 38px; border-radius: 50%; border: 2px solid var(--blanc); margin: 0 0 0 -10px; overflow: hidden; flex: none; }
.avatars .avatars-total { display: grid; place-items: center; background: var(--nuit); color: var(--blanc); font-size: 11px; font-weight: 700; }

/* ---- Témoignages ---- */
.avis-texte { min-width: 0; }
.auteur { display: flex; align-items: center; gap: 12px; font-size: 13px; }
.auteur p strong { display: block; color: var(--blanc); font-size: 15px; }
.avis-nav { position: relative; margin: 0; flex: none; width: 48px; height: 48px; border-radius: var(--r); border: 1.5px solid rgba(255,255,255,.3); cursor: pointer; font-size: 0; color: transparent; transition: background .2s, border-color .2s; }
.avis-nav:hover { background: var(--terre); border-color: var(--terre); }
.avis-nav::before { content: ""; position: absolute; inset: 14px; background: var(--blanc); -webkit-mask: var(--ico-fleche) center/contain no-repeat; mask: var(--ico-fleche) center/contain no-repeat; }
.avis-nav.precedent::before { -webkit-mask-image: var(--ico-fleche-gauche); mask-image: var(--ico-fleche-gauche); }

/* ---- FAQ (core/details) ---- */
.wp-block-details.question > summary { list-style: none; }
.wp-block-details.question > p { margin: 0; }

/* ---- Tableau comparatif (core/table) ---- */
.wp-block-table.comparatif { min-width: 0; width: auto; border-radius: var(--r-carte); border: 1px solid rgba(255,255,255,.12); overflow-x: auto; }
.wp-block-table.comparatif table { width: 100%; min-width: 680px; border-collapse: collapse; font-size: 15px; }
.wp-block-table.comparatif thead { border: 0; }
.wp-block-table.comparatif th, .wp-block-table.comparatif td { padding: 18px 22px; text-align: left; border: 0; border-bottom: 1px solid rgba(255,255,255,.1); }
.wp-block-table.comparatif thead th { font-family: var(--titre); font-weight: 800; text-transform: uppercase; font-size: 14px; color: var(--blanc); background: rgba(255,255,255,.04); }
.wp-block-table.comparatif tbody tr:last-child td { border-bottom: 0; }
.wp-block-table.comparatif td:first-child { color: var(--blanc); font-weight: 600; }
.wp-block-table.comparatif td:nth-child(2) { background: rgba(178,67,38,.18); color: var(--blanc); font-weight: 700; }
.wp-block-table.comparatif thead th:nth-child(2) { background: var(--terre); }

/* ---- À propos ---- */
.histoire-badge { margin: 0; }
.bande-chiffres { list-style: none; padding: 0; }
.bande-chiffres > p { margin: 0; padding: 30px 24px; font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.bande-chiffres > p + p { border-left: 1px solid var(--sable); }
.bande-chiffres > p strong { display: block; font-family: var(--titre); font-size: 52px; font-weight: 800; letter-spacing: -.01em; line-height: 1.05; color: var(--terre); }

/* ---- Contact ---- */
.coordonnees-liste { display: grid; gap: 20px; }
.coordonnee { position: relative; display: grid; grid-template-columns: 44px 1fr; column-gap: 16px; align-items: center; margin: 0; font-size: 15px; color: var(--blanc); word-break: break-word; }
.coordonnee::before { grid-row: 1 / 3; width: 44px; height: 44px; border-radius: var(--r); background: var(--terre); -webkit-mask: none; mask: none; }
.coordonnee::after { content: ""; position: absolute; left: 12px; top: 50%; margin-top: -10px; width: 20px; height: 20px; background: var(--blanc); -webkit-mask: var(--ico) center/contain no-repeat; mask: var(--ico) center/contain no-repeat; }
.coordonnee strong { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--terre-clair); margin-bottom: 2px; }
.coordonnee a { color: inherit; text-decoration: none; }

/* Contact Form 7, aux classes de la maquette */
.formulaire .wpcf7 form { margin: 0; }
.formulaire .champs p { margin: 0; }
.formulaire .champs br { display: none; }
.formulaire .wpcf7-form-control-wrap { display: block; }
.formulaire .champs label { display: block; }
.formulaire input[type="submit"] { display: inline-flex; align-items: center; gap: 12px; border: 0; cursor: pointer; border-radius: var(--r); font: 600 15px var(--texte); padding: 16px 64px 16px 22px; color: var(--blanc); background: var(--terre) var(--ico-fleche-terre) no-repeat; background-image: linear-gradient(var(--blanc), var(--blanc)), var(--ico-fleche-terre); background-size: 36px 36px, 18px 18px; background-position: right 6px center, right 15px center; transition: background-color .2s; }
.formulaire input[type="submit"]:hover { background-color: var(--terre-fonce); }
.formulaire .wpcf7-spinner { display: none; }
.formulaire .wpcf7-not-valid-tip { color: var(--terre); font-size: 13px; margin-top: 6px; }
.formulaire .wpcf7 form .wpcf7-response-output { margin: 20px 0 0; padding: 14px 18px; border-radius: var(--r); border: 1.5px solid var(--terre); color: var(--nuit); font-size: 14px; }
.formulaire .wpcf7 form.sent .wpcf7-response-output { border-color: #46ae87; }

/* ---- Articles (boucles de requête) ---- */
.wp-block-post-template { list-style: none; margin: 0; padding: 0; }
.wp-block-post-template > li { margin: 0; }
.carte-destination { position: relative; height: 100%; display: flex; flex-direction: column; align-items: flex-start; }
.carte-destination .wp-block-post-featured-image { position: relative; width: 100%; margin: 0 0 18px; border-radius: var(--r-carte); overflow: hidden; }
.carte-destination .wp-block-post-featured-image img { width: 100%; height: 250px; object-fit: cover; transition: transform .6s; }
.carte-destination:hover .wp-block-post-featured-image img { transform: scale(1.05); }
.wp-block-post-terms.etiquette { position: absolute; left: 14px; top: 14px; z-index: 1; padding: 5px 10px; border-radius: 4px; background: var(--terre); color: var(--blanc); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; line-height: 1.4; }
.wp-block-post-terms.etiquette a { color: inherit; text-decoration: none; }
.wp-block-post-terms.etiquette .wp-block-post-terms__separator { display: none; }
.wp-block-post-terms.etiquette a + a, .wp-block-post-terms.etiquette .wp-block-post-terms__separator + a { display: none; }
.carte-destination .wp-block-post-title { font-family: var(--titre); font-weight: 800; text-transform: uppercase; font-size: 22px; line-height: 1.05; margin: 0 0 8px; color: var(--nuit); }
.carte-destination .wp-block-post-title a { color: inherit; text-decoration: none; }
.carte-destination .wp-block-post-title a:hover { color: var(--terre); }
.wp-block-post-excerpt.desc { margin: 0 0 14px; font-size: 14.5px; }
.wp-block-post-excerpt.desc .wp-block-post-excerpt__excerpt { margin: 0; }
.wp-block-read-more.lien-fleche { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; font-weight: 700; font-size: 14px; color: var(--terre); text-decoration: none; }
.wp-block-read-more.lien-fleche::after { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ico-fleche) center/contain no-repeat; mask: var(--ico-fleche) center/contain no-repeat; transition: transform .2s; }
.wp-block-read-more.lien-fleche:hover::after { transform: translateX(4px); }

.grille-articles-liste { display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px 24px; }
.grille-articles-liste > li.masque { display: none; }
.grille-articles .carte-destination .wp-block-post-title { font-size: 20px; line-height: 1.12; }

.article-une { margin-bottom: 56px; }
.article-une .wp-block-post-template > li { margin: 0; }
.article-une-carte { position: relative; display: grid; grid-template-columns: 1.25fr 1fr; grid-template-rows: 1fr auto auto auto auto 1fr; column-gap: 0; border-radius: var(--r-carte); overflow: hidden; background: var(--nuit); color: rgba(255,255,255,.78); }
.article-une-carte .wp-block-post-featured-image { grid-column: 1; grid-row: 1 / -1; margin: 0; min-height: 380px; }
.article-une-carte .wp-block-post-featured-image a, .article-une-carte .wp-block-post-featured-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.article-une-carte > :not(.wp-block-post-featured-image) { grid-column: 2; margin-inline: 44px; }
.article-une-carte .wp-block-post-terms.etiquette { position: static; grid-row: 2; justify-self: start; margin-bottom: 18px; }
.article-une-carte .wp-block-post-title { grid-row: 3; font-family: var(--titre); font-weight: 800; text-transform: uppercase; font-size: 32px; line-height: 1.1; color: var(--blanc); margin-top: 0; margin-bottom: 18px; }
.article-une-carte .wp-block-post-title a { color: inherit; text-decoration: none; }
.article-une-carte .wp-block-post-excerpt { grid-row: 4; margin-bottom: 22px; }
.article-une-carte .wp-block-post-excerpt__excerpt { margin: 0; }
.article-une-carte .wp-block-read-more { grid-row: 5; justify-self: start; padding: 12px 20px; border-radius: var(--r); background: var(--terre); color: var(--blanc); font-weight: 600; font-size: 14px; text-decoration: none; }

.filtres .filtre { margin: 0; font: 600 14px var(--texte); padding: 10px 18px; border-radius: var(--r); border: 1.5px solid var(--sable); background: var(--blanc); color: var(--nuit); cursor: pointer; transition: background .2s, border-color .2s, color .2s; }
.filtres .filtre:hover { border-color: var(--terre); }
.filtres .filtre.actif { background: var(--terre); border-color: var(--terre); color: var(--blanc); }

/* ---- Article seul et archives (templates) ---- */
.article-entete { padding-bottom: 72px; }
.article-entete .wp-block-post-title { font-family: var(--titre); font-weight: 800; text-transform: uppercase; color: var(--blanc); font-size: 56px; line-height: 1.02; max-width: 960px; }
.article-entete .wp-block-post-date { color: rgba(255,255,255,.75); font-size: 14px; margin-top: 18px; }
.wp-block-post-featured-image.article-fond { position: absolute; inset: 0; z-index: -2; margin: 0; }
.wp-block-post-featured-image.article-fond, .wp-block-post-featured-image.article-fond a, .wp-block-post-featured-image.article-fond img { display: block; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.article-corps { max-width: 760px; margin-inline: auto; font-size: 17.5px; line-height: 1.75; color: var(--brun); }
.article-corps > * + * { margin-top: 1.2em; }
.article-corps h2, .article-corps h3 { color: var(--nuit); margin-top: 1.8em; }
.article-corps h2 { font-size: 32px; }
.article-corps h3 { font-size: 24px; }
.article-corps a { color: var(--terre); }
.article-corps img { border-radius: var(--r-carte); }
.archive-titre { font-family: var(--titre); }

/* ---- Responsive des adaptations ---- */
@media (max-width: 1100px) {
  .wp-block-navigation.menu { display: none; }
  .burger { display: block; }
  .grille-articles-liste { grid-template-columns: 1fr 1fr; }
  .article-une-carte { grid-template-columns: 1fr; grid-template-rows: none; }
  .article-une-carte .wp-block-post-featured-image { grid-column: 1; grid-row: auto; min-height: 0; height: 320px; }
  .article-une-carte > :not(.wp-block-post-featured-image) { grid-column: 1; grid-row: auto; }
  .article-une-carte .wp-block-post-terms.etiquette { margin-top: 32px; }
  .article-une-carte .wp-block-read-more { margin-bottom: 36px; }
}
@media (max-width: 1280px) {
  .wp-block-post-featured-image.carte-hero-photo { height: clamp(110px, 14vw, 180px); }
}
@media (max-width: 760px) {
  .wp-block-post-featured-image.carte-hero-photo { height: 120px; }
  .repere { margin-top: 16px; }
  .repere.repere-1 { margin-top: 40px; }
}
@media (max-width: 480px) {
  .hero-boutons .wp-block-button, .hero-boutons .wp-block-button__link { width: 100%; }
  .hero-boutons .b-fleche .wp-block-button__link { justify-content: space-between; }
  .hero-boutons .b-video .wp-block-button__link { justify-content: flex-start; }
}
@media (max-width: 760px) {
  .entete-cta { display: none; }
  .wp-block-site-logo.logo img { height: 38px; }
  .chiffres-barre > p { justify-content: center; text-align: left; padding: 14px 8px; }
  .chiffres-barre > p:nth-child(3) { border-left: 0; }
  .chiffres-barre > p:nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.18); }
  .grille-3 > *, .grille-etapes > *, .grille-public > * { flex: 0 0 82%; scroll-snap-align: start; }
  .grille-blog > li { flex: 0 0 82%; scroll-snap-align: start; }
  .grille-articles-liste { grid-template-columns: 1fr; }
  .wp-block-image.explorer-photo { height: 320px; }
  .wp-block-image.histoire-grande { height: 400px; }
  .banniere > .banniere-photo { width: 100%; }
  .banniere-boutons .wp-block-button, .banniere-boutons .wp-block-button__link, .appel .boutons .wp-block-button, .appel .boutons .wp-block-button__link { width: 100%; }
  .bande-chiffres > p { padding: 22px 14px; font-size: 11.5px; }
  .bande-chiffres > p:nth-child(3) { border-left: 0; }
  .bande-chiffres > p:nth-child(n+3) { border-top: 1px solid var(--sable); }
  .bande-chiffres > p strong { font-size: 34px; }
  .wp-block-image.avis-photo { height: 220px; }
  .article-entete .wp-block-post-title { font-size: clamp(27px, 7.4vw, 40px); }
  .formulaire input[type="submit"] { width: 100%; }
}

/* =========================================================================
   Articles de blog : mise en page éditoriale du contenu (template single)
   ========================================================================= */
.article-entete .sur-titre a { color: inherit; text-decoration: none; }
.article-entete .wp-block-post-date { margin-top: 18px; }
.article-corps { --large: min(1040px, 100vw - 48px); }
.article-corps .chapo { font-size: 21px; line-height: 1.6; color: var(--nuit); font-weight: 500; }
.article-corps .chapo strong { color: var(--terre); }
.article-corps h2 { font-size: 34px; margin-top: 2em; }
.article-corps h3 { font-size: 21px; margin-top: 1.6em; color: var(--terre); }
.article-corps h2 + *, .article-corps h3 + * { margin-top: .7em; }
.article-corps strong { color: var(--nuit); }

/* Fiche pratique */
.fiche-pratique { margin-top: 2em !important; padding: 28px 30px; border-radius: var(--r-carte); background: var(--creme); border-left: 4px solid var(--terre); }
.fiche-titre { font-family: var(--titre); font-weight: 800; text-transform: uppercase; font-size: 18px; color: var(--nuit); margin: 0 0 16px !important; }
.fiche-liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 28px; font-size: 15px; line-height: 1.5; }
.fiche-liste li strong { display: block; font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--terre); margin-bottom: 2px; }

/* Photos : larges (débordent la colonne), moyennes, galeries */
.article-corps .wp-block-image { margin-block: 2em 0; }
.article-corps .article-large { width: var(--large); max-width: none; margin-left: calc(50% - var(--large) / 2); }
.article-corps .article-large img, .article-corps .article-moyen img { display: block; width: 100%; height: auto; border-radius: var(--r-carte); }
.article-corps .article-large img { aspect-ratio: 16 / 9; object-fit: cover; }
.article-corps .article-moyen { max-width: 560px; margin-inline: auto; }
.article-corps .wp-element-caption { margin: 12px auto 0; max-width: 760px; text-align: center; font-size: 13.5px; line-height: 1.5; color: var(--brun); opacity: .85; }
.article-corps .galerie { display: grid; gap: 14px; width: var(--large); margin: 2em 0 0 calc(50% - var(--large) / 2); }
.article-corps .galerie-2 { grid-template-columns: 1fr 1fr; }
.article-corps .galerie-3 { grid-template-columns: 1.4fr 1fr 1fr; }
.article-corps .galerie .wp-block-image { margin: 0; }
.article-corps .galerie img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-carte); transition: transform .6s; }
.article-corps .galerie .wp-block-image { overflow: hidden; border-radius: var(--r-carte); }
.article-corps .galerie .wp-block-image:hover img { transform: scale(1.04); }
.article-corps .galerie-3 img { aspect-ratio: auto; height: 300px; }

/* Citation mise en avant */
.article-corps .wp-block-quote.citation-article { margin: 2.2em 0 0; padding: 6px 0 6px 28px; border: 0; border-left: 4px solid var(--terre); }
.article-corps .citation-article p { font-family: var(--titre); font-weight: 800; text-transform: uppercase; font-style: normal; font-size: 30px; line-height: 1.12; color: var(--nuit); margin: 0; }
.article-corps .citation-article cite { display: block; margin-top: 10px; font-size: 13px; font-style: normal; color: var(--brun); }

/* Conseils */
.article-corps .conseils { list-style: none; padding: 0; display: grid; gap: 12px; }
.article-corps .conseils li { position: relative; padding-left: 34px; }
.article-corps .conseils li::before { content: ""; position: absolute; left: 0; top: 4px; width: 22px; height: 22px; border-radius: 6px; background: var(--terre) center / 13px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E"); }

/* Appel à l'action et sources */
.article-corps .banniere { width: var(--large); margin: 3em 0 0 calc(50% - var(--large) / 2) !important; }
.article-corps .banniere h3 { color: var(--blanc); margin-top: 0; font-size: 28px; }
.article-corps .banniere p { line-height: 1.6; }
.article-corps .sources { margin-top: 3em; padding-top: 20px; border-top: 1px solid var(--sable); font-size: 13px; line-height: 1.6; opacity: .85; }

@media (max-width: 760px) {
  .article-corps { font-size: 16.5px; }
  .article-corps .chapo { font-size: 18.5px; }
  .article-corps h2 { font-size: 26px; }
  .fiche-pratique { padding: 22px 20px; }
  .fiche-liste { grid-template-columns: 1fr; gap: 12px; }
  .article-corps .galerie-2, .article-corps .galerie-3 { grid-template-columns: 1fr 1fr; }
  .article-corps .galerie-3 > :first-child { grid-column: 1 / -1; }
  .article-corps .galerie-3 img { height: 220px; }
  .article-corps .galerie-3 > :not(:first-child) img { height: 150px; }
  .article-corps .citation-article p { font-size: 23px; }
}

/* ---- WPForms (formulaire de contact), aux styles de la maquette ---- */
.formulaire .wpforms-container { margin: 0 !important; }
.formulaire .wpforms-container .wpforms-field-container { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-bottom: 26px; }
.formulaire .wpforms-container .wpforms-field { padding: 0 !important; margin: 0 !important; }
.formulaire .wpforms-container .wpforms-field-textarea, .formulaire .wpforms-container .wpforms-field-text { grid-column: 1 / -1; }
.formulaire .wpforms-container .wpforms-field-label, .formulaire .wpforms-container .wpforms-field-sublabel { font: 600 13.5px var(--texte) !important; color: var(--nuit) !important; margin: 0 0 8px !important; }
.formulaire .wpforms-container .wpforms-required-label { color: var(--terre) !important; }
.formulaire .wpforms-container input[type="text"], .formulaire .wpforms-container input[type="email"], .formulaire .wpforms-container textarea {
  width: 100% !important; max-width: none !important; height: auto !important; font: 400 15px var(--texte) !important; color: var(--nuit) !important;
  padding: 14px 16px !important; border: 1.5px solid var(--sable) !important; border-radius: var(--r) !important; background: var(--blanc) !important; box-shadow: none !important; }
.formulaire .wpforms-container textarea { min-height: 160px !important; resize: vertical; }
.formulaire .wpforms-container input:focus, .formulaire .wpforms-container textarea:focus { border-color: var(--terre) !important; box-shadow: 0 0 0 4px rgba(178,67,38,.12) !important; outline: none !important; }
.formulaire .wpforms-container .wpforms-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.formulaire .wpforms-container .wpforms-field-row::before, .formulaire .wpforms-container .wpforms-field-row::after { display: none !important; }
.formulaire .wpforms-container .wpforms-field-row-block { width: auto !important; padding: 0 !important; float: none !important; }
.formulaire .wpforms-container .wpforms-submit-container { padding: 0 !important; margin: 0 !important; }
.formulaire .wpforms-container button[type="submit"] {
  display: inline-flex !important; align-items: center; gap: 12px; height: auto !important; border: 0 !important; cursor: pointer; border-radius: var(--r) !important;
  font: 600 15px var(--texte) !important; padding: 6px 6px 6px 22px !important; color: var(--blanc) !important; background: var(--terre) !important; box-shadow: none !important; transition: background-color .2s; }
.formulaire .wpforms-container button[type="submit"]::after { content: ""; width: 36px; height: 36px; border-radius: 4px; background: var(--blanc) var(--ico-fleche-terre) center / 18px no-repeat; }
.formulaire .wpforms-container button[type="submit"]:hover { background: var(--terre-fonce) !important; }
.formulaire .wpforms-container .wpforms-error, .formulaire .wpforms-container label.wpforms-error { color: var(--terre) !important; font-size: 13px !important; margin-top: 6px !important; }
.formulaire .wpforms-container input.wpforms-error, .formulaire .wpforms-container textarea.wpforms-error { border-color: var(--terre) !important; }
.formulaire .wpforms-confirmation-container-full { padding: 18px 20px !important; border-radius: var(--r) !important; border: 1.5px solid #46ae87 !important; background: #f2faf6 !important; color: var(--nuit) !important; }
@media (max-width: 760px) {
  .formulaire .wpforms-container .wpforms-field-container { grid-template-columns: 1fr; }
  .formulaire .wpforms-container button[type="submit"] { width: 100% !important; justify-content: space-between; }
}

/* ---- Pages sans bandeau photo (WooCommerce : panier, commande, compte, produit) ---- */
body:not(:has(.hero, .page-hero)) .entete::before { opacity: 1; }
main:not(:has(.hero, .page-hero)) { padding: 150px 24px 96px; }
main:not(:has(.hero, .page-hero)) h1 { font-size: clamp(32px, 5vw, 52px); margin-bottom: 32px; }
main:not(:has(.hero, .page-hero)) .wp-block-post-content, main:not(:has(.hero, .page-hero)) .woocommerce { max-width: 1200px; margin-inline: auto; }

/* ---- Boutique WooCommerce aux couleurs du site ---- */
.boutique-woo .woocommerce-breadcrumb, .boutique-woo .woocommerce-products-header { display: none; }
.boutique-woo .woocommerce-result-count { margin: 0 0 32px; font-size: 14.5px; }
.boutique-woo .woocommerce-ordering { float: right; margin: -6px 0 32px; }
.boutique-woo .woocommerce-ordering select { font: 500 14px var(--texte); color: var(--nuit); padding: 10px 14px; border: 1.5px solid var(--sable); border-radius: var(--r); background: var(--blanc); }
.woocommerce ul.products { clear: both; display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 0 !important; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { width: auto !important; float: none !important; margin: 0 !important; padding: 0 0 22px; border: 1px solid var(--sable); border-radius: var(--r-carte); overflow: hidden; text-align: left; transition: box-shadow .3s, transform .3s; }
.woocommerce ul.products li.product:hover { box-shadow: 0 18px 40px rgba(27,23,16,.1); transform: translateY(-3px); }
.woocommerce ul.products li.product a img { width: 100%; height: 300px; object-fit: cover; margin: 0 0 18px !important; background: var(--creme); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--titre) !important; font-weight: 800; text-transform: uppercase; font-size: 22px !important; color: var(--nuit); padding: 0 22px !important; }
.woocommerce ul.products li.product .price { display: block; padding: 0 22px; margin: 6px 0 14px !important; font-family: var(--titre); font-weight: 800; font-size: 20px !important; color: var(--terre) !important; }
.woocommerce ul.products li.product .button, .woocommerce a.button, .woocommerce button.button, .woocommerce .wc-block-components-button:not(.is-link) {
  display: inline-flex; align-items: center; margin-left: 22px; padding: 12px 20px; border-radius: var(--r); font: 600 14px var(--texte); background: var(--terre); color: var(--blanc); border: 0; text-decoration: none; transition: background .2s; }
.woocommerce ul.products li.product .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--terre-fonce); color: var(--blanc); }
.woocommerce span.onsale { background: var(--terre); }
@media (max-width: 1100px) { .woocommerce ul.products { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) {
  main:not(:has(.hero, .page-hero)) { padding-top: 120px; }
  .woocommerce ul.products { grid-template-columns: 1fr; }
  .boutique-woo .woocommerce-ordering { float: none; margin-bottom: 20px; }
}

/* ---- Blog : article à la une plus équilibré ---- */
.article-une-carte { grid-template-columns: 1fr 1fr; }
.article-une-carte .wp-block-post-title { font-size: 28px; line-height: 1.08; }
@media (max-width: 1100px) { .article-une-carte { grid-template-columns: 1fr; } }

/* Les conteneurs de requête portent les classes de la maquette : on neutralise la grille héritée */
.wp-block-query.grille-articles, .wp-block-query.article-une { display: block; grid-template-columns: none; background: none; border-radius: 0; overflow: visible; color: inherit; min-height: 0; }
.wp-block-query.article-une { margin-bottom: 56px; }

/* WordPress remet à zéro la marge du premier enfant (layout « flow ») : on rétablit celle du titre sous la pastille */
.carte-service.pastille > h3:first-child { margin-top: 22px; }

/* WordPress remet à zéro la marge du premier enfant (layout « flow ») : on rétablit celle du titre sous la pastille */
.carte-service.pastille > h3:first-child { margin-top: 22px; }

/* ---- En-tête : fidélité à la maquette ----
   WordPress pose aussi la classe « menu » sur la liste interne du bloc navigation :
   la pastille (fond, marges internes) ne doit s'appliquer qu'au <nav>. */
.wp-block-navigation.menu ul.wp-block-navigation__container.menu { padding: 0; margin: 0; background: none; backdrop-filter: none; border-radius: 0; align-self: auto; flex-wrap: nowrap; height: auto; isolation: auto; }
.wp-block-navigation.menu ul.wp-block-navigation__container.menu::before, .wp-block-navigation.menu ul.wp-block-navigation__container.menu::after { content: none; }
.wp-block-navigation.menu .wp-block-navigation-item { line-height: 24px; }
.wp-block-navigation.menu .wp-block-navigation-item__content { line-height: 24px; }
.wp-block-navigation.tiroir-liens ul.tiroir-liens, .wp-block-navigation.pied-menu ul.pied-menu { padding: 0; margin: 0; background: none; }
@media (max-width: 760px) {
  .wp-block-buttons.entete-cta { display: none; }
}
/* le soulignement du lien actif ne doit pas agrandir la pastille (72 px comme la maquette) */
.wp-block-navigation.menu .wp-block-navigation-item__content.actif { margin-bottom: -4px; }

/* =========================================================================
   ARTICLES — rendu premium (cartes, page article)
   ========================================================================= */
:root {
  --ico-calendrier: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
  --ico-horloge: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}

/* ---- Cartes d'articles (accueil, blog, « À lire aussi ») ---- */
.grille-blog .carte-destination, .grille-articles-liste .carte-destination {
  height: 100%; padding: 0 0 24px; background: var(--blanc); border: 1px solid var(--sable); border-radius: 14px; overflow: hidden;
  transition: transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s, border-color .35s; }
.grille-blog .carte-destination:hover, .grille-articles-liste .carte-destination:hover { transform: translateY(-6px); box-shadow: 0 26px 50px rgba(27,23,16,.12); border-color: transparent; }
.grille-blog .carte-destination > :not(.wp-block-post-featured-image):not(.etiquette),
.grille-articles-liste .carte-destination > :not(.wp-block-post-featured-image):not(.etiquette) { margin-inline: 24px; }
.grille-blog .carte-destination .wp-block-post-featured-image,
.grille-articles-liste .carte-destination .wp-block-post-featured-image { margin: 0 0 20px; border-radius: 0; aspect-ratio: 16 / 11; }
.grille-blog .carte-destination .wp-block-post-featured-image img,
.grille-articles-liste .carte-destination .wp-block-post-featured-image img { height: 100%; }
.carte-destination .wp-block-post-featured-image a { display: block; height: 100%; }
.carte-destination .wp-block-post-featured-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(27,23,16,.35), transparent 45%); pointer-events: none; }
.grille-blog .wp-block-post-terms.etiquette, .grille-articles-liste .wp-block-post-terms.etiquette { left: 16px; top: 16px; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.94); color: var(--terre); box-shadow: 0 4px 14px rgba(27,23,16,.12); }
.carte-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-bottom: 10px; font-size: 12.5px; font-weight: 600; color: var(--brun); opacity: .85; }
.carte-meta > *, .article-meta > * { margin: 0 !important; display: inline-flex; align-items: center; gap: 6px; }
.carte-meta .wp-block-post-date::before, .article-meta .meta-date::before { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: var(--ico-calendrier) center/contain no-repeat; mask: var(--ico-calendrier) center/contain no-repeat; }
.carte-meta .wp-block-post-time-to-read::before, .article-meta .meta-lecture::before { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: var(--ico-horloge) center/contain no-repeat; mask: var(--ico-horloge) center/contain no-repeat; }
.carte-meta .wp-block-post-time-to-read::after, .article-meta .meta-lecture::after { content: "de lecture"; }
.grille-blog .carte-destination .wp-block-post-title, .grille-articles-liste .carte-destination .wp-block-post-title { font-size: 21px; line-height: 1.12; margin-bottom: 10px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.grille-blog .carte-destination .wp-block-post-title a, .grille-articles-liste .carte-destination .wp-block-post-title a { display: inline; }
.grille-blog .wp-block-post-excerpt.desc, .grille-articles-liste .wp-block-post-excerpt.desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin-bottom: 18px; }
.grille-blog .wp-block-read-more.lien-fleche, .grille-articles-liste .wp-block-read-more.lien-fleche { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--sable); width: calc(100% - 48px); justify-content: space-between; }

/* Article à la une (blog) */
.article-une-carte { grid-template-rows: 1fr auto auto auto auto auto 1fr; }
.article-une-carte .carte-meta { grid-column: 2; grid-row: 3; color: rgba(255,255,255,.78); margin: 0 44px 14px; }
.article-une-carte .wp-block-post-title { grid-row: 4; }
.article-une-carte .wp-block-post-excerpt { grid-row: 5; }
.article-une-carte .wp-block-read-more { grid-row: 6; }
.article-une-carte .wp-block-post-terms.etiquette { padding: 6px 12px; border-radius: 999px; }
.article-une-carte .wp-block-post-featured-image img { transition: transform .8s; }
.article-une-carte:hover .wp-block-post-featured-image img { transform: scale(1.04); }

/* ---- Page article : en-tête ---- */
.single-post .article-entete { min-height: 640px; }
.single-post .article-entete::before { background: linear-gradient(0deg, rgba(27,23,16,.92) 0%, rgba(27,23,16,.55) 45%, rgba(27,23,16,.25) 100%); }
.article-fil { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 22px; }
.article-fil .fil { margin: 0; }
.article-fil .fil a { color: inherit; text-decoration: none; }
.article-categorie { margin: 0; padding: 6px 14px; border-radius: 999px; background: var(--terre); font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.article-categorie a { color: var(--blanc); text-decoration: none; }
.single-post .article-entete .wp-block-post-title { font-size: clamp(32px, 4.4vw, 58px); line-height: 1.04; max-width: 980px; }
.article-meta { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 24px; font-size: 14px; font-weight: 600; color: rgba(255,255,255,.82); }

/* Barre de progression de lecture */
.single-post::after { content: ""; position: fixed; z-index: 120; left: 0; top: 0; height: 3px; width: calc(var(--lecture, 0) * 100%); background: linear-gradient(90deg, var(--terre), var(--terre-clair)); pointer-events: none; }
.admin-bar.single-post::after { top: 32px; }

/* ---- Page article : colonne de lecture + colonne latérale ---- */
.article-section { padding-bottom: 72px; }
.article-grille { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 72px; align-items: start; }
.article-grille .article-corps { --large: 100%; max-width: 760px; margin: 0; }
.article-grille .article-corps .article-large, .article-grille .article-corps .galerie, .article-grille .article-corps .banniere { width: 100%; margin-left: 0 !important; }
.article-aside { position: sticky; top: 120px; display: grid; gap: 22px; }
.aside-carte { border-radius: 16px; padding: 26px; }
.aside-appel { background: var(--nuit) radial-gradient(circle at 100% 0%, rgba(178,67,38,.45), transparent 60%); color: rgba(255,255,255,.78); }
.aside-appel h3 { color: var(--blanc); font-size: 24px; margin: 6px 0 10px; }
.aside-appel p { font-size: 14.5px; margin: 0 0 18px; }
.aside-appel .sur-titre-clair { margin: 0; }
.aside-recents { border: 1px solid var(--sable); background: var(--blanc); }
.aside-recents h4 { font-size: 15px; letter-spacing: .1em; margin: 0 0 16px; }
.recents-liste { display: grid; gap: 16px; }
.recents-liste > li { display: grid; grid-template-columns: 76px 1fr; gap: 14px; align-items: center; }
.recents-liste .wp-block-post-featured-image { margin: 0; width: 76px; height: 76px; border-radius: 10px; overflow: hidden; }
.recents-liste .wp-block-post-featured-image a, .recents-liste .wp-block-post-featured-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.recents-liste .wp-block-post-title { font-family: var(--titre); font-weight: 800; text-transform: uppercase; font-size: 13.5px; line-height: 1.15; margin: 0 0 6px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.recents-liste .wp-block-post-title a { color: var(--nuit); text-decoration: none; }
.recents-liste .wp-block-post-title a:hover { color: var(--terre); }
.recents-liste .meta-date { margin: 0; font-size: 12px; color: var(--brun); opacity: .8; }

/* ---- Page article : typographie éditoriale ---- */
.article-corps { font-size: 18px; line-height: 1.85; color: #4a4237; }
.article-corps > * + * { margin-top: 1.25em; }
.article-corps > p:first-child::first-letter, .article-corps > .chapo::first-letter { float: left; font-family: var(--titre); font-weight: 800; font-size: 4.4em; line-height: .82; margin: .06em .12em 0 0; color: var(--terre); }
.article-corps h2, .article-corps h3 { position: relative; color: var(--nuit); padding-top: 18px; margin-top: 2.2em !important; }
.article-corps h2::before, .article-corps h3::before { content: ""; position: absolute; left: 0; top: 0; width: 44px; height: 4px; border-radius: 2px; background: var(--terre); }
.article-corps h2 { font-size: 34px; line-height: 1.08; }
.article-corps h3 { font-size: 25px; line-height: 1.12; }
.article-corps h4 { font-family: var(--texte); font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--terre); margin-top: 1.8em !important; }
.article-corps h2 + *, .article-corps h3 + *, .article-corps h4 + * { margin-top: .8em; }
.article-corps a { color: var(--terre); text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.article-corps .wp-block-button__link, .article-corps .banniere a { text-decoration: none; }
.article-corps strong { color: var(--nuit); font-weight: 700; }
.article-corps ul.wp-block-list:not(.fiche-liste):not(.conseils) { padding-left: 0; list-style: none; display: grid; gap: 10px; }
.article-corps ul.wp-block-list:not(.fiche-liste):not(.conseils) > li { position: relative; padding-left: 26px; }
.article-corps ul.wp-block-list:not(.fiche-liste):not(.conseils) > li::before { content: ""; position: absolute; left: 2px; top: .7em; width: 8px; height: 8px; border-radius: 2px; background: var(--terre); transform: rotate(45deg); }
.article-corps hr.wp-block-separator { border: 0 !important; height: 12px; margin: 2.6em auto !important; text-align: center; opacity: 1; background: none !important; width: auto !important; }
.article-corps hr.wp-block-separator::before { content: "\25C6\00a0\00a0\25C6\00a0\00a0\25C6"; color: var(--terre-clair); font-size: 11px; letter-spacing: .4em; }
.article-corps blockquote:not(.citation-article) { margin: 2em 0; padding: 26px 30px; border: 0; border-left: 4px solid var(--terre); border-radius: 0 14px 14px 0; background: var(--creme); font-size: 19px; font-style: normal; color: var(--nuit); }
.article-corps figure.wp-block-image img { border-radius: 14px; }

/* ---- Photo + texte côte à côte (« duo ») ---- */
.article-corps .duo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: center; margin-top: 2em; }
.article-corps .duo-inverse .duo-photo { order: 2; }
.article-corps .duo .duo-photo { margin: 0; }
.article-corps .duo .duo-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; box-shadow: 0 22px 44px rgba(27,23,16,.14); }
.article-corps .duo .duo-photo figcaption { text-align: left; margin-top: 10px; }
.article-corps .duo-texte > * + * { margin-top: 1em; }
.article-corps .duo-texte > :first-child { margin-top: 0; }
.article-corps .duo-texte h3 { margin-top: 0 !important; }

/* ---- Navigation précédent / suivant ---- */
.article-suite { padding-top: 56px; margin-top: 56px; border-top: 1px solid var(--sable); }
.article-navigation { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.article-navigation > div { margin: 0; padding: 22px 26px; border: 1px solid var(--sable); border-radius: 14px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--terre); transition: border-color .3s, box-shadow .3s, transform .3s; }
.article-navigation > div:empty { visibility: hidden; }
.article-navigation > div:hover { border-color: var(--terre); box-shadow: 0 16px 34px rgba(27,23,16,.08); transform: translateY(-2px); }
.article-navigation .nav-suivant { text-align: right; }
.article-navigation a { display: block; margin-top: 8px; font-family: var(--titre); font-weight: 800; font-size: 18px; line-height: 1.15; letter-spacing: 0; color: var(--nuit); text-decoration: none; }
.article-navigation a:hover { color: var(--terre); }

/* ---- « À lire aussi » ---- */
.a-lire-aussi { background: var(--creme); }

@media (max-width: 1100px) {
  .article-grille { grid-template-columns: 1fr; gap: 48px; }
  .article-grille .article-corps { max-width: none; }
  .article-aside { position: static; grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .single-post .article-entete { min-height: 520px; }
  .article-corps { font-size: 16.5px; line-height: 1.8; }
  .article-corps h2 { font-size: 26px; }
  .article-corps h3 { font-size: 21px; }
  .article-corps .duo { grid-template-columns: 1fr; gap: 18px; }
  .article-corps .duo-inverse .duo-photo { order: 0; }
  .article-corps .duo .duo-photo img { aspect-ratio: 4 / 3; }
  .article-aside { grid-template-columns: 1fr; }
  .article-navigation { grid-template-columns: 1fr; }
  .article-navigation .nav-suivant { text-align: left; }
  .admin-bar.single-post::after { top: 46px; }
}

/* =====================================================================
   Prestations (accueil + page Services) et vitrine des produits locaux
   ===================================================================== */

/* ---- Accueil : services sur place (grille « bento ») ---- */
.services-accueil { background: var(--creme); }
.services-accueil .intro-serree { margin: 14px 0 0; max-width: 560px; }
.bento-services { display: grid; grid-template-columns: 1.3fr 1fr 1fr; grid-template-rows: 290px 290px; gap: 20px; }
.bento-carte { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; min-width: 0; border-radius: var(--r-carte); overflow: hidden; color: var(--blanc); box-shadow: 0 18px 40px rgba(27,23,16,.12); }
.bento-grande { grid-row: span 2; }
.bento-carte .bento-photo { position: absolute; inset: 0; z-index: -2; margin: 0; }
.bento-carte .bento-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.bento-carte .bento-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(27,23,16,.94) 0%, rgba(27,23,16,.72) 38%, rgba(27,23,16,.18) 72%, rgba(27,23,16,.04) 100%); }
.bento-carte:hover .bento-photo img { transform: scale(1.06); }
/* pastille d'icône en verre, en haut à gauche */
.bento-carte::before { content: ""; position: absolute; z-index: 1; top: 20px; left: 20px; width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); -webkit-mask: none; mask: none; transition: background .3s, border-color .3s; }
.bento-carte::after { content: ""; position: absolute; z-index: 2; top: 33px; left: 33px; width: 20px; height: 20px; background: var(--blanc); -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.bento-carte:hover::before { background: var(--terre); border-color: var(--terre); }
.bento-texte { padding: 24px 26px 26px; }
.bento-accroche { margin: 0 0 8px; font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--terre-clair); }
.bento-carte h3 { margin: 0 0 8px; font-size: 22px; line-height: 1.08; color: var(--blanc); }
.bento-grande h3 { font-size: 34px; max-width: 440px; }
.bento-carte h3 a { color: inherit; text-decoration: none; }
.bento-carte h3 a::before { content: ""; position: absolute; inset: 0; z-index: 3; }
.bento-carte h3 a::after { content: ""; display: inline-block; width: 18px; height: 18px; margin-left: 8px; vertical-align: -2px; background: var(--terre-clair); -webkit-mask: var(--ico-fleche) center / contain no-repeat; mask: var(--ico-fleche) center / contain no-repeat; transition: transform .25s; }
.bento-carte:hover h3 a::after { transform: translateX(4px); }
.bento-court { margin: 0; font-size: 14.5px; line-height: 1.5; color: rgba(255,255,255,.82); max-width: 460px; }
.bento-grande .bento-court { font-size: 16px; }

.services-atouts { display: flex; align-items: center; gap: 32px; margin-top: 20px; padding: 22px 26px; border-radius: var(--r-carte); background: var(--nuit); color: rgba(255,255,255,.72); }
.services-atouts .atout { display: grid; grid-template-columns: 22px auto; align-items: center; column-gap: 14px; margin: 0; font-size: 13.5px; line-height: 1.35; --ico-t: 22px; --ico-c: var(--terre-clair); }
.services-atouts .atout::before { grid-row: span 2; }
.services-atouts .atout strong { display: block; font-size: 15px; color: var(--blanc); }
.services-atouts .atouts-boutons { margin-left: auto; }

/* ---- Accueil : produits locaux ---- */
.produits-grille { display: grid; grid-template-columns: 1fr 1.15fr; gap: 28px; align-items: stretch; }
.produits-recit { position: relative; isolation: isolate; display: flex; align-items: flex-end; min-height: 580px; border-radius: var(--r-carte); overflow: hidden; color: rgba(255,255,255,.82); }
.produits-recit .produits-recit-photo { position: absolute; inset: 0; z-index: -2; margin: 0; }
.produits-recit .produits-recit-photo img { width: 100%; height: 100%; object-fit: cover; }
.produits-recit::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(27,23,16,.95) 0%, rgba(27,23,16,.7) 42%, rgba(147,53,28,.28) 100%); }
.produits-recit-texte { padding: 40px; }
.produits-recit-texte .titre-section { color: var(--blanc); font-size: 40px; margin-bottom: 16px; }
.produits-recit-texte > p:not(.sur-titre-clair) { font-size: 16px; }
.produits-atouts { display: grid; gap: 10px; margin: 22px 0 30px; padding: 0; list-style: none; }
.produits-atouts li { display: flex; align-items: center; gap: 12px; color: var(--blanc); font-weight: 600; font-size: 15px; --ico-t: 20px; --ico-c: var(--terre-clair); }
.produits-vitrine { display: flex; flex-direction: column; padding: 36px; border-radius: var(--r-carte); background: var(--creme); }
.produits-vitrine .titre-ligne { margin-bottom: 26px; }
.produits-vitrine .titre-ligne .lien-fleche, .services-accueil .titre-ligne .lien-fleche { flex: none; white-space: nowrap; }
.produits-vitrine .sur-titre-sombre { margin-bottom: 8px; }
.produits-vitrine-titre { margin: 0; font-size: 28px; }
.wp-block-query.produits-accueil { flex: 1; display: block; }
.grille-produits-accueil { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin: 0; padding: 0; list-style: none; }
.carte-produit-accueil { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--sable); border-radius: var(--r-carte); overflow: hidden; background: var(--blanc); transition: box-shadow .3s, transform .3s; }
.carte-produit-accueil:hover { transform: translateY(-4px); box-shadow: 0 22px 44px rgba(27,23,16,.12); }
.carte-produit-accueil .produit-image { margin: 0; aspect-ratio: 1 / 1; overflow: hidden; background: var(--sable); }
.carte-produit-accueil .produit-image a { display: block; height: 100%; }
.carte-produit-accueil .produit-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.carte-produit-accueil:hover .produit-image img { transform: scale(1.05); }
.carte-produit-accueil .produit-texte { display: flex; flex-direction: column; flex: 1; padding: 18px 20px 20px; }
.carte-produit-accueil .wp-block-post-title { margin: 0; font-size: 19px; line-height: 1.15; }
.carte-produit-accueil .wp-block-post-title a { color: var(--nuit); text-decoration: none; }
.carte-produit-accueil .wc-block-components-product-price { display: block; margin: 8px 0 14px; font-family: var(--titre); font-weight: 800; font-size: 19px; color: var(--terre); }
.carte-produit-accueil .wp-block-read-more { margin-top: auto; }

/* ---- Page Services : sommaire et prestations ---- */
.prestations-entete { max-width: 780px; margin: 0 auto; }
.prestations-sommaire { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 0 0 40px; }
.sommaire-lien { display: flex; align-items: center; gap: 10px; margin: 0; padding: 9px 18px 9px 14px; border: 1px solid var(--sable); border-radius: 999px; background: var(--blanc); font-size: 14px; font-weight: 600; --ico-t: 18px; --ico-c: var(--terre); transition: border-color .2s, background .2s; }
.sommaire-lien:hover { border-color: var(--terre); background: var(--creme); }
.sommaire-lien a { display: flex; gap: 8px; color: var(--nuit); text-decoration: none; }
.sommaire-lien span { color: var(--terre); font-weight: 800; }

.prestation { display: grid; grid-template-columns: 1.05fr 1fr; gap: 72px; align-items: center; padding: 64px 0; border-top: 1px solid var(--sable); scroll-margin-top: 110px; }
.prestation-inverse .prestation-visuel { order: 2; }
.prestation-visuel { position: relative; }
.prestation-visuel .prestation-photo { margin: 0; }
.prestation-visuel .prestation-photo img { width: 100%; height: 470px; object-fit: cover; border-radius: var(--r-carte); box-shadow: 0 30px 60px rgba(27,23,16,.16); }
.prestation-num { position: absolute; right: -20px; bottom: -22px; margin: 0; padding: 14px 20px; border-radius: var(--r-carte); background: var(--terre); color: var(--blanc); font-family: var(--titre); font-weight: 800; font-size: 34px; line-height: 1; box-shadow: 0 18px 36px rgba(178,67,38,.35); }
.prestation-inverse .prestation-num { right: auto; left: -20px; }
.prestation-pastille { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 16px; padding: 7px 14px 7px 12px; border-radius: 999px; background: var(--creme); color: var(--terre); font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; --ico-t: 17px; --ico-c: var(--terre); }
.prestation-titre { margin: 0 0 16px; font-size: 38px; }
.prestation-texte > p:not(.prestation-pastille) { font-size: 16.5px; }
.coches.coches-deux { grid-template-columns: 1fr 1fr; gap: 10px 22px; }
.wp-block-buttons.prestation-boutons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

/* boutons avec icône (WhatsApp, e-mail, téléphone) */
.wp-block-button:is(.b-whatsapp, .b-mail, .b-tel) .wp-block-button__link { gap: 10px; }
.wp-block-button:is(.b-whatsapp, .b-mail, .b-tel) .wp-block-button__link::before { content: ""; flex: none; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ico-whatsapp) center / contain no-repeat; mask: var(--ico-whatsapp) center / contain no-repeat; }
.wp-block-button.b-mail .wp-block-button__link::before { -webkit-mask-image: var(--ico-mail); mask-image: var(--ico-mail); }
.wp-block-button.b-tel .wp-block-button__link::before { -webkit-mask-image: var(--ico-telephone); mask-image: var(--ico-telephone); }
.wp-block-buttons.contact-rapide { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 44px; }

.credits-page { margin: 28px 0 0; font-size: 12px; line-height: 1.5; text-align: center; color: rgba(27,23,16,.5); }

/* ---- Responsive ---- */
@media (max-width: 1100px) {
  .bento-services { grid-template-columns: 1fr 1fr; grid-template-rows: 380px 270px 270px; }
  .bento-grande { grid-row: auto; grid-column: 1 / -1; }
  .services-atouts { flex-wrap: wrap; gap: 18px 28px; }
  .services-atouts .atouts-boutons { margin-left: 0; width: 100%; }
  .produits-grille { grid-template-columns: 1fr; }
  .produits-recit { min-height: 460px; }
  .prestation { grid-template-columns: 1fr; gap: 44px; padding: 52px 0; }
  .prestation-inverse .prestation-visuel { order: 0; }
  .prestation-visuel .prestation-photo img { height: 400px; }
  .prestation-inverse .prestation-num { left: auto; right: -12px; }
  .prestation-num { right: -12px; }
}
@media (max-width: 760px) {
  .bento-services { grid-template-columns: 1fr; grid-template-rows: none; grid-auto-rows: 300px; gap: 14px; }
  .bento-grande { grid-row: auto; grid-column: auto; }
  .bento-services > .bento-carte:first-child { min-height: 360px; }
  .bento-grande h3 { font-size: 27px; }
  .services-atouts { flex-direction: column; align-items: flex-start; padding: 22px; }
  .services-atouts .atouts-boutons .wp-block-button, .services-atouts .atouts-boutons .wp-block-button__link { width: 100%; justify-content: space-between; }
  .produits-recit { min-height: 0; }
  .produits-recit-texte { padding: 120px 24px 28px; }
  .produits-recit-texte .titre-section { font-size: 32px; }
  .produits-vitrine { padding: 24px 20px; }
  .produits-vitrine .titre-ligne { flex-direction: column; align-items: flex-start; gap: 10px; }
  .prestations-sommaire { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; margin: 0 -24px 32px; padding: 0 24px 6px; scrollbar-width: none; }
  .prestations-sommaire::-webkit-scrollbar { display: none; }
  .sommaire-lien { flex: none; white-space: nowrap; }
  .prestation { gap: 36px; padding: 44px 0; }
  .prestation-visuel .prestation-photo img { height: 280px; }
  .prestation-num { font-size: 26px; padding: 11px 15px; right: 12px; bottom: -18px; }
  .prestation-inverse .prestation-num { right: 12px; }
  .prestation-titre { font-size: 30px; }
  .coches.coches-deux { grid-template-columns: 1fr; }
  .wp-block-buttons.prestation-boutons .wp-block-button, .wp-block-buttons.prestation-boutons .wp-block-button__link, .wp-block-buttons.contact-rapide .wp-block-button, .wp-block-buttons.contact-rapide .wp-block-button__link { width: 100%; justify-content: center; }
}
@media (max-width: 480px) {
  .grille-produits-accueil { gap: 12px; }
  .carte-produit-accueil .produit-texte { padding: 12px 12px 14px; }
  .carte-produit-accueil .wp-block-post-title { font-size: 15px; }
  .carte-produit-accueil .wc-block-components-product-price { font-size: 16px; margin: 6px 0 10px; }
  .carte-produit-accueil .wp-block-read-more { font-size: 13px; }
}

/* =====================================================================
   Fiche produit premium — scène « galerie d'art » + panneau d'achat
   ===================================================================== */
.fiche-produit.wp-block-group { padding: 0 !important; }

/* ---- Scène : moitié gauche sombre et tissée, moitié droite crème ---- */
.fiche-scene { position: relative; isolation: isolate; padding: 150px 0 96px; background: linear-gradient(90deg, var(--nuit) 0 50%, var(--creme) 50% 100%); overflow: hidden; }
.admin-bar .fiche-scene { padding-top: 166px; }
.fiche-scene::before { content: ""; position: absolute; z-index: -1; inset: 0 50% 0 0;
  background:
    radial-gradient(circle at 45% 52%, rgba(178,67,38,.42) 0, rgba(178,67,38,0) 46%),
    repeating-linear-gradient(45deg, rgba(232,135,95,.075) 0 1.5px, transparent 1.5px 26px),
    repeating-linear-gradient(-45deg, rgba(232,135,95,.075) 0 1.5px, transparent 1.5px 26px); }
.fiche-scene::after { content: ""; position: absolute; z-index: -1; left: 0; right: 50%; bottom: 0; height: 10px;
  background: repeating-linear-gradient(90deg, var(--terre) 0 28px, var(--terre-clair) 28px 40px, #e9b949 40px 52px, var(--nuit) 52px 60px); opacity: .9; }
.fiche-grille { display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 560px; }

/* ---- Visuel : la pièce encadrée comme une œuvre ---- */
.fiche-visuel { position: relative; display: grid; place-items: center; padding: 30px 64px 30px 0; min-height: 520px; }
.fiche-galerie { position: relative; width: 100%; display: grid; place-items: center; }
.fiche-galerie .woocommerce-product-gallery { position: relative; float: none !important; width: auto !important; max-width: 100%; margin: 0 !important; }
.fiche-galerie .woocommerce-product-gallery__wrapper { margin: 0; }
.fiche-galerie .woocommerce-product-gallery__image { display: block !important; padding: 16px 16px 46px; border-radius: 6px; background: #fbf7f0; box-shadow: 0 40px 80px rgba(0,0,0,.45), 0 0 0 1px rgba(255,255,255,.06); transform: rotate(-2.5deg); transition: transform .6s cubic-bezier(.2,.7,.2,1); animation: fiche-flotte 7s ease-in-out infinite; }
.fiche-galerie .woocommerce-product-gallery__image:hover { transform: rotate(0) scale(1.02); }
.fiche-galerie .woocommerce-product-gallery__image a { display: block !important; }
.fiche-galerie .woocommerce-product-gallery__image img { display: block; width: auto !important; min-width: 280px; max-width: min(100%, 440px); height: auto !important; max-height: 440px; object-fit: contain; border-radius: 3px; }
@keyframes fiche-flotte { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
@media (prefers-reduced-motion: reduce) { .fiche-galerie .woocommerce-product-gallery__image { animation: none; } }
.fiche-galerie .woocommerce-product-gallery__trigger { position: absolute; z-index: 3; top: -14px; right: -14px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--blanc); box-shadow: 0 10px 24px rgba(0,0,0,.25); font-size: 0; }
.fiche-galerie .woocommerce-product-gallery__trigger span { display: none; }
.fiche-galerie .woocommerce-product-gallery__trigger::before { content: ""; width: 18px; height: 18px; background: var(--nuit); -webkit-mask: var(--ico-agrandir) center / contain no-repeat; mask: var(--ico-agrandir) center / contain no-repeat; }
.fiche-galerie .onsale { position: absolute; z-index: 3; top: -18px; left: -18px; display: grid; place-items: center; width: 64px; height: 64px; min-height: 0; margin: 0; padding: 0; border-radius: 50%; background: #e9b949 !important; color: var(--nuit); font: 700 12px/1 var(--texte); letter-spacing: .06em; text-transform: uppercase; }
.fiche-galerie .flex-control-thumbs { display: flex !important; justify-content: center; gap: 12px; margin: 28px 0 0 !important; padding: 0; list-style: none; }
.fiche-galerie .flex-control-thumbs li { width: 64px !important; float: none !important; padding: 5px; border-radius: 6px; background: #fbf7f0; }
.fiche-galerie .flex-control-thumbs img { border-radius: 3px; opacity: .6; transition: opacity .2s; }
.fiche-galerie .flex-control-thumbs img.flex-active, .fiche-galerie .flex-control-thumbs img:hover { opacity: 1; }

/* tampon « 100 % fait main » */
.fiche-tampon { position: absolute; z-index: 4; top: 6px; left: 0; display: grid; place-content: center; width: 104px; height: 104px; margin: 0; border-radius: 50%; background: var(--terre); color: var(--blanc); text-align: center; font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; line-height: 1.2; outline: 1.5px dashed rgba(255,255,255,.55); outline-offset: -9px; transform: rotate(-12deg); box-shadow: 0 16px 34px rgba(0,0,0,.35); }
.fiche-tampon strong { display: block; font-family: var(--titre); font-size: 24px; letter-spacing: 0; }
.fiche-etiquettes { position: absolute; z-index: 4; left: 0; bottom: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.fiche-etiquettes p { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 8px 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(255,255,255,.08); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: rgba(255,255,255,.88); font-size: 12.5px; font-weight: 600; --ico-t: 14px; --ico-c: var(--terre-clair); }

/* ---- Panneau d'achat ---- */
.fiche-infos { padding-left: 72px; scroll-margin-top: 110px; }
.fiche-fil { margin: 0 0 22px; font-size: 12.5px; color: rgba(27,23,16,.5); }
.fiche-fil a { color: var(--nuit); text-decoration: none; }
.fiche-fil a:hover { color: var(--terre); }
.fiche-surtitre { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--terre); }
.fiche-surtitre::before { content: ""; width: 30px; height: 2px; background: var(--terre); }
.fiche-titre.wp-block-post-title { margin: 0 0 12px; font-family: var(--titre); font-size: 54px; font-weight: 800; line-height: .98; letter-spacing: -.01em; text-transform: uppercase; color: var(--nuit); }
.fiche-note { margin: 0 0 6px; }
.fiche-note .wc-block-components-product-rating__stars { color: #e9a21b; }
.fiche-prix { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 14px; margin: 18px 0 20px; }
.fiche-prix .wc-block-components-product-price { font-family: var(--titre); font-size: 40px; font-weight: 800; line-height: 1; color: var(--terre); }
.fiche-prix .woocommerce-Price-currencySymbol { margin-left: 3px; font-size: .48em; vertical-align: .8em; }
.fiche-prix del { font-size: .5em; color: rgba(27,23,16,.4); margin-right: 8px; }
.fiche-prix ins { text-decoration: none; }
.fiche-prix-note { margin: 0; padding: 4px 10px; border-radius: 999px; background: rgba(27,23,16,.06); font-size: 12px; color: rgba(27,23,16,.6); }
.fiche-extrait { margin: 0 0 26px; max-width: 470px; }
.fiche-extrait p, .fiche-extrait .wp-block-post-excerpt__excerpt { margin: 0; font-size: 16px; line-height: 1.65; color: rgba(27,23,16,.75); }
.fiche-label { margin: 0 0 12px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--nuit); }

/* quantité en pastilles */
.fiche-panier form.cart { display: flex !important; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 !important; }
.fiche-panier form.cart::before, .fiche-panier form.cart::after { display: none !important; }
.fiche-panier .wc-block-components-quantity-selector { flex: 0 0 100% !important; float: none !important; display: flex !important; justify-content: flex-start; align-items: center; gap: 10px; width: 100% !important; max-width: none !important; margin: 0 0 14px !important; border: 0 !important; background: none !important; }
.fiche-panier .wc-block-components-quantity-selector::after { display: none !important; }
.fiche-panier .wc-block-components-quantity-selector__button { display: grid; place-items: center; width: 38px; min-width: 38px; height: 38px; padding: 0; border: 1.5px solid rgba(27,23,16,.15); border-radius: 50%; background: var(--blanc); color: var(--nuit); font: 600 18px/1 var(--texte); cursor: pointer; opacity: 1 !important; transition: background .2s, border-color .2s, color .2s; }
.fiche-panier .wc-block-components-quantity-selector__button:hover { background: var(--nuit); border-color: var(--nuit); color: var(--blanc); }
.fiche-panier .wc-block-components-quantity-selector__input { flex: 0 0 64px !important; width: 64px !important; min-width: 0 !important; height: 38px; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 999px; background: var(--blanc) !important; color: var(--nuit); font: 700 15px var(--texte); text-align: center; -moz-appearance: textfield; box-shadow: none !important; }
.fiche-panier .wc-block-components-quantity-selector__input::-webkit-outer-spin-button, .fiche-panier .wc-block-components-quantity-selector__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fiche-panier .single_add_to_cart_button { display: inline-flex !important; align-items: center; justify-content: center; gap: 12px; min-width: 0; height: 58px; margin: 0 !important; padding: 0 26px !important; border: 0; border-radius: 999px !important; background: var(--nuit) !important; color: var(--blanc) !important; font: 600 16px var(--texte) !important; text-transform: none !important; box-shadow: 0 16px 34px rgba(27,23,16,.25); transition: background .2s, transform .2s; }
.fiche-panier .single_add_to_cart_button::after { content: ""; width: 18px; height: 18px; background: currentColor; -webkit-mask: var(--ico-fleche) center / contain no-repeat; mask: var(--ico-fleche) center / contain no-repeat; transition: transform .2s; }
.fiche-panier .single_add_to_cart_button:hover { background: var(--terre) !important; transform: translateY(-2px); }
.fiche-panier .single_add_to_cart_button:hover::after { transform: translateX(3px); }
.bouton-whatsapp { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 58px; padding: 0 22px; border: 1.5px solid rgba(27,23,16,.14); border-radius: 999px; background: var(--blanc); color: var(--nuit); font: 600 15px var(--texte); text-decoration: none; transition: border-color .2s, background .2s; }
.bouton-whatsapp::before { content: ""; flex: none; width: 20px; height: 20px; background: #1fa855; -webkit-mask: var(--ico-whatsapp) center / contain no-repeat; mask: var(--ico-whatsapp) center / contain no-repeat; }
.bouton-whatsapp:hover { border-color: #1fa855; background: #effaf3; color: var(--nuit); }

/* garanties en tuiles */
.fiche-garanties { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 30px; }
.fiche-garanties p { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 16px; border-radius: 14px; background: var(--blanc); font-size: 12.5px; line-height: 1.35; color: rgba(27,23,16,.6); --ico-t: 20px; --ico-c: var(--terre); }
.fiche-garanties p::before { margin-bottom: 10px; }
.fiche-garanties strong { font-size: 14px; color: var(--nuit); }

/* ---- L'histoire de la pièce + commande en 3 étapes ---- */
.fiche-histoire-grille { display: grid; grid-template-columns: 1.35fr 1fr; gap: 72px; align-items: start; }
.fiche-histoire-texte .titre-section { max-width: 560px; }
.fiche-description p { max-width: 640px; font-size: 17px; line-height: 1.75; color: rgba(27,23,16,.78); }
.fiche-description p:first-child::first-letter { float: left; margin: 6px 12px 0 0; font-family: var(--titre); font-size: 64px; font-weight: 800; line-height: .8; color: var(--terre); }
.fiche-etapes { position: relative; isolation: isolate; padding: 38px 36px; border-radius: 22px; background: var(--nuit); color: rgba(255,255,255,.75); overflow: hidden; }
.fiche-etapes::before { content: ""; position: absolute; z-index: -1; inset: 0; background: repeating-linear-gradient(45deg, rgba(232,135,95,.06) 0 1.5px, transparent 1.5px 24px), radial-gradient(circle at 100% 0, rgba(178,67,38,.45), transparent 55%); }
.fiche-etapes h3 { margin: 0 0 24px; font-size: 26px; color: var(--blanc); }
.fiche-etapes-liste { display: grid; gap: 20px; margin: 0 0 30px; padding: 0; list-style: none; counter-reset: etape; }
.fiche-etapes-liste li { position: relative; padding-left: 56px; font-size: 14px; line-height: 1.5; counter-increment: etape; }
.fiche-etapes-liste li::before { content: counter(etape); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 38px; height: 38px; border: 1.5px solid var(--terre-clair); border-radius: 50%; color: var(--terre-clair); font: 800 16px var(--titre); }
.fiche-etapes-liste strong { display: block; margin-bottom: 2px; font-size: 16px; color: var(--blanc); }

/* ---- Avis ---- */
.fiche-avis.section { padding-top: 0; }
.fiche-details .woocommerce-tabs ul.tabs { display: flex; gap: 10px; margin: 0 0 22px !important; padding: 0 !important; border: 0 !important; list-style: none; }
.fiche-details .woocommerce-tabs ul.tabs::before, .fiche-details .woocommerce-tabs ul.tabs::after, .fiche-details .woocommerce-tabs ul.tabs li::before, .fiche-details .woocommerce-tabs ul.tabs li::after { display: none !important; }
.fiche-details .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
.fiche-details .woocommerce-tabs ul.tabs li a { display: block; padding: 11px 22px !important; border-radius: 999px; background: var(--nuit); color: var(--blanc) !important; font: 600 14px var(--texte); text-decoration: none; }
.fiche-details .woocommerce-Tabs-panel { margin: 0 !important; padding: 34px 36px !important; border: 1px solid var(--sable); border-radius: 22px; background: var(--blanc); }
.fiche-details .woocommerce-Reviews-title, .fiche-details .comment-reply-title { display: block; margin: 0 0 14px; font-family: var(--titre); font-size: 22px; font-weight: 800; text-transform: uppercase; color: var(--nuit); }
.fiche-details .woocommerce-noreviews { margin: 0 0 20px; color: rgba(27,23,16,.6); }
.fiche-details #review_form input:not([type="submit"]):not([type="checkbox"]), .fiche-details #review_form textarea { width: 100%; padding: 12px 14px; border: 1.5px solid var(--sable); border-radius: 12px; background: var(--creme); font: 15px var(--texte); }
.fiche-details #review_form .form-submit input { padding: 14px 26px; border: 0; border-radius: 999px; background: var(--nuit); color: var(--blanc); font: 600 15px var(--texte); cursor: pointer; }
.fiche-details .stars a { color: #e9a21b; }

/* ---- Vous aimerez aussi ---- */
.fiche-autres-section { background: var(--creme); }
.grille-produits-accueil.grille-produits-4 { grid-template-columns: repeat(4, 1fr); }

/* ---- Barre d'achat mobile ---- */
.fiche-barre { display: none; }

/* ---- Responsive ---- */
@media (max-width: 1100px) {
  .fiche-scene { padding: 0 0 64px; background: var(--creme); }
  .fiche-scene::before, .fiche-scene::after { display: none; }
  .fiche-grille { grid-template-columns: 1fr; min-height: 0; }
  .fiche-visuel { min-height: 0; margin: 0 calc(50% - 50vw) 48px; padding: 130px 24px 80px;
    background:
      radial-gradient(circle at 50% 50%, rgba(178,67,38,.42) 0, rgba(178,67,38,0) 55%),
      repeating-linear-gradient(45deg, rgba(232,135,95,.075) 0 1.5px, transparent 1.5px 26px),
      repeating-linear-gradient(-45deg, rgba(232,135,95,.075) 0 1.5px, transparent 1.5px 26px),
      var(--nuit); }
  .admin-bar .fiche-visuel { padding-top: 160px; }
  .fiche-visuel::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; background: repeating-linear-gradient(90deg, var(--terre) 0 28px, var(--terre-clair) 28px 40px, #e9b949 40px 52px, var(--nuit) 52px 60px); }
  .fiche-tampon { top: 104px; left: max(24px, calc(50% - 300px)); }
  .fiche-etiquettes { left: 24px; right: 24px; bottom: 24px; justify-content: center; }
  .fiche-infos { padding-left: 0; }
  .fiche-histoire-grille { grid-template-columns: 1fr; gap: 40px; }
  .grille-produits-accueil.grille-produits-4 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .fiche-visuel { padding: 120px 20px 84px; }
  .fiche-tampon { top: 92px; left: 18px; width: 84px; height: 84px; font-size: 9px; }
  .fiche-tampon strong { font-size: 19px; }
  .fiche-galerie .woocommerce-product-gallery__image { padding: 12px 12px 34px; }
  .fiche-galerie .woocommerce-product-gallery__image img { min-width: 0; max-width: 100%; max-height: 360px; }
  .fiche-titre.wp-block-post-title { font-size: 36px; }
  .fiche-prix .wc-block-components-product-price { font-size: 32px; }
  .fiche-panier .single_add_to_cart_button, .bouton-whatsapp { flex: 1 1 100%; width: 100%; min-width: 0; }
  .fiche-garanties { grid-template-columns: 1fr; }
  .fiche-garanties p { flex-direction: row; flex-wrap: wrap; align-items: center; column-gap: 12px; }
  .fiche-garanties p::before { margin: 0; }
  .fiche-description p:first-child::first-letter { font-size: 52px; }
  .fiche-etapes { padding: 30px 24px; }
  .fiche-details .woocommerce-Tabs-panel { padding: 24px 20px !important; }
  .grille-produits-accueil.grille-produits-4 { grid-template-columns: repeat(2, 1fr); }
  /* barre fixe : prix + bouton « Commander » */
  .fiche-barre { position: fixed; z-index: 60; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: var(--nuit); box-shadow: 0 -12px 30px rgba(0,0,0,.25); }
  .fiche-barre .wc-block-components-product-price { font-family: var(--titre); font-size: 22px; font-weight: 800; color: var(--blanc); }
  .fiche-barre .wp-block-buttons { margin: 0; }
  .fiche-produit.wp-block-group { padding-bottom: 72px !important; }
}

/* boutons côte à côte : ils se partagent la largeur du panneau */
@media (min-width: 761px) {
  .fiche-panier .single_add_to_cart_button, .fiche-panier .bouton-whatsapp { flex: 1 1 0; min-width: 0; padding: 0 18px !important; font-size: 15px !important; white-space: nowrap; }
}
/* sélecteur de langue flottant : au-dessus de la barre d'achat mobile */
@media (max-width: 760px) {
  body:has(.fiche-barre) #gt_float_wrapper { bottom: 86px !important; }
}

/* =====================================================================
   Correctifs responsive (chargés en dernier)
   ===================================================================== */

/* Article à la une (Destinations) : une seule colonne dès la tablette */
@media (max-width: 1100px) {
  .article-une-carte { grid-template-columns: 1fr !important; grid-template-rows: none !important; }
  .article-une-carte > * { grid-column: 1 !important; grid-row: auto !important; }
  .article-une-carte .wp-block-post-featured-image { min-height: 0; height: 340px; }
  .article-une-carte .wp-block-post-terms.etiquette { margin-top: 30px; }
  .article-une-carte .wp-block-read-more { margin-bottom: 34px; }
}
@media (max-width: 760px) {
  .article-une-carte > :not(.wp-block-post-featured-image) { margin-inline: 22px !important; }
  .article-une-carte .wp-block-post-featured-image { height: 230px; }
  .article-une-carte .wp-block-post-title { font-size: 24px; }
  .article-une-carte .wp-block-read-more { align-self: start; }

  /* Accueil : cartes de services empilées sans chevauchement (hauteur libre) */
  .bento-services { grid-auto-rows: auto !important; }
  .bento-services > .bento-carte { min-height: 300px; }
  .bento-services > .bento-carte:first-child { min-height: 360px; }

  /* Accueil : carte carrousel du hero centrée */
  .hero .carte-hero { align-self: center !important; margin-left: auto !important; margin-right: auto !important; }
}

/* Destinations : texte de présentation des régions */
.destinations-texte { padding-top: 0; }
.destinations-texte-grille { display: grid; grid-template-columns: 1fr 1.4fr; gap: 56px; padding-top: 56px; border-top: 1px solid var(--sable); }
.destinations-texte-grille p:not(.sur-titre-sombre) { font-size: 16px; line-height: 1.75; color: rgba(27,23,16,.78); }
.destinations-texte-grille a { color: var(--terre); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1100px) { .destinations-texte-grille { grid-template-columns: 1fr; gap: 12px; } }
