/* 🧊 Plugin Base */

/* Héros */
.k-base-hero { padding: 0; }
.b-hero { position: relative; display: grid; align-items: center; min-height: 52vh; padding-block: 5rem; overflow: hidden; }
.b-hero-grand { min-height: 72vh; }
.b-hero-plein { min-height: calc(100svh - 4.2rem); }
.b-hero-fond { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.b-hero-voile { position: absolute; inset: 0; background: #000; }
.b-hero-texte { position: relative; }
.b-hero-centre .b-hero-texte { text-align: center; }
.b-hero-avec-image { --b-texte: #fff; --b-titres: #fff; color: #fff; }
.b-hero-avec-image h1 { text-shadow: 0 2px 30px #0005; }
.b-hero h1 { font-size: clamp(2.4rem, 7vw, 4.6rem); margin-bottom: .35em; }
.b-hero-sous { font-size: clamp(1.1rem, 2.2vw, 1.35rem); max-width: 38rem; opacity: .92; }
.b-hero-centre .b-hero-sous { margin-inline: auto; }

/* Texte */
.b-centre { text-align: center; }
.b-droite { text-align: right; }
.b-prose > :last-child { margin-bottom: 0; }
.b-prose ul, .b-prose ol { padding-left: 1.3em; }
.b-prose blockquote { border-left: 3px solid var(--accent); padding-left: 1em; font-style: italic; }

/* Image */
.b-image { margin-block: 0; }
.b-image-etroit { max-width: 32rem; }
.b-image-normal { max-width: 52rem; }
.b-image-large { max-width: var(--largeur); }
.b-image img { width: 100%; }
.b-image-plein img { max-height: 85vh; object-fit: cover; }
.b-image figcaption { margin-top: .7rem; font-size: .9rem; opacity: .75; text-align: center; }
.k-base-image:has(.b-image-plein) { padding-block: 0; }

/* Texte + image */
.b-ti { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 5vw, 4.5rem); align-items: center; }
.b-ti-droite .b-ti-image { order: 2; }
.b-ti-texte .b-prose + p, .b-hero-texte p:has(.k-bouton) { margin-top: 1.6rem; }
.b-ti-image img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 760px) {
  .b-ti { grid-template-columns: 1fr; }
  .b-ti-droite .b-ti-image { order: 0; }
}

/* Bouton */
.b-bouton.b-centre { text-align: center; }

/* Citation */
.b-citation { margin-block: 0; text-align: center; }
.b-citation blockquote { font-family: var(--police-titres); font-size: clamp(1.5rem, 3.5vw, 2.2rem); line-height: 1.35; color: var(--b-titres, var(--titres)); margin-bottom: .8em; }
.b-citation blockquote::before { content: "« "; }
.b-citation blockquote::after { content: " »"; }
.b-citation figcaption { font-size: .95rem; letter-spacing: .06em; text-transform: uppercase; opacity: .8; }
.b-citation figcaption::before { content: "— "; }

/* Espace */
.k-base-espace { padding-block: 0; }
.b-espace { display: grid; align-items: center; }
.b-espace-petit { height: 2rem; }
.b-espace-moyen { height: 5rem; }
.b-espace-grand { height: 9rem; }
.b-espace hr { width: 100%; border: 0; border-top: 1px solid currentColor; opacity: .18; margin: 0; }
