/* ═══════════════════════════════════════════════
 * Colégio Tecla — componentes das páginas de segmento
 * ═══════════════════════════════════════════════
 *
 * O vocabulário visual que as páginas de segmento (Fundamental 1, Fundamental
 * 2, …) repetem entre si: chapéu, cabeçalho de seção, destaque com ícone,
 * trilha numerada, faixa de fechamento, tarja creme, divisor e mini-fluxo.
 * As seções de cada página ficam na folha daquela página
 * (`tecla-fundamental1.css`, `tecla-fundamental2.css`).
 *
 * Os tokens `--tc-*`, o contêiner `.tc-wrap`, os botões `.tc-btn` e a fonte
 * cursiva `.tc-script` vêm de `tecla-home.css`, que carrega antes desta folha.
 *
 * ESCOPO
 * O wrapper dessas páginas é `.tc.tc-seg#tc-{slug}` (ver os templates
 * `page-*.php`). `.tc-seg` é o que traz os tokens e neutraliza os wrappers do
 * Elementor — uma página nova não precisa acrescentar nada aqui, basta usar a
 * mesma classe no wrapper.
 *
 * POR QUE QUASE TUDO COMEÇA COM `.tc `
 * O reset da home define `.tc p{margin:0}`, `.tc ul{margin:0;padding:0}`,
 * `.tc h1..h4{margin:0}` e `.tc img{height:auto}`, e o Elementor traz
 * `.elementor img{height:auto}` numa folha que carrega depois desta — todas com
 * especificidade 0-1-1. Uma classe sozinha (0-1-0) perde em silêncio: some a
 * margem, a foto ignora a altura. O prefixo `.tc ` sobe para 0-2-x e resolve
 * sem `!important`.
 *
 * Segunda armadilha do mesmo tipo: `height:100%` num `<img>` dentro de item de
 * grid esticado não funciona — a altura *computada* do item continua `auto`.
 * Onde a foto precisa acompanhar a coluna inteira, o `<img>` é absoluto e o pai
 * tem altura definida.
 * ═══════════════════════════════════════════════ */

.tc-seg {
  --tcf-cream: #fdf8ef;
  --tcf-cream-2: #fbf0dc;
  --tcf-sky: #dfe8fb;
  --tcf-sky-2: #c8d9f8;
  --tcf-mint: #dff1e5;
  --tcf-lilac: #e7e3fa;
  --tcf-plum: #f0e5f8;
  --tcf-soft: #eef2fd;
  --tcf-navy-soft: #10307d;
  --tcf-radius: 30px;
  background: #fff;
}

/* ───────────────────────────────────────────────
 * Peças compartilhadas
 * ─────────────────────────────────────────────── */

.tc .tcf-heart {
  width: 18px;
  height: 18px;
  display: inline-block;
  vertical-align: baseline;
  color: var(--tc-amber);
  margin-left: 8px;
}

/* Trecho em letra cursiva âmbar no meio de um título. */
.tc .tcf-word {
  color: var(--tc-amber);
  font-weight: 400;
  font-size: 1.1em;
  line-height: 1;
}

.tc .tcf-rule {
  display: block;
  width: 54px;
  height: 3px;
  border-radius: 3px;
  background: var(--tc-yellow);
  margin: 18px 0;
}
.tc .tcf-rule--sm {
  width: 26px;
  height: 2.5px;
  margin: 11px auto;
}

/* Pílula do topo. */
.tc .tcf-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 18px 7px 8px;
  border-radius: 12px;
  background: #fff;
  box-shadow: var(--tc-shadow);
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--tc-navy);
}
.tc .tcf-badge__ic {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: var(--tcf-cream-2);
  display: grid;
  place-items: center;
  color: var(--tc-amber);
}
.tc .tcf-badge__ic svg { width: 16px; height: 16px; }

/* Título em negrito dentro de cartões e faixas. Precisa de classe própria: um
   `<b>` solto também aparece no meio dos textos, e ali ele não pode virar
   bloco (era o que quebrava o destaque do manifesto em três linhas). */
.tc .tcf-cardtitle {
  display: block;
  font-weight: 800;
  color: var(--tc-navy);
}

/* Chapéu das seções. */
.tc .tcf-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--tc-navy-soft);
}
.tc .tcf-eyebrow--pill {
  padding: 6px 18px 6px 7px;
  border-radius: 999px;
  background: #fff;
  box-shadow: var(--tc-shadow);
  letter-spacing: .14em;
}
.tc .tcf-eyebrow__ic {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--tc-yellow);
  display: grid;
  place-items: center;
  color: var(--tc-navy);
}
.tc .tcf-eyebrow__ic svg { width: 15px; height: 15px; }

