/* ============================================================================
   HANNOVER GLANZ — Styles page d'accueil (v2)
   Remplace intégralement l'ancien hannover-glanz-home.css
   Chargé seulement si is_front_page() (voir functions.php)
   ============================================================================ */

#hg-home, body.hg-home-page{ overflow-x:hidden; }

/* ---------- HERO PLEIN ÉCRAN : SLIDER + VITRE QUI S'ESSUIE ---------- */
.hg-hero-slider{
	position:relative;
	height:100vh;
	min-height:560px;
	overflow:hidden;
	cursor:none;
}
.hg-slides{ position:absolute; inset:0; }
.hg-slide{
	position:absolute; inset:0;
	background-size:cover;
	background-position:center;
	opacity:0;
	transform:scale(1.06);
	transition:opacity 1.4s ease;
}
.hg-slide.is-active{
	opacity:1;
	animation: hgKenBurns 9s ease-in-out forwards;
}
@keyframes hgKenBurns{
	from{ transform:scale(1.06); }
	to{ transform:scale(1); }
}

.hg-hero-frost{
	position:absolute; inset:0;
	background:
		repeating-linear-gradient(115deg, rgba(255,255,255,.10) 0 2px, transparent 2px 6px),
		linear-gradient(160deg, rgba(255,255,255,.4), rgba(220,232,240,.35));
	backdrop-filter:blur(6px) saturate(60%);
	-webkit-backdrop-filter:blur(6px) saturate(60%);
	-webkit-mask-image: radial-gradient(circle 160px at var(--mx,50%) var(--my,50%), transparent 0%, transparent 55%, black 100%);
	mask-image: radial-gradient(circle 160px at var(--mx,50%) var(--my,50%), transparent 0%, transparent 55%, black 100%);
	pointer-events:none;
	z-index:2;
}
.hg-hero-cursor{
	position:absolute;
	width:34px; height:34px;
	border-radius:50%;
	border:2px solid rgba(255,255,255,.9);
	background:radial-gradient(circle, rgba(255,255,255,.35), transparent 70%);
	pointer-events:none;
	transform:translate(-50%,-50%);
	box-shadow:0 0 18px rgba(255,255,255,.6);
	opacity:0;
	transition:opacity .2s ease;
	z-index:3;
}

.hg-hero-overlay{
	position:relative;
	z-index:4;
	max-width:640px;
	margin:0 auto;
	height:100%;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	text-align:center;
	padding:0 24px;
	color:var(--hg-white);
	pointer-events:none;
}
.hg-hero-overlay a{ pointer-events:auto; }
.hg-hero-overlay h1{
	color:var(--hg-white);
	font-size:clamp(2.1rem, 5.5vw, 3.4rem);
	font-weight:800;
	margin:.4em 0;
	line-height:1.15;
}
.hg-hero-text{ font-size:1.05rem; color:rgba(255,255,255,.85); margin-bottom:28px; }
.hg-hero-ctas{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

.hg-hero-nav{ position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; padding:0 20px; z-index:4; pointer-events:none; }
.hg-hero-arrow{
	pointer-events:auto;
	width:44px; height:44px;
	border-radius:50%;
	border:1px solid rgba(255,255,255,.4);
	background:rgba(255,255,255,.08);
	color:var(--hg-white);
	font-size:1.4rem;
	cursor:pointer;
	transition:background .2s ease, transform .2s ease;
}
.hg-hero-arrow:hover{ background:rgba(255,255,255,.2); transform:scale(1.06); }

.hg-hero-dots{
	position:absolute; bottom:70px; left:50%; transform:translateX(-50%);
	display:flex; gap:10px; z-index:4;
}
.hg-dot{
	width:9px; height:9px; border-radius:50%;
	background:rgba(255,255,255,.4);
	border:none; cursor:pointer;
	transition:background .2s ease, transform .2s ease;
}
.hg-dot.is-active{ background:var(--hg-green-light); transform:scale(1.3); }

.hg-hero-hint{
	position:absolute; bottom:36px; left:50%; transform:translateX(-50%);
	color:rgba(255,255,255,.65); font-size:.78rem; z-index:4; pointer-events:none;
}
.hg-hero-scroll-cue{
	position:absolute; bottom:14px; left:50%; transform:translateX(-50%);
	color:rgba(255,255,255,.55); font-size:1.1rem; z-index:4;
	animation:hgBounce 1.8s ease-in-out infinite;
	pointer-events:none;
}
@keyframes hgBounce{ 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,6px);} }

