/* =================================================================
 * Page d'accueil ADDIS — [addis_accueil] / [addis_hero] / ...
 *
 * Ce fichier n'est chargé QUE sur la page qui contient le shortcode
 * [addis_accueil], et toutes les règles de masquage sont préfixées par
 * body.addis-accueil : aucune autre page du site n'est touchée.
 *
 * Règle fail-safe : on ne fait que MASQUER en CSS. Si le CSS ou le JS
 * ne se charge pas, le menu des autres pages reste intact.
 * ================================================================= */

/* -----------------------------------------------------------------
 * 1. Chrome de la page : header transparent, menu masqué, logo centré
 * ----------------------------------------------------------------- */

/* Header entièrement retiré : le logo est rendu dans le hero par
   [addis_hero_logo], pile entre les deux vidéos. */
body.addis-accueil.addis-accueil--header-masque #main-header,
body.addis-accueil.addis-accueil--header-masque #top-header {
	display: none !important;
}
body.addis-accueil.addis-accueil--header-masque #page-container {
	padding-top: 0 !important;
}

/* Badge reCAPTCHA : masqué avec le footer (aucun formulaire sur cette page). */
body.addis-accueil.addis-accueil--footer-masque .grecaptcha-badge {
	display: none !important;
}

/* Footer masqué (footer Theme Builder ou footer natif Divi). */
body.addis-accueil.addis-accueil--footer-masque .et-l--footer,
body.addis-accueil.addis-accueil--footer-masque #main-footer,
body.addis-accueil.addis-accueil--footer-masque #footer-bottom {
	display: none !important;
}

/* Le header ne pousse plus le contenu : il se pose SUR la vidéo (Dior). */
body.addis-accueil.addis-accueil--header-transparent #main-header {
	position: absolute;
	background: transparent !important;
	box-shadow: none !important;
}

/* Divi écrit "padding-top: 147px" en style INLINE via JS (load + resize) :
   seul !important peut l'annuler. */
body.addis-accueil.addis-accueil--header-transparent #page-container {
	padding-top: 0 !important;
}

/* Menu principal + menu mobile + panier + recherche. */
body.addis-accueil.addis-accueil--menu-masque #et-top-navigation,
body.addis-accueil.addis-accueil--menu-masque #et_mobile_nav_menu,
body.addis-accueil.addis-accueil--menu-masque .et_search_outer {
	display: none !important;
}

/* Logo seul et centré, taille pilotée par l'attribut logo="..." */
body.addis-accueil .logo_container {
	position: static;
	float: none;
	width: 100%;
	max-width: none;
	height: auto;
	text-align: center;
	padding: 26px 0;
}
body.addis-accueil .logo_container > a {
	display: inline-block;
}
body.addis-accueil #logo {
	max-height: none;
	height: auto;
	width: var(--addis-accueil-logo-w, 320px);
	max-width: 70vw;
}
body.addis-accueil .logo_helper {
	display: none;
}
body.addis-accueil #main-header .container {
	width: 100%;
	max-width: none;
	padding: 0;
}

/* Pas de sidebar, pas de gouttière de thème : le hero prend toute la largeur. */
body.addis-accueil #left-area {
	width: 100%;
	padding: 0;
	float: none;
}
body.addis-accueil #sidebar,
body.addis-accueil #main-content .container:before {
	display: none;
}

/* Titre de page masqué : le hero commence au ras du haut de l'écran. */
body.addis-accueil .entry-title,
body.addis-accueil #main-content .entry-title {
	display: none;
}

/* Le hero vit désormais dans un module Code de Divi. Les sections / rows du
   constructeur imposent un padding et une largeur maximale (1080px) : on les
   neutralise pour CETTE page seulement. C'est aussi le filet de sécurité si
   quelqu'un rouvre la page dans le constructeur — la mise en page tient. */
