/* ==========================================================================
   Colégio do Carmo — Bolsas de Estudo 2027 (2ª etapa da campanha)
   CSS residual: fontes, identidade Fase 2, animações e estados de JS
   ========================================================================== */

/* ---- Fonte de destaque do logo/campanha (legado) ----
   Freshman-BR: versão da Freshman com glifos acentuados do português.
   Os títulos usam Montserrat (decisão do cliente) — mantida aqui apenas
   para a favicon/artes legadas. */
@font-face {
  font-family: "Freshman";
  src: url("../fonts/Freshman-BR.ttf?v=3") format("truetype");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

/* ---- Base ---- */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px; /* offset do header fixo */
}

body {
  overflow-x: hidden;
}

::selection {
  background: #AB268C; /* magenta da 2ª etapa */
  color: #fff;
}

/* Títulos de destaque: Montserrat ExtraBold em caixa-alta (acentuação nativa
   e perfeita). Mantém o impacto de campanha do KV. */
.font-display {
  font-weight: 800;
  letter-spacing: -0.01em;
  text-transform: uppercase;
}

/* ==========================================================================
   Identidade da 2ª etapa — gradientes do KV "Bolsas de Estudo"
   Amostrados do próprio KV: magenta #AC258C -> roxo #932985 ->
   uva #5C236A -> marinho #1A1A52, com a malha quadriculada por cima.
   ========================================================================== */
.bg-f2-gradient {
  background-color: #1A1A52;
  background-image:
    repeating-linear-gradient(to right,  rgba(255, 255, 255, .05) 0 1px, transparent 1px 92px),
    repeating-linear-gradient(to bottom, rgba(255, 255, 255, .05) 0 1px, transparent 1px 92px),
    linear-gradient(100deg, #AC258C 0%, #A2247F 22%, #932985 42%, #5C236A 66%, #2A2649 84%, #1A1A52 100%);
}

/* No mobile o hero usa o recorte vertical do KV, cuja faixa inferior é mais
   escura — o degradê da seção acompanha para o corte ficar invisível. */
@media (max-width: 767px) {
  #hero.bg-f2-gradient {
    background-image:
      repeating-linear-gradient(to right,  rgba(255, 255, 255, .05) 0 1px, transparent 1px 92px),
      repeating-linear-gradient(to bottom, rgba(255, 255, 255, .05) 0 1px, transparent 1px 92px),
      linear-gradient(100deg, #8B2A83 0%, #7A2A7C 24%, #682670 48%, #492668 72%, #2A2649 100%);
  }
}

.bg-f2-gradient-dark {
  background-color: #141C4D;
  background-image:
    repeating-linear-gradient(to right,  rgba(255, 255, 255, .04) 0 1px, transparent 1px 92px),
    repeating-linear-gradient(to bottom, rgba(255, 255, 255, .04) 0 1px, transparent 1px 92px),
    linear-gradient(115deg, #5C236A 0%, #3E2159 38%, #262148 68%, #141C4D 100%);
}

/* O KV termina em corte reto; um fade curto na base dissolve a imagem no
   gradiente da seção (que repete o mesmo degradê horizontal do próprio KV). */
.kv-blend {
  -webkit-mask-image: linear-gradient(to bottom, #000 95%, transparent 100%);
          mask-image: linear-gradient(to bottom, #000 95%, transparent 100%);
}

/* ==========================================================================
   Cards no padrão da Fase 2
   (contorno laranja + cantos generosos, como o selo "Bolsas de Estudo")
   ========================================================================== */
.card-f2 {
  position: relative;
  background: #ffffff;
  border: 2px solid rgba(246, 125, 34, .28);
  border-radius: 1.5rem;
  box-shadow: 0 4px 16px rgba(20, 28, 77, .06);
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}
.card-f2:hover {
  border-color: #F67D22;
  box-shadow: 0 14px 34px rgba(171, 38, 140, .16);
  transform: translateY(-3px);
}

.card-f2-dark {
  position: relative;
  background: rgba(255, 255, 255, .07);
  border: 2px solid rgba(246, 125, 34, .42);
  border-radius: 1.5rem;
  backdrop-filter: blur(2px);
  transition: border-color .3s ease, background-color .3s ease, transform .3s ease;
}
.card-f2-dark:hover {
  border-color: #F67D22;
  background: rgba(255, 255, 255, .11);
  transform: translateY(-3px);
}

/* ==========================================================================
   Hexágono (motivo gráfico do KV) — porta-ícone
   ========================================================================== */
.hex {
  clip-path: polygon(25% 6.7%, 75% 6.7%, 100% 50%, 75% 93.3%, 25% 93.3%, 0% 50%);
}

/* ==========================================================================
   Cronograma — faixa compacta dentro de "A Prova"
   Deliberadamente NÃO é um card: a seção já tem três grids de cards e o
   cliente apontou repetição visual na versão anterior.
   ========================================================================== */
.crono-strip {
  list-style: none;
}
.crono-strip > li {
  position: relative;
  padding: .25rem 0 .25rem 1.75rem;
  border-left: 2px solid rgba(255, 255, 255, .14);
}
.crono-strip > li::before {
  content: "";
  position: absolute;
  left: -.5rem;
  top: .3rem;
  width: .875rem;
  height: .875rem;
  background: #F67D22;
  clip-path: polygon(25% 6.7%, 75% 6.7%, 100% 50%, 75% 93.3%, 25% 93.3%, 0% 50%);
}

/* ==========================================================================
   Chip de conteúdo pendente do cliente ([INSERIR ...])
   Remover a classe junto com o texto quando as datas chegarem.
   ========================================================================== */
.chip-tbd {
  display: inline-block;
  font-family: "Work Sans", Arial, sans-serif;
  font-weight: 700;
  font-size: .8125rem;
  letter-spacing: .04em;
  text-transform: none;
  padding: .3rem .75rem;
  border: 2px dashed rgba(246, 125, 34, .7);
  border-radius: 45px;
  color: #F67D22;
  background: rgba(246, 125, 34, .08);
}
.chip-tbd-dark {
  color: #FFB169;
  border-color: rgba(255, 177, 105, .6);
  background: rgba(246, 125, 34, .12);
}
/* Versão miúda, para caber dentro da pílula laranja de horário */
.chip-tbd-inline {
  font-size: .6875rem;
  padding: 0 .4rem;
  border-width: 1px;
  color: #fff;
  border-color: rgba(255, 255, 255, .8);
  background: transparent;
}

/* ==========================================================================
   Header / navegação
   ========================================================================== */
#header {
  transition: background-color .3s ease, box-shadow .3s ease, padding .3s ease;
}

#header.is-scrolled {
  background: #ffffff;
  box-shadow: 0 4px 16px rgba(20, 28, 77, .10);
}

/* Logo do header: invisível no topo, aparece ao rolar */
#header .nav-logo {
  opacity: 0;
  transition: opacity .3s ease;
}
#header.is-scrolled .nav-logo {
  opacity: 1;
}

