/* ============================================================================
   HANNOVER GLANZ — Styles des pages secondaires
   (Leistungen, sous-pages service, Kontakt...)
   Chargé partout SAUF sur la page d'accueil (voir functions.php)
   ============================================================================ */

/* ---------- NAVIGATION STICKY ENTRE SERVICES (page unique Leistungen) ---------- */
.hg-service-tabs{
	position:sticky;
	top:0;
	z-index:30;
	background:var(--hg-white);
	box-shadow:0 4px 16px -8px rgba(3,40,81,.2);
}
.hg-service-tabs-inner{
	display:flex;
	gap:6px;
	overflow-x:auto;
	padding:14px 24px;
	scrollbar-width:none;
}
.hg-service-tabs-inner::-webkit-scrollbar{ display:none; }
.hg-service-tab{
	flex-shrink:0;
	font-family:var(--hg-font-display);
	font-weight:600; font-size:.85rem;
	color:var(--hg-text-grey);
	text-decoration:none;
	padding:9px 16px;
	border-radius:999px;
	white-space:nowrap;
	transition:background .2s ease, color .2s ease;
}
.hg-service-tab:hover{ background:var(--hg-blue-light); color:var(--hg-navy); }
.hg-service-tab.is-active{ background:var(--hg-navy); color:var(--hg-white); }

/* ---------- SECTIONS DE SERVICE (page unique) ---------- */
.hg-service-section{
	background:var(--hg-white);
	padding:90px 0;
	scroll-margin-top:76px; /* compense la barre d'onglets sticky lors du scroll par ancre */
}
.hg-service-section-alt{ background:var(--hg-blue-light); }
.hg-service-intro-grid-reverse{ direction:rtl; }
.hg-service-intro-grid-reverse > *{ direction:ltr; }
.hg-warum-grid-compact{ margin:26px 0 24px; }
.hg-next-service{
	display:inline-flex; align-items:center; gap:8px;
	font-family:var(--hg-font-display); font-weight:700; font-size:.9rem;
	color:var(--hg-green);
	text-decoration:none;
}
.hg-next-service span{ transition:transform .2s ease; }
.hg-next-service:hover span{ transform:translateX(4px); }

/* ---------- BANNIÈRE DE PAGE (toutes pages secondaires) ---------- */
.hg-page-hero{
	position:relative;
	padding:130px 0 80px;
	overflow:hidden;
	min-height:380px;
	display:flex;
	align-items:flex-end;
}
.hg-page-hero-bg{
	position:absolute; inset:0;
	width:100%; height:100%;
	object-fit:cover;
	z-index:0;
}
.hg-page-hero-overlay{
	position:absolute; inset:0;
	background:linear-gradient(135deg, rgba(3,40,81,.82), rgba(4,28,58,.9));
	z-index:1;
}
.hg-page-hero-shine{
	position:absolute; top:0; left:-60%;
	width:40%; height:100%;
	background:linear-gradient(120deg, transparent, rgba(255,255,255,.12), transparent);
	transform:skewX(-20deg);
	animation:hgPageShine 2.4s ease forwards;
	z-index:2;
}
@keyframes hgPageShine{ to{ left:130%; } }
.hg-page-hero .hg-container{ position:relative; z-index:3; }
.hg-breadcrumb{ color:rgba(255,255,255,.65); font-size:.82rem; }
.hg-breadcrumb a{ color:rgba(255,255,255,.85); text-decoration:none; }
.hg-breadcrumb a:hover{ text-decoration:underline; }
.hg-page-hero h1{ color:var(--hg-white); font-size:clamp(2rem, 4vw, 2.8rem); margin:.4em 0; }
.hg-page-hero-text{ color:rgba(255,255,255,.8); max-width:560px; font-size:1rem; margin:0 0 24px; }
.hg-page-hero-ctas{ display:flex; gap:14px; flex-wrap:wrap; }

