/* =============================================================================
   Harmonie des composants — chargée en dernier sur les pages au modèle IRIAN.
   Règles : un arrondi pour les blocs (8 px), pastilles et boutons ronds ; deux styles de cartes (claire, marine) ;
   un seul accent (trait or de 2 px) pour les éléments sans cadre ; un seul espacement entre sections.
   ============================================================================= */
:root{
	--ip-rayon:8px;
	--ip-espace-section:clamp(64px,8vw,112px);
	--ip-ombre-survol:0 10px 28px rgba(35,49,86,.10);
	--ip-transition:.25s cubic-bezier(.2,.7,.2,1);
}

/* Espacement des sections, identique partout */
.ip .ip-section,.iacc .iacc-section{padding-top:var(--ip-espace-section); padding-bottom:var(--ip-espace-section)}

/* Un seul arrondi pour les blocs */
.ip-carte,.is .is-projet,.isoc .isoc-savoir a,.isoc .isoc-frise li,.iacc .iacc-publics article,.iacc .iacc-domaines a,
.ip-cta-boite,.isol .isol-bandeau,.ip-fiche,.ip-voisin-image,.iacc .iacc-une-image,.iacc .iacc-collage img,.iacc .iacc-atelier-bande img,
.ip-hero-image img,.ip-galerie img,.iacc .iacc-mosaique li{border-radius:var(--ip-rayon) !important}

/* Carte claire : fond blanc, fin contour, accent or au survol */
.is .is-carte,.isoc .isoc-savoir a,.isoc .isoc-frise li,.iacc .iacc-publics article,.isol .isol-or a,.isol .isol-ardoise a,.is .is-projet{
	background:#fff !important; border:1px solid var(--ip-trait) !important; border-radius:var(--ip-rayon) !important;
	box-shadow:none; transition:border-color var(--ip-transition), box-shadow var(--ip-transition), transform var(--ip-transition)}
.is .is-carte:hover,.isoc .isoc-savoir a:hover,.isol .isol-or a:hover,.isol .isol-ardoise a:hover,.is .is-projet:hover,.iacc .iacc-publics article:hover{
	border-color:var(--ip-or) !important; box-shadow:var(--ip-ombre-survol); transform:translateY(-2px)}
.iacc .iacc-publics article{background:#fff !important}
.ip-carte{background:#fff; border:1px solid var(--ip-trait)}

/* Carte marine : fond marine, texte blanc */
.iacc .iacc-domaines a,.ip-cta-boite,.isol .isol-bandeau{background:var(--ip-marine); color:#fff; border:0; transition:transform var(--ip-transition), box-shadow var(--ip-transition)}
.iacc .iacc-domaines a:hover{transform:translateY(-2px); box-shadow:0 12px 30px rgba(10,16,32,.28)}

/* Un seul accent : trait or de 2 px, pour les éléments sans cadre */
.ip-etapes:not(.ip-procede) li,.iacc .iacc-parcours li,.isoc .isoc-chiffres li,.isoc .isoc-apports article{border-top:2px solid var(--ip-or) !important}
.ip-procede li{border-top:0 !important}

/* Images des cartes : léger zoom au survol */
.is .is-projet .ip-voisin-image,.iacc .iacc-une-image{overflow:hidden}
.is .is-projet .ip-voisin-image img,.iacc .iacc-une-image img{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.is .is-projet:hover .ip-voisin-image img,.iacc .iacc-une-image:hover img{transform:scale(1.03)}

/* Boutons : réaction nette au survol */
.ip-bouton,.iacc .iacc-bouton-ligne,.is .is-bouton-clair{transition:background-color var(--ip-transition), color var(--ip-transition), transform var(--ip-transition), box-shadow var(--ip-transition)}
.ip-bouton:hover{transform:translateY(-1px); box-shadow:0 6px 18px rgba(208,152,53,.35)}

/* Apparition douce au défilement (activée seulement si le script tourne : classe ip-anim sur <html>) */
.ip-anim .ip-apparition{opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1)}
.ip-anim .ip-apparition.ip-visible{opacity:1; transform:none}
@media (prefers-reduced-motion:reduce){
	.ip-anim .ip-apparition{opacity:1 !important; transform:none !important; transition:none !important}
	.is .is-carte:hover,.isoc .isoc-savoir a:hover,.is .is-projet:hover,.iacc .iacc-domaines a:hover,.ip-bouton:hover{transform:none !important}
}

/* Titre de section qui accompagne le défilement : toutes les mises en page « titre à gauche, contenu à droite » */
@media (min-width:901px){
	.ip-deux{align-items:start}
	.ip-deux > :first-child,.iq .iq-grille .is-tete,.iacc .iacc-questions-grille .iacc-tete{position:sticky; top:calc(var(--ip-decalage, 0px) + 96px); align-self:start}
}
