@font-face{font-family:"Cormorant Garamond";src:url("../fonts/CormorantGaramond-Regular.ttf") format("truetype");font-weight:400;font-display:swap}
/* Contenus pédagogiques structurés : mêmes couleurs et typographies que la maquette. */
.nblock .body{min-width:0}.nblock .body p{white-space:pre-wrap}.nblock .body ol{padding-left:24px;color:var(--ink2);font-size:16px}.nblock .body h4{font:500 20px var(--display);margin:20px 0 10px}
.course-table{max-width:100%;overflow-x:auto;margin:16px 0;border:1px solid var(--line);border-radius:12px}.course-table table{width:100%;border-collapse:collapse;font-size:14px}.course-table th,.course-table td{text-align:left;vertical-align:top;padding:12px 14px;border-bottom:1px solid var(--line);min-width:120px}.course-table th{background:var(--surface2);font-weight:500}.course-table tr:last-child td{border-bottom:0}
.transcription-copy .transcription-status{font-size:13px;color:var(--muted)}
@font-face{font-family:"Cormorant Garamond";src:url("../fonts/CormorantGaramond-Medium.ttf") format("truetype");font-weight:500;font-display:swap}
@font-face{font-family:"Jost";src:url("../fonts/Jost-Regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Jost";src:url("../fonts/Jost-Medium.ttf") format("truetype");font-weight:500;font-display:swap}

:root{
  --bg:#FCF8F7;--surface:#FFFCFA;--surface2:#F4E5EA;--ink:#4C2938;--ink2:#79596A;
  --muted:#79596A;--line:#E9D5DC;--accent:#793B55;--accent-ink:#793B55;
  --accent-soft:#F4E5EA;--gold:#BC9C5E;--gold-soft:#F4E4C7;--night:#582C42;
  --night2:#793B55;--on-dark:#FFF9F5;--on-dark-soft:#F6E6EB;--ink-on-gold:#4C2938;
  --shadow:0 10px 30px rgba(76,41,56,.07);--shadow-glass:0 16px 42px rgba(76,41,56,.07);
  --shadow-dark:0 20px 46px rgba(48,24,34,.18);--shadow-gold:0 10px 28px rgba(121,59,85,.18);
  --r-card:24px;--r-card-sm:20px;--r-tile:15px;
}

html,body{background:var(--bg);color:var(--ink);font-size:16px;line-height:1.6}
body{background-image:linear-gradient(rgba(252,248,247,.86),rgba(252,248,247,.96)),url("fond-nacre.webp");background-size:100% 330px;background-repeat:no-repeat}
.app{grid-template-columns:246px minmax(0,1fr)}
aside{background:rgba(255,252,250,.9);border-right:1px solid var(--line);backdrop-filter:blur(18px);overflow-y:auto}
.brand{padding:34px 28px 27px;border:0;align-items:flex-start}
.brand svg{display:none!important}
.brand-txt .wordmark{display:block}
.brand-txt .wordmark b{font-size:35px;letter-spacing:-.035em;text-transform:none}
.brand-txt .wordmark b::first-letter{text-transform:uppercase}
.brand-txt .wordmark i{display:block;font-family:var(--font);font-size:10px;letter-spacing:.38em;margin-top:1px;color:var(--ink);font-weight:500}
.brand-txt .tag{display:none}

.primary-nav{display:grid;gap:8px;padding:16px 16px 13px}
.primary-nav button{min-height:52px;padding:0 17px;border:1px solid transparent;border-radius:14px;background:transparent;color:var(--ink2);font:500 14px/1 var(--font);display:flex;align-items:center;gap:13px;text-align:left;cursor:pointer}
.primary-nav button:hover,.primary-nav button.active{background:var(--surface2);border-color:var(--line);color:var(--accent)}
.nav-ico{font-size:18px;width:20px;text-align:center;font-weight:400}
.outline-title{padding:13px 27px 7px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:500}
.prog,.preg{margin:0 16px;padding:14px 12px;border:0;border-top:1px solid var(--line)}
.prog .ttl,.preg .ttl{font-size:10px;letter-spacing:.16em}
.prog .cnt,.preg .due{font-size:11px}
.preg .wk b{font-size:32px;color:var(--accent)}
aside nav{padding:0 12px 18px;flex:1 0 auto;overflow:visible}
aside>.brand,aside>.primary-nav,aside>.prog,aside>.preg,aside>.outline-title{flex-shrink:0}
.mod>button{font-size:13px;padding:9px 10px}
.mod .mt b{font-family:var(--font);font-size:12px;font-weight:500;white-space:normal;line-height:1.35}
.lessons a{font-size:11px;line-height:1.35;padding:7px 8px}
.brand-signature{position:static;flex-shrink:0;margin:0;padding:18px 28px 22px;border-top:1px solid var(--line);font:400 21px/1.45 var(--display);color:var(--accent);background:var(--surface)}

main{min-width:0;background:rgba(252,248,247,.62)}
.hero{box-shadow:none;background:transparent;color:var(--ink);padding:42px 46px 24px;min-height:144px;align-items:flex-start}
.hero .glow{display:none}
.hero .crumb{color:var(--accent);font-size:11px;font-weight:500;letter-spacing:.18em;margin-bottom:8px}
.hero h1{font-size:48px;line-height:1.05;color:var(--ink);font-weight:400;max-width:none}
.hero p{color:var(--ink2)}
.hero.home{padding:42px 46px 22px;background:transparent}
.hero.home .crumb{font-size:11px;text-transform:uppercase;letter-spacing:.19em;color:var(--accent)}
.hero.home h1{font-size:48px;color:var(--ink);font-weight:400}
.hero.home .illu{margin-left:auto}
.hero.home .illu .bell{display:none}
.hero.home .illu .avatar,.mobile-avatar{width:50px;height:50px;border-radius:50%;background:var(--surface);border:1px solid var(--gold);box-shadow:0 3px 14px rgba(76,41,56,.08);color:var(--accent);font:400 22px/1 var(--display);display:grid;place-items:center}

.content{max-width:960px;padding:32px 46px 100px}
.content.home-content{max-width:none;padding-top:10px}
.home-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;align-items:start;max-width:1380px;margin:0 auto}
.home-main,.home-rail{display:grid;gap:22px}
.resume-card{position:relative;min-height:380px;border-radius:28px;overflow:hidden;background:url("photo-cocon.webp") center 52%/cover no-repeat;box-shadow:var(--shadow-dark);cursor:pointer;color:var(--on-dark)}
.resume-card:focus-within,.resume-card:hover{outline:2px solid rgba(188,156,94,.42);outline-offset:3px}
.resume-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(42,23,16,.79),rgba(42,23,16,.34) 60%,rgba(42,23,16,.09))}
.resume-copy{position:relative;z-index:1;max-width:570px;padding:40px 42px}
.eyebrow{margin:0 0 13px!important;text-transform:uppercase;letter-spacing:.16em;font-size:11px!important;font-weight:500;color:var(--accent)}
.resume-copy .eyebrow{color:#F3DCCA}
.resume-copy h2{font:400 clamp(38px,4.2vw,60px)/1.02 var(--display);margin:0 0 14px;max-width:12ch;color:#FFF9F5}
.resume-meta{font-size:14px;margin:0 0 25px;color:#F5E8E1}
.resume-button{min-height:52px;border:0;border-radius:12px;background:#FFF9F5;color:#4C2938;padding:0 20px;font:500 14px var(--font);display:flex;align-items:center;gap:10px;cursor:pointer}
.resume-progress{width:min(460px,100%);height:4px;background:rgba(255,255,255,.34);margin-top:30px;border-radius:10px;overflow:hidden}
.resume-progress i{display:block;height:100%;background:#E8CF92}
.resume-copy small{display:block;margin-top:8px;color:#F7EDE8;font-size:11px}

.support-section,.journey-section{background:rgba(255,252,250,.66);border:1px solid rgba(233,213,220,.82);border-radius:24px;padding:26px 28px}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:16px}
.section-heading h2,.journal-card h2,.journey-section h2{font:400 31px/1.08 var(--display);margin:0;color:var(--ink)}
.section-heading button,.journal-card button,.weekcard button,.progress-card button{border:0;background:transparent;color:var(--accent);font:500 13px var(--font);cursor:pointer;padding:8px 0}
.support-row{display:flex;align-items:center;gap:14px;padding:14px 0 20px;border-bottom:1px solid var(--line);cursor:pointer}
.support-icon{width:48px;height:48px;border-radius:14px;background:var(--surface2);display:grid;place-items:center;color:var(--accent);font-size:22px;flex:0 0 auto}
.support-row div{min-width:0;flex:1}.support-row b{display:block;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.support-row small{display:block;color:var(--muted);font-size:12px}.support-arrow{color:var(--accent)}
.journal-card{position:relative;margin-top:24px;border:1px solid var(--gold);border-radius:22px;background:var(--surface);padding:30px;overflow:hidden}
.journal-card::after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;right:-35px;top:-42px;background:url("fond-nacre.webp") center/cover;border:1px solid var(--gold);opacity:.84}
.journal-card h2{font-size:39px;margin-bottom:14px}.journal-card>p:not(.eyebrow){color:var(--muted);max-width:37ch;font-size:14px}
.journey-section .section-heading{align-items:center}.journey-section .eyebrow{margin-bottom:7px!important}
.journey-section .phases{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin:0}
.journey-section .phase-item{gap:9px}.journey-section .phase-item .sq{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;position:relative}
.journey-section .phase-item .sq::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(255,252,250,.78)}
.journey-section .phase-item .sq span{position:relative;z-index:1;font:400 24px var(--display);color:var(--accent)}
.journey-section .phase-item>span{font-size:12px;color:var(--ink2)}

.home-rail{gap:20px}
.weekcard,.partner-card,.progress-card{margin:0;background:rgba(255,252,250,.78);border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:none;text-align:left}
.weekcard{background:linear-gradient(rgba(255,252,250,.52),rgba(255,252,250,.52)),url("fond-nacre.webp") center/cover;cursor:pointer;text-align:center}
.weekcard .eyebrow{text-align:center}.weekcount{font:400 40px/1 var(--display);color:var(--ink);margin:0 0 12px}.weekcount small{font:500 12px var(--font);letter-spacing:.12em}
.weekcard .medal{width:164px;height:164px;margin:0 auto 8px}.weekcard .medal img{width:100%;height:100%;object-fit:cover;border-radius:50%;border:1px solid var(--gold)}
.weekcard .medal svg{display:none}.weekcard .medal.muted{opacity:.55}
.partner-card{background:#EAF0F7;border-color:#C6D5E4;color:#193D67}.partner-card .eyebrow{color:#193D67;margin-bottom:7px!important}.partner-card h3,.progress-card h3{font:400 27px/1.15 var(--display);margin:0 0 8px}.partner-card p,.progress-card p{font-size:13px;margin:0;color:inherit;opacity:.82}
.progress-card .eyebrow{margin-bottom:7px!important}.progress-card .pbar{margin:15px 0 6px;height:5px}.progress-card .pbar i{display:block;height:100%;background:var(--accent)}

.hero.lesson{min-height:310px;background:url("fond-nacre.webp") center/cover;color:var(--ink)}
.hero.lesson::after{background:linear-gradient(90deg,rgba(88,44,66,.92),rgba(88,44,66,.46) 70%,rgba(88,44,66,.18))}
.hero.lesson .meta{padding:44px 48px}.hero.lesson .illu{filter:saturate(.72)}
.hero.lesson .crumb .modlabel,.hero.lesson .crumb b{color:#F4E4C7}.hero.lesson h1{color:#FFF9F5;font-size:48px;max-width:18ch}
.audio,.card,.quiz{box-shadow:none;background:rgba(255,252,250,.8)}
.media-pending{display:flex;align-items:center;gap:14px;margin:20px 0 18px;padding:15px 18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(100deg,var(--surface2),rgba(255,252,250,.9));color:var(--ink)}
.media-pending-icon{width:44px;height:44px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:var(--accent);color:#fff;font-size:17px}
.media-pending b{display:block;font:500 15px var(--font)}.media-pending small{display:block;margin-top:2px;color:var(--muted);font-size:13px}.media-duration{margin-left:auto;max-width:160px;text-align:right;color:var(--accent);font-size:13px}
.transcription{margin:0 0 28px;border:1px solid var(--line);border-radius:22px;background:rgba(255,252,250,.8);overflow:hidden}
.transcription summary{padding:17px 20px;cursor:pointer;color:var(--accent);font-weight:500;list-style-position:inside}.transcription[open] summary{border-bottom:1px solid var(--line)}
.transcription-copy{padding:22px 24px}.transcription-copy p{margin:0 0 1em;white-space:pre-wrap}.transcription-copy p:last-child{margin-bottom:0}
.card h3,.nblock h3{font-size:24px}.lead-sub{font-size:17px}.nblock{padding:28px 0}.nblock p,.nblock ul{font-size:16px}
.btn.primary,.auplay{background:var(--accent);color:#FFF9F5;box-shadow:none}.opt{font-size:15px}

.bottom-nav{display:none}
.topm{display:none}

@media(max-width:1080px){
  .app{grid-template-columns:218px minmax(0,1fr)}
  .home-layout{grid-template-columns:1fr}.home-rail{grid-template-columns:repeat(3,1fr)}
  .hero.home,.content{padding-left:30px;padding-right:30px}
}

@media(max-width:880px){
  body{background-size:auto 260px}
  .app{display:block;min-height:100vh}
  aside{position:fixed;left:-310px;width:290px;z-index:100;box-shadow:20px 0 55px rgba(76,41,56,.18)}
  aside.open{left:0}
  .brand-signature{display:none}
  .topm{display:grid;grid-template-columns:44px 1fr auto 44px;align-items:center;padding:12px 18px;background:rgba(255,252,250,.84);border-bottom:1px solid var(--line)}
  .topm button{width:40px;height:40px;padding:0;background:transparent;border:1px solid var(--line);border-radius:12px;color:var(--accent)}
  .mobile-wordmark{font:400 30px/1 var(--display);color:var(--ink)}.mobile-wordmark i{font:500 9px var(--font);letter-spacing:.25em;text-transform:uppercase;margin-left:3px}
  .topm b{display:none}.mobile-avatar{width:40px;height:40px;font-size:18px}
  .hero.home{padding:30px 24px 20px}.hero.home .crumb{font-size:10px}.hero.home h1{font-size:42px}.hero.home .illu{display:none}
  .content.home-content{padding:8px 24px 110px}
  .home-layout{display:flex;flex-direction:column;align-items:stretch}.home-main,.home-rail{display:contents}
  .weekcard{order:1;margin-bottom:24px;display:grid;grid-template-columns:122px 1fr;grid-template-rows:auto auto auto;column-gap:16px;text-align:left;padding:20px}
  .resume-card{order:2}.support-section{order:3}.partner-card{order:4}.journey-section{order:5}.progress-card{order:6}
  .weekcard .eyebrow{grid-column:2;text-align:left;margin:8px 0 0!important}.weekcard .weekcount{grid-column:2}.weekcard .medal{grid-row:1/4;grid-column:1;width:120px;height:120px}.weekcard button{grid-column:2;text-align:left}
  .resume-card{min-height:430px;margin-bottom:24px}.resume-overlay{background:linear-gradient(180deg,rgba(42,23,16,.2),rgba(42,23,16,.8))}.resume-copy{padding:30px;position:absolute;inset:auto 0 0}.resume-copy h2{font-size:48px}.resume-progress{margin-top:24px}
  .support-section,.journey-section{margin-bottom:24px;padding:24px 20px}.journal-card{padding:27px 24px}
  .partner-card,.progress-card{margin-bottom:24px}
  .journey-section .phases{grid-template-columns:repeat(4,1fr);row-gap:22px}.journey-section .section-heading button{display:none}
  .bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:80;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,252,250,.96);border-top:1px solid var(--line);backdrop-filter:blur(18px);padding:8px 10px max(8px,env(safe-area-inset-bottom));box-shadow:0 -8px 28px rgba(76,41,56,.08)}
  .bottom-nav button{min-height:58px;border:0;background:transparent;color:var(--muted);font:500 11px var(--font);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-radius:12px}.bottom-nav button.active{background:var(--surface2);color:var(--accent)}.bottom-nav button span{font-size:19px}
  .hero:not(.home){padding:28px 24px}.hero.lesson{min-height:300px;padding:0}.hero.lesson .meta{padding:32px 24px}.hero.lesson h1{font-size:39px}
  .content{padding:26px 24px 105px}.wkgrid{grid-template-columns:1fr}.done-row{gap:8px}.done-row .btn{padding:12px 15px}
}

@media(max-width:520px){
  .topm{grid-template-columns:42px 1fr 40px;padding:10px 14px}.topm>b{display:none}.mobile-avatar{grid-column:3}.mobile-wordmark{font-size:27px}
  .hero.home{padding:26px 20px 18px}.hero.home h1{font-size:39px}.content.home-content{padding-left:20px;padding-right:20px}
  .weekcard{grid-template-columns:96px 1fr;padding:16px;column-gap:13px}.weekcard .medal{width:96px;height:96px}.weekcard .weekcount{font-size:35px}
  .resume-card{min-height:405px}.resume-copy{padding:26px 24px}.resume-copy h2{font-size:43px}.resume-button{width:100%;justify-content:center}
  .section-heading h2,.journal-card h2,.journey-section h2{font-size:31px}.support-row b{white-space:normal}.journey-section .phases{grid-template-columns:repeat(2,1fr)}
  .media-pending{align-items:flex-start;flex-wrap:wrap}.media-duration{width:100%;max-width:none;margin-left:58px;text-align:left}
}

@media(prefers-reduced-motion:reduce){.resume-card,.primary-nav button{transition:none}}
