/**
 * Single product — variante SAUNA.
 *
 * Reproduction du mockup docs/sauna_finlandais_FINAL.html. Toutes les règles
 * sont préfixées par .cf-pdp-sauna pour ne JAMAIS impacter le PDP « Flex »
 * ni les autres produits. Les composants base du PDP (.ph, .ph-gal, .p-lbl,
 * .p-name, .p-tagline, .p-ctas, .p-re, .sec, .lbl, h2, .two-col, .feat-list,
 * .vis, .specs-wrap, .qa-wrap…) sont déjà stylés dans woocommerce.css du
 * thème — on les réutilise tels quels. Ici on ajoute seulement les nouveaux
 * composants sauna (config-panel, dyn-specs, tech-config, ct-band, outdoor-band).
 */

/* ────────── HERO — ajustements sauna ────────── */
.cf-pdp-sauna .cfs-p-name {
	font-size: clamp(32px, 3.5vw, 50px) !important;
}
.cf-pdp-sauna .cfs-p-ctas {
	margin-top: 16px;
}
.cf-pdp-sauna .cfs-contact {
	font-size: 13px;
	margin: 8px 0 12px;
	color: var(--charcoal);
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}
.cf-pdp-sauna .cfs-contact a {
	color: var(--charcoal);
	font-weight: 600;
	text-decoration: none;
}
.cf-pdp-sauna .cfs-contact a:hover {
	text-decoration: underline;
}
.cf-pdp-sauna .cfs-marketing {
	font-size: 12px;
	font-weight: 600;
	color: var(--charcoal);
	line-height: 1.7;
	margin-top: 4px;
}

/* ────────── CONFIGURATEUR (Slim / Standard / XL / Corner) ────────── */
.cf-pdp-sauna .config-panel {
	background: var(--sand);
	border: 1px solid var(--bsand);
	border-radius: 8px;
	padding: 20px;
	margin-bottom: 18px;
}
.cf-pdp-sauna .config-title {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .8px;
	text-transform: uppercase;
	color: var(--charcoal);
	margin-bottom: 10px;
}
.cf-pdp-sauna .config-opts {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.cf-pdp-sauna .copt {
	padding: 10px 14px;
	border-radius: 4px;
	border: 1px solid var(--bsand);
	font-size: 13px;
	cursor: pointer;
	transition: border-color .15s, background .15s;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	background: var(--white);
}
.cf-pdp-sauna .copt:hover,
.cf-pdp-sauna .copt.on {
	border-color: var(--navy);
	background: rgba(27, 63, 114, .05);
}
.cf-pdp-sauna .copt-left {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.cf-pdp-sauna .copt-name {
	font-weight: 600;
	font-size: 13px;
	color: var(--charcoal);
}
.cf-pdp-sauna .copt-dims {
	font-size: 11px;
	color: var(--taupe);
	font-weight: 400;
}
.cf-pdp-sauna .copt-cap {
	font-size: 10px;
	color: var(--taupe);
}
.cf-pdp-sauna .copt-price {
	font-size: 13px;
	font-weight: 600;
	color: var(--navy);
	white-space: nowrap;
}

/* ────────── DYN-SPECS ────────── */
.cf-pdp-sauna .dyn-specs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 5px;
	margin-top: 14px;
}
.cf-pdp-sauna .ds {
	background: var(--sand);
	border-radius: 4px;
	padding: 8px 10px;
}
.cf-pdp-sauna .ds-v {
	font-size: 12px;
	font-weight: 600;
	color: var(--charcoal);
}
.cf-pdp-sauna .ds-k {
	font-size: 9px;
	color: var(--taupe);
	margin-top: 1px;
}

/* ────────── SECTIONS — grille 2 colonnes + visuel ──────────
 *
 * Le CSS du thème scope `.two-col` et `.vis` sous `.cf-pdp-perf` et
 * `.cf-pdp-conception` uniquement (cf. woocommerce.css lignes 984-1009).
 * On les réplique ici scopés sous `.cf-pdp-sauna` pour que les sections
 * Présentation et Conception du sauna s'affichent en 2 colonnes correctes.
 */
.cf-pdp-sauna .two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(28px, 4vw, 56px);
	align-items: center;
	max-width: 1280px;
	margin: 0 auto;
}
.cf-pdp-sauna .cfs-two-col {
	margin-top: 20px;
}
.cf-pdp-sauna .vis,
.cf-pdp-sauna .cfs-vis {
	border-radius: 10px;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	background: var(--sand);
	border: 1px solid var(--bsand);
}
.cf-pdp-sauna .vis img,
.cf-pdp-sauna .cfs-vis img,
.cf-pdp-sauna .vis video,
.cf-pdp-sauna .cfs-vis video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Boutons sous les paragraphes de la section Présentation */
.cf-pdp-sauna .cfs-pres-ctas {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 14px;
}

