/* Concept & Plan - maquette Sam - styles de la surcouche ESSENTIEL. */
:root{--cp-ink:#464646;--cp-dark:#414141;--cp-red:#e20e17;--cp-bg:#f5f5f5;--cp-white:#fff}
html{scroll-behavior:smooth}
body{font-family:'Outfit',Arial,sans-serif!important;color:var(--cp-ink);background:#fff}
body :is(h1,h2,h3,h4,h5,h6){font-family:'Outfit','Poppins',Arial,sans-serif;line-height:1.12}
body a{text-decoration:none}
.cp-container{max-width:1530px;margin-inline:auto;padding-inline:30px}
.cp-section{padding:65px 0 75px}
.cp-section-title{font-size:clamp(27px,2.3vw,38px);line-height:1.16!important;font-weight:700;text-align:center;color:var(--cp-ink);max-width:1040px;margin:0 auto 26px}
.cp-section-intro{max-width:850px;text-align:center;margin:0 auto 24px;font-size:16px;line-height:1.55}
.cp-section-cta{text-align:center;margin:0 auto 38px}
.cp-section-cta a{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.055em;color:var(--cp-red);display:inline-flex;gap:12px;align-items:center;border-bottom:1px solid var(--cp-red);padding-bottom:9px}
.cp-section-cta a:hover,.cp-section-cta a:focus-visible{color:var(--cp-dark)}
.cp-catalogue-empty,.cp-realisation-empty{text-align:center;padding:45px 25px;border-top:1px solid #e8e8e8;color:#555}
.cp-topbar{background:var(--cp-dark);color:#fff;font-size:12px}
.cp-topbar__inner{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:36px}
.cp-topbar__profile,.cp-topbar__links a{color:#fff;font-size:12px}
.cp-topbar__profile span{display:inline-block;margin-left:9px;background:#5a5a5a;padding:4px 18px}
.cp-topbar__links{display:flex;gap:25px}
.cp-topbar a:hover{color:#fff;text-decoration:underline}
.cp-header{background:#fff;position:relative;z-index:20;border-bottom:1px solid #efefef}
.cp-header__inner{min-height:108px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.cp-brand{display:flex;align-items:center;gap:12px;color:#282828;font-weight:700;font-size:21px}
.cp-brand__icon{display:block;flex:none;width:58px;height:42px;border-radius:50%;border:4px solid #212121;background:var(--cp-red);box-shadow:0 0 0 6px #fff inset;position:relative}
.cp-brand__icon:after{content:'';height:3px;background:#333;position:absolute;width:62px;left:-7px;bottom:-12px;transform:rotate(-8deg)}
.cp-brand__image{max-width:230px;height:auto}
.cp-nav{display:flex;align-items:center;gap:35px}
.cp-nav a{display:block;color:#303030;text-transform:uppercase;font-size:12px;font-weight:700;letter-spacing:.065em;padding:15px 0}
.cp-nav a:hover,.cp-nav a:focus-visible{color:var(--cp-red)}
.cp-nav__cta{border-bottom:2px solid var(--cp-red)}
.cp-menu-toggle{display:none;border:0;background:transparent;padding:10px;cursor:pointer}
.cp-menu-toggle span{display:block;width:25px;height:2px;background:#282828;margin:5px 0}
.cp-hero{padding:0;background:#fff}
.cp-hero__media{position:relative;aspect-ratio:2.3/1;min-height:320px;max-height:620px;overflow:hidden;background:var(--cp-dark)}
.cp-hero__image{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.cp-hero__media--pending{background:linear-gradient(90deg,#454545,#686868 55%,#383838)}
.cp-hero__media--pending:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 90px,rgba(255,255,255,.035) 90px 91px)}
.cp-hero__overlay{position:absolute;z-index:1;inset:0;display:flex;align-items:flex-end;justify-content:center;padding:45px 5%;background:linear-gradient(0deg,rgba(0,0,0,.55),transparent 64%)}
.cp-hero__overlay h1{margin:0;text-align:center;max-width:950px;color:#fff;font-size:clamp(28px,3vw,51px);font-weight:700;line-height:1.1!important;text-wrap:balance;text-shadow:0 1px 5px rgba(0,0,0,.25)}
.cp-services{background:#fff;padding-top:60px;padding-bottom:35px}
.cp-services-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.cp-service{min-width:0}
.cp-service__image{height:235px;position:relative;background:#eaeaea;overflow:visible}
.cp-service__image img{height:100%;width:100%;object-fit:cover;display:block}
.cp-service__missing-image{display:block;width:100%;height:100%;background:linear-gradient(135deg,#eee,#dedede)}
.cp-service__label{position:absolute;top:-13px;left:8%;right:8%;background:#fff;border-top:3px solid var(--cp-red);margin:0;color:#333;font-size:15px;font-weight:700;text-transform:uppercase;text-align:center;padding:10px 7px;box-shadow:0 2px 0 rgba(0,0,0,.045)}
.cp-service__label span{color:var(--cp-red)}
.cp-service__description{font-size:14px;line-height:1.5;margin:17px 3px 0}
.cp-service__link:hover .cp-service__label,.cp-service__link:focus-visible .cp-service__label{color:var(--cp-red)}
.cp-quote{background:#fff;padding:15px 0 45px}
.cp-quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px}
.cp-quote-box{padding:22px 35px 20px;background:#fff;border-bottom:5px solid var(--cp-red);box-shadow:0 0 0 1px #ededed inset;min-height:100px}
.cp-quote-heading,.cp-quote-link{display:block;font-size:20px;font-weight:700;color:#333;margin-bottom:12px}
.cp-profile-select{border:1px solid #d0d0d0;border-radius:0;background:#fff;color:#333;font-size:15px;min-width:min(100%,330px);padding:9px 12px}
.cp-quote-box--cta{display:flex;align-items:center}
.cp-quote-link{margin:0;width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;text-transform:lowercase}
.cp-quote-arrow{background:var(--cp-red);color:#fff;font-size:22px;padding:7px 13px}
.cp-quote-link:hover,.cp-quote-link:focus-visible{color:var(--cp-red)}
.cp-about{background:var(--cp-bg);padding:70px 0 75px}
.cp-about .cp-section-intro{margin-bottom:50px}
.cp-about__visual{display:grid;grid-template-columns:minmax(0, 1.55fr) minmax(290px,.85fr);align-items:end;max-width:1320px;margin:35px auto 0}
.cp-about__photo{height:330px;position:relative;z-index:1}
.cp-about__photo img{width:100%;height:100%;object-fit:cover}
.cp-about__placeholder{height:100%;background:linear-gradient(125deg,#a3a3a3,#727272)}
.cp-facts{background:var(--cp-dark);color:#fff;padding:25px 35px 32px;min-height:275px;margin-left:-55px;margin-bottom:-35px}
.cp-facts__heading{font-size:15px;color:var(--cp-red);font-weight:600;text-align:left;margin:0 0 20px}
.cp-facts__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:21px;margin:0}
.cp-facts dt{font-size:34px;line-height:1;font-weight:700;color:#fff}
.cp-facts dd{text-transform:uppercase;font-size:11px;margin:5px 0 0;color:#fff}
.cp-products{background:#fff;padding:70px 0 78px}
.cp-products-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:27px;position:relative}
.cp-products-grid:before{content:'';height:3px;left:0;right:0;top:51%;position:absolute;background:var(--cp-red);z-index:0}
.cp-product-card{position:relative;z-index:1}
.cp-product-card__image{height:340px;position:relative;background:#ededed}
.cp-product-card__image img{height:100%;width:100%;object-fit:cover}
.cp-product-card__empty{height:100%;background:linear-gradient(135deg,#eee,#d6d6d6)}
.cp-product-card__title{position:absolute;top:-14px;left:12%;right:12%;background:#fff;border-top:3px solid var(--cp-red);padding:12px;text-align:center;text-transform:uppercase;font-size:16px;color:#333;line-height:1.3}
.cp-realisations{background:var(--cp-bg);padding:65px 0 70px}
.cp-realisations-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:175px;gap:18px}
.cp-realisations-item{position:relative;min-width:0}
.cp-realisations-item--main{grid-column:span 2;grid-row:span 2}
.cp-realisations-item__image,.cp-realisations-item__image img{width:100%;height:100%}
.cp-realisations-item__image img{object-fit:cover}
.cp-realisations-item__placeholder{height:100%;background:linear-gradient(135deg,#d6d6d6,#a1a1a1)}
.cp-realisations-item h3{position:absolute;bottom:0;left:0;right:0;background:rgba(65,65,65,.9);color:#fff;padding:15px 20px;font-size:17px;font-weight:600;margin:0}
.cp-realisations-item p{display:none}
.cp-contact{background:var(--cp-bg);padding:68px 0 0}
.cp-contact__heading{font-size:29px;font-weight:700;margin:0 0 35px}
.cp-contact__layout{display:grid;grid-template-columns:310px 1fr;gap:45px;align-items:stretch}
.cp-contact__card{background:#fff;padding:28px;border-bottom:5px solid var(--cp-red);box-shadow:0 0 0 1px #eee inset;position:relative;z-index:2;margin-bottom:-50px}
.cp-contact__card>div{padding-bottom:21px;margin-bottom:20px;border-bottom:1px solid #ddd}
.cp-contact__card>div:last-child{border:0;margin:0}
.cp-contact__card h3{font-size:17px;text-align:center;margin-bottom:14px;color:#414141}
.cp-contact__card a,.cp-contact__card p,.cp-contact__card address{display:block;color:#414141;text-align:center;font-size:14px;line-height:1.55;font-style:normal;margin:0;overflow-wrap:anywhere}

.cp-footer-bottom{background:var(--cp-dark);color:#fff;padding:95px 0 15px}
.cp-footer-bottom__grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:45px;align-items:start;padding-bottom:45px}
.cp-brand--footer{color:#fff;margin-top:15px}
.cp-brand--footer .cp-brand__icon{box-shadow:0 0 0 6px var(--cp-dark) inset}
.cp-footer-bottom h3{font-size:15px;color:#fff;text-transform:uppercase;font-weight:700}
.cp-footer-bottom__grid>div a{display:block;color:#fff;font-size:13px;padding-top:7px}
.cp-footer-credit{border-top:1px solid #656565;margin:0;padding:18px 0;text-align:center;font-size:12px;color:#ddd}
@media (max-width:1100px){
 .cp-nav{gap:18px}.cp-header__inner{min-height:86px}
 .cp-services-grid,.cp-products-grid{gap:15px}.cp-service__image{height:190px}
 .cp-quote-grid{gap:30px}.cp-about__photo{height:280px}
}
@media (max-width:767px){
 .cp-container{padding-inline:18px}
 .cp-section{padding:44px 0}.cp-section-title{font-size:27px;margin-bottom:24px}
 .cp-topbar__inner{min-height:32px}.cp-topbar__links{display:none}
 .cp-header__inner{min-height:73px}.cp-brand__name{font-size:17px}.cp-brand__icon{width:43px;height:32px}
 .cp-menu-toggle{display:block}
 .cp-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;padding:13px 22px 26px;box-shadow:0 8px 12px #0002;flex-direction:column;align-items:stretch;gap:4px}
 .cp-nav.is-open{display:flex}.cp-nav a{padding:12px 0}
 .cp-hero__media{aspect-ratio:auto;min-height:350px}
 .cp-hero__overlay{padding:32px 16px}.cp-hero__overlay h1{font-size:30px}
 .cp-services-grid,.cp-products-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:36px}
 .cp-service__image{height:185px}
 .cp-service__label,.cp-product-card__title{font-size:12px}
 .cp-service__description{font-size:13px}
 .cp-quote-grid{grid-template-columns:1fr;gap:18px}
 .cp-about__visual{display:flex;flex-direction:column}
 .cp-about__photo{width:100%;height:220px}
 .cp-facts{width:95%;align-self:flex-end;margin:-25px 0 0;padding:24px}
 .cp-products-grid:before{display:none}.cp-product-card__image{height:230px}
 .cp-realisations-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:150px;gap:10px}
 .cp-realisations-item--main{grid-column:span 2;grid-row:span 2}
 .cp-contact__layout{grid-template-columns:1fr;gap:0}
 .cp-contact__card{margin-bottom:-25px;max-width:390px;width:100%}
 .cp-contact__visual{height:185px}.cp-footer-bottom{padding-top:75px}
 .cp-footer-bottom__grid{grid-template-columns:1fr 1fr;gap:30px}
 .cp-footer-bottom__grid .cp-brand{grid-column:span 2}
}
@media (max-width:390px){.cp-services-grid,.cp-products-grid{grid-template-columns:1fr}.cp-service__image{height:230px}.cp-product-card__image{height:270px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Integration native des menus, select Personaes et widget AccessConfig d'Essentiel. */
.cp-topbar__profile{display:flex;align-items:center;gap:10px;min-width:0}
.cp-topbar__profile label{white-space:nowrap;color:#fff;font-weight:600}
.cp-personae-surheader{appearance:auto;background:#5a5a5a;border:1px solid #777;border-radius:0;color:#fff;padding:5px 13px;max-width:260px;min-width:155px;font-family:inherit;font-size:12px}
.cp-personae-surheader option{color:#222;background:#fff}
.cp-topbar__links{display:flex;align-items:center;gap:20px;min-width:0}
.cp-topbar__links>a{white-space:nowrap}
.cp-topbar__social{display:flex;align-items:center;gap:9px;border-left:1px solid #666;padding-left:15px}
.cp-topbar__social a{display:inline-flex;align-items:center;justify-content:center;min-width:20px;min-height:20px;color:#fff}
.cp-topbar__social svg{width:19px;height:19px;max-width:26px;max-height:26px;fill:currentColor}
.cp-topbar__social img{width:20px;height:20px;object-fit:contain}
.cp-social-text{font-size:11px}
.cp-topbar #accessconfig{display:flex;align-items:center}
.cp-topbar #accessconfig button{color:#fff;font:inherit;border:none;background:transparent;cursor:pointer;padding:5px 0}
.cp-topbar #accessconfig button:hover{text-decoration:underline}
.cp-topbar__links #accessconfig a{color:inherit}
.cp-nav__list{margin:0;padding:0;list-style:none;display:flex;align-items:center;gap:35px}
.cp-nav__list li{margin:0;padding:0;list-style:none;position:relative}
.cp-nav__list li:last-child>a{border-bottom:2px solid var(--cp-red)}
.cp-nav__list .sub-menu{display:none;list-style:none;margin:0;padding:8px 0;min-width:180px;background:#fff;position:absolute;left:0;top:100%;box-shadow:0 5px 15px #0002}
.cp-nav__list li:hover>.sub-menu,.cp-nav__list li:focus-within>.sub-menu{display:block}
.cp-nav__list .sub-menu a{padding:8px 16px}
.cp-footer-brand{display:flex;flex-wrap:wrap;align-items:center;gap:20px}
.cp-footer-secondary-logo{display:inline-block;max-width:95px;max-height:70px;width:auto;height:auto}
.cp-footer-menu a:hover{color:#fff;text-decoration:underline}
@media(max-width:1100px){
 .cp-nav__list{gap:18px}
 .cp-topbar__links{gap:12px}
}
@media(max-width:767px){
 .cp-topbar__links{display:flex}
 .cp-topbar__profile{flex:1;gap:5px}
 .cp-topbar__profile label{font-size:11px}
 .cp-personae-surheader{min-width:0;width:100%;max-width:170px}
 .cp-topbar__links>a,.cp-topbar__social{display:none}
 .cp-nav__list{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .cp-nav__list a{display:block}
 .cp-nav__list .sub-menu{position:static;display:block;box-shadow:none;padding:0 0 0 14px}
 .cp-nav__list li:last-child>a{display:inline-block}
}

.cp-mobile-extras{display:none}
@media(max-width:767px){.cp-mobile-extras{display:flex;flex-direction:column;gap:4px;border-top:1px solid #ddd;margin-top:12px;padding-top:10px}.cp-mobile-extras a{display:block;text-transform:none;font-weight:500;padding:6px 0}}
@media(min-width:768px){.cp-footer-bottom__grid{grid-template-columns:minmax(230px,2fr) repeat(3,minmax(110px,1fr))}}

/* QSN et chiffres cles : deux sections natives Essentiel consecutives. */
.cp-about__visual--without-facts{display:block;max-width:1320px;margin:36px auto 0}
.cp-about__visual--without-facts .cp-about__photo{width:73%;height:360px}
.cp-about__visual--no-stats .cp-about__photo{width:100%}
.cp-about:has(+ .cp-facts-section){padding-bottom:35px}
.cp-facts-section{background:var(--cp-bg);position:relative;margin-top:-260px;padding-bottom:75px;pointer-events:none}
.cp-facts-section .cp-facts{width:35%;min-width:320px;margin:0 0 0 auto;pointer-events:auto}
.cp-facts__grid p{font-size:12px;margin:7px 0 0;color:#e4e4e4}
@media(max-width:767px){.cp-about__visual--without-facts .cp-about__photo{width:100%;height:240px}.cp-facts-section{margin-top:-18px;padding-bottom:48px}.cp-facts-section .cp-facts{margin-left:auto;width:94%;min-width:0}}

/* Prestations : Owl Carousel natif du theme, sans seconde bibliotheque. */
.cp-services-grid.owl-carousel.owl-loaded { display: block; }
.cp-services-grid.owl-carousel:not(.owl-loaded) { display: grid; }
.cp-services-grid.owl-carousel .owl-stage-outer { padding-top: 18px; }
.cp-services-grid.owl-carousel .owl-stage { display: flex; }
.cp-services-grid.owl-carousel .owl-item { display: flex; align-items: stretch; }
.cp-services-grid.owl-carousel .owl-item .cp-service { width: 100%; height: 100%; }
.cp-services-grid.owl-carousel .owl-nav { display: flex; justify-content: flex-end; gap: 9px; margin-top: 23px; }
.cp-services-grid.owl-carousel .owl-nav button { width: 44px; height: 44px; padding: 0!important; border: 1px solid #d8d8d8!important; border-radius: 0!important; background: #fff!important; color: var(--cp-ink)!important; font-size: 24px!important; line-height: 1!important; transition: border-color .2s, color .2s; }
.cp-services-grid.owl-carousel .owl-nav button:hover,
.cp-services-grid.owl-carousel .owl-nav button:focus-visible { border-color: var(--cp-red)!important; color: var(--cp-red)!important; }
.cp-services-grid.owl-carousel .owl-nav button.disabled { opacity: .35; cursor: default; }
.cp-services-grid.owl-carousel .owl-nav button:focus-visible { outline: 2px solid var(--cp-red); outline-offset: 2px; }

/* Fiche Personae : resume + produits relies, dans la grille du catalogue. */
.cp-persona__head { background: var(--cp-bg); padding: 68px 0 62px; }
.cp-persona__eyebrow { color: var(--cp-red); font-weight: 700; text-transform: uppercase; letter-spacing: .09em; font-size: 12px; margin: 0 0 13px; }
.cp-persona__head h1 { color: var(--cp-ink); font-size: clamp(34px, 4vw, 60px); font-weight: 700; margin: 0; }
.cp-persona__lead { font-size: 18px; line-height: 1.55; max-width: 770px; margin: 22px 0 0; }
.cp-persona__body { padding-top: 48px; padding-bottom: 54px; }
.cp-persona__illustration { max-width: 1000px; margin: 0 auto 32px; }
.cp-persona__illustration img { max-width: 100%; height: auto; display: block; }
.cp-persona__content { max-width: 1000px; margin: 0 auto; }
.cp-persona__content:empty { display: none; }
.cp-persona__products { background: var(--cp-bg); }
.cp-persona__products .cp-section-title { margin-bottom: 43px; }
@media (max-width: 767px) {
  .cp-persona__head { padding: 43px 0; }
  .cp-persona__body { padding-top: 30px; padding-bottom: 34px; }
  .cp-persona__products .cp-section-title { margin-bottom: 32px; }
}

/* Identites et logos issus du repetiteur natif partenaires Essentiel. */
.cp-partners { background: var(--cp-white); padding-top: 65px; padding-bottom: 84px; }
.cp-partners__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 28px; align-items: center; margin-top: 40px; }
.cp-partners__logo { display: flex; justify-content: center; align-items: center; min-height: 110px; padding: 14px; }
.cp-partners__logo a { display: flex; align-items: center; justify-content: center; height: 100%; width: 100%; }
.cp-partners__img { display: block; object-fit: contain; width: 100%; height: 95px; max-width: 165px; }
@media(max-width: 1050px) { .cp-partners__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 20px; } }
@media(max-width: 570px) { .cp-partners__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } .cp-partners__logo { padding: 10px; min-height: 85px; } .cp-partners__img { height: 70px; } }

/* --- Ajustements maquette Sam / octobre 2026 --- */

/* Hero : image ACF native pleine largeur du conteneur de reference. */
.cp-hero .cp-container { max-width: 1530px; padding-inline: 0; }
.cp-hero__media { width: 100%; min-height: 0; max-height: none; aspect-ratio: 1535 / 694; overflow: hidden; }
.cp-hero__image { width: 100%; height: 100%; object-fit: cover; display: block; }
.cp-hero__overlay { padding-bottom: clamp(28px, 5.5vw, 86px); }

/* Zoom dans le cadre, jamais sur le texte ou les etiquettes hors du cadre. */
.cp-service__frame, .cp-product-card__frame,
.cp-news-item__media, .cp-realisations-item__image,
.cp-partners__logo, .cp-contact__visual { overflow: hidden; }
.cp-service__frame, .cp-product-card__frame { width: 100%; height: 100%; display: block; }
.cp-service__frame img, .cp-product-card__frame img,
.cp-news-item__media img, .cp-realisations-item__image img,
.cp-partners__logo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .45s ease; transform-origin: center; }
.cp-service__link:hover .cp-service__frame img,
.cp-service__link:focus-visible .cp-service__frame img,
.cp-product-card a:hover .cp-product-card__frame img,
.cp-product-card a:focus-visible .cp-product-card__frame img,
.cp-news-item a:hover .cp-news-item__media img,
.cp-news-item a:focus-visible .cp-news-item__media img,
.cp-realisations-item a:hover .cp-realisations-item__image img,
.cp-realisations-item a:focus-visible .cp-realisations-item__image img,
.cp-partners__logo a:hover img,
.cp-partners__logo a:focus-visible img { transform: scale(1.055); }
.cp-partners__logo img { object-fit: contain; }
.cp-service__label, .cp-product-card__title { z-index: 2; }
.cp-service__image, .cp-product-card__image { overflow: visible; }

/* Les liens d'images du contenu et les visuels WooCommerce restent cadres. */
.contenugutenberg a:has(> img), .woocommerce ul.products li.product a.woocommerce-LoopProduct-link,
.woocommerce div.product div.images a { overflow: hidden; }
.contenugutenberg a:has(> img) { display: inline-block; max-width: 100%; }
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: block; }
.contenugutenberg a:has(> img) img, .woocommerce ul.products li.product a img {
  transition: transform .45s ease; max-width: 100%;
}
.contenugutenberg a:has(> img):hover img,
.woocommerce ul.products li.product a:hover img { transform: scale(1.055); }

/* Contact : une seule image triptyque provenant des options Generales. */
.cp-contact__layout { grid-template-columns: 310px minmax(0, 1fr); gap: 12px; align-items: end; }
.cp-contact__visual { display: block; width: 100%; margin: 0; height: auto; aspect-ratio: 2738 / 882; min-width: 0; }
.cp-contact__triptych { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Actualites : grande mise en avant avec cartouche anthracite,
   puis trois actualites secondaires en colonnes. */
.cp-news { background: #fff; position: relative; padding: 70px 0 90px; }
.cp-news::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 52%; background: var(--cp-bg); z-index: 0; pointer-events: none; }
.cp-news > .cp-container { position: relative; z-index: 1; }
.cp-news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 48px 30px; max-width: 1220px; margin: 0 auto; }
.cp-news-item { min-width: 0; position: relative; }
.cp-news-item > a { display: block; color: var(--cp-ink); }
.cp-news-item__media { position: relative; width: 100%; aspect-ratio: 1.53 / 1; background: #ddd; }
.cp-news-item__media img { width: 100%; height: 100%; object-fit: cover; }
.cp-news-item__placeholder { background: #dadada; width: 100%; height: 100%; }
.cp-news-item__date {
  position: absolute; right: 0; top: 0; z-index: 2;
  width: 62px; height: 72px; padding: 9px 4px 7px;
  background: var(--cp-red); color: #fff; text-align: center;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-transform: uppercase; font-size: 11px; line-height: 1.08;
}
.cp-news-item__date strong { color: #fff; font-weight: 700; font-size: 33px; line-height: 1.02; }
.cp-news-item__date small { display: block; font-size: 11px; font-weight: 500; margin-top: 4px; color: #fff; }
.cp-news-item__content { padding: 20px 2px 5px; }
.cp-news-item__content h3 { color: inherit; font-size: 20px; font-weight: 700; line-height: 1.24; margin: 0 0 13px; }
.cp-news-item__content p { color: inherit; font-size: 14px; line-height: 1.5; margin: 0 0 21px; }
.cp-news-item__more { display: flex; align-items: center; justify-content: flex-end; gap: 13px; font-size: 12px; font-weight: 700; color: var(--cp-red); text-transform: uppercase; }
.cp-news-item__more::before { content: ""; height: 1px; flex: 1 1 auto; background: var(--cp-red); margin-right: 2px; }
.cp-news-item__more span { font-size: 17px; }
.cp-news-item--featured { grid-column: 1 / -1; width: 100%; margin: 0 auto 25px; }
.cp-news-item--featured > a { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(300px, .9fr); align-items: end; }
.cp-news-item--featured .cp-news-item__media { height: 365px; aspect-ratio: auto; }
.cp-news-item--featured .cp-news-item__content {
  background: var(--cp-dark); color: #fff; position: relative;
  margin: 75px 0 -32px -92px; padding: 34px 32px 28px;
  min-height: 270px; z-index: 2; display: flex; flex-direction: column;
}
.cp-news-item--featured .cp-news-item__content h3 { color: #fff; font-size: clamp(21px, 1.8vw, 28px); }
.cp-news-item--featured .cp-news-item__content p { color: #fff; }
.cp-news-item--featured .cp-news-item__more { margin-top: auto; }
.cp-news-item--featured .cp-news-item__date { right: 0; }

/* Realisations : compositions asymetriques, sans titres sur les photos. */
.cp-realisations { background: var(--cp-bg); padding: 70px 0 85px; }
.cp-realisations-grid {
  display: grid; grid-template-columns: repeat(4, minmax(0,1fr));
  grid-template-rows: repeat(3, 165px); gap: 14px;
  max-width: 1220px; margin: 40px auto 0; position: relative;
}
.cp-realisations__panel {
  grid-column: 2 / 5; grid-row: 1;
  background: var(--cp-dark); color: #fff;
  padding: 25px 24px 22px 39%; display: flex; flex-direction: column;
  justify-content: center; z-index: 1; min-width: 0;
}
.cp-realisations__panel h3 { font-size: 22px; font-weight: 700; line-height: 1.18; color: #fff; margin: 0 0 13px; }
.cp-realisations__panel p { font-size: 13px; line-height: 1.45; color: #fff; margin: 0; }
.cp-realisations-item { position: relative; min-width: 0; min-height: 0; overflow: hidden; }
.cp-realisations-item__image { height: 100%; width: 100%; }
.cp-realisations-item__image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cp-realisations-item--1 { grid-column: 1 / 3; grid-row: 1 / 3; margin-top: 42px; z-index: 2; }
.cp-realisations-item--2 { grid-column: 3; grid-row: 2; }
.cp-realisations-item--3 { grid-column: 4; grid-row: 2 / 4; }
.cp-realisations-item--4 { grid-column: 1; grid-row: 3; }
.cp-realisations-item--5 { grid-column: 2; grid-row: 3; }
.cp-realisations-item--6 { grid-column: 3; grid-row: 3; }
.cp-realisations-item h3 {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; margin: -1px; padding: 0; border: 0;
}
.cp-realisations-item a { display: block; width: 100%; height: 100%; }
.cp-realisations-item p { display: none; }

@media (max-width: 1050px) {
 .cp-realisations__panel { padding-left: 37%; }
 .cp-news-item--featured .cp-news-item__content { margin-left: -60px; }
}
@media (max-width: 850px) {
 .cp-realisations-grid { grid-template-columns: repeat(2, minmax(0,1fr)); grid-auto-rows: 155px; grid-template-rows: none; gap: 10px; }
 .cp-realisations__panel { grid-column: 1 / -1; grid-row: auto; padding: 20px 24px; }
 .cp-realisations-item { grid-column: auto !important; grid-row: auto !important; margin-top: 0; }
 .cp-realisations-item--1 { grid-column: 1 / -1 !important; grid-row: span 2 !important; }
 .cp-realisations-item--6 { grid-column: 1 / -1 !important; }
 .cp-news-item--featured > a { grid-template-columns: 1.5fr 1fr; }
 .cp-news-item--featured .cp-news-item__content { margin: 45px 0 -20px -40px; padding: 24px; }
 .cp-news-item--featured .cp-news-item__media { height: 320px; }
}
@media (max-width: 767px) {
 .cp-hero .cp-container { max-width: none; padding: 0; }
 .cp-hero__media { aspect-ratio: auto; height: min(60vh, 480px); min-height: 300px; }
 .cp-contact__layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
 .cp-contact__visual { aspect-ratio: 2738 / 882; width: 100%; height: auto; margin-top: 18px; }
 .cp-contact__card { margin-bottom: -20px; }
 .cp-news { padding: 48px 0 65px; }
 .cp-news-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px 18px; }
 .cp-news-item--featured { grid-column: 1 / -1; margin: 0 0 28px; }
 .cp-news-item--featured > a { display: block; }
 .cp-news-item--featured .cp-news-item__media { height: 270px; }
 .cp-news-item--featured .cp-news-item__content { margin: -20px 0 0 8%; min-height: 0; padding: 23px 22px; }
 .cp-news-item__media { aspect-ratio: 1.35 / 1; }
 .cp-news-item__content { padding: 14px 0; }
 .cp-news-item__content h3 { font-size: 16px; }
 .cp-news-item__content p { font-size: 13px; }
 .cp-news-item__date { width: 51px; height: 57px; padding: 5px 2px; }
 .cp-news-item__date strong { font-size: 26px; }
 .cp-realisations { padding: 50px 0 65px; }
 .cp-realisations-grid { margin-top: 28px; }
}
@media (max-width: 470px) {
 .cp-news-grid { grid-template-columns: 1fr; gap: 26px; }
 .cp-news-item--featured .cp-news-item__media { height: 240px; }
 .cp-realisations-grid { grid-auto-rows: 125px; }
}
@media (prefers-reduced-motion: reduce) {
 .cp-service__frame img, .cp-product-card__frame img,
 .cp-news-item__media img, .cp-realisations-item__image img,
 .cp-partners__logo img, .contenugutenberg a:has(> img) img,
 .woocommerce ul.products li.product a img { transition: none; transform: none !important; }
}
