/* =========================================================================
   Fiche séjour, présentation V2 (version production préparée le 23/10/2026, activation par vagues).
   Chargée uniquement quand ucp_child_presentation_v2_active() est vraie.
   Contrastes vérifiés : bronze des petits textes #7d5e2c (≥ 4,9:1 sur ivoire),
   picto bronze #9a7438 (3,5:1 sur son disque, au-dessus du minimum de 3:1 pour un graphisme).
   ========================================================================= */

.ucp-v2 {
	--v2-ivoire: #fbf9f4;
	--v2-trait: #e4ddd0;
	--v2-entete: #efe9df;
	--v2-disque: #efe8da;
	--v2-vert: #1f3d2f;
	--v2-texte: #2b2925;
	--v2-doux: #5d5850;
	--v2-bronze: #7d5e2c;
	--v2-picto: #9a7438;
	--v2-or: #d4af37;
	--v2-olive: #5a6b3c;
}

/* Titres de bloc, à l'intérieur des sections V4 existantes. */
.ucp-sejour-page .ucp-content-section h3.ucp-v2-bloc {
	margin: 40px 0 16px;
	font-family: var(--ucp-font-serif);
	font-size: 21px;
	font-weight: 700;
	line-height: 1.3;
	color: #1e1e20;
}
.ucp-v2 .ucp-v4-accordion + h3.ucp-v2-bloc { margin-top: 36px; }

/* --- 1. Le déroulement --------------------------------------------------- */

/* Sélecteurs par l'identifiant de section : les règles générales des tableaux de fiche
   (.ucp-content-section table:not(.ucp-table)) et de WooCommerce (#main-content table…) sont plus fortes. */

#terrain-v4.ucp-v2 .ucp-v2-programme {
	width: 100%;
	margin: 0;
	border: 1px solid var(--v2-trait);
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 14px;
	overflow: hidden;
	background: var(--v2-ivoire);
	table-layout: auto;
}
#terrain-v4.ucp-v2 .ucp-v2-programme thead th {
	padding: 14px 24px;
	border: 0;
	border-bottom: 1px solid var(--v2-trait);
	background: var(--v2-entete);
	color: var(--v2-bronze);
	font-family: var(--ucp-font-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-align: left;
	text-transform: uppercase;
}
#terrain-v4.ucp-v2 .ucp-v2-programme tbody th,
#terrain-v4.ucp-v2 .ucp-v2-programme tbody td {
	padding: 18px 24px;
	background: transparent;
	letter-spacing: normal;
	text-transform: none;
	border: 0;
	border-bottom: 1px solid var(--v2-trait);
	vertical-align: top;
	text-align: left;
}
#terrain-v4.ucp-v2 .ucp-v2-programme tbody tr:last-child th,
#terrain-v4.ucp-v2 .ucp-v2-programme tbody tr:last-child td { border-bottom: 0; }
#terrain-v4.ucp-v2 .ucp-v2-programme tbody th {
	width: 190px;
	color: var(--v2-vert);
	font-family: var(--ucp-font-serif);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
}
#terrain-v4.ucp-v2 .ucp-v2-programme tbody td { color: var(--v2-texte); font-size: 15px; line-height: 1.65; }
#terrain-v4.ucp-v2 .ucp-v2-programme tr.is-hunt th { box-shadow: inset 3px 0 0 var(--v2-or); }
.ucp-v2 .ucp-v2-note { margin: 12px 2px 0; color: var(--v2-doux); font-size: 14px; line-height: 1.6; }
.ucp-v2 .ucp-v2-note strong { color: var(--v2-texte); }

/* --- 2. La chasse et les chiens ------------------------------------------ */