/* Marquee dans le contexte sauna : on garde le rendu thème mais on
 * s'assure du padding + de la couleur de fond cohérente. */
.cf-pdp-sauna .cfs-mq {
	margin: 0;
}

/* ────────── CONFIGURATION TECHNIQUE ────────── */
.cf-pdp-sauna .tech-config {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 36px;
	margin-top: 28px;
	align-items: start;
}
.cf-pdp-sauna .tc-helper {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .8px;
	text-transform: uppercase;
	color: var(--taupe);
	margin-bottom: 12px;
}
/* (Règles .cfs-model détaillées plus bas pour gérer le mobile + sélection.) */
.cf-pdp-sauna .cfs-tech-btns {
	margin-top: 16px;
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.cf-pdp-sauna .tc-right {
	background: var(--sand);
	border: 1px solid var(--bsand);
	border-radius: 8px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.cf-pdp-sauna .tc-right-header {
	padding: 12px 16px;
	border-bottom: 1px solid var(--bsand);
}
.cf-pdp-sauna .tc-right-title {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .5px;
	text-transform: uppercase;
	color: var(--taupe);
	margin-bottom: 2px;
}
.cf-pdp-sauna .tc-right-sub {
	font-size: 10px;
	color: var(--warm-gray);
}
.cf-pdp-sauna .tc-plan {
	width: 100%;
	display: block;
	min-height: 220px;
	background: var(--sand);
}
.cf-pdp-sauna .tc-plan img {
	width: 100%;
	height: auto;
	display: block;
}

/* ────────── CONTRAST THERAPY ────────── */
.cf-pdp-sauna .cfs-ct-intro {
	margin-bottom: 20px;
}
.cf-pdp-sauna .ct-band {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0;
	border-radius: 8px;
	overflow: hidden;
	margin-top: 28px;
}
.cf-pdp-sauna .ct-img {
	position: relative;
	min-height: 280px;
	overflow: hidden;
	background: var(--sand);
}
.cf-pdp-sauna .ct-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cf-pdp-sauna .ct-img-ov {
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(20, 18, 16, .6) 0%, transparent 60%);
}
.cf-pdp-sauna .ct-content {
	background: var(--charcoal);
	padding: 36px 32px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.cf-pdp-sauna .ct-lbl {
	font-size: 9px;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--taupe);
	margin-bottom: 8px;
}
.cf-pdp-sauna .ct-title {
	font-family: var(--font-titles, 'Cormorant Garamond', serif);
	font-size: 26px;
	font-weight: 300;
	color: #fff;
	margin: 0 0 12px;
	line-height: 1.2;
}
.cf-pdp-sauna .ct-title em {
	font-style: italic;
}
.cf-pdp-sauna .ct-text {
	font-size: 12px;
	color: rgba(247, 244, 240, .55);
	line-height: 1.7;
	margin: 0 0 18px;
}
.cf-pdp-sauna .cfs-ct-btn {
	font-size: 12px !important;
	display: inline-block;
	width: auto;
	align-self: flex-start;
}

/* ────────── OUTDOOR ────────── */
.cf-pdp-sauna .cfs-outdoor-section {
	padding: 0;
}
.cf-pdp-sauna .outdoor-band {
	background: #D8D2CA;
	padding: 48px 64px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
}
.cf-pdp-sauna .cfs-ob-lbl {
	color: var(--warm-gray);
}
.cf-pdp-sauna .ob-title {
	font-family: var(--font-titles, 'Cormorant Garamond', serif);
	font-size: clamp(28px, 3vw, 42px);
	font-weight: 400;
	line-height: 1.06;
	letter-spacing: -.3px;
	margin: 0 0 14px;
	color: var(--charcoal);
}
.cf-pdp-sauna .ob-title em {
	font-style: italic;
}
.cf-pdp-sauna .ob-text {
	font-size: 13px;
	color: var(--warm-gray);
	line-height: 1.7;
	margin: 0 0 20px;
}
.cf-pdp-sauna .ob-features {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 20px;
}
.cf-pdp-sauna .ob-feat {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	color: var(--charcoal);
}
.cf-pdp-sauna .ob-feat-dot {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--charcoal);
	flex-shrink: 0;
}
.cf-pdp-sauna .cfs-ob-visual .ob-img {
	border-radius: 8px;
	overflow: hidden;
	aspect-ratio: 4/3;
}
.cf-pdp-sauna .cfs-ob-visual .ob-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cf-pdp-sauna .ob-img-placeholder {
	width: 100%;
	aspect-ratio: 4/3;
	border-radius: 8px;
	background: rgba(44, 42, 39, .08);
	border: 1px solid var(--bsand);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 10px;
	letter-spacing: 1px;
	text-transform: uppercase;
	color: var(--taupe);
	text-align: center;
	padding: 12px;
}

