/* =========================================================
   KAPSULE NETWORK UI - central / multi-site / multi-language
   ========================================================= */

.bfw-lang-switch{margin-inline-start:auto;display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.bfw-lang-switch__item{min-width:42px;height:38px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:999px;border:1px solid rgba(255,255,255,.11);background:rgba(255,255,255,.045);color:var(--ink,#eef4ff);font-weight:800;font-size:11px;letter-spacing:.04em;line-height:1;text-decoration:none;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.bfw-lang-switch__item:hover{transform:translateY(-1px);border-color:rgba(0,229,255,.55);background:rgba(0,229,255,.09);color:#fff;box-shadow:0 7px 22px rgba(0,229,255,.10)}
.bfw-lang-switch__item[aria-current="page"]{border-color:rgba(255,140,0,.72);background:linear-gradient(135deg,rgba(255,140,0,.18),rgba(255,45,85,.12));box-shadow:0 0 0 1px rgba(255,140,0,.08) inset}
.bfw-lang-switch__flag{font-size:18px;line-height:1}.bfw-lang-switch__code{opacity:.86}

.bfw-newsletter[hidden]{display:none!important}
.bfw-newsletter{--nl-orange:#ff8a00;--nl-pink:#ff2d55;--nl-cyan:#00e5ff;position:fixed;z-index:9999;inset-inline-end:22px;inset-block-end:22px;width:min(450px,calc(100vw - 28px));padding:25px;color:#f7f8ff;background:linear-gradient(150deg,rgba(23,10,42,.985),rgba(7,9,18,.99) 62%),#090b12;border:1px solid rgba(255,255,255,.13);border-radius:22px;box-shadow:0 28px 90px rgba(0,0,0,.58),0 0 55px rgba(145,57,255,.18);overflow:hidden;isolation:isolate;transform:translateY(22px) scale(.985);opacity:0}
.bfw-newsletter.is-visible{animation:bfwNewsletterIn .48s cubic-bezier(.2,.8,.2,1) forwards}@keyframes bfwNewsletterIn{to{transform:none;opacity:1}}
.bfw-newsletter__glow{position:absolute;z-index:-1;width:250px;height:250px;inset-inline-end:-85px;inset-block-start:-105px;border-radius:50%;background:radial-gradient(circle,rgba(255,45,85,.34),rgba(126,50,255,.13) 48%,transparent 70%);filter:blur(4px)}
.bfw-newsletter::after{content:"";position:absolute;z-index:-1;inset:0;opacity:.18;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:26px 26px;mask-image:linear-gradient(to bottom,black,transparent 80%)}
.bfw-newsletter__close{position:absolute;inset-inline-end:13px;inset-block-start:12px;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:rgba(255,255,255,.075);color:#fff;font-size:23px;cursor:pointer}
.bfw-newsletter__badge{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;margin-block-end:11px;border-radius:999px;color:#ffd9b0;background:rgba(255,138,0,.12);border:1px solid rgba(255,138,0,.28);font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.bfw-newsletter h2{margin:0;padding-inline-end:30px;color:#fff;font-size:clamp(1.45rem,3vw,2rem);line-height:1.05;letter-spacing:-.035em}.bfw-newsletter__body{margin:10px 0 16px;color:#c8c9d5;font-size:14px;line-height:1.55}
.bfw-newsletter__fields{display:grid;grid-template-columns:1fr 1.25fr;gap:9px}.bfw-newsletter input[type="text"],.bfw-newsletter input[type="email"]{width:100%;min-height:46px;padding:0 13px;border-radius:11px;border:1px solid rgba(255,255,255,.13);outline:0;background:rgba(255,255,255,.055);color:#fff;font:inherit}.bfw-newsletter input::placeholder{color:#8f93a5}.bfw-newsletter input:focus{border-color:rgba(0,229,255,.62);box-shadow:0 0 0 3px rgba(0,229,255,.08)}
.bfw-newsletter__consent{display:flex;align-items:flex-start;gap:9px;margin:10px 0;color:#aeb2c2;font-size:11.5px;line-height:1.43}.bfw-newsletter__consent--marketing{padding:10px;border:1px solid rgba(255,138,0,.18);border-radius:11px;background:rgba(255,138,0,.055);color:#d7d9e4}.bfw-newsletter__consent input{flex:0 0 auto;margin-block-start:2px;accent-color:#ff8a00}.bfw-newsletter__consent a{color:#d8dbff;text-decoration:underline;text-underline-offset:2px}
.bfw-newsletter__submit{width:100%;min-height:49px;margin-top:4px;display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:12px;cursor:pointer;color:#160900;background:linear-gradient(135deg,#ff9d00,#ff6500);box-shadow:0 10px 30px rgba(255,106,0,.23),0 0 25px rgba(255,45,85,.10);font-weight:950;font-size:14px}.bfw-newsletter__submit:hover{filter:brightness(1.07)}.bfw-newsletter__submit[disabled]{opacity:.65;cursor:wait}.bfw-newsletter__status{min-height:18px;margin:9px 0 0;font-size:12px;color:#a8ffcf}.bfw-newsletter__status.is-error{color:#ffb4bb}
.bfw-newsletter__trap{position:absolute!important;inline-size:1px!important;block-size:1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
html[dir="rtl"] .bfw-newsletter,html:lang(ar) .bfw-newsletter{text-align:start}
@media(max-width:680px){.bfw-lang-switch{gap:4px}.bfw-lang-switch__item{min-width:36px;width:36px;height:34px;padding:0}.bfw-lang-switch__code{display:none}}
@media(max-width:560px){.bfw-newsletter{inset-inline:14px;inset-block-end:14px;width:auto;padding:21px}.bfw-newsletter__fields{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.bfw-newsletter.is-visible{animation:none;transform:none;opacity:1}.bfw-lang-switch__item{transition:none}}


/* =========================================================
   NEWSLETTER V3 - mobile containment + email suggestions
   ========================================================= */

.bfw-newsletter{
  max-width:calc(100vw - 20px);
  max-height:calc(100dvh - 20px);
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}

.bfw-newsletter__form,
.bfw-newsletter__fields,
.bfw-newsletter__fields label,
.bfw-newsletter__consent,
.bfw-newsletter__consent span{
  min-width:0;
  max-width:100%;
}

.bfw-newsletter input[type="text"],
.bfw-newsletter input[type="email"]{
  min-width:0;
  max-width:100%;
}

.bfw-newsletter__consent span,
.bfw-newsletter__consent a,
.bfw-newsletter__body,
.bfw-newsletter h2,
.bfw-newsletter__status{
  overflow-wrap:anywhere;
  word-break:normal;
}

.bfw-newsletter__fields label{
  position:relative;
}

.bfw-newsletter__email-suggestions{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:7px;
  width:100%;
}

.bfw-newsletter__email-suggestions[hidden]{
  display:none!important;
}

.bfw-newsletter__email-suggestion{
  max-width:100%;
  min-height:30px;
  padding:5px 9px;
  border:1px solid rgba(0,229,255,.24);
  border-radius:999px;
  background:rgba(0,229,255,.07);
  color:#dffcff;
  font:inherit;
  font-size:11px;
  line-height:1;
  cursor:pointer;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.bfw-newsletter__email-suggestion:hover,
.bfw-newsletter__email-suggestion:focus-visible{
  border-color:rgba(0,229,255,.58);
  background:rgba(0,229,255,.13);
  outline:none;
}

@media(max-width:560px){
  .bfw-newsletter{
    inset-inline:8px;
    inset-block-end:8px;
    width:auto;
    max-width:none;
    max-height:calc(100dvh - 16px);
    padding:18px 16px 16px;
    border-radius:18px;
  }

  .bfw-newsletter h2{
    padding-inline-end:36px;
    font-size:clamp(1.25rem,7vw,1.65rem);
    line-height:1.08;
  }

  .bfw-newsletter__body{
    margin:8px 0 13px;
    font-size:13px;
  }

  .bfw-newsletter__fields{
    grid-template-columns:minmax(0,1fr);
    gap:8px;
  }

  .bfw-newsletter__consent{
    gap:8px;
    font-size:11px;
    line-height:1.38;
  }

  .bfw-newsletter__consent--marketing{
    padding:9px;
  }

  .bfw-newsletter__submit{
    min-height:46px;
  }

  .bfw-newsletter__email-suggestions{
    gap:5px;
  }

  .bfw-newsletter__email-suggestion{
    font-size:10.5px;
  }
}

@media(max-width:360px){
  .bfw-newsletter{
    inset-inline:5px;
    inset-block-end:5px;
    max-height:calc(100dvh - 10px);
    padding:16px 13px 14px;
  }
}


/* =========================================================
   BFW — OFFERS COLLAPSE V1
   Pages profondes uniquement
   ========================================================= */

.bfw-offers-block{
    min-width:0;
    width:100%;
}

.bfw-offers-more{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    margin:18px 0 6px;
}

.bfw-offers-more__btn{
    appearance:none;
    -webkit-appearance:none;

    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:9px;

    max-width:100%;

    padding:12px 20px;

    border:
        1px solid
        rgba(127,127,127,.30);

    border-radius:999px;

    background:
        rgba(127,127,127,.08);

    color:inherit;

    font:inherit;
    font-weight:750;

    line-height:1.15;

    cursor:pointer;

    transition:
        transform .18s ease,
        background .18s ease,
        border-color .18s ease;
}

.bfw-offers-more__btn:hover{
    transform:translateY(-1px);

    background:
        rgba(127,127,127,.13);

    border-color:
        rgba(127,127,127,.45);
}

.bfw-offers-more__btn:focus-visible{
    outline:
        3px solid
        rgba(127,127,127,.30);

    outline-offset:3px;
}

.bfw-offers-more__count{
    opacity:.62;
    font-size:.88em;
    font-weight:650;
}

.bfw-offers-more__chevron{
    display:inline-block;

    font-size:1.05em;

    transition:
        transform .18s ease;
}

.bfw-offers-more__btn[
    aria-expanded="true"
]
.bfw-offers-more__chevron{
    transform:rotate(180deg);
}

.bfw-offer-extra[hidden]{
    display:none !important;
}


/*
 * Mobile
 */

@media (max-width:640px){

    .bfw-offers-more{
        margin-top:14px;
    }

    .bfw-offers-more__btn{
        width:100%;
        padding:13px 16px;
    }

}

/* =========================================================
   BFW V8.2 — Cartes marchands : mobile 2 colonnes / sans débordement
   Conteneur logo fixe, image contenue sans déformation.
   Remise au-dessus du bouton ; CTA Cyber 2026 pleine largeur.
   Scope strict : offres uniquement. Aucun effet sur le rich content.
   ========================================================= */
.bfw-offers-block,
.bfw-offers-block .bfw-offers-grid,
.bfw-offers-block .bfw-offers-grid > .card {
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}

.bfw-offers-block .bfw-offers-grid .brandRow {
  min-width:0;
  max-width:100%;
}

/* Le carré blanc est stable ; l'image n'est ni étirée ni recadrée. */
.bfw-offers-block .bfw-offers-grid .brandRow > .logo {
  flex:0 0 50px;
  width:50px;
  min-width:50px;
  height:50px;
  min-height:50px;
  box-sizing:border-box;
  display:grid;
  place-items:center;
  overflow:hidden;
  background:#fff;
}

.bfw-offers-block .bfw-offers-grid .brandRow > .logo img {
  display:block;
  width:auto;
  height:auto;
  max-width:calc(100% - 6px);
  max-height:calc(100% - 6px);
  object-fit:contain;
  object-position:center;
  min-width:0;
  min-height:0;
  margin:auto;
}

.bfw-offers-block .bfw-offers-grid .brandRow > div:last-child {
  flex:1 1 0%;
  min-width:0;
  max-width:100%;
}

.bfw-offers-block .bfw-offers-grid .progName {
  max-width:100%;
  overflow-wrap:anywhere;
}

.bfw-offers-block .bfw-offers-grid .rem {
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

@media (max-width:640px) {
  /* minmax(0,1fr) neutralise la largeur intrinsèque des enfants. */
  .bfw-offers-block .bfw-offers-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    width:100%;
  }

  .bfw-offers-block .bfw-offers-grid > .card {
    width:100%;
    min-width:0;
    overflow:hidden;
    padding:12px;
  }

  .bfw-offers-block .bfw-offers-grid .brandRow {
    display:flex;
    align-items:center;
    gap:9px;
  }

  .bfw-offers-block .bfw-offers-grid .brandRow > .logo {
    flex-basis:46px;
    width:46px;
    min-width:46px;
    height:46px;
    min-height:46px;
  }

  .bfw-offers-block .bfw-offers-grid .progName {
    min-width:0;
    font-size:clamp(14px,3.8vw,20px);
    line-height:1.15;
  }

  .bfw-offers-block .bfw-offers-grid .rem {
    font-size:clamp(11px,3vw,14px);
    line-height:1.25;
  }

  .bfw-offers-block .bfw-offers-grid .ctaRow {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:9px;
    min-width:0;
    width:100%;
    max-width:100%;
  }

  .bfw-offers-block .bfw-offers-grid .ctaRow .ecopossible {
    order:0;
    display:block;
    min-width:0;
    max-width:100%;
    white-space:normal;
    overflow-wrap:anywhere;
    overflow:visible;
    text-overflow:clip;
  }

  .bfw-offers-block .bfw-offers-grid .ctaRow .btn.openTrack {
    order:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    box-sizing:border-box;
    width:100%;
    min-width:0;
    max-width:100%;
    padding:11px 8px;
    white-space:normal;
    overflow-wrap:anywhere;
    text-align:center;
    background:linear-gradient(115deg,#00e5ff 0%,#02a4ff 48%,#8457ff 100%);
    box-shadow:0 8px 22px rgba(0,164,255,.25),0 0 18px rgba(132,87,255,.22);
  }

  .bfw-offers-block .bfw-offers-grid .ctaRow .btn.openTrack svg {
    flex:0 0 16px;
  }
}

/* =========================================================
   V8.3 — Navigation basse : suppression de la largeur
   intrinsèque qui provoquait le scroll horizontal mobile.
   ========================================================= */
@media (max-width:640px) {
  /* Navigation des éditions internationales */
  nav.wheel {
    box-sizing:border-box;
    display:flex;
    flex-wrap:wrap;
    width:100%;
    min-width:0;
    max-width:100%;
    margin-left:0;
  }
  nav.wheel > .chip {
    min-width:0;
    max-width:100%;
    white-space:normal;
  }
  nav.wheel > .chip > span:last-child {
    min-width:0;
    overflow-wrap:anywhere;
  }

  /* Le footer HTML possède un nav flex sans flex-wrap. */
  footer.site .container > div {
    min-width:0;
    max-width:100%;
  }
  footer.site nav {
    display:flex;
    flex-wrap:wrap;
    min-width:0;
    max-width:100%;
    gap:10px 16px;
  }
  footer.site nav a {
    min-width:0;
    max-width:100%;
    overflow-wrap:anywhere;
  }
}