.ucp-v2 .ucp-v2-cartes,
.ucp-v2 .ucp-v2-infos {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}
.ucp-v2 .ucp-v2-carte,
.ucp-v2 .ucp-v2-info {
	border: 1px solid var(--v2-trait);
	border-radius: 14px;
	background: var(--v2-ivoire);
}
.ucp-v2 .ucp-v2-carte { padding: 24px 26px; }
.ucp-v2 .ucp-v2-filet { display: block; width: 28px; height: 2px; margin-bottom: 14px; background: var(--v2-or); }
.ucp-sejour-page .ucp-v2 .ucp-v2-carte h4,
.ucp-sejour-page .ucp-v2 .ucp-v2-info h3 {
	margin: 0 0 8px;
	padding: 0;
	border: 0;
	color: var(--v2-vert);
	font-family: var(--ucp-font-serif);
	font-size: 18px;
	font-weight: 700;
	line-height: 1.3;
}
.ucp-v2 .ucp-v2-carte p,
.ucp-v2 .ucp-v2-info p { margin: 0; color: var(--v2-texte); font-size: 15px; line-height: 1.6; }

.ucp-v2 .ucp-v2-savoir { margin-top: 20px; border-top: 1px solid var(--v2-trait); }
.ucp-v2 .ucp-v2-savoir__titre {
	margin: 16px 0 0;
	color: var(--v2-bronze);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}
.ucp-v2 .ucp-v2-savoir dl {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 24px;
	margin: 0;
}
.ucp-v2 .ucp-v2-savoir dl > div { padding: 12px 0 4px; }
.ucp-v2 .ucp-v2-savoir dt {
	margin: 0 0 4px;
	color: var(--v2-vert);
	font-size: 14px;
	font-weight: 700;
}
.ucp-v2 .ucp-v2-savoir dd { margin: 0; color: var(--v2-doux); font-size: 14px; line-height: 1.6; }

/* --- 3. Informations utiles ---------------------------------------------- */

