/* ---------- TOPBAR ---------- */
header.top{
  position:sticky;top:0;z-index:50;background:rgba(236,230,220,0.94);backdrop-filter:blur(6px);
  border-bottom:1px solid var(--rule);
}
.top-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 0;gap:20px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-weight:700;font-size:19px;}
nav.tabs{display:flex;gap:6px;flex-wrap:wrap;}
nav.tabs button{
  background:none;border:1px solid transparent;padding:9px 16px;border-radius:999px;
  font-family:var(--sans);font-weight:500;font-size:13.5px;color:var(--ink-soft);
  transition:all .16s ease;
}
nav.tabs button:hover{color:var(--ink);}
nav.tabs button.active{border-color:var(--rule);color:var(--ink);background:var(--paper-2);}
.top-actions{display:flex;align-items:center;gap:16px;}
.account-btn{
  background:none;border:none;font-family:var(--sans);font-weight:500;font-size:13.5px;color:var(--ink-faint);
  text-decoration:underline;text-underline-offset:3px;
}
.account-btn:hover{color:var(--ink);}
.logout-btn{
  background:none;border:none;font-family:var(--sans);font-weight:500;font-size:13.5px;color:var(--ink-faint);
  text-decoration:underline;text-underline-offset:3px;
}
.logout-btn:hover{color:var(--ink);}

/* ---------- DASHBOARD ----------
   Tela de Início como uma sequência de tiles em largura cheia, alternando
   superfície (papel → vermelho do curso → papel-2 → papel), no espírito
   das páginas de produto da Apple: menos cartão-com-borda, mais bloco de
   cor que respira, uma CTA discreta por seção. Cada .home-tile é o
   elemento de largura cheia (sem "wrap"); o "wrap" só entra dentro dele
   pra centralizar o conteúdo — assim o padding lateral do .wrap nunca é
   pisado por um padding do tile (era esse o bug do .dash-head antigo). */
.home-tile{padding-top:64px;padding-bottom:64px;}
.home-tile--hero{padding-top:76px;padding-bottom:48px;}
.dash-title{font-family:var(--serif);font-size:clamp(30px,4.6vw,48px);font-weight:600;max-width:24ch;line-height:1.12;letter-spacing:-0.015em;}
.dash-sub{margin-top:20px;color:var(--ink-soft);font-size:18px;line-height:1.5;max-width:52ch;}

/* chip em pílula, mesmo tratamento nas três seções (translúcido sobre a
   cor sólida do próprio tile — não precisa de uma variante tingida por
   seção porque agora o fundo inteiro já carrega a cor da seção) */
.home-chip{
  font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;
  display:inline-flex;padding:5px 12px;border-radius:999px;width:fit-content;
  background:rgba(248,240,227,0.16);color:var(--paper);
}

.home-cta{
  display:inline-flex;align-items:center;gap:6px;margin-top:8px;
  font-family:var(--sans);font-weight:700;font-size:13.5px;letter-spacing:0.01em;
  padding:10px 20px;border-radius:999px;
  background:var(--paper);color:var(--accent-curso);
  transition:transform .15s ease;
}
.home-tile--curso:hover .home-cta{transform:translateX(3px);}
.home-split-card--plano .home-cta{color:var(--accent-plano);}
.home-split-card--diversos .home-cta{color:var(--accent-diversos);}
.home-split-card:hover .home-cta{transform:translateX(3px);}

.home-tile--curso{background:var(--accent-curso);color:var(--paper);cursor:pointer;transition:background .18s ease;}
.home-tile--curso:hover{background:var(--accent-curso-dim);}
.home-tile-content{display:flex;flex-direction:column;align-items:flex-start;gap:14px;max-width:640px;}
.home-tile-title{font-family:var(--serif);font-size:clamp(26px,3.4vw,36px);font-weight:600;letter-spacing:-0.01em;}
.home-tile-desc{font-size:15.5px;color:rgba(248,240,227,0.82);max-width:52ch;}

/* Plano e Diversos levam a mesma cor cheia que o Curso — cada metade do
   grid é a própria cor sólida da seção, sem "wrap" por fora, encostando
   uma na outra em largura total (a mudança de cor já é a divisória, no
   mesmo espírito do tile do Curso logo acima). */
