/**
 * Page Contact (template page-contact.php) — langage visuel aligné sur À propos.
 * Hero + grille 2 colonnes (formulaire CF7 + coordonnées). Email en image.
 * Réutilise les tokens du thème (--fc-*).
 */

.contactp { color: var(--fc-text); overflow: hidden; }

.contactp__container {
	width: 80%;
	max-width: 1180px;
	margin: 0 auto;
}
@media (max-width: 700px) { .contactp__container { width: 88%; } }

/* ---------- HERO ---------- */
.contactp__hero {
	text-align: center;
	padding: var(--fc-space-2xl) 0 var(--fc-space-xl);
	background: radial-gradient(130% 130% at 50% 0%, var(--fc-green-50) 0%, var(--fc-warm-50) 48%, #fff 100%);
	border-bottom: 1px solid var(--fc-warm-300, #fcd9b6);
}
.contactp__eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--fc-primary);
	margin: 0 0 var(--fc-space-sm);
}
.contactp__title {
	font-family: var(--fc-font-heading);
	font-size: clamp(2rem, 5vw, 3rem);
	line-height: 1.1;
	margin: 0 auto var(--fc-space-md);
	max-width: 18ch;
}
.contactp__subtitle {
	font-size: clamp(1.05rem, 2.4vw, 1.2rem);
	color: var(--fc-gray-600, #4b5563);
	max-width: 60ch;
	margin: 0 auto;
	line-height: 1.65;
}

/* ---------- SECTION + LAYOUT ---------- */
.contactp__section { padding: var(--fc-space-2xl) 0; }
.contactp__layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--fc-space-lg);
	align-items: start;
}
@media (min-width: 880px) {
	.contactp__layout { grid-template-columns: 1.6fr 1fr; gap: var(--fc-space-xl); }
}

.contactp__h2 {
	font-family: var(--fc-font-heading);
	font-size: clamp(1.4rem, 3vw, 1.8rem);
	margin: 0 0 var(--fc-space-lg);
}
.contactp__h3 {
	font-family: var(--fc-font-heading);
	font-size: 1.3rem;
	margin: 0 0 var(--fc-space-md);
}

/* ---------- CARTE FORMULAIRE ---------- */
.contactp__form-card {
	background: #fff;
	border: 1px solid var(--fc-green-100);
	border-radius: var(--fc-radius-xl);
	padding: var(--fc-space-xl);
	box-shadow: 0 8px 26px rgba(0,0,0,0.06);
}
.contactp__h2 { margin-bottom: var(--fc-space-md); }
.contactp__note {
	margin: var(--fc-space-md) 0 0;
	font-size: 0.92rem;
	color: var(--fc-text-light);
	font-style: italic;
}

/* CF7 — champs alignés sur la charte (verts, arrondis), pleine largeur.
   CF7 truffe ses labels de <br> (avant/après texte et input) → grosses lignes
   vides. On les neutralise et on structure label -> champ proprement. */
.contactp__form-card form br { display: none; }
/* Espacement déterministe : flex column + gap (neutralise les marges fantômes
   entre les <p> que CF7/le thème ajoutent). */
.contactp__form-card form {
	display: flex;
	flex-direction: column;
	gap: 0.55rem;
}
.contactp__form-card .wpcf7 p { margin: 0 !important; }
.contactp__form-card p[role="status"] { margin: 0 !important; min-height: 0; }
/* Supprime toute marge héritée sur les contrôles (≈24px morts sous chaque champ). */
.contactp__form-card input,
.contactp__form-card select,
.contactp__form-card textarea,
.contactp__form-card .wpcf7-form-control-wrap { margin-bottom: 0; }
.contactp__form-card label {
	display: block;
	font-weight: 600;
	font-size: 0.95rem;
	color: var(--fc-text);
	line-height: 1.25;
}
.contactp__form-card .wpcf7-form-control-wrap {
	display: block;
	margin-top: 0.25em;
}
.contactp__form-card input[type="text"],
.contactp__form-card input[type="email"],
.contactp__form-card input[type="tel"],
.contactp__form-card select,
.contactp__form-card textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 0.7em 0.9em;
	font-family: inherit;
	font-size: 1rem;
	color: var(--fc-text);
	background: #fff;
	border: 1px solid var(--fc-green-200);
	border-radius: var(--fc-radius-md);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.contactp__form-card input:focus,