.ucp-v2 .ucp-v2-info {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	gap: 18px;
	align-items: start;
	padding: 22px 24px;
}
.ucp-v2 .ucp-v2-picto {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--v2-disque);
	color: var(--v2-picto);
}
.ucp-v2 .ucp-v2-picto svg {
	width: 24px;
	height: 24px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.ucp-sejour-page .ucp-v2 .ucp-v2-info h3 { margin-top: 2px; font-size: 17px; }
.ucp-v2 .ucp-v2-info p + p { margin-top: 8px; }

/* --- 4. La saison -------------------------------------------------------- */

.ucp-v2 .ucp-v2-saison {
	margin-top: 32px;
	padding: 34px 34px 28px;
	border-radius: 16px;
	background: var(--v2-vert);
	color: #ece6da;
}
.ucp-v2 .ucp-v2-saison__tete {
	margin: 0 0 6px;
	color: #cfc6b2;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}
.ucp-sejour-page .ucp-v2 .ucp-v2-saison h3 {
	margin: 0 0 14px;
	padding: 0;
	border: 0;
	color: #e9c766;
	font-family: var(--ucp-font-sans);
	font-size: 22px;
	font-weight: 800;
	line-height: 1.35;
}
.ucp-v2 .ucp-v2-saison p { max-width: 760px; margin: 0 0 12px; color: #ece6da; font-size: 15px; line-height: 1.65; }
.ucp-v2 .ucp-v2-mois {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 6px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}
.ucp-v2 .ucp-v2-mois li {
	position: relative;
	margin: 0;
	padding: 11px 0 9px;
	border: 1px solid #3f5d4e;
	border-radius: 6px;
	color: #b7c4bb;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1;
	text-align: center;
}
.ucp-v2 .ucp-v2-mois li::marker { content: none; }
.ucp-v2 .ucp-v2-mois li.is-open { border-color: var(--v2-olive); background: var(--v2-olive); color: #f4efe7; }
.ucp-v2 .ucp-v2-mois li.is-best { border-color: var(--v2-or); background: var(--v2-or); color: #1e2a22; }
.ucp-v2 .ucp-v2-mois li.is-new-year::before {
	content: "";
	position: absolute;
	top: -6px;
	bottom: -6px;
	left: -5px;
	border-left: 1px dashed #6f8578;
}
.ucp-v2 .ucp-v2-legende { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 16px 0 0; color: #d8d1c3; font-size: 13px; }
.ucp-v2 .ucp-v2-legende i { display: inline-block; width: 12px; height: 12px; margin-right: 7px; border-radius: 3px; vertical-align: -1px; }
.ucp-v2 .ucp-v2-legende i.is-open { background: var(--v2-olive); }
.ucp-v2 .ucp-v2-legende i.is-best { background: var(--v2-or); }

.ucp-v2 .ucp-v2-sr {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* --- 3 bis. Informations utiles en accordéon (mobile, classe posée par le script du bloc) ------------- */

.ucp-v2 .ucp-v2-infos.is-accordeon {
	gap: 0;
	border: 1px solid var(--v2-trait);
	border-radius: 14px;
	overflow: hidden;
	background: var(--v2-ivoire);
}
.ucp-v2 .ucp-v2-infos.is-accordeon .ucp-v2-info {
	gap: 12px;
	align-items: start;
	padding: 4px 16px;
	border: 0;
	border-radius: 0;
	background: transparent;
	grid-template-columns: 32px minmax(0, 1fr);
}
.ucp-v2 .ucp-v2-infos.is-accordeon .ucp-v2-info + .ucp-v2-info { border-top: 1px solid var(--v2-trait); }
.ucp-v2 .ucp-v2-infos.is-accordeon .ucp-v2-picto { width: 32px; height: 32px; margin-top: 8px; }
.ucp-v2 .ucp-v2-infos.is-accordeon .ucp-v2-picto svg { width: 18px; height: 18px; }
.ucp-sejour-page .ucp-v2 .ucp-v2-infos.is-accordeon .ucp-v2-info h3 { margin: 0; font-size: 16px; }
.ucp-v2 .ucp-v2-info__btn {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 6px 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}
/* La zone cliquable couvre aussi le picto, à gauche du bouton. */
.ucp-v2 .ucp-v2-info__btn::after { content: ""; position: absolute; top: -4px; right: -16px; bottom: -4px; left: -60px; }
.ucp-v2 .ucp-v2-info__btn:focus-visible { outline: 3px solid var(--v2-or); outline-offset: 2px; border-radius: 4px; }
.ucp-v2 .ucp-v2-chevron {
	flex: 0 0 auto;
	width: 8px;
	height: 8px;
	margin: -4px 4px 0 auto;
	border-right: 1.5px solid var(--v2-bronze);
	border-bottom: 1.5px solid var(--v2-bronze);
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}
.ucp-v2 .ucp-v2-info.is-open .ucp-v2-chevron { margin-top: 4px; transform: rotate(-135deg); }
.ucp-v2 .ucp-v2-infos.is-accordeon .ucp-v2-info__corps { padding: 0 0 14px; }
@media (prefers-reduced-motion: reduce) { .ucp-v2 .ucp-v2-chevron { transition: none; } }

/* --- Note sous le tableau « Taxes de tir & options » (section Tarifs, hors V2 mais chargée avec elle) --------- */
/* Texte courant lisible au lieu du petit italique : la note porte des conditions commerciales (22/10/2026). */
.ucp-sejour-page #tarifs-v4 .ucp-table-note.ucp-v2-note-tarif {
	margin: 16px 0 0;
	color: var(--ucp-text);
	font-size: 15px;
	font-style: normal;
	line-height: 1.65;
}
.ucp-sejour-page #tarifs-v4 .ucp-table-note.ucp-v2-note-tarif + .ucp-v2-note-tarif { margin-top: 10px; }

/* --- Arguments commerciaux sous le prix (encart de demande, fiches V2) ------------------------------ */
/* Même rendu sur ordinateur et téléphone ; rien dans la barre collante mobile.
   :is(#left-area, body) : passe devant la règle Divi « #left-area ul » (padding 0 0 23px 1em). */
:is(#left-area, body) .ucp-sidebar .ucp-v2-arguments {
	display: grid;
	gap: 12px;
	margin: 18px 0 0;
	padding: 16px 0 0;
	border-top: 1px solid rgba(212, 175, 55, 0.28);
	list-style: none;
}
.ucp-sidebar .ucp-v2-arguments li {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr);
	gap: 10px;
	margin: 0;
	padding: 0;
	color: rgba(244, 239, 231, 0.86);
	font-size: 13px;
	line-height: 1.5;
}
.ucp-sidebar .ucp-v2-arguments li::before,
.ucp-sidebar .ucp-v2-arguments li::marker { content: none; }
.ucp-sidebar .ucp-v2-arguments svg {
	width: 18px;
	height: 18px;
	margin-top: 1px;
	fill: none;
	stroke: #d4af37;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* --- Mobile -------------------------------------------------------------- */

@media (max-width: 700px) {
	.ucp-v2 .ucp-v2-cartes,
	.ucp-v2 .ucp-v2-infos,
	.ucp-v2 .ucp-v2-savoir dl { grid-template-columns: minmax(0, 1fr); }

	/* Le tableau devient une pile d'étapes : rôles ARIA posés dans le HTML, la sémantique reste. */
	#terrain-v4.ucp-v2 .ucp-v2-programme thead { display: none; }
	#terrain-v4.ucp-v2 .ucp-v2-programme,
	#terrain-v4.ucp-v2 .ucp-v2-programme tbody,
	#terrain-v4.ucp-v2 .ucp-v2-programme tr,
	#terrain-v4.ucp-v2 .ucp-v2-programme tbody th,
	#terrain-v4.ucp-v2 .ucp-v2-programme tbody td { display: block; width: auto; }
	#terrain-v4.ucp-v2 .ucp-v2-programme tr { border-bottom: 1px solid var(--v2-trait); }
	#terrain-v4.ucp-v2 .ucp-v2-programme tr:last-child { border-bottom: 0; }
	#terrain-v4.ucp-v2 .ucp-v2-programme tbody th,
	#terrain-v4.ucp-v2 .ucp-v2-programme tbody td { border-bottom: 0; }
	#terrain-v4.ucp-v2 .ucp-v2-programme tr.is-hunt th { box-shadow: none; }
	#terrain-v4.ucp-v2 .ucp-v2-programme tr.is-hunt { box-shadow: inset 3px 0 0 var(--v2-or); }

	/* Espacements verticaux resserrés sur mobile (22/10) : lisibilité conservée, environ 10 % de hauteur en moins. */
	.ucp-sejour-page .ucp-content-section h3.ucp-v2-bloc { margin: 30px 0 12px; font-size: 20px; }
	.ucp-v2 .ucp-v4-accordion + h3.ucp-v2-bloc { margin-top: 28px; }
	#terrain-v4.ucp-v2 .ucp-v2-programme tbody th { padding: 14px 16px 2px; }
	#terrain-v4.ucp-v2 .ucp-v2-programme tbody td { padding: 4px 16px 14px; line-height: 1.6; }
	.ucp-v2 .ucp-v2-cartes,
	.ucp-v2 .ucp-v2-infos { gap: 12px; }
	.ucp-v2 .ucp-v2-carte { padding: 16px 18px 18px; }
	.ucp-v2 .ucp-v2-filet { margin-bottom: 10px; }
	.ucp-sejour-page .ucp-v2 .ucp-v2-carte h4 { margin-bottom: 6px; }
	.ucp-v2 .ucp-v2-carte p,
	.ucp-v2 .ucp-v2-info p { line-height: 1.55; }
	.ucp-v2 .ucp-v2-savoir { margin-top: 16px; }
	.ucp-v2 .ucp-v2-savoir dl > div { padding: 10px 0 2px; }
	.ucp-v2 .ucp-v2-info { gap: 14px; padding: 16px; grid-template-columns: 40px minmax(0, 1fr); }
	.ucp-v2 .ucp-v2-info p + p { margin-top: 6px; }
	.ucp-v2 .ucp-v2-picto { width: 40px; height: 40px; }
	.ucp-v2 .ucp-v2-picto svg { width: 22px; height: 22px; }

	.ucp-v2 .ucp-v2-saison { margin-top: 24px; padding: 24px 18px 20px; }
	.ucp-v2 .ucp-v2-saison p { margin-bottom: 10px; }
	.ucp-v2 .ucp-v2-mois { margin-top: 18px; }
	.ucp-sejour-page .ucp-v2 .ucp-v2-saison h3 { font-size: 19px; }
	.ucp-v2 .ucp-v2-mois { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px 6px; }
}