/* Cabeçalho de seção. */
.tc .tcf-head--center { text-align: center; max-width: 900px; margin-inline: auto; }
.tc .tcf-head--left { text-align: left; }
.tc .tcf-head__title {
  font-size: clamp(26px, 3.2vw, 40px);
  line-height: 1.18;
  font-weight: 700;
}
.tc .tcf-head__script {
  margin-top: 8px;
  font-size: clamp(22px, 2.6vw, 33px);
  line-height: 1.24;
  color: var(--tc-amber);
}
.tc .tcf-head__sub {
  margin-top: 18px;
  font-size: clamp(13.5px, 1.15vw, 16px);
  line-height: 1.66;
  color: var(--tc-text-soft);
}
.tc .tcf-head__sub b { font-weight: 800; color: var(--tc-navy); }

/* Destaque: círculo com ícone + título + frase. */
.tc .tcf-feat {
  display: flex;
  align-items: flex-start;
  gap: 13px;
}
.tc .tcf-feat__ic {
  width: 48px;
  height: 48px;
  flex: none;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--tc-navy);
}
.tc .tcf-feat__ic svg { width: 23px; height: 23px; }
.tc .tcf-feat__ic--amber { background: var(--tcf-cream-2); }
.tc .tcf-feat__ic--blue { background: var(--tcf-sky); }
.tc .tcf-feat__ic--green { background: var(--tcf-mint); }
.tc .tcf-feat__ic--lavender { background: var(--tcf-lilac); }
.tc .tcf-feat__ic--plum { background: var(--tcf-plum); }
.tc .tcf-feat__tx {
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--tc-text-soft);
}
.tc .tcf-feat__tx .tcf-cardtitle {
  margin-bottom: 3px;
  font-size: 14px;
}

/* Lista de destaques. Cada página define as colunas; aqui fica só o que é
   comum, incluindo a variação com o ícone em cima do texto. */
.tc .tcf-feats {
  display: grid;
  padding: 0;
}
.tc .tcf-feats--stack .tcf-feat {
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
}

/* Faixa de fechamento — repete em quatro seções. */
.tc .tcf-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px 34px;
  margin-top: 44px;
  padding: 24px 32px;
  border-radius: 22px;
  background: var(--tcf-soft);
}
.tc .tcf-bar__side {
  display: flex;
  align-items: center;
  gap: 16px;
  flex: 1 1 300px;
}
.tc .tcf-bar__side--cta {
  padding-left: 34px;
  border-left: 1px solid #d6e0f6;
}
.tc .tcf-bar__ic {
  width: 42px;
  height: 42px;
  flex: none;
  color: var(--tc-amber);
}
.tc .tcf-bar__ic svg { width: 100%; height: 100%; }
.tc .tcf-bar__ic--sq {
  border-radius: 12px;
  background: var(--tcf-cream-2);
  display: grid;
  place-items: center;
  color: var(--tc-amber);
}
.tc .tcf-bar__ic--sq svg { width: 22px; height: 22px; }
.tc .tcf-bar__tx { font-size: 14px; line-height: 1.45; }
.tc .tcf-bar__tx .tcf-cardtitle { font-size: 15px; }
.tc .tcf-bar__script {
  display: block;
  margin-top: 2px;
  font-size: 21px;
  line-height: 1.25;
  color: var(--tc-amber);
}
.tc .tcf-bar__q {
  display: block;
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--tc-text-soft);
}
.tc .tcf-bar__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
  font-size: 14px;
  font-weight: 800;
  color: var(--tc-navy);
  text-decoration: none;
}
.tc .tcf-bar__link svg { width: 20px; height: 20px; color: var(--tc-amber); transition: transform .25s ease; }
.tc .tcf-bar__link:hover { color: var(--tc-blue); text-decoration: none; }
.tc .tcf-bar__link:hover svg { transform: translateX(4px); }

/* Tarja creme com ícone. */
.tc .tcf-pill {
  display: flex;
  align-items: center;
  gap: 16px;
  width: fit-content;
  margin: 30px auto 0;
  padding: 16px 26px;
  border-radius: 16px;
  background: var(--tcf-cream-2);
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--tc-navy);
  text-align: left;
}
.tc .tcf-pill__ic { width: 30px; flex: none; color: var(--tc-amber); }
.tc .tcf-pill__ic svg { width: 100%; height: auto; }
.tc .tcf-pill__script {
  font-size: 20px;
  line-height: 1;
  color: var(--tc-amber);
}

