/* =========================================================
   HINATOU — PAGE ABONNEMENTS
   ========================================================= */


.offers-heading {
  margin:0;
  color:#fff;
  text-align:center;
  font-size:clamp(1.65rem, 4vw, 2.25rem);
  line-height:1.15;
  font-weight:800;
}

.offers-heading span {
  color:#ff2aa8;
}

.offers-intro {
  max-width:650px;
  margin:8px auto 0;
  color:#aaa;
  text-align:center;
  font-size:.94rem;
  line-height:1.45;
}

.offers-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  align-items:stretch;
  gap:18px;
  margin-top:28px;
}

/* =========================================================
   CARTE
   ========================================================= */

.offer-card {
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:25px 22px 21px;
  box-sizing:border-box;
  overflow:hidden;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.11);
  background:
    radial-gradient(circle at top, rgba(255,42,168,.055), transparent 42%),
    rgba(255,255,255,.035);
  box-shadow:0 10px 26px rgba(0,0,0,.20);
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.offer-card:hover {
  transform:translateY(-3px);
  border-color:rgba(255,42,168,.38);
  box-shadow:0 14px 32px rgba(0,0,0,.30);
}


/* =========================================================
   OFFRE MISE EN AVANT
   ========================================================= */

.offer-card.is-highlight {
  border:2px solid rgba(255,42,168,.78);
  background:
    radial-gradient(circle at 50% 0%, rgba(255,42,168,.18), transparent 38%),
    linear-gradient(180deg, rgba(255,42,168,.075), rgba(255,255,255,.025));
  box-shadow:
    0 0 28px rgba(255,42,168,.15),
    0 12px 30px rgba(0,0,0,.25);
}

.offer-card.is-highlight:hover {
  border-color:#ff2aa8;
  box-shadow:
    0 0 34px rgba(255,42,168,.22),
    0 15px 34px rgba(0,0,0,.30);
}


/* =========================================================
   BADGES
   ========================================================= */

.offer-badge {
  display:inline-flex;
  align-self:center;
  align-items:center;
  justify-content:center;
  min-height:26px;
  margin:0 auto 13px;
  padding:4px 11px;
  box-sizing:border-box;
  border-radius:999px;
  background:rgba(255,42,168,.11);
  border:1px solid rgba(255,42,168,.24);
  color:#ff8fd0;
  font-size:.67rem;
  line-height:1;
  font-weight:900;
  letter-spacing:.7px;
  text-transform:uppercase;
}

.offer-badge-primary {
  background:#ff2aa8;
  border-color:#ff2aa8;
  color:#fff;
  box-shadow:0 0 16px rgba(255,42,168,.30);
}

.offer-badge-complete {
  color:#ffc1e5;
}

.offer-badge-period {
  color:#bbb;
  background:rgba(255,255,255,.045);
  border-color:rgba(255,255,255,.10);
}


/* =========================================================
   NOM + PRIX
   ========================================================= */

.offer-name {
  margin:0;
  color:#fff;
  text-align:center;
  font-size:1.42rem;
  line-height:1.2;
  font-weight:800;
}

.offer-price-area {
  min-height:126px;
  margin:17px 0 14px;
  text-align:center;
}

.offer-price {
  display:block;
  color:#fff;
  font-size:2.15rem;
  line-height:1.05;
  font-weight:900;
  letter-spacing:-.5px;
}

.is-highlight .offer-price {
  color:#ff63bd;
}

.offer-period {
  display:block;
  margin-top:5px;
  color:#aaa;
  font-size:.8rem;
  line-height:1.3;
}

.offer-old-price {
  display:block;
  margin-bottom:4px;
  color:#777;
  font-size:.86rem;
  line-height:1;
  text-decoration:line-through;
}

.offer-renewal {
  display:block;
  margin-top:6px;
  color:#bbb;
  font-size:.77rem;
  line-height:1.35;
}

.offer-monthly-equivalent {
  display:block;
  margin-top:5px;
  color:#ff8fd0;
  font-size:.79rem;
  line-height:1.3;
  font-weight:700;
}


/* =========================================================
   CODE PROMO
   ========================================================= */

.offer-promo {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  margin:0 0 18px;
}

