/* ==========================================================================
   PRÁTICO 360 — Design System
   Curso presencial imersivo de 3 dias para a prova prática do Revalida
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Playfair+Display:ital,wght@1,500;1,600;1,700&family=Inter:wght@400;500;600;700;800&display=swap');

/* ---------------------------------- Tokens ----------------------------------
   Tema único escuro (quase preto) + um acento dourado/champanhe, inspirado
   em landing pages de evento de alto impacto visual. Os nomes das variáveis
   de navy/blue/slate foram mantidos para não quebrar todos os usos no CSS,
   mas os VALORES foram invertidos para o tema escuro.
   ---------------------------------------------------------------------- */
:root{
  /* Navy scale (agora também serve de "preto" de fundo) */
  --navy-950:#030304;
  --navy-900:#ffffff; /* repurposed: cor de texto de heading (era bg escuro) */
  --navy-800:#f3f0ea; /* repurposed: texto claro secundário (era bg escuro) */
  --navy-700:#152552;
  --navy-600:#1c3268;

  /* Acento dourado/champanhe único (repurposed de blue/cyan) */
  --blue-600:#c9a15a;
  --blue-500:#d9b877;
  --blue-400:#e8cd94;
  --cyan-400:#b8935a;
  --cyan-300:#f3e3c0;

  /* Signal colors */
  --emerald-500:#10b981;
  --emerald-400:#34d399;
  --amber-400:#c9a15a;
  --amber-300:#e8cd94;
  --rose-500:#c9a15a;

  /* Chrome / silver — mantido para eventual uso pontual */
  --chrome-100:#f4f6f9;
  --chrome-200:#e2e7ee;
  --chrome-300:#c7d0dc;
  --chrome-400:#a7b2c4;
  --chrome-500:#8892a6;
  --chrome-600:#5c6478;
  --chrome-700:#3c4356;

  /* Neutrals — invertidos para tema escuro */
  --white:#ffffff;
  --slate-50:#0b0b0e;  /* era bg claro, agora superfície escura de seção */
  --slate-100:#151519; /* era bg claro alt, agora superfície escura alt */
  --slate-200:rgba(255,255,255,.12); /* era borda clara, agora borda translúcida */
  --slate-300:#aab0c0; /* texto secundário em fundo escuro / borda visível */
  --slate-500:#9aa0b3; /* texto apagado em fundo escuro */
  --slate-600:#c1c6d1; /* texto secundário mais forte em fundo escuro */
  --slate-700:#d7dae2; /* texto de corpo padrão em fundo escuro */
  --slate-900:#0e1526;

  --gradient-primary: linear-gradient(135deg,#e8cd94 0%,#c9a15a 100%);
  --gradient-navy: linear-gradient(180deg,#030304 0%,#0a0a0c 55%,#0f0f12 100%);
  --gradient-warm: linear-gradient(135deg,#e8cd94 0%,#c9a15a 100%);
  --gradient-chrome: linear-gradient(135deg,#f4f6f9 0%,#c7d0dc 22%,#8892a6 48%,#c7d0dc 74%,#f4f6f9 100%);
  --gradient-chrome-dark: linear-gradient(160deg,#3c4356 0%,#5c6478 35%,#8892a6 55%,#3c4356 100%);

  --shadow-glow: 0 0 0 1px rgba(201,161,90,.15), 0 20px 60px -20px rgba(0,0,0,.65);
  --shadow-card: 0 10px 30px -12px rgba(0,0,0,.55);
  --shadow-card-dark: 0 20px 60px -20px rgba(0,0,0,.75);
  --shadow-chrome: 0 1px 0 rgba(255,255,255,.6) inset, 0 8px 24px -8px rgba(60,67,86,.5);

  --radius-sm:10px;
  --radius-md:16px;
  --radius-lg:24px;
  --radius-xl:32px;

  --font-display:'Sora', system-ui, sans-serif;
  --font-accent:'Playfair Display', serif;
  --font-body:'Inter', system-ui, sans-serif;

  --ease-out-expo: cubic-bezier(.16,1,.3,1);
  --header-h: 84px;
}

/* ---------------------------------- Reset ---------------------------------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; scroll-padding-top:var(--header-h); }
body{
  font-family:var(--font-body);
  color:var(--slate-700);
  background:var(--slate-50);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; cursor:pointer; border:none; background:none; color:inherit; }
ul{ list-style:none; }
input,textarea,select{ font:inherit; color:inherit; }
h1,h2,h3,h4{ font-family:var(--font-display); color:var(--navy-900); line-height:1.12; letter-spacing:-.02em; }

/* Palavra/frase de destaque em itálico serifado dourado, dentro de um título */
.accent-word{
  font-family:var(--font-accent); font-style:italic; font-weight:600;
  color:var(--blue-500) !important; letter-spacing:0;
}

::selection{ background:var(--blue-500); color:#1a1410; }

/* ---------------------------------- Accessibility ---------------------------------- */
:focus-visible{
  outline:2.5px solid var(--blue-500); outline-offset:3px; border-radius:4px;
}
.on-dark :focus-visible, .bg-navy :focus-visible{ outline-color:var(--cyan-300); }
a:focus-visible, button:focus-visible{ outline-offset:4px; }

.skip-link{
  position:absolute; top:-100px; left:16px; z-index:1000;
  background:var(--navy-950); color:#fff; padding:14px 22px; border-radius:10px;
  font-family:var(--font-display); font-weight:700; font-size:14px;
  transition:top .25s var(--ease-out-expo);
}
.skip-link:focus{ top:16px; }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden;
  clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* Respect user preference: minimize motion */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration:.001ms !important; animation-iteration-count:1 !important;
    transition-duration:.001ms !important; scroll-behavior:auto !important;
  }
  .reveal, .reveal-scale{ opacity:1 !important; transform:none !important; }
  .float-el{ display:none !important; }
}

/* scrollbar */
::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:var(--slate-50); }
::-webkit-scrollbar-thumb{ background:var(--slate-300); border-radius:20px; }
::-webkit-scrollbar-thumb:hover{ background:var(--blue-400); }

/* ---------------------------------- Layout ---------------------------------- */
.container{ width:100%; max-width:1240px; margin-inline:auto; padding-inline:24px; }
.section{ padding-block:112px; position:relative; }
.section-sm{ padding-block:72px; }
@media (max-width:900px){
  .section{ padding-block:76px; }
  .section-sm{ padding-block:52px; }
}

.section-head{ max-width:680px; margin-bottom:64px; }
.section-head.center{ margin-inline:auto; text-align:center; }
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-display); font-weight:700; font-size:13px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--blue-600);
  margin-bottom:16px;
}
.eyebrow::before{ content:''; width:22px; height:2px; background:var(--gradient-primary); border-radius:2px; }
.section-head h2{ font-size:clamp(28px,4vw,44px); margin-bottom:16px; }
.section-head p{ font-size:18px; color:var(--slate-500); }
.on-dark .section-head p{ color:var(--slate-300); }
.on-dark .section-head h2{ color:#fff; }

.bg-navy{ background:var(--gradient-navy); color:var(--slate-300); }
.bg-slate{ background:var(--slate-50); color:var(--slate-300); }

/* ---------------------------------- Buttons ---------------------------------- */
.btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 30px; border-radius:100px; font-family:var(--font-display); font-weight:700; font-size:15px;
  transition:transform .35s var(--ease-out-expo), box-shadow .35s var(--ease-out-expo), background .3s;
  white-space:nowrap;
}
.btn svg{ width:18px; height:18px; flex-shrink:0; }
.btn-primary{
  background:var(--gradient-primary); color:#1a1410;
  box-shadow:0 12px 30px -8px rgba(201,161,90,.45);
}
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 18px 40px -8px rgba(201,161,90,.6); }
.btn-primary:active{ transform:translateY(-1px) scale(.97); }
.btn:active{ transform:scale(.96); }
.btn-ghost:active, .btn-outline:active{ transform:scale(.96); }
.btn-ghost{
  background:rgba(255,255,255,.06); color:#fff; border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(8px);
}
.btn-ghost:hover{ background:rgba(255,255,255,.14); transform:translateY(-3px); }
.btn-outline{
  background:transparent; color:var(--navy-900); border:1.5px solid var(--slate-300);
}
.btn-outline:hover{ border-color:var(--blue-500); color:var(--blue-600); transform:translateY(-3px); }
.btn-lg{ padding:19px 38px; font-size:16px; }
.btn-sm{ padding:12px 22px; font-size:13.5px; }
.btn-block{ width:100%; }
.btn[disabled]{ opacity:.5; pointer-events:none; }

