/* =========================
   PARTENAIRES — ODYSSEY OF AION
   Version SIGNATURE (clean + pro + stable)
   - Suppression des lignes verticales/horizontales
   - Fin du “pêche” : palette ICE / STEEL / INK + accents orange
   - Plus de contraste visuel (alternance auto)
   - Photo ribbons disponibles (sans animation agressive = pas de flicker)
   ========================= */

#ptnPage{
  --ptn-bg:#f6f8f7;
  --ptn-panel:rgba(255,255,255,.96);
  --ptn-border:rgba(31,42,50,.12);
  --ptn-text:#1f2a32;
  --ptn-muted:rgba(31,42,50,.72);

  --ptn-accent:#ff5a3c;
  --ptn-accent-soft:rgba(255,90,60,.14);

  /* ICE / STEEL */
  --ptn-ice:rgba(240,244,246,.98);
  --ptn-steel:rgba(127,164,184,.10);

  --ptn-shadow:0 22px 60px rgba(9,15,22,.10);
  --ptn-shadow2:0 12px 28px rgba(9,15,22,.08);

  --ptn-r:24px;
  --ptn-max:1180px;

  --ptn-float-shadow:0 12px 36px rgba(9,15,22,.08), 0 4px 12px rgba(31,42,50,.06);
  --ptn-float-hover:0 18px 48px rgba(9,15,22,.12), 0 6px 18px rgba(31,42,50,.10);

  --ptn-ease:cubic-bezier(.2,.7,.2,1);

  background:var(--ptn-bg);
  color:var(--ptn-text);
}

#ptnPage, #ptnPage *{ box-sizing:border-box; }

/* =========================
   HERO — IMMERSIF (SANS FLICKER)
   ========================= */
#ptnPage .ptn-hero{
  position:relative;
  min-height:88vh;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  color:#fff;
  isolation:isolate;
  overflow:hidden;
}

#ptnPage .ptn-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:url("/medias/IMG_7651.jpg") center/cover no-repeat;
  filter:saturate(1.05) contrast(1.03) brightness(.96);
  transform:scale(1.02);
  z-index:0;
}

#ptnPage .ptn-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(1200px 760px at 50% 78%,
      rgba(255,255,255,.12),
      rgba(31,42,50,.22) 52%,
      rgba(11,18,24,.55) 100%
    ),
    radial-gradient(900px 520px at 18% 28%, rgba(255,90,60,.12), transparent 70%),
    radial-gradient(900px 620px at 78% 62%, rgba(127,164,184,.10), transparent 70%);
  /* IMPORTANT : pas d'animation filter/hue-rotate => plus de clignotement */
  filter:none;
  opacity:1;
}

#ptnPage .ptn-heroInner{
  position:relative;
  z-index:2;
  width:100%;
  max-width:var(--ptn-max);
  margin:0 auto;
  padding:140px 22px 90px;
  display:grid;
  grid-template-columns:minmax(0,2.2fr) minmax(0,1.4fr);
  gap:28px;
  align-items:flex-end;
}

#ptnPage .ptn-heroFade{
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:120px;
  background:linear-gradient(180deg, transparent, var(--ptn-bg) 92%);
  z-index:2;
}

/* =========================
   HERO TEXTE
   ========================= */
#ptnPage .ptn-kicker{
  font-size:12px;
  letter-spacing:.32em;
  text-transform:uppercase;
  font-weight:950;
  color:rgba(255,255,255,.92);
  margin:0 0 10px;
}

#ptnPage .ptn-heroText h1{
  margin:0 0 16px;
  font-weight:950;
  font-size:clamp(34px,4.3vw,54px);
  line-height:1.06;
  letter-spacing:-.02em;
  text-shadow:0 18px 46px rgba(0,0,0,.38);
}

#ptnPage .ptn-heroLead{
  font-size:17px;
  line-height:1.8;
  max-width:640px;
  color:rgba(255,255,255,.92);
}

/* =========================
   CHIFFRES SILENCIEUX (SIGNATURE)
   ========================= */
#ptnPage .ptn-silentStats{
  display:flex;
  gap:34px;
  margin-top:28px;
  flex-wrap:wrap;
}

#ptnPage .ptn-silentStats strong{
  display:block;
  font-size:30px;
  font-weight:950;
  color:#fff;
}

#ptnPage .ptn-silentStats span{
  font-size:11px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
}

/* =========================
   BADGE FILM
   ========================= */
#ptnPage .ptn-filmBadge{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-top:28px;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(255,90,60,.18);
  border:1px solid rgba(255,90,60,.48);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  box-shadow:0 18px 46px rgba(255,90,60,.22);
  color:#fff;
  font-size:12px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:none;
  transition:transform .16s var(--ptn-ease), background .2s var(--ptn-ease);
}

@media (hover:hover) and (pointer:fine){
  #ptnPage .ptn-filmBadge:hover{
    transform:translateY(-2px);
    background:rgba(255,90,60,.24);
  }
}

#ptnPage .ptn-filmBadge:focus-visible{
  outline:2px solid rgba(255,90,60,.55);
  outline-offset:4px;
}

