/* ═══════════════════════════════════════════════════════════════════════════
   AIMER CAMPER — composants de pages (chargés en plus de ac-portail.css)
   Fiche camping, page À propos, blocs éditoriaux. (Extensible : listing, quiz...)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── PAGE MARQUE (chaîne de camping, taxonomy.php $is_brand) ─────────────────── */
.thead .brand-lead{max-width:none;font-size:1rem;line-height:1.8;margin-top:14px;color:var(--ac-graphite)}
.brand-lead strong{background:linear-gradient(180deg,transparent 62%,rgba(var(--portail-accent-rgb),.28) 62%);padding:0 .06em;font-weight:700;color:var(--ac-black)}
.brand-stats{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}
.brand-stats .badge{font-size:.8rem;padding:7px 14px}
.brand-stats .badge strong{font-family:var(--ac-font-display);font-style:italic;font-weight:800}
.guide-blocks{display:flex;flex-direction:column;gap:18px}
.gb-card{background:var(--ac-white);border:1px solid var(--ac-line);border-left:4px solid var(--portail-accent);border-radius:var(--r-lg);padding:clamp(22px,3vw,32px)}
.gb-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:14px}
.gb-idx{flex-shrink:0;font-family:var(--ac-font-display);font-style:italic;font-size:1.6rem;font-weight:800;color:rgba(var(--portail-accent-rgb),.35);line-height:1}
.gb-head .eyebrow{display:block;margin-bottom:6px;color:var(--portail-accent)}
.gb-head h3{font-size:1.25rem;margin:0}
.gb-card h4{font-size:1rem;margin:0 0 8px}
.gb-card .prose{max-width:none}
.gb-card .prose:first-of-type{margin-top:0}
.gb-card .prose strong{background:linear-gradient(180deg,transparent 62%,rgba(var(--portail-accent-rgb),.28) 62%);padding:0 .06em;font-weight:700;color:var(--ac-black)}
.gb-subs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:16px}
.gb-sub{background:var(--ac-paper);border:1px solid var(--ac-line);border-radius:var(--r-md);padding:18px 20px}
.gb-sub .prose{margin-top:0}
.gb-essentiel{background:var(--ac-black);border-color:var(--ac-black);border-left-color:var(--portail-accent)}
.gb-essentiel .gb-idx{color:rgba(var(--portail-accent-rgb),.5)}
.gb-essentiel h3{color:#fff}
.gb-essentiel .prose,.gb-essentiel .prose p,.gb-essentiel .prose li{color:rgba(255,255,255,.96)}
.gb-essentiel .prose strong{background:linear-gradient(180deg,transparent 62%,rgba(var(--portail-accent-rgb),.45) 62%);color:#fff}

/* ── FICHE CAMPING ─────────────────────────────────────────────────────────── */
.fh-hero{height:340px;border-radius:var(--r-lg);overflow:hidden;margin-top:20px;background:var(--ac-paper-dark)}
.fh-hero img{width:100%;height:100%;object-fit:cover}
.fhead{padding:22px 0 6px}
.fhead h1{margin:8px 0}
.fhead .badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--ac-font-ui);font-size:.72rem;font-weight:600;padding:5px 11px;border-radius:999px}
.badge.accent{background:rgba(var(--portail-accent-rgb),.1);color:var(--portail-accent);border:1px solid rgba(var(--portail-accent-rgb),.25)}
.badge.gray{background:var(--ac-ink);border:1px solid var(--ac-ink);color:var(--ac-paper)}
.fhead .meta{display:flex;flex-wrap:wrap;gap:14px;font-family:var(--ac-font-ui);font-size:.9rem;color:var(--ac-stone);align-items:center}
.fhead .meta .stars{color:var(--portail-accent);letter-spacing:1px}
.fhead .meta .rate b{color:var(--ac-black);font-family:var(--ac-font-display);font-style:italic}
.fiche{display:grid;grid-template-columns:1fr 350px;gap:40px;align-items:start;padding:26px 0 40px}
@media(max-width:960px){.fiche{grid-template-columns:1fr}}
.fmain>section{padding:24px 0;border-top:1px solid var(--ac-line)}
.fmain>section:first-child{border-top:0}
.fmain h2{margin-bottom:14px}
/* Mobile : plus d'air horizontal (retour Théo 20/08/2026, "collé sur les bordures" - la
 * galerie a déjà son padding via .container, .fhead/.fiche restent au même 24px de base)
 * et plus d'espace vertical entre les sections (fmain>section ne profite pas du gap:40px
 * de la grille .fiche, qui ne s'applique qu'entre les 2 colonnes, jamais entre les sections
 * empilées à l'intérieur de .fmain). Placé après les règles de base ci-dessus : même
 * spécificité, doit être plus tard dans la cascade pour l'emporter en dessous de 640px. */
