/* GTP Site Manager 1.1.0
 * Interface lumineuse de plateforme éditoriale.
 * Fond blanc majoritaire, navy et cyan en accents.
 */
:root{
  --gtp-fixed-header-height:76px;
  --gtp-navy:#123724;
  --gtp-navy-soft:#1c4b36;
  --gtp-cyan:#f4a51c;
  --gtp-white:#fff;
  --gtp-surface:#f5f7fa;
  --gtp-border:#e4e9ef;
  --gtp-muted:#667085;
  --gtp-shadow:0 18px 50px rgba(7,22,47,.12);
}

/* 1.0.2 - The managed design wins over a legacy Elementor global kit. */
body.gtpb-managed-surface .gtp-hero,
body.gtpb-managed-surface .gtp-hero__content{color:#fff!important}
body.gtpb-managed-surface .gtp-hero h1,
body.gtpb-managed-surface .gtp-hero h1 span{color:#fff!important}
body.gtpb-managed-surface .gtp-hero__content>p:not(.gtp-eyebrow){color:rgba(255,255,255,.92)!important}
body.gtpb-managed-surface .gtp-hero .gtp-button--primary{
  background:var(--gtp-cyan)!important;color:var(--gtp-navy)!important;border-color:var(--gtp-cyan)!important;
}
body.gtpb-managed-surface .gtp-hero .gtp-button--secondary{
  background:rgba(255,255,255,.08)!important;color:#fff!important;border-color:rgba(255,255,255,.78)!important;
}
body.gtpb-managed-surface .gtp-hero .gtp-button--secondary:hover{
  background:#fff!important;color:var(--gtp-navy)!important;border-color:#fff!important;
}
html{scroll-padding-top:calc(var(--gtp-fixed-header-height) + 18px)}
body{padding-top:var(--gtp-fixed-header-height)!important;background:#fff!important;color:var(--gtp-navy)!important}
body.admin-bar{padding-top:calc(var(--gtp-fixed-header-height) + 32px)!important}

/* Header fixe, blanc et stable. */
.gtp-header{
  position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;
  z-index:99990!important;transform:none!important;translate:none!important;
  background:rgba(255,255,255,.97)!important;border-bottom:1px solid var(--gtp-border)!important;
  box-shadow:0 5px 22px rgba(7,22,47,.055)!important;
  backdrop-filter:blur(18px)!important;-webkit-backdrop-filter:blur(18px)!important;
}
body.admin-bar .gtp-header{top:32px!important}
.gtp-header__inner{height:var(--gtp-fixed-header-height)!important}
.gtp-header.is-scrolled{transform:none!important;translate:none!important}
.gtp-nav__list a,.gtp-language{color:var(--gtp-navy)!important}
.gtp-showreel{background:var(--gtp-cyan)!important;color:var(--gtp-navy)!important}

/* Suppression de toute bande sombre entre le header et le Hero. */
.home,.home body,.home .gtp-main{background:#fff!important}
.home .gtp-main{padding-top:18px!important;margin-top:0!important}
.home .gtp-main:before,.home .gtp-main:after{display:none!important;content:none!important}

/* Hero, seul grand moment sombre de la page. */
.home .gtp-hero{
  width:min(1500px,calc(100% - 40px))!important;
  min-height:clamp(560px,67vh,700px)!important;height:auto!important;
  margin:0 auto 22px!important;border-radius:28px!important;overflow:hidden!important;
  align-items:center!important;isolation:isolate!important;background:var(--gtp-navy)!important;
  box-shadow:var(--gtp-shadow)!important;
}
.home .gtp-hero__video{object-fit:cover!important;object-position:center center!important}
.home .gtp-hero__overlay{
  background:linear-gradient(90deg,rgba(2,9,22,.91) 0%,rgba(2,9,22,.68) 34%,rgba(2,9,22,.20) 69%,rgba(2,9,22,.05) 100%),linear-gradient(0deg,rgba(2,9,22,.36),transparent 55%)!important;
}
.home .gtp-hero__content{width:min(1400px,calc(100% - 72px))!important;padding:54px 0!important;margin:auto!important}
.home .gtp-hero__content>.gtp-eyebrow{margin-bottom:17px!important;color:var(--gtp-cyan)!important}
.home .gtp-hero h1{max-width:670px!important;margin:0 0 22px!important;font-family:Georgia,'Times New Roman',serif!important;font-size:clamp(3.6rem,5.5vw,6.65rem)!important;line-height:.9!important;letter-spacing:-.052em!important;text-wrap:balance!important}
.home .gtp-hero__content>p:not(.gtp-eyebrow){max-width:590px!important;font-size:clamp(1rem,1.15vw,1.18rem)!important;line-height:1.55!important}
.home .gtp-actions{margin-top:26px!important}

/* Toutes les rangées éditoriales deviennent lumineuses. */
.home .gtp-stream-section,
.home .gtp-explore,
.home .gtp-featured,
.home .gtp-formats,
.home .gtp-blog-preview{
  background:#fff!important;color:var(--gtp-navy)!important;padding:48px 0!important;
}
.home .gtp-featured,.home .gtp-blog-preview{background:var(--gtp-surface)!important}
.home .gtp-explore{padding-top:42px!important}
.home .gtp-section-head{margin-bottom:24px!important;align-items:flex-end!important}
.home .gtp-section-head h2{color:var(--gtp-navy)!important;font-size:clamp(2.1rem,3.25vw,3.8rem)!important;line-height:.98!important;letter-spacing:-.045em!important}
.home .gtp-section-head>a{color:var(--gtp-navy)!important}
.home .gtp-eyebrow{color:#c9780a!important}
.home .gtp-rail-controls button{color:var(--gtp-navy)!important;background:#fff!important;border:1px solid var(--gtp-border)!important;box-shadow:0 6px 18px rgba(7,22,47,.07)!important}
.home .gtp-rail-controls button:hover{background:var(--gtp-cyan)!important;border-color:var(--gtp-cyan)!important}

/* Affiches de navigation, seules surfaces sombres dans les rangées. */
.home .gtp-poster-rail .gtp-nav-poster{flex-basis:clamp(290px,25vw,390px)!important;aspect-ratio:1.45/1!important;border-radius:22px!important;border:1px solid rgba(7,22,47,.08)!important;box-shadow:0 12px 32px rgba(7,22,47,.11)!important}
.home .gtp-nav-poster:after{background:linear-gradient(0deg,rgba(2,8,18,.96) 0%,rgba(2,8,18,.66) 38%,rgba(2,8,18,.08) 78%)!important}
.home .gtp-nav-poster>div{left:20px!important;right:20px!important;bottom:18px!important}
.home .gtp-nav-poster h3{color:#fff!important;font-size:clamp(1.8rem,2.65vw,2.9rem)!important;text-shadow:0 3px 20px rgba(0,0,0,.42)!important}
.home .gtp-nav-poster small,.home .gtp-nav-poster p{color:rgba(255,255,255,.88)!important}
.home .gtp-nav-poster:hover{transform:translateY(-6px) scale(1.02)!important;box-shadow:0 22px 52px rgba(7,22,47,.18)!important}

/* Films, univers et formats sur fonds clairs. */
.home .gtp-film-card,.home .gtp-category-rail>a{border:1px solid rgba(7,22,47,.08)!important;box-shadow:0 12px 30px rgba(7,22,47,.10)!important}
.home .gtp-film-card:hover,.home .gtp-category-rail>a:hover{transform:translateY(-6px) scale(1.015)!important;box-shadow:0 22px 48px rgba(7,22,47,.17)!important}
.home .gtp-format-grid>*,.home .gtp-format-grid a{background:#fff!important;color:var(--gtp-navy)!important;border:1px solid var(--gtp-border)!important;box-shadow:0 10px 28px rgba(7,22,47,.07)!important}
.home .gtp-format-grid>*:hover,.home .gtp-format-grid a:hover{border-color:var(--gtp-cyan)!important;transform:translateY(-5px)!important}

/* Blog clair, cartes cinématographiques. */
.home .gtp-blog-preview .gtp-section-head h2,.home .gtp-blog-preview .gtp-section-head>a{color:var(--gtp-navy)!important}
.home .gtp-blog-rail>a{min-height:390px!important;border:1px solid rgba(7,22,47,.08)!important;box-shadow:0 12px 32px rgba(7,22,47,.11)!important}
.home .gtp-blog-rail a:after{background:linear-gradient(0deg,rgba(2,8,18,.97) 0%,rgba(2,8,18,.72) 43%,rgba(2,8,18,.05) 79%)!important}
.home .gtp-blog-rail h3{color:#fff!important;text-shadow:0 3px 18px rgba(0,0,0,.38)!important}
.home .gtp-blog-rail p{color:rgba(255,255,255,.87)!important}
.home .gtp-blog-rail small{color:var(--gtp-cyan)!important}

/* Sections de respiration. */
.home .gtp-photo-feature{background:var(--gtp-surface)!important;color:var(--gtp-navy)!important}
.home .gtp-client-strip{background:#fff!important;color:var(--gtp-navy)!important;border-top:1px solid var(--gtp-border)!important;border-bottom:1px solid var(--gtp-border)!important}
.home .gtp-final-cta{background:var(--gtp-navy)!important;color:#fff!important}
.home .gtp-final-cta h2,.home .gtp-final-cta p{color:#fff!important}

@media(max-width:1050px){
  :root{--gtp-fixed-header-height:68px}
  body.admin-bar{padding-top:calc(var(--gtp-fixed-header-height) + 32px)!important}
  .home .gtp-main{padding-top:14px!important}
  .home .gtp-hero{width:calc(100% - 28px)!important;min-height:610px!important;border-radius:24px!important}
  .home .gtp-hero__content{width:calc(100% - 52px)!important;padding:46px 0!important}
  .gtp-nav{top:var(--gtp-fixed-header-height)!important;max-height:calc(100vh - var(--gtp-fixed-header-height))!important;overflow:auto!important;background:#fff!important}
  body.admin-bar .gtp-nav{top:calc(var(--gtp-fixed-header-height) + 32px)!important}
}
@media(max-width:782px){body.admin-bar .gtp-header{top:46px!important}body.admin-bar{padding-top:calc(var(--gtp-fixed-header-height) + 46px)!important}body.admin-bar .gtp-nav{top:calc(var(--gtp-fixed-header-height) + 46px)!important}}
@media(max-width:680px){
  .home .gtp-main{padding-top:10px!important}
  .home .gtp-hero{width:calc(100% - 18px)!important;min-height:550px!important;border-radius:20px!important;margin-bottom:8px!important}
  .home .gtp-hero__overlay{background:linear-gradient(0deg,rgba(2,9,22,.94) 0%,rgba(2,9,22,.63) 58%,rgba(2,9,22,.16) 100%)!important}
  .home .gtp-hero__content{width:calc(100% - 34px)!important;padding:34px 0!important;align-self:flex-end!important}
  .home .gtp-hero h1{font-size:clamp(2.9rem,14.5vw,4.15rem)!important;max-width:100%!important}
  .home .gtp-actions{gap:10px!important}
  .home .gtp-button{min-height:45px!important;padding:0 17px!important;font-size:.7rem!important}
  .home .gtp-stream-section{padding:36px 0!important}
  .home .gtp-section-head h2{font-size:2rem!important}
  .home .gtp-poster-rail .gtp-nav-poster{flex-basis:84vw!important;aspect-ratio:1.35/1!important}
  .home .gtp-blog-rail>a{flex-basis:86vw!important;min-height:355px!important}
}

/* Brazil palette and dedicated brand sections */
.gtp-brand img{width:176px!important;max-height:64px!important}
.home .gtp-ccifb-home{background:#fff8ec!important}
.gtp-correio-feature{background:var(--gtp-navy)!important;color:#fff!important}
.gtp-correio-feature h2,.gtp-correio-feature p{color:#fff!important}
.gtp-correio-feature a{color:#ffc24a!important}
.gtp-whatsapp-btn{background:var(--gtp-navy)!important;border-color:var(--gtp-navy)!important;color:#fff!important}
@media(max-width:680px){.gtp-brand img{width:142px!important}}

/* 1.1.1 - Déclinaison lumineuse sur toutes les pages gérées. */
body:not(.home){background:#fff!important;color:var(--gtp-navy)!important}
body:not(.home) .gtp-main,
body:not(.home) main{background:#fff!important}
body:not(.home) .gtp-page{background:#fff!important;color:var(--gtp-navy)!important}
body:not(.home) .gtp-page-hero{
  background:linear-gradient(135deg,#f7f9fc 0%,#fff 55%,#fff6e6 100%)!important;
  color:var(--gtp-navy)!important;border-bottom:1px solid var(--gtp-border)!important;
  padding-top:clamp(72px,9vw,126px)!important;padding-bottom:clamp(58px,7vw,104px)!important;
}
body:not(.home) .gtp-page-hero h1,
body:not(.home) .gtp-page-hero h2,
body:not(.home) .gtp-intro h1,
body:not(.home) .gtp-intro h2{color:var(--gtp-navy)!important;letter-spacing:-.045em!important}
body:not(.home) .gtp-page-hero p,
body:not(.home) .gtp-intro p{color:#4f6078!important}
body:not(.home) .gtp-eyebrow,
body:not(.home) .gtp-kicker{color:#c9780a!important}
body:not(.home) .gtp-section{background:#fff!important;color:var(--gtp-navy)!important;padding:clamp(58px,7vw,98px) 0!important}
body:not(.home) .gtp-section--soft{background:var(--gtp-surface)!important}
body:not(.home) .gtp-section h2,
body:not(.home) .gtp-section h3,
body:not(.home) .gtp-prose h2,
body:not(.home) .gtp-prose h3{color:var(--gtp-navy)!important}
body:not(.home) .gtp-prose,
body:not(.home) .gtp-prose p,
body:not(.home) .gtp-section p,
body:not(.home) .gtp-list{color:#52627a!important}
body:not(.home) .gtp-feature,
body:not(.home) .gtp-stream-card,
body:not(.home) .gtp-poster,
body:not(.home) .gtp-legal-card,
body:not(.home) .gtp-legal-entity,
body:not(.home) .gtp-office,
body:not(.home) .gtp-contact-details,
body:not(.home) .gtp-form{
  background:#fff!important;color:var(--gtp-navy)!important;border:1px solid var(--gtp-border)!important;
  border-radius:22px!important;box-shadow:0 14px 38px rgba(7,22,47,.075)!important;
}
body:not(.home) .gtp-feature:hover,
body:not(.home) .gtp-stream-card:hover,
body:not(.home) .gtp-poster:hover{transform:translateY(-5px)!important;box-shadow:0 22px 48px rgba(7,22,47,.13)!important}
body:not(.home) .gtp-page-image{border-radius:24px!important;box-shadow:var(--gtp-shadow)!important}
body:not(.home) .gtp-btn,
body:not(.home) .gtp-button--primary{background:var(--gtp-cyan)!important;color:var(--gtp-navy)!important;border-color:var(--gtp-cyan)!important}
body:not(.home) .gtp-button--secondary{background:#fff!important;color:var(--gtp-navy)!important;border-color:#b9c4d2!important}
body:not(.home) .gtp-cta,
body:not(.home) .gtp-cta__box{background:var(--gtp-navy)!important;color:#fff!important}
body:not(.home) .gtp-cta h2,
body:not(.home) .gtp-cta h3,
body:not(.home) .gtp-cta p,
body:not(.home) .gtp-cta__box h2,
body:not(.home) .gtp-cta__box p{color:#fff!important}
body:not(.home) .gtp-library-hero{background:linear-gradient(135deg,#f7f9fc,#fff6e6)!important;color:var(--gtp-navy)!important}
body:not(.home) .gtp-library-filters button,
body:not(.home) .gtp-library-filters a{background:#fff!important;color:var(--gtp-navy)!important;border:1px solid var(--gtp-border)!important}
body:not(.home) .gtp-library-filters .is-active{background:var(--gtp-cyan)!important;border-color:var(--gtp-cyan)!important}

/* Bande clients enrichie, claire et respirante. */
.gtp-client-strip{padding:42px 0!important}
.gtp-client-strip .gtp-shell>span{display:block!important;margin-bottom:18px!important;color:#c9780a!important;font-weight:800!important;letter-spacing:.12em!important;font-size:.72rem!important}
.gtp-client-strip .gtp-client-list,
.gtp-client-strip .gtp-shell>div{
  display:flex!important;flex-wrap:wrap!important;gap:10px 12px!important;align-items:center!important;
}
.gtp-client-strip .gtp-client-list b,
.gtp-client-strip .gtp-shell>div b{
  display:inline-flex!important;align-items:center!important;min-height:42px!important;padding:0 16px!important;
  background:#fff!important;color:var(--gtp-navy)!important;border:1px solid var(--gtp-border)!important;
  border-radius:999px!important;font-size:.77rem!important;letter-spacing:.025em!important;box-shadow:0 6px 16px rgba(7,22,47,.045)!important;
}
.gtp-client-strip .gtp-client-list b:hover,
.gtp-client-strip .gtp-shell>div b:hover{border-color:var(--gtp-cyan)!important;background:#fff8ec!important}

/* Footer conservé comme point final navy. */
.gtp-footer{background:var(--gtp-navy)!important;color:#fff!important}
.gtp-footer a,.gtp-footer p,.gtp-footer li,.gtp-footer h2,.gtp-footer h3{color:#fff!important}

@media(max-width:680px){
  body:not(.home) .gtp-page-hero{padding-top:58px!important;padding-bottom:52px!important}
  body:not(.home) .gtp-section{padding:48px 0!important}
  .gtp-client-strip .gtp-client-list b,.gtp-client-strip .gtp-shell>div b{min-height:38px!important;padding:0 12px!important;font-size:.68rem!important}
}

/* ========================================================================
 * 1.2.1 SAFE CINEMATIC HEROES
 * CSS-only progressive enhancement. No DOM mutation, no content rewrite,
 * no deployment hook and no change to the signed 1.0.0 release bundle.
 * ===================================================================== */

/* A page with an image immediately after its hero becomes a cinematic card.
 * Browsers without :has() keep the stable light 1.1.1 hero as fallback. */
@supports selector(.gtp-page-hero:has(+ .gtp-page-image)) {
  body:not(.home) .gtp-main,
  body:not(.home) main {
    padding-top: 18px !important;
  }

  body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) {
    position: relative !important;
    z-index: 2 !important;
    display: flex !important;
    align-items: flex-end !important;
    width: min(1440px, calc(100% - 48px)) !important;
    min-height: clamp(460px, 57vw, 610px) !important;
    margin: 0 auto calc(clamp(460px, 57vw, 610px) * -1) !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 30px !important;
    background: transparent !important;
    color: #fff !important;
    pointer-events: none !important;
  }

  body:not(.home) .gtp-page-hero:has(+ .gtp-page-image)::before {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: -1 !important;
    border-radius: inherit !important;
    background:
      linear-gradient(90deg, rgba(2, 9, 22, .92) 0%, rgba(2, 9, 22, .72) 42%, rgba(2, 9, 22, .20) 77%, rgba(2, 9, 22, .08) 100%),
      linear-gradient(0deg, rgba(2, 9, 22, .55) 0%, rgba(2, 9, 22, 0) 58%) !important;
  }

  body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) .gtp-container {
    width: min(1240px, calc(100% - 72px)) !important;
    margin: 0 auto !important;
    padding: clamp(48px, 7vw, 84px) 0 !important;
    pointer-events: auto !important;
  }

  body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) .gtp-page-hero__grid {
    grid-template-columns: minmax(0, 1.35fr) minmax(260px, .75fr) !important;
    gap: clamp(28px, 5vw, 72px) !important;
    align-items: end !important;
  }

  body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) h1,
  body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) h2 {
    max-width: 920px !important;
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(3rem, 5.7vw, 6.35rem) !important;
    line-height: .91 !important;
    letter-spacing: -.058em !important;
    text-wrap: balance !important;
    text-shadow: 0 5px 28px rgba(0, 0, 0, .26) !important;
  }

  body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) .gtp-kicker,
  body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) .gtp-eyebrow {
    margin-bottom: 15px !important;
    color: var(--gtp-cyan) !important;
    font-size: .74rem !important;
    font-weight: 850 !important;
    letter-spacing: .16em !important;
    text-transform: uppercase !important;
  }

  body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) .gtp-page-hero__lead,
  body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) p:not(.gtp-kicker):not(.gtp-eyebrow) {
    max-width: 520px !important;
    margin: 0 !important;
    color: rgba(255, 255, 255, .86) !important;
    font-size: clamp(1rem, 1.35vw, 1.18rem) !important;
    line-height: 1.58 !important;
    text-shadow: 0 2px 14px rgba(0, 0, 0, .28) !important;
  }

  body:not(.home) .gtp-page-hero + .gtp-page-image {
    position: relative !important;
    z-index: 1 !important;
    display: block !important;
    width: min(1440px, calc(100% - 48px)) !important;
    height: clamp(460px, 57vw, 610px) !important;
    margin: 0 auto 0 !important;
    overflow: hidden !important;
    border-radius: 30px !important;
    box-shadow: 0 24px 70px rgba(7, 22, 47, .19) !important;
    background: var(--gtp-navy) !important;
  }

  body:not(.home) .gtp-page-hero + .gtp-page-image img {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: inherit !important;
    transform: scale(1.002) !important;
  }

  body:not(.home) .gtp-page-hero + .gtp-page-image--team img {
    object-position: center 34% !important;
  }

  /* White breathing space before the first editorial section. */
  body:not(.home) .gtp-page-image + .gtp-section {
    padding-top: clamp(72px, 8vw, 118px) !important;
  }

  @media (max-width: 980px) {
    body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) {
      width: calc(100% - 28px) !important;
      min-height: 570px !important;
      margin-bottom: -570px !important;
      border-radius: 24px !important;
    }
    body:not(.home) .gtp-page-hero + .gtp-page-image {
      width: calc(100% - 28px) !important;
      height: 570px !important;
      border-radius: 24px !important;
    }
    body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) .gtp-container {
      width: calc(100% - 52px) !important;
      padding: 44px 0 !important;
    }
    body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) .gtp-page-hero__grid {
      grid-template-columns: 1fr !important;
      gap: 20px !important;
    }
    body:not(.home) .gtp-page-hero:has(+ .gtp-page-image)::before {
      background: linear-gradient(0deg, rgba(2, 9, 22, .94) 0%, rgba(2, 9, 22, .67) 61%, rgba(2, 9, 22, .14) 100%) !important;
    }
  }

  @media (max-width: 680px) {
    body:not(.home) .gtp-main,
    body:not(.home) main { padding-top: 10px !important; }
    body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) {
      width: calc(100% - 18px) !important;
      min-height: 520px !important;
      margin-bottom: -520px !important;
      border-radius: 20px !important;
    }
    body:not(.home) .gtp-page-hero + .gtp-page-image {
      width: calc(100% - 18px) !important;
      height: 520px !important;
      border-radius: 20px !important;
    }
    body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) .gtp-container {
      width: calc(100% - 34px) !important;
      padding: 32px 0 !important;
    }
    body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) h1,
    body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) h2 {
      font-size: clamp(2.65rem, 13.7vw, 4.05rem) !important;
    }
    body:not(.home) .gtp-page-hero:has(+ .gtp-page-image) .gtp-page-hero__lead {
      font-size: .98rem !important;
      line-height: 1.5 !important;
    }
  }
}

/* Legal and fallback pages intentionally keep the safe, light hero. */
body:not(.home) .gtp-page-hero:not(:has(+ .gtp-page-image)) {
  border-radius: 0 !important;
}

/* ========================================================================
 * 1.2.4 HOMEPAGE POLISH AND PAGE HERO CROPPING
 * ===================================================================== */

/* Explorer: preserve the whole title, keep the entire card clickable and
 * expose a clear keyboard focus state. */
.home .gtp-nav-poster{
  position:relative!important;
  cursor:pointer!important;
  touch-action:pan-y!important;
}
.home .gtp-nav-poster h3{
  max-width:100%!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none!important;
}
.home .gtp-nav-poster[href*="#international"] h3,
.home .gtp-nav-poster img[alt="International"] + div h3{
  font-size:clamp(1.48rem,2vw,2.22rem)!important;
  letter-spacing:-.025em!important;
  white-space:nowrap!important;
}
.home .gtp-nav-poster:focus-visible,
.home .gtp-film-card:focus-visible,
.home .gtp-category-rail>a:focus-visible,
.home .gtp-blog-rail>a:focus-visible{
  outline:4px solid var(--gtp-cyan)!important;
  outline-offset:4px!important;
}

/* Featured rail: force high contrast over every thumbnail, independently of
 * inherited light-theme typography. */
.home .gtp-film-card:after{
  background:linear-gradient(0deg,rgba(2,8,18,.97) 0%,rgba(2,8,18,.78) 39%,rgba(2,8,18,.13) 78%)!important;
}
.home .gtp-film-card small{
  color:#8ce7f5!important;
  text-shadow:0 2px 12px rgba(0,0,0,.72)!important;
}
.home .gtp-film-card h3{
  color:#fff!important;
  text-shadow:0 3px 18px rgba(0,0,0,.70)!important;
}
.home .gtp-film-card p{
  color:rgba(255,255,255,.88)!important;
  text-shadow:0 2px 12px rgba(0,0,0,.65)!important;
}
.home .gtp-play{
  color:#fff!important;
  background:rgba(2,8,18,.64)!important;
  border-color:rgba(255,255,255,.82)!important;
}

/* Sectors hero: retain the important upper area of the industrial image. */
body:not(.home) .gtp-page-hero + .gtp-page-image img[src*="usine-production-film-corporate"]{
  object-position:center 18%!important;
}

/* Prevent long editorial labels from escaping compact cards on tablets. */
@media(max-width:1050px){
  .home .gtp-nav-poster[href*="#international"] h3,
  .home .gtp-nav-poster img[alt="International"] + div h3{
    font-size:clamp(1.42rem,3.4vw,2.05rem)!important;
  }
}
@media(max-width:680px){
  .home .gtp-nav-poster[href*="#international"] h3,
  .home .gtp-nav-poster img[alt="International"] + div h3{
    font-size:clamp(1.62rem,7.3vw,2.15rem)!important;
  }
}

/* 1.2.5 Contact polish */
.gtp-contact-hp{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}


/* GTP 1.2.8: isolated layout repair for Engagements RSE page (ID 325). */
body.page-id-325 .entry-content,
body.page-id-325 main,
body.page-id-325 .site-main {
    overflow: visible;
}
body.page-id-325 .gtp-page-hero,
body.page-id-325 .gtp-hero,
body.page-id-325 .wp-block-cover:first-child {
    margin-top: 0;
}
body.page-id-325 .entry-content > section,
body.page-id-325 .entry-content > div {
    box-sizing: border-box;
    max-width: 100%;
}
body.page-id-325 .gtp-grid,
body.page-id-325 .wp-block-columns {
    align-items: stretch;
}
@media (max-width: 781px) {
    body.page-id-325 .wp-block-columns {
        display: block;
    }
    body.page-id-325 .wp-block-column {
        width: 100%;
        margin-left: 0;
    }
}

/* 1.0.4: persistent PT / EN / FR selector in the managed header. */
.gtp-global-language{
    display:flex;
    align-items:center;
    gap:4px;
    flex:0 0 auto;
}
.gtp-global-language a{
    display:grid;
    place-items:center;
    min-width:34px;
    height:34px;
    padding:0 8px;
    border:1px solid rgba(18,55,36,.22);
    border-radius:999px;
    color:#123724;
    background:#fff;
    font-size:.68rem;
    font-weight:900;
    line-height:1;
    letter-spacing:.06em;
    transition:background .2s,border-color .2s,color .2s;
}
.gtp-global-language a:hover,
.gtp-global-language a:focus-visible,
.gtp-global-language a.is-active{
    color:#fff;
    background:#123724;
    border-color:#123724;
}
.gtp-global-language a:focus-visible{
    outline:3px solid #f4a51c;
    outline-offset:2px;
}
.gtp-global-language--mobile,
.gtp-global-language--nav{
    display:none;
}
.gtp-global-language--desktop{
    margin-left:8px;
}
.gtp-global-language--desktop a{
    min-width:31px;
    height:31px;
    padding:0 6px;
    font-size:.62rem;
}
@media(min-width:1051px) and (max-width:1280px){
    .gtp-nav{gap:12px}
    .gtp-nav__list{gap:14px}
    .gtp-showreel{padding-right:14px;padding-left:14px}
}
@media(max-width:1050px){
    .gtp-global-language--desktop{
        display:none;
    }
    .gtp-global-language--mobile{
        display:flex;
        margin-left:auto;
        margin-right:13px;
    }
    .gtp-header__inner .gtp-menu-toggle{
        flex:0 0 auto;
        margin:0;
    }
    .gtp-nav{
        max-height:calc(100svh - 68px);
        overflow-y:auto;
    }
}
@media(max-width:420px){
    .gtp-global-language--mobile{
        gap:3px;
        margin-right:9px;
    }
    .gtp-global-language--mobile a{
        min-width:31px;
        height:31px;
        padding:0 6px;
        font-size:.64rem;
    }
}

/* 1.0.6: richer editorial pages. */
.gtpb-editorial-expansion{
    color:#123724;
}
.gtpb-rich-section{
    padding:clamp(72px,8vw,118px) 0;
    background:#fff;
}
.gtpb-rich-section + .gtpb-rich-section{
    border-top:1px solid #e4e9e6;
}
.gtpb-rich-section--dark{
    color:#fff;
    background:#0c3625;
    border-top:0 !important;
}
.gtpb-rich-heading{
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(300px,.7fr);
    column-gap:clamp(42px,8vw,120px);
    align-items:end;
    margin-bottom:42px;
}
.gtpb-rich-heading .gtp-kicker{
    grid-column:1/-1;
    margin-bottom:18px;
}
.gtpb-rich-heading h2,
.gtpb-delivery-grid h2{
    margin:0;
    color:inherit;
    font-size:clamp(2.3rem,4.2vw,4.8rem);
    line-height:.96;
    letter-spacing:-.055em;
}
.gtpb-rich-heading p,
.gtpb-delivery-grid p{
    margin:0;
    color:#637168;
    font-size:clamp(1rem,1.3vw,1.18rem);
    line-height:1.7;
}
.gtpb-rich-section--dark .gtpb-rich-heading p,
.gtpb-rich-section--dark .gtpb-rich-card p{
    color:rgba(255,255,255,.7);
}
.gtpb-service-matrix{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}
.gtpb-rich-card{
    display:flex;
    min-height:285px;
    flex-direction:column;
    padding:30px;
    color:#123724;
    background:#f6f8f7;
    border:1px solid #e2e8e4;
    border-radius:22px;
    transition:transform .25s ease,box-shadow .25s ease,background .25s ease;
}
.gtpb-rich-card:hover{
    color:#123724;
    background:#fff;
    transform:translateY(-5px);
    box-shadow:0 24px 52px rgba(12,54,37,.12);
}
.gtpb-rich-card>span,
.gtpb-timeline article>span,
.gtpb-principles article>span{
    display:inline-flex;
    width:max-content;
    margin-bottom:42px;
    color:#bf7213;
    font-size:.72rem;
    font-weight:900;
    letter-spacing:.14em;
}
.gtpb-rich-card h3,
.gtpb-two-way h3,
.gtpb-operations-grid h3,
.gtpb-timeline h3,
.gtpb-principles h3{
    margin:0 0 10px;
    color:inherit;
    font-size:1.32rem;
    line-height:1.15;
}
.gtpb-rich-card p{
    margin:0 0 24px;
    color:#66736b;
    line-height:1.6;
}
.gtpb-rich-card b{
    margin-top:auto;
    font-size:.78rem;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.gtpb-process{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0;
    margin:0;
    padding:0;
    list-style:none;
    border-top:1px solid rgba(255,255,255,.2);
}
.gtpb-process li{
    display:block;
    min-height:260px;
    padding:26px 26px 16px 0;
    border-right:1px solid rgba(255,255,255,.2);
}
.gtpb-process li+li{padding-left:26px}
.gtpb-process li:last-child{border-right:0}
.gtpb-process li>span{
    display:block;
    margin-bottom:74px;
    color:#f4a51c;
    font-weight:900;
}
.gtpb-process h3{margin:0 0 10px;color:#fff;font-size:1.45rem}
.gtpb-process p{margin:0;color:rgba(255,255,255,.68);line-height:1.6}
.gtpb-delivery-grid{
    display:grid;
    grid-template-columns:minmax(0,1.1fr) minmax(320px,.72fr);
    gap:clamp(50px,10vw,150px);
    align-items:start;
}
.gtpb-delivery-grid .gtp-kicker{display:block;margin-bottom:18px}
.gtpb-delivery-grid p{margin-top:25px}
.gtpb-delivery-grid ul{
    margin:35px 0 0;
    padding:0;
    list-style:none;
    border-top:1px solid #dfe5e1;
}
.gtpb-delivery-grid li{
    position:relative;
    padding:16px 0 16px 28px;
    border-bottom:1px solid #dfe5e1;
    font-weight:700;
}
.gtpb-delivery-grid li:before{
    position:absolute;
    left:2px;
    content:'✓';
    color:#bf7213;
}
.gtpb-stat-strip{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    margin-top:70px;
    border:1px solid #dfe5e1;
    border-radius:20px;
    overflow:hidden;
}
.gtpb-stat-strip>div{
    min-height:122px;
    padding:25px;
    border-right:1px solid #dfe5e1;
}
.gtpb-stat-strip>div:last-child{border-right:0}
.gtpb-stat-strip strong,.gtpb-stat-strip span{display:block}
.gtpb-stat-strip strong{font-size:1.08rem}
.gtpb-stat-strip span{margin-top:7px;color:#6b776f;font-size:.84rem}
.gtpb-two-way{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}
.gtpb-two-way article{
    padding:clamp(30px,4vw,55px);
    color:#fff;
    background:#123724;
    border-radius:26px;
}
.gtpb-two-way article:nth-child(2){background:#bd7013}
.gtpb-two-way article>span{
    display:block;
    margin-bottom:60px;
    color:#ffd067;
    font-size:.75rem;
    font-weight:900;
    letter-spacing:.14em;
}
.gtpb-two-way h3{font-size:clamp(1.8rem,3vw,3rem)}
.gtpb-two-way p{color:rgba(255,255,255,.76);line-height:1.7}
.gtpb-two-way ul{margin:28px 0 0;padding:20px 0 0;list-style:none;border-top:1px solid rgba(255,255,255,.25)}
.gtpb-two-way li{padding:7px 0;font-weight:700}
.gtpb-two-way li:before{content:'→';margin-right:10px;color:#ffd067}
.gtpb-operations-grid,
.gtpb-principles,
.gtpb-timeline{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    border-top:1px solid rgba(255,255,255,.2);
}
.gtpb-operations-grid article,
.gtpb-principles article{
    min-height:245px;
    padding:28px 25px 20px;
    border-right:1px solid rgba(255,255,255,.2);
}
.gtpb-operations-grid article:last-child,
.gtpb-principles article:last-child{border-right:0}
.gtpb-operations-grid strong,
.gtpb-principles article>span{display:block;margin-bottom:70px;color:#f4a51c;font-size:.75rem;letter-spacing:.14em}
.gtpb-operations-grid p,
.gtpb-principles p{margin:0;color:rgba(255,255,255,.68);line-height:1.6}
.gtpb-timeline{
    grid-template-columns:repeat(3,minmax(0,1fr));
    border-color:#dfe5e1;
}
.gtpb-timeline article{
    min-height:280px;
    padding:28px 30px 20px 0;
    border-right:1px solid #dfe5e1;
}
.gtpb-timeline article+article{padding-left:30px}
.gtpb-timeline article:last-child{border-right:0}
.gtpb-timeline article>span{margin-bottom:72px}
.gtpb-timeline p{margin:0;color:#66736b;line-height:1.65}

/* 1.0.6: dedicated Blog template. */
.gtpb-blog-hero{
    padding:46px 0 86px;
    color:#fff;
    background:#f5f7f6;
}
.gtpb-blog-hero__inner{
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);
    min-height:610px;
    padding:clamp(36px,5.5vw,82px);
    gap:clamp(35px,6vw,88px);
    align-items:center;
    background:#0b3423;
    border-radius:32px;
    overflow:hidden;
    box-shadow:0 34px 75px rgba(10,49,33,.16);
}
.gtpb-blog-hero__copy .gtp-kicker{color:#f4a51c}
.gtpb-blog-hero__copy h1{
    max-width:800px;
    margin:20px 0 25px;
    color:#fff;
    font-family:inherit;
    font-size:clamp(3.3rem,5.4vw,6.6rem);
    font-style:normal;
    font-weight:800;
    line-height:.89;
    letter-spacing:-.065em;
}
.gtpb-blog-hero__copy p{
    max-width:610px;
    margin:0;
    color:rgba(255,255,255,.76);
    font-size:clamp(1rem,1.3vw,1.18rem);
    line-height:1.7;
}
.gtpb-blog-topics{display:flex;flex-wrap:wrap;gap:8px;margin-top:36px}
.gtpb-blog-topics span{
    padding:9px 14px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:999px;
    color:#fff;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.gtpb-blog-hero__media{
    position:relative;
    height:100%;
    min-height:440px;
    margin:0;
    border-radius:23px;
    overflow:hidden;
}
.gtpb-blog-hero__media:after{
    position:absolute;
    inset:0;
    content:'';
    background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.72));
}
.gtpb-blog-hero__media img{width:100%;height:100%;object-fit:cover}
.gtpb-blog-hero__media figcaption{
    position:absolute;
    z-index:1;
    right:24px;
    bottom:22px;
    left:24px;
    color:#fff;
    font-weight:700;
}
.gtpb-blog-hero__media figcaption span{display:block;margin-bottom:6px;color:#ffd067;font-size:.67rem;letter-spacing:.14em}
.gtpb-blog-catalog{padding:clamp(76px,8vw,122px) 0;background:#fff}
.gtpb-blog-catalog__head{
    display:flex;
    justify-content:space-between;
    gap:50px;
    align-items:end;
}
.gtpb-blog-catalog__head h2{
    max-width:850px;
    margin:17px 0 12px;
    color:#123724;
    font-size:clamp(2.5rem,4.6vw,5rem);
    line-height:.95;
    letter-spacing:-.055em;
}
.gtpb-blog-catalog__head p{max-width:700px;margin:0;color:#6a766e;font-size:1.03rem}
.gtpb-blog-search{position:relative;display:block;width:min(100%,350px);flex:0 0 350px}
.gtpb-blog-search input{
    width:100%;
    height:54px;
    padding:0 48px 0 18px;
    border:1px solid #dbe2dd;
    border-radius:14px;
    color:#123724;
    background:#f7f9f8;
    font:inherit;
}
.gtpb-blog-search input:focus{outline:3px solid rgba(244,165,28,.32);border-color:#f4a51c}
.gtpb-blog-search svg{position:absolute;right:17px;top:16px;width:22px;height:22px;fill:none;stroke:#123724;stroke-width:2}
.gtpb-blog-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:38px 0 28px;padding-top:24px;border-top:1px solid #e1e7e3}
.gtpb-blog-toolbar button,.gtpb-blog-toolbar a{
    min-height:42px;
    padding:0 18px;
    color:#123724;
    background:#fff;
    border:1px solid #ccd6cf;
    border-radius:999px;
    font-size:.77rem;
    font-weight:800;
    cursor:pointer;
}
.gtpb-blog-toolbar button:hover,.gtpb-blog-toolbar button.is-active,.gtpb-blog-toolbar a:hover,.gtpb-blog-toolbar a.is-active{color:#fff;background:#123724;border-color:#123724}
.gtpb-blog-pagination{margin:42px 0 0}
.gtpb-blog-pagination .page-numbers{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:0;padding:0;list-style:none}
.gtpb-blog-pagination a,.gtpb-blog-pagination span{display:grid;place-items:center;min-width:42px;min-height:42px;padding:8px 14px;border:1px solid #d7dfda;border-radius:999px;font-weight:800;color:#123724;background:#fff}
.gtpb-blog-pagination .current,.gtpb-blog-pagination a:hover{color:#fff;background:#123724;border-color:#123724}
.gtpb-blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gtpb-blog-card{
    display:flex;
    min-width:0;
    flex-direction:column;
    overflow:hidden;
    background:#f6f8f7;
    border:1px solid #e0e6e2;
    border-radius:22px;
    transition:transform .25s ease,box-shadow .25s ease;
}
.gtpb-blog-card:hover{transform:translateY(-5px);box-shadow:0 25px 55px rgba(14,54,37,.12)}
.gtpb-blog-card[hidden]{display:none !important}
.gtpb-blog-card--featured{grid-column:span 2;display:grid;grid-template-columns:1.15fr .85fr}
.gtpb-blog-card__image{display:block;min-height:235px;overflow:hidden;background:#123724}
.gtpb-blog-card--featured .gtpb-blog-card__image{min-height:470px}
.gtpb-blog-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.gtpb-blog-card:hover .gtpb-blog-card__image img{transform:scale(1.035)}
.gtpb-blog-card__body{display:flex;flex:1;flex-direction:column;padding:26px}
.gtpb-blog-card__meta{display:flex;gap:10px;align-items:center;margin-bottom:24px;color:#7b877f;font-size:.65rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.gtpb-blog-card__meta span:first-child{padding:6px 8px;color:#fff;background:#bd7013;border-radius:7px}
.gtpb-blog-card h3{margin:0 0 13px;color:#123724;font-size:clamp(1.25rem,1.65vw,1.75rem);line-height:1.12;letter-spacing:-.025em}
.gtpb-blog-card h3 a{color:inherit}
.gtpb-blog-card p{margin:0 0 25px;color:#69756d;line-height:1.58}
.gtpb-blog-card__link{margin-top:auto;color:#123724;font-size:.78rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.gtpb-blog-card__link span{margin-left:4px;color:#bd7013}
.gtpb-blog-empty{padding:60px;text-align:center;color:#69756d;background:#f6f8f7;border-radius:22px}
.gtpb-blog-cta{padding:72px 0;color:#fff;background:#0b3423}
.gtpb-blog-cta>.gtp-container{display:flex;align-items:center;justify-content:space-between;gap:40px}
.gtpb-blog-cta .gtp-kicker{color:#f4a51c}
.gtpb-blog-cta h2{max-width:800px;margin:14px 0 0;color:#fff;font-size:clamp(2.2rem,4vw,4.4rem);line-height:.95;letter-spacing:-.05em}
.gtpb-blog-cta .gtp-button{flex:0 0 auto;color:#123724;background:#f4a51c}
.gtpb-blog-cta .gtp-button:hover{color:#123724;background:#ffd067}

@media(max-width:1050px){
    .gtpb-rich-heading{grid-template-columns:1fr;gap:22px}
    .gtpb-rich-heading .gtp-kicker{grid-column:auto}
    .gtpb-service-matrix{grid-template-columns:repeat(2,minmax(0,1fr))}
    .gtpb-process,.gtpb-operations-grid,.gtpb-principles{grid-template-columns:repeat(2,minmax(0,1fr))}
    .gtpb-process li:nth-child(2),.gtpb-operations-grid article:nth-child(2),.gtpb-principles article:nth-child(2){border-right:0}
    .gtpb-process li:nth-child(n+3),.gtpb-operations-grid article:nth-child(n+3),.gtpb-principles article:nth-child(n+3){border-top:1px solid rgba(255,255,255,.2)}
    .gtpb-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
    .gtpb-stat-strip>div:nth-child(2){border-right:0}
    .gtpb-stat-strip>div:nth-child(n+3){border-top:1px solid #dfe5e1}
    .gtpb-blog-hero__inner{grid-template-columns:1fr;min-height:auto}
    .gtpb-blog-hero__media{min-height:390px}
    .gtpb-blog-catalog__head{align-items:start;flex-direction:column}
    .gtpb-blog-search{width:100%;flex-basis:auto}
    .gtpb-blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .gtpb-blog-card--featured{grid-column:span 2}
}
@media(max-width:720px){
    .gtpb-rich-section{padding:62px 0}
    .gtpb-service-matrix,.gtpb-two-way,.gtpb-delivery-grid,.gtpb-timeline{grid-template-columns:1fr}
    .gtpb-rich-card{min-height:245px}
    .gtpb-process,.gtpb-operations-grid,.gtpb-principles{grid-template-columns:1fr}
    .gtpb-process li,.gtpb-process li+li,.gtpb-operations-grid article,.gtpb-principles article{min-height:0;padding:24px 0;border-right:0;border-top:1px solid rgba(255,255,255,.2)}
    .gtpb-process li>span,.gtpb-operations-grid strong,.gtpb-principles article>span{margin-bottom:30px}
    .gtpb-timeline article,.gtpb-timeline article+article{min-height:0;padding:28px 0;border-right:0;border-bottom:1px solid #dfe5e1}
    .gtpb-timeline article:last-child{border-bottom:0}
    .gtpb-timeline article>span{margin-bottom:30px}
    .gtpb-stat-strip{grid-template-columns:1fr;margin-top:45px}
    .gtpb-stat-strip>div,.gtpb-stat-strip>div:nth-child(2){min-height:auto;border-right:0;border-top:1px solid #dfe5e1}
    .gtpb-stat-strip>div:first-child{border-top:0}
    .gtpb-blog-hero{padding:18px 0 55px}
    .gtpb-blog-hero__inner{padding:34px 22px;border-radius:22px;gap:34px}
    .gtpb-blog-hero__copy h1{font-size:clamp(2.9rem,14vw,4.6rem)}
    .gtpb-blog-hero__media{min-height:315px}
    .gtpb-blog-catalog{padding:68px 0}
    .gtpb-blog-grid{grid-template-columns:1fr}
    .gtpb-blog-card--featured{grid-column:auto;display:flex}
    .gtpb-blog-card--featured .gtpb-blog-card__image{min-height:250px}
    .gtpb-blog-toolbar{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}
    .gtpb-blog-toolbar button,.gtpb-blog-toolbar a{flex:0 0 auto}
    .gtpb-blog-cta>.gtp-container{align-items:flex-start;flex-direction:column}
}
