/*!
 * POC — Contact
 * Version: 1.1.0
 * Thème cible : Modins (Gavias).
 *
 * Règles tenues : racine confinée, aucun élément hors flux, min-width: 0
 * sur tous les descendants, aucune unité vw, aucune marge négative.
 * Le popup vit en fin de <body>, hors du bloc.
 */

/* =====================================================================
   1. VARIABLES
   ===================================================================== */
.poc-ct,
.poc-ctp {
	--poc-ct-fond: #ffffff;
	--poc-ct-encre: #4e4e4c;
	--poc-ct-gris: #76766f;
	--poc-ct-or: #a21a18;
	--poc-ct-or-clair: #f38c8b;
	--poc-ct-creme: #fbf3f3;
	--poc-ct-filet: #f6e1e1;
	--poc-ct-err: #d23b2e;
	--poc-ct-ouvert: #3f8f4f;
	--poc-ct-ferme: #981c1a;

	--poc-ct-gap: 24px;
	--poc-ct-pad: 28px;
	--poc-ct-radius: 18px;
	--poc-ct-carte-h: 320px;

	--poc-ct-ch-bg: #ffffff;
	--poc-ct-ch-bd: #efd2d2;
	--poc-ct-ch-radius: 12px;
	--poc-ct-ch-py: 13px;

	--poc-ct-bt-txt: #4e4e4c;
	--poc-ct-bt-bg1: #f38c8b;
	--poc-ct-bt-bg2: #a21a18;
	--poc-ct-bt-txt-h: #4e4e4c;
	--poc-ct-bt-bg1-h: #f7b2b1;
	--poc-ct-bt-bg2-h: #b22b28;
	--poc-ct-bt-py: 15px;
	--poc-ct-bt-radius: 12px;

	--poc-ct-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* =====================================================================
   2. GARDES — thème Modins
   ===================================================================== */
.poc-ct,
.poc-ct *,
.poc-ctp,
.poc-ctp * {
	box-sizing: border-box;
	min-width: 0;
}

.poc-ct [hidden],
.poc-ctp[hidden] {
	display: none !important;
}

.poc-ct :where(h1, h2, h3, h4, h5, h6, p, ul, ol, li),
.poc-ctp :where(h1, h2, h3, h4, h5, h6, p, ol, li) {
	margin: 0;
	padding: 0;
	letter-spacing: normal;
	list-style: none;
}

.poc-ct button,
.poc-ctp button {
	background: none;
	border: 0;
	margin: 0;
	padding: 0;
	font: inherit;
	color: inherit;
	border-radius: 0;
	position: static;
	z-index: auto;
	box-shadow: none;
	text-transform: none;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
}

.poc-ct button:hover,
.poc-ct button:focus,
.poc-ctp button:hover,
.poc-ctp button:focus {
	opacity: 1;
	box-shadow: none;
	background: none;
	color: inherit;
}

.poc-ct .poc-ct__titre,
.poc-ct .poc-ct__intro,
.poc-ct .poc-ct__label,
.poc-ct .poc-ct__item-val,
.poc-ct .poc-ct__btn {
	text-transform: none;
}

.poc-ct svg,
.poc-ctp svg {
	height: auto;
	vertical-align: middle;
}

.poc-ct a {
	text-decoration: none;
}

/* =====================================================================
   3. GRILLE DES BLOCS
   ===================================================================== */
.poc-ct {
	display: grid;
	gap: var(--poc-ct-gap);
	width: 100%;
	max-width: 100%;
	overflow-x: clip;
	color: var(--poc-ct-encre);
	font-size: 15px;
	line-height: 1.6;
}

/* Formulaire large + colonne latérale */
.poc-ct--form-aside {
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
	align-items: start;
}

/* Deux colonnes équilibrées */
.poc-ct--two-col {
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: start;
}

/* Empilé */
.poc-ct--stacked {
	grid-template-columns: minmax(0, 1fr);
}

.poc-ct__cote {
	display: grid;
	gap: var(--poc-ct-gap);
	min-width: 0;
}

/*
 * Alignement des bas de colonne. La grille est en `align-items: start`,
 * si bien que la colonne de droite s'arrêtait où son contenu finissait :
 * la carte ne descendait pas jusqu'au bas du formulaire. On étire donc
 * cette seule colonne, et la carte absorbe la hauteur restante.
 */
/* =====================================================================
   DESIGNS DE BLOCS (v1.1.0) — huit habillages via .poc-ct--d-*
   Le design 01 « Cartes blanches » est l'existant, sans classe dédiée.
   ===================================================================== */

/* --- 02 Perle : blocs teintés, sans ombre --- */
.poc-ct--d-perle .poc-ct__bloc {
	background: var(--poc-ct-creme);
	box-shadow: none;
}

.poc-ct--d-perle .poc-ct__input {
	background: #ffffff;
}

/* --- Recoloration commune des panneaux sombres (ardoise, panorama, verre) --- */
.poc-ct--d-ardoise .poc-ct__bloc--coords,
.poc-ct--d-panorama .poc-ct__bloc--coords,
.poc-ct--d-verre .poc-ct__bloc--coords {
	color: #e6c1c0;
}

.poc-ct--d-ardoise .poc-ct__bloc--coords .poc-ct__titre,
.poc-ct--d-panorama .poc-ct__bloc--coords .poc-ct__titre,
.poc-ct--d-verre .poc-ct__bloc--coords .poc-ct__titre,
.poc-ct--d-ardoise .poc-ct__bloc--coords .poc-ct__item-val,
.poc-ct--d-panorama .poc-ct__bloc--coords .poc-ct__item-val,
.poc-ct--d-verre .poc-ct__bloc--coords .poc-ct__item-val {
	color: #ffffff;
}

.poc-ct--d-ardoise .poc-ct__bloc--coords .poc-ct__item-lb,
.poc-ct--d-panorama .poc-ct__bloc--coords .poc-ct__item-lb,
.poc-ct--d-verre .poc-ct__bloc--coords .poc-ct__item-lb {
	color: var(--poc-ct-or-clair);
}

.poc-ct--d-ardoise .poc-ct__bloc--coords .poc-ct__ico,
.poc-ct--d-panorama .poc-ct__bloc--coords .poc-ct__ico,
.poc-ct--d-verre .poc-ct__bloc--coords .poc-ct__ico {
	background: rgba(243, 140, 139, 0.14);
	color: var(--poc-ct-or-clair);
}

.poc-ct--d-ardoise .poc-ct__bloc--coords .poc-ct__copier,
.poc-ct--d-panorama .poc-ct__bloc--coords .poc-ct__copier,
.poc-ct--d-verre .poc-ct__bloc--coords .poc-ct__copier {
	border-color: rgba(255, 255, 255, 0.24);
	color: #e6c1c0;
}

.poc-ct--d-ardoise .poc-ct__bloc--coords .poc-ct__statut-txt,
.poc-ct--d-panorama .poc-ct__bloc--coords .poc-ct__statut-txt,
.poc-ct--d-verre .poc-ct__bloc--coords .poc-ct__statut-txt {
	color: #fae5e5;
}

.poc-ct--d-ardoise .poc-ct__bloc--coords .poc-ct__urgence,
.poc-ct--d-panorama .poc-ct__bloc--coords .poc-ct__urgence,
.poc-ct--d-verre .poc-ct__bloc--coords .poc-ct__urgence {
	background: rgba(255, 255, 255, 0.07);
}

/* --- 03 Ardoise : le panneau coordonnées passe sur gris --- */
.poc-ct--d-ardoise .poc-ct__bloc--coords {
	background:
		radial-gradient(120% 90% at 90% -10%, rgba(63, 130, 212, 0.32), rgba(63, 130, 212, 0) 55%),
		linear-gradient(160deg, #4b4b47, #30302d);
	border-color: rgba(255, 255, 255, 0.12);
}

/* --- 04 Panorama : tout le widget sur gris --- */
.poc-ct--d-panorama {
	background:
		radial-gradient(130% 100% at 100% 0%, rgba(63, 130, 212, 0.28), rgba(63, 130, 212, 0) 55%),
		linear-gradient(160deg, #40403c, #2e2e2b);
	border-radius: calc(var(--poc-ct-radius) + 6px);
	padding: calc(var(--poc-ct-gap) + 6px);
	overflow: clip;
}

.poc-ct--d-panorama .poc-ct__bloc--coords {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.14);
	box-shadow: none;
}

.poc-ct--d-panorama .poc-ct__bloc--carte {
	border-color: rgba(255, 255, 255, 0.14);
	box-shadow: none;
}

/* --- 05 Contour rouge --- */
.poc-ct--d-contour .poc-ct__bloc {
	border: 1.5px solid #f2b8b7;
	box-shadow: none;
}

/* --- 06 Liseré dégradé en tête --- */
.poc-ct--d-lisere .poc-ct__bloc {
	position: relative;
	overflow: hidden;
}

.poc-ct--d-lisere .poc-ct__bloc::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--poc-ct-or), var(--poc-ct-or-clair));
	z-index: 1;
}