#ptnPage .ptn-filmDot{
  width:10px;
  height:10px;
  border-radius:999px;
  background:var(--ptn-accent);
  box-shadow:0 0 0 6px rgba(255,90,60,.22);
}

/* =========================
   HERO PANEL
   ========================= */
#ptnPage .ptn-heroPanel{
  border-radius:calc(var(--ptn-r) + 4px);
  background:rgba(11,18,24,.30);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  padding:28px 24px 24px;
  color:#fff;
}

#ptnPage .ptn-heroPanel h2{
  margin:0 0 10px;
  font-size:15px;
  letter-spacing:.24em;
  text-transform:uppercase;
  font-weight:900;
  color:rgba(255,255,255,.92);
}

#ptnPage .ptn-heroPanel p{
  margin:0 0 14px;
  font-size:14px;
  line-height:1.7;
  color:rgba(255,255,255,.88);
}

#ptnPage .ptn-heroPanel ul{
  margin:0 0 14px;
  padding-left:18px;
  font-size:13px;
  color:rgba(255,255,255,.84);
}
#ptnPage .ptn-heroPanel li{ margin-bottom:4px; }

/* =========================
   BOUTONS (page sponsors)
   ========================= */
#ptnPage .ptn-heroActions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:6px;
}

#ptnPage .ptn-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 20px;
  border-radius:999px;
  font-weight:900;
  font-size:12px;
  text-decoration:none;
  text-transform:uppercase;
  letter-spacing:.16em;
  border:1px solid transparent;
  cursor:pointer;
  transition:transform .16s var(--ptn-ease), box-shadow .16s var(--ptn-ease), background .16s var(--ptn-ease), color .16s var(--ptn-ease);
}

#ptnPage .ptn-btn.primary{
  background:var(--ptn-accent);
  color:#fff;
  border-color:rgba(255,90,60,.55);
  box-shadow:0 18px 46px rgba(255,90,60,.26);
}

#ptnPage .ptn-btn.secondary{
  background:rgba(255,255,255,.14);
  color:#fff;
  border-color:rgba(255,255,255,.40);
}

@media (hover:hover) and (pointer:fine){
  #ptnPage .ptn-btn:hover{
    transform:translateY(-2px);
    box-shadow:0 20px 54px rgba(0,0,0,.36);
  }
}

#ptnPage .ptn-btn:focus-visible{
  outline:2px solid rgba(255,90,60,.55);
  outline-offset:4px;
}

/* =========================
   CONTENU — CONTAINER
   ========================= */
#ptnPage .ptn-container{
  max-width:var(--ptn-max);
  margin:80px auto 120px;
  padding:0 20px;
}

/* =========================
   SECTIONS — contraste + alternance ICE/BLANC (auto)
   ========================= */
#ptnPage .ptn-section{
  position:relative;
  overflow:hidden;
  border-radius:calc(var(--ptn-r) + 2px);
  padding:44px 40px;
  border:1px solid rgba(31,42,50,.10);
  box-shadow:0 22px 60px rgba(9,15,22,.08);
  margin-bottom:36px;
  background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,248,247,.92));
}

#ptnPage .ptn-section::before{
  content:"";
  position:absolute;
  inset:-2px;
  pointer-events:none;
  background:
    radial-gradient(900px 520px at 18% 18%, rgba(127,164,184,.10), transparent 62%),
    radial-gradient(900px 620px at 82% 72%, rgba(255,90,60,.06), transparent 68%);
  opacity:.95;
}

/* Alternance “ICE” (1 section sur 2) */
#ptnPage .ptn-container > .ptn-section:nth-of-type(even){
  background:linear-gradient(135deg, rgba(240,244,246,.98), rgba(255,255,255,.98));
  border-color:rgba(31,42,50,.12);
}

#ptnPage .ptn-container > .ptn-section:nth-of-type(even)::before{
  background:
    radial-gradient(900px 520px at 18% 18%, rgba(127,164,184,.12), transparent 62%),
    radial-gradient(900px 620px at 82% 72%, rgba(255,90,60,.07), transparent 68%);
}

/* Titres/texte */
#ptnPage .ptn-section h2{
  font-size:26px;
  font-weight:950;
  margin:0 0 18px;
  letter-spacing:-0.01em;
  position:relative;
}

#ptnPage .ptn-section p{
  font-size:16px;
  line-height:1.8;
  color:var(--ptn-muted);
}

/* Lead centré si utilisé */
#ptnPage .ptn-leadCenter{
  font-size:18px;
  text-align:center;
  max-width:880px;
  margin:0 auto 34px;
  color:var(--ptn-muted);
}

/* Tagline si utilisée */
#ptnPage .ptn-tagline{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  font-weight:900;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:rgba(31,42,50,.66);
  margin-bottom:14px;
}

#ptnPage .ptn-tagDot{
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--ptn-accent);
  box-shadow:0 0 0 6px rgba(255,90,60,.12);
}

/* =========================
   SECTION ENGAGEMENT NOIRE (si tu gardes .commitment)
   ========================= */
