:root { --icm-navy: #1A1A1A; --icm-blue: #329B24; --icm-green: #329B24; --icm-orange: #F58220; --icm-ink: #1A1A1A; --icm-sand: #F7F4EE; --icm-white: #FFFFFF; --icm-line: rgba(10, 39, 66, .14); }
.icm-site { color: var(--icm-ink); font-family: Arial, Helvetica, sans-serif; }
.icm-site h1, .icm-site h2, .icm-site h3, .icm-site .icm-display { font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; }
.icm-hero { background: linear-gradient(120deg, rgba(6,24,43,.95), rgba(10,39,66,.72)), var(--icm-blue); color: var(--icm-white); position: relative; overflow: hidden; }
.icm-hero:after { content: ''; position: absolute; right: -5%; bottom: -24%; width: 44vw; height: 44vw; border: 1px solid rgba(244,129,32,.55); transform: rotate(22deg); }
.icm-hero .vc_column-inner { padding: 112px 8vw 104px !important; position: relative; z-index: 1; }
.icm-eyebrow { color: var(--icm-orange); font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.icm-title { color: inherit; font-size: clamp(42px, 6vw, 86px); line-height: .92; margin: 16px 0 24px !important; max-width: 860px; }
.icm-lead { color: inherit; font-size: 19px; line-height: 1.6; max-width: 660px; opacity: .92; }
.icm-section { padding: 88px 7vw; }
.icm-section--sand { background: var(--icm-sand); }
.icm-section--navy { background: var(--icm-navy); color: var(--icm-white); }
.icm-section-title { color: inherit; font-size: clamp(34px, 4.4vw, 58px); line-height: .96; margin: 12px 0 22px !important; }
.icm-card { background: var(--icm-white); border-top: 4px solid var(--icm-orange); box-shadow: 0 18px 44px rgba(10,39,66,.10); padding: 30px; min-height: 100%; }
.icm-card h3 { color: var(--icm-navy); font-size: 30px; }
.icm-stat { border-left: 3px solid var(--icm-orange); padding: 8px 0 8px 18px; }
.icm-stat strong { color: var(--icm-orange); display: block; font-family: Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; font-size: 46px; letter-spacing: .02em; line-height: 1; }
.icm-button, .icm-site .vc_btn3 { border-radius: 0 !important; font-weight: 700 !important; letter-spacing: .06em; text-transform: uppercase; }
.icm-button--orange .vc_btn3, .icm-button--orange a { background: var(--icm-orange) !important; border-color: var(--icm-orange) !important; color: var(--icm-white) !important; }
.icm-button--outline .vc_btn3, .icm-button--outline a { background: transparent !important; border-color: var(--icm-white) !important; color: var(--icm-white) !important; }
.icm-media { overflow: hidden; }
.icm-media img { display: block; width: 100%; height: auto; transition: transform .35s ease; }
.icm-media:hover img { transform: scale(1.035); }
.icm-rule { border-top: 1px solid var(--icm-line); margin: 38px 0; }
@media (max-width: 767px) { .icm-hero .vc_column-inner { padding: 82px 8vw 74px !important; } .icm-section { padding: 64px 7vw; } .icm-card { margin-bottom: 20px; } }
/* Accueil : le contenu est entièrement géré par WPBakery. */
body.page-id-114 .wp-block-post-title, body.page-id-114 .wp-block-post-featured-image { display: none !important; }
body.page-id-114 .wp-site-blocks { padding-top: 0; }
/* Gabarit pleine largeur pour les sections WPBakery Groupe ICM. */
.entry-content.wp-block-post-content-is-layout-constrained > .vc_row.icm-site,
.wp-block-post-content-is-layout-constrained > .vc_row.icm-site {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
.entry-content.wp-block-post-content-is-layout-constrained > .vc_row.icm-site .vc_row,
.wp-block-post-content-is-layout-constrained > .vc_row.icm-site .vc_row { max-width: none !important; }
@media (max-width: 782px) {
  .entry-content.wp-block-post-content-is-layout-constrained > .vc_row.icm-site,
  .wp-block-post-content-is-layout-constrained > .vc_row.icm-site { width: 100vw !important; }
}
/* Le wrapper généré par WPBakery est l’enfant direct limité par le thème Twenty Twenty-Five. */
body.page-id-114 .wp-block-post-content-is-layout-constrained > .wpb-content-wrapper {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
}
body.page-id-114 .wpb-content-wrapper > .vc_row.icm-site { width: 100% !important; max-width: none !important; }
/* En-tête et navigation institutionnelle Groupe ICM Constructions. */
.icm-header { position: sticky; top: 0; z-index: 1000; background: #FFFFFF; border-bottom: 1px solid rgba(26,26,26,.10); box-shadow: 0 8px 24px rgba(26,26,26,.06); }
.admin-bar .icm-header { top: 32px; }
.icm-header__inner { max-width: 1320px !important; min-height: 84px; margin: 0 auto !important; padding: 10px 32px !important; gap: 22px; }
.icm-header__brand { flex: 0 0 auto; }
.icm-header__logo { width: 164px; margin: 0 !important; }
.icm-header__logo img { display:block; width:100%; height:58px; object-fit:contain; object-position:left center; }
.icm-main-nav { flex: 1 1 auto; justify-content:center; }
.icm-main-nav .wp-block-navigation__container { gap: 22px !important; }
.icm-main-nav .wp-block-navigation-item__content { color:#1A1A1A; font-family:Arial,Helvetica,sans-serif; font-size:12px; font-weight:700; letter-spacing:.055em; text-decoration:none; text-transform:uppercase; }
.icm-main-nav .wp-block-navigation-item__content:hover, .icm-main-nav .current-menu-item > .wp-block-navigation-item__content { color:#329B24; }
.icm-main-nav .wp-block-navigation-submenu { background:#FFFFFF; border:1px solid rgba(26,26,26,.10); box-shadow:0 16px 32px rgba(26,26,26,.12); min-width:240px; padding:10px 0; }
.icm-main-nav .wp-block-navigation-submenu .wp-block-navigation-item__content { display:block; padding:10px 16px; }
.icm-header__cta .wp-block-button__link { background:#F58220 !important; color:#FFFFFF !important; border-radius:0; font-family:Arial,Helvetica,sans-serif; font-size:12px; font-weight:700; letter-spacing:.06em; padding:14px 18px; text-transform:uppercase; white-space:nowrap; }
.icm-header__cta .wp-block-button__link:hover { background:#329B24 !important; }
@media (max-width: 1100px) { .icm-main-nav .wp-block-navigation__container { gap:12px !important; } .icm-main-nav .wp-block-navigation-item__content { font-size:11px; } .icm-header__inner { padding-left:20px !important; padding-right:20px !important; } }
@media (max-width: 782px) { .admin-bar .icm-header { top:46px; } .icm-header__inner { min-height:72px; padding:8px 16px !important; } .icm-header__logo { width:142px; } .icm-header__logo img { height:50px; } .icm-header__cta { display:none; } .icm-main-nav { flex:0 0 auto; } .icm-main-nav .wp-block-navigation__responsive-container-open { color:#1A1A1A; } .icm-main-nav .wp-block-navigation__responsive-container.is-menu-open { background:#FFFFFF; color:#1A1A1A; padding:28px; } .icm-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size:15px; padding:10px 0; } }
/* Pied de page institutionnel Groupe ICM Constructions. */
.icm-footer { background:#1A1A1A; color:#FFFFFF; margin-top:0; }
.icm-footer__inner { max-width:1320px !important; margin:0 auto !important; padding:76px 32px 28px !important; }
.icm-footer__grid { gap:48px; }
.icm-footer__logo { width:190px; margin:0 0 20px !important; }
.icm-footer__logo img { display:block; width:100%; height:auto; background:#FFFFFF; padding:5px; }
.icm-footer__intro { max-width:340px; color:rgba(255,255,255,.78); font-size:15px; line-height:1.65; }
.icm-footer__tagline { color:#F58220; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.icm-footer__title { color:#FFFFFF; font-family:Arial,Helvetica,sans-serif !important; font-size:13px !important; font-weight:700 !important; letter-spacing:.09em; margin:4px 0 18px !important; text-transform:uppercase; }
.icm-footer__nav .wp-block-navigation__container { gap:10px !important; }
.icm-footer__nav .wp-block-navigation-item__content, .icm-footer__bottom a { color:rgba(255,255,255,.72); font-size:14px; text-decoration:none; }
.icm-footer__nav .wp-block-navigation-item__content:hover, .icm-footer__bottom a:hover { color:#F58220; }
.icm-footer__contact { color:rgba(255,255,255,.72); font-size:14px; line-height:1.55; }
.icm-footer__contact strong { color:#FFFFFF; font-size:12px; letter-spacing:.06em; text-transform:uppercase; }
.icm-footer__social { color:#329B24; font-size:12px; font-weight:700; }
.icm-footer__line { background:rgba(255,255,255,.16); border:0; height:1px; margin:48px 0 20px; }
.icm-footer__bottom { color:rgba(255,255,255,.58); font-size:12px; gap:18px; }
.icm-footer__bottom p { margin:0; }
@media (max-width:782px) { .icm-footer__inner { padding:56px 24px 24px !important; } .icm-footer__grid { gap:26px; } .icm-footer__logo { width:165px; } .icm-footer__line { margin-top:32px; } }
/* Gabarit commun des pages internes WPBakery. */
.wp-site-blocks > main { margin-top:0 !important; }
.icm-page-hero { background:linear-gradient(115deg, rgba(26,26,26,.96), rgba(26,26,26,.72)), #329B24; color:#FFFFFF; }
.icm-page-hero .vc_column-inner { padding:92px 8vw 76px !important; }
.icm-page-hero .icm-title { max-width:760px; }
.icm-breadcrumb { color:rgba(255,255,255,.68); font-size:12px; letter-spacing:.08em; margin-bottom:22px; text-transform:uppercase; }
.icm-breadcrumb a { color:#F58220; text-decoration:none; }
.icm-feature-list { margin:0; padding:0; list-style:none; }
.icm-feature-list li { border-bottom:1px solid var(--icm-line); padding:13px 0 13px 28px; position:relative; }
.icm-feature-list li:before { content:'+'; color:#F58220; font-size:20px; font-weight:700; left:0; position:absolute; top:8px; }
.icm-service-band { background:#329B24; color:#FFFFFF; }
.icm-service-band .vc_column-inner { padding:55px 7vw !important; }
.icm-media-card { background:#FFFFFF; box-shadow:0 15px 34px rgba(26,26,26,.10); overflow:hidden; }
.icm-media-card img { width:100%; }
.icm-media-card .wpb_wrapper { padding:22px; }
.icm-callout { border-left:4px solid #F58220; padding:18px 24px; background:#F7F4EE; }
@media(max-width:782px){ .icm-page-hero .vc_column-inner { padding:70px 8vw 58px !important; } }
/* Les pages institutionnelles utilisent leur propre hero WPBakery. */
body.page .wp-block-post-title,
body.page .wp-block-post-featured-image { display:none !important; }
/* Même gabarit pleine largeur pour toutes les pages construites avec WPBakery. */
body.page .wp-block-post-content-is-layout-constrained > .wpb-content-wrapper {
  width:100vw !important;
  max-width:100vw !important;
  margin-left:calc(50% - 50vw) !important;
  margin-right:calc(50% - 50vw) !important;
}
body.page .wpb-content-wrapper > .vc_row.icm-site { width:100% !important; max-width:none !important; }
/* Neutralisation des espacements hérités et du débordement du thème bloc. */
html, body { overflow-x:hidden; }
body.page main > .wp-block-group.alignfull.has-global-padding {
  padding-top:0 !important;
  padding-bottom:0 !important;
}
body.page .entry-content.wp-block-post-content { margin-top:0 !important; }

/* ICM visual refinement 2026: typography, density and human scale */
:root { --icm-navy:#13251b; --icm-green:#167f43; --icm-orange:#f58220; --icm-sand:#f7f5f0; --icm-ink:#1f2930; }
.icm-site, .icm-header, .icm-footer { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important; }
.icm-site h1, .icm-site h2, .icm-site h3, .icm-site .icm-display, .icm-title, .icm-section-title { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important; font-weight: 800 !important; letter-spacing: -0.042em !important; text-transform: none !important; }
.icm-title { font-size:clamp(34px,4.7vw,66px) !important; line-height:1.03 !important; max-width:780px !important; margin:12px 0 18px !important; }
.icm-section-title { font-size:clamp(27px,3.3vw,46px) !important; line-height:1.08 !important; max-width:760px; margin:10px 0 16px !important; }
.icm-card h3 { font-family:Inter, ui-sans-serif, system-ui, sans-serif !important; font-size:22px !important; line-height:1.22 !important; letter-spacing:-.025em !important; text-transform:none !important; }
.icm-hero .vc_column-inner { padding:76px 8vw 72px !important; }
.icm-page-hero .vc_column-inner { padding:62px 8vw 58px !important; }
.icm-section { padding:58px 7vw !important; }
.icm-lead { font-size:17px !important; line-height:1.65 !important; max-width:620px !important; }
.icm-eyebrow { font-size:11px !important; letter-spacing:.14em !important; }
.icm-card { border-top-width:3px !important; border-radius:10px !important; padding:26px !important; box-shadow:0 14px 34px rgba(19,37,27,.09) !important; }
.icm-stat strong { font-family:Inter, ui-sans-serif, system-ui, sans-serif !important; font-size:38px !important; letter-spacing:-.04em !important; }
.icm-site .vc_btn3, .icm-button { border-radius:7px !important; font-size:13px !important; letter-spacing:.025em !important; padding:13px 20px !important; }
.icm-site .vc_row.vc_row-o-content-middle > .wpb_column > .vc_column-inner { padding-top:0; padding-bottom:0; }
.icm-media { border-radius:10px; box-shadow:0 14px 30px rgba(19,37,27,.10); }
.icm-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.icm-form-grid label { display:flex; flex-direction:column; gap:7px; font-size:13px; font-weight:650; color:var(--icm-ink); }
.icm-form-grid input:not([type="checkbox"]), .icm-form-grid textarea { width:100%; border:1px solid #d8ded8; border-radius:6px; padding:11px 12px; font:inherit; background:#fff; }
.icm-form-grid textarea { min-height:118px; resize:vertical; }
.icm-form-full { grid-column:1 / -1; }
.icm-form-note { margin-top:12px; font-size:12px; line-height:1.45; color:#5f6b64; }
@media (max-width:767px) { .icm-hero .vc_column-inner, .icm-page-hero .vc_column-inner { padding:54px 7vw 50px !important; } .icm-section { padding:44px 7vw !important; } .icm-title { font-size:36px !important; } .icm-section-title { font-size:30px !important; } .icm-form-grid { grid-template-columns:1fr; } .icm-card { padding:20px !important; } }

/* ICM visual refinement 2026: client imagery */
body.page-id-114 .icm-hero { background-image:linear-gradient(100deg,rgba(7,34,34,.94) 0%,rgba(11,70,56,.80) 53%,rgba(7,39,33,.57) 100%),url('https://groupeicm-ci.com/construction/wp-content/uploads/2026/08/WhatsApp-Image-2026-06-26-at-08.44.59.jpeg') !important; background-size:cover !important; background-position:center 52% !important; }
.icm-photo-grid { padding-top:10px !important; padding-bottom:10px !important; }
.icm-photo-grid .vc_column-inner { padding:0 8px !important; }
.icm-photo-grid .wpb_single_image { margin-bottom:0 !important; }
.icm-photo-grid .wpb_single_image .vc_single_image-wrapper { width:100%; display:block; overflow:hidden; border-radius:10px; box-shadow:0 12px 28px rgba(19,37,27,.12); }
.icm-photo-grid .wpb_single_image img { width:100% !important; height:245px !important; object-fit:cover; display:block; }
.icm-photo-grid .wpb_column:nth-child(2) .wpb_single_image img { height:310px !important; }
.icm-photo-grid .wpb_column:nth-child(2) { transform:translateY(-18px); }
@media (max-width:767px) { .icm-photo-grid .vc_column-inner { padding:6px 0 !important; } .icm-photo-grid .wpb_single_image img, .icm-photo-grid .wpb_column:nth-child(2) .wpb_single_image img { height:220px !important; } .icm-photo-grid .wpb_column:nth-child(2) { transform:none; } }

/* ICM visual refinement 2026: contextual page heroes */
.icm-page-hero { background-size:cover !important; background-position:center !important; background-repeat:no-repeat !important; }
body.page-id-119 .icm-page-hero { background-image:linear-gradient(100deg,rgba(7,34,34,.92),rgba(11,70,56,.72)),url('https://groupeicm-ci.com/construction/wp-content/uploads/2026/08/WhatsApp-Image-2026-06-26-at-08.45.03-1.jpeg') !important; }
body.page-id-120 .icm-page-hero { background-image:linear-gradient(100deg,rgba(7,34,34,.92),rgba(11,70,56,.72)),url('https://groupeicm-ci.com/construction/wp-content/uploads/2026/08/WhatsApp-Image-2026-06-26-at-08.45.03.jpeg') !important; }
body.page-id-121 .icm-page-hero { background-image:linear-gradient(100deg,rgba(7,34,34,.92),rgba(11,70,56,.72)),url('https://groupeicm-ci.com/construction/wp-content/uploads/2026/08/WhatsApp-Image-2026-06-26-at-08.44.59.jpeg') !important; }
body.page-id-122 .icm-page-hero, body.page-id-126 .icm-page-hero { background-image:linear-gradient(100deg,rgba(7,34,34,.92),rgba(11,70,56,.72)),url('https://groupeicm-ci.com/construction/wp-content/uploads/2026/08/WhatsApp-Image-2026-06-26-at-08.45.04.jpeg') !important; }
body.page-id-123 .icm-page-hero, body.page-id-128 .icm-page-hero { background-image:linear-gradient(100deg,rgba(7,34,34,.92),rgba(11,70,56,.72)),url('https://groupeicm-ci.com/construction/wp-content/uploads/2026/08/WhatsApp-Image-2026-07-03-at-16.47.43-1.jpeg') !important; }
body.page-id-124 .icm-page-hero { background-image:linear-gradient(100deg,rgba(7,34,34,.92),rgba(11,70,56,.72)),url('https://groupeicm-ci.com/construction/wp-content/uploads/2026/08/WhatsApp-Image-2026-07-03-at-16.47.43-1.jpeg') !important; }
body.page-id-127 .icm-page-hero { background-image:linear-gradient(100deg,rgba(7,34,34,.92),rgba(11,70,56,.72)),url('https://groupeicm-ci.com/construction/wp-content/uploads/2026/08/WhatsApp-Image-2026-06-26-at-08.44.59.jpeg') !important; }
body.page-id-129 .icm-page-hero, body.page-id-131 .icm-page-hero { background-image:linear-gradient(100deg,rgba(7,34,34,.92),rgba(11,70,56,.72)),url('https://groupeicm-ci.com/construction/wp-content/uploads/2026/08/WhatsApp-Image-2026-06-26-at-08.45.03.jpeg') !important; }

/* ICM visual refinement 2026: illustrated service cards */
.icm-service-tile { margin-bottom:22px; }
.icm-service-tile .icm-service-tile__image { margin-bottom:-14px !important; position:relative; z-index:2; }
.icm-service-tile .icm-service-tile__image .vc_single_image-wrapper { display:block; width:calc(100% - 22px); margin:0 auto; overflow:hidden; border-radius:9px; box-shadow:0 12px 24px rgba(19,37,27,.13); }
.icm-service-tile .icm-service-tile__image img { display:block; width:100% !important; height:150px !important; object-fit:cover; }
.icm-service-tile .icm-card { padding-top:32px !important; }
@media (max-width:767px) { .icm-service-tile { margin-bottom:14px; } .icm-service-tile .icm-service-tile__image img { height:175px !important; } }

/* ICM visual refinement 2026: specialty visual compositions */
.icm-specialty-visual .vc_column-inner { padding-top:0 !important; padding-bottom:0 !important; }
.icm-specialty-visual .icm-media { margin-bottom:0 !important; }
.icm-specialty-visual .icm-media .vc_single_image-wrapper { width:100%; }
.icm-specialty-visual .icm-media img { width:100% !important; height:300px !important; object-fit:cover; }
.icm-specialty-visual .icm-card { margin:0 !important; min-height:300px; display:flex; flex-direction:column; justify-content:center; }
@media (max-width:767px) { .icm-specialty-visual .icm-media img { height:230px !important; } .icm-specialty-visual .icm-card { min-height:auto; margin-top:16px !important; } }

/* ICM visual refinement 2026: institutional visual compositions */
.icm-institutional-visual .vc_column-inner { padding-top:0 !important; padding-bottom:0 !important; }
.icm-institutional-visual .icm-media { margin-bottom:0 !important; }
.icm-institutional-visual .icm-media .vc_single_image-wrapper { width:100%; }
.icm-institutional-visual .icm-media img { width:100% !important; height:290px !important; object-fit:cover; }
.icm-institutional-visual .icm-card { margin:0 !important; min-height:290px; display:flex; flex-direction:column; justify-content:center; }
@media (max-width:767px) { .icm-institutional-visual .icm-media img { height:220px !important; } .icm-institutional-visual .icm-card { min-height:auto; margin-top:16px !important; } }

/* ICM 2026: footer full width and editable indicator cards */
footer.icm-footer { width:100% !important; max-width:none !important; }
footer.icm-footer .icm-footer__inner { width:100% !important; max-width:none !important; box-sizing:border-box !important; padding-left:clamp(24px,5vw,84px) !important; padding-right:clamp(24px,5vw,84px) !important; }
footer.icm-footer .icm-footer__grid { width:100% !important; max-width:none !important; margin:0 !important; }
.icm-stat strong { display:block; font-size:clamp(24px,2.4vw,36px); line-height:1.05; color:var(--icm-orange); text-transform:none; letter-spacing:0; }
.icm-stat span { display:block; margin-top:8px; font-size:15px; font-weight:700; line-height:1.25; color:var(--icm-white); }
.icm-stat small { display:block; margin-top:5px; font-size:11px; color:rgba(255,255,255,.64); }
@media (max-width:767px){ footer.icm-footer .icm-footer__grid { gap:28px !important; } .icm-stat { min-height:0 !important; } }

/* ICM 2026: external reference visuals — intentionally distinct from client project photos */
.icm-asset-disclaimer { max-width:760px; margin:16px 0 28px !important; padding:12px 16px; border-left:3px solid var(--icm-green); background:rgba(50,155,36,.08); color:#355032; font-size:13px; line-height:1.55; }
.icm-external-visual { margin:0 0 18px !important; }
.icm-external-visual figure { margin:0; overflow:hidden; border:1px solid rgba(26,26,26,.12); background:#fff; }
.icm-external-visual img { display:block; width:100% !important; height:230px !important; object-fit:cover; transition:transform .35s ease; }
.icm-external-visual figure:hover img { transform:scale(1.025); }
.icm-external-visual figcaption { padding:10px 12px; color:#4c4c4c; font-size:11px; font-weight:700; line-height:1.35; letter-spacing:.045em; text-transform:uppercase; background:#fff; }
.icm-service-tile .icm-external-visual { margin:0 !important; }
.icm-service-tile .icm-external-visual img { height:150px !important; }
.icm-service-tile .icm-external-visual figcaption { padding:8px 10px; font-size:9px; }
.icm-reference-gallery .vc_column-inner { padding-top:0 !important; }
.icm-reference-gallery .icm-external-visual img { height:220px !important; }
@media (max-width:767px) { .icm-external-visual img, .icm-reference-gallery .icm-external-visual img { height:200px !important; } .icm-service-tile .icm-external-visual img { height:190px !important; } .icm-asset-disclaimer { margin-bottom:20px !important; } }

/* ICM 2026: interactive realisations gallery */
.icm-gallery-filters { display:flex; flex-wrap:wrap; gap:10px; margin:24px 0 30px; }
.icm-gallery-filter { appearance:none; border:1px solid rgba(26,26,26,.2); border-radius:999px; background:#fff; color:var(--icm-ink); cursor:pointer; font:700 12px/1 Arial,Helvetica,sans-serif; letter-spacing:.035em; padding:11px 15px; transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease; }
.icm-gallery-filter:hover { border-color:var(--icm-green); color:var(--icm-green); transform:translateY(-1px); }
.icm-gallery-filter.is-active { background:var(--icm-green); border-color:var(--icm-green); color:#fff; }
.icm-gallery-filter:focus-visible { outline:3px solid rgba(245,130,32,.45); outline-offset:3px; }
.icm-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.icm-gallery-card { overflow:hidden; border:1px solid rgba(26,26,26,.12); background:#fff; box-shadow:0 12px 30px rgba(26,26,26,.08); transition:transform .28s cubic-bezier(.23,1,.32,1),box-shadow .28s cubic-bezier(.23,1,.32,1),opacity .2s ease; }
.icm-gallery-card__media { position:relative; overflow:hidden; height:230px; background:#e9ece9; }
.icm-gallery-card__media:after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.18)); opacity:0; transition:opacity .28s ease; }
.icm-gallery-card img { display:block; width:100% !important; height:100% !important; object-fit:cover; transition:transform .55s cubic-bezier(.23,1,.32,1),filter .28s ease; }
.icm-gallery-card:hover { transform:translateY(-7px); box-shadow:0 22px 42px rgba(26,26,26,.16); }
.icm-gallery-card:hover img { transform:scale(1.075); filter:saturate(1.07); }
.icm-gallery-card:hover .icm-gallery-card__media:after { opacity:1; }
.icm-gallery-card__body { padding:15px 16px 17px; }
.icm-gallery-card__tag { display:inline-flex; margin:0 0 9px; color:var(--icm-green); font:700 10px/1 Arial,Helvetica,sans-serif; letter-spacing:.07em; text-transform:uppercase; }
.icm-gallery-card h3 { margin:0 0 8px !important; color:var(--icm-ink); font-size:22px !important; line-height:1.05 !important; }
.icm-gallery-card p { margin:0; color:#626262; font-size:13px; line-height:1.45; }
.icm-gallery-card[hidden] { display:none !important; }
.icm-gallery-card.is-entering { animation:icmGalleryIn .32s cubic-bezier(.23,1,.32,1) both; }
@keyframes icmGalleryIn { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
.icm-gallery-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (max-width:900px) { .icm-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px) { .icm-gallery-filters { gap:8px; } .icm-gallery-filter { padding:10px 12px; font-size:11px; } .icm-gallery-grid { grid-template-columns:1fr; gap:16px; } .icm-gallery-card__media { height:240px; } }
@media (prefers-reduced-motion:reduce) { .icm-gallery-filter,.icm-gallery-card,.icm-gallery-card img,.icm-gallery-card__media:after { transition:none !important; } .icm-gallery-card.is-entering { animation:none !important; } }

/* Réalisations : préserver le soulèvement de carte au survol. */
.icm-gallery-card:hover { transform: translate3d(0, -7px, 0) !important; }