/* Final responsive and accessibility pass for Offre spéciale novembre. */
:root { --focus-color:#e7a927; }
html { scroll-padding-top:104px; }
body { overflow-wrap:break-word; }
h1,h2 { text-wrap:balance; }
a,button,input,summary { touch-action:manipulation; }
:is(a,button,input,summary):focus-visible { outline:3px solid var(--focus-color); outline-offset:4px; }
[hidden] { display:none!important; }
.header .nav { height:78px; gap:22px; }
.header-actions { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.header-register { min-height:46px; padding:12px 18px; gap:16px; white-space:nowrap; }
.header-register .header-register-label { font-size:14px; font-weight:650; }
.mobile-menu { display:none; }
.hero-campaign { width:fit-content; padding:6px 12px; margin:0 0 14px; border:1px solid #cbdbf6; border-radius:999px; background:#edf3ff; color:#174eb2; font-size:12px; font-weight:700; line-height:1.5; }
.hero h1 { margin-top:17px; font-size:clamp(36px,3.4vw,48px); line-height:1.16; }
.hero .eyebrow { line-height:1.7; }
.hero-intro { font-size:16px; }
.hero-promo { font-variant-numeric:tabular-nums; }
.hero-credit { line-height:1.6; }
.promotion-terms { font-size:13px; }
.desktop-nav a { display:flex; align-items:center; min-height:44px; }
.hero-actions > .button { min-height:50px; }
#packs .pack-level { padding:12px 0; }
#packs .level-options label { min-width:0; }
#packs .level-options label > span { min-height:58px; }
#packs .level-options input:focus-visible + span { outline:3px solid var(--focus-color); outline-offset:4px; }
#packs .pack-offer-grid td > strong { font-size:28px; }
#packs .pack-offer-grid tbody th small { font-size:13px; }
.simulation-panel > summary { min-height:58px; font-size:16px; }
#packs .slider-stops { display:flex; gap:8px; justify-content:space-between; }
#packs .slider-stops button { min-height:44px; min-width:60px; font-size:13px; }
#packs input[type=range] { min-height:44px; width:100%; }
#packs .compact .sim-result #rate-explanation { font-size:12px; max-width:330px; line-height:1.7; }
#packs .compact .bonus-line strong { font-size:12px; line-height:1.6; }
#packs .sim-validity { color:#cfebdf; font-size:12px; }
#packs .sim-footer p { font-size:12px; }
.faq-list summary { min-height:52px; line-height:1.6; }
.reviews-controls button { min-width:44px; min-height:44px; }
.footer-bottom nav a,.footer-top > div > a { display:inline-flex; min-height:44px; align-items:center; }
.footer-bottom nav { flex-wrap:wrap; }
#comment .generated-procedure .capture-heading a { display:inline-flex; min-height:44px; align-items:center; }
.mobile-dock { gap:10px; }
.mobile-dock > div { min-width:0; }
.mobile-dock .button { min-height:44px; white-space:nowrap; }
@media (min-width:1101px) { .hero { gap:44px; padding-top:40px; } }
@media (max-width:1100px) {
 .desktop-nav { display:none!important; }
 .mobile-menu { display:block; }
 .mobile-menu > summary { display:grid; place-items:center; width:44px; height:44px; padding:0; border:1px solid #d5deeb; border-radius:9px; background:#fff; color:#102f52; cursor:pointer; list-style:none; font-size:20px; }
 .mobile-menu > summary::-webkit-details-marker { display:none; }
 .mobile-menu[open] > summary { background:#edf3ff; border-color:#245edb; }
 .mobile-menu > nav { position:absolute; top:100%; left:0; right:0; display:grid; padding:12px max(20px,calc((100% - 980px)/2)); background:#fff; border-bottom:1px solid #d5deeb; box-shadow:0 15px 24px #102f5212; }
 .mobile-menu nav a { display:flex; align-items:center; min-height:48px; padding:10px 12px; font-size:15px; border-radius:8px; }
 .mobile-menu nav a:hover { background:#edf3ff; }
}
@media (min-width:761px) and (max-width:1100px) {
 .hero { gap:28px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
 .hero h1 { font-size:36px; }
 .hero-actions { flex-direction:column; align-items:stretch; gap:10px; }
 .hero-visual { min-width:0; }
 .hero-credit strong { font-size:15px!important; }
}
@media (max-width:760px) {
 html { scroll-padding-top:88px; }
 body { padding-bottom:calc(80px + env(safe-area-inset-bottom)); }
 .wrap { width:calc(100% - 36px); }
 .header { backdrop-filter:none; background:#fff; }
 .header .nav { height:68px; gap:10px; }
 .header .brand { gap:7px; font-size:20px; }
 .header .brand img { width:37px; height:37px; }
 .header .brand small { font-size:6px; letter-spacing:1px; }
 .header-actions { gap:8px; }
 .header-register { padding:10px 12px; gap:9px; }
 .header-register .header-register-label { font-size:13px; }
 .announcement { min-height:34px; font-size:11px; padding:7px 18px; justify-content:space-between; gap:10px; }
 .announcement > .sun { display:none; }
 .announcement a { margin-left:0; flex-shrink:0; }
 .hero { padding-top:25px; gap:24px; }
 .hero-campaign { margin-bottom:12px; font-size:12px; }
 .hero .eyebrow { font-size:10px; letter-spacing:.6px; }
 .hero h1 { font-size:clamp(29px,8.4vw,38px); letter-spacing:-1.1px; line-height:1.16; margin-top:13px; }
 .hero-intro { font-size:15px; line-height:1.7; margin-top:16px; }
 #contenu .hero-promo { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; padding:15px; gap:4px 10px; }
 #contenu .hero-promo > strong { font-size:29px; }
 #contenu .hero-promo > span { font-size:12px; }
 #contenu .hero-promo > span:not([aria-hidden]) { grid-column:1; line-height:1.6; }
 #contenu .hero-promo > span[aria-hidden] { grid-column:2; grid-row:1 / 3; }
 .promotion-terms { font-size:12px; line-height:1.7; }
 #contenu .hero-credit { padding:13px 15px; }
 #contenu .hero-credit strong { font-size:16px; }
 #contenu .hero-credit > span { font-size:12px; }
 .hero-actions { gap:8px; flex-direction:column; align-items:stretch; }
 #contenu .hero-actions > .text-link { justify-content:center; gap:14px; min-height:44px; }
 .hero-reassurance { font-size:12px; gap:10px; }
 .hero-visual { margin-top:0; }
 .lesson-topline { flex-wrap:wrap; gap:6px; }
 .lesson-bottomline { gap:10px; }
 #packs { padding-block:34px; }
 #packs .sim-heading h2 { font-size:30px; }
 #packs .sim-heading { margin-bottom:12px; }
 #packs .pack-level { margin-bottom:12px; }
 #packs .pack-level .field-label { font-size:12px; letter-spacing:0; }
 #packs .level-options { gap:8px; }
 #packs .level-options label > span { padding:10px 12px; font-size:15px; }
 #packs .level-options small { font-size:11px; }
 #packs .pack-offer-grid th,#packs .pack-offer-grid td { padding:15px 13px; }
 #packs .pack-offer-grid tbody th > strong { font-size:24px; }
 #packs .pack-offer-grid td > strong { font-size:24px; }
 #packs .pack-offer-grid tbody th small { font-size:12px; line-height:1.5; }
 #packs .account-credit p { font-size:13px; }
 #packs .offers-action > .button { min-height:52px; font-size:15px; }
 .simulation-panel > summary { font-size:15px; padding:16px; gap:12px; }
 #packs .compact .sim-controls,#packs .compact .sim-result { padding:19px 17px; }
 #packs .compact .result-top { font-size:11px; }
 #packs .compact .result-top > span:last-child { font-size:11px; }
 .team-section .team-intro { font-size:14px; }
 .team-section .teacher-card { grid-template-columns:86px minmax(0,1fr); padding:16px; column-gap:14px; }
 .team-section .teacher-portrait { width:86px; }
 .team-section .teacher-card .qualification { font-size:13px; }
 .team-section .teacher-card > p:not(.qualification) { font-size:12px; }
 .faq-list summary,.faq-list p { font-size:15px; }
 .faq-section { gap:30px; }
 .mobile-dock { padding:10px 16px calc(10px + env(safe-area-inset-bottom)); }
 .mobile-dock strong { font-size:12px; line-height:1.4; }
 .mobile-dock > div > span { font-size:11px; line-height:1.5; }
 .mobile-dock .button { padding:10px 14px; font-size:13px; }
 .footer-bottom nav { gap:4px 16px; }
}
@media (max-width:359px) {
 .header .brand { font-size:18px; }
 .header .brand small { display:none; }
 .header .brand img { width:32px; height:32px; }
 .header-register { padding:9px 10px; }
 .header-register > span[aria-hidden] { display:none; }
 .announcement { font-size:10px; }
 #packs .pack-offer-grid th,#packs .pack-offer-grid td { padding-inline:10px; }
 #packs .pack-offer-grid tbody th > strong,#packs .pack-offer-grid td > strong { font-size:22px; }
 .mobile-dock { padding-inline:12px; }
 .mobile-dock strong { font-size:11px; }
 .mobile-dock > div > span { font-size:10px; }
}
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none!important; transition:none!important; }
}