#ptnPage .ptn-section.commitment{
  background:#0b1218;
  color:#fff;
  border:none;
  box-shadow:0 28px 90px rgba(0,0,0,.22);
}

#ptnPage .ptn-section.commitment::before{
  opacity:1;
  background:
    radial-gradient(1200px 760px at 50% 35%, rgba(255,255,255,.08), transparent 60%),
    radial-gradient(900px 620px at 20% 80%, rgba(255,90,60,.12), transparent 65%);
}

#ptnPage .ptn-section.commitment h2,
#ptnPage .ptn-section.commitment strong{
  color:#fff;
}

#ptnPage .ptn-section.commitment p{
  color:rgba(255,255,255,.88);
}

/* =========================
   GRID / CARDS
   ========================= */
#ptnPage .ptn-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:26px;
}

#ptnPage .ptn-card{
  position:relative;
  overflow:hidden;
  background:rgba(255,255,255,.96);
  border-radius:calc(var(--ptn-r) + 2px);
  border:1px solid rgba(31,42,50,.10);
  padding:26px 24px;
  box-shadow:var(--ptn-float-shadow);
  transition:transform .22s var(--ptn-ease), box-shadow .22s var(--ptn-ease), border-color .22s var(--ptn-ease);
}

#ptnPage .ptn-card strong{
  display:block;
  margin-bottom:10px;
  font-size:17px;
  color:var(--ptn-text);
}

#ptnPage .ptn-card::after{
  content:"";
  position:absolute;
  inset:-2px;
  pointer-events:none;
  background:radial-gradient(680px 320px at 20% 12%, rgba(255,90,60,.10), transparent 60%);
  opacity:0;
  transition:opacity .22s var(--ptn-ease);
}

@media (hover:hover) and (pointer:fine){
  #ptnPage .ptn-card:hover{
    transform:translateY(-6px);
    border-color:rgba(255,90,60,.22);
    box-shadow:var(--ptn-float-hover);
  }
  #ptnPage .ptn-card:hover::after{ opacity:1; }
}

/* =========================
   CALLOUT ORANGE (Signal / À savoir)
   ========================= */
#ptnPage .ptn-callout{
  margin:18px 0 0;
  padding:14px 14px;
  border-radius:16px;
  border:1px solid rgba(255,90,60,.32);
  background:linear-gradient(135deg, rgba(255,90,60,.14), rgba(255,255,255,.92));
  color:rgba(31,42,50,.86);
  box-shadow:0 18px 44px rgba(255,90,60,.14);
  line-height:1.7;
}

#ptnPage .ptn-callout strong{
  color:rgba(255,90,60,.98);
  font-weight:950;
}

/* =========================
   PHOTO RIBBON (plein écran, répétable)
   - Pas d'animation automatique => pas de flicker
   - Effet “pro” au hover desktop uniquement
   ========================= */
#ptnPage .ptn-photoRibbon{
  width:100vw;
  position:relative;
  left:50%;
  margin-left:-50vw;
  height:300px;
  background:#0b1218;
  overflow:hidden;
  border-top:1px solid rgba(31,42,50,.10);
  border-bottom:1px solid rgba(31,42,50,.10);
  isolation:isolate;
}

#ptnPage .ptn-photoRibbon::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:var(--bg);
  background-size:cover;
  background-position:center 40%;
  transform:scale(1.06);
  filter:saturate(1.02) contrast(1.03) brightness(.98);
  will-change:transform;
}

#ptnPage .ptn-photoRibbon::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(1200px 520px at 50% 30%, rgba(255,255,255,.10), transparent 60%),
    linear-gradient(180deg, rgba(11,18,24,.18), rgba(11,18,24,.62));
}

@media (hover:hover) and (pointer:fine){
  #ptnPage .ptn-photoRibbon:hover::before{
    transform:scale(1.12);
    transition:transform .9s var(--ptn-ease);
  }
}

/* =========================
   SUPPRESSION — DIVISEUR DE ROUTE (lignes)
   (tu n’en veux plus)
   ========================= */
#ptnPage .ptn-routeDivider,
#ptnPage .ptn-routeDivider::before,
#ptnPage .ptn-routeDot{
  display:none !important;
}

/* =========================
   CTA FINAL
   ========================= */
#ptnPage .ptn-cta{
  text-align:center;
  margin-top:42px;
}

#ptnPage .ptn-ctaNote{
  font-size:13px;
  color:var(--ptn-muted);
  margin-top:10px;
}

/* =========================
   RESPONSIVE
   ========================= */
@media (max-width:960px){
  #ptnPage .ptn-heroInner{
    grid-template-columns:1fr;
    padding:130px 18px 70px;
  }
}

@media (max-width:900px){
  #ptnPage .ptn-photoRibbon{ height:240px; }
  #ptnPage .ptn-photoRibbon::before{ background-position:center 45%; }
}

@media (max-width:700px){
  #ptnPage .ptn-section{ padding:32px 20px; }
  #ptnPage .ptn-container{ margin:60px auto 90px; }
}

@media (max-width:520px){
  #ptnPage .ptn-photoRibbon{ height:210px; }
}