.home-split{display:grid;grid-template-columns:repeat(2,1fr);padding:0;}
@media(max-width:760px){.home-split{grid-template-columns:1fr;}}
.home-split-card{
  padding:48px 44px;cursor:pointer;color:var(--paper);
  display:flex;flex-direction:column;align-items:flex-start;gap:12px;
  transition:background .18s ease;
}
.home-split-card--plano{background:var(--accent-plano);}
.home-split-card--plano:hover{background:var(--accent-plano-dim);}
.home-split-card--diversos{background:var(--accent-diversos);}
.home-split-card--diversos:hover{background:var(--accent-diversos-dim);}
.home-split-title{font-family:var(--serif);font-size:19px;font-weight:600;max-width:26ch;}
.home-split-desc{font-size:14px;color:rgba(248,240,227,0.82);max-width:38ch;}

.home-tile--team{background:var(--paper);}

.home-tile--faq{background:var(--paper-2);}

.home-tile--footer{background:var(--paper);border-top:1px solid var(--rule);}
.home-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap;}
@media(max-width:640px){.home-footer{flex-direction:column;align-items:flex-start;}}
.home-footer-text{margin-top:8px;color:var(--ink-soft);font-size:14px;max-width:40ch;}
.home-cta--footer{background:var(--ink);color:var(--paper);margin-top:14px;}
.home-footer-legal{padding-bottom:2px;}
.footer-legal-link{
  display:inline-flex;align-items:center;gap:9px;background:none;border:none;
  font-family:var(--mono);font-size:12.5px;color:var(--ink-faint);text-align:left;
  transition:color .15s ease;
}
.footer-legal-link:hover{color:var(--ink);}
.footer-legal-icon{
  width:30px;height:30px;border-radius:50%;background:var(--paper-2);border:1px solid var(--rule);color:var(--ink-soft);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}

/* ---------- SUB-PAGE SHELL ---------- */
.subpage{padding:44px 0 100px;}
.back-link{
  display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12.5px;
  color:var(--ink-soft);text-decoration:none;background:none;border:none;margin-bottom:32px;
}
.back-link:hover{color:var(--ink);}
.sub-title{font-family:var(--serif);font-size:clamp(30px,4.4vw,44px);font-weight:600;letter-spacing:-0.01em;line-height:1.12;max-width:18ch;text-align:center;margin-left:auto;margin-right:auto;}
.sub-title em{font-style:italic;font-weight:500;}
.curso .sub-title em{color:var(--accent-curso);}
.plano .sub-title em{color:var(--accent-plano);}
.diversos-page .sub-title em{color:var(--accent-diversos);}
.block{margin-top:56px;}
.section-heading{font-family:var(--serif);font-size:23px;font-weight:600;color:var(--ink);margin-bottom:22px;}
.curriculo-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:26px;}
.curriculo-title{font-family:var(--serif);font-size:25px;font-weight:600;position:relative;padding-bottom:12px;}
.curriculo-title::after{content:'';position:absolute;left:0;bottom:0;width:40px;height:3px;background:var(--accent-curso);border-radius:2px;}
.curriculo-sub{margin-top:10px;font-size:13.5px;color:var(--ink-soft);max-width:48ch;text-align:justify;}
.expand-toggle{
  font-family:var(--sans);font-weight:600;font-size:12.5px;color:var(--accent-curso);
  background:none;border:1px solid var(--accent-curso);padding:9px 16px;border-radius:999px;white-space:nowrap;
  transition:all .18s ease;
}
.expand-toggle:hover{background:var(--accent-curso);color:var(--paper);}

/* ---------- CURSO: currículo ---------- */
.lesson{display:grid;grid-template-columns:28px 1fr;gap:0 20px;cursor:pointer;}
.rail-col{position:relative;display:flex;justify-content:center;}
.rail-line{position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%);background:var(--rule);}
.lesson:first-child .rail-line{top:30px;}
.lesson:last-child .rail-line{bottom:calc(100% - 40px);}
.rail-dot{
  position:relative;z-index:2;width:9px;height:9px;border-radius:50%;background:var(--paper);
  border:2px solid var(--rule);margin-top:26px;flex-shrink:0;transition:all .2s ease;
}
.lesson.open .rail-dot{background:var(--accent-curso);border-color:var(--accent-curso);}
.lesson-content{padding:22px 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:1fr auto;gap:14px 20px;align-items:start;}
.lesson:last-child .lesson-content{border-bottom:none;}
.lesson-num{font-family:var(--mono);font-size:11px;color:var(--accent-curso);letter-spacing:0.06em;}
.lesson-title{font-family:var(--serif);font-size:18px;font-weight:600;margin-top:4px;}
.lesson-meta{font-family:var(--mono);font-size:11.5px;color:var(--ink-faint);white-space:nowrap;display:flex;align-items:center;gap:8px;padding-top:4px;}
.lesson-body{grid-column:1/-1;max-height:0;overflow:hidden;transition:max-height .28s ease;}
.lesson-desc{margin:0;font-size:14px;color:var(--ink-soft);}
.lesson-video:empty{display:none;}
.video-pending{margin:10px 0 0;font-family:var(--mono);font-size:12px;color:var(--ink-faint);}
/* 640px cabe a descrição + o player de vídeo (16:9); aulas sem vídeo
   ainda ficam bem menores que isso, então o acordeão não estica à toa. */
