/**
 * Legacy — textes responsive
 * Uniquement tailles / largeurs / wrap — aucune override d’animation
 * (pas d’opacity, transform, filter, visibility)
 */

:root {
  --lt-hero: clamp(1.6rem, 4.8vw + 0.6rem, 3.25rem);
  --lt-title: clamp(1.35rem, 2.6vw + 0.7rem, 2.25rem);
  --lt-title-lg: clamp(1.15rem, 1.8vw + 0.7rem, 1.7rem);
  --lt-body: clamp(0.9rem, 0.35vw + 0.82rem, 1.05rem);
  --lt-small: clamp(0.7rem, 0.2vw + 0.66rem, 0.8rem);
  --lt-nav: clamp(0.65rem, 0.15vw + 0.6rem, 0.75rem);
  --lt-pad: clamp(1rem, 3vw, 2rem);
  --lt-measure: min(38rem, 100%);
}

/* ---------- Base ---------- */
body {
  font-size: var(--lt-body);
  line-height: 1.65;
  overflow-wrap: break-word;
}

p,
.home-intro__sub p,
.block-1 p,
.footer__p p,
.aas-detail p,
.block-contact p {
  font-size: var(--lt-body);
  line-height: 1.7;
  max-width: var(--lt-measure);
}

div.home-intro__sub,
div.home-intro__sub.fios {
  max-width: var(--lt-measure);
}

/* ---------- Médaille N°1 centrée ---------- */
.legacy-n1-wrap {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  float: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 1rem;
  padding-right: 1rem;
  transform: none !important;
}

.legacy-n1,
.legacy-n1 .dolly,
.legacy-n1 .parallax-mask {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
  transform: none !important;
  left: auto !important;
  right: auto !important;
}

.legacy-n1__img {
  display: block !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: min(280px, 72vw);
  width: 100%;
  height: auto;
}

@media (min-width: 992px) {
  .legacy-n1__img {
    max-width: min(340px, 28vw);
  }
}

.home-hero {
  padding-left: var(--lt-pad);
  padding-right: var(--lt-pad);
  box-sizing: border-box;
}

.home-hero__title {
  font-size: var(--lt-hero) !important;
  line-height: 1.18 !important;
  letter-spacing: -0.02em;
  max-width: min(92vw, 40rem) !important;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  text-wrap: unset;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  white-space: normal;
}

/* Empêche la coupure au milieu d’un mot (SplitText type:chars) */
.home-hero__title .home-hero__word {
  display: inline-block;
  white-space: nowrap;
  max-width: none;
  vertical-align: baseline;
}

.home-hero__title .home-hero__word .char,
.home-hero__title .home-hero__word > span {
  white-space: nowrap;
}

.home-hero__title div,
.home-hero__title span {
  max-width: none;
}

.home-hero__text {
  font-size: clamp(0.85rem, 1.4vw + 0.7rem, 1.02rem) !important;
  line-height: 1.55 !important;
  max-width: min(34rem, 100%);
  padding-left: 0;
  padding-right: 0;
  text-wrap: pretty;
}

/* ---------- Eyebrows ---------- */
h4.home-intro__sub,
h6.block-1__sub {
  font-size: var(--lt-small) !important;
  letter-spacing: 0.12em;
  line-height: 1.4;
  padding-left: var(--lt-pad);
  padding-right: var(--lt-pad);
  margin-left: auto;
  margin-right: auto;
  text-align: center !important;
}

