html {
    min-width: 320px;
    margin: 0;
    overflow-x: hidden;
    background: #021720;
    scroll-behavior: smooth;
}

body {
    min-width: 320px;
    margin: 0;
    overflow-x: hidden;
    background: #021720;
}

.ebct-site {
    --ebct-bg: #041f2a;
    --ebct-bg-deep: #021720;
    --ebct-panel: #073246;
    --ebct-panel-soft: #0b3d50;
    --ebct-red: #f11d3f;
    --ebct-red-dark: #d90d2d;
    /* Hover discreto dos botões: vermelho mais claro (sólidos) e vermelho translúcido (contornados/redondos) */
    --ebct-red-hover: #e8435c;
    --ebct-red-soft: rgba(241, 29, 63, 0.18);
    --ebct-ink: #f5f7f8;
    --ebct-muted: #c4d0d5;
    --ebct-line: rgba(204, 227, 236, 0.17);
    --ebct-shadow: 0 18px 48px rgba(0, 0, 0, 0.24);
    --ebct-radius: 8px;
    --ebct-container: 1180px;
    position: relative;
    width: 100%;
    max-width: none;
    margin-inline: 0;
    overflow-x: clip;
    color: var(--ebct-ink);
    isolation: isolate;
    background-color: var(--ebct-bg-deep);
    font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    font-size: 1rem;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

/* Fundo fixo na tela: não estica quando a página cresce (ex.: ao abrir uma pergunta).
   Pseudo-elemento fixed porque o iOS ignora background-attachment: fixed. */
.ebct-site::before {
    content: "";
    position: fixed;
    z-index: -1;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(1, 12, 18, 0.46), rgba(1, 12, 18, 0.6)),
        url("../images/site-background.webp") center top / cover no-repeat;
    pointer-events: none;
}

.ebct-site,
.ebct-site *,
.ebct-site *::before,
.ebct-site *::after {
    box-sizing: border-box;
}

.ebct-site a {
    color: inherit;
    text-decoration: none;
}

.ebct-site img {
    display: block;
    max-width: 100%;
}

.ebct-site button,
.ebct-site a,
.ebct-site summary {
    -webkit-tap-highlight-color: transparent;
}

.ebct-site :focus-visible {
    outline: 3px solid #ffd6dd;
    outline-offset: 4px;
}

.ebct-site .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.ebct-container {
    width: min(var(--ebct-container), calc(100% - 48px));
    margin-inline: auto;
}

.ebct-button,
.ebct-outline-link,
.ebct-price-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 54px;
    border-radius: 999px;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    line-height: 1.2;
    text-align: center;
    text-transform: uppercase;
    transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.ebct-button {
    padding: 14px 24px;
    border: 1px solid var(--ebct-red);
    color: #fff;
    background: var(--ebct-red);
    box-shadow: 0 12px 30px rgba(241, 29, 63, 0.2);
}

.ebct-button:hover,
.ebct-button:focus-visible {
    color: #fff;
    background: var(--ebct-red-hover);
    border-color: var(--ebct-red-hover);
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(241, 29, 63, 0.16);
}

.ebct-button .dashicons,
.ebct-price-pill .dashicons {
    width: 22px;
    height: 22px;
    font-size: 22px;
}

.ebct-button .dashicons {
    flex: 0 0 22px;
}

.ebct-button--compact {
    white-space: nowrap;
    min-height: 48px;
    padding: 12px 21px;
    font-size: 0.88rem;
}

.ebct-button--block {
    width: 100%;
    border-radius: 5px;
}

.ebct-outline-link {
    min-width: 210px;
    padding: 11px 22px;
    border: 1px solid var(--ebct-red);
    color: var(--ebct-ink);
    background: transparent;
}

.ebct-outline-link:hover,
.ebct-outline-link:focus-visible {
    color: #fff;
    background: var(--ebct-red-soft);
    transform: translateY(-2px);
}

.ebct-outline-link > span:last-child {
    color: var(--ebct-red);
    font-size: 1.2rem;
    transition: color 180ms ease, transform 180ms ease;
}

.ebct-outline-link:hover > span:last-child,
.ebct-outline-link:focus-visible > span:last-child {
    transform: translateX(3px);
}

/* Hero e navegação */
.ebct-hero {
    position: relative;
    min-height: 760px;
    isolation: isolate;
    background: transparent;
}

.ebct-hero::before {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(1, 20, 28, 0.96) 0%, rgba(2, 28, 39, 0.78) 40%, rgba(2, 28, 39, 0.16) 76%, rgba(2, 21, 29, 0.3) 100%),
        linear-gradient(0deg, rgba(4, 31, 42, 0.82) 0%, transparent 38%),
        linear-gradient(rgba(1, 10, 14, 0.45), rgba(1, 10, 14, 0.45)),
        url("../images/hero-ebct.webp") center / cover no-repeat;
    opacity: 0.92;
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 78%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0%, #000 78%, transparent 100%);
}

/* Hero com vídeo: o vídeo fica sob os mesmos degradês; a imagem vira só o poster/fallback */
/* Deslocado para a direita (--ebct-video-shift) para o palestrante ficar à direita do título;
   a borda esquerda some no degradê horizontal da máscara. */
.ebct-hero__video {
    --ebct-video-shift: 22%;
    position: absolute;
    z-index: -3;
    top: 0;
    bottom: 0;
    left: var(--ebct-video-shift);
    width: 100%;
    height: 100%;
    object-fit: cover;
    pointer-events: none;
    /* O vídeo original é escuro (auditório com pouca luz): brilho extra para aparecer mais */
    filter: brightness(1.35);
    -webkit-mask-image:
        linear-gradient(90deg, transparent 0%, #000 22%),
        linear-gradient(180deg, #000 0%, #000 78%, transparent 100%);
    -webkit-mask-composite: source-in;
    mask-image:
        linear-gradient(90deg, transparent 0%, #000 22%),
        linear-gradient(180deg, #000 0%, #000 78%, transparent 100%);
    mask-composite: intersect;
}

.ebct-hero--video::before {
    background:
        linear-gradient(90deg, rgba(1, 16, 23, 0.8) 0%, rgba(1, 20, 28, 0.6) 30%, rgba(2, 28, 39, 0.26) 50%, rgba(2, 28, 39, 0.04) 76%, rgba(2, 21, 29, 0.1) 100%),
        linear-gradient(0deg, rgba(4, 31, 42, 0.72) 0%, transparent 34%);
}

/* Página de professores: pintura do apóstolo Paulo escrevendo; figura à direita, texto à esquerda */
.ebct-hero--professores::before {
    background:
        linear-gradient(90deg, rgba(1, 20, 28, 0.96) 0%, rgba(2, 28, 39, 0.8) 38%, rgba(2, 28, 39, 0.2) 70%, rgba(2, 21, 29, 0.25) 100%),
        linear-gradient(0deg, rgba(4, 31, 42, 0.82) 0%, transparent 38%),
        linear-gradient(rgba(1, 10, 14, 0.3), rgba(1, 10, 14, 0.3)),
        url("../images/hero-professores.webp") 70% 8% / cover no-repeat;
}

.ebct-hero::after {
    content: "";
    position: absolute;
    z-index: 3;
    bottom: 0;
    left: 50%;
    width: min(var(--ebct-container), calc(100% - 48px));
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(204, 227, 236, 0.11) 18%, rgba(204, 227, 236, 0.11) 82%, transparent);
    pointer-events: none;
    transform: translateX(-50%);
}

.ebct-header {
    position: relative;
    z-index: 20;
}

.ebct-header__inner {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    min-height: 112px;
    gap: 36px;
}

.ebct-brand {
    display: block;
    width: 104px;
}

.ebct-brand img {
    width: 104px;
    height: auto;
}

.ebct-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(24px, 3.2vw, 48px);
}

.ebct-nav a {
    position: relative;
    padding-block: 12px;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 800;
    text-transform: uppercase;
}

/* Itens que só aparecem no menu mobile (tela cheia) */
.ebct-nav a.ebct-nav__mobile-only {
    display: none;
}

/* "Dúvidas?" em vermelho para chamar atenção (desktop e menu mobile) */
.ebct-nav a.ebct-nav__faq {
    color: var(--ebct-red);
}

.ebct-nav a::after {
    content: "";
    position: absolute;
    right: 50%;
    bottom: 5px;
    left: 50%;
    height: 2px;
    background: var(--ebct-red);
    transition: right 180ms ease, left 180ms ease;
}

.ebct-nav a:hover::after,
.ebct-nav a:focus-visible::after,
.ebct-nav a[aria-current="page"]::after {
    right: 0;
    left: 0;
}

/* Item "Início": no desktop só o ícone; no menu mobile, ícone + texto */
.ebct-nav__home {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.ebct-nav__home svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ebct-nav__home-label {
    display: none;
}

.ebct-menu-toggle {
    display: none;
}

.ebct-nav__extra {
    display: none;
}

.ebct-hero__inner {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 648px;
    padding-block: 60px 90px;
}

.ebct-hero__content {
    position: relative;
    z-index: 2;
    width: min(760px, 68%);
}

.ebct-hero__scroll {
    position: absolute;
    z-index: 4;
    bottom: 26px;
    left: 50%;
    display: grid;
    width: 48px;
    height: 48px;
    margin-left: -24px;
    border: 2px solid rgba(255, 255, 255, 0.5);
    border-radius: 50%;
    place-items: center;
    color: #fff;
    background: rgba(2, 21, 29, 0.45);
    animation: ebct-scroll-hint 2.2s ease-in-out infinite;
    transition: background-color 180ms ease, border-color 180ms ease;
}

.ebct-hero__scroll:hover,
.ebct-hero__scroll:focus-visible {
    border-color: rgba(241, 29, 63, 0.7);
    background: var(--ebct-red-soft);
}

.ebct-hero__scroll .dashicons {
    width: 24px;
    height: 24px;
    font-size: 24px;
}

@keyframes ebct-scroll-hint {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(6px); }
}

.ebct-eyebrow {
    margin: 0 0 12px;
    color: var(--ebct-red);
    font-size: 0.96rem;
    font-weight: 900;
    letter-spacing: 0.48em;
    text-transform: uppercase;
}

.ebct-hero h1 {
    max-width: 760px;
    margin: 0;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3.5rem, 6.2vw, 5.8rem);
    font-weight: 400;
    letter-spacing: -0.045em;
    line-height: 0.98;
    text-wrap: balance;
}

.ebct-hero h1 span {
    display: block;
    color: var(--ebct-red);
}

.ebct-hero__lead {
    max-width: 680px;
    margin: 24px 0 0;
    color: #f8fafb;
    font-size: clamp(1.18rem, 1.8vw, 1.38rem);
    font-weight: 600;
}

.ebct-hero__actions {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 26px;
}

/* Botão de matrícula do hero: estilo contornado, com o ícone do "Matricule-se" do menu na cor do texto */
.ebct-hero__cta .dashicons {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    font-size: 22px;
}

/* Lado a lado (acima de 620px): matrícula primeiro, preço depois. No mobile, empilhados, o preço fica em cima */
@media (min-width: 621px) {
    .ebct-hero__cta {
        order: -1;
    }
}

/* Mobile: sem contorno (no desktop continua contornado) */
@media (max-width: 620px) {
    .ebct-hero__cta {
        border-color: transparent;
    }
}

/* Mesmo contorno do mobile (tracejado longo, 1px, dourado suave), desenhado em SVG.
   rx = metade da altura do botão no desktop (65px). */
.ebct-price-pill {
    min-width: 310px;
    padding: 10px 24px;
    border: 2px solid transparent;
    color: #fff;
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' rx='32.5' fill='none' stroke='%23f2c14e' stroke-opacity='0.35' stroke-width='2' stroke-dasharray='16 9'/%3E%3C/svg%3E") center / 100% 100% no-repeat,
        rgba(2, 26, 36, 0.66);
}

.ebct-price-pill__icon {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    fill: none;
    stroke: #f2c14e;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Texto e preço centralizados entre si */
.ebct-price-pill > span:last-child {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.ebct-price-pill strong {
    color: var(--ebct-red);
    font-size: 1.2rem;
}

.ebct-price-pill:hover,
.ebct-price-pill:focus-visible {
    color: #fff;
    background-color: rgba(241, 29, 63, 0.12);
    transform: translateY(-2px);
}

/* Seções compartilhadas */
.ebct-section {
    position: relative;
    padding-block: 82px;
}

.ebct-section::after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 50%;
    width: min(var(--ebct-container), calc(100% - 48px));
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(204, 227, 236, 0.09) 18%, rgba(204, 227, 236, 0.09) 82%, transparent);
    pointer-events: none;
    transform: translateX(-50%);
}

.ebct-section-head {
    display: grid;
    grid-template-columns: minmax(190px, 0.75fr) minmax(260px, 1.2fr) auto;
    align-items: center;
    gap: 46px;
    margin-bottom: 34px;
}

.ebct-section h2,
.ebct-plans__intro h2,
.ebct-page-hero__title {
    position: relative;
    margin: 0;
    padding-top: 17px;
    color: var(--ebct-red);
    font-size: clamp(1.8rem, 3.1vw, 2.7rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 1.1;
    text-transform: uppercase;
}

.ebct-section h2::before,
.ebct-plans__intro h2::before,
.ebct-page-hero__title::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 55px;
    height: 3px;
    background: var(--ebct-red);
}

.ebct-section h2 span,
.ebct-plans__intro h2 span,
.ebct-page-hero__title span {
    display: block;
    color: #fff;
    font-weight: 400;
}

.ebct-section-head > p {
    max-width: 430px;
    margin: 0;
    color: var(--ebct-ink);
    font-size: 1.18rem;
    line-height: 1.65;
}

/* Cursos */
.ebct-courses {
    background: transparent;
}

.ebct-course-card {
    position: relative;
    display: flex;
    min-width: calc((100% - 54px) / 4);
    min-height: 430px;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid rgba(124, 187, 209, 0.32);
    border-radius: 6px;
    scroll-snap-align: start;
    background: #032431;
    box-shadow: var(--ebct-shadow);
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.ebct-course-card:hover {
    border-color: rgba(241, 29, 63, 0.68);
    transform: translateY(-6px);
    box-shadow: 0 24px 54px rgba(0, 0, 0, 0.3);
}

.ebct-course-card__media {
    position: relative;
    flex: 0 0 200px;
    overflow: hidden;
}

.ebct-course-card__media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 24%, rgba(3, 36, 49, 0.18) 50%, #032431 100%);
}

.ebct-course-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms ease;
}

