/* ═════════════════════════════════════════════════════════════════
   Ophtapod : page Le Centre (template-a-propos.php)
   Tailles en rem (voir la convention dans main.css) pour que le module
   d'accessibilité puisse mettre le texte à l'échelle.
   ═════════════════════════════════════════════════════════════════ */

/* Les classes partagées entre modèles (.op-eyebrow, .op-img-placeholder,
   .op-page-hero, .op-crosslink et ses variantes) sont définies dans
   main.css, chargé sur toutes les pages. */

/* ── Notre approche : deux images qui se répondent ───────────────────── */

.op-ap-centre {
	background: var(--c-white);
}

.op-ap-centre .op-container {
	padding: 7.5rem 0;
}

/* Texte et visuel démarrent à la même ligne : centrer verticalement le texte
   contre l'image ferait lire un partage image-texte générique, là où la source
   veut une présentation délibérée du centre. */
.op-ap-centre__grid {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 5rem;
	align-items: start;
}

/* Le Media de la source : ratio 4:3, et non une hauteur figée qui variait
   d'un palier à l'autre. */
.op-ap-centre__media {
	width: 100%;
	aspect-ratio: 4 / 3;
	border-radius: var(--r-panel);
	overflow: hidden;
}

.op-ap-centre__media img,
.op-ap-centre__media .op-img-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Titre et texte forment un groupe : le filet décoratif qui les séparait
   disparaît, l'écart suffit. */
.op-ap-centre__title {
	margin: 0 0 1.5rem;
	font-family: var(--font-title);
	font-weight: 600;
	font-size: 2.75rem;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--c-navy);
}

.op-ap-centre__body p {
	margin: 0 0 1.25rem;
	max-width: 26rem;
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--c-gray);
}

.op-ap-centre__body p:last-of-type {
	margin-bottom: 0;
}

/* ── Nos valeurs ──────────────────────────────────────────────────────
   Trois preuves en rangées, sur surface pâle : chiffre d'index, titre et
   texte, séparés par un filet. */

.op-ap-valeurs {
	background: var(--c-blue-pale);
}

/* Tête de section à gauche, preuves à droite. */
.op-ap-valeurs__inner {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 5rem;
	align-items: start;
	padding: 6.875rem 0;
}

.op-ap-valeurs__head {
	max-width: 34rem;
}

.op-ap-valeurs__title {
	margin: 0;
	max-width: 34rem;
	font-family: var(--font-title);
	font-weight: 600;
	font-size: 2.75rem;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--c-navy);
}

.op-ap-valeurs__grid {
	display: flex;
	flex-direction: column;
}

.op-valeur {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.4fr);
	align-items: baseline;
	gap: 2.5rem;
	padding: 2rem 0;
	box-shadow: inset 0 -0.0625rem 0 0 var(--c-rule-pale);
}

.op-valeur:last-child {
	box-shadow: none;
}

.op-valeur__num {
	font-family: var(--font-mono);
	font-weight: 400;
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--c-gray);
}

.op-valeur__title {
	margin: 0;
	font-family: var(--font-title);
	font-weight: 600;
	font-size: 1.375rem;
	line-height: 1.25;
	letter-spacing: -0.01em;
	color: var(--c-navy);
}

.op-valeur__texte {
	margin: 0;
	font-size: 1rem;
	line-height: 1.7;
	color: var(--c-gray);
}

/* ── Notre équipement ─────────────────────────────────────────────────
   Surface blanche. Tête de section à gauche ; à droite le visuel du plateau
   technique en 3:2, puis quatre repères indexés en rangées fines. */

.op-ap-equipement {
	scroll-margin-top: 6rem;
	background: var(--c-white);
}

.op-ap-equipement .op-container {
	padding: 6.875rem 0;
}

/* Tête de section sur toute la largeur, puis le visuel et la liste en deux
   colonnes : le titre ne vit plus loin du contenu qu'il annonce. */
.op-ap-equipement__head {
	max-width: 34rem;
	margin-bottom: var(--sp-group);
}

.op-ap-equipement__grid {
	display: grid;
	grid-template-columns: 1fr 1.1fr;
	gap: 5rem;
	align-items: start;
}

.op-ap-equipement__title {
	margin: 0;
	font-family: var(--font-title);
	font-weight: 600;
	font-size: 2.75rem;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--c-navy);
}

.op-ap-equipement__texte {
	margin: 1rem 0 0;
	font-size: 1.125rem;
	line-height: 1.7;
	color: var(--c-gray);
}

.op-ap-equipement__media {
	width: 100%;
	aspect-ratio: 3 / 2;
	border-radius: var(--r-panel);
	overflow: hidden;
}