/* ---------- Tous les titres centrés ---------- */
h1,
h2,
h3,
h4,
h5,
h6,
.home-hero__title,
.block-c__title,
.aas-hero__title,
.home-intro__title,
.block-2__title,
.block-contact__title--2,
.memberships-block__heading,
.typo--xxl,
.moodboard__title,
.footer__t--2 {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.block-c__title,
.aas-hero__title,
.home-intro__title,
.block-2__title {
  font-size: var(--lt-title) !important;
  line-height: 1.22 !important;
  letter-spacing: -0.015em;
  max-width: min(28ch, 100%);
  text-wrap: balance;
}

.home-intro {
  padding-left: var(--lt-pad);
  padding-right: var(--lt-pad);
  text-align: center;
}

.home-intro .block-c__title {
  max-width: min(28ch, 100%);
}

.block-1 .block-c__title,
.stagger-in__el .block-c__title {
  max-width: min(22ch, 100%);
}

.block-1 .stagger-in__el,
.block-1 .col-lg-10 {
  text-align: center;
}

.block-1 .home-intro__sub {
  margin-left: auto;
  margin-right: auto;
}

.block-1 .home-intro__sub p {
  max-width: var(--lt-measure);
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* Titres longs (bandeaux / formulaires) */
.block-f .gwrap {
  text-align: center;
}

.block-f .block-c__title,
h3.block-c__title {
  font-size: var(--lt-title-lg) !important;
  line-height: 1.35 !important;
  max-width: min(42rem, 100%) !important;
  letter-spacing: -0.01em;
  text-wrap: balance;
  padding-left: var(--lt-pad);
  padding-right: var(--lt-pad);
}

.block-f .block-f__cta,
.block-c .block-c__cta {
  margin-left: auto;
  margin-right: auto;
  display: inline-flex;
}

.block-c {
  text-align: center;
}

.block-c > h2.block-c__title.fios {
  max-width: min(36rem, 100%);
  width: auto;
  padding-left: var(--lt-pad);
  padding-right: var(--lt-pad);
}

.block-contact__title--2,
h1.block-contact__title--2 {
  font-size: var(--lt-title-lg) !important;
  line-height: 1.4 !important;
  max-width: min(40rem, 100%);
  padding-left: var(--lt-pad);
  padding-right: var(--lt-pad);
  text-wrap: balance;
}

p.home-intro__sub {
  font-size: var(--lt-body);
  line-height: 1.65;
  max-width: min(40rem, 100%);
  padding-left: var(--lt-pad);
  padding-right: var(--lt-pad);
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

/* ---------- Header / menu ---------- */
.header__right-menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
}

.header__account-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: inherit;
  text-decoration: none;
  font-size: var(--lt-nav);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.82;
  transition: opacity 0.25s ease, color 0.25s ease;
  padding: 0.35rem 0.15rem;
}

.header__account-link--fixed {
  position: fixed;
  top: 0;
  /* Aligné verticalement avec Menu / Réserver */
  right: clamp(14.5rem, 22vw, 17.5rem);
  z-index: 108;
  mix-blend-mode: difference;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 1.85rem 0;
  padding: 1.25rem 0.75rem;
  height: auto;
  line-height: 1;
  opacity: 1;
  font-family: "Mont", sans-serif;
  font-size: clamp(0.58rem, 0.15vw + 0.55rem, 0.68rem);
  letter-spacing: 0.08em;
  white-space: nowrap;
  box-sizing: border-box;
}

.header__account-link--fixed:hover {
  opacity: 0.85;
  color: #fff;
}

.header__account-link--fixed .header__account-label {
  max-width: 5.5rem;
}

.header__account-link--fixed .header__account-icon {
  display: block;
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}

body.is-reserve-open .header__account-link--fixed {
  mix-blend-mode: normal;
  color: #000;
  z-index: 1095;
}

.header__account-link:hover {
  opacity: 1;
  color: inherit;
}

.header__account-link.is-authenticated {
  opacity: 1;
}

.header__account-icon {
  flex-shrink: 0;
  width: clamp(18px, 2vw, 22px);
  height: clamp(18px, 2vw, 22px);
}

.header__account-label {
  max-width: 8rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Menu : desktop masqué (nav gauche déjà visible) ; mobile uniquement */
@media (min-width: 992px) {
  .header__menu-toggle {
    display: none !important;
  }

  /* Desktop : Connexion alignée avec Réserver (même top / margin / padding) */
  .header__account-link--fixed {
    margin: 1.85rem 0;
    padding: 1.25rem 0.85rem;
    right: clamp(13.5rem, 20vw, 16.5rem);
  }
}

@media (max-width: 991.98px) {
  .header__account-link--fixed {
    /* Même marge / padding vertical que .header__menu-toggle */
    margin: 0.85rem 0;
    padding: 1.25rem 0.5rem;
    /* Juste à gauche du Menu */
    right: clamp(6.25rem, 24vw, 9rem);
    min-width: 2.75rem;
    min-height: 2.75rem;
  }

  .header__account-link--fixed .header__account-label {
    display: none;
  }

  .header__account-link--fixed .header__account-icon {
    width: 24px;
    height: 24px;
  }
}

.header__left-menu a {
  font-size: var(--lt-nav);
  letter-spacing: 0.08em;
}

.header__menu-main a,
.header__menu-main-lnk--1 {
  font-size: clamp(1.15rem, 3.5vw + 0.5rem, 2.35rem) !important;
  line-height: 1.1;
  max-width: 100%;
  text-wrap: balance;
}

/* ---------- CTA ---------- */
.block-f__cta,
.block-c__cta,
.ctaos,
.memberships-plan__btn,
.memberships-block__btn {
  font-size: clamp(0.62rem, 0.15vw + 0.58rem, 0.72rem);
  letter-spacing: 0.07em;
  max-width: 100%;
}

/* ---------- Memberships ---------- */
.memberships-block {
  padding-left: var(--lt-pad);
  padding-right: var(--lt-pad);
}

.memberships-block__intro {
  text-align: center;
}

.memberships-block__heading {
  font-size: clamp(1.3rem, 2.2vw + 0.8rem, 2rem) !important;
  line-height: 1.2;
  max-width: min(24ch, 100%);
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
  text-wrap: balance;
}

.memberships-block__subtitle,
.memberships-block__lead,
.memberships-plan__features li,
.memberships-infra {
  font-size: var(--lt-small);
  line-height: 1.6;
}

.memberships-block__subtitle,
.memberships-block__lead {
  max-width: min(32rem, 100%);
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.memberships-block__footnote {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  max-width: min(40rem, 100%);
}

.memberships-plan__name {
  font-size: clamp(0.9rem, 0.4vw + 0.8rem, 1rem);
}

.memberships-plan__price {
  font-size: clamp(1.15rem, 1.2vw + 0.9rem, 1.6rem);
}

/* ---------- Footer ---------- */
.footer {
  padding-left: var(--lt-pad);
  padding-right: var(--lt-pad);
}

.footer__t--2.block-c__title,
h4.block-c__title.footer__t--2 {
  font-size: clamp(1.15rem, 1.8vw + 0.7rem, 1.75rem) !important;
  line-height: 1.25;
  max-width: min(18ch, 100%);
  text-align: center !important;
}

.footer h4.footer__t--2:not(.block-c__title) {
  font-size: var(--lt-small);
  letter-spacing: 0.1em;
  text-align: center !important;
}

.footer__p p,
.footer__nav a {
  font-size: var(--lt-small);
  line-height: 1.55;
  max-width: min(22rem, 100%);
}

.footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem 1rem;
}

.home__scroll-down i,
.home__scroll-down span {
  font-size: clamp(0.58rem, 0.2vw + 0.55rem, 0.68rem);
}

/* ---------- Tablette ---------- */
@media (max-width: 991.98px) {
  .home-hero__title {
    max-width: min(92vw, 34rem) !important;
    font-size: clamp(1.45rem, 4.8vw, 2.35rem) !important;
  }

  .block-1 .block-c__title,
  .stagger-in__el .block-c__title,
  .block-1 .home-intro__sub p {
    max-width: 100%;
  }

  .header__left-menu a {
    font-size: 0.62rem;
  }

  .memberships-infra {
    columns: 1;
  }
}

/* ---------- Mobile ---------- */
@media (max-width: 767.98px) {
  :root {
    --lt-hero: clamp(1.35rem, 6.2vw, 1.95rem);
    --lt-title: clamp(1.25rem, 5.5vw, 1.85rem);
    --lt-title-lg: clamp(1.05rem, 4.2vw, 1.35rem);
    --lt-pad: 1.1rem;
  }

  .home-hero__title {
    max-width: min(94vw, 22rem) !important;
    line-height: 1.22 !important;
    font-size: clamp(1.28rem, 5.8vw, 1.85rem) !important;
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    box-sizing: border-box;
  }

  .home-hero__text {
    font-size: 0.875rem !important;
    line-height: 1.5 !important;
    max-width: 100%;
  }

  .block-c__title:not(.footer__t--2),
  .block-f .block-c__title,
  h3.block-c__title,
  .block-contact__title--2,
  .block-1 .block-c__title,
  .block-1 .home-intro__sub p,
  p,
  .footer__t--2.block-c__title,
  .memberships-block__heading,
  .block-c > h2.block-c__title.fios {
    max-width: 100%;
  }

  .header__left-menu {
    display: none;
  }
}

/* ---------- Très petit ---------- */
@media (max-width: 380px) {
  :root {
    --lt-hero: 1.2rem;
    --lt-title: 1.2rem;
    --lt-pad: 0.9rem;
  }

  .home-hero__title {
    max-width: 96vw !important;
    font-size: clamp(1.12rem, 5.2vw, 1.4rem) !important;
  }

  .home-hero__text {
    font-size: 0.82rem !important;
  }
}

/* ---------- Grand écran ---------- */
@media (min-width: 1400px) {
  .home-hero__title {
    max-width: min(90vw, 44rem) !important;
  }

  .home-intro .block-c__title {
    max-width: 30ch;
  }
}