.lesson.open .lesson-body{max-height:640px;margin-top:8px;}
.chev{font-family:var(--mono);font-size:13px;color:var(--ink-faint);transition:transform .2s ease;}
.lesson.open .chev{transform:rotate(45deg);color:var(--accent-curso);}

/* proporção 16:9 responsiva, funciona tanto nas aulas do curso quanto
   nos cards de Diversos */
.video-embed{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:8px;background:#000;margin-top:10px;}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}

/* trava de conteúdo (curso ainda não comprado) */
.curso-lock-banner{
  display:none;align-items:center;gap:10px;background:var(--paper-2);border:1px dashed var(--accent-curso);
  border-radius:14px;padding:14px 18px;margin-bottom:22px;font-size:13.5px;color:var(--ink-soft);
}
.curso-lock-banner strong{color:var(--ink);}
#lessons-col.locked .lesson{cursor:default;}
#lessons-col.locked .lesson .chev{opacity:.35;}
.expand-toggle:disabled{opacity:.4;cursor:not-allowed;}
.expand-toggle:disabled:hover{background:none;color:var(--accent-curso);}

/* instrutor */
.team-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:6px;}
@media(max-width:640px){.team-photos{grid-template-columns:1fr;}}
.photo-card{
  position:relative;aspect-ratio:3/4;border-radius:16px;overflow:hidden;
  border:1px solid var(--rule);background:var(--paper-2);cursor:pointer;
}
.photo-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;}
/* logos/marcas (não retratos) ficam melhor inteiras, sem cortar */
.photo-card img.fit-contain{object-fit:contain;object-position:center;background:#fff;padding:0;transform:scale(1.35);}
.photo-card:hover img, .photo-card.active img{transform:scale(1.05);}
.photo-card:hover img.fit-contain, .photo-card.active img.fit-contain{transform:scale(1.35);}
.photo-card.img-missing img{display:none;}
.photo-card.img-missing::before{
  content:'Foto a definir';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);
  text-align:center;padding:20px;
}
.photo-overlay{
  position:absolute;inset:0;
  background:linear-gradient(to top, rgba(28,22,12,0.92) 0%, rgba(28,22,12,0.5) 45%, rgba(28,22,12,0) 78%);
  display:flex;flex-direction:column;justify-content:flex-end;padding:16px;
  opacity:0;transition:opacity .25s ease;
}
.photo-card:hover .photo-overlay, .photo-card.active .photo-overlay{opacity:1;}
.photo-overlay-name{font-family:var(--serif);font-size:16px;font-weight:600;color:var(--paper);margin-bottom:6px;}
.photo-overlay-info{font-family:var(--sans);font-size:12px;color:var(--paper);line-height:1.5;}
.photo-overlay-info a{color:var(--paper);text-decoration:underline;}

/* pricing */
.price-card{max-width:440px;background:var(--paper-2);border:none;box-shadow:0 1px 3px rgba(28,22,12,0.06);border-radius:22px;padding:36px 34px;}
.price-tag{font-family:var(--mono);font-size:11.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--accent-curso);font-weight:700;}
.price-value{font-family:var(--serif);font-size:48px;font-weight:600;letter-spacing:-0.01em;margin:12px 0 4px;display:flex;align-items:baseline;gap:8px;}
.price-value small{font-family:var(--mono);font-size:13px;color:var(--ink-soft);font-weight:600;}
.price-desc{color:var(--ink-soft);font-size:13.5px;margin-bottom:22px;}
.price-list{list-style:none;margin-bottom:26px;}
.price-list li{display:flex;gap:10px;padding:9px 0;border-top:1px solid var(--rule);font-size:13.5px;}
.price-list li:first-child{border-top:none;}
.price-list li::before{content:'✓';color:var(--accent-curso);font-family:var(--mono);flex-shrink:0;}
.btn-accent{
  display:inline-block;text-align:center;font-family:var(--sans);font-weight:700;font-size:14.5px;letter-spacing:0.01em;
  color:var(--paper);padding:14px 26px;border-radius:999px;text-decoration:none;
  border:1px solid transparent;transition:all .18s ease;cursor:pointer;
}
.btn-accent:disabled{opacity:.55;cursor:not-allowed;}
.btn-accent.owned{background:var(--accent-diversos)!important;border-color:var(--accent-diversos)!important;opacity:1;cursor:default;}
.curso .btn-accent{background:var(--accent-curso);border-color:var(--accent-curso);}
.curso .btn-accent:hover:not(:disabled){background:var(--accent-curso-dim);}
.plano .btn-accent{background:var(--accent-plano);border-color:var(--accent-plano);}
.plano .btn-accent:hover:not(:disabled){background:var(--accent-plano-dim);}
.plano .price-tag{color:var(--accent-plano);}
.plano .price-list li::before{color:var(--accent-plano);}

