@import "tailwindcss";

:root {
  --pearl: #f7f4ee;
  --paper: #fffdf8;
  --navy: #13243a;
  --ink: #243140;
  --gold: #b88b3b;
  --champagne: #d9c7a5;
  --sage: #aab7a6;
  --line: rgba(19, 36, 58, 0.13);
  --serif: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  --sans: "Avenir Next", "Segoe UI", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--pearl); color: var(--ink); font-family: var(--sans); }
button, select { font: inherit; }
a { color: inherit; text-decoration: none; }
button { color: inherit; }
main { overflow: hidden; }

.site-header {
  height: 96px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 0 4.5vw; position: absolute; z-index: 20; width: 100%; color: var(--navy);
}
.brand { display: inline-flex; align-items: center; gap: 13px; width: fit-content; }
.official-brand { display: block; width: 170px; height: 78px; overflow: hidden; mix-blend-mode: multiply; }
.official-brand img { width: 170px; height: 170px; object-fit: cover; transform: translateY(-46px); }
.brand-copy { display: flex; flex-direction: column; align-items: center; }
.brand-copy strong { font: 500 35px/0.95 var(--serif); letter-spacing: .1em; }
.brand-copy small { margin-top: 7px; font: 700 9px/1 var(--sans); letter-spacing: .27em; text-transform: uppercase; }
.key-mark { display: inline-block; width: 28px; height: 56px; position: relative; flex: none; }
.key-mark::before, .key-mark::after { content: ""; position: absolute; border: 3px solid var(--gold); border-radius: 50%; width: 15px; height: 15px; top: 0; }
.key-mark::before { left: 0; } .key-mark::after { right: 0; }
.key-mark > span { position: absolute; width: 5px; height: 45px; background: var(--gold); top: 11px; left: 12px; border-radius: 5px; }
.key-mark > span::before, .key-mark > span::after { content: ""; position: absolute; height: 4px; background: var(--gold); right: -8px; }
.key-mark > span::before { width: 11px; bottom: 8px; } .key-mark > span::after { width: 8px; bottom: 1px; }
.nav { display: flex; gap: 40px; font-size: 14px; }
.nav a { padding: 13px 0; position: relative; }
.nav a::after { content: ""; position: absolute; height: 1px; background: var(--gold); left: 0; right: 100%; bottom: 4px; transition: right .2s; }
.nav a:hover::after { right: 0; }
.nav-test-button { min-height: 42px; padding: 0 17px; border: 1px solid var(--gold); border-radius: 999px; background: var(--navy); color: var(--paper); font-family: inherit; font-size: 12px; letter-spacing: .04em; cursor: pointer; display: inline-flex; align-items: center; gap: 9px; transition: transform .2s, background .2s, box-shadow .2s; }
.nav-test-button:hover { transform: translateY(-2px); background: #173252; box-shadow: 0 10px 22px rgba(16,38,66,.18); }
.nav-test-button span { display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; background: var(--gold); color: var(--navy); font-size: 10px; font-weight: 800; }
.header-cta { justify-self: end; }
.header-actions { display: flex; align-items: center; justify-self: end; gap: 15px; }
.language-toggle { height: 38px; padding: 0 12px; border: 1px solid var(--champagne); border-radius: 20px; background: rgba(255,255,255,.42); display: flex; gap: 8px; align-items: center; cursor: pointer; font-size: 10px; letter-spacing: .12em; }
.language-toggle span { opacity: .42; }.language-toggle span.active { opacity: 1; color: var(--navy); font-weight: 700; }
.language-toggle i { width: 1px; height: 13px; background: var(--champagne); }
.menu-button { display: none; border: 0; background: transparent; padding: 15px; }
.menu-button span { display: block; width: 24px; height: 1px; background: var(--navy); margin: 6px; }

.button {
  min-height: 58px; display: inline-flex; align-items: center; justify-content: center; gap: 18px;
  padding: 0 30px; border-radius: 5px; border: 1px solid transparent; cursor: pointer;
  font: 500 16px/1 var(--serif); transition: transform .22s, box-shadow .22s, background .22s;
}
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--navy); color: white; box-shadow: 0 16px 38px rgba(19,36,58,.15); }
.button-outline { border-color: var(--gold); color: #8c652a; background: rgba(255,255,255,.18); }
.button-outline:hover { background: rgba(217,199,165,.22); }
.button-gold { background: var(--gold); color: white; }
.button-light { background: var(--paper); color: var(--navy); }

.hero {
  min-height: 900px; display: grid; grid-template-columns: 52% 48%; align-items: center;
  padding: 150px 4.8vw 65px; position: relative;
  background: radial-gradient(circle at 16% 42%, rgba(255,255,255,.92), transparent 40%), linear-gradient(110deg,#f8f4ed,#f4eee4 72%,#f8f4ee);
}
.hero::after { content: ""; position: absolute; height: 230px; left: -5%; right: -5%; bottom: -185px; border: 1px solid var(--champagne); border-radius: 50% 50% 0 0; pointer-events: none; }
.hero-copy { max-width: 690px; z-index: 2; }
.eyebrow { margin: 0 0 25px; color: #9b712e; text-transform: uppercase; letter-spacing: .25em; font-size: 13px; font-weight: 650; }
h1,h2,h3 { color: var(--navy); font-family: var(--serif); font-weight: 500; }
.hero h1 { margin: 0; font-size: clamp(64px, 5.9vw, 90px); line-height: .94; letter-spacing: -.045em; }
.hero h1 em { color: var(--gold); font-style: normal; }
.hero-lead { max-width: 570px; margin: 28px 0 34px; font-size: 19px; line-height: 1.7; }
.hero-actions { display: flex; gap: 18px; }
.trust-row { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 44px; max-width: 650px; }
.trust-row div { min-width: 0; padding: 0 18px; border-right: 1px solid var(--line); }
.trust-row div:first-child { padding-left: 0; }
.trust-row div:last-child { border: 0; }
.trust-row strong { display: block; color: var(--gold); font: 500 17px var(--serif); }
.trust-row span { display: block; margin-top: 5px; font-size: 11px; line-height: 1.3; }
.hero-visual { height: 670px; position: relative; max-width: 670px; width: 100%; justify-self: end; }
.portrait-arch { width: 72%; height: 100%; border-radius: 240px 240px 0 0; overflow: hidden; border: 1px solid var(--gold); position: absolute; top: 0; left: 12%; padding: 4px; }
.portrait-arch img { width: 100%; height: 100%; object-fit: cover; object-position: center top; border-radius: inherit; }
.floating-card { position: absolute; z-index: 4; background: rgba(255,253,248,.9); backdrop-filter: blur(18px); border: 1px solid rgba(255,255,255,.9); box-shadow: 0 22px 60px rgba(19,36,58,.14); }
.level-card { width: 235px; left: -2%; bottom: 105px; padding: 23px; text-align: center; }
.level-card p { font: 500 19px var(--serif); margin: 0 0 17px; }
.level-ring { width: 82px; height: 82px; margin: auto; border: 4px solid var(--champagne); border-right-color: var(--gold); border-radius: 50%; display: grid; place-items: center; }
.level-ring strong { color: var(--navy); font: 500 30px var(--serif); }
.level-card > span { display: block; margin-top: 18px; font-size: 12px; }
.review-card { right: 0; bottom: 45px; width: 205px; padding: 25px; }
.review-card .stars { color: var(--gold); letter-spacing: 3px; font-size: 13px; }
.review-card p { font: italic 18px/1.45 var(--serif); color: var(--navy); margin: 15px 0 0; }
.orbit-key { position: absolute; right: -10px; top: 245px; border: 1px solid var(--gold); border-left-color: transparent; border-radius: 0 100px 100px 0; height: 170px; width: 90px; display: grid; place-items: center; }
.orbit-key .key-mark { transform: scale(.7); }

.promise-bar { max-width: 1180px; margin: 76px auto; padding: 35px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr 2fr 1fr; align-items: center; }
.promise-bar p { margin: 0; text-transform: uppercase; color: var(--gold); font-size: 11px; letter-spacing: .2em; }
.promise-bar strong { font: 500 27px var(--serif); color: var(--navy); text-align: center; }
.promise-bar button { justify-self: end; font-size: 12px; border: 0; border-bottom: 1px solid var(--gold); padding: 0 0 4px; background: none; cursor: pointer; color: var(--navy); }
.section { max-width: 1280px; margin: auto; padding: 105px 45px; }
.section-heading { display: grid; grid-template-columns: 1.3fr .7fr; gap: 90px; align-items: end; margin-bottom: 55px; }
.section-heading .eyebrow { margin-bottom: 18px; }
.section-heading h2, .method-copy h2, .expert-card h2, .final-cta h2 { margin: 0; font-size: clamp(42px,4vw,62px); line-height: 1.03; letter-spacing: -.035em; }
.section-heading > p { margin: 0; font-size: 16px; line-height: 1.8; color: #64707b; }
.path-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.path-grid.four { grid-template-columns: repeat(4,1fr); }
.path-card { min-height: 420px; border: 1px solid var(--line); padding: 34px; display: flex; flex-direction: column; position: relative; overflow: hidden; transition: transform .3s, box-shadow .3s; }
.path-card:hover { transform: translateY(-7px); box-shadow: 0 24px 50px rgba(19,36,58,.09); }
.path-1 { background: #f2eee4; } .path-2 { background: #e8eee7; } .path-3 { background: var(--navy); color: #e9edf1; } .path-4 { background: #eee7e0; }
.path-3 h3, .path-3 .path-top small, .path-3 a { color: white; }
.path-top { display: flex; justify-content: space-between; color: var(--gold); }
.path-top > span { font-size: 31px; }
.path-top small { color: var(--navy); font-size: 12px; text-transform: uppercase; letter-spacing: .15em; }
.path-card h3 { margin: 68px 0 6px; font-size: 36px; }
.path-card .levels { color: var(--gold); text-transform: uppercase; font-size: 11px; letter-spacing: .16em; }
.path-card > p:last-of-type { line-height: 1.8; font-size: 14px; max-width: 310px; }
.path-card a { margin-top: auto; border-top: 1px solid currentColor; padding-top: 18px; display: flex; justify-content: space-between; color: var(--navy); font-size: 13px; }
.included-strip { display: grid; grid-template-columns: repeat(6,1fr); margin-top: 24px; border: 1px solid var(--line); background: var(--paper); }
.included-strip span { min-height: 78px; padding: 18px; border-right: 1px solid var(--line); display: flex; align-items: center; gap: 10px; font-size: 11px; line-height: 1.4; }
.included-strip span:last-child { border: 0; }.included-strip b { color: var(--gold); }

.editorial-split { max-width: 1440px; margin: 40px auto 120px; display: grid; grid-template-columns: 1.12fr .88fr; min-height: 620px; background: var(--paper); }
.editorial-split > img { width: 100%; height: 100%; object-fit: cover; min-height: 620px; }
.editorial-split > div { padding: 80px; display: flex; flex-direction: column; justify-content: center; }
.editorial-split h2, .gallery-head h2, .registration-section h2 { margin: 0; color: var(--navy); font: 500 clamp(42px,4vw,62px)/1.03 var(--serif); letter-spacing: -.035em; }
.editorial-split > div > p:not(.eyebrow) { line-height: 1.85; color: #64707b; margin: 28px 0; }
.culture-tags { display: flex; flex-wrap: wrap; gap: 9px; }.culture-tags span { padding: 9px 13px; border: 1px solid var(--champagne); border-radius: 20px; font-size: 11px; }

.francophonie-section { background: var(--navy); color: #e3e8ed; padding: 110px max(45px,calc((100vw - 1190px)/2)); }
.light-heading h2 { color: white; }.light-heading > p { color: #b9c3cc; }
.map-layout { display: grid; grid-template-columns: 1fr 280px; gap: 38px; align-items: stretch; }
.world-map { min-height: 540px; position: relative; border: 1px solid rgba(217,199,165,.32); background: radial-gradient(circle at 51% 47%,rgba(184,139,59,.12),transparent 37%),linear-gradient(145deg,#102b49,#09192b); overflow: hidden; box-shadow: inset 0 0 80px rgba(0,0,0,.2); }
.world-map::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgba(217,199,165,.1); pointer-events: none; }
.map-title { position: absolute; left: 28px; top: 24px; z-index: 4; display: flex; align-items: center; gap: 12px; }
.map-title .key-mark { width: 30px; height: 30px; transform: scale(.78); }
.map-title div { display: flex; flex-direction: column; }.map-title strong { color: white; font: 500 18px var(--serif); }.map-title span { color: #9eacb9; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; margin-top: 3px; }
.world-map svg { width: 100%; height: 100%; position: absolute; inset: 12px 0 0; padding: 48px 20px 68px; }
.world-map .country-map { fill: rgba(217,199,165,.1); stroke: rgba(217,199,165,.35); stroke-width: .65; stroke-linejoin: round; }
.world-map .country-map path { transition: fill .2s,stroke .2s,filter .2s; }
.world-map .country-map path:hover { fill: rgba(217,199,165,.28); stroke: rgba(255,244,216,.8); }
.world-map .country-map .francophone-country { fill: rgba(184,139,59,.52); stroke: #e8cc94; stroke-width: 1; filter: drop-shadow(0 0 2px rgba(226,193,127,.5)); }
.world-map .country-map .francophone-country:hover { fill: #c99843; stroke: #fff0c8; }
.world-map .map-grid { fill: none; stroke: rgba(217,199,165,.07); stroke-width: 1; stroke-dasharray: 3 7; }
.map-pin { position: absolute; transform: translate(-6px,-6px); z-index: 2; }
.map-pin i { display: block; width: 11px; height: 11px; border-radius: 50%; background: var(--gold); border: 2px solid #fff4d8; box-shadow: 0 0 0 6px rgba(184,139,59,.18),0 0 18px rgba(184,139,59,.7); }
.map-pin span { display: block; white-space: nowrap; margin: 9px 0 0 -5px; padding: 6px 9px; background: rgba(7,21,37,.92); border: 1px solid rgba(217,199,165,.32); color: white; font-size: 9px; line-height: 1.2; box-shadow: 0 8px 18px rgba(0,0,0,.2); }
.map-pin.europe i { background: #e6c472; }.map-pin.africa i { background: #c79239; }.map-pin.americas i { background: #b8d5df; }.map-pin.islands i { background: #d9b5a4; }
.map-legend { position: absolute; z-index: 4; left: 26px; right: 26px; bottom: 20px; padding-top: 13px; border-top: 1px solid rgba(217,199,165,.18); display: flex; flex-wrap: wrap; gap: 13px 20px; color: #b9c3cc; font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.map-legend span { display: inline-flex; align-items: center; gap: 7px; }.map-legend i { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }.map-legend i.europe { background:#e6c472; }.map-legend i.africa { background:#c79239; }.map-legend i.americas { background:#b8d5df; }.map-legend i.islands { background:#d9b5a4; }
.franco-stats { display: grid; gap: 12px; }.franco-stats div { border: 1px solid rgba(217,199,165,.24); padding: 25px; display: flex; flex-direction: column; justify-content: center; }
.franco-stats strong { color: var(--gold); font: 500 40px var(--serif); }.franco-stats span { margin-top: 6px; color: #c4ccd3; font-size: 11px; line-height: 1.45; }
.source-note { color: #8895a2; font-size: 10px; margin: 18px 0 0; }

.opportunity-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.opportunity-grid article { background: var(--paper); border: 1px solid var(--line); }
.opportunity-grid img { width: 100%; height: 330px; object-fit: cover; display: block; }
.opportunity-grid article > div { padding: 32px; position: relative; }
.opportunity-grid article > div > span { position: absolute; right: 30px; top: 24px; color: var(--champagne); font: 500 45px var(--serif); }
.opportunity-grid h3 { font-size: 32px; margin: 0 0 16px; }.opportunity-grid p { line-height: 1.75; max-width: 500px; }
.opportunity-grid small { display: block; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); color: #737e88; line-height: 1.6; }
.career-chips { margin-top: 22px; display: grid; grid-template-columns: repeat(8,1fr); border: 1px solid var(--line); }
.career-chips span { padding: 18px 8px; text-align: center; border-right: 1px solid var(--line); font-size: 11px; }.career-chips span:last-child { border: 0; }

.method-section { max-width: 1440px; margin: 95px auto; background: #ede8df; display: grid; grid-template-columns: 1fr 1fr; min-height: 700px; }
.method-art { position: relative; overflow: hidden; min-height: 650px; background: var(--navy); }
.giant-letter { color: rgba(217,199,165,.14); font: 500 620px/.9 var(--serif); position: absolute; left: 5%; top: 0; }
.method-note { position: absolute; width: 260px; padding: 25px; color: white; border: 1px solid rgba(217,199,165,.35); background: rgba(255,255,255,.06); backdrop-filter: blur(8px); top: 12%; left: 12%; }
.method-note.method-1 { top: 9%; left: 10%; }.method-note.method-2 { top: 31%; left: 45%; }.method-note.method-3 { top: 56%; left: 12%; }.method-note.method-4 { top: 76%; left: 44%; }
.method-note span { color: var(--gold); font: 500 23px var(--serif); }
.method-note p { margin: 13px 0 0; font-size: 14px; line-height: 1.6; }
.method-copy { padding: 85px 75px; display: flex; flex-direction: column; justify-content: center; }
.method-copy > p:not(.eyebrow) { font-size: 16px; line-height: 1.8; margin: 28px 0; }
.method-copy ul { list-style: none; padding: 0; display: grid; gap: 14px; margin: 0 0 25px; }
.method-copy li { padding-bottom: 14px; border-bottom: 1px solid var(--line); font-size: 14px; }
.method-copy li span { color: var(--gold); margin-right: 12px; }
.text-link { border: 0; border-bottom: 1px solid var(--gold); background: transparent; width: fit-content; padding: 10px 0; cursor: pointer; color: var(--navy); }

.expert-section { max-width: 1280px; margin: 120px auto; padding: 0 45px; }
.expert-card { border: 1px solid var(--champagne); padding: 70px; display: grid; grid-template-columns: 160px 1fr .75fr; gap: 55px; align-items: center; background: var(--paper); }
.expert-card { position: relative; overflow: hidden; }
.expert-card > *:not(.paris-sketch) { position: relative; z-index: 1; }
.paris-sketch { position: absolute; right: -90px; bottom: -160px; width: 490px; opacity: .075; mix-blend-mode: multiply; transform: rotate(-3deg); }
.monogram { width: 150px; height: 190px; border-radius: 80px 80px 0 0; display: grid; place-items: center; color: var(--gold); border: 1px solid var(--gold); background: #f2ece2; font: 500 42px var(--serif); }
.expert-card h2 { font-size: 45px; }
.expert-card > div p:last-child { line-height: 1.8; }
.expert-card blockquote { margin: 0; border-left: 1px solid var(--gold); padding-left: 28px; font: italic 21px/1.6 var(--serif); color: var(--navy); }

.gallery-section { max-width: 1320px; margin: 120px auto; padding: 0 45px; }
.gallery-head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 40px; }
.photo-gallery { display: grid; grid-template-columns: 1.4fr 1fr; grid-template-rows: 310px 310px; gap: 18px; }
.photo-gallery figure { margin: 0; position: relative; overflow: hidden; }.photo-gallery figure.wide { grid-row: 1/3; }
.photo-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }.photo-gallery figure:hover img { transform: scale(1.035); }
.photo-gallery figcaption { position: absolute; left: 20px; bottom: 18px; background: rgba(255,253,248,.88); backdrop-filter: blur(10px); padding: 11px 16px; color: var(--navy); font: italic 17px var(--serif); }

.pricing-section { padding-top: 80px; }
.section-heading.compact { margin-bottom: 45px; }
.calculator { display: grid; grid-template-columns: 1fr .8fr; border: 1px solid var(--champagne); background: var(--paper); }
.calculator-form { padding: 55px; }
.calculator-form label, .calculator-form legend { display: block; text-transform: uppercase; letter-spacing: .15em; font-size: 11px; color: #7b6b57; }
.calculator-form select { display: block; width: 100%; margin-top: 12px; height: 62px; border: 1px solid var(--line); background: var(--pearl); color: var(--navy); padding: 0 18px; outline: none; }
.calculator-form fieldset { border: 0; padding: 0; margin: 35px 0 0; }
.choice { width: 100%; min-height: 75px; margin-top: 10px; padding: 15px 20px; border: 1px solid var(--line); background: transparent; display: flex; justify-content: space-between; align-items: center; text-align: left; cursor: pointer; }
.choice.active { border-color: var(--gold); background: #faf6ee; }
.choice span { display: flex; flex-direction: column; gap: 6px; }.choice small { color: #77808a; }
.choice i { color: var(--gold); font-style: normal; }
.offer-list { margin-top: 25px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; font-size: 11px; color: #5f6b76; }
.course-facts { display: grid; grid-template-columns: repeat(4,1fr); border-block: 1px solid rgba(255,255,255,.14); margin: 18px 0 28px; }
.course-facts p { padding: 17px 10px; margin: 0; border-right: 1px solid rgba(255,255,255,.14); display: flex; flex-direction: column; gap: 5px; color: #aeb8c2; font-size: 10px; }
.course-facts p:last-child { border: 0; }.course-facts b { color: white; font: 500 22px var(--serif); }
.price-result { padding: 60px; background: var(--navy); color: white; display: flex; flex-direction: column; justify-content: center; }
.price-result > span { text-transform: uppercase; color: var(--champagne); letter-spacing: .18em; font-size: 11px; }
.price-result > strong { font: 500 clamp(45px,5vw,72px)/1 var(--serif); margin: 20px 0 12px; }
.price-result strong small { font: 500 18px var(--sans); }
.price-result > p { color: #c8cfd7; margin: 0 0 30px; }
.price-result > small { margin-top: 20px; color: #99a3ae; line-height: 1.5; }

.registration-section { max-width: 1190px; margin: 110px auto; padding: 0 45px; text-align: center; }
.registration-section > div { display: grid; grid-template-columns: repeat(5,1fr); margin-top: 45px; position: relative; }
.registration-section > div::before { content: ""; position: absolute; top: 24px; left: 10%; right: 10%; height: 1px; background: var(--champagne); }
.registration-section article { z-index: 1; display: flex; flex-direction: column; align-items: center; gap: 18px; }
.registration-section b { width: 49px; height: 49px; border-radius: 50%; display: grid; place-items: center; background: var(--paper); border: 1px solid var(--gold); color: var(--gold); font: 500 18px var(--serif); }
.registration-section span { max-width: 150px; font-size: 12px; line-height: 1.5; }

.final-cta { margin-top: 120px; min-height: 550px; padding: 85px 25px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: var(--navy); color: white; }
.final-cta .key-mark { transform: scale(.85); margin-bottom: 24px; }
.final-cta h2 { color: white; max-width: 800px; }
.final-cta > p:not(.eyebrow) { max-width: 600px; line-height: 1.8; color: #c9d0d7; }
.final-cta > div { display: flex; gap: 18px; margin-top: 25px; }
footer { padding: 60px 5vw 28px; background: #0d1b2c; color: #d6dce2; border-top: 1px solid rgba(217,199,165,.2); }
.footer-top { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 60px; align-items: center; padding-bottom: 48px; }
.footer-brand strong { color: white; }.footer-top > p { font: 500 20px/1.5 var(--serif); max-width: 380px; }
.footer-brand .official-brand { filter: invert(1) sepia(.25); mix-blend-mode: screen; }
.footer-links { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; font-size: 13px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.1); padding-top: 25px; display: flex; justify-content: space-between; color: #84909c; font-size: 11px; }

.modal-backdrop { position: fixed; inset: 0; background: rgba(8,18,31,.76); backdrop-filter: blur(10px); z-index: 100; display: grid; place-items: center; padding: 25px; }
.quiz-modal { width: min(820px,100%); max-height: 94vh; overflow: auto; background: var(--paper); padding: 48px 55px; position: relative; box-shadow: 0 30px 90px rgba(0,0,0,.3); border-top: 4px solid var(--gold); }
.close-modal { position: absolute; right: 20px; top: 14px; border: 0; background: transparent; font: 300 34px/1 var(--sans); cursor: pointer; }
.quiz-brand { display: flex; gap: 18px; align-items: center; margin-bottom: 25px; }.quiz-brand .key-mark { transform: scale(.72); }.quiz-brand .eyebrow { margin: 0 0 6px; }.quiz-brand span { font-size: 11px; color: #77818a; }
.quiz-meta { display: flex; align-items: center; gap: 18px; font-size: 12px; color: #7b8490; }
.quiz-meta div { flex: 1; height: 3px; background: #e2ded7; }.quiz-meta i { display: block; height: 100%; background: var(--gold); transition: width .3s; }
.quiz-meta strong { color: var(--gold); }
.quiz-status { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 24px; }.quiz-status > span { border: 1px solid var(--champagne); padding: 6px 10px; text-transform: uppercase; letter-spacing: .15em; color: #8f692d; font-size: 9px; }.quiz-status small { color: #7a8490; font-size: 10px; font-style: italic; }.quiz-status b { color: #a66c2b; font-size: 11px; }
.quiz-modal h2 { font-size: 38px; line-height: 1.15; margin: 35px 0; }
.quiz-options { display: grid; gap: 10px; }
.quiz-options button { min-height: 62px; text-align: left; border: 1px solid var(--line); background: transparent; padding: 10px 18px; cursor: pointer; display: grid; grid-template-columns: 32px 1fr auto; align-items: center; }
.quiz-options button span { display: inline-grid; place-items: center; width: 30px; height: 30px; border: 1px solid var(--champagne); border-radius: 50%; margin-right: 15px; }
.quiz-options button i { font-style: normal; padding-left: 13px; }.quiz-options button > b { font-size: 19px; }
.quiz-options .correct { border-color: #73906d; background: #eef5eb; }.quiz-options .wrong { border-color: #ae685f; background: #faeeec; }
.quiz-next { margin-top: 25px; float: right; }
.answer-feedback { margin-top: 16px; padding: 16px 18px; background: #faeeec; border-left: 3px solid #ae685f; }.answer-feedback.good { background: #eef5eb; border-color: #73906d; }.answer-feedback strong { font-family: var(--serif); color: var(--navy); }.answer-feedback p { margin: 5px 0 0; font-size: 12px; line-height: 1.6; }
.quiz-result { text-align: center; padding: 30px 0; }.quiz-result .result-level { width: 140px; height: 140px; border: 4px solid var(--champagne); border-right-color: var(--gold); border-radius: 50%; display: grid; place-items: center; margin: 20px auto; color: var(--navy); font: 500 33px var(--serif); }
.result-score { color: var(--gold); font-weight: 700; letter-spacing: .15em; }.result-gift { max-width: 520px; margin: 24px auto; padding: 18px 22px; display: flex; align-items: center; text-align: left; gap: 18px; background: #f3eee4; border: 1px solid var(--champagne); }.result-gift .key-mark { transform: scale(.62); }.result-gift div { display: flex; flex-direction: column; gap: 5px; }.result-gift strong { color: var(--navy); font-family: var(--serif); }.result-gift span { font-size: 11px; color: #66717c; }
.quiz-result > p:not(.eyebrow) { line-height: 1.8; }.quiz-result .text-link { display: block; margin: 25px auto 0; }

.reveal { animation: reveal .7s cubic-bezier(.22,1,.36,1) both; }.hero-visual { animation-delay: .12s; }
@keyframes reveal { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

@media (max-width: 1050px) {
  .site-header { grid-template-columns: 1fr auto auto; padding: 0 25px; }
  .nav { display: none; position: absolute; left: 20px; right: 20px; top: 82px; background: var(--paper); padding: 30px; flex-direction: column; box-shadow: 0 20px 50px rgba(19,36,58,.15); }
  .nav.open { display: flex; }.menu-button { display: block; }.header-cta { min-height: 46px; padding: 0 18px; font-size: 14px; }
  .hero { grid-template-columns: 1fr; padding-top: 145px; }.hero-copy { max-width: 760px; }.hero-visual { margin-top: 60px; justify-self: center; width: 90%; }
  .promise-bar { margin-inline: 35px; }.path-grid,.path-grid.four { grid-template-columns: 1fr 1fr; }.path-card { min-height: 340px; }
  .included-strip { grid-template-columns: repeat(3,1fr); }.included-strip span:nth-child(3) { border-right: 0; }
  .editorial-split { grid-template-columns: 1fr; }.editorial-split > img { min-height: 500px; }.map-layout { grid-template-columns: 1fr; }.franco-stats { grid-template-columns: 1fr 1fr; }
  .career-chips { grid-template-columns: repeat(4,1fr); }.opportunity-grid { grid-template-columns: 1fr; }
  .method-section { grid-template-columns: 1fr; }.method-art { min-height: 570px; }
  .expert-card { grid-template-columns: 150px 1fr; }.expert-card blockquote { grid-column: 1/-1; }
}

@media (max-width: 700px) {
  .site-header { height: 78px; }.brand-copy strong { font-size: 28px; }.brand-copy small { font-size: 7px; }.key-mark { transform: scale(.8); }
  .official-brand { width: 135px; height: 66px; }
  .official-brand img { width: 135px; height: 135px; transform: translateY(-36px); }
  .header-cta { display: none; }.header-actions { margin-left: auto; }.language-toggle { height: 34px; }
  .hero { min-height: auto; padding: 120px 22px 40px; }.hero h1 { font-size: 53px; }.hero-lead { font-size: 16px; }.hero-actions { flex-direction: column; align-items: stretch; }
  .trust-row { grid-template-columns: 1fr 1fr; gap: 22px 0; }.trust-row div:nth-child(2) { border: 0; }
  .hero-visual { height: 520px; width: 100%; margin-top: 45px; }.portrait-arch { width: 83%; left: 8%; }.level-card { width: 175px; padding: 16px; bottom: 40px; }.review-card { width: 155px; padding: 16px; bottom: 3px; }
  .orbit-key { display: none; }.promise-bar { grid-template-columns: 1fr; gap: 16px; text-align: center; margin: 50px 22px; }.promise-bar button { justify-self: center; }
  .section { padding: 75px 22px; }.section-heading { grid-template-columns: 1fr; gap: 25px; }.section-heading h2,.method-copy h2,.expert-card h2,.final-cta h2 { font-size: 43px; }
  .path-grid,.path-grid.four { grid-template-columns: 1fr; }.path-card { padding: 27px; }.path-card h3 { margin-top: 40px; }.included-strip { grid-template-columns: 1fr 1fr; }.included-strip span:nth-child(odd) { border-right: 1px solid var(--line); }
  .editorial-split { margin-bottom: 60px; }.editorial-split > img { min-height: 360px; }.editorial-split > div { padding: 60px 22px; }
  .francophonie-section { padding: 75px 22px; }.world-map { min-height: 390px; }.map-pin span { font-size: 8px; max-width: 105px; white-space: normal; }.franco-stats { grid-template-columns: 1fr 1fr; }
  .opportunity-grid img { height: 250px; }.career-chips { grid-template-columns: 1fr 1fr; }
  .method-section { margin: 40px 0; }.method-art { min-height: 600px; }.method-note { width: 190px; padding: 18px; }.method-note.method-2,.method-note.method-4 { left: 31%; }.method-copy { padding: 65px 24px; }
  .expert-section { padding: 0 22px; margin: 75px auto; }.expert-card { padding: 35px 25px; grid-template-columns: 1fr; gap: 25px; }.monogram { width: 100px; height: 125px; }
  .gallery-section { margin: 70px auto; padding: 0 22px; }.photo-gallery { grid-template-columns: 1fr; grid-template-rows: repeat(3,300px); }.photo-gallery figure.wide { grid-row: auto; }
  .calculator { grid-template-columns: 1fr; }.calculator-form,.price-result { padding: 35px 25px; }.price-result > strong { font-size: 47px; }
  .course-facts { grid-template-columns: 1fr 1fr; }.course-facts p:nth-child(2) { border-right: 0; }.offer-list { grid-template-columns: 1fr; }
  .registration-section { padding: 0 22px; }.registration-section > div { grid-template-columns: 1fr; gap: 22px; }.registration-section > div::before { display: none; }.registration-section article { flex-direction: row; text-align: left; }
  .final-cta { margin-top: 65px; }.final-cta > div { width: 100%; flex-direction: column; }
  .footer-top { grid-template-columns: 1fr; gap: 30px; }.footer-bottom { flex-direction: column; gap: 10px; }
  .quiz-modal { padding: 40px 20px 30px; }.quiz-modal h2 { font-size: 30px; }.modal-backdrop { padding: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