.btn-pulse::after{
  content:''; position:absolute; inset:0; border-radius:100px;
  box-shadow:0 0 0 0 rgba(201,161,90,.5);
  animation:pulseRing 2.4s ease-out infinite;
}
@keyframes pulseRing{
  0%{ box-shadow:0 0 0 0 rgba(201,161,90,.45); }
  70%{ box-shadow:0 0 0 16px rgba(201,161,90,0); }
  100%{ box-shadow:0 0 0 0 rgba(201,161,90,0); }
}

/* ---------------------------------- Chrome / Metallic utilities ---------------------------------- */
.chrome-text{
  background:var(--gradient-chrome); background-size:200% 100%;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:chromeSheen 6s linear infinite;
}
@keyframes chromeSheen{
  0%{ background-position:0% 50%; }
  100%{ background-position:200% 50%; }
}
.chrome-badge{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  background:var(--gradient-chrome-dark); border-radius:50%;
  box-shadow:var(--shadow-chrome), 0 0 0 1px rgba(255,255,255,.08) inset;
}
.chrome-badge::after{
  content:''; position:absolute; inset:2px; border-radius:inherit;
  background:conic-gradient(from 220deg, rgba(255,255,255,.35), transparent 30%, transparent 70%, rgba(255,255,255,.25));
  mix-blend-mode:overlay; pointer-events:none;
}
.chrome-divider{
  height:2px; border-radius:2px; background:var(--gradient-chrome); background-size:200% 100%;
  animation:chromeSheen 5s linear infinite; opacity:.7;
}
.chrome-ring{
  position:relative; border-radius:inherit;
}
.chrome-ring::before{
  content:''; position:absolute; inset:0; border-radius:inherit; padding:1.5px;
  background:linear-gradient(135deg, rgba(255,255,255,.7), rgba(136,146,166,.2) 40%, rgba(255,255,255,.5) 100%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  pointer-events:none;
}

/* ---------------------------------- Badges / Pills ---------------------------------- */
.pill{
  display:inline-flex; align-items:center; gap:9px; padding:9px 18px; border-radius:100px;
  font-size:13.5px; font-weight:600; font-family:var(--font-body);
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); color:#fff;
  backdrop-filter:blur(10px);
}
.pill .dot{ width:8px; height:8px; border-radius:50%; background:var(--emerald-400); flex-shrink:0; }
.pill .dot.amber{ background:var(--amber-400); }
.pill.pill-light{ background:var(--slate-100); border-color:var(--slate-200); color:var(--navy-800); }

