/* travelhackbr Academy v4. Mesmo padrão visual da página VIP (03-landing-pages/vip-v2.html):
   fundo azul profundo, cartões de vidro, foto de cabine com degradê, botões dourados com brilho.
   A leitura da aula fica em papel creme (tokens do Design System). */
:root {
  --navy-0:#081A2C; --navy:#0F2A45; --navy-2:#16375A; --navy-3:#1E4470;
  --gold:#B08D5E; --gold-soft:#C9A878; --gold-deep:#7F6139; --gold-on-navy:#C9A676;
  --cream:#F6F1E7; --card:#ECE5D8; --sand:#ECE5D8; --line:#DDD3C1;
  --ink:#0F2A45; --muted:#4A5866; --white:#FFFFFF; --error:#9B2C2C; --ok:#2F6B4F; --ok-dk:#5FD08A;
  --glass:rgba(246,241,231,.04); --glass-2:rgba(246,241,231,.07); --glass-line:rgba(246,241,231,.12);
  --r-sm:10px; --r-md:18px; --r-lg:26px;
  --display:"Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Poppins",system-ui,sans-serif;
}
* { box-sizing:border-box; margin:0; padding:0; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; }
body { background:var(--navy-0); color:var(--cream); font-family:var(--sans); font-size:17px; line-height:1.65; min-height:100vh; display:flex; flex-direction:column; -webkit-font-smoothing:antialiased; }
main { flex:1; }
a { color:var(--gold-soft); text-underline-offset:3px; }
a:hover { color:var(--cream); }
img, svg { display:block; }
.narrow { max-width:520px; margin:0 auto; padding:0 16px; }
.pad { padding-top:72px; padding-bottom:80px; }
.center { text-align:center; }
.muted { opacity:.65; }
.small { font-size:14px; opacity:.65; margin-top:14px; }
:focus-visible { outline:2px solid var(--gold); outline-offset:2px; border-radius:6px; }

/* ---------- tipografia (igual à VIP) ---------- */
.eyebrow { display:inline-flex; align-items:center; gap:10px; letter-spacing:.24em; text-transform:uppercase; font-size:12px; font-weight:600; color:var(--gold); }
.eyebrow::before { content:""; width:22px; height:1px; background:currentColor; }
.center .eyebrow::after { content:""; width:22px; height:1px; background:currentColor; }
h1, .h1 { font-family:var(--display); font-weight:600; line-height:1.08; letter-spacing:-.01em; font-size:clamp(34px,5vw,56px); margin-top:14px; }
h1 em, .h1 em { color:var(--gold); }
.lead { font-size:18px; margin-top:16px; opacity:.82; max-width:560px; }

/* ---------- botões (igual à VIP) ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; border:0; cursor:pointer; text-decoration:none; font:600 16px/1 var(--sans); padding:16px 26px; border-radius:999px; min-height:50px;
  background:linear-gradient(180deg,#C9A878,#B08D5E); color:var(--navy-0);
  box-shadow:0 10px 30px -8px rgba(176,141,94,.55), inset 0 1px 0 rgba(255,255,255,.35); transition:transform .15s, box-shadow .15s, border-color .15s, background .15s; }
.btn:hover { transform:translateY(-2px); color:var(--navy-0); box-shadow:0 16px 36px -8px rgba(176,141,94,.7), inset 0 1px 0 rgba(255,255,255,.35); }
.btn.ghost { background:transparent; color:var(--cream); border:1px solid var(--glass-line); box-shadow:none; }
.btn.ghost:hover { border-color:var(--gold); color:var(--cream); transform:none; }
.btn.navy { background:var(--navy); color:var(--cream); box-shadow:none; }
.btn.navy:hover { background:var(--navy-3); color:var(--cream); }
.btn.block { width:100%; }
.btn[disabled] { opacity:.6; cursor:wait; transform:none; }
.btn svg { width:18px; height:18px; flex:none; }
.link { background:none; border:0; color:inherit; font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; padding:0; }

/* ---------- cabeçalho de vidro ---------- */
.bar { position:sticky; top:0; z-index:25; background:rgba(8,26,44,.82); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid var(--glass-line); color:var(--cream); }
.bar-in { display:flex; align-items:center; justify-content:space-between; gap:16px; height:64px; }
.bar-left { display:flex; align-items:center; gap:14px; }
.brand { font-weight:600; font-size:22px; letter-spacing:-.01em; text-decoration:none; color:var(--cream); display:flex; align-items:baseline; gap:12px; }
.brand:hover { color:var(--cream); }
.brand .wm span { color:var(--gold); }
.brand small { font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); font-weight:600; }
.bar-right { display:flex; align-items:center; gap:18px; font-size:14px; }
.bar-right .who { opacity:.75; white-space:nowrap; text-align:right; }
/* sair: no topo do menu, com confirmação */
.snav .signout { display:flex; align-items:center; gap:10px; width:100%; padding:10px; margin-bottom:6px; border:1px solid var(--glass-line); border-radius:var(--r-sm); background:transparent; color:var(--cream); opacity:.75; font:500 14px var(--sans); cursor:pointer; }
.snav .signout:hover { opacity:1; border-color:rgba(214,69,59,.6); }
.snav .signout svg { width:16px; height:16px; }
.modal { position:fixed; inset:0; z-index:60; display:grid; place-items:center; padding:16px; background:rgba(8,26,44,.7); backdrop-filter:blur(4px); }
.modal-box { width:100%; max-width:380px; background:var(--navy); color:var(--cream); border:1px solid var(--glass-line); border-radius:var(--r-md); padding:26px; box-shadow:0 30px 80px -30px rgba(0,0,0,.8); }
.modal-box h3 { font-family:var(--display); font-weight:600; font-size:24px; }
.modal-box p { font-size:15px; opacity:.75; margin-top:8px; }
.modal-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:22px; }
.modal-actions .btn { padding:12px 20px; min-height:44px; font-size:15px; }
.page-lesson .modal-box .btn.ghost { color:var(--cream); border-color:var(--glass-line); }
.menu-btn { display:none; background:var(--glass); border:1px solid var(--glass-line); color:var(--cream); border-radius:999px; width:40px; height:40px; align-items:center; justify-content:center; cursor:pointer; }
.menu-btn svg { width:18px; height:18px; }

