/* =============================================
   PRYMAC WINE — Typography / Headings
   Architecture responsive H1–H6
   ============================================= */

/*
   Échelle typographique fluide avec clamp()
   Mobile  → Desktop
   H1 : 32px → 64px
   H2 : 26px → 48px
   H3 : 22px → 36px
   H4 : 18px → 28px
   H5 : 16px → 22px
   H6 : 14px → 18px

   Principe line-height : plus le corps est grand, plus il se resserre.
   Grand titre = ascendantes/descendantes proches = interligne court.
   Petit titre  = besoin d'air = interligne plus ouvert.

   Spécificité : préfixe "body" pour passer
   au-dessus du reset Elementor sans !important.
*/

:root {
	--lh-h1: 1.1;   /* Display — très serré, blocs denses */
	--lh-h2: 1.2;   /* Section  — légèrement plus ouvert  */
	--lh-h3: 1.3;   /* Sous-titre — confortable sur 2 lignes */
	--lh-h4: 1.35;  /* Tertiaire  — s'aligne sur le corps  */
	--lh-h5: 1.4;   /* Widget     — proche du corps texte  */
	--lh-h6: 1.5;   /* Micro      — corps texte standard   */
}

body h1, body .h1,
body h2, body .h2,
body h3, body .h3,
body h4, body .h4,
body h5, body .h5,
body h6, body .h6 {
	font-family: var(--e-global-typography-primary-font-family, Georgia, serif);
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--e-global-color-primary, #1a1a1a);
	margin-top: 0;
	margin-bottom: 0.5em;
}

/* H1 — Titre de page / Hero */
body h1, body .h1 {
	font-size: clamp(2rem, 4vw + 1rem, 4rem); /* 32px → 64px */
	line-height: var(--lh-h1);
	letter-spacing: 0.03em;
	font-weight: 700;
}

/* H2 — Titre de section */
body h2, body .h2 {
	font-size: clamp(1.625rem, 3vw + 0.75rem, 3rem); /* 26px → 48px */
	line-height: var(--lh-h2);
}

/* H3 — Sous-titre / Card title */
body h3, body .h3 {
	font-size: clamp(1.375rem, 2vw + 0.75rem, 2.25rem); /* 22px → 36px */
	line-height: var(--lh-h3);
}

/* H4 — Titre tertiaire */
body h4, body .h4 {
	font-size: clamp(1.125rem, 1.5vw + 0.5rem, 1.75rem); /* 18px → 28px */
	line-height: var(--lh-h4);
	font-weight: 600;
}

/* H5 — Label / Titre de widget */
body h5, body .h5 {
	font-size: clamp(1rem, 1vw + 0.5rem, 1.375rem); /* 16px → 22px */
	line-height: var(--lh-h5);
	font-weight: 600;
	letter-spacing: 0.04em;
}

/* H6 — Micro-titre / Mention */
body h6, body .h6 {
	font-size: clamp(0.875rem, 0.5vw + 0.75rem, 1.125rem); /* 14px → 18px */
	line-height: var(--lh-h6);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* =============================================
   Widget Heading Elementor — align sur l'échelle
   ============================================= */

body .elementor-widget-heading h1.elementor-heading-title,
body .elementor-widget-heading .elementor-heading-title.elementor-size-xxl {
	font-size: clamp(2rem, 4vw + 1rem, 4rem);
	line-height: var(--lh-h1);
}

body .elementor-widget-heading h2.elementor-heading-title,
body .elementor-widget-heading .elementor-heading-title.elementor-size-xl {
	font-size: clamp(1.625rem, 3vw + 0.75rem, 3rem);
	line-height: var(--lh-h2);
}

body .elementor-widget-heading h3.elementor-heading-title,
body .elementor-widget-heading .elementor-heading-title.elementor-size-large {
	font-size: clamp(1.375rem, 2vw + 0.75rem, 2.25rem);
	line-height: var(--lh-h3);
}

body .elementor-widget-heading h4.elementor-heading-title,
body .elementor-widget-heading .elementor-heading-title.elementor-size-medium {
	font-size: clamp(1.125rem, 1.5vw + 0.5rem, 1.75rem);
	line-height: var(--lh-h4);
}

body .elementor-widget-heading h5.elementor-heading-title,
body .elementor-widget-heading .elementor-heading-title.elementor-size-small {
	font-size: clamp(1rem, 1vw + 0.5rem, 1.375rem);
	line-height: var(--lh-h5);
}

body .elementor-widget-heading h6.elementor-heading-title {
	font-size: clamp(0.875rem, 0.5vw + 0.75rem, 1.125rem);
	line-height: var(--lh-h6);
}

/* =============================================
   Variantes stylistiques (classes utilitaires)
   ============================================= */

/* Titre avec trait décoratif sous-jacent */
.heading-underline {
	position: relative;
	display: inline-block;
	padding-bottom: 0.4em;
}

.heading-underline::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 48px;
	height: 2px;
	background: #8b1a1a;
}

.heading-underline--center::after {
	left: 50%;
	transform: translateX(-50%);
}

/* Titre centré avec trait long */
.heading-rule {
	display: flex;
	align-items: center;
	gap: 1rem;
	white-space: nowrap;
}

.heading-rule::before,
.heading-rule::after {
	content: '';
	flex: 1;
	height: 1px;
	background: #e8e8e8;
}

/* Titre en majuscules espacées (style étiquette) */
.heading-label {
	font-size: clamp(0.6875rem, 0.5vw + 0.6rem, 0.8125rem); /* 11px → 13px */
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: #8b1a1a;
}

/* =============================================
   Breakpoints de lisibilité complémentaires
   ============================================= */

@media (max-width: 480px) {
	body h1, body .h1 { letter-spacing: 0.01em; }
	body h6, body .h6 { letter-spacing: 0.04em; }
}
