/* Modèle commun issu de seconde/phobie-scolaire. */
/* Variables héritées de profil.css pour composants domaine (accordion, tarif, calendrier, matières, vacances, contact) */
    :root{--rouge:#DD2628;--noir:#0A0A0A;--blanc:#ffffff;--gris:#E5E5E5;--gris-mid:#F7F7F7;--texte-sec:#6E6E73;--texte:#0A0A0A;--jaune:#FFEC00}

    /* Section head — variante h1 pour hero-copy conservée par charte */
    .home-badge{display:inline-flex;align-items:center;font-size:.62rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;background:#ffe0e2;color:#DD2628;border-radius:99px;padding:6px 14px;width:fit-content;margin:8px 0}
    .home-badge--blue{background:#e6f3ff;color:#1e4e8c}

    /* Accordéons */
    .accordion{display:flex;flex-direction:column;gap:10px;margin-bottom:32px}
    .acc-item{background:#FAFAFA;border-radius:16px;overflow:hidden;transition:transform .2s}
    .acc-item.open{background:#FAFAFA;transform:scale(1.01)}
    .acc-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:transparent;border:none;cursor:pointer;font-family:'Onest',system-ui,sans-serif;text-align:left;-webkit-tap-highlight-color:transparent}
    .acc-item.open .acc-trigger{background:var(--rouge);border-radius:12px;margin:6px 6px 0;width:calc(100% - 12px);padding:12px 14px}
    .acc-ic{flex-shrink:0;width:34px;height:34px;border-radius:10px;background:var(--rouge);display:flex;align-items:center;justify-content:center;transition:background .25s}
    .acc-ic svg{display:block;width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
    .acc-item.open .acc-ic{background:rgba(255,255,255,.25)}
    .acc-label{flex:1;font-size:1rem;font-weight:700;color:var(--noir);transition:color .25s}
    .acc-item.open .acc-label{color:#fff}
    .acc-chevron{flex-shrink:0;transition:transform .25s cubic-bezier(.4,0,.2,1)}
    .acc-chevron svg{display:block;width:16px;height:16px;stroke:var(--texte-sec);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;transition:stroke .25s}
    .acc-item.open .acc-chevron svg{stroke:rgba(255,255,255,.8)}
    .acc-item.open .acc-chevron{transform:rotate(180deg)}
    .acc-body{overflow:hidden;max-height:0;transition:max-height .35s cubic-bezier(.4,0,.2,1)}
    .acc-body-inner{padding:14px 18px 18px 18px;font-size:.875rem;line-height:1.75;color:var(--noir)}

    /* Carrousels matières et vacances */
    .mat-carousel-wrap{overflow:hidden;margin:16px 0 8px}
    .mat-carousel{display:flex;gap:12px;width:max-content;animation:mat-marquee 30s linear infinite;will-change:transform}
    .mat-carousel-wrap:hover .mat-carousel{animation-play-state:paused}
    @keyframes mat-marquee{to{transform:translateX(-50%)}}
    .mat-card{flex:0 0 auto;width:140px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;background:#fff;border:1.5px solid #EBEBEB;border-radius:14px;text-align:center}
    .mat-ic{flex-shrink:0;width:36px;height:36px;border-radius:11px;display:flex;align-items:center;justify-content:center}
    .mat-ic svg{width:17px;height:17px;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
    .mat-name{font-size:.8rem;font-weight:800;line-height:1.2}
    .mat-rouge{background:var(--rouge)}
    .mat-rouge svg{stroke:#fff}

    .vac-carousel-wrap{overflow:hidden;margin:16px 0 32px}
    .vac-carousel{display:flex;gap:12px;width:max-content;animation:vac-marquee 25s linear infinite;will-change:transform}
    .vac-carousel-wrap:hover .vac-carousel{animation-play-state:paused}
    @keyframes vac-marquee{to{transform:translateX(-50%)}}
    .vac-card{flex:0 0 auto;display:flex;align-items:center;gap:12px;padding:14px 20px;background:#fff;border:1.5px solid #EBEBEB;border-radius:14px;min-width:220px}
    .vac-dot{flex-shrink:0;width:10px;height:10px;border-radius:50%}
    .vac-dot--rentree{background:var(--rouge)}
    .vac-dot--vac{background:var(--jaune);border:1.5px solid #DFC400}
    .vac-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
    .vac-period{font-size:.82rem;font-weight:800;color:var(--noir)}
    .vac-dates{font-size:.73rem;color:var(--texte-sec);font-weight:500}

    /* Semaine type (planning) */
    .amenag-pill-wrap{display:inline-flex;background:var(--gris);border-radius:40px;padding:4px;margin-bottom:20px}
    .amenag-pill-btn{padding:8px 22px;border:none;border-radius:36px;font-size:.85rem;font-weight:700;cursor:pointer;background:transparent;color:var(--texte);font-family:inherit;transition:background .15s,color .15s}
    .cal-days-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-bottom:20px;background:var(--gris-mid);border-radius:14px;padding:4px}
    .cal-day-btn{display:flex;align-items:center;justify-content:center;padding:9px 4px;border-radius:10px;border:none;background:transparent;cursor:pointer;font-family:'Onest',system-ui,sans-serif;font-size:.82rem;font-weight:700;color:var(--texte-sec);transition:background .15s,color .15s;-webkit-tap-highlight-color:transparent}
    .cal-day-btn.active{background:var(--rouge);color:#fff}
    .cal-day-panel{display:none}
    .cal-day-panel.active{display:block}
    .cal-body{display:flex;gap:0;position:relative}
    .cal-times{position:relative;width:0}
    .cal-time{position:absolute;right:8px;font-size:.6rem;font-weight:600;color:var(--texte-sec);transform:translateY(-50%);white-space:nowrap;display:none}
    .cal-grid{flex:1;position:relative;height:425px}
    .cal-line{display:none}
    .cal-evt{position:absolute;left:6px;right:5px;border-radius:10px;padding:8px 10px;overflow:hidden;border-left-width:3px;border-left-style:solid;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:filter .15s}
    .cal-evt:active{filter:brightness(.93)}
    .cal-evt::after{content:'?';position:absolute;top:7px;right:8px;width:20px;height:20px;border-radius:6px;font-size:.85rem;font-weight:900;display:flex;align-items:center;justify-content:center}
    .cal-evt--cours::after{background:rgba(59,111,232,.15);color:#3B6FE8}
    .cal-evt--pause::after{background:rgba(110,110,115,.12);color:var(--texte-sec)}
    .cal-evt--modules::after{background:rgba(217,115,22,.15);color:#D97316}
    .cal-evt--clubs::after{background:rgba(22,163,74,.15);color:#16A34A}
    .cal-evt--etude::after{background:rgba(147,51,234,.15);color:#9333EA}
    .cal-evt-name{font-size:.875rem;font-weight:800;line-height:1.2}
    .cal-evt-time{font-size:.75rem;color:var(--texte-sec);margin-top:3px;font-weight:600}
    .cal-evt-hint{font-size:.62rem;font-weight:600;margin-top:5px;opacity:.55}
    .cal-evt--cours{background:rgba(59,130,246,.10);border-left-color:#3B6FE8}
    .cal-evt--cours .cal-evt-name,.cal-evt--cours .cal-evt-hint{color:#3B6FE8}
    .cal-evt--pause{background:var(--blanc);border-left-color:var(--gris-mid)}
    .cal-evt--pause .cal-evt-name,.cal-evt--pause .cal-evt-hint{color:var(--texte-sec)}
    .cal-evt--modules{background:rgba(249,115,22,.11);border-left-color:#D97316}
    .cal-evt--modules .cal-evt-name,.cal-evt--modules .cal-evt-hint{color:#D97316}
    .cal-evt--clubs{background:rgba(22,163,74,.11);border-left-color:#16A34A}
    .cal-evt--clubs .cal-evt-name,.cal-evt--clubs .cal-evt-hint{color:#16A34A}
    .cal-evt--etude{background:rgba(147,51,234,.11);border-left-color:#9333EA}
    .cal-evt--etude .cal-evt-name,.cal-evt--etude .cal-evt-hint{color:#9333EA}

    /* Popup calendrier */
    .cal-overlay{display:none;position:fixed;inset:0;z-index:900;background:rgba(0,0,0,.40);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);align-items:flex-end}
    .cal-overlay.open{display:flex}
    .cal-sheet{width:100%;background:var(--blanc);border-radius:22px 22px 0 0;padding:8px 32px calc(32px + env(safe-area-inset-bottom));animation:sheetUp .28s cubic-bezier(.4,0,.2,1);max-width:640px;margin:0 auto}
    @keyframes sheetUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
    .cal-sheet-handle{width:36px;height:4px;border-radius:2px;background:var(--gris-mid);margin:12px auto 20px}
    .cal-sheet-header{display:flex;align-items:center;gap:12px;margin-bottom:6px}
    .cal-sheet-dot{width:14px;height:14px;border-radius:4px;flex-shrink:0}
    .cal-sheet-title{font-size:1.15rem;font-weight:900;color:var(--noir)}
    .cal-sheet-time{font-size:.78rem;color:var(--texte-sec);font-weight:500;margin-bottom:16px;padding-left:26px}
    .cal-sheet-list{list-style:none;display:flex;flex-direction:column;gap:10px}
    .cal-sheet-list li{display:flex;align-items:flex-start;gap:10px;font-size:.875rem;line-height:1.65;color:var(--noir)}
    .cal-sheet-list li::before{content:'';flex-shrink:0;width:6px;height:6px;border-radius:50%;margin-top:7px;background:var(--c,var(--texte-sec))}

    /* Video lite */
    .video-lite{position:relative;border-radius:20px;overflow:hidden;background:var(--noir);cursor:pointer;-webkit-tap-highlight-color:transparent;margin:20px 0 32px;aspect-ratio:16/9;width:100%}
    .video-lite img{display:block;width:100%;height:100%;object-fit:cover;opacity:.85}
    .video-lite iframe{position:absolute;inset:0;width:100%;height:100%;border:none}
    .video-lite__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border:none;background:none;cursor:pointer}
    .video-lite__play-btn{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.95);display:flex;align-items:center;justify-content:center;transition:transform .15s}
    .video-lite:hover .video-lite__play-btn{transform:scale(1.08)}
    .video-lite__play-btn svg{width:22px;height:22px;fill:var(--rouge);margin-left:3px}
    .video-lite__label{position:absolute;bottom:0;left:0;right:0;padding:14px 16px;background:linear-gradient(to top,rgba(0,0,0,.7),transparent)}
    .video-lite__label strong{display:block;font-size:.85rem;font-weight:800;color:#fff}
    .video-lite__label span{font-size:.72rem;color:rgba(255,255,255,.7);font-weight:500}

    /* Tarif */
    .tarif-toggle-wrap{display:flex;justify-content:center;background:var(--gris);border-radius:40px;padding:4px;width:fit-content;margin:0 auto 24px;gap:2px}
    .tarif-toggle-btn{padding:8px 22px;border:none;border-radius:36px;font-size:.85rem;font-weight:700;cursor:pointer;background:transparent;color:var(--texte);transition:background .15s,color .15s,box-shadow .15s;font-family:inherit}
    .tarif-toggle-btn.active{background:var(--blanc);box-shadow:0 2px 6px rgba(0,0,0,.12);color:var(--texte)}
    .tarif-card{background:var(--gris);border:1px solid var(--noir);border-radius:20px;overflow:hidden;margin-bottom:14px}
    .tarif-top{background:var(--noir);padding:20px 24px 20px;position:relative}
    .tarif-label{display:block;font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:10px}
    .tarif-price{font-size:3.4rem;font-weight:900;color:var(--blanc);letter-spacing:-.06em;line-height:1;margin-bottom:4px}
    .tarif-price sup{font-size:1.5rem;font-weight:700;vertical-align:super}
    .tarif-price sub{font-size:.95rem;font-weight:500;opacity:.7;vertical-align:baseline}
    .tarif-annuel{font-size:.75rem;color:rgba(255,255,255,.55);margin-top:4px}
    .tarif-rows{padding:8px 0;background:var(--blanc);border-radius:0 0 16px 16px}
    .tarif-row{display:flex;align-items:center;gap:12px;padding:11px 18px;font-size:.85rem;color:var(--noir)}
    .tarif-check{width:20px;height:20px;border-radius:50%;background:rgba(221,38,40,.1);flex-shrink:0;display:flex;align-items:center;justify-content:center}
    .tarif-check svg{width:9px;height:9px;stroke:var(--rouge);fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
    .bourse-badge{display:inline-flex;align-items:center;gap:5px;background:var(--jaune);color:var(--noir);font-size:.58rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:99px;text-decoration:none;white-space:nowrap;box-shadow:0 1px 4px rgba(0,0,0,.12);margin-bottom:12px}
    .bourse-badge svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
    .bourse-banner{background:var(--jaune);border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:16px;margin-bottom:14px}
    .bourse-banner__eyebrow{font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgba(0,0,0,.55);display:block;margin-bottom:4px}
    .bourse-banner__title{font-size:1rem;font-weight:900;color:var(--texte);line-height:1.2;margin-bottom:4px}
    .bourse-banner__desc{font-size:.78rem;color:rgba(0,0,0,.55);line-height:1.5}
    .bourse-banner__cta{display:inline-flex;justify-content:center;align-items:center;background:var(--texte);color:#fff;font-size:.78rem;font-weight:800;padding:10px 16px;border-radius:10px;text-decoration:none;border:none;cursor:pointer;text-align:center;font-family:'Onest',system-ui,sans-serif}
    .fratrie-card{background:var(--blanc);border:1px solid var(--noir);border-radius:18px;padding:18px;margin-bottom:32px}
    .fratrie-title{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--rouge);margin-bottom:12px}
    .fratrie-rows{display:flex;flex-direction:column;gap:8px}
    .fratrie-row{display:flex;justify-content:space-between;align-items:center}
    .fratrie-row span{font-size:.85rem;color:var(--texte-sec)}
    .fratrie-row strong{font-size:.85rem;font-weight:800;color:var(--noir)}
    .fratrie-pill{background:rgba(221,38,40,.12);color:var(--rouge);font-size:.72rem;font-weight:800;border-radius:99px;padding:3px 10px}

    /* Contact cards 2×2 */
    .contact-grid-2x2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
    .contact-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:var(--blanc);border-radius:16px;padding:18px 20px;text-decoration:none;color:var(--noir);border:1px solid rgba(0,0,0,.05);transition:transform .15s}
    .contact-card:hover{transform:scale(1.01)}
    .contact-card-ic{flex-shrink:0;width:46px;height:46px;border-radius:13px;display:flex;align-items:center;justify-content:center;background:var(--rouge)}
    .contact-card-ic svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
    .contact-ic--red,.contact-ic--green,.contact-ic--blue,.contact-ic--amber{background:var(--rouge)}
    .contact-ic--red svg,.contact-ic--green svg,.contact-ic--blue svg,.contact-ic--amber svg{stroke:#fff}
    .contact-card-title{font-size:.95rem;font-weight:800;color:var(--noir);line-height:1.2;margin-bottom:3px}
    .contact-card-sub{font-size:.78rem;color:var(--texte-sec);font-weight:500;line-height:1.4}
    @media (max-width:600px){.contact-grid-2x2{grid-template-columns:1fr}}

    /* Grille profils page niveau */
    .profil-link-grid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px}
    @media (min-width:768px){.profil-link-grid{grid-template-columns:1fr 1fr}}
    .profil-link-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:#fff;border:1.5px solid #EBEBEB;border-radius:14px;text-decoration:none;color:var(--texte);transition:border-color .15s,box-shadow .15s}
    .profil-link-card:hover{border-color:var(--rouge);box-shadow:0 2px 10px rgba(0,0,0,.06)}
    .profil-link-card__body{display:flex;flex-direction:column;gap:4px}
    .profil-link-card__title{font-weight:800;font-size:.95rem}
    .profil-link-card__desc{font-size:.82rem;color:#6E6E73;line-height:1.45}
    .profil-link-card__arrow{flex-shrink:0;width:18px;height:18px;color:var(--rouge)}
    .profil-link-card__arrow svg{width:100%;height:100%}

    /* Section "Un retour à l'école" — suppression de l'ombre de l'image */
    #panel-modalites .video-card,#panel-modalites .video-card:hover,
    #panel-planning .video-card,#panel-planning .video-card:hover{box-shadow:none;transform:none}
    /* Accordéons : fond rose clair, texte rouge (état fermé) */
    /* Section modalites : centrage vertical accordéon ↔ image vidéo */
    #panel-modalites .split-grid{align-items:center}
    /* Section contact : image sans forme organique ni ombre */
    #panel-contact .split-portrait img,#panel-planning .split-portrait img{border-radius:0;filter:none}
    /* Hero : image sans forme organique ni ombre */
    .hero-media img{border-radius:0;filter:none}
    /* Emploi du temps : retirer la bordure gauche des cellules */
    #panel-planning .week-cell{border-left:none}
    /* Emploi du temps : retirer le cadre blanc (bouton play rond) derrière l'icône */
    #panel-planning .split-portrait--play::after{display:none}
    /* Cellules "Pause" en blanc */
    #panel-planning .week-cell--pause{background:#fff}
    /* Emploi du temps : image et grille centrées verticalement */
    #panel-planning .split-grid{align-items:center}
    /* Contact : help-card en ligne (icône + titre côte à côte) */
    #panel-contact .help-card{flex-direction:row;align-items:center;gap:14px}
    /* Contact : head en pleine largeur (override du 50%) */
    #panel-contact .split-head{max-width:100%}
    /* Section "Le rythme" — libellés d'étapes en light */
    .year-timeline-section .year-step__label{font-weight:300}
    /* Marge titre de section → contenu : 40px + largeur limitée à 50% */
    .split-head,.split-head--center,.year-timeline-head,.tuition-head{margin-bottom:40px;max-width:50%;margin-left:auto;margin-right:auto}
    @media (max-width:900px){
      .split-head,.split-head--center,.year-timeline-head,.tuition-head{max-width:100%}
    }
    /* FAQ — mise en avant des 3 catégories */
    #panel-faq .accordion-trio__block h3{display:inline-flex;align-items:center;gap:8px;background:var(--rouge);color:#fff;font-size:.78rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase;padding:8px 14px;border-radius:99px;margin-bottom:22px}
    /* FAQ : grille 3 lignes × 1 colonne (empilement vertical) */
    #panel-faq .accordion-trio{grid-template-columns:1fr;gap:32px}
    /* Paragraphes des head centrés → réellement centrés horizontalement */
    .split-head--center p{margin-left:auto;margin-right:auto}
    /* ────── Matières : nouveau design (cards catégorielles) ────── */
    #panel-programme .subjects-cols{gap:24px}
    #panel-programme .subjects-col{background:#FFF6F6;border:1px solid #FFDCDC;border-radius:24px;padding:28px 26px 22px}
    #panel-programme .subjects-col:last-child{background:#FFFBE0;border-color:#F5E39A}
    #panel-programme .subject-flag{margin:0 0 20px;font-size:.78rem;letter-spacing:.08em;padding:9px 16px;background:var(--rouge);color:#fff;box-shadow:0 3px 10px rgba(221,38,40,.22)}
    #panel-programme .subjects-col:last-child .subject-flag{background:var(--noir);color:#fff;box-shadow:0 3px 10px rgba(0,0,0,.18)}
    #panel-programme .subject-pills,#panel-programme .subject-pills--modules{grid-template-columns:1fr;gap:10px;margin-bottom:0}
    #panel-programme .subject-pill{flex-direction:row;justify-content:flex-start;align-items:center;gap:14px;padding:14px 16px;background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:14px;min-height:0;text-align:left;transition:transform .15s,box-shadow .15s}
    #panel-programme .subject-pill:hover{transform:translateX(3px);box-shadow:0 6px 18px rgba(0,0,0,.06)}
    #panel-programme .subject-pill__ic{width:36px;height:36px;border-radius:11px}
    #panel-programme .subject-pill__ic svg{width:18px;height:18px}
    #panel-programme .subject-pill__name{font-size:.9rem;font-weight:800}
    @media (min-width:900px){
      #panel-programme .subject-pills,#panel-programme .subject-pills--modules{grid-template-columns:1fr 1fr}
    }

    /* Breadcrumb visible */
    .mock-breadcrumb{font-size:.78rem;color:var(--texte-sec);padding:12px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
    .mock-breadcrumb a{color:var(--texte-sec);text-decoration:none;font-weight:600}
    .mock-breadcrumb a:hover{color:var(--rouge)}
    .mock-breadcrumb span[aria-current]{color:var(--noir);font-weight:700}
    .mock-breadcrumb .sep{opacity:.5}

/* Extensions pour les déclinaisons par classe, sans toucher aux autres pages. */
.class-profile-page .mock-header__inner { grid-template-columns: auto 1fr; }
.class-profile-page .split-section[id], .class-profile-page .tuition-section[id] { scroll-margin-top: 100px; }
.class-profile-page .mock-accordion .acc-trigger { box-sizing: border-box; }
.class-profile-page .acc-trigger:focus-visible,
.class-profile-page .video-card:focus-visible,
.class-profile-page .week-cell:focus-visible,
.class-profile-page .profile-module summary:focus-visible,
.class-profile-page .profile-planning-link:focus-visible {
  outline: 3px solid var(--ml-red); outline-offset: 4px;
}
.class-profile-page .week-schedule { min-width: 0; }
.class-profile-page button.week-cell { display: block; width: 100%; border: 0; text-align: left; font-family: inherit; cursor: pointer; box-sizing: border-box; transition: filter .15s; }
.class-profile-page button.week-cell:hover { filter: brightness(.96); }
/* Le club du mercredi occupe les deux créneaux de l’après-midi. */
.class-profile-page .week-cell--full-afternoon { flex: 1; }
.class-profile-page .week-cell__label { overflow-wrap: anywhere; }
.class-profile-page .week-cell__time { line-height: 1.5; }
.class-profile-page .profile-planning-link { display: inline-flex; align-items: center; gap: 8px; padding: 8px 0; margin-top: 8px; border: 0; background: none; color: var(--ml-red); font: 700 14px/1.5 "Onest", sans-serif; cursor: pointer; }
.class-profile-page .profile-planning-link svg { flex-shrink: 0; }
.class-profile-page .subject-pill__ic { flex-shrink: 0; }
.class-profile-page .subject-flag .ml-icon { width: 15px; height: 15px; }
.class-profile-page .subjects-col--wide { grid-column: 1 / -1; }
.class-profile-page .profile-modules { display: grid; gap: 10px; }
.class-profile-page .subjects-col--wide .profile-modules { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.class-profile-page .profile-module { padding: 14px 16px; background: #fff; border: 1px solid rgba(0,0,0,.05); border-radius: 14px; min-width: 0; }
.class-profile-page .profile-module summary { display: flex; align-items: center; gap: 14px; cursor: pointer; list-style: none; }
.class-profile-page .profile-module summary::-webkit-details-marker { display: none; }
.class-profile-page .profile-module__chevron { flex-shrink: 0; width: 14px; margin-left: auto; transition: transform .2s; }
.class-profile-page .profile-module[open] .profile-module__chevron { transform: rotate(180deg); }
.class-profile-page .profile-module__body { margin-top: 16px; color: var(--ml-muted); font-size: 14px; line-height: 1.65; }
.class-profile-page .tuition-price-card .tarif-toggle-wrap { margin: 22px 0 4px; }
.class-profile-page .tuition-price-card .tarif-toggle-btn { font-family: inherit; }
.class-profile-page .tuition-col .fratrie-card { margin-bottom: 0; }
.class-profile-page .profile-holidays { max-width: 900px; margin: 40px auto 0; padding: 18px 22px; border: 1px solid var(--ml-line); border-radius: 16px; }
.class-profile-page .profile-holidays summary { font-weight: 750; cursor: pointer; }
.class-profile-page .profile-holidays dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 22px 0 0; }
.class-profile-page .profile-holidays dt { font-size: 14px; font-weight: 800; }
.class-profile-page .profile-holidays dd { margin: 6px 0 0; font-size: 13px; color: var(--ml-muted); }
.class-profile-page .cal-sheet { position: relative; }
.class-profile-page .profile-calendar-close { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: var(--ml-soft); color: var(--ml-ink); font-size: 18px; cursor: pointer; }
.class-profile-page .cal-sheet-header { padding-right: 35px; }
.class-profile-page .proof-strip article:last-child { display: grid; }
@media (max-width: 900px) {
  .class-profile-page .subjects-col--wide .profile-modules { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .class-profile-page .hero-grid { gap: 18px; }
  .class-profile-page .hero-media { min-height: 0; }
  .class-profile-page .hero-ctas .mock-btn { box-sizing: border-box; white-space: normal; }
  .class-profile-page .proof-strip article:last-child { grid-column: 1 / -1; border-bottom: 0; }
  .class-profile-page .profile-holidays dl { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .class-profile-page .week-schedule { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 10px; scrollbar-width: thin; box-sizing: border-box; width: 100%; }
  .class-profile-page .week-col { flex: 0 0 116px; scroll-snap-align: start; }
  .class-profile-page .week-col__head { font-size: 12px; }
  .class-profile-page .week-cell { font-size: 12px; padding: 12px 10px; }
  .class-profile-page .week-cell__time { font-size: 11px; }
  .class-profile-page .subjects-col { box-sizing: border-box; min-width: 0; }
  .class-profile-page #panel-programme .subjects-col { padding: 22px 18px; }
}
@media (max-width: 370px) {
  .class-profile-page .mock-header__inner, .class-profile-page .mock-actions { gap: 8px; }
  .class-profile-page .mock-logo img { width: 100px; }
  .class-profile-page .mock-header .mock-actions .mock-btn--red { padding-inline: 10px; font-size: 13px; gap: 6px; }
  .class-profile-page .hero-copy h1 { font-size: 36px; }
  .class-profile-page #panel-contact .help-card { padding: 16px; }
}

/* Aperçu recadré : le panneau vidéo est centré sans la note sous l’image. */
.class-profile-page #panel-modalites .video-card--centered-preview {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1175 / 796;
  overflow: hidden;
  border-radius: 20px;
  margin: 0;
}
.class-profile-page #panel-modalites .video-card--centered-preview img {
  position: absolute;
  width: 128.34%;
  max-width: none;
  height: auto;
  left: -15.83%;
  top: -8.17%;
}

/* Modules thématiques — Seconde artiste. */
.class-profile-page #panel-programme .subjects-col--artiste-modules {
  background: linear-gradient(145deg, #fff0f4 0%, #fff9fa 60%, #fff 100%);
  border-color: #f1cdd7;
  box-shadow: 0 8px 28px #9b254008;
}
.class-profile-page #panel-programme .subjects-col--artiste-modules .subject-flag {
  background: #ffe0e9;
  color: #a31e3d;
  border: 1px solid #f1bdcc;
  border-radius: 999px;
  box-shadow: none;
  font-size: 13px;
  letter-spacing: .04em;
}
.class-profile-page .subjects-col--artiste-modules .profile-modules { gap: 12px; }
.class-profile-page .subjects-col--artiste-modules .profile-module {
  padding: 18px;
  border: 1px solid #f0e0e5;
  border-radius: 18px;
  transition: border-color .2s, background .2s;
}
.class-profile-page .subjects-col--artiste-modules .profile-module:hover { border-color: #e9a7ba; }
.class-profile-page .subjects-col--artiste-modules .profile-module[open] { background: #fffafd; border-color: #e9a7ba; }
.class-profile-page .subjects-col--artiste-modules .subject-pill__ic {
  width: 40px;
  height: 40px;
  border-radius: 13px;
  background: #fff0f4;
  color: #b72448;
}
.class-profile-page .subjects-col--artiste-modules .subject-pill__name { font-size: 15px; line-height: 1.45; }
.class-profile-page .subjects-col--artiste-modules .profile-module__chevron { color: #b72448; }
.class-profile-page .subjects-col--artiste-modules .profile-module__body {
  padding-top: 14px;
  border-top: 1px solid #f1e0e6;
}
.class-profile-page .subjects-col--artiste-modules .profile-planning-link { color: #a31e3d; }
@media (max-width: 760px) {
  .class-profile-page .subjects-col--artiste-modules .profile-module { padding: 16px 14px; }
  .class-profile-page .subjects-col--artiste-modules .profile-module summary { gap: 10px; }
  .class-profile-page .subjects-col--artiste-modules .subject-pill__name { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .class-profile-page .subjects-col--artiste-modules .profile-module { transition: none; }
}

/* Une même composition pour les matières et les modules de Seconde artiste. */
.class-profile-page #panel-programme .subjects-cols--artiste {
  align-items: stretch;
  gap: 24px;
}
.class-profile-page #panel-programme .subjects-cols--artiste > .subjects-col {
  box-sizing: border-box;
  min-width: 0;
  padding: 26px;
  gap: 20px;
  border: 1px solid #f1cdd7;
  border-radius: 24px;
  background: linear-gradient(145deg, #fff2f5, #fff 85%);
  box-shadow: none;
}
.class-profile-page #panel-programme .subjects-cols--artiste .subject-flag {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 40px;
  box-sizing: border-box;
  margin: 0;
  padding: 10px 16px;
  border: 1px solid #f1bdcc;
  border-radius: 999px;
  background: #ffe0e9;
  color: #a31e3d;
  box-shadow: none;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: .04em;
}
.class-profile-page #panel-programme .subjects-cols--artiste .subject-pills,
.class-profile-page #panel-programme .subjects-cols--artiste .profile-modules {
  flex: 1;
  gap: 12px;
  margin: 0;
  grid-auto-rows: 1fr;
}
.class-profile-page #panel-programme .subjects-cols--artiste .subject-pill,
.class-profile-page #panel-programme .subjects-cols--artiste .profile-module {
  box-sizing: border-box;
  padding: 16px;
  border: 1px solid #f0e0e5;
  border-radius: 16px;
  background: #fff;
}
.class-profile-page #panel-programme .subjects-cols--artiste .subject-pill {
  gap: 12px;
  min-height: 72px;
}
.class-profile-page #panel-programme .subjects-cols--artiste .subject-pill__ic {
  width: 36px;
  height: 36px;
  border-radius: 11px;
  background: #fff0f4;
  color: #b72448;
}
.class-profile-page #panel-programme .subjects-cols--artiste .subject-pill__ic svg { stroke: currentColor; }
.class-profile-page #panel-programme .subjects-cols--artiste .subject-pill__name {
  font-size: 14px;
  font-weight: 650;
  line-height: 1.45;
}
.class-profile-page #panel-programme .subjects-cols--artiste .profile-module summary { min-height: 44px; }
.class-profile-page #panel-programme .subjects-cols--artiste .profile-module[open] { border-color: #e9a7ba; background: #fffafd; }
.class-profile-page #panel-programme .subjects-cols--artiste .profile-planning-link {
  margin: 0;
  padding: 14px 0 0;
  border-top: 1px solid #f1dce3;
}
@media (max-width: 900px) {
  .class-profile-page #panel-programme .subjects-cols--artiste { gap: 20px; }
  .class-profile-page #panel-programme .subjects-cols--artiste > .subjects-col { padding: 22px 18px; }
  .class-profile-page #panel-programme .subjects-cols--artiste .profile-modules { grid-auto-rows: auto; }
}

.class-profile-page .tuition-price-card--light-blue {
  background: #e8f2ff;
  color: #0a0a0a;
  border: 1px solid #ccdef5;
}
.class-profile-page .tuition-price-card--light-blue .tuition-price-card__label,
.class-profile-page .tuition-price-card--light-blue .tuition-price-card__note { color: #0a0a0a; }
.class-profile-page .tuition-price-card--light-blue .tarif-toggle-wrap { background: #d2e4fa; }
.class-profile-page .tuition-price-card--light-blue .tarif-toggle-btn { color: #0a0a0a; }
.class-profile-page .tuition-price-card--light-blue .tarif-toggle-btn.active { background: #fff; color: #0a0a0a; }

.class-profile-page .tuition-price-card--light-blue .tuition-price-card__price sub { opacity: 1; }

.class-profile-page .tuition-bourse--black-text,
.class-profile-page .tuition-bourse--black-text .tuition-bourse__eyebrow,
.class-profile-page .tuition-bourse--black-text .tuition-bourse__title,
.class-profile-page .tuition-bourse--black-text .tuition-bourse__desc { color: #0a0a0a; }
.class-profile-page .tuition-bourse--black-text .tuition-bourse__cta { color: #0a0a0a; background: #fff; }

.class-profile-page .profile-holidays--light-blue {
  background: #e8f2ff;
  border-color: #ccdef5;
  color: #0a0a0a;
}
.class-profile-page .profile-holidays--light-blue dd { color: #0a0a0a; }