.offer-promo-label {
  color:#999;
  font-size:.76rem;
  font-weight:600;
}

.offer-promo-code {
  display:inline-block;
  padding:9px 20px;
  border-radius:10px;
  background:rgba(255,42,168,.16);
  border:1px dashed rgba(255,42,168,.65);
  color:#ff72c4;
  font-size:1.05rem;
  line-height:1;
  font-weight:900;
  letter-spacing:1.5px;
  box-shadow:0 0 14px rgba(255,42,168,.14);
}


/* =========================================================
   AVANTAGES
   ========================================================= */

.offer-features {
  flex:1;
  margin:0;
  padding:17px 0 5px;
  list-style:none;
  border-top:1px solid rgba(255,255,255,.07);
}

.offer-features li {
  position:relative;
  margin:0;
  padding:6px 0 6px 23px;
  color:#d0d0d0;
  font-size:.82rem;
  line-height:1.4;
}

.offer-features li::before {
  content:"✓";
  position:absolute;
  top:6px;
  left:0;
  color:#ff4fb3;
  font-weight:900;
}

.offer-features li em,
.offer-features li small {
  color:#888;
}


/* =========================================================
   BOUTON
   ========================================================= */

.offer-action {
  margin-top:20px;
}

.offer-button {
  display:flex;
  width:100%;
  min-height:44px;
  box-sizing:border-box;
  align-items:center;
  justify-content:center;
  padding:11px 16px;
  border-radius:11px;
  border:1px solid rgba(255,42,168,.50);
  background:rgba(255,42,168,.10);
  color:#ff8fd0;
  text-decoration:none;
  font-size:.84rem;
  font-weight:800;
  transition:background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.offer-button:hover {
  background:rgba(255,42,168,.18);
  border-color:#ff2aa8;
  color:#fff;
}

.is-highlight .offer-button {
  background:#ff2aa8;
  border-color:#ff2aa8;
  color:#fff;
  box-shadow:0 0 18px rgba(255,42,168,.22);
}

.is-highlight .offer-button:hover {
  background:#e91e98;
  box-shadow:0 0 24px rgba(255,42,168,.34);
}


/* =========================================================
   CONDITIONS
   ========================================================= */

.offers-conditions {
  margin:22px auto 0;
  text-align:center;
}

.offers-conditions-toggle {
  padding:4px 2px;
  border:0;
  border-bottom:1px solid #777;
  background:none;
  color:#999;
  font-size:.68rem;
  cursor:pointer;
}

.offers-conditions-toggle:hover {
  color:#ff8fd0;
  border-color:#ff8fd0;
}

.offers-conditions-content {
  max-width:760px;
  margin:14px auto 0;
  padding:13px 16px;
  box-sizing:border-box;
  border-radius:10px;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.06);
}

.offers-conditions-content p {
  margin:0;
  color:#888;
  font-size:.68rem;
  line-height:1.55;
}


/* =========================================================
   TABLETTE
   ========================================================= */

