/*
Theme Name: HelloLitho
Template: twentytwentyfive
Description: Thème HelloLitho — votre photo, sculptée par la lumière. Palette dérivée du logo (encre, ambre, azur), bandes de révélation sombres, comparateur éteint/allumé.
Version: 10.1.0
Author: HelloLitho
Text Domain: hellolitho
*/

/* ==================================================================
   1. Bandes de révélation — pleine largeur
   Sélecteur volontairement plus spécifique que
   `.has-global-padding > .alignfull` du cœur de WordPress, qui
   écrasait la règle en v6 et provoquait le débordement horizontal.
   ================================================================== */
.wp-block-group.hl-revelation,
.hl-revelation{
	position:relative;
	background:var(--wp--preset--color--nuit);
	color:var(--wp--preset--color--papier);
	overflow:hidden;
	width:auto;
	max-width:none;
	margin-left:calc(50% - 50vw);
	margin-right:calc(50% - 50vw);
	padding-inline:1.5rem;
}
/* 100vw inclut la barre de défilement : on neutralise le dépassement résiduel */
html{overflow-x:clip}
body{overflow-x:clip}

.hl-revelation::before{
	content:""; position:absolute; inset:0; pointer-events:none;
	background:radial-gradient(60% 55% at 50% 45%, rgba(240,160,42,.16), transparent 70%);
}
.hl-revelation > *{
	position:relative;
	max-width:var(--wp--style--global--content-size);
	margin-left:auto; margin-right:auto;
}
.hl-revelation > .hl-galerie,
.hl-revelation > .hl-ba,
.hl-revelation > .wp-block-columns{ max-width:var(--wp--style--global--wide-size) }
.hl-revelation :where(h1,h2,h3,p,li){color:var(--wp--preset--color--papier)}
.hl-revelation .hl-eyebrow{color:var(--wp--preset--color--ambre)}
.hl-revelation a{color:var(--wp--preset--color--ambre)}
.hl-revelation .hl-lede{color:#B9C4CF}

/* Filet losange — les deux chevrons du logo */
.hl-chevrons{
	border:0; height:1px; width:100%; max-width:none;
	background:var(--wp--preset--color--brume);
	position:relative; overflow:visible;
	margin-top:var(--wp--preset--spacing--50);
	margin-bottom:var(--wp--preset--spacing--50);
}
.hl-chevrons::before{
	content:""; position:absolute; left:50%; top:50%;
	width:30px; height:30px;
	transform:translate(-50%,-50%) rotate(45deg);
	background:transparent;
	border:2px solid transparent;
	border-top-color:var(--wp--preset--color--ambre);
	border-left-color:var(--wp--preset--color--ambre);
	border-bottom-color:var(--wp--preset--color--azur);
	border-right-color:var(--wp--preset--color--azur);
	box-shadow:0 0 0 6px var(--wp--preset--color--papier);
}
.hl-revelation .hl-chevrons{background:rgba(255,255,255,.14)}
.hl-revelation .hl-chevrons::before{box-shadow:0 0 0 6px var(--wp--preset--color--nuit)}

/* ==================================================================
   2. Typographie de service
   ================================================================== */
.hl-eyebrow{
	font-size:.75rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
	color:var(--wp--preset--color--azurtexte); margin-bottom:.35rem;
}
.hl-eyebrow + h1, .hl-eyebrow + h2{margin-top:0}
.hl-lede{
	font-size:clamp(1.1rem,1rem + .6vw,1.35rem);
	line-height:1.5; color:var(--wp--preset--color--ardoise);
	max-width:52ch; margin-left:0 !important;
}
.hl-hero .hl-lede{max-width:34ch}
.hl-accent{
	font-family:var(--wp--preset--font-family--serif);
	font-style:italic; font-size:clamp(1.3rem,1.1rem + 1vw,1.9rem);
	line-height:1.35; letter-spacing:-.01em;
}

/* ==================================================================
   3. Images produit — détourées, fond transparent
   L'ombre suit le contour grâce à drop-shadow ; un box-shadow
   dessinerait un rectangle autour d'une image transparente.
   ================================================================== */
.wp-block-image img[src*="/assets/img/"]{
	filter:drop-shadow(0 10px 22px rgba(20,24,29,.22));
}
.hl-revelation .wp-block-image img[src*="/assets/img/"]{
	filter:drop-shadow(0 12px 30px rgba(0,0,0,.55));
}

/* ==================================================================
   4. Comparateur éteint ↔ allumé
   ================================================================== */
.hl-ba{
	--pos:50%;
	position:relative; display:block; width:100%;
	max-height:70dvh; margin-inline:auto;
	isolation:isolate; touch-action:pan-y;
}
.hl-ba img{
	display:block; width:100%; height:auto; margin:0; max-height:70dvh;
	object-fit:contain;
	-webkit-user-select:none; user-select:none; -webkit-user-drag:none;
}
/* L'ombre ne vit que sur l'image du dessous, qui ne bouge jamais, et sur son
   propre calque. Avant, chaque image portait un drop-shadow : celle du dessus
   étant redécoupée à chaque mouvement du curseur, le navigateur recalculait
   l'ombre à chaque image, ce qui faisait scintiller le fond sur mobile. */
.hl-ba .hl-ba-al{
	position:relative; z-index:1;
	filter:drop-shadow(0 12px 30px rgba(0,0,0,.5));
	transform:translateZ(0);
}
.hl-ba .hl-ba-et{
	position:absolute; inset:0; z-index:2;
	clip-path:inset(0 calc(100% - var(--pos)) 0 0);
	will-change:clip-path;
}
.hl-ba-line{
	position:absolute; z-index:3; top:0; bottom:0; left:var(--pos);
	width:2px; margin-left:-1px; background:var(--wp--preset--color--ambre);
	box-shadow:0 0 12px rgba(240,160,42,.6); pointer-events:none;
}
.hl-ba-line::after{
	content:""; position:absolute; top:50%; left:50%;
	width:38px; height:38px; transform:translate(-50%,-50%);
	border-radius:50%; background:var(--wp--preset--color--ambre);
	box-shadow:0 2px 12px rgba(0,0,0,.45);
}
.hl-ba-line::before{
	content:"‹ ›"; position:absolute; top:50%; left:50%; z-index:1;
	transform:translate(-50%,-50%); color:var(--wp--preset--color--nuit);
	font-size:15px; font-weight:800; letter-spacing:-1px;
}
.hl-ba-range{
	position:absolute; inset:0; z-index:4; width:100%; height:100%;
	margin:0; opacity:0; cursor:ew-resize; -webkit-appearance:none; appearance:none; background:transparent;
}
.hl-ba-range::-webkit-slider-thumb{-webkit-appearance:none; width:44px; height:100%; cursor:ew-resize}
.hl-ba-range::-moz-range-thumb{width:44px; height:100%; border:0; background:transparent; cursor:ew-resize}
.hl-ba-range:focus-visible{outline:2px solid var(--wp--preset--color--azur); outline-offset:3px}
.hl-ba-tag{
	position:absolute; z-index:3; bottom:10px;
	font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
	padding:5px 10px; border-radius:999px; pointer-events:none;
	background:rgba(20,24,29,.66); color:#fff; transition:opacity .25s;
}
.hl-ba-tag-l{left:10px} .hl-ba-tag-r{right:10px}
.hl-ba[data-pos="0"] .hl-ba-tag-l, .hl-ba[data-pos="100"] .hl-ba-tag-r{opacity:0}
.hl-ba-aide{font-size:.85rem; color:var(--wp--preset--color--ardoise); text-align:center; margin-top:.7rem}
.hl-revelation .hl-ba-aide{color:#8D9AA8}

/* ==================================================================
   5. Hero
   ================================================================== */
.hl-hero{
	align-items:center; gap:3rem;
	margin-top:var(--wp--preset--spacing--40);
	margin-bottom:var(--wp--preset--spacing--50);
}
.hl-hero .wp-block-buttons{margin-top:1.5rem}
@media (max-width:781px){
	/* Le visuel remonte juste sous le titre : c'est lui qui vend */
	.hl-hero{display:flex; flex-direction:column; gap:1.5rem}
	.hl-hero > .wp-block-column:last-child{order:-1}
	.hl-ba, .hl-ba img{max-height:44dvh}
}

/* Dépôt de photo directement depuis l'accueil */
.hl-depot{
	display:block; width:100%; border:2px dashed #BFCAD6; border-radius:16px;
	background:#fff; padding:1.1rem 1rem; text-align:center; cursor:pointer;
	font:inherit; color:inherit; transition:border-color .15s, background .15s;
}
.hl-depot:hover, .hl-depot.hl-dragover{border-color:var(--wp--preset--color--ambre); background:#FFF8EC}
.hl-depot strong{display:block; font-size:1.05rem}
.hl-depot span{font-size:.85rem; color:var(--wp--preset--color--ardoise)}
.hl-depot input{
	/* Masqué visuellement mais focusable : le clavier atteint toujours le champ */
	position:absolute; width:1px; height:1px; opacity:0; pointer-events:none;
}
.hl-depot{position:relative}
.hl-depot:focus-within{border-color:var(--wp--preset--color--azur); box-shadow:0 0 0 3px rgba(58,147,208,.25)}
.hl-depot-etat{display:block; margin-top:.4rem; font-size:.85rem; color:var(--wp--preset--color--azurtexte)}
.hl-depot-etat:empty{display:none}

/* ==================================================================
   6. Cartes formats
   ================================================================== */
.hl-formats-cards .wp-block-column{
	position:relative; background:#fff; border:1px solid var(--wp--preset--color--brume);
	border-radius:16px; padding:1.4rem 1.25rem;
	transition:transform .18s ease, box-shadow .18s ease;
	/* Colonne flex : les appels à l'action s'alignent en bas quelle que soit
	   la longueur des descriptions. */
	display:flex; flex-direction:column;
}
.hl-formats-cards .wp-block-column > *{min-width:0}
.hl-formats-cards .wp-block-column.hl-hero-card{
	border-color:var(--wp--preset--color--encre);
	box-shadow:0 10px 30px rgba(34,48,63,.09);
}
.hl-formats-cards .wp-block-column:hover{transform:translateY(-3px); box-shadow:0 12px 28px rgba(34,48,63,.12)}
.hl-formats-cards .wp-block-column:focus-within{outline:2px solid var(--wp--preset--color--azur); outline-offset:3px}
.hl-price{font-weight:800; font-size:1.5rem; letter-spacing:-.02em; margin:.3rem 0}
.hl-badge{
	display:inline-block; font-size:.65rem; font-weight:800; letter-spacing:.08em;
	text-transform:uppercase; color:var(--wp--preset--color--nuit);
	background:var(--wp--preset--color--ambre); padding:3px 9px; border-radius:999px;
	margin-bottom:.5rem;
}
/* Le libellé doit pouvoir revenir à la ligne : « Choisir le format Signature → »
   ne tient pas dans une carte de tiers de largeur. Seule la flèche reste
   solidaire du dernier mot, via l'espace insécable du contenu. */
.hl-card-cta{font-weight:700; margin-top:auto; padding-top:.9rem}
.hl-card-cta a{text-decoration:none; color:var(--wp--preset--color--azurtexte)}
.hl-card-cta a::after{content:""; position:absolute; inset:0}
.hl-delai{font-size:.8rem; color:var(--wp--preset--color--ardoise); margin-top:.4rem}

@media (max-width:781px){
	/* Compact : nom + dimensions à gauche, prix à droite, sur une ligne */
	.hl-formats-cards{gap:.6rem !important}
	.hl-formats-cards .wp-block-column{
		display:grid; grid-template-columns:1fr auto;
		grid-template-areas:
			"badge badge"
			"titre prix"
			"dim   prix"
			"desc  desc"
			"cta   cta";
		align-items:baseline; column-gap:1rem; padding:1rem;
	}
	.hl-formats-cards .wp-block-column h3{grid-area:titre; margin:0}
	.hl-formats-cards .wp-block-column .hl-dim{grid-area:dim; margin:.15rem 0 0; font-size:.9rem}
	.hl-formats-cards .hl-price{grid-area:prix; align-self:start; margin:0}
	.hl-formats-cards .wp-block-column > p:not(.hl-price):not(.hl-card-cta):not(.hl-badge):not(.hl-dim){
		grid-area:desc; margin:.5rem 0 0; font-size:.9rem;
	}
	.hl-formats-cards .hl-card-cta{grid-area:cta; margin-top:.6rem; padding-top:0}
	/* La pastille prend sa propre ligne : plus de superposition sur la description */
	.hl-badge{grid-area:badge; position:static; justify-self:start; margin:0 0 .5rem}
}

/* ==================================================================
   7. Étapes numérotées
   ================================================================== */
.hl-steps{counter-reset:hl-step}
.hl-steps .wp-block-column{counter-increment:hl-step}
.hl-steps .wp-block-column h3::before{
	content:counter(hl-step);
	display:inline-flex; align-items:center; justify-content:center;
	width:1.9rem; height:1.9rem; margin-right:.6rem; border-radius:50%;
	background:var(--wp--preset--color--ambre); color:var(--wp--preset--color--nuit);
	font-size:.9rem; font-weight:800;
}
@media (max-width:781px){
	.hl-steps{gap:.9rem !important}
	.hl-steps .wp-block-column{margin-bottom:0}
	.hl-steps .wp-block-column h3{margin-bottom:.3rem}
	.hl-steps .wp-block-column p{margin-top:0}
}

/* ==================================================================
   8. Galeries
   Cellules de taille égale, images entières à l'intérieur : les cadres
   s'alignent sans qu'aucune photo ne soit recadrée. Les pièces studio
   étant détourées, l'espace autour est transparent et ne se voit pas.
   ================================================================== */
.hl-galerie.wp-block-gallery{
	display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;
}
.hl-galerie.wp-block-gallery figure.wp-block-image{
	margin:0; width:auto !important; display:flex;
	align-items:center; justify-content:center;
	aspect-ratio:1/1;
}
.hl-galerie.wp-block-gallery figure.wp-block-image img{
	width:100%; height:100%; object-fit:contain; border-radius:0;
}
/* Mises en situation : vraies photos, toutes au même format 3/4 */
.hl-galerie-situ.wp-block-gallery figure.wp-block-image{aspect-ratio:3/4}
.hl-galerie-situ.wp-block-gallery figure.wp-block-image img{object-fit:cover; border-radius:10px}
@media (max-width:900px){
	.hl-galerie.wp-block-gallery{grid-template-columns:repeat(2,1fr); gap:.6rem}
}

/* ==================================================================
   9. Bloc atelier et réassurance
   ================================================================== */
.hl-atelier img{border-radius:14px}
.hl-reassurance{
	display:grid; grid-template-columns:repeat(auto-fit, minmax(11rem, 1fr)); gap:1rem;
	margin-block:var(--wp--preset--spacing--40);
}
.hl-reassurance > div{
	background:#fff; border:1px solid var(--wp--preset--color--brume);
	border-radius:14px; padding:1rem;
}
.hl-reassurance strong{display:block; font-size:.95rem; margin-bottom:.2rem}
.hl-reassurance span{font-size:.85rem; color:var(--wp--preset--color--ardoise); line-height:1.4}
.hl-revelation .hl-reassurance > div{background:rgba(255,255,255,.05); border-color:rgba(255,255,255,.12)}
@media (max-width:781px){ .hl-reassurance{grid-template-columns:1fr 1fr; gap:.6rem} }

/* ==================================================================
   10. En-tête et pied de page
   ================================================================== */
.hl-header{border-bottom:1px solid var(--wp--preset--color--brume)}
/* Le menu tenait sur deux lignes : on resserre pour le garder sur une seule */
.hl-nav .wp-block-navigation__container{flex-wrap:nowrap}
.hl-nav .wp-block-navigation-item__content{white-space:nowrap}
@media (min-width:782px){
	.hl-nav{font-size:.92rem}
	.hl-nav .wp-block-navigation__container{gap:1.35rem}
}
@media (min-width:782px) and (max-width:1100px){
	.hl-nav{font-size:.85rem}
	.hl-nav .wp-block-navigation__container{gap:.9rem}
}
.hl-nav a:hover{color:var(--wp--preset--color--azurtexte)}
.hl-footer-list{list-style:none; padding:0; margin:0; font-size:.95rem}
.hl-footer-list li{margin:0 0 .45rem}
.hl-footer-list a{color:#C8D2DC; text-decoration:none}
.hl-footer-list a:hover{color:var(--wp--preset--color--ambre); text-decoration:underline}
.hl-footer .hl-eyebrow{color:var(--wp--preset--color--ambre)}

/* ==================================================================
   11. Barre d'action fixe sur mobile
   ================================================================== */
.hl-barre{
	position:fixed; left:0; right:0; bottom:0; z-index:60;
	display:none; align-items:center; gap:.75rem;
	padding:.6rem .9rem calc(.6rem + env(safe-area-inset-bottom));
	background:rgba(247,248,250,.96); border-top:1px solid var(--wp--preset--color--brume);
	backdrop-filter:blur(8px);
	transform:translateY(110%); transition:transform .25s ease;
}
.hl-barre.hl-visible{transform:translateY(0)}
.hl-barre-txt{font-size:.85rem; color:var(--wp--preset--color--ardoise); line-height:1.25}
.hl-barre a{
	margin-left:auto; background:var(--wp--preset--color--encre); color:var(--wp--preset--color--papier);
	text-decoration:none; font-weight:700; padding:.7rem 1.1rem; border-radius:999px; white-space:nowrap;
}
@media (max-width:781px){ .hl-barre{display:flex} body{padding-bottom:4.5rem} }

/* ==================================================================
   12. Détails (FAQ) et divers
   ================================================================== */
.wp-block-details{border-bottom:1px solid var(--wp--preset--color--brume); padding:1rem 0}
.wp-block-details summary{font-weight:700; cursor:pointer}
.wp-block-details summary:hover{color:var(--wp--preset--color--azurtexte)}
.hl-placeholder{
	border:1.5px dashed var(--wp--preset--color--brume); border-radius:12px;
	padding:1.25rem; color:var(--wp--preset--color--ardoise); font-size:.95rem;
}
.hl-a-supprimer{
	border-left:4px solid var(--wp--preset--color--ambre); background:#FFF6E6;
	padding:1rem 1.1rem; border-radius:0 10px 10px 0; font-size:.95rem;
}
.wp-block-list li{margin-bottom:.4rem}
a:focus-visible,button:focus-visible,summary:focus-visible{
	outline:2px solid var(--wp--preset--color--azur); outline-offset:3px;
}
@media (prefers-reduced-motion: reduce){
	*{animation-duration:.01ms !important; transition-duration:.01ms !important}
}

/* Bandes sombres : rembourrage plus sobre sur mobile */
@media (max-width:781px){
	.hl-revelation{padding-block:2.5rem !important}
}


/* Panier de l'en-tête : icône avec pastille ambre */
.hl-panier{
	position:relative; display:inline-flex; align-items:center; justify-content:center;
	width:40px; height:40px; color:var(--wp--preset--color--encre); text-decoration:none;
	border-radius:50%;
}
.hl-panier:hover{color:var(--wp--preset--color--azurtexte); background:rgba(34,48,63,.06)}
.hl-panier-n{
	position:absolute; top:2px; right:0;
	display:inline-flex; align-items:center; justify-content:center;
	min-width:1.15rem; height:1.15rem; padding:0 .3rem; border-radius:999px;
	background:var(--wp--preset--color--ambre); color:var(--wp--preset--color--nuit);
	font-size:.68rem; font-weight:800; line-height:1;
}


/* Logo — le lettrage seul : les chevrons du logo servent déjà de motif
   de séparation dans les pages, les répéter dans l'en-tête ferait doublon. */
.hl-logo{display:inline-flex; align-items:center; text-decoration:none}
.hl-logo img{display:block; width:auto; height:34px}
.hl-logo-pied img{height:38px}
@media (max-width:781px){ .hl-logo img{height:28px} }


/* ------------------------------------------------------------------
   Vidéo de révélation
   ------------------------------------------------------------------ */
.hl-video{position:relative; max-width:100%; margin-inline:auto}
.hl-video-el{
	display:block; width:100%; height:auto; max-height:70dvh;
	border-radius:12px; background:#000;
	filter:drop-shadow(0 12px 30px rgba(0,0,0,.5));
}
.hl-video-btn{
	position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
	width:56px; height:56px; border-radius:50%; border:0; cursor:pointer;
	background:rgba(240,160,42,.92); color:var(--wp--preset--color--nuit);
	font-size:18px; line-height:1; transition:opacity .25s;
}
.hl-video.hl-joue .hl-video-btn{opacity:0; pointer-events:none}
.hl-video-btn:focus-visible{outline:2px solid var(--wp--preset--color--azur); outline-offset:3px}
.hl-duo{gap:2rem; align-items:center}
@media (max-width:781px){
	.hl-duo{gap:1.25rem}
	.hl-video-el{max-height:46dvh}
}


/* Lien « Gérer les cookies » de Complianz, aligné sur les autres liens du pied de page */
.hl-footer-list .cmplz-manage-consent,
.hl-footer-list a.cmplz-manage-consent{
	background:none; border:0; padding:0; margin:0; font:inherit; font-size:.95rem;
	color:#C8D2DC; text-decoration:none; cursor:pointer;
}
.hl-footer-list .cmplz-manage-consent:hover{color:var(--wp--preset--color--ambre); text-decoration:underline}