/* --- 07 Sans coutures : les blocs se fondent dans la section --- */
.poc-ct--d-nu .poc-ct__bloc {
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	padding-left: 0;
	padding-right: 0;
}

.poc-ct--d-nu .poc-ct__bloc--carte {
	border: 1px solid var(--poc-ct-filet);
	border-radius: var(--poc-ct-radius);
	overflow: hidden;
}

.poc-ct--d-nu .poc-ct__input {
	background: #ffffff;
}

/* --- 08 Verre : translucide, pensé pour un fond sombre de section --- */
.poc-ct--d-verre .poc-ct__bloc {
	background: rgba(255, 255, 255, 0.08);
	border-color: rgba(255, 255, 255, 0.16);
	box-shadow: none;
	-webkit-backdrop-filter: blur(9px);
	backdrop-filter: blur(9px);
}

.poc-ct--d-verre .poc-ct__bloc--form {
	color: #f7dede;
}

.poc-ct--d-verre .poc-ct__bloc--form .poc-ct__titre {
	color: #ffffff;
}

.poc-ct--d-verre .poc-ct__bloc--form .poc-ct__intro,
.poc-ct--d-verre .poc-ct__consent-txt,
.poc-ct--d-verre .poc-ct__mention-titre,
.poc-ct--d-verre .poc-ct__mention-corps,
.poc-ct--d-verre .poc-ct__label {
	color: #e6c1c0;
}

