/* IRIAN — modèle de page projet. Charte : Poppins (titres), Hind (texte), marine #233156, or #d09835. */
.ip{
	--ip-marine:#233156; --ip-ardoise:#495f77; --ip-or:#d09835; --ip-or-texte:#8a5f16;
	--ip-texte:#333; --ip-doux:#5a6169; --ip-trait:#dde2ea; --ip-gris:#f3f5f8;
	--ip-titres:Poppins,"Helvetica Neue",Arial,sans-serif; --ip-corps:Hind,"Helvetica Neue",Arial,sans-serif;
	--ip-decalage:0px;
	font-family:var(--ip-corps); font-weight:300; color:var(--ip-texte); font-size:18px; line-height:1.7;
}
.ip *{box-sizing:border-box}
.ip h1,.ip h2,.ip h3,.ip h4{font-family:var(--ip-titres); color:var(--ip-texte); letter-spacing:0; margin:0}
.ip h2{font-weight:300; font-size:clamp(28px,3vw,40px); line-height:1.15}
.ip p{margin:0 0 1em}
.ip a{color:var(--ip-marine)} .ip a:hover{color:var(--ip-ardoise)}
/* Liens dans les textes : soulignés d'or, bien visibles, et reconnaissables autrement que par la couleur. */
.ip .ip-texte a,.ip .ip-etapes a,.ip .ip-carte a,.ip .ip-faq .ip-texte a,.ip .ip-cta-texte a{
	color:var(--ip-marine); font-weight:500; text-decoration:underline !important;
	text-decoration-color:var(--ip-or) !important; text-decoration-thickness:2px; text-underline-offset:4px;
	transition:background-color .15s, color .15s}
.ip .ip-texte a:hover,.ip .ip-etapes a:hover,.ip .ip-carte a:hover,.ip .ip-faq .ip-texte a:hover{
	color:var(--ip-marine); background:rgba(208,152,53,.16); text-decoration-color:var(--ip-marine) !important}