/* Trilha numerada. */
.tc .tcf-steps {
  display: grid;
  gap: 20px;
  margin-top: 38px;
  padding: 0;
  counter-reset: none;
}
.tc .tcf-step {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
/* Chevron âmbar no vão entre um passo e o seguinte. */
.tc .tcf-step:not(:last-child)::after {
  content: '';
  position: absolute;
  right: -14px;
  top: 44px;
  width: 9px;
  height: 9px;
  border-top: 2.2px solid var(--tc-amber);
  border-right: 2.2px solid var(--tc-amber);
  transform: rotate(45deg);
}
.tc .tcf-step__ic {
  position: relative;
  width: 74px;
  height: 74px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--tc-navy);
}
.tc .tcf-step__ic svg { width: 32px; height: 32px; }
.tc .tcf-step__num {
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: 25px;
  height: 25px;
  border-radius: 50%;
  background: var(--tc-navy);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
  display: grid;
  place-items: center;
}
.tc .tcf-step__title {
  margin-top: 16px;
  font-size: 14.5px;
  font-weight: 800;
  line-height: 1.3;
  color: var(--tc-navy);
}
.tc .tcf-step__text {
  font-size: 12.5px;
  line-height: 1.55;
  color: var(--tc-text-soft);
}

/* Variação em cartão (acompanhamento pedagógico). */
.tc .tcf-steps--cards { grid-template-columns: repeat(4, 1fr); }
.tc .tcf-steps--cards .tcf-step {
  padding: 26px 20px 24px;
  border-radius: 22px;
  background: #fff;
  border: 1px solid var(--tc-line);
  box-shadow: var(--tc-shadow);
}
/* O primeiro passo é o destaque, como no layout. */
.tc .tcf-steps--cards .tcf-step:first-child {
  border-color: var(--tc-blue);
  box-shadow: var(--tc-shadow-hi);
}
.tc .tcf-steps--cards .tcf-step:not(:last-child)::after { right: -14px; top: 56px; }

/* Variação em círculo solto (transição). */
.tc .tcf-steps--round { grid-template-columns: repeat(5, 1fr); gap: 26px; }
.tc .tcf-steps--round .tcf-step__ic { width: 96px; height: 96px; }
.tc .tcf-steps--round .tcf-step__ic svg { width: 42px; height: 42px; }
.tc .tcf-steps--round .tcf-step:not(:last-child)::after { right: -17px; top: 44px; }

/* Divisor com título no meio. */
.tc .tcf-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  margin-top: 44px;
  color: var(--tc-navy-soft);
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.tc .tcf-divider::before,
.tc .tcf-divider::after {
  content: '';
  height: 1px;
  flex: 1 1 60px;
  max-width: 190px;
  background: var(--tc-line);
}
.tc .tcf-divider__heart { display: none; }

/* Mini-fluxo dentro da faixa (projetos). */
.tc .tcf-flow {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0;
  flex: 0 1 auto;
}
.tc .tcf-flow__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 700;
  color: var(--tc-text-soft);
}
.tc .tcf-flow__item + .tcf-flow__item { margin-left: 22px; position: relative; }
.tc .tcf-flow__item + .tcf-flow__item::before {
  content: '';
  position: absolute;
  left: -16px;
  top: 16px;
  width: 7px;
  height: 7px;
  border-top: 2px solid var(--tc-amber);
  border-right: 2px solid var(--tc-amber);
  transform: rotate(45deg);
}
.tc .tcf-flow__ic { width: 30px; height: 30px; color: var(--tc-navy); }
.tc .tcf-flow__ic svg { width: 100%; height: 100%; }

/* ───────────────────────────────────────────────
 * Quadro de vídeo (facade → iframe)
 * ───────────────────────────────────────────────
 * O `id="tc-video-frame"` e o `data-video-id` do <button> são o contrato com
 * `assets/js/tecla-home.js`, que troca a capa pelo iframe do YouTube no clique.
 * Quando isso acontece, todo o conteúdo interno é substituído pelo iframe.
 * ─────────────────────────────────────────────── */
.tc .tcf-video__frame {
  position: relative;
  display: block;
  width: 100%;
  margin: 34px 0 0;
  padding: 0;
  border: 0;
  border-radius: 24px;
  overflow: hidden;
  aspect-ratio: 16 / 8;
  background: #000;
  cursor: pointer;
  box-shadow: var(--tc-shadow-hi);
}
.tc .tcf-video__frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.tc .tcf-video__frame:hover img { transform: scale(1.03); }
.tc .tcf-video__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
/* O véu claro à esquerda é o que deixa o texto legível sobre a foto sem
   precisar de uma imagem já tratada. */