@media(max-width:640px){
  .container.fhead,.container.fiche{padding-left:28px;padding-right:28px}
  .fmain>section{padding:34px 0}
}
.amen{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:640px){.amen{grid-template-columns:repeat(2,1fr)}}
.amen div{display:flex;align-items:center;gap:9px;font-family:var(--ac-font-ui);font-size:.88rem;color:var(--ac-graphite);padding:7px 0}
.amen .ic{color:var(--portail-accent);flex-shrink:0}
.forts{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(max-width:560px){.forts{grid-template-columns:1fr}}
.fort{display:flex;gap:10px;font-family:var(--ac-font-ui);font-size:.92rem;color:var(--ac-graphite)}
.fort::before{content:"\2713";color:var(--portail-accent);font-weight:800;flex-shrink:0}
.fort.has-ic::before{content:none}
.fort .fic{flex-shrink:0;font-size:1.05rem;line-height:1.3}

/* Présentation : fond teinté de l'accent du portail (transparence), pour casser la monotonie
 * tout en restant cohérent avec la couleur de marque plutôt qu'un gris neutre générique. */
.pres{background:var(--ac-sky);border:1px solid rgba(var(--portail-accent-rgb),.18);border-radius:var(--r-lg);padding:22px 24px}
.pres p:first-child{margin-top:0}.pres p:last-child{margin-bottom:0}
.book{position:sticky;top:86px;background:var(--ac-white);border:1px solid var(--ac-line);border-radius:var(--r-xl);box-shadow:var(--sh-md);padding:22px}
.book .price{font-family:var(--ac-font-ui);font-size:.9rem;color:var(--ac-stone)}
.book .price strong{font-family:var(--ac-font-display);font-style:italic;font-size:1.8rem;color:var(--ac-black)}
.book .rating{font-family:var(--ac-font-ui);font-size:.84rem;color:var(--ac-graphite);margin:8px 0 16px}
.book .cta{width:100%;margin-bottom:10px;white-space:normal;line-height:1.25;text-align:center}
.book .promo-camp{font-family:var(--ac-font-ui);font-size:.82rem;font-weight:600;color:var(--portail-accent);background:var(--ac-sky);border:1px dashed rgba(var(--portail-accent-rgb),.4);border-radius:var(--r-md);padding:8px 12px;margin-bottom:10px;text-align:center}
.book .note{font-family:var(--ac-font-ui);font-size:.76rem;color:var(--ac-stone);line-height:1.5;margin-top:14px;padding-top:14px;border-top:1px solid var(--ac-line)}
.book .note strong{color:var(--ac-black)}
.book .contact{list-style:none;margin-top:12px;display:flex;flex-direction:column;gap:6px;font-family:var(--ac-font-ui);font-size:.84rem}
.book .contact a:hover{color:var(--portail-accent)}
.tel-reveal{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;font-family:var(--ac-font-ui);font-size:.84rem;color:var(--portail-accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.tel-reveal:hover{color:var(--ac-black)}
.tel-revealed{display:inline-flex;align-items:center;gap:6px;color:var(--ac-black)}
.tel-revealed:hover{color:var(--portail-accent)}
.fmap{height:240px;border-radius:var(--r-lg);background:var(--ac-paper-dark);display:flex;align-items:center;justify-content:center;font-family:var(--ac-font-ui);font-size:.86rem;color:var(--ac-stone);text-align:center;padding:16px}
.fmap iframe{width:100%;height:100%;border:0;display:block}
.fadr{font-family:var(--ac-font-ui);font-size:.9rem;color:var(--ac-graphite);margin-top:12px}
.book-alt{display:block;text-align:center;font-family:var(--ac-font-ui);font-size:.88rem;font-weight:600;color:var(--ac-black);padding:11px;border:1px solid var(--ac-line);border-radius:var(--r-md);transition:border-color .2s}
.book-alt:hover{border-color:var(--ac-black)}

/* Galerie (hero + 4 vignettes) */
.gallery{position:relative;display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:380px;margin-top:20px;border-radius:var(--r-lg);overflow:hidden}
.gallery a{position:relative;overflow:hidden;display:block;background:var(--ac-paper-dark);cursor:zoom-in}
.gallery a img{width:100%;height:100%;object-fit:cover}
.gallery a:first-child{grid-row:1/3}
@media(max-width:760px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:160px 110px;height:auto}.gallery a:first-child{grid-column:1/3;grid-row:1}.gallery a:nth-child(4),.gallery a:nth-child(5){display:none}}

/* Bouton "Voir plus de photos (N)" : ancré dans un coin de la grille plutôt qu'en overlay
 * sur la 5ᵉ vignette, parce que cette 5ᵉ vignette est masquée en mobile (cf règle
 * nth-child ci-dessus) - un overlay dessus aurait disparu avec elle. */
.gallery-more-btn{position:absolute;right:12px;bottom:12px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:9px 16px;background:rgba(10,10,10,.72);color:#fff;border:none;border-radius:999px;font-family:var(--ac-font-ui);font-size:.82rem;font-weight:600;cursor:pointer;backdrop-filter:blur(2px);transition:background .15s}
.gallery-more-btn:hover{background:rgba(10,10,10,.88)}
@media(max-width:760px){.gallery-more-btn{right:8px;bottom:8px;padding:7px 13px;font-size:.75rem}}

/* Lightbox galerie : navigation dans toutes les photos, pas seulement les 5 de la grille */
.ac-lightbox{position:fixed;inset:0;background:rgba(10,10,10,.94);z-index:9999;display:none;align-items:center;justify-content:center}
.ac-lightbox.open{display:flex}
body.lb-lock{overflow:hidden}
.lb-stage{max-width:90vw;max-height:82vh;display:flex;align-items:center;justify-content:center}
.lb-img{max-width:90vw;max-height:82vh;object-fit:contain;border-radius:var(--r-md)}
.lb-close,.lb-prev,.lb-next{position:absolute;background:rgba(255,255,255,.12);border:none;color:#fff;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s}
.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:rgba(255,255,255,.24)}
.lb-close{top:20px;right:20px;width:44px;height:44px;font-size:1.6rem;line-height:1}
.lb-prev,.lb-next{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:2rem;font-family:var(--ac-font-ui)}
.lb-prev{left:16px}
.lb-next{right:16px}
.lb-count{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:#fff;font-size:.85rem;font-family:var(--ac-font-ui);background:rgba(255,255,255,.12);padding:6px 14px;border-radius:999px}
@media(max-width:640px){.lb-prev,.lb-next{width:40px;height:40px;font-size:1.5rem}.lb-close{width:36px;height:36px;font-size:1.3rem;top:12px;right:12px}}

/* Hébergements & tarifs */
.heb{display:flex;flex-direction:column;gap:12px}
.heb-row{display:grid;grid-template-columns:88px 1fr auto;gap:16px;align-items:center;border:1px solid var(--ac-line);border-radius:var(--r-lg);padding:12px;background:var(--ac-white)}
@media(max-width:560px){.heb-row{grid-template-columns:70px 1fr}.heb-row .heb-p{grid-column:1/3;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px}}
.heb-row img{width:88px;height:70px;border-radius:var(--r-md);object-fit:cover}
@media(max-width:560px){.heb-row img{width:70px;height:60px}}
.heb-n{font-family:var(--ac-font-display);font-style:italic;font-weight:800;font-size:1rem;color:var(--ac-black)}
.heb-d{font-family:var(--ac-font-ui);font-size:.8rem;color:var(--ac-stone)}
.heb-s{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.heb-s .tag{font-family:var(--ac-font-ui);font-size:.7rem;color:var(--ac-paper);background:var(--ac-ink);border:1px solid var(--ac-ink);border-radius:999px;padding:3px 9px}
.heb-p{font-family:var(--ac-font-ui);font-size:.82rem;color:var(--ac-graphite);text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.heb-p b{display:block;font-family:var(--ac-font-display);font-style:italic;font-size:1.05rem;color:var(--ac-black)}
.heb-cta{white-space:nowrap}

/* Infos pratiques : carte + icône par ligne (avant : grille nue directement dans la section,
 * jugée "pas finie visuellement" — même traitement de carte que .pres/.rate-sum). */
.infos-card{background:var(--ac-white);border:1px solid var(--ac-line);border-radius:var(--r-lg);padding:6px 24px}
.infos{display:grid;grid-template-columns:repeat(2,1fr);gap:0 34px}
@media(max-width:560px){.infos{grid-template-columns:1fr}}
.infos>div{display:flex;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--ac-line);font-family:var(--ac-font-ui);font-size:.9rem}
.infos .iic{flex-shrink:0;font-size:1.05rem;width:1.4em;text-align:center}
/* ilabel figé sur une ligne (flex:0 0 auto + nowrap) : avec flex:1 le libellé se
 * partageait la largeur avec ival et cassait au milieu ("Arrivée / départ", "Moyens
 * de paiement" coupés sur 3 lignes avec un mot seul par ligne), cf retour du
 * 2026-07-16. ival garde flex:1 + min-width:0 pour absorber le wrap à sa place :
 * les valeurs, plus longues, se prêtent mieux au retour à la ligne que les libellés. */
.infos .ilabel{flex:0 0 auto;white-space:nowrap;color:var(--ac-stone)}
.infos .ival{flex:1;min-width:0;color:var(--ac-black);font-weight:600;text-align:right}
.demo-tag{font-style:italic;font-weight:400;font-size:.68rem;color:var(--ac-stone);text-transform:uppercase;letter-spacing:.03em}

/* Avis */
.rate-sum{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;background:var(--ac-white);border:1px solid var(--ac-line);border-radius:var(--r-lg);padding:20px 24px;margin-bottom:18px}
.rate-big{font-family:var(--ac-font-display);font-style:italic;font-weight:900;font-size:2.4rem;color:var(--ac-black);line-height:1}
.rate-stars{color:var(--portail-accent);letter-spacing:2px}
.rate-src{font-family:var(--ac-font-ui);font-size:.78rem;color:var(--ac-stone);margin-top:4px}
.avis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
@media(max-width:640px){.avis-grid{grid-template-columns:1fr}}
.avis-card{border:1px solid var(--ac-line);border-radius:var(--r-lg);padding:20px;background:var(--ac-white)}
.avis-card .st{color:var(--portail-accent);letter-spacing:2px;font-size:.85rem}
.avis-card p{font-size:.9rem;margin:8px 0 12px;color:var(--ac-graphite)}
.avis-card .au{font-family:var(--ac-font-ui);font-size:.8rem;color:var(--ac-stone)}

/* Itinéraire */
.itin{background:var(--ac-white);border:1px solid var(--ac-line);border-radius:var(--r-lg);padding:20px}
.itin-form{display:flex;gap:10px;flex-wrap:wrap}
.itin-form input{flex:1;min-width:210px;border:1px solid var(--ac-line);border-radius:var(--r-md);padding:12px 14px;font-family:var(--ac-font-ui);font-size:.92rem}
.itin-form input:focus{outline:none;border-color:var(--portail-accent)}
.itin-res{display:none}
.itin-res.on{display:grid;grid-template-columns:auto auto 1fr;gap:26px;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--ac-line)}
@media(max-width:560px){.itin-res.on{grid-template-columns:1fr 1fr}.itin-note{grid-column:1/3}}
.itin-stat b{display:block;font-family:var(--ac-font-display);font-style:italic;font-size:1.5rem;color:var(--ac-black)}
.itin-stat small{font-family:var(--ac-font-ui);font-size:.7rem;color:var(--ac-stone);text-transform:uppercase;letter-spacing:.04em}
.itin-note{font-family:var(--ac-font-ui);font-size:.84rem;color:var(--ac-stone);line-height:1.5}

/* ── Itinéraire réel (plugin CPA Calculateur d'Itinéraire, cf render_calculator()) ──
 * .itin/.itin-form/.itin-res ci-dessus sont un habillage de secours si jamais le plugin
 * est désactivé ; en pratique c'est do_action('cpa_after_hebergements') qui rend cette
 * section, avec ses propres classes .cpa-itineraire-*, stylées par défaut pour un tout
 * autre thème (couleurs bleu marine codées en dur, police Nunito, carte + résultats
 * affichés en permanence dès le chargement). On resurface ici avec les tokens de la
 * fiche, sans toucher au CSS du plugin, et on masque carte + résultats tant qu'aucun
 * calcul n'a été fait (cf ac-portail.js pour le dépliage, plugin JS patché pour
 * n'initialiser Leaflet qu'au premier calcul réussi — sinon rendu vide/cassé). */
.fmain>div.cpa-itineraire-section{padding:26px 0;border-top:1px solid var(--ac-line)}
/* Le sélecteur ID l'emportait sur la règle de rythme ci-dessus (padding-top/bottom:0 écrasait
 * les 26px du combinateur .fmain>div) : pas de padding visible autour de la section, cf
 * retour du 2026-07-16. On aligne ici sur la même valeur plutôt que de dupliquer le 26px. */
#s-itineraire.cpa-itineraire-section{background:transparent;padding-top:26px!important;padding-bottom:26px!important}
#s-itineraire .cpa-itineraire-title{font-family:var(--ac-font-display)!important;font-style:italic;font-weight:800;font-size:clamp(1.4rem,2.4vw,1.9rem)!important;line-height:1.15!important;color:var(--ac-black)!important;text-align:left!important;letter-spacing:-.018em;margin:0 0 6px!important;text-transform:none}
#s-itineraire .cpa-itineraire-intro{text-align:left;font-family:var(--ac-font-body);color:var(--ac-graphite)!important;font-size:.95rem;margin-bottom:20px!important}
#s-itineraire .cpa-itineraire-input{border:1px solid var(--ac-line)!important;border-radius:var(--r-md)!important;font-family:var(--ac-font-ui)!important;font-size:.92rem!important}
#s-itineraire .cpa-itineraire-input:focus{border-color:var(--portail-accent)!important;box-shadow:0 0 0 3px rgba(var(--portail-accent-rgb),.15)!important}
#s-itineraire .cpa-itineraire-btn-geo{border-radius:var(--r-md)!important;border-color:var(--ac-line)!important;color:var(--portail-accent)!important}
#s-itineraire .cpa-itineraire-btn-geo:hover{border-color:var(--portail-accent)!important;background:var(--ac-sky)!important}
#s-itineraire .cpa-itineraire-btn-submit{background:var(--ac-black)!important;border-radius:var(--r-md)!important;font-family:var(--ac-font-ui)!important;box-shadow:none!important}
#s-itineraire .cpa-itineraire-btn-submit:hover:not(:disabled){background:var(--portail-accent)!important;box-shadow:none!important;transform:none!important}
#s-itineraire .cpa-itineraire-results{display:none;background:var(--ac-white)!important;border:1px solid var(--ac-line)!important;border-radius:var(--r-lg)!important;box-shadow:none!important}
#s-itineraire .cpa-itineraire-result-header{border-bottom-color:var(--ac-line)!important}
#s-itineraire .cpa-itineraire-summary{font-family:var(--ac-font-ui)!important;font-weight:600!important;color:var(--ac-black)!important}
#s-itineraire .cpa-itineraire-result-item{background:var(--ac-ink)!important;border-radius:var(--r-md)!important}
#s-itineraire .cpa-itineraire-result-item .cpa-itineraire-result-label{color:var(--ac-paper)!important}
#s-itineraire .cpa-itineraire-result-value{font-family:var(--ac-font-display)!important;font-style:italic;color:var(--ac-paper)!important}
#s-itineraire .cpa-itineraire-result-total{background:var(--ac-sky)!important}
#s-itineraire .cpa-itineraire-result-total .cpa-itineraire-result-value{color:var(--portail-accent)!important}
#s-itineraire .cpa-itineraire-btn-gmaps{background:var(--portail-accent)!important;border-radius:var(--r-md)!important;font-family:var(--ac-font-ui)!important;box-shadow:none!important}
#s-itineraire .cpa-itineraire-btn-gmaps:hover{filter:brightness(.93);box-shadow:none!important;transform:none!important}
#s-itineraire .cpa-itineraire-seo-text{border-top-color:var(--ac-line)!important}
#s-itineraire .cpa-itineraire-map{border-radius:var(--r-lg)!important;box-shadow:none!important;border:1px solid var(--ac-line)}
#s-itineraire .cpa-itineraire-map-col{display:none}
#s-itineraire.has-route-result .cpa-itineraire-map-col{display:block}
@media(min-width:768px){
	#s-itineraire .cpa-itineraire-form-col{flex:0 0 100%!important;max-width:100%!important}
	#s-itineraire.has-route-result .cpa-itineraire-form-col{flex:0 0 41.666%!important;max-width:41.666%!important}
}

/* Formulaire contact */
.cform{background:var(--ac-white);border:1px solid var(--ac-line);border-radius:var(--r-lg);padding:24px}
.cform-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.cform-grid{grid-template-columns:1fr}}
.cfield{display:flex;flex-direction:column;gap:5px}
.cfield.full{grid-column:1/-1}
.cfield label{font-family:var(--ac-font-ui);font-size:.76rem;font-weight:600;color:var(--ac-graphite)}
.cfield input,.cfield textarea,.cfield select{border:1px solid var(--ac-line);border-radius:var(--r-md);padding:11px 13px;font-family:var(--ac-font-ui);font-size:.9rem;background:var(--ac-white);color:var(--ac-black)}
.cfield input:focus,.cfield textarea:focus,.cfield select:focus{outline:none;border-color:var(--portail-accent)}
.cfield textarea{resize:vertical;min-height:96px}
.cform-consent{display:flex;gap:9px;align-items:flex-start;margin:16px 0;font-family:var(--ac-font-ui);font-size:.78rem;color:var(--ac-stone);line-height:1.5}
.cform-consent input{margin-top:2px;flex-shrink:0}
.cform-status{margin-top:12px;font-family:var(--ac-font-ui);font-size:.85rem;text-align:center}
.cform-status-ok{color:#1a7a3c}
.cform-status-err{color:#c0392b}

/* Campings similaires */
.simil-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:900px){.simil-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.simil-grid{grid-template-columns:1fr}}
.simil{display:block;background:var(--ac-white);border:1px solid var(--ac-line);border-radius:var(--r-lg);overflow:hidden;transition:transform .2s,box-shadow .2s}
.simil:hover{transform:translateY(-3px);box-shadow:var(--sh-md)}
.simil img{height:130px;width:100%;object-fit:cover}
.simil .sb{padding:13px 15px 16px}
.simil .sn{font-family:var(--ac-font-display);font-style:italic;font-weight:800;font-size:.98rem;color:var(--ac-black)}
.simil .sl{font-family:var(--ac-font-ui);font-size:.74rem;color:var(--ac-stone);margin:2px 0 6px}
.simil .sp{font-family:var(--ac-font-ui);font-size:.76rem;color:var(--ac-graphite)}
.simil .sp b{font-family:var(--ac-font-display);font-style:italic;color:var(--ac-black)}

/* Barre résa mobile (hors <main>, aucun conflit de layout flex) */
.book-bar{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--ac-white);border-top:1px solid var(--ac-line);box-shadow:0 -8px 24px rgba(10,10,10,.1);padding:10px 16px;align-items:center;justify-content:space-between;gap:14px}
.book-bar .bp{font-family:var(--ac-font-ui);font-size:.76rem;color:var(--ac-stone)}
.book-bar .bp strong{display:block;font-family:var(--ac-font-display);font-style:italic;font-size:1.2rem;color:var(--ac-black)}
.book-bar .btn{flex:1;max-width:230px}
/* body:has(.book-bar) plutôt que "body" nu : .book-bar n'existe que sur les fiches camping,
 * mais components.css est chargé sur tout le site (ac-components, enqueue non scopé) — un
 * "body" nu ici ajoutait 74px de padding bas fantôme sur la home et les fiches localisation,
 * qui n'ont pas de barre de réservation. Trouvé lors de l'audit responsive du 2026-07-16. */
@media(max-width:960px){.book{position:static}.book-bar{display:flex}body:has(.book-bar){padding-bottom:74px}}

/* ── EXPLORER AUSSI (maillage interne fiche/article, cf templates/section-explorer-aussi.php,
   31/08/2026) : rangee compacte de liens vers les pages a fort trafic reel du portail (choisies
   via ac_priority_links()), reutilise .btn/.btn-secondary/.btn-sm (ac-portail.css). ──────────── */
.explore-also{padding:28px 0}
.explore-also .eyebrow{display:block;margin-bottom:14px}
.explore-also-links{display:flex;flex-wrap:wrap;gap:10px}

/* ── PAGE À PROPOS ─────────────────────────────────────────────────────────── */
.ap-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:720px){.ap-stats{grid-template-columns:1fr 1fr}}
.ap-stat{background:var(--ac-white);border:1px solid var(--ac-line);border-radius:var(--r-lg);padding:24px 20px;text-align:center}
.ap-stat b{display:block;font-family:var(--ac-font-display);font-style:italic;font-weight:800;font-size:2.1rem;color:var(--ac-black)}
.ap-stat span{font-family:var(--ac-font-ui);font-size:.82rem;color:var(--ac-stone);text-transform:uppercase;letter-spacing:.04em}
.ap-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:820px){.ap-steps{grid-template-columns:1fr}}
.ap-step{background:var(--ac-white);border:1px solid var(--ac-line);border-left:3px solid var(--portail-accent);border-radius:var(--r-md);padding:22px}
.ap-step .n{font-family:var(--ac-font-display);font-style:italic;font-weight:900;font-size:1.5rem;color:var(--portail-accent)}
.ap-step h3{margin:6px 0 8px}.ap-step p{font-size:.92rem}
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:760px){.team{grid-template-columns:1fr}}
.tm{background:var(--ac-white);border:1px solid var(--ac-line);border-radius:var(--r-lg);padding:24px;text-align:center}
.tm .av{width:78px;height:78px;border-radius:50%;background:var(--ac-black);color:var(--ac-paper);display:flex;align-items:center;justify-content:center;font-family:var(--ac-font-display);font-style:italic;font-weight:800;font-size:1.5rem;margin:0 auto 14px}
.tm b{font-family:var(--ac-font-ui);font-weight:600}
.tm .role{font-family:var(--ac-font-ui);font-size:.8rem;color:var(--portail-accent);margin:2px 0 10px}
.tm p{font-size:.86rem}
