/* ==========================================================
   Grandes entreprises — page profil
   Variables surchargeables depuis le CSS du thème :
   body.ge-single { --ge-accent:#00c5e0; --ge-max:1200px; }
   ========================================================== */
.ge-single-main {
	--ge-accent: #00c5e0;
	--ge-text: #1f2430;
	--ge-muted: #5a6472;
	--ge-line: #e4e8ee;
	--ge-alt: #f6f8fa;
	--ge-max: 1200px;
	--ge-gap: clamp(32px, 5vw, 64px);
	color: var(--ge-text);
	overflow-x: clip;
}

/* ---------- Neutralise le padding des conteneurs du thème (hero sans padding) ---------- */
body.ge-single .site-content,
body.ge-single .site-main,
body.ge-single .content-area {
	padding: 0;
	margin: 0;
	max-width: none;
}
body.ge-single .site-content > .ge-single-main,
body.ge-single .content-area > .ge-single-main {
	width: 100%;
}

.ge-container {
	max-width: var(--ge-max);
	margin: 0 auto;
	padding: 0 24px;
}

/* ---------- HERO ---------- */
.ge-hero {
	width: 100%;
	margin: 0;
	padding: 0;
	line-height: 0;
	background: var(--ge-alt);
}
.ge-hero-img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 300px;
	aspect-ratio: 5 / 1;
	object-fit: cover;
}

/* ---------- EN-TÊTE (H1) ---------- */
.ge-head {
	padding: clamp(28px, 4vw, 48px) 0 0;
	text-align: center;
}
.ge-title {
	margin: 0;
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	font-weight: 700;
	line-height: 1.2;
}
.ge-tagline {
	margin: 10px 0 0;
	color: var(--ge-muted);
	font-size: 1.05rem;
	font-style: italic;
}
.ge-intro {
	max-width: 800px;
	margin: 20px auto 0;
	line-height: 1.7;
}

/* ---------- BLOCS ---------- */
.ge-section {
	padding: var(--ge-gap) 0;
}
.ge-section:nth-of-type(even) {
	background: var(--ge-alt);
}
.ge-section-title {
	margin: 0 0 clamp(24px, 3vw, 40px);
	text-align: center;
	font-size: clamp(1.25rem, 2.2vw, 1.7rem);
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	line-height: 1.25;
}
.ge-section-title::after {
	content: "";
	display: block;
	width: 56px;
	height: 3px;
	margin: 14px auto 0;
	background: var(--ge-accent);
	border-radius: 2px;
}
.ge-section-body {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: center;
}
.ge-section-body--single {
	grid-template-columns: minmax(0, 1fr);
	max-width: 860px;
	margin: 0 auto;
}

/* ---------- LISTE D'INFORMATIONS ---------- */
.ge-list {
	margin: 0;
	padding: 0;
}
.ge-row {
	display: grid;
	grid-template-columns: minmax(150px, 34%) minmax(0, 1fr);
	gap: 8px 20px;
	padding: 12px 0;
	border-bottom: 1px solid var(--ge-line);
}
.ge-row:first-child { padding-top: 0; }
.ge-row:last-child  { border-bottom: 0; }
.ge-list dt {
	margin: 0;
	font-weight: 700;
	color: var(--ge-text);
}
.ge-list dd {
	margin: 0;
	color: var(--ge-muted);
	line-height: 1.6;
	overflow-wrap: anywhere;
}
.ge-list dd a {
	color: var(--ge-accent);
	text-decoration: none;
}
.ge-list dd a:hover,
.ge-list dd a:focus-visible {
	text-decoration: underline;
}
.ge-row:has(dd:only-child) { grid-template-columns: 1fr; }

/* ---------- MÉDIA (colonne droite) ---------- */
.ge-visual { min-width: 0; }
.ge-media {
	margin: 0;
	text-align: center;
}
.ge-media-img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 520px;
	object-fit: cover;
	border-radius: 12px;
}
.ge-media--logo .ge-media-img {
	object-fit: contain;
	max-height: 300px;
	padding: 24px;
	background: #fff;
	border: 1px solid var(--ge-line);
	border-radius: 12px;
}
.ge-media figcaption {
	margin-top: 10px;
	font-size: .9rem;
	color: var(--ge-muted);
}

/* ---------- CARTE GOOGLE ---------- */
.ge-map {
	position: relative;
	width: 100%;
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	overflow: hidden;
	background: var(--ge-alt);
	border: 1px solid var(--ge-line);
}
.ge-map iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 900px) {
	.ge-section-body {
		grid-template-columns: minmax(0, 1fr);
	}
	.ge-visual { order: 2; }
	.ge-info   { order: 1; }
	.ge-media-img { max-height: 420px; }
}
@media (max-width: 560px) {
	.ge-container { padding: 0 18px; }
	.ge-row {
		grid-template-columns: 1fr;
		gap: 4px;
	}
	.ge-hero-img { max-height: 160px; }
}

/* ---------- IMPRESSION ---------- */
@media print {
	.ge-section { padding: 16px 0; break-inside: avoid; }
	.ge-map { display: none; }
}