/* combo (Plano + Curso) — cor própria (dourado), nem a do curso nem a do
   plano, pra ficar claro que é uma terceira oferta */
.combo-card{
  margin-top:16px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;
  background:var(--paper);border:1px dashed var(--tag-gold);border-radius:18px;padding:20px 22px;
}
.combo-tag{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--tag-gold);
  margin-bottom:6px;
}
.combo-info h4{font-family:var(--serif);font-size:16px;font-weight:600;margin-bottom:4px;}
.combo-info p{font-size:13.5px;color:var(--ink-soft);}
.combo-card .btn-accent{background:var(--tag-gold);border-color:var(--tag-gold);flex-shrink:0;}
.combo-card .btn-accent:hover:not(:disabled){opacity:.85;}

/* faq */
.faq-item{border-bottom:1px solid var(--rule);padding:18px 0;}
.faq-q{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-family:var(--serif);font-size:16px;font-weight:600;gap:16px;}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;color:var(--ink-soft);font-size:14px;text-align:justify;}
.faq-item.open .faq-a{max-height:220px;margin-top:12px;}
.faq-item.open .chev{transform:rotate(45deg);color:var(--accent-curso);}
.plano .faq-item.open .chev{color:var(--accent-plano);}

/* ---------- PLANO ---------- */
.steps{display:grid;gap:16px;}
.step{display:grid;grid-template-columns:auto 1fr;gap:18px;background:var(--paper-2);border:1px solid var(--rule);border-radius:16px;padding:20px 22px;}
.step-num{font-family:var(--serif);font-size:26px;font-weight:600;color:var(--accent-plano);}
.step h4{font-family:var(--serif);font-size:16.5px;font-weight:600;margin-bottom:4px;}
.step p{font-size:13.5px;color:var(--ink-soft);text-align:justify;}
.plano-text p{color:var(--ink-soft);font-size:15px;max-width:64ch;margin-bottom:14px;text-align:justify;}
.beneficios{list-style:none;display:grid;gap:12px;}
.beneficios li{display:flex;gap:12px;font-size:14.5px;color:var(--ink);background:var(--paper-2);border:1px solid var(--rule);border-radius:14px;padding:16px 18px;}
.beneficios li::before{content:'—';color:var(--accent-plano);font-family:var(--mono);flex-shrink:0;}
.contact-card{
  margin-top:10px;display:flex;flex-wrap:wrap;gap:14px 26px;align-items:center;
  background:var(--paper-2);border:1px solid var(--rule);border-radius:18px;padding:22px 24px;
}
.contact-item{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;}
.contact-badge{width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.contact-badge svg{display:block;}

/* agendamento (Plano Individual) */
.booking-block{margin-top:28px;padding-top:24px;border-top:1px solid var(--rule);}
.booking-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px;}
.booking-title{font-family:var(--serif);font-size:18px;font-weight:600;}
.meeting-select{display:flex;gap:8px;}
.meeting-chip{
  font-family:var(--mono);font-size:11.5px;letter-spacing:.03em;color:var(--ink-soft);
  background:var(--paper);border:1px solid var(--rule);border-radius:999px;padding:7px 14px;
  transition:all .15s ease;
}
.meeting-chip:hover{border-color:var(--accent-plano);}
.meeting-chip.active{background:var(--accent-plano);border-color:var(--accent-plano);color:var(--paper);}
.booking-status{font-size:13.5px;color:var(--ink-soft);padding:8px 0;}
.booking-status.error{color:var(--accent-curso);}
.booking-status.success{color:var(--accent-diversos);font-weight:600;}
.booking-slots{display:flex;flex-direction:column;gap:18px;}
.booking-day{display:flex;flex-direction:column;gap:8px;}
.booking-day-label{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);}
.booking-day-slots{display:flex;flex-wrap:wrap;gap:8px;}
.slot-btn{
  font-family:var(--mono);font-size:12.5px;color:var(--ink);background:var(--paper);
  border:1px solid var(--rule);border-radius:999px;padding:9px 15px;transition:all .15s ease;
}
.slot-btn:hover:not(:disabled){border-color:var(--accent-plano);color:var(--accent-plano);}
.slot-btn:disabled{opacity:.4;cursor:not-allowed;}
.slot-btn.booking{opacity:.6;cursor:wait;}
.cancel-booking-btn{
  font-family:var(--mono);font-size:12.5px;color:var(--accent-curso);background:var(--paper);
  border:1px solid var(--accent-curso);border-radius:999px;padding:10px 18px;transition:all .15s ease;
}
.cancel-booking-btn:hover:not(:disabled){background:var(--accent-curso);color:var(--paper);}
.cancel-booking-btn:disabled{opacity:.5;cursor:not-allowed;}