@media (max-width:950px) and (min-width:651px) {
  .offers-grid {
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .offer-card:last-child:nth-child(odd) {
    grid-column:1 / -1;
    width:calc(50% - 9px);
    justify-self:center;
  }
}


/* =========================================================
   MOBILE — CARROUSEL OFFRES
   ========================================================= */

@media (max-width:768px), (orientation:landscape) and (max-height:500px) {

  .offers-page {
    margin:12px auto 28px;
    padding:20px 0;
  }

  .offers-shell {
    width:100%;
  }

  .offers-heading {
    padding:0 16px;
    font-size:1.65rem;
  }

  .offers-intro {
    margin-top:7px;
    padding:0 16px;
    font-size:.85rem;
  }

  .plans-carousel {
    position:relative;
    width:100%;
    margin-top:22px;
  }

  .plans-carousel .offers-grid {
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    justify-content:flex-start;
    gap:14px;
    width:100%;
    margin:0;
    padding:10px 0;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-padding-left:6%;
    scroll-padding-right:6%;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }

  .plans-carousel .offers-grid::-webkit-scrollbar {
    display:none;
  }

  .plans-carousel .offer-card {
    flex:0 0 88%;
    width:88%;
    min-width:88%;
    max-width:88%;
    box-sizing:border-box;
    scroll-snap-align:center;
  }

  .plans-carousel .offer-card:first-child {
    margin-left:6%;
  }

  .plans-carousel .offer-card:last-child {
    margin-right:6%;
  }

  .plans-carousel .home-video-arrow {
    display:flex !important;
  }

  .offer-card:hover {
    transform:none;
  }

  .offer-name {
    font-size:1.3rem;
  }

  .offer-price-area {
    min-height:0;
    margin:14px 0;
  }

  .offer-price {
    font-size:2rem;
  }

  .offer-features {
    padding-top:14px;
  }

  .offer-features li {
    padding-top:5px;
    padding-bottom:5px;
    font-size:.8rem;
  }

  .offer-features li::before {
    top:5px;
  }

  .offer-action {
    margin-top:16px;
  }

  .offer-button {
    min-height:46px;
  }
}

.offer-flash {
  width:fit-content;
  margin:16px auto -5px;
  padding:7px 16px;
  border-radius:999px;
  background:linear-gradient(90deg, #ff2aa8, #ff58bb, #ff2aa8);
  background-size:200% 100%;
  color:#fff;
  font-size:.72rem;
  line-height:1;
  font-weight:900;
  letter-spacing:.7px;
  text-transform:uppercase;
  box-shadow:0 0 18px rgba(255,42,168,.42);
  animation:offerFlashGlow 2.4s ease-in-out infinite;
}

@keyframes offerFlashGlow {
  0%,100% {
    box-shadow:0 0 12px rgba(255,42,168,.30);
    transform:scale(1);
  }
  50% {
    box-shadow:0 0 25px rgba(255,42,168,.60);
    transform:scale(1.025);
  }
}

@media (prefers-reduced-motion:reduce) {
  .offer-flash {
    animation:none;
  }
}

/* =========================================================
   SÉLECTION D'UNE OFFRE / PAIEMENT
   ========================================================= */

.offer-select-page {
  width:100%;
  max-width:1000px;
  margin:20px auto 40px;
  padding:0 18px;
  box-sizing:border-box;
}

.offer-select-shell {
  width:100%;
  padding:30px;
  box-sizing:border-box;
  border-radius:24px;
  border:1px solid rgba(255,42,168,.28);
  background:
    radial-gradient(circle at 50% 0%, rgba(255,42,168,.10), transparent 35%),
    linear-gradient(180deg, rgba(255,255,255,.025), rgba(0,0,0,.38));
  box-shadow:0 12px 40px rgba(0,0,0,.22);
}

.offer-select-heading {
  margin:0 0 6px;
  color:#fff;
  text-align:center;
  font-size:clamp(1.6rem,4vw,2.1rem);
  line-height:1.15;
  font-weight:800;
}

.offer-select-heading span {
  color:#ff2aa8;
}

.offer-select-intro {
  max-width:600px;
  margin:0 auto 27px;
  color:#999;
  text-align:center;
  font-size:.88rem;
  line-height:1.45;
}

.offer-select-layout {
  display:grid;
  grid-template-columns:minmax(260px, .85fr) minmax(350px, 1.15fr);
  gap:22px;
  align-items:start;
}


/* IMAGE PACK */

.offer-pack-card {
  display:flex;
  flex-direction:column;
  align-self:start;
  padding:12px;
  box-sizing:border-box;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(circle at 50% 0%, rgba(255,42,168,.09), transparent 52%),
    rgba(255,255,255,.025);
  overflow:hidden;
}

.offer-pack-image {
  display:block;
  width:100%;
  aspect-ratio:4 / 5;
  object-fit:cover;
  object-position:center;
  border-radius:14px;
}

.offer-pack-info {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:18px 10px 12px;
  text-align:center;
}

.offer-pack-label {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:0 0 9px;
  padding:5px 11px;
  border:1px solid rgba(255,42,168,.32);
  border-radius:999px;
  background:rgba(255,42,168,.09);
  color:#ff8fd0;
  font-size:.62rem;
  line-height:1;
  font-weight:800;
  letter-spacing:.7px;
  text-transform:uppercase;
}

.offer-pack-name {
  margin:0;
  color:#fff;
  font-size:1.25rem;
  line-height:1.2;
  font-weight:800;
}

.offer-pack-caption {
  margin:5px 0 0;
  color:#888;
  font-size:.72rem;
  line-height:1.3;
}

/* CARTE PAIEMENT */

.offer-checkout-card {
  display:flex;
  flex-direction:column;
  padding:25px 24px;
  box-sizing:border-box;
  border-radius:20px;
  border:1px solid rgba(255,42,168,.42);
  background:
    radial-gradient(circle at 50% 0%, rgba(255,42,168,.12), transparent 36%),
    rgba(255,255,255,.035);
  box-shadow:0 0 26px rgba(255,42,168,.10);
}

.offer-checkout-name {
  margin:0;
  color:#fff;
  text-align:center;
  font-size:1.55rem;
  line-height:1.2;
  font-weight:800;
}


/* PROMO */

.offer-checkout-promo {
  margin:16px 0 4px;
  text-align:center;
}

.offer-checkout-promo .offer-flash {
  margin:0 auto 13px;
}

.offer-checkout-old-price {
  display:block;
  color:#777;
  font-size:.86rem;
  line-height:1;
  text-decoration:line-through;
}

.offer-checkout-price {
  display:block;
  margin-top:5px;
  color:#ff63bd;
  font-size:2.25rem;
  line-height:1.05;
  font-weight:900;
}

.offer-checkout-period {
  display:block;
  margin-top:5px;
  color:#999;
  font-size:.76rem;
}

.offer-checkout-renewal {
  display:block;
  margin-top:6px;
  color:#bbb;
  font-size:.76rem;
}

.offer-checkout-code-label {
  display:block;
  margin:17px 0 6px;
  color:#999;
  font-size:.76rem;
  font-weight:600;
}


/* SÉPARATEUR */

.offer-checkout-separator {
  width:100%;
  height:1px;
  margin:20px 0;
  background:linear-gradient(90deg, transparent, rgba(255,42,168,.35), transparent);
}


/* CODE PROMO À SAISIR */

.offer-promo-form {
  display:flex;
  align-items:stretch;
  gap:8px;
  width:100%;
  max-width:420px;
  margin:0 auto;
}

.offer-promo-input {
  flex:1 1 auto;
  min-width:0;
  width:100%;
  height:42px !important;
  min-height:42px !important;
  margin:0 !important;
  padding:0 13px !important;
  box-sizing:border-box !important;
  border:1px solid rgba(255,42,168,.32);
  border-radius:10px;
  outline:none;
  background:rgba(0,0,0,.38);
  color:#fff;
  font-size:.8rem;
  line-height:42px;
}

.offer-promo-input:focus {
  border-color:#ff2aa8;
  box-shadow:0 0 0 2px rgba(255,42,168,.08);
}

.offer-promo-apply {
  flex:0 0 auto;
  height:42px !important;
  min-height:42px !important;
  margin:0 !important;
  padding:0 16px !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:1px solid rgba(255,42,168,.48);
  border-radius:10px;
  background:rgba(255,42,168,.10);
  color:#ff8fd0;
  font-size:.78rem;
  font-weight:800;
  line-height:1 !important;
  cursor:pointer;
}

.offer-promo-apply:hover {
  background:rgba(255,42,168,.18);
  border-color:#ff2aa8;
  color:#fff;
}

.offer-promo-message {
  min-height:18px;
  margin:6px 0 0;
  color:#ff8fd0;
  text-align:center;
  font-size:.76rem;
}

/* TOTAL */

.offer-total {
  margin:13px 0 0;
  padding:14px 12px;
  border-radius:12px;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.06);
  text-align:center;
}

.offer-total-label {
  display:block;
  margin-bottom:4px;
  color:#999;
  font-size:.72rem;
}

.offer-total-price {
  display:block;
  color:#fff;
  font-size:1.35rem;
  line-height:1.25;
  font-weight:900;
}

.offer-total-equivalent {
  display:block;
  margin-top:4px;
  color:#ff8fd0;
  font-size:.72rem;
}


/* SÉCURITÉ */

.offer-security {
  margin:14px 0 0;
  color:#777;
  text-align:center;
  font-size:.66rem;
  line-height:1.5;
}


/* VÉRIFICATION ÂGE */

.offer-age-warning {
  margin:14px 0 0;
  padding:11px 13px;
  box-sizing:border-box;
  border-radius:11px;
  background:rgba(255,42,168,.055);
  border:1px solid rgba(255,42,168,.28);
  text-align:center;
}

.offer-age-warning strong {
  display:block;
  margin-bottom:5px;
  color:#ff8fd0;
  font-size:.78rem;
}

.offer-age-warning p {
  margin:0 0 8px;
  color:#aaa;
  font-size:.72rem;
  line-height:1.4;
}

.offer-age-button {
  display:inline-flex;
  padding:7px 12px;
  border-radius:8px;
  background:rgba(255,42,168,.12);
  border:1px solid rgba(255,42,168,.40);
  color:#ff8fd0;
  text-decoration:none;
  font-size:.72rem;
  font-weight:800;
}


/* BOUTON PAIEMENT */

.offer-checkout-button {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:48px;
  margin-top:18px;
  padding:11px 16px;
  box-sizing:border-box;
  border:1px solid #ff2aa8;
  border-radius:11px;
  background:#ff2aa8;
  color:#fff;
  text-decoration:none;
  font-size:.88rem;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 0 18px rgba(255,42,168,.20);
  transition:background .2s ease, box-shadow .2s ease, transform .2s ease;
}

.offer-checkout-button:hover {
  background:#e91e98;
  box-shadow:0 0 25px rgba(255,42,168,.34);
  transform:translateY(-1px);
}


/* RENOUVELLEMENT + CARTES */

.offer-renewal-info {
  margin:15px 0 0;
  color:#888;
  text-align:center;
  font-size:.68rem;
  line-height:1.45;
}

.offer-payment-image {
  display:block;
  width:90%;
  max-width:430px;
  height:auto;
  margin:10px auto 0;
}


/* RETOUR */

.offer-select-back {
  display:flex;
  justify-content:center;
  margin-top:22px;
}

.offer-select-back a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:0 18px;
  box-sizing:border-box;
  border:1px solid rgba(255,42,168,.48);
  border-radius:10px;
  background:rgba(255,42,168,.10);
  color:#ff8fd0;
  font-size:.78rem;
  font-weight:800;
  text-decoration:none;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
}