body.addis-accueil .et_pb_section,
body.addis-accueil .et_pb_row,
body.addis-accueil .et_pb_column,
body.addis-accueil .et_pb_module,
body.addis-accueil .et_pb_code_inner {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

/* Le contenu de la page occupe toute la largeur, sans marge de thème. */
body.addis-accueil #main-content .container,
body.addis-accueil .entry-content {
	width: 100%;
	max-width: none;
	padding: 0;
	margin: 0;
}

/* -----------------------------------------------------------------
 * 2. [addis_hero] — la grille
 *    N colonnes égales quel que soit le nombre de [addis_hero_item].
 * ----------------------------------------------------------------- */
/* Filet de sécurité : tout ce qui n'est pas une cellule (résidu de wpautop,
   commentaire, blanc) ne doit jamais devenir une colonne de la grille. */
.addis-hero > :not(.addis-hero__item):not(.addis-hero__logo) {
	display: none !important;
}

.addis-hero {
	position: relative;
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 1fr;
	gap: var(--addis-hero-gap, 0px);
	height: var(--addis-hero-h, 100vh);
	width: 100%;
	margin: 0;
}

/* -----------------------------------------------------------------
 * 3. [addis_hero_item] — une cellule = le contexte de positionnement.
 *    C'est lui qui garantit que le bouton reste au centre de SA vidéo,
 *    quelle que soit la vidéo qu'on y mettra plus tard.
 * ----------------------------------------------------------------- */
.addis-hero__item {
	position: relative;
	overflow: hidden;
	z-index: 0; /* couche du bas : la vidéo et son bouton */
	background: #000; /* évite le flash blanc avant la première image */
}

/* -----------------------------------------------------------------
 * Mode sombre au survol (100 % CSS, aucun JS).
 * data-assombrir="autres" : la ou les moitiés NON survolées s'assombrissent
 *                           et celle qu'on désigne reste claire (façon Dior).
 * data-assombrir="survol"  : c'est la moitié survolée qui s'assombrit.
 * data-assombrir="aucun"   : effet désactivé.
 * Le voile se place au-dessus de la vidéo mais SOUS le bouton et le logo.
 * ----------------------------------------------------------------- */
.addis-hero__item::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: #000;
	opacity: 0;
	pointer-events: none;
	transition: opacity .45s ease;
}

/* "autres" : on assombrit tout, puis on ré-éclaire la cellule survolée. */
.addis-hero[data-assombrir="autres"]:hover .addis-hero__item::after {
	opacity: var(--addis-sombre, .45);
}
.addis-hero[data-assombrir="autres"] .addis-hero__item:hover::after {
	opacity: 0;
}

/* "survol" : seule la cellule survolée s'assombrit. */
.addis-hero[data-assombrir="survol"] .addis-hero__item:hover::after {
	opacity: var(--addis-sombre, .45);
}

/* -----------------------------------------------------------------
 * 3 bis. [addis_hero_logo] — centré sur TOUTE la grille, donc pile
 * entre les deux vidéos.
 * position:absolute  => le logo ne crée pas de colonne dans la grille.
 * pointer-events:none => il ne vole pas le survol des cellules qu'il couvre.
 * ----------------------------------------------------------------- */
.addis-hero__logo {
	position: absolute;
	top: var(--addis-logo-y, 50%);
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 5; /* au-dessus des vidéos ET des boutons */
	pointer-events: none;
	line-height: 0;
	text-align: center;
}
.addis-hero__logo::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 220%;
	height: 320%;
	transform: translate(-50%, -50%);
	background: radial-gradient(ellipse at center,
		rgba(0, 0, 0, var(--addis-logo-voile, 0)) 0%,
		rgba(0, 0, 0, 0) 70%);
	pointer-events: none;
}
.addis-hero__logo img {
	position: relative;
	display: block;
	width: auto;
	max-width: 60vw;
	height: auto;
}
/* Le logo du site (« Maison » gris clair, « ADDIS » gris foncé) disparaît sur
   une vidéo claire : teinte="blanc" le passe en blanc plein + ombre douce.
   teinte="origine" rétablit les couleurs d'origine. */