/* ---------- SERVICES ---------- */
.hg-services{ background:var(--hg-blue-light); padding:100px 0; }
.hg-services h2{ font-size:1.9rem; margin-bottom:40px; }
.hg-services-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
	gap:20px;
}
.hg-service-card{
	background:var(--hg-white);
	border-radius:var(--hg-radius-card);
	padding:28px 24px;
	box-shadow:0 10px 30px -12px rgba(3,40,81,.15);
	transition:transform .25s ease, box-shadow .25s ease;
	position:relative;
	overflow:hidden;
}
.hg-service-card:hover{ transform:translateY(-6px); box-shadow:0 18px 40px -14px rgba(3,40,81,.25); }
.hg-service-card::after{
	content:"";
	position:absolute; top:0; left:-60%;
	width:40%; height:100%;
	background:linear-gradient(120deg, transparent, rgba(255,255,255,.55), transparent);
	transform:skewX(-20deg);
	transition:left .6s ease;
}
.hg-service-card:hover::after{ left:130%; }
.hg-service-icon{ color:var(--hg-green); font-size:1.4rem; margin-bottom:10px; }
.hg-service-card h3{ font-size:1.05rem; margin-bottom:8px; }
.hg-service-card p{ font-size:.9rem; margin:0; }

/* ---------- FONDATEUR ---------- */
.hg-founder{ background:var(--hg-white); padding:110px 0; }
.hg-founder-grid{
	display:grid;
	grid-template-columns:minmax(260px, 380px) 1fr;
	gap:56px;
	align-items:center;
}
.hg-founder-photo{ position:relative; }
.hg-founder-photo img{
	width:100%;
	border-radius:var(--hg-radius-card);
	box-shadow:0 24px 60px -20px rgba(3,40,81,.35);
	display:block;
	object-fit:cover;
	aspect-ratio:3/4;
}
.hg-founder-spark{
	position:absolute; top:-14px; right:-14px;
	background:var(--hg-green);
	color:var(--hg-white);
	width:44px; height:44px;
	border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	font-size:1.2rem;
	box-shadow:0 10px 24px -6px rgba(114,160,34,.6);
}
.hg-founder-text h2{ font-size:1.5rem; line-height:1.35; margin-bottom:20px; }
.hg-founder-text p{ font-size:.98rem; line-height:1.7; margin-bottom:16px; }
.hg-founder-signature{
	font-family:'Montserrat', sans-serif;
	font-weight:700;
	color:var(--hg-navy);
	font-style:italic;
	margin-top:22px;
	padding-top:18px;
	border-top:2px solid var(--hg-blue-light);
}

/* ---------- WARUM HANNOVER GLANZ ---------- */
.hg-warum{ background:var(--hg-grey-bg); padding:100px 0; }
.hg-warum h2{ font-size:1.9rem; max-width:600px; margin-bottom:40px; }
.hg-underline-reveal{ position:relative; display:inline-block; }
.hg-underline-reveal::after{
	content:"";
	position:absolute; left:0; bottom:-6px;
	width:100%; height:4px;
	background:var(--hg-green);
	border-radius:4px;
	transform:scaleX(0);
	transform-origin:left;
	transition:transform .7s ease;
}
.hg-underline-reveal.is-visible::after{ transform:scaleX(1); }

.hg-warum-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(230px, 1fr));
	gap:20px;
}
.hg-warum-card{
	background:var(--hg-white);
	border-radius:var(--hg-radius-card);
	padding:28px 22px;
	box-shadow:0 10px 28px -14px rgba(3,40,81,.15);
	transition:transform .25s ease;
}
.hg-warum-card:hover{ transform:translateY(-4px); }
.hg-warum-card h3{ font-size:1.02rem; margin:10px 0 6px; }
.hg-warum-card p{ font-size:.88rem; margin:0; }
.hg-warum-card .hg-check{
	display:inline-flex; align-items:center; justify-content:center;
	width:34px; height:34px;
	background:var(--hg-green);
	color:var(--hg-white);
	border-radius:50%;
	font-size:1rem;
}

