/* ICP — Hero cinématique de l'accueil ([icp_hero]). Vanilla, ~85vh, images 2:1. */
.icp-hero{
	position:relative;width:100%;height:85vh;min-height:680px;overflow:hidden;
	background:#0e2033;isolation:isolate;
}
.icp-hero__track{position:absolute;inset:0}
.icp-hero__slide{position:absolute;inset:0;opacity:0;visibility:hidden;
	transition:opacity 1.1s ease,visibility 1.1s ease}
.icp-hero__slide.is-active{opacity:1;visibility:visible;z-index:2}

.icp-hero__bg{display:none}
.icp-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
	transform:scale(1.02);will-change:transform;transform-origin:center}
/* Cadrage par slide : KLEEN a son contenu vers le bas (marge en haut) -> ancrer le recadrage en bas */
.icp-hero__slide--kleen .icp-hero__img{object-position:center bottom;transform-origin:center bottom}
/* Ken Burns doux : zoom léger + très léger pan, direction alternée d'une slide à l'autre */
.icp-hero__slide.is-active .icp-hero__img{animation:icpKBa 9s ease-out forwards}
.icp-hero__slide:nth-child(even).is-active .icp-hero__img{animation-name:icpKBb}
@keyframes icpKBa{from{transform:scale(1.02) translate3d(.8%,0,0)}to{transform:scale(1.07) translate3d(-.8%,-.6%,0)}}
@keyframes icpKBb{from{transform:scale(1.07) translate3d(-.8%,-.5%,0)}to{transform:scale(1.02) translate3d(.8%,.5%,0)}}
/* KLEEN : pan horizontal uniquement (ancré en bas, jamais de coupe basse) */
.icp-hero__slide--kleen.is-active .icp-hero__img{animation-name:icpKBflat}
@keyframes icpKBflat{from{transform:scale(1.02) translate3d(.8%,0,0)}to{transform:scale(1.07) translate3d(-.8%,0,0)}}

/* Voile dégradé pour la lisibilité du texte (gauche) */
.icp-hero__scrim{position:absolute;inset:0;
	background:linear-gradient(90deg,rgba(10,25,45,.55) 0%,rgba(10,25,45,.34) 30%,rgba(10,25,45,.08) 58%,rgba(10,25,45,0) 76%);}

