
/* CSS da LP do Curso dos Sonhos extraído do <style> */

:root{
  --bg-deg-1:#1a1f3b;
  --bg-deg-2:#3a2e6b;
  --bg-deg-3:#6a56b3;
  --txt:#e9ecf5;
  --txt-muted:#cbd2e6;
  --heading:#ffffff;
  --cta:#2fd27d;
  --cta-hover:#26b66c;
  --card:#23294a;
  --card-soft:#1f2444;
  --stroke:rgba(255,255,255,.08);

  --container:1120px;
  --radius:18px;
  --shadow:0 10px 30px rgba(8,12,30,.35);
  --z-float:2;

  --float-lg:520px;
  --float-md:360px;
  --float-sm:220px;
}

*{ box-sizing:border-box }
html,body{ margin:0; padding:0; background: linear-gradient(160deg,var(--bg-deg-1),var(--bg-deg-2) 40%, var(--bg-deg-3)); color:var(--txt); font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif; }
img{ max-width:100%; display:block }
a{ color:inherit; text-decoration:none }
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding:0 20px }
.section{ padding:72px 0 }
h1,h2,h3{ font-family:"League Spartan", Inter, system-ui, sans-serif; color:var(--heading); margin:0 0 12px }
h1{ font-size:clamp(32px,4.2vw,56px); line-height:1.05 }
h2{ font-size:clamp(28px,3vw,40px) }
h3{ font-size:clamp(20px,2.2vw,24px) }
p{ margin:0 0 14px; color:var(--txt-muted) }

.site-header{ position:sticky; top:0; z-index:10; backdrop-filter: blur(6px); background:rgba(10,12,26,.45); border-bottom:1px solid var(--stroke) }
.header-inner{ display:flex; align-items:center; justify-content:space-between; padding:14px 0 }
.brand{ display:flex; align-items:center; gap:12px }
.brand img{ height:40px; width:auto }
.brand span{ font-family:"League Spartan"; font-weight:700; letter-spacing:.3px }