/* Bouton outline pour fonds clairs (sections blanches / bleu très clair) */
.hg-btn-outline-dark{
	display:inline-flex; align-items:center; gap:8px;
	font-family:var(--hg-font-display); font-weight:700; font-size:.9rem;
	padding:13px 24px;
	border-radius:var(--hg-radius-btn);
	border:2px solid var(--hg-navy);
	color:var(--hg-navy);
	text-decoration:none;
	transition:background .2s ease, color .2s ease, transform .15s ease;
}
.hg-btn-outline-dark:hover{ background:var(--hg-navy); color:var(--hg-white); transform:translateY(-2px); }

/* ---------- NAVIGATION ENTRE SERVICES (bas de page) ---------- */
.hg-related-services{ background:var(--hg-blue-light); padding:80px 0; }
.hg-related-services h2{ font-size:1.4rem; margin-bottom:26px; }
.hg-related-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
	gap:14px;
}
.hg-related-card{
	display:flex; align-items:center; justify-content:space-between;
	gap:10px;
	background:var(--hg-white);
	border-radius:12px;
	padding:16px 18px;
	text-decoration:none;
	color:var(--hg-navy);
	font-family:var(--hg-font-display);
	font-weight:600; font-size:.9rem;
	transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.hg-related-card:hover{
	transform:translateY(-3px);
	box-shadow:0 14px 30px -16px rgba(3,40,81,.3);
	background:var(--hg-navy);
	color:var(--hg-white);
}
.hg-related-card .hg-related-arrow{ color:var(--hg-green); transition:color .2s ease; }
.hg-related-card:hover .hg-related-arrow{ color:var(--hg-green-light); }

/* ---------- LEISTUNGEN : grille sommaire ---------- */
.hg-services-overview{ background:var(--hg-white); padding:90px 0; }
.hg-services-overview-grid{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
	gap:22px;
}
.hg-service-overview-card{
	display:block;
	background:var(--hg-grey-bg);
	border-radius:var(--hg-radius-card);
	padding:32px 26px;
	text-decoration:none;
	position:relative;
	overflow:hidden;
	transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
}
.hg-service-overview-card:hover{
	transform:translateY(-6px);
	background:var(--hg-white);
	box-shadow:0 20px 44px -18px rgba(3,40,81,.3);
}
.hg-service-overview-card::after{
	content:"";
	position:absolute; top:0; left:-60%;
	width:40%; height:100%;
	background:linear-gradient(120deg, transparent, rgba(255,255,255,.6), transparent);
	transform:skewX(-20deg);
	transition:left .6s ease;
}
.hg-service-overview-card:hover::after{ left:130%; }
.hg-service-overview-icon{ color:var(--hg-green); font-size:1.6rem; margin-bottom:14px; }
.hg-service-overview-card h2{ font-size:1.15rem; margin-bottom:10px; }
.hg-service-overview-card p{ font-size:.92rem; color:var(--hg-text-grey); margin-bottom:16px; }
.hg-service-overview-link{
	font-family:var(--hg-font-display);
	font-weight:700; font-size:.86rem;
	color:var(--hg-green);
}

/* ---------- SOUS-PAGE SERVICE : intro ---------- */
.hg-service-intro{ background:var(--hg-blue-light); padding:90px 0; }
.hg-service-intro-grid{
	display:grid;
	grid-template-columns:minmax(240px, 420px) 1fr;
	gap:50px;
	align-items:center;
}
.hg-service-intro-photo{ position:relative; }
.hg-service-intro-photo img{
	width:100%; aspect-ratio:4/3;
	object-fit:cover;
	border-radius:var(--hg-radius-card);
	box-shadow:0 20px 50px -18px rgba(3,40,81,.3);
	display:block;
}
.hg-service-intro-spark{
	position:absolute; top:-12px; right:-12px;
	background:var(--hg-green); color:var(--hg-white);
	width:40px; height:40px; border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	font-size:1.1rem;
	box-shadow:0 10px 22px -6px rgba(114,160,34,.6);
}
.hg-service-intro-text h2{ font-size:1.5rem; line-height:1.35; margin-bottom:18px; }
.hg-service-intro-text p{ font-size:.98rem; line-height:1.7; margin-bottom:24px; }

/* ---------- SOUS-PAGE SERVICE : ce qui est inclus (réutilise .hg-warum-grid) ---------- */
.hg-service-included{ background:var(--hg-white); padding:90px 0; }
.hg-service-included h2{ font-size:1.7rem; margin-bottom:32px; }

/* ---------- SOUS-PAGE SERVICE : stepper de processus animé ---------- */
.hg-process{ background:var(--hg-grey-bg); padding:100px 0; }
.hg-process h2{ font-size:1.7rem; margin-bottom:50px; max-width:560px; }
.hg-process-stepper{
	position:relative;
	display:grid;
	grid-template-columns:repeat(3, 1fr);
	gap:30px;
}
.hg-process-line{
	position:absolute;
	top:26px; left:8%; right:8%;
	height:3px;
	background:rgba(3,40,81,.12);
	z-index:0;
}
.hg-process-line::after{
	content:"";
	position:absolute; top:0; left:0;
	height:100%; width:0%;
	background:linear-gradient(90deg, var(--hg-green-light), var(--hg-green));
	transition:width 1.1s ease;
}
.hg-process-line.is-active::after{ width:100%; }
.hg-process-step{ position:relative; z-index:1; text-align:center; }
.hg-process-number{
	width:52px; height:52px;
	margin:0 auto 18px;
	border-radius:50%;
	background:var(--hg-navy);
	color:var(--hg-white);
	display:flex; align-items:center; justify-content:center;
	font-family:var(--hg-font-display);
	font-weight:800; font-size:1.2rem;
	box-shadow:0 10px 24px -8px rgba(3,40,81,.4);
}
.hg-process-step h3{ font-size:1.02rem; margin-bottom:8px; }
.hg-process-step p{ font-size:.88rem; margin:0; }

/* ---------- CTA (réutilisé depuis la home, redéfini ici car pages.css est un bundle séparé) ---------- */
.hg-cta{ position:relative; background:var(--hg-navy); padding:90px 0; text-align:center; overflow:hidden; }
.hg-cta h2{ color:var(--hg-white); font-size:1.8rem; }
.hg-cta p{ color:rgba(255,255,255,.8); margin-bottom:26px; }
.hg-cta canvas{ position:absolute; inset:0; pointer-events:none; }
.hg-cta-content{ position:relative; z-index:2; }

/* ---------- KONTAKT : cartes de coordonnées ---------- */
.hg-contact-info{ background:var(--hg-white); padding:80px 0 40px; }
.hg-contact-cards{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
	gap:18px;
}
.hg-contact-card{
	background:var(--hg-grey-bg);
	border-radius:var(--hg-radius-card);
	padding:26px 22px;
	text-align:center;
	transition:transform .2s ease;
}
.hg-contact-card:hover{ transform:translateY(-4px); }
.hg-contact-icon{ font-size:1.6rem; margin-bottom:10px; }
.hg-contact-card h3{ font-size:1rem; margin-bottom:8px; }
.hg-contact-card p{ font-size:.9rem; margin:0; }
.hg-contact-card a{ color:var(--hg-navy); text-decoration:none; font-weight:600; }
.hg-contact-card a:hover{ color:var(--hg-green); }

/* ---------- KONTAKT : section formulaire ---------- */
.hg-contact-form-section{ background:var(--hg-blue-light); padding:80px 0; }
.hg-contact-form-grid{
	display:grid;
	grid-template-columns:1fr 1.1fr;
	gap:50px;
	align-items:start;
}
.hg-contact-form-intro h2{ font-size:1.5rem; margin-bottom:16px; }
.hg-contact-form-intro p{ font-size:.96rem; line-height:1.65; margin-bottom:20px; }
.hg-contact-checklist{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
.hg-contact-checklist li{ display:flex; align-items:center; gap:10px; font-weight:600; color:var(--hg-navy); font-size:.92rem; }
.hg-contact-checklist .hg-check{
	display:inline-flex; align-items:center; justify-content:center;
	width:24px; height:24px; border-radius:50%;
	background:var(--hg-green); color:var(--hg-white); font-size:.78rem; flex-shrink:0;
}
.hg-contact-form-wrap{
	background:var(--hg-white);
	border-radius:var(--hg-radius-card);
	padding:34px;
	box-shadow:0 20px 50px -20px rgba(3,40,81,.25);
}

/* ---------- Style du formulaire Contact Form 7 (classes générées automatiquement) ---------- */
.hg-contact-form-wrap .wpcf7-form p{ margin-bottom:16px; }
.hg-contact-form-wrap .wpcf7-form label{
	display:block;
	font-family:var(--hg-font-display);
	font-weight:600; font-size:.86rem;
	color:var(--hg-navy);
	margin-bottom:6px;
}
.hg-contact-form-wrap .wpcf7-form-control{
	width:100%;
	font-family:var(--hg-font-body);
	font-size:.95rem;
	padding:12px 14px;
	border:1px solid #D8E2E8;
	border-radius:8px;
	background:var(--hg-grey-bg);
	transition:border-color .2s ease, box-shadow .2s ease;
}
.hg-contact-form-wrap .wpcf7-form-control:focus{
	outline:none;
	border-color:var(--hg-green);
	box-shadow:0 0 0 3px rgba(114,160,34,.15);
}
.hg-contact-form-wrap textarea.wpcf7-form-control{ min-height:130px; resize:vertical; }
.hg-contact-form-wrap input[type="submit"]{
	font-family:var(--hg-font-display);
	font-weight:700; font-size:.92rem;
	background:var(--hg-green); color:var(--hg-white);
	border:none; border-radius:var(--hg-radius-btn);
	padding:14px 30px; cursor:pointer;
	transition:transform .15s ease, box-shadow .15s ease;
}
.hg-contact-form-wrap input[type="submit"]:hover{ transform:translateY(-2px); box-shadow:0 10px 24px -8px rgba(114,160,34,.5); }
.hg-contact-form-wrap .wpcf7-spinner{ margin-left:10px; }
.hg-contact-form-wrap .wpcf7-not-valid-tip{ color:#C0392B; font-size:.8rem; margin-top:4px; }
.hg-contact-form-wrap .wpcf7-response-output{
	margin-top:16px; padding:12px 16px; border-radius:8px;
	font-size:.88rem; border:1px solid var(--hg-blue-light);
}

/* ---------- KONTAKT : carte / localisation ---------- */
.hg-contact-map{ background:var(--hg-white); padding:0 0 90px; }
.hg-map-placeholder{
	height:340px;
	border-radius:var(--hg-radius-card);
	background:var(--hg-grey-bg);
	display:flex; align-items:center; justify-content:center;
	color:var(--hg-text-grey);
	font-size:.92rem;
	text-align:center;
	padding:20px;
}
.hg-contact-map iframe{
	width:100%; height:600px; border:0;
	border-radius:var(--hg-radius-card);
}

/* ---------- Utilitaires réutilisés sur toutes les pages secondaires ---------- */
.hg-reveal{ opacity:0; transform:translateY(24px); transition:opacity .5s ease, transform .5s ease; }
.hg-reveal.is-visible{ opacity:1; transform:translateY(0); }
.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); }

@media (prefers-reduced-motion: reduce){
	.hg-page-hero-shine{ display:none; }
	.hg-service-overview-card::after{ display:none; }
	.hg-reveal{ opacity:1; transform:none; transition:none; }
	.hg-process-line::after{ transition:none; width:100%; }
}

@media (max-width:900px){
	.hg-service-intro-grid{ grid-template-columns:1fr; }
	.hg-contact-form-grid{ grid-template-columns:1fr; }
	.hg-process-stepper{ grid-template-columns:1fr; gap:36px; }
	.hg-process-line{ display:none; }
}