/* ---------- login ---------- */
.card { background:var(--glass); border:1px solid var(--glass-line); border-radius:var(--r-md); padding:28px 24px; margin-top:28px; backdrop-filter:blur(14px); }
label { display:block; font-size:14px; font-weight:500; margin-bottom:8px; opacity:.85; }
input[type=email] { width:100%; font:400 17px var(--sans); color:var(--cream); padding:15px 18px; border:1px solid var(--glass-line); border-radius:var(--r-sm); background:rgba(8,26,44,.6); min-height:52px; }
input[type=email]::placeholder { color:rgba(246,241,231,.4); }
input[type=email]:focus { outline:2px solid var(--gold); outline-offset:1px; }
.card .btn { margin-top:18px; }
.note { border-radius:var(--r-sm); padding:12px 14px; font-size:15px; margin-top:18px; }
.note.error { background:rgba(214,69,59,.14); color:#F2B8B2; border:1px solid rgba(214,69,59,.35); }
.note.warn { background:var(--glass-2); border:1px solid var(--glass-line); }
.login-bg { background:
  radial-gradient(1200px 600px at 80% -10%, rgba(176,141,94,.18), transparent 60%),
  radial-gradient(800px 500px at 0% 100%, rgba(30,68,112,.45), transparent 60%); }

/* ---------- estrutura: menu de módulos + conteúdo ---------- */
.app { display:grid; grid-template-columns:1fr; }
@media (min-width:1000px) { .app { grid-template-columns:268px minmax(0,1fr); } }
.snav { background:var(--navy-0); border-right:1px solid var(--glass-line); font-size:14px; }
.snav-in { padding:22px 14px; display:flex; flex-direction:column; gap:4px; }
@media (min-width:1000px) { .snav-in { position:sticky; top:64px; height:calc(100vh - 64px); overflow-y:auto; scrollbar-width:thin; scrollbar-color:var(--glass-line) transparent; } }
@media (max-width:999px) {
  .menu-btn { display:inline-flex; }
  .snav { position:fixed; z-index:40; top:0; left:0; bottom:0; width:300px; max-width:86vw; transform:translateX(-100%); transition:transform .25s; overflow-y:auto; background:var(--navy-0); }
  .snav.open { transform:none; }
  .scrim { position:fixed; inset:0; z-index:30; background:rgba(8,26,44,.6); backdrop-filter:blur(2px); }
}
.snav .snav-label { letter-spacing:.24em; text-transform:uppercase; font-size:11px; font-weight:600; color:var(--gold); padding:14px 10px 6px; }
.snav a.home { display:flex; gap:10px; align-items:center; padding:10px; border-radius:var(--r-sm); text-decoration:none; color:var(--cream); opacity:.85; font-weight:500; }
.snav a.home:hover, .snav a.home.here { background:var(--glass-2); opacity:1; }
.snav a.home svg { width:16px; height:16px; color:var(--gold); }
.snav .mod { display:grid; grid-template-columns:28px 1fr; gap:3px 8px; padding:10px; border-radius:var(--r-sm); text-decoration:none; color:var(--cream); }
.snav .mod:hover { background:var(--glass); color:var(--cream); }
.snav .mod.here { background:var(--glass-2); }
.snav .mod .n { font-family:var(--display); font-weight:600; font-size:16px; color:var(--gold); font-variant-numeric:tabular-nums; grid-row:span 2; align-self:start; line-height:1.3; }
.snav .mod .t { font-weight:500; line-height:1.3; opacity:.9; }
.snav .mod .p { display:flex; align-items:center; gap:8px; font-size:11px; opacity:.55; font-variant-numeric:tabular-nums; }
.snav .mod .p i { flex:1; height:2px; background:var(--glass-line); border-radius:2px; overflow:hidden; }
.snav .mod .p i b { display:block; height:100%; background:var(--gold); }
.snav ol { list-style:none; margin:2px 0 8px 36px; display:grid; gap:1px; border-left:1px solid var(--glass-line); }
.snav ol a { display:block; padding:6px 10px; text-decoration:none; color:var(--cream); opacity:.6; line-height:1.35; border-left:2px solid transparent; margin-left:-1px; font-size:13.5px; }
.snav ol a:hover { opacity:1; color:var(--cream); }
.snav ol a.here { opacity:1; font-weight:500; border-left-color:var(--gold); }
.snav ol a.done::after { content:" ✓"; color:var(--ok-dk); }
.snav .snav-cta { margin-top:auto; padding-top:20px; }
.snav .snav-cta .box { background:linear-gradient(160deg, rgba(176,141,94,.18), rgba(176,141,94,.05)); border:1px solid rgba(176,141,94,.35); border-radius:var(--r-md); padding:16px; }
.snav .snav-cta b { font-family:var(--sans); font-size:17px; font-weight:700; letter-spacing:-.035em; }
.snav .snav-cta p { font-size:13px; opacity:.75; margin:4px 0 12px; line-height:1.45; }
.snav .snav-cta .btn { width:100%; padding:11px 16px; min-height:42px; font-size:14px; }

.content { min-width:0; }
.content-in { max-width:none; padding:22px 40px 88px; }
@media (min-width:1600px) { .content-in { padding-left:56px; padding-right:56px; } }
@media (max-width:640px) { .content-in { padding:16px 16px 64px; } }

/* ---------- continuar (faixa fina) ---------- */
.resume { display:flex; align-items:center; gap:16px; height:48px; padding:0 8px 0 18px; border:1px solid var(--glass-line); border-radius:999px; background:var(--glass); text-decoration:none; color:var(--cream); transition:border-color .15s, background .15s; }
.resume:hover { border-color:var(--gold); background:var(--glass-2); color:var(--cream); }
.resume .k { flex:none; font-size:11px; letter-spacing:.24em; text-transform:uppercase; font-weight:600; color:var(--gold); }
.resume .l { flex:none; max-width:42%; font-size:14.5px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.resume .bar-track { flex:1; min-width:40px; height:2px; background:var(--glass-line); border-radius:2px; overflow:hidden; }
.resume .bar-fill { display:block; height:100%; width:0; background:var(--gold); transition:width .5s; }
.resume .stat { flex:none; font-size:12px; opacity:.6; font-variant-numeric:tabular-nums; }
.resume .go { flex:none; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(180deg,#C9A878,#B08D5E); color:var(--navy-0); }
.resume .go svg { width:16px; height:16px; }
@media (max-width:640px) { .resume .l { max-width:none; flex:1; } .resume .bar-track, .resume .stat { display:none; } }

/* ---------- hero da Academy (foto + vidro, igual à VIP) ---------- */
.hero { position:relative; margin-top:18px; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--glass-line);
  background:
    linear-gradient(90deg, var(--navy-0) 0%, rgba(8,26,44,.94) 38%, rgba(8,26,44,.62) 70%, rgba(8,26,44,.45) 100%),
    linear-gradient(0deg, var(--navy-0) 0%, transparent 35%),
    url("/assets/ebook-capa-cabine-v1.jpg") right center / cover no-repeat; }
.hero-grid { display:grid; gap:36px; grid-template-columns:1fr; padding:48px 44px; align-items:center; }
@media (min-width:1150px) { .hero-grid { grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); } }
@media (max-width:640px) { .hero-grid { padding:32px 20px; } }
.pill { display:inline-flex; align-items:center; gap:8px; border:1px solid var(--glass-line); background:var(--glass); border-radius:999px; padding:7px 14px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.pill i { width:7px; height:7px; border-radius:50%; background:var(--ok-dk); box-shadow:0 0 0 4px rgba(95,208,138,.18); }
.hero h1 { margin-top:20px; }
.hero .cta-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.hero .cta-row #contact-btn { padding:19px 32px; font-size:17px; }
.checks { list-style:none; display:flex; flex-wrap:wrap; gap:8px 22px; margin-top:26px; font-size:14px; opacity:.85; }
.checks li { display:flex; align-items:center; gap:8px; }
.checks li::before { content:"✓"; width:18px; height:18px; border-radius:50%; background:rgba(176,141,94,.25); color:var(--gold); font-size:11px; font-weight:600; display:grid; place-items:center; }
.showcase { border:1px solid var(--glass-line); border-radius:22px; padding:12px; background:rgba(8,26,44,.72); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 30px 80px -30px rgba(0,0,0,.7); }
.video-frame { position:relative; aspect-ratio:16/9; border-radius:14px; overflow:hidden; background:#050F1B; }
.video-frame video { width:100%; height:100%; display:block; background:#000; }
.video-soon { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; text-align:center; padding:20px;
  background:radial-gradient(420px 220px at 50% 45%, rgba(176,141,94,.16), transparent 70%); }
.video-soon .play { width:68px; height:68px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(180deg,#C9A878,#B08D5E); color:var(--navy-0); box-shadow:0 0 0 10px rgba(176,141,94,.14), 0 18px 40px -10px rgba(176,141,94,.6); }
.video-soon .play svg { width:22px; height:22px; margin-left:3px; }
.video-soon p { font-size:14px; opacity:.75; max-width:320px; }
.showcase .cap { display:flex; justify-content:space-between; gap:12px; padding:12px 6px 4px; font-size:13px; }
.showcase .cap b { font-weight:600; }
.showcase .cap span { opacity:.6; }

/* ---------- fileiras dos módulos (rolagem lateral) ---------- */
.rows { margin-top:56px; display:grid; gap:52px; grid-template-columns:minmax(0,1fr); }
.rows > section, .more { min-width:0; }
.row-head { display:flex; align-items:flex-end; gap:16px; justify-content:space-between; }
.row-head .ttl { min-width:0; }
.row-head h2 { font-family:var(--display); font-weight:600; font-size:clamp(24px,2.6vw,32px); line-height:1.15; margin-top:10px; }
.row-head .sum { font-size:15px; opacity:.65; margin-top:6px; max-width:680px; }
.row-head .ctl { display:flex; align-items:center; gap:8px; flex:none; font-size:13px; font-variant-numeric:tabular-nums; }
.row-head .ctl .cnt { opacity:.6; margin-right:6px; }
.arrow { width:40px; height:40px; border-radius:50%; border:1px solid var(--glass-line); background:var(--glass); color:var(--cream); display:inline-grid; place-items:center; cursor:pointer; transition:border-color .15s; }
.arrow:hover:not([disabled]) { border-color:var(--gold); }
.arrow[disabled] { opacity:.3; cursor:default; }
.arrow svg { width:16px; height:16px; }
@media (max-width:640px) { .arrow { display:none; } }
.rail { display:flex; gap:16px; overflow-x:auto; max-width:100%; scroll-snap-type:x mandatory; padding:18px 2px 14px; margin-top:6px; scrollbar-width:thin; scrollbar-color:var(--glass-line) transparent; cursor:grab; }
.rail.dragging { cursor:grabbing; scroll-snap-type:none; user-select:none; }
.rail.dragging a { pointer-events:none; }
.lcard { flex:none; width:280px; scroll-snap-align:start; position:relative; display:flex; flex-direction:column; gap:10px; min-height:220px; padding:22px; border-radius:var(--r-md); text-decoration:none; color:var(--cream);
  background:linear-gradient(180deg, rgba(246,241,231,.06), rgba(246,241,231,.02)); border:1px solid var(--glass-line); transition:transform .18s, border-color .18s, background .18s; }
@media (max-width:640px) { .lcard { width:78vw; } }
.lcard:hover { transform:translateY(-3px); border-color:rgba(176,141,94,.6); color:var(--cream); background:linear-gradient(180deg, rgba(246,241,231,.09), rgba(246,241,231,.03)); }
.lcard .top { display:flex; align-items:center; justify-content:space-between; }
.lcard .num { font-family:var(--display); font-weight:600; font-size:30px; line-height:1; color:var(--gold); font-variant-numeric:tabular-nums; }
.lcard h3 { font-weight:600; font-size:17px; line-height:1.3; }
.lcard p { font-size:14px; line-height:1.5; opacity:.65; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.lcard .foot { margin-top:auto; display:flex; gap:10px; align-items:center; font-size:12px; opacity:.75; }
.lcard.is-current { border-color:var(--gold); box-shadow:0 18px 40px -22px rgba(176,141,94,.7); }
.lcard.is-current::before { content:"Up next"; position:absolute; top:-11px; left:18px; background:linear-gradient(180deg,#C9A878,#B08D5E); color:var(--navy-0); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; padding:3px 11px; border-radius:999px; }
.status { width:26px; height:26px; border-radius:50%; border:1px solid var(--glass-line); display:grid; place-items:center; flex:none; }
.status svg { width:13px; height:13px; }
.is-started .status { border:2px solid var(--gold); }
.is-done .status { border-color:var(--ok-dk); background:rgba(95,208,138,.16); color:var(--ok-dk); }
.tag { display:inline-block; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:600; padding:3px 9px; border-radius:999px; border:1px solid var(--glass-line); }
.tag.video { border-color:rgba(176,141,94,.6); color:var(--gold); }

/* ---------- página da aula: leitura em papel creme ---------- */
.page-lesson .content { background:var(--cream); color:var(--ink); }
.page-lesson .content a { color:var(--gold-deep); }
.page-lesson .content a:hover { color:var(--ink); }
.page-lesson .eyebrow { color:var(--gold-deep); }
.page-lesson h1 em { color:var(--gold-deep); }
.page-lesson .btn.ghost { color:var(--ink); border-color:var(--line); }
.page-lesson .btn.ghost:hover { border-color:var(--ink); color:var(--ink); }
.page-lesson .content .btn { color:var(--navy-0); }
.page-lesson .content .btn.ghost { color:var(--ink); }
.page-lesson .arrow { background:var(--white); border-color:var(--line); color:var(--ink); }
.page-lesson .lcard { color:var(--ink); background:var(--white); border-color:var(--line); }
.page-lesson .lcard:hover { color:var(--ink); border-color:var(--gold-deep); background:var(--white); }
.page-lesson .lcard .num { color:var(--gold-deep); }
.page-lesson .lcard p { opacity:1; color:var(--muted); }
.page-lesson .tag { border-color:var(--line); color:var(--muted); }
.page-lesson .tag.video { border-color:var(--gold-deep); color:var(--gold-deep); }
.page-lesson .status { border-color:var(--line); }
.page-lesson .is-done .status { border-color:var(--ok); background:var(--ok); color:var(--white); }
.page-lesson .row-head .sum, .page-lesson .row-head .ctl .cnt { color:var(--muted); opacity:1; }

.lesson-grid { display:grid; gap:48px; grid-template-columns:minmax(0,1fr); padding-top:18px; }
@media (min-width:1280px) { .lesson-grid { grid-template-columns:minmax(0,760px) 220px; justify-content:space-between; } }
.lesson-head h1 { font-size:clamp(32px,4.4vw,50px); }
.lesson-head .summary { font-size:19px; color:var(--muted); margin-top:12px; max-width:680px; }
.page-lesson .lesson-head .summary { font-size:17px; }
.page-lesson .toc-side, .page-lesson .toc-mobile { display:none; }
.page-lesson .lesson-grid { grid-template-columns:minmax(0,1fr); }
.lesson-head .meta-row { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:16px; font-size:13px; color:var(--muted); letter-spacing:.04em; }
.lesson-head .eyebrow a { color:inherit; text-decoration:none; }
.toc { font-size:14px; }
.toc-in { position:sticky; top:88px; }
.toc .k { letter-spacing:.24em; text-transform:uppercase; font-size:11px; font-weight:600; color:var(--gold-deep); margin-bottom:12px; }
.toc ol { list-style:none; border-left:1px solid var(--line); display:grid; gap:2px; }
.toc a { display:block; padding:6px 14px; margin-left:-1px; border-left:2px solid transparent; text-decoration:none; color:var(--muted) !important; line-height:1.35; }
.toc a:hover { color:var(--ink) !important; }
.toc a.on { color:var(--ink) !important; font-weight:500; border-left-color:var(--gold-deep); }
.toc-mobile { display:block; margin-top:24px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--white); }
.toc-mobile > summary { cursor:pointer; list-style:none; padding:13px 18px; font-weight:500; display:flex; justify-content:space-between; }
.toc-mobile > summary::-webkit-details-marker { display:none; }
.toc-mobile > summary span { color:var(--muted); font-weight:400; font-size:14px; }
.toc-mobile ol { list-style:none; padding:0 18px 14px; display:grid; gap:2px; }
.toc-mobile a { display:block; padding:6px 0; text-decoration:none; color:var(--muted) !important; }
.toc-side { display:none; }
@media (min-width:1280px) { .toc-side { display:block; } .toc-mobile { display:none; } }
.notes h2 { scroll-margin-top:90px; }
.player { background:#000; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:16/9; margin-top:28px; box-shadow:0 30px 60px -30px rgba(8,26,44,.55); }
.player video { width:100%; height:100%; display:block; }
.video-note { margin-top:24px; background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:13px 18px; font-size:14px; color:var(--muted); display:flex; gap:12px; align-items:center; }
.video-note svg { width:20px; height:20px; color:var(--gold-deep); flex:none; }
.lesson-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:40px; padding-top:28px; border-top:1px solid var(--line); }
.lesson-actions .btn.done { background:var(--ok); color:var(--white); box-shadow:none; }
.lesson-actions .spacer { flex:1; }
.more { margin-top:56px; }
.cta-book { margin-top:40px; border-radius:var(--r-lg); padding:28px; display:flex; flex-wrap:wrap; gap:16px 24px; align-items:center; justify-content:space-between; color:var(--cream);
  background:linear-gradient(90deg, var(--navy-0) 0%, rgba(8,26,44,.92) 55%, rgba(8,26,44,.7) 100%), url("/assets/ebook-final-lounge.jpg") right center / cover no-repeat; }
.cta-book h3 { font-family:var(--display); font-size:24px; font-weight:600; }
.cta-book p { font-size:15px; opacity:.8; }


/* ---------- material escrito ---------- */
.notes { margin-top:30px; max-width:720px; }
.notes > * + * { margin-top:16px; }
.notes h2 { font-family:var(--display); font-size:28px; line-height:1.2; font-weight:700; margin-top:40px; }
.notes h3 { font-size:19px; font-weight:600; margin-top:24px; }
.notes ul, .notes ol { padding-left:22px; }
.notes li + li { margin-top:6px; }
.notes b { font-weight:600; }
.notes .label { letter-spacing:.3em; text-transform:uppercase; font-size:11px; font-weight:500; color:var(--gold-deep); margin-bottom:8px; }
.notes .tldr { background:var(--card); border-radius:var(--r-md); padding:20px 22px; }
.notes .tldr ul { margin-top:4px; }
.notes .callout { border-radius:var(--r-md); padding:18px 20px; background:var(--white); border:1px solid var(--line); }
.notes .callout.warn { background:#FBF3E4; border-color:#E8D6B4; }
.notes .callout.gold { background:var(--gold); border-color:var(--gold); color:var(--navy); }
.notes .callout.gold .label { color:var(--navy); opacity:.75; }
.notes .callout.agency { background:var(--navy); border-color:var(--navy); color:var(--cream); }
.notes .callout.agency .label { color:var(--gold-on-navy); }
.notes .callout.agency a { color:var(--gold-on-navy); font-weight:500; }
.notes .callout p + p, .notes .callout p + ol, .notes .callout p + ul { margin-top:6px; }
.notes .checklist { border:1px dashed var(--gold-deep); border-radius:var(--r-md); padding:18px 20px; }
.notes .checklist ul { list-style:none; padding-left:0; }
.notes .checklist li { padding-left:30px; position:relative; }
.notes .checklist li::before { content:""; position:absolute; left:0; top:5px; width:16px; height:16px; border:1.5px solid var(--gold-deep); border-radius:4px; }
.notes ol.steps { list-style:none; padding-left:0; counter-reset:step; }
.notes ol.steps > li { counter-increment:step; padding-left:44px; position:relative; min-height:30px; }
.notes ol.steps > li + li { margin-top:12px; }
.notes ol.steps > li::before { content:counter(step); position:absolute; left:0; top:0; width:30px; height:30px; border-radius:50%; background:var(--navy); color:var(--cream); font-size:14px; font-weight:600; display:flex; align-items:center; justify-content:center; }
.notes .formula { font-weight:600; background:var(--card); border-radius:var(--r-sm); padding:14px 18px; font-variant-numeric:tabular-nums; }
.notes .source { font-size:13px; line-height:1.5; color:var(--muted); margin-top:8px; }
.notes .table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:var(--r-md); background:var(--white); }
.notes table { width:100%; border-collapse:collapse; font-size:15px; }
.notes th { text-align:left; font-weight:500; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); background:var(--card); padding:10px 14px; }
.notes td { padding:11px 14px; border-top:1px solid var(--line); vertical-align:top; }
.notes .glossary-wrap { margin-top:24px; box-shadow:0 8px 28px rgb(11 35 54 / 4%); }
.notes .glossary-table { table-layout:fixed; font-size:15px; line-height:1.75; }
.notes .glossary-table thead th { background:var(--navy); color:var(--cream); padding:16px 22px; font-size:11px; letter-spacing:.16em; }
.notes .glossary-table thead th:first-child { width:32%; }
.notes .glossary-table tbody th { text-transform:none; letter-spacing:0; font-size:15px; font-weight:600; color:var(--ink); background:transparent; }
.notes .glossary-table tbody th, .notes .glossary-table td { padding:20px 22px; vertical-align:top; border-top:1px solid var(--line); overflow-wrap:anywhere; }
.notes .glossary-table td { color:var(--muted); border-left:1px solid var(--line); }
.notes .glossary-table tbody tr:nth-child(even) { background:#f7f3eb; }
@media (max-width:520px) {
  .notes .glossary-table, .notes .glossary-table tbody th { font-size:13px; }
  .notes .glossary-table thead th:first-child { width:36%; }
  .notes .glossary-table tbody th, .notes .glossary-table td, .notes .glossary-table thead th { padding:14px 12px; }
}
.notes .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.notes .compare { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.notes .compare .card { margin:0; border-radius:var(--r-md); padding:20px; border:0; }
.notes .compare .cash { background:var(--card); }
.notes .compare .miles { background:var(--gold); color:var(--navy); }
.notes .compare .miles .label { color:var(--navy); opacity:.75; }
.notes .compare .price { font-weight:600; font-size:clamp(32px,6vw,44px); line-height:1; font-variant-numeric:tabular-nums; margin-top:4px; }
.notes .compare .cash .price { color:var(--muted); text-decoration:line-through; text-decoration-thickness:2px; }
.notes .compare .sub { font-size:14px; margin-top:8px; opacity:.85; }
.notes .compare .caption { grid-column:1 / -1; font-size:13px; color:var(--muted); margin-top:-4px; }
.notes .paths { display:grid; gap:16px; grid-template-columns:1fr; }
@media (min-width:700px) { .notes .paths { grid-template-columns:1fr 1fr; } }
.notes .path { background:var(--white); border:1px solid var(--line); border-radius:var(--r-md); padding:20px; }
.notes .path.gold { background:var(--gold); border-color:var(--gold); color:var(--navy); }
.notes .path.gold .label { color:var(--navy); opacity:.75; }
.notes .path h3 { margin-top:0; font-family:var(--display); font-size:22px; }
.notes .path p { margin-top:6px; font-size:15px; }
.page-lesson .notes .paths { gap:22px; margin:28px 0 22px; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; }
.page-lesson .notes .path { padding:28px; border-radius:18px; border-top:3px solid var(--navy); box-shadow:0 8px 24px rgb(11 35 54 / 5%); display:grid; grid-template-rows:auto auto 1fr; align-content:start; }
.page-lesson .notes .path.gold { background:#eee4d2; border-color:#d8c4a3; border-top-color:var(--gold-deep); }
.page-lesson .notes .path .label { font-size:10px; letter-spacing:.14em; line-height:1.6; margin:0 0 14px; font-weight:600; }
.page-lesson .notes .path h3 { font-size:24px; line-height:1.25; margin:0 0 16px; min-height:2.5em; text-wrap:balance; }
.page-lesson .notes .path p:not(.label) { font-size:14px; line-height:1.85; margin:0; }
@media (max-width:620px) {
  .page-lesson .notes .paths { grid-template-columns:1fr; gap:16px; }
  .page-lesson .notes .path { padding:24px; }
  .page-lesson .notes .path h3 { min-height:0; }
}
.notes dl.glossary { display:grid; gap:0; border-top:1px solid var(--line); }
.notes dl.glossary dt { font-weight:600; padding-top:14px; }
.notes dl.glossary dd { color:var(--muted); padding-bottom:14px; border-bottom:1px solid var(--line); }

/* ---------- rodapé ---------- */
footer { background:var(--navy); color:var(--cream); text-align:center; padding:26px 16px; font-size:13px; }
footer p { opacity:.72; }
footer a { color:var(--cream); }

/* Boarding-pass lesson design */
.page-lesson { background:#f8f6f1; }
.page-lesson .bar { background:rgba(248,246,241,.97); border-bottom:1px solid var(--line); color:var(--navy); backdrop-filter:blur(12px); }
.page-lesson .brand, .page-lesson .brand:hover { color:var(--navy); }
.page-lesson .who { color:var(--muted); }
.page-lesson .menu-btn { color:var(--navy); border-color:var(--line); }
.page-lesson .content-in { max-width:1160px; margin:auto; padding-top:30px; }
.page-lesson .lesson-head { display:grid; grid-template-columns:minmax(0,1fr) 148px; background:#fffefa; border:1px solid #dedbd3; border-radius:20px; box-shadow:0 8px 25px rgb(22 37 50 / 8%); overflow:hidden; }
.ticket-main { padding:32px; position:relative; min-width:0; }
.ticket-plane { display:block; color:var(--gold-deep); font-size:30px; line-height:1; margin-bottom:16px; }
.page-lesson .lesson-head h1 { font-family:var(--sans); font-size:clamp(25px,3vw,38px); font-weight:700; line-height:1.2; letter-spacing:-.035em; margin-top:16px; }
.page-lesson .lesson-head .summary { font-size:15px; line-height:1.7; margin-top:14px; }
.page-lesson .lesson-head .eyebrow { font-size:10px; letter-spacing:.18em; }
.ticket-stub { border-left:2px dashed #d6cfc1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:20px; position:relative; }
.ticket-stub::before,.ticket-stub::after { content:""; position:absolute; width:24px; height:24px; border-radius:50%; background:#f8f6f1; border:1px solid #dedbd3; left:-13px; }
.ticket-stub::before { top:-13px; } .ticket-stub::after { bottom:-13px; }
.ticket-stub > span { text-transform:uppercase; letter-spacing:.15em; font-size:11px; color:var(--muted); }
.ticket-stub strong { font-size:72px; line-height:1.1; font-weight:700; letter-spacing:-.06em; }
.ticket-barcode { display:block; width:88px; height:28px; margin-top:10px; background:repeating-linear-gradient(90deg,var(--navy) 0 2px,transparent 2px 4px,var(--navy) 4px 5px,transparent 5px 8px,var(--navy) 8px 11px,transparent 11px 13px); }
.video-placeholder { aspect-ratio:16/9; margin-top:28px; border:1px solid var(--line); border-radius:16px; background:linear-gradient(145deg,#eeebe4,#faf9f6); display:flex; align-items:center; justify-content:center; flex-direction:column; gap:10px; color:var(--muted); text-align:center; padding:20px; }
.video-placeholder svg { width:42px; height:42px; color:var(--gold-deep); }
.video-placeholder strong { font-size:17px; color:var(--navy); font-weight:500; }
.video-placeholder span { font-size:12px; }
.page-lesson .notes { max-width:none; }
.page-lesson .cta-book { background:linear-gradient(90deg,var(--navy-0) 0%,rgba(8,26,44,.92) 55%,rgba(8,26,44,.7) 100%); border:1px solid transparent; border-radius:16px; color:var(--cream); padding:28px; box-shadow:none; }
.page-lesson .cta-book h3 { font-family:var(--sans); font-size:22px; font-weight:600; letter-spacing:-.025em; }
.page-lesson .cta-book p { margin-top:10px; max-width:650px; opacity:.8; color:var(--cream); font-size:14px; line-height:1.8; }
.page-lesson .btn { box-shadow:none; }
.page-lesson .lesson-actions .btn { font-size:13px; padding:13px 18px; }
.page-lesson .row-head h2 { font-family:var(--sans); font-size:24px; font-weight:600; }
.page-lesson .lcard { border-radius:16px; background:#fffefa; box-shadow:none; }
.page-lesson .lcard .num { font-family:var(--sans); font-size:26px; font-weight:600; }
.page-lesson footer { background:transparent; color:var(--muted); border-top:1px solid var(--line); }
.page-lesson footer a { color:var(--muted); }
@media(max-width:640px) {
 .page-lesson .content-in { padding:18px 16px 48px; }
 .page-lesson .lesson-head { grid-template-columns:minmax(0,1fr) 84px; border-radius:14px; }
 .ticket-main { padding:22px 18px; }
 .ticket-stub { padding:12px 8px; }
 .ticket-stub strong { font-size:45px; }
 .ticket-stub > span { font-size:9px; }
 .ticket-barcode { width:52px; height:24px; }
 .page-lesson .lesson-head h1 { font-size:25px; }
 .page-lesson .lesson-head .summary { font-size:13px; }
 .page-lesson .lesson-head .meta-row { font-size:10px; letter-spacing:0; }
 .page-lesson .bar-right { font-size:10px; }
 .page-lesson .brand { font-size:18px; gap:7px; }
 .page-lesson .brand small { font-size:8px; }
 .page-lesson .cta-book { padding:24px; }
}

/* Match lesson section headings to the boarding-pass title. */
.page-lesson .notes h2,
.page-lesson .notes h3,
.page-lesson .notes h4,
.page-lesson .notes h5,
.page-lesson .notes h6,
.page-lesson .notes .path h3 {
  font-family:var(--sans);
  font-weight:700;
  letter-spacing:-.035em;
}

/* Academy home uses the same ivory, navy and gold palette as lessons. */
.page-home { color:var(--ink); }
.page-home .resume { color:var(--ink); background:#fffefa; border-color:var(--line); }
.page-home .resume:hover { background:#eeeae1; color:var(--ink); border-color:var(--gold-deep); }
.page-home .resume .k { color:var(--gold-deep); }
.page-home .resume .bar-track { background:var(--line); }
.page-home .hero { background:#fffefa; border-color:var(--line); box-shadow:0 8px 25px rgb(22 37 50 / 5%); }
.page-home .hero h1 { font-family:var(--sans); font-weight:700; font-size:clamp(28px,3.5vw,44px); letter-spacing:-.035em; line-height:1.2; margin-top:0; }
.page-home .hero h1 em { font-style:normal; }
.page-home .hero .lead { color:var(--muted); opacity:1; font-size:17px; }
.page-home .hero .btn { box-shadow:none; }
.page-home .showcase { background:#f5f2ec; border-color:var(--line); box-shadow:none; backdrop-filter:none; }
.page-home .video-frame { background:#eeebe4; color:var(--ink); }
.page-home .video-soon { background:linear-gradient(145deg,#eeebe4,#faf9f6); }
.page-home .video-soon p { color:var(--muted); opacity:1; }
.page-home .row-head h2 { font-family:var(--sans); font-weight:700; letter-spacing:-.035em; }
.page-home .rail { scrollbar-color:var(--line) transparent; }
.page-home #v-login .card { background:#fffefa; border-color:var(--line); }
.page-home input[type=email] { background:#fffefa; color:var(--ink); border-color:var(--line); }
.page-home .link { color:var(--gold-deep); }

/* Larger desktop course navigation. */
@media (min-width:1000px) {
  .app { grid-template-columns:330px minmax(0,1fr); }
  .snav { font-size:16px; }
  .snav-in { padding:24px 18px; gap:6px; }
  .snav .signout { font-size:16px; padding:12px; }
  .snav a.home { padding:12px; }
  .snav .snav-label { font-size:12px; }
  .snav .mod { grid-template-columns:30px 1fr; gap:5px 10px; padding:12px; }
  .snav .mod .n { font-size:19px; }
  .snav .mod .t { font-size:16px; line-height:1.45; }
  .snav .mod .p { font-size:12px; }
  .snav ol a { font-size:15px; line-height:1.5; padding:8px 12px; }
  .snav .snav-cta b { font-size:19px; }
  .snav .snav-cta p { font-size:14px; }
  .snav .snav-cta .btn { font-size:15px; }
}

/* Boarding-pass headers for the module catalogue. */
.page-home .module-ticket { position:relative; display:grid; grid-template-columns:140px minmax(0,1fr) auto; align-items:center; gap:28px; background:#fffefa; border:1px solid var(--line); border-radius:20px; padding:28px 26px 28px 0; box-shadow:0 7px 22px rgb(22 37 50 / 6%); overflow:hidden; }
.module-stub { align-self:stretch; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:12px; border-right:2px dashed #d6c5a8; padding:12px 20px; position:relative; }
.module-stub::before,.module-stub::after { content:""; position:absolute; right:-13px; width:24px; height:24px; border:1px solid var(--line); border-radius:50%; background:var(--cream); }
.module-stub::before { top:-41px; } .module-stub::after { bottom:-41px; }
.module-stub > span { font-size:11px; text-transform:uppercase; letter-spacing:.22em; color:var(--muted); }
.module-stub strong { font-size:72px; line-height:1; font-weight:700; letter-spacing:-.05em; }
.page-home .module-ticket h2 { font-size:clamp(25px,2.5vw,34px); line-height:1.2; margin:0; }
.page-home .module-ticket .sum { margin-top:12px; font-size:14px; line-height:1.7; }
.module-progress { margin-top:16px; display:flex; align-items:center; gap:9px; color:var(--gold-deep); font-size:12px; }
.module-progress > span { display:inline-grid; place-items:center; width:24px; height:24px; background:#eee3ce; border-radius:50%; font-size:14px; }
.module-plane { position:absolute; right:25px; top:16px; font-size:28px; color:#ddd7cb; pointer-events:none; }
.page-home .module-ticket .ctl { align-self:end; }
@media(max-width:700px) {
 .page-home .module-ticket { grid-template-columns:90px minmax(0,1fr); gap:18px; padding:24px 20px 24px 0; border-radius:16px; }
 .module-stub { padding:10px; }
 .module-stub strong { font-size:48px; }
 .module-stub > span { font-size:9px; }
 .module-stub::before { top:-37px; } .module-stub::after { bottom:-37px; }
 .page-home .module-ticket h2 { font-size:24px; padding-right:10px; }
 .page-home .module-ticket .sum { font-size:13px; }
 .page-home .module-ticket .ctl { grid-column:2; }
 .page-home .module-ticket .ctl:has(.arrow:first-child[disabled]):has(.arrow:last-child[disabled]) { display:none; }
 .module-plane { font-size:20px; right:12px; top:10px; }
}
@media(max-width:640px) { .page-home .module-ticket .ctl { display:none; } }

/* Photo-led lesson cards. */
.page-home .lcard { width:310px; padding:0 0 22px; gap:12px; overflow:hidden; }
.lesson-cover { position:relative; display:block; width:100%; aspect-ratio:16/9; flex:none; overflow:hidden; background:#e9e3d7; }
.lesson-cover img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .25s; }
.lcard:hover .lesson-cover img { transform:scale(1.035); }
.lesson-cover .status { position:absolute; right:14px; top:14px; background:#fffefa; border-color:var(--line); }
.page-home .is-done .lesson-cover .status { background:var(--gold); border-color:var(--gold); color:var(--white); }
.page-home .lcard > .top,.page-home .lcard > h3,.page-home .lcard > p,.page-home .lcard > .foot { margin-left:22px; margin-right:22px; }
.page-home .lcard > .top { margin-top:5px; }
.page-home .lcard .num { font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--navy); }
.page-home .lcard h3 { font-size:20px; font-weight:700; letter-spacing:-.025em; color:var(--navy); }
.page-home .lcard > p { font-size:13px; }
.page-home .lcard.is-current::before { top:12px; left:14px; z-index:1; }
@media(max-width:640px) { .page-home .lcard { width:min(310px,80vw); } }


/* Selected palette A: warm stone, graphite and original brand gold. */
.page-home {
 --navy-0:#1d2023; --navy:#282c30; --ink:#282c30;
 --cream:#eae7e2; --white:#fffdfa; --muted:#62605d;
 --gold:#B08D5E; --gold-deep:#7F6139; --line:#d7d0c8;
 --ok:#7F6139; --ok-dk:#C9A878;
 background:#eae7e2; color:#282c30;
}
.page-home .content { background:#eae7e2; }
.page-home .bar { background:rgba(250,248,245,.97); color:#282c30; border-color:#d7d0c8; }
.page-home .brand,.page-home .brand:hover { color:#282c30; }
.page-home .brand .wm span,.page-home .brand small { color:#B08D5E; }
.page-home .snav { background:#282c30; }
.page-home .snav a,.page-home .snav .signout { color:#f8f5f0; }
.page-home .snav .mod .n,.page-home .snav .snav-label { color:#C9A878; }
.page-home .snav .snav-cta .box { background:#333438; border-color:#66563f; }
.page-home .snav .snav-cta b,.page-home .snav .snav-cta p { color:#f8f5f0; }
.page-home .hero,.page-home .module-ticket { background:#282c30; color:#f8f5f0; border-color:#45464a; }
.page-home .hero h1,.page-home .module-ticket h2,.page-home .module-stub strong { color:#f8f5f0; }
.page-home .hero h1 em,.page-home .module-progress { color:#C9A878; }
.page-home .hero .lead,.page-home .module-ticket .sum,.page-home .module-stub > span { color:#ded9d3; opacity:1; }
.page-home .module-stub { border-color:#B08D5E; }
.page-home .module-stub::before,.page-home .module-stub::after { background:#eae7e2; border-color:#d7d0c8; }
.page-home .module-plane { color:#B08D5E; }
.page-home .module-progress > span { background:#B08D5E; color:#202326; }
.page-home .module-ticket .arrow { color:#f8f5f0; background:#34383c; border-color:#66605b; }
.page-home .showcase { background:#222529; border-color:#494746; }
.page-home .video-frame,.page-home .video-soon { background:#1d2023; }
.page-home .video-soon p { color:#ded9d3; }
.page-home .video-soon .play { background:#B08D5E; color:#202326; box-shadow:0 0 0 10px rgb(176 141 94 / 14%); }
.page-home .btn,.page-home .resume .go { background:linear-gradient(180deg,#C9A878,#B08D5E); color:#202326; box-shadow:none; }
.page-home .resume { background:#f5f2ee; border-color:#d7d0c8; }
.page-home .content a.resume,.page-home .content a.resume:hover { color:#282c30; }
.page-home .resume .k { color:#7F6139; }
.page-home .lcard,.page-home .lcard:hover { background:#faf8f5; border-color:#d7d0c8; color:#282c30; }
.page-home .lcard h3,.page-home .lcard .num { color:#282c30; }
.page-home .lcard p,.page-home .lcard .foot { color:#62605d; }
.page-home .lcard.is-current { border-color:#B08D5E; box-shadow:0 8px 24px rgb(80 55 40 / 10%); }
.page-home .lcard.is-current::before { background:#B08D5E; color:#202326; }
.page-home .is-done .lesson-cover .status { background:#B08D5E; border-color:#B08D5E; color:#fffdfa; }
.page-home footer,.page-home footer a { color:#62605d; }

.page-home .hero-grid > div:first-child { text-align:center; }
.page-home .hero .cta-row { justify-content:center; }

/* Use more of the available width on the Academy home. */
.page-home .content-in { max-width:none; margin:0; padding-left:96px; padding-right:96px; }
@media (max-width:640px) {
  .page-home .content-in { padding-left:20px; padding-right:20px; }
}

/* ====== Lesson kit v2 (26/09/2026): lead, outcomes, figures, charts, airline chips, seats.aero mockups, quick check ====== */
.page-lesson .notes { font-size:17px; line-height:1.75; }
.page-lesson .notes > p, .page-lesson .notes > ul, .page-lesson .notes > ol:not(.steps):not(.flow):not(.pin-legend) { max-width:70ch; }
.notes .flow > li + li { margin-top:0; }
.notes .lead { font-size:20px; line-height:1.6; color:var(--ink); font-weight:500; letter-spacing:-.01em; }
.notes .lead + .tldr { margin-top:22px; }
.notes .tldr.outcomes { background:#fffefa; border:1px solid var(--line); border-left:4px solid var(--gold); }
.notes .tldr.outcomes ul { list-style:none; padding-left:0; }
.notes .tldr.outcomes li { position:relative; padding-left:28px; }
.notes .tldr.outcomes li::before { content:""; position:absolute; left:2px; top:.55em; width:12px; height:7px; border-left:2px solid var(--gold-deep); border-bottom:2px solid var(--gold-deep); transform:rotate(-45deg); }
.notes h2 + .fig, .notes p + .fig { margin-top:22px; }
.notes .fig { margin:26px 0 0; }
.notes .fig > img { display:block; width:100%; height:auto; border-radius:14px; border:1px solid var(--line); background:#fff; }
.notes .fig.photo > img { aspect-ratio:16/9; object-fit:cover; }
.notes .fig figcaption, .notes .fig .cap { font-size:13px; line-height:1.55; color:var(--muted); margin-top:10px; }
.notes .fig figcaption b { color:var(--ink); font-weight:600; }
.notes .panel { background:#fffefa; border:1px solid var(--line); border-radius:16px; padding:22px; }
.notes .panel > * + * { margin-top:12px; }
.notes .panel-title { font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; }

/* airline chip: tail fin + code */
.notes .al { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; font-weight:500; }
.notes .al::before { content:attr(data-c); display:inline-grid; place-items:center; width:30px; height:22px; padding-left:3px; font-size:10px; font-weight:700; letter-spacing:.02em; color:#fff; background:var(--c,#0F2A45); clip-path:polygon(0 100%, 38% 0, 100% 0, 100% 100%); border-radius:0 3px 3px 0; }

/* horizontal bars */
.notes .bars { display:grid; gap:12px; }
.notes .bar-row { display:grid; grid-template-columns:minmax(120px,190px) 1fr; gap:6px 14px; align-items:center; }
.notes .bar-row .who { font-size:15px; line-height:1.3; }
.notes .bar-row .who small { display:block; color:var(--muted); font-size:12px; }
.notes .bar-row .track { position:relative; height:34px; background:#f1ece2; border-radius:8px; overflow:hidden; }
.notes .bar-row .fill { position:absolute; inset:0 auto 0 0; width:var(--w,50%); background:var(--navy); border-radius:8px; }
.notes .bar-row.best .fill { background:linear-gradient(90deg,#8A6A3F,#B08D5E); }
.notes .bar-row .val { position:absolute; left:10px; top:50%; transform:translateY(-50%); font-size:14px; font-weight:600; color:#fff; white-space:nowrap; font-variant-numeric:tabular-nums; }
.notes .bar-row .val.out { left:calc(var(--w,50%) + 10px); color:var(--ink); }
@media (max-width:640px) { .notes .bar-row { grid-template-columns:1fr; } }

/* flow of steps with arrows */
.notes .flow { display:grid; grid-template-columns:repeat(var(--n,5),minmax(0,1fr)); gap:10px; counter-reset:fl; list-style:none; padding:0; }
.notes .flow > li { counter-increment:fl; position:relative; background:#fffefa; border:1px solid var(--line); border-radius:14px; padding:16px 14px 14px; font-size:14px; line-height:1.45; margin:0; }
.notes .flow > li::before { content:counter(fl); display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--navy); color:var(--cream); font-size:13px; font-weight:600; margin-bottom:10px; }
.notes .flow > li b { display:block; font-size:15px; margin-bottom:4px; }
.notes .flow > li:not(:last-child)::after { content:""; position:absolute; right:-9px; top:28px; width:8px; height:8px; border-top:2px solid var(--gold); border-right:2px solid var(--gold); transform:rotate(45deg); }
.notes .flow > li.hot { background:var(--navy); color:var(--cream); border-color:var(--navy); }
.notes .flow > li.hot::before { background:var(--gold); color:var(--navy); }
@media (max-width:760px) { .notes .flow { grid-template-columns:1fr; } .notes .flow > li:not(:last-child)::after { right:auto; left:24px; top:auto; bottom:-8px; transform:rotate(135deg); } .notes .flow > li { display:block; padding:14px 14px 14px 54px; } .notes .flow > li::before { position:absolute; left:14px; top:14px; margin:0; } }

/* key numbers */
.notes .kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; }
.notes .kpi { background:#fffefa; border:1px solid var(--line); border-radius:14px; padding:16px 18px; }
.notes .kpi .k { font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.notes .kpi .v { font-size:28px; font-weight:700; letter-spacing:-.03em; line-height:1.15; margin-top:4px; font-variant-numeric:tabular-nums; }
.notes .kpi .s { font-size:13px; color:var(--muted); margin-top:4px; line-height:1.4; }
.notes .kpi.gold { background:var(--gold); border-color:var(--gold); color:var(--navy); }
.notes .kpi.gold .k, .notes .kpi.gold .s { color:var(--navy); opacity:.8; }
.notes .kpi.bad .v { color:#9B2C2C; }

/* alliance map */
.notes .alliances { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.notes .alliance { background:#fffefa; border:1px solid var(--line); border-radius:16px; padding:18px; border-top:4px solid var(--c,#0F2A45); }
.notes .alliance h3 { margin:0 0 4px !important; font-size:18px; }
.notes .alliance .sub { font-size:12.5px; color:var(--muted); line-height:1.45; }
.notes .alliance ul { list-style:none; padding:0; margin-top:12px; display:grid; gap:7px; font-size:14px; }
.notes .alliance li + li { margin-top:0; }
@media (max-width:760px) { .notes .alliances { grid-template-columns:1fr; } }

/* common mistake + quick check */
.notes .callout.mistake { background:#fff; border:1px solid #ecd2cf; border-left:4px solid #9B2C2C; }
.notes .callout.mistake .label { color:#9B2C2C; }
.notes .quiz { border:1px solid var(--line); border-radius:var(--r-md); background:#fffefa; padding:18px 20px 8px; }
.notes .quiz details { border-top:1px solid var(--line); padding:12px 0; }
.notes .quiz details:first-of-type { border-top:0; }
.notes .quiz summary { cursor:pointer; list-style:none; font-weight:600; display:flex; gap:12px; align-items:flex-start; line-height:1.5; }
.notes .quiz summary::-webkit-details-marker { display:none; }
.notes .quiz summary::before { content:"+"; flex:none; display:grid; place-items:center; width:24px; height:24px; border-radius:50%; border:1.5px solid var(--gold-deep); color:var(--gold-deep); font-weight:600; line-height:1; margin-top:1px; }
.notes .quiz details[open] summary::before { content:"–"; background:var(--gold-deep); color:#fff; }
.notes .quiz details > p { margin:8px 0 4px 36px; color:var(--muted); font-size:15.5px; }
.notes .quiz details > p b { color:var(--ink); }

/* program profile */
.notes .program { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#fffefa; }
.notes .program > div { padding:14px 18px; border-top:1px solid var(--line); }
.notes .program > div:nth-child(-n+2) { border-top:0; }
.notes .program > div:nth-child(odd) { border-right:1px solid var(--line); }
.notes .program .k { font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep); font-weight:600; }
.notes .program .v { font-size:15px; line-height:1.5; margin-top:4px; }
.notes .program .head { grid-column:1/-1; background:var(--navy); color:var(--cream); border-right:0 !important; display:flex; flex-wrap:wrap; gap:6px 16px; align-items:baseline; }
.notes .program .head b { font-size:19px; }
.notes .program .head span { font-size:13px; opacity:.8; }
.notes .program .head + div { border-top:0; }
@media (max-width:640px) { .notes .program { grid-template-columns:1fr; } .notes .program > div:nth-child(odd) { border-right:0; } .notes .program > div:nth-child(2) { border-top:1px solid var(--line); } }

/* timeline */
.notes .timeline { position:relative; display:grid; grid-template-columns:repeat(var(--n,4),minmax(0,1fr)); gap:10px; padding-top:18px; }
.notes .timeline::before { content:""; position:absolute; left:0; right:0; top:6px; height:4px; border-radius:4px; background:linear-gradient(90deg,var(--gold) 0 22%,#e4dccd 22% 78%,var(--gold) 78% 100%); }
.notes .timeline > div { font-size:14px; line-height:1.45; }
.notes .timeline > div b { display:block; font-size:15px; }
.notes .timeline > div small { color:var(--muted); display:block; font-size:13.5px; line-height:1.45; margin-top:2px; }
@media (max-width:640px) { .notes .timeline { grid-template-columns:1fr 1fr; padding-top:0; } .notes .timeline::before { display:none; } .notes .timeline > div { border-left:3px solid #e4dccd; padding-left:10px; } .notes .timeline > div:first-child, .notes .timeline > div:nth-child(3) { border-left-color:var(--gold); } }

/* small-multiple diagrams (responsive: 4 → 2 columns) */
.notes .shapes { display:grid; grid-template-columns:repeat(var(--n,4),minmax(0,1fr)); gap:12px; }
.notes .shape { background:#fffefa; border:1px solid var(--line); border-radius:14px; padding:14px 14px 12px; }
.notes .shape b { display:block; font-size:15.5px; letter-spacing:-.01em; }
.notes .shape small { display:block; font-size:12.5px; color:var(--muted); line-height:1.45; margin-top:2px; }
.notes .shape small.good { color:#2F6B4F; font-weight:500; }
.notes .shape small.bad { color:#9B2C2C; font-weight:500; }
.notes .shape svg { display:block; width:100%; height:auto; margin:10px 0 6px; }
@media (max-width:760px) { .notes .shapes { grid-template-columns:1fr 1fr; } }
.notes .legend { display:flex; flex-wrap:wrap; gap:6px 18px; font-size:13px; color:var(--muted); margin-top:12px; line-height:1.4; }
.notes .legend span { display:inline-flex; align-items:center; gap:7px; }
.notes .legend i { display:inline-block; width:18px; height:4px; border-radius:2px; background:var(--k,#0F2A45); }
.notes .legend i.dash { background:repeating-linear-gradient(90deg,var(--k) 0 5px,transparent 5px 9px); }
.notes .legend i.sq { width:12px; height:12px; border-radius:3px; }

/* inline SVG diagrams */
.notes .svg-fig svg { display:block; width:100%; height:auto; }
.notes .svg-fig { background:#fffefa; border:1px solid var(--line); border-radius:16px; padding:18px; }

/* ---- seats.aero mockups (recreated from real screens) ---- */
.notes .sa { --sa-bg:#0b1220; --sa-panel:#131c2e; --sa-row:#101828; --sa-line:#243047; --sa-text:#e6ebf2; --sa-muted:#8b97ab; --sa-blue:#1f8cff;
  background:var(--sa-bg); color:var(--sa-text); border-radius:14px; overflow:hidden; border:1px solid #1d2638; font-size:13px; line-height:1.4; box-shadow:0 18px 40px -24px rgba(8,26,44,.6); }
.notes .sa * { box-sizing:border-box; }
.notes .sa-chrome { display:flex; align-items:center; gap:8px; padding:9px 14px; background:#070c16; border-bottom:1px solid var(--sa-line); color:var(--sa-muted); font-size:12px; }
.notes .sa-chrome i { width:9px; height:9px; border-radius:50%; background:#2b3548; display:inline-block; }
.notes .sa-chrome span { margin-left:8px; background:#111a2b; border-radius:6px; padding:3px 12px; flex:1; max-width:420px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.notes .sa-scroll { overflow-x:auto; }
.notes .sa-body { padding:16px; position:relative; }
.notes .sa-body:has(.sa-table) { min-width:max(100%, 740px); width:max-content; }
.notes .sa-table td, .notes .sa-table th { white-space:nowrap; }
.notes .sa-legs div { min-width:0; }
.notes .sa-card > div:first-child { min-width:0; }
@media (max-width:760px) {
  .notes .sa { position:relative; }
  .notes .sa:has(.sa-table) .sa-chrome::after { content:"scroll →"; margin-left:auto; font-size:11px; color:#c9d3e2; background:#1b2436; padding:2px 8px; border-radius:6px; flex:none; }
  .notes .sa-body:not(:has(.sa-table)) .sa-search { grid-template-columns:1fr 1fr !important; }
  .notes .sa-body:not(:has(.sa-table)) .sa-search > .sa-btn { grid-column:1/-1; text-align:center; }
  .notes .sa-card { grid-template-columns:1fr; }
  .notes .sa-card .p { text-align:left; }
}
.notes .sa h4 { font-size:20px; font-weight:700; letter-spacing:-.02em; margin:0 0 10px; color:#fff; font-family:var(--sans); }
.notes .sa-search { display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:10px; background:var(--sa-panel); border:1px solid var(--sa-line); border-radius:10px; padding:12px; align-items:end; }
.notes .sa-field .l { font-size:11.5px; color:var(--sa-muted); margin-bottom:5px; }
.notes .sa-field .in { background:#0b1322; border:1px solid var(--sa-line); border-radius:7px; padding:7px 9px; min-height:34px; display:flex; gap:6px; align-items:center; }
.notes .sa-tag { background:#1b2a44; border:1px solid #2c4166; border-radius:5px; padding:1px 7px; font-size:12px; font-weight:600; }
.notes .sa-btn { background:var(--sa-blue); color:#fff; border-radius:7px; padding:8px 16px; font-weight:600; font-size:13px; white-space:nowrap; }
.notes .sa-chips { display:flex; flex-wrap:wrap; gap:6px; margin:12px 0; }
.notes .sa-chips span { border:1px solid #2a5ea8; color:#8cc2ff; border-radius:6px; padding:3px 9px; font-size:11.5px; }
.notes .sa-table { width:100%; border-collapse:collapse; font-size:12.5px; background:transparent; }
.notes .sa-table th { background:#0f1829; color:var(--sa-muted); font-weight:500; font-size:11.5px; letter-spacing:0; text-transform:none; padding:8px 10px; text-align:left; }
.notes .sa-table td { border-top:1px solid var(--sa-line); padding:8px 10px; vertical-align:middle; color:var(--sa-text); }
.notes .sa-table tr.hl td { background:rgba(31,140,255,.10); }
.notes .sa-table .code { font-size:10.5px; background:#1c2638; border-radius:4px; padding:1px 5px; color:#aab6c9; margin-left:4px; }
.notes .sa-pill { display:inline-flex; gap:10px; justify-content:space-between; align-items:center; min-width:96px; border-radius:6px; padding:4px 8px; font-weight:700; font-size:12.5px; }
.notes .sa-pill small { font-weight:500; font-size:10px; opacity:.85; }
.notes .sa-pill.d { background:#173a7a; color:#fff; }
.notes .sa-pill.s { background:#2a3446; color:#e6ebf2; }
.notes .sa-na { color:#5d6a80; font-size:11.5px; }
.notes .sa-card { background:var(--sa-panel); border:1px solid var(--sa-line); border-radius:10px; padding:12px 14px; display:grid; grid-template-columns:1fr auto; gap:6px 14px; }
.notes .sa-card + .sa-card { margin-top:8px; }
.notes .sa-card.sel { border-color:#2d6fd2; background:#0f2446; }
.notes .sa-card .t { font-size:14.5px; font-weight:700; color:#fff; }
.notes .sa-card .m { color:var(--sa-muted); font-size:12px; }
.notes .sa-card .p { text-align:right; font-weight:700; font-size:15px; color:#fff; }
.notes .sa-card .p small { display:block; font-weight:500; color:var(--sa-muted); font-size:12px; }
.notes .sa-card .opts { grid-column:1/-1; display:flex; gap:8px; flex-wrap:wrap; }
.notes .sa-card .opts span { background:#1b2436; border-radius:6px; padding:3px 9px; font-size:11.5px; color:#c9d3e2; }
.notes .sa-card .opts span.blue { background:var(--sa-blue); color:#fff; }
.notes .sa-sub { grid-column:1/-1; display:grid; gap:6px; margin-top:4px; }
.notes .sa-opt { display:flex; justify-content:space-between; gap:12px; background:#0b1322; border:1px solid var(--sa-line); border-radius:8px; padding:8px 10px; }
.notes .sa-opt b { color:#fff; }
.notes .sa-ok { color:#36c07a; font-size:11.5px; }
.notes .sa-tabs { display:grid; grid-template-columns:repeat(4,1fr); background:#0f1829; border-radius:8px 8px 0 0; overflow:hidden; margin-top:10px; }
.notes .sa-tabs span { text-align:center; padding:6px; font-size:12px; color:#6f8fb8; }
.notes .sa-tabs span.on { background:#2b3446; color:#fff; }
.notes .sa-legs { grid-column:1/-1; display:grid; gap:4px; border-top:1px dashed var(--sa-line); padding-top:8px; margin-top:2px; font-size:12px; color:#c9d3e2; }
.notes .sa-legs div { display:flex; flex-wrap:wrap; gap:4px 14px; }
.notes .sa-legs em { font-style:normal; color:var(--sa-muted); }
.notes .pin { position:relative; }
.notes .pin::after { content:attr(data-pin); position:absolute; top:-9px; right:-9px; width:22px; height:22px; border-radius:50%; background:#E2BE7C; color:#0b1220; font:700 12px/22px var(--sans); text-align:center; box-shadow:0 0 0 3px rgba(226,190,124,.25); z-index:2; }
.notes span.pin:not(.sa-pill)::after { position:static; display:inline-block; margin-left:6px; vertical-align:middle; width:20px; height:20px; line-height:20px; font-size:11px; }
.notes .pin-legend { list-style:none; padding:0; counter-reset:none; display:grid; gap:8px; }
.notes .pin-legend li { position:relative; padding-left:34px; }
.notes .pin-legend li + li { margin-top:0; }
.notes .pin-legend li::before { content:attr(data-pin); position:absolute; left:0; top:1px; width:22px; height:22px; border-radius:50%; background:#E2BE7C; color:#0b1220; font:700 12px/22px var(--sans); text-align:center; }
.notes .sa-note { font-size:12.5px; color:var(--muted); margin-top:8px; }

.bar-right { min-width:0; flex-shrink:1; }
.bar-left { flex-shrink:0; }
.bar-right .who:not([hidden]) { display:inline-block; max-width:40vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:middle; }

/* cover in place of the empty video box */
.video-placeholder.has-cover { position:relative; aspect-ratio:21/9; padding:0; overflow:hidden; border:0; background:#e9e3d7; }
.video-placeholder.has-cover img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.video-placeholder.has-cover .soon { position:absolute; left:16px; bottom:16px; display:inline-flex; gap:8px; align-items:center; background:rgba(15,42,69,.82); color:var(--cream); font-size:12px; padding:7px 12px; border-radius:999px; backdrop-filter:blur(6px); }
.video-placeholder.has-cover .soon svg { width:16px; height:16px; color:var(--gold-soft); }
@media (max-width:640px) { .video-placeholder.has-cover { aspect-ratio:16/9; } }

.notes .checklist li.interactive-task::before { content:none; }
.notes .checklist li.interactive-task { cursor:pointer; }
.task-checkbox { position:absolute; left:0; top:5px; width:18px; height:18px; accent-color:var(--gold-deep); cursor:pointer; }
.task-checkbox:focus-visible { outline:2px solid var(--gold-deep); outline-offset:3px; }

/* ====== Reading layout v3 (09/10/2026): one centered text column, wide visuals break out, calmer rhythm ====== */
.page-lesson article { container-type:inline-size; }
.page-lesson .notes { --col:760px; --wide:min(100cqw, 1000px); max-width:var(--col); margin:56px auto 0; font-size:17px; line-height:1.8; }
.page-lesson .notes > p, .page-lesson .notes > ul, .page-lesson .notes > ol:not(.steps):not(.flow):not(.pin-legend) { max-width:none; }
/* wide visuals: wider than the text, still centered */
.page-lesson .notes > :is(.sa, .flow, .shapes, .alliances, .table-wrap, .timeline, .svg-fig, .fig),
.page-lesson .notes > .table-wrap + .source { width:var(--wide); max-width:none; margin-left:calc((100% - var(--wide)) / 2); }

/* vertical rhythm */
.page-lesson .notes > * + * { margin-top:20px; }
.page-lesson .notes > .lead { font-size:21px; line-height:1.6; }
.page-lesson .notes > .lead + * { margin-top:28px; }
.page-lesson .notes h2 { position:relative; font-size:clamp(25px,2.4vw,30px); line-height:1.25; margin-top:72px; padding-top:22px; }
.page-lesson .notes h2::before { content:""; position:absolute; left:0; top:0; width:36px; height:3px; border-radius:3px; background:var(--gold); }
.page-lesson .notes h3 { font-size:20px; line-height:1.35; margin-top:40px; }
.page-lesson .notes > :is(h2, h3) + * { margin-top:14px; }
.page-lesson .notes > :is(p, ul, ol) + :is(.callout, .tldr, .checklist, .quiz, .compare, .kpis, .program, .bars, .panel, .paths, .formula, .sa, .flow, .shapes, .alliances, .table-wrap, .timeline, .svg-fig, .fig) { margin-top:28px; }
.page-lesson .notes > :is(.callout, .tldr, .checklist, .quiz, .compare, .kpis, .program, .bars, .panel, .paths, .formula, .sa, .flow, .shapes, .alliances, .table-wrap, .timeline, .svg-fig, .fig) + :is(p, ul, ol) { margin-top:28px; }
.page-lesson .notes > .table-wrap + .source, .page-lesson .notes > .fig + .source { margin-top:10px; }

/* lists */
.page-lesson .notes ul, .page-lesson .notes ol { padding-left:24px; }
.page-lesson .notes li + li { margin-top:10px; }
.page-lesson .notes > ul > li, .page-lesson .notes > ol:not(.steps):not(.flow):not(.pin-legend) > li { padding-left:4px; }
.page-lesson .notes > ul li::marker, .page-lesson .notes > ol li::marker { color:var(--gold-deep); font-weight:600; }
.page-lesson .notes b, .page-lesson .notes strong { color:var(--navy); font-weight:600; }

/* boxes: more air, quieter labels */
.page-lesson .notes .label { font-size:11.5px; letter-spacing:.16em; font-weight:600; margin-bottom:10px; }
.page-lesson .notes :is(.callout, .tldr, .checklist, .quiz) { padding:24px 28px; font-size:16.5px; line-height:1.75; }
.page-lesson .notes .quiz { padding-bottom:12px; }
.page-lesson .notes .callout p + p, .page-lesson .notes .callout p + ul, .page-lesson .notes .callout p + ol { margin-top:10px; }
.page-lesson .notes .callout.tip { background:#fffefa; border-left:4px solid var(--gold); }
.page-lesson .notes .callout.warn { border-left:4px solid var(--gold-deep); }
.page-lesson .notes .callout.agency b, .page-lesson .notes .callout.gold b, .page-lesson .notes .kpi.gold b, .page-lesson .notes .flow > li.hot b { color:inherit; }
.page-lesson .notes .checklist li + li, .page-lesson .notes .tldr li + li { margin-top:10px; }
.page-lesson .notes .checklist li, .page-lesson .notes .tldr.outcomes li { padding-left:32px; }
.page-lesson .notes .formula { padding:18px 22px; font-size:17px; }

@media (max-width:640px) {
  .page-lesson .notes { margin-top:36px; font-size:16.5px; line-height:1.75; }
  .page-lesson .notes > .lead { font-size:19px; }
  .page-lesson .notes h2 { margin-top:56px; padding-top:18px; }
  .page-lesson .notes :is(.callout, .tldr, .checklist, .quiz) { padding:20px; font-size:16px; }
}
.page-lesson .notes > :is(.callout, .tldr, .checklist, .quiz, .compare, .kpis, .program, .bars, .panel, .paths, .formula, .sa, .flow, .shapes, .alliances, .table-wrap, .timeline, .svg-fig, .fig, .pin-legend) + :is(.callout, .tldr, .checklist, .quiz, .compare, .kpis, .program, .bars, .panel, .paths, .formula, .sa, .flow, .shapes, .alliances, .table-wrap, .timeline, .svg-fig, .fig) { margin-top:28px; }

/* justified text in the reading column (09/10/2026) */
.page-lesson .notes > p:not(.label):not(.source):not(.caption),
.page-lesson .notes > ul > li, .page-lesson .notes > ol > li,
.page-lesson .notes ol.steps > li,
.page-lesson .notes :is(.callout, .tldr, .checklist) :is(p:not(.label), li),
.page-lesson .notes .quiz details > p { text-align:justify; hyphens:auto; -webkit-hyphens:auto; text-wrap:pretty; }
.page-lesson .notes > .lead { hyphens:manual; -webkit-hyphens:manual; }

/* Center lesson steps and booking cards across the Academy. */
.page-lesson .notes .flow > li { text-align:center; hyphens:manual; padding:16px 14px 14px; }
.page-lesson .notes .flow > li::before { position:static; margin:0 auto 10px; }
@media (max-width:760px) { .page-lesson .notes .flow > li:not(:last-child)::after { left:calc(50% - 4px); } }
.cta-book { flex-direction:column; justify-content:center; text-align:center; }
.cta-book > div { width:100%; }
.page-lesson .cta-book p { margin-left:auto; margin-right:auto; text-align:center; }

/* Three reward types: aligned headers and consistent reading spacing. */
.page-lesson .notes .points-kinds { gap:16px; align-items:stretch; }
.page-lesson .notes .points-kinds .alliance { padding:24px 20px; display:flex; flex-direction:column; align-items:center; }
.page-lesson .notes .points-kinds h3 { width:100%; text-align:center; line-height:1.3; margin:0 0 10px !important; }
.page-lesson .notes .points-kinds .sub { width:100%; min-height:4.35em; margin:0; text-align:center; text-wrap:balance; }
.page-lesson .notes .points-kinds ul { width:100%; display:flex; flex-direction:column; gap:16px; margin:20px 0 0; padding:0; }
.page-lesson .notes .points-kinds li { padding:0; margin:0; text-align:justify; text-align-last:center; line-height:1.65; hyphens:auto; }
.page-lesson .notes .points-kinds li::before { content:none; }
@media(max-width:760px) { .page-lesson .notes .points-kinds .sub { min-height:0; } }

/* Distinct reward cards with comfortable contrast and natural word spacing. */
.page-lesson .notes .points-kinds .alliance:nth-child(1) { background:#e6eff7; border-color:#b6cbdc; border-top-color:#284e70; }
.page-lesson .notes .points-kinds .alliance:nth-child(2) { background:#eaf2e7; border-color:#c0d2b8; border-top-color:#557349; }
.page-lesson .notes .points-kinds .alliance:nth-child(3) { background:#f6ead6; border-color:#dfc8a4; border-top-color:#9b713a; }
.page-lesson .notes .points-kinds .alliance { color:#102c43; }
.page-lesson .notes .points-kinds .sub { color:#354b5b; font-size:14px; line-height:1.55; }
.page-lesson .notes .points-kinds li { color:#102c43; font-size:16px; text-align:center; text-align-last:auto; hyphens:none; -webkit-hyphens:none; text-wrap:pretty; line-height:1.6; }


/* Cash-or-points summary: aligned cards and clear reading hierarchy. */
.page-lesson .notes .points-decision { background:#e6eff7; border:1px solid #b6cbdc; border-radius:18px; padding:28px; }
.page-lesson .notes .points-decision .panel-title { text-align:center; color:#102c43; font-size:clamp(22px,2.3vw,28px); font-weight:700; letter-spacing:-.02em; text-transform:none; margin:0 0 28px; line-height:1.3; text-wrap:balance; }
.page-lesson .notes .points-decision .flow { gap:16px; margin:0; align-items:stretch; }
.page-lesson .notes .points-decision .flow > li { margin:0; padding:22px 16px; line-height:1.6; text-align:center; }
.page-lesson .notes .points-decision .flow > li::before { margin:0 auto 16px; }
.page-lesson .notes .points-decision .flow > li b { min-height:3.2em; margin:0 0 12px; line-height:1.6; display:flex; align-items:center; justify-content:center; }
.page-lesson .notes .points-decision .flow > li:not(:last-child)::after { right:-12px; top:35px; }
.page-lesson .notes .points-decision .formula { margin:24px 0 0; padding:20px; background:#d4e2ee; text-align:center; line-height:1.65; text-wrap:balance; }
.page-lesson .notes .points-decision > p:last-child { margin-top:18px; text-align:center; font-size:15px; line-height:1.7; color:#354b5b; }
@media(max-width:760px) {
 .page-lesson .notes .points-decision { padding:22px 18px; }
 .page-lesson .notes .points-decision .flow > li b { min-height:0; }
 .page-lesson .notes .points-decision .flow > li:not(:last-child)::after { right:auto; left:calc(50% - 4px); top:auto; bottom:-12px; }
}

.page-lesson .notes h2 .point-worth { color:#2b7055; }
.page-lesson .notes h2 .point-cost { color:#985027; }

.page-lesson .notes .award-price-chart { background:#fffefa; border:1px solid #d4dfe6; border-radius:18px; padding:24px; }
.page-lesson .notes .award-price-chart svg { width:100%; height:auto; display:block; }
.page-lesson .notes .award-price-chart .legend { display:flex; justify-content:center; flex-wrap:wrap; gap:14px 28px; margin:16px 0 0; padding:18px 0; border-top:1px solid #e1e7ec; font-size:15px; }
.page-lesson .notes .award-price-chart figcaption { text-align:center; font-size:14px; line-height:1.6; margin-top:4px; color:#526577; }
@media(max-width:640px) { .page-lesson .notes .award-price-chart { padding:14px; } .page-lesson .notes .award-price-chart .legend { font-size:13px; gap:10px 18px; } }

/* Consistent process cards in module 2 and later lessons. */
.page-lesson .notes .polished-cards { gap:16px; align-items:stretch; padding:0; }
.page-lesson .notes .polished-cards > li { margin:0; padding:24px 18px; text-align:center; line-height:1.65; font-size:15px; color:#102c43; background:#e6eff7; border:1px solid #b6cbdc; border-top:4px solid #284e70; hyphens:none; -webkit-hyphens:none; text-wrap:pretty; }
.page-lesson .notes .polished-cards > li:nth-child(3n+2) { background:#eaf2e7; border-color:#c0d2b8; border-top-color:#557349; }
.page-lesson .notes .polished-cards > li:nth-child(3n) { background:#f6ead6; border-color:#dfc8a4; border-top-color:#9b713a; }
.page-lesson .notes .polished-cards > li::before { position:static; width:30px; height:30px; margin:0 auto 16px; background:#102c43; color:#fffefa; }
.page-lesson .notes .polished-cards > li b { min-height:3.2em; display:flex; align-items:center; justify-content:center; margin:0 0 12px; font-size:17px; line-height:1.6; color:inherit; }
.page-lesson .notes .polished-cards > li:not(:last-child)::after { right:-12px; top:36px; }
@media(min-width:761px) and (max-width:1200px) { .page-lesson .notes .polished-cards[style*="--n:6"], .page-lesson .notes .polished-cards[style*="--n:5"] { grid-template-columns:repeat(3,minmax(0,1fr)); } .page-lesson .notes .polished-cards[style*="--n:6"] > li::after, .page-lesson .notes .polished-cards[style*="--n:5"] > li::after { content:none; } }
@media(max-width:760px) { .page-lesson .notes .polished-cards > li b { min-height:0; } .page-lesson .notes .polished-cards > li:not(:last-child)::after { top:auto; bottom:-12px; right:auto; left:calc(50% - 4px); } }

.page-lesson .notes .agency-comparison { grid-template-columns:repeat(3,minmax(0,1fr)); }
.page-lesson .notes .agency-comparison .agency-price { background:#eaf2e7; color:#102c43; }
.page-lesson .notes .agency-comparison .price { font-size:clamp(26px,3.6vw,40px); }
@media(max-width:640px) { .page-lesson .notes .agency-comparison { grid-template-columns:1fr; } }

.page-lesson .notes .program .head > span { font-size:17px; line-height:1.6; color:#f0d5a8; opacity:1; }
.page-lesson .notes .lesson-emphasis { color:#245e49; font-weight:700; }
.ticket-stub #ticket-number { font-size:clamp(34px,4vw,54px); letter-spacing:-.04em; white-space:nowrap; }
@media(max-width:640px) { .ticket-stub #ticket-number { font-size:34px; } }

/* Clear, centered signup callout. */
.page-lesson .notes .callout.seats-signup { padding:36px 28px; border:1px solid #2c4b65; border-radius:20px; background:linear-gradient(135deg,#102c43,#193e59); text-align:center; }
.page-lesson .notes .callout.seats-signup > p { text-align:center; max-width:620px; margin-left:auto; margin-right:auto; }
.page-lesson .notes .callout.seats-signup > .label { color:#f0d5a8; font-size:clamp(20px,2.4vw,25px); line-height:1.35; font-weight:700; letter-spacing:-.02em; text-transform:none; margin-bottom:16px; }
.page-lesson .notes .callout.seats-signup > p:not(.label) { color:#fffaf0; line-height:1.7; }
.page-lesson .notes .callout.seats-signup > p:last-child { margin-top:24px; }
.page-lesson .notes .callout.seats-signup a.btn { display:inline-flex; justify-content:center; min-height:54px; padding:15px 28px; background:#efd3a3; color:#102c43; font-size:17px; font-weight:700; text-decoration:none; border:1px solid #efd3a3; box-shadow:0 6px 18px rgba(0,0,0,.16); opacity:1; }
.page-lesson .notes .callout.seats-signup a.btn:hover { background:#fff0d3; color:#102c43; }
.page-lesson .notes .callout.seats-signup a.btn:focus-visible { outline:3px solid #fffaf0; outline-offset:5px; }
@media(max-width:640px) { .page-lesson .notes .callout.seats-signup { padding:28px 20px; } .page-lesson .notes .callout.seats-signup a.btn { width:100%; padding:15px 18px; } }

/* Lesson pages share the home beige/charcoal palette; layout stays unchanged. */
.page-lesson:not(.page-home) { --navy-0:#222529; --navy:#282c30; --navy-2:#333438; --navy-3:#45464a; --ink:#282c30; --cream:#eae7e2; --card:#f5f2ee; --sand:#ece5d8; --line:#d7d0c8; --muted:#62605d; --white:#faf8f5; background:#eae7e2; color:#282c30; }
.page-lesson:not(.page-home) .content { background:#eae7e2; color:#282c30; }
.page-lesson:not(.page-home) .bar { background:rgba(250,248,245,.97); color:#282c30; border-color:#d7d0c8; }
.page-lesson:not(.page-home) .brand,.page-lesson:not(.page-home) .brand:hover { color:#282c30; }
.page-lesson:not(.page-home) .brand .wm span,.page-lesson:not(.page-home) .brand small { color:#B08D5E; }
.page-lesson:not(.page-home) .snav { background:#282c30; }
.page-lesson:not(.page-home) .snav a,.page-lesson:not(.page-home) .snav .signout { color:#f8f5f0; }
.page-lesson:not(.page-home) .snav .mod .n,.page-lesson:not(.page-home) .snav .snav-label { color:#C9A878; }
.page-lesson:not(.page-home) .snav .snav-cta .box { background:#333438; border-color:#66563f; }
.page-lesson:not(.page-home) .snav .snav-cta b,.page-lesson:not(.page-home) .snav .snav-cta p { color:#f8f5f0; }
.page-lesson:not(.page-home) .cta-book { background:linear-gradient(110deg,#282c30,#383b3e); color:#f8f5f0; }
.page-lesson:not(.page-home) .cta-book p { color:#f8f5f0; }
.page-lesson:not(.page-home) .notes .callout.agency { background:#282c30; color:#f8f5f0; }
.page-lesson:not(.page-home) .notes .callout.seats-signup { background:linear-gradient(135deg,#282c30,#383b3e); border-color:#45464a; }
.page-lesson:not(.page-home) .notes .callout.seats-signup a.btn { color:#282c30; }

/* Lesson 5.1: compact comparisons */
.brazil-compact{margin:24px 0 30px}
#notes .brazil-compact h3{margin:0 0 12px;font-size:18px;line-height:1.45}
.brazil-compact h3 span{font-weight:400;color:var(--muted);font-size:14px}
.brazil-compact-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.brazil-compact-grid>div{padding:18px 20px;border-radius:14px;background:#f5f2ee}
.brazil-compact-grid>.with-miles{background:#e8dcc8}
#notes .brazil-compact .label{margin:0 0 8px;font-size:10px;letter-spacing:.12em;font-weight:700;text-transform:uppercase}
#notes .brazil-compact .amount{margin:0;font-size:34px;line-height:1.1;font-weight:750;color:#282c30}
.brazil-compact .amount s{color:#77716a;text-decoration-thickness:2px}
#notes .brazil-compact .detail{margin:8px 0 0;font-size:12px;line-height:1.6;color:#514b43}
#notes .brazil-compact .caption{margin:9px 0 0;font-size:11px;color:var(--muted)}
@media(max-width:520px){.brazil-compact-grid{gap:8px}.brazil-compact-grid>div{padding:15px 12px}#notes .brazil-compact .amount{font-size:29px}.brazil-compact h3 span{display:block}}

/* Module 6: compact tables and transfer cards */
#notes .hotel-examples th,#notes .experience-examples th{background:#282c30;color:#faf8f5;font-weight:650}
#notes .hotel-examples td:last-child{background:#eee5d6}
#notes .hotel-examples td:last-child b{color:#59432c}
#notes .experience-examples td:first-child{background:#eee5d6;color:#59432c}
#notes .experience-examples tr:nth-child(odd) td:not(:first-child){background:#f2efea}
#notes .accor-transfers .kpi{text-align:center;background:#f8f5f0;border:1px solid #d7d0c8;padding:18px 14px}
#notes .accor-transfers .kpi.gold{background:#e8dcc8;border-color:#c9b18b}
#notes .accor-transfers p{text-align:center}
#notes .accor-transfers .k{font-weight:650;color:#514b43;font-size:11px;min-height:34px;display:flex;align-items:center;justify-content:center;margin:10px 0 6px}
#notes .accor-transfers .v{font-size:28px;margin:0 0 8px;line-height:1.2;color:#282c30}
#notes .accor-transfers .s{font-size:12px;line-height:1.5;margin:0}
.transfer-logos{display:flex;align-items:center;justify-content:center;gap:6px;height:40px}
.transfer-logos img{width:40px;height:40px;object-fit:contain}

/* Module 9 bonus: gold, shimmering title in the side menu */
.mod[data-mod="m9"]{position:relative;border:1px solid rgba(247,197,72,.45);border-radius:12px;background:linear-gradient(135deg,rgba(247,197,72,.14),rgba(247,197,72,.03));box-shadow:0 0 18px rgba(247,197,72,.18);animation:m9-glow 2.8s ease-in-out infinite}
.mod[data-mod="m9"] .n{color:#f7c548}
.mod[data-mod="m9"] .t{font-weight:700;letter-spacing:.02em;background:linear-gradient(100deg,#b8860b 0%,#f7c548 35%,#fff4c8 50%,#f7c548 65%,#b8860b 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:m9-shine 3.2s linear infinite}
@keyframes m9-shine{from{background-position:120% 0}to{background-position:-120% 0}}
@keyframes m9-glow{0%,100%{box-shadow:0 0 12px rgba(247,197,72,.14)}50%{box-shadow:0 0 24px rgba(247,197,72,.38)}}
@media (prefers-reduced-motion:reduce){.mod[data-mod="m9"],.mod[data-mod="m9"] .t{animation:none}}