.ip .ip-accroche a,.ip .ip-cta-texte a{color:#fff; text-decoration-color:var(--ip-or) !important}
.ip :focus-visible{outline:3px solid var(--ip-or); outline-offset:3px}
.ip img{max-width:100%; height:auto; display:block}
.ip-cadre{width:min(1160px,92%); margin:0 auto}
.ip-section{padding:clamp(56px,8vw,104px) 0; scroll-margin-top:calc(var(--ip-decalage) + 56px)}
.ip-serre{padding:clamp(40px,5vw,72px) 0}
.ip-blanc{background:#fff; border-top:1px solid var(--ip-trait); border-bottom:1px solid var(--ip-trait)}
.ip-deux{display:grid; grid-template-columns:4fr 7fr; gap:clamp(24px,5vw,72px)}
.ip-numero,.ip-petit-titre{font-family:var(--ip-titres); font-weight:500; font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--ip-or-texte); margin:0 0 14px}
.ip-texte{font-size:18px}
.ip-aide{font-size:16px; color:var(--ip-doux)}

/* Introduction */
.ip-hero{background:var(--ip-marine); color:#fff; padding:40px 0 clamp(48px,6vw,72px)}
.ip-ariane{font-size:14px; color:#c9d1de; display:flex; flex-wrap:wrap; gap:8px; margin-bottom:32px}
.ip .ip-ariane a{color:#e6eaf0; text-decoration:underline; text-decoration-color:rgba(208,152,53,.7); text-underline-offset:3px}
.ip .ip-ariane a:hover{color:#fff; text-decoration-color:var(--ip-or)}
.ip-hero-grille{display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,56px); align-items:center}
.ip-hero-grille.ip-sans-image{grid-template-columns:minmax(0,820px)}
.ip-surtitre{font-family:var(--ip-titres); font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:#c9d1de; margin:0 0 18px}
.ip .ip-h1{font-weight:400; font-size:clamp(34px,4.2vw,54px); line-height:1.1; color:var(--ip-or); margin:0 0 22px}
.ip-accroche{font-size:20px; line-height:1.55; color:#e6eaf0}
.ip-meta{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; border-top:1px solid rgba(255,255,255,.18); padding-top:20px; margin:26px 0 0; font-size:15px}
.ip-meta dt{color:#aab4c3; margin-bottom:2px} .ip-meta dd{margin:0; color:#fff; font-weight:400}
/* Photo principale affichée en entier, quel que soit son format (paysage ou portrait). */
.ip-hero-image{padding:0; border:0; background:none; cursor:zoom-in; display:flex; justify-content:center; align-items:center}
.ip-hero-image img{width:auto; height:auto; max-width:100%; max-height:560px; object-fit:contain; border-radius:6px}

/* Sommaire collant */
.ip-sommaire{position:sticky; top:var(--ip-decalage); z-index:5; background:#fff; border-bottom:1px solid var(--ip-trait)}
.ip-sommaire .ip-cadre{display:flex; gap:32px; overflow-x:auto; white-space:nowrap}
.ip-sommaire a{font-family:var(--ip-titres); font-size:15px; color:var(--ip-texte); text-decoration:none; padding:14px 0; border-bottom:2px solid transparent}
.ip-sommaire a:hover{border-bottom-color:var(--ip-or); color:var(--ip-marine)}

/* Verrou */
.ip-verrou{margin:10px 0 0; padding:24px 28px; background:#fff; border:1px solid var(--ip-trait); border-radius:6px; font-family:var(--ip-titres); font-weight:400; font-size:20px; line-height:1.45; color:var(--ip-texte)}

/* Galerie */
.ip-galerie-zone{padding-bottom:clamp(56px,8vw,104px)}
/* Galerie : chaque photo s'affiche en entier, dans ses proportions (colonnes « maçonnerie », sans recadrage). */
.ip .ip-galerie{display:block; column-gap:24px; column-count:3}
.ip .ip-galerie-1{column-count:1; max-width:900px; margin:0 auto}
.ip .ip-galerie-2{column-count:2}
.ip .ip-galerie button{display:block; width:100%; margin:0 0 24px; padding:0; border:0; background:none; cursor:zoom-in; border-radius:6px; overflow:hidden; break-inside:avoid; aspect-ratio:auto}
.ip .ip-galerie img{display:block; width:100% !important; height:auto !important; max-height:none; object-fit:initial; aspect-ratio:auto !important}
.ip .ip-galerie-1 img{width:auto !important; max-width:100%; max-height:75vh; margin:0 auto}

/* Démarche */
.ip-etapes{list-style:none !important; margin:48px 0 0 !important; padding:0 !important; display:grid; gap:32px 24px; grid-template-columns:repeat(4,minmax(0,1fr))}
.ip-etapes-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ip-etapes li::marker{content:none}
.ip-etapes li{list-style:none !important; border-top:3px solid var(--ip-or); padding-top:20px; margin:0; font-size:16px; line-height:1.65}
.ip-etape-num{display:block; font-family:var(--ip-titres); font-weight:600; font-size:40px; line-height:1; color:var(--ip-trait); margin-bottom:14px}
.ip-etapes h3{font-weight:500; font-size:20px; line-height:1.3; margin-bottom:10px}

/* Applications */
.ip-transfert{margin-top:56px}
.ip-transfert h2{margin-bottom:32px}
.ip-h3{font-weight:500; font-size:24px; margin-bottom:20px !important}
.ip-cartes{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px}
.ip-carte{background:var(--ip-gris); border-radius:6px; padding:28px; font-size:16px; line-height:1.6}
.ip-carte h4{font-weight:500; font-size:19px; margin-bottom:10px}

/* Fiche technique */
.ip-specs{border-top:1px solid var(--ip-trait); border-bottom:1px solid var(--ip-trait)}
.ip-specs summary,.ip-faq summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:44px}
.ip-specs summary::-webkit-details-marker,.ip-faq summary::-webkit-details-marker{display:none}
.ip-specs summary{padding:18px 0; font-family:var(--ip-titres); font-size:18px; color:var(--ip-texte)}
.ip-plus{font-size:28px; font-weight:300; transition:transform .2s; flex:none}
details[open]>summary .ip-plus{transform:rotate(45deg)}
.ip-tableau{overflow-x:auto; padding-bottom:16px}
.ip-tableau table{border-collapse:collapse; width:100%; font-size:16px; margin:0}
.ip-tableau th,.ip-tableau td{border:0; border-top:1px solid var(--ip-trait); padding:14px 16px 14px 0; text-align:left; vertical-align:top; background:none}
.ip-tableau th{font-weight:400; color:var(--ip-doux); width:45%}
.ip-tableau td{font-family:var(--ip-titres); font-size:15px}

/* Bandeau confiance */
.ip-confiance{background:#fff; border-bottom:1px solid var(--ip-trait); padding:48px 0}
.ip-confiance-tete{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:24px}
.ip-confiance-tete p{max-width:760px; margin:0}
.ip-confiance-tete strong{font-family:var(--ip-titres); font-weight:500}
.ip-logos{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); gap:16px; align-items:center}
.ip-logos li{margin:0} .ip-logos img{max-height:56px; width:auto; margin:0 auto; filter:grayscale(1); opacity:.8}

/* FAQ */
.ip-faq{border-top:1px solid var(--ip-trait)}
.ip-faq details{border-bottom:1px solid var(--ip-trait); padding:18px 0}
.ip-faq h3{font-weight:400; font-size:19px; line-height:1.4}
.ip-faq .ip-texte{font-size:17px; padding-top:12px}

/* Contact */
.ip-cta{padding:0 0 clamp(56px,8vw,104px); scroll-margin-top:calc(var(--ip-decalage) + 56px)}
.ip-cta-boite{background:var(--ip-marine); border-radius:8px; padding:clamp(32px,5vw,64px); display:flex; justify-content:space-between; align-items:center; gap:32px}
.ip-cta h2{color:#fff; font-size:clamp(26px,2.6vw,36px); margin-bottom:12px}
.ip-cta-texte{color:#c9d1de; font-size:18px} .ip-cta-texte p:last-child{margin:0}
.ip-bouton{flex:none; display:inline-flex; gap:10px; align-items:center; background:var(--ip-or); color:var(--ip-marine) !important; text-decoration:none; font-family:var(--ip-titres); font-weight:500; font-size:17px; padding:16px 30px; border-radius:999px}
.ip-bouton:hover{background:#fff}

/* Réalisations similaires */
.ip-voisins{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin-top:32px}
.ip-voisin{display:flex; flex-direction:column; gap:10px; text-decoration:none; color:var(--ip-texte)}
.ip-voisin-image{display:block; aspect-ratio:4/3; background:var(--ip-gris); border-radius:6px; overflow:hidden}
.ip-voisin-image img{width:100%; height:100%; object-fit:cover; transition:transform .3s}
.ip-voisin:hover img{transform:scale(1.03)}
.ip-voisin .ip-petit-titre{margin:4px 0 0; font-size:12px; color:var(--ip-doux)}
.ip-voisin-titre{font-family:var(--ip-titres); font-size:17px; line-height:1.35}

/* Visionneuse */
.ip-visionneuse{border:0; padding:24px; width:100vw; height:100vh; max-width:none; max-height:none; background:rgba(10,12,15,.94); color:#fff}
.ip-visionneuse[open]{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:16px}
.ip-visionneuse figure{margin:0; max-width:min(1200px,100%)}
.ip-visionneuse img{max-height:78vh; width:auto; margin:0 auto}
.ip-visionneuse figcaption{text-align:center; font-size:14px; color:#c9d1de; margin-top:8px}
.ip-visionneuse button{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.35); border-radius:999px; width:48px; height:48px; font-size:26px; line-height:1; cursor:pointer}
.ip-fermer{position:absolute; top:16px; right:16px}
.ip-nav{display:flex; align-items:center; gap:20px}

/* Mobile */
@media (max-width:900px){
	.ip-deux,.ip-hero-grille,.ip-meta,.ip-cartes,.ip-etapes,.ip-etapes-3{grid-template-columns:minmax(0,1fr)}
	.ip .ip-galerie,.ip .ip-galerie-2{column-count:1}
	.ip-voisins{grid-template-columns:repeat(2,minmax(0,1fr))}
	.ip-logos{grid-template-columns:repeat(3,minmax(0,1fr))}
	.ip-cta-boite{flex-direction:column; align-items:flex-start}
	.ip-sommaire .ip-cadre{gap:20px}
}

/* Impression : page propre, blocs dépliés par projet.js */
@media print{
	#headerwrap,#footerwrap,.ip-sommaire,.ip-bouton,.ip-visionneuse,.ip-voisins,.ip-plus{display:none !important}
	.ip,.ip-hero,.ip-cta-boite,.ip-blanc,.ip-confiance{background:#fff !important; color:#333 !important}
	.ip-hero *,.ip-cta-boite *{color:#333 !important}
	.ip .ip-h1{color:#233156 !important}
	.ip-section,.ip-hero{padding:20px 0 !important}
	.ip-etapes li,.ip-carte,.ip-faq details,tr{break-inside:avoid}
	.ip-galerie-zone{display:none}
	.ip-cta::after{content:"IRIAN Mecatronics · 17 rue du Pont Long, 64160 Morlaàs · +33 (0)5 59 90 29 80 · info-meca@irian.fr"; display:block; margin-top:12px; font-size:12px}
}