.ebct-course-card:hover .ebct-course-card__media img {
    transform: scale(1.045);
}

.ebct-course-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 0 20px 20px;
    background: #032431;
}

/* Ícone dentro de um círculo com contorno vermelho suave (variação discreta do padrão dos cards de perfis),
   metade sobre a foto e metade sobre o texto */
.ebct-course-card__icon {
    position: relative;
    z-index: 2;
    align-self: center;
    box-sizing: border-box;
    width: 56px;
    height: 56px;
    margin-top: -28px;
    border: 1px solid rgba(241, 29, 63, 0.4);
    border-radius: 50%;
    color: #fff;
    background: #032431;
    font-size: 34px;
}

.ebct-course-card__icon--glyph {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    font-weight: 400;
    line-height: 1;
}

.ebct-course-card__icon--svg {
    display: block;
    padding: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ebct-course-card h3 {
    margin: 10px 0 14px;
    color: var(--ebct-red);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 1.15;
}

.ebct-course-card h3::after {
    content: "";
    display: block;
    width: 32px;
    height: 2px;
    margin-top: 12px;
    background: var(--ebct-red);
}

.ebct-course-card .ebct-course-card__link {
    color: rgba(255, 255, 255, 0.82);
}

.ebct-course-card p {
    margin: 0 0 22px;
    color: #e0e8eb;
    font-size: 1.06rem;
    line-height: 1.55;
}

.ebct-course-card__link {
    display: inline-flex;
    width: max-content;
    min-height: 24px;
    flex: 0 0 auto;
    align-self: flex-end;
    align-items: center;
    gap: 6px;
    margin-top: auto;
    padding: 0;
    border: 0;
    border-radius: 0;
    color: var(--ebct-red);
    background: transparent;
    box-shadow: none;
    font-size: 0.82rem;
    font-weight: 900;
    line-height: 1;
    text-transform: uppercase;
    transition: color 180ms ease;
}

.ebct-course-card__link::before {
    content: "";
    position: absolute;
    z-index: 3;
    inset: 0;
    border-radius: 6px;
}

.ebct-course-card__arrow {
    position: relative;
    z-index: 4;
    display: inline-block;
    font-size: 1.05rem;
    line-height: 1;
    pointer-events: none;
    transition: transform 180ms ease;
}

.ebct-course-card__link-label {
    position: relative;
    z-index: 4;
}

.ebct-course-card:hover .ebct-course-card__arrow,
.ebct-course-card__link:focus-visible .ebct-course-card__arrow {
    transform: translateX(3px);
}

.ebct-course-card:hover .ebct-course-card__link,
.ebct-course-card__link:focus-visible {
    color: #ff4a65;
    background: transparent;
}

.ebct-course-card:focus-within {
    border-color: var(--ebct-red);
    box-shadow: 0 0 0 3px rgba(241, 29, 63, 0.22), var(--ebct-shadow);
}

.ebct-course-card__link:focus-visible {
    outline: 0;
}

.ebct-course-card__link:focus-visible::before {
    outline: 3px solid #ffd6dd;
    outline-offset: -4px;
}

button.ebct-course-card__link {
    font-family: inherit;
    cursor: pointer;
}

/* Modal de curso */
html.ebct-modal-open {
    overflow: hidden;
}

.ebct-modal {
    width: min(660px, calc(100% - 32px));
    max-height: calc(100dvh - 48px);
    padding: 0;
    overflow: auto;
    overscroll-behavior: contain;
    scrollbar-color: rgba(222, 236, 241, 0.28) transparent;
    scrollbar-width: thin;
    border: 1px solid rgba(161, 211, 229, 0.28);
    border-radius: 12px;
    color: var(--ebct-ink);
    background: linear-gradient(160deg, #0b3d50 0%, #052734 45%, #031b25 100%);
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
}

.ebct-modal[open] {
    animation: ebct-modal-in 220ms ease-out;
}

.ebct-modal::backdrop {
    background: rgba(1, 12, 18, 0.74);
    backdrop-filter: blur(3px);
}

@keyframes ebct-modal-in {
    from { opacity: 0; transform: translateY(14px) scale(0.98); }
    to { opacity: 1; transform: none; }
}

.ebct-modal__panel {
    position: relative;
    padding: 34px 32px 30px;
}

.ebct-modal__close {
    position: absolute;
    top: 14px;
    right: 14px;
    display: grid;
    width: 40px;
    height: 40px;
    padding: 0 0 3px;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    place-items: center;
    color: #fff;
    background: rgba(2, 21, 29, 0.6);
    font: 300 1.7rem/1 Georgia, serif;
    cursor: pointer;
    transition: background-color 180ms ease, border-color 180ms ease;
}

.ebct-modal__close:hover,
.ebct-modal__close:focus-visible {
    border-color: rgba(241, 29, 63, 0.7);
    background: var(--ebct-red-soft);
}

.ebct-modal__eyebrow {
    margin: 0 0 8px;
    color: var(--ebct-red);
    font-size: 0.78rem;
    font-weight: 900;
    letter-spacing: 0.3em;
    text-transform: uppercase;
}

.ebct-modal__title {
    margin: 0 48px 24px 0;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.7rem, 4vw, 2.2rem);
    font-weight: 400;
    letter-spacing: -0.02em;
    line-height: 1.12;
}

.ebct-modal__title::after {
    content: "";
    display: block;
    width: 40px;
    height: 2px;
    margin-top: 14px;
    background: var(--ebct-red);
}

.ebct-modal__facts {
    display: grid;
    grid-auto-columns: minmax(0, 1fr);
    grid-auto-flow: column;
    gap: 10px;
    margin: 0 0 26px;
    padding: 0;
    list-style: none;
}

.ebct-modal__facts li {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 12px;
    border: 1px solid rgba(161, 211, 229, 0.2);
    border-radius: 8px;
    background: rgba(2, 21, 29, 0.45);
}

.ebct-modal__facts strong {
    color: var(--ebct-red);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.6rem;
    font-weight: 400;
    line-height: 1;
}

.ebct-modal__facts span {
    color: var(--ebct-muted);
    font-size: 0.82rem;
    line-height: 1.3;
}

.ebct-modal__section + .ebct-modal__section {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--ebct-line);
}

.ebct-modal__section h3 {
    margin: 0 0 10px;
    color: #fff;
    font-size: 0.86rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ebct-modal__section ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ebct-modal__section li {
    position: relative;
    padding-left: 22px;
    color: #e0e8eb;
    font-size: 1rem;
    line-height: 1.55;
}

.ebct-modal__section li::before {
    content: "";
    position: absolute;
    top: 0.62em;
    left: 2px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--ebct-red);
}

.ebct-modal__section strong {
    color: #fff;
}

.ebct-modal__cta {
    margin-top: 28px;
}

/* Curso em destaque: mesmo dourado do plano anual ("Melhor escolha") */
.ebct-course-card--featured {
    border-color: rgba(242, 193, 78, 0.7);
    box-shadow: 0 0 0 1px rgba(242, 193, 78, 0.25), var(--ebct-shadow);
}

.ebct-course-card--featured:hover,
.ebct-course-card--featured:focus-within {
    border-color: #f2c14e;
    box-shadow: 0 0 0 1px rgba(242, 193, 78, 0.35), 0 24px 54px rgba(0, 0, 0, 0.3);
}

/* Selo sobre a borda superior (como "Melhor escolha"): o card libera o overflow
   e os cantos arredondados passam para a foto e o corpo. */
.ebct-course-card--featured {
    overflow: visible;
}

.ebct-course-card--featured .ebct-course-card__media {
    border-radius: 5px 5px 0 0;
}

.ebct-course-card--featured .ebct-course-card__body {
    border-radius: 0 0 5px 5px;
}

.ebct-course-card__badge {
    position: absolute;
    z-index: 5;
    top: -13px;
    right: 14px;
    padding: 7px 11px;
    border-radius: 5px;
    color: #041f2a;
    background: #f2c14e;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
    font-size: 0.74rem;
    font-weight: 900;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* Mais específico que os estados normais e de hover do link (desktop e mobile) */
.ebct-course-card.ebct-course-card--featured .ebct-course-card__link,
.ebct-course-card.ebct-course-card--featured:hover .ebct-course-card__link {
    color: #f2c14e;
}

/* Página de cursos: grade (os cards são os mesmos do carrossel da home) */

.ebct-course-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
}

/* Mais específico que as larguras do carrossel em cada breakpoint */
.ebct-course-grid .ebct-course-card {
    min-width: 0;
}

/* Card largo: foto (quadrada) à esquerda, em altura cheia, e texto à direita */
.ebct-course-grid .ebct-course-card--featured {
    grid-column: span 2;
    flex-direction: row;
}

.ebct-course-grid .ebct-course-card--featured .ebct-course-card__media {
    flex: 0 0 60%;
    border-radius: 5px 0 0 5px;
}