.op-ap-equipement__media img,
.op-ap-equipement__media .op-img-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.op-ap-equipement__liste {
	display: flex;
	flex-direction: column;
}

/* Repères non cliquables : ils nomment un équipement, ils ne mènent nulle
   part. Le décalage au survol de .op-fiche ne vise que les ancres. */
.op-ap-equipement__liste .op-fiche__titre {
	margin-bottom: 0;
}

/* ── Engagement à l'international ─────────────────────────────────────
   Surétiquette, titre, texte : un seul groupe resserré, dans une colonne
   de mesure. La passe de grouping du Design Lock reproche à cette zone son
   blanc isolé — les écarts y sont donc ceux de l'intérieur d'un groupe,
   pas ceux d'une section. */

.op-ap-tunisie {
	background: var(--c-blue-pale);
}

/* Composition délibérément sans image : ni emplacement média, ni placeholder,
   ni colonne visuelle réservée. Tête de section à gauche, texte à droite. */
.op-ap-tunisie__inner {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 5rem;
	align-items: start;
	padding: 6.25rem 0;
}

.op-ap-tunisie__corps {
	max-width: 30rem;
}

.op-ap-tunisie__head {
	max-width: 34rem;
}

.op-ap-tunisie__title {
	margin: 0 0 1rem;
	font-family: var(--font-title);
	font-weight: 600;
	font-size: 2rem;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--c-navy);
}

.op-ap-tunisie__corps p {
	margin: 0 0 0.75rem;
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--c-gray);
}

.op-ap-tunisie__corps p:last-child {
	margin-bottom: 0;
}

/* La bande finale (CrossLink) est déclarée dans main.css : elle est
   partagée avec Notre équipe. */

/* ═════════════════════════════════════════════════════════════════
   Responsive
   ═════════════════════════════════════════════════════════════════ */

@media (max-width: 1279px) {
	:root {
		--sp-section: 6.875rem;
	}
	.op-ap-centre__grid,
	.op-ap-equipement__grid,
	.op-ap-valeurs__inner,
	.op-ap-tunisie__inner {
		grid-template-columns: 1fr;
		gap: 3.125rem;
	}
	.op-ap-equipement__head,
	.op-ap-valeurs__head {
		max-width: none;
	}
	.op-valeur {
		grid-template-columns: auto minmax(0, 1fr);
		gap: 0.75rem 1.5rem;
	}
	.op-valeur__texte {
		grid-column: 2;
	}
}

@media (max-width: 767px) {
	/* Ordre de la source en mobile : titre, visuel, puis texte. display:
	   contents rend les enfants du bloc de texte frères du visuel, seule
	   façon d'intercaler l'image entre le titre et les paragraphes sans
	   dupliquer le markup. */
	.op-ap-centre .op-container {
		padding: 4.375rem 0 5rem;
	}
	.op-ap-centre__grid {
		display: flex;
		flex-direction: column;
		gap: 2rem;
	}
	.op-ap-centre__body {
		display: contents;
	}
	.op-ap-centre__body .op-eyebrow {
		order: 0;
	}
	.op-ap-centre__title {
		order: 1;
		margin-bottom: 0;
	}
	.op-ap-centre__media {
		order: 2;
	}
	.op-ap-centre__body p {
		order: 3;
		margin: 0;
		max-width: none;
	}
	.op-ap-centre__title,
	.op-ap-valeurs__title,
	.op-ap-equipement__title {
		font-size: 1.75rem;
	}
	.op-ap-equipement .op-container {
		padding: 4.375rem 0;
	}
	.op-ap-equipement__grid {
		gap: 1.75rem;
	}
	.op-ap-equipement__head {
		margin-bottom: 1.75rem;
	}
	.op-ap-valeurs__inner {
		padding: 4.375rem 0;
	}
	.op-ap-valeurs__title {
		margin-bottom: 1.25rem;
	}
	.op-valeur {
		gap: 0.5rem 1.125rem;
		padding: 1.625rem 0;
	}
	.op-valeur__num {
		font-size: 0.6875rem;
	}
	.op-valeur__title {
		font-size: 1.25rem;
	}
	.op-valeur__texte {
		font-size: 0.9375rem;
	}
	.op-ap-equipement__texte {
		font-size: 1rem;
	}
	.op-ap-tunisie__inner {
		padding: 4.375rem 0;
	}
	.op-ap-tunisie__title {
		font-size: 1.625rem;
	}
	.op-ap-tunisie__corps p {
		font-size: 1rem;
	}

}
