/* ==========================================================================
   Gratuidade Cursos Tecnicos - Redesign 2027
   Todas as classes usam o prefixo "gt-" para nao conflitar com o default.css.
   As classes antigas do formulario (campo, campo__controle, campoErro...) sao
   mantidas porque o formGratuidade.js depende delas; aqui elas sao reestilizadas
   apenas dentro de .gt-inscricao.
   ========================================================================== */

/* ---------- Fontes (licenca OFL, arquivos em layout/fonts) ---------- */
@font-face { font-family: 'Montserrat'; font-weight: 700; font-style: normal; font-display: swap; src: url(../fonts/montserrat-latin-700-normal.woff2) format('woff2'); }
@font-face { font-family: 'Montserrat'; font-weight: 800; font-style: normal; font-display: swap; src: url(../fonts/montserrat-latin-800-normal.woff2) format('woff2'); }
@font-face { font-family: 'Montserrat'; font-weight: 900; font-style: normal; font-display: swap; src: url(../fonts/montserrat-latin-900-normal.woff2) format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-weight: 400; font-style: normal; font-display: swap; src: url(../fonts/source-sans-3-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-weight: 600; font-style: normal; font-display: swap; src: url(../fonts/source-sans-3-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: 'Source Sans 3'; font-weight: 700; font-style: normal; font-display: swap; src: url(../fonts/source-sans-3-latin-700-normal.woff2) format('woff2'); }

/* ---------- Tokens ---------- */
:root {
  --gt-navy: #0F3466;
  --gt-azul: #174A8C;
  --gt-azul-medio: #2F6FC4;
  --gt-azul-claro: #E3EAF4;
  --gt-tinta: #14253D;
  --gt-texto: #3A4658;
  --gt-texto-2: #2E3B4E;
  --gt-suave: #4A5568;
  --gt-placeholder: #5B6676;
  --gt-linha: #DDE3EA;
  --gt-linha-forte: #B7C3D0;
  --gt-fundo: #F2F6FA;
  --gt-fundo-2: #F7FAFD;
  --gt-laranja: #B94F17;
  --gt-laranja-escuro: #9E4212;
  --gt-laranja-claro: #FDEDE3;
  --gt-laranja-tinta: #6E2C08;
  --gt-laranja-vivo: #E8792B;
  --gt-amarelo: #F5C518;
  --gt-ouro: #E9B949;
  --gt-ciano: #7EC3D4;
  --gt-teal: #0B7480;
  --gt-teal-escuro: #0A6670;
  --gt-teal-claro: #E3F1F2;
  --gt-verde: #1E9E5A;
  --gt-verde-claro: #E6F4EC;
  --gt-verde-tinta: #145A35;
  --gt-erro: #B42318;
  --gt-erro-claro: #FEF3F2;
  --gt-sombra-card: 0 20px 48px rgba(5, 20, 45, 0.30);
  --gt-fonte-titulo: 'Montserrat', 'Segoe UI', Arial, sans-serif;
  --gt-fonte-texto: 'Source Sans 3', 'Segoe UI', Arial, sans-serif;
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

/* ---------- Base das secoes ---------- */
.gt-sec {
  font-family: var(--gt-fonte-texto);
  font-size: 16px;
  line-height: 1.55;
  color: var(--gt-tinta);
  scroll-margin-top: 24px;
}
.gt-sec *, .gt-sec *::before, .gt-sec *::after { box-sizing: border-box; }
.gt-sec h1, .gt-sec h2, .gt-sec h3, .gt-sec h4, .gt-sec p, .gt-sec ul, .gt-sec ol, .gt-sec figure { margin: 0; }
.gt-sec img { max-width: 100%; }
.gt-sec [hidden] { display: none !important; }
.gt-sec a { color: var(--gt-azul); }
.gt-sec a:hover { color: var(--gt-navy); }
.gt-sec :focus-visible { outline: 3px solid var(--gt-azul-medio); outline-offset: 2px; }

.gt-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.gt-secao-padrao { padding: 88px 0; }

.gt-sr {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.gt-eyebrow {
  display: block;
  font-family: var(--gt-fonte-titulo);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gt-laranja);
}
.gt-titulo-secao {
  font-family: var(--gt-fonte-titulo);
  font-weight: 800;
  font-size: 34px;
  line-height: 1.15;
  color: var(--gt-navy);
}
.gt-titulo-secao b, .gt-titulo-secao strong { font-weight: 800; }
.gt-texto { font-size: 16px; line-height: 1.55; color: var(--gt-texto); }

/* ---------- Botoes ---------- */
.gt-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 56px; padding: 0 28px;
  border: 2px solid transparent; border-radius: 999px;
  font-family: var(--gt-fonte-titulo); font-weight: 800; font-size: 17px; line-height: 1.2;
  text-decoration: none; text-align: center; cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.gt-btn svg { flex-shrink: 0; }
.gt-sec .gt-btn--primario { background: var(--gt-laranja); color: #fff; box-shadow: 0 6px 16px rgba(185, 79, 23, 0.28); }
.gt-sec .gt-btn--primario:hover { background: var(--gt-laranja-escuro); color: #fff; }
.gt-sec .gt-btn--contorno { border-color: var(--gt-azul); color: var(--gt-azul); background: #fff; font-weight: 700; font-size: 16px; }
.gt-sec .gt-btn--contorno:hover { background: var(--gt-azul-claro); color: var(--gt-navy); }
.gt-sec .gt-btn--amarelo { background: var(--gt-amarelo); color: var(--gt-navy); }
.gt-sec .gt-btn--amarelo:hover { background: #E2B30C; color: var(--gt-navy); }
.gt-sec .gt-btn--contorno-claro { border-color: #fff; color: #fff; background: transparent; font-weight: 700; font-size: 16px; }
.gt-sec .gt-btn--contorno-claro:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.gt-btn[disabled] { opacity: .6; cursor: not-allowed; box-shadow: none; }

/* Links laterais (passo a passo e duvidas) */
.gt-links-laterais { display: flex; flex-direction: column; gap: 10px; padding-top: 6px; list-style: none; padding-left: 0; }
.gt-link-lateral {
  display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 10px 18px;
  border-radius: 14px; background: var(--gt-fundo);
  font-weight: 700; color: var(--gt-navy); text-decoration: none;
}
.gt-sec .gt-link-lateral { color: var(--gt-navy); }
.gt-link-lateral:hover { background: var(--gt-azul-claro); }
.gt-link-lateral__icone { display: grid; place-items: center; width: 24px; height: 24px; flex-shrink: 0; color: var(--gt-azul); }
.gt-link-lateral__icone img { width: 24px; height: 24px; object-fit: contain; }

/* ==========================================================================
   01 - Banner
   ========================================================================== */
.gt-banner { background: #E5EAED; }
.gt-banner picture, .gt-banner img { display: block; width: 100%; height: auto; }

/* ==========================================================================
   02 - Introducao (faixa abaixo do banner)
   ========================================================================== */
.gt-hero { background: #fff; border-bottom: 1px solid var(--gt-linha); }
.gt-hero__container {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 20px 32px; padding-top: 28px; padding-bottom: 28px;
}
.gt-hero__texto { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.gt-selo {
  display: inline-flex; align-self: flex-start; align-items: center; gap: 10px;
  padding: 6px 12px; border-radius: 999px; background: var(--gt-verde-claro);
  font-size: 14px; font-weight: 700; color: var(--gt-verde-tinta);
}
.gt-selo::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--gt-verde); flex-shrink: 0; }
.gt-selo__curto { display: none; }
.gt-hero__titulo { font-family: var(--gt-fonte-titulo); font-weight: 800; font-size: 26px; line-height: 1.2; color: var(--gt-navy); }
.gt-hero__descricao { color: var(--gt-texto); }
.gt-hero__acoes { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }

/* ==========================================================================
   Como funciona (3 passos)
   ========================================================================== */
.gt-como { background: var(--gt-fundo); padding: 88px 0 24px; }
.gt-como__cabecalho { display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center; margin-bottom: 44px; }
.gt-como__lista { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.gt-card-passo { background: #fff; border-radius: 20px; padding: 30px 28px; display: flex; flex-direction: column; gap: 14px; }
.gt-card-passo__topo { display: flex; align-items: center; justify-content: space-between; }
.gt-card-passo__numero {
  display: grid; place-items: center; width: 56px; height: 56px; border-radius: 14px; flex-shrink: 0;
  background: var(--gt-amarelo); font-family: var(--gt-fonte-titulo); font-weight: 900; font-size: 26px; color: var(--gt-navy);
}
.gt-card-passo:nth-child(3n+2) .gt-card-passo__numero { background: var(--gt-ciano); }
.gt-card-passo:nth-child(3n) .gt-card-passo__numero { background: var(--gt-ouro); }
.gt-card-passo__icone { color: var(--gt-azul); }
.gt-card-passo__titulo { font-family: var(--gt-fonte-titulo); font-weight: 800; font-size: 21px; line-height: 1.25; color: var(--gt-navy); }
.gt-card-passo__texto { color: var(--gt-texto); }
.gt-card-passo__link { font-size: 15px; font-weight: 700; }

/* ==========================================================================
   05 - Cronograma (faixa escura, logo abaixo do "Como funciona")
   ========================================================================== */
.gt-cronograma { background: var(--gt-fundo); padding: 0 0 88px; }
.gt-cronograma__caixa {
  display: flex; flex-wrap: wrap; align-items: center; gap: 20px 36px;
  padding: 24px 32px; border-radius: 20px; background: var(--gt-navy); color: #fff;
}
.gt-cronograma__titulo { font-family: var(--gt-fonte-titulo); font-weight: 800; font-size: 20px; line-height: 1.2; color: #fff; flex: 0 0 auto; }
.gt-cronograma__titulo b, .gt-cronograma__titulo strong { font-weight: 800; }
.gt-cronograma__subtitulo { display: block; margin-top: 2px; font-family: var(--gt-fonte-texto); font-weight: 400; font-size: 14px; color: #C9D6E8; }
.gt-cronograma__lista { flex: 1 1 520px; list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 16px 28px; }
.gt-cronograma__item { padding-left: 14px; border-left: 3px solid var(--gt-ciano); }
.gt-cronograma__item:first-child { border-left-color: var(--gt-amarelo); }
.gt-cronograma__data { display: block; font-family: var(--gt-fonte-titulo); font-weight: 800; font-size: 16px; color: #fff; }
.gt-cronograma__item:first-child .gt-cronograma__data { color: var(--gt-amarelo); }
.gt-cronograma__rotulo { display: block; font-size: 14px; line-height: 1.4; color: #DCE6F3; }
.gt-cronograma__rotulo p { margin: 0; }

/* ==========================================================================
   06 - Passo a passo  /  Duvidas frequentes (mesmo layout de duas colunas)
   ========================================================================== */
.gt-duas-colunas { display: flex; flex-wrap: wrap; gap: 48px 56px; align-items: flex-start; }
.gt-duas-colunas__lateral { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.gt-duas-colunas__principal { flex: 999 1 560px; min-width: 0; }
@media (min-width: 960px) {
  .gt-duas-colunas__lateral { position: sticky; top: 24px; }
}

.gt-passos { background: #fff; }
.gt-passos__lista { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.gt-passo { display: flex; gap: 20px; padding: 26px 28px; border: 1px solid var(--gt-linha); border-radius: 20px; background: #fff; }
.gt-passo__marcador {
  display: flex; flex-direction: column; align-items: center; gap: 2px; flex-shrink: 0; align-self: flex-start;
  width: 64px; padding: 10px 0; border-radius: 14px; background: var(--gt-navy); color: #fff;
}
.gt-passo__marcador-rotulo { font-size: 11px; font-weight: 700; letter-spacing: .1em; color: #C9D6E8; }
.gt-passo__marcador-numero { font-family: var(--gt-fonte-titulo); font-weight: 900; font-size: 26px; line-height: 1; color: var(--gt-amarelo); }
.gt-passo__conteudo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.gt-passo__titulo { font-family: var(--gt-fonte-titulo); font-weight: 800; font-size: 20px; line-height: 1.25; color: var(--gt-navy); }
.gt-passo__intro { font-size: 15px; color: var(--gt-texto); }

/* Conteudo rico (bodyField) dos passos: listas com marcadores coloridos */
.gt-rico { font-size: 15px; line-height: 1.5; color: var(--gt-texto-2); }
.gt-rico > * + * { margin-top: 10px; }
.gt-rico ul, .gt-rico ol { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 8px 24px; }
.gt-rico li { position: relative; padding-left: 17px; }
.gt-rico li::before { content: ""; position: absolute; left: 0; top: .55em; width: 7px; height: 7px; background: var(--gt-laranja-vivo); }
.gt-rico li:nth-child(3n+2)::before { background: var(--gt-azul-medio); }
.gt-rico li:nth-child(3n)::before { background: var(--gt-ouro); }
.gt-rico li ul { display: block; margin-top: 6px; }
.gt-rico a { font-weight: 700; }

.gt-nota-importante {
  padding: 12px 16px; border-radius: 12px; background: var(--gt-laranja-claro);
  font-size: 14px; line-height: 1.5; color: var(--gt-laranja-tinta);
}
.gt-nota-importante p { margin: 0; }

/* Duvidas frequentes */
.gt-duvidas { background: #fff; }
.gt-faq { display: flex; flex-direction: column; gap: 12px; }
.gt-faq__item { border: 1.5px solid var(--gt-linha); border-radius: 16px; background: #fff; }
.gt-faq__item[open] { border-color: var(--gt-azul); background: var(--gt-fundo-2); }
.gt-faq__pergunta {
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  min-height: 64px; padding: 14px 22px; list-style: none; cursor: pointer;
  font-family: var(--gt-fonte-titulo); font-weight: 700; font-size: 17px; line-height: 1.35; color: var(--gt-navy);
}
.gt-faq__pergunta::-webkit-details-marker { display: none; }
.gt-faq__pergunta::marker { content: ""; }
.gt-faq__icone {
  position: relative; display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%;
  flex-shrink: 0; background: var(--gt-azul-claro); color: var(--gt-azul);
}
.gt-faq__icone::before, .gt-faq__icone::after { content: ""; position: absolute; width: 12px; height: 2px; border-radius: 2px; background: currentColor; }
.gt-faq__icone::after { transform: rotate(90deg); transition: transform .15s ease; }
.gt-faq__item[open] .gt-faq__icone { background: var(--gt-azul); color: #fff; }
.gt-faq__item[open] .gt-faq__icone::after { transform: rotate(0deg); }
.gt-faq__resposta { padding: 0 22px 20px; color: var(--gt-texto); }
.gt-faq__resposta > * + * { margin-top: 10px; }

/* ==========================================================================
   Chamada final
   ========================================================================== */
.gt-chamada { background: #fff; padding: 0 0 88px; }
.gt-chamada__caixa {
  position: relative; overflow: hidden; display: flex; flex-wrap: wrap; align-items: center; gap: 40px;
  padding: 56px; border-radius: 28px; background: var(--gt-teal);
}
.gt-chamada__decor { position: absolute; border-radius: 50%; pointer-events: none; }
.gt-chamada__decor--1 { right: -60px; top: -60px; width: 260px; height: 260px; background: var(--gt-teal-escuro); }
.gt-chamada__decor--2 { right: 120px; bottom: -110px; width: 220px; height: 220px; background: var(--gt-amarelo); }
.gt-chamada__texto { position: relative; flex: 999 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 18px; color: #fff; }
.gt-chamada__titulo { font-family: var(--gt-fonte-titulo); font-weight: 900; font-size: 40px; line-height: 1.1; color: #fff; }
.gt-chamada__titulo b, .gt-chamada__titulo strong, .gt-chamada__titulo em { font-style: normal; font-weight: 900; color: var(--gt-amarelo); }
.gt-chamada__descricao { font-size: 18px; color: #E2F2F3; }
.gt-chamada__acoes { display: flex; flex-wrap: wrap; gap: 14px; }
.gt-chamada__foto { position: relative; flex: 1 1 220px; display: flex; justify-content: center; }
.gt-foto-redonda { width: 230px; height: 230px; border-radius: 50%; overflow: hidden; background: var(--gt-laranja-vivo); border: 6px solid #fff; }
.gt-foto-redonda img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center top; }

/* ==========================================================================
   04 - Relacao de inscritos / classificados
   ========================================================================== */
.gt-inscritos { background: var(--gt-fundo); }
.gt-inscritos__cabecalho { display: flex; flex-direction: column; gap: 8px; margin-bottom: 28px; }
.gt-filtro { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; margin-bottom: 24px; }
.gt-filtro__campo { display: flex; flex-direction: column; gap: 6px; flex: 0 1 420px; }
.gt-filtro__rotulo { font-weight: 700; font-size: 15px; color: var(--gt-tinta); }
.gt-filtro__contagem { font-size: 14px; color: var(--gt-suave); }
.gt-select {
  width: 100%; min-height: 52px; padding: 0 44px 0 16px;
  border: 1.5px solid var(--gt-linha-forte); border-radius: 12px; background: #fff;
  font: inherit; font-size: 16px; color: var(--gt-tinta);
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23174A8C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
}
.gt-select:focus { outline: none; border-color: var(--gt-azul); box-shadow: 0 0 0 3px rgba(23, 74, 140, .18); }
.gt-inscritos__lista { display: grid; gap: 16px; }
.gt-inscritos__unidade { padding: 22px 26px; border: 1px solid var(--gt-linha); border-radius: 20px; background: #fff; }
.gt-inscritos__titulo { font-family: var(--gt-fonte-titulo); font-weight: 800; font-size: 19px; color: var(--gt-navy); margin-bottom: 12px; }
.gt-inscritos__conteudo { overflow-x: auto; font-size: 15px; color: var(--gt-texto-2); }
.gt-inscritos__conteudo table { width: 100%; border-collapse: collapse; }
.gt-inscritos__conteudo th, .gt-inscritos__conteudo td { padding: 8px 10px; border-bottom: 1px solid var(--gt-linha); text-align: left; }
.gt-inscritos__conteudo th { font-weight: 700; color: var(--gt-navy); background: var(--gt-fundo); }

/* ==========================================================================
   Formulario de inscricao em etapas
   ========================================================================== */
.gt-inscricao { position: relative; overflow: hidden; background: var(--gt-azul); padding: 88px 0; }
.gt-inscricao__decor { position: absolute; left: -120px; bottom: -120px; width: 300px; height: 300px; border-radius: 50%; background: var(--gt-navy); pointer-events: none; }
.gt-inscricao__container { position: relative; max-width: 1088px; display: flex; flex-direction: column; gap: 36px; }
.gt-inscricao__cabecalho { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-end; justify-content: space-between; color: #fff; }
.gt-inscricao__intro { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.gt-inscricao .gt-eyebrow { color: var(--gt-amarelo); }
.gt-inscricao__titulo { font-family: var(--gt-fonte-titulo); font-weight: 900; font-size: 40px; line-height: 1.08; color: #fff; }
.gt-inscricao__texto { max-width: 560px; font-size: 18px; line-height: 1.55; color: #DCE6F3; }
.gt-inscricao__texto p { margin: 0; }
.gt-inscricao__texto p + p { margin-top: 8px; }
.gt-inscricao__texto a { color: #fff; }
.gt-inscricao__foto { width: 112px; height: 112px; border-width: 4px; flex-shrink: 0; }

.gt-form-card {
  width: 100%; background: #fff; border-radius: 24px; padding: clamp(18px, 3.4vw, 44px);
  box-shadow: var(--gt-sombra-card); display: flex; flex-direction: column; gap: 24px; color: var(--gt-tinta);
}
.gt-form-card__topo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 6px 16px; }
.gt-form-card__titulo { font-family: var(--gt-fonte-titulo); font-weight: 800; font-size: 22px; line-height: 1.25; color: var(--gt-navy); }
.gt-form-card__etapa { font-size: 14px; font-weight: 600; color: var(--gt-suave); }

/* Stepper */
.gt-stepper { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.gt-stepper__item { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; }
.gt-stepper__item::before, .gt-stepper__item::after {
  content: ""; position: absolute; top: 18px; height: 3px; border-radius: 2px; background: var(--gt-linha); width: calc(50% - 25px);
}
.gt-stepper__item::before { left: 0; }
.gt-stepper__item::after { right: 0; }
.gt-stepper__item:first-child::before, .gt-stepper__item:last-child::after { display: none; }
.gt-stepper__item.is-concluida::before, .gt-stepper__item.is-concluida::after, .gt-stepper__item.is-atual::before { background: var(--gt-teal); }
.gt-stepper__marcador {
  display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%;
  border: 2px solid var(--gt-linha-forte); background: #fff; color: var(--gt-suave);
  font-family: var(--gt-fonte-titulo); font-weight: 800; font-size: 15px;
}
.gt-stepper__check { display: none; }
.gt-stepper__rotulo { font-size: 13px; line-height: 1.25; font-weight: 600; color: var(--gt-suave); }
.gt-stepper__item.is-atual .gt-stepper__marcador { border-color: var(--gt-amarelo); background: var(--gt-amarelo); color: var(--gt-navy); }
.gt-stepper__item.is-atual .gt-stepper__rotulo { font-weight: 800; color: var(--gt-navy); }
.gt-stepper__item.is-concluida .gt-stepper__marcador { border-color: var(--gt-teal); background: var(--gt-teal); color: #fff; }
.gt-stepper__item.is-concluida .gt-stepper__numero { display: none; }
.gt-stepper__item.is-concluida .gt-stepper__check { display: block; }
.gt-stepper__item.is-concluida .gt-stepper__rotulo { color: var(--gt-navy); }

/* Etapas */
.gt-inscricao .formulario-cadastro__campos { display: block; }
.gt-etapa { display: flex; flex-direction: column; gap: 20px; }
.gt-etapa__cabecalho { display: flex; flex-direction: column; gap: 2px; }
.gt-etapa__titulo { font-family: var(--gt-fonte-titulo); font-weight: 800; font-size: 19px; color: var(--gt-navy); }
.gt-etapa__titulo:focus { outline: none; }
.gt-etapa__descricao { font-size: 15px; color: var(--gt-suave); }
.gt-etapa__campos { display: flex; flex-direction: column; gap: 18px; }
.gt-etapa__campos--grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; }
.gt-etapa__campos--grade > .campo--largo,
.gt-etapa__campos--grade > .campo--opcoes,
.gt-etapa__campos--grade > .formulario-secao,
.gt-etapa__campos--grade > .formulario-cadastro__inelegivel { grid-column: 1 / -1; }
.gt-etapa__acoes {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 16px;
  padding-top: 20px; border-top: 1px solid var(--gt-linha);
}
.gt-etapa__acoes .gt-btn { flex: 0 1 auto; }
.gt-etapa__acoes .gt-btn--primario { min-width: 220px; margin-left: auto; }
.gt-etapa__tempo { font-size: 14px; color: var(--gt-suave); }

/* Subtitulos de secao dentro da etapa (Requisitos, Impedimentos, Documentacao) */
.gt-inscricao .formulario-secao { padding-top: 4px; }
.gt-inscricao .formulario-secao + .campo { margin-top: -6px; }
.gt-inscricao .formulario-secao__titulo {
  font-family: var(--gt-fonte-titulo); font-weight: 700; font-size: 13px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--gt-laranja);
}
.gt-aviso { display: flex; gap: 10px; padding: 12px 16px; border-radius: 12px; font-size: 14px; line-height: 1.5; }
.gt-aviso svg { flex-shrink: 0; margin-top: 2px; }
.gt-aviso--info { background: var(--gt-teal-claro); color: #0A5560; }
.gt-aviso--alerta { background: var(--gt-laranja-claro); color: var(--gt-laranja-tinta); }
.gt-aviso--lgpd { background: #FFF6D6; color: #4A3A00; }

/* Campos */
.gt-inscricao .campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gt-inscricao .campo label,
.gt-inscricao .rotulo-grupo { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.35; color: var(--gt-tinta); }
.gt-inscricao .campo__obrigatorio { color: var(--gt-tinta); }
.gt-inscricao .campo input[type="text"],
.gt-inscricao .campo input[type="tel"],
.gt-inscricao .campo input[type="email"],
.gt-inscricao .campo textarea,
.gt-inscricao .campo select:not(.gt-busca__select) {
  width: 100%; min-height: 52px; padding: 12px 16px;
  border: 1.5px solid var(--gt-linha-forte); border-radius: 12px; background: #fff;
  font: inherit; font-size: 16px; color: var(--gt-tinta); box-shadow: none;
}
.gt-inscricao .campo input::placeholder { color: var(--gt-placeholder); opacity: 1; }
.gt-inscricao .campo input:focus,
.gt-inscricao .campo textarea:focus,
.gt-inscricao .campo select:focus { outline: none; border-color: var(--gt-azul); box-shadow: 0 0 0 3px rgba(23, 74, 140, .18); }
.gt-inscricao .gestaoErro,
.gt-inscricao .campo input.gestaoErro { border-color: var(--gt-erro) !important; }
.gt-inscricao .campoErro { display: block; margin: 2px 0 0; font-size: 14px; font-weight: 600; color: var(--gt-erro); }

/* Radios em pilula (Sim / Nao) */
.gt-inscricao .opcoes { display: flex; flex-wrap: wrap; gap: 10px; }
.gt-inscricao .opcao {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 18px;
  border: 1.5px solid var(--gt-linha-forte); border-radius: 999px; background: #fff;
  font-size: 16px; font-weight: 700; line-height: 1.3; color: var(--gt-tinta); cursor: pointer;
}
.gt-inscricao .opcao:hover { border-color: var(--gt-azul); }
.gt-inscricao .opcao input { width: 18px; height: 18px; margin: 0; flex-shrink: 0; accent-color: var(--gt-azul); }
.gt-inscricao .opcao:has(input:checked) { border-color: var(--gt-azul); background: var(--gt-azul-claro); color: var(--gt-navy); }
.gt-inscricao .opcao:has(input:focus-visible) { outline: 3px solid var(--gt-azul-medio); outline-offset: 2px; }

/* Radios em cartao (mais de 2 opcoes) */
.gt-inscricao .opcoes--cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.gt-inscricao .opcoes--cartoes .opcao { border-radius: 12px; min-height: 56px; padding: 12px 16px; }

/* Pergunta Sim/Nao em linha, com fundo (ex.: "Voce possui 18 anos ou mais?") */
.gt-inscricao .campo--linha {
  flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px;
  padding: 12px 16px; border-radius: 14px; background: var(--gt-fundo);
}
.gt-inscricao .campo--linha .campoErro { flex-basis: 100%; }

/* Separador entre perguntas Sim/Nao da etapa 3 */
.gt-etapa--requisitos .campo--opcoes + .campo--opcoes { padding-top: 18px; border-top: 1px solid var(--gt-linha); }

/* Cartoes de declaracao (checkbox unico) */
.gt-check-card {
  display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px;
  border: 1.5px solid var(--gt-linha-forte); border-radius: 14px; background: #fff;
  font-size: 15px; line-height: 1.5; color: var(--gt-tinta); cursor: pointer;
}
.gt-check-card:hover { border-color: var(--gt-azul); }
.gt-check-card input[type="checkbox"] { width: 20px; height: 20px; margin: 1px 0 0; flex-shrink: 0; accent-color: var(--gt-azul); }
.gt-check-card:has(input:checked) { border-color: var(--gt-azul); background: var(--gt-fundo-2); }
.gt-check-card:has(input:focus-visible) { outline: 3px solid var(--gt-azul-medio); outline-offset: 2px; }
.gt-inscricao .campo label.gt-check-card { font-weight: 400; font-size: 15px; }
.gt-check-card__texto strong { font-weight: 700; }
.gt-check-card--lgpd { cursor: default; }
.gt-inscricao .campo .gt-check-card--lgpd label { cursor: pointer; font-size: 15px; font-weight: 400; }

/* Erro em grupos: borda vermelha nos cartoes e pilulas */
.gt-inscricao .campo:has(.gestaoErro) .gt-check-card,
.gt-inscricao .campo:has(.gestaoErro) .opcao,
.gt-inscricao .consentimento:has(.campoErro) .gt-check-card { border-color: var(--gt-erro); }

/* Termo LGPD */
.gt-inscricao .textLGPD { display: none; padding: 14px 16px; border-radius: 12px; background: var(--gt-fundo); font-size: 14px; color: var(--gt-texto); }
.gt-inscricao .textLGPD.aberto { display: block; }
.gt-inscricao .textLGPD p { margin: 0; }
.gt-inscricao .openTerm,
.gt-inscricao .fechar-termo {
  padding: 0; border: 0; background: none; font: inherit; font-weight: 700;
  color: var(--gt-azul); text-decoration: underline; cursor: pointer;
}
.gt-inscricao .fechar-termo { float: right; margin-left: 12px; }
.gt-inscricao #msgLgpd { margin: 0; }
.gt-inscricao #msgLgpd:empty { display: none; }

/* Busca de curso (combobox criado pelo formGratuidade.js) */
.gt-busca { position: relative; }
.gt-busca__campo { position: relative; }
.gt-busca__campo svg { position: absolute; top: 50%; transform: translateY(-50%); color: var(--gt-azul); pointer-events: none; }
.gt-busca__icone-lupa { left: 14px; }
.gt-busca__icone-seta { right: 14px; }
.gt-inscricao .campo input.gt-busca__input { padding-left: 44px; padding-right: 44px; }
.gt-busca__lista {
  position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 6px);
  max-height: 320px; overflow-y: auto; margin: 0; padding: 6px; list-style: none;
  border: 1.5px solid var(--gt-linha-forte); border-radius: 12px; background: #fff;
  box-shadow: 0 12px 28px rgba(5, 20, 45, .18);
}
.gt-busca__opcao { padding: 10px 12px; border-radius: 8px; font-size: 15px; line-height: 1.35; cursor: pointer; }
.gt-busca__opcao:hover, .gt-busca__opcao.is-ativa { background: var(--gt-azul-claro); color: var(--gt-navy); }
.gt-busca__opcao[aria-selected="true"] { font-weight: 700; }
.gt-busca__info { padding: 10px 12px; font-size: 14px; color: var(--gt-suave); }
.gt-busca__select { position: absolute !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.gt-busca__ajuda { font-size: 14px; color: var(--gt-suave); }

/* Mensagem de inelegibilidade */
.gt-inscricao .formulario-cadastro__inelegivel {
  padding: 16px 18px; border: 1px solid #F4C7BE; border-left: 4px solid var(--gt-erro); border-radius: 12px;
  background: var(--gt-erro-claro); font-size: 15px; line-height: 1.5; color: var(--gt-tinta);
}
.gt-inscricao .formulario-cadastro__inelegivel[hidden] { display: none; }
.gt-inscricao .formulario-cadastro__inelegivel-titulo { display: block; margin-bottom: 6px; font-family: var(--gt-fonte-titulo); font-weight: 800; color: var(--gt-erro); }
.gt-inscricao .formulario-cadastro__inelegivel p { margin: 0 0 8px; }
.gt-inscricao .formulario-cadastro__inelegivel-dica { margin: 0; font-size: 14px; color: var(--gt-suave); }

/* Erro de envio */
.gt-inscricao .gt-etapa__acoes .campoErro { flex-basis: 100%; text-align: right; }

/* Sucesso */
.gt-inscricao .formulario-cadastro__sucesso { padding: 16px 0; text-align: center; }
.gt-inscricao .formulario-cadastro__sucesso.hidden { display: none; }
.gt-inscricao .formulario-cadastro__sucesso:focus { outline: none; }
.gt-sucesso__icone { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 16px; border-radius: 50%; background: var(--gt-verde-claro); color: var(--gt-verde); }
.gt-inscricao .formulario-cadastro__sucesso-titulo { margin: 0 0 8px; font-family: var(--gt-fonte-titulo); font-weight: 900; font-size: 26px; color: var(--gt-navy); }
.gt-inscricao .formulario-cadastro__sucesso-mensagem { margin: 0 0 8px; font-weight: 700; color: var(--gt-texto-2); }
.gt-inscricao .formulario-cadastro__sucesso-texto { max-width: 520px; margin: 0 auto; color: var(--gt-texto); }

.gt-inscricao .is-oculto { display: none !important; }
.gt-inscricao .recaptcha_form:empty { display: none; }

/* ==========================================================================
   Responsivo
   ========================================================================== */
@media (max-width: 767px) {
  .gt-secao-padrao, .gt-inscricao { padding: 56px 0; }
  .gt-container { padding: 0 16px; }
  .gt-titulo-secao { font-size: 26px; }

  .gt-hero__container { padding-top: 22px; padding-bottom: 28px; }
  .gt-selo__longo { display: none; }
  .gt-selo__curto { display: inline; }
  .gt-hero__titulo { font-size: 24px; }
  .gt-hero__acoes { width: 100%; flex-direction: column; align-items: stretch; }
  .gt-hero__acoes .gt-btn { width: 100%; }

  .gt-como { padding-top: 56px; }
  .gt-como__cabecalho { align-items: flex-start; text-align: left; margin-bottom: 24px; }
  .gt-como__lista { gap: 12px; }
  .gt-card-passo { display: grid; grid-template-columns: auto 1fr; column-gap: 16px; row-gap: 4px; padding: 20px; }
  .gt-card-passo__topo { grid-row: 1 / span 3; align-self: start; }
  .gt-card-passo__numero { width: 48px; height: 48px; font-size: 22px; }
  .gt-card-passo__icone { display: none; }
  .gt-card-passo__titulo { font-size: 18px; }
  .gt-card-passo__texto { font-size: 15px; }

  .gt-cronograma { padding-bottom: 56px; }
  .gt-cronograma__caixa { padding: 20px; }
  .gt-cronograma__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); flex-basis: 100%; }

  .gt-duas-colunas { gap: 28px; }
  .gt-passo { flex-direction: column; gap: 12px; padding: 20px; }
  .gt-passo__marcador { flex-direction: row; width: auto; padding: 6px 12px; gap: 6px; align-items: baseline; }
  .gt-passo__marcador-numero { font-size: 20px; }
  .gt-faq__pergunta { font-size: 16px; padding: 12px 16px; }
  .gt-faq__resposta { padding: 0 16px 16px; }

  .gt-chamada { padding-bottom: 56px; }
  .gt-chamada__caixa { padding: 32px 22px; gap: 28px; }
  .gt-chamada__titulo { font-size: 28px; }
  .gt-chamada__descricao { font-size: 16px; }
  .gt-chamada__acoes { flex-direction: column; align-items: stretch; }
  .gt-foto-redonda { width: 180px; height: 180px; }

  .gt-inscricao__titulo { font-size: 30px; }
  .gt-inscricao__texto { font-size: 16px; }
  .gt-inscricao__foto { display: none; }
  .gt-form-card { border-radius: 20px; }
  .gt-stepper__rotulo { font-size: 12px; }
  .gt-etapa__campos--grade { grid-template-columns: minmax(0, 1fr); }
  .gt-etapa__acoes { flex-direction: column-reverse; align-items: stretch; }
  .gt-etapa__acoes .gt-btn { width: 100%; min-width: 0; margin-left: 0; }
  .gt-etapa__tempo { text-align: center; }
  .gt-inscricao .gt-etapa__acoes .campoErro { text-align: center; }
}