.poc-ct--d-verre .poc-ct__input {
	background: rgba(255, 255, 255, 0.94);
}

@media (min-width: 1025px) {
	/*
	 * Les deux colonnes partagent la hauteur de la rangée. Sans cela,
	 * celle qui a le moins de contenu s'arrête plus haut — et si la carte
	 * porte une hauteur minimale, c'est au contraire elle qui dépasse.
	 */
	.poc-ct--form-aside,
	.poc-ct--two-col {
		align-items: stretch;
	}

	.poc-ct--form-aside .poc-ct__cote,
	.poc-ct--two-col .poc-ct__cote {
		align-self: stretch;
		grid-template-rows: auto 1fr;
	}

	.poc-ct--form-aside .poc-ct__bloc--carte,
	.poc-ct--two-col .poc-ct__bloc--carte {
		height: 100%;
	}

	.poc-ct--form-aside .poc-ct__bloc--carte .poc-ct__carte,
	.poc-ct--two-col .poc-ct__bloc--carte .poc-ct__carte {
		height: 100%;
		/* La hauteur réglée dans Elementor devient un plancher : la carte
		   ne se tasse jamais si le formulaire est court. */
		min-height: var(--poc-ct-carte-h);
	}
}

.poc-ct__bloc {
	min-width: 0;
	max-width: 100%;
	padding: var(--poc-ct-pad);
	border: 1px solid var(--poc-ct-filet);
	border-radius: var(--poc-ct-radius);
	background: var(--poc-ct-fond);
	box-shadow: 0 16px 40px -28px rgba(78, 78, 76, 0.4);
}

/* Le bloc carte n'a pas de marge intérieure : la carte va bord à bord. */
.poc-ct__bloc--carte {
	padding: 0;
	overflow: hidden;
}

.poc-ct .poc-ct__titre {
	font-size: 19px;
	font-weight: 800;
	line-height: 1.25;
	margin-bottom: 8px;
	overflow-wrap: break-word;
}

.poc-ct .poc-ct__intro {
	color: var(--poc-ct-gris);
	margin-bottom: 20px;
	overflow-wrap: break-word;
}

/* =====================================================================
   4. FORMULAIRE
   ===================================================================== */
.poc-ct .poc-ct__pot {
	display: block;
	width: 0;
	height: 0;
	overflow: hidden;
	opacity: 0;
	pointer-events: none;
}

.poc-ct .poc-ct__duo {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0 16px;
}

.poc-ct .poc-ct__champ {
	width: 100%;
	max-width: 100%;
	margin-bottom: 13px;
}

.poc-ct .poc-ct__label {
	display: block;
	margin-bottom: 6px;
	font-size: 13px;
	font-weight: 600;
	overflow-wrap: break-word;
}

