/* ==========================================================================
   UNISAGRADO Pós — folha do site
   Paleta medida no Figma (docs/03-alta-fidelidade/paleta-aplicada.md).
   Títulos em Lato, texto em Poppins — como no Figma.
   Estrutura/espaçamento: Elementor. Aqui: cor, tipografia fina e detalhes.
   ========================================================================== */

:root {
	--u-navy: #0C1632;
	--u-blue: #1C316B;
	--u-wine-dark: #3F0D11;
	--u-wine: #7A1824;
	--u-red: #E72C33;
	--u-red-act: #A8202A;
	--u-title: #1E1E1E;
	--u-text: #3D3A3B;
	--u-muted: #6B6B6B;
	--u-grey: #F3F3F3;
	--u-grey2: #EBEBEB;
	--u-border: #EBEBEB;
	--u-field: #EBEBEB;
	--u-radius: 12px;
	--u-lato: "Lato", system-ui, sans-serif;
	--u-poppins: "Poppins", system-ui, sans-serif;
}

body { font-family: var(--u-poppins); color: var(--u-text); -webkit-font-smoothing: antialiased; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Fundos de seção ---------- */
.u-bg-white { background: #fff; }
.u-bg-grey { background: var(--u-grey); }
.u-bg-grey2 { background: var(--u-grey2); }
.u-bg-wine { background: var(--u-wine) url(../img/fundo-sobre.jpg) center / cover no-repeat; }

/* ---------- Tipografia ---------- */
.u-eyebrow .elementor-heading-title { font: 700 14px/1.2 var(--u-poppins); text-transform: uppercase; letter-spacing: .02em; color: var(--u-red-act); }
.u-eyebrow--light .elementor-heading-title { color: #fff; }
.u-bg-wine .u-eyebrow .elementor-heading-title, .u-banner .u-eyebrow .elementor-heading-title { color: #fff; }
.u-banner--navy .u-eyebrow .elementor-heading-title { color: #ff5a60; }

.u-h1 .elementor-heading-title { font: 700 36px/1.2 var(--u-lato); color: var(--u-title); }
.u-h1--post .elementor-heading-title { font-size: 32px; max-width: 640px; }
.u-h2 .elementor-heading-title { font: 700 36px/1.2 var(--u-lato); color: var(--u-title); }
.u-h2--xl .elementor-heading-title { font-size: 44px; font-family: var(--u-poppins); font-weight: 600; }
.u-h3 .elementor-heading-title { font: 700 28px/1.25 var(--u-lato); color: var(--u-title); }
.u-sub, h2.u-sub { font: 700 30px/1.2 var(--u-lato); color: var(--u-title); margin: 8px 0 12px; }
.u-sub .elementor-heading-title { font: 700 30px/1.2 var(--u-lato); color: var(--u-title); }
.u-light .elementor-heading-title, .u-light, .u-light p, .u-light a { color: #fff !important; }
.u-center, .u-center .elementor-heading-title, .u-center p { text-align: center; }

.u-text, .u-text p { font: 400 15px/1.6 var(--u-poppins); color: var(--u-text); }
.u-text p { margin: 0 0 12px; }
.u-text p:last-child { margin-bottom: 0; }
.u-small, .u-small p { font-size: 13px; line-height: 1.5; }
.u-tiny, .u-tiny p { font-size: 11px; line-height: 1.5; color: var(--u-muted); }
.u-tiny a { color: #1a73e8; }
.u-muted, .u-muted p { color: var(--u-muted); }

/* ---------- Botões ---------- */
.u-btn .elementor-button {
	font: 600 15px/1 var(--u-poppins);
	padding: 14px 28px;
	border-radius: 6px;
	border: 1px solid transparent;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s;
}
.u-btn .elementor-button:hover { transform: translateY(-1px); }
.u-btn--navy .elementor-button { background: var(--u-blue); color: #fff; }
.u-btn--navy .elementor-button:hover { background: var(--u-navy); color: #fff; }
.u-btn--red .elementor-button { background: var(--u-red); color: #fff; }
.u-btn--red .elementor-button:hover { background: var(--u-red-act); color: #fff; }
.u-btn--grey .elementor-button { background: #DCDCDC; color: var(--u-title); }
.u-btn--grey .elementor-button:hover { background: #cfcfcf; color: var(--u-title); }
.u-btn--outline .elementor-button { background: transparent; color: var(--u-blue); border-color: var(--u-blue); border-radius: 99px; }
.u-btn--outline .elementor-button:hover { background: var(--u-blue); color: #fff; }
.u-btn--link .elementor-button { background: transparent; color: #fff; padding-left: 8px; padding-right: 8px; }
.u-btn--link .elementor-button:hover { text-decoration: underline; color: #fff; }
.u-btn--sm .elementor-button { padding: 9px 16px; font-size: 14px; white-space: nowrap; }
.u-btn--block, .u-btn--block .elementor-button { width: 100%; }
.u-btn .elementor-button-icon svg, .u-btn .elementor-button-icon i { width: 12px; font-size: 12px; fill: currentColor; }

/* ---------- Header ---------- */
.u-header { background: var(--u-wine-dark); position: relative; z-index: 50; }
.u-logo img { width: 236px; height: auto; }
.u-nav .elementor-nav-menu--main .elementor-item { font: 400 16px/1 var(--u-poppins); color: #fff !important; padding: 10px 14px; }
.u-nav .elementor-nav-menu--main .elementor-item:hover,
.u-nav .elementor-nav-menu--main .elementor-item.elementor-item-active { color: #ffb3b6 !important; }
.u-nav .elementor-menu-toggle { color: #fff; background: transparent; font-size: 26px; }
.u-nav .elementor-menu-toggle svg { fill: #fff; }
.u-nav .elementor-nav-menu--dropdown { background: var(--u-wine-dark); }
.u-nav .elementor-nav-menu--dropdown a { color: #fff !important; font-family: var(--u-poppins); }
.u-nav .elementor-nav-menu--dropdown a:hover { background: var(--u-wine) !important; }

/* ---------- Hero da home ----------
   O banner do Figma é a imagem de fundo da seção (troca-se como um slide).
   H1 e subtítulo existem em texto para leitor de tela e busca. */
.u-hero { position: relative; overflow: visible; min-height: calc(100vw / 3.2) !important; background-size: cover !important; background-position: center center !important; }
.u-selo { position: absolute !important; left: calc(50% - 262px); bottom: -14px; width: 184px !important; z-index: 3; }
.u-selo img { display: block; }
.u-selo { filter: drop-shadow(0 8px 18px rgba(0,0,0,.18)); }

/* Intro + card do formulário subindo sobre o hero */
.u-intro { position: relative; z-index: 2; }
.u-form-card { background: #fff; border-radius: var(--u-radius); box-shadow: 0 10px 40px rgba(12,22,50,.08); }
.u-form-card--up { margin-top: -96px; }
.u-sticky { position: sticky; top: 24px; }

/* ---------- Formulários ---------- */
.u-form .elementor-field-group > label, .u-form .elementor-field-label { font: 600 13px/1.3 var(--u-poppins); color: var(--u-title); margin-bottom: 6px; }
.u-form .elementor-field-textual, .u-form select.elementor-field {
	background: var(--u-field) !important;
	border: 1px solid transparent !important;
	border-radius: 6px !important;
	font: 400 13px/1.4 var(--u-poppins) !important;
	color: var(--u-title) !important;
	min-height: 50px;
	padding: 13px 16px !important;
}
.u-form .elementor-field-textual:focus, .u-form select.elementor-field:focus { border-color: var(--u-blue) !important; background: #fff !important; outline: none; box-shadow: 0 0 0 3px rgba(28,49,107,.15); }
.u-form ::placeholder { color: #8c8c8c; }
.u-form .elementor-button { background: var(--u-blue) !important; color: #fff !important; font: 600 15px/1 var(--u-poppins) !important; border-radius: 8px !important; min-height: 62px; margin-top: 0; font-size: 17px !important; letter-spacing: .01em; box-shadow: 0 6px 14px rgba(28,49,107,.22); }
.u-form .elementor-form-fields-wrapper { row-gap: 0 !important; margin-bottom: 0 !important; }
.u-form + .elementor-widget, .u-form ~ .u-tiny { margin-top: 8px !important; }
.u-form .elementor-field-group { margin-bottom: 12px !important; }
.u-form .elementor-field-group > label, .u-form .elementor-field-label { margin-bottom: 4px !important; padding-bottom: 0 !important; }
.u-form .elementor-field-type-submit { margin-top: 6px !important; margin-bottom: 0 !important; }
.u-form-card { padding: 44px 40px !important; }
.u-form .elementor-button:hover { background: var(--u-navy) !important; }
.u-form .elementor-select-wrapper::before { color: var(--u-title); font-size: 12px; }
.u-form-sub { font-size: 13px; color: var(--u-muted); margin: 0; }
.u-newsletter > .elementor-widget-form, .u-newsletter .u-form--inline { width: 100% !important; max-width: 820px !important; align-self: center; }
.u-form--inline .elementor-form-fields-wrapper { align-items: flex-end; justify-content: center; flex-wrap: nowrap; gap: 12px; margin: 0 auto; }
.u-form--inline .elementor-field-group { width: auto !important; flex: 1 1 0 !important; margin-bottom: 0 !important; padding: 0 !important; }
.u-form--inline .elementor-field-type-submit { flex: 0 0 180px !important; }
.u-form--inline .elementor-field-textual { font-size: 15px !important; min-height: 54px; }
.u-form--inline .elementor-button { min-height: 54px; box-shadow: none; }
.u-form--inline .elementor-field-textual { background: #fff !important; }
.u-form--inline .elementor-button { background: var(--u-red) !important; margin-top: 0; min-height: 54px; }
.u-form--inline .elementor-button:hover { background: var(--u-red-act) !important; }
.u-form .elementor-message { font-size: 14px; }

/* ---------- Cards (loop) ---------- */
.e-loop-item { height: 100%; }
.u-card { background: #fff; border: 1px solid var(--u-border); border-radius: var(--u-radius); overflow: hidden; height: 100%; transition: box-shadow .2s, transform .2s; }
.u-card:hover { box-shadow: 0 12px 32px rgba(12,22,50,.10); transform: translateY(-2px); }
.u-card__img img, .u-card__img.elementor-widget-image img { width: 100% !important; max-width: none; height: 185px; object-fit: cover; display: block; border-radius: 0; }
.u-card__img .elementor-widget-container, .u-card__img a { display: block; width: 100%; }
.u-card__img--post img { height: 228px; object-position: center 20%; }
.swiper-slide > .e-loop-item, .e-loop-item > .u-card { height: 100%; }
.u-card { display: flex !important; flex-direction: column !important; }
.u-card__body { flex: 1 1 auto !important; display: flex !important; flex-direction: column !important; }
.u-card__body > .elementor-widget:last-child { margin-top: auto !important; }
.u-card__t .elementor-heading-title { font: 700 18px/1.3 var(--u-lato); color: var(--u-title); }
.u-card__t .elementor-heading-title a { color: inherit; }
.u-card__txt, .u-card__txt p { font-size: 12.5px; line-height: 1.55; }
.u-card__txt { margin-bottom: 8px; }

.u-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.u-tags li { font: 600 11px/1 var(--u-poppins); color: var(--u-title); background: var(--u-grey2); border-radius: 99px; padding: 6px 10px; }
.u-meta { display: flex; flex-wrap: wrap; gap: 16px; font: 600 12px/1 var(--u-poppins); color: var(--u-blue); }
.u-meta span { display: inline-flex; align-items: center; gap: 6px; }
.u-meta .u-ico { color: var(--u-red); }
.u-cat { font: 600 14px/1.2 var(--u-poppins); color: var(--u-blue); text-decoration: none; }
.u-pagehead .u-cat, .u-pagehead__cat .u-cat { color: #ff5a60; text-transform: uppercase; font-size: 13px; }

/* Carrossel */
.u-carousel .swiper-pagination-bullet { width: 8px; height: 8px; background: #cfcfcf; opacity: 1; transition: width .2s; }
.u-carousel .swiper-pagination-bullet-active { width: 28px; border-radius: 99px; background: var(--u-red); }
.u-carousel .elementor-swiper-button { width: 36px; height: 36px; border: 2px solid var(--u-blue); border-radius: 50%; color: var(--u-blue); font-size: 14px; display: flex; align-items: center; justify-content: center; }
.u-carousel .elementor-swiper-button svg { fill: var(--u-blue); width: 12px; }

/* Paginação */
.elementor-pagination { font: 600 14px/1 var(--u-poppins); margin-top: 24px; }
.elementor-pagination .page-numbers { display: inline-flex; min-width: 36px; height: 36px; align-items: center; justify-content: center; border-radius: 6px; color: var(--u-blue); }
.elementor-pagination .page-numbers.current { background: var(--u-blue); color: #fff; }

/* ---------- Banners (diferenciais / fale conosco) ----------
   O fundo do card fica num ::before só na faixa de baixo; a foto recortada
   sobe além dele, como no Figma. */
.u-banner { position: relative; }
.u-banner::before { content: "" !important; position: absolute; left: 0; right: 0; top: auto !important; bottom: 0 !important; width: auto !important; border-radius: var(--u-radius); background: center / cover no-repeat; opacity: 1 !important; mix-blend-mode: normal !important; z-index: 0; }
.u-banner--navy::before { height: 294px; background-color: var(--u-blue); background-image: url(../img/fundo-banner-azul.jpg); }
.u-banner--red::before { height: 355px; background-color: #c21d25; background-image: url(../img/fundo-banner-vermelho.jpg); }
.u-banner > .e-con { position: relative; z-index: 1; }
.u-banner--navy .u-banner__txt { min-height: 294px; }
.u-banner--red .u-banner__txt { min-height: 355px; }
.u-banner__media { align-self: flex-end; }
.u-banner__img img { display: block; width: 100%; height: auto; }
.u-banner--navy .u-banner__img { width: 591px !important; max-width: 100%; }
.u-selo-mec { position: absolute !important; right: -15px; top: 62px; width: 181px !important; }
.u-selo-mec img { width: 181px; height: auto; }
.u-newsletter { background: #c21d25 url(../img/fundo-banner-vermelho.jpg) center / cover no-repeat; border-radius: var(--u-radius); }

.u-difs { display: flex !important; align-items: stretch !important; }
.u-difs > .u-dif { height: auto !important; }
.u-difs > .elementor-widget { flex: 1 1 0; align-self: stretch; }
.u-difs > .elementor-widget > .elementor-widget-container { height: 100%; }
.u-dif { background: #fff; border-radius: var(--u-radius); padding: 28px; }
.u-dif .elementor-icon { color: var(--u-red); fill: var(--u-red); font-size: 22px; }
.u-dif .elementor-icon svg { width: 22px; height: 22px; }
.u-dif .elementor-icon-box-title, .u-dif .elementor-icon-box-title a { font: 700 18px/1.3 var(--u-lato); color: var(--u-title); margin: 16px 0 12px; }
.u-dif .elementor-icon-box-description { font: 400 12.5px/1.55 var(--u-poppins); color: var(--u-text); }

/* ---------- Sobre ---------- */
.u-rounded img, img.u-rounded, .u-rounded iframe { border-radius: var(--u-radius); display: block; width: 100%; }
.u-rounded.elementor-widget-image img { object-fit: cover; }
.u-sobre__pessoa img { width: 100%; height: auto; }

/* ---------- Cabeçalho de página interna ---------- */
.u-pagehead { background-color: var(--u-wine) !important; background-size: auto 100% !important; background-position: right top !important; }
.u-pagehead__lead, .u-pagehead__lead p { max-width: 540px !important; }
.u-bread ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; font: 400 13px/1.3 var(--u-poppins); color: #fff; }
.u-bread li + li::before { content: ">"; margin-right: 8px; opacity: .9; }
.u-bread a { color: #fff; text-decoration: none; }
.u-bread a:hover { text-decoration: underline; }
.u-info { display: flex; flex-wrap: wrap; gap: 20px; margin: 8px 0 0; padding: 0; list-style: none; }
.u-info li { display: inline-flex; align-items: center; gap: 8px; font: 600 14px/1 var(--u-poppins); color: #fff; }
.u-info__ico { width: 28px; height: 28px; border-radius: 50%; background: var(--u-red); display: inline-flex; align-items: center; justify-content: center; color: #fff; }
.u-info__ico .u-ico { width: 14px; height: 14px; }
/* Regime de aulas: texto livre da equipe, às vezes um parágrafo — linha própria, peso normal. */
.u-info li.u-info__regime { flex-basis: 100%; max-width: 720px; align-items: flex-start; font-weight: 400; line-height: 1.5; }
.u-info__regime .u-info__ico { flex-shrink: 0; margin-top: -4px; }

/* ---------- Curso ---------- */
.u-curso__img img { width: 100%; max-height: 270px; object-fit: cover; }
.u-conteudo p { margin-bottom: 8px; }
.u-coord { display: flex; align-items: center; gap: 12px; background: #fafafa; border: 1px solid var(--u-border); border-radius: var(--u-radius); padding: 16px 20px; }
.u-coord img, .u-coord__ph { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex: none; }
.u-coord__ph { background: var(--u-grey2); display: inline-flex; align-items: center; justify-content: center; }
.u-coord__txt { display: flex; flex-direction: column; font-size: 13px; color: var(--u-muted); }
.u-coord__txt strong { font: 700 15px/1.3 var(--u-lato); color: var(--u-title); }
.u-coord { flex-wrap: wrap; }
.u-coord__bio { flex: 1 1 100%; margin: 4px 0 0; font: 400 13.5px/1.6 var(--u-poppins); color: var(--u-text); }
.u-coord__cv { margin-left: auto; font: 500 14px/1 var(--u-poppins); color: #1a73e8; display: inline-flex; gap: 4px; align-items: center; text-decoration: none; }

.u-grade { display: flex; flex-direction: column; gap: 12px; }
.u-grade__item { border: 1px solid var(--u-border); border-radius: var(--u-radius); background: #fff; }
.u-grade__item summary { display: flex; align-items: center; gap: 14px; padding: 14px 16px; cursor: pointer; list-style: none; font: 700 15px/1.3 var(--u-lato); color: var(--u-title); }
.u-grade__item summary::-webkit-details-marker { display: none; }
.u-grade__item summary .u-ico { margin-left: auto; transition: transform .2s; flex: none; }
.u-grade__item[open] summary .u-ico { transform: rotate(180deg); }
.u-grade__n { width: 32px; height: 32px; border-radius: 50%; background: #eef1f8; color: var(--u-blue); display: inline-flex; align-items: center; justify-content: center; font: 600 14px/1 var(--u-poppins); flex: none; }
.u-grade__item ul { margin: 0; padding: 0 20px 16px 36px; font: 400 12.5px/1.7 var(--u-poppins); color: var(--u-text); }
.u-grade__item.is-hidden { display: none; }
.u-grade__mais { margin: 12px auto 0; display: flex; align-items: center; gap: 4px; background: none; border: 0; color: #1a73e8; font: 600 14px/1 var(--u-poppins); cursor: pointer; }
.u-grade__img { width: 100%; border-radius: var(--u-radius); object-fit: cover; aspect-ratio: 550 / 551; }

/* ---------- Depoimentos ---------- */
.u-dep { border: 1px solid var(--u-border); border-radius: var(--u-radius); overflow: hidden; background: #fff; box-shadow: 0 4px 16px rgba(0,0,0,.04); }
.u-dep__top { display: flex; align-items: center; justify-content: space-between; }
.u-stars { color: var(--u-blue); font-size: 22px; letter-spacing: 2px; }
.u-dep__badge { font: 600 13px/1 var(--u-poppins); color: var(--u-title); }
.u-dep__badge::before { content: "👍"; display: inline-block; margin-right: 6px; filter: grayscale(1) brightness(.4); }
.u-dep__txt p { font-size: 14px; line-height: 1.65; color: var(--u-title); }
.u-dep__autor { background: var(--u-wine); }
.u-dep__foto img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(255,255,255,.3); }
.u-dep__nome .elementor-heading-title { font: 600 15px/1.2 var(--u-poppins); color: #fff; }

/* ---------- Blog ---------- */
.u-filters { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-bottom: 24px; border-bottom: 1px solid var(--u-border); }
.u-filters__sel { display: flex; gap: 12px; flex-wrap: wrap; }
.u-filters__lbl { margin: 0; font-size: 14px; color: var(--u-text); }
.u-filter, .u-search { position: relative; display: inline-flex; align-items: center; border: 1px solid var(--u-border); border-radius: 99px; background: #fff; }
.u-filter .u-ico, .u-search .u-ico { position: absolute; left: 12px; color: var(--u-blue); pointer-events: none; }
.u-filter select { appearance: none; border: 0; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23333' fill='none' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 14px center; padding: 10px 34px 10px 36px; font: 400 14px/1.2 var(--u-poppins); color: var(--u-text); cursor: pointer; border-radius: 99px; }
.u-filters--blog .u-filter { min-width: 180px; }
.u-filters--blog .u-filter select { width: 100%; }
.u-search input { border: 0 !important; background: transparent !important; padding: 10px 16px 10px 36px !important; font: 400 14px/1.2 var(--u-poppins) !important; width: 230px; border-radius: 99px !important; }
.u-search input:focus, .u-filter select:focus { outline: 2px solid rgba(28,49,107,.25); }

.u-post__img img { width: 100%; max-height: 490px; object-fit: cover; }
.u-artigo h2 { font: 400 28px/1.3 var(--u-lato); color: var(--u-title); margin: 32px 0 12px; scroll-margin-top: 24px; }
.u-artigo p { font-size: 14.5px; line-height: 1.7; }
.u-side { border: 1px solid var(--u-border); border-radius: var(--u-radius); background: #fff; }
.u-side__t { margin: 0; padding: 16px 20px; border-bottom: 1px solid var(--u-border); font: 700 16px/1.2 var(--u-lato); color: var(--u-title); }
.u-toc { margin: 0; padding: 16px 20px 16px 36px; display: flex; flex-direction: column; gap: 10px; font-size: 12.5px; line-height: 1.45; }
.u-toc a { color: var(--u-text); text-decoration: none; }
.u-toc a:hover { color: var(--u-blue); text-decoration: underline; }
.u-share { display: flex; gap: 14px; padding: 16px 20px; align-items: center; }
.u-share a, .u-share button { color: var(--u-blue); background: none; border: 0; padding: 0; cursor: pointer; display: inline-flex; }
.u-share .u-ico { width: 20px; height: 20px; }
.u-share__copy.is-ok { color: #1a8a3a; }


.u-newsletter .u-ico { width: 12px; height: 12px; vertical-align: -1px; }

/* ---------- Onde estamos / contato ---------- */
.u-box { border: 1px solid var(--u-border); border-radius: var(--u-radius); background: #fff; }
.u-infos .elementor-icon-list-item { align-items: flex-start !important; padding: 6px 0 !important; }
.u-infos .elementor-icon-list-icon i, .u-infos .elementor-icon-list-icon svg { color: var(--u-title); fill: var(--u-title); font-size: 16px; width: 16px; margin-top: 2px; }
.u-infos .elementor-icon-list-text { font: 400 13px/1.5 var(--u-poppins); color: var(--u-text); padding-left: 10px; }
.u-mapa iframe { border-radius: var(--u-radius); }

/* ---------- Footer ---------- */
.u-footer { background: var(--u-navy); }
.u-logo-foot img { width: 176px; height: auto; }
.u-logo-foot, .u-logo-foot .elementor-widget-container, .u-logo .elementor-widget-container { text-align: left !important; }
.u-foot__t .elementor-heading-title { font: 700 17px/1.2 var(--u-lato); color: #fff; }
.u-foot__links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.u-foot__links a { font: 400 14px/1.3 var(--u-poppins); color: #fff; text-decoration: none; }
.u-foot__links a:hover { color: #ffb3b6; }
.u-foot__bottom { border-top: 1px solid rgba(231,44,51,.5); padding-top: 28px !important; }
.u-emec img { width: 176px; border-radius: var(--u-radius); }
.u-social .elementor-social-icon { background: transparent !important; }
.u-social .elementor-social-icon i { color: #fff; }
.u-social .elementor-social-icon svg { fill: #fff; }

.u-credito__txt { display: flex; align-items: center; gap: 10px; margin: 0; font: 400 13px/1 var(--u-poppins); color: #fff; }
.u-credito__txt img { display: block; width: 125px; height: 24px; }

/* ---------- Figma v2 ---------- */
.u-card { position: relative; }
.u-card__status { position: absolute !important; top: 12px; left: 14px; z-index: 3; width: auto !important; margin: 0 !important; }
.u-status { display: inline-block; background: #fff; color: var(--u-blue); font: 600 11px/1 var(--u-poppins); padding: 6px 10px; border-radius: 99px; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.u-status--inscricoes-encerradas { color: var(--u-red); }
.u-h2--leve .elementor-heading-title { font-weight: 400; }
.u-h2--leve .elementor-heading-title strong { font-weight: 700; }
.u-lead-curta { max-width: 580px; }
.u-chamada { margin: 0; font: 400 15px/1.6 var(--u-poppins); color: #fff; max-width: 560px; }
.u-bloco { margin-top: 20px; }
.u-seta { list-style: none; margin: 0; padding: 0; }
.u-seta li::before { content: "→ "; }
.u-seta li, .u-bloco p { font: 400 15px/1.6 var(--u-poppins); color: var(--u-text); margin: 0; }
.u-preco, .u-projeto { padding: 28px 28px 24px; background: #fafafa; }
.u-preco__top { display: flex; align-items: center; justify-content: space-between; }
.u-preco .u-sub, .u-projeto .u-sub { margin: 0 0 12px; }
.u-preco__olho { border: 0; background: #e9e9e9; border-radius: 6px; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; color: var(--u-blue); cursor: pointer; }
.u-preco__olho .u-preco__risco { display: none; }
.u-preco.is-oculto .u-preco__olho .u-preco__risco { display: inline; }
.u-preco__de { margin: 0; font: 400 16px/1.3 var(--u-poppins); color: var(--u-muted); }
.u-preco__por { margin: 4px 0 8px; font: 800 44px/1.1 var(--u-lato); color: var(--u-blue); }
.u-preco__nota { margin: 0; font-size: 12px; color: var(--u-muted); }
.u-preco.is-oculto .u-preco__de s, .u-preco.is-oculto .u-preco__por { filter: blur(9px); user-select: none; }
.u-projeto p { font: 400 15px/1.5 var(--u-poppins); margin: 0 0 16px; }
.u-projeto__btn { display: inline-flex; align-items: center; gap: 8px; background: var(--u-blue); color: #fff; font: 600 14px/1 var(--u-poppins); padding: 12px 16px; border-radius: 6px; text-decoration: none; }
.u-projeto__btn:hover { background: var(--u-navy); color: #fff; }

.u-emp { position: relative; }
.u-emp__img img { width: 100%; height: 390px; object-fit: cover; border-radius: var(--u-radius); display: block; }
.u-emp__ico { position: absolute !important; width: auto !important; z-index: 2; margin: 0 !important; }
.u-emp__ico .elementor-icon { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 6px; background: var(--u-red); color: #fff; font-size: 16px; }
.u-emp__ico .elementor-icon svg { width: 16px; height: 16px; fill: #fff; }
.u-emp__ico--bl { left: -22px; bottom: -22px; }
.u-emp__ico--bl .elementor-icon { width: 58px; height: 58px; font-size: 26px; }
.u-emp__ico--bl .elementor-icon svg { width: 26px; height: 26px; }
.u-emp__ico--tr { right: 4px; top: -18px; }
.u-emp__ico--tr .elementor-icon { background: var(--u-wine); }
.u-emp__ico--ml { left: 90px; bottom: 40px; }

.u-faq--1 { counter-reset: faq 0; }
.u-faq--4 { counter-reset: faq 3; }
.u-faq .elementor-accordion-item, .u-faq .elementor-toggle-item { border: 1px solid var(--u-border) !important; border-radius: var(--u-radius); background: #fff; margin-bottom: 12px; overflow: hidden; }
.u-faq .elementor-tab-title { display: flex; align-items: center; gap: 12px; padding: 16px 18px !important; border: 0 !important; font: 600 16px/1.3 var(--u-lato); color: var(--u-title); }
.u-faq .elementor-tab-title::before { counter-increment: faq; content: counter(faq); flex: none; width: 32px; height: 32px; border-radius: 50%; background: var(--u-blue); color: #fff; display: inline-flex; align-items: center; justify-content: center; font: 600 14px/1 var(--u-poppins); }
.u-faq .elementor-tab-title a, .u-faq .elementor-accordion-title, .u-faq .elementor-toggle-title { color: var(--u-title) !important; flex: 1; text-decoration: none; order: 1; }
.u-faq .elementor-accordion-icon, .u-faq .elementor-toggle-icon { order: 2; color: var(--u-blue); float: none !important; width: auto !important; }
.u-faq .elementor-accordion-icon svg, .u-faq .elementor-toggle-icon svg { fill: var(--u-blue); width: 12px; }
.u-faq .elementor-tab-content { border: 0 !important; padding: 0 18px 18px 62px !important; font: 400 13px/1.6 var(--u-poppins); color: var(--u-text); }

.u-carousel { position: relative; padding-bottom: 64px; }
.u-carousel .elementor-swiper-button { top: auto !important; bottom: 0 !important; transform: none !important; }
.u-carousel .elementor-swiper-button-prev { left: auto !important; right: 48px !important; }
.u-carousel .elementor-swiper-button-next { right: 0 !important; }
.u-carousel .swiper-pagination { text-align: left; bottom: 12px !important; left: 0 !important; width: auto !important; }

.u-foot__info { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font: 400 14px/1.4 var(--u-poppins); color: #fff; }
.u-foot__info li { display: flex; align-items: center; gap: 10px; }
.u-foot__info svg { flex: none; color: #ff5a60; }
.u-foot__info a { color: #fff; text-decoration: none; }
.u-foot__info a:hover { color: #ffb3b6; }

.u-flutua { position: fixed; right: 30px; bottom: 104px; z-index: 90; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.u-topo { width: 52px; height: 52px; padding: 0; border: 0; border-radius: 6px; background: var(--u-red); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0; pointer-events: none; transition: opacity .2s; }
.u-topo.is-on { opacity: 1; pointer-events: auto; }
.u-zap { width: 60px; height: 60px; border-radius: 50%; background: #25D366; color: #fff; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(0,0,0,.2); transition: transform .2s; }
.u-zap:hover { transform: scale(1.05); color: #fff; }

/* ---------- Responsivo ---------- */

@media (max-width: 1024px) {
	.u-selo { display: none; }
	.u-selo-mec { width: 130px !important; right: 0; top: 20px; }
	.u-selo-mec img { width: 130px; }
	.u-h2--xl .elementor-heading-title { font-size: 36px; }
	.u-form-card--up { margin-top: -80px; }
}
@media (max-width: 767px) {
	.u-form-card { padding: 28px 20px !important; }
	.u-hero { min-height: 300px !important; background-position: 70% center !important; }
	.u-emp__img img { height: 260px; }
	.u-emp__ico--ml { left: 10px; }
	.u-emp__ico--bl { left: 0; bottom: -10px; }
	.u-preco__por { font-size: 36px; }
	.u-faq .elementor-tab-content { padding-left: 18px !important; }
	.u-flutua { right: 20px; bottom: 92px; }
	.u-zap { width: 52px; height: 52px; }
	.u-logo img { width: 170px; }
	.u-sec { overflow-x: clip; }
	.u-h1--post .elementor-heading-title { font-size: 24px; }
	.u-info { gap: 12px; }
	.u-info li { font-size: 13px; }
	.u-selo-mec { width: 110px !important; top: 0; right: 0; }
	.u-selo-mec img { width: 110px; }
	.u-banner--navy .u-banner__img { width: 100% !important; }
	.u-emec img { width: 140px; }
	.u-artigo h2 { font-size: 22px; }
	.u-card__img--post img { height: 200px; }
	.u-foot__bottom { flex-direction: column !important; align-items: flex-start !important; }
	.u-hide-m { display: none !important; }
	.u-form-card--up { margin-top: 0; }
	.u-h1 .elementor-heading-title { font-size: 28px; }
	.u-h2 .elementor-heading-title, .u-h2--xl .elementor-heading-title { font-size: 28px; }
	.u-h3 .elementor-heading-title { font-size: 22px; }
	.u-banner::before { height: auto !important; top: 80px; }
	.u-banner__txt { min-height: 0 !important; padding-top: 110px !important; order: 2; }
	.u-banner__media { order: 1; margin-bottom: -110px; z-index: 0 !important; }
	.u-banner { gap: 0 !important; }
	.u-pagehead { background-image: none !important; }
	.u-filters { flex-direction: column; align-items: stretch; }
	.u-filters__sel { flex-direction: column; }
	.u-filter, .u-search, .u-search input, .u-filter select { width: 100%; }
	.u-coord { flex-wrap: wrap; }
	.u-coord__cv { margin-left: 60px; }
	.u-sticky { position: static; }
	.u-form--inline .elementor-field-group { width: 100% !important; }
}

/* Selo "Inscrições abertas": o anel de texto gira devagar, o símbolo do centro fica parado. */
.u-selo { height: 184px; }
.u-selo img { width: 184px !important; height: 184px !important; animation: u-gira 24s linear infinite; }
.u-selo::after { content: ""; position: absolute; inset: 0; background: url(../img/selo-centro.png) center / 100% 100% no-repeat; pointer-events: none; }
@keyframes u-gira { to { transform: rotate(360deg); } }

/* ---------- Depoimentos (Testimonial Carousel do PRO Elements) ---------- */
.u-deps { position: relative; padding-bottom: 64px; }
.u-deps .swiper-slide { height: auto; }
.u-deps .elementor-testimonial { display: flex; flex-direction: column; height: 100%; border: 1px solid var(--u-border); border-radius: var(--u-radius); overflow: hidden; background: #fff; box-shadow: 0 4px 16px rgba(0,0,0,.04); }
.u-deps .elementor-testimonial__content { flex: 1; padding: 24px; text-align: left; }
.u-deps .elementor-testimonial__content::before { content: "★★★★★"; display: block; color: var(--u-blue); font-size: 22px; letter-spacing: 2px; margin-bottom: 18px; }
.u-deps .elementor-testimonial__text { font: 400 15px/1.65 var(--u-poppins); color: var(--u-title); display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; font-style: normal; }
.u-deps .is-aberto .elementor-testimonial__text { -webkit-line-clamp: unset; display: block; }
.u-deps .u-lermais { margin-top: 10px; border: 0; background: none; padding: 0; font: 600 13px/1 var(--u-poppins); color: #1a73e8; cursor: pointer; }
.u-deps .elementor-testimonial__footer { background: var(--u-wine); padding: 16px 24px; margin: 0; display: flex; align-items: center; gap: 12px; text-align: left; }
.u-deps .elementor-testimonial__image img { width: 52px !important; height: 52px !important; border-radius: 50%; object-fit: cover; border: 2px solid rgba(255,255,255,.3); }
.u-deps .elementor-testimonial__cite { display: flex; flex-direction: column; gap: 2px; margin: 0 !important; }
.u-deps .elementor-testimonial__name { font: 600 15px/1.2 var(--u-poppins); color: #fff !important; }
.u-deps .elementor-testimonial__title { font: 400 12px/1.3 var(--u-poppins); color: rgba(255,255,255,.85) !important; }
.u-deps .elementor-swiper-button { top: auto !important; bottom: 0 !important; transform: none !important; width: 36px; height: 36px; border: 2px solid var(--u-blue); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--u-blue); font-size: 14px; }
.u-deps .elementor-swiper-button svg { fill: var(--u-blue); width: 12px; }
.u-deps .elementor-swiper-button-prev { left: auto !important; right: 48px !important; }
.u-deps .elementor-swiper-button-next { right: 0 !important; }
.u-deps .swiper-pagination { text-align: left; bottom: 12px !important; left: 0 !important; width: auto !important; }
.u-deps .swiper-pagination-bullet { width: 8px; height: 8px; background: #cfcfcf; opacity: 1; transition: width .2s; }
.u-deps .swiper-pagination-bullet-active { width: 28px; border-radius: 99px; background: var(--u-red); }

/* Newsletter: botão azul (contraste com o fundo vermelho) e mesma altura dos campos. */
.u-form--inline .elementor-form-fields-wrapper { align-items: center !important; }
.u-form--inline .elementor-field-textual { height: 56px !important; min-height: 56px !important; padding-top: 0 !important; padding-bottom: 0 !important; }
.u-form--inline .elementor-field-type-submit, .u-form--inline .e-form__buttons { align-self: center !important; margin: 0 !important; }
.u-form--inline .elementor-button { height: 56px !important; min-height: 56px !important; padding: 0 24px !important; margin: 0 !important; width: 100%; background: var(--u-blue) !important; color: #fff !important; box-shadow: none !important; border-radius: 6px !important; }
.u-form--inline .elementor-button:hover { background: var(--u-navy) !important; }
@media (max-width: 767px) {
	.u-form--inline .elementor-form-fields-wrapper { flex-wrap: wrap !important; }
	.u-form--inline .elementor-field-group, .u-form--inline .elementor-field-type-submit { flex: 1 1 100% !important; }
}

/* Hero: a Mídia do servidor reduz a imagem para 1600px. O banner vem direto do plugin,
   em 3840px, sem nenhuma recompressão. Para trocar o banner: substituir assets/img/hero-banner.jpg. */
.u-hero { background-image: url(../img/hero-banner.jpg) !important; background-size: cover !important; background-position: center center !important; }

/* Botão "Baixar aqui": a cor de link do kit do Elementor sobrescrevia o texto branco. */
.u-projeto a.u-projeto__btn, .u-projeto a.u-projeto__btn:visited, .u-projeto a.u-projeto__btn:hover { color: #fff !important; text-decoration: none !important; }

/* Botão do formulário da Home: altura pelo padding (15px em cima e embaixo), sem altura mínima. */
.u-form-card--up .u-form .elementor-button { min-height: 0 !important; height: auto !important; padding: 15px 24px !important; }

/* Tema Hello pinta botões de rosa (#c36) no hover/focus. Nos nossos botões, cores da marca. */
.u-topo:hover, .u-topo:focus { background: var(--u-red-act) !important; color: #fff !important; border: 0; outline: none; }
.u-preco__olho:hover, .u-preco__olho:focus { background: #dcdcdc !important; color: var(--u-blue) !important; }
.u-grade__mais:hover, .u-grade__mais:focus, .u-lermais:hover, .u-lermais:focus { background: none !important; color: var(--u-blue) !important; text-decoration: underline; }
.u-share button:hover, .u-share button:focus { background: none !important; color: var(--u-navy) !important; }
.u-form textarea.elementor-field { min-height: 130px; padding-top: 14px !important; }

/* Olho da mensalidade: alvo pequeno demais ao lado do título "Mensalidade". */
.u-preco__olho { width: 44px; height: 44px; }

/* Curso: benefícios do projeto de curso ("Sobre o Curso"), um por linha com marcador da marca. */
.u-conteudo .u-beneficios { list-style: none; margin: 16px 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.u-conteudo .u-beneficios li { position: relative; padding: 14px 16px 14px 44px; background: #fff; border: 1px solid var(--u-border); border-radius: var(--u-radius); font: 400 14px/1.55 var(--u-poppins); color: var(--u-text); }
.u-conteudo .u-beneficios li::before { content: ""; position: absolute; left: 16px; top: 18px; width: 16px; height: 16px; border-radius: 50%; background: var(--u-red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 11px no-repeat; }
.u-conteudo .u-beneficios li strong { display: block; font: 700 15px/1.3 var(--u-lato); color: var(--u-title); margin-bottom: 2px; }

/* ==========================================================================
   Rodada mobile (25/09/2026) — revisão de UX no celular, até 767px.
   Nada aqui altera o desktop. Diagnóstico em docs/06-mobile/auditoria.md.
   ========================================================================== */
@media (max-width: 767px) {
	/* Ritmo vertical único: 40px por seção. Antes eram 56–96px e dois blocos
	   vizinhos somavam até 136px de vazio (ex.: formulário → "Cursos em alta"). */
	.u-sec:not(.u-hero):not(.u-header) { --padding-top: 40px !important; --padding-bottom: 40px !important; }

	/* Hero: banner vertical próprio (pessoa + marca empilhadas). O de desktop é
	   3840×1200 com o texto dentro da imagem e saía cortado ("PÓS UNISAGR…"). */
	.u-hero {
		background-image: url(../img/hero-banner-mobile.jpg) !important;
		background-size: 100% auto !important;
		background-position: center top !important;
		min-height: calc(100vw * 1180 / 1080) !important;
	}

	/* Banners "Diferenciais" e "Fale com a gente": o fundo colorido ficava com
	   altura zero no celular e o texto branco sumia sobre fundo claro.
	   Agora o fundo é do próprio bloco de texto e a foto encosta por cima. */
	.u-banner { gap: 0 !important; }
	.u-banner::before { display: none !important; }
	.u-banner__media { order: 1; position: relative; z-index: 2 !important; margin-bottom: -40px !important; }
	.u-banner__img img { max-width: 320px; margin: 0 auto; }
	.u-banner__txt {
		order: 2; position: relative; z-index: 1;
		min-height: 0 !important;
		padding: 64px 24px 32px !important;
		border-radius: var(--u-radius);
		background: center / cover no-repeat;
	}
	.u-banner--navy .u-banner__txt { background-color: var(--u-blue); background-image: url(../img/fundo-banner-azul.jpg); }
	.u-banner--red .u-banner__txt { background-color: #c21d25; background-image: url(../img/fundo-banner-vermelho.jpg); }
	.u-banner__txt .u-h2 .elementor-heading-title { font-size: 26px; }
	/* Botões do "Fale com a gente" empilhados: lado a lado, os dois quebravam em duas linhas. */
	.u-banner__txt > .e-con:has(.u-btn) { flex-direction: column !important; align-items: stretch !important; gap: 4px !important; }
	.u-banner__txt .u-btn, .u-banner__txt .u-btn .elementor-button { width: 100%; white-space: nowrap; }
	.u-banner__txt .u-btn--link .elementor-button { justify-content: center; }

	/* Carrosséis: no toque se arrasta. Setas saem (ficavam soltas à direita, longe
	   dos pontos), pontos centralizados, faixa de controle mais baixa. */
	.u-carousel, .u-deps { padding-bottom: 36px; }
	.u-carousel .elementor-swiper-button, .u-deps .elementor-swiper-button { display: none !important; }
	.u-carousel .swiper-pagination, .u-deps .swiper-pagination { left: 0 !important; right: 0 !important; width: 100% !important; transform: none !important; text-align: center !important; bottom: 6px !important; }

	/* FAQ: as duas colunas empilhadas deixavam um vão maior entre a 3ª e a 4ª pergunta. */
	.e-con:has(> .e-con > .u-faq--1) { --row-gap: 0px !important; row-gap: 0 !important; }

	/* Posts na home e "Conteúdos relacionados": lista horizontal com deslize
	   (3 cards empilhados ocupavam ~1.300px de rolagem). */
	.home .elementor-widget-loop-grid .elementor-loop-container,
	.single-post .elementor-widget-loop-grid .elementor-loop-container {
		display: flex !important; gap: 14px !important;
		overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 20px;
		margin: 0 -20px; padding: 0 20px 6px;
		scrollbar-width: none;
	}
	.home .elementor-widget-loop-grid .elementor-loop-container::-webkit-scrollbar,
	.single-post .elementor-widget-loop-grid .elementor-loop-container::-webkit-scrollbar { display: none; }
	.home .elementor-widget-loop-grid .e-loop-item,
	.single-post .elementor-widget-loop-grid .e-loop-item { flex: 0 0 82%; scroll-snap-align: start; }
	.u-card__img--post img { height: 180px; }

	/* Pós para empresas: colagem mais baixa, foto principal maior, ícones menores. */
	.u-emp__fotos > .u-emp { width: auto !important; flex: 1 1 0 !important; }
	.u-emp__fotos > .u-emp:first-child { flex-grow: 1.7 !important; }
	.u-emp__img img { height: 200px; }
	.u-emp__ico--ml { display: none; }
	.u-emp__ico--bl { left: 8px; bottom: 8px; }
	.u-emp__ico--bl .elementor-icon { width: 40px; height: 40px; font-size: 18px; }
	.u-emp__ico--bl .elementor-icon svg { width: 18px; height: 18px; }

	/* Marca: a do cabeçalho é a principal; a do rodapé fica de assinatura. */
	.u-logo img { width: 188px; }
	.u-logo-foot img { width: 116px; }

	/* Rodapé em duas colunas: menos rolagem e leitura por blocos. */
	.u-footer .e-con:has(> .e-con > .u-logo-foot) { display: grid !important; grid-template-columns: 1fr 1fr; gap: 32px 20px !important; }
	.u-footer .e-con:has(> .e-con > .u-logo-foot) > .e-con { width: auto !important; min-width: 0; }
	.u-footer .e-con:has(> .e-con > .u-logo-foot) > .e-con:first-child { grid-column: 1 / -1; }
	.u-foot__links { gap: 12px; }
	.u-foot__links a { font-size: 13.5px; }
	.u-emec img { width: 116px; }
	.u-foot__bottom { gap: 16px !important; padding-top: 24px !important; }

	/* Títulos internos do curso: 30px era grande demais para a tela. */
	.u-sub, h2.u-sub, .u-sub .elementor-heading-title { font-size: 24px; }
	.u-preco__por { font-size: 34px; }
	.u-preco, .u-projeto { padding: 22px 20px 20px; }
	/* Imagem decorativa ao lado da grade: no celular só empurra o conteúdo. */
	.u-sec--grade .e-con:has(> .elementor-widget .u-grade__img) { display: none !important; }

	/* Vitrine de cursos: filtros em grade 2×2 (antes 5 linhas antes do 1º curso). */
	.u-filters:not(.u-filters--blog) .u-filters__sel { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
	.u-filters:not(.u-filters--blog) .u-filter select { font-size: 13px; padding: 11px 24px 11px 32px; background-position: right 10px center; }
	.u-filters:not(.u-filters--blog) .u-filter .u-ico { left: 10px; }
	.u-filters { gap: 10px; padding-bottom: 20px; }

	/* Newsletter: campos grudados um no outro. */
	.u-form--inline .elementor-form-fields-wrapper { row-gap: 10px !important; gap: 10px !important; }

	/* Botão de envio em duas linhas: respiro e entrelinha. */
	.u-form .elementor-button { line-height: 1.25 !important; padding: 14px 18px !important; font-size: 16px !important; }

	/* Voltar ao topo: menor e no canto, para não cobrir texto. */
	.u-flutua { right: 14px; bottom: 88px; }
	.u-topo { width: 44px; height: 44px; }
	.u-topo.is-on { opacity: .92; }

	/* Página de curso: atalho fixo para o formulário, que fica depois de todo o conteúdo. */
	.u-cta-fixo {
		position: fixed; left: 14px; right: 80px; bottom: 16px; z-index: 89;
		display: flex; align-items: center; justify-content: center; gap: 8px;
		min-height: 52px; border-radius: 8px;
		background: var(--u-red); color: #fff !important; text-decoration: none;
		font: 600 16px/1 var(--u-poppins);
		box-shadow: 0 8px 22px rgba(12,22,50,.25);
		transform: translateY(140%); transition: transform .25s;
	}
	.u-cta-fixo.is-on { transform: none; }
	.u-cta-fixo:hover, .u-cta-fixo:focus { background: var(--u-red-act); color: #fff !important; }
	body.tem-cta-fixo .u-flutua { bottom: 84px; }
}
@media (min-width: 768px) {
	.u-cta-fixo { display: none; }
}

/* Tablet (768–1024px): mesma revisão, só o que quebrava. */
@media (min-width: 768px) and (max-width: 1024px) {
	/* Intro da home: texto e formulário empilhados (a coluna de texto ficava espremida
	   e os botões quebravam em duas linhas). */
	.e-con:has(> .u-form-card--up) { flex-direction: column !important; align-items: stretch !important; gap: 32px !important; }
	.e-con:has(> .u-form-card--up) > .e-con { width: 100% !important; max-width: 640px; }
	.u-form-card--up { margin-top: 0 !important; }
	.u-h1 .elementor-heading-title, .u-h2 .elementor-heading-title, .u-h2--xl .elementor-heading-title { font-size: 30px; }
	.u-btn .elementor-button { white-space: nowrap; }
	/* Título + botão "Todos os cursos/posts": o botão vazava pela direita. */
	.e-con:has(> .u-btn--outline) { flex-wrap: wrap !important; gap: 12px !important; }
	/* Pontos do carrossel: centralizados, sem deslocamento para fora do bloco. */
	.u-carousel .swiper-pagination, .u-deps .swiper-pagination { left: 0 !important; right: 0 !important; width: 100% !important; transform: none !important; text-align: center !important; }
	.u-carousel .elementor-swiper-button, .u-deps .elementor-swiper-button { display: none !important; }
}

/* Card de inscrição da home (desktop e tablet): título 28px destoava do subtítulo de 13px, que
   ficava colado nele. Título menor, respiro igual entre título, subtítulo e campos. */
.u-form-card--up .u-h3 .elementor-heading-title { font-size: 24px; line-height: 1.25; text-align: center; text-wrap: balance; }
.u-form-card--up .u-h3 + .u-small, .u-form-card--up .u-h3 + .u-small p { text-align: center; }
.u-form-card--up .u-h3 + .u-small { margin-top: -4px; margin-bottom: 10px; }

/* Aviso de privacidade no fim dos formulários: centralizado, em bloco estreito e com respiro. */
.u-form-card .u-tiny, .u-form-card .u-tiny p { text-align: center; font-size: 12px; line-height: 1.6; color: var(--u-muted); }
.u-form-card .u-tiny { max-width: 480px; margin: 6px auto 0 !important; }
.u-form-card .u-tiny a { color: var(--u-blue); text-decoration: underline; text-underline-offset: 2px; }

/* Selo "Inscrições abertas": inteiro dentro do banner. Ele descia 14px abaixo do banner e a curva
   dele deixava um cantinho cinza aparecendo entre o selo e o card do formulário. */
.u-selo { bottom: 20px; }

/* Card de inscrição sobe sobre o banner proporcionalmente: com -96px fixo, abaixo de ~1360px de
   largura ele cobria a frase "uma decisão." do banner. */
@media (min-width: 1025px) {
	.u-form-card--up { margin-top: max(-96px, -6vw) !important; }
}

/* Logo do cabeçalho: o bloco encolhia para caber ao lado do menu (ficava com 107px no celular). */
.u-logo { flex: 0 0 auto !important; }
.u-logo img { max-width: none; }
@media (max-width: 767px) {
	.u-logo img { width: 196px; }
}

/* Voltar ao topo (desktop): mais baixo e menor. Fica acima de 80px para não brigar com o
   botão flutuante de WhatsApp do RD Station, que entra no canto inferior direito. */
@media (min-width: 768px) {
	.u-flutua { bottom: 80px; right: 28px; }
	.u-topo { width: 44px; height: 44px; }
	.u-topo svg { width: 22px; height: 22px; }
}

/* Grade: link do currículo do professor colado na disciplina (pedido do UNISAGRADO, 28/09). */
.u-grade__link { display: inline-flex; align-items: center; gap: 2px; margin-left: 4px; font-weight: 600; color: var(--u-blue); text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
.u-grade__link:hover { color: var(--u-red-act); }
