
  :root{
    --canvas:#EFF0EF;
    --canvas-2:#E5E6E4;
    --surface:#FFFFFF;
    --ink:#171A1E;
    --ink-soft:#6B6E74;
    --line:rgba(23,26,30,0.10);
    --line-soft:rgba(23,26,30,0.06);
    --black:#14161A;
    --white:#F7F7F5;
    --white-soft:#B7B8BC;
    --display:'Bricolage Grotesque', sans-serif;
    --body:'Montserrat', sans-serif;
    --ease:cubic-bezier(.16,1,.3,1);
    --r-lg:28px;
    --r-md:18px;
    --r-sm:12px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:
      repeating-linear-gradient(0deg, rgba(23,26,30,.035) 0 1px, transparent 1px 96px),
      repeating-linear-gradient(90deg, rgba(23,26,30,.035) 0 1px, transparent 1px 96px),
      var(--canvas);
    color:var(--ink);
    font-family:var(--body);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  ::selection{ background:var(--ink); color:var(--white); }
  a{ color:inherit; text-decoration:none; }
  img{ max-width:100%; display:block; }
  .wrap{ max-width:1180px; margin:0 auto; padding:0 32px; position:relative; z-index:1; }
  @media(max-width:600px){ .wrap{ padding:0 20px; } }

  /* ---------- scroll progress ---------- */
  .scroll-progress{
    position:fixed; top:0; left:0; height:3px; width:100%;
    background:var(--ink); z-index:300;
    transform:scaleX(0); transform-origin:0 0;
    will-change:transform;
  }

  /* ---------- cursor glow (desktop only, subtle) ---------- */
  .cursor-glow{
    position:fixed; top:0; left:0; width:16px; height:16px; border-radius:50%;
    background:var(--ink);
    filter:blur(7px);
    pointer-events:none; z-index:999; opacity:0; transition:opacity .4s ease;
    will-change:transform;
  }
  .cursor-glow.is-on{ opacity:.22; }

  /* ---------- ambient soft blobs (grayscale) ---------- */
  .blob{ position:absolute; border-radius:50%; filter:blur(60px); pointer-events:none; z-index:0; }
  @keyframes blobDrift{ from{ transform:translate3d(0,0,0) scale(1);} to{ transform:translate3d(3%,-4%,0) scale(1.08);} }

  /* ---------- eyebrow ---------- */
  .eyebrow{
    font-size:12px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
    display:inline-flex; align-items:center; gap:8px; color:var(--ink-soft);
  }
  .eyebrow::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--ink); display:inline-block; flex-shrink:0; }
  .eyebrow.on-dark{ color:var(--white-soft); }
  .eyebrow.on-dark::before{ background:var(--white); }

  /* ---------- surfaces ---------- */
  .card{
    background:rgba(255,255,255,.72);
    backdrop-filter:blur(18px) saturate(160%);
    -webkit-backdrop-filter:blur(18px) saturate(160%);
    border:1px solid rgba(255,255,255,.6);
    border-radius:var(--r-md);
    box-shadow:0 1px 2px rgba(23,26,30,.04), 0 18px 40px -18px rgba(23,26,30,.16), inset 0 1px 0 rgba(255,255,255,.7);
  }

  /* ---------- lift on hover ---------- */
  .lift{ transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s ease; }
  .lift:hover{ transform:translateY(-5px); box-shadow:0 1px 2px rgba(23,26,30,.05), 0 26px 50px -18px rgba(23,26,30,.20); border-color:rgba(23,26,30,.18); }

  /* ---------- nav ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(239,240,239,0.45);
    backdrop-filter:blur(18px) saturate(160%); -webkit-backdrop-filter:blur(18px) saturate(160%);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 32px; max-width:1180px; margin:0 auto;
  }
  @media(max-width:600px){ .nav-inner{ padding:14px 20px; } }
  .logo-link{ display:flex; align-items:center; }
  .logo-img{ height:24px; width:auto; display:block; }
  .nav-links{ display:flex; gap:32px; font-size:13px; font-weight:600; letter-spacing:0.01em; }
  .nav-links a{ color:var(--ink-soft); transition:color .2s ease; position:relative; }
  .nav-links a::after{ content:""; position:absolute; left:0; right:100%; bottom:-4px; height:1.5px; background:var(--ink); border-radius:2px; transition:right .25s var(--ease); }
  .nav-links a:hover{ color:var(--ink); }
  .nav-links a:hover::after{ right:0; }
  .nav-cta{
    font-size:13px; font-weight:700;
    background:var(--ink); color:var(--white);
    padding:11px 20px; border-radius:999px;
    transition:transform .25s var(--ease), background .2s ease;
  }
  .nav-cta:hover{ background:#3A3D43; }
  @media(max-width:760px){ .nav-links{ display:none; } }

  /* ---------- magnetic ---------- */
  .magnetic{ transition:transform .25s var(--ease), background .2s ease, color .2s ease, border-color .2s ease; }

  /* ---------- underline emphasis (replaces color accent) ---------- */
  .mark{ font-style:normal; text-decoration:underline; text-decoration-color:rgba(23,26,30,.28); text-decoration-thickness:3px; text-underline-offset:6px; }
  .mark.on-dark{ text-decoration-color:rgba(247,247,245,.32); }

  /* ---------- hero cover: full-bleed photo, occupies the whole top ---------- */
  .hero-cover{ position:relative; width:100%; overflow:hidden; background:var(--canvas-2); }
  .hero-cover-img{ width:100%; height:auto; display:block; }
  .hero-cover-fade{
    position:absolute; left:0; right:0; bottom:0; height:170px; z-index:1; pointer-events:none;
    background:linear-gradient(to top, var(--canvas), transparent);
  }
  .hero-cover-badge{
    position:absolute; z-index:2; padding:11px 16px; border-radius:999px;
    background:rgba(255,255,255,.86); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    box-shadow:0 10px 24px -8px rgba(23,26,30,.22);
    font-size:11.5px; font-weight:700; color:var(--ink); display:flex; align-items:center; gap:8px;
  }
  .hero-cover-badge .dot{ width:6px; height:6px; border-radius:50%; background:var(--ink); flex-shrink:0; }
  .hero-cover .badge-tl{ top:22px; left:22px; }
  .hero-cover .badge-br{ bottom:36px; right:22px; }
  @media(max-width:640px){ .hero-cover-badge{ font-size:10px; padding:9px 13px; } .hero-cover .badge-tl{ top:12px; left:12px; } .hero-cover .badge-br{ bottom:26px; right:12px; } }
  @media(max-width:700px){
    .hero-cover{ aspect-ratio:3/4; }
    .hero-cover-img{ height:100%; object-fit:cover; object-position:50% 18%; }
  }

  /* ---------- hero (headline) ---------- */
  .hero{ position:relative; padding:88px 0 96px; overflow:hidden; background:var(--canvas); }
  .hero-blob-1{ width:520px; height:520px; top:-180px; right:-140px; background:radial-gradient(circle, rgba(23,26,30,.07), transparent 70%); animation:blobDrift 22s ease-in-out infinite alternate; }
  .hero-blob-2{ width:420px; height:420px; top:120px; left:-180px; background:radial-gradient(circle, rgba(23,26,30,.04), transparent 70%); animation:blobDrift 26s ease-in-out infinite alternate-reverse; }
  /* ---------- ghost word: big blurred watermark, reused across sections ---------- */
  .ghost-word{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    font-family:var(--display); font-weight:800; font-size:min(38vw, 460px);
    letter-spacing:-0.03em; color:var(--ink); opacity:.06; filter:blur(20px);
    white-space:nowrap; pointer-events:none; z-index:0; user-select:none;
  }

  .hero-copy{ position:relative; z-index:2; max-width:780px; margin:0 auto; text-align:center; padding:0; }
  .hero-copy .eyebrow{ justify-content:center; margin-bottom:22px; }
  .hero h1{
    font-family:var(--display);
    font-weight:700;
    font-size:clamp(34px, 5.6vw, 68px);
    line-height:1.05;
    letter-spacing:-0.02em;
    text-wrap:balance;
  }
  .hero-sub{
    font-size:17.5px; font-weight:500; color:var(--ink-soft);
    max-width:66ch; margin:22px auto 0; line-height:1.7; text-align:left;
  }
  .hero-sub + .hero-sub{ margin-top:16px; }
  .hero-actions{ display:flex; flex-wrap:wrap; gap:14px; margin-top:34px; justify-content:center; }
  .btn-primary, .btn-secondary{
    font-weight:700; font-size:14.5px;
    padding:15px 26px; border-radius:12px;
    display:inline-flex; align-items:center; gap:9px;
  }
  .btn-primary{ background:var(--ink); color:var(--white); box-shadow:0 14px 28px -10px rgba(23,26,30,.45); }
  .btn-primary:hover{ background:#33363C; }
  .btn-secondary{ border:1.5px solid var(--line); color:var(--ink); background:var(--surface); }
  .btn-secondary:hover{ border-color:var(--ink); }

  .circle-word{ position:relative; display:inline-block; }
  .circle-word svg{
    position:absolute; left:-14px; top:-8px; right:-14px; bottom:-8px;
    width:calc(100% + 28px); height:calc(100% + 16px);
    overflow:visible;
  }

  @keyframes floatY{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-10px);} }

  /* ---------- marquee ---------- */
  .marquee{ background:var(--canvas); border-top:1px solid var(--line); border-bottom:1px solid var(--line); overflow:hidden; padding:20px 0; position:relative; z-index:1; }
  .marquee-track{ display:flex; width:max-content; animation:marquee 34s linear infinite; }
  .marquee-group{ display:flex; gap:40px; padding-right:40px; }
  .marquee-item{ font-size:13px; font-weight:600; letter-spacing:.04em; color:var(--ink-soft); white-space:nowrap; display:flex; align-items:center; gap:40px; }
  .marquee-item i{ color:var(--ink); opacity:.4; font-style:normal; }
  @keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
  @media (prefers-reduced-motion: reduce){ .marquee-track{ animation:none; } }

  /* ---------- section shells ---------- */
  .sec{ padding:120px 0; position:relative; }
  .sec-tint{ background:var(--canvas-2); }
  @media(max-width:600px){ .sec{ padding:80px 0; } }
  .sec-head{ max-width:640px; margin-bottom:52px; }
  .sec-head h2{
    font-family:var(--display); font-weight:700; letter-spacing:-0.01em; text-wrap:balance;
    font-size:clamp(28px, 3.8vw, 46px); line-height:1.08; margin-top:16px;
  }
  .sec-head p{ font-size:16.5px; margin-top:16px; max-width:56ch; line-height:1.7; color:var(--ink-soft); }

  /* ---------- problem / mock ---------- */
  .problem-grid{ display:grid; grid-template-columns:1.05fr 0.95fr; gap:64px; align-items:center; }
  @media(max-width:900px){ .problem-grid{ grid-template-columns:1fr; } }
  .problem-copy p{ font-size:16.5px; color:var(--ink-soft); line-height:1.75; margin-bottom:16px; }
  .problem-copy p strong{ color:var(--ink); }

  .mock-wrap{ position:relative; }
  .mock-window{
    max-width:340px; width:100%; height:auto; margin:0 auto; display:block;
    animation:floatY 7s ease-in-out infinite;
  }
  @media (prefers-reduced-motion: reduce){ .mock-window{ animation:none; } }
  /* ---------- process: editorial numbered rows (no card grid) ---------- */
  .steps{ border-top:1px solid var(--line); }
  .step-row{
    display:grid; grid-template-columns:130px 1fr; gap:8px 32px;
    padding:38px 0; border-bottom:1px solid var(--line);
    align-items:start; transition:padding-left .35s var(--ease);
  }
  .step-row:hover{ padding-left:10px; }
  @media(max-width:640px){ .step-row{ grid-template-columns:56px 1fr; gap:18px; padding:28px 0; } }
  .step-num{
    font-family:var(--display); font-weight:700; line-height:1;
    font-size:60px; letter-spacing:-0.02em; color:var(--ink); opacity:.13;
    transition:opacity .35s ease;
  }
  @media(max-width:640px){ .step-num{ font-size:32px; } }
  .step-row:hover .step-num{ opacity:.34; }
  .step-body h3{ font-family:var(--display); font-weight:700; font-size:21px; margin-bottom:8px; letter-spacing:-0.005em; }
  .step-body p{ font-size:15px; color:var(--ink-soft); line-height:1.65; max-width:58ch; }
  .step-tag{ display:inline-block; margin-top:12px; font-size:11.5px; font-weight:600; color:var(--ink-soft); opacity:.8; }

  .bonus-note{
    margin-top:22px; padding:24px 28px; display:flex; gap:16px; align-items:flex-start;
    font-size:14.5px; color:var(--ink-soft);
  }
  .bonus-note strong{ display:block; color:var(--ink); font-size:11.5px; letter-spacing:0.04em; text-transform:uppercase; margin-bottom:6px; }

  /* ---------- scope: editorial index list (no boxes), two columns on desktop ---------- */
  .scope-list{
    list-style:none; border-top:1px solid var(--line);
    display:grid; grid-template-columns:1fr 1fr; grid-auto-flow:column; grid-template-rows:repeat(5,auto);
    column-gap:56px;
  }
  @media(max-width:720px){ .scope-list{ grid-template-columns:1fr; grid-auto-flow:row; grid-template-rows:none; } }
  .scope-list li{
    display:flex; align-items:baseline; gap:22px;
    padding:20px 4px; border-bottom:1px solid var(--line);
    transition:padding-left .3s var(--ease), background .3s ease;
  }
  .scope-list li:hover{ padding-left:14px; background:rgba(23,26,30,.025); }
  .scope-num{ font-family:var(--display); font-weight:700; font-size:14px; color:var(--ink-soft); flex-shrink:0; width:22px; }
  .scope-list li p{ font-size:15.5px; color:var(--ink); font-weight:500; line-height:1.45; }
  @media(max-width:600px){ .scope-list li p{ font-size:15px; } }

  /* ---------- proof: two matched glass windows ---------- */
  .proof-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:44px; }
  @media(max-width:760px){ .proof-grid{ grid-template-columns:1fr; } }
  .proof-panel{
    position:relative; border-radius:var(--r-md); overflow:hidden;
    background:rgba(255,255,255,.6);
    backdrop-filter:blur(18px) saturate(160%); -webkit-backdrop-filter:blur(18px) saturate(160%);
    border:1px solid rgba(255,255,255,.6);
    box-shadow:0 1px 2px rgba(23,26,30,.04), 0 18px 40px -18px rgba(23,26,30,.16);
    display:flex; flex-direction:column; min-height:300px;
  }
  .window-chrome{
    display:flex; align-items:center; gap:7px; padding:14px 18px;
    border-bottom:1px solid var(--line-soft); position:relative; z-index:1;
  }
  .window-chrome span{ width:9px; height:9px; border-radius:50%; background:var(--ink); }
  .window-chrome span:nth-child(1){ opacity:.55; }
  .window-chrome span:nth-child(2){ opacity:.35; }
  .window-chrome span:nth-child(3){ opacity:.2; }
  .proof-panel-blob{
    position:absolute; inset:0; z-index:0; pointer-events:none;
    background:
      radial-gradient(circle at 20% 30%, rgba(23,26,30,.10), transparent 55%),
      radial-gradient(circle at 85% 75%, rgba(23,26,30,.07), transparent 50%);
    filter:blur(30px);
  }
  .proof-panel-body{ position:relative; z-index:1; padding:26px 30px 30px; flex:1; display:flex; align-items:center; }
  .proof-panel p{ font-size:15.5px; color:var(--ink-soft); line-height:1.65; }
  .proof-panel p strong{ color:var(--ink); }
  .proof-panel-image{ align-items:center; justify-content:center; }
  .proof-panel-image .proof-window{ width:62%; height:auto; margin:auto; display:block; }

  /* ---------- pricing / countdown reveal ---------- */
  .pricing-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; }
  @media(max-width:860px){ .pricing-grid{ grid-template-columns:1fr; } }
  .pricing-card{ padding:48px; }
  .price{
    font-family:var(--display); font-weight:700; font-size:56px; letter-spacing:-0.02em;
    margin-top:14px; color:var(--ink); font-variant-numeric:tabular-nums;
  }
  .price-note{ font-size:13px; color:var(--ink-soft); margin-top:8px; }
  .pricing-collab{ font-size:13.5px; color:var(--ink-soft); margin-top:10px; line-height:1.5; }
  .pricing-collab strong{ color:var(--ink); }
  .pricing-list{ margin:26px 0; border-top:1px solid var(--line); }
  .pricing-list li{ list-style:none; display:flex; justify-content:space-between; padding:14px 0; border-bottom:1px solid var(--line); font-size:14.5px; color:var(--ink-soft); }
  .pricing-list li span:first-child{ color:var(--ink); font-weight:600; }
  .pricing-card .btn-primary{ width:100%; justify-content:center; margin-top:8px; }

  /* ---------- faq ---------- */
  .faq-item{ border-top:1px solid var(--line); padding:24px 4px; }
  .faq-item:last-child{ border-bottom:1px solid var(--line); }
  .faq-q{ font-weight:700; font-size:17.5px; display:flex; justify-content:space-between; align-items:center; cursor:pointer; gap:20px; font-family:var(--display); }
  .faq-q::after{ content:"+"; color:var(--ink); font-size:22px; font-weight:700; transition:transform .3s var(--ease); flex-shrink:0; }
  .faq-item.open .faq-q::after{ transform:rotate(45deg); }
  .faq-a{ font-size:15px; color:var(--ink-soft); line-height:1.7; max-height:0; overflow:hidden; transition:max-height .35s ease, padding .35s ease; }
  .faq-item.open .faq-a{ max-height:220px; padding-top:12px; }

  /* ---------- final cta (the one dark moment) ---------- */
  .final-cta{
    text-align:center; padding:130px 0; position:relative; overflow:hidden;
    background:var(--black); border-radius:var(--r-lg);
    margin:0 32px 0; color:var(--white);
  }
  @media(max-width:600px){ .final-cta{ margin:0 16px; padding:90px 0; border-radius:20px; } }
  .final-cta .blob{ width:560px; height:560px; top:-220px; left:50%; transform:translateX(-50%); background:radial-gradient(circle, rgba(255,255,255,.10), transparent 70%); }
  .final-cta > .wrap{ position:relative; z-index:1; }
  .final-cta h2{
    font-family:var(--display); font-weight:700; letter-spacing:-0.02em; text-wrap:balance;
    font-size:clamp(30px, 5vw, 56px); max-width:16ch; margin:16px auto 20px; line-height:1.06;
  }
  .final-cta > .wrap > p{ color:var(--white-soft); max-width:46ch; margin:0 auto 34px; font-size:16px; }
  .final-cta .btn-primary{ background:var(--white); color:var(--ink); box-shadow:0 16px 34px -10px rgba(0,0,0,.4); }
  .final-cta .btn-primary:hover{ background:#E6E6E4; }

  .sec-cta{ padding-top:110px; padding-bottom:110px; }
  @media(max-width:600px){ .sec-cta{ padding-top:70px; padding-bottom:70px; } }

  /* ---------- floating whatsapp button ---------- */
  .whatsapp-fab{
    position:fixed; right:22px; bottom:22px; z-index:150;
    width:56px; height:56px; border-radius:50%;
    background:var(--ink); color:var(--white);
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 14px 30px -10px rgba(23,26,30,.5), 0 2px 8px rgba(23,26,30,.2);
    transition:transform .25s var(--ease), background .2s ease;
  }
  .whatsapp-fab:hover{ transform:translateY(-3px) scale(1.05); background:#33363C; }
  .whatsapp-fab svg{ width:26px; height:26px; }
  @media(max-width:600px){ .whatsapp-fab{ right:16px; bottom:16px; width:50px; height:50px; } .whatsapp-fab svg{ width:23px; height:23px; } }

  footer{ padding:52px 0 40px; text-align:center; font-size:12px; color:var(--ink-soft); }
  .foot-logo{ height:20px; width:auto; margin:0 auto 16px; opacity:.85; }
  footer div{ margin-top:4px; }

  .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
  .reveal.in{ opacity:1; transform:none; }
  .steps .step-row:nth-child(1){ transition-delay:0ms; }
  .steps .step-row:nth-child(2){ transition-delay:50ms; }
  .steps .step-row:nth-child(3){ transition-delay:100ms; }
  .steps .step-row:nth-child(4){ transition-delay:150ms; }
  .steps .step-row:nth-child(5){ transition-delay:200ms; }
  .steps .step-row:nth-child(6){ transition-delay:250ms; }
  .scope-list li:nth-child(1){ transition-delay:0ms; }
  .scope-list li:nth-child(2){ transition-delay:30ms; }
  .scope-list li:nth-child(3){ transition-delay:60ms; }
  .scope-list li:nth-child(4){ transition-delay:90ms; }
  .scope-list li:nth-child(5){ transition-delay:120ms; }
  .scope-list li:nth-child(6){ transition-delay:150ms; }
  .scope-list li:nth-child(7){ transition-delay:180ms; }
  .scope-list li:nth-child(8){ transition-delay:210ms; }
  .scope-list li:nth-child(9){ transition-delay:240ms; }
  .scope-list li:nth-child(10){ transition-delay:270ms; }

  @media (prefers-reduced-motion: reduce){
    .reveal{ transition:none; }
    .blob{ animation:none; }
  }

/* =====================================================
   PITZ ACADEMY — componentes específicos
   ===================================================== */

/* ---------- academy hero ---------- */
.academy-hero{ position:relative; padding:96px 0 72px; overflow:hidden; text-align:center; }
.academy-hero .eyebrow{ justify-content:center; margin-bottom:20px; }
.academy-hero h1{
  font-family:var(--display); font-weight:700; letter-spacing:-0.02em; text-wrap:balance;
  font-size:clamp(36px, 6vw, 74px); line-height:1.04;
}
.academy-hero .lead{
  font-size:17.5px; color:var(--ink-soft); line-height:1.7;
  max-width:62ch; margin:22px auto 0;
}

/* ---------- filtros de trilha ---------- */
.track-bar{
  display:flex; gap:10px; justify-content:center; flex-wrap:wrap; margin-top:34px;
}
.track-chip{
  font-size:12.5px; font-weight:600; color:var(--ink-soft);
  padding:9px 16px; border-radius:999px; cursor:pointer;
  background:rgba(255,255,255,.6); border:1px solid var(--line);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  transition:background .2s ease, color .2s ease, border-color .2s ease;
}
.track-chip:hover{ border-color:var(--ink); color:var(--ink); }
.track-chip.is-active{ background:var(--ink); color:var(--white); border-color:var(--ink); }

/* ---------- grade de cursos ---------- */
.catalog{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media(max-width:980px){ .catalog{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:640px){ .catalog{ grid-template-columns:1fr; } }

.course-card{
  display:flex; flex-direction:column; overflow:hidden;
  border-radius:var(--r-md);
}
.course-cover{
  position:relative; aspect-ratio:4/3; overflow:hidden;
  display:flex; align-items:flex-end; padding:22px;
  background:linear-gradient(150deg, #E9EAE9 0%, #F6F6F5 45%, #DCDDDB 100%);
  border-bottom:1px solid var(--line-soft);
}
.course-cover::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(circle at 78% 18%, rgba(255,255,255,.9), transparent 45%),
    radial-gradient(circle at 12% 88%, rgba(23,26,30,.08), transparent 50%);
  pointer-events:none;
}
.course-cover-word{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  font-family:var(--display); font-weight:800; font-size:clamp(48px,9vw,86px);
  letter-spacing:-0.03em; color:var(--ink); opacity:.07; filter:blur(6px);
  white-space:nowrap; pointer-events:none; user-select:none;
}
.course-badge{
  position:relative; z-index:1;
  font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  color:var(--ink); background:rgba(255,255,255,.9); padding:7px 13px; border-radius:999px;
  box-shadow:0 8px 20px -8px rgba(23,26,30,.25);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
}
.course-body{ padding:26px 26px 28px; display:flex; flex-direction:column; flex:1; }
.course-body h3{
  font-family:var(--display); font-weight:700; font-size:20px;
  letter-spacing:-0.01em; line-height:1.2; margin-bottom:10px;
}
.course-body p{ font-size:14.5px; color:var(--ink-soft); line-height:1.6; flex:1; }
.course-foot{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  margin-top:20px; padding-top:18px; border-top:1px solid var(--line);
}
.course-price{ font-family:var(--display); font-weight:700; font-size:19px; color:var(--ink); }
.course-price small{ display:block; font-family:var(--body); font-weight:500; font-size:11.5px; color:var(--ink-soft); letter-spacing:0; }
.course-link{ font-size:13px; font-weight:700; color:var(--ink); display:inline-flex; align-items:center; gap:6px; }
.course-link span{ transition:transform .25s var(--ease); display:inline-block; }
.course-card:hover .course-link span{ transform:translateX(4px); }

.course-card.is-soon{ opacity:.72; }
.course-card.is-soon .course-cover{ background:linear-gradient(150deg, #E4E5E4 0%, #EFEFEE 55%, #DCDDDB 100%); }

/* ---------- página de curso ---------- */
.course-hero{ position:relative; padding:88px 0 56px; overflow:hidden; }
.course-hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }
@media(max-width:900px){ .course-hero-grid{ grid-template-columns:1fr; gap:36px; } }
.course-hero h1{
  font-family:var(--display); font-weight:700; letter-spacing:-0.02em; text-wrap:balance;
  font-size:clamp(32px, 4.8vw, 56px); line-height:1.06; margin-top:16px;
}
.course-hero .lead{ font-size:17px; color:var(--ink-soft); line-height:1.7; margin-top:18px; max-width:52ch; }
.course-facts{ display:flex; gap:26px; flex-wrap:wrap; margin-top:26px; padding-top:22px; border-top:1px solid var(--line); }
.course-facts div{ font-size:13px; color:var(--ink-soft); }

/* ---------- player ---------- */
.video-frame{
  position:relative; border-radius:var(--r-md); overflow:hidden;
  aspect-ratio:16/9; background:var(--canvas-2);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:0 1px 2px rgba(23,26,30,.04), 0 24px 50px -20px rgba(23,26,30,.28);
}
.video-frame iframe{ width:100%; height:100%; border:0; display:block; }
.video-placeholder{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:12px; text-align:center; padding:24px;
}
.video-placeholder .play{
  width:62px; height:62px; border-radius:50%; background:var(--ink);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 14px 30px -10px rgba(23,26,30,.5);
}
.video-placeholder .play::after{
  content:""; width:0; height:0; margin-left:4px;
  border-left:16px solid var(--white); border-top:10px solid transparent; border-bottom:10px solid transparent;
}
.video-placeholder span{ font-size:12.5px; color:var(--ink-soft); letter-spacing:.02em; }

/* ---------- módulos ---------- */
.modules{ border-top:1px solid var(--line); }
.module-row{
  display:grid; grid-template-columns:110px 1fr; gap:8px 28px;
  padding:30px 0; border-bottom:1px solid var(--line);
  align-items:start; transition:padding-left .35s var(--ease);
}
.module-row:hover{ padding-left:10px; }
@media(max-width:640px){ .module-row{ grid-template-columns:52px 1fr; gap:16px; padding:24px 0; } }
.module-num{
  font-family:var(--display); font-weight:700; line-height:1;
  font-size:50px; letter-spacing:-0.02em; color:var(--ink); opacity:.13;
  transition:opacity .35s ease;
}
@media(max-width:640px){ .module-num{ font-size:28px; } }
.module-row:hover .module-num{ opacity:.32; }
.module-body h3{ font-family:var(--display); font-weight:700; font-size:19px; margin-bottom:7px; }
.module-body p{ font-size:14.5px; color:var(--ink-soft); line-height:1.65; max-width:60ch; }
.module-tag{ display:inline-block; margin-top:10px; font-size:11.5px; font-weight:600; color:var(--ink-soft); opacity:.8; }

/* ---------- caixa de compra ---------- */
.buy-box{ padding:40px; position:sticky; top:96px; }
.buy-box .price{ margin-top:10px; font-size:46px; }
.buy-box .btn-primary{ width:100%; justify-content:center; margin-top:10px; }
.buy-list{ margin:22px 0; border-top:1px solid var(--line); }
.buy-list li{
  list-style:none; display:flex; justify-content:space-between; gap:14px;
  padding:13px 0; border-bottom:1px solid var(--line); font-size:14px; color:var(--ink-soft);
}
.buy-list li span:first-child{ color:var(--ink); font-weight:600; }
@media(max-width:900px){ .buy-box{ position:static; } }

/* ---------- jornada / trilha ---------- */
.journey{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media(max-width:860px){ .journey{ grid-template-columns:1fr; } }
.journey-step{ padding:28px 26px; }
.journey-step .step-num{
  font-family:var(--display); font-weight:700; font-size:15px; color:var(--ink-soft); margin-bottom:14px;
}
.journey-step h3{ font-family:var(--display); font-weight:700; font-size:18px; margin-bottom:8px; }
.journey-step p{ font-size:14px; color:var(--ink-soft); line-height:1.6; }

/* ---------- aviso de conteúdo pendente ---------- */
/* Escondido do público em 07/09/2026: eram notas para a Adri e estavam
   aparecendo para qualquer visitante. As pendências agora ficam em
   planejamento/04-decisoes-e-pendencias.md. Para ver de novo na tela,
   basta apagar a linha do display:none abaixo. */
.todo-note{
  display:none;
  margin-top:18px; padding:16px 20px; border-radius:var(--r-sm);
  border:1px dashed rgba(23,26,30,.25); background:rgba(255,255,255,.5);
  font-size:13px; color:var(--ink-soft); line-height:1.6;
}
.todo-note strong{ color:var(--ink); }

/* capa em SVG dentro do card do catálogo */
.cover-svg{ position:absolute; inset:0; width:100%; height:100%; display:block; }
.cover-img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }
.course-cover{ background:none; }
.course-cover::before{ z-index:1; }
.course-badge{ z-index:2; }