.poc-ct .poc-ct__requis {
	color: var(--poc-ct-or);
	margin-left: 2px;
}

.poc-ct .poc-ct__input {
	display: block;
	width: 100%;
	max-width: 100%;
	padding: var(--poc-ct-ch-py) 15px;
	border: 1.5px solid var(--poc-ct-ch-bd);
	border-radius: var(--poc-ct-ch-radius);
	background: var(--poc-ct-ch-bg);
	color: var(--poc-ct-encre);
	font-family: inherit;
	/* 16 px évite le zoom automatique d'iOS à la mise au point. */
	font-size: 16px;
	line-height: 1.4;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color 200ms var(--poc-ct-ease), box-shadow 200ms var(--poc-ct-ease);
}

.poc-ct .poc-ct__input:focus {
	outline: none;
	border-color: var(--poc-ct-or);
	box-shadow: 0 0 0 3px rgba(162, 26, 24, 0.16);
}

.poc-ct .poc-ct__textarea {
	resize: vertical;
	min-height: 118px;
}

.poc-ct .poc-ct__select {
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A616B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 13px center;
	background-size: 18px 18px;
}

/* Erreurs : jamais au chargement, uniquement à la soumission. */
.poc-ct .poc-ct__erreur {
	margin-top: 5px;
	color: var(--poc-ct-err);
	font-size: 13px;
	font-weight: 600;
	overflow-wrap: break-word;
}

.poc-ct .poc-ct__erreur--bloc {
	margin: 10px 0 0;
	padding: 11px 14px;
	border-radius: 10px;
	background: rgba(210, 59, 46, 0.08);
	border: 1px solid rgba(210, 59, 46, 0.24);
}

.poc-ct .is-invalide .poc-ct__input,
.poc-ct .poc-ct__input.is-invalide {
	border-color: var(--poc-ct-err);
}

/* --- Consentement --- */
.poc-ct .poc-ct__consent {
	display: flex;
	align-items: flex-start;
	cursor: pointer;
	font-size: 13px;
	line-height: 1.55;
	color: var(--poc-ct-gris);
}

.poc-ct .poc-ct__consent input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.poc-ct .poc-ct__consent-case {
	display: inline-block;
	width: 20px;
	height: 20px;
	flex: 0 0 auto;
	margin-right: 11px !important;
	border: 1.5px solid var(--poc-ct-ch-bd);
	border-radius: 6px;
	background: var(--poc-ct-ch-bg);
	transition: background 180ms var(--poc-ct-ease), border-color 180ms var(--poc-ct-ease);
}

.poc-ct .poc-ct__consent input:checked + .poc-ct__consent-case {
	background: var(--poc-ct-or);
	border-color: var(--poc-ct-or);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12.5l5 5L20 6.5'/%3E%3C/svg%3E");
	background-size: 13px 13px;
	background-position: center;
	background-repeat: no-repeat;
}

.poc-ct .poc-ct__consent input:focus-visible + .poc-ct__consent-case {
	outline: 2px solid var(--poc-ct-or);
	outline-offset: 2px;
}

.poc-ct .poc-ct__consent-txt {
	min-width: 0;
	overflow-wrap: break-word;
}

/* --- Mention légale repliable --- */
.poc-ct .poc-ct__mention {
	margin: 0 0 14px;
	border-radius: 10px;
	background: var(--poc-ct-creme);
	color: var(--poc-ct-gris);
}

.poc-ct .poc-ct__mention-titre {
	list-style: none;
	cursor: pointer;
	padding: 10px 14px;
	font-size: 12px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.poc-ct .poc-ct__mention-titre::-webkit-details-marker {
	display: none;
}

.poc-ct .poc-ct__mention-titre::after {
	content: '+';
	flex: 0 0 auto;
	font-size: 16px;
	line-height: 1;
	color: var(--poc-ct-or);
}

.poc-ct .poc-ct__mention[open] .poc-ct__mention-titre::after {
	content: '\2212';
}

.poc-ct .poc-ct__mention-corps {
	padding: 0 14px 12px;
	font-size: 11.5px;
	line-height: 1.6;
	overflow-wrap: break-word;
}

.poc-ct .poc-ct__mention a {
	color: var(--poc-ct-or);
	font-weight: 700;
	text-decoration: underline;
}

/* --- Bouton d'envoi --- */
.poc-ct .poc-ct__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 100%;
	padding: var(--poc-ct-bt-py) 28px;
	border-radius: var(--poc-ct-bt-radius);
	background: linear-gradient(135deg, var(--poc-ct-bt-bg1), var(--poc-ct-bt-bg2));
	color: var(--poc-ct-bt-txt);
	font-size: 15px;
	font-weight: 700;
	line-height: 1.25;
	overflow-wrap: break-word;
	box-shadow: 0 10px 24px -12px rgba(162, 26, 24, 0.85);
	transition: background 220ms var(--poc-ct-ease),
		color 220ms var(--poc-ct-ease),
		transform 220ms var(--poc-ct-ease);
}