.offer-select-back a:hover {
  background:rgba(255,42,168,.18);
  border-color:#ff2aa8;
  color:#fff;
}


/* MESSAGES ABONNEMENT EXISTANT */

.offer-status {
  width:calc(100% - 32px);
  max-width:560px;
  margin:60px auto;
  padding:35px 28px;
  box-sizing:border-box;
  border-radius:20px;
  border:1px solid rgba(255,42,168,.45);
  background:
    radial-gradient(circle at top, rgba(255,42,168,.12), transparent 42%),
    rgba(255,255,255,.03);
  box-shadow:0 0 28px rgba(255,42,168,.10);
  text-align:center;
}

.offer-status h1 {
  margin:0 0 13px;
  color:#fff;
  font-size:1.5rem;
}

.offer-status p {
  margin:0 0 22px;
  color:#aaa;
  font-size:.9rem;
  line-height:1.5;
}


/* MOBILE */

@media (max-width:750px) {
  .offer-select-page {
    margin:12px auto 28px;
    padding:0 10px;
  }

  .offer-select-shell {
    padding:21px 12px 18px;
    border-radius:18px;
  }

  .offer-select-layout {
    display:flex;
    flex-direction:column;
    gap:14px;
  }

  .offer-checkout-card {
    order:1;
    padding:21px 17px 18px;
    border-radius:17px;
  }

  .offer-pack-card {
    order:2;
    padding:10px;
    border-radius:17px;
  }

  .offer-pack-image {
    max-height:none;
  }

  .offer-select-heading {
    font-size:1.55rem;
  }

  .offer-select-intro {
    margin-bottom:20px;
    font-size:.82rem;
  }

  .offer-checkout-price {
    font-size:2rem;
  }

  .offer-promo-form {
    flex-direction:column;
  }

  .offer-promo-apply {
    width:100%;
  }
}
