/* ==========================================================================
   TIPOGRAFIA NASTE (FONTES LOCAIS FISUL)
   ========================================================================== */
@font-face {
  font-family: 'Naste';
  src: url('../fontes/Naste-Light.woff2') format('woff2'), url('../fontes/Naste-Light.woff') format('woff');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Naste';
  src: url('../fontes/Naste.woff2') format('woff2'), url('../fontes/Naste.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Naste';
  src: url('../fontes/Naste-Bold.woff2') format('woff2'), url('../fontes/Naste-Bold.woff') format('woff');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

:root{--fundo:#f7f7f7;--superficie:#ffffff;--azul-fisul:#022d78;--azul-profundo:#011a4d;--azul-medio:#0b3d91;--azul-claro:#e8edf6;--laranja:#f29a32;--texto:#000000;--texto-suave:#4a5060;--texto-sobre-azul:#ffffff;--texto-sobre-azul-suave:#b9c6e0;--linha:#d6dbe4;--linha-sobre-azul:#2f4f8c;--espaco-1:4px;--espaco-2:8px;--espaco-3:16px;--espaco-4:24px;--espaco-5:40px;--espaco-6:64px;--espaco-7:112px;--raio-p:4px;--raio-m:8px;--raio-g:16px;--sombra-painel:0 12px 32px rgba(2, 45, 120, 0.12);--font-sans:Naste, "Helvetica Neue", Arial, sans-serif;}
html { scroll-behavior: smooth; scroll-padding-top: 110px; overflow-x: hidden; }
body#pag_curso_interno_novo { margin: 0 !important; background: #f7f7f7; width: 100% !important; max-width: 100% !important; overflow-x: hidden; }
/* FISUL — componentes da página de curso. Depende de tokens.css (variáveis --fundo, --azul-fisul…). */
.fs, .fs *, .fs *::before, .fs *::after { box-sizing: border-box; }
.fs { font-family: var(--font-sans); font-weight: 300; font-size: 17px; line-height: 28px; color: var(--texto); background: var(--fundo); -webkit-font-smoothing: antialiased; }
.fs :where(h1, h2, h3, h4, p, ul, ol, dl, dd, figure) { margin: 0; }
.fs :where(ul, ol) { padding: 0; list-style: none; }
.fs :where(a) { color: inherit; }
.fs img { display: block; max-width: 100%; }
.fs :focus-visible { outline: 3px solid var(--laranja); outline-offset: 3px; border-radius: 2px; }
.fs-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.fs-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Tipografia */
.fs-h2 { font-size: 40px; line-height: 46px; font-weight: 700; color: var(--azul-fisul); letter-spacing: -0.005em; max-width: 20ch; }
.fs-h3 { font-size: 22px; line-height: 28px; font-weight: 700; color: var(--azul-fisul); }
.fs-lead { font-size: 20px; line-height: 32px; font-weight: 300; max-width: 60ch; }
.fs-legenda { font-size: 13px; line-height: 18px; font-weight: 400; color: var(--texto-suave); }
.fs-num { font-variant-numeric: tabular-nums lining-nums; }
.fs-sec { padding: 112px 0 0; }
.fs-sec__head { display: grid; gap: 16px; margin-bottom: 40px; }

/* Botões */
.fs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: var(--raio-m); font: 400 15px/20px var(--font-sans); text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.fs-btn--primario { background: var(--laranja); color: var(--azul-fisul); font-weight: 700; }
.fs-btn--primario:hover { background: #f7b261; }
.fs-btn--contorno { border-color: currentColor; color: var(--texto-sobre-azul); background: transparent; }
.fs-btn--contorno:hover { background: rgba(255,255,255,.1); }
.fs-btn--azul { background: var(--azul-fisul); color: var(--texto-sobre-azul); }
.fs-btn--azul:hover { background: #0a3a8f; }
.fs-btn--largo { width: 100%; }
.fs-btn svg { width: 18px; height: 18px; flex: none; }

/* Hero */
.fs-hero { position: relative; width: 100%; color: var(--texto-sobre-azul); background: var(--azul-fisul) center / cover no-repeat; background-image: var(--fs-hero-img); }
.fs-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(2,45,120,.94) 0%, rgba(2,45,120,.82) 48%, rgba(2,45,120,.35) 100%); }
#pag_curso_interno_novo #banner .centro { display: block !important; }
.fs-hero__in, #pag_curso_interno_novo .fs-hero__in { position: relative; width: 100% !important; max-width: 1200px !important; margin: 0 auto !important; padding: 200px 24px 132px !important; box-sizing: border-box !important; }
.fs-migalha { font: 400 13px/18px var(--font-sans); color: var(--texto-sobre-azul-suave); display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 28px; }
.fs-migalha a { text-decoration: none; } .fs-migalha a:hover { text-decoration: underline; }
.fs-parceria { display: inline-flex; align-items: center; gap: 10px; font: 400 14px/20px var(--font-sans); margin-bottom: 14px; }
.fs-parceria::before { content: ""; width: 28px; height: 3px; background: var(--laranja); }

/* Variação exclusiva: MBA Gestão da Saúde para Unidades de Diálise (ID 15) */
.fs-parceria--dialise { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 14px; font-size: 22px; line-height: 28px; font-weight: 600; color: var(--texto-sobre-azul, #ffffff); margin-bottom: 18px; }
.fs-parceria--dialise::before { width: 34px; height: 4px; border-radius: 2px; }
.fs-parceria__logo { height: 32px; width: auto; display: block; object-fit: contain; }
.fs-hero h1 { font-size: 60px; line-height: 62px; font-weight: 700; letter-spacing: -0.01em; max-width: 15ch; }
.fs-hero h1 small { display: block; font-size: 24px; line-height: 30px; font-weight: 300; letter-spacing: 0; margin-bottom: 6px; color: var(--texto-sobre-azul-suave); }
.fs-hero .fs-lead { margin-top: 18px; max-width: 46ch; }
.fs-hero__acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }

/* Linha do tempo — elemento assinatura */
.fs-tempo { position: relative; z-index: 2; margin-top: -88px; }
.fs-tempo__painel { background: var(--superficie); border-radius: var(--raio-g); box-shadow: var(--sombra-painel); padding: 32px 36px 28px; }
.fs-tempo__topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 22px; }
.fs-tempo__marco b { display: block; font-size: 22px; line-height: 28px; font-weight: 700; color: var(--azul-fisul); }
.fs-tempo__marco--fim { text-align: right; }
.fs-tempo__meio { text-align: center; font: 400 14px/20px var(--font-sans); color: var(--texto-suave); }
.fs-tempo__meio strong { color: var(--azul-fisul); font-weight: 700; }
.fs-regua { position: relative; height: 44px; }
.fs-regua__trilho { position: absolute; left: 0; right: 0; top: 10px; height: 8px; border-radius: 4px; background: var(--azul-claro); overflow: hidden; }
.fs-regua__barra { position: absolute; inset: 0; background: var(--laranja); transform-origin: left center; transform: scaleX(1); }
.fs-regua__meses { position: absolute; left: 0; right: 0; top: 0; display: flex; justify-content: space-between; }
.fs-regua__meses li { position: relative; width: 0; display: flex; flex-direction: column; align-items: center; }
.fs-regua__meses li::before { content: ""; width: 2px; height: 28px; background: var(--superficie); }
.fs-regua__meses li:first-child::before, .fs-regua__meses li:last-child::before { background: var(--azul-fisul); width: 4px; height: 28px; border-radius: 2px; }
.fs-regua__meses span { font: 400 12px/16px var(--font-sans); color: var(--texto-suave); white-space: nowrap; margin-top: 2px; text-transform: lowercase; }
.fs-regua__meses li:first-child { align-items: flex-start; } .fs-regua__meses li:last-child { align-items: flex-end; }
.fs-regua__meses li.is-ano span { color: var(--azul-fisul); font-weight: 700; }
.fs-fatos { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--linha); margin-top: 22px; padding-top: 22px; gap: 24px; }
.fs-fatos div { display: grid; gap: 4px; align-content: start; }
.fs-fatos dt { font: 400 13px/18px var(--font-sans); color: var(--texto-suave); }
.fs-fatos dd { font-size: 19px; line-height: 25px; font-weight: 700; color: var(--azul-fisul); }
@media (prefers-reduced-motion: no-preference) {
  .fs-regua.is-animando .fs-regua__barra { animation: fs-encher 1.6s cubic-bezier(.3,.7,.2,1) .3s both; }
  @keyframes fs-encher { from { transform: scaleX(0); } }
}

/* Sobre */
.fs-sobre { display: grid; grid-template-columns: 1.35fr 1fr; gap: 64px; align-items: start; }
.fs-sobre__texto { display: grid; gap: 20px; max-width: 64ch; }
.fs-dominar { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-g); padding: 28px 30px; }
.fs-dominar h3 { margin-bottom: 16px; }
.fs-dominar li { position: relative; padding: 9px 0 9px 22px; border-top: 1px solid var(--linha); font-weight: 400; font-size: 16px; line-height: 24px; }
.fs-dominar li:first-child { border-top: 0; }
.fs-dominar li::before { content: ""; position: absolute; left: 0; top: 18px; width: 8px; height: 8px; background: var(--laranja); border-radius: 2px; }
.fs-abcdt { margin-top: 20px; background: var(--azul-claro); border-radius: var(--raio-m); padding: 18px 20px; font-size: 15px; line-height: 23px; font-weight: 400; }
.fs-abcdt strong { color: var(--azul-fisul); }

/* Currículo */
.fs-curriculo__barra { display: flex; justify-content: space-between; align-items: center; gap: 16px; border-bottom: 2px solid var(--azul-fisul); padding-bottom: 12px; }
.fs-link-btn { background: none; border: 0; padding: 4px 0; font: 400 14px/20px var(--font-sans); color: var(--azul-fisul); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.fs-disc { border-bottom: 1px solid var(--linha); }
.fs-disc summary { list-style: none; display: grid; grid-template-columns: 56px 1fr 28px; gap: 12px; align-items: baseline; padding: 20px 4px; cursor: pointer; }
.fs-disc summary::-webkit-details-marker { display: none; }
.fs-disc__n { font-size: 15px; font-weight: 700; color: var(--texto-suave); font-variant-numeric: tabular-nums; }
.fs-disc__t { font-size: 20px; line-height: 27px; font-weight: 700; color: var(--azul-fisul); }
.fs-disc__i { position: relative; width: 18px; height: 18px; align-self: center; justify-self: end; }
.fs-disc__i::before, .fs-disc__i::after { content: ""; position: absolute; left: 0; top: 8px; width: 18px; height: 2px; background: var(--azul-fisul); transition: transform .2s; }
.fs-disc__i::after { transform: rotate(90deg); }
.fs-disc[open] .fs-disc__i::after { transform: rotate(0); }
.fs-disc[open] .fs-disc__n { color: var(--azul-fisul); }
.fs-disc summary:hover .fs-disc__t { text-decoration: underline; text-decoration-color: var(--laranja); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.fs-disc__c { padding: 0 44px 24px 72px; max-width: 80ch; }
.fs-disc--pilar { background: var(--azul-claro); border-bottom: 0; border-radius: 0 0 var(--raio-m) var(--raio-m); }
.fs-disc--pilar summary { padding-left: 12px; padding-right: 16px; }

/* Coordenação e docentes */
.fs-coord { display: grid; grid-template-columns: 280px 1fr; gap: 48px; align-items: start; align-content: start; }
.fs-coord__foto { border-radius: var(--raio-g); overflow: hidden; background: var(--azul-claro); aspect-ratio: 320 / 424; }
.fs-coord__foto img { width: 100%; height: 100%; object-fit: cover; }
.fs-coord__papel { font: 400 14px/20px var(--font-sans); color: var(--texto-suave); margin-bottom: 6px; }
.fs-coord__nome { font-size: 34px; line-height: 40px; font-weight: 700; color: var(--azul-fisul); }
.fs-coord__tit { display: inline-block; margin: 12px 0 20px; font: 400 13px/18px var(--font-sans); background: var(--azul-claro); color: var(--azul-fisul); border-radius: var(--raio-p); padding: 4px 10px; }
.fs-coord__bio {
  display: grid;
  gap: 16px;
  max-width: 66ch;
  font-family: var(--font-sans) !important;
  font-weight: 300 !important;
  font-size: 17px !important;
  line-height: 28px !important;
  color: var(--texto) !important;
  word-break: break-word;
}
.fs-coord__bio p,
.fs-coord__bio div,
.fs-coord__bio span {
  font-family: var(--font-sans) !important;
  font-weight: 300 !important;
  font-size: 17px !important;
  line-height: 28px !important;
  color: var(--texto) !important;
  margin: 0 0 16px 0 !important;
}
.fs-coord__bio p:last-child,
.fs-coord__bio div:last-child {
  margin-bottom: 0 !important;
}
.fs-coord__bio strong,
.fs-coord__bio b {
  font-family: var(--font-sans) !important;
  font-weight: 700 !important;
  color: var(--texto) !important;
}
.fs-coord__bio em,
.fs-coord__bio i {
  font-style: italic !important;
}
.fs-coord__bio u {
  text-decoration: underline !important;
}
.fs-coord__bio ul {
  margin: 12px 0 18px 24px !important;
  padding: 0 !important;
  list-style: disc !important;
}
.fs-coord__bio ol {
  margin: 12px 0 18px 24px !important;
  padding: 0 !important;
  list-style: decimal !important;
}
.fs-coord__bio li {
  margin-bottom: 6px !important;
  font-weight: 300 !important;
  font-size: 17px !important;
  line-height: 26px !important;
  color: var(--texto) !important;
  list-style: inherit !important;
}
.fs-coord__bio a {
  color: var(--azul-fisul) !important;
  text-decoration: underline !important;
}
.fs-coord__bio.is-truncada {
  display: -webkit-box !important;
  -webkit-line-clamp: 8;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.fs-coord__leiamais {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 0;
  background: none;
  border: 0;
  color: var(--azul-fisul);
  font-family: var(--font-sans);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .15s;
}
.fs-coord__leiamais:hover {
  color: var(--laranja);
}
.fs-coord__leiamais svg {
  width: 14px;
  height: 14px;
  flex: none;
  transition: transform .2s ease;
}
.fs-coord__leiamais[aria-expanded="true"] svg {
  transform: rotate(180deg);
}
.fs-coord__leiamais[hidden] {
  display: none !important;
}
.fs-coord__mail { margin-top: 20px; font: 400 15px/20px var(--font-sans); }
.fs-coord__mail a { color: var(--azul-fisul); text-underline-offset: 3px; }
.fs-docentes { margin-top: 64px; padding-top: 40px; border-top: 1px solid var(--linha); display: grid; grid-template-columns: 1fr 2.2fr; gap: 48px; }
.fs-docentes p { margin-top: 12px; color: var(--texto-suave); font-size: 16px; line-height: 26px; }
.fs-docentes ul { columns: 3; column-gap: 32px; }
.fs-docentes li { break-inside: avoid; padding: 10px 0; border-top: 1px solid var(--linha); font-weight: 400; font-size: 16px; line-height: 22px; }

/* Investimento */
.fs-invest { margin-top: 112px; background: var(--azul-fisul); color: var(--texto-sobre-azul); padding: 96px 0; }
.fs-invest__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.fs-invest .fs-h2 { color: var(--texto-sobre-azul); }
.fs-invest__intro { margin-top: 16px; color: var(--texto-sobre-azul-suave); max-width: 44ch; }
.fs-vinculo { margin: 36px 0 0; padding: 0; border: 0; display: grid; gap: 10px; }
.fs-vinculo legend { font: 400 15px/20px var(--font-sans); margin-bottom: 12px; padding: 0; }
.fs-opcao { position: relative; display: grid; grid-template-columns: 22px 1fr auto; gap: 14px; align-items: center; padding: 16px 18px; border: 2px solid var(--linha-sobre-azul); border-radius: var(--raio-m); cursor: pointer; transition: border-color .15s, background-color .15s; }
.fs-opcao:hover { border-color: var(--texto-sobre-azul-suave); }
.fs-opcao input { position: absolute; opacity: 0; pointer-events: none; }
.fs-opcao__r { width: 22px; height: 22px; border-radius: 50%; border: 2px solid var(--texto-sobre-azul-suave); display: grid; place-items: center; }
.fs-opcao__t { font: 400 15px/21px var(--font-sans); }
.fs-opcao__t small { display: block; font-size: 13px; line-height: 18px; color: var(--texto-sobre-azul-suave); margin-top: 2px; }
.fs-opcao__d { font: 700 14px/18px var(--font-sans); color: var(--laranja); white-space: nowrap; }
.fs-opcao:has(input:checked) { border-color: var(--laranja); background: rgba(255,255,255,.06); }
.fs-opcao:has(input:checked) .fs-opcao__r::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--laranja); }
.fs-opcao:has(input:focus-visible) { outline: 3px solid var(--laranja); outline-offset: 3px; }
.fs-contagem { margin-top: 36px; display: flex; align-items: baseline; gap: 14px; padding-top: 24px; border-top: 1px solid var(--linha-sobre-azul); }
.fs-contagem b { font-size: 48px; line-height: 48px; font-weight: 700; color: var(--laranja); font-variant-numeric: tabular-nums; }
.fs-contagem span { font: 400 15px/21px var(--font-sans); color: var(--texto-sobre-azul-suave); }

.fs-preco { background: var(--superficie); color: var(--texto); border-radius: var(--raio-g); box-shadow: 0 24px 48px rgba(0,0,0,.25); padding: 32px; }
.fs-preco__rot { font: 400 14px/20px var(--font-sans); color: var(--texto-suave); }
.fs-preco__valor { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; margin-top: 6px; color: var(--azul-fisul); }
.fs-preco__valor b { font-size: 64px; line-height: 64px; font-weight: 700; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.fs-preco__valor span { font: 400 20px/24px var(--font-sans); }
.fs-preco__de { margin-top: 10px; font: 400 14px/20px var(--font-sans); color: var(--texto-suave); min-height: 20px; }
.fs-preco__de s { text-decoration-thickness: 1px; }
.fs-parcelas { margin: 24px 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.fs-parcela { display: grid; gap: 2px; text-align: left; padding: 12px 12px; border: 1px solid var(--linha); border-radius: var(--raio-m); background: var(--fundo); cursor: pointer; font-family: var(--font-sans); color: var(--texto); transition: background-color .15s, border-color .15s; }
.fs-parcela:hover { border-color: var(--azul-fisul); }
.fs-parcela b { font: 700 16px/20px var(--font-sans); color: var(--azul-fisul); }
.fs-parcela span { white-space: nowrap; font: 400 13px/17px var(--font-sans); color: var(--texto-suave); font-variant-numeric: tabular-nums; }
.fs-parcela[aria-pressed="true"] { background: var(--azul-fisul); border-color: var(--azul-fisul); }
.fs-parcela[aria-pressed="true"] b { color: var(--laranja); }
.fs-parcela[aria-pressed="true"] span { color: var(--texto-sobre-azul); }
.fs-preco__acoes { display: grid; gap: 10px; }
.fs-preco__nota { margin-top: 18px; font: 400 13px/19px var(--font-sans); color: var(--texto-suave); }

/* Barra fixa no celular */
.fs-fixa { display: none; }

/* Responsivo */
@media (max-width: 1000px) { .fs-hero__in { padding-top: 160px; } }
@media (max-width: 1080px) {
  .fs-sobre, .fs-invest__grid { grid-template-columns: 1fr; gap: 40px; }
  .fs-docentes { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 760px) {
  .fs { font-size: 16px; line-height: 26px; }
  .fs-wrap { padding: 0 16px; }
  .fs-hero__in { padding: 116px 16px 112px; }
  .fs-migalha { margin-bottom: 20px; }
  .fs-parceria--dialise { font-size: 18px; line-height: 24px; gap: 10px; margin-bottom: 16px; }
  .fs-parceria--dialise::before { width: 24px; height: 3px; }
  .fs-parceria__logo { height: 26px; }
  .fs-hero h1 { font-size: 36px; line-height: 40px; }
  .fs-hero h1 small { font-size: 18px; line-height: 24px; }
  .fs-hero .fs-lead { font-size: 18px; line-height: 28px; }
  .fs-hero__acoes .fs-btn { width: 100%; }
  .fs-tempo { margin-top: -80px; }
  .fs-tempo__painel { padding: 22px 18px 20px; }
  .fs-tempo__meio { display: none; }
  .fs-tempo__marco b { font-size: 18px; line-height: 24px; }
  .fs-regua__meses li:not(:first-child):not(:last-child) span { visibility: hidden; }
  .fs-fatos { grid-template-columns: 1fr 1fr; gap: 18px 16px; }
  .fs-fatos dd { font-size: 17px; line-height: 22px; }
  .fs-sec { padding-top: 72px; }
  .fs-h2 { font-size: 30px; line-height: 36px; }
  .fs-lead { font-size: 18px; line-height: 28px; }
  .fs-dominar { padding: 22px 20px; }
  .fs-disc summary { grid-template-columns: 36px 1fr 22px; gap: 8px; padding: 16px 0; }
  .fs-disc__t { font-size: 17px; line-height: 23px; }
  .fs-disc__c { padding: 0 0 20px 44px; }
  .fs-disc--pilar summary { padding-left: 8px; padding-right: 8px; }
  .fs-coord { grid-template-columns: 1fr; gap: 24px; align-content: start; }
  .fs-coord__foto { max-width: 220px; }
  .fs-coord__nome { font-size: 28px; line-height: 34px; }
  .fs-docentes ul { columns: 1; }
  .fs-invest { margin-top: 72px; padding: 64px 0 72px; }
  .fs-preco { padding: 22px 18px; }
  .fs-preco__valor b { font-size: 48px; line-height: 50px; }
  .fs-parcelas { grid-template-columns: 1fr 1fr; }
  .fs-opcao { grid-template-columns: 22px 1fr; }
  .fs-opcao__d { grid-column: 2; }
  .fs-fixa { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 16px; background: var(--superficie); border-top: 1px solid var(--linha); box-shadow: 0 -8px 24px rgba(2,45,120,.12); transform: translateY(110%); transition: transform .25s; }
  .fs-fixa.is-visivel { transform: none; }
  .fs-fixa__t { font: 400 13px/17px var(--font-sans); color: var(--texto-suave); }
  .fs-fixa__t b { display: block; font-size: 16px; line-height: 20px; color: var(--azul-fisul); }
  .fs-fixa .fs-btn { min-height: 44px; padding: 0 18px; }
}
@media (prefers-reduced-motion: reduce) { .fs * { transition: none !important; } }

/* ==== Cabeçalho e rodapé do site (header.html / footer.html) ====
   Regras copiadas do CSS atual de fisul.edu.br, com caminhos de imagem absolutos.
   No site, esses estilos já existem: este bloco serve só para os modelos. */
.fs header, .fs footer { font-family: Arial, Helvetica, sans-serif; }
.fs header *, .fs footer * { box-sizing: content-box; }
.fs header a, .fs footer a { text-decoration: none; }
.fs header :where(h1, h2, h3, p, ul, li, nav), .fs footer :where(h1, h2, h3, p, ul, li, nav) { margin: 0; padding: 0; list-style: none; }
.fs header { z-index: 999; position: fixed; top: 0; left: 0; right: 0; width: 100% !important; max-width: 100% !important; margin: 0 auto !important; transition: background-color .2s; }
.fs header .centro { display: flex !important; flex-direction: row !important; align-items: flex-start !important; width: calc(100% - 90px) !important; max-width: 1920px !important; margin: 0 auto !important; padding: 45px 0 0 0 !important; box-sizing: content-box !important; }
.fs header .logo { display: inline-block !important; flex: none !important; width: 153px !important; height: 139px !important; background: url("../imagens/logo_branco.png") left top / contain no-repeat !important; text-indent: -20000px !important; overflow: hidden !important; cursor: pointer !important; }
.fs header .direita { display: flex !important; flex-direction: column !important; align-items: flex-end !important; width: 100% !important; margin-top: -6px !important; }
.fs header .top { display: flex !important; flex-direction: row !important; }
.fs header .top nav { box-sizing: border-box !important; display: flex !important; column-gap: 52px !important; flex-direction: row !important; }
.fs header .top nav a, .fs header .bt_menu_mobile { box-sizing: border-box !important; height: 28px !important; color: #fffefe !important; font-weight: 700 !important; font-size: 15px !important; line-height: 24px !important; font-family: Apercu, Naste, Arial, sans-serif !important; letter-spacing: 1.35px !important; text-transform: uppercase !important; cursor: pointer !important; transition: .08s ease-in !important; white-space: nowrap !important; }
.fs header .top nav a.selected, #pag_curso_interno_novo header .bt_pos_graduacao { margin-right: -14px !important; margin-left: -14px !important; padding-right: 14px !important; padding-left: 14px !important; border-bottom: 2px solid #f29a32 !important; color: #f29a32 !important; }
.fs header .top nav a:hover { color: #f29a32 !important; }
.fs header .top nav a.estude { display: flex !important; position: relative !important; margin-right: 46px !important; }
.fs header .top nav a.estude span { display: flex !important; z-index: 2 !important; position: absolute !important; right: -47px !important; bottom: 2px !important; width: 32px !important; height: 26px !important; background: url("../imagens/icon_estude.png") right top no-repeat !important; }
.fs header .top nav .estude:hover span { background-image: url("../imagens/icon_estude_selected.png") !important; }
.fs header .bt_menu_mobile { width: 87px !important; height: 25px !important; margin-left: 45px !important; background: url("../imagens/bt_menu_mobile.png") right center no-repeat !important; color: #f29a32 !important; }
.fs header.ativo { max-height: 106px !important; overflow: hidden !important; background: #022d78 url("../imagens/banner_azul.jpg") center top / 100% auto no-repeat !important; }
.fs header.ativo .centro { padding-top: 13px !important; }
.fs header.ativo .logo { width: 121px !important; height: 80px !important; background: url("../imagens/logo_branco.png") left top / contain no-repeat !important; }
.fs header.ativo .bottom { display: none !important; }
.fs header .bottom nav { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: space-between !important; width: 577px !important; height: 42px !important; margin-top: 15px !important; padding-right: 25px !important; padding-left: 20px !important; border-radius: 0 0 0 12px !important; background-color: rgba(0, 0, 0, .35) !important; }
.fs header .bottom nav a { box-sizing: border-box !important; display: inline-block !important; height: 20px !important; color: #fffefe !important; font-weight: normal !important; font-size: 14px !important; font-family: Apercu, Naste, Arial, sans-serif !important; text-transform: uppercase !important; background: left center no-repeat !important; white-space: nowrap !important; }
.fs header .bottom nav a.portal { padding-left: 22px !important; background-image: url("../imagens/icon_portal.png") !important; }
.fs header .bottom nav a.biblioteca { padding-left: 25px !important; background-image: url("../imagens/icon_biblioteca.png") !important; }
.fs header .bottom nav a.podcast { padding-left: 19px !important; background-image: url("../imagens/icon_podcast.png") !important; }
.fs header .bottom nav a.fale_conosco { padding-left: 26px !important; background-image: url("../imagens/icon_fale_conosco.png") !important; }

.fs footer { width: 100% !important; max-width: 100% !important; margin: 0 !important; background-color: #000 !important; }
.fs footer .centro { display: flex !important; flex-direction: column !important; width: 1135px !important; max-width: calc(100% - 80px) !important; margin: 0 auto !important; padding-right: 45px !important; }
.fs footer .top { display: flex !important; column-gap: 84px !important; flex-direction: row !important; padding-top: 36px !important; padding-bottom: 112px !important; }
.fs footer h2 { color: #fff; font-weight: 700; font-size: 14px; line-height: 24px; font-family: Naste, Arial, sans-serif; }
.fs footer p, .fs footer nav a { color: #fff; font-weight: 300; font-size: 14px; line-height: 24px; font-family: Naste, Arial, sans-serif; }
.fs footer nav a:hover { color: #f29a32; }
.fs footer .endereco { margin-top: 1px; margin-bottom: 15px; }
.fs footer nav { display: flex; flex-direction: column; }
.fs footer .sociais { margin-left: 25px; }
.fs footer .sociais h2 { text-transform: uppercase; }
.fs footer .sociais .bloco_mec h2 { padding-top: 20px; }
.fs footer .sociais img { display: block; max-width: 171px; max-height: 171px; margin-top: 8px; filter: invert(1); }
.fs footer .sociais ul { display: flex; column-gap: 20px; flex-direction: row; margin-top: 17px; }
.fs footer .sociais li { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; background-color: #252525; }
.fs footer .sociais a { color: #fff; font-size: 18.3px; }
.fs footer .bottom p, .fs footer .bottom h3, .fs footer .bottom a { color: #bdbdbd; font-weight: 300; font-size: 14px; font-family: Naste, Arial, sans-serif; margin: 0; }
.fs footer .bottom { display: flex; flex-direction: row; justify-content: space-between; padding-bottom: 16px; }
.fs footer .bottom a { text-decoration: underline; text-transform: uppercase; }
.fs .bt_flutuante_atendimento { position: fixed; z-index: 30; right: 20px; bottom: 95px; width: 68px; height: 68px; background: url("../imagens/bt_atendimento.png") center / contain no-repeat; text-indent: -9999px; overflow: hidden; }

@media (max-width: 1680px) { .fs header .top nav { column-gap: 40px !important; } .fs header .top nav a, .fs header .bt_menu_mobile { font-size: 14px !important; } }
@media (max-width: 1551px) { .fs header .top nav a, .fs header .bt_menu_mobile { font-size: 13px !important; } .fs header .top nav a.estude { margin-right: 30px !important; } .fs header .bottom nav { width: 530px !important; } }
@media (max-width: 1466px) { .fs header .top nav a, .fs header .bt_menu_mobile { font-size: 12px !important; } }
@media (max-width: 1366px) { .fs header .logo { width: 110px !important; height: 100px !important; } .fs header .bottom nav { width: 500px !important; height: 35px !important; } .fs header .bottom nav a { font-size: 13px !important; } .fs header .top nav a, .fs header .bt_menu_mobile { font-size: 11px !important; } .fs header .top nav { column-gap: 30px !important; } .fs footer .centro { width: 1040px !important; } .fs footer .top { padding-bottom: 80px !important; } }
@media (max-width: 1000px) {
  .fs header .centro { width: calc(100% - 40px) !important; padding-top: 30px !important; }
  .fs header .direita { margin-top: 0 !important; }
  .fs header .logo { width: 120px !important; height: 118px !important; }
  .fs header .bt_menu_mobile { width: 45px !important; height: 40px !important; background-size: contain !important; text-indent: -9999px !important; overflow: hidden !important; }
  .fs header .top nav, .fs header .bottom nav { display: none !important; }
  .fs footer { width: 100% !important; }
  .fs footer .centro { width: calc(100% - 80px) !important; padding-right: 0 !important; }
  .fs footer .top { row-gap: 20px !important; flex-direction: column !important; }
  .fs footer .sociais { margin-left: 0 !important; }
  .fs footer .bottom { row-gap: 5px !important; flex-direction: column !important; align-items: center !important; }
  .fs footer h2, .fs footer p, .fs footer nav a, .fs footer .bottom p, .fs footer .bottom h3, .fs footer .bottom a { font-size: 16px !important; line-height: 26px !important; }
}
@media (max-width: 600px) {
  .fs header .centro { padding-top: 20px !important; }
  .fs header .logo { width: 100px !important; height: 76px !important; }
  .fs header .direita { margin-top: 15px !important; }
  .fs header .bt_menu_mobile { width: 40px !important; height: 35px !important; }
  .fs footer .centro { width: calc(100% - 40px) !important; }
  .fs footer .top { padding-bottom: 40px !important; }
  .fs footer .bottom p, .fs footer .bottom h3, .fs footer .bottom a { font-size: 15px !important; line-height: 24px !important; text-align: center !important; }
  .fs footer { padding-bottom: 72px !important; }
}

/* ==== Opção B: descrição em destaque ==== */
.fs-dq { background: var(--superficie); padding: 112px 0 104px; margin-top: 112px; }
.fs-tempo + .fs-dq { margin-top: 96px; }
.fs-dq__topo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(auto, 641px); gap: 30px; align-items: center; }
.fs-dq__texto { display: grid; gap: 22px; max-width: 62ch; }
.fs-dq__titulo { font-size: 54px; line-height: 58px; font-weight: 700; letter-spacing: -0.015em; color: var(--azul-fisul); max-width: 16ch; }
.fs-dq__titulo::after { content: ""; display: block; width: 72px; height: 6px; margin-top: 28px; background: var(--laranja); border-radius: 3px; }

/* Descrição livre do curso (TinyMCE / BOSS CMS) */
.fs-descricao-curso {
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 28px;
  color: var(--texto);
  word-break: break-word;
}
.fs-descricao-curso p {
  font-family: var(--font-sans) !important;
  font-weight: 300 !important;
  font-size: 17px !important;
  line-height: 28px !important;
  color: var(--texto) !important;
  margin: 0 0 16px 0 !important;
}
.fs-descricao-curso p:last-child {
  margin-bottom: 0 !important;
}
.fs-descricao-curso div {
  font-family: var(--font-sans) !important;
  font-weight: 300 !important;
  font-size: 17px !important;
  line-height: 28px !important;
  color: var(--texto) !important;
  margin: 0 !important;
}
.fs-descricao-curso strong,
.fs-descricao-curso b {
  font-family: var(--font-sans) !important;
  font-weight: 700 !important;
  color: var(--texto) !important;
}
.fs-descricao-curso em,
.fs-descricao-curso i {
  font-style: italic !important;
}
.fs-descricao-curso u {
  text-decoration: underline !important;
}
.fs-descricao-curso ul {
  margin: 12px 0 18px 24px !important;
  padding: 0 !important;
  list-style: disc !important;
}
.fs-descricao-curso ol {
  margin: 12px 0 18px 24px !important;
  padding: 0 !important;
  list-style: decimal !important;
}
.fs-descricao-curso li {
  margin-bottom: 6px !important;
  font-weight: 300 !important;
  font-size: 17px !important;
  line-height: 26px !important;
  color: var(--texto) !important;
  list-style: inherit !important;
}
.fs-descricao-curso a {
  color: var(--azul-fisul) !important;
  text-decoration: underline !important;
}
.fs-video { position: relative; display: block; width: 641px; max-width: 100%; height: 480px; aspect-ratio: 641 / 480; border-radius: var(--raio-g); overflow: hidden; background: var(--azul-fisul); color: var(--texto-sobre-azul); text-decoration: none; isolation: isolate; }
.fs-video__foto { position: absolute; inset: 0; background-position: center; background-size: cover; background-repeat: no-repeat; }
.fs-video::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, var(--azul-fisul) 0%, var(--azul-fisul) 32%, rgba(2, 45, 120, 0.72) 58%, rgba(2, 45, 120, 0.05) 100%); pointer-events: none; }
.fs-video__play { position: absolute; z-index: 2; left: 32px; top: 32px; width: 72px; height: 72px; border-radius: 50%; background: var(--laranja); color: var(--azul-fisul); display: grid; place-items: center; transition: transform .2s; }
.fs-video__play svg { width: 30px; height: 30px; margin-left: 4px; }
.fs-video:hover .fs-video__play { transform: scale(1.08); }
.fs-video__txt { position: absolute; z-index: 2; left: 32px; bottom: 30px; max-width: 18ch; font: 400 17px/24px var(--font-sans); color: var(--texto-sobre-azul-suave); }
.fs-video__txt b { display: block; font-size: 26px; line-height: 30px; font-weight: 700; color: var(--texto-sobre-azul); margin-bottom: 6px; }
.fs-video iframe { position: absolute; inset: 0; z-index: 3; width: 100%; height: 100%; border: 0; }
.fs-dq__sub { font: 700 15px/20px var(--font-sans); color: var(--texto-suave); margin: 88px 0 20px; }
.fs-razoes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.fs-razoes li { display: grid; gap: 28px; align-content: space-between; min-height: 200px; padding: 28px 26px 26px; background: var(--fundo); border-radius: var(--raio-g); transition: background-color .2s, color .2s; }
.fs-razoes svg { width: 40px; height: 40px; fill: none; stroke: var(--laranja); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.fs-razoes b { font-size: 21px; line-height: 27px; font-weight: 700; color: var(--azul-fisul); }
.fs-razoes li:hover { background: var(--azul-fisul); }
.fs-razoes li:hover b { color: var(--texto-sobre-azul); }
.fs-dq__faixa { display: grid; grid-template-columns: 1.35fr 1fr; gap: 64px; }
.fs-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.fs-chips li { font: 400 16px/22px var(--font-sans); color: var(--azul-fisul); padding: 11px 18px; border: 1.5px solid var(--azul-fisul); border-radius: 999px; }
.fs-chips--publico li { background: var(--azul-fisul); color: var(--texto-sobre-azul); }
.fs-dq__nota { margin-top: 14px; font-size: 16px; line-height: 24px; color: var(--texto-suave); max-width: 44ch; }

@media (max-width: 1080px) {
  .fs-dq__topo, .fs-dq__faixa { grid-template-columns: 1fr; gap: 40px; }
  .fs-razoes { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .fs-dq { padding: 72px 0; }
  .fs-tempo + .fs-dq { margin-top: 64px; }
  .fs-dq__titulo { font-size: 34px; line-height: 38px; }
  .fs-dq__sub { margin-top: 56px; }
  .fs-razoes { grid-template-columns: 1fr; }
  .fs-razoes li { min-height: 0; grid-template-columns: 40px 1fr; align-items: center; gap: 16px; padding: 20px; }
  .fs-razoes b { font-size: 18px; line-height: 24px; }
  .fs-video__play { left: 20px; top: 20px; width: 56px; height: 56px; }
  .fs-video__txt { left: 20px; bottom: 18px; font-size: 14px; line-height: 20px; }
  .fs-video__txt b { font-size: 20px; line-height: 24px; }
  .fs-chips li { font-size: 15px; padding: 9px 14px; }
}

/* ==== Opção B: estrutura curricular em trilha ==== */
.fs-trilha { position: relative; overflow: hidden; background: var(--azul-profundo); color: var(--texto-sobre-azul); padding: 120px 0 120px; }
.fs-trilha::after { content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: 40%; background: var(--azul-fisul); }
.fs-trilha > .fs-wrap { position: relative; z-index: 1; }
.fs-trilha__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 48px; }
.fs-trilha__head .fs-h2, #pag_curso_interno_novo #estrutura_curricular h2, #pag_curso_interno_novo #estrutura_curricular .fs-h2 { color: var(--texto-sobre-azul) !important; font-family: var(--font-sans) !important; font-size: 40px !important; line-height: 46px !important; font-weight: 700 !important; letter-spacing: -0.005em !important; margin-bottom: 0 !important; }
.fs-trilha__head .fs-lead, #pag_curso_interno_novo #estrutura_curricular .fs-lead, #pag_curso_interno_novo #estrutura_curricular .fs-trilha__head p { color: var(--texto-sobre-azul-suave) !important; font-family: var(--font-sans) !important; font-size: 20px !important; line-height: 32px !important; font-weight: 300 !important; margin-top: 14px !important; padding-bottom: 0 !important; max-width: 48ch !important; }
.fs-trilha__total { display: flex; align-items: center; gap: 16px; flex: none; }
.fs-trilha__total b { display: grid; place-items: center; width: 112px; height: 112px; border-radius: 50%; background: var(--laranja); color: var(--azul-fisul); font-size: 56px; line-height: 1; font-weight: 700; letter-spacing: -0.03em; }
.fs-trilha__total span { font: 700 16px/22px var(--font-sans); color: var(--texto-sobre-azul); max-width: 11ch; }
.fs-trilha__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 56px; align-items: start; }
.fs-trilha__lista { display: grid; gap: 6px; }
.fs-trilha__lista > li { background: var(--azul-fisul); border: 1px solid var(--linha-sobre-azul); border-radius: var(--raio-m); transition: background-color .15s, border-color .15s; }
.fs-trilha__lista > li:hover { background: var(--azul-medio); }
.fs-trilha__item { width: 100%; display: grid; grid-template-columns: 34px 1fr 16px; gap: 14px; align-items: center; padding: 10px 16px 10px 12px; background: none; border: 0; color: var(--texto-sobre-azul); text-align: left; cursor: pointer; font: 400 16px/22px var(--font-sans); }
/* Naste tem ascendente maior que descendente: com line-height 1 os algarismos ficam ~1px acima do centro.
   padding-top de 2px (em caixa border-box de altura fixa) desce o conteúdo 1px e centraliza a tinta. */
.fs-trilha__n { display: grid; place-items: center; flex: none; width: 34px; height: 34px; aspect-ratio: 1; border-radius: 50%; border: 2px solid var(--laranja); box-sizing: border-box; padding: 2px 0 0; color: var(--laranja); font-weight: 700; font-size: 13px; line-height: 1; font-variant-numeric: tabular-nums; letter-spacing: 0; text-indent: 0.5px; }
.fs-trilha__seta { width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); opacity: 0; transition: opacity .15s; }
.fs-trilha__lista > li:has([aria-current="true"]) { background: var(--superficie); border-color: var(--superficie); }
.fs-trilha__item[aria-current="true"] { color: var(--azul-fisul); font-weight: 700; }
.fs-trilha__item[aria-current="true"] .fs-trilha__n { background: var(--laranja); color: var(--azul-fisul); }
.fs-trilha__item[aria-current="true"] .fs-trilha__seta { opacity: 1; }
.fs-trilha__lista > li.is-pilar { background: var(--laranja); border-color: var(--laranja); margin-top: 10px; }
.fs-trilha__lista > li.is-pilar .fs-trilha__item { color: var(--azul-fisul); font-weight: 700; }
.fs-trilha__lista > li.is-pilar .fs-trilha__n { background: var(--azul-fisul); border-color: var(--azul-fisul); color: var(--texto-sobre-azul); font-size: 22px; font-weight: 400; padding: 0 0 2px; text-indent: 0; }
.fs-trilha__lista > li.is-pilar:has([aria-current="true"]) { background: var(--superficie); border-color: var(--laranja); }
.fs-trilha__desc, #pag_curso_interno_novo #estrutura_curricular .fs-trilha__desc { display: none; padding: 0 16px 18px 60px !important; color: var(--texto) !important; font-size: 16px !important; line-height: 26px !important; margin: 0 !important; }

.fs-trilha__painel { position: sticky; top: 132px; background: var(--superficie); color: var(--texto); border-radius: var(--raio-g); overflow: hidden; box-shadow: 0 32px 64px rgba(0,0,0,.35); }
.fs-trilha__capa { position: relative; background: var(--laranja); color: var(--azul-fisul); padding: 30px 40px 28px; overflow: hidden; }
.fs-trilha__capa::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 200px; height: 200px; border-radius: 50%; border: 28px solid rgba(255,255,255,.28); }
.fs-trilha__pos, #pag_curso_interno_novo #estrutura_curricular .fs-trilha__pos { position: relative; z-index: 1; font-family: var(--font-sans) !important; font-size: 14px !important; line-height: 20px !important; font-weight: 700 !important; color: var(--azul-fisul) !important; padding: 0 !important; margin: 0 !important; }
.fs-trilha__barra { position: relative; z-index: 1; display: flex; gap: 3px; margin: 14px 0 24px; }
.fs-trilha__barra span { flex: 1; height: 8px; border-radius: 2px; background: rgba(2,45,120,.2); transition: background-color .25s; }
.fs-trilha__barra span.is-feito { background: var(--azul-fisul); }
.fs-trilha__barra span.is-atual { background: var(--superficie); }
.fs-trilha__num, #pag_curso_interno_novo #estrutura_curricular .fs-trilha__num { position: relative; z-index: 1; font-family: var(--font-sans) !important; font-size: 104px !important; line-height: 88px !important; font-weight: 700 !important; letter-spacing: -0.04em !important; font-variant-numeric: tabular-nums; color: var(--azul-fisul) !important; padding: 0 !important; margin: 0 !important; }
.fs-trilha__titulo, #pag_curso_interno_novo #estrutura_curricular .fs-trilha__titulo { position: relative; z-index: 1; font-family: var(--font-sans) !important; font-size: 30px !important; line-height: 36px !important; font-weight: 700 !important; margin-top: 12px !important; margin-bottom: 0 !important; padding: 0 !important; min-height: 72px; max-width: 18ch; color: var(--azul-fisul) !important; }
.fs-trilha__corpo { padding: 28px 40px 32px; }
.fs-trilha__texto, #pag_curso_interno_novo #estrutura_curricular .fs-trilha__texto { font-family: var(--font-sans) !important; font-size: 18px !important; line-height: 30px !important; font-weight: 300 !important; color: var(--texto) !important; min-height: 120px; padding: 0 !important; margin: 0 !important; }
.fs-trilha__nav { display: flex; justify-content: space-between; gap: 12px; margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--linha); }
.fs-trilha__nav button { font: 700 15px/20px var(--font-sans); color: var(--azul-fisul); background: none; border: 2px solid var(--azul-fisul); border-radius: var(--raio-m); padding: 12px 18px; cursor: pointer; }
.fs-trilha__nav button:last-child { background: var(--azul-fisul); color: var(--texto-sobre-azul); }
.fs-trilha__nav button:disabled { opacity: .35; cursor: default; }
@media (prefers-reduced-motion: no-preference) {
  .fs-trilha__painel.is-trocando .fs-trilha__titulo, .fs-trilha__painel.is-trocando .fs-trilha__texto, .fs-trilha__painel.is-trocando .fs-trilha__num { animation: fs-troca .3s ease-out; }
  @keyframes fs-troca { from { opacity: 0; transform: translateY(6px); } }
}
@media (max-width: 1080px) {
  .fs-trilha::after { display: none; }
  .fs-trilha__grid { grid-template-columns: 1fr; }
  .fs-trilha__painel { display: none; }
  .fs-trilha__seta { opacity: 1; transform: rotate(135deg); transition: transform .2s; }
  .fs-trilha__lista > li:has([aria-current="true"]) { background: var(--azul-fisul); border-color: var(--linha-sobre-azul); }
  .fs-trilha__item[aria-current="true"] { color: var(--texto-sobre-azul); font-weight: 400; }
  .fs-trilha__item[aria-current="true"] .fs-trilha__n { background: none; color: var(--laranja); }
  .fs-trilha__lista > li:has([aria-expanded="true"]) { background: var(--superficie); border-color: var(--superficie); }
  .fs-trilha__item[aria-expanded="true"] { color: var(--azul-fisul); font-weight: 700; }
  .fs-trilha__item[aria-expanded="true"] .fs-trilha__n { background: var(--laranja); color: var(--azul-fisul); }
  .fs-trilha__item[aria-expanded="true"] .fs-trilha__seta { transform: rotate(-45deg); }
  .fs-trilha__lista > li.is-pilar:has([aria-expanded="true"]) { background: var(--laranja); }
  .fs-trilha__lista > li.is-pilar .fs-trilha__item .fs-trilha__n { background: var(--azul-fisul); color: var(--texto-sobre-azul); }
  .fs-trilha__desc { padding: 0 16px 18px 60px; color: var(--texto); font-size: 16px; line-height: 26px; }
  .fs-trilha__desc.is-aberto { display: block; }
}
@media (max-width: 760px) {
  .fs-trilha { padding: 80px 0 72px; }
  .fs-trilha__head { flex-direction: column; align-items: flex-start; }
  .fs-trilha__total b { width: 80px; height: 80px; font-size: 40px; }
  .fs-trilha__item { grid-template-columns: 32px 1fr 14px; gap: 12px; padding: 10px 12px 10px 10px; }
  .fs-trilha__n { width: 32px; height: 32px; }
  .fs-trilha__desc { padding: 0 12px 16px 54px; }
}

/* ==== Opção B: coordenação e professores em carrossel ==== */
.fs-equipe__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 36px; }
.fs-carrossel__ctrl { display: flex; align-items: center; gap: 10px; }
.fs-carrossel__cont { font: 400 15px/20px var(--font-sans); color: var(--texto-suave); margin-right: 8px; font-variant-numeric: tabular-nums; }
.fs-carrossel__cont b { color: var(--azul-fisul); font-weight: 700; }
.fs-carrossel__btn { width: 52px; height: 52px; border-radius: 50%; border: 2px solid var(--azul-fisul); background: var(--superficie); color: var(--azul-fisul); display: grid; place-items: center; cursor: pointer; transition: background-color .15s, color .15s, opacity .15s; }
.fs-carrossel__btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.fs-carrossel__btn:hover:not(:disabled) { background: var(--azul-fisul); color: var(--texto-sobre-azul); }
.fs-carrossel__btn:disabled { opacity: .3; cursor: default; }
.fs-carrossel__trilho { display: flex; gap: 24px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-x: contain; padding-bottom: 4px; align-items: flex-start; transition: height .3s ease; }
.fs-carrossel__trilho::-webkit-scrollbar { display: none; }
.fs-slide { flex: 0 0 calc(100% - 120px); scroll-snap-align: start; display: grid; grid-template-columns: 260px 1fr; gap: 44px; align-items: start; align-content: start; background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-g); padding: 32px; transition: opacity .3s; }
.fs-slide:not(.is-ativo) { opacity: .45; }
.fs-slide__foto { border-radius: var(--raio-m); overflow: hidden; background: var(--azul-claro); aspect-ratio: 320 / 424; }
.fs-slide__foto img { width: 100%; height: 100%; object-fit: cover; }
.fs-carrossel__pontos { display: flex; gap: 8px; margin-top: 24px; }
.fs-carrossel__pontos button { width: 28px; height: 6px; border-radius: 3px; border: 0; padding: 0; background: var(--linha); cursor: pointer; transition: width .2s, background-color .2s; }
.fs-carrossel__pontos button[aria-current="true"] { width: 56px; background: var(--laranja); }

/* ==== Opção B: investimento por lotes ==== */
.fs-invest--lotes .fs-invest__intro { margin-top: 12px; }
.fs-lotes { position: relative; margin-top: 0; display: grid; gap: 10px; }
.fs-lotes::before { content: ""; position: absolute; left: 34px; top: 36px; bottom: 30px; width: 2px; background: var(--linha-sobre-azul); }
.fs-lote { position: relative; display: grid; grid-template-columns: 44px 1fr auto; gap: 16px; align-items: center; padding: 16px 18px 16px 12px; border-radius: var(--raio-m); border: 1px solid var(--linha-sobre-azul); background: var(--azul-profundo); }
.fs-lote__marco { position: relative; z-index: 1; width: 20px; height: 20px; margin-left: 0; justify-self: center; border-radius: 50%; border: 3px solid var(--texto-sobre-azul-suave); background: var(--azul-profundo); box-sizing: border-box; }
.fs-lote__nome { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.fs-lote__info b { font: 700 18px/24px var(--font-sans); }
.fs-lote__data { display: block; margin-top: 2px; }
.fs-lote__info span { font: 400 14px/20px var(--font-sans); color: var(--texto-sobre-azul-suave); }
.fs-lote__preco { text-align: right; }
.fs-lote__preco b { display: block; font: 700 18px/24px var(--font-sans); font-variant-numeric: tabular-nums; white-space: nowrap; }
.fs-lote__preco span { font: 400 13px/18px var(--font-sans); color: var(--texto-sobre-azul-suave); white-space: nowrap; font-variant-numeric: tabular-nums; }
.fs-lote__status { font: 700 12px/16px var(--font-sans); padding: 4px 10px; border-radius: 999px; border: 1.5px solid var(--linha-sobre-azul); color: var(--texto-sobre-azul-suave); }
.fs-lote.is-encerrado { background: transparent; }
.fs-lote.is-encerrado .fs-lote__info, .fs-lote.is-encerrado .fs-lote__preco { opacity: .55; }
.fs-lote.is-encerrado .fs-lote__preco b { text-decoration: line-through; text-decoration-thickness: 1.5px; }
.fs-lote.is-encerrado .fs-lote__marco { background: var(--linha-sobre-azul); border-color: var(--linha-sobre-azul); }
.fs-lote.is-atual { background: var(--superficie); border-color: var(--laranja); border-width: 2px; color: var(--azul-fisul); padding: 22px 18px 22px 11px; box-shadow: 0 16px 32px rgba(0,0,0,.25); }
.fs-lote.is-atual .fs-lote__info span, .fs-lote.is-atual .fs-lote__preco span { color: var(--texto-suave); }
.fs-lote.is-atual .fs-lote__info b { font-size: 22px; line-height: 28px; }
.fs-lote.is-atual .fs-lote__preco b { font-size: 22px; line-height: 28px; }
.fs-lote.is-atual .fs-lote__marco { width: 24px; height: 24px; border: 0; background: var(--laranja); box-shadow: 0 0 0 6px rgba(242,154,50,.3); }
.fs-lote.is-atual .fs-lote__status { background: var(--laranja); border-color: var(--laranja); color: var(--azul-fisul); }
.fs-lote.is-futuro .fs-lote__status { color: var(--texto-sobre-azul); }
.fs-lote__fim { display: block; margin-top: 4px; font: 700 13px/18px var(--font-sans); color: var(--azul-fisul); }
@media (max-width: 1080px) {
  .fs-slide { flex-basis: calc(100% - 64px); grid-template-columns: 200px 1fr; gap: 28px; }
}
@media (max-width: 760px) {
  .fs-equipe__head { align-items: center; }
  .fs-carrossel__cont { display: none; }
  .fs-carrossel__btn { width: 44px; height: 44px; }
  .fs-slide { flex-basis: calc(100% - 28px); grid-template-columns: 1fr; gap: 20px; padding: 20px; align-content: start; }
  .fs-slide__foto { max-width: 180px; }
  .fs-carrossel__trilho { gap: 12px; }
  .fs-lote { grid-template-columns: 32px 1fr; gap: 8px 12px; padding: 14px 14px 14px 6px; }
  .fs-lote.is-atual { padding: 18px 14px 18px 5px; }
  .fs-lotes::before { left: 21px; }
  .fs-lote__preco { grid-column: 2; text-align: left; }
  .fs-lote.is-atual .fs-lote__info b, .fs-lote.is-atual .fs-lote__preco b { font-size: 19px; line-height: 24px; }
}

/* ==== Opção B: descrição em destaque com fundo em cor ====
   Camadas: azul-claro na seção inteira (começa por trás da linha do tempo), uma laje laranja
   atrás do vídeo sangrando até a borda direita, e os blocos internos em branco. */
.fs-dq { position: relative; overflow: hidden; background: var(--azul-claro); }
.fs-tempo:has(+ .fs-dq) { background: linear-gradient(to bottom, transparent 88px, var(--azul-claro) 88px); }
.fs-tempo + .fs-dq { margin-top: 0; padding-top: 112px; }
.fs-dq__topo { position: relative; }
.fs-dq__topo::before { content: ""; position: absolute; z-index: 0; top: -64px; bottom: -56px; left: calc(100% - 641px - 15px); right: calc((100vw - 100%) / -2); background: var(--laranja); border-radius: 48px 0 0 48px; }
.fs-dq__topo:not(:has(.fs-video))::before { display: none !important; }
.fs-dq__texto { position: relative; z-index: 1; }
.fs-video { position: relative; z-index: 2; box-shadow: 0 28px 56px rgba(2, 45, 120, .35); }
.fs-dq__sub { color: var(--azul-fisul); }
.fs-razoes li { background: var(--superficie); box-shadow: 0 1px 0 var(--linha); }
.fs-razoes li:nth-child(1) { background: var(--azul-fisul); }
.fs-razoes li:nth-child(1) b { color: var(--texto-sobre-azul); }
.fs-razoes li:hover { background: var(--azul-medio); }
.fs-dq__faixa { margin-top: 16px; padding: 36px 40px 40px; background: var(--superficie); border-radius: var(--raio-g); }
.fs-dq__faixa .fs-dq__sub { margin-top: 0; }
@media (max-width: 1080px) {
  .fs-dq__topo::before { display: none; }
  .fs-video { width: 100%; max-width: 641px; height: auto; aspect-ratio: 641 / 480; margin: 0 auto 16px; box-shadow: 16px 16px 0 var(--laranja), 0 24px 48px rgba(2, 45, 120, .3); }
}
@media (max-width: 760px) {
  .fs-tempo:has(+ .fs-dq) { background: linear-gradient(to bottom, transparent 80px, var(--azul-claro) 80px); }
  .fs-tempo + .fs-dq { margin-top: 0; padding-top: 72px; }
  .fs-video { width: 100%; height: auto; aspect-ratio: 641 / 480; margin: 0 auto 12px; box-shadow: 12px 12px 0 var(--laranja), 0 16px 32px rgba(2, 45, 120, .3); }
  .fs-dq__faixa { padding: 24px 20px 28px; gap: 32px; }
}

/* Investimento por lotes: título em cima; cartão de preço à esquerda, lotes à direita */
.fs-invest__head { margin-bottom: 28px; }
.fs-invest--lotes .fs-invest__grid { grid-template-columns: 1fr 1fr; gap: 36px; }
@media (max-width: 1080px) { .fs-invest--lotes .fs-invest__grid { grid-template-columns: 1fr; gap: 24px; } }

/* ==========================================================================
   PADRÕES ESTRUTURAIS FISUL (.centro, .mask_img, .esquerda, .direita)
   ========================================================================== */
#pag_curso_interno_novo #conteudo_curso_novo .centro,
#pag_curso_interno_novo > main .centro {
  width: 100%;
  max-width: 1378px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

#pag_curso_interno_novo .mask_img {
  overflow: hidden;
  position: relative;
  border-radius: var(--raio-m, 8px);
}

#pag_curso_interno_novo .mask_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Compatibilidade com containers e colunas padrão */
#pag_curso_interno_novo .fs-wrap {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  box-sizing: border-box;
}

/* Suporte para transições suaves de acordeão mobile */
.fs-trilha__desc.is-aberto {
  display: block !important;
  margin-top: 12px;
  padding-bottom: 12px;
}

/* ==========================================================================
   MODAL DE INSCRIÇÃO / INTERESSE
   ========================================================================== */
#pag_curso_interno_novo #pag_inscricao {
  box-sizing: border-box;
  display: none;
  z-index: 99999 !important;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 40px 15px 60px;
  overflow: auto;
  background-color: rgba(28, 155, 228, 0.98);
}

/* Isola o modal e seus elementos do box-sizing: border-box do .fs */
#pag_curso_interno_novo #pag_inscricao,
#pag_curso_interno_novo #pag_inscricao *:not(select):not(button):not(.g-recaptcha):not(.g-recaptcha *) {
  box-sizing: content-box;
}

#pag_curso_interno_novo #pag_inscricao select,
#pag_curso_interno_novo #pag_inscricao button {
  box-sizing: border-box;
}

#pag_curso_interno_novo #pag_inscricao main {
  z-index: 100000;
  position: relative;
  min-height: 100vh;
}

#pag_curso_interno_novo #pag_inscricao main .centro {
  box-sizing: content-box !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 575px !important;
  max-width: calc(100% - 20px) !important;
  padding: 50px 0 0 0 !important;
  margin: 0 auto !important;
}

#pag_curso_interno_novo #pag_inscricao #box_inscricao {
  box-sizing: content-box !important;
  width: calc(100% - 50px) !important;
  padding: 0 25px 26px !important;
}

#pag_curso_interno_novo #pag_inscricao form {
  box-sizing: content-box !important;
}

#pag_curso_interno_novo #pag_inscricao form input:not([type="checkbox"]) {
  box-sizing: content-box !important;
}

#pag_curso_interno_novo #pag_inscricao form select {
  box-sizing: border-box !important;
}

#pag_curso_interno_novo #pag_inscricao .bt_fechar {
  position: relative;
  width: 24px;
  height: 24px;
  margin-bottom: 24px;
  border: none;
  background: url('../imagens/botao_fechar_form.png') center center no-repeat;
  background-size: 24px auto;
  cursor: pointer;
  box-sizing: content-box;
}

@media (max-width: 640px) {
  #pag_curso_interno_novo #pag_inscricao {
    padding: 20px 10px 40px;
  }
  #pag_curso_interno_novo #pag_inscricao main .centro {
    width: 100% !important;
    max-width: 100% !important;
    padding-top: 20px !important;
  }
}

