/* =============================================================================
   INSTALL COMMUNICATION 33 — PAGE RÉALISATIONS
============================================================================= */
.ic33-realisations-page{background:#F5F8FC;color:#081A2F}
.ic33-realisations-page__hero{position:relative;min-height:500px;overflow:hidden;background:#061A2E}
.ic33-realisations-page__hero-bg{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(3,20,38,.97) 0%,rgba(3,20,38,.88) 48%,rgba(3,20,38,.38) 100%),url('../images/realisations/signalisation.webp');background-size:cover;background-position:center 45%}
.ic33-realisations-page__hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);gap:70px;align-items:center;min-height:500px;width:100%;padding:70px 5vw}
.ic33-realisations-page__hero-copy{max-width:850px;color:#fff}
.ic33-realisations-page__eyebrow{display:inline-flex;align-items:center;gap:12px;margin-bottom:24px;color:#F58220;font-size:14px;font-weight:800;letter-spacing:3px;text-transform:uppercase}
.ic33-realisations-page__eyebrow:before{content:"";width:48px;height:3px;background:#F58220}
.ic33-realisations-page__hero h1{margin:0 0 28px;color:#fff;font-size:clamp(48px,5vw,78px);font-weight:900;line-height:.98;letter-spacing:-1.5px}
.ic33-realisations-page__hero p{max-width:800px;margin:0;color:rgba(255,255,255,.92);font-size:20px;line-height:1.6}
.ic33-realisations-page__hero-points{display:flex;flex-direction:column;gap:34px;padding-left:34px;border-left:1px solid rgba(255,255,255,.2)}
.ic33-realisations-page__hero-point{display:flex;gap:20px;align-items:center;color:#fff}.ic33-realisations-page__hero-icon{flex:0 0 52px;color:#F58220;font-size:38px;line-height:1;text-align:center}.ic33-realisations-page__hero-point strong{display:block;font-size:18px;font-weight:800;line-height:1.25}.ic33-realisations-page__hero-point small{display:block;margin-top:5px;color:rgba(255,255,255,.76);font-size:14px;line-height:1.4}
.ic33-realisations-page__projects{width:100%;padding:24px 20px 90px}.ic33-realisations-page__filters{display:flex;gap:8px;align-items:center;overflow-x:auto;padding:0 8px 22px;scrollbar-width:none}.ic33-realisations-page__filters::-webkit-scrollbar{display:none}.ic33-realisations-page__filters button{flex:0 0 auto;min-height:44px;padding:0 18px;border:0;border-radius:999px;background:#EAF0F7;color:#10233B;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.ic33-realisations-page__filters button:hover{background:#DDE7F2}.ic33-realisations-page__filters button.is-active{background:#F58220;color:#fff}
.ic33-realisations-page__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ic33-realisation-project{min-width:0;perspective:1200px}.ic33-realisation-project.is-filtered-out{display:none}.ic33-realisation-project__inner{position:relative;width:100%;height:100%;min-height:390px;transform-style:preserve-3d;transition:transform .65s cubic-bezier(.2,.75,.25,1)}.ic33-realisation-project.is-flipped .ic33-realisation-project__inner{transform:rotateY(180deg)}
.ic33-realisation-project__face{position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #E4EAF1;border-radius:5px;background:#fff;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 7px 24px rgba(8,26,47,.08)}.ic33-realisation-project__face--back{transform:rotateY(180deg);background:#071D33;color:#fff}
.ic33-realisation-project__image{height:205px;flex:0 0 205px;overflow:hidden;background:#fff}.ic33-realisation-project__image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .35s ease}.ic33-realisation-project:hover .ic33-realisation-project__face--front .ic33-realisation-project__image img{transform:none}
.ic33-realisation-project__content{display:flex;flex:1;flex-direction:column;padding:17px 16px 14px}.ic33-realisation-project__category{display:block;margin-bottom:8px;color:#0065B8;font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase}.ic33-realisation-project__content h2,.ic33-realisation-project__back-content h2{margin:0 0 7px;color:#081A2F;font-size:20px;font-weight:900;line-height:1.15}.ic33-realisation-project__content p{margin:0;color:#4F6075;font-size:14px;line-height:1.5}.ic33-realisation-project__discover,.ic33-realisation-project__return{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:42px;margin-top:auto;padding:0 14px;border:0;border-radius:4px;background:#F58220;color:#fff;font:inherit;font-size:13px;font-weight:800;cursor:pointer;transition:background .2s ease,transform .2s ease}.ic33-realisation-project__discover:hover{background:#E66F0D;transform:translateY(-1px)}
.ic33-realisation-project__back-content{position:relative;display:flex;flex:1;flex-direction:column;padding:25px 22px 20px}.ic33-realisation-project__back-content .ic33-realisation-project__category{color:#F58220;margin-right:25px}.ic33-realisation-project__back-content h2{color:#fff;font-size:22px}.ic33-realisation-project__close{position:absolute;top:13px;right:14px;width:30px;height:30px;border:0;background:transparent;color:#fff;font-size:29px;line-height:1;cursor:pointer}.ic33-realisation-project__details{flex:1}.ic33-realisation-project__details h3{margin:18px 0 8px;color:#F58220;font-size:12px;font-weight:900;letter-spacing:1.2px}.ic33-realisation-project__details dl{margin:0}.ic33-realisation-project__details dl div{display:flex;gap:8px;margin:4px 0;font-size:13px;line-height:1.35}.ic33-realisation-project__details dt{min-width:58px;color:rgba(255,255,255,.62);font-weight:600}.ic33-realisation-project__details dd{margin:0;color:#fff;font-weight:700}.ic33-realisation-project__details ul{margin:0;padding:0;list-style:none}.ic33-realisation-project__details li{position:relative;padding-left:17px;margin:5px 0;color:#fff;font-size:13px;line-height:1.35}.ic33-realisation-project__details li:before{content:'✓';position:absolute;left:0;color:#F58220;font-weight:900}.ic33-realisation-project__return{margin-top:15px;border:2px solid #F58220;background:transparent}.ic33-realisation-project__return:hover{background:#F58220}
@media (max-width:1400px){.ic33-realisations-page__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ic33-realisations-page__hero-inner{padding-left:4vw;padding-right:4vw}}
@media (max-width:1000px){.ic33-realisations-page__hero-inner{grid-template-columns:1fr;gap:35px}.ic33-realisations-page__hero-points{display:grid;grid-template-columns:repeat(3,1fr);padding:0;border-left:0}.ic33-realisations-page__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.ic33-realisations-page__hero{min-height:auto}.ic33-realisations-page__hero-inner{min-height:0;padding:70px 24px}.ic33-realisations-page__hero h1{font-size:44px}.ic33-realisations-page__hero p{font-size:17px}.ic33-realisations-page__hero-points{grid-template-columns:1fr;gap:20px}.ic33-realisations-page__projects{padding:18px 20px 60px}.ic33-realisations-page__grid{grid-template-columns:1fr}.ic33-realisation-project__inner{min-height:430px}}

/* =============================================================================
   PHOTOS — PLEINE LARGEUR / PLEINE HAUTEUR SANS CADRE BLANC
============================================================================= */
.ic33-realisations-page__grid {
    align-items: stretch;
}

.ic33-realisation-project__face--front {
    height: 100%;
}

.ic33-realisation-project__image {
    width: 100%;
    height: auto;
    flex: 0 0 auto;
    overflow: hidden;
    background: transparent;
}

.ic33-realisation-project__image img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    object-fit: cover;
    object-position: center;
    transform: none !important;
}

/* Ratio natif de chaque photo : la photo remplit toute sa largeur sans être rognée. */
.ic33-realisation-project:nth-child(1) .ic33-realisation-project__image {
    aspect-ratio: 1537 / 1023;
}

.ic33-realisation-project:nth-child(2) .ic33-realisation-project__image,
.ic33-realisation-project:nth-child(4) .ic33-realisation-project__image {
    aspect-ratio: 1448 / 1086;
}

.ic33-realisation-project:nth-child(3) .ic33-realisation-project__image {
    aspect-ratio: 1586 / 992;
}

.ic33-realisation-project__image img {
    height: 100%;
    object-fit: cover;
}

/* =============================================================================
   AJUSTEMENT — CARDS PLUS HAUTES / PHOTOS ENTIÈRES
============================================================================= */
.ic33-realisation-project__inner {
    min-height: 620px;
}

.ic33-realisation-project__image,
.ic33-realisation-project:nth-child(1) .ic33-realisation-project__image,
.ic33-realisation-project:nth-child(2) .ic33-realisation-project__image,
.ic33-realisation-project:nth-child(3) .ic33-realisation-project__image,
.ic33-realisation-project:nth-child(4) .ic33-realisation-project__image {
    width: 100%;
    height: auto;
    aspect-ratio: auto;
    flex: 0 0 auto;
    overflow: hidden;
    background: transparent;
}

.ic33-realisation-project__image img {
    display: block;
    width: 100%;
    height: auto;
    max-width: none;
    object-fit: contain;
    object-position: center;
    transform: none !important;
}

@media (max-width: 700px) {
    .ic33-realisation-project__inner {
        min-height: 0;
    }
}

/* =============================================================================
   PLEINE LARGEUR — PAGE RÉALISATIONS
   Le contenu sort du container Storefront.
   Le hero reste bord à bord ; les projets conservent 20px de marge.
============================================================================= */
.ic33-realisations-page {
    width: 100vw !important;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
}

.ic33-realisations-page__hero {
    width: 100% !important;
    max-width: none !important;
}

.ic33-realisations-page__projects {
    width: 100% !important;
    max-width: none !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box !important;
}

/* =============================================================================
   AJUSTEMENT FINAL — CARDS PLUS HAUTES + FOOTER BORD À BORD
============================================================================= */

html body .ic33-realisation-project__inner {
    height: 700px !important;
    min-height: 620px !important;
}

html body .ic33-realisation-project__face {
    height: 100% !important;
}

/* Le footer doit sortir du container Storefront sur la page Réalisations. */
html body:has(.ic33-realisations-page) footer,
html body:has(.ic33-realisations-page) .site-footer,
html body:has(.ic33-realisations-page) .ic33-footer {
    width: 100vw !important;
    max-width: none !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

html body:has(.ic33-realisations-page) footer .col-full,
html body:has(.ic33-realisations-page) .site-footer .col-full,
html body:has(.ic33-realisations-page) .ic33-footer .ic33-container,
html body:has(.ic33-realisations-page) .ic33-footer .ic33-container-wide {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

@media (max-width: 700px) {
    html body .ic33-realisation-project__inner {
        height: auto !important;
        min-height: 0 !important;
    }
}
