.french-programme,.fp-summary,.fp-course-reference { --fp-ink:var(--ktk-294f42); --fp-muted:var(--ktk-5d6e63); --fp-line:var(--ksk-dce5d9); --fp-mint:var(--ksk-e7f1e6); --fp-coral:var(--ksk-f6e7dd); --fp-paper:var(--ksk-fffefa); color:var(--fp-ink); }
.french-programme { max-width:1280px; margin:0 auto; padding-bottom:20px; }
.french-programme *,.fp-summary *,.fp-course-reference * { box-sizing:border-box; }
.fp-icon { width:23px; height:23px; flex-shrink:0; vertical-align:middle; }
.fp-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.french-programme a:focus-visible,.french-programme summary:focus-visible,.fp-summary a:focus-visible,.fp-course-reference a:focus-visible,.fp-course-reference summary:focus-visible { outline:3px solid var(--ksk-bc6c44); outline-offset:4px; border-radius:5px; }
.french-programme a { color:inherit; }
.fp-breadcrumb { display:flex; flex-wrap:wrap; gap:9px; color:var(--fp-muted); font-size:11px; margin-bottom:22px; line-height:1.7; }
.fp-breadcrumb a:hover { text-decoration:underline; text-underline-offset:3px; }
.fp-hero { position:relative; display:grid; grid-template-columns:minmax(0,1.65fr) minmax(220px,1fr); gap:20px; align-items:center; background:var(--ks-edf3e5); border:1px solid var(--ks-d9e6d1); border-radius:28px; padding:38px; overflow:hidden; }
.fp-eyebrow { color:var(--kt-5a7158); font-size:10px; font-weight:700; letter-spacing:1px; line-height:1.6; margin:0 0 9px; text-transform:uppercase; }
.french-programme h1,.french-programme h2,.french-programme h3,.fp-summary h2 { color:var(--fp-ink); font-family:KahierNunito,Roboto,sans-serif; }
.french-programme .fp-hero h1 { font-size:clamp(32px,3.3vw,48px); line-height:1.13; margin:12px 0 18px; font-weight:900; letter-spacing:-1px; }
.fp-hero h1 em { font-style:normal; color:var(--kt-52724a); }
.fp-hero-copy>p:not(.fp-eyebrow) { font-size:14px; line-height:1.75; max-width:480px; color:var(--fp-muted); }
.fp-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px 22px; margin:24px 0 20px; }
.fp-primary { display:inline-flex; align-items:center; justify-content:center; gap:12px; background:var(--ks-376747); color:var(--kt-fff)!important; border:1px solid var(--ks-376747); border-bottom:4px solid var(--ks-284d35); border-radius:13px; padding:12px 17px 10px; min-height:46px; font-weight:600; font-size:12px; transition:transform .15s,background .15s; }
.fp-primary:hover { background:var(--ks-2d583c); transform:translateY(-1px); }
.fp-primary .fp-icon { width:18px; height:18px; }
.fp-quiet { font-size:12px; font-weight:600; text-decoration:underline; text-underline-offset:4px; line-height:1.7; }
.fp-hero-copy .fp-hero-note { font-size:11px!important; margin:0; max-width:none; }
.fp-hero-map { position:relative; width:100%; max-width:295px; height:266px; margin:auto; display:grid; place-items:center; }
.fp-map-orbit { position:absolute; inset:14px 10px; border:1px dashed var(--ks-a8bd94); border-radius:50%; transform:rotate(-20deg); }
.fp-map-book { display:flex; align-items:center; flex-direction:column; justify-content:center; width:140px; height:166px; padding:20px; background:var(--ks-fffdf6); border:5px solid var(--ks-fff); border-radius:28px; box-shadow:0 9px 0 var(--ks-b2c6a2); transform:rotate(-8deg); }
.fp-map-book>.fp-icon { width:61px; height:61px; color:var(--kt-779c64); }
.fp-map-book>span { margin-top:11px; color:var(--kt-54714c); text-align:center; font-family:KahierNunito,Roboto,sans-serif; font-size:18px; line-height:1.1; font-weight:800; }
.fp-map-star { position:absolute; top:9px; right:29px; padding:11px; border-radius:15px; background:var(--ksk-f7e1ce); color:var(--ktk-96643d); transform:rotate(12deg); }
.fp-map-word { position:absolute; padding:7px 11px; border:1px solid var(--ks-d2dfc9); background:var(--ks-fcfcf5); border-radius:11px; font-size:11px; font-weight:600; z-index:1; }
.fp-map-word.is-read { left:3px; top:55px; transform:rotate(-12deg); }
.fp-map-word.is-write { right:0; top:103px; transform:rotate(9deg); }
.fp-map-word.is-speak { left:0; bottom:42px; transform:rotate(-5deg); }
.fp-map-sticker { position:absolute; bottom:12px; right:5px; border-radius:6px; background:var(--ks-f8eaca); color:var(--kt-7a643e); padding:8px 12px; font-size:10px; font-weight:600; transform:rotate(5deg); }
.fp-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:22px 8px; border-bottom:1px solid var(--fp-line); gap:24px; }
.fp-facts>div { display:flex; align-items:center; justify-content:center; gap:12px; min-width:0; }
.fp-facts strong { color:var(--kt-8b6047); font-family:KahierNunito,Roboto,sans-serif; font-size:31px; line-height:1; }
.fp-facts span { color:var(--fp-muted); font-size:12px; line-height:1.55; max-width:145px; }
.fp-jump-nav { display:flex; align-items:center; gap:8px 24px; flex-wrap:wrap; padding:18px 2px; margin-bottom:19px; }
.fp-jump-nav a { font-size:12px; font-weight:600; min-height:32px; display:flex; align-items:center; border-bottom:2px solid transparent; }
.fp-jump-nav a:hover { border-color:var(--ks-769c69); }
.fp-block { scroll-margin-top:20px; margin-top:38px; }
.fp-block:first-of-type { margin-top:8px; }
.fp-section-heading { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:15px; margin-bottom:18px; }
.french-programme h2 { font-size:27px; line-height:1.2; margin:0; font-weight:800; }
.fp-small-note { color:var(--fp-muted); font-size:11px; line-height:1.6; }
.fp-chapter-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.fp-chapter { display:flex; flex-direction:column; background:var(--ks-fff); border:1px solid var(--ks-d9e3d6); border-bottom:4px solid var(--ks-d5e2cb); border-radius:21px; padding:20px; min-width:0; }
.fp-chapter-top { display:flex; align-items:center; justify-content:space-between; gap:7px; margin-bottom:21px; }
.fp-step-number { display:grid; place-items:center; width:43px; height:45px; color:var(--kt-54724b); background:var(--ks-edf3e5); border-radius:13px; font-family:KahierNunito,Roboto,sans-serif; font-size:23px; font-weight:800; transform:rotate(-5deg); box-shadow:0 3px 0 var(--ks-dce8d0); }
.fp-status { display:inline-flex; align-items:center; max-width:100%; font-size:10px; line-height:1.5; padding:5px 8px; border-radius:9px; background:var(--ks-e9f1e3); color:var(--kt-456339); font-weight:600; }
.fp-status.is-planned { color:var(--kt-765b47); background:var(--ks-f6eee5); }
.fp-chapter .fp-eyebrow { color:var(--kt-697d60); font-size:9px; letter-spacing:.5px; }
.french-programme .fp-chapter h3 { font-size:21px; line-height:1.2; font-weight:800; margin:0 0 12px; }
.fp-chapter>p:not(.fp-eyebrow) { font-size:12px; color:var(--fp-muted); line-height:1.7; margin:0 0 18px; }
.fp-open { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:auto; padding:11px 12px; background:var(--ks-edf3e7); border:1px solid var(--ks-edf3e7); border-radius:11px; font-size:11px; font-weight:600; line-height:1.5; min-height:44px; }
.fp-open:hover { border-color:var(--ks-9ab786); }
.fp-open .fp-icon { width:17px; height:17px; }
.fp-note { font-size:11px; color:var(--fp-muted); line-height:1.8; margin:16px 0 0; max-width:900px; }
.fp-note a { font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.fp-edition-label { background:var(--ks-f7eadd); color:var(--kt-805d44); font-size:10px; font-weight:600; padding:8px 11px; border-radius:8px; line-height:1.5; }
.fp-intro { color:var(--fp-muted); max-width:860px; font-size:13px; line-height:1.8; margin:0 0 23px; }
.fp-annual-route { list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; counter-reset:none; }
.fp-route-stop { position:relative; min-width:0; padding:20px 0 0 14px; }
.fp-route-marker { position:absolute; left:0; top:0; display:grid; place-items:center; width:34px; height:34px; z-index:1; background:var(--ks-fffdf8); color:var(--kt-87674a); border:2px solid var(--ks-e8d3ba); border-radius:50%; font-family:KahierNunito,Roboto,sans-serif; font-size:13px; font-weight:800; }
.fp-route-stop.is-open .fp-route-marker { background:var(--ks-5b8050); color:var(--kt-fff); border-color:var(--ks-5b8050); }
.fp-route-stop article { display:flex; flex-direction:column; height:100%; border:1px dashed var(--ks-dfdaca); border-radius:19px; background:var(--ks-fffdf8); padding:21px; }
.fp-route-stop.is-open article { border:1px solid var(--ks-cfdcc7); background:var(--ks-f0f5e9); }
.fp-route-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:13px; }
.fp-route-icon { display:grid; place-items:center; width:37px; height:37px; border-radius:12px; color:var(--kt-8c6846); background:var(--ks-f7eadc); flex-shrink:0; }
.fp-route-stop.is-open .fp-route-icon { color:var(--kt-5c7a4b); background:var(--ks-e0ebd3); }
.fp-route-icon .fp-icon { width:21px; height:21px; }
.french-programme .fp-route-stop h3 { font-size:22px; line-height:1.2; font-weight:800; margin:0 0 7px; }
.fp-route-stop .fp-route-subtitle { font-size:11px; line-height:1.6; color:var(--kt-87674f); margin:0 0 15px; }
.fp-route-stop article>p:not(.fp-route-subtitle) { font-size:12px; line-height:1.75; color:var(--fp-muted); margin:0 0 18px; }
.fp-domain-tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; }
.fp-domain-tags span { background:var(--ks-f2f1e8); color:var(--kt-67715b); font-size:9px; line-height:1.6; padding:4px 7px; border-radius:6px; }
.fp-inline-link { display:inline-flex; font-weight:600; font-size:11px; line-height:1.6; margin-top:18px; text-decoration:underline; text-underline-offset:3px; }
.fp-reading { display:flex; align-items:center; gap:25px; margin:26px 0 0; padding:26px; background:var(--ks-f8ede2); border:1px solid var(--ks-ecd8c4); border-radius:22px; }
.fp-reading-art { display:grid; grid-template-columns:repeat(3,34px); gap:8px; flex-shrink:0; transform:rotate(-5deg); }
.fp-reading-art span { display:grid; place-items:center; width:34px; height:44px; background:var(--ks-c18b61); color:var(--kt-fffaf2); border-radius:5px 8px 8px 5px; box-shadow:-2px 3px 0 var(--ks-d8b592); }
.fp-reading-art span.is-cursive { background:var(--ks-6d9479); box-shadow:-2px 3px 0 var(--ks-aac4ad); }
.fp-reading-art .fp-icon { width:23px; height:23px; }
.french-programme .fp-reading h3 { font-size:23px; line-height:1.25; margin:0 0 10px; }
.fp-reading p:not(.fp-eyebrow) { font-size:12px; line-height:1.75; color:var(--kt-6e6658); margin:0 0 10px; }
.fp-reading .fp-reading-note { font-size:11px!important; }
.fp-source-link { display:inline-block; color:var(--kt-456748); font-size:11px; font-weight:600; line-height:1.75; text-decoration:underline; text-underline-offset:3px; }
.fp-domain-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:18px; }
.fp-domain { padding:24px; border:1px solid var(--fp-line); border-radius:21px; background:var(--ks-fff); min-width:0; scroll-margin-top:20px; }
.fp-domain-heading { display:flex; align-items:center; gap:13px; margin-bottom:15px; }
.fp-domain-symbol { display:grid; place-items:center; width:46px; height:48px; flex-shrink:0; border-radius:14px; transform:rotate(-5deg); }
.fp-tone-0 { color:var(--kt-617b49); background:var(--ks-edf2dc); }
.fp-tone-1 { color:var(--kt-9b6d4b); background:var(--ks-faeadd); }
.fp-tone-2 { color:var(--kt-47775b); background:var(--ks-e6f0e7); }
.fp-domain-symbol .fp-icon { width:27px; height:27px; }
.fp-domain-number { color:var(--kt-687661); font-size:9px; letter-spacing:.8px; font-weight:600; }
.french-programme .fp-domain h3 { font-size:23px; margin:4px 0 0; line-height:1.2; }
.fp-domain>p { color:var(--fp-muted); font-size:12px; line-height:1.75; margin:0 0 15px; }
.fp-objectives { margin-top:18px; border-top:1px solid var(--ks-edf0e8); padding-top:15px; }
.fp-objectives summary,.fp-sources summary,.fp-course-reference summary { cursor:pointer; color:var(--kt-4b6945); font-weight:600; line-height:1.7; font-size:12px; padding:3px 0; }
.fp-objectives summary:hover,.fp-sources summary:hover,.fp-course-reference summary:hover { text-decoration:underline; text-underline-offset:4px; }
.fp-objectives ul { margin:17px 0; padding-left:17px; }
.fp-objectives li { color:var(--kt-7c9271); margin-bottom:15px; padding-left:3px; scroll-margin-top:20px; }
.fp-objectives li strong { display:block; font-size:12px; line-height:1.5; font-weight:600; color:var(--kt-496442); }
.fp-objectives li span { display:block; font-size:10px; color:var(--kt-89664a); margin-top:4px; }
.fp-objectives li p { color:var(--fp-muted); font-size:12px; line-height:1.75; margin:5px 0 0; }
.fp-sources { background:var(--ks-f1f3eb); border:1px solid var(--ks-e1e6d8); border-radius:21px; padding:26px; }
.fp-sources-heading { display:flex; gap:13px; align-items:center; margin-bottom:17px; }
.fp-sources-heading>span { display:grid; place-items:center; width:46px; height:48px; background:var(--ks-fffdf6); border-radius:14px; flex-shrink:0; color:var(--kt-77905c); }
.french-programme .fp-sources h2 { font-size:24px; }
.fp-sources p:not(.fp-eyebrow) { color:var(--fp-muted); font-size:12px; line-height:1.8; max-width:950px; margin:0 0 15px; }
.fp-sources details { border-top:1px solid var(--ks-dce3d5); padding-top:12px; margin-top:18px; }
.fp-source-list { margin:18px 0 21px; padding-left:18px; }
.fp-source-list li { color:var(--kt-718668); font-size:12px; margin-bottom:15px; }
.fp-source-list a { font-weight:600; text-decoration:underline; text-underline-offset:3px; line-height:1.8; }
.fp-source-list span:not(.fp-sr-only) { display:block; color:var(--fp-muted); font-size:11px; line-height:1.75; margin-top:5px; }
.fp-summary { display:flex; align-items:center; gap:18px; background:var(--ks-fffaf1); border:1px solid var(--ks-e8dfcb); border-radius:19px; margin:0 0 27px; padding:21px 24px; }
.fp-summary-symbol { display:grid; place-items:center; width:48px; height:51px; flex-shrink:0; background:var(--ks-f4e8cd); color:var(--kt-927644); border-radius:16px; transform:rotate(-7deg); }
.fp-summary-symbol .fp-icon { width:27px; height:27px; }
.fp-summary>div { flex:1; min-width:0; }
.fp-summary .fp-eyebrow { margin-bottom:5px; font-size:9px; color:var(--kt-887048); }
.fp-summary h2 { font-size:23px!important; line-height:1.2; margin:0 0 6px!important; }
.fp-summary p:not(.fp-eyebrow) { color:var(--fp-muted); font-size:12px; line-height:1.6; margin:0; max-width:640px; }
.fp-summary>a { display:inline-flex; align-items:center; gap:10px; flex-shrink:0; padding:12px 14px; min-height:43px; border:1px solid var(--ks-e4d8be); background:var(--ks-fffdf7); color:var(--kt-725c3b); border-radius:11px; font-size:11px; font-weight:600; line-height:1.5; }
.fp-summary>a:hover { background:var(--ks-f8eed9); }
.fp-summary>a .fp-icon { width:18px; height:18px; }
.fp-course-reference { margin:20px 0; padding:17px 20px; background:var(--ks-f0f5e9); border:1px solid var(--ks-dce7d2); border-radius:16px; }
.fp-course-reference>div { display:flex; align-items:center; gap:12px; }
.fp-course-reference>div>.fp-icon { color:var(--kt-728f59); width:28px; height:28px; }
.fp-course-reference>div>p { flex:1; line-height:1.5; margin:0; }
.fp-course-reference strong { display:block; color:var(--kt-49623e); font-size:12px; }
.fp-course-reference span { display:block; color:var(--fp-muted); font-size:11px; margin-top:4px; }
.fp-course-reference>div>a { display:inline-flex; gap:6px; align-items:center; font-size:11px; color:var(--kt-45653b); font-weight:600; line-height:1.5; text-decoration:underline; text-underline-offset:3px; }
.fp-course-reference>div>a .fp-icon { width:16px; height:16px; }
.fp-course-reference details { margin-top:12px; border-top:1px solid var(--ks-dce5d2); padding-top:10px; }
.fp-course-reference summary { font-size:11px; }
.fp-course-reference details p { color:var(--fp-muted); font-size:12px; line-height:1.8; margin:13px 0; }
.fp-course-reference ul { margin:12px 0; padding-left:20px; font-size:12px; line-height:1.8; color:var(--kt-506d45); }
.fp-course-reference li { margin:5px 0; }
.fp-course-reference li a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
@media (max-width:1250px) { .fp-chapter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .fp-annual-route { grid-template-columns:repeat(2,minmax(0,1fr)); } .fp-hero { padding:30px; gap:12px; } }
@media (max-width:1000px) { .fp-hero { grid-template-columns:minmax(0,1.6fr) minmax(180px,1fr); padding:26px; } .fp-hero-map { height:246px; } .fp-map-book { width:110px; height:145px; } .fp-map-word.is-speak { bottom:32px; } .fp-map-sticker { bottom:0; right:0; } .fp-map-star { right:8px; } .fp-summary { gap:14px; flex-wrap:wrap; } .fp-summary>div { flex-basis:calc(100% - 65px); } .fp-summary>a { margin-left:62px; } .fp-domain { padding:20px; } .french-programme .fp-domain h3 { font-size:21px; } }
@media (max-width:760px) { .fp-hero { grid-template-columns:minmax(0,1fr); } .fp-hero-map { display:none; } .fp-facts { gap:14px; padding:22px 0; } .fp-facts>div { flex-direction:column; align-items:flex-start; gap:7px; } .fp-facts span { font-size:11px; } .fp-facts strong { font-size:28px; } .fp-jump-nav { gap:8px 20px; } .fp-section-heading { gap:10px; } .fp-section-heading h2 { font-size:25px; } .fp-domain-grid { grid-template-columns:1fr; } .fp-reading { align-items:flex-start; gap:20px; padding:23px; } .fp-reading-art { grid-template-columns:repeat(2,29px); gap:7px; } .fp-reading-art span { width:29px; height:38px; } .fp-reading-art .fp-icon { width:20px; height:20px; } .fp-course-reference>div { flex-wrap:wrap; } .fp-course-reference>div>a { flex-basis:100%; padding-left:40px; } }
@media (max-width:540px) { .fp-breadcrumb { font-size:10px; gap:7px; margin-bottom:17px; } .fp-hero { padding:25px 21px; border-radius:23px; } .french-programme .fp-hero h1 { font-size:34px; } .fp-hero-copy>p:not(.fp-eyebrow) { font-size:13px; } .fp-hero-actions { align-items:flex-start; gap:16px; flex-direction:column; } .fp-hero .fp-eyebrow { font-size:9px; letter-spacing:.7px; } .fp-facts { gap:12px; } .fp-facts span { font-size:10px; } .fp-jump-nav { margin-bottom:4px; gap:6px 18px; } .fp-jump-nav a { font-size:11px; } .fp-block { margin-top:32px; } .fp-chapter-grid,.fp-annual-route { grid-template-columns:1fr; } .fp-chapter { padding:22px; } .fp-chapter-top { margin-bottom:17px; } .french-programme .fp-chapter h3 { font-size:24px; } .fp-chapter>p:not(.fp-eyebrow) { font-size:13px; } .fp-annual-route { gap:14px; } .fp-route-stop { padding:0 0 0 39px; } .fp-route-stop:not(:last-child):before { content:""; position:absolute; left:15px; top:33px; width:1px; height:calc(100% - 15px); background:var(--ks-e0d4bc); } .fp-route-marker { width:31px; height:31px; top:15px; font-size:11px; } .fp-route-stop article { padding:20px; } .fp-route-top { gap:6px; } .fp-route-top .fp-status { font-size:9px; } .fp-reading { flex-direction:column; gap:20px; padding:22px; } .fp-reading-art { grid-template-columns:repeat(6,27px); transform:rotate(-3deg); gap:7px; } .fp-reading-art span { width:27px; height:37px; } .french-programme .fp-reading h3 { font-size:22px; } .fp-domain { padding:22px; } .fp-domain-heading { gap:12px; } .french-programme .fp-domain h3 { font-size:22px; } .fp-sources { padding:22px; } .french-programme .fp-sources h2 { font-size:22px; } .fp-summary { padding:20px; gap:13px; } .fp-summary h2 { font-size:22px!important; } .fp-summary>a { margin-left:0; width:100%; justify-content:space-between; } .fp-summary-symbol { width:41px; height:45px; } .fp-summary>div { flex-basis:calc(100% - 55px); } .fp-course-reference { padding:16px; } }
@media (prefers-reduced-motion:reduce) { .fp-primary { transition:none; } .fp-primary:hover { transform:none; } }