.contactp__form-card select:focus,
.contactp__form-card textarea:focus {
	outline: none;
	border-color: var(--fc-primary);
	box-shadow: 0 0 0 3px var(--fc-green-100);
}
.contactp__form-card textarea { min-height: 120px; resize: vertical; }
.contactp__form-card .wpcf7-submit {
	background: var(--fc-accent);
	color: #fff;
	border: none;
	border-radius: var(--fc-radius-pill);
	padding: 0.8em 2em;
	font-weight: 700;
	font-size: 1rem;
	cursor: pointer;
	transition: background 0.15s ease;
}
.contactp__form-card .wpcf7-submit:hover { background: var(--fc-accent-hover, #d35400); }

/* ---------- COORDONNÉES ---------- */
.contactp__aside {
	background: var(--fc-green-50);
	border: 1px solid var(--fc-green-100);
	border-radius: var(--fc-radius-xl);
	padding: var(--fc-space-xl);
}
.contactp__info-card {
	display: flex;
	gap: var(--fc-space-md);
	align-items: flex-start;
	margin-bottom: var(--fc-space-lg);
}
.contactp__info-card:last-child { margin-bottom: 0; }
.contactp__info-icon {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px; height: 44px;
	border-radius: var(--fc-radius-lg);
	background: #fff;
	color: var(--fc-primary);
	border: 1px solid var(--fc-green-100);
}
.contactp__info-label {
	margin: 0 0 0.35em;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 700;
	color: var(--fc-text-light);
}
.contactp__address {
	margin: 0;
	font-style: normal;
	line-height: 1.6;
	color: var(--fc-text);
	font-size: 1.02rem;
}
.contactp__email-img {
	display: inline-block;
	height: 21px;
	width: auto;
	max-width: 100%;
	vertical-align: middle;
}

/* ---------- ZONE TEASERS (séparée visuellement par un fond teinté) ---------- */
.contactp__teasers {
	background: var(--fc-green-50);
	border-top: 1px solid var(--fc-green-100);
	padding: var(--fc-space-2xl) 0;
}
/* Teaser science (.ms-cpc mutualisé) : polices réduites pour s'harmoniser
   avec la taille du formulaire (labels 0.95rem, champs 1rem). */
.contactp__teasers .ms-cpc {
	max-width: 720px;
	padding: var(--fc-space-xl);
}
.contactp__teasers .ms-cpc__eyebrow  { font-size: 0.72rem; }
.contactp__teasers .ms-cpc__title    { font-size: 1.25rem; }
.contactp__teasers .ms-cpc__text     { font-size: 0.95rem; }
.contactp__teasers .ms-cpc__stat-num { font-size: 1.35rem; }
.contactp__teasers .ms-cpc__stat-label { font-size: 0.7rem; }
.contactp__teasers .ms-cpc__cta      { font-size: 0.95rem; }
.contactp__teasers .ms-cpc + .contactp__human { margin-top: var(--fc-space-lg); }

/* Teaser humain « Une équipe à votre écoute » : placé dans l'aside, sous les
   coordonnées. Bloc séparé par un filet (comme « Suivez-nous »), visages. */
.contactp__human {
	margin-top: var(--fc-space-lg);
	padding-top: var(--fc-space-lg);
	border-top: 1px solid var(--fc-green-100);
}
.contactp__human-faces { display: flex; align-items: center; margin-bottom: var(--fc-space-sm); }
.contactp__human-faces img {
	width: 46px; height: 46px;
	border-radius: 50%;
	object-fit: cover;
	border: 3px solid #fff;
	box-shadow: 0 1px 5px rgba(0,0,0,0.15);
	display: block;
}
.contactp__human-faces picture { display: inline-block; line-height: 0; margin-left: -14px; }
.contactp__human-title {
	font-family: var(--fc-font-heading);
	font-size: 1.02rem;
	color: var(--fc-green-800);
	margin: 0 0 0.15em;
	line-height: 1.25;
}
.contactp__human-text {
	margin: 0 0 0.35em;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--fc-gray-600, #4b5563);
}
.contactp__human-link {
	font-weight: 700;
	font-size: 0.9rem;
	color: var(--fc-primary);
	text-decoration: none;
}
.contactp__human-link:hover { text-decoration: underline; }

/* Suivez-nous */
.contactp__follow {
	margin-top: var(--fc-space-lg);
	padding-top: var(--fc-space-lg);
	border-top: 1px solid var(--fc-green-100);
}
.contactp__social { display: flex; gap: var(--fc-space-sm); }
.contactp__social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid var(--fc-green-100);
	color: var(--fc-primary);
	transition: background 0.15s ease, color 0.15s ease;
}
.contactp__social-link:hover { background: var(--fc-primary); color: #fff; }
