/* =====================================================================
   FaSouza - fasouza.edu.br - Home 2026
   CSS mobile-first, sem framework. Grid + Flexbox + Custom Properties.
   ---------------------------------------------------------------------
   Índice
   01. Tokens (:root)
   02. Reset e base
   03. Utilitários
   04. Botões, tags, chips, links
   05. Barra utilitária
   06. Cabeçalho e navegação (mobile -> desktop)
   07. Hero + busca de cursos (WebForms)
   08. Resultado da busca (Repeater)
   09. Seções e grids
   10. Cards (caminhos, ingresso, cursos, áreas, depoimentos)
   11. Blocos split (selo, live)
   12. FAQ (accordion)
   13. Contato e newsletter
   14. Rodapé
   15. Voltar ao topo e banner de cookies
   16. Movimento reduzido e impressão
   17. Páginas internas (Masters) e compatibilidade com o legado
   18. Canais de atendimento (contato.aspx)
   19. Conteúdo das páginas internas (formulários, tabelas, cards, passo a passo)
   ===================================================================== */

/* ---------------------------------------------------------------------
   01. TOKENS
   --------------------------------------------------------------------- */
:root {
    /* Unidade-base fixa (substitui rem; ver nota em 02. Reset) */
    --u: 16px;

    /* Marca */
    --c-orange-50:  #fff8eb;
    --c-orange-100: #fdebc8;
    --c-orange-400: #f8bd57;
    --c-orange-500: #f6ac2f;   /* cor tema */
    --c-orange-600: #e0951a;
    --c-orange-700: #b5740c;   /* laranja com contraste AA sobre branco p/ texto */

    --c-navy-50:  #eef1f8;
    --c-navy-100: #d9dfee;
    --c-navy-300: #8d9cc4;
    --c-navy-500: #2a4187;
    --c-navy-700: #1a3070;
    --c-navy-800: #12265b;     /* azul de detalhe */
    --c-navy-900: #0b1a42;
    --c-navy-950: #071131;

    /* Neutros */
    --c-ink:     #14182b;
    --c-text:    #3b4258;
    --c-muted:   #6b7287;
    --c-line:    #e4e7ef;
    --c-surface: #ffffff;
    --c-soft:    #f6f7fb;

    /* Estados */
    --c-success: #1f8a4c;
    --c-warning: #a86400;
    --c-error:   #c0362c;
    --c-whatsapp:#1fa855;

    /* Papéis semânticos */
    --color-primary: var(--c-orange-500);
    --color-primary-hover: var(--c-orange-600);
    --color-on-primary: var(--c-navy-900);
    --color-accent: var(--c-navy-800);

    /* Tipografia */
    --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
    --font-display: "Poppins", var(--font-sans);
    --fs-xs:  calc(.8125 * var(--u));
    --fs-sm:  calc(.9375 * var(--u));
    --fs-md:  calc(1 * var(--u));
    --fs-lg:  calc(1.125 * var(--u));
    --fs-xl:  clamp(calc(1.25 * var(--u)), calc(1.1 * var(--u)) + .6vw, calc(1.5 * var(--u)));
    --fs-2xl: clamp(calc(1.6 * var(--u)), calc(1.25 * var(--u)) + 1.5vw, calc(2.25 * var(--u)));
    --fs-3xl: clamp(calc(2 * var(--u)), calc(1.4 * var(--u)) + 2.8vw, calc(3.5 * var(--u)));

    /* Espaços, raios, sombras */
    --space-1: calc(.25 * var(--u)); --space-2: calc(.5 * var(--u)); --space-3: calc(.75 * var(--u)); --space-4: calc(1 * var(--u));
    --space-5: calc(1.5 * var(--u)); --space-6: calc(2 * var(--u));  --space-7: calc(3 * var(--u));   --space-8: calc(4.5 * var(--u));
    --radius-sm: 8px;
    --radius:    14px;
    --radius-lg: 22px;
    --radius-pill: 999px;
    --shadow-sm: 0 1px 2px rgba(18, 38, 91, .06), 0 1px 3px rgba(18, 38, 91, .08);
    --shadow:    0 4px 10px rgba(18, 38, 91, .06), 0 10px 28px rgba(18, 38, 91, .08);
    --shadow-lg: 0 12px 24px rgba(18, 38, 91, .10), 0 24px 56px rgba(18, 38, 91, .14);
    --ring: 0 0 0 3px rgba(246, 172, 47, .55);

    /* Layout */
    --container: 1200px;
    --header-h: 68px;
    --ease: cubic-bezier(.2, .7, .2, 1);
    --dur: .25s;
}

/* ---------------------------------------------------------------------
   02. RESET E BASE
   --------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
/* O tamanho-base do html NÃO é alterado: o CSS legado das páginas internas usa rem
   contando com o "html { font-size: 10px }" do Bootstrap 3. Este arquivo não usa rem;
   usa a unidade --u (16px), que independe do tamanho-base. */
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
    margin: 0;
    font-family: var(--font-sans);
    font-size: var(--fs-md);
    line-height: 1.65;
    color: var(--c-text);
    background: var(--c-surface);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
body.is-locked { overflow: hidden; }
/* A gaveta do menu (fixa, fora da tela quando fechada) não pode criar rolagem horizontal */
html { overflow-x: clip; }
img, svg { max-width: 100%; height: auto; }
/* Fora do conteúdo das páginas internas, imagens e SVG são blocos; dentro dele, mantém o comportamento original */
img:not(.page-content img), svg:not(.page-content svg) { display: block; }
a { color: var(--c-navy-700); text-underline-offset: 3px; }
a:hover { color: var(--c-navy-900); }
h1, h2, h3, h4 { font-family: var(--font-display); color: var(--c-ink); line-height: 1.2; margin: 0 0 var(--space-3); letter-spacing: -.01em; }
p { margin: 0 0 var(--space-4); }
/* Listas zeradas só nos componentes do layout (as listas de conteúdo mantêm recuo e marcadores).
   :where() tem especificidade zero, para não anular as margens definidas em cada componente
   (ex.: o espaço entre os atalhos de busca e os selos do hero). */