.tag{
  display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:100px;
  font-size:11.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
}
.tag-soon{ background:rgba(245,185,66,.15); color:#b5760a; }
.tag-open{ background:rgba(16,185,129,.14); color:#0a8a5f; }
.tag-closed{ background:rgba(107,120,153,.14); color:var(--slate-600); }
.on-dark .tag-soon{ background:rgba(245,185,66,.18); color:var(--amber-300); }
.on-dark .tag-open{ background:rgba(16,185,129,.18); color:var(--emerald-400); }
.on-dark .tag-closed{ background:rgba(255,255,255,.08); color:var(--slate-300); }

/* pulsing status dot */
.pulse-dot{ position:relative; width:8px; height:8px; border-radius:50%; background:var(--emerald-400); }
.pulse-dot::after{
  content:''; position:absolute; inset:-6px; border-radius:50%; background:var(--emerald-400); opacity:.35;
  animation:pulseDot 2s ease-out infinite;
}
@keyframes pulseDot{ 0%{ transform:scale(.6); opacity:.45; } 100%{ transform:scale(2.1); opacity:0; } }

/* Badge "Antes X · Agora Y" — o nome antigo ganha um risco, o novo entra com brilho */
.rebrand-old{
  position:relative; color:var(--slate-300); opacity:.7;
}
.rebrand-old::after{
  content:''; position:absolute; left:0; right:100%; top:52%; height:1.5px;
  background:currentColor; animation:rebrandStrike .7s ease-out .9s forwards;
}
.rebrand-new{
  display:inline-block; color:#fff; font-weight:700;
  opacity:0; transform:translateY(2px) scale(.9);
  animation:rebrandPop .5s cubic-bezier(.34,1.56,.64,1) 1.5s forwards,
            rebrandGlow 1.6s ease-out 1.5s forwards;
}
@keyframes rebrandStrike{ to{ right:0; } }
@keyframes rebrandPop{ to{ opacity:1; transform:translateY(0) scale(1); } }
@keyframes rebrandGlow{
  0%{ text-shadow:none; }
  35%{ text-shadow:0 0 14px rgba(201,161,90,.85), 0 0 26px rgba(201,161,90,.45); }
  100%{ text-shadow:none; }
}

/* ---------------------------------- Backgrounds ---------------------------------- */
.bg-scene{ position:absolute; inset:0; overflow:hidden; z-index:0; pointer-events:none; }
.dot-grid{
  position:absolute; inset:0;
  background-image: radial-gradient(rgba(255,255,255,.14) 1px, transparent 1px);
  background-size: 26px 26px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 20%, #000 40%, transparent 90%);
}
.dot-grid.on-light{
  background-image: radial-gradient(rgba(15,26,61,.12) 1px, transparent 1px);
}
.blob{
  position:absolute; border-radius:50%; filter:blur(90px); opacity:.28;
  animation:blobFloat 16s var(--ease-out-expo) infinite alternate;
}
.blob-blue{ background:radial-gradient(circle at 30% 30%, #c9a15a, transparent 70%); }
.blob-cyan{ background:radial-gradient(circle at 30% 30%, #8a6a34, transparent 70%); }
.blob-amber{ background:radial-gradient(circle at 30% 30%, #e8cd94, transparent 70%); }
.blob-rose{ background:radial-gradient(circle at 30% 30%, #c9a15a, transparent 70%); }
@keyframes blobFloat{
  0%{ transform:translate(0,0) scale(1); }
  50%{ transform:translate(30px,-40px) scale(1.12); }
  100%{ transform:translate(-25px,25px) scale(.95); }
}

.noise-overlay{
  position:absolute; inset:0; opacity:.04; mix-blend-mode:overlay; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* floating decorative glass shard */
.float-el{ position:absolute; animation:floatY 7s ease-in-out infinite; will-change:transform; }
.float-el.delay-1{ animation-delay:1.2s; }
.float-el.delay-2{ animation-delay:2.4s; }
.float-el.delay-3{ animation-delay:.6s; }
@keyframes floatY{
  0%,100%{ transform:translateY(0) rotate(var(--r,0deg)); }
  50%{ transform:translateY(-18px) rotate(var(--r,0deg)); }
}
@media (max-width:900px){
  .float-el{ display:none; }
}

/* ---------------------------------- Navbar ---------------------------------- */
.navbar{
  position:fixed; top:0; left:0; right:0; z-index:100;
  height:var(--header-h);
  display:flex; align-items:center;
  transition:background .35s var(--ease-out-expo), box-shadow .35s, height .35s, backdrop-filter .35s;
}
.navbar::before{
  content:''; position:absolute; inset:0; background:rgba(6,10,22,.55); backdrop-filter:blur(18px);
  opacity:0; transition:opacity .35s; border-bottom:1px solid rgba(255,255,255,.06);
}
.navbar.scrolled::before{ opacity:1; }
.navbar.scrolled{ height:72px; }
.navbar-inner{ position:relative; z-index:1; width:100%; display:flex; align-items:center; justify-content:space-between; }

.brand{ display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:800; font-size:21px; color:#fff; }
.brand .mark{
  width:38px; height:38px; border-radius:10px; background:var(--gradient-primary);
  display:flex; align-items:center; justify-content:center; font-size:15px; font-weight:800; color:#fff;
  box-shadow:0 6px 18px -4px rgba(201,161,90,.6);
}
.brand .accent{ background:var(--gradient-primary); -webkit-background-clip:text; background-clip:text; color:transparent; }

.nav-links{ display:flex; align-items:center; gap:22px; flex-wrap:nowrap; }
.nav-links a{
  font-size:14.5px; font-weight:600; color:rgba(255,255,255,.78); position:relative; padding-block:6px;
  transition:color .25s;
}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:2px; background:var(--gradient-primary);
  border-radius:2px; transition:width .3s var(--ease-out-expo);
}
.nav-links a:hover{ color:#fff; }
.nav-links a:hover::after{ width:100%; }

.nav-cta{ display:flex; align-items:center; gap:14px; }
.nav-burger{ display:none; width:42px; height:42px; border-radius:10px; align-items:center; justify-content:center; color:#fff; background:rgba(255,255,255,.08); }

.mobile-menu{
  position:fixed; inset:0; z-index:99; background:var(--navy-950); padding:110px 28px 40px;
  display:flex; flex-direction:column; gap:6px;
  transform:translateY(-12px); opacity:0; pointer-events:none; transition:all .35s var(--ease-out-expo);
}
.mobile-menu.open{ transform:translateY(0); opacity:1; pointer-events:auto; }
.mobile-menu a{ font-family:var(--font-display); font-size:22px; font-weight:700; color:#fff; padding:16px 4px; border-bottom:1px solid rgba(255,255,255,.08); }
.mobile-menu .btn{ margin-top:24px; }

@media (max-width:1120px){
  .nav-links{ display:none; }
  .nav-burger{ display:flex; }
  .nav-cta:has(.nav-burger) > .btn{ display:none; }
}

/* ---------------------------------- Cards ---------------------------------- */
.card{
  background:#121216; border-radius:var(--radius-lg); border:1px solid var(--slate-200);
  box-shadow:var(--shadow-card); transition:transform .4s var(--ease-out-expo), box-shadow .4s;
}
.card-tilt{ transform-style:preserve-3d; will-change:transform; }

.glass{
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(16px); border-radius:var(--radius-lg);
}

.feature-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
@media (max-width:1080px){ .feature-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .feature-grid{ grid-template-columns:1fr; } }

.feature-card{
  padding:32px 26px; border-radius:var(--radius-lg); background:#121216; border:1px solid var(--slate-200);
  box-shadow:var(--shadow-card); position:relative; overflow:hidden;
}
.feature-card:hover{ transform:translateY(-6px); box-shadow:0 24px 50px -20px rgba(15,26,61,.25); border-color:var(--blue-400); }
.feature-card .icon-wrap{
  width:52px; height:52px; border-radius:14px; display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,rgba(201,161,90,.12),rgba(232,205,148,.12)); color:var(--blue-600);
  margin-bottom:20px; transition:transform .35s var(--ease-out-expo), background .35s;
}
.feature-card:hover .icon-wrap{ transform:scale(1.1) rotate(-4deg); background:linear-gradient(135deg,rgba(201,161,90,.2),rgba(232,205,148,.2)); }
.feature-card .icon-wrap svg{ width:26px; height:26px; }
.feature-card h3{ font-size:18.5px; margin-bottom:10px; }
.feature-card p{ font-size:14.5px; color:var(--slate-500); }
.feature-card .num{
  position:absolute; top:18px; right:22px; font-family:var(--font-display); font-weight:800; font-size:13px;
  color:var(--slate-300);
}

/* ---------------------------------- City cards ---------------------------------- */
.city-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
@media (max-width:1080px){ .city-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .city-grid{ grid-template-columns:1fr; } }

.city-card{
  position:relative; border-radius:var(--radius-lg); overflow:hidden; min-height:340px;
  display:flex; flex-direction:column; justify-content:flex-end; padding:28px 24px;
  color:#fff; isolation:isolate;
}
.city-card .city-bg{
  position:absolute; inset:0; z-index:-2; background:var(--gradient-navy); overflow:hidden;
}
.city-card .city-bg svg{ position:absolute; inset:0; width:100%; height:100%; opacity:.9; }
.city-card .city-bg img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  filter:grayscale(.25) brightness(.85);
  transition:transform .6s var(--ease-out-expo), filter .6s ease;
}
.city-card:hover .city-bg img{ transform:scale(1.06); filter:grayscale(0) brightness(.9); }
.city-card::after{
  content:''; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(180deg, rgba(6,10,22,0) 0%, rgba(6,10,22,.55) 55%, rgba(6,10,22,.92) 100%);
}
.city-card:hover{ transform:translateY(-6px); }
.city-card .city-top{ position:absolute; top:20px; left:20px; right:20px; display:flex; justify-content:space-between; align-items:flex-start; }
.city-card h3{ color:#fff; font-size:24px; margin-bottom:6px; }
.city-card .neighborhood{ font-size:13.5px; color:var(--slate-300); margin-bottom:14px; display:flex; align-items:center; gap:6px; }
.city-card .access{ font-size:12.5px; color:var(--slate-300); opacity:.85; margin-bottom:18px; line-height:1.5; }
.city-card .city-cta{ display:flex; align-items:center; gap:8px; font-family:var(--font-display); font-weight:700; font-size:14px; color:#fff; }
.city-card .city-cta svg{ width:16px; height:16px; transition:transform .3s var(--ease-out-expo); }
.city-card:hover .city-cta svg{ transform:translateX(5px); }

/* ---------------------------------- Timeline (jornada) ---------------------------------- */
.timeline{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; position:relative; }
@media (max-width:860px){ .timeline{ grid-template-columns:1fr; } }
.timeline-card{
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.12); border-radius:var(--radius-lg);
  padding:32px 26px; position:relative; backdrop-filter:blur(10px);
}
.timeline-card .day-tag{
  font-family:var(--font-display); font-weight:800; font-size:13px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--cyan-300); margin-bottom:14px; display:block;
}
.timeline-card h3{ color:#fff; font-size:21px; margin-bottom:12px; }
.timeline-card ul{ display:flex; flex-direction:column; gap:10px; }
.timeline-card li{ display:flex; gap:10px; font-size:14.5px; color:var(--slate-300); align-items:flex-start; }
.timeline-card li svg{ width:17px; height:17px; color:var(--emerald-400); flex-shrink:0; margin-top:2px; }

/* ---------------------------------- Team / avatars ---------------------------------- */
.team-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
@media (max-width:900px){ .team-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .team-grid{ grid-template-columns:1fr; } }
.team-card{ text-align:center; padding:30px 20px; border-radius:var(--radius-lg); background:#121216; border:1px solid var(--slate-200); box-shadow:var(--shadow-card); }
.avatar{
  width:84px; height:84px; border-radius:50%; margin:0 auto 18px; display:flex; align-items:center; justify-content:center;
  font-family:var(--font-display); font-weight:800; font-size:24px; color:#fff; position:relative;
}
.avatar::after{ content:''; position:absolute; inset:-4px; border-radius:50%; border:2px dashed rgba(201,161,90,.35); animation:spin 22s linear infinite; }
@keyframes spin{ to{ transform:rotate(360deg); } }
.team-card h4{ font-family:var(--font-display); font-size:16.5px; color:var(--navy-900); margin-bottom:4px; }
.team-card span{ font-size:13px; color:var(--slate-500); }

/* ---------------------------------- Testimonials ---------------------------------- */
.testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
@media (max-width:920px){ .testi-grid{ grid-template-columns:1fr; } }
.testi-card{
  background:#121216; border:1px solid var(--slate-200); border-radius:var(--radius-lg); padding:30px 26px;
  box-shadow:var(--shadow-card); display:flex; flex-direction:column; gap:18px;
}
.testi-card .stars{ display:flex; gap:3px; color:var(--amber-400); }
.testi-card .stars svg{ width:16px; height:16px; }
.testi-card p{ font-size:15px; color:var(--slate-600); flex:1; }
.testi-foot{ display:flex; align-items:center; gap:12px; }
.testi-foot .avatar{ width:44px; height:44px; font-size:14px; margin:0; }
.testi-foot .avatar::after{ display:none; }
.testi-foot strong{ display:block; font-size:14px; color:var(--navy-900); }
.testi-foot span{ font-size:12.5px; color:var(--slate-500); }

/* ---------------------------------- Stats ---------------------------------- */
.stats-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
@media (max-width:760px){ .stats-row{ grid-template-columns:repeat(2,1fr); } }
.stat-item{ text-align:center; }
.stat-item .num{
  font-family:var(--font-display); font-weight:800; font-size:clamp(32px,5vw,52px);
  background:var(--gradient-primary); -webkit-background-clip:text; background-clip:text; color:transparent;
  line-height:1;
}
.stat-item .label{ margin-top:10px; font-size:14px; color:var(--slate-300); font-weight:500; }

/* ---------------------------------- Pricing ---------------------------------- */
.pricing-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; align-items:stretch; }
@media (max-width:960px){ .pricing-grid{ grid-template-columns:1fr; max-width:440px; margin-inline:auto; } }
.price-card{
  background:#121216; border:1px solid var(--slate-200); border-radius:var(--radius-lg); padding:34px 28px;
  display:flex; flex-direction:column; box-shadow:var(--shadow-card); position:relative;
}
.price-card.featured{
  border:1.5px solid transparent; background:linear-gradient(#fff,#fff) padding-box, var(--gradient-primary) border-box;
  transform:scale(1.035); box-shadow:0 30px 60px -20px rgba(201,161,90,.35);
}
.price-card .ribbon{
  position:absolute; top:-14px; left:50%; transform:translateX(-50%); padding:7px 18px; border-radius:100px;
  background:var(--gradient-primary); color:#fff; font-size:12px; font-weight:700; font-family:var(--font-display);
  white-space:nowrap; box-shadow:0 8px 20px -6px rgba(201,161,90,.6);
}
.price-card .plan-name{ font-family:var(--font-display); font-weight:800; font-size:20px; color:var(--navy-900); }
.price-card .plan-desc{ font-size:13.5px; color:var(--slate-500); margin-top:6px; margin-bottom:22px; }
.price-card .price-line{ display:flex; align-items:baseline; gap:8px; margin-bottom:4px; }
.price-card .price-line .amount{ font-family:var(--font-display); font-weight:800; font-size:34px; color:var(--navy-900); }
.price-card .price-line .period{ font-size:13px; color:var(--slate-500); }
.price-card .price-old{ font-size:13.5px; color:var(--slate-500); text-decoration:line-through; margin-bottom:18px; }
.price-card .divider{ height:1px; background:var(--slate-200); margin:22px 0; }
.price-card ul{ display:flex; flex-direction:column; gap:13px; margin-bottom:26px; flex:1; }
.price-card li{ display:flex; gap:10px; font-size:14px; color:var(--slate-600); }
.price-card li svg{ width:18px; height:18px; color:var(--emerald-500); flex-shrink:0; margin-top:1px; }

/* ---------------------------------- FAQ (linhas minimalistas, sem cards) ---------------------------------- */
.faq-list{ display:flex; flex-direction:column; max-width:760px; margin-inline:auto; }
.faq-item{ border-bottom:1px solid var(--slate-200); }
.faq-item:first-child{ border-top:1px solid var(--slate-200); }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:24px 4px;
  text-align:left; font-family:var(--font-display); font-weight:600; font-size:16px; color:var(--navy-900);
}
.faq-q .chevron{
  flex-shrink:0; width:22px; height:22px; color:var(--blue-500); transition:transform .3s var(--ease-out-expo);
  position:relative;
}
.faq-q .chevron::before, .faq-q .chevron::after{
  content:''; position:absolute; top:50%; left:50%; background:currentColor; border-radius:2px;
  transform:translate(-50%,-50%);
}
.faq-q .chevron::before{ width:14px; height:1.6px; }
.faq-q .chevron::after{ width:1.6px; height:14px; transition:transform .3s var(--ease-out-expo); }
.faq-item.open .chevron::after{ transform:translate(-50%,-50%) rotate(90deg) scale(0); }
.faq-item.open .chevron{ transform:rotate(180deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease-out-expo); }
.faq-a-inner{ padding:0 4px 24px; font-size:14.5px; color:var(--slate-500); }

/* ---------------------------------- Waitlist form ---------------------------------- */
.waitlist-form{ display:flex; flex-direction:column; gap:14px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:520px){ .form-row{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:7px; }
.field label{ font-size:12.5px; font-weight:600; color:var(--slate-300); }
.on-light .field label{ color:var(--slate-600); }
.field input, .field select{
  padding:14px 16px; border-radius:12px; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.06);
  color:#fff; font-size:14.5px; transition:border-color .25s, background .25s;
}
.field input::placeholder{ color:rgba(255,255,255,.4); }
.field input:focus, .field select:focus{ border-color:var(--blue-400); background:rgba(255,255,255,.1); }
.field input:focus-visible, .field select:focus-visible{ outline:2.5px solid var(--cyan-300); outline-offset:2px; }
.on-light .field input, .on-light .field select{
  background:var(--slate-50); border-color:var(--slate-200); color:var(--navy-900);
}
.on-light .field input::placeholder{ color:var(--slate-500); }
.field select option{ color:#111; }
.form-note{ font-size:12px; color:var(--slate-500); display:flex; gap:6px; align-items:flex-start; }
.form-note svg{ width:14px; height:14px; flex-shrink:0; margin-top:1px; }

.form-success{
  display:none; align-items:center; gap:14px; padding:20px 22px; border-radius:16px;
  background:rgba(16,185,129,.12); border:1px solid rgba(16,185,129,.35); color:#0a8a5f;
}
.on-dark .form-success{ color:var(--emerald-400); }
.form-success.show{ display:flex; }
.form-success svg{ width:26px; height:26px; flex-shrink:0; }

/* ---------------------------------- Footer (minimalista) ---------------------------------- */
.footer{ background:#000; color:var(--slate-300); padding-block:56px 28px; border-top:1px solid rgba(201,161,90,.15); }
.footer-top{ display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:36px; flex-wrap:wrap; }
.footer-links{ display:flex; flex-wrap:wrap; gap:10px 28px; padding-block:24px; border-top:1px solid rgba(255,255,255,.08); border-bottom:1px solid rgba(255,255,255,.08); }
.footer-links a{ font-size:14px; color:var(--slate-300); transition:color .25s; }
.footer-links a:hover{ color:var(--blue-500); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding-top:24px; font-size:13px; color:var(--slate-500); flex-wrap:wrap; gap:12px; }
.social-row{ display:flex; gap:10px; margin-top:24px; }
.social-row a{ width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; }
.social-row a:hover{ background:rgba(201,161,90,.18); color:var(--blue-500); }
.social-row svg{ width:17px; height:17px; }

/* ---------------------------------- Marquee ---------------------------------- */
.marquee-wrap{ overflow:hidden; position:relative; -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.marquee-track{ display:flex; gap:52px; width:max-content; animation:marquee 32s linear infinite; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
.marquee-item{ display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--slate-500); white-space:nowrap; }
.marquee-item svg{ width:18px; height:18px; color:var(--blue-500); }

/* ---------------------------------- Scroll reveal ---------------------------------- */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease-out-expo), transform .8s var(--ease-out-expo); }
.reveal.in{ opacity:1; transform:translateY(0); }
.reveal-scale{ opacity:0; transform:scale(.92); transition:opacity .7s var(--ease-out-expo), transform .7s var(--ease-out-expo); }
.reveal-scale.in{ opacity:1; transform:scale(1); }
.stagger > *{ transition-delay:calc(var(--i,0) * 90ms); }

/* ---------------------------------- Scroll progress ---------------------------------- */
.scroll-progress{ position:fixed; top:0; left:0; height:3px; background:var(--gradient-primary); z-index:200; width:0%; transition:width .1s linear; }

/* ---------------------------------- Misc utils ---------------------------------- */
.text-center{ text-align:center; }
.mx-auto{ margin-inline:auto; }
.flex{ display:flex; }
.items-center{ align-items:center; }
.justify-center{ justify-content:center; }
.gap-12{ gap:12px; }
.gap-16{ gap:16px; }
.mt-24{ margin-top:24px; }
.mt-40{ margin-top:40px; }
.hero-actions{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.checklist-inline{ display:flex; flex-wrap:wrap; gap:22px; margin-top:36px; }
.checklist-inline li{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--slate-300); font-weight:500; }
.checklist-inline svg{ width:17px; height:17px; color:var(--emerald-400); }

.divider-fade{ height:1px; background:linear-gradient(90deg,transparent,var(--slate-200),transparent); }

.badge-corner{
  position:absolute; top:0; right:24px; padding:8px 16px; border-radius:0 0 12px 12px;
  font-family:var(--font-display); font-weight:700; font-size:12px; color:#fff; background:var(--gradient-warm);
}

/* Sticky mobile CTA bar (sales LP) */
.sticky-cta{
  position:fixed; bottom:0; left:0; right:0; z-index:150; background:rgba(6,10,22,.92); backdrop-filter:blur(14px);
  border-top:1px solid rgba(255,255,255,.1); padding:14px 20px; display:none; align-items:center; justify-content:space-between; gap:16px;
  transform:translateY(100%); transition:transform .4s var(--ease-out-expo);
}
.sticky-cta.show{ transform:translateY(0); }
.sticky-cta .info{ display:flex; flex-direction:column; }
.sticky-cta .info strong{ color:#fff; font-family:var(--font-display); font-size:14px; }
.sticky-cta .info span{ font-size:12px; color:var(--slate-400); }
@media (max-width:760px){ .sticky-cta{ display:flex; } }

/* Guarantee band */
.guarantee-band{
  display:flex; align-items:center; gap:28px; padding:36px 40px; border-radius:var(--radius-lg);
  background:linear-gradient(135deg,rgba(16,185,129,.08),rgba(232,205,148,.08)); border:1px solid rgba(16,185,129,.25);
}
@media (max-width:700px){ .guarantee-band{ flex-direction:column; text-align:center; padding:32px 24px; } }
.guarantee-band .seal{
  width:92px; height:92px; border-radius:50%; flex-shrink:0; background:var(--gradient-primary);
  display:flex; align-items:center; justify-content:center; box-shadow:0 12px 30px -8px rgba(201,161,90,.5);
}
.guarantee-band .seal svg{ width:44px; height:44px; color:#fff; }
.guarantee-band h3{ font-size:20px; margin-bottom:8px; }
.guarantee-band p{ font-size:14.5px; color:var(--slate-500); }

/* Page hero generic (city pages / LP) */
.page-hero{ padding-top:calc(var(--header-h) + 56px); padding-bottom:80px; position:relative; overflow:hidden; }
.page-hero-photo{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:.32; filter:grayscale(.3);
}
.page-hero .bg-scene::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(6,6,8,.96) 0%, rgba(6,6,8,.75) 42%, rgba(6,6,8,.4) 100%);
}
.breadcrumb{ display:flex; align-items:center; gap:8px; font-size:13.5px; color:var(--slate-300); margin-bottom:22px; }
.breadcrumb svg{ width:14px; height:14px; }

/* Urgency banner (top of sales LP) */
.urgency-bar{
  background:#000; color:var(--blue-500); text-align:center; padding:10px 16px;
  font-size:13.5px; font-weight:700; position:relative; z-index:101;
  border-bottom:1px solid rgba(201,161,90,.3);
}

/* City info list */
.info-list{ display:flex; flex-direction:column; gap:18px; }
.info-list .row{ display:flex; gap:14px; align-items:flex-start; }
.info-list .ic{ width:42px; height:42px; border-radius:12px; background:rgba(201,161,90,.1); color:var(--blue-600); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.info-list .ic svg{ width:20px; height:20px; }
.info-list strong{ display:block; font-size:14.5px; color:var(--navy-900); margin-bottom:2px; }
.info-list span{ font-size:13.5px; color:var(--slate-500); }
.on-dark .info-list strong{ color:#fff; }
.on-dark .info-list span{ color:var(--slate-300); }
.on-dark .info-list .ic{ background:rgba(255,255,255,.08); color:var(--cyan-300); }

@media (max-width:600px){
  .footer-bottom{ flex-direction:column; align-items:flex-start; }
}

/* ---------------------------------- Logo image (brand) ---------------------------------- */
.brand .logo-img{
  height:58px; width:auto; display:block;
  filter:drop-shadow(0 2px 10px rgba(201,161,90,.35));
  transition:height .35s var(--ease-out-expo), filter .3s;
}
.navbar.scrolled .brand .logo-img{ height:48px; }
.footer .brand .logo-img{ height:52px; }
.brand .logo-fallback{ display:none; align-items:center; gap:10px; }
.brand .logo-img.broken{ display:none; }
.brand .logo-img.broken + .logo-fallback{ display:flex; }

/* ---------------------------------- Hero poster (foto vívida em destaque, estilo referência) ---------------------------------- */
.hero-poster{
  position:relative; width:100%; aspect-ratio:16/11; overflow:hidden;
  border-radius:var(--radius-xl); border:1px solid rgba(201,161,90,.3);
  box-shadow:0 40px 90px -24px rgba(0,0,0,.75), 0 0 0 1px rgba(255,255,255,.04) inset;
}
@media (max-width:640px){ .hero-poster{ aspect-ratio:4/5; } }
.hero-poster img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 12%;
  display:block;
}
.hero-poster::after{
  /* leve vinheta só para ancorar as bordas — a foto continua vívida */
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(3,3,4,0) 72%, rgba(3,3,4,.55) 100%),
             radial-gradient(120% 90% at 50% 0%, rgba(3,3,4,0) 60%, rgba(3,3,4,.35) 100%);
}

/* ---------------------------------- Video de vendas (placeholder) ---------------------------------- */
.video-frame{
  position:relative; width:100%; aspect-ratio:16/9; border-radius:var(--radius-xl); overflow:hidden;
  background:#0d0d10; border:1px solid rgba(201,161,90,.25); box-shadow:var(--shadow-card-dark);
}
.video-frame-bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 20%; filter:blur(2px) brightness(.6); transform:scale(1.05); }
.video-frame-overlay{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(3,3,4,.35) 0%, rgba(3,3,4,.65) 100%); }
.video-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:2;
  width:84px; height:84px; border-radius:50%; background:var(--gradient-primary); color:#1a1410;
  display:flex; align-items:center; justify-content:center; box-shadow:0 14px 40px -10px rgba(201,161,90,.6);
  transition:transform .3s var(--ease-out-expo);
}
.video-play:hover{ transform:translate(-50%,-50%) scale(1.08); }
.video-play svg{ width:30px; height:30px; margin-left:4px; }
.video-frame-tag{ position:absolute; top:20px; left:20px; z-index:2; }
.video-frame-bar{
  position:absolute; left:20px; right:20px; bottom:18px; z-index:2;
  display:flex; align-items:center; gap:12px;
}
.video-frame-progress{ flex:1; height:4px; border-radius:4px; background:rgba(255,255,255,.25); position:relative; overflow:hidden; }
.video-frame-progress::after{ content:''; position:absolute; left:0; top:0; bottom:0; width:0%; background:var(--gradient-primary); }
.video-frame-time{ font-size:12px; color:var(--slate-300); font-family:var(--font-display); white-space:nowrap; }

/* ---------------------------------- Moment photo (foto ampla, estilo referência) ---------------------------------- */
.moment-photo{ position:relative; height:clamp(320px,42vw,460px); overflow:hidden; }
.moment-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 10%; }
.moment-overlay{
  position:absolute; inset:0; display:flex; align-items:flex-end; padding-bottom:44px;
  background:linear-gradient(180deg, rgba(3,3,4,.1) 0%, rgba(3,3,4,.35) 55%, rgba(3,3,4,.92) 100%);
}
.moment-overlay h3{ color:#fff; font-size:clamp(24px,3.4vw,38px); margin-top:14px; max-width:640px; }

/* ---------------------------------- Founders strip (texto, home) ---------------------------------- */
.founders-strip{
  display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;
  padding:28px 0;
}
.founders-strip h3{ font-size:clamp(19px,2.2vw,24px); margin-top:6px; }
.founders-names{ display:flex; gap:24px; flex-wrap:wrap; }
.founders-names .fn{ display:flex; align-items:center; gap:10px; }
.founders-names .fn img{
  width:40px; height:40px; border-radius:50%; object-fit:cover; flex-shrink:0;
  border:2px solid rgba(201,161,90,.4);
}
.founders-names strong{ color:var(--navy-900); font-family:var(--font-display); font-size:14px; }
.founders-names span{ color:var(--slate-500); font-size:12px; display:block; }

/* ---------------------------------- Founder cards (Quem Somos) ---------------------------------- */
.founder-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
@media (max-width:920px){ .founder-grid{ grid-template-columns:1fr; max-width:440px; margin-inline:auto; } }
.founder-card{
  background:#121216; border:1px solid var(--slate-200); border-radius:var(--radius-xl); overflow:hidden;
  box-shadow:var(--shadow-card); transition:transform .4s var(--ease-out-expo), box-shadow .4s;
}
.founder-card:hover{ transform:translateY(-6px); box-shadow:0 24px 50px -20px rgba(15,26,61,.25); }
.founder-card .photo{
  position:relative; aspect-ratio:4/4.2; background:var(--gradient-navy); display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.founder-card .photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 15%; }
.founder-card .photo .initials{
  font-family:var(--font-display); font-weight:800; font-size:54px; color:rgba(255,255,255,.92);
  background:var(--gradient-chrome-dark); -webkit-background-clip:text; background-clip:text; color:transparent;
}
.founder-card .body{ padding:26px 24px; }
.founder-card h3{ font-size:19px; margin-bottom:4px; }
.founder-card .role{ font-size:13px; font-weight:700; color:var(--blue-600); text-transform:uppercase; letter-spacing:.05em; margin-bottom:14px; display:block; }
.founder-card p{ font-size:14px; color:var(--slate-500); }

/* ---------------------------------- Mosaic (Aprovados) ---------------------------------- */
.mosaic-grid{ display:grid; grid-template-columns:repeat(8,1fr); gap:10px; }
@media (max-width:960px){ .mosaic-grid{ grid-template-columns:repeat(6,1fr); } }
@media (max-width:640px){ .mosaic-grid{ grid-template-columns:repeat(4,1fr); } }
.mosaic-tile{
  position:relative; aspect-ratio:1/1; border-radius:14px; overflow:hidden; cursor:default;
  display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:800;
  color:rgba(255,255,255,.85); font-size:15px; transition:transform .3s var(--ease-out-expo);
}
.mosaic-tile:hover{ transform:scale(1.08); z-index:2; }
.mosaic-tile .tag{
  position:absolute; bottom:-100%; left:0; right:0; padding:5px 4px; text-align:center; font-size:9px;
  font-weight:700; letter-spacing:0; text-transform:none; background:rgba(6,10,22,.75); color:#fff;
  transition:bottom .25s var(--ease-out-expo);
}
.mosaic-tile:hover .tag{ bottom:0; }
.mosaic-tile.named{ font-size:13px; }

.trophy-shelf{
  display:flex; align-items:center; justify-content:center; gap:14px; padding:20px; border-radius:var(--radius-lg);
  background:var(--gradient-chrome-dark); box-shadow:var(--shadow-chrome);
}
.trophy-shelf svg{ width:28px; height:28px; color:var(--chrome-200); }

/* ---------------------------------- Subject / Professor cards ---------------------------------- */
.subject-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
@media (max-width:920px){ .subject-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .subject-grid{ grid-template-columns:1fr; } }
.subject-card{
  background:#121216; border:1px solid var(--slate-200); border-radius:var(--radius-lg); padding:0; overflow:hidden;
  box-shadow:var(--shadow-card); transition:transform .35s var(--ease-out-expo), box-shadow .35s;
}
.subject-card:hover{ transform:translateY(-5px); box-shadow:0 20px 44px -18px rgba(15,26,61,.25); }
.subject-card .top{
  padding:26px 22px 20px; display:flex; align-items:center; gap:14px; background:linear-gradient(135deg,rgba(201,161,90,.06),rgba(232,205,148,.06));
}
.subject-card .avatar{ width:52px; height:52px; margin:0; font-size:16px; flex-shrink:0; }
.subject-card .avatar::after{ display:none; }
.subject-card h4{ font-family:var(--font-display); font-size:15.5px; color:var(--navy-900); }
.subject-card .subject{ font-size:12px; color:var(--blue-600); font-weight:700; }
.subject-card .bottom{ padding:18px 22px 24px; font-size:13.5px; color:var(--slate-500); }

/* ---------------------------------- Metric strip (Jornada / Aprovados) ---------------------------------- */
.metric-strip{ display:flex; justify-content:center; gap:0; border:1px solid var(--slate-200); border-radius:var(--radius-lg); overflow:hidden; background:#121216; }
.metric-strip .m{ flex:1; text-align:center; padding:26px 16px; border-right:1px solid var(--slate-200); }
.metric-strip .m:last-child{ border-right:none; }
.metric-strip .m .n{ font-family:var(--font-display); font-weight:800; font-size:26px; color:var(--navy-900); }
.metric-strip .m .l{ font-size:12.5px; color:var(--slate-500); margin-top:4px; }
@media (max-width:700px){ .metric-strip{ flex-wrap:wrap; } .metric-strip .m{ flex:1 1 50%; border-bottom:1px solid var(--slate-200); } }

/* ---------------------------------- Big stat callout (impacto visual) ---------------------------------- */
.big-stat-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
@media (max-width:820px){ .big-stat-grid{ grid-template-columns:1fr; } }
.big-stat{
  padding:40px 32px; border-radius:var(--radius-xl); background:#0d0d10;
  border:1px solid rgba(201,161,90,.25); text-align:center;
}
.big-stat .n{
  font-family:var(--font-display); font-weight:800; font-size:clamp(48px,6vw,72px); line-height:1;
  color:var(--blue-500);
}
.big-stat .l{ margin-top:14px; font-size:15px; color:var(--slate-300); }

/* ---------------------------------- Detailed schedule (Jornada) ---------------------------------- */
.schedule-day{
  display:grid; grid-template-columns:220px 1fr; gap:32px; padding-block:44px;
  border-bottom:1px solid var(--slate-200);
}
.schedule-day:last-child{ border-bottom:none; }
@media (max-width:760px){ .schedule-day{ grid-template-columns:1fr; gap:18px; } }
.schedule-day .label{ position:sticky; top:calc(var(--header-h) + 24px); align-self:start; }
.schedule-day .label .num{
  font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--blue-600);
  text-transform:uppercase; letter-spacing:.06em; margin-bottom:8px; display:block;
}
.schedule-day .label h3{ font-size:24px; }
.schedule-periods{ display:flex; flex-direction:column; gap:20px; }
.schedule-period{
  display:flex; gap:18px; padding:22px 24px; border-radius:var(--radius-lg); background:var(--slate-50);
  border:1px solid var(--slate-200);
}
.schedule-period .time{
  flex-shrink:0; width:76px; font-family:var(--font-display); font-weight:800; font-size:13px; color:var(--slate-500);
  text-transform:uppercase; letter-spacing:.04em; padding-top:2px;
}
.schedule-period .txt h4{ font-family:var(--font-display); font-size:15.5px; color:var(--navy-900); margin-bottom:6px; }
.schedule-period .txt p{ font-size:13.5px; color:var(--slate-500); }

/* ---------------------------------- Trust badges (near CTAs) ---------------------------------- */
.trust-row{ display:flex; flex-wrap:wrap; align-items:center; gap:18px; }
.trust-row .item{
  display:flex; align-items:center; gap:7px; font-size:12.5px; font-weight:600; color:var(--slate-500);
}
.trust-row .item svg{ width:16px; height:16px; color:var(--emerald-500); flex-shrink:0; }
.on-dark .trust-row .item, .bg-navy .trust-row .item{ color:var(--slate-300); }
.on-dark .trust-row .item svg, .bg-navy .trust-row .item svg{ color:var(--emerald-400); }
.trust-row.compact{ gap:14px; }
.trust-row.compact .item{ font-size:11.5px; }

/* ---------------------------------- Personalization banner ---------------------------------- */
.personal-banner{
  display:none; align-items:center; gap:14px; padding:16px 22px; border-radius:16px;
  background:linear-gradient(135deg,rgba(201,161,90,.08),rgba(232,205,148,.08)); border:1px solid rgba(201,161,90,.22);
  margin-bottom:28px;
}
.personal-banner.show{ display:flex; }
.personal-banner .ic{
  width:38px; height:38px; border-radius:10px; background:var(--gradient-primary); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.personal-banner .ic svg{ width:19px; height:19px; }
.personal-banner p{ font-size:13.5px; color:var(--navy-800); flex:1; }
.personal-banner p strong{ color:var(--blue-600); }
.personal-banner a{ font-size:13px; font-weight:700; color:var(--blue-600); white-space:nowrap; }
.on-dark .personal-banner p{ color:var(--slate-200); }

/* ---------------------------------- Image CLS guard ---------------------------------- */
.founders-banner img, .founder-card .photo img{ background:#0d0d10; }

/* ---------------------------------- Sub-nav pill (secondary pages) ---------------------------------- */
.subnav{ display:flex; gap:10px; flex-wrap:wrap; }
.subnav a{
  padding:9px 18px; border-radius:100px; font-size:13.5px; font-weight:600; border:1px solid var(--slate-200);
  color:var(--slate-600); transition:all .25s;
}
.subnav a:hover, .subnav a.active{ background:var(--blue-600); border-color:var(--blue-600); color:#1a1410; }
