* { margin: 0; padding: 0; box-sizing: border-box; }
:root {
  --bg: #0f1522;
  --bg-topo: #0b101b;
  --painel: #121a2a;
  --borda: #223049;
  --texto: #dfe6f2;
  --fraco: #9fb0cc;
  --acento: #2f80ed;
}
html { scroll-behavior: smooth; }
body { font-family: 'Segoe UI', system-ui, sans-serif; line-height: 1.6; color: var(--texto); background: var(--bg); }
img { max-width: 100%; display: block; }
a { color: inherit; }

body { padding-top: 86px; }
header { position: fixed; top: 0; left: 0; right: 0; z-index: 50; background: rgba(11,16,27,.92); backdrop-filter: blur(8px); border-bottom: 1px solid var(--borda); }
.bar { max-width: 1200px; margin: 0 auto; padding: .9rem 1.5rem; display: flex; justify-content: space-between; align-items: center; }
.bar img { height: 58px; width: auto; }
nav a { text-decoration: none; color: var(--fraco); margin-left: 1.8rem; font-size: .92rem; font-weight: 600; }
nav a:hover { color: #fff; }

.wrap { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
.btn { display: inline-block; text-decoration: none; font-weight: 700; font-size: .95rem; padding: .95rem 2rem; border-radius: 8px; border: 1px solid transparent; cursor: pointer; transition: .2s; }
.btn-p { background: var(--acento); color: #fff; box-shadow: 0 8px 24px rgba(47,128,237,.35); }
.btn-p:hover { transform: translateY(-2px); background: #4691f5; }
.btn-s { border-color: var(--borda); color: var(--texto); background: var(--painel); }
.btn-s:hover { border-color: var(--acento); }

.hero { padding: 4.5rem 0 3rem; text-align: center; background: radial-gradient(ellipse at top, #1a2a4a 0%, var(--bg) 65%); }
.tag { display: inline-block; font-size: .78rem; letter-spacing: .12em; font-weight: 700; color: var(--acento); border: 1px solid var(--borda); background: var(--painel); padding: .4rem 1rem; border-radius: 99px; margin-bottom: 1.4rem; }
.hero h1 { font-size: 3rem; line-height: 1.15; color: #fff; max-width: 820px; margin: 0 auto 1rem; letter-spacing: -.01em; }
.hero p.sub { color: var(--fraco); font-size: 1.1rem; max-width: 640px; margin: 0 auto 2rem; }
.cta { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

.janela { margin: 3rem auto 0; max-width: 1050px; border: 1px solid var(--borda); border-radius: 12px; overflow: hidden; background: var(--bg-topo); box-shadow: 0 30px 80px rgba(0,0,0,.55), 0 0 90px rgba(47,128,237,.18); cursor: zoom-in; }
.janela .tit { display: flex; gap: 6px; padding: .6rem .9rem; background: var(--bg-topo); border-bottom: 1px solid var(--borda); }
.janela .tit i { width: 10px; height: 10px; border-radius: 50%; background: #2b3a55; }

section { padding: 4.5rem 0; }
section.alt { background: var(--bg-topo); border-top: 1px solid var(--borda); border-bottom: 1px solid var(--borda); }
h2 { font-size: 2rem; color: #fff; text-align: center; margin-bottom: .6rem; }
.lead { text-align: center; color: var(--fraco); max-width: 640px; margin: 0 auto 2.8rem; }

.cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.2rem; }
.card { background: var(--painel); border: 1px solid var(--borda); border-radius: 10px; padding: 1.6rem; }
.card h3 { color: #fff; font-size: 1.05rem; margin-bottom: .4rem; }
.card p { color: var(--fraco); font-size: .93rem; }
.card .n { color: var(--acento); font-weight: 800; font-size: .85rem; letter-spacing: .1em; margin-bottom: .6rem; }

.papel { max-width: 760px; margin: 0 auto; background: #fff; border-radius: 8px; padding: 6px; box-shadow: 0 24px 70px rgba(0,0,0,.5); cursor: zoom-in; }
.papel img { border-radius: 4px; }

.dl { display: grid; grid-template-columns: 1.2fr 1fr; gap: 1.5rem; align-items: stretch; }
.box { background: var(--painel); border: 1px solid var(--borda); border-radius: 12px; padding: 2rem; }
.box h3 { color: #fff; margin-bottom: 1rem; }
.box li { list-style: none; padding: .55rem 0; border-bottom: 1px solid var(--borda); color: var(--fraco); font-size: .93rem; }
.box li:last-child { border: 0; }
.box li b { color: var(--texto); }
.box .btn { margin-top: 1.4rem; }

.feat { display: grid; grid-template-columns: 1fr 1.15fr; gap: 3rem; align-items: center; padding: 2.5rem 0; }
.feat:nth-child(even) .txt { order: 2; }
.feat h3 { color: #fff; font-size: 1.5rem; margin-bottom: .6rem; }
.feat p { color: var(--fraco); }
.feat ul { margin: 1rem 0 0 1.1rem; color: var(--fraco); font-size: .95rem; }
.feat .shot { border: 1px solid var(--borda); border-radius: 10px; overflow: hidden; box-shadow: 0 20px 50px rgba(0,0,0,.45); cursor: zoom-in; }
.pagehead { padding: 3.5rem 0 1rem; text-align: center; background: radial-gradient(ellipse at top, #1a2a4a 0%, var(--bg) 70%); }
.pagehead h1 { color: #fff; font-size: 2.4rem; }
.pagehead p { color: var(--fraco); }

footer { border-top: 1px solid var(--borda); background: var(--bg-topo); padding: 2.5rem 1.5rem; text-align: center; color: var(--fraco); font-size: .88rem; }
footer img { height: 64px; width: auto; margin: 0 auto 1.2rem; }
footer a { color: var(--acento); text-decoration: none; font-weight: 600; margin: 0 .8rem; }

#lb { display: none; position: fixed; inset: 0; z-index: 99; background: rgba(5,8,14,.94); align-items: center; justify-content: center; }
#lb.on { display: flex; }
#lb img { max-width: 88vw; max-height: 86vh; width: auto; height: auto; object-fit: contain; border-radius: 6px; }
#lb button { position: absolute; background: rgba(18,26,42,.8); color: #fff; border: 1px solid var(--borda); border-radius: 50%; width: 46px; height: 46px; font-size: 22px; cursor: pointer; }
#lb button:hover { border-color: var(--acento); }
#lb .x { top: 18px; right: 18px; }
#lb .p { left: 18px; top: 50%; transform: translateY(-50%); }
#lb .n { right: 18px; top: 50%; transform: translateY(-50%); }
#lb small { position: absolute; bottom: 16px; color: var(--fraco); }

@media (max-width: 800px) {
  body { padding-top: 70px; }
  .bar { padding: .6rem 1rem; }
  .bar img { height: 46px; }
  nav a { margin-left: .9rem; font-size: .8rem; }
  .hero { padding: 2.5rem 0 2rem; }
  .hero h1 { font-size: 1.8rem; }
  .hero p.sub { font-size: 1rem; }
  section { padding: 2.5rem 0; }
  h2 { font-size: 1.5rem; }
  .dl, .feat { grid-template-columns: 1fr; gap: 1.2rem; }
  .feat:nth-child(even) .txt { order: 0; }
  .feat { padding: 1.2rem 0; }
  #lb .p, #lb .n { width: 38px; height: 38px; }
}

.faq { max-width: 760px; margin: 2.5rem auto 0; }
.faq details { background: var(--painel); border: 1px solid var(--borda); border-radius: 10px; margin-bottom: .8rem; padding: 1rem 1.3rem; }
.faq summary { cursor: pointer; font-weight: 700; color: #fff; list-style: none; position: relative; padding-right: 1.6rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: 0; top: -2px; font-size: 1.4rem; color: var(--acento); }
.faq details[open] summary::after { content: "–"; }
.faq details p { margin-top: .7rem; color: var(--fraco); font-size: .95rem; }
.box .btn + .btn { margin-left: .6rem; }
@media (max-width: 800px) { .box .btn + .btn { margin-left: 0; margin-top: .7rem; } .box .btn { display: block; } }
.cards.c5 { grid-template-columns: repeat(auto-fit, minmax(185px, 1fr)); }
.cards.c3 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

.semmensal { margin-top: 1.4rem; color: var(--fraco); font-size: 1.05rem; }
.semmensal b { color: #fff; }
.destaque { max-width: 760px; margin: 0 auto 2.6rem; text-align: center; padding: 2.2rem 1.5rem; border-radius: 16px; border: 1px solid rgba(96,175,255,.35);
  background: radial-gradient(500px 220px at 50% 0%, rgba(47,128,237,.28), transparent 70%), var(--painel); box-shadow: 0 0 60px rgba(47,128,237,.18); }
.destaque .g { font-size: 2.6rem; line-height: 1.1; font-weight: 700; letter-spacing: -.02em; color: #fff; }
.destaque .g em { font-style: normal; background: linear-gradient(95deg,#7cc0ff,#2f80ed); -webkit-background-clip: text; background-clip: text; color: transparent; }
.destaque p { margin-top: 1rem; color: var(--fraco); font-size: 1rem; }
@media (max-width: 800px) { .destaque .g { font-size: 1.9rem; } }


.faqg { margin: 2.4rem 0 1rem; font-size: .8rem; letter-spacing: .24em; text-transform: uppercase; color: var(--acento); display: flex; align-items: center; gap: .8rem; }
.faqg::after { content: ""; flex: 1; height: 1px; background: var(--borda); }
.faqg:first-child { margin-top: 0; }
.faq details { transition: border-color .2s, background .2s; }
.faq details:hover { border-color: rgba(47,128,237,.55); }
.faq details[open] { border-color: rgba(47,128,237,.7); background: linear-gradient(180deg, rgba(47,128,237,.12), var(--painel)); }
.faq summary { font-size: 1.02rem; }
.faq details p a { color: #60afff; }

.acoes { margin-top: 1.6rem; display: flex; gap: .8rem; justify-content: center; flex-wrap: wrap; }
.btn-w { background: #1faa59; color: #fff; display: inline-flex; align-items: center; gap: .6rem; box-shadow: 0 8px 24px rgba(31,170,89,.35); }
.btn-w:hover { transform: translateY(-2px); background: #25c066; }
.btn-w svg { width: 1.2rem; height: 1.2rem; }
.wa { position: fixed; right: 18px; bottom: 18px; z-index: 40; width: 56px; height: 56px; border-radius: 50%; background: #25d366; color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 8px 24px rgba(0,0,0,.5); transition: transform .2s; }
.wa:hover { transform: scale(1.08); }
.wa svg { width: 30px; height: 30px; }
@media (max-width: 800px) {
  .acoes .btn { width: 100%; text-align: center; justify-content: center; }
}

.comprar { margin: 2.8rem auto 0; max-width: 760px; text-align: center; padding: 2.2rem 1.6rem; border-radius: 16px; border: 1px solid rgba(96,175,255,.35); background: radial-gradient(520px 200px at 50% 0%, rgba(31,170,89,.16), transparent 70%), var(--painel); }
.comprar h3 { color: #fff; font-size: 1.6rem; margin-bottom: .6rem; }
.comprar > p { color: var(--fraco); max-width: 560px; margin: 0 auto; }
.comprar .acoes { margin-top: 1.5rem; }

.lanc { margin: 1.8rem auto 0; display: inline-block; padding: 1.2rem 2.2rem; border-radius: 14px; border: 1px solid rgba(96,175,255,.45); background: linear-gradient(160deg, #1a2d55, var(--painel) 80%); box-shadow: 0 0 40px rgba(47,128,237,.22); }
.lanc span { display: block; font-size: .72rem; letter-spacing: .24em; font-weight: 700; color: #60afff; }
.lanc b { display: block; margin-top: .4rem; font-size: 2.8rem; line-height: 1; letter-spacing: -.03em; color: #fff; }
.lanc small { display: block; margin-top: .5rem; color: var(--fraco); font-size: .9rem; }
.comprar { text-align: center; }
@media (max-width: 800px) { .lanc { padding: 1rem 1.2rem; } .lanc b { font-size: 2.2rem; } }

/* videoaulas */
.vpag { padding-top: 3rem; }
.vpag h1 { text-align: center; color: #fff; font-size: clamp(1.8rem, 4vw, 2.6rem); margin-bottom: .6rem; }
.vplayer { display: grid; grid-template-columns: 2.2fr 1fr; background: var(--painel); border: 1px solid var(--borda); border-radius: 14px; overflow: hidden; }
.vtela { position: relative; aspect-ratio: 16 / 9; background: #000; }
.vtela iframe, .vplay { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; background: #000; cursor: pointer; overflow: hidden; }
.vplay img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .92; transition: transform .3s, opacity .3s; }
.vplay:hover img { transform: scale(1.02); opacity: 1; }
.va-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 84px; height: 84px; border-radius: 50%;
  background: rgba(47,128,237,.92); color: #fff; font-size: 1.9rem; display: flex; align-items: center; justify-content: center;
  padding-left: 6px; box-shadow: 0 10px 30px rgba(0,0,0,.45); transition: transform .2s; }
.vplay:hover .va-play { transform: translate(-50%,-50%) scale(1.08); }
.vinfo { padding: 1.6rem 1.8rem; align-self: center; }
.vinfo span { color: var(--acento); font-weight: 800; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.vinfo h3 { color: #fff; font-size: 1.35rem; margin-top: .3rem; }
.vinfo p { color: var(--fraco); font-size: .95rem; margin-top: .6rem; }
.vlista { display: grid; grid-template-columns: repeat(7, 1fr); gap: .8rem; margin-top: 1.2rem; }
.vitem { text-align: left; background: var(--painel); border: 1px solid var(--borda); border-radius: 10px; padding: 0 0 .6rem; overflow: hidden;
  cursor: pointer; color: var(--texto); font: inherit; transition: border-color .2s, transform .2s; }
.vitem:hover { border-color: var(--acento); transform: translateY(-2px); }
.vitem.on { border-color: var(--acento); box-shadow: 0 0 0 1px var(--acento); }
.vthumb { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #000; }
.vthumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.vthumb i { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 34px; height: 34px; border-radius: 50%;
  background: rgba(47,128,237,.9); color: #fff; font-style: normal; font-size: .8rem; display: flex; align-items: center; justify-content: center; padding-left: 3px; }
.vitem.on .vthumb i { background: #fff; color: var(--acento); }
.vrot { display: block; color: var(--acento); font-weight: 800; font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; padding: .55rem .7rem 0; }
.vtit { display: block; color: #fff; font-size: .82rem; font-weight: 600; line-height: 1.25; padding: .15rem .7rem 0; }
@media (max-width: 1000px) { .vplayer { grid-template-columns: 1fr; } .vlista { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 560px) { .vlista { grid-template-columns: repeat(2, 1fr); } .va-play { width: 64px; height: 64px; font-size: 1.4rem; } }

/* planos */
.planos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; align-items: stretch; margin-top: 1.5rem; }
.plano { position: relative; background: var(--painel); border: 1px solid var(--borda); border-radius: 14px; padding: 1.8rem 1.6rem; display: flex; flex-direction: column; }
.plano.pl-dest { border-color: var(--acento); box-shadow: 0 0 0 1px var(--acento), 0 18px 50px rgba(47,128,237,.25); background: linear-gradient(170deg, #17305c, var(--painel) 60%); }
.pl-selo { position: absolute; top: -13px; left: 50%; transform: translateX(-50%); background: var(--acento); color: #fff; font-size: .7rem; font-weight: 800; letter-spacing: .14em; padding: .35rem .9rem; border-radius: 99px; white-space: nowrap; }
.pl-nome { color: var(--acento); font-weight: 800; letter-spacing: .14em; font-size: .85rem; }
.pl-de { color: var(--fraco); text-decoration: line-through; font-size: .95rem; margin-top: .6rem; }
.pl-preco { color: #fff; font-size: 2.4rem; font-weight: 800; letter-spacing: -.02em; margin-top: .3rem; }
.pl-preco small { font-size: 1rem; color: var(--fraco); font-weight: 600; }
.pl-cond { color: var(--fraco); font-size: .88rem; margin-top: .3rem; min-height: 2.6em; }
.plano ul { list-style: none; margin-top: 1.1rem; display: grid; gap: .55rem; }
.plano li { color: var(--texto); font-size: .93rem; padding-left: 1.5rem; position: relative; }
.plano li::before { content: ""; position: absolute; left: 0; top: .35em; width: .8rem; height: .45rem; border-left: 2px solid #4be08c; border-bottom: 2px solid #4be08c; transform: rotate(-45deg); }
.pl-nota { text-align: center; color: var(--fraco); font-size: .92rem; margin-top: 1.2rem; }
.pl-multi { margin-top: 1.4rem; display: flex; gap: 1.2rem; align-items: center; justify-content: space-between; flex-wrap: wrap;
  background: var(--painel); border: 1px dashed var(--borda); border-radius: 12px; padding: 1.1rem 1.4rem; }
.pl-multi b { color: #fff; display: block; }
.pl-multi span { color: var(--fraco); font-size: .93rem; }
@media (max-width: 900px) { .planos { grid-template-columns: 1fr; } .plano.pl-dest { order: -1; } }

/* comparativo */
.cmp-tit { text-align: center; color: #fff; font-size: 1.4rem; margin: 3rem 0 1rem; }
.cmp-wrap { overflow-x: auto; border: 1px solid var(--borda); border-radius: 14px; background: var(--painel); }
.cmp { width: 100%; border-collapse: collapse; font-size: .95rem; }
.cmp th, .cmp td { padding: .8rem 1.1rem; border-bottom: 1px solid var(--borda); text-align: center; color: var(--texto); }
.cmp th:first-child, .cmp td:first-child { text-align: left; }
.cmp thead th { color: var(--acento); font-size: .8rem; letter-spacing: .14em; font-weight: 800; background: rgba(47,128,237,.08); }
.cmp th:nth-child(3), .cmp td:nth-child(3) { background: rgba(47,128,237,.07); }
.cmp tbody tr:last-child td { border-bottom: 0; }
.cmp-pro td:first-child { color: #fff; font-weight: 600; }
.cmp-fim td { color: #fff; font-weight: 600; }
.cmp-fim small { color: var(--fraco); font-weight: 400; font-size: .8rem; }
.cmp-ok { display: inline-block; width: .95rem; height: .5rem; border-left: 2.5px solid #4be08c; border-bottom: 2.5px solid #4be08c; transform: rotate(-45deg) translateY(-2px); }
.cmp-no { color: var(--fraco); }
@media (max-width: 560px) { .cmp th, .cmp td { padding: .65rem .6rem; font-size: .85rem; } }

/* página PRO */
.pro-tag { display: inline-block; font-size: .7rem; font-weight: 800; letter-spacing: .14em; color: #fff; background: linear-gradient(95deg,#2f80ed,#1c5bc4); padding: .25rem .6rem; border-radius: 99px; margin-bottom: .5rem; }
.pagehead h1 em { font-style: normal; background: linear-gradient(95deg,#7cc0ff,#2f80ed); -webkit-background-clip: text; background-clip: text; color: transparent; }
nav a.nav-pro { color: #7cc0ff; font-weight: 700; }
