/*
 * Text patterns — « Le constat » (02/08 of the validated homepage) and its generic
 * twins « Titre de section », « Texte », « Texte et image ».
 * Loaded only when a block carries .is-style-gb-constat, .is-style-gb-grand or
 * .is-style-gb-titre. Colours: currentColor and presets only.
 */

/* ───────────────────── two columns on a grid (mockup: .constat) ── */
/* The native Columns block is a flex row that stacks at 782 px; the mockup is a
   grid minmax(0,1fr) / minmax(0,1.05fr) that stacks at 1000 px. Grid ignores the
   columns' flex-basis, so the SA's column widths are simply not read here. */
.wp-block-columns.is-style-gb-constat { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: clamp(2rem, 4.5vw, 4.5rem); }
.wp-block-columns.is-style-gb-constat > .wp-block-column { margin: 0; min-inline-size: 0; }

/* The header row (index + text) is a flex row drawn by the socle: WordPress' flow
   margins would push the second child down. */
.is-style-gb-constat .gb-tete > * { margin-block-start: 0; }
.is-style-gb-constat .is-style-gb-cle { opacity: 0.8; }
.is-style-gb-constat .is-style-gb-cle + * { margin-block-start: 1.5rem; }

/* The illustration fills its column; the relief of an illustration is 14 px (mockup
   .illu img), one step above the 10 px of the socle. */
.is-style-gb-constat .wp-block-image { margin: 0; }
.is-style-gb-constat .wp-block-image img { display: block; inline-size: 100%; block-size: auto; }
.is-style-gb-constat .wp-block-image.is-style-gb-porte img { box-shadow: 14px 14px 0 color-mix(in oklab, currentColor 22%, transparent); }

/* A square vignette (the dioramas of the steps) stays a vignette: bounded, centred. */
.is-style-gb-constat .wp-block-image.gb-illu--vignette { max-inline-size: 22rem; margin-inline: auto; }

/* Text column of the generic twin: title, paragraphs, button. */
/* 22ch, not 16: « ENVIRONNEMENTALE » in Unbounded 800 must fit on one line at every
   size, or the socle's overflow-wrap cuts it in two (a ch is narrower than a capital). */
.is-style-gb-constat .wp-block-heading { max-inline-size: 22ch; hyphens: manual; }
.is-style-gb-constat .wp-block-buttons { margin-block-start: var(--wp--preset--spacing--50); }

@media (max-width: 1000px) {
	.wp-block-columns.is-style-gb-constat { grid-template-columns: 1fr; }
}

/* ───────────────────────────── the large lead paragraph ── */
/* Literal clamp() of the mockup (d4.py, « le constat »). */
.is-style-gb-grand { font-size: clamp(1.15rem, 2.4vw, 2rem); line-height: 1.24; letter-spacing: -0.016em; }
.is-style-gb-grand + .is-style-gb-grand { margin-block-start: 1.2em; }

/* ───────────────────────────────── section title alone ── */
.is-style-gb-titre .gb-tete > * { margin-block-start: 0; }
.is-style-gb-titre .is-style-gb-decale { margin-block-start: clamp(1.2rem, 2.2vw, 1.6rem); }
.is-style-gb-titre .is-style-gb-chapo { max-inline-size: 52ch; }

@media (max-width: 1200px) {
	.is-style-gb-titre .is-style-gb-decale { margin-inline-start: clamp(0rem, 7vw, 7rem); }
}
@media (max-width: 760px) {
	.is-style-gb-titre .is-style-gb-decale { margin-inline-start: 0; }
}