/* ────────── TABLEAU CARACTÉRISTIQUES — distinction MODÈLES vs SPECS ──────────
 *
 * Dans la maquette desktop, le tableau a 2 colonnes (sk | sv). Les 4 premières
 * lignes sont des MODÈLES cliquables (Slim, Standard, XL, Corner Heater) qui
 * mettent à jour le plan technique à droite. Les lignes suivantes sont des
 * SPECS génériques (Température, Bois, etc.) en lecture seule.
 *
 * On distingue visuellement les modèles : pastille navy à gauche, fond bleuté
 * pour le modèle sélectionné. Avec !important pour battre les overrides du
 * thème en mobile.
 */
.cf-pdp-sauna .cfs-tech-table .sk.cfs-model {
	position: relative;
	cursor: pointer;
	font-weight: 600 !important;
	color: var(--charcoal) !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	font-size: 13px !important;
}
.cf-pdp-sauna .cfs-tech-table .sk.cfs-model::before {
	content: '';
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bsand);
	margin-right: 10px;
	vertical-align: middle;
	transition: background .15s;
}
.cf-pdp-sauna .cfs-tech-table .sk.cfs-model:hover {
	background: rgba(27, 63, 114, .06) !important;
}
.cf-pdp-sauna .cfs-tech-table .sk.cfs-model.on {
	color: var(--navy) !important;
	background: rgba(27, 63, 114, .08) !important;
}
.cf-pdp-sauna .cfs-tech-table .sk.cfs-model.on::before {
	background: var(--navy);
}

/* ────────── RESPONSIVE ────────── */
@media (max-width: 900px) {
	/* Présentation + Conception : passage en 1 colonne (image sous le texte).
	 * !important pour battre la règle desktop scopée plus haut dans ce même
	 * fichier. */
	.cf-pdp-sauna .two-col {
		grid-template-columns: 1fr !important;
		gap: 28px;
	}
	.cf-pdp-sauna .vis,
	.cf-pdp-sauna .cfs-vis {
		max-width: 100%;
	}

	.cf-pdp-sauna .tech-config {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.cf-pdp-sauna .ct-band {
		grid-template-columns: 1fr;
	}
	.cf-pdp-sauna .ct-img {
		min-height: 200px;
	}
	.cf-pdp-sauna .outdoor-band {
		grid-template-columns: 1fr;
		padding: 32px 20px;
		gap: 24px;
	}
	.cf-pdp-sauna .copt {
		flex-wrap: wrap;
	}
	.cf-pdp-sauna .dyn-specs {
		grid-template-columns: 1fr;
	}
	/* Section padding réduit sur mobile pour matcher le thème (.sec → 36px 20px) */
	.cf-pdp-sauna .cfs-pres-ctas {
		gap: 10px;
	}
	.cf-pdp-sauna .cfs-pres-ctas .btn {
		flex: 1 1 auto;
		text-align: center;
		min-height: 44px;
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}
}
@media (max-width: 480px) {
	.cf-pdp-sauna .config-panel {
		padding: 16px;
	}
	.cf-pdp-sauna .ct-content {
		padding: 24px 20px;
	}
}