/* Contenu texte */
.icp-hero__content{position:absolute;top:50%;left:clamp(20px,6vw,110px);transform:translateY(-50%);
	max-width:min(46%,640px);z-index:3;color:#fff}
.icp-hero__title{font-family:var(--font-body,'Outfit',sans-serif);font-weight:700;color:#fff;
	font-size:clamp(30px,4.6vw,66px);line-height:1.04;margin:0 0 14px;letter-spacing:-.015em;
	text-shadow:0 2px 28px rgba(0,0,0,.4);text-wrap:balance}
.icp-hero__sub{font-family:var(--font-body,'Outfit',sans-serif);font-weight:400;
	font-size:clamp(15px,1.55vw,22px);line-height:1.5;margin:0 0 28px;color:#eef4fa;max-width:32em;
	text-shadow:0 1px 14px rgba(0,0,0,.4)}
.icp-hero__cta{display:inline-flex;align-items:center;gap:.4em;
	background:var(--icp-orange,#F07D00);color:#fff;font-weight:700;font-size:clamp(14px,1.15vw,17px);
	padding:15px 30px;border-radius:999px;text-decoration:none;
	box-shadow:0 12px 30px rgba(240,125,0,.4);transition:transform .18s,box-shadow .18s,background .18s}
.icp-hero__cta:hover{background:var(--icp-orange-dark,#d96f00);transform:translateY(-2px);box-shadow:0 16px 36px rgba(240,125,0,.5);color:#fff}
.icp-hero__cta span{transition:transform .18s}
.icp-hero__cta:hover span{transform:translateX(4px)}

/* Révélation en cascade (renforcée : plus de course + flou d'entrée) */
.icp-hero__content>*{opacity:0;transform:translateY(44px);filter:blur(8px)}
.icp-hero__slide.is-active .icp-hero__title{animation:icpReveal .9s .30s cubic-bezier(.16,.8,.28,1) both}
.icp-hero__slide.is-active .icp-hero__sub{animation:icpReveal .9s .48s cubic-bezier(.16,.8,.28,1) both}
.icp-hero__slide.is-active .icp-hero__cta{animation:icpRevealCta .8s .66s cubic-bezier(.16,.8,.28,1) both}
@keyframes icpReveal{from{opacity:0;transform:translateY(44px);filter:blur(8px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes icpRevealCta{0%{opacity:0;transform:translateY(30px);filter:blur(6px)}100%{opacity:1;transform:none;filter:blur(0)}}

/* Puces */
.icp-hero__dots{position:absolute;left:clamp(20px,6vw,110px);bottom:36px;z-index:4;display:flex;gap:10px}
.icp-hero__dot{height:11px;width:11px;border:0;cursor:pointer;padding:0;
	background:rgba(255,255,255,.45);transition:background .25s,width .25s;border-radius:999px}
.icp-hero__dot.is-active{background:#fff;width:32px}

/* Barre de progression */
.icp-hero__progress{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.15);z-index:4}
.icp-hero__progress>span{display:block;height:100%;width:0;background:var(--icp-orange,#F07D00)}
.icp-hero__progress>span.run{animation:icpProgress linear forwards}
@keyframes icpProgress{from{width:0}to{width:100%}}

/* Tablette + mobile : texte en haut, image ENTIÈRE collée en bas (flux flex simple),
   fond = même image floutée (fallback clair). Hauteur = texte + image, rien de plus. */
@media(max-width:1024px){
	.icp-hero{height:calc(100vw / 2.06 + 180px);min-height:0;background:#e8edf2}
	.icp-hero__slide{display:flex;flex-direction:column}
	.icp-hero__bg{display:block;position:absolute;inset:0;width:100%;height:100%;
		object-fit:cover;object-position:center;filter:blur(26px) brightness(.8);transform:scale(1.15);z-index:0}
	.icp-hero__img{position:relative;inset:auto;width:100%;height:calc(100vw / 2.06);
		object-fit:contain;object-position:center top;z-index:1}
	.icp-hero__slide--kleen .icp-hero__img{object-position:center top;transform-origin:center}
	.icp-hero__scrim{background:linear-gradient(0deg,rgba(10,25,45,.72) 0,rgba(10,25,45,.60) 140px,rgba(10,25,45,0) 220px);z-index:1}
	.icp-hero__content{position:relative;top:auto;bottom:auto;left:auto;right:auto;transform:none;
		max-width:none;text-align:center;z-index:2;padding:12px 24px 0}
	.icp-hero__title{font-size:clamp(20px,2.8vw,26px);margin-bottom:6px}
	.icp-hero__sub{font-size:clamp(13px,1.6vw,15px);margin:0 auto 10px;max-width:34em}
	.icp-hero__cta{padding:9px 20px;font-size:13px;box-shadow:0 8px 18px rgba(240,125,0,.3)}
	.icp-hero__dots{left:0;right:0;justify-content:center;bottom:10px}
	.icp-hero__dot{width:7px;height:7px}
	.icp-hero__dot.is-active{width:20px}
}
@media(max-width:600px){
	.icp-hero{height:calc(100vw / 2.06 + 160px)}
	.icp-hero__content{padding:10px 16px 0}
	.icp-hero__title{font-size:19px}
	.icp-hero__sub{font-size:12.5px}
	.icp-hero__cta{padding:8px 18px;font-size:12.5px}
}

/* Accessibilité : figer les animations si demandé */
@media(prefers-reduced-motion:reduce){
	.icp-hero__slide,.icp-hero__img,.icp-hero__content>*{transition:none!important;animation:none!important}
	.icp-hero__img{transform:none}
	.icp-hero__content>*{opacity:1;transform:none;filter:none}
	.icp-hero__progress>span{display:none}
}
