/* Langage éditorial commun, issu de la page Nos partenaires. */
:root main :is(.catalogue-hero,.product-detail-hero) { background:var(--pale); padding:28px 0 60px; border-bottom:4px solid var(--petroleum); }
:root main :is(.detail-hero,.catalogue-hero,.product-detail-hero) h1 { font-size:clamp(32px,4vw,48px); line-height:1.15; letter-spacing:-1.5px; max-width:900px; }
:root main :is(.catalogue-hero .intro,.product-detail-lead) { max-width:650px; font-size:18px; line-height:1.75; color:var(--muted); }
:root main :is(.catalogue-hero,.product-detail-hero) .eyebrow { color:var(--blue); }
:root .product-detail-layout { grid-template-columns:minmax(0,1fr) 285px; gap:70px; padding-top:65px; padding-bottom:75px; }
:root main :is(.product-content>section,.product-aside,.faq-group,.documentation-copy,.doc-notice,.gallery-grid figcaption,.home-page .needs-grid>a,.home-page .process-grid>article,.detail-tiles>a) {
 --ink:#f3f8f9; --blue:#f3f8f9; --muted:#d9e2e5;
 background:var(--petroleum); color:var(--ink); border:1px solid var(--petroleum); border-left:3px solid var(--lime); border-radius:8px; padding:24px; box-shadow:none;
}
:root main :is(.product-content>section,.product-aside,.faq-group,.documentation-copy,.doc-notice,.gallery-grid figcaption,.home-page .needs-grid>a,.home-page .process-grid>article,.detail-tiles>a) :is(h2,h3,.eyebrow,.category) { color:var(--lime); }
:root main :is(.product-content>section,.product-aside,.faq-group,.documentation-copy,.doc-notice,.gallery-grid figcaption,.home-page .needs-grid>a,.home-page .process-grid>article,.detail-tiles>a) :is(p,li,summary) { color:#edf4f5; }
:root main :is(.product-content>section,.faq-group) { margin-bottom:34px; }
:root main .product-content h2 { font-size:28px; letter-spacing:-.9px; margin:0 0 18px; }
:root main .product-content :is(p,li) { font-size:15px; line-height:1.85; }
:root main .product-aside { top:130px; }
:root main .product-aside h2 { font-size:23px; }
:root main :is(.product-content>section,.product-aside,.doc-notice) .btn { background:var(--lime); color:var(--petroleum); }
:root main .product-aside-phone { color:var(--lime); font-size:21px; }
:root .product-catalogue .product-card { border-radius:8px; border-left:3px solid var(--lime); box-shadow:none; }
:root .product-catalogue .product-card-copy { padding:24px; }
:root .product-catalogue .product-card-copy h3 { font-size:23px; }
:root .product-catalogue .product-card-copy p { font-size:15px; line-height:1.85; }
:root main .product-visual { border-radius:8px; }
:root main .faq-group>h2 { margin-top:0; font-size:28px; }
:root main .faq-group details { background:transparent; border-color:#ffffff35; }
:root main .gallery-grid figure { border-radius:8px; overflow:hidden; box-shadow:none; }
:root main .gallery-grid figcaption { border-top:0; border-radius:0; }
:root main .gallery-grid figcaption>span { color:var(--lime); }
:root .home-page .home-banner { min-height:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); background:var(--pale); padding:44px max(24px,calc((100vw - 1216px)/2)) 52px; gap:48px; border-bottom:4px solid var(--petroleum); }
:root .home-page .home-banner::before { display:none; }
:root .home-page .home-banner-photo { position:static; grid-column:2; grid-row:1; z-index:auto; width:100%; height:360px; object-fit:cover; border-radius:8px; }
:root .home-page .home-banner-inner { grid-column:1; grid-row:1; padding:0; min-width:0; align-self:center; }
:root .home-page .home-banner-copy { max-width:none; }
:root .home-page .home-banner h1 { color:var(--blue); font-size:clamp(32px,3.5vw,48px); line-height:1.15; letter-spacing:-1.5px; }
:root .home-page .home-banner h1 em { color:var(--blue); font-style:normal; }
:root .home-page .home-banner .eyebrow { color:var(--blue); }
:root .home-page .home-banner-copy>p:not(.eyebrow) { color:var(--muted); font-size:17px; line-height:1.85; }
:root .home-page .home-phone { background:var(--petroleum); color:var(--lime); border-radius:8px; padding:12px 18px; }
:root .home-page .solution-grid .solution { border-radius:8px; border-left:3px solid var(--lime); box-shadow:none; }
:root .home-page .trust-home>.text-panel { border-radius:8px; border-top:1px solid var(--petroleum); border-left:3px solid var(--lime); }
@media(max-width:900px) {
 :root .product-detail-layout { grid-template-columns:1fr; gap:28px; }
 :root main .product-aside { position:static; }
 :root .home-page .home-banner { grid-template-columns:1fr; padding:30px 24px; gap:28px; }
 :root .home-page .home-banner-inner { grid-column:1; grid-row:1; }
 :root .home-page .home-banner-photo { grid-column:1; grid-row:2; height:300px; }
}
@media(max-width:600px) {
 :root main :is(.catalogue-hero,.product-detail-hero) { padding:26px 0 36px; }
 :root .product-detail-layout { padding-top:30px; padding-bottom:40px; }
 :root main :is(.product-content>section,.product-aside,.faq-group,.documentation-copy,.doc-notice,.gallery-grid figcaption,.home-page .needs-grid>a,.detail-tiles>a) { padding:20px; }
 :root main .product-content h2,:root main .faq-group>h2 { font-size:24px; }
 :root .home-page .home-banner-photo { height:240px; }
}

/* Titre du catalogue : soulignement fin bleu pétrole. */
:root main .catalogue-hero h1 em { color:var(--blue); text-decoration:underline; text-decoration-color:var(--petroleum); text-decoration-thickness:3px; text-underline-offset:8px; text-decoration-skip-ink:auto; }
:root main .catalogue-hero h1 em::after { display:none; }
/* Contrat de confiance : même grille, mêmes retraits et typographie. */
:root main .trust-content { display:grid; grid-template-columns:minmax(0,1fr); gap:32px; padding-top:50px; padding-bottom:50px; }
:root main .trust-content>section { --ink:#f3f8f9; --blue:#f3f8f9; --muted:#d9e2e5; margin:0; padding:28px; background:var(--petroleum); color:var(--ink); border:1px solid var(--petroleum); border-left:3px solid var(--lime); border-radius:8px; box-shadow:none; }
:root main .trust-content .section-head { display:block; margin:0 0 18px; padding:0; }
:root main .trust-content :is(h2,h3) { font-size:26px; line-height:1.3; font-weight:700; letter-spacing:-.6px; color:var(--lime); margin:0 0 18px; text-align:left; }
:root main .trust-content h2::after { display:none; }
:root main .trust-content :is(p,li) { font-size:16px; line-height:1.8; color:#edf4f5; text-align:left; margin:0 0 18px; }
:root main .trust-content .eyebrow { font-size:12px; line-height:1.5; letter-spacing:1.5px; color:var(--lime); margin:0 0 16px; }
:root main .trust-content :is(.trust-labels,.trust-commitments) { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin:26px 0; align-items:stretch; }
:root main .trust-content :is(.trust-labels,.trust-commitments)>article { padding:24px 0 0; margin:0; border:0; border-top:1px solid #ffffff45; border-radius:0; background:transparent; box-shadow:none; }
:root main .trust-content :is(.trust-labels,.trust-commitments) h3 { min-height:2.6em; }
:root main .trust-content .trust-logo { height:96px; min-height:96px; box-sizing:border-box; margin:0 0 24px; }
:root main .trust-content .trust-logo img { width:220px; max-height:48px; }
:root main .trust-content .text-link { font-size:16px; line-height:1.8; color:white; }
:root main .trust-content .btn { background:var(--lime); color:var(--petroleum); }
:root main .trust-content p:last-child { margin-bottom:0; }
@media(max-width:650px) {
 :root main .trust-content { gap:24px; padding-top:30px; padding-bottom:36px; }
 :root main .trust-content>section { padding:20px; }
 :root main .trust-content :is(.trust-labels,.trust-commitments) { grid-template-columns:1fr; gap:24px; }
 :root main .trust-content :is(h2,h3) { font-size:24px; }
 :root main .trust-content :is(.trust-labels,.trust-commitments) h3 { min-height:0; }
}

/* Plus de cadres pétrole sur les contenus et repères du site. */
:root main :is(.text-panel,.platform-grid article,.steps article,.contact-information,.doc-card,.habitat-photos figcaption,.gallery-contact) {
 --ink:#f3f8f9; --blue:#f3f8f9; --muted:#d9e2e5;
 background:var(--petroleum); color:var(--ink); border:1px solid var(--petroleum); border-left:3px solid var(--lime); border-radius:8px; padding:24px; box-shadow:none;
}
:root main :is(.text-panel,.platform-grid article,.steps article,.contact-information,.doc-card,.habitat-photos figcaption,.gallery-contact) :is(h2,h3,.eyebrow,.category,.phone,.detail-phone) { color:var(--lime); }
:root main :is(.text-panel,.platform-grid article,.steps article,.contact-information,.doc-card,.habitat-photos figcaption,.gallery-contact) :is(p,li,figcaption) { color:#edf4f5; }
:root main :is(.text-panel,.platform-grid article,.steps article,.contact-information,.doc-card,.gallery-contact) a:not(.btn) { color:#fff; }
:root main :is(.text-panel,.platform-grid article,.steps article,.contact-information,.doc-card,.gallery-contact) .btn { background:var(--lime); color:var(--petroleum); }
:root main .trust-content :is(.trust-labels,.trust-commitments)>article { background:var(--petroleum); border:1px solid #ffffff50; border-left:3px solid var(--lime); border-radius:8px; padding:24px; }
:root main .trust-content :is(.trust-labels,.trust-commitments) h3 { min-height:2.6em; }
@media(max-width:650px) {
 :root main :is(.text-panel,.platform-grid article,.steps article,.contact-information,.doc-card,.habitat-photos figcaption,.gallery-contact),:root main .trust-content :is(.trust-labels,.trust-commitments)>article { padding:20px; }
 :root main .trust-content :is(.trust-labels,.trust-commitments) h3 { min-height:0; }
}

/* Logo de pied de page plus présent, avec limite sur petits écrans. */
:root .footer-main .footer-brand { width:300px; max-width:100%; }
:root .footer-main .footer-brand img { width:300px; max-width:100%; height:auto; }
@media(max-width:600px) { :root .footer-main .footer-brand,:root .footer-main .footer-brand img { width:250px; } }