.poc-ct .poc-ct__btn:hover,
.poc-ct .poc-ct__btn:focus-visible {
	background: linear-gradient(135deg, var(--poc-ct-bt-bg1-h), var(--poc-ct-bt-bg2-h));
	color: var(--poc-ct-bt-txt-h);
	transform: translateY(-2px);
}

.poc-ct .poc-ct__btn:focus-visible {
	outline: 2px solid var(--poc-ct-or);
	outline-offset: 3px;
}

.poc-ct .poc-ct__btn[disabled] {
	opacity: 0.65;
	cursor: wait;
	transform: none;
}

.poc-ct .poc-ct__spinner {
	display: none;
	width: 15px;
	height: 15px;
	flex: 0 0 auto;
	margin-left: 9px !important;
	border: 2px solid rgba(78, 78, 76, 0.28);
	border-top-color: currentColor;
	border-radius: 50%;
	animation: poc-ct-tourne 700ms linear infinite;
}

.poc-ct .poc-ct__btn.is-envoi .poc-ct__spinner {
	display: block;
}

@keyframes poc-ct-tourne {
	to {
		transform: rotate(360deg);
	}
}

/* =====================================================================
   5. COORDONNÉES
   ===================================================================== */

/* --- Statut d'ouverture, calculé chez le visiteur --- */
.poc-ct .poc-ct__statut {
	display: inline-flex;
	align-items: center;
	margin-bottom: 10px;
	padding: 6px 14px 6px 11px;
	border-radius: 999px;
	background: var(--poc-ct-creme);
	font-size: 13px;
	font-weight: 700;
}

.poc-ct .poc-ct__pastille {
	display: inline-block;
	width: 9px;
	height: 9px;
	flex: 0 0 auto;
	margin-right: 9px !important;
	border-radius: 50%;
	background: var(--poc-ct-gris);
}

.poc-ct .poc-ct__statut.is-ouvert {
	color: var(--poc-ct-ouvert);
}

.poc-ct .poc-ct__statut.is-ouvert .poc-ct__pastille {
	background: var(--poc-ct-ouvert);
	box-shadow: 0 0 0 0 rgba(63, 143, 79, 0.55);
	animation: poc-ct-battement 2.4s ease-out infinite;
}

@keyframes poc-ct-battement {
	0% {
		box-shadow: 0 0 0 0 rgba(63, 143, 79, 0.55);
	}
	70% {
		box-shadow: 0 0 0 9px rgba(63, 143, 79, 0);
	}
	100% {
		box-shadow: 0 0 0 0 rgba(63, 143, 79, 0);
	}
}

.poc-ct .poc-ct__statut.is-ferme {
	color: var(--poc-ct-ferme);
}

.poc-ct .poc-ct__statut.is-ferme .poc-ct__pastille {
	background: var(--poc-ct-ferme);
}

.poc-ct .poc-ct__statut-txt {
	min-width: 0;
	overflow-wrap: break-word;
}

/* --- Mention urgences, visible même porte close --- */
.poc-ct .poc-ct__urgence {
	display: flex;
	align-items: center;
	margin-bottom: 18px;
	font-size: 13px;
	font-weight: 600;
	color: var(--poc-ct-or);
}

.poc-ct .poc-ct__urgence-point {
	display: inline-block;
	width: 6px;
	height: 6px;
	flex: 0 0 auto;
	margin-right: 8px !important;
	border-radius: 50%;
	background: currentColor;
}

/* --- Liste des coordonnées --- */
.poc-ct .poc-ct__liste {
	display: grid;
	gap: 4px;
}

.poc-ct .poc-ct__item {
	display: flex;
	align-items: center;
	min-width: 0;
	padding: 10px;
	border-radius: 12px;
	transition: background 200ms var(--poc-ct-ease);
}

.poc-ct .poc-ct__item:hover {
	background: var(--poc-ct-creme);
}

