/*
 * Villa Christal – styles globaux (chargés sur tout le site).
 * Composants de l'accueil (sous-titre, cartes essentiels) et
 * optimisation mobile Phase 1, dont la barre CTA fixe.
 * Breakpoints : ≤767 px mobile, 768–1024 px tablette, ≥1025 px desktop inchangé.
 */

:root {
	--vc-accent: var(--ast-global-color-0, #35635a);
	--vc-pierre: #ede7dd;
	--vc-anthracite: #2f3437;
	--vcb-accent: var(--vc-accent);
}

/* ---------- Composants accueil ---------- */

.vc-sous-titre {
	color: #5a5f62;
	font-size: 1.05rem;
	letter-spacing: 0.2px;
}

.vc-essentiels {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin: 1.5rem 0;
}

.vc-carte {
	background: var(--vc-pierre);
	color: var(--vc-anthracite);
	border-radius: 10px;
	padding: 16px 10px;
	text-align: center;
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.35;
}

/* ---------- Barre CTA fixe : mobile uniquement ---------- */

.vc-cta-mobile {
	display: none;
}

@media (max-width: 767px) {

	body {
		padding-bottom: calc(72px + env(safe-area-inset-bottom, 0px));
	}

	.vc-cta-mobile {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9999;
		display: flex;
		gap: 10px;
		background: rgba(255, 255, 255, 0.97);
		box-shadow: 0 -2px 14px rgba(0, 0, 0, 0.14);
		padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
	}

	.vc-cta-btn {
		flex: 1;
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 48px;
		border-radius: 8px;
		font-weight: 700;
		font-size: 1rem;
		text-decoration: none;
		line-height: 1.2;
	}

	.vc-cta-principal {
		background: var(--vc-accent);
		color: #fff !important;
	}

	.vc-cta-secondaire {
		background: var(--vc-pierre);
		color: var(--vc-anthracite) !important;
	}
}

/* ---------- Mobile ≤767 px : hiérarchie, boutons, galeries ---------- */

@media (max-width: 767px) {

	.entry-content h1,
	h1.entry-title {
		font-size: 1.8rem;
		line-height: 1.25;
	}

	.entry-content h2 {
		font-size: 1.35rem;
		line-height: 1.3;
		margin-top: 1.6em;
	}

	.entry-content h3 {
		font-size: 1.15rem;
	}

	.entry-content p,
	.entry-content li {
		font-size: 1rem;
		line-height: 1.65;
	}

	.entry-content .wp-block-button {
		width: 100%;
	}

	.entry-content .wp-block-button__link {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		min-height: 48px;
	}

	.wp-block-buttons {
		gap: 10px;
	}

	.wp-block-gallery.has-nested-images figure.wp-block-image {
		flex-basis: calc(50% - 8px) !important;
	}

	.vc-essentiels {
		grid-template-columns: repeat(2, 1fr);
	}

	.vc-cacher-mobile {
		display: none !important;
	}
}

/* ---------- Tablette 768–1024 px ---------- */

@media (min-width: 768px) and (max-width: 1024px) {

	.entry-content h1,
	h1.entry-title {
		font-size: 2.1rem;
	}

	.vc-essentiels {
		grid-template-columns: repeat(3, 1fr);
	}
}