/* ---------- RÉSULTATS : avant/après magnétique ---------- */
.hg-results{ background:var(--hg-white); padding:100px 0; }
.hg-results h2{ font-size:1.9rem; margin-bottom:32px; }
.hg-ba-wrap{
	position:relative; height:440px;
	border-radius:var(--hg-radius-card);
	overflow:hidden;
	user-select:none;
	box-shadow:0 20px 60px -20px rgba(3,40,81,.25);
}
.hg-ba-before, .hg-ba-after{
	position:absolute; inset:0;
	display:flex; align-items:center; justify-content:center;
	color:var(--hg-white);
	font-family:var(--hg-font-display);
	font-weight:800; font-size:1.3rem;
}
.hg-ba-before{ background:linear-gradient(135deg,#5b6b6a,#8a9a94); filter:grayscale(1) contrast(.9) brightness(.85); }
.hg-ba-after{ background:linear-gradient(135deg,var(--hg-green),var(--hg-navy-soft)); clip-path:inset(0 0 0 50%); }
.hg-ba-divider{ position:absolute; top:0; bottom:0; width:3px; background:var(--hg-white); box-shadow:0 0 0 4px rgba(255,255,255,.25); left:50%; transform:translateX(-50%); }
.hg-ba-handle{
	position:absolute; top:50%; left:50%; width:46px; height:46px;
	background:var(--hg-white); border-radius:50%;
	transform:translate(-50%,-50%);
	display:flex; align-items:center; justify-content:center;
	box-shadow:0 6px 18px rgba(3,40,81,.3);
	color:var(--hg-navy);
}
.hg-ba-tag{
	position:absolute; top:16px;
	font-family:var(--hg-font-display); font-weight:800;
	font-size:.7rem; letter-spacing:1.5px;
	padding:5px 12px; border-radius:999px;
	background:rgba(255,255,255,.85); color:var(--hg-navy);
}
.hg-ba-tag-left{ left:16px; }
.hg-ba-tag-right{ right:16px; }

/* ---------- FAQ ---------- */
.hg-faq{ background:var(--hg-blue-light); padding:100px 0; }
.hg-faq h2{ font-size:1.9rem; margin-bottom:36px; }
.hg-faq-list{ max-width:760px; }
.hg-faq-item{
	background:var(--hg-white);
	border-radius:14px;
	margin-bottom:14px;
	overflow:hidden;
	box-shadow:0 8px 22px -14px rgba(3,40,81,.2);
}
.hg-faq-question{
	width:100%;
	display:flex; align-items:center; justify-content:space-between;
	gap:16px;
	background:none; border:none;
	padding:20px 22px;
	font-family:var(--hg-font-display);
	font-weight:700; font-size:.98rem;
	color:var(--hg-navy);
	cursor:pointer;
	text-align:left;
}
.hg-faq-icon{
	flex-shrink:0;
	width:26px; height:26px;
	border-radius:50%;
	background:var(--hg-blue-light);
	color:var(--hg-navy);
	display:flex; align-items:center; justify-content:center;
	font-size:1rem;
	transition:transform .3s ease, background .3s ease, color .3s ease;
}
.hg-faq-item.is-open .hg-faq-icon{
	transform:rotate(45deg);
	background:var(--hg-green);
	color:var(--hg-white);
}
.hg-faq-answer{
	max-height:0;
	overflow:hidden;
	transition:max-height .35s ease;
	padding:0 22px;
}
.hg-faq-answer p{ font-size:.92rem; line-height:1.6; margin:0 0 20px; }

/* ---------- CTA : particules de mousse ---------- */
.hg-cta{ position:relative; background:var(--hg-navy); padding:100px 0; text-align:center; overflow:hidden; }
.hg-cta h2{ color:var(--hg-white); font-size:1.9rem; }
.hg-cta p{ color:rgba(255,255,255,.8); margin-bottom:28px; }
#hgFoamCanvas{ position:absolute; inset:0; pointer-events:none; }
.hg-cta-content{ position:relative; z-index:2; }

/* ---------- TÉMOIGNAGES : carrousel ---------- */
.hg-testimonials{ background:var(--hg-white); padding:100px 0; }
.hg-testimonials h2{ font-size:1.9rem; margin-bottom:36px; }
.hg-testimonial-carousel{ position:relative; overflow:hidden; }
.hg-testimonial-track{
	display:flex;
	transition:transform .5s ease;
}
.hg-testimonial-track .hg-testimonial-card{
	flex:0 0 100%;
	box-sizing:border-box;
}
@media (min-width:768px){
	.hg-testimonial-track .hg-testimonial-card{ flex:0 0 33.333%; padding:0 10px; }
}
.hg-testimonial-card{
	position:relative;
	background:var(--hg-grey-bg);
	border-radius:var(--hg-radius-card);
	padding:26px 24px;
}
.hg-testimonial-spark{ position:absolute; top:16px; right:18px; color:var(--hg-green-light); font-size:1.1rem; }
.hg-testimonial-card p{ font-style:italic; margin:0 0 14px; }
.hg-testimonial-name{ font-weight:700; color:var(--hg-navy); font-size:.9rem; }
.hg-testimonial-dots{ display:flex; justify-content:center; gap:8px; margin-top:24px; }
.hg-testimonial-dots .hg-dot{ background:rgba(3,40,81,.2); }
.hg-testimonial-dots .hg-dot.is-active{ background:var(--hg-green); }

/* ---------- Apparition au scroll (générique) ---------- */
.hg-reveal{ opacity:0; transform:translateY(24px); transition:opacity .5s ease, transform .5s ease; }
.hg-reveal.is-visible{ opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion: reduce){
	.hg-service-card::after{ display:none; }
	.hg-reveal{ opacity:1; transform:none; transition:none; }
	.hg-slide.is-active{ animation:none; }
	.hg-hero-scroll-cue{ animation:none; }
}

@media (max-width:900px){
	.hg-founder-grid{ grid-template-columns:1fr; }
	.hg-founder-photo{ max-width:320px; margin:0 auto; }
}
@media (max-width:768px){
	.hg-hero-slider{ height:100svh; }
	.hg-ba-wrap{ height:320px; }
}