.poc-ct .poc-ct__ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.35em;
	height: 2.35em;
	flex: 0 0 auto;
	margin-right: 12px !important;
	border-radius: 12px;
	background: var(--poc-ct-creme);
	color: var(--poc-ct-or);
	font-size: 15px;
}

.poc-ct .poc-ct__ico i,
.poc-ct .poc-ct__ico i::before,
.poc-ct .poc-ct__ico svg {
	line-height: 1 !important;
	vertical-align: middle;
	display: block;
}

.poc-ct .poc-ct__ico svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.poc-ct .poc-ct__item:hover .poc-ct__ico {
	background: var(--poc-ct-or);
	color: #fff;
}

.poc-ct .poc-ct__item-corps {
	display: flex;
	flex-direction: column;
	min-width: 0;
	flex: 1 1 auto;
}

.poc-ct .poc-ct__item-lb {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--poc-ct-gris);
}

.poc-ct .poc-ct__item-val {
	font-size: 14.5px;
	font-weight: 600;
	color: var(--poc-ct-encre);
	overflow-wrap: break-word;
	transition: color 180ms var(--poc-ct-ease);
}

.poc-ct a.poc-ct__item-val:hover,
.poc-ct a.poc-ct__item-val:focus-visible {
	color: var(--poc-ct-or);
}

/* --- Bouton copier --- */
.poc-ct .poc-ct__copier {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	flex: 0 0 auto;
	margin-left: 8px !important;
	border-radius: 9px;
	color: var(--poc-ct-gris);
	opacity: 0;
	transition: opacity 180ms var(--poc-ct-ease),
		background 180ms var(--poc-ct-ease),
		color 180ms var(--poc-ct-ease);
}

.poc-ct .poc-ct__copier svg {
	width: 16px;
	height: 16px;
}

.poc-ct .poc-ct__item:hover .poc-ct__copier,
.poc-ct .poc-ct__copier:focus-visible {
	opacity: 1;
}

.poc-ct .poc-ct__copier:hover,
.poc-ct .poc-ct__copier:focus-visible {
	background: var(--poc-ct-creme);
	color: var(--poc-ct-or);
}

/* Sur écran tactile, il n'y a pas de survol : le bouton reste visible. */
@media (hover: none) {
	.poc-ct .poc-ct__copier {
		opacity: 1;
	}
}

.poc-ct .poc-ct__copier.is-copie {
	background: var(--poc-ct-ouvert);
	color: #fff;
	opacity: 1;
}

/* --- Réseaux --- */
.poc-ct .poc-ct__reseaux {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--poc-ct-filet);
}

.poc-ct .poc-ct__reseau {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 11px;
	background: var(--poc-ct-creme);
	color: var(--poc-ct-encre);
	transition: background 200ms var(--poc-ct-ease), color 200ms var(--poc-ct-ease);
}

.poc-ct .poc-ct__reseau:hover,
.poc-ct .poc-ct__reseau:focus-visible {
	background: var(--poc-ct-or);
	color: #fff;
}

/* =====================================================================
   6. CARTE
   ===================================================================== */
.poc-ct .poc-ct__carte {
	position: relative;
	width: 100%;
	height: var(--poc-ct-carte-h);
	background: var(--poc-ct-creme);
}

.poc-ct .poc-ct__carte iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}

/*
 * Vignette de la carte différée. Tant qu'on n'a pas cliqué, aucune requête
 * ne part chez Google : ni cookie, ni ralentissement au chargement.
 */
.poc-ct .poc-ct__carte-vignette {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 24px;
	text-align: center;
	background:
		radial-gradient(circle at 30% 25%, rgba(162, 26, 24, 0.1), transparent 55%),
		repeating-linear-gradient(
			45deg,
			var(--poc-ct-creme) 0px,
			var(--poc-ct-creme) 14px,
			#faf0f0 14px,
			#faf0f0 28px
		);
	transition: background-color 220ms var(--poc-ct-ease);
}

.poc-ct .poc-ct__carte-ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin-bottom: 12px;
	border-radius: 50%;
	background: var(--poc-ct-fond);
	color: var(--poc-ct-or);
	box-shadow: 0 8px 20px -10px rgba(78, 78, 76, 0.45);
}

.poc-ct .poc-ct__carte-ico svg {
	width: 24px;
	height: 24px;
}

.poc-ct .poc-ct__carte-titre {
	display: block;
	max-width: 100%;
	font-size: 15px;
	font-weight: 700;
	color: var(--poc-ct-encre);
	overflow-wrap: break-word;
}

.poc-ct .poc-ct__carte-note {
	display: block;
	max-width: 34ch;
	margin-top: 6px;
	font-size: 11.5px;
	line-height: 1.5;
	color: var(--poc-ct-gris);
	overflow-wrap: break-word;
}

.poc-ct .poc-ct__carte-vignette:hover .poc-ct__carte-ico,
.poc-ct .poc-ct__carte-vignette:focus-visible .poc-ct__carte-ico {
	background: var(--poc-ct-or);
	color: #fff;
}

.poc-ct .poc-ct__carte-vignette:focus-visible {
	outline: 2px solid var(--poc-ct-or);
	outline-offset: -4px;
}

/* =====================================================================
   7. RESPONSIVE
   ===================================================================== */
@media (max-width: 1024px) {
	.poc-ct {
		--poc-ct-pad: 22px;
	}

	.poc-ct--form-aside,
	.poc-ct--two-col {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 767px) {
	.poc-ct {
		--poc-ct-pad: 18px;
		--poc-ct-gap: 16px;
	}

	.poc-ct .poc-ct__duo {
		grid-template-columns: minmax(0, 1fr);
	}

	/*
	 * Ordre libre sur mobile. La colonne latérale se dissout : ses deux
	 * blocs remontent au niveau de la grille principale et chacun prend la
	 * position choisie dans Elementor.
	 */
	.poc-ct__cote {
		display: contents;
	}

	.poc-ct__bloc {
		order: var(--poc-ct-ordre, 1);
	}


}

/* =====================================================================
   8. POPUP (hors du bloc, en fin de body)
   ===================================================================== */
.poc-ctp {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 18px;
	font-family: inherit;
}

.poc-ctp__voile {
	position: absolute;
	inset: 0;
	background: rgba(45, 45, 42, 0.62);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	animation: poc-ctp-voile 320ms var(--poc-ct-ease);
}

@keyframes poc-ctp-voile {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;
	}
}

.poc-ctp__panneau {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 440px;
	max-height: calc(100vh - 36px);
	overflow-y: auto;
	overflow-x: clip;
	padding: 40px 30px 30px;
	border-radius: 24px;
	background: var(--poc-ct-fond);
	color: var(--poc-ct-encre);
	text-align: center;
	box-shadow: 0 40px 90px -24px rgba(0, 0, 0, 0.55);
	animation: poc-ctp-entree 520ms var(--poc-ct-ease);
}

.poc-ctp__panneau::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--poc-ct-or-clair), var(--poc-ct-or), var(--poc-ct-or-clair));
}

@keyframes poc-ctp-entree {
	from {
		opacity: 0;
		transform: translate3d(0, 24px, 0) scale(0.95);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.poc-ctp__sceau,
.poc-ctp__titre,
.poc-ctp__texte,
.poc-ctp__suite,
.poc-ctp__tel,
.poc-ctp__btn {
	animation: poc-ctp-monte 560ms var(--poc-ct-ease) backwards;
}

.poc-ctp__titre {
	animation-delay: 380ms;
}
.poc-ctp__texte {
	animation-delay: 460ms;
}
.poc-ctp__suite {
	animation-delay: 540ms;
}
.poc-ctp__tel {
	animation-delay: 620ms;
}
.poc-ctp__btn {
	animation-delay: 700ms;
}

@keyframes poc-ctp-monte {
	from {
		opacity: 0;
		transform: translate3d(0, 12px, 0);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.poc-ctp__sceau {
	position: relative;
	width: 96px;
	height: 96px;
	margin: 0 auto 22px;
	color: var(--poc-ct-or);
}

.poc-ctp__halo {
	position: absolute;
	inset: -18%;
	border-radius: 50%;
	background: radial-gradient(
		circle,
		rgba(162, 26, 24, 0.26) 0%,
		rgba(162, 26, 24, 0.08) 45%,
		rgba(162, 26, 24, 0) 70%
	);
	transform: scale(0.4);
	opacity: 0;
	animation: poc-ctp-halo 1100ms var(--poc-ct-ease) 260ms forwards;
}

@keyframes poc-ctp-halo {
	to {
		transform: scale(1);
		opacity: 1;
	}
}

.poc-ctp__sceau svg {
	position: relative;
	z-index: 2;
	width: 100%;
	height: 100%;
	display: block;
	overflow: visible;
}

.poc-ctp__anneau {
	stroke-dasharray: 327;
	stroke-dashoffset: 327;
	transform-origin: 50% 50%;
	transform: rotate(-90deg);
	opacity: 0.45;
	animation: poc-ctp-trace 900ms var(--poc-ct-ease) 120ms forwards;
}

.poc-ctp__check {
	stroke-dasharray: 76;
	stroke-dashoffset: 76;
	animation: poc-ctp-trace 520ms var(--poc-ct-ease) 620ms forwards;
}

@keyframes poc-ctp-trace {
	to {
		stroke-dashoffset: 0;
	}
}

.poc-ctp__titre {
	font-size: 23px;
	font-weight: 800;
	line-height: 1.22;
	margin-bottom: 10px;
	overflow-wrap: break-word;
}

.poc-ctp__texte {
	color: var(--poc-ct-gris);
	font-size: 14.5px;
	line-height: 1.6;
	margin-bottom: 22px;
	overflow-wrap: break-word;
}

.poc-ctp__suite {
	text-align: left;
	padding: 16px 18px;
	margin-bottom: 16px;
	border-radius: 16px;
	background: var(--poc-ct-creme);
}

.poc-ctp__suite-titre {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--poc-ct-gris);
	margin-bottom: 12px;
}

.poc-ctp__etape {
	position: relative;
	display: flex;
	align-items: flex-start;
	padding-bottom: 13px;
}

.poc-ctp__etape:last-child {
	padding-bottom: 0;
}

.poc-ctp__etape:not(:last-child)::before {
	content: '';
	position: absolute;
	left: 11px;
	top: 24px;
	bottom: 2px;
	width: 2px;
	border-radius: 2px;
	background: linear-gradient(to bottom, var(--poc-ct-or-clair), rgba(162, 26, 24, 0.18));
}

.poc-ctp__puce {
	position: relative;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	flex: 0 0 auto;
	margin-right: 12px !important;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--poc-ct-or-clair), var(--poc-ct-or));
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}

.poc-ctp__etape-txt {
	min-width: 0;
	padding-top: 2px;
	font-size: 13.5px;
	line-height: 1.45;
	font-weight: 600;
	overflow-wrap: break-word;
}

.poc-ctp__tel {
	display: block;
	padding: 14px 16px;
	margin-bottom: 20px;
	border-radius: 16px;
	background: var(--poc-ct-encre);
	text-decoration: none;
	transition: transform 220ms var(--poc-ct-ease);
}

.poc-ctp__tel:hover,
.poc-ctp__tel:focus-visible {
	transform: translateY(-2px);
}

.poc-ctp__tel-lb {
	display: block;
	font-size: 11.5px;
	color: rgba(255, 255, 255, 0.62);
	margin-bottom: 3px;
}

.poc-ctp__tel-num {
	display: block;
	font-size: 20px;
	font-weight: 800;
	color: var(--poc-ct-or-clair);
}

.poc-ctp__btn {
	display: block;
	width: 100%;
	padding: var(--poc-ct-bt-py) 28px;
	border-radius: var(--poc-ct-bt-radius);
	background: linear-gradient(135deg, var(--poc-ct-bt-bg1), var(--poc-ct-bt-bg2));
	color: var(--poc-ct-bt-txt);
	font-size: 15px;
	font-weight: 700;
	box-shadow: 0 12px 26px -12px rgba(162, 26, 24, 0.9);
	transition: background 220ms var(--poc-ct-ease), transform 220ms var(--poc-ct-ease);
}

.poc-ctp__btn:hover,
.poc-ctp__btn:focus-visible {
	background: linear-gradient(135deg, var(--poc-ct-bt-bg1-h), var(--poc-ct-bt-bg2-h));
	transform: translateY(-2px);
}

@media (max-width: 400px) {
	.poc-ctp__panneau {
		padding: 32px 20px 24px;
	}
	.poc-ctp__sceau {
		width: 78px;
		height: 78px;
	}
	.poc-ctp__titre {
		font-size: 20px;
	}
}

/* =====================================================================
   9. ACCESSIBILITÉ
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {
	.poc-ct *,
	.poc-ct *::before,
	.poc-ct *::after,
	.poc-ctp *,
	.poc-ctp *::before,
	.poc-ctp *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
	}

	.poc-ctp__anneau,
	.poc-ctp__check {
		stroke-dashoffset: 0;
	}

	.poc-ctp__halo {
		opacity: 1;
		transform: scale(1);
	}
}