/* Links: brancos no topo -> navy ao rolar */
#header .nav-link {
  color: #ffffff;
  transition: color .3s ease;
}
#header.is-scrolled .nav-link {
  color: #141C4D;
}
#header .nav-link:hover,
#header .nav-link.is-active {
  color: #F67D22;
}
#header.is-scrolled .nav-link:hover,
#header.is-scrolled .nav-link.is-active {
  color: #F67D22;
}

/* ==========================================================================
   Botões CTA
   ========================================================================== */
.btn-cta {
  transition: transform .25s ease, background-color .3s ease, color .3s ease, box-shadow .3s ease, border-color .3s ease;
  will-change: transform;
}
.btn-cta:hover {
  transform: translateY(-2px) scale(1.02);
}
.btn-cta:active {
  transform: translateY(0) scale(.99);
}

/* ==========================================================================
   Menu mobile (overlay full-screen)
   ========================================================================== */
#mobile-menu {
  transition: opacity .3s ease, visibility .3s ease;
}
#mobile-menu.is-open {
  opacity: 1;
  visibility: visible;
}

/* ==========================================================================
   Carrossel da galeria
   ========================================================================== */
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.no-scrollbar::-webkit-scrollbar {
  display: none;
}

/* ==========================================================================
   Reveal on scroll (IntersectionObserver)
   ========================================================================== */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .7s cubic-bezier(.16, 1, .3, 1), transform .7s cubic-bezier(.16, 1, .3, 1);
}
.reveal.is-visible {
  opacity: 1;
  transform: none;
}
.reveal-delay-1 { transition-delay: .1s; }
.reveal-delay-2 { transition-delay: .2s; }
.reveal-delay-3 { transition-delay: .3s; }
.reveal-delay-4 { transition-delay: .4s; }
.reveal-delay-5 { transition-delay: .5s; }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}

/* ==========================================================================
   Keyframes utilitários
   ========================================================================== */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: none; }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes glowRotate {
  to { transform: rotate(360deg); }
}

.animate-fade-in-up { animation: fadeInUp .8s cubic-bezier(.16, 1, .3, 1) both; }
.animate-fade-in    { animation: fadeIn 1s ease both; }