/* ---------- DIVERSOS ---------- */
.diversos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media(max-width:760px){.diversos-grid{grid-template-columns:1fr;}}
.video-slot{
  aspect-ratio:16/10;background:var(--paper-2);border:1px dashed var(--rule);border-radius:14px;
  display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;
  font-family:var(--mono);font-size:12px;color:var(--ink-faint);
}
.video-card{display:flex;flex-direction:column;gap:10px;}
.video-card .video-embed{margin-top:0;border-radius:14px;}
.video-card-title{font-family:var(--serif);font-size:14px;font-weight:600;color:var(--ink);}
.em-breve{
  display:inline-flex;padding:5px 12px;border-radius:20px;background:var(--accent-diversos);color:var(--paper);
  font-family:var(--mono);font-size:11px;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:18px;
}

/* ---------- MINHA CONTA (compras + agendamentos) ---------- */
.account-list{display:flex;flex-direction:column;gap:10px;}
.account-row{
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  background:var(--paper-2);border:1px solid var(--rule);border-radius:14px;padding:14px 18px;
}
.account-row-main{display:flex;flex-direction:column;gap:3px;}
.account-row-title{font-family:var(--serif);font-weight:600;font-size:15px;color:var(--ink);}
.account-row-sub{font-family:var(--mono);font-size:11.5px;color:var(--ink-faint);}
.account-status{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;
  padding:4px 10px;border-radius:20px;white-space:nowrap;color:var(--paper);
}
.account-status.approved, .account-status.confirmed{background:var(--accent-diversos);}
.account-status.pending{background:var(--tag-gold);}
.account-status.refunded, .account-status.charged_back, .account-status.cancelled{background:var(--ink-faint);}
.account-empty{color:var(--ink-faint);font-size:13.5px;padding:12px 0;}

/* ---------- TERMOS DE USO / POLÍTICA DE PRIVACIDADE ---------- */
.legal-updated{text-align:center;font-family:var(--mono);font-size:11.5px;color:var(--ink-faint);margin-top:-8px;margin-bottom:8px;}
.legal-block h4{font-family:var(--serif);font-size:16.5px;font-weight:600;margin:22px 0 8px;}
.legal-block h4:first-of-type{margin-top:4px;}
.legal-block p{font-size:14px;color:var(--ink-soft);text-align:justify;}
.legal-consent{font-size:12.5px;color:var(--ink-faint);margin:-6px 0 16px;}
.legal-consent .link-btn{font-size:inherit;}

/* ---------- AJUSTES SÓ PARA CELULAR (não afeta desktop) ---------- */
@media(max-width:640px){
  /* Um elemento que combina a classe "wrap" com outra que também define
     padding próprio tem o padding lateral do .wrap zerado pela segunda
     classe. Afeta o cabeçalho (logo/nav/sair) e o conteúdo das abas
     Curso/Plano/Diversos (.subpage). (Os tiles da tela de Início não
     entram aqui: .home-tile fica FORA do .wrap — só define padding
     vertical — então o .wrap interno nunca tem o padding lateral pisado.) */
  .top-inner,
  .subpage{padding-left:20px;padding-right:20px;}

  /* nav.tabs ficava com os botões grudados à esquerda e quebrando linha
     de forma desorganizada. Vira uma grade 2x2, distribuindo o espaço
     igualmente entre os 4 itens. */
  nav.tabs{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    width:100%;
  }
  nav.tabs button{text-align:center;}

  /* "Minha conta" + "Sair" ficam numa terceira linha do topbar no celular
     (nav.tabs vira grade de largura total logo acima) — centraliza pra
     não ficar torto. */
  .top-actions{width:100%;justify-content:center;}
}