:where(.nav-list, .dropdown ul, .utility-bar__links, .trust, .steps, .checklist, .footer-col ul) { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
address { font-style: normal; }
figure { margin: 0; }
blockquote { margin: 0; }
:focus-visible { outline: none; box-shadow: var(--ring); border-radius: 6px; }

/* ---------------------------------------------------------------------
   03. UTILITÁRIOS
   --------------------------------------------------------------------- */
.container { width: min(100% - calc(2.5 * var(--u)), var(--container)); margin-inline: auto; }
.container--narrow { --container: 860px; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: calc(1 * var(--u)); top: -100px; z-index: 1000; background: var(--c-navy-900); color: #fff; padding: calc(.6 * var(--u)) calc(1 * var(--u)); border-radius: var(--radius-sm); }
.skip-link:focus { top: calc(1 * var(--u)); color: #fff; }
.legacy-controls { display: none !important; }
.icon { width: 1.1em; height: 1.1em; flex: none; display: inline-block; vertical-align: -.15em; }
.ta-center { text-align: center; }
.muted { color: var(--c-muted); font-size: var(--fs-sm); }
.u-mt { margin-top: var(--space-5); }
.text-accent { color: var(--c-orange-500); }

/* ---------------------------------------------------------------------
   04. BOTÕES, TAGS, CHIPS, LINKS
   --------------------------------------------------------------------- */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: calc(.5 * var(--u));
    min-height: 44px; padding: calc(.65 * var(--u)) calc(1.25 * var(--u));
    border: 2px solid transparent; border-radius: var(--radius-pill);
    font-weight: 600; font-size: var(--fs-sm); line-height: 1.2;
    text-decoration: none; cursor: pointer; white-space: nowrap;
    transition: transform var(--dur) var(--ease), background-color var(--dur), box-shadow var(--dur), color var(--dur), border-color var(--dur);
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0); }
.btn--primary { background: var(--color-primary); color: var(--color-on-primary); box-shadow: 0 6px 16px rgba(246, 172, 47, .35); }
.btn--primary:hover { background: var(--color-primary-hover); color: var(--color-on-primary); box-shadow: 0 10px 24px rgba(246, 172, 47, .45); }
.btn--outline { border-color: var(--c-navy-800); color: var(--c-navy-800); background: transparent; }
.btn--outline:hover { background: var(--c-navy-800); color: #fff; }
.btn--ghost { color: #fff; border-color: rgba(255, 255, 255, .35); background: transparent; }
.btn--ghost:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.btn--ghost-dark { color: var(--c-navy-800); border-color: var(--c-navy-100); background: #fff; }
.btn--ghost-dark:hover { border-color: var(--c-navy-800); color: var(--c-navy-900); }
.btn--whatsapp { background: var(--c-whatsapp); color: #fff; }
.btn--whatsapp:hover { background: #178a45; color: #fff; }
.btn--sm { min-height: 36px; padding: calc(.45 * var(--u)) calc(.9 * var(--u)); font-size: var(--fs-xs); }
.btn--lg { min-height: 52px; padding: calc(.85 * var(--u)) calc(1.75 * var(--u)); font-size: var(--fs-md); }
.btn--block { width: 100%; }
.btn .icon { width: 1.15em; height: 1.15em; }

.tag {
    display: inline-flex; align-items: center; gap: calc(.3 * var(--u));
    padding: calc(.2 * var(--u)) calc(.65 * var(--u)); border-radius: var(--radius-pill);
    background: var(--c-navy-50); color: var(--c-navy-800);
    font-size: var(--fs-xs); font-weight: 600; letter-spacing: .01em;
}
.tag--overlay { position: absolute; left: calc(.75 * var(--u)); bottom: calc(.75 * var(--u)); background: rgba(255, 255, 255, .95); box-shadow: var(--shadow-sm); }

.eyebrow {
    display: inline-flex; align-items: center; gap: calc(.45 * var(--u));
    margin-bottom: var(--space-3);
    font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
    color: var(--c-orange-700);
}
.eyebrow--light { color: var(--c-orange-400); }

.link-arrow { display: inline-flex; align-items: center; gap: calc(.35 * var(--u)); font-weight: 600; text-decoration: none; color: var(--c-navy-800); }
.link-arrow .icon { transition: transform var(--dur) var(--ease); }
.link-arrow:hover .icon { transform: translateX(4px); }

/* Link "esticado": o card inteiro fica clicável, mantendo um único link semântico */
.stretched::after { content: ""; position: absolute; inset: 0; z-index: 1; }

.chips { display: flex; flex-wrap: wrap; gap: calc(.5 * var(--u)); margin-top: var(--space-4); }
.chip {
    padding: calc(.4 * var(--u)) calc(.9 * var(--u)); border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .2);
    color: #e7ebf7; font-size: var(--fs-xs); font-weight: 500; text-decoration: none;
    transition: background var(--dur), border-color var(--dur), color var(--dur);
}
.chip:hover { background: var(--c-orange-500); border-color: var(--c-orange-500); color: var(--c-navy-900); }

/* ---------------------------------------------------------------------
   05. BARRA UTILITÁRIA
   --------------------------------------------------------------------- */
.utility-bar { background: var(--c-navy-950); color: #c9d1e8; font-size: var(--fs-xs); }
.utility-bar__inner { display: flex; align-items: center; justify-content: space-between; gap: calc(1 * var(--u)); min-height: 36px; }
.utility-bar a { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: calc(.4 * var(--u)); }
.utility-bar a:hover { color: #fff; }
.utility-bar__badge { font-weight: 600; color: var(--c-orange-400) !important; }
.utility-bar__links { display: none; list-style: none; gap: calc(1.25 * var(--u)); }
.utility-bar__links a { white-space: nowrap; }
@media (min-width: 900px) { .utility-bar__links { display: flex; } }

/* ---------------------------------------------------------------------
   06. CABEÇALHO E NAVEGAÇÃO
   Mobile: gaveta lateral com transição; submenus em acordeão.
   Desktop (>= 1080px): barra horizontal com dropdowns (hover + foco).
   --------------------------------------------------------------------- */
.site-header {
    position: sticky; top: 0; z-index: 100;
    background: var(--c-navy-800);
    transition: box-shadow var(--dur), background-color var(--dur);
}
.site-header.is-scrolled { background: rgba(18, 38, 91, .96); backdrop-filter: saturate(140%) blur(10px); box-shadow: 0 8px 24px rgba(7, 17, 49, .25); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; min-height: var(--header-h); gap: calc(1 * var(--u)); }
.brand img { width: 170px; height: auto; }

/* Botão hambúrguer */
.nav-toggle {
    position: relative; z-index: 120;
    display: inline-grid; place-content: center; gap: 5px;
    width: 46px; height: 46px; padding: 0;
    border: 0; border-radius: 12px; background: rgba(255, 255, 255, .08); cursor: pointer;
}
.nav-toggle__bar { display: block; width: 22px; height: 2px; border-radius: 2px; background: #fff; transition: transform var(--dur) var(--ease), opacity var(--dur); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Gaveta (mobile) */
.primary-nav {
    position: fixed; inset: 0 0 0 auto; z-index: 110;
    width: min(88vw, 380px);
    display: flex; flex-direction: column; gap: var(--space-5);
    padding: calc(var(--header-h) + calc(1 * var(--u))) calc(1.25 * var(--u)) calc(2 * var(--u));
    background: var(--c-navy-900);
    overflow-y: auto; overscroll-behavior: contain;
    transform: translateX(100%); visibility: hidden;
    transition: transform .35s var(--ease), visibility 0s linear .35s;
}
.primary-nav.is-open { transform: none; visibility: visible; transition: transform .35s var(--ease); box-shadow: var(--shadow-lg); }
.nav-backdrop {
    position: fixed; inset: 0; z-index: 105;
    background: rgba(7, 17, 49, .55);
    opacity: 0; pointer-events: none; transition: opacity .35s var(--ease);
}
.nav-backdrop.is-visible { opacity: 1; pointer-events: auto; }

.nav-list { list-style: none; display: flex; flex-direction: column; }
.nav-item { position: relative; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.nav-link {
    display: flex; align-items: center; justify-content: space-between; width: 100%;
    padding: calc(.9 * var(--u)) calc(.25 * var(--u)); border: 0; background: none;
    color: #fff; font-weight: 600; font-size: var(--fs-md); text-decoration: none; text-align: left; cursor: pointer;
}
.nav-link:hover { color: var(--c-orange-400); }
.icon--chev { transition: transform var(--dur) var(--ease); }
[aria-expanded="true"] > .icon--chev { transform: rotate(180deg); }

/* Submenu (mobile): acordeão animado por max-height */
.dropdown__group { padding: 0 calc(.25 * var(--u)); }
.nav-item.is-open .dropdown__group:last-child { padding-bottom: calc(.75 * var(--u)); }
.dropdown__title { margin: calc(.5 * var(--u)) 0 calc(.25 * var(--u)); font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-orange-400); }
.dropdown ul { list-style: none; }
.dropdown a { display: block; padding: calc(.45 * var(--u)) 0; color: #d6dcef; font-size: var(--fs-sm); text-decoration: none; }
.dropdown a:hover { color: #fff; }

.dropdown { display: block; max-height: 0; overflow: hidden; transition: max-height .35s var(--ease); }
.nav-item.is-open > .dropdown { max-height: 1200px; }

.nav-actions { display: flex; flex-direction: column; gap: calc(.75 * var(--u)); }
.nav-actions .btn { width: 100%; }
.nav-item--login { border: 0; }
.nav-item--login > .btn { justify-content: center; }
.nav-item--login .dropdown__group { padding-top: calc(.25 * var(--u)); }

/* Desktop */
@media (min-width: 1080px) {
    .nav-toggle, .nav-backdrop { display: none; }
    .primary-nav {
        position: static; width: auto; padding: 0; background: none; overflow: visible;
        flex-direction: row; align-items: center; gap: calc(1.25 * var(--u));
        transform: none; visibility: visible; transition: none; box-shadow: none;
    }
    .nav-list { flex-direction: row; align-items: center; gap: calc(.1 * var(--u)); }
    .nav-item { border: 0; }
    .nav-link { padding: calc(.55 * var(--u)) calc(.8 * var(--u)); border-radius: var(--radius-pill); font-size: var(--fs-sm); color: #e7ebf7; gap: calc(.3 * var(--u)); white-space: nowrap; }
    .nav-link:hover, .nav-item:focus-within > .nav-link { color: #fff; background: rgba(255, 255, 255, .08); }

    .dropdown {
        position: absolute; top: calc(100% + 10px); left: 50%;
        display: grid; grid-template-columns: repeat(2, minmax(200px, 1fr)); gap: calc(1.25 * var(--u)) calc(2 * var(--u));
        max-height: none; overflow: visible;
        min-width: 460px; padding: calc(1.25 * var(--u)) calc(1.5 * var(--u));
        background: #fff; border-radius: var(--radius); box-shadow: var(--shadow-lg);
        opacity: 0; visibility: hidden; transform: translate(-50%, 8px);
        transition: opacity .2s var(--ease), transform .2s var(--ease), visibility 0s linear .2s;
    }
    .dropdown::before { content: ""; position: absolute; inset: -12px 0 auto; height: 12px; } /* ponte de hover */
    .dropdown--wide { grid-template-columns: repeat(var(--cols, 3), minmax(190px, 1fr)); min-width: 640px; }
    .nav-item:nth-child(2) .dropdown--wide { --cols: 4; min-width: 860px; }
    .dropdown--right { left: auto; right: 0; transform: translateY(8px); min-width: 300px; grid-template-columns: 1fr; }
    .nav-item:hover > .dropdown,
    .nav-item:focus-within > .dropdown,
    .nav-item.is-open > .dropdown { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition: opacity .2s var(--ease), transform .2s var(--ease); }
    .nav-item:hover > .dropdown--right,
    .nav-item:focus-within > .dropdown--right,
    .nav-item.is-open > .dropdown--right { transform: none; }
    .dropdown__group { padding: 0; }
    .dropdown__title { color: var(--c-orange-700); margin-top: 0; }
    .dropdown a { color: var(--c-text); padding: calc(.3 * var(--u)) 0; }
    .dropdown a:hover { color: var(--c-navy-800); text-decoration: underline; }

    .nav-actions { flex-direction: row; align-items: center; }
    .nav-actions .btn { width: auto; }
    .nav-item--login { position: relative; }
}
@media (min-width: 1280px) { .brand img { width: 200px; } }

/* ---------------------------------------------------------------------
   07. HERO + BUSCA
   --------------------------------------------------------------------- */
.hero {
    position: relative; isolation: isolate; overflow: hidden;
    padding: var(--space-7) 0 var(--space-8);
    color: #dfe5f5;
    background:
        radial-gradient(1200px 500px at 85% -10%, rgba(246, 172, 47, .22), transparent 60%),
        radial-gradient(900px 500px at -10% 110%, rgba(42, 65, 135, .9), transparent 60%),
        linear-gradient(160deg, var(--c-navy-800) 0%, var(--c-navy-900) 70%);
}
.hero__glow {
    position: absolute; z-index: -1; right: -120px; top: 40px;
    width: 420px; height: 420px; border-radius: 50%;
    background: conic-gradient(from 120deg, rgba(246, 172, 47, .35), rgba(246, 172, 47, 0) 40%, rgba(141, 156, 196, .25) 70%, rgba(246, 172, 47, .35));
    filter: blur(60px); opacity: .6;
}
.hero__inner { max-width: 920px; text-align: center; }
.hero .eyebrow { justify-content: center; }
.hero__title { color: #fff; font-size: var(--fs-3xl); font-weight: 800; margin-bottom: var(--space-4); }
/* Título em 2 linhas a partir de 640px: a 2ª linha não quebra e a fonte
   encolhe com a tela para caber na largura do hero (máx. 920px).
   O divisor 22 vem da largura medida da frase em Poppins 800 (~21,3em). */
@media (min-width: 640px) {
    .hero__title { font-size: min(var(--fs-3xl), calc((min(100vw, 960px) - 40px) / 22)); }
    .hero__title-line { white-space: nowrap; }
}
.hero__lead { font-size: var(--fs-lg); max-width: 680px; margin: 0 auto var(--space-6); color: #c9d1e8; }

.search { text-align: left; }
.search__label { display: block; margin-bottom: calc(.5 * var(--u)); font-weight: 600; color: #fff; font-size: var(--fs-sm); }
.search__bar {
    position: relative; display: flex; align-items: center; gap: calc(.5 * var(--u));
    padding: calc(.4 * var(--u)); background: #fff; border-radius: var(--radius-pill);
    box-shadow: 0 18px 50px rgba(3, 9, 30, .35);
    transition: box-shadow var(--dur), transform var(--dur);
}
.search__bar:focus-within { box-shadow: 0 18px 50px rgba(3, 9, 30, .35), var(--ring); transform: translateY(-1px); }
.search__icon { width: 22px; height: 22px; margin-left: calc(.9 * var(--u)); color: var(--c-muted); flex: none; }
.search__input {
    flex: 1; min-width: 0; height: 48px; padding: 0 calc(.25 * var(--u));
    border: 0; background: transparent; color: var(--c-ink); font-size: var(--fs-md);
}
.search__input:focus { outline: none; }
.search__input::placeholder { color: #8a90a3; }
.search__button {
    display: inline-flex; align-items: center; justify-content: center; gap: calc(.45 * var(--u));
    height: 48px; min-width: 48px; padding: 0 calc(1 * var(--u));
    border-radius: var(--radius-pill); background: var(--color-primary); color: var(--color-on-primary);
    font-weight: 700; text-decoration: none; transition: background var(--dur), transform var(--dur);
}
.search__button:hover { background: var(--color-primary-hover); color: var(--color-on-primary); transform: scale(1.03); }
.search__button span { display: none; }
@media (min-width: 560px) { .search__button { padding: 0 calc(1.5 * var(--u)); } .search__button span { display: inline; } }

.search .chips { justify-content: center; }

.trust { list-style: none; display: grid; gap: calc(.75 * var(--u)); margin-top: var(--space-6); text-align: left; }
.trust__item {
    display: flex; align-items: center; gap: calc(.75 * var(--u));
    padding: calc(.85 * var(--u)) calc(1 * var(--u)); border-radius: var(--radius);
    background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1);
    font-size: var(--fs-sm); color: #c9d1e8;
}
.trust__item strong { color: #fff; }
.trust__item .icon { width: 28px; height: 28px; color: var(--c-orange-400); }
@media (min-width: 760px) { .trust { grid-template-columns: repeat(3, 1fr); } }

/* ---------------------------------------------------------------------
   08. RESULTADO DA BUSCA (Repeater dtGridResultcurso)
   --------------------------------------------------------------------- */
.search-result { margin-top: var(--space-4); padding: var(--space-4); background: #fff; border-radius: var(--radius); box-shadow: var(--shadow-lg); color: var(--c-text); animation: rise .35s var(--ease); }
.alert { padding: calc(.9 * var(--u)) calc(1 * var(--u)); border-radius: var(--radius-sm); border-left: 4px solid; font-size: var(--fs-sm); margin-bottom: var(--space-3); }
.alert--warning { background: #fff6e5; border-color: var(--c-orange-500); color: #6b4300; }
.alert--success { background: #e9f7ef; border-color: var(--c-success); color: #14572f; }
.alert--error   { background: #fdecea; border-color: var(--c-error);   color: #7d2019; }
.result-table__wrap { overflow-x: auto; }
.result-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.result-table th { text-align: left; padding: calc(.7 * var(--u)) calc(.75 * var(--u)); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .06em; color: var(--c-muted); border-bottom: 2px solid var(--c-line); }
.result-table td { padding: calc(.75 * var(--u)); border-bottom: 1px solid var(--c-line); vertical-align: middle; }
.result-table tbody tr { transition: background var(--dur); }
.result-table tbody tr:hover { background: var(--c-soft); }
.result-table__num { color: var(--c-muted); font-variant-numeric: tabular-nums; }
.result-table__course a { font-weight: 600; color: var(--c-navy-800); text-decoration: none; }
.result-table__course a:hover { text-decoration: underline; }
.result-table__ch { text-transform: lowercase; white-space: nowrap; }
.search-result__close { display: flex; justify-content: flex-end; margin-top: var(--space-3); }

/* Tabela vira lista de cards no celular */
@media (max-width: 719px) {
    .result-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .result-table, .result-table tbody, .result-table tr, .result-table td { display: block; width: 100%; }
    .result-table tr { padding: calc(.75 * var(--u)) 0; border-bottom: 1px solid var(--c-line); }
    .result-table td { display: flex; justify-content: space-between; gap: calc(1 * var(--u)); padding: calc(.3 * var(--u)) 0; border: 0; text-align: right; }
    .result-table td::before { content: attr(data-label); font-weight: 600; color: var(--c-muted); text-align: left; }
    .result-table .ta-center { justify-content: flex-end; }
    .result-table td.ta-center::before { content: none; }
}

/* ---------------------------------------------------------------------
   09. SEÇÕES E GRIDS
   --------------------------------------------------------------------- */
.section { padding: var(--space-8) 0; }
.section--soft { background: var(--c-soft); }
.section--navy { background: linear-gradient(160deg, var(--c-navy-800), var(--c-navy-950)); color: #c9d1e8; }
.section--navy .section__title { color: #fff; }
.section--navy a:not(.btn) { color: var(--c-orange-400); }
.section--navy .section__lead { color: #c9d1e8; }
.section--navy .area-card a:not(.btn) { color: var(--c-navy-800); }
.section--navy .area-card { border-color: transparent; }
.section__head { max-width: 720px; margin-bottom: var(--space-6); }
.section__head--split { max-width: none; display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: calc(1 * var(--u)); }
.section__head--split > div { max-width: 720px; }
.section__title { font-size: var(--fs-2xl); font-weight: 700; }
.section__lead { font-size: var(--fs-lg); color: var(--c-muted); margin: 0; }

.grid { display: grid; gap: var(--space-5); }
@media (min-width: 640px)  { .grid--4, .grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px)  { .grid--3 { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1080px) { .grid--4 { grid-template-columns: repeat(4, 1fr); } }

/* Trilho com rolagem horizontal (scroll-snap) no celular */
@media (max-width: 639px) {
    .rail {
        grid-auto-flow: column; grid-auto-columns: 82%;
        overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: calc(1.25 * var(--u));
        margin-inline: calc(-1.25 * var(--u)); padding: calc(.25 * var(--u)) calc(1.25 * var(--u)) calc(1 * var(--u));
        scrollbar-width: none;
    }
    .rail::-webkit-scrollbar { display: none; }
    .rail > * { scroll-snap-align: start; }
}

.cta-row { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(.75 * var(--u)); margin-top: var(--space-6); }
.cta-row--left { justify-content: flex-start; margin-top: var(--space-4); }

/* ---------------------------------------------------------------------
   10. CARDS
   --------------------------------------------------------------------- */
/* Base comum: microinteração de elevação */
.path-card, .course-card, .area-card, .step-card, .quote-card, .panel {
    position: relative; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}
.path-card:hover, .course-card:hover, .area-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); border-color: transparent; }

/* Caminhos */
.path-card { padding: var(--space-5); display: flex; flex-direction: column; }
.path-card p { flex: 1; font-size: var(--fs-sm); }
.path-card__icon {
    display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: var(--space-4);
    border-radius: 14px; background: var(--c-navy-50); color: var(--c-navy-800);
    transition: background .3s, color .3s, transform .3s var(--ease);
}
.path-card__icon svg { width: 26px; height: 26px; }
.path-card:hover .path-card__icon { background: var(--c-orange-500); color: var(--c-navy-900); transform: rotate(-6deg) scale(1.05); }
.path-card__title { font-size: var(--fs-xl); }
.path-card--featured { background: linear-gradient(160deg, var(--c-navy-800), var(--c-navy-900)); border-color: transparent; color: #c9d1e8; }
.path-card--featured .path-card__title { color: #fff; }
.path-card--featured .path-card__icon { background: rgba(246, 172, 47, .15); color: var(--c-orange-400); }
.path-card--featured .link-arrow { color: var(--c-orange-400); }

/* Ingresso (passos) */
.steps { list-style: none; counter-reset: none; }
.step-card { padding: var(--space-6) var(--space-5) var(--space-5); }
.step-card__num {
    position: absolute; top: -18px; left: var(--space-5);
    display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%;
    background: var(--c-orange-500); color: var(--c-navy-900); font-family: var(--font-display); font-weight: 800;
    box-shadow: 0 6px 14px rgba(246, 172, 47, .4);
}
.step-card__title { display: flex; align-items: center; gap: calc(.5 * var(--u)); font-size: var(--fs-lg); }
.step-card__title .icon { color: var(--c-orange-700); }
.step-card p { font-size: var(--fs-sm); }
.steps.grid { row-gap: var(--space-7); }
.checklist { list-style: none; margin-bottom: var(--space-4); font-size: var(--fs-sm); }
.checklist li { position: relative; padding-left: calc(1.5 * var(--u)); margin-bottom: calc(.35 * var(--u)); }
.checklist li::before { content: ""; position: absolute; left: 0; top: .45em; width: calc(.9 * var(--u)); height: calc(.9 * var(--u)); border-radius: 50%; background: var(--c-orange-100) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23b5740c' stroke-width='4' stroke-linecap='round' stroke-linejoin='round' d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/70% no-repeat; }

/* Cursos de graduação */
.course-card { overflow: hidden; display: flex; flex-direction: column; }
.course-card__media { position: relative; aspect-ratio: 348 / 230; overflow: hidden; background: var(--c-navy-50); }
.course-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.course-card:hover .course-card__media img { transform: scale(1.06); }
.course-card__body { display: flex; flex-direction: column; flex: 1; padding: var(--space-5); }
.course-card__body p { flex: 1; font-size: var(--fs-sm); }
.course-card__title { font-size: var(--fs-lg); }
.course-card .btn { align-self: flex-start; }
.course-card:hover .btn--outline { background: var(--c-navy-800); color: #fff; }

/* Áreas da pós */
.area-card { overflow: hidden; display: grid; grid-template-columns: 96px 1fr; align-items: stretch; }
.area-card img { width: 100%; height: 100%; object-fit: cover; }
.area-card__body { padding: var(--space-4); }
.area-card__title { font-size: var(--fs-md); margin-bottom: calc(.35 * var(--u)); }
.area-card__body p { font-size: var(--fs-xs); color: var(--c-muted); margin-bottom: calc(.5 * var(--u)); }
.area-card .link-arrow { font-size: var(--fs-sm); }

/* Depoimentos */
.quote-card { display: flex; flex-direction: column; justify-content: space-between; padding: var(--space-5); }
.quote-card blockquote { position: relative; padding-top: calc(1.75 * var(--u)); font-size: var(--fs-sm); color: var(--c-text); }
.quote-card blockquote::before { content: "\201C"; position: absolute; top: calc(-.6 * var(--u)); left: calc(-.1 * var(--u)); font-family: Georgia, serif; font-size: calc(4 * var(--u)); line-height: 1; color: var(--c-orange-500); }
.quote-card__author { display: flex; align-items: center; gap: calc(.75 * var(--u)); padding-top: var(--space-4); border-top: 1px solid var(--c-line); }
.quote-card__author img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; border: 3px solid var(--c-orange-100); }
.quote-card__author a { display: block; font-weight: 700; color: var(--c-ink); text-decoration: none; }
.quote-card__author small { color: var(--c-muted); font-size: var(--fs-xs); }

/* ---------------------------------------------------------------------
   11. BLOCOS SPLIT
   --------------------------------------------------------------------- */
.split { display: grid; gap: var(--space-6); align-items: center; }
.split__media img { margin-inline: auto; }
.split__media--rounded img { border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.section--navy .split__media img { max-width: 200px; filter: drop-shadow(0 18px 30px rgba(0, 0, 0, .35)); }
/* Imagem em cartão (bloco de extensão da home) */
.section--navy .split__media--card img { max-width: 340px; width: 100%; border-radius: var(--radius-lg); box-shadow: 0 24px 48px rgba(3, 9, 30, .45); filter: none; }
.checklist--light li { color: #dfe5f5; }
.checklist--light li::before { background-color: rgba(246, 172, 47, .2); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23f8bd57' stroke-width='4' stroke-linecap='round' stroke-linejoin='round' d='m6 12 4 4 8-8'/%3E%3C/svg%3E"); }
@media (min-width: 900px) {
    .split { grid-template-columns: 1fr 1.6fr; gap: var(--space-8); }
    .split--reverse { grid-template-columns: 1.3fr 1fr; }
}
.social-row { display: flex; flex-wrap: wrap; gap: calc(.75 * var(--u)); }
.social-btn { display: inline-flex; align-items: center; gap: calc(.5 * var(--u)); padding: calc(.6 * var(--u)) calc(1.1 * var(--u)); border-radius: var(--radius-pill); color: #fff; font-weight: 600; font-size: var(--fs-sm); text-decoration: none; transition: transform var(--dur), filter var(--dur); }
.social-btn:hover { color: #fff; transform: translateY(-2px); filter: brightness(1.08); }
.social-btn--ig { background: linear-gradient(45deg, #f09433, #dc2743 50%, #bc1888); }
.social-btn--yt { background: #e62117; }

/* ---------------------------------------------------------------------
   12. FAQ - ACCORDION (<details>/<summary>)
   Animação: interpolate-size (Chromium recente) + fallback em JS.
   --------------------------------------------------------------------- */
.faq { display: grid; gap: calc(.75 * var(--u)); }
.faq__item {
    background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius);
    transition: border-color var(--dur), box-shadow var(--dur), background var(--dur);
    interpolate-size: allow-keywords;
}
.faq__item:hover { border-color: var(--c-navy-100); }
.faq__item[open] { border-color: var(--c-orange-500); box-shadow: var(--shadow); }
.faq__q {
    position: relative; list-style: none; cursor: pointer;
    padding: calc(1.1 * var(--u)) calc(3.5 * var(--u)) calc(1.1 * var(--u)) calc(1.25 * var(--u));
    font-family: var(--font-display); font-weight: 600; font-size: var(--fs-md); color: var(--c-ink);
}
.faq__q::-webkit-details-marker { display: none; }
.faq__q::marker { content: ""; }
/* Ícone + / - desenhado com duas barras */
.faq__q::before, .faq__q::after {
    content: ""; position: absolute; right: calc(1.25 * var(--u)); top: 50%;
    width: 16px; height: 2px; border-radius: 2px; background: var(--c-navy-800);
    transition: transform .3s var(--ease), background .3s;
}
.faq__q::after { transform: rotate(90deg); }
.faq__item[open] > .faq__q::after { transform: rotate(0deg); }
.faq__item[open] > .faq__q::before, .faq__item[open] > .faq__q::after { background: var(--c-orange-700); }
.faq__q:focus-visible { border-radius: var(--radius); }
.faq__a { padding: 0 calc(1.25 * var(--u)) calc(1.1 * var(--u)); font-size: var(--fs-sm); }
.faq__a p:last-child { margin: 0; }

/* Animação nativa onde suportada */
.faq__item::details-content { block-size: 0; overflow: hidden; transition: block-size .35s var(--ease), content-visibility .35s allow-discrete; }
.faq__item[open]::details-content { block-size: auto; }
.faq__item[open] .faq__a { animation: fade .35s var(--ease); }

/* ---------------------------------------------------------------------
   13. CONTATO E NEWSLETTER
   --------------------------------------------------------------------- */
.contact-grid { display: grid; gap: var(--space-5); }
@media (min-width: 960px) { .contact-grid { grid-template-columns: 1.1fr 1fr 1fr; } }
.panel { padding: var(--space-5); }
.panel__title { display: flex; align-items: center; gap: calc(.5 * var(--u)); font-size: var(--fs-lg); }
.panel__title .icon { color: var(--c-orange-700); }
.panel--news { background: linear-gradient(160deg, var(--c-orange-50), #fff 60%); border-color: var(--c-orange-100); }
.newsletter__label { display: block; font-weight: 600; font-size: var(--fs-sm); margin-bottom: calc(.4 * var(--u)); color: var(--c-ink); }
.newsletter__row { display: flex; flex-direction: column; gap: calc(.6 * var(--u)); }
.newsletter__input {
    width: 100%; height: 48px; padding: 0 calc(1 * var(--u));
    border: 1.5px solid var(--c-line); border-radius: var(--radius-pill); background: #fff; color: var(--c-ink);
    transition: border-color var(--dur), box-shadow var(--dur);
}
.newsletter__input:focus { outline: none; border-color: var(--c-orange-500); box-shadow: var(--ring); }
@media (min-width: 480px) { .newsletter__row { flex-direction: row; } .newsletter__row .btn { flex: none; } }
.contact-list p { display: block; margin-bottom: calc(.6 * var(--u)); font-size: var(--fs-sm); }
.contact-list a { display: inline-flex; align-items: center; gap: calc(.45 * var(--u)); text-decoration: none; font-weight: 500; }
.map-link img { margin-top: var(--space-3); border-radius: var(--radius); width: 100%; transition: transform .4s var(--ease); }
.map-link:hover img { transform: scale(1.02); }
.hours { display: grid; gap: calc(.75 * var(--u)); margin: 0 0 var(--space-4); }
.hours div { display: flex; justify-content: space-between; gap: calc(1 * var(--u)); padding-bottom: calc(.6 * var(--u)); border-bottom: 1px dashed var(--c-line); font-size: var(--fs-sm); }
.hours dt { font-weight: 600; color: var(--c-ink); }
.hours dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.panel .btn--block + .btn--block { margin-top: calc(.6 * var(--u)); }

/* ---------------------------------------------------------------------
   14. RODAPÉ
   --------------------------------------------------------------------- */
.site-footer { background: var(--c-navy-950); color: #aeb8d6; font-size: var(--fs-sm); padding-top: var(--space-8); }
.footer-grid { display: grid; gap: var(--space-6); }
@media (min-width: 640px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .footer-grid { grid-template-columns: 1fr 1fr 1.3fr 1.3fr; } }
.footer-col__title { font-size: var(--fs-xs); letter-spacing: .1em; text-transform: uppercase; color: var(--c-orange-400); margin-bottom: var(--space-4); }
.footer-col ul { list-style: none; }
.footer-col li { margin-bottom: calc(.45 * var(--u)); }
.footer-col a { color: #c9d1e8; text-decoration: none; transition: color var(--dur), padding var(--dur); }
.footer-col a:hover { color: #fff; padding-left: 4px; }
.footer-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-5); margin-top: var(--space-7); padding: var(--space-5) 0; border-top: 1px solid rgba(255, 255, 255, .08); }
.footer-meta__brand { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5); }
.emec { display: flex; align-items: center; gap: calc(.75 * var(--u)); color: #c9d1e8; text-decoration: none; font-size: var(--fs-xs); }
.emec img { width: 72px; height: 72px; border-radius: 8px; background: #fff; padding: 4px; }
.social-icons { display: flex; gap: calc(.6 * var(--u)); }
.social-icons a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: rgba(255, 255, 255, .06); color: #fff; transition: background var(--dur), transform var(--dur); }
.social-icons a:hover { background: var(--c-orange-500); color: var(--c-navy-900); transform: translateY(-3px); }
.social-icons svg { width: 20px; height: 20px; }
.footer-bottom { background: #050c24; padding: var(--space-4) 0; text-align: center; }
.footer-bottom p { margin: calc(.2 * var(--u)) 0; }
.footer-bottom__small { font-size: var(--fs-xs); color: #7f8bb0; }

/* ---------------------------------------------------------------------
   15. VOLTAR AO TOPO E COOKIES
   --------------------------------------------------------------------- */
/* À direita, alinhado ao centro do botão do chat (Tawk.to) e acima da arte
   "Atendimento humanizado" do chat (que ocupa ~190px de altura no canto). */
.back-to-top {
    position: fixed; right: 28px; bottom: 210px; z-index: 90;
    display: grid; place-items: center; width: 48px; height: 48px;
    border: 0; border-radius: 50%; background: var(--c-navy-800); color: #fff; cursor: pointer;
    box-shadow: var(--shadow); opacity: 0; transform: translateY(16px); pointer-events: none;
    transition: opacity var(--dur), transform var(--dur) var(--ease), background var(--dur);
}
.back-to-top svg { width: 22px; height: 22px; }
.back-to-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.back-to-top:hover { background: var(--c-orange-500); color: var(--c-navy-900); }

.cookie-banner {
    position: fixed; left: calc(1 * var(--u)); right: calc(1 * var(--u)); bottom: calc(1 * var(--u)); z-index: 104; /* abaixo da gaveta do menu */
    margin-inline: auto; /* centraliza o aviso na parte de baixo da tela (13/11/2026) */
    display: flex; flex-direction: column; gap: calc(.75 * var(--u)); align-items: flex-start;
    max-width: 560px; padding: calc(1 * var(--u)) calc(1.25 * var(--u));
    background: var(--c-navy-950); color: #dfe5f5; border-radius: var(--radius); box-shadow: var(--shadow-lg);
    font-size: var(--fs-sm); animation: rise .4s var(--ease);
}
.cookie-banner[hidden] { display: none; }
.cookie-banner p { margin: 0; }
.cookie-banner a { color: var(--c-orange-400); }
@media (min-width: 640px) { .cookie-banner { flex-direction: row; align-items: center; } }

/* ---------------------------------------------------------------------
   16. ANIMAÇÕES, MOVIMENTO REDUZIDO E IMPRESSÃO
   --------------------------------------------------------------------- */
@keyframes rise { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }

/* Revelação ao rolar (classe aplicada pelo JS; sem JS tudo fica visível) */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.js .reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
    .js .reveal { opacity: 1; transform: none; }
}

/* ---------------------------------------------------------------------
   17. PÁGINAS INTERNAS (Masters)
   Faixa de busca compacta, área de conteúdo e compatibilidade com o
   legado (Bootstrap 3, Bootstrap 4 local e css/styles.css), que continua
   carregado para não quebrar o conteúdo das páginas.
   --------------------------------------------------------------------- */
/* Neutraliza regras do styles.css antigo que atingiriam o layout novo */
#wrapper { height: auto; overflow: visible; }
#myBtn.back-to-top { display: grid; right: 28px; left: auto; bottom: 210px; padding: 0; font-size: inherit; border-radius: 50%; }
/* O css/tipology.css (importado pelo styles.css) estiliza #footer com fundo #294a8d,
   texto centralizado e padding de 20px. O seletor de ID vence .site-footer; aqui o
   rodapé novo recupera o visual próprio em qualquer página que carregue o legado. */
#footer.site-footer {
    background: var(--c-navy-950); color: #aeb8d6; text-align: left;
    font-family: var(--font-sans); font-size: var(--fs-sm); font-style: normal; font-weight: 400;
    padding: var(--space-8) 0 0;
}
.site-header .btn, .site-footer .btn, .page-search .btn, .contact-section .btn, .cookie-banner .btn { font-size: var(--fs-sm); }
.btn.btn--sm { font-size: var(--fs-xs); }
.quote-card blockquote { padding: calc(1.75 * var(--u)) 0 0; border: 0; font-size: var(--fs-sm); }
.site-header a:hover, .site-footer a:hover, .utility-bar a:hover, .dropdown a:hover { text-decoration: none; }
.dropdown a:hover { text-decoration: underline; }

/* Faixa de busca das páginas internas */
.page-search {
    padding: var(--space-4) 0 var(--space-5);
    background: linear-gradient(160deg, var(--c-navy-800) 0%, var(--c-navy-900) 80%);
}
.page-search .search { max-width: 860px; margin-inline: auto; }
.page-search .search__label { font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .08em; color: var(--c-orange-400); }
.page-search .search__bar { box-shadow: 0 10px 30px rgba(3, 9, 30, .3); }
.page-search .search__input { height: 44px; }
.page-search .search__button { height: 44px; }
.page-search .chips { justify-content: center; }
@media (max-width: 639px) { .page-search .chips { display: none; } }

/* Área de conteúdo das páginas internas */
/* Base de 14px: é o tamanho do body do Bootstrap 3 no layout antigo, sobre o qual
   o CSS legado das páginas calcula seus "em" (ex.: p { font-size: 1.2em } = 16,8px). */
.page-content { padding: var(--space-6) 0 var(--space-7); min-height: 40vh; font-size: 14px; line-height: 1.6; }
.page-content :is(h1, h2, h3) { color: var(--c-navy-800); }
.page-content h1 { font-size: var(--fs-2xl); }
.page-content :is(h1, h2, h3, h4):not(:first-child) { margin-top: 1.25em; }
.page-content a:not(.btn):not([class*="button"]) { color: var(--c-navy-700); }
.page-content .breadcrumb { background: var(--c-soft); border-radius: var(--radius-pill); padding: calc(.5 * var(--u)) calc(1 * var(--u)); font-size: var(--fs-sm); }
.page-content .form-control { border-radius: var(--radius-sm); border-color: var(--c-line); min-height: 42px; }
.page-content .form-control:focus { border-color: var(--c-orange-500); box-shadow: var(--ring); }
.page-content .btn-primary { background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary); font-weight: 600; border-radius: var(--radius-pill); }
.page-content .btn-primary:hover, .page-content .btn-primary:focus { background: var(--color-primary-hover); border-color: var(--color-primary-hover); color: var(--color-on-primary); }
.page-content .panel, .page-content .card { border-radius: var(--radius); border-color: var(--c-line); box-shadow: var(--shadow-sm); overflow: hidden; }
.page-content .card { transition: transform .3s var(--ease), box-shadow .3s var(--ease); }
.page-content .card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.page-content .table { font-size: var(--fs-sm); }
.page-content .table > thead > tr > th { border-bottom-width: 2px; color: var(--c-muted); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .05em; }

/* Seção de contato + newsletter das páginas internas */
.contact-section { border-top: 1px solid var(--c-line); }

/* ---------------------------------------------------------------------
   18. CANAIS DE ATENDIMENTO (contato.aspx)
   Página dentro do .page-content das Masters (base 14px do legado):
   por isso todas as medidas usam --u, nunca em/rem.
   --------------------------------------------------------------------- */
.page-content:has(.atd) { padding-top: 0; padding-bottom: 0; }
.atd { font-size: var(--fs-md); line-height: 1.6; color: var(--c-text); }
.atd-trilha { padding-top: var(--space-5); }
.atd-trilha ol { list-style: none; display: flex; flex-wrap: wrap; gap: calc(.4 * var(--u)); margin: 0; padding: 0; font-size: var(--fs-xs); color: var(--c-muted); }
.atd-trilha li + li::before { content: "›"; margin-right: calc(.4 * var(--u)); color: var(--c-navy-300); }
.atd-trilha a { color: var(--c-navy-700); text-decoration: none; }
.atd-trilha a:hover { text-decoration: underline; }

.atd-intro { padding-top: var(--space-5); padding-bottom: var(--space-6); }
.page-content .atd-intro__title { font-size: var(--fs-2xl); font-weight: 800; color: var(--c-navy-800); margin: 0 0 var(--space-3); }
.atd-intro__lead { max-width: 820px; font-size: var(--fs-lg); color: var(--c-muted); margin-bottom: var(--space-5); }

.atd-horario {
    display: grid; gap: var(--space-4); align-items: center;
    padding: var(--space-5); border-radius: var(--radius-lg);
    background: linear-gradient(160deg, var(--c-navy-800), var(--c-navy-900)); color: #c9d1e8;
}
.page-content .atd-horario__title { display: flex; align-items: center; gap: calc(.5 * var(--u)); margin: 0; font-size: var(--fs-lg); color: #fff; }
.atd-horario__title .icon { color: var(--c-orange-400); }
.atd-horario__lista { display: grid; gap: calc(.5 * var(--u)); margin: 0; }
.atd-horario__lista div { display: flex; flex-wrap: wrap; gap: calc(.25 * var(--u)) calc(1 * var(--u)); }
.atd-horario__lista dt { font-weight: 700; color: #fff; min-width: 150px; }
.atd-horario__lista dd { margin: 0; }
.atd-status {
    display: inline-flex; align-items: center; gap: calc(.5 * var(--u)); justify-self: start;
    margin: 0; padding: calc(.45 * var(--u)) calc(1 * var(--u)); border-radius: var(--radius-pill);
    font-weight: 700; font-size: var(--fs-sm);
}
.atd-status::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; }
.atd-status.is-aberto { background: rgba(31, 168, 85, .18); color: #7ee2a6; }
.atd-status.is-aberto::before { animation: atd-pulse 1.6s ease-in-out infinite; }
.atd-status.is-fechado { background: rgba(255, 255, 255, .1); color: #e7ebf7; }
@keyframes atd-pulse { 50% { opacity: .35; } }
@media (min-width: 900px) { .atd-horario { grid-template-columns: auto 1fr auto; gap: var(--space-6); } }

.atd-bloco { padding-top: var(--space-6); padding-bottom: var(--space-2); }
.page-content .atd-bloco__title { font-size: var(--fs-xl); font-weight: 700; color: var(--c-navy-800); margin: 0 0 var(--space-4); }
.atd-bloco__lead { color: var(--c-muted); margin: calc(-.5 * var(--u)) 0 var(--space-4); }

.atd-grid { display: grid; gap: var(--space-4); }
@media (min-width: 640px)  { .atd-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .atd-grid { grid-template-columns: repeat(3, 1fr); } }

.atd-card {
    display: flex; flex-direction: column; gap: calc(.6 * var(--u));
    padding: var(--space-5); background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm); transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}
.atd-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: transparent; }
.atd-card__head { display: flex; align-items: center; gap: calc(.75 * var(--u)); }
.atd-card__icon {
    flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px;
    background: var(--c-navy-50); color: var(--c-navy-800);
}
.atd-card__icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.atd-card--ws .atd-card__icon { background: #e8f7ee; color: #178a45; }
.atd-card--chat .atd-card__icon { background: var(--c-orange-50); color: var(--c-orange-700); }
.page-content .atd-card__title { margin: 0; font-size: var(--fs-md); font-weight: 700; color: var(--c-ink); }
.atd-card__text { flex: 1; margin: 0; font-size: var(--fs-sm); color: var(--c-muted); }
.atd-card__email { margin: 0; font-weight: 600; font-size: var(--fs-sm); color: var(--c-navy-800); word-break: break-all; }
.atd-card__btn, .atd-card__acao .btn { align-self: flex-start; margin-top: calc(.25 * var(--u)); }
.page-content .atd-card .btn { font-size: var(--fs-sm); }

.atd-faixa { margin-top: var(--space-7); padding: var(--space-7) 0; background: var(--c-soft); }
.atd-faixa + .container { padding-top: var(--space-7); }
.atd-texto { max-width: 860px; }
.atd-texto p { font-size: var(--fs-md); }

.atd-tabela { overflow-x: auto; border: 1px solid var(--c-line); border-radius: var(--radius); background: #fff; }
.atd-tabela table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.atd-tabela th, .atd-tabela td { padding: calc(.8 * var(--u)) calc(1 * var(--u)); text-align: left; vertical-align: top; border-bottom: 1px solid var(--c-line); }
.atd-tabela thead th { font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .05em; color: var(--c-muted); background: var(--c-soft); }
.atd-tabela tbody th { color: var(--c-navy-800); white-space: nowrap; }
.atd-tabela tbody tr:last-child > * { border-bottom: 0; }
.atd-tabela tbody tr:hover { background: var(--c-soft); }

.atd .faq__q { font-size: var(--fs-md); }
.atd .faq__a { font-size: var(--fs-sm); }

.atd-cta { padding: var(--space-6) 0; background: linear-gradient(120deg, var(--c-navy-800), var(--c-navy-950)); color: #c9d1e8; }
.atd-cta__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-4); }
.atd-cta__title { margin: 0 0 calc(.25 * var(--u)); font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 700; color: #fff; }
.atd-cta__text { margin: 0; }
.atd-cta__actions { display: flex; flex-wrap: wrap; gap: calc(.75 * var(--u)); }
.page-content .atd-cta .btn { font-size: var(--fs-sm); }

/* ---------------------------------------------------------------------
   19. CONTEÚDO DAS PÁGINAS INTERNAS (padrão 2026)
   Camada única que leva o miolo das ~75 páginas .aspx ao visual novo sem
   mexer em IDs, controles nem code-behind. O conteúdo ainda usa Bootstrap 3,
   css/styles.css e css/tipology.css; as regras do tipology são presas a IDs
   de seção (#conteudo-detalhecurso h1 etc.), por isso aqui elas são vencidas
   pelo mesmo grupo de IDs dentro de :is() (especificidade de ID + .page-content).
   --------------------------------------------------------------------- */

/* 19.1 Contêiner e grade -------------------------------------------- */
/* Mesma borda do cabeçalho; os 15px de padding absorvem as margens negativas das .row do Bootstrap 3 */
.page-content .container { width: min(100% - calc(2.5 * var(--u)) + 30px, var(--container) + 30px); max-width: none; padding-left: 15px; padding-right: 15px; }
.page-content .container .container { width: 100%; }
/* Títulos e blocos colocados direto numa .row (sem coluna) herdariam a margem negativa
   de -15px e ficariam fora da linha do texto: recebem o padding que a coluna daria. */
.page-content .row > :not([class*="col-"]):not(.row):not(table):not(script):not(style) { padding-left: 15px; padding-right: 15px; }
.page-content :is(.marginTop-90, .marginTop-50) { margin-top: var(--space-6) !important; }
.page-content .marginBottom-70 { margin-bottom: var(--space-6) !important; }
.page-content #conteudo > section + section { margin-top: 0; }
.page-content .clearfix-flow::after, .page-content .row::after { content: ""; display: table; clear: both; }

/* 19.2 Trilha (breadcrumb) ------------------------------------------- */
.page-content #breadcrumb { padding: var(--space-5) 0 var(--space-2); color: var(--c-muted); }
.page-content #breadcrumb .breadcrumb {
    display: flex; flex-wrap: wrap; align-items: center; gap: calc(.35 * var(--u));
    margin: 0; padding: 0; background: none; border-radius: 0;
    font-size: var(--fs-xs); text-transform: none; letter-spacing: 0; color: var(--c-muted);
}
.page-content #breadcrumb .breadcrumb > li { display: inline-flex; align-items: center; }
.page-content #breadcrumb .breadcrumb > li + li::before { content: "›"; padding: 0 calc(.35 * var(--u)) 0 0; color: var(--c-navy-300); }
.page-content #breadcrumb .breadcrumb a { color: var(--c-navy-700); text-decoration: none; }
.page-content #breadcrumb .breadcrumb a:hover { text-decoration: underline; }
.page-content #breadcrumb .breadcrumb > .active { color: var(--c-ink); }
/* Item da trilha cujo Label veio vazio do banco não deixa um "›" solto */
.page-content #breadcrumb .breadcrumb > li:is(:has(> span:empty:only-child), :has(> strong:only-child > span:empty:only-child)) { display: none; }

/* 19.3 Tipografia (vence o tipology.css) ----------------------------- */
.page-content :is(#conteudo-artigos, #conteudo-detalhecurso, #conteudo-detalhecursoextensao, #conteudo-detalhecursogratis, #conteudo-detalhecursopos, #conteudo-interno, #conteudo-lernoticia, #conteudo-matricula, #conteudo-noticia, #conteudo-quemsomos, #conteudo-trabalheconosco, #conteudoextensao) {
    padding: 0 0 var(--space-6); font-family: var(--font-sans); font-size: calc(.9375 * var(--u)); line-height: 1.7; color: var(--c-text);
}
.page-content :is(#conteudo-artigos, #conteudo-detalhecurso, #conteudo-detalhecursoextensao, #conteudo-detalhecursogratis, #conteudo-detalhecursopos, #conteudo-interno, #conteudo-lernoticia, #conteudo-matricula, #conteudo-noticia, #conteudo-quemsomos, #conteudo-trabalheconosco, #conteudoextensao) :is(h1, h2, h3, h4, h5) {
    font-family: var(--font-display); font-style: normal; text-transform: none; text-align: left; letter-spacing: -.01em; line-height: 1.25;
}
.page-content :is(#conteudo-artigos, #conteudo-detalhecurso, #conteudo-detalhecursoextensao, #conteudo-detalhecursogratis, #conteudo-detalhecursopos, #conteudo-interno, #conteudo-lernoticia, #conteudo-matricula, #conteudo-noticia, #conteudo-quemsomos, #conteudo-trabalheconosco, #conteudoextensao) h1 {
    margin: var(--space-3) 0 var(--space-4); padding-top: 0; padding-bottom: 0; font-size: var(--fs-2xl); font-weight: 800; color: var(--c-navy-800);
}
.page-content :is(#conteudo-artigos, #conteudo-detalhecurso, #conteudo-detalhecursoextensao, #conteudo-detalhecursogratis, #conteudo-detalhecursopos, #conteudo-interno, #conteudo-lernoticia, #conteudo-matricula, #conteudo-noticia, #conteudo-quemsomos, #conteudo-trabalheconosco, #conteudoextensao) h2 {
    margin: var(--space-5) 0 var(--space-3); padding-top: 0; padding-bottom: 0; font-size: var(--fs-xl); font-weight: 700; color: var(--c-navy-800);
}
.page-content :is(#conteudo-artigos, #conteudo-detalhecurso, #conteudo-detalhecursoextensao, #conteudo-detalhecursogratis, #conteudo-detalhecursopos, #conteudo-interno, #conteudo-lernoticia, #conteudo-matricula, #conteudo-noticia, #conteudo-quemsomos, #conteudo-trabalheconosco, #conteudoextensao) :is(h3, h4, h5) {
    margin: var(--space-4) 0 var(--space-2); padding-top: 0; padding-bottom: 0; font-size: var(--fs-lg); font-weight: 700; color: var(--c-ink);
}
/* Subtítulo de abertura (div#subtitulo > h2): vira texto de apoio, não título */
.page-content :is(#conteudo-artigos, #conteudo-detalhecurso, #conteudo-detalhecursoextensao, #conteudo-detalhecursogratis, #conteudo-detalhecursopos, #conteudo-interno, #conteudo-lernoticia, #conteudo-matricula, #conteudo-noticia, #conteudo-quemsomos, #conteudo-trabalheconosco, #conteudoextensao) #subtitulo :is(h2, h3) {
    margin: 0 0 var(--space-5); max-width: 860px; font-family: var(--font-sans); font-size: var(--fs-lg); font-weight: 400; line-height: 1.6; color: var(--c-muted); text-align: left;
}
.page-content :is(#conteudo-artigos, #conteudo-detalhecurso, #conteudo-detalhecursoextensao, #conteudo-detalhecursogratis, #conteudo-detalhecursopos, #conteudo-interno, #conteudo-lernoticia, #conteudo-matricula, #conteudo-noticia, #conteudo-quemsomos, #conteudo-trabalheconosco, #conteudoextensao) :is(p, li, td, label) {
    font-family: var(--font-sans); font-style: normal;
}
.page-content :is(#conteudo-artigos, #conteudo-detalhecurso, #conteudo-detalhecursoextensao, #conteudo-detalhecursogratis, #conteudo-detalhecursopos, #conteudo-interno, #conteudo-lernoticia, #conteudo-matricula, #conteudo-noticia, #conteudo-quemsomos, #conteudo-trabalheconosco, #conteudoextensao) p {
    font-size: calc(.9375 * var(--u)); text-align: left; line-height: 1.75; margin: 0 0 var(--space-4);
}
.page-content :is(#conteudo-artigos, #conteudo-detalhecurso, #conteudo-detalhecursoextensao, #conteudo-detalhecursogratis, #conteudo-detalhecursopos, #conteudo-interno, #conteudo-lernoticia, #conteudo-matricula, #conteudo-noticia, #conteudo-quemsomos, #conteudo-trabalheconosco, #conteudoextensao) img { border-radius: var(--radius); }
.page-content .head-Curso-Azul, .page-content .capacitacao { color: var(--c-navy-800) !important; background: none !important; }
.page-content .text-justify { text-align: left; }

/* 19.4 Formulários --------------------------------------------------- */
.page-content :is(.form-group, .form-row) { margin-bottom: var(--space-4); }
.page-content .form-row .form-row { margin-bottom: 0; }
.page-content :is(label, .control-label) {
    display: inline-block; margin-bottom: calc(.35 * var(--u));
    font-family: var(--font-sans); font-size: var(--fs-sm); font-weight: 600; color: var(--c-ink);
}
.page-content :is(.form-control, input[type="text"], input[type="email"], input[type="tel"], input[type="number"], input[type="password"], input[type="date"], select, textarea):not(.search__input):not(.newsletter__input) {
    width: 100%; min-height: 46px; height: auto; padding: calc(.6 * var(--u)) calc(.9 * var(--u));
    font-family: var(--font-sans); font-size: var(--fs-md); color: var(--c-ink);
    background-color: #fff; border: 1.5px solid var(--c-line); border-radius: var(--radius-sm);
    box-shadow: none; transition: border-color var(--dur), box-shadow var(--dur);
}
.page-content textarea.form-control, .page-content textarea { min-height: 120px; resize: vertical; }
.page-content select.form-control, .page-content select {
    appearance: none; -webkit-appearance: none; padding-right: calc(2.5 * var(--u));
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%2312265b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right calc(.8 * var(--u)) center / 16px;
}
.page-content :is(.form-control, input, select, textarea):not(.search__input):not(.newsletter__input):focus {
    outline: none; border-color: var(--c-orange-500); box-shadow: var(--ring);
}
.page-content :is(.form-control, input, select, textarea)[disabled], .page-content .form-control[readonly] { background-color: var(--c-soft); color: var(--c-muted); }
.page-content ::placeholder { color: #8a90a3; }
.page-content input[type="checkbox"], .page-content input[type="radio"] { width: 18px; height: 18px; min-height: 0; margin: 0 calc(.4 * var(--u)) 0 0; vertical-align: -3px; accent-color: var(--c-navy-800); }
.page-content input[type="file"] { padding: calc(.5 * var(--u)); min-height: 0; background: var(--c-soft); border-style: dashed; }
.page-content .input-group { display: flex; align-items: stretch; width: 100%; }
.page-content .input-group > .form-control { flex: 1; width: auto; min-width: 0; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; }
.page-content .input-group > .form-control:first-child { border-radius: var(--radius-sm) 0 0 var(--radius-sm); }
.page-content .input-group > .form-control:only-child { border-radius: var(--radius-sm); }
.page-content .input-group-btn { display: flex; flex: none; width: auto; }
.page-content .input-group-addon {
    display: flex; align-items: center; justify-content: center; width: auto; padding: 0 calc(.9 * var(--u));
    background: var(--c-navy-50); color: var(--c-navy-800); border: 1.5px solid var(--c-line); border-right: 0;
    border-radius: var(--radius-sm) 0 0 var(--radius-sm); font-size: var(--fs-sm);
}
.page-content .input-group-btn .btn { height: 100%; min-height: 46px; margin: 0; border-radius: 0 var(--radius-sm) var(--radius-sm) 0; box-shadow: none; }
.page-content .input-group-btn .btn:hover { transform: none; }
/* Validadores do WebForms (texto vermelho) */
.page-content .text-danger { color: var(--c-error); }
.page-content label .text-danger, .page-content .control-label .text-danger { margin-right: 2px; }
/* Ficam na linha do rótulo: oculto (visibility:hidden), o validador não abre um vão entre rótulo e campo */
.page-content span[id*="Validator"] { display: inline; margin: 0 0 0 calc(.35 * var(--u)); font-size: var(--fs-xs); font-weight: 600; color: var(--c-error) !important; background: none !important; }

/* 19.5 Botões -------------------------------------------------------- */
.page-content :is(.btn-primary, .btn-danger, .btn-success, .btn-default, .btn-info, .btn-warning, .buttonInscricao, .buttonInscricaoazul, .buttonInscricaoLaranja, .btn-detalhe-cursoingresso):not(.btn--primary) {
    display: inline-flex; align-items: center; justify-content: center; gap: calc(.45 * var(--u));
    min-height: 44px; padding: calc(.65 * var(--u)) calc(1.4 * var(--u));
    border: 2px solid transparent; border-radius: var(--radius-pill);
    font-family: var(--font-sans); font-size: var(--fs-sm); font-weight: 700; line-height: 1.2; text-decoration: none; white-space: normal; text-align: center;
    box-shadow: none; cursor: pointer;
    transition: transform var(--dur) var(--ease), background-color var(--dur), box-shadow var(--dur), color var(--dur), border-color var(--dur);
}
.page-content :is(.btn-primary, .buttonInscricaoLaranja, .btn-detalhe-cursoingresso, .btn-success) {
    background: var(--color-primary); border-color: var(--color-primary); color: var(--color-on-primary);
    box-shadow: 0 6px 16px rgba(246, 172, 47, .3);
}
.page-content :is(.btn-primary, .buttonInscricaoLaranja, .btn-detalhe-cursoingresso, .btn-success):is(:hover, :focus) {
    background: var(--color-primary-hover); border-color: var(--color-primary-hover); color: var(--color-on-primary); transform: translateY(-2px); text-decoration: none;
}
.page-content :is(.buttonInscricao, .buttonInscricaoazul, .btn-info) { background: var(--c-navy-800); border-color: var(--c-navy-800); color: #fff; }
.page-content :is(.buttonInscricao, .buttonInscricaoazul, .btn-info):is(:hover, :focus) { background: var(--c-navy-900); border-color: var(--c-navy-900); color: #fff; transform: translateY(-2px); text-decoration: none; }
/* "Voltar"/"Cancelar" nos fluxos: botão secundário, não alarme */
.page-content .btn-danger, .page-content .btn-default { background: #fff; border-color: var(--c-navy-100); color: var(--c-navy-800); }
.page-content .btn-danger:is(:hover, :focus), .page-content .btn-default:is(:hover, :focus) { background: #fff; border-color: var(--c-navy-800); color: var(--c-navy-900); transform: translateY(-2px); }
.page-content .btn-lg:not(.btn--lg) { min-height: 50px; padding: calc(.8 * var(--u)) calc(1.8 * var(--u)); font-size: var(--fs-md); }
.page-content .btn-block { display: flex; width: 100%; }
.page-content .btn-link, .page-content .btn-link-leia { padding: 0; min-height: 0; border: 0; background: none; color: var(--c-navy-700); font-weight: 600; text-decoration: none; }
.page-content .btn-link:hover { text-decoration: underline; }
.page-content :is(.buttonInscricao, .buttonInscricaoazul, .buttonInscricaoLaranja)[style*="width"] { display: flex; }
.page-content .pull-right.btn, .page-content .btn.pull-right { margin-left: calc(.5 * var(--u)); }

/* 19.6 Alertas legados (warning_box / valid_box / error_box) --------- */
.page-content :is(.warning_box, .valid_box, .error_box):not(.alert) {
    width: 100%; margin: 0 0 var(--space-4); padding: calc(.9 * var(--u)) calc(1 * var(--u)) calc(.9 * var(--u)) calc(2.75 * var(--u));
    border: 0; border-left: 4px solid; border-radius: var(--radius-sm);
    background-position: calc(.85 * var(--u)) center; background-size: 18px; background-repeat: no-repeat;
    font-size: var(--fs-sm); line-height: 1.5;
}
.page-content .warning_box:not(.alert) { background-color: #fff6e5; border-color: var(--c-orange-500); color: #6b4300; }
.page-content .valid_box:not(.alert)   { background-color: #e9f7ef; border-color: var(--c-success); color: #14572f; }
.page-content .error_box:not(.alert)   { background-color: #fdecea; border-color: var(--c-error); color: #7d2019; }
.page-content .alert:not(.alert--warning):not(.alert--success):not(.alert--error) { border: 0; border-left: 4px solid var(--c-navy-300); border-radius: var(--radius-sm); background: var(--c-navy-50); color: var(--c-navy-900); font-size: var(--fs-sm); }
.page-content .alert-warning { border-left-color: var(--c-orange-500) !important; background: #fff6e5 !important; color: #6b4300 !important; }
.page-content .alert-success { border-left-color: var(--c-success) !important; background: #e9f7ef !important; color: #14572f !important; }
.page-content .alert-danger  { border-left-color: var(--c-error) !important; background: #fdecea !important; color: #7d2019 !important; }

/* 19.7 Tabelas ------------------------------------------------------- */
.page-content table.table {
    width: 100%; margin-bottom: var(--space-4); border-collapse: separate; border-spacing: 0;
    background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; font-size: var(--fs-sm);
}
.page-content .table > :is(thead, tbody, tfoot) > tr > :is(th, td) { padding: calc(.7 * var(--u)) calc(.85 * var(--u)); border: 0; border-bottom: 1px solid var(--c-line); vertical-align: middle; line-height: 1.5; }
.page-content .table > tbody > tr:last-child > :is(th, td), .page-content .table > tfoot > tr:last-child > :is(th, td) { border-bottom: 0; }
.page-content .table > thead > tr > th { background: var(--c-navy-800); color: #fff; font-size: var(--fs-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; border-bottom: 0; }
.page-content .table-bordered > :is(thead, tbody, tfoot) > tr > :is(th, td) { border-right: 0; border-left: 0; }
.page-content .table-striped > tbody > tr:nth-of-type(odd) { background: var(--c-soft); }
.page-content .table-hover > tbody > tr:hover { background: var(--c-orange-50); }
.page-content .table-responsive { border: 0; border-radius: var(--radius); }
.page-content .table a { font-weight: 600; color: var(--c-navy-800); text-decoration: none; }
.page-content .table a:hover { text-decoration: underline; }
.page-content .table a[id*="LnkMatricula"] {
    display: inline-flex; align-items: center; justify-content: center; padding: calc(.35 * var(--u)) calc(.9 * var(--u));
    border-radius: var(--radius-pill); background: var(--color-primary); color: var(--color-on-primary);
    font-size: var(--fs-xs); font-weight: 700; text-transform: none; white-space: nowrap;
}
.page-content .table a[id*="LnkMatricula"]:hover { background: var(--color-primary-hover); text-decoration: none; }
@media (max-width: 767px) { .page-content table.table { display: block; overflow-x: auto; } }

/* 19.8 Painéis, cards, well, acordeões -------------------------------- */
.page-content :is(.panel, .well, .card) {
    background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); overflow: hidden;
}
.page-content .well, .page-content .well-lg { padding: var(--space-5); background: var(--c-soft); box-shadow: none; }
.page-content .panel { margin-bottom: var(--space-4); }
.page-content .panel-heading { padding: calc(.9 * var(--u)) var(--space-5); background: var(--c-navy-50) !important; border-bottom: 1px solid var(--c-line); border-radius: 0; color: var(--c-navy-800) !important; }
.page-content .panel-title { margin: 0 !important; font-family: var(--font-display); font-size: var(--fs-md) !important; font-weight: 700; color: var(--c-navy-800) !important; }
.page-content .panel-title a { color: inherit; text-decoration: none; }
.page-content .panel-body { padding: var(--space-5); }
.page-content .panel-group .panel + .panel { margin-top: calc(.75 * var(--u)); }
.page-content .panel-default > .panel-heading + .panel-collapse > .panel-body { border-top: 0; }

/* Listas de cursos (Repeater em pares: .col-md-12 > .card.col-md-6 ×2) */
.page-content #lista-cursos { display: grid; gap: var(--space-5); }
.page-content #lista-cursos > .col-md-12 { display: grid; gap: var(--space-5); float: none; width: auto; padding: 0; margin: 0 !important; }
@media (min-width: 900px) { .page-content #lista-cursos > .col-md-12 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.page-content #lista-cursos .card {
    display: flex; flex-direction: column; float: none; width: auto; margin: 0 !important; padding: 0;
    transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}
.page-content #lista-cursos .card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: transparent; }
.page-content .card .card-img-top { display: block; width: 100% !important; margin: 0 !important; aspect-ratio: 16 / 7; object-fit: cover; border-radius: 0; }
.page-content .card .card-body { flex: 1; height: auto !important; padding: var(--space-5) var(--space-5) var(--space-3); }
.page-content .card .card-title { margin: 0 0 var(--space-2) !important; font-size: var(--fs-lg) !important; font-weight: 700 !important; color: var(--c-navy-800) !important; text-transform: none !important; }
.page-content .card .card-text { margin: 0; padding: 0 !important; font-size: var(--fs-sm) !important; color: var(--c-muted); text-align: left !important; }
.page-content .card .card-footer { padding: 0 var(--space-5) var(--space-5) !important; background: none; border: 0; text-align: left !important; }
.page-content .card .card-footer #botaomatricula, .page-content .card .card-footer .row { float: none !important; margin: 0 !important; }
.page-content #cardbody { height: auto; }
.page-content :is(#cursoposleft, #cursoposheight) { margin-right: 0; }

/* 19.9 Páginas de curso (detalhes): caixa de preço e matriz ---------- */
.page-content :is(#conteudo-detalhecurso, #conteudo-detalhecursogratis) :is(#concluapos, #MensalidadeCursoPos, #MensalidadeApostilaPos, #MensalidadeCurso, #MensalidadeApostila, #PlanoPagamento) {
    display: flex; align-items: center; justify-content: center; height: auto; min-height: 0; width: auto;
    margin: var(--space-3) 0 calc(.5 * var(--u)); padding: calc(.75 * var(--u)) var(--space-4);
    border-radius: var(--radius); background: var(--c-navy-800); color: #fff; text-transform: none;
}
.page-content :is(#conteudo-detalhecurso, #conteudo-detalhecursogratis) #concluapos { background: linear-gradient(120deg, var(--c-orange-500), var(--c-orange-400)); color: var(--c-navy-900); }
.page-content :is(#conteudo-detalhecurso, #conteudo-detalhecursogratis) :is(#concluapos, #MensalidadeCursoPos, #MensalidadeApostilaPos, #MensalidadeCurso, #MensalidadeApostila) :is(h3, h3 span) {
    margin: 0 !important; padding: 0 !important; font-family: var(--font-display); font-size: var(--fs-md) !important; font-weight: 700; text-align: center; color: inherit !important; text-transform: none;
}
.page-content :is(#conteudo-detalhecurso, #conteudo-detalhecursogratis) :is(#MatrizPos, #Matriz) { margin: var(--space-5) 0 var(--space-3); }
.page-content :is(#conteudo-detalhecurso, #conteudo-detalhecursogratis) :is(#MatrizPos, #Matriz) h2 {
    margin: 0; padding: calc(.75 * var(--u)) var(--space-4); border-radius: var(--radius);
    background: var(--c-navy-50); color: var(--c-navy-800); font-size: var(--fs-lg); text-align: left;
}
.page-content :is(#conteudo-detalhecurso, #conteudo-detalhecursogratis) :is(#taxamatriculapos, #taxamatricula, #mensalidadecursopreco, #mensalidadeapostilapreco) { margin: 0 0 var(--space-3); width: auto; }
.page-content :is(#taxamatriculapos, #taxamatricula, #PanelEmec) table { width: 100%; border-radius: var(--radius); overflow: hidden; }
.page-content :is(.td-taxa, .td-price) { padding: calc(.7 * var(--u)) calc(.9 * var(--u)) !important; font-weight: 700; font-size: var(--fs-sm); }
.page-content .td-taxa { background: var(--c-navy-50); color: var(--c-navy-800); }
.page-content .td-price { background: #fff; color: var(--c-ink); }
.page-content #PanelEmec table { background: var(--c-soft) !important; border: 1px solid var(--c-line); }
.page-content .widget, .page-content .widget-content { background: none; border: 0; box-shadow: none; padding: 0; }
.page-content .widget-header-novo-branco { color: inherit; }
.page-content #informacoes-curso #nomecurso img, .page-content #nomecurso img { width: 100%; height: auto; border-radius: var(--radius-lg); }
@media (min-width: 992px) {
    .page-content #informacoes-curso + [class*="col-md-4"] { position: sticky; top: calc(var(--header-h) + var(--space-4)); }
}

/* 19.10 Nuvem de termos (.trigger1) vira chips ----------------------- */
.page-content .trigger1 {
    display: inline-flex; align-items: center; margin: 0 calc(.35 * var(--u)) calc(.5 * var(--u)) 0; padding: calc(.35 * var(--u)) calc(.85 * var(--u));
    border: 1px solid var(--c-line); border-radius: var(--radius-pill); background: #fff;
    font-size: var(--fs-xs); font-weight: 500; color: var(--c-muted); text-decoration: none; text-transform: lowercase;
}
.page-content .trigger1:hover { border-color: var(--c-navy-300); color: var(--c-navy-800); text-decoration: none; }

/* 19.11 Passo a passo do vestibular e da matrícula (.wizard) ---------- */
.page-content .wizard { margin: var(--space-4) 0 var(--space-5); }
.page-content .wizard-inner { position: relative; }
.page-content .wizard .connecting-line { position: absolute; left: 12%; right: 12%; top: 22px; height: 3px; border-radius: 2px; background: var(--c-line); z-index: 0; }
.page-content .wizard .nav-tabs { position: relative; z-index: 1; display: flex; justify-content: space-between; margin: 0; padding: 0; border: 0; list-style: none; counter-reset: passo; }
.page-content .wizard .nav-tabs::before, .page-content .wizard .nav-tabs::after { content: none; }
.page-content .wizard .nav-tabs > li { flex: 1; float: none; margin: 0; text-align: center; counter-increment: passo; }
.page-content .wizard .nav-tabs > li > a { display: block; margin: 0; padding: 0; border: 0 !important; background: none !important; color: var(--c-muted); pointer-events: none; cursor: default; }
.page-content .wizard .round-tab { display: flex; flex-direction: column; align-items: center; gap: calc(.4 * var(--u)); font-size: var(--fs-xs); line-height: 1.3; }
.page-content .wizard .round-tab img { display: none; }
.page-content .wizard .round-tab p { margin: 0; }
.page-content .wizard .round-tab::before {
    content: counter(passo); display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%;
    background: #fff; border: 3px solid var(--c-line); color: var(--c-muted); font-family: var(--font-display); font-weight: 800; font-size: var(--fs-md);
}
.page-content .wizard .nav-tabs > li.active .round-tab::before { background: var(--c-orange-500); border-color: var(--c-orange-500); color: var(--c-navy-900); box-shadow: 0 6px 14px rgba(246, 172, 47, .4); }
.page-content .wizard .nav-tabs > li.active .round-tab { color: var(--c-navy-800); font-weight: 700; }
.page-content .wizard .nav-tabs > li.active ~ li .round-tab::before { background: #fff; }
@media (max-width: 559px) { .page-content .wizard .round-tab strong { display: none; } .page-content .wizard .nav-tabs > li.active .round-tab strong { display: block; } }
/* Abas comuns (fora do wizard) */
.page-content .nav-tabs:not(.wizard .nav-tabs) { display: flex; flex-wrap: wrap; gap: calc(.35 * var(--u)); border-bottom: 2px solid var(--c-line); }
.page-content .nav-tabs:not(.wizard .nav-tabs) > li > a { border: 0; border-radius: var(--radius-sm) var(--radius-sm) 0 0; color: var(--c-muted); font-weight: 600; }
.page-content .nav-tabs:not(.wizard .nav-tabs) > li.active > a { color: var(--c-navy-800); background: var(--c-navy-50); border: 0; }

/* 19.12 Paginação ---------------------------------------------------- */
.page-content ul.pagination { display: flex; flex-wrap: wrap; align-items: center; gap: calc(.35 * var(--u)); margin: var(--space-4) 0; padding: 0; background: none; border-radius: 0; float: none !important; }
.page-content ul.pagination > li, .page-content ul.pagination > div { display: inline-flex; float: none !important; margin: 0 !important; }
.page-content ul.pagination li a, .page-content #paginas2 a, .page-content #paginas2 input {
    display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 calc(.75 * var(--u));
    border: 1px solid var(--c-line); border-radius: var(--radius-pill); background: #fff; color: var(--c-navy-800);
    font-size: var(--fs-sm); font-weight: 600; text-decoration: none;
}
.page-content ul.pagination li a:hover { border-color: var(--c-navy-800); background: var(--c-navy-50); }
.page-content ul.pagination li a:is(.activeP, .activeA) { width: 40px; padding: 0; background: var(--c-navy-800) center / 14px no-repeat; border-color: var(--c-navy-800); }
.page-content ul.pagination li a.activeA { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='m15 18-6-6 6-6'/%3E%3C/svg%3E"); }
.page-content ul.pagination li a.activeP { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' d='m9 18 6-6-6-6'/%3E%3C/svg%3E"); }
.page-content ul.pagination .active > a, .page-content ul.pagination a.active { background: var(--c-orange-500); border-color: var(--c-orange-500); color: var(--c-navy-900); }

/* 19.13 Notícias, artigos e autor ------------------------------------ */
.page-content #imagemdenoticia .noticia-imgler, .page-content #imagemcursogratis .noticia-imgler { width: min(100%, 340px); margin: var(--space-2) var(--space-5) var(--space-4) 0; padding: 0; border: 0; border-radius: var(--radius-lg); overflow: hidden; background: none; }
@media (max-width: 639px) { .page-content #imagemdenoticia .noticia-imgler, .page-content #imagemcursogratis .noticia-imgler { float: none; width: 100%; margin-right: 0; } }
.page-content #bordaautor { margin-bottom: var(--space-6); padding: var(--space-5); border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: var(--c-soft); }
.page-content .navnoticia { font-family: var(--font-display) !important; font-size: var(--fs-md) !important; }
.page-content .media { display: flex; gap: var(--space-4); align-items: flex-start; }
.page-content .media-left, .page-content .media-right { flex: none; padding: 0; }
.page-content .media-body { flex: 1; min-width: 0; width: auto; }
.page-content .media-object { border-radius: var(--radius); object-fit: cover; }
/* Lista de notícias (#noticiagrid em colunas col-sm-6) */
.page-content #conteudo-noticia .form-row:has(> #noticiagrid) { display: grid; gap: var(--space-4); margin: 0; }
@media (min-width: 768px) { .page-content #conteudo-noticia .form-row:has(> #noticiagrid) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.page-content #conteudo-noticia .form-row > #noticiagrid { float: none; width: auto; padding: 0; }
.page-content #noticiagrid .media {
    height: 100% !important; margin: 0; padding: var(--space-4); background: #fff;
    border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
    transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.page-content #noticiagrid .media:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.page-content #noticiagrid .media-object { width: 120px !important; height: 120px !important; margin: 0 !important; }
.page-content #conteudo-noticia #noticiagrid :is(h2, .noticiagridh2) { margin: 0 0 var(--space-2); padding: 0; font-size: var(--fs-md); font-weight: 700; text-align: left; color: var(--c-navy-800); }
.page-content #conteudo-noticia #noticiagrid :is(h2, .noticiagridh2) a { color: inherit; text-decoration: none; }
.page-content #conteudo-noticia #noticiagrid p { font-size: var(--fs-sm); color: var(--c-muted); margin: 0; }
@media (max-width: 479px) { .page-content #noticiagrid .media { flex-direction: column; } .page-content #noticiagrid .media-object { width: 100% !important; height: 160px !important; } }

/* 19.14 FAQ legado e listas ----------------------------------------- */
.page-content .faq-item { margin-bottom: calc(.75 * var(--u)); padding: var(--space-4) var(--space-5); border: 1px solid var(--c-line); border-radius: var(--radius); background: #fff; }
.page-content .faq-pergunta { margin: 0 0 calc(.35 * var(--u)); font-family: var(--font-display); font-weight: 700; color: var(--c-ink); }
.page-content .faq-resposta { margin: 0; color: var(--c-text); }

/* 19.15 Utilitários do legado ---------------------------------------- */
.page-content .img-responsive { max-width: 100%; height: auto; }
.page-content .img-border { border: 1px solid var(--c-line); border-radius: var(--radius); }
.page-content hr { border: 0; border-top: 1px solid var(--c-line); margin: var(--space-5) 0; }
.page-content #imgpos { background: rgba(255, 255, 255, .7); opacity: 1; }

/* 19.16 Checkout (matricula/Site1.Master) e confirmação -------------- */
.checkout-header { position: sticky; top: 0; }
.checkout-header .site-header__inner { min-height: 64px; }
.checkout-header__secure { display: none; align-items: center; gap: calc(.45 * var(--u)); margin: 0; font-size: var(--fs-sm); font-weight: 600; color: #c9d1e8; }
.checkout-header__secure .icon { color: var(--c-orange-400); }
@media (min-width: 720px) { .checkout-header__secure { display: inline-flex; } }
.checkout-header__help {
    display: inline-flex; align-items: center; gap: calc(.45 * var(--u)); padding: calc(.5 * var(--u)) calc(1 * var(--u));
    border: 1px solid rgba(255, 255, 255, .3); border-radius: var(--radius-pill); color: #fff; font-size: var(--fs-sm); font-weight: 600; text-decoration: none;
}
.checkout-header__help:hover { background: rgba(255, 255, 255, .1); color: #fff; text-decoration: none; }
.checkout-footer { padding: var(--space-5) 0; background: var(--c-navy-950); color: #aeb8d6; font-size: var(--fs-xs); }
.checkout-footer__inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); }
.checkout-footer p { margin: 0; }
.checkout-footer__links { display: flex; flex-wrap: wrap; gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
.checkout-footer a { display: inline-flex; align-items: center; gap: calc(.35 * var(--u)); color: #c9d1e8; text-decoration: none; }
.checkout-footer a:hover { color: #fff; }
.is-checkout .page-content { min-height: 60vh; }

.confirma { padding: var(--space-7) 0; }
.confirma__card { max-width: 640px; margin: 0 auto; padding: var(--space-6) var(--space-5); text-align: center; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.confirma__icone { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto var(--space-4); border-radius: 50%; background: #e8f7ee; color: var(--c-success); }
.confirma__icone svg { width: 36px; height: 36px; }
.page-content .confirma__titulo { margin: 0 0 var(--space-3); font-size: var(--fs-2xl); font-weight: 800; color: var(--c-navy-800); }
.confirma__texto { margin: 0 auto var(--space-5); max-width: 520px; font-size: var(--fs-md); color: var(--c-muted); }
.confirma__acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(.75 * var(--u)); }
.confirma__links { display: flex; flex-wrap: wrap; justify-content: center; gap: calc(.5 * var(--u)) var(--space-4); margin-top: var(--space-5); padding-top: var(--space-4); border-top: 1px solid var(--c-line); font-size: var(--fs-sm); }
.confirma__links a { color: var(--c-navy-700); font-weight: 600; text-decoration: none; }
.confirma__links a:hover { text-decoration: underline; }

@media print {
    .utility-bar, .site-header, .back-to-top, .cookie-banner, .search, [vw] { display: none !important; }
    .hero { background: none; color: #000; padding: calc(1 * var(--u)) 0; }
    .hero__title { color: #000; }
    .faq__item::details-content { block-size: auto; }
}

/* ---------------------------------------------------------------------------
   19.17 Formas de ingresso (/graduacao-ead/inscricao-vestibular) — 13/11/2026
   Conteúdo alinhado ao fasouza.com.br, com os componentes deste site
   (step-card, checklist, faq__item, btn--primary).
   --------------------------------------------------------------------------- */
.page-content .ingresso-grid { margin-top: var(--space-5); align-items: stretch; }
.page-content .ingresso-grid > .step-card { display: flex; flex-direction: column; gap: var(--space-3); }
.page-content .ingresso-grid .step-card__title { margin: 0; font-size: var(--fs-lg); }
.page-content .ingresso-grid .btn { margin-top: auto; }
.page-content .ingresso-grid .faq__item { margin: 0; }
.page-content .ingresso-grid .faq__a ol { padding-left: 1.2em; font-size: var(--fs-sm); }
.ingresso-tag {
  align-self: flex-start; display: inline-block; padding: 2px 10px; border-radius: 999px;
  background: var(--c-orange-100); color: var(--c-orange-700, #8a5a00);
  font-size: 12px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase;
}
.page-content .ingresso-apoio { margin-top: var(--space-6); color: var(--c-muted, #5b6478); }

/* ---------------------------------------------------------------------------
   19.18 Página de curso (detalhes.aspx) — 13/11/2026
   Estrutura alinhada à página de curso do fasouza.com.br (cssnovo, seções
   19.3 e 24), redesenhada com as cores e medidas deste site. Tudo fica sob
   .pg-curso, o invólucro da página, para não interferir no resto do site.
   --------------------------------------------------------------------------- */
.pg-curso { font-size: var(--fs-md); }
.pg-curso .container { width: min(100% - 2 * var(--space-4), var(--container)); margin-inline: auto; }
.pg-curso h1 { font-family: var(--font-display); font-size: var(--fs-2xl); line-height: 1.2; color: var(--c-navy-900); margin: 0 0 var(--space-3); }
.pg-curso h2 { font-family: var(--font-display); font-size: var(--fs-xl); line-height: 1.25; color: var(--c-navy-900); margin: var(--space-6) 0 var(--space-3); }
.pg-curso .curso-corpo > h2:first-child { margin-top: 0; }
.pg-curso h3 { font-size: var(--fs-lg); color: var(--c-navy-800); margin: var(--space-5) 0 var(--space-2); }
.pg-curso p { color: var(--c-text); line-height: 1.65; }
.pg-curso .section { padding-block: clamp(calc(2.5 * var(--u)), 5vw, calc(4.5 * var(--u))); }
.pg-curso .section--soft { background: var(--c-soft); }

/* chapéu acima do título */
.pg-curso .kicker {
  display: inline-flex; align-items: center; gap: 8px; margin-bottom: var(--space-3);
  font-size: var(--fs-xs); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-orange-700);
}
.pg-curso .kicker::before { content: ""; width: 22px; height: 2px; border-radius: 2px; background: currentColor; }

/* apresentação */
.pg-curso .curso-hero { padding-block: clamp(calc(2 * var(--u)), 4vw, calc(4 * var(--u))); background: linear-gradient(180deg, var(--c-soft) 0%, #fff 100%); }
.pg-curso .curso-hero__grid { display: grid; gap: var(--space-6); align-items: center; }
@media (min-width: 1024px) { .pg-curso .curso-hero__grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: calc(3.5 * var(--u)); } }
.pg-curso .curso-hero__lead { font-size: var(--fs-lg); }
.pg-curso .curso-hero__acoes { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-5); }
.pg-curso .curso-hero__media { margin: 0; }
.pg-curso .curso-hero__media img { display: block; width: 100%; height: auto; aspect-ratio: 1250 / 413; object-fit: cover; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }

/* ficha técnica */
.pg-curso .curso-fatos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: var(--space-5) 0 0; }
@media (min-width: 768px) { .pg-curso .curso-fatos { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pg-curso .curso-fatos > div { padding: 12px 14px; border: 1px solid var(--c-line); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.pg-curso .curso-fatos dt { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--c-orange-700); }
.pg-curso .curso-fatos dd { margin: 2px 0 0; font-weight: 600; color: var(--c-ink); line-height: 1.35; }

/* caixas de aviso do code-behind */
.pg-curso .form-msgs:empty { display: none; }
.pg-curso .alerta { margin: 8px 0; padding: 12px 16px; border-left: 4px solid; border-radius: var(--radius-sm); font-size: var(--fs-sm); }
.pg-curso .alerta--aviso { background: #fff7e6; border-color: #e0a100; color: #6b4e00; }
.pg-curso .alerta--sucesso { background: #e9f7f0; border-color: var(--c-success); color: #14583a; }
.pg-curso .alerta--erro { background: #fdeceb; border-color: var(--c-error); color: #8a231b; }

/* duas colunas: conteúdo + lateral de preços */
.pg-curso .curso-layout { display: grid; gap: var(--space-6); align-items: start; }
@media (min-width: 1024px) {
  .pg-curso .curso-layout { grid-template-columns: minmax(0, 1fr) 340px; gap: calc(2.5 * var(--u)); }
  .pg-curso .curso-aside { position: sticky; top: calc(var(--header-h) + var(--space-4)); }
}
.pg-curso .curso-corpo { min-width: 0; }
.pg-curso .curso-aside { display: grid; gap: var(--space-4); min-width: 0; }

/* painéis da lateral */
.pg-curso .painel { border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); overflow: hidden; }
.pg-curso .painel__head { padding: 14px 18px; background: var(--c-navy-800); }
.pg-curso .painel__head h2 { margin: 0; font-size: var(--fs-md); color: #fff; }
.pg-curso .painel__acao { padding: 12px 14px 14px; }
.pg-curso .tabela-painel { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); margin: 0; }
.pg-curso .tabela-painel th, .pg-curso .tabela-painel td { padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--c-line); background: none; }
.pg-curso .tabela-painel thead th { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--c-muted); background: var(--c-soft); }
.pg-curso .tabela-painel td { color: var(--c-ink); font-variant-numeric: tabular-nums; }
.pg-curso .tabela-painel .painel__rodape-td { font-size: var(--fs-xs); color: var(--c-muted); background: var(--c-soft); line-height: 1.5; }
.pg-curso .painel-taxa { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; border: 1px solid var(--c-orange-100); border-radius: var(--radius-lg); background: var(--c-orange-50); }
.pg-curso .painel-taxa__rot { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--c-orange-700); }
.pg-curso .painel-taxa__valor { font-family: var(--font-display); font-size: var(--fs-xl); font-weight: 700; color: var(--c-ink); }
.pg-curso .painel-mec { display: grid; gap: 10px; padding: 18px; border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); text-align: center; }
.pg-curso .painel-mec__rot { font-size: var(--fs-xs); font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--c-navy-800); }
.pg-curso .painel-mec img { max-width: 200px; height: auto; margin: 0 auto; }

/* matriz curricular */
.pg-curso .modulo-card {
  display: grid; gap: 4px 14px; grid-template-columns: auto 1fr auto auto; align-items: center;
  padding: 14px 16px; margin-bottom: 10px; border: 1px solid var(--c-line); border-left: 3px solid var(--c-orange-500);
  border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); transition: box-shadow var(--dur) var(--ease);
}
.pg-curso .modulo-card:hover { box-shadow: var(--shadow); }
.pg-curso .modulo-card--video { grid-template-columns: auto 1fr auto auto auto; }
.pg-curso .modulo-card__num { font-family: var(--font-display); font-size: var(--fs-sm); font-weight: 700; color: var(--c-orange-700); white-space: nowrap; }
.pg-curso .modulo-card__nome { min-width: 0; font-weight: 600; color: var(--c-ink); }
.pg-curso .modulo-card__nome em { display: block; margin-top: 4px; font-size: var(--fs-sm); font-weight: 400; color: var(--c-muted); }
.pg-curso .modulo-card__ch { font-size: var(--fs-sm); font-weight: 700; color: var(--c-navy-800); font-variant-numeric: tabular-nums; white-space: nowrap; }
.pg-curso .modulo-card__video { line-height: 0; }
.pg-curso .modulo-card__video img { width: 24px; height: 24px; }
.pg-curso .modulo-card__nucleo img { display: block; width: 26px; height: 21px; }
@media (max-width: 599px) {
  .pg-curso .modulo-card, .pg-curso .modulo-card--video { grid-template-columns: 1fr auto auto auto; }
  .pg-curso .modulo-card__num, .pg-curso .modulo-card__nome { grid-column: 1 / -1; }
  .pg-curso .modulo-card__ch { grid-column: 2; }
}
.pg-curso .matriz-rodape { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; margin-bottom: var(--space-6); border: 1px solid var(--c-line); border-radius: var(--radius); background: var(--c-soft); }
.pg-curso .matriz-rodape__total { display: inline-flex; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 700; color: var(--c-navy-800); }
.pg-curso .matriz-rodape__total svg { width: 16px; height: 16px; fill: currentColor; }
.pg-curso .legenda-nucleo { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pg-curso .legenda-nucleo li { padding: 5px 12px; border-radius: var(--radius-pill); font-size: var(--fs-xs); font-weight: 700; }
.pg-curso .legenda-nucleo li:first-child { background: var(--c-orange-50); color: var(--c-orange-700); }
.pg-curso .legenda-nucleo li:last-child { background: rgba(31, 138, 76, .12); color: #16694a; }

/* caixas de destaque e botões com ícone */
.pg-curso .destaque { padding: clamp(18px, 2.6vw, 28px); margin: var(--space-4) 0; border: 1px solid var(--c-line); border-left: 4px solid var(--c-orange-500); border-radius: var(--radius-lg); background: var(--c-soft); }
.pg-curso .destaque > :last-child { margin-bottom: 0; }
.pg-curso .destaque--azul { border-left-color: var(--c-navy-500); background: var(--c-navy-50); }
.pg-curso .destaque__acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: var(--space-4); }
.pg-curso .btn .ico-btn { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }

/* estágio, avaliações e lista de benefícios */
.pg-curso .bloco-estagio { background: linear-gradient(135deg, var(--c-navy-50), #eef4ff); }
.pg-curso .bloco-avaliacoes { background: var(--c-orange-50); }
.pg-curso .bloco-estagio h2, .pg-curso .bloco-avaliacoes h2 { margin-top: 0; }
.pg-curso .lista-beneficios { display: grid; gap: 8px; margin: 0 0 var(--space-4); padding-left: 20px; }
.pg-curso .lista-beneficios li::marker { color: var(--c-orange-500); }

/* faixa de conversão (azul, para o texto branco ter contraste) */
.pg-curso .cta-band { padding-block: clamp(calc(2.5 * var(--u)), 5vw, calc(4 * var(--u))); background: radial-gradient(80% 140% at 100% 0%, rgba(246, 172, 47, .18), transparent 60%), linear-gradient(120deg, var(--c-navy-950), var(--c-navy-800)); color: #fff; }
.pg-curso .cta-band__inner { display: grid; gap: var(--space-4); justify-items: center; text-align: center; }
@media (min-width: 1024px) { .pg-curso .cta-band__inner { grid-template-columns: 1fr auto; justify-items: start; text-align: left; } }
.pg-curso .cta-band__title { margin: 0; font-family: var(--font-display); font-size: var(--fs-2xl); font-weight: 800; line-height: 1.2; color: #fff; }
.pg-curso .cta-band__texto { margin: 8px 0 0; color: #c9d1e8; }
.pg-curso .cta-band__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.btn--outline-white { background: transparent; color: #fff; border: 2px solid rgba(255, 255, 255, .6); }
.btn--outline-white:hover { background: rgba(255, 255, 255, .12); color: #fff; border-color: #fff; }
.pg-curso .figura-certificado { margin: 0 0 var(--space-6); }
.pg-curso .figura-certificado img { display: block; width: 100%; height: auto; border: 1px solid var(--c-line); border-radius: var(--radius); }
.pg-curso .temas-lista { list-style: none; margin: 0 0 var(--space-6); padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.pg-curso .temas-lista li { padding: 5px 12px; border: 1px solid var(--c-line); border-radius: var(--radius-pill); background: var(--c-soft); color: var(--c-text); font-size: var(--fs-sm); }
.pg-curso .curso-hero:not(:has(.curso-hero__grid)) .curso-hero__lead { max-width: 70ch; }

/* =====================================================================
   19.19 Listagens da pós-graduação (a partir de 3/4/6 meses, áreas, catálogo) — 13/11/2026
   Conteúdo alinhado ao fasouza.com.br; tudo restrito a .pg-lista (e .pg-curso).
   ===================================================================== */
/* botões claros sobre fundo claro (o .btn--ghost padrão é branco, feito para fundo escuro) */
.pg-curso .curso-hero .btn--ghost, .pg-curso .section .btn--ghost { color: var(--c-navy-800); border-color: var(--c-navy-100); background: #fff; }
.pg-curso .curso-hero .btn--ghost:hover, .pg-curso .section .btn--ghost:hover { border-color: var(--c-navy-800); color: var(--c-navy-900); background: #fff; }
.btn--white { background: #fff; color: var(--c-navy-900); }
.btn--white:hover { background: var(--c-orange-500); color: var(--c-navy-900); }

.pg-lista .section-head { margin: var(--space-6) 0 var(--space-3); }
.pg-lista .curso-hero .section-head, .pg-lista .section .container > .section-head:first-child,
.pg-lista .section .container > .destaque:first-child + .section-head { margin-top: 0; }
.pg-lista .section-head h2 { margin: 0; }
.pg-lista .curso-hero h1 { max-width: 30ch; }
.pg-lista .curso-hero__lead { max-width: 70ch; }

.pg-lista .lista-checada { list-style: none; margin: 0 0 var(--space-4); padding: 0; display: grid; gap: 10px; }
.pg-lista .lista-checada li { position: relative; padding-left: 30px; line-height: 1.6; color: var(--c-text); }
.pg-lista .lista-checada li::before {
    content: ""; position: absolute; left: 0; top: .2em; width: 20px; height: 20px; border-radius: 50%;
    background: var(--c-orange-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23b86e00' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 12px no-repeat;
}

/* pilares, credenciais e jornada */
.pg-lista :is(.pilares-grid, .credenciais-grid) { display: grid; gap: var(--space-4); margin: 0 0 var(--space-4); }
@media (min-width: 768px) { .pg-lista .pilares-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); } .pg-lista .credenciais-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pg-lista :is(.pilar-card, .credencial-bloco) { padding: var(--space-5); border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); transition: transform var(--dur) var(--ease), box-shadow var(--dur); }
.pg-lista :is(.pilar-card, .credencial-bloco):hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.pg-lista .credencial-bloco { display: grid; grid-template-columns: auto 1fr; gap: var(--space-3); align-items: start; }
.pg-lista :is(.pilar-card, .credencial-bloco) h3 { margin: var(--space-2) 0 var(--space-2); font-size: var(--fs-md); }
.pg-lista .credencial-bloco h3 { margin-top: 0; }
.pg-lista :is(.pilar-card, .credencial-bloco) p { margin: 0; font-size: var(--fs-sm); }
.pg-lista :is(.pilar-card__ico, .credencial-bloco__ico) { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: var(--c-navy-50); color: var(--c-navy-800); }
.pg-lista :is(.pilar-card__ico, .credencial-bloco__ico) svg { width: 22px; height: 22px; }
.pg-lista .jornada-grid { list-style: none; margin: var(--space-4) 0 0; padding: 0; display: grid; gap: var(--space-4); counter-reset: none; }
@media (min-width: 768px) { .pg-lista .jornada-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pg-lista .jornada-etapa { padding: var(--space-5); border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: #fff; }
.pg-lista .jornada-etapa__num { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--c-orange-500); color: var(--c-navy-900); font-family: var(--font-display); font-weight: 800; }
.pg-lista .jornada-etapa h3 { margin: var(--space-3) 0 var(--space-2); font-size: var(--fs-md); }
.pg-lista .jornada-etapa p { margin: 0; font-size: var(--fs-sm); }

/* catálogo: cartões, busca e paginação */
.pg-lista .lista-cards { display: grid; gap: var(--space-4); margin-top: var(--space-4); }
@media (min-width: 640px) { .pg-lista .lista-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .pg-lista .lista-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pg-lista .course-card__body { gap: 0; }
.pg-lista .course-card__tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 var(--space-2); flex: 0 0 auto !important; }
.pg-lista .tag--prazo { background: var(--c-orange-50); color: var(--c-orange-700); }
.pg-lista .course-card__title { margin: 0 0 var(--space-2); font-size: var(--fs-md); line-height: 1.35; color: var(--c-navy-900); }
.pg-lista .course-card__body > p:not(.course-card__tags) { color: var(--c-muted); }
.pg-lista .course-card__acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: var(--space-3); }
.pg-lista .course-card__acoes .btn { padding-inline: calc(1 * var(--u)); font-size: var(--fs-sm); }
.pg-lista .catalogo-busca { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: var(--space-4) 0 0; padding: 8px; border: 1px solid var(--c-line); border-radius: var(--radius-pill); background: #fff; box-shadow: var(--shadow-sm); max-width: 720px; }
.pg-lista .catalogo-busca__campo { flex: 1 1 220px; min-width: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; padding: 10px 14px; font-size: var(--fs-md); outline: none; }
.pg-lista .catalogo-busca__erro { flex-basis: 100%; padding: 0 14px 4px; font-size: var(--fs-xs); color: var(--c-error); }
.pg-lista .paginacao { margin-top: var(--space-5); }
.pg-lista ul.pagination li > span { display: inline-grid; place-items: center; min-width: 40px; height: 40px; color: var(--c-muted); }
.pg-lista ul.pagination li.disabled > span { opacity: .45; }
.pg-lista .total-cursos { margin: var(--space-2) 0 0; font-size: var(--fs-sm); color: var(--c-muted); }
.pg-lista .faq { margin-top: var(--space-4); }

/* Bootstrap 3 (.container:before/:after com display:table) vira item de grade/flex e
   ocupava a 1ª coluna do rodapé nas páginas internas. Anulado só nesses contêineres. */
.container:is(.utility-bar__inner, .site-header__inner, .cta-band__inner, .footer-grid, .footer-meta)::before,
.container:is(.utility-bar__inner, .site-header__inner, .cta-band__inner, .footer-grid, .footer-meta)::after { content: none; display: none; }

/* =====================================================================
   20. SUBSTITUTO MÍNIMO DO BOOTSTRAP 3 — 13/11/2026
   O Bootstrap 3 (CSS e JS) saiu das Master Pages. Esta seção recria só o que o
   conteúdo legado das páginas .aspx ainda usa (grade .row/.col-*, utilitários,
   abas, collapse, carrossel, alertas, mídia, ícones glyphicon usados) e o
   home-2026.js faz o papel do bootstrap.min.js (collapse, carrossel, fechar alerta).
   ===================================================================== */
/* 20.1 Base que o Bootstrap trazia */
table { border-collapse: collapse; border-spacing: 0; }
hr { margin: var(--space-4) 0; border: 0; border-top: 1px solid var(--c-line); }
[role="button"] { cursor: pointer; }

/* 20.2 Grade */
.container-fluid { padding-left: 15px; padding-right: 15px; margin-inline: auto; }
.row { margin-left: -15px; margin-right: -15px; }
.row::before, .row::after, .clearfix::before, .clearfix::after, .container-fluid::before, .container-fluid::after { content: ""; display: table; }
.row::after, .clearfix::after, .container-fluid::after { clear: both; }
:is([class*="col-xs-"], [class*="col-sm-"], [class*="col-md-"], [class*="col-lg-"]) { position: relative; min-height: 1px; padding-left: 15px; padding-right: 15px; }
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 { float: left; }
.col-xs-1 { width: 8.33333333%; }
.col-xs-2 { width: 16.66666667%; }
.col-xs-3 { width: 25%; }
.col-xs-4 { width: 33.33333333%; }
.col-xs-5 { width: 41.66666667%; }
.col-xs-6 { width: 50%; }
.col-xs-7 { width: 58.33333333%; }
.col-xs-8 { width: 66.66666667%; }
.col-xs-9 { width: 75%; }
.col-xs-10 { width: 83.33333333%; }
.col-xs-11 { width: 91.66666667%; }
.col-xs-12 { width: 100%; }
@media (min-width: 768px) {
    .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { float: left; }
    .col-sm-1 { width: 8.33333333%; }
    .col-sm-2 { width: 16.66666667%; }
    .col-sm-3 { width: 25%; }
    .col-sm-4 { width: 33.33333333%; }
    .col-sm-5 { width: 41.66666667%; }
    .col-sm-6 { width: 50%; }
    .col-sm-7 { width: 58.33333333%; }
    .col-sm-8 { width: 66.66666667%; }
    .col-sm-9 { width: 75%; }
    .col-sm-10 { width: 83.33333333%; }
    .col-sm-11 { width: 91.66666667%; }
    .col-sm-12 { width: 100%; }
}
@media (min-width: 992px) {
    .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { float: left; }
    .col-md-1 { width: 8.33333333%; }
    .col-md-2 { width: 16.66666667%; }
    .col-md-3 { width: 25%; }
    .col-md-4 { width: 33.33333333%; }
    .col-md-5 { width: 41.66666667%; }
    .col-md-6 { width: 50%; }
    .col-md-7 { width: 58.33333333%; }
    .col-md-8 { width: 66.66666667%; }
    .col-md-9 { width: 75%; }
    .col-md-10 { width: 83.33333333%; }
    .col-md-11 { width: 91.66666667%; }
    .col-md-12 { width: 100%; }
}
@media (min-width: 1200px) {
    .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { float: left; }
    .col-lg-1 { width: 8.33333333%; }
    .col-lg-2 { width: 16.66666667%; }
    .col-lg-3 { width: 25%; }
    .col-lg-4 { width: 33.33333333%; }
    .col-lg-5 { width: 41.66666667%; }
    .col-lg-6 { width: 50%; }
    .col-lg-7 { width: 58.33333333%; }
    .col-lg-8 { width: 66.66666667%; }
    .col-lg-9 { width: 75%; }
    .col-lg-10 { width: 83.33333333%; }
    .col-lg-11 { width: 91.66666667%; }
    .col-lg-12 { width: 100%; }
}

/* 20.3 Utilitários */
.pull-right { float: right !important; }
.pull-left { float: left !important; }
.center-block { display: block; margin-left: auto; margin-right: auto; }
.hidden { display: none !important; }
.show { display: block !important; }
.invisible { visibility: hidden; }
@media (max-width: 767px) { .hidden-xs { display: none !important; } }
@media (min-width: 768px) and (max-width: 991px) { .hidden-sm { display: none !important; } }
@media (min-width: 992px) and (max-width: 1199px) { .hidden-md { display: none !important; } }
@media (min-width: 1200px) { .hidden-lg { display: none !important; } }
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-center { text-align: center; }
.text-justify { text-align: justify; }
.text-nowrap { white-space: nowrap; }
.text-uppercase { text-transform: uppercase; }
.text-bold { font-weight: 700; }
.text-muted { color: var(--c-muted); }
.text-success { color: var(--c-success); }
.text-danger { color: var(--c-error); }
.img-responsive { display: block; max-width: 100%; height: auto; }
.mt-0 { margin-top: 0 !important; }
.mr-2 { margin-right: .5rem !important; }
table.nav-justified { width: 100%; }

/* 20.4 Componentes */
.help-block { display: block; margin-top: 5px; margin-bottom: 10px; color: var(--c-muted); font-size: var(--fs-sm); }
.alert { position: relative; padding: 15px; margin-bottom: var(--space-4); border: 1px solid transparent; border-radius: var(--radius-sm); }
.alert .close { position: absolute; top: 8px; right: 12px; }
.close { float: right; font-size: 22px; font-weight: 700; line-height: 1; color: #000; opacity: .3; text-decoration: none; background: none; border: 0; cursor: pointer; }
.close:hover, .close:focus { opacity: .6; text-decoration: none; color: #000; }
.media { display: flex; align-items: flex-start; gap: 15px; margin-top: 15px; }
.media:first-child { margin-top: 0; }
.media-body { flex: 1; min-width: 0; }
.media-object { display: block; }
.nav { margin: 0; padding: 0; list-style: none; }
.nav > li { position: relative; display: block; }
.nav > li > a { position: relative; display: block; padding: 10px 15px; }
.nav-tabs { border-bottom: 1px solid var(--c-line); }
.nav-tabs > li { float: left; margin-bottom: -1px; }
.nav-tabs::after { content: ""; display: table; clear: both; }
.tab-content > .tab-pane { display: none; }
.tab-content > .active { display: block; }
.fade { opacity: 0; transition: opacity .15s linear; }
.fade.in { opacity: 1; }
.collapse { display: none; }
.collapse.in, .collapse.show { display: block; }
.breadcrumb { margin: 0 0 var(--space-4); padding: 0; list-style: none; }
.breadcrumb > li { display: inline-block; }
.pagination { display: inline-flex; flex-wrap: wrap; gap: 4px; margin: var(--space-4) 0; padding: 0; list-style: none; }
.well { min-height: 20px; padding: 19px; margin-bottom: 20px; }

/* 20.5 Carrossel (só /cursosonline/cargahoraria usa) */
.carousel { position: relative; }
.carousel-inner { position: relative; width: 100%; overflow: hidden; }
.carousel-inner > .item { display: none; }
.carousel-inner > .item.active { display: block; }
.carousel-indicators { display: flex; justify-content: center; gap: 8px; margin: var(--space-3) 0 0; padding: 0; list-style: none; }
.carousel-indicators li { width: 12px; height: 12px; border: 2px solid var(--c-navy-800); border-radius: 50%; background: transparent; cursor: pointer; }
.carousel-indicators li.active { background: var(--c-navy-800); }

/* 20.6 Glyphicons usados (fale conosco): mesmo traço dos ícones do layout */
.glyphicon { display: inline-block; width: 1em; height: 1em; vertical-align: -.125em; background: currentColor;
    -webkit-mask: var(--gi) center / contain no-repeat; mask: var(--gi) center / contain no-repeat; }
.glyphicon-user { --gi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E"); }
.glyphicon-envelope { --gi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
.glyphicon-earphone, .glyphicon-phone { --gi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E"); }
.glyphicon-phone { --gi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='2' width='12' height='20' rx='2'/%3E%3Cpath d='M11 18h2'/%3E%3C/svg%3E"); }
.glyphicon-map-marker { --gi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E"); }
.glyphicon-paperclip { --gi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.4 11-9.2 9.2a6 6 0 0 1-8.5-8.5l9.2-9.2a4 4 0 0 1 5.7 5.7l-9.2 9.2a2 2 0 0 1-2.8-2.8l8.5-8.5'/%3E%3C/svg%3E"); }
.glyphicon-send { --gi: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 2 11 13'/%3E%3Cpath d='M22 2 15 22l-4-9-9-4z'/%3E%3C/svg%3E"); }

/* Tabela de mensalidade (painel lateral das páginas de curso): parcela e valor em uma linha só */
.pg-curso .tabela-painel :is(th, td):not(:last-child) { white-space: nowrap; }
.pg-curso .tabela-painel :is(th, td) { padding-left: 12px; padding-right: 12px; }

/* h2 logo depois do h1 nas páginas antigas é texto de abertura (parágrafo longo), não título:
   mesmo visual do #subtitulo (seção 19.3). O :is() com ID dá a especificidade para vencer a 19.3. */
.page-content :is(#conteudo-interno, #conteudo-artigos, #conteudo-noticia, #conteudo-lernoticia, #conteudo-matricula, #conteudo-detalhecursopos, section, div):not(.pg-curso, .pg-curso *) > h1 + h2 {
    margin: 0 0 var(--space-5); max-width: 860px; font-family: var(--font-sans); font-size: var(--fs-lg); font-weight: 400;
    line-height: 1.6; letter-spacing: 0; color: var(--c-muted); text-align: left; text-transform: none;
}

/* Listagens com cartões (extensão em .news-card; legado em .card): sem imagem — 13/11/2026 */
.page-content #lista-cursos :is(.news-image, .card-img-top) { display: none !important; }
.page-content #lista-cursos.news-cards .news-card {
    border: 1px solid var(--c-line) !important; border-top: 4px solid var(--c-orange-500) !important;
    border-radius: var(--radius-lg) !important; box-shadow: var(--shadow-sm) !important;
}
.page-content #lista-cursos.news-cards .news-card:hover { box-shadow: var(--shadow-lg) !important; transform: translateY(-4px) !important; }
.page-content #lista-cursos .news-content { padding: var(--space-5) !important; }
.page-content #lista-cursos .news-title { font-family: var(--font-display) !important; font-size: var(--fs-lg) !important; line-height: 1.3 !important; color: var(--c-navy-900) !important; }
.page-content #lista-cursos .news-excerpt { font-size: var(--fs-sm) !important; color: var(--c-muted) !important; }
/* Botão "Ver detalhes do curso": contorno azul, preenche no hover do cartão, seta à direita */
.page-content #lista-cursos a.news-link-detalhe {
    display: inline-flex !important; align-items: center; justify-content: center; gap: 8px;
    align-self: stretch !important; width: 100% !important; height: auto !important; min-height: 46px;
    margin-top: auto !important; padding: 11px 20px !important;
    border: 2px solid var(--c-navy-800) !important; border-radius: var(--radius-pill) !important;
    background: #fff !important; color: var(--c-navy-800) !important; box-shadow: none !important;
    font-family: var(--font-sans); font-size: var(--fs-sm) !important; font-weight: 700 !important; line-height: 1.2 !important;
    text-align: center; text-decoration: none !important;
    transition: background-color var(--dur), color var(--dur), transform var(--dur) var(--ease);
}
.page-content #lista-cursos a.news-link-detalhe::after {
    content: ""; flex: none; width: 16px; height: 16px; background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
            mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
    transition: transform var(--dur) var(--ease);
}
.page-content #lista-cursos .news-card:hover a.news-link-detalhe, .page-content #lista-cursos a.news-link-detalhe:focus-visible {
    background: var(--c-navy-800) !important; color: #fff !important;
}
.page-content #lista-cursos a.news-link-detalhe:hover::after { transform: translateX(3px); }

/* Caixas institucionais (.cta-institucional*, de css/ia-cta-institucional.css): o arquivo antigo
   força texto de 1.55rem com !important; aqui elas voltam ao corpo de texto e às cores do layout. */
.page-content :is(.cta-institucional, .cta-institucional-topo, .cta-institucional-curso) {
    margin: var(--space-5) 0 !important; padding: 20px 24px !important;
    background: var(--c-navy-50) !important; border: 0 !important; border-left: 4px solid var(--c-navy-500) !important;
    border-radius: var(--radius-lg) !important; box-shadow: none !important;
}
.page-content :is(.cta-institucional, .cta-institucional-topo, .cta-institucional-curso) :is(p, li) {
    margin: 0 0 var(--space-3) !important; font-family: var(--font-sans) !important; font-size: calc(.9375 * var(--u)) !important;
    line-height: 1.7 !important; color: var(--c-text) !important;
}
.page-content :is(.cta-institucional, .cta-institucional-topo, .cta-institucional-curso) > :last-child,
.page-content :is(.cta-institucional, .cta-institucional-topo, .cta-institucional-curso) :is(p, li):last-child { margin-bottom: 0 !important; }
.page-content :is(.cta-institucional, .cta-institucional-topo, .cta-institucional-curso) :is(h2, h3) { margin: 0 0 var(--space-3) !important; }
.page-content :is(.cta-institucional, .cta-institucional-topo, .cta-institucional-curso) ul { margin: var(--space-3) 0 0 !important; padding-left: 20px !important; }
.page-content :is(.cta-institucional, .cta-institucional-topo, .cta-institucional-curso) a { color: var(--c-navy-700) !important; border-bottom-color: rgba(18, 38, 91, .3) !important; }

/* Bloco de estágio e chamada final (listagem de extensão) */
.page-content .secao-estagio { margin: var(--space-6) 0; padding-block: clamp(calc(2.5 * var(--u)), 5vw, calc(4 * var(--u))); background: var(--c-soft); }
.page-content .secao-estagio .lista-checada { list-style: none; margin: 0 0 var(--space-4); padding: 0; display: grid; gap: 10px; }
.page-content .secao-estagio .lista-checada li { position: relative; padding-left: 30px; line-height: 1.6; }
.page-content .secao-estagio .lista-checada li::before {
    content: ""; position: absolute; left: 0; top: .2em; width: 20px; height: 20px; border-radius: 50%;
    background: var(--c-orange-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23b86e00' stroke-width='3' stroke-linecap='round' stroke-linejoin='round' d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center / 12px no-repeat;
}
.page-content .secao-estagio__acao { margin-top: var(--space-4); }
.page-content .cta-final { margin: var(--space-7) 0 var(--space-5); text-align: center; }
.page-content :is(#conteudo-interno, section, div) .cta-final .cta-final__titulo { margin: 0 0 var(--space-3); font-family: var(--font-display); font-size: var(--fs-lg); font-weight: 700; color: var(--c-navy-800); text-align: center !important; }

/* ==========================================================================
   21. Barra de busca nas páginas internas (13/11/2026)
   O tipology.css antigo aplica Open Sans 1.6em em #barrapesquisa #encontreseucurso,
   o que aumentava o botão "Pesquisar" e o campo nas páginas internas.
   ========================================================================== */
:is(#barrapesquisa, #barrapesquisaHome) #encontreseucurso {
    font-family: inherit;
    font-size: inherit;
    font-weight: inherit;
    font-style: inherit;
    color: inherit;
    text-align: inherit;
    padding-top: 0;
}

/* ==========================================================================
   22. Formulários no padrão do fasouza.com.br — Trabalhe na FaSouza (13/11/2026)
   Regras copiadas de cssnovo/fasouza-home.css do .com.br (só as classes que o
   .edu.br não tinha). As variáveis do .com.br são ligadas às do .edu.br abaixo.
   ========================================================================== */
:root {
    --c-white: #fff;
    --c-border: var(--c-line);
    --c-bg-soft: var(--c-soft);
    --c-blue-600: var(--c-navy-500);
    --c-blue-800: var(--c-navy-700);
    --c-blue-900: var(--c-navy-900);
    --c-primary-50: var(--c-orange-50);
    --c-primary-600: var(--c-orange-600);
    --ff-body: var(--font-sans);
    --ff-head: var(--font-display);
    --fs-base: 1rem;
    --fs-h3: var(--fs-xl);
    --r-md: var(--radius);
    --r-lg: var(--radius-lg);
    --r-xl: var(--radius-lg);
    --sh-sm: var(--shadow-sm);
    --t-fast: var(--dur);
}

.section-head--left {
    margin-left: 0; text-align: left;
}

.section-head--left .kicker {
    justify-content: flex-start;
}

.trilha {
    padding-block: 14px; border-bottom: 1px solid var(--c-border); background: var(--c-white);
}

.trilha ol {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 0;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: var(--fs-sm);
    color: var(--c-muted);
}

.trilha li {
    display: inline-flex; align-items: center;
}

.trilha li + li::before {
    content: "›";
    margin-inline: 8px;
    color: #9aa3b0;
}

.trilha a {
    color: var(--c-blue-800); text-decoration: none;
}

.trilha a:hover {
    color: var(--c-primary-600); text-decoration: underline;
}

.trilha [aria-current="page"] {
    color: var(--c-ink); font-weight: 600;
}

.trilha .breadcrumb {
    padding-block: 0;
}

.section--pos-hero {
    padding-top: clamp(16px, 1.6vw, 22px);
}

#breadcrumbsubp:not(.trilha) {
    padding-block: 14px; border-bottom: 1px solid var(--c-border);
}

.inscricao .section-head {
    margin-bottom: 28px;
}

.inscricao .section-head p {
    font-size: var(--fs-base);
}

.form-card {
    padding: clamp(20px, 3vw, 36px);
    border: 1px solid var(--c-border);
    border-radius: var(--r-xl);
    background: var(--c-white);
    box-shadow: var(--sh-sm);
}

.form-card__titulo {
    font-size: var(--fs-h3); margin-bottom: 6px;
}

.form-card__ajuda {
    color: var(--c-muted); font-size: var(--fs-sm);
}

.obrigatorio {
    color: var(--c-primary-600); font-weight: 700; margin-right: 4px;
}

.form-grid {
    display: grid; gap: 18px; margin-top: 24px;
}

@media (min-width: 768px) {
.form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px;
}
}

@media (min-width: 1200px) {
.form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
}

.campo {
    display: grid; gap: 6px; align-content: start;
}

.campo__label {
    font-weight: 600; color: var(--c-ink); font-size: var(--fs-sm);
}

.campo__dica {
    font-size: var(--fs-xs); color: var(--c-muted);
}

.form-card .form-control,
.inscricao .form-control {
    width: 100%;
    min-height: 48px;
    padding: 10px 14px;
    border: 1px solid #cfd5df;
    border-radius: var(--r-md);
    background: var(--c-white);
    font-family: var(--ff-body);
    font-size: 1rem;
    color: var(--c-ink);
    transition: border-color var(--t-fast), box-shadow var(--t-fast);
}

.form-card .form-control::placeholder {
    color: #8a93a2;
}

.form-card .form-control:hover {
    border-color: #aeb6c2;
}

.form-card .form-control:focus {
    outline: none;
    border-color: var(--c-blue-600);
    box-shadow: 0 0 0 3px rgba(31, 95, 174, .18);
}

.form-card select.form-control {
    appearance: none;
    padding-right: 38px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6574' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 18px;
}

.form-acoes {
    display: grid;
    gap: 8px;
    justify-items: start;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--c-border);
}

.form-acoes__nota {
    margin: 0; font-size: var(--fs-sm); color: var(--c-muted);
}

@media (min-width: 768px) {
.form-acoes {
    grid-template-columns: auto 1fr; align-items: center; gap: 18px;
}
}

.form-card .form-control[disabled],
.form-card .form-control:disabled {
    background: var(--c-bg-soft);
    color: var(--c-muted);
    border-style: dashed;
    cursor: not-allowed;
}

@media (min-width: 768px) {
.campo--largo {
    grid-column: span 2;
}
}

.form-card .redacao__texto {
    min-height: 340px;
    padding: 16px 18px;
    line-height: 1.7;
    resize: vertical;
    font-size: 1.05rem;
}

@media (min-width: 1024px) {
.form-card .redacao__texto {
    min-height: 420px;
}
}

.conclusao .form-acoes {
    justify-items: center; text-align: center;
}

@media (min-width: 768px) {
.conclusao .form-acoes {
    grid-template-columns: 1fr;
}
}

@media print {
.trilha,
.form-acoes {
    display: none !important;
}
}

@media print {
.form-card {
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}
}

.campo--total {
    grid-column: 1 / -1;
}

.form-card .campo--texto {
    min-height: 120px; resize: vertical; line-height: 1.6;
}

.painel__body {
    padding: 4px 0 0;
}

.artigo__corpo .trilha {
    padding: 0;
    color: inherit;
    background: none;
}

.painel--nav .painel__body {
    padding: 0;
}

.depo-rodape .painel__body {
    padding: 16px 18px;
}

.depo-rodape .painel__body p {
    margin: 0 0 12px;
}

.depo-rodape .painel__body p:last-child {
    margin-bottom: 0;
}

.depo-rodape .painel__body > .areas-lista {
    margin: -16px -18px;
}

.campo-opcoes {
    display: grid;
    gap: 10px 20px;
    margin-top: 4px;
}

@media (min-width: 640px) {
.campo-opcoes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
}

@media (min-width: 1200px) {
.campo-opcoes {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
}

.campo-opcoes span {
    display: flex;
    align-items: center;
    gap: 8px;
}

.campo-opcoes input[type="checkbox"] {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    accent-color: var(--c-primary-600);
}

.campo-opcoes label {
    font-size: var(--fs-sm); line-height: 1.35; cursor: pointer;
}

.dropzone {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 168px;
    padding: 24px 20px;
    border: 2px dashed #cfd5df;
    border-radius: var(--r-lg);
    background: var(--c-bg-soft);
    text-align: center;
    transition: border-color var(--t-fast), background-color var(--t-fast);
}

.dropzone__conteudo {
    display: grid;
    justify-items: center;
    gap: 6px;
    pointer-events: none;
}

.dropzone__ico {
    width: 44px; height: 44px; color: var(--c-muted); transition: color var(--t-fast);
}

.dropzone__titulo {
    font-family: var(--ff-head); font-size: var(--fs-base); color: var(--c-ink);
}

.dropzone__ajuda {
    font-size: var(--fs-sm); color: var(--c-muted);
}

.dropzone__escolhido {
    font-size: var(--fs-sm); font-weight: 600; color: var(--c-success); word-break: break-word;
}

.dropzone:focus-within {
    border-color: var(--c-blue-600);
    box-shadow: 0 0 0 3px rgba(31, 95, 174, .18);
}

.dropzone:hover {
    border-color: var(--c-primary-600); background: var(--c-primary-50);
}

.dropzone:hover .dropzone__ico {
    color: var(--c-primary-600);
}

.dropzone.is-sobre {
    border-color: var(--c-primary-600);
    border-style: solid;
    background: var(--c-primary-50);
}

.dropzone.is-sobre .dropzone__ico {
    color: var(--c-primary-600);
}

.dropzone.is-cheia {
    border-style: solid;
    border-color: var(--c-success);
    background: #f1faf5;
}

.dropzone.is-cheia .dropzone__ico {
    color: var(--c-success);
}

.dropzone.is-cheia .dropzone__titulo::after {
    content: " \2713"; color: var(--c-success);
}

@media (prefers-reduced-motion: reduce) {
.dropzone {
    transition: none;
}
}

.painel-contato {
    display: grid; gap: 16px; padding: 16px 18px 18px; margin: 0;
}

.painel-contato > div {
    display: grid; gap: 3px;
}

.painel-contato dt {
    font-family: var(--ff-head);
    font-weight: 600;
    font-size: var(--fs-sm);
    color: var(--c-blue-900);
}

.painel-contato dd {
    margin: 0;
    font-size: var(--fs-sm);
    line-height: 1.55;
    color: var(--c-text);
}

.painel-contato a {
    color: var(--c-primary-600); font-weight: 600; text-decoration: none;
}

.painel-contato__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 2px;
}

.painel-contato__link::after {
    content: "\2192"; font-weight: 700; transition: transform var(--t-fast);
}

.painel-contato__link:hover::after {
    transform: translateX(3px);
}

.painel-contato a:hover {
    text-decoration: underline;
}

/* 22.1 Trabalhe na FaSouza: duas colunas (formulário + lateral de contato), mesmo desenho do .pg-curso */
.inscricao .curso-layout { display: grid; gap: var(--space-6); align-items: start; }
@media (min-width: 1024px) {
  .inscricao .curso-layout { grid-template-columns: minmax(0, 1fr) 340px; gap: calc(2.5 * var(--u)); }
  .inscricao .curso-aside { position: sticky; top: calc(var(--header-h) + var(--space-4)); }
}
.inscricao .curso-corpo { min-width: 0; }
.inscricao .curso-aside { display: grid; gap: var(--space-4); min-width: 0; }
.inscricao .painel { border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-sm); overflow: hidden; }
.inscricao .painel__head { padding: 14px 18px; background: var(--c-navy-800); }
.inscricao .painel__head h2 { margin: 0; font-size: var(--fs-md); line-height: 1.3; color: #fff; }

/* ==========================================================================
   23. Funil do vestibular (graduacao-ead/Site3.Master e páginas vestibular-*)
   13/11/2026 — regras copiadas de cssnovo/fasouza-home.css do fasouza.com.br
   (só as classes que o .edu.br não tinha). Variáveis do .com.br ligadas às
   do .edu.br (as da seção 22 continuam valendo).
   ========================================================================== */
:root {
    --c-blue-50: var(--c-navy-50);
    --c-blue-950: var(--c-navy-950);
    --c-primary: var(--c-orange-500);
    --c-primary-700: var(--c-orange-700);
    --c-primary-on-dark: var(--c-orange-400);
    --fs-h4: 1.125rem;
    --r-sm: var(--radius-sm);
    --r-pill: var(--radius-pill);
    --sh-md: var(--shadow);
    --sh-primary: 0 10px 24px -8px rgba(246, 172, 47, .55);
    --t-base: .3s var(--ease);
    --flut-dir: 20px;
    --flut-base: 20px;
}

.check-list {
    display: grid; gap: 12px; list-style: none;
}

.check-list li {
    position: relative;
    padding-left: 34px;
    line-height: 1.5;
}

.check-list li::before {
    content: "";
    position: absolute;
    left: 0; top: 1px;
    width: 22px; height: 22px;
    border-radius: 50%;
    background: var(--c-primary-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c2412f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center / 13px no-repeat;
}

.check-card--blue .check-list li::before {
    background-color: var(--c-white);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231f5fae' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E");
}

.faq-icon {
    position: relative;
    flex-shrink: 0;
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--c-primary-50);
    transition: background-color var(--t-base), transform var(--t-base);
}

.faq-icon::before,
.faq-icon::after {
    content: "";
    position: absolute;
    left: 50%; top: 50%;
    width: 12px; height: 2px;
    border-radius: 2px;
    background: var(--c-primary-600);
    translate: -50% -50%;
    transition: transform var(--t-base), background-color var(--t-base);
}

.faq-icon::after {
    transform: rotate(90deg);
}

.faq-item[open] .faq-icon {
    background: var(--c-primary-600); transform: rotate(180deg);
}

.faq-item[open] .faq-icon::before,
.faq-item[open] .faq-icon::after {
    background: var(--c-white);
}

.faq-item[open] .faq-icon::after {
    transform: rotate(0deg);
}

.faq-answer {
    padding: 0 20px 18px;
    color: var(--c-text);
    overflow: hidden;
}

.faq-answer p:last-child {
    margin-bottom: 0;
}

.faq-answer ul {
    display: grid; gap: 6px; padding-left: 20px;
}

.faq-answer li::marker {
    color: var(--c-primary);
}

@media (min-width: 1024px) {
.faq-answer p {
    text-align: justify;
    -webkit-hyphens: auto;
    hyphens: auto;
}
}

@media (min-width: 1024px) {
.pagina p:not([class]),
.pagina .curso-hero__lead,
.pagina .curso-linha__resumo {
    text-align: justify;
    -webkit-hyphens: auto;
    hyphens: auto;
}
}

@media (min-width: 1024px) {
.pagina .section-head p:not(.curso-hero__lead),
.pagina .pilar-card p,
.pagina .jornada-etapa p,
.pagina .credencial-bloco p,
.pagina .curso-card p,
.pagina .depo-card p,
.pagina .ficha-lista p,
.pagina .alerta p,
.pagina .ajax-overlay p,
.pagina .cta-band p {
    text-align: inherit;
    -webkit-hyphens: manual;
    hyphens: manual;
}
}

.grade-item .faq-answer ul {
    padding-left: 20px;
}

.wizard {
    margin-bottom: clamp(24px, 4vw, 40px);
}

.wizard__lista {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    list-style: none;
    counter-reset: etapa;
}

.wizard__step {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 8px;
    padding-top: 6px;
    text-align: center;
    color: var(--c-muted);
    font-size: var(--fs-sm);
}

.wizard__step::before {
    content: "";
    position: absolute;
    top: 26px;
    left: -50%;
    width: 100%;
    height: 2px;
    background: var(--c-border);
}

.wizard__step:first-child::before {
    display: none;
}

.wizard__num {
    display: grid;
    place-content: center;
    width: 40px; height: 40px;
    border: 2px solid var(--c-border);
    border-radius: 50%;
    background: var(--c-white);
    font-family: var(--ff-head);
    font-weight: 700;
    color: var(--c-muted);
    position: relative;
    z-index: 1;
}

.wizard__rot {
    line-height: 1.3;
}

.wizard__step.is-active {
    color: var(--c-ink); font-weight: 600;
}

.wizard__step.is-active .wizard__num {
    border-color: var(--c-primary-600);
    background: var(--c-primary-600);
    color: var(--c-white);
    box-shadow: var(--sh-primary);
}

.form-apoio {
    margin-top: 24px;
    padding: 16px 20px;
    border-left: 4px solid var(--c-blue-600);
    border-radius: 0 var(--r-md) var(--r-md) 0;
    background: var(--c-blue-50);
    font-size: var(--fs-sm);
}

.form-apoio p {
    margin: 0;
}

@media (max-width: 559px) {
.wizard__lista {
    grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px;
}
}

@media (max-width: 559px) {
.wizard__rot {
    font-size: var(--fs-xs);
}
}

@media (max-width: 559px) {
.wizard__num {
    width: 34px; height: 34px; font-size: var(--fs-sm);
}
}

@media (max-width: 559px) {
.wizard__step::before {
    top: 23px;
}
}

.funil-header {
    position: sticky;
    top: 0;
    z-index: 50;
    border-bottom: 1px solid var(--c-border);
    background: rgba(255, 255, 255, .96);
    backdrop-filter: saturate(180%) blur(8px);
}

.funil-header__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 20px;
    padding-block: 12px;
}

.funil-header__logo img {
    width: auto; height: 42px;
}

.funil-header__selo {
    display: none;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: var(--fs-sm);
    color: var(--c-muted);
}

.funil-header__selo .ico {
    stroke: var(--c-success);
}

.funil-header__ajuda {
    margin-left: auto;
    font-weight: 600;
    font-size: var(--fs-sm);
    text-decoration: none;
}

.funil-header__ajuda:hover {
    text-decoration: underline;
}

@media (min-width: 768px) {
.funil-header__selo {
    display: inline-flex;
}
}

@media (min-width: 768px) {
.funil-header__logo img {
    height: 48px;
}
}

.funil-footer {
    margin-top: clamp(40px, 6vw, 72px);
    padding-block: 24px;
    border-top: 1px solid var(--c-border);
    background: var(--c-bg-soft);
    font-size: var(--fs-sm);
    color: var(--c-muted);
}

.funil-footer__inner {
    display: grid; gap: 12px;
}

.funil-footer p {
    margin: 0;
}

.funil-footer__links {
    display: flex; flex-wrap: wrap; gap: 8px 20px; list-style: none;
}

.funil-footer__links a {
    color: var(--c-blue-800); text-decoration: none;
}

.funil-footer__links a:hover {
    color: var(--c-primary-600); text-decoration: underline;
}

@media (min-width: 900px) {
.funil-footer__inner {
    grid-template-columns: 1fr auto; align-items: center; gap: 32px;
}
}

.wizard__step.is-done .wizard__num {
    border-color: var(--c-success);
    background: var(--c-success);
    color: var(--c-white);
}

.wizard__step.is-done {
    color: var(--c-text);
}

.form-card__titulo--sec {
    margin-top: clamp(28px, 4vw, 40px);
    padding-top: clamp(20px, 3vw, 28px);
    border-top: 1px solid var(--c-border);
}

.form-grid--resumo {
    margin-top: 20px;
}

.campo--data {
    margin: 0; padding: 0; border: 0; min-width: 0;
}

.campo--data legend {
    padding: 0; margin-bottom: 6px;
}

.data-grid {
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px;
}

.data-grid__item {
    display: grid; gap: 4px;
}

.prova-fatos {
    margin: 24px 0 0;
}

.prova-fatos > div {
    background: var(--c-bg-soft);
}

.prova-subtitulo {
    margin: clamp(24px, 3vw, 32px) 0 10px; font-size: var(--fs-h4);
}

.lista-regras {
    display: grid; gap: 10px; padding-left: 0; list-style: none;
}

.lista-regras li {
    position: relative;
    padding-left: 26px;
    line-height: 1.55;
}

.lista-regras li::before {
    content: "";
    position: absolute;
    left: 6px; top: .65em;
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--c-primary);
}

.form-acoes--escolha {
    justify-items: stretch;
}

.form-acoes__botoes {
    display: flex; flex-wrap: wrap; gap: 12px;
}

@media (min-width: 768px) {
.form-acoes--escolha {
    grid-template-columns: 1fr; gap: 10px;
}
}

.redacao__tema {
    margin: 20px 0 28px;
    padding: clamp(18px, 3vw, 26px);
    border-left: 4px solid var(--c-blue-600);
    border-radius: 0 var(--r-md) var(--r-md) 0;
    background: var(--c-blue-50);
}

.redacao__rotulo {
    margin: 0 0 8px;
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--c-blue-800);
}

.redacao__tema p {
    margin-bottom: 12px;
}

.redacao__comando {
    margin-bottom: 0; color: var(--c-ink);
}

.redacao__campo {
    margin-top: 8px;
}

.contador-area {
    margin-top: 12px;
}

.contador__barra {
    height: 6px;
    border-radius: var(--r-pill);
    background: var(--c-border);
    overflow: hidden;
}

.contador__barra::before {
    content: "";
    display: block;
    width: var(--progresso, 0%);
    height: 100%;
    border-radius: inherit;
    background: var(--c-primary);
    transition: width var(--t-fast), background-color var(--t-fast);
}

.contador-area.is-ok .contador__barra::before {
    background: var(--c-success);
}

.contador__texto {
    margin: 8px 0 0; font-size: var(--fs-sm); color: var(--c-muted);
}

.contador__valor {
    font-weight: 700; color: var(--c-ink);
}

.contador-area.is-ok .contador__valor {
    color: var(--c-success);
}

.conclusao__selo {
    display: grid;
    place-content: center;
    width: 68px; height: 68px;
    margin: 0 auto 18px;
    border-radius: 50%;
    background: #e9f7f0;
    color: var(--c-success);
}

.conclusao__titulo {
    font-size: var(--fs-h3);
}

.conclusao__saudacao {
    font-size: var(--fs-md); color: var(--c-ink);
}

.conclusao__mensagem {
    max-width: 62ch; margin-inline: auto; color: var(--c-text);
}

.conclusao .form-acoes__botoes {
    justify-content: center;
}

.proximos-passos {
    margin-top: clamp(28px, 4vw, 40px);
    padding: clamp(20px, 3vw, 32px);
    border: 1px solid var(--c-border);
    border-radius: var(--r-lg);
    background: var(--c-bg-soft);
}

.proximos-passos__titulo {
    font-size: var(--fs-h4); margin-bottom: 14px;
}

.passos-lista {
    display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; counter-reset: passo;
}

.passos-lista li {
    position: relative;
    padding-left: 42px;
    line-height: 1.55;
    counter-increment: passo;
}

.passos-lista li::before {
    content: counter(passo);
    position: absolute;
    left: 0; top: 0;
    width: 28px; height: 28px;
    display: grid;
    place-content: center;
    border-radius: 50%;
    background: var(--c-white);
    border: 1px solid var(--c-border);
    font-family: var(--ff-head);
    font-weight: 700;
    font-size: var(--fs-sm);
    color: var(--c-primary-600);
}

.container--estreito {
    max-width: 900px;
}

.comprovante__topo {
    display: grid;
    gap: 16px;
    align-items: center;
    padding-bottom: 20px;
    margin-bottom: 24px;
    border-bottom: 2px solid var(--c-border);
}

@media (min-width: 640px) {
.comprovante__topo {
    grid-template-columns: 180px minmax(0, 1fr); gap: 28px;
}
}

.comprovante__logo {
    width: 100%; max-width: 180px; height: auto;
}

.comprovante__titulo {
    margin: 0 0 8px; font-size: var(--fs-h3);
}

.comprovante__saudacao {
    margin: 0 0 4px;
}

.comprovante__data {
    margin: 0; font-size: var(--fs-sm); color: var(--c-muted);
}

.comprovante__data::first-letter {
    text-transform: uppercase;
}

.comprovante__dados {
    width: 100%; border-collapse: collapse;
}

.comprovante__dados th,
.comprovante__dados td {
    padding: 12px 4px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--c-border);
}

.comprovante__dados th {
    width: 34%;
    font-weight: 600;
    color: var(--c-muted);
    font-size: var(--fs-sm);
}

.comprovante__dados td {
    color: var(--c-ink);
}

.comprovante__codigo {
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-weight: 700; letter-spacing: .02em;
}

@media (max-width: 559px) {
.comprovante__dados th,
.comprovante__dados td {
    display: block; width: 100%;
}
}

@media (max-width: 559px) {
.comprovante__dados th {
    padding-bottom: 0; border-bottom: 0;
}
}

@media (max-width: 559px) {
.comprovante__dados td {
    padding-top: 2px;
}
}

.comprovante__acoes {
    border-top: 0;
}

@media print {
.funil-header,
.funil-footer,
.form-apoio,
.wizard {
    display: none !important;
}
}

@media print {
.container--estreito {
    max-width: none; padding-inline: 0;
}
}

@media print {
.comprovante {
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}
}

@media print {
.comprovante__dados th,
.comprovante__dados td {
    border-color: #ccc !important;
}
}

.ingresso-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: clamp(22px, 3vw, 30px);
    border: 1px solid var(--c-border);
    border-radius: var(--r-xl);
    background: var(--c-white);
    box-shadow: var(--sh-sm);
    transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
}

.ingresso-card:hover {
    transform: translateY(-4px); box-shadow: var(--sh-md); border-color: rgba(219, 89, 69, .4);
}

.ingresso-card__tag {
    align-self: flex-start;
    margin-bottom: 12px;
    padding: 4px 12px;
    border-radius: var(--r-pill);
    background: var(--c-primary-50);
    color: var(--c-primary-700);
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ingresso-card__titulo {
    font-size: var(--fs-h3); margin-bottom: 8px;
}

.ingresso-card__resumo {
    color: var(--c-text);
}

.ingresso-card__lista {
    margin-bottom: 16px;
}

.ingresso-card__lista li {
    font-size: var(--fs-sm);
}

.ingresso-card__nota {
    font-size: var(--fs-sm); color: var(--c-muted);
}

.ingresso-card__detalhe {
    margin: 4px 0 18px;
}

.ingresso-card__detalhe summary {
    padding: 12px 14px; font-size: var(--fs-sm);
}

.ingresso-card__detalhe .faq-answer {
    padding: 0 14px 14px; font-size: var(--fs-sm);
}

.lista-numerada {
    display: grid; gap: 6px; margin: 0 0 12px; padding-left: 20px;
}

.lista-numerada li::marker {
    color: var(--c-primary); font-weight: 700;
}

/* ==========================================================================
   24. Páginas do vestibular (.pagina) — componentes base do fasouza.com.br
   13/11/2026: no .edu.br estas classes só existiam dentro de .page-content /
   .pg-curso. Aqui valem apenas dentro de .pagina (markup trazido do .com.br),
   para não alterar o resto do site.
   ========================================================================== */
.pagina .section-head h1 { font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem); font-weight: 800; color: var(--c-ink); }

.pagina .kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    font-size: var(--fs-xs);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--c-primary-600);
}

.pagina .kicker::before {
    content: "";
    width: 22px; height: 2px;
    border-radius: 2px;
    background: currentColor;
}

.pagina .section-head {
    max-width: 780px;
    margin: 0 auto 40px;
    text-align: center;
}

.pagina .section-head .kicker {
    justify-content: center;
}

.pagina .section-head--left {
    margin-left: 0; text-align: left;
}

.pagina .section-head--left .kicker {
    justify-content: flex-start;
}

.pagina .section-head p {
    color: var(--c-muted); font-size: var(--fs-md);
}

.pagina .faq-item {
    margin-bottom: 10px;
    border: 1px solid var(--c-border);
    border-radius: var(--r-md);
    background: var(--c-white);
    box-shadow: var(--sh-xs);
    transition: border-color var(--t-base), box-shadow var(--t-base), background-color var(--t-base);
}

.pagina .faq-item:hover {
    border-color: #cfd5df;
}

.pagina .faq-item[open] {
    border-color: rgba(219, 89, 69, .45);
    box-shadow: var(--sh-md);
}

.pagina .faq-item summary {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    list-style: none;
    cursor: pointer;
    font-weight: 600;
    color: var(--c-ink);
    line-height: 1.45;
    border-radius: inherit;
    -webkit-user-select: none;
    user-select: none;
}

.pagina .faq-item summary::-webkit-details-marker {
    display: none;
}

.pagina .faq-item summary::marker {
    content: "";
}

.pagina .faq-item summary:hover {
    color: var(--c-primary-600);
}

.pagina .faq-icon {
    position: relative;
    flex-shrink: 0;
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--c-primary-50);
    transition: background-color var(--t-base), transform var(--t-base);
}

.pagina .faq-icon::before,
.pagina .faq-icon::after {
    content: "";
    position: absolute;
    left: 50%; top: 50%;
    width: 12px; height: 2px;
    border-radius: 2px;
    background: var(--c-primary-600);
    translate: -50% -50%;
    transition: transform var(--t-base), background-color var(--t-base);
}

.pagina .faq-icon::after {
    transform: rotate(90deg);
}

.pagina .faq-item[open] .faq-icon {
    background: var(--c-primary-600); transform: rotate(180deg);
}

.pagina .faq-item[open] .faq-icon::before,
.pagina .faq-item[open] .faq-icon::after {
    background: var(--c-white);
}

.pagina .faq-item[open] .faq-icon::after {
    transform: rotate(0deg);
}

.pagina .faq-answer {
    padding: 0 20px 18px;
    color: var(--c-text);
    overflow: hidden;
}

.pagina .faq-answer p:last-child {
    margin-bottom: 0;
}

.pagina .faq-answer ul {
    display: grid; gap: 6px; padding-left: 20px;
}

.pagina .faq-answer li::marker {
    color: var(--c-primary);
}

.pagina .alerta {
    margin: 8px 0;
    padding: 12px 16px;
    border-left: 4px solid;
    border-radius: var(--r-sm);
    font-size: var(--fs-sm);
    line-height: 1.5;
}

.pagina .alerta a {
    color: inherit;
}

.pagina .alerta--aviso {
    background: #fff7e6; border-color: #e0a100; color: #6b4e00;
}

.pagina .alerta--sucesso {
    background: #e9f7f0; border-color: var(--c-success); color: #14583a;
}

.pagina .alerta--erro {
    background: var(--c-primary-50); border-color: var(--c-primary-600); color: var(--c-primary-700);
}

.pagina .newsletter__card .alerta {
    box-shadow: var(--sh-sm);
}

@media (min-width: 1024px) {
.pagina .faq-answer p {
    text-align: justify;
    -webkit-hyphens: auto;
    hyphens: auto;
}
}

@media (min-width: 1024px) {
.pagina .section-head p:not(.curso-hero__lead),
.pagina .alerta p {
    text-align: inherit;
    -webkit-hyphens: manual;
    hyphens: manual;
}
}

.pagina .grade-item .faq-answer ul {
    padding-left: 20px;
}

.pagina .inscricao .section-head {
    margin-bottom: 28px;
}

.pagina .inscricao .section-head p {
    font-size: var(--fs-base);
}

.pagina .form-msgs {
    display: grid; gap: 10px; margin-top: 20px;
}

.pagina .form-msgs .alerta:empty {
    display: none;
}

.pagina .form-msgs:not(:has(> *)) {
    display: none; margin-top: 0;
}

.pagina .ingresso-grid {
    display: grid;
    gap: 20px;
    align-items: start;
}

@media (min-width: 900px) {
.pagina .ingresso-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px;
}
}

.pagina .ingresso-card__detalhe .faq-answer {
    padding: 0 14px 14px; font-size: var(--fs-sm);
}

/* 25. Cabeçalho do funil no padrão do .edu.br (13/11/2026): mesmo azul do cabeçalho do site,
   logo branco, selo e "Precisa de ajuda?" em cores claras. */
.funil-header { background: var(--c-navy-800); border-bottom-color: transparent; box-shadow: 0 2px 12px rgba(7, 17, 49, .18); }
.funil-header__selo { color: rgba(255, 255, 255, .85); font-weight: 600; }
.funil-header__selo .ico { fill: none; stroke: var(--c-orange-400); stroke-width: 2; }
.funil-header__ajuda { color: #fff; padding: 8px 16px; border: 1.5px solid rgba(255, 255, 255, .55); border-radius: var(--radius-pill); }
.funil-header__ajuda:hover { color: var(--c-navy-900); background: var(--c-orange-500); border-color: var(--c-orange-500); text-decoration: none; }
