/* V106 — défilement natif et adaptation ordinateur / tablette / téléphone */
html{overflow-y:scroll;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#ef334b #061d32;-webkit-text-size-adjust:100%;text-size-adjust:100%}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:#061d32}
::-webkit-scrollbar-thumb{background:#ef334b;border:3px solid #061d32;border-radius:12px}
::-webkit-scrollbar-thumb:hover{background:#ff6273}
::-webkit-scrollbar-corner{background:#061d32}
video{max-width:100%;height:auto}
.hero-grid>*,.grid-2>*,.footer-grid>*,.cards>*,.formula-grid>*,.contact-hero-grid>*,.about-hero-grid>*,.about-bio-grid>*{min-width:0}
.panel,.acc-a,.footer p{overflow-wrap:anywhere}
.table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.acc-q{gap:14px;align-items:center;min-height:48px}
.acc-q>span:last-child{flex-shrink:0}
.form input,.form textarea,.form select{font-size:16px;min-height:48px}
.form textarea{resize:vertical}
.menu-toggle{min-width:44px;min-height:44px;cursor:pointer;flex-shrink:0}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #63caff;outline-offset:4px}
#demande-nom{scroll-margin-top:110px}
.site-header{-webkit-backdrop-filter:blur(16px)}
@media(max-width:1200px){
 .header-inner{position:relative}
 .menu-toggle{display:block}
 .nav{display:none;position:absolute;top:100%;left:0;right:0;background:#031525;padding:18px;flex-direction:column;align-items:stretch;gap:8px;border:1px solid #17445f;border-radius:0 0 14px 14px;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px);overflow-y:auto;overscroll-behavior:contain}
 .nav.open{display:flex}
 .nav>a{display:flex;align-items:center;min-height:44px;padding:8px 10px}
 .nav a.active:after{bottom:0}
 .nav .header-cta-wrap{width:100%;height:auto;margin:8px 0 0}
 .nav .cta{width:100%;min-height:48px;text-align:center;white-space:normal}
}
@media(max-width:600px){
 .header-inner{gap:8px}
 .site-header .brand{min-width:0;gap:8px}
 .site-header .brand-mark{width:44px;height:44px;flex-shrink:0}
 .site-header .brand-text span{font-size:18px}
 .site-header .brand-text small{font-size:7px;letter-spacing:.06em}
 .hero h1{font-size:clamp(34px,10vw,50px)}
 .page-hero h1{font-size:clamp(30px,8vw,46px);overflow-wrap:anywhere}
 .panel{padding:20px}
 .footer-bottom{flex-wrap:wrap;gap:12px}
 .footer-links{flex-wrap:wrap}
 .tarifs-cta h2{font-size:30px}
 .contact-copy-offer-wrap{flex-wrap:wrap}
}
@media(max-width:360px){
 .site-header .brand-text span{font-size:16px}
 .site-header .brand-text small{font-size:6px}
 .site-header .brand-mark{width:38px;height:38px}
 .footer-brand .brand-text span{font-size:16px}
 .footer-brand{gap:8px}
 .footer-mark{width:46px;height:46px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
@media(hover:none){.cta:hover,.btn:hover{transform:none}}

/* V113 — nom du lycée lisible indépendamment de la photo */
.trust-logos-four .logo-theophile .lycee-name-label{
 position:absolute;left:8px;right:8px;bottom:8px;z-index:6;
 display:block;margin:0;padding:8px 6px;border-radius:8px;
 background:rgba(3,21,37,.88);color:#fff;text-align:center;
 font-family:Arial,Helvetica,sans-serif;font-size:clamp(14px,1.25vw,18px);
 font-weight:800;line-height:1.2;letter-spacing:0;
 white-space:normal;overflow-wrap:normal;word-break:normal;
 text-shadow:none;pointer-events:none;
}
.lycee-name-label span{display:block}
@media(max-width:760px){
 .trust-logos-four .logo-theophile .lycee-name-label{font-size:16px;padding:8px 5px}
}
@media(max-width:430px){
 .trust-logos-four .logo-theophile .lycee-name-label{font-size:18px}
}

/* V114 — cercle et invitation alignés sur le même axe */
.contact-hero-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,380px)}
.contact-offer-group{display:flex;flex-direction:column;align-items:center;justify-self:center;width:100%;max-width:380px;min-width:0;gap:18px}
.contact-offer-group .discovery-badge-contact{margin:0 auto!important;align-self:center;flex-shrink:0}
.contact-offer-group .contact-action-card{width:100%;max-width:380px;margin:0;align-self:center}
@media(max-width:900px){
 .contact-hero-grid{grid-template-columns:minmax(0,1fr)}
 .contact-offer-group{margin:8px auto 0;gap:16px}
}

/* V115 — Accueil : cercle « entretien découverte » centré sur la photo en mobile.
   L'emplacement d'origine à côté du bouton est conservé sur ordinateur. */
.hero .hero-visual .discovery-stamp-hero-on-photo { display: none; }
@media (max-width: 900px) {
  .hero .cta-offer-wrap > .discovery-stamp-hero { display: none; }
  .hero .hero-visual::after { z-index: 1; }
  .hero .hero-visual .discovery-stamp-hero-on-photo {
    display: flex;
    position: absolute;
    left: 50%;
    right: auto;
    bottom: 20px;
    top: auto;
    margin: 0;
    transform: translateX(-50%);
    z-index: 2;
    max-width: calc(100% - 32px);
  }
}
@media (max-width: 560px) {
  .hero .hero-visual .discovery-stamp-hero-on-photo {
    width: 168px;
    min-height: 168px;
    bottom: 16px;
  }
}


/* V116 — Accueil : sur téléphone uniquement, la photo de l’athlète s’affiche
   immédiatement sous la barre de navigation, en bandeau ajusté à l’écran.
   Sur ordinateur, la présentation et la disposition restent inchangées. */
@media (max-width:600px) {
  .hero { padding-top:0; }
  .hero .hero-grid {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:26px;
  }
  .hero .hero-visual {
    order:-1;
    width:100vw;
    max-width:100vw;
    margin-left:calc(50% - 50vw);
    height:clamp(270px,90vw,370px);
    min-height:0;
    border-radius:0 0 20px 20px;
  }
  .hero .hero-visual img {
    display:block;
    width:100%;
    height:100%;
    min-height:0;
    object-fit:cover;
    object-position:center 44%;
  }
  .hero .hero-grid > div:first-child { width:100%; }
}

/* V117 — Accueil : masquer le cercle posé sur la photo uniquement sur téléphone.
   L’offre à côté du bouton sur ordinateur reste visible et inchangée. */
@media (max-width: 600px) {
  .hero .hero-visual .discovery-stamp-hero-on-photo { display: none; }
}

/* V118 — Page Tarifs : titre d'appel à l'action adapté uniquement aux téléphones.
   La ponctuation reste sur la même ligne, sans changer la version ordinateur. */
@media (max-width: 600px) {
  .tarifs-cta h2 {
    font-size: clamp(18px, 5.4vw, 25px);
    line-height: 1.2;
    letter-spacing: -0.025em;
    white-space: nowrap;
  }
}


/* V119 — Accueil mobile : le titre de la bannière finale est légèrement réduit
   et le point d'interrogation reste attaché au dernier mot. */
@media (max-width: 600px) {
  .cta-band h2 {
    font-size: clamp(16px, 7vw, 24px);
    line-height: 1.12;
    letter-spacing: -0.03em;
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
}

/* V120 — FAQ : centrer le médaillon « Entretien découverte 30 min offert »
   sur les téléphones uniquement ; la disposition ordinateur est conservée. */
@media (max-width: 600px) {
  .faq-page-hero .faq-title-row .faq-offer-stamp {
    align-self: center;
    margin-left: auto;
    margin-right: auto;
  }
}

/* V129 — Corrections strictement mobiles (<= 600px).
   1. Tarifs : les points d'interrogation restent avec le mot précédent.
   2. Accueil : remplacer uniquement sur mobile le fond CTA par une photo
      débarrassée du trait bleu qui était déjà incrusté dans l'image. */
@media (max-width: 600px) {
  .tarifs-cta h2 {
    font-size: clamp(15.5px, 5vw, 22px);
    white-space: nowrap;
    line-height: 1.2;
    letter-spacing: -0.025em;
  }
  .tarifs-page .tarifs-question-keep {
    white-space: nowrap;
  }
  .cta-band .bg {
    background-image:
      linear-gradient(90deg,#04182a 0%,rgba(4,24,42,.9) 38%,rgba(4,24,42,.15) 100%),
      url('cta-mountain-mobile.jpg');
  }
}