.ebct-course-grid .ebct-course-card--featured .ebct-course-card__media::after {
    background: linear-gradient(90deg, transparent 60%, #032431 100%);
}

.ebct-course-grid .ebct-course-card--featured .ebct-course-card__body {
    border-radius: 0 5px 5px 0;
    justify-content: center;
    padding: 28px 28px 24px 16px;
}

.ebct-course-grid .ebct-course-card--featured .ebct-course-card__body {
    align-items: center;
    text-align: center;
}

/* margin-top: auto no ícone e no link: o texto fica centralizado na vertical
   e o "Saiba mais" desce para o canto inferior direito */
.ebct-course-grid .ebct-course-card--featured .ebct-course-card__icon {
    align-self: center;
    margin-top: auto;
}

/* Traço vermelho do título centralizado junto com o texto */
.ebct-course-grid .ebct-course-card--featured h3::after {
    margin-inline: auto;
}

.ebct-course-grid .ebct-course-card--featured h3 {
    font-size: 2.2rem;
}



.ebct-course-grid .ebct-course-card--featured .ebct-course-card__link {
    align-self: flex-end;
    margin-top: auto;
}

/* Home (carrossel): Bacharel ocupa o espaço de dois cards, com as mesmas medidas da página de
   cursos. Só com 3 ou mais cards visíveis (acima de 820px); abaixo disso fica como os demais. */
@media (min-width: 821px) {
    .ebct-course-track > .ebct-course-card--featured {
        flex-direction: row;
    }

    .ebct-course-track .ebct-course-card--featured .ebct-course-card__media {
        flex: 0 0 60%;
        border-radius: 5px 0 0 5px;
    }

    .ebct-course-track .ebct-course-card--featured .ebct-course-card__media::after {
        background: linear-gradient(90deg, transparent 60%, #032431 100%);
    }

    .ebct-course-track .ebct-course-card--featured .ebct-course-card__body {
        align-items: center;
        justify-content: center;
        padding: 28px 28px 24px 16px;
        border-radius: 0 5px 5px 0;
        text-align: center;
    }

    .ebct-course-track .ebct-course-card--featured .ebct-course-card__icon {
        align-self: center;
        margin-top: auto;
    }

    .ebct-course-track .ebct-course-card--featured h3 {
        font-size: 2.2rem;
    }

    .ebct-course-track .ebct-course-card--featured h3::after {
        margin-inline: auto;
    }

    .ebct-course-track .ebct-course-card--featured .ebct-course-card__link {
        align-self: flex-end;
        margin-top: auto;
    }
}

@media (min-width: 821px) and (max-width: 1060px) {
    .ebct-course-track > .ebct-course-card--featured {
        min-width: calc((100% - 36px) / 3 * 2 + 18px);
    }

    /* Aqui o Anual ampliado chega a ~13px da janela e a seta sairia pela metade: fica sobre a borda
       da coluna (a 24px da janela), como as setas dos outros carrosséis. Seletor mais específico
       porque a regra geral dos planos vem depois no arquivo. */
    .ebct-plans__layout .ebct-plans__carousel .ebct-carousel__arrow--prev {
        left: calc(-100% - 24px - 23px);
    }
}

/* Com 4 colunas, o carrossel de cursos usa o mesmo espaço entre cards da grade de /cursos (20px),
   para o Bacharel ter exatamente a mesma largura de lá. */
@media (min-width: 1061px) {
    .ebct-courses .ebct-course-track {
        gap: 20px;
    }

    .ebct-course-track > .ebct-course-card {
        min-width: calc((100% - 60px) / 4);
    }

    .ebct-course-track > .ebct-course-card--featured {
        min-width: calc((100% - 20px) / 2);
    }

    /* Na home os cards acompanham o mais alto do carrossel (466px) e em /cursos a primeira linha tem
       439px. A foto fica com a altura de lá (enquadramento igual) e esmaece no fundo do card. */
    .ebct-course-track .ebct-course-card--featured .ebct-course-card__media {
        background: #032431;
    }

    .ebct-course-track .ebct-course-card--featured .ebct-course-card__media img {
        height: 437px;
        -webkit-mask-image: linear-gradient(180deg, #000 86%, transparent 100%);
        mask-image: linear-gradient(180deg, #000 86%, transparent 100%);
    }
}

/* Notebooks pequenos / tablets na horizontal: o menu completo precisa caber numa linha */
@media (min-width: 821px) and (max-width: 960px) {
    .ebct-header__inner,
    .ebct-nav {
        gap: 16px;
    }

    .ebct-nav a {
        font-size: 0.84rem;
    }

    .ebct-header .ebct-header__cta {
        padding-inline: 16px;
    }
}

/* Carrosséis */
.ebct-carousel {
    position: relative;
    padding-inline: 12px;
}

/* overflow-x corta o que sai do trilho: padding extra (compensado pela margem negativa)
   dá espaço para o card subir no hover e para a sombra, sem mudar o layout */
.ebct-carousel__track {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    margin: -14px -12px -18px;
    padding: 18px 14px 32px;
    scroll-padding-inline: 14px;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
}

.ebct-carousel__track::-webkit-scrollbar {
    display: none;
}

.ebct-carousel__arrow {
    position: absolute;
    z-index: 5;
    top: 50%;
    display: grid;
    width: 46px;
    height: 46px;
    padding: 0 0 4px;
    border: 2px solid var(--ebct-red);
    border-radius: 50%;
    place-items: center;
    color: var(--ebct-red);
    background: rgba(3, 32, 44, 0.92);
    font: 300 2rem/1 Georgia, serif;
    cursor: pointer;
    transform: translateY(-68%);
    transition: color 180ms ease, background-color 180ms ease, opacity 180ms ease;
}

/* Vermelho translúcido sobre o fundo escuro da seta (a seta fica sobre fotos e cards) */
.ebct-carousel__arrow:hover,
.ebct-carousel__arrow:focus-visible {
    color: #fff;
    background: linear-gradient(var(--ebct-red-soft), var(--ebct-red-soft)), rgba(3, 32, 44, 0.92);
}

.ebct-carousel__arrow:disabled {
    opacity: 0.28;
    cursor: default;
}

/* Centro da seta sobre a borda do card: borda a 14px da lateral do carrossel
   (padding 12px - margem 12px + padding do trilho 14px), menos metade da seta (23px). */
.ebct-carousel__arrow--prev {
    left: -9px;
}

.ebct-carousel__arrow--next {
    right: -9px;
}

.ebct-carousel__dots {
    display: flex;
    min-height: 14px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 8px;
}

/* Bolinhas; a da página atual vira uma pílula alongada */
.ebct-carousel__dots button {
    width: 9px;
    height: 9px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(222, 236, 241, 0.2);
    cursor: pointer;
    transition: width 240ms ease, background-color 240ms ease;
}

.ebct-carousel__dots button:hover {
    background: rgba(222, 236, 241, 0.4);
}

/* Vermelho suavizado, para não competir com os cards */
.ebct-carousel__dots button[aria-current="true"] {
    width: 28px;
    background: rgba(241, 29, 63, 0.55);
}

/* Professores */
.ebct-professors {
    background: transparent;
}

.ebct-professor-card {
    position: relative;
    min-width: calc((100% - 72px) / 5);
    height: auto;
    aspect-ratio: 0.82;
    overflow: hidden;
    border: 1px solid rgba(161, 211, 229, 0.26);
    border-radius: var(--ebct-radius);
    scroll-snap-align: start;
    background: linear-gradient(145deg, #164b62, #082b3b 72%);
}

.ebct-professor-card__portrait {
    position: absolute;
    inset: 0;
}

.ebct-professor-card__portrait::after {
    content: "";
    position: absolute;
    inset: 40% 0 0;
    background: linear-gradient(180deg, transparent, rgba(1, 18, 25, 0.98));
}

.ebct-professor-card__portrait img {
    position: absolute;
    bottom: 0;
    left: 50%;
    width: auto;
    max-width: none;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
    filter: saturate(0.9) contrast(1.03);
    transform: translateX(-50%);
    transition: transform 280ms ease;
}

.ebct-professor-card:hover .ebct-professor-card__portrait img {
    transform: translateX(-50%) scale(1.025);
}

.ebct-professor-card__caption {
    position: absolute;
    z-index: 2;
    inset: auto 0 0;
    padding: 20px 14px 13px;
}

.ebct-professor-card h3 {
    margin: 0;
    color: #fff;
    font-size: 1rem;
    line-height: 1.2;
}

.ebct-professor-card p {
    margin: 3px 0 0;
    color: var(--ebct-red);
    font-size: 0.88rem;
    font-weight: 700;
}

/* Bio curta: só no carrossel mobile */
.ebct-professor-card .ebct-professor-card__bio {
    display: none;
}

/* Planos */
.ebct-plans {
    background: transparent;
}

/* Título/descrição | Plano Anual (fixo, sempre visível) | carrossel com Mensal e Trimestral (1 visível) */
.ebct-plans__layout {
    display: grid;
    grid-template-columns: minmax(200px, 0.72fr) minmax(0, 1fr) minmax(0, 1fr);
    align-items: start;
    gap: 24px;
}

.ebct-plans__intro {
    align-self: start;
}

/* Anual fora do carrossel: altura pelo conteúdo, topo alinhado aos cards do carrossel
   (o trilho tem margin-top -24px e padding-top 28px = +4px) */
.ebct-plans__layout > .ebct-plan-card--featured {
    height: auto;
    margin-top: 4px;
}

.ebct-plans__intro {
    padding: 14px 28px 14px 0;
}

.ebct-plans__intro p {
    max-width: 260px;
    margin: 34px 0 0;
    color: #ecf1f3;
    font-size: 1.12rem;
    line-height: 1.65;
}

.ebct-plans__carousel {
    min-width: 0;
}

.ebct-plans-track {
    align-items: stretch;
}

/* Espaço extra no trilho para o card anual (maior) e o selo não serem cortados */
.ebct-plans-track.ebct-carousel__track {
    margin-top: -24px;
    padding-top: 28px;
}

.ebct-plans-track > .ebct-plan-card {
    min-width: 100%;
    height: auto;
    scroll-snap-align: start;
}

.ebct-plan-card {
    position: relative;
    display: flex;
    min-height: 430px;
    height: 100%;
    flex-direction: column;
    padding: 26px 26px 24px;
    border: 2px solid var(--ebct-red);
    border-radius: var(--ebct-radius);
    background: linear-gradient(145deg, rgba(13, 59, 77, 0.97), rgba(4, 35, 48, 0.98));
    box-shadow: var(--ebct-shadow);
}

.ebct-plan-card--featured {
    border-color: var(--ebct-red);
    background: linear-gradient(150deg, var(--ebct-panel-soft) 0%, var(--ebct-panel) 60%, rgba(4, 35, 48, 0.98) 100%);
    box-shadow: 0 22px 56px rgba(0, 0, 0, 0.3);
    position: relative;
    z-index: 1;
    transform: scale(1.05);
}

.ebct-plan-card__badge {
    position: absolute;
    top: -16px;
    right: 14px;
    padding: 8px 12px;
    border-radius: 5px;
    color: #fff;
    background: var(--ebct-red);
    font-size: 0.78rem;
    font-weight: 900;
    text-transform: uppercase;
}

.ebct-plan-card--featured .ebct-plan-card__badge {
    color: #041f2a;
    background: #f2c14e;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.22), 0 0 14px rgba(242, 193, 78, 0.28);
}

.ebct-plan-card--featured .ebct-plan-card__payment {
    color: rgba(255, 255, 255, 0.88);
}

.ebct-plan-card--featured li {
    color: #fff;
}

.ebct-plan-card--featured li::before {
    color: var(--ebct-red);
    background: #fff;
}

.ebct-plan-card--featured .ebct-plan-card__price strong {
    color: #f2c14e;
}

.ebct-plan-card--featured .ebct-button {
    border-color: #f2c14e;
    color: #041f2a;
    background: #f2c14e;
    box-shadow: 0 12px 30px rgba(242, 193, 78, 0.22);
}

.ebct-plan-card--featured .ebct-button:hover,
.ebct-plan-card--featured .ebct-button:focus-visible {
    border-color: #e5ad2e;
    color: #041f2a;
    background: #e5ad2e;
    box-shadow: 0 16px 34px rgba(242, 193, 78, 0.3);
}

.ebct-plan-card:not(.ebct-plan-card--featured) .ebct-plan-card__price strong {
    color: #fff;
}

.ebct-plan-card:not(.ebct-plan-card--featured) .ebct-button {
    border-color: #fff;
    color: var(--ebct-red);
    background: #fff;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}

.ebct-plan-card:not(.ebct-plan-card--featured) .ebct-button:hover,
.ebct-plan-card:not(.ebct-plan-card--featured) .ebct-button:focus-visible {
    color: var(--ebct-red-dark);
    background: rgba(255, 255, 255, 0.88);
    border-color: rgba(255, 255, 255, 0.88);
}

.ebct-plan-card__name {
    margin: 0;
    color: #fff;
    font-size: 1.42rem;
    font-weight: 700;
}

.ebct-plan-card__price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0 8px;
    margin: 2px 0 0;
}

.ebct-plan-card__price strong {
    color: var(--ebct-red);
    white-space: nowrap;
    font-size: clamp(2rem, 3.2vw, 3.1rem);
    letter-spacing: -0.05em;
    line-height: 1;
}

.ebct-plan-card__price span {
    color: #fff;
    font-size: 1.05rem;
}

.ebct-plan-card__payment {
    min-height: 54px;
    margin: 7px 0 16px;
    color: #f2f5f6;
    font-size: 1.02rem;
    line-height: 1.45;
}

.ebct-plan-card ul {
    display: grid;
    gap: 12px;
    margin: 0 0 22px;
    padding: 0;
    list-style: none;
}

.ebct-plan-card li {
    position: relative;
    padding-left: 34px;
    color: #f1f5f6;
    font-size: 1.03rem;
    line-height: 1.5;
}

.ebct-plan-card li::before {
    content: "✓";
    position: absolute;
    top: 0;
    left: 0;
    display: grid;
    width: 23px;
    height: 23px;
    border-radius: 50%;
    place-items: center;
    color: #fff;
    background: var(--ebct-red);
    font-size: 0.9rem;
    font-weight: 900;
}

.ebct-plan-card .ebct-button {
    margin-top: auto;
    padding-inline: 16px;
    font-size: 0.88rem;
    white-space: nowrap;
}

/* Depoimentos */
.ebct-testimonials {
    padding-block: 56px;
    background: transparent;
}

.ebct-testimonial-card {
    display: grid;
    min-width: calc((100% - 18px) / 2);
    min-height: 210px;
    grid-template-columns: 94px 1fr;
    align-items: center;
    gap: 22px;
    margin: 0;
    padding: 22px 26px;
    border: 1px solid rgba(161, 211, 229, 0.28);
    border-radius: var(--ebct-radius);
    scroll-snap-align: start;
    background: rgba(7, 49, 66, 0.82);
}

.ebct-testimonial-card__avatar {
    display: grid;
    width: 86px;
    height: 86px;
    border: 3px solid rgba(241, 29, 63, 0.55);
    border-radius: 50%;
    place-items: center;
    color: #fff;
    background: linear-gradient(145deg, var(--ebct-red), #173f52);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.65rem;
}

.ebct-testimonial-card__avatar--photo {
    overflow: hidden;
    background: #173f52;
}

.ebct-testimonial-card__avatar--photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ebct-testimonial-card blockquote {
    margin: 0 0 8px;
    color: #eff4f5;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.05rem;
    font-style: italic;
    line-height: 1.55;
}

.ebct-testimonial-card strong {
    display: block;
    color: #fff;
    font-size: 0.92rem;
}

.ebct-stars {
    color: var(--ebct-red);
    font-size: 0.96rem;
    letter-spacing: 0.08em;
}

/* FAQ */
.ebct-faq {
    background: transparent;
}

.ebct-faq__layout {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
    text-align: center;
}

.ebct-faq__intro {
    padding-top: 4px;
}

.ebct-faq__intro h2::before {
    left: 50%;
    transform: translateX(-50%);
}

.ebct-faq__intro p {
    max-width: 560px;
    margin: 28px auto 0;
    color: var(--ebct-ink);
    font-size: 1.18rem;
    line-height: 1.65;
}

.ebct-faq__content {
    width: 100%;
    max-width: 760px;
    min-width: 0;
    margin-inline: auto;
}

.ebct-faq__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}

.ebct-faq__footer {
    display: flex;
    justify-content: center;
    margin-top: 30px;
}

.ebct-faq__item {
    overflow: hidden;
    border: 1px solid rgba(92, 185, 217, 0.48);
    border-radius: 6px;
    background: rgba(3, 36, 49, 0.78);
    text-align: left;
    transition: border-color 180ms ease;
}

.ebct-faq__item summary {
    display: flex;
    min-height: 60px;
    align-items: center;
    gap: 16px;
    padding: 11px 22px 11px 14px;
    color: #fff;
    font-size: 1.02rem;
    font-weight: 700;
    line-height: 1.35;
    cursor: pointer;
    list-style: none;
}

.ebct-faq__item summary::-webkit-details-marker {
    display: none;
}

.ebct-faq__num {
    display: grid;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border: 1.5px solid var(--ebct-red);
    border-radius: 50%;
    place-items: center;
    color: #fff;
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.ebct-faq__question {
    flex: 1;
    min-width: 0;
}

.ebct-faq__chevron {
    flex: 0 0 10px;
    width: 10px;
    height: 10px;
    border-right: 2px solid #fff;
    border-bottom: 2px solid #fff;
    transform: translateY(-3px) rotate(45deg);
    transition: transform 180ms ease;
}

.ebct-faq__item:hover,
.ebct-faq__item[open] {
    border-color: var(--ebct-red);
}

.ebct-faq__item[open] .ebct-faq__chevron {
    transform: translateY(2px) rotate(225deg);
}

/* Resposta alinhada ao texto da pergunta: padding 14px + número 38px + gap 16px */
.ebct-faq__item > div {
    padding: 0 26px 20px 68px;
}

.ebct-faq__item p {
    margin: 0;
    color: var(--ebct-muted);
    font-size: 1rem;
    line-height: 1.65;
}

.ebct-faq__item p + p {
    margin-top: 10px;
}

.ebct-faq__item p strong {
    color: #fff;
}

.ebct-faq__content--wide {
    max-width: 960px;
}

/* Página de perguntas: abertura */
.ebct-hero.ebct-hero--page {
    min-height: 0;
}

.ebct-page-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(240px, 0.8fr);
    align-items: center;
    gap: 48px;
    padding-block: 36px 72px;
}

/* Mais específico que ".ebct-hero h1" para usar o estilo de título de seção */
.ebct-hero .ebct-page-hero__title {
    max-width: none;
    margin: 0;
    color: var(--ebct-red);
    font-family: inherit;
    font-size: clamp(2.2rem, 4.4vw, 3.6rem);
    font-weight: 900;
    letter-spacing: -0.045em;
    line-height: 1.1;
}

.ebct-hero .ebct-page-hero__title span {
    color: #fff;
}

.ebct-page-hero__lead {
    max-width: 560px;
    margin: 24px 0 0;
    color: #fff;
    font-size: 1.25rem;
    line-height: 1.5;
}

.ebct-page-hero__text {
    max-width: 560px;
    margin: 14px 0 0;
    color: var(--ebct-muted);
    font-size: 1.02rem;
    line-height: 1.65;
}

.ebct-page-hero__verse {
    margin: 0;
    color: rgba(255, 255, 255, 0.86);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
    font-style: italic;
    line-height: 1.85;
    text-align: right;
}

.ebct-page-hero__verse p {
    margin: 0;
}

.ebct-page-hero__verse cite {
    display: block;
    margin-top: 10px;
    color: var(--ebct-red);
    font-size: 1rem;
}

/* Introdução centralizada de seção (página de perguntas) */
.ebct-section-intro {
    max-width: 720px;
    margin: 0 auto 44px;
    text-align: center;
}

.ebct-section-intro h2::before {
    left: 50%;
    transform: translateX(-50%);
}

.ebct-section-intro p {
    margin: 24px 0 0;
    color: var(--ebct-ink);
    font-size: 1.14rem;
    line-height: 1.65;
}

/* Objeções */
.ebct-objections__grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ebct-objection-card {
    grid-column: span 2;
    padding: 26px 24px;
    border: 1px solid rgba(161, 211, 229, 0.22);
    border-radius: var(--ebct-radius);
    background: rgba(3, 36, 49, 0.72);
    transition: border-color 180ms ease, transform 180ms ease;
}

/* 5 cards: a última linha (2 cards) fica centralizada */
.ebct-objection-card:nth-child(4) {
    grid-column: 2 / 4;
}

.ebct-objection-card:nth-child(5) {
    grid-column: 4 / 6;
}

.ebct-objection-card:hover {
    border-color: rgba(241, 29, 63, 0.6);
    transform: translateY(-4px);
}

.ebct-objection-card h3,
.ebct-profile-card h3 {
    margin: 0 0 16px;
    color: var(--ebct-red);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.3rem;
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 1.25;
}

.ebct-objection-card h3::after,
.ebct-profile-card h3::after {
    content: "";
    display: block;
    width: 32px;
    height: 2px;
    margin-top: 12px;
    background: var(--ebct-red);
}

.ebct-objection-card p,
.ebct-profile-card p {
    margin: 0;
    color: #e0e8eb;
    font-size: 1rem;
    line-height: 1.65;
}

/* Desktop: cards dos carrosséis alinhados à borda do container, como as grades (antes ficavam
   14px para dentro). A margem negativa do trilho compensa o padding que dá espaço à sombra/hover.
   No mobile os carrosséis mantêm o recuo para as setas ficarem sobre as bordas dos cards. */
@media (min-width: 821px) {
    .ebct-carousel {
        padding-inline: 0;
    }

    .ebct-carousel:not(.ebct-carousel--mobile-only) > .ebct-carousel__track {
        margin-inline: -14px;
    }

    /* Centro da seta (46px) sobre a borda do card, que agora coincide com a lateral do carrossel */
    .ebct-carousel__arrow--prev {
        left: -23px;
    }

    .ebct-carousel__arrow--next {
        right: -23px;
    }

    /* Planos: a seta "anterior" fica sobre a borda esquerda do card Anual, que está na coluna ao
       lado (mesma largura do carrossel + 24px entre as colunas; o scale(1.05) do Anual leva a borda
       mais 2,5% da largura para fora). Continua alternando apenas Trimestral e Mensal. */
    .ebct-plans__carousel .ebct-carousel__arrow--prev {
        left: calc(-102.5% - 24px - 23px);
    }
}

/* Carrossel só no mobile: acima de 620px o trilho vira a grade normal */
.ebct-carousel--mobile-only {
    padding-inline: 0;
}

.ebct-carousel--mobile-only .ebct-carousel__track {
    overflow: visible;
}

.ebct-carousel--mobile-only .ebct-carousel__arrow,
.ebct-carousel--mobile-only .ebct-carousel__dots {
    display: none;
}

/* Grade curricular: 7 semestres + card de conclusão (4 colunas × 2 linhas) */
.ebct-curriculum__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ebct-semester-card {
    display: flex;
    flex-direction: column;
    padding: 24px 22px 18px;
    border: 1px solid rgba(161, 211, 229, 0.22);
    border-radius: var(--ebct-radius);
    background: rgba(3, 36, 49, 0.72);
    transition: border-color 180ms ease, transform 180ms ease;
}

.ebct-semester-card:hover {
    border-color: rgba(241, 29, 63, 0.6);
    transform: translateY(-4px);
}

.ebct-semester-card__title {
    margin: 0;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.5rem;
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 1.2;
}

.ebct-semester-card__title span {
    color: var(--ebct-red);
}

.ebct-semester-card__title::after {
    content: "";
    display: block;
    width: 32px;
    height: 2px;
    margin-top: 12px;
    background: var(--ebct-red);
}

.ebct-semester-card__count {
    margin: 12px 0 0;
    color: var(--ebct-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.ebct-semester-card__list {
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

.ebct-semester-card__list li {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 10px;
    padding: 9px 0;
    border-top: 1px solid var(--ebct-line);
    color: #f1f5f6;
    font-size: 0.95rem;
    line-height: 1.35;
}

.ebct-semester-card__num {
    color: rgba(255, 255, 255, 0.42);
    font-size: 0.76rem;
    font-weight: 800;
}

.ebct-semester-card__name small {
    display: block;
    margin-top: 2px;
    color: var(--ebct-muted);
    font-size: 0.8rem;
}

.ebct-semester-card__hours {
    color: #f2c14e;
    font-size: 0.8rem;
    font-weight: 800;
    white-space: nowrap;
}

/* Card de conclusão: contorno dourado, como o destaque do Bacharel nos cursos */
.ebct-semester-card--final {
    border-color: rgba(242, 193, 78, 0.55);
    background: linear-gradient(160deg, rgba(11, 61, 80, 0.85), rgba(3, 36, 49, 0.85));
}

.ebct-semester-card--final:hover {
    border-color: #f2c14e;
}

.ebct-semester-card__icon {
    width: 40px;
    height: 40px;
    margin-bottom: 14px;
    color: #f2c14e;
    font-size: 40px;
}

.ebct-semester-card--final > p {
    margin: 16px 0 0;
    color: #e0e8eb;
    font-size: 0.95rem;
    line-height: 1.55;
}

.ebct-semester-card__awards {
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}

.ebct-semester-card__awards li {
    position: relative;
    padding: 5px 0 5px 24px;
    color: #fff;
    font-weight: 700;
}

.ebct-semester-card__awards li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: #f2c14e;
    font-weight: 900;
}

.ebct-semester-card__facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0 22px;
    padding-top: 16px;
    border-top: 1px solid var(--ebct-line);
}

.ebct-semester-card__facts dt {
    color: var(--ebct-muted);
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ebct-semester-card__facts dd {
    margin: 4px 0 0;
    color: #f2c14e;
    font-size: 1.3rem;
    font-weight: 800;
}

.ebct-semester-card--final .ebct-button {
    margin-top: auto;
}

/* Mobile: o hero do Bacharel ocupa a altura visível da tela (svh desconta as barras do navegador),
   com o conteúdo centralizado, e a seta para baixo fica na base da janela */
@media (max-width: 620px) {
    /* Seletor duplo: a regra geral ".ebct-hero { min-height: 0 }" do mobile vem depois no arquivo */
    .ebct-hero.ebct-hero--bacharel {
        display: flex;
        flex-direction: column;
        min-height: 100vh;
        min-height: 100svh;
    }

    .ebct-hero--bacharel .ebct-hero__inner {
        flex: 1 0 auto;
        align-items: center;
    }
}

@media (max-width: 1060px) {
    .ebct-curriculum__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Mobile: carrossel de semestres (um card por vez, setas sobre as bordas) */
@media (max-width: 620px) {
    .ebct-curriculum__grid {
        grid-template-columns: 1fr;
    }

    .ebct-semester-card {
        min-width: 100%;
        scroll-snap-align: start;
    }

    .ebct-semester-card:hover {
        transform: none;
    }
}

/* Quem somos: fundador em estilo de perfil, sem card. Desktop/tablet: foto quadrada à esquerda e,
   ao lado, nome, cargo (itálico vermelho, com traço curto) e o texto. */
.ebct-founder__layout {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    grid-template-areas:
        "photo id"
        "photo body";
    grid-template-rows: auto 1fr;
    column-gap: 48px;
}

/* Foto "saindo do quadro": painel azul sólido (::before), sem borda, na largura da foto, começando
   na metade da cabeça; o topo da cabeça fica sobre o fundo da página, com um brilho suave atrás
   para o cabelo escuro não sumir no fundo. A imagem (cabeça em x 403 da foto de 860 px) é ampliada e
   deslocada para enquadrar cabeça e tronco; valores em % da largura do quadro. --ebct-head-x é a
   posição horizontal da cabeça no quadro (centro do brilho). */
.ebct-founder__photo {
    --ebct-head-x: 50%;
    position: relative;
    grid-area: photo;
    align-self: start;
    aspect-ratio: 3 / 4;
    margin: 0;
    overflow: hidden;
    background: radial-gradient(circle at var(--ebct-head-x) 22.5%, rgba(120, 190, 216, 0.22), transparent 34%);
}

.ebct-founder__photo::before {
    content: "";
    position: absolute;
    top: 19.5%;
    right: 0;
    bottom: 0;
    left: 0;
    background: #0b3d50;
}

.ebct-founder .ebct-founder__photo img {
    position: relative;
    z-index: 1;
    display: block;
    width: 119%;
    max-width: none;
    height: auto;
    margin: 2% 0 0 -7.6%;
}

.ebct-founder__id {
    grid-area: id;
}

/* Nome em negrito, sem caixa alta (mais específico que ".ebct-section h2") */
.ebct-founder .ebct-founder__id h2 {
    padding: 0;
    color: #fff;
    font-size: 2.4rem;
    font-weight: 900;
    letter-spacing: -0.02em;
    line-height: 1.05;
    text-transform: none;
}

.ebct-founder .ebct-founder__id h2::before {
    content: none;
}

.ebct-founder .ebct-founder__id h2 span {
    display: inline;
    color: inherit;
    font-weight: inherit;
}

.ebct-founder .ebct-founder__role {
    margin: 10px 0 0;
    color: var(--ebct-red);
    font-size: 1.02rem;
    font-style: italic;
    font-weight: 600;
    line-height: 1.4;
}

.ebct-founder__role::after {
    content: "";
    display: block;
    width: 44px;
    height: 3px;
    margin-top: 16px;
    background: var(--ebct-red);
}

.ebct-founder__role-short {
    display: none;
}

.ebct-founder__body {
    grid-area: body;
    margin-top: 22px;
}

.ebct-founder__bio--short {
    display: none;
}

.ebct-founder__bio p {
    margin: 0 0 16px;
    color: #e8eef0;
    font-size: 1.12rem;
    line-height: 1.7;
}

.ebct-founder__facts {
    display: grid;
    gap: 10px;
    margin: 24px 0;
    padding: 20px 0 0;
    border-top: 1px solid var(--ebct-line);
    list-style: none;
}

.ebct-founder__facts li {
    position: relative;
    padding-left: 26px;
    color: #e0e8eb;
}

.ebct-founder__facts li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--ebct-red);
    font-weight: 900;
}

.ebct-founder__facts strong {
    color: #fff;
}

.ebct-founder__quote {
    margin: 0 0 28px;
    padding-left: 18px;
    border-left: 3px solid #f2c14e;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.45rem;
    line-height: 1.35;
}

/* Quem somos: lista de valores dentro do card */
.ebct-values {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ebct-values li {
    position: relative;
    padding-left: 22px;
    color: #e0e8eb;
    font-size: 0.98rem;
    line-height: 1.5;
}

.ebct-values li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--ebct-red);
    font-weight: 900;
}

.ebct-values strong {
    color: #fff;
}

/* Quem somos: números */
.ebct-stats {
    padding-block: 0;
}

.ebct-stats__list {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    border: 1px solid rgba(161, 211, 229, 0.22);
    border-radius: var(--ebct-radius);
    background: rgba(3, 36, 49, 0.72);
    list-style: none;
}

.ebct-stats__list li {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px 20px;
    text-align: center;
}

.ebct-stats__list li + li {
    border-left: 1px solid var(--ebct-line);
}

.ebct-stats__list small {
    color: var(--ebct-muted);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.ebct-stats__list strong {
    color: #f2c14e;
    font-family: Georgia, "Times New Roman", serif;
    font-variant-numeric: lining-nums;
    font-size: 3rem;
    font-weight: 400;
    line-height: 1.1;
}

.ebct-stats__list span {
    margin-top: 6px;
    color: #e0e8eb;
    font-size: 0.95rem;
    line-height: 1.4;
    text-wrap: balance;
}

@media (max-width: 1060px) {
    .ebct-founder__layout {
        grid-template-columns: 220px minmax(0, 1fr);
        column-gap: 36px;
    }

    .ebct-founder .ebct-founder__id h2 {
        font-size: 2.1rem;
    }
}

@media (max-width: 820px) {
    .ebct-stats__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ebct-stats__list li:nth-child(3) {
        border-left: 0;
    }

    .ebct-stats__list li:nth-child(n + 3) {
        border-top: 1px solid var(--ebct-line);
    }
}

@media (max-width: 620px) {
    /* Foto com ~62% da largura; nome e cargo sobrepostos à borda direita da foto, alinhados à base
       dela (o ombro escuro do terno dá contraste ao texto). O enquadramento desloca a cabeça para a
       esquerda do quadro, deixando o lado direito para o nome. */
    .ebct-founder__layout {
        grid-template-columns: 62% minmax(0, 1fr);
        grid-template-areas:
            "photo id"
            "body body";
        grid-template-rows: auto auto;
        column-gap: 0;
    }

    .ebct-founder__photo {
        --ebct-head-x: 42%;
    }

    .ebct-founder .ebct-founder__photo img {
        margin-left: -14%;
    }

    .ebct-founder__id {
        position: relative;
        z-index: 1;
        align-self: end;
        margin-left: -56px;
        padding-bottom: 4px;
        text-align: left;
        text-shadow: 0 2px 10px rgba(0, 0, 0, 0.55);
    }

    .ebct-founder .ebct-founder__id h2 {
        text-align: left;
    }

    .ebct-founder .ebct-founder__id h2 {
        font-size: 2rem;
    }

    .ebct-founder .ebct-founder__id h2 span {
        display: block;
    }

    /* Sobre a foto, o cargo fica em branco (o vermelho perderia contraste) */
    .ebct-founder .ebct-founder__role {
        margin-top: 8px;
        color: #fff;
        font-size: 0.92rem;
    }

    .ebct-founder__role::after {
        width: 36px;
        margin-top: 12px;
    }

    .ebct-founder__role-long {
        display: none;
    }

    .ebct-founder__role-short {
        display: inline;
    }

    .ebct-founder__body {
        margin-top: 26px;
    }

    .ebct-founder__body .ebct-outline-link {
        display: flex;
        width: fit-content;
        margin-inline: auto;
    }

    .ebct-founder__bio p {
        font-size: 1.06rem;
    }

    .ebct-founder__bio--long {
        display: none;
    }

    .ebct-founder__bio--short {
        display: block;
    }

    .ebct-stats__list strong {
        font-size: 2.4rem;
    }
}

/* Perfis */
.ebct-profiles__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ebct-profile-card {
    padding: 30px 26px;
    border: 1px solid rgba(161, 211, 229, 0.22);
    border-radius: var(--ebct-radius);
    background: linear-gradient(160deg, rgba(11, 61, 80, 0.85), rgba(3, 30, 41, 0.9));
}

.ebct-profile-card__icon {
    display: grid;
    width: 56px;
    height: 56px;
    margin-bottom: 20px;
    border: 1.5px solid var(--ebct-red);
    border-radius: 50%;
    place-items: center;
}

.ebct-profile-card__icon svg {
    width: 26px;
    height: 26px;
    fill: none;
    stroke: #fff;
    stroke-width: 1.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Página de professores: lista */
/* Mesma largura da lista de perguntas (.ebct-faq__content--wide) */
.ebct-teachers__list {
    max-width: 960px;
    display: grid;
    gap: 14px;
    margin: 0 auto;
    padding: 0;
    list-style: none;
}

.ebct-teacher {
    display: grid;
    grid-template-columns: 124px minmax(0, 1fr) minmax(200px, 250px);
    align-items: center;
    gap: 28px;
    overflow: hidden;
    padding-right: 28px;
    border: 1px solid rgba(161, 211, 229, 0.22);
    border-radius: var(--ebct-radius);
    background: rgba(3, 36, 49, 0.72);
    transition: border-color 180ms ease;
}

.ebct-teacher:hover {
    border-color: rgba(241, 29, 63, 0.6);
}

/* Sem dados à direita, as informações ocupam a coluna livre */
.ebct-teacher:not(:has(.ebct-teacher__facts)) {
    grid-template-columns: 124px minmax(0, 1fr);
}

.ebct-teacher__photo {
    align-self: stretch;
    min-height: 116px;
    background: linear-gradient(145deg, #164b62, #082b3b 72%);
}

.ebct-teacher__photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}

.ebct-teacher__info {
    padding-block: 18px;
}

/* Mais específico que ".ebct-section h2" (título de seção) */
.ebct-teacher .ebct-teacher__name {
    margin: 0;
    padding: 0;
    color: #fff;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1.25;
    text-align: left;
    text-transform: none;
}

.ebct-teacher .ebct-teacher__name::before {
    display: none;
}

.ebct-teacher__area {
    margin: 3px 0 0;
    color: var(--ebct-red);
    font-size: 0.95rem;
    font-weight: 700;
}

.ebct-teacher__bio {
    margin: 8px 0 0;
    color: #e0e8eb;
    font-size: 1rem;
    line-height: 1.55;
}

.ebct-teacher__facts {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 16px 0 16px 26px;
    border-left: 1px solid var(--ebct-line);
    list-style: none;
}

.ebct-teacher__facts li {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #e0e8eb;
    font-size: 0.95rem;
}

.ebct-teacher__facts svg {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: #fff;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Página de links (bio do Instagram): uma coluna, pensada para o celular */
.ebct-links {
    width: min(100% - 32px, 460px);
    margin: 0 auto;
    padding-block: 36px 40px;
    text-align: center;
}

.ebct-links__head h1 {
    margin: 14px 0 0;
    color: #fff;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.ebct-links .ebct-links__logo {
    width: 96px;
    height: auto;
    margin-inline: auto;
}

.ebct-links__pitch {
    margin: 18px 0 0;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.7rem;
    line-height: 1.2;
}

.ebct-links__pitch strong {
    display: block;
    color: var(--ebct-red);
    font-weight: 400;
}

.ebct-links__sub {
    margin: 12px auto 0;
    max-width: 360px;
    color: var(--ebct-muted);
    font-size: 1rem;
    line-height: 1.55;
}

.ebct-links .ebct-links__cta {
    width: 100%;
    min-height: 60px;
    margin-top: 26px;
    font-size: 1.05rem;
}

.ebct-links__cta-note {
    margin: 10px 0 0;
    color: var(--ebct-muted);
    font-size: 0.88rem;
}

.ebct-links__block {
    display: grid;
    gap: 12px;
    margin-top: 34px;
}

.ebct-links__block h2 {
    margin: 0 0 4px;
    color: #fff;
    font-size: 0.86rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ebct-links__plan {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 64px;
    padding: 12px 18px;
    border: 1px solid rgba(161, 211, 229, 0.28);
    border-radius: 12px;
    color: #fff;
    background: rgba(3, 36, 49, 0.78);
    text-align: left;
    transition: border-color 180ms ease, transform 180ms ease;
}

.ebct-links__plan:hover,
.ebct-links__plan:focus-visible {
    border-color: var(--ebct-red);
    transform: translateY(-2px);
}

.ebct-links__plan--featured {
    margin-top: 10px;
    padding-top: 22px;
    border-color: #f2c14e;
    background: linear-gradient(150deg, var(--ebct-panel-soft), var(--ebct-panel));
}

.ebct-links__plan--featured:hover,
.ebct-links__plan--featured:focus-visible {
    border-color: #f2c14e;
}

.ebct-links__plan-badge {
    position: absolute;
    top: -11px;
    left: 14px;
    padding: 4px 9px;
    border-radius: 5px;
    color: #041f2a;
    background: #f2c14e;
    font-size: 0.68rem;
    font-weight: 900;
    text-transform: uppercase;
}

.ebct-links__plan-name {
    font-weight: 800;
}

.ebct-links__plan-price {
    color: #fff;
    font-weight: 800;
    white-space: nowrap;
}

.ebct-links__plan-price {
    line-height: 1.2;
    text-align: right;
}

.ebct-links__plan-price small {
    display: block;
    color: var(--ebct-muted);
    font-size: 0.78rem;
    font-weight: 400;
}

.ebct-links__plan--featured .ebct-links__plan-price {
    color: #f2c14e;
}

.ebct-links__quote {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 34px 0 0;
    padding: 16px;
    border-left: 3px solid var(--ebct-red);
    border-radius: 0 10px 10px 0;
    background: rgba(3, 36, 49, 0.6);
    text-align: left;
}

.ebct-links .ebct-links__quote img {
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
}

.ebct-links__quote blockquote {
    margin: 0 0 6px;
    color: #eff4f5;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 0.98rem;
    font-style: italic;
    line-height: 1.5;
}

.ebct-links__quote strong {
    color: #fff;
    font-size: 0.86rem;
}

.ebct-links__whatsapp {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 56px;
    margin-top: 26px;
    border-radius: 999px;
    color: #fff;
    background: #1fa855;
    font-size: 0.95rem;
    font-weight: 800;
    text-transform: uppercase;
    transition: background-color 180ms ease;
}

.ebct-links__whatsapp:hover,
.ebct-links__whatsapp:focus-visible {
    background: #178a45;
}

.ebct-links__whatsapp .dashicons {
    width: 22px;
    height: 22px;
    font-size: 22px;
}

.ebct-links__more a {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 0 18px;
    border: 1px solid rgba(161, 211, 229, 0.18);
    border-radius: 999px;
    color: #e0e8eb;
    font-size: 0.95rem;
    font-weight: 700;
    transition: border-color 180ms ease;
}

.ebct-links__more a:hover,
.ebct-links__more a:focus-visible {
    border-color: rgba(161, 211, 229, 0.5);
}

.ebct-links__more svg {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ebct-links__foot {
    margin-top: 34px;
}

.ebct-links__foot .ebct-footer__socials {
    justify-content: center;
    margin-bottom: 16px;
}

.ebct-links__foot p {
    margin: 4px 0 0;
    color: var(--ebct-muted);
    font-size: 0.78rem;
}

/* Atendimento via WhatsApp */
.ebct-whatsapp__card {
    overflow: hidden;
    padding: 44px 48px 36px;
    border: 1px solid rgba(161, 211, 229, 0.22);
    border-radius: 14px;
    background: linear-gradient(160deg, rgba(11, 61, 80, 0.55), rgba(3, 27, 37, 0.85));
    box-shadow: var(--ebct-shadow);
}

.ebct-whatsapp__main {
    display: grid;
    grid-template-columns: minmax(140px, 200px) minmax(0, 1fr);
    align-items: center;
    gap: 56px;
}

/* Mais específico que ".ebct-site img" (max-width: 100%) */
.ebct-whatsapp .ebct-whatsapp__badge {
    width: 100%;
    max-width: 170px;
    height: auto;
    margin-inline: auto;
    filter: drop-shadow(0 22px 40px rgba(0, 0, 0, 0.45)) drop-shadow(0 0 36px rgba(37, 211, 102, 0.16));
}

.ebct-whatsapp__text {
    max-width: 540px;
    margin: 22px 0 0;
    color: var(--ebct-ink);
    font-size: 1.18rem;
    line-height: 1.6;
}

.ebct-whatsapp__button {
    min-width: 330px;
    margin-top: 28px;
}

.ebct-whatsapp__hours {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 20px 0 0;
    color: var(--ebct-muted);
    font-size: 1rem;
}

.ebct-whatsapp__hours svg {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: #fff;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ebct-whatsapp__benefits {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 40px 0 0;
    padding: 0;
    list-style: none;
}

.ebct-whatsapp__benefits li {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 4px 24px;
    color: #e0e8eb;
    font-size: 0.98rem;
    line-height: 1.45;
}

.ebct-whatsapp__benefits li:first-child {
    padding-left: 0;
}

.ebct-whatsapp__benefits li + li {
    border-left: 1px solid var(--ebct-line);
}

.ebct-whatsapp__benefits svg {
    width: 32px;
    height: 32px;
    fill: none;
    stroke: var(--ebct-red);
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Card de contato mais compacto: só acima de 620px, o mobile fica como estava */
@media (min-width: 621px) {
    .ebct-whatsapp__card {
        max-width: 940px;
        margin-inline: auto;
        padding: 32px 38px 28px;
    }

    .ebct-whatsapp__main {
        gap: 40px;
    }

    .ebct-whatsapp .ebct-whatsapp__badge {
        max-width: 150px;
    }

    .ebct-whatsapp h2 {
        font-size: clamp(1.6rem, 2.4vw, 2.2rem);
    }

    .ebct-whatsapp__text {
        margin-top: 16px;
        font-size: 1.05rem;
    }

    .ebct-whatsapp__button {
        min-width: 0;
        margin-top: 22px;
    }

    .ebct-whatsapp__hours {
        margin-top: 14px;
        font-size: 0.92rem;
    }

    .ebct-whatsapp__benefits {
        margin-top: 28px;
    }

    .ebct-whatsapp__benefits li {
        padding: 2px 18px;
        font-size: 0.9rem;
    }

    .ebct-whatsapp__benefits svg {
        width: 26px;
        height: 26px;
    }
}

/* Rodapé */
.ebct-footer {
    padding-block: 42px;
    background: transparent;
}

.ebct-footer__grid {
    display: grid;
    grid-template-columns: 1fr 1.3fr 1fr;
    align-items: center;
}

.ebct-footer__grid > * {
    min-height: 130px;
    padding-inline: 34px;
}

.ebct-footer__grid > * + * {
    border-left: 1px solid var(--ebct-line);
}

.ebct-footer__brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding-left: 0;
}

.ebct-footer__brand .ebct-footer__socials {
    justify-content: center;
    margin-bottom: 0;
}

.ebct-footer__brand img {
    width: 140px;
    height: auto;
}

.ebct-footer__brand p {
    margin: 0;
    color: #fff;
    font-size: 0.88rem;
    font-weight: 700;
    text-transform: uppercase;
}

.ebct-footer blockquote {
    display: grid;
    margin: 0;
    place-items: center;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.18rem;
    font-style: italic;
    line-height: 1.7;
    text-align: center;
}

.ebct-footer blockquote p {
    max-width: 380px;
    margin: 0;
}

.ebct-footer blockquote cite {
    display: block;
    margin-top: 8px;
    color: var(--ebct-red);
    font-size: 1rem;
}

.ebct-footer__meta {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding-right: 0;
    text-align: center;
}

.ebct-footer__socials {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-bottom: 16px;
}

.ebct-footer__socials a {
    display: grid;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    place-items: center;
    color: var(--ebct-red);
    background: rgba(255, 255, 255, 0.05);
    transition: color 180ms ease, background-color 180ms ease, transform 180ms ease;
}

.ebct-footer__socials a:hover,
.ebct-footer__socials a:focus-visible {
    color: #fff;
    background: var(--ebct-red-soft);
    transform: translateY(-2px);
}

.ebct-footer__meta p {
    margin: 0;
    color: var(--ebct-muted);
    font-size: 0.86rem;
    line-height: 1.5;
}

.ebct-footer__meta p + p {
    margin-top: 6px;
}

.ebct-footer__meta .ebct-footer__link {
    display: inline-block;
    margin-bottom: 8px;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 800;
    text-transform: uppercase;
    transition: color 180ms ease;
}

.ebct-footer__meta .ebct-footer__link:hover,
.ebct-footer__meta .ebct-footer__link:focus-visible {
    color: var(--ebct-red);
}

/* Seta vermelha indicando o link, como em "Ver todos os cursos" */
.ebct-footer__link span {
    display: inline-block;
    margin-left: 4px;
    color: var(--ebct-red);
    font-size: 1.1rem;
    transition: transform 180ms ease;
}

.ebct-footer__link:hover span,
.ebct-footer__link:focus-visible span {
    transform: translateX(3px);
}

/* Voltar ao topo */
.ebct-back-to-top {
    position: fixed;
    right: clamp(16px, 2.5vw, 34px);
    bottom: clamp(16px, 2.5vw, 34px);
    z-index: 80;
    display: grid;
    width: 48px;
    height: 48px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.26);
    border-radius: 50%;
    place-items: center;
    color: #fff;
    background: var(--ebct-red, #f11d3f);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    cursor: pointer;
    pointer-events: none;
    transition: opacity 180ms ease, visibility 180ms ease, transform 180ms ease, background-color 180ms ease;
}

.ebct-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}

.ebct-back-to-top:hover,
.ebct-back-to-top:focus-visible {
    background: var(--ebct-red-hover);
    transform: translateY(-3px);
}

.ebct-back-to-top .dashicons {
    width: 24px;
    height: 24px;
    font-size: 24px;
    line-height: 1;
}

/* Responsividade */
@media (max-width: 1440px) {
    .ebct-hero {
        min-height: 660px;
    }

    .ebct-hero__inner {
        min-height: 540px;
        padding-block: 40px 64px;
    }
}

@media (max-width: 1060px) {
    .ebct-hero {
        min-height: 700px;
    }

    .ebct-header__inner {
        gap: 22px;
    }

    .ebct-nav {
        gap: 22px;
    }

    .ebct-hero__content {
        width: 76%;
    }


    .ebct-course-card {
        min-width: calc((100% - 36px) / 3);
    }

    .ebct-course-card__media {
        flex-basis: 205px;
    }

    .ebct-professor-card {
        min-width: calc((100% - 54px) / 4);
    }

    /* Título centralizado acima; Anual e carrossel lado a lado */
    .ebct-plans__layout {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px 24px;
    }

    .ebct-plans__intro {
        grid-column: 1 / -1;
        padding: 0;
        text-align: center;
    }

    .ebct-plans__intro p {
        max-width: 520px;
        margin: 20px auto 0;
    }

    .ebct-plans__intro h2::before {
        left: 50%;
        transform: translateX(-50%);
    }

    .ebct-footer__grid > * {
        padding-inline: 22px;
    }

    .ebct-course-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ebct-objections__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ebct-objection-card,
    .ebct-objection-card:nth-child(4) {
        grid-column: auto;
    }

    .ebct-objection-card:nth-child(5) {
        grid-column: 1 / -1;
    }
}

@media (max-width: 820px) {
    .ebct-container {
        width: min(calc(100% - 34px), var(--ebct-container));
    }

    /* Só logo + botão do menu: nav é absoluto e o CTA fica oculto; 3 colunas deixariam um gap vazio à direita */
    /* Logo | "Matricule-se" (só texto) | botão do menu. O nav é fixo e fica fora do grid. */
    .ebct-header__inner {
        grid-template-columns: auto 1fr auto;
        min-height: 88px;
    }

    .ebct-brand {
        grid-column: 1;
        grid-row: 1;
    }

    .ebct-menu-toggle {
        grid-column: 3;
        grid-row: 1;
    }

    .ebct-brand,
    .ebct-brand img {
        width: 82px;
    }

    .ebct-menu-toggle {
        display: flex;
        width: 46px;
        height: 46px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        justify-self: end;
        gap: 5px;
        padding: 0;
        border: 1px solid rgba(255, 255, 255, 0.24);
        border-radius: 50%;
        color: #fff;
        background: rgba(2, 27, 37, 0.72);
        cursor: pointer;
    }

    .ebct-menu-toggle__line {
        width: 19px;
        height: 2px;
        background: currentColor;
        transition: transform 180ms ease, opacity 180ms ease;
    }

    .ebct-menu-toggle[aria-expanded="true"] .ebct-menu-toggle__line:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .ebct-menu-toggle[aria-expanded="true"] .ebct-menu-toggle__line:nth-child(2) {
        opacity: 0;
    }

    .ebct-menu-toggle[aria-expanded="true"] .ebct-menu-toggle__line:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    /* Menu em tela cheia. O header é o contexto de empilhamento: logo e botão ficam acima do painel. */
    .ebct-brand,
    .ebct-menu-toggle {
        position: relative;
        z-index: 40;
    }

    .ebct-nav {
        position: fixed;
        z-index: 30;
        inset: 0;
        display: flex;
        visibility: hidden;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 4px;
        padding: 110px 24px 210px;
        background:
            radial-gradient(120% 60% at 50% 0%, rgba(11, 61, 80, 0.55), transparent 70%),
            rgba(2, 14, 20, 0.97);
        -webkit-backdrop-filter: blur(8px);
        backdrop-filter: blur(8px);
        opacity: 0;
        transition: opacity 240ms ease, visibility 0s linear 240ms;
    }

    .ebct-nav.is-open {
        visibility: visible;
        opacity: 1;
        transition: opacity 240ms ease;
    }

    .ebct-nav a {
        padding: 10px 10px;
        font-size: 1.25rem;
        font-weight: 900;
        letter-spacing: -0.02em;
        opacity: 0;
        transform: translateY(14px);
        transition: opacity 280ms ease, transform 280ms ease;
    }

    .ebct-nav.is-open a {
        opacity: 1;
        transform: none;
    }

    .ebct-nav.is-open a:nth-child(2) { transition-delay: 50ms; }
    .ebct-nav.is-open a:nth-child(3) { transition-delay: 100ms; }
    .ebct-nav.is-open a:nth-child(4) { transition-delay: 150ms; }
    .ebct-nav.is-open a:nth-child(5) { transition-delay: 200ms; }
    .ebct-nav.is-open a:nth-child(6) { transition-delay: 250ms; }
    .ebct-nav.is-open a:nth-child(7) { transition-delay: 300ms; }

    .ebct-nav a.ebct-nav__mobile-only {
        display: inline-flex;
    }

    .ebct-nav__home-label {
        display: inline;
    }

    .ebct-nav__home svg {
        width: 22px;
        height: 22px;
    }

    .ebct-nav a::after {
        bottom: 6px;
        right: 30%;
        left: 30%;
        height: 3px;
    }

    .ebct-nav a:not([aria-current])::after {
        display: none;
    }

    .ebct-nav__extra {
        position: fixed;
        z-index: 35;
        right: 24px;
        bottom: calc(36px + env(safe-area-inset-bottom, 0px));
        left: 24px;
        display: flex;
        visibility: hidden;
        flex-direction: column;
        align-items: center;
        gap: 22px;
        opacity: 0;
        transform: translateY(14px);
        transition: opacity 280ms ease, transform 280ms ease, visibility 0s linear 280ms;
    }

    .ebct-menu-open .ebct-nav__extra {
        visibility: visible;
        opacity: 1;
        transform: none;
        transition: opacity 280ms ease 250ms, transform 280ms ease 250ms;
    }

    .ebct-nav__extra .ebct-button {
        width: min(100%, 320px);
    }

    .ebct-nav__extra .ebct-footer__socials {
        margin: 0;
    }

    /* Hero acima das seções seguintes e página travada enquanto o menu está aberto */
    html.ebct-menu-open {
        overflow: hidden;
    }

    .ebct-menu-open .ebct-hero {
        z-index: 100;
    }

    .ebct-menu-open .ebct-back-to-top {
        visibility: hidden;
    }

    .ebct-header .ebct-header__cta {
        position: relative;
        z-index: 40;
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
        min-height: 44px;
        padding: 0 4px;
        gap: 7px;
        border: 0;
        color: #fff;
        background: transparent;
        box-shadow: none;
        font-size: 0.86rem;
    }

    .ebct-header .ebct-header__cta:hover,
    .ebct-header .ebct-header__cta:focus-visible {
        color: #fff;
        background: transparent;
        box-shadow: none;
        transform: none;
    }

    .ebct-header .ebct-header__cta .dashicons {
        flex-basis: 18px;
        width: 18px;
        height: 18px;
        font-size: 18px;
    }

    /* Com o menu aberto, o "Matricule-se" já aparece na base do painel */
    .ebct-menu-open .ebct-header .ebct-header__cta {
        visibility: hidden;
    }

    .ebct-hero {
        min-height: 720px;
    }

    .ebct-hero::before {
        background-position: 64% center;
        opacity: 0.82;
    }

    .ebct-hero--professores::before {
        background-position: 70% top;
    }

    .ebct-hero__inner {
        min-height: 632px;
        padding-block: 56px 84px;
    }


    .ebct-hero__content {
        width: 100%;
        max-width: 650px;
    }

    .ebct-hero h1 {
        max-width: 620px;
        font-size: clamp(3rem, 10vw, 4.8rem);
    }

    .ebct-section {
        padding-block: 66px;
    }

    .ebct-section-head {
        grid-template-columns: 1fr 1.25fr;
        gap: 24px 36px;
    }

    .ebct-section-head .ebct-outline-link {
        grid-column: 1 / -1;
        justify-self: start;
    }

    .ebct-course-card {
        min-width: calc((100% - 18px) / 2);
    }

    .ebct-professor-card {
        min-width: calc((100% - 36px) / 3);
    }

    .ebct-testimonial-card {
        min-width: 100%;
    }

    .ebct-faq__grid {
        grid-template-columns: 1fr;
    }

    .ebct-page-hero {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .ebct-page-hero__verse {
        max-width: 420px;
        text-align: left;
    }

    .ebct-profiles__grid {
        grid-template-columns: 1fr;
    }

    .ebct-whatsapp__card {
        padding: 36px 32px 30px;
    }

    .ebct-whatsapp__main {
        grid-template-columns: 180px minmax(0, 1fr);
        gap: 32px;
    }

    .ebct-whatsapp__button {
        min-width: 0;
    }

    .ebct-whatsapp__benefits {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px 0;
    }

    .ebct-whatsapp__benefits li:nth-child(odd) {
        padding-left: 0;
        border-left: 0;
    }

    .ebct-faq__intro {
        max-width: 680px;
        margin-inline: auto;
    }

    .ebct-faq__intro p {
        max-width: 580px;
    }

    .ebct-footer__grid {
        grid-template-columns: 1fr 1fr;
        gap: 28px 0;
    }

    .ebct-footer__grid > * {
        min-height: 110px;
    }

    .ebct-footer__grid > blockquote {
        border-left: 1px solid var(--ebct-line);
    }

    .ebct-footer__meta {
        grid-column: 1 / -1;
        min-height: 80px;
        padding-top: 26px;
        border-top: 1px solid var(--ebct-line);
        border-left: 0 !important;
    }
}

@media (max-width: 620px) {
    html {
        font-size: 18px;
    }

    .ebct-site::before {
        background:
            linear-gradient(180deg, rgba(1, 12, 18, 0.52), rgba(1, 12, 18, 0.66)),
            url("../images/site-background-mobile.webp") center top / cover no-repeat;
        pointer-events: none;
    }

    .ebct-container {
        width: min(calc(100% - 28px), var(--ebct-container));
    }

    .ebct-hero {
        min-height: 0;
    }

    .ebct-hero__video {
        --ebct-video-shift: 0%;
        object-position: 28% center;
        -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 78%, transparent 100%);
        mask-image: linear-gradient(180deg, #000 0%, #000 78%, transparent 100%);
    }

    .ebct-hero__inner {
        min-height: 0;
        align-items: flex-start;
        padding-block: 24px 110px;
    }

    .ebct-hero::before {
        background-position: 68% center;
        opacity: 0.74;
    }

    .ebct-hero--professores::before {
        background-position: 72% top;
    }

    .ebct-eyebrow {
        font-size: 0.88rem;
        letter-spacing: 0.35em;
    }

    .ebct-hero h1 {
        font-size: clamp(3rem, 15.5vw, 4.4rem);
        line-height: 1;
    }

    .ebct-hero__lead {
        font-size: 1.12rem;
    }

    .ebct-hero__actions {
        align-items: stretch;
        flex-direction: column;
    }

    .ebct-hero__actions > * {
        width: 100%;
    }

    /* Tracejado longo: o CSS "dashed" não permite mudar o tamanho do traço, então a borda é um SVG.
       Traço de 2px com metade cortada pela borda do elemento = 1px visível (mínimo nítido); rx = metade da altura (70px). */
    .ebct-price-pill {
        min-width: 0;
        border-color: transparent;
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' rx='35' fill='none' stroke='%23f2c14e' stroke-opacity='0.35' stroke-width='2' stroke-dasharray='16 9'/%3E%3C/svg%3E") center / 100% 100% no-repeat;
        box-shadow: none;
    }

    .ebct-hero__lead {
        display: none;
    }

    .ebct-section-head {
        grid-template-columns: 1fr;
    }

    .ebct-section-head > p {
        max-width: none;
    }

    .ebct-section-head .ebct-outline-link {
        grid-column: auto;
    }

    /* Link "ver todos" vai para baixo do carrossel sem duplicar o HTML */
    .ebct-courses .ebct-container,
    .ebct-curriculum .ebct-container,
    .ebct-professors .ebct-container {
        display: flex;
        flex-direction: column;
        gap: 24px;
    }

    .ebct-courses .ebct-section-head,
    .ebct-curriculum .ebct-section-head,
    .ebct-professors .ebct-section-head {
        display: contents;
    }

    .ebct-courses .ebct-outline-link,
    .ebct-curriculum .ebct-outline-link,
    .ebct-professors .ebct-outline-link {
        order: 1;
        align-self: center;
    }

    .ebct-courses .ebct-section-head > p,
    .ebct-curriculum .ebct-section-head > p,
    .ebct-professors .ebct-section-head > p,
    .ebct-plans__intro p {
        display: none;
    }

    .ebct-testimonials {
        display: none;
    }

    .ebct-course-grid {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .ebct-course-grid .ebct-course-card--featured {
        grid-column: auto;
        flex-direction: column;
    }

    .ebct-course-grid .ebct-course-card--featured .ebct-course-card__media {
        flex: 0 0 auto;
        border-radius: 5px 5px 0 0;
    }

    .ebct-course-grid .ebct-course-card--featured .ebct-course-card__media::after {
        background: linear-gradient(180deg, transparent 24%, rgba(3, 36, 49, 0.18) 50%, #032431 100%);
    }

    .ebct-course-grid .ebct-course-card--featured .ebct-course-card__body {
        border-radius: 0 0 5px 5px;
        justify-content: flex-start;
        padding: 0 20px 20px;
    }

    .ebct-course-grid .ebct-course-card--featured .ebct-course-card__icon {
        align-self: center;
        margin-top: -28px;
    }

    .ebct-course-grid .ebct-course-card--featured h3 {
        font-size: 1.9rem;
    }

    .ebct-course-grid .ebct-course-card--featured .ebct-course-card__body {
        align-items: stretch;
        text-align: left;
    }

    .ebct-course-grid .ebct-course-card--featured h3::after {
        margin-inline: 0;
    }

    .ebct-course-grid .ebct-course-card--featured .ebct-course-card__link {
        align-self: flex-end;
        margin-top: auto;
    }

    .ebct-course-card--featured.is-active {
        border-color: #f2c14e;
        box-shadow: 0 0 0 1px rgba(242, 193, 78, 0.35), 0 0 14px rgba(242, 193, 78, 0.3), var(--ebct-shadow);
    }

    .ebct-teacher,
    .ebct-teacher:not(:has(.ebct-teacher__facts)) {
        grid-template-columns: 76px minmax(0, 1fr);
        gap: 4px 16px;
        padding: 14px;
    }

    .ebct-teacher__photo {
        align-self: start;
        width: 76px;
        height: 76px;
        min-height: 0;
        border: 2px solid rgba(241, 29, 63, 0.55);
        border-radius: 50%;
        overflow: hidden;
    }

    .ebct-teacher__info {
        align-self: center;
        padding-block: 0;
    }

    .ebct-teacher__facts {
        grid-column: 1 / -1;
        display: flex;
        flex-wrap: wrap;
        gap: 8px 18px;
        margin-top: 10px;
        padding: 12px 0 0;
        border-top: 1px solid var(--ebct-line);
        border-left: 0;
    }

    .ebct-teacher__facts li {
        font-size: 0.88rem;
    }

    .ebct-whatsapp__card {
        padding: 30px 20px 28px;
    }

    .ebct-whatsapp__main {
        grid-template-columns: 1fr;
        gap: 20px;
        text-align: center;
    }

    .ebct-whatsapp .ebct-whatsapp__badge {
        max-width: 120px;
    }

    .ebct-whatsapp__text {
        margin-inline: auto;
        font-size: 1.05rem;
    }

    .ebct-whatsapp__button {
        width: 100%;
        min-height: 52px;
    }

    .ebct-whatsapp__hours {
        justify-content: center;
        font-size: 0.92rem;
        text-align: left;
    }

    .ebct-whatsapp__benefits {
        gap: 24px 14px;
        margin-top: 30px;
    }

    .ebct-whatsapp__benefits li,
    .ebct-whatsapp__benefits li + li {
        align-items: center;
        padding: 0;
        border-left: 0;
        font-size: 0.92rem;
        text-align: center;
    }

    .ebct-faq__item summary {
        gap: 12px;
        padding: 11px 16px 11px 12px;
    }

    .ebct-faq__num {
        flex-basis: 34px;
        width: 34px;
        height: 34px;
    }

    .ebct-faq__item > div {
        padding: 2px 18px 20px;
    }

    .ebct-page-hero {
        padding-block: 20px 56px;
        text-align: center;
    }

    .ebct-hero .ebct-page-hero__title {
        font-size: 2.4rem;
        line-height: 1.1;
    }

    .ebct-page-hero__title::before {
        left: 50%;
        transform: translateX(-50%);
    }

    .ebct-page-hero__lead,
    .ebct-page-hero__text,
    .ebct-page-hero__verse {
        margin-inline: auto;
    }

    .ebct-page-hero__verse {
        display: none;
    }

    .ebct-objections__grid {
        grid-template-columns: 1fr;
    }

    .ebct-objection-card:nth-child(5) {
        grid-column: auto;
    }

    .ebct-carousel--mobile-only {
        padding-inline: 12px;
    }

    .ebct-carousel--mobile-only .ebct-carousel__track {
        display: flex;
        overflow-x: auto;
        margin: -14px -12px -18px;
        padding: 18px 14px 32px;
    }

    .ebct-carousel--mobile-only .ebct-carousel__arrow {
        display: grid;
    }

    .ebct-carousel--mobile-only .ebct-carousel__dots {
        display: flex;
    }

    .ebct-objection-card,
    .ebct-profile-card {
        min-width: 100%;
        scroll-snap-align: start;
    }

    .ebct-objection-card:hover {
        transform: none;
    }

    .ebct-modal {
        width: calc(100% - 20px);
        max-height: calc(100dvh - 20px);
    }

    .ebct-modal__panel {
        padding: 28px 20px 24px;
    }

    .ebct-modal__facts {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-flow: row;
    }

    /* Número ímpar de destaques: o último ocupa a linha inteira */
    .ebct-modal__facts li:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .ebct-footer__socials {
        gap: 18px;
    }

    .ebct-footer__socials a {
        width: 52px;
        height: 52px;
    }

    .ebct-footer__socials .dashicons {
        width: 26px;
        height: 26px;
        font-size: 26px;
    }

    .ebct-section h2,
    .ebct-plans__intro h2 {
        font-size: 2.4rem;
        text-align: center;
    }

    .ebct-section h2::before,
    .ebct-plans__intro h2::before {
        left: 50%;
        transform: translateX(-50%);
    }

    .ebct-hero__content {
        margin-inline: auto;
        text-align: center;
    }

    .ebct-hero h1 {
        margin-inline: auto;
    }

    /* Compensa o letter-spacing após a última letra, que deslocaria o texto para a esquerda */
    .ebct-eyebrow {
        padding-left: 0.35em;
    }

    /* Home: "Bem-vindo à" e o título alinhados à esquerda (o resto do hero segue centralizado) */
    .ebct-hero--video:not(.ebct-hero--bacharel) .ebct-eyebrow,
    .ebct-hero--video:not(.ebct-hero--bacharel) h1 {
        margin-inline: 0;
        padding-left: 0;
        text-align: left;
    }

    .ebct-hero--video:not(.ebct-hero--bacharel) h1 {
        font-size: clamp(2.6rem, 15vw, 6rem);
    }

    .ebct-hero--video:not(.ebct-hero--bacharel) .ebct-hero__inner {
        padding-top: 56px;
    }

    /* Hero com a altura visível da tela (como o do Bacharel): a seta para baixo fica na base da
       janela. O texto continua no topo; o espaço extra fica abaixo dos botões. */
    .ebct-hero.ebct-hero--video:not(.ebct-hero--bacharel) {
        display: flex;
        flex-direction: column;
        min-height: 100vh;
        min-height: 100svh;
    }

    .ebct-hero--video:not(.ebct-hero--bacharel) .ebct-hero__inner {
        flex: 1 0 auto;
    }

    /* Home e Bacharel: vídeo um pouco mais à esquerda que o padrão do mobile (28%), trazendo o
       palestrante para dentro da tela */
    .ebct-hero--video .ebct-hero__video {
        object-position: 40% center;
    }

    /* Em telas baixas o hero passa da altura da tela: a seta sobe até a base visível */
    .ebct-hero--video:not(.ebct-hero--bacharel) .ebct-hero__scroll {
        bottom: max(26px, calc(100% - 100vh + 26px));
        bottom: max(26px, calc(100% - 100svh + 26px));
    }

    .ebct-course-card {
        min-width: 100%;
    }

    /* Mesma proporção do desktop (≈274px × 200px) */
    .ebct-course-card__media {
        flex-basis: auto;
        aspect-ratio: 11 / 8;
    }

    .ebct-course-card h3 {
        font-size: 1.6rem;
    }

    .ebct-course-card p {
        font-size: 1.18rem;
    }

    /* Sem hover no toque: destaca o card que está na tela (classe definida pelo JS do carrossel) */
    .ebct-course-card.is-active {
        border-color: var(--ebct-red);
        box-shadow: 0 0 0 1px rgba(241, 29, 63, 0.35), 0 0 14px rgba(241, 29, 63, 0.3), var(--ebct-shadow);
    }

    /* No toque o :hover "gruda" após o tap; mantém o link discreto em branco */
    .ebct-course-card:hover .ebct-course-card__link {
        color: rgba(255, 255, 255, 0.82);
    }

    .ebct-professor-card {
        min-width: 100%;
    }

    .ebct-carousel {
        padding-inline: 12px;
    }

    .ebct-carousel__arrow {
        width: 34px;
        height: 34px;
        border-width: 1px;
        border-color: rgba(255, 255, 255, 0.28);
        color: rgba(255, 255, 255, 0.72);
        background: rgba(2, 21, 29, 0.55);
        font-size: 1.5rem;
    }

    .ebct-carousel__arrow:hover,
    .ebct-carousel__arrow:focus-visible {
        border-color: rgba(255, 255, 255, 0.6);
        color: #fff;
        background: rgba(2, 21, 29, 0.8);
    }

    /* Centro da seta alinhado à borda do card: padding (12px) - metade da seta (17px) */
    .ebct-carousel__arrow--prev {
        left: -5px;
    }

    .ebct-carousel__arrow--next {
        right: -5px;
    }

    /* Mobile: Anual em destaque no topo; Trimestral e Mensal em carrossel,
       um card por vez na largura toda, com as setas sobre as bordas (padrão dos outros carrosséis) */
    .ebct-plans__layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }

    .ebct-plans-track > .ebct-plan-card {
        min-width: 100%;
    }

    /* Trimestral e Mensal um pouco menores que o Anual: reforça o destaque dele
       e deixa o botão numa linha só */
    .ebct-plans-track .ebct-plan-card__name {
        font-size: 1.25rem;
    }

    .ebct-plans-track .ebct-plan-card__price strong {
        font-size: 1.85rem;
    }

    .ebct-plans-track .ebct-plan-card__payment,
    .ebct-plans-track .ebct-plan-card li {
        font-size: 0.92rem;
    }

    .ebct-plans-track .ebct-plan-card .ebct-button {
        gap: 8px;
        padding-inline: 10px;
        font-size: 0.72rem;
    }

    /* Card um pouco mais estreito que o Anual (16px de cada lado), com as setas sobre as bordas. */
    .ebct-plans__carousel {
        padding-inline: 16px;
    }

    .ebct-plans-track.ebct-carousel__track {
        gap: 20px;
        margin-inline: 0;
        padding-inline: 0;
        scroll-padding-inline: 0;
    }

    .ebct-plans__carousel .ebct-carousel__arrow {
        width: 34px;
        height: 34px;
        font-size: 1.5rem;
    }

    /* Centro da seta sobre a borda do card: padding (16px) - metade da seta (17px) */
    .ebct-plans__carousel .ebct-carousel__arrow--prev {
        left: -1px;
    }

    .ebct-plans__carousel .ebct-carousel__arrow--next {
        right: -1px;
    }

    /* Se o texto do botão não couber numa linha, quebra em vez de vazar */
    .ebct-plans-track .ebct-plan-card .ebct-button {
        white-space: normal;
        line-height: 1.25;
    }

    .ebct-plan-card {
        min-height: 420px;
        padding: 24px 20px 20px;
    }

    .ebct-plan-card--featured {
        transform: none;
    }

    .ebct-testimonial-card {
        min-width: 100%;
        grid-template-columns: 64px 1fr;
        gap: 15px;
        padding: 20px 18px;
    }

    .ebct-testimonial-card__avatar {
        width: 62px;
        height: 62px;
        font-size: 1.15rem;
    }

    .ebct-footer__grid {
        grid-template-columns: 1fr;
    }

    .ebct-footer__grid > * {
        min-height: auto;
        padding: 26px 0;
        border-top: 1px solid var(--ebct-line);
        border-left: 0 !important;
    }

    .ebct-footer__brand {
        align-items: center;
        padding-top: 0;
        border-top: 0;
    }

    .ebct-footer__meta {
        grid-column: auto;
        padding-bottom: 0;
    }
}

/* Destaques (Bacharel e Plano Anual): ao entrarem na tela (classe is-revealed, via JS), um brilho
   dourado atravessa o card uma vez e o selo dá um pulo (desktop e mobile, sem "reduzir movimento").
   O brilho é um ::after do tamanho do card que anima só o fundo, então não é cortado pelo carrossel
   nem interfere no transform do hover. As animações não seguram o estado final (sem fill-mode). */
@media (prefers-reduced-motion: no-preference) {
    .ebct-course-card--featured::after,
    .ebct-plan-card--featured::after {
        content: "";
        position: absolute;
        z-index: 4;
        inset: 0;
        border-radius: inherit;
        background: linear-gradient(115deg, transparent 40%, rgba(255, 228, 150, 0.1) 46%, rgba(255, 240, 200, 0.3) 50%, rgba(255, 228, 150, 0.1) 54%, transparent 60%) 100% 0 / 250% 100% no-repeat;
        pointer-events: none;
    }

    .ebct-plan-card--featured .ebct-plan-card__badge {
        z-index: 5;
    }

    .ebct-course-card--featured.is-revealed::after,
    .ebct-plan-card--featured.is-revealed::after {
        animation: ebct-shine 1.2s ease-in-out 0.25s;
    }

    .ebct-course-card--featured.is-revealed .ebct-course-card__badge,
    .ebct-plan-card--featured.is-revealed .ebct-plan-card__badge {
        animation: ebct-badge-pop 0.6s ease-out 1.1s;
    }
}

@keyframes ebct-shine {
    from {
        background-position: 100% 0;
    }

    to {
        background-position: 0 0;
    }
}

@keyframes ebct-badge-pop {
    40% {
        transform: translateY(-3px) scale(1.06);
    }

    70% {
        transform: translateY(0) scale(0.98);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ebct-site *,
    .ebct-site *::before,
    .ebct-site *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }

    .ebct-hero__scroll,
    .ebct-modal[open] {
        animation: none;
    }

    .ebct-nav a,
    .ebct-nav__extra {
        transform: none !important;
        transition-delay: 0s !important;
    }
}

/* Carrossel de professores (mobile): mesmo estilo de perfil do fundador em "Quem somos". Foto num
   quadro quadrado com painel azul começando na testa (a cabeça "sai" do quadro, com brilho atrás),
   nome em duas linhas sobreposto à borda direita, área em itálico, traço vermelho e bio abaixo.
   O enquadramento de cada foto vem de --ebct-q-* (definido no HTML a partir de professores-data.php).
   Setas embaixo, nas pontas da linha das bolinhas. */
@media (max-width: 620px) {
    .ebct-professor-track .ebct-professor-card {
        display: grid;
        grid-template-columns: 62% minmax(0, 1fr);
        grid-template-areas:
            "photo id"
            "bio bio";
        align-content: start;
        aspect-ratio: auto;
        overflow: visible;
        border: 0;
        border-radius: 0;
        background: none;
    }

    .ebct-professor-track .ebct-professor-card__portrait {
        position: relative;
        inset: auto;
        grid-area: photo;
        aspect-ratio: 5 / 6;
        overflow: hidden;
        background: radial-gradient(circle at 45% 18.3%, rgba(120, 190, 216, 0.22), transparent 34%);
    }

    .ebct-professor-track .ebct-professor-card__portrait::after {
        inset: 22.5% 0 0;
        background: #0b3d50;
    }

    .ebct-professor-track .ebct-professor-card__portrait img,
    .ebct-professor-track .ebct-professor-card:hover .ebct-professor-card__portrait img {
        position: relative;
        z-index: 1;
        bottom: auto;
        left: auto;
        display: block;
        width: var(--ebct-q-z);
        max-width: none;
        height: auto;
        margin: var(--ebct-q-y) 0 0 var(--ebct-q-x);
        transform: none;
    }

    .ebct-professor-track .ebct-professor-card__caption {
        position: relative;
        inset: auto;
        grid-area: id;
        align-self: end;
        margin-left: -56px;
        padding: 0 0 4px;
        text-align: left;
        text-shadow: 0 2px 10px rgba(0, 0, 0, 0.55);
    }

    .ebct-professor-track .ebct-professor-card h3 {
        font-size: 1.55rem;
        font-weight: 900;
        letter-spacing: -0.02em;
        line-height: 1.05;
    }

    .ebct-professor-track .ebct-professor-card h3 span {
        display: block;
    }

    .ebct-professor-track .ebct-professor-card__caption p {
        margin: 8px 0 0;
        color: #fff;
        font-size: 0.88rem;
        font-style: italic;
        font-weight: 600;
        line-height: 1.35;
    }

    .ebct-professor-track .ebct-professor-card__caption p::after {
        content: "";
        display: block;
        width: 36px;
        height: 3px;
        margin-top: 10px;
        background: var(--ebct-red);
    }

    .ebct-professor-track .ebct-professor-card .ebct-professor-card__bio {
        display: block;
        grid-area: bio;
        margin: 18px 0 0;
        color: #e8eef0;
        font-size: 1rem;
        font-weight: 400;
        line-height: 1.6;
    }

    /* Setas embaixo: cards na largura toda do container */
    .ebct-professors .ebct-carousel {
        padding-inline: 0;
    }

    .ebct-professors .ebct-carousel .ebct-carousel__track {
        margin-inline: -14px;
    }

    .ebct-professors .ebct-carousel__dots {
        min-height: 34px;
        margin-top: 14px;
        gap: 6px;
    }

    .ebct-professors .ebct-carousel .ebct-carousel__arrow {
        top: auto;
        bottom: 0;
        transform: none;
    }

    .ebct-professors .ebct-carousel .ebct-carousel__arrow--prev {
        left: 0;
    }

    .ebct-professors .ebct-carousel .ebct-carousel__arrow--next {
        right: 0;
    }
}

/* Bacharel (mobile): carrossel da grade de semestres com as setas embaixo, nas pontas da linha das
   bolinhas, e cards na largura toda do container (mesmo padrão dos professores). */
@media (max-width: 620px) {
    .ebct-curriculum .ebct-carousel {
        padding-inline: 0;
    }

    .ebct-curriculum .ebct-carousel .ebct-carousel__track {
        margin-inline: -14px;
    }

    .ebct-curriculum .ebct-carousel__dots {
        min-height: 34px;
        margin-top: 14px;
        gap: 6px;
    }

    .ebct-curriculum .ebct-carousel .ebct-carousel__arrow {
        top: auto;
        bottom: 0;
        transform: none;
    }

    .ebct-curriculum .ebct-carousel .ebct-carousel__arrow--prev {
        left: 0;
    }

    .ebct-curriculum .ebct-carousel .ebct-carousel__arrow--next {
        right: 0;
    }
}