.tc .tcf-video__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(253, 248, 239, .97) 0%, rgba(253, 248, 239, .93) 34%, rgba(253, 248, 239, 0) 62%);
}
.tc .tcf-video__panel {
  position: absolute;
  left: 40px;
  top: 50%;
  transform: translateY(-50%);
  max-width: 40%;
  text-align: left;
}
.tc .tcf-video__lead {
  display: block;
  font-size: clamp(15px, 1.5vw, 21px);
  font-weight: 800;
  line-height: 1.32;
  color: var(--tc-navy);
}
.tc .tcf-video__note {
  display: block;
  margin-top: 14px;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--tc-text-soft);
}
.tc .tcf-video__note b { color: var(--tc-navy); font-weight: 800; }
.tc .tcf-video__play {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .94);
  display: grid;
  place-items: center;
  color: var(--tc-navy);
  box-shadow: 0 10px 30px rgba(6, 29, 106, .28);
  transition: transform .3s ease;
}
.tc .tcf-video__frame:hover .tcf-video__play { transform: scale(1.07); }
.tc .tcf-video__play svg { width: 28px; height: 28px; margin-left: 4px; }

.tc .tcf-video__feats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
  margin-top: 28px;
  padding: 0;
}

/* ───────────────────────────────────────────────
 * Responsivo dos componentes compartilhados
 * ─────────────────────────────────────────────── */

@media (max-width: 1150px) {
  .tc .tcf-steps--round { grid-template-columns: repeat(3, 1fr); }
  .tc .tcf-steps--round .tcf-step:nth-child(3n)::after { display: none; }
}

@media (max-width: 980px) {
  .tc .tcf-steps--cards { grid-template-columns: repeat(2, 1fr); }
  .tc .tcf-steps--cards .tcf-step:nth-child(2n)::after { display: none; }
  .tc .tcf-bar { padding: 22px 24px; }
  .tc .tcf-bar__side--cta { padding-left: 0; border-left: 0; }
}

@media (max-width: 720px) {
  .tc .tcf-steps--cards,
  .tc .tcf-steps--round { grid-template-columns: 1fr; }
  /* Numa coluna só, o chevron lateral não faz sentido. */
  .tc .tcf-step:not(:last-child)::after { display: none !important; }
  .tc .tcf-bar { flex-direction: column; align-items: flex-start; }
  .tc .tcf-flow { flex-wrap: wrap; }
  .tc .tcf-pill { width: auto; }
}

@media (max-width: 980px) {
  .tc .tcf-video__frame { aspect-ratio: 4 / 3; }
  .tc .tcf-video__scrim { background: linear-gradient(180deg, rgba(6, 29, 106, .04) 20%, rgba(6, 29, 106, .78) 78%); }
  .tc .tcf-video__panel {
    top: auto;
    bottom: 20px;
    left: 20px;
    right: 20px;
    transform: none;
    max-width: none;
  }
  .tc .tcf-video__lead { font-size: 15px; color: #fff; }
  .tc .tcf-video__lead .tcf-word { color: var(--tc-yellow); }
  .tc .tcf-video__note { margin-top: 8px; color: rgba(255, 255, 255, .86); }
  .tc .tcf-video__note b { color: #fff; }
  /* Vira legenda: as quebras pensadas para a coluna larga só picotariam. */
  .tc .tcf-video__lead br,
  .tc .tcf-video__note br { display: none; }
  .tc .tcf-video__play { top: 18%; bottom: auto; }
  .tc .tcf-video__feats { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
  .tc .tcf-video__play { width: 58px; height: 58px; }
  .tc .tcf-video__play svg { width: 21px; height: 21px; }
  .tc .tcf-video__feats { grid-template-columns: 1fr; gap: 16px; }
}

/* ───────────────────────────────────────────────
 * Elementor — neutralizar os wrappers dentro da página
 * ───────────────────────────────────────────────
 * Cada seção é um widget, e o Elementor envolve todos em
 * section > container > column > widget-wrap > widget > widget-container, cada
 * um com largura máxima e padding próprios. Sem zerar isso, os cartões
 * full-bleed estouram e o `.tc-wrap` deixa de alinhar com o cabeçalho.
 * ─────────────────────────────────────────────── */
.tc-seg .elementor,
.tc-seg .elementor-section,
.tc-seg .elementor-section-boxed > .elementor-container,
.tc-seg .elementor-container,
.tc-seg .elementor-column,
.tc-seg .elementor-column-wrap,
.tc-seg .elementor-widget-wrap,
.tc-seg .elementor-widget,
.tc-seg .elementor-widget-container,
.tc-seg .e-con,
.tc-seg .e-con-inner,
.tc-seg .e-child {
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: 0;
  display: block;
  --width: 100%;
  --content-width: 100%;
  --padding-top: 0;
  --padding-bottom: 0;
  --padding-left: 0;
  --padding-right: 0;
}

.tc-seg .elementor-widget:not(:last-child) {
  margin-block-end: 0;
}
