/* 🧊 Plugin Contenu — étapes, avis, chiffres clés, cartes, coordonnées, mentions légales */
.ct-intro { max-width: 70ch; margin-bottom: 1.4rem; }
.ct-centre { text-align: center; margin-top: 1.4rem; }
.ct-carte-fond, .ct-avis-carte, .ct-carte, .ct-coord-grille > div { background: color-mix(in srgb, var(--b-texte, currentColor) 5%, transparent); border-radius: var(--b-arrondi, var(--arrondi, 12px)); }

/* Étapes */
.ct-etapes-liste { list-style: none; padding: 0; margin: 0; display: grid; gap: clamp(14px, 2vw, 24px); }
.ct-etapes-ligne .ct-etapes-liste { grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); }
.ct-etapes-liste li { display: flex; gap: 14px; align-items: flex-start; }
.ct-etapes-ligne .ct-etapes-liste li { flex-direction: column; }
.ct-num { flex: none; display: grid; place-items: center; width: 2.4em; height: 2.4em; border-radius: 50%; background: var(--b-liens, var(--accent)); color: var(--fond, #fff); font-weight: 700; }
.ct-etapes-liste h3 { margin: .2em 0 .3em; }
.ct-etapes-liste p { margin: 0; opacity: .85; }

/* Avis */
.ct-avis-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: clamp(14px, 2vw, 24px); }
.ct-avis-carte { margin: 0; padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; }
.ct-avis-carte blockquote { margin: 0; font-size: 1.05em; }
.ct-avis-carte blockquote p { margin: 0; }
.ct-avis-carte blockquote p::before { content: "« "; } .ct-avis-carte blockquote p::after { content: " »"; }
.ct-avis-carte figcaption { opacity: .8; font-size: .95em; margin-top: auto; }
.ct-etoiles { margin: 0; color: #e0a526; letter-spacing: .1em; }
.ct-etoiles span { opacity: .25; }

/* Chiffres clés */
.ct-chiffres h2 { text-align: center; }
.ct-chiffres-liste { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: clamp(20px, 5vw, 64px); text-align: center; }
.ct-chiffres-liste li { display: flex; flex-direction: column; min-width: 8em; }
.ct-chiffres-liste b { font-family: var(--police-titres, inherit); font-size: clamp(2rem, 5vw, 3rem); line-height: 1.1; color: var(--b-titres, var(--titres, inherit)); }
.ct-chiffres-liste span { opacity: .8; }

/* Cartes */
.ct-cartes-grille { display: grid; gap: clamp(14px, 2vw, 24px); grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); }
@media (min-width: 900px) { .ct-col-2 { grid-template-columns: repeat(2, 1fr); } .ct-col-3 { grid-template-columns: repeat(3, 1fr); } .ct-col-4 { grid-template-columns: repeat(4, 1fr); } }
.ct-carte { overflow: hidden; display: flex; flex-direction: column; position: relative; }
.ct-carte-img img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.ct-carte-corps { padding: 16px 18px 18px; }
.ct-carte-corps h3 { margin: 0 0 .3em; }
.ct-carte-corps p { margin: 0; opacity: .85; }
.ct-carte h3 a { color: inherit; text-decoration: none; }
.ct-carte h3 a::after { content: ""; position: absolute; inset: 0; } /* toute la carte est cliquable */
.ct-carte:has(a):hover { box-shadow: 0 6px 20px #0001; }
.ct-carte h3 a:focus-visible { outline: none; } .ct-carte:has(a:focus-visible) { outline: 2px solid var(--b-liens, var(--accent)); outline-offset: 2px; }

/* Coordonnées */
.ct-coord-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: clamp(14px, 2vw, 24px); }
.ct-coord-grille > div { padding: 18px 20px; }
.ct-coord-grille h3 { margin: 0 0 .5em; font-size: 1.05em; }
.ct-coord-grille p { margin: 0 0 .3em; }
.ct-heures { list-style: none; padding: 0; margin: 0; }
.ct-heures li { padding: .15em 0; }

/* Mentions légales */
.ct-mentions h3 { margin-top: 1.6em; }