.cta{ display:inline-flex; align-items:center; justify-content:center; padding:14px 20px; border-radius:999px; background:var(--cta); color:#0a0f1e; font-weight:700; transition:.2s ease; box-shadow:0 6px 16px rgba(47,210,125,.35) }
.cta:hover{ background:var(--cta-hover); transform: translateY(-1px) }

.hero{ position:relative; overflow:hidden; padding:88px 0 110px; }
.hero-grid{ display:grid; grid-template-columns: 1.2fr .8fr; gap:32px; align-items:center }
.hero .kicker{ text-transform:uppercase; letter-spacing:.16em; font-size:12px; color:#bcd4ff; margin-bottom:10px }
.hero p.lead{ font-size:clamp(16px,1.8vw,18px); color:var(--txt-muted); max-width:66ch }
.hero .actions{ display:flex; gap:12px; flex-wrap:wrap; margin-top:18px }

.card{ background:linear-gradient(180deg, var(--card), var(--card-soft)); border:1px solid var(--stroke); border-radius:var(--radius); box-shadow:var(--shadow); padding:26px }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px }
.grid-2{ display:grid; grid-template-columns:repeat(2,1fr); gap:18px }
.list-check{ list-style:none; padding:0; margin:0; display:grid; gap:10px }
.list-check li{ position:relative; padding-left:28px }
.list-check li::before{ content:"✔"; position:absolute; left:0; top:0; color:#8af1bf }

.bullets{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px }
.bullet{ display:flex; gap:12px; padding:14px; border:1px dashed var(--stroke); border-radius:14px; background:rgba(255,255,255,.03) }
.bullet .ico{ width:28px; height:28px; border-radius:8px; display:grid; place-items:center; background:rgba(138,241,191,.12) }

details{ background:rgba(255,255,255,.03); border:1px solid var(--stroke); border-radius:14px; padding:16px 18px }
details+details{ margin-top:10px }
summary{ cursor:pointer; font-weight:600; list-style:none }
summary::-webkit-details-marker{ display:none }

footer{ border-top:1px solid var(--stroke); background:rgba(10,12,26,.55); padding:28px 0 48px; margin-top:40px }

.hero-wrap{ position: relative; overflow: hidden; }
.float-wrap{ position:absolute; inset:0; pointer-events:none; isolation:isolate; z-index:var(--z-float); }
.float-item{ position:absolute; will-change:transform; filter: drop-shadow(0 12px 18px rgba(0,0,0,.22)); opacity:.95 }

.float-moon{ width:var(--float-lg); right:-4%; top:-60px; animation: moonFloat 11s ease-in-out infinite }
.float-cloud-1{ width:var(--float-md); left:-6%; top:80px; animation: cloudFloat1 13s ease-in-out infinite }
.float-cloud-2{ width:var(--float-sm); left:14%; bottom:-40px; animation: cloudFloat2 15s ease-in-out infinite }

.stars{ position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(circle at 8% 22%, rgba(255,255,255,.9) 0 1px, transparent 2px) 0 0/160px 160px,
    radial-gradient(circle at 62% 14%, rgba(255,255,255,.85) 0 1px, transparent 2px) 0 0/180px 180px,
    radial-gradient(circle at 28% 76%, rgba(255,255,255,.85) 0 1px, transparent 2px) 0 0/150px 150px,
    radial-gradient(circle at 86% 62%, rgba(255,255,255,.9) 0 1px, transparent 2px) 0 0/170px 170px;
  animation: twinkle 4.6s ease-in-out infinite; opacity:.7;
}

@keyframes moonFloat{ 0%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-14px) rotate(2deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes cloudFloat1{ 0%{transform:translateY(0) translateX(0)} 50%{transform:translateY(-10px) translateX(6px)} 100%{transform:translateY(0) translateX(0)} }
@keyframes cloudFloat2{ 0%{transform:translateY(0) translateX(0)} 50%{transform:translateY(-8px) translateX(-6px)} 100%{transform:translateY(0) translateX(0)} }
@keyframes twinkle{ 0%,100%{opacity:.55; filter:blur(0)} 50%{opacity:.95; filter:blur(.2px)} }

@media (max-width: 1024px){
  .hero-grid{ grid-template-columns: 1fr }
  .float-moon{ width:var(--float-md); right:-10%; top:-20px }
  .float-cloud-1{ width:var(--float-sm); left:-10%; top:20px }
  .float-cloud-2{ display:none }
}
@media (max-width: 640px){
  .float-moon{ width:180px; right:-18%; top:-8px }
  .float-cloud-1{ width:140px; left:-18%; top:30px; opacity:.78 }
}
@media (prefers-reduced-motion: reduce){
  .float-item{ animation:none !important; transform:none !important }
  .stars{ animation:none !important }
}

.muted{ color:var(--txt-muted) }
.center{ text-align:center }
.spaced{ margin-top:22px }
.divider{ height:1px; background:var(--stroke); margin:26px 0 }


/* ===== Footer minimal centrado ===== */
.site-footer.minimal{
  background: rgba(10,12,26,.55);
  border-top: 1px solid var(--stroke);
  padding: 36px 0 42px;
}

.footer-stack{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}

.footer-logo{
  height: 100px; /* ajusta se precisares */
  width: auto;
  opacity: .95;
  filter: drop-shadow(0 3px 10px rgba(0,0,0,.25));
}

.footer-tagline{
  margin: 4px 0 6px;
  font-family: "League Spartan", Inter, system-ui, sans-serif;
  font-weight: 200;
  color: var(--heading);
  letter-spacing: .2px;
}

.footer-sep{
  width: 100%;
  max-width: 820px;
  height: 1px;
  border: 0;
  background: linear-gradient(90deg, transparent, var(--stroke), transparent);
  margin: 6px 0 8px;
}

.footer-copy{
  font-size: 13px;
  color: var(--txt-muted);
  opacity: .9;
}

/* Mobile tuning */
@media (max-width:640px){
  .footer-logo{ height: 46px; }
  .site-footer.minimal{ padding: 28px 0 36px; }
}




/* ===== Header Pro ===== */
.site-header.pro{
  position: sticky; top:0; z-index: 20;
  --hdr-bg: rgba(12,16,36,.44);
  background:
    radial-gradient(1200px 220px at 10% -40%, rgba(144,120,255,.18), transparent 60%),
    radial-gradient(900px 200px at 90% -60%, rgba(47,210,125,.10), transparent 65%),
    var(--hdr-bg);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--stroke);
  transition: box-shadow .2s ease, background .2s ease, transform .2s ease;
}
.site-header.pro.scrolled{
  box-shadow: 0 8px 24px rgba(8,12,30,.35);
  --hdr-bg: rgba(12,16,36,.66);
}

.header-bar{
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 18px;
  padding: 12px 0;
}

.brand{ display:flex; align-items:center; gap:12px; }
.brand img{ height: 60px; width:auto; }
.brand span{
  font-family:"League Spartan", Inter, system-ui, sans-serif;
  font-weight: 700; letter-spacing:.2px; color: var(--heading);
}

.main-nav{ display:flex; gap: 22px; justify-content: center; }
.main-nav a{
  color: var(--txt); opacity:.85; position: relative; padding: 8px 2px;
}
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:-6px; width:0; height:2px;
  background: linear-gradient(90deg, transparent, var(--cta), transparent);
  transition: width .25s ease; border-radius: 2px;
}
.main-nav a:hover{ opacity:1; }
.main-nav a:hover::after{ width:100%; }

.header-actions{ display:flex; align-items:center; gap:10px; }

/* CTA com glow suave */
.cta.glow{
  position: relative;
  box-shadow: 0 0 0 0 rgba(47,210,125,.35);
  animation: ctaPulse 3.2s ease-in-out infinite;
}
@keyframes ctaPulse{
  0%,100%{ box-shadow: 0 0 0 0 rgba(47,210,125,.35); }
  50%   { box-shadow: 0 0 24px 6px rgba(47,210,125,.25); }
}

/* CTA “ghost” + badge WhatsApp */
.cta.ghost{
  background: transparent; color: var(--txt); border:1px solid var(--stroke);
  box-shadow:none; padding-left: 14px;
}
.cta.ghost:hover{ background: rgba(255,255,255,.04); }
.wa-dot{
  width:8px; height:8px; border-radius:50%; background:#25D366; display:inline-block; margin-right:8px;
  box-shadow:0 0 10px rgba(37,211,102,.7);
}

/* Hamburguer (mobile) */
.hamburger{ display:none; width:42px; height:38px; border:1px solid var(--stroke); background:transparent; border-radius:10px; padding:6px; }
.hamburger span{ display:block; height:2px; background:var(--txt); margin:6px 0; border-radius:2px; transition:.2s }
.hamburger.active span:nth-child(1){ transform: translateY(8px) rotate(45deg); }
.hamburger.active span:nth-child(2){ opacity:0; }
.hamburger.active span:nth-child(3){ transform: translateY(-8px) rotate(-45deg); }

/* Menu mobile */
.mobile-nav{
  display:none; flex-direction:column; gap:10px; padding:10px 20px 18px;
  border-bottom:1px solid var(--stroke);
  background: rgba(10,12,26,.7);
}
.mobile-nav.show{ display:flex; }
.mobile-nav a{ padding:10px 0; border-bottom:1px dashed var(--stroke); }
.mobile-nav a:last-child{ border-bottom:0; }

/* Responsivo */
@media (max-width: 960px){
  .main-nav{ display:none; }
  .hamburger{ display:block; }
}




/* =========================
   MOBILE FIX PACK (até 640px)
   ========================= */
@media (max-width: 640px){

  /* Base */
  html, body{ overflow-x: hidden; }
  .container{ padding: 0 16px; }
  .section{ padding: 48px 0; }

  /* Header */
  .header-bar{ grid-template-columns: auto auto; gap: 12px; }
  .brand img{ height: 28px; }
  .brand span{ font-size: 14px; }
  .cta{ padding: 12px 16px; font-size: 14px; }
  .cta.ghost{ display: none; }             /* limpa o topo */
  .main-nav{ display:none !important; }     /* força esconder no mobile */
  .hamburger{ display:block; }
  .mobile-nav{ padding:12px 16px 18px; z-index: 25; }

  /* HERO */
  .hero{ padding: 56px 0 64px; }
  .hero-grid{ grid-template-columns: 1fr !important; gap: 16px; }
  h1{ font-size: clamp(26px, 8vw, 32px); }
  .hero p.lead{ font-size: 15px; }
  .hero .actions{ gap: 10px; }
  .hero .actions .cta{ width: 100%; justify-content: center; } /* botões cheios */

  /* Cartão de resumo no hero */
  .hero .card{ padding: 18px; }
  .list-check li{ padding-left: 24px; font-size: 14px; }

  /* Elementos flutuantes (reposição/limpeza) */
  .float-moon{ width: 160px !important; right: -14% !important; top: -6px !important; }
  .float-cloud-1{ width: 120px !important; left: -16% !important; top: 28px !important; opacity: .75; }
  .float-cloud-2{ display: none !important; }  /* remove a 2ª nuvem no mobile */
  .stars{ opacity: .45; }                       /* cintilar mais discreto */

  /* Grids e cards */
  .grid-3, .grid-2{ grid-template-columns: 1fr !important; gap: 14px; }
  .card{ padding: 18px; border-radius: 14px; }
  .bullets{ grid-template-columns: 1fr; }
  .bullet{ padding: 12px; }
  .bullet .ico{ width: 24px; height: 24px; }

  /* Títulos e textos em seções */
  h2{ font-size: clamp(22px, 6.2vw, 26px); }
  h3{ font-size: clamp(18px, 5.2vw, 20px); }
  p{ font-size: 15px; }

  /* Secção de Investimento/Inscrição */
  #inscricao .cta{ width: 100%; }
  #inscricao .list-check li{ font-size: 14px; }

  /* FAQ */
  details{ padding: 14px; }
  summary{ font-size: 15px; }

  /* Footer minimal */
  .site-footer.minimal{ padding: 24px 0 30px; }
  .footer-logo{ height: 42px; }
  .footer-tagline{ font-weight: 400; font-size: 15px; }
  .footer-copy{ font-size: 12.5px; }

}

/* =========================
   TABLET TUNING (641–960px)
   ========================= */
@media (min-width: 641px) and (max-width: 960px){
  .container{ padding: 0 18px; }
  .hero{ padding: 72px 0 84px; }
  .hero-grid{ grid-template-columns: 1fr; gap: 22px; }
  .float-moon{ width: 240px; right: -10%; top: -16px; }
  .float-cloud-1{ width: 160px; left: -12%; top: 24px; }
  .grid-3{ grid-template-columns: repeat(2, 1fr); }
  .cta.ghost{ display:none; }
}

/* Segurança extra contra transbordos de imagens */
img{ max-width: 100%; height: auto; }



/* ===== Duas janelas de inscrição ===== */
.enroll-grid{ align-items: stretch; gap: 24px; }
.enroll-card{
  display: flex; flex-direction: column; gap: 14px;
  border-radius: 22px;
}
.enroll-head{
  display:flex; align-items:center; gap:10px; margin-bottom:4px;
}
.enroll-head .flag{
  width:32px; height:32px; display:grid; place-items:center;
  border-radius: 10px; background: rgba(255,255,255,.06);
  font-size:18px;
}
.price-pill{
  display:inline-block; padding:6px 12px; border-radius:999px;
  background: #ffc928; color:#1b1400; font-weight:800;
  box-shadow: 0 6px 16px rgba(255,201,40,.35);
  margin: 0 6px;
}
.enroll-list{ margin: 6px 0 4px; padding-left: 18px; }
.enroll-list li{ margin: 6px 0; }

/* Botão amarelo (como no mock) */
.cta.gold{
  background: linear-gradient(180deg, #ffc928, #ffb400);
  color:#211500; box-shadow: 0 8px 22px rgba(255,200,40,.35);
}
.cta.gold:hover{ background: linear-gradient(180deg, #ffd85a, #ffc428); }

/* Responsivo */
@media (max-width: 960px){
  .enroll-grid{ grid-template-columns: 1fr !important; }
}
/* Bandeiras centralizadas */
.enroll-head.center-flag{
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.enroll-head.center-flag h3{
  margin: 0;
}

.flag-img{
  width: 42px;         /* ajusta conforme o tamanho desejado */
  height: auto;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
}

/* Botão amarelo alinhado à esquerda */
.cta.gold.left-btn{
  align-self: flex-start;
  margin-top: 8px;
  padding-left: 28px;
  padding-right: 28px;
}


/* Faz os cards terem mesma altura */
.enroll-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px,1fr));
  gap: 24px;
  align-items: stretch;
}

.enroll-card{
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

/* O botão amarelo vai para o fundo do card */
.cta.gold.left-btn{
  margin-top: auto;
  align-self: center;         /* agora fica centrado no card */
  padding-left: 32px;
  padding-right: 32px;
}




/* Grid da equipa */
.team-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(180px,1fr));
  gap:20px;
  margin-top:24px;
}

.team-card{
  background: rgba(255,255,255,.05);
  border: 1px solid var(--stroke);
  border-radius: 18px;
  padding:16px;
  text-align:center;
  transition: background .3s;
}
.team-card:hover{
  background: rgba(255,255,255,.08);
}

.team-card h3{
  font-size:18px;
  margin-bottom:4px;
}

.team-card p{
  font-size:14px;
}


html{
  scroll-behavior: smooth;
}

/* Ajuste para que a âncora não fique escondida atrás do header fixo */
#facilitadores{
  scroll-margin-top: 90px; /* ajusta 90px ao tamanho do teu header */
}


#reserva-vaga{ scroll-margin-top: 90px; }  /* ajuste se o header for mais alto/baixo */
html{ scroll-behavior: smooth; }           /* scroll suave */


/* Mobile: esconder o CTA verde do header e manter só no menu */
@media (max-width: 960px){
  .header-actions .cta.glow{ 
    display: none;           /* esconde "Inscrever-me" da barra superior */
  }
  .cta.ghost{ 
    display: none;           /* já costumamos ocultar o WhatsApp ghost também */
  }
}



@media (max-width: 960px){
  .header-actions .cta.glow,
  .header-actions .cta.ghost{
    display: none;             /* esconde no topo */
  }

  /* garante que os botões aparecem no menu mobile */
  .mobile-nav .cta.glow,
  .mobile-nav .cta.ghost{
    display: inline-flex;
    justify-content: center;
    margin-top: 8px;
  }
}