.addis-hero__logo--blanc img {
	filter: brightness(0) invert(1) drop-shadow(0 2px 8px rgba(0, 0, 0, .45));
}

.addis-hero__logo a {
	pointer-events: auto;
	display: inline-block;
}

/* -----------------------------------------------------------------
 * 4a. [addis_hero_video] — le média, recadré, jamais déformé
 * ----------------------------------------------------------------- */
.addis-hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover; /* ratio libre : la vidéo se recadre, rien ne bouge */
	display: block;
}

/* -----------------------------------------------------------------
 * 4b. [addis_hero_cta] — le bouton, centré sur sa cellule
 * ----------------------------------------------------------------- */
/* !important obligatoire : addis-front.css contient
   "body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account) a"
   (spécificité 0-4-2) qui colore TOUS les liens du site en orange. */
body.addis-accueil a.addis-hero__cta,
body.addis-accueil a.addis-hero__cta:visited,
.addis-hero__cta {
	position: absolute;
	top: var(--addis-cta-y, 72%);
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2;
	display: inline-block;
	padding: 0 2px 12px;
	font-family: var(--addis-cta-police, "Cormorant Garamond", Georgia, serif);
	/* Taille fluide : « ADDIS COMPOSANTS ÉLECTRONIQUES » doit tenir dans sa
	   moitié aussi bien en 1920 qu'en 1280. cta_taille="28px" fige la valeur. */
	font-size: var(--addis-cta-taille, clamp(15px, 1.85vw, 30px));
	font-weight: 400;
	font-style: normal;
	letter-spacing: .16em;
	line-height: 1.45;
	text-transform: uppercase;
	text-align: center;
	white-space: normal;
	max-width: 82%;
	color: #ffffff;
	background: none;
	border: 0;
	border-bottom: 1px solid rgba(255, 255, 255, .55);
	border-radius: 0;
	text-shadow: 0 2px 14px rgba(0, 0, 0, .55);
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	color: #ffffff !important;
	transition: letter-spacing .35s ease, border-color .35s ease;
}
body.addis-accueil a.addis-hero__cta:hover,
body.addis-accueil a.addis-hero__cta:focus,
.addis-hero__cta:hover,
.addis-hero__cta:focus {
	color: #ffffff !important;
	background: none;
	border-bottom-color: #ffffff;
	letter-spacing: .2em;
}
.addis-hero__cta:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
}

/* -----------------------------------------------------------------
 * 5. Mobile : les cellules s'empilent, chacune garde un ratio.
 * ----------------------------------------------------------------- */
@media (max-width: 980px) {
	/* Les cellules s'empilent et se partagent la hauteur de l'écran : pas de
	   vide sous le hero, et le logo reste pile sur la couture. */
	.addis-hero {
		grid-auto-flow: row;
		grid-auto-columns: auto;
		grid-auto-rows: 1fr;
		height: 100svh;
		min-height: 100vh;
	}
	/* Même spécificité que la règle de base, sinon nowrap l'emporte. */
	body.addis-accueil a.addis-hero__cta,
	body.addis-accueil a.addis-hero__cta:visited,
	.addis-hero__cta {
		font-size: var(--addis-cta-taille, clamp(15px, 4.6vw, 22px));
		letter-spacing: .12em;
		padding: 0 2px 9px;
		white-space: normal;
		max-width: 86%;
	}
	/* Empile : le bouton de la 1re cellule tombe vers 42 % de la hauteur totale,
	   soit juste sous le logo centre. On remonte donc le logo en haut. */
	.addis-hero__logo {
		top: 13%; /* le logo est centre sur ce point : sous 10 % il deborde en haut */
	}
	.addis-hero__logo img {
		max-width: 62vw;
	}

	/* Divi impose une largeur de logo réduite en mobile : on la reprend. */
	body.addis-accueil #main-header #logo {
		width: min(var(--addis-accueil-logo-w, 320px), 62vw) !important;
		max-width: none !important;
	}
	body.addis-accueil .logo_container {
		padding: 16px 0;
	}
}
