/* ================================================================
   CEDUP Academy — Navy Design System  v1.0
   Mobile-first (base = mobile, media queries → wider)
   ================================================================ */

/* ── tokens ─────────────────────────────────────────────────────── */
:root {
  --nv-navy:    #080f1e;
  --nv-navy-2:  #0e1a2e;
  --nv-navy-3:  #162236;
  --nv-navy-4:  #1d2f47;
  --nv-border:  rgba(255,255,255,.08);
  --nv-orange:  #f97316;
  --nv-orange-2:#fb923c;
  --nv-white:   #ffffff;
  --nv-w80:     rgba(255,255,255,.80);
  --nv-w45:     rgba(255,255,255,.45);
  --nv-w12:     rgba(255,255,255,.12);
  --nv-font-d:  "Fraunces", Georgia, serif;
  --nv-font-b:  "Inter", system-ui, sans-serif;
  --nv-r:       16px;
  --nv-nav-h:   64px;
}

/* ── global body override ────────────────────────────────────────── */
body {
  font-family: var(--nv-font-b);
  background: var(--nv-navy);
  color: var(--nv-white);
  -webkit-font-smoothing: antialiased;
}

/* compensar padding-top do main (que pode ser adicionado via JS) */
main[role="main"] {
  padding-top: 0 !important;
}

/* links gerais */
a { color: inherit; }

/* ── NAV ─────────────────────────────────────────────────────────── */
.nv-nav {
  position: sticky;
  top: 0;
  z-index: 1040;
  background: rgba(8,15,30,.88);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--nv-border);
  height: var(--nv-nav-h);
}

.nv-nav__in {
  display: flex;
  align-items: center;
  gap: .75rem;
  height: var(--nv-nav-h);
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1.25rem;
}

/* Botões de auth ocultos no mobile — ficam no drawer */
.nv-nav__in .nv-btn-ghost,
.nv-nav__in .nv-btn-orange { display: none; }

/* logo/brand */
.nv-brand {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-family: var(--nv-font-d);
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--nv-white);
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
}

.nv-brand__dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--nv-orange);
  flex-shrink: 0;
}

/* links internos — ocultos no mobile */
.nv-nav__links {
  display: none;
  list-style: none;
  gap: 1.4rem;
  margin: 0;
  padding: 0;
}

.nv-nav__links a {
  font-size: .85rem;
  font-weight: 500;
  color: var(--nv-w80);
  text-decoration: none;
  transition: color .15s;
}

.nv-nav__links a:hover,
.nv-nav__links a.is-active {
  color: var(--nv-white);
}

.nv-spacer { flex: 1; }

/* barra de busca no nav — oculta no mobile */
.nv-nav__search {
  display: none;
  align-items: center;
  gap: .5rem;
  background: var(--nv-w12);
  border: 1px solid var(--nv-border);
  border-radius: 10px;
  padding: .42rem .85rem;
  font-size: .83rem;
  color: var(--nv-w45);
  width: 200px;
  cursor: pointer;
  text-decoration: none;
  transition: border-color .2s;
}

.nv-nav__search:hover { border-color: rgba(255,255,255,.2); }
.nv-nav__search i { font-size: .78rem; }

/* botão fantasma */
.nv-btn-ghost {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-family: var(--nv-font-b);
  font-size: .83rem;
  font-weight: 600;
  color: var(--nv-w80);
  background: transparent;
  border: 1px solid var(--nv-border);
  border-radius: 10px;
  padding: .48rem .9rem;
  cursor: pointer;
  text-decoration: none;
  transition: border-color .2s, color .2s;
  white-space: nowrap;
}

.nv-btn-ghost:hover {
  border-color: rgba(255,255,255,.28);
  color: var(--nv-white);
}

/* botão laranja */
.nv-btn-orange {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-family: var(--nv-font-b);
  font-size: .85rem;
  font-weight: 700;
  color: #fff;
  background: var(--nv-orange);
  border: none;
  border-radius: 10px;
  padding: .52rem 1.1rem;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 0 22px -4px rgba(249,115,22,.5);
  transition: filter .2s, transform .15s;
  white-space: nowrap;
}

.nv-btn-orange:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
  color: #fff;
}

/* dropdown avatar */
.nv-avatar-btn {
  display: flex;
  align-items: center;
  gap: .5rem;
  background: transparent;
  border: 1px solid var(--nv-border);
  border-radius: 10px;
  padding: .35rem .7rem;
  cursor: pointer;
  color: var(--nv-w80);
  font-size: .85rem;
  position: relative;
}

.nv-avatar-img,
.nv-avatar-initials {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
}

.nv-avatar-initials {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--nv-navy-4);
  color: #fff;
  font-weight: 700;
  font-size: .8rem;
}

/* dropdown menu */
.nv-dropdown {
  position: relative;
}

.nv-dropdown-menu {
  display: none;
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  min-width: 220px;
  background: var(--nv-navy-3);
  border: 1px solid var(--nv-border);
  border-radius: 14px;
  padding: .5rem;
  box-shadow: 0 16px 40px rgba(0,0,0,.6);
  z-index: 1060;
}

.nv-dropdown-menu.is-open { display: block; }

.nv-dropdown-item {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .55rem .85rem;
  border-radius: 8px;
  font-size: .85rem;
  color: var(--nv-w80);
  text-decoration: none;
  transition: background .15s, color .15s;
  white-space: nowrap;
}

.nv-dropdown-item:hover {
  background: var(--nv-white-4, rgba(255,255,255,.08));
  color: var(--nv-white);
}

.nv-dropdown-item.danger { color: #f87171; }
.nv-dropdown-item.danger:hover { background: rgba(239,68,68,.12); }

.nv-dropdown-divider {
  height: 1px;
  background: var(--nv-border);
  margin: .35rem 0;
}

.nv-dropdown-header {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--nv-w45);
  padding: .35rem .85rem .2rem;
}

/* badge afiliado */
.nv-badge-afiliado {
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
  background: #9b59b6;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 1px 8px;
  border-radius: 999px;
  white-space: nowrap;
}

/* menu hamburguer mobile */
.nv-hamburger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 38px;
  height: 38px;
  background: var(--nv-w12);
  border: 1px solid var(--nv-border);
  border-radius: 8px;
  cursor: pointer;
  padding: 0 9px;
  flex-shrink: 0;
}

.nv-hamburger span {
  display: block;
  height: 2px;
  background: var(--nv-w80);
  border-radius: 2px;
  transition: all .2s;
}

/* menu mobile drawer */
.nv-mobile-menu {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1050;
  background: rgba(0,0,0,.5);
}

.nv-mobile-menu.is-open { display: block; }

.nv-mobile-menu__panel {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 280px;
  background: var(--nv-navy-2);
  border-left: 1px solid var(--nv-border);
  padding: 1.5rem 1rem;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: .35rem;
}

.nv-mobile-menu__close {
  align-self: flex-end;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--nv-w12);
  border: 1px solid var(--nv-border);
  border-radius: 8px;
  cursor: pointer;
  font-size: 1rem;
  color: var(--nv-w80);
  margin-bottom: .5rem;
}

.nv-mobile-link {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .75rem 1rem;
  border-radius: 10px;
  color: var(--nv-w80);
  text-decoration: none;
  font-size: .9rem;
  font-weight: 500;
  transition: background .15s, color .15s;
}

.nv-mobile-link:hover { background: var(--nv-w12); color: var(--nv-white); }
.nv-mobile-link.danger { color: #f87171; }
.nv-mobile-divider { height: 1px; background: var(--nv-border); margin: .5rem 0; }

/* ── HERO ─────────────────────────────────────────────────────────── */
.nv-hero {
  padding: clamp(2rem,5vw,4rem) 0 clamp(1.5rem,3vw,2.5rem);
  position: relative;
  overflow: hidden;
}

.nv-hero::before {
  content: "";
  position: absolute;
  top: -140px; right: -80px;
  width: 600px; height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(249,115,22,.13) 0%, transparent 70%);
  pointer-events: none;
}

.nv-hero::after {
  content: "";
  position: absolute;
  bottom: -80px; left: -60px;
  width: 400px; height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(29,99,235,.14) 0%, transparent 70%);
  pointer-events: none;
}

.nv-hero__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1.25rem;
  position: relative;
  z-index: 1;
}

/* mobile: stack vertical */
.nv-hero__grid {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.nv-hero__tag {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--nv-orange);
  margin-bottom: 1rem;
}

.nv-hero__tag::before {
  content: "";
  display: inline-block;
  width: 18px; height: 2px;
  background: var(--nv-orange);
  border-radius: 2px;
}

.nv-hero__h1 {
  font-family: var(--nv-font-d);
  font-weight: 800;
  font-size: clamp(2rem, 7vw, 3.5rem);
  line-height: 1.06;
  letter-spacing: -.02em;
  margin-bottom: 1rem;
  color: var(--nv-white);
}

.nv-hero__h1 em {
  font-style: normal;
  color: var(--nv-orange);
}

.nv-hero__sub {
  font-size: .95rem;
  line-height: 1.65;
  color: var(--nv-w80);
  margin-bottom: 1.75rem;
  max-width: 420px;
}

/* barra de busca do hero */
.nv-hero__search {
  display: flex;
  gap: .5rem;
  background: var(--nv-navy-3);
  border: 1px solid var(--nv-border);
  border-radius: 14px;
  padding: .38rem .38rem .38rem .9rem;
  margin-bottom: 1.5rem;
  transition: border-color .2s;
}

.nv-hero__search:focus-within {
  border-color: rgba(249,115,22,.5);
}

.nv-hero__search input {
  flex: 1;
  background: none;
  border: none;
  outline: none;
  font-family: var(--nv-font-b);
  font-size: .9rem;
  color: var(--nv-white);
  min-width: 0;
}

.nv-hero__search input::placeholder { color: var(--nv-w45); }

.nv-hero__search-btn {
  display: flex;
  align-items: center;
  gap: .4rem;
  background: var(--nv-orange);
  color: #fff;
  font-weight: 700;
  font-size: .85rem;
  border: none;
  border-radius: 10px;
  padding: .6rem 1.1rem;
  cursor: pointer;
  white-space: nowrap;
  transition: filter .15s;
}

.nv-hero__search-btn:hover { filter: brightness(1.1); }

/* stats */
.nv-hero__stats {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}

.nv-hero__stats > div {
  text-align: center;
}

.nv-hero__stat-n {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--nv-white);
}

.nv-hero__stat-l {
  font-size: .72rem;
  color: var(--nv-w45);
  margin-top: .1rem;
}

/* card stack — mobile: scroll horizontal simples */
.nv-hero__cards {
  position: relative;
  height: 240px;
}

.nv-hcard {
  position: absolute;
  width: 165px;
  background: var(--nv-navy-2);
  text-decoration: none;
  color: inherit;
  border: 1px solid var(--nv-border);
  border-radius: var(--nv-r);
  overflow: hidden;
  box-shadow: 0 20px 40px -12px rgba(0,0,0,.7);
  transition: transform .3s;
}

.nv-hcard:hover { transform: translateY(-6px) !important; z-index: 20 !important; }

.nv-hcard__thumb {
  width: 100%; height: 90px;
  background-size: cover;
  background-position: center;
  position: relative;
}

.nv-hcard__thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

.nv-hcard__thumb-fallback {
  width: 100%; height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  opacity: .7;
}

.nv-hcard__body { padding: .7rem .8rem; }

.nv-hcard__title {
  font-size: .8rem;
  font-weight: 600;
  color: var(--nv-white);
  line-height: 1.35;
  margin-bottom: .4rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.nv-hcard__price {
  font-size: .82rem;
  font-weight: 700;
  color: var(--nv-orange);
}

/* posições mobile */
.nv-hcard:nth-child(1) { top: 0;   left: 0;    transform: rotate(-3deg);  z-index: 3; }
.nv-hcard:nth-child(2) { top: 20px; left: 120px; transform: rotate(2deg);  z-index: 5; }
.nv-hcard:nth-child(3) { top: 138px; left: 25px; transform: rotate(-2deg); z-index: 4; }
.nv-hcard:nth-child(4) { top: 125px; left: 170px; transform: rotate(3deg); z-index: 6; }

/* ── STRIP DE CATEGORIAS ──────────────────────────────────────────── */
.nv-cats {
  background: var(--nv-navy-2);
  border-top: 1px solid var(--nv-border);
  border-bottom: 1px solid var(--nv-border);
  padding: .8rem 0;
}

.nv-cats__inner {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1.25rem;
}

.nv-cats__row {
  display: flex;
  gap: .55rem;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: .15rem;
}

.nv-cats__row::-webkit-scrollbar { display: none; }

.nv-cat-pill {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  white-space: nowrap;
  flex-shrink: 0;
  font-size: .78rem;
  font-weight: 600;
  background: var(--nv-w12);
  border: 1px solid var(--nv-border);
  border-radius: 100px;
  padding: .4rem .95rem;
  cursor: pointer;
  text-decoration: none;
  color: var(--nv-w80);
  transition: background .2s, border-color .2s, color .2s;
}

.nv-cat-pill:hover,
.nv-cat-pill.is-active {
  background: var(--nv-orange);
  border-color: var(--nv-orange);
  color: #fff;
}

.nv-cat-pill i { font-size: .75rem; }

/* ── SEÇÃO GENÉRICA ───────────────────────────────────────────────── */
.nv-section {
  padding: clamp(2rem, 4vw, 3.5rem) 0;
}

.nv-container {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1.25rem;
}

.nv-sec-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 1.4rem;
  gap: 1rem;
}

.nv-sec-head h2 {
  font-family: var(--nv-font-d);
  font-weight: 700;
  font-size: clamp(1.3rem, 3vw, 1.9rem);
  color: var(--nv-white);
  margin: 0;
}

.nv-sec-head a {
  font-size: .82rem;
  font-weight: 600;
  color: var(--nv-orange);
  display: flex;
  align-items: center;
  gap: .32rem;
  text-decoration: none;
  transition: gap .2s;
  white-space: nowrap;
}

.nv-sec-head a:hover { gap: .55rem; }

/* ── GRID DE CURSOS ───────────────────────────────────────────────── */
/* mobile: 1 coluna */
.nv-course-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

/* card de curso */
.nv-course-card {
  background: var(--nv-navy-2);
  border: 1px solid var(--nv-border);
  border-radius: var(--nv-r);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: transform .22s, box-shadow .22s, border-color .22s;
}

.nv-course-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 48px -16px rgba(0,0,0,.65);
  border-color: rgba(255,255,255,.16);
  color: inherit;
}

.nv-course-card__thumb {
  width: 100%;
  aspect-ratio: 16/9;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--nv-navy-3);
}

.nv-course-card__thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s;
}

.nv-course-card:hover .nv-course-card__thumb img {
  transform: scale(1.04);
}

.nv-course-card__thumb-fallback {
  width: 100%; height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  opacity: .5;
}

/* ribbons de status */
.nv-ribbon {
  position: absolute;
  bottom: .6rem;
  right: .6rem;
  font-size: .6rem;
  font-weight: 800;
  padding: .25rem .7rem;
  border-radius: 100px;
  letter-spacing: .07em;
  text-transform: uppercase;
  z-index: 2;
}

.nv-ribbon--verde   { background: #10b981; color: #fff; box-shadow: 0 2px 8px rgba(16,185,129,.4); }
.nv-ribbon--laranja { background: #f97316; color: #fff; box-shadow: 0 2px 8px rgba(249,115,22,.4); }
.nv-ribbon--vermelho{ background: #ef4444; color: #fff; box-shadow: 0 2px 8px rgba(239,68,68,.4); }

/* gradiente na base da thumb para o ribbon ficar legível */
.nv-course-card__thumb::after {
  content: "";
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(to top, rgba(8,15,30,.7) 0%, transparent 100%);
  pointer-events: none;
}

/* corpo do card */
.nv-course-card__body {
  padding: .95rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: .35rem;
}

.nv-course-card__title {
  font-size: .9rem;
  font-weight: 600;
  color: var(--nv-white);
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.nv-course-card__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: .7rem;
  gap: .5rem;
}

.nv-course-card__price {
  font-size: 1rem;
  font-weight: 700;
  color: var(--nv-orange);
  line-height: 1.2;
}

.nv-course-card__price small {
  font-size: .7rem;
  color: var(--nv-w45);
  font-weight: 400;
  display: block;
}

.nv-course-card__cta {
  font-size: .75rem;
  font-weight: 700;
  color: var(--nv-navy);
  background: var(--nv-orange);
  border: none;
  border-radius: 8px;
  padding: .4rem .85rem;
  cursor: pointer;
  text-decoration: none;
  transition: filter .15s;
  white-space: nowrap;
  flex-shrink: 0;
}

.nv-course-card__cta:hover {
  filter: brightness(1.1);
  color: var(--nv-navy);
}

/* botão "Avise-me" / sem preço */
.nv-course-card__cta--ghost {
  background: transparent;
  color: var(--nv-w80);
  border: 1px solid var(--nv-border);
  font-size: .73rem;
}

.nv-course-card__cta--ghost:hover {
  border-color: var(--nv-orange);
  color: var(--nv-orange);
  filter: none;
}

/* ── SWIPER override — cursos ─────────────────────────────────────── */
.nv-swiper-wrap .swiper { width: 100%; padding-bottom: 42px; }
.nv-swiper-wrap .swiper-slide { height: auto; display: flex; }
.nv-swiper-wrap .swiper-slide .nv-course-card { flex: 1; }
.nv-swiper-wrap .swiper-button-prev,
.nv-swiper-wrap .swiper-button-next {
  color: var(--nv-orange);
}
.nv-swiper-wrap .swiper-button-prev::after,
.nv-swiper-wrap .swiper-button-next::after { display: none; }
.nv-swiper-wrap .swiper-button-prev i,
.nv-swiper-wrap .swiper-button-next i { font-size: 1.1rem; }
.nv-swiper-wrap .swiper-pagination-bullet { background: rgba(255,255,255,.4); }
.nv-swiper-wrap .swiper-pagination-bullet-active { background: var(--nv-orange); }

/* ── DEPOIMENTOS ──────────────────────────────────────────────────── */
.nv-dep-card {
  background: var(--nv-navy-3);
  border: 1px solid var(--nv-border);
  border-radius: var(--nv-r);
  padding: 1.25rem;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.nv-dep-head {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: .85rem;
}

.nv-dep-avatar {
  width: 46px; height: 46px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--nv-navy-4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  color: var(--nv-w45);
}

.nv-dep-avatar img {
  width: 100%; height: 100%;
  object-fit: cover;
}

.nv-dep-name {
  font-weight: 600;
  font-size: .9rem;
  color: var(--nv-white);
}

.nv-dep-text {
  font-size: .85rem;
  color: var(--nv-w80);
  line-height: 1.65;
  flex: 1;
}

.nv-dep-link {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin-top: 1rem;
  font-size: .8rem;
  color: var(--nv-orange);
  text-decoration: none;
  font-weight: 600;
}

.nv-dep-link:hover { color: var(--nv-orange-2); }

/* ── BANNER CTA ───────────────────────────────────────────────────── */
.nv-banner {
  background: linear-gradient(120deg, var(--nv-navy-3) 0%, #0f1f35 50%, var(--nv-navy-3) 100%);
  border: 1px solid var(--nv-border);
  border-radius: 20px;
  padding: clamp(1.75rem, 4vw, 2.75rem) clamp(1.25rem, 3.5vw, 2.75rem);
  position: relative;
  overflow: hidden;
  margin: clamp(1.5rem, 3vw, 3rem) 0;
}

.nv-banner::before {
  content: "";
  position: absolute;
  right: -80px; top: -80px;
  width: 320px; height: 320px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(249,115,22,.18) 0%, transparent 65%);
  pointer-events: none;
}

.nv-banner__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.nv-banner__h {
  font-family: var(--nv-font-d);
  font-size: clamp(1.4rem, 3.5vw, 2rem);
  font-weight: 700;
  color: var(--nv-white);
  margin-bottom: .5rem;
}

.nv-banner__p {
  font-size: .9rem;
  color: var(--nv-w80);
  line-height: 1.6;
}

.nv-btn-lg {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  font-weight: 700;
  font-size: .95rem;
  padding: .85rem 1.75rem;
  background: var(--nv-orange);
  color: #fff;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  text-decoration: none;
  box-shadow: 0 0 28px -4px rgba(249,115,22,.55);
  transition: filter .2s, transform .15s;
  white-space: nowrap;
  align-self: flex-start;
}

.nv-btn-lg:hover {
  filter: brightness(1.08);
  transform: translateY(-2px);
  color: #fff;
}

/* ── NEWSLETTER ───────────────────────────────────────────────────── */
.nv-newsletter {
  background: var(--nv-navy-3);
  border: 1px solid var(--nv-border);
  border-radius: 20px;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  margin-bottom: 2rem;
}

.nv-newsletter h2 {
  font-family: var(--nv-font-d);
  font-weight: 700;
  font-size: clamp(1.2rem, 2.5vw, 1.6rem);
  color: var(--nv-white);
  margin-bottom: .5rem;
}

.nv-newsletter p {
  font-size: .88rem;
  color: var(--nv-w45);
  margin-bottom: 1.25rem;
}

.nv-nl-form {
  display: flex;
  gap: .5rem;
  flex-direction: column;
}

.nv-nl-input {
  flex: 1;
  background: var(--nv-navy-2);
  border: 1px solid var(--nv-border);
  border-radius: 10px;
  padding: .7rem 1rem;
  font-family: var(--nv-font-b);
  font-size: .9rem;
  color: var(--nv-white);
  outline: none;
  transition: border-color .2s;
}

.nv-nl-input::placeholder { color: var(--nv-w45); }
.nv-nl-input:focus { border-color: rgba(249,115,22,.5); }

/* ── FOOTER ───────────────────────────────────────────────────────── */
.nv-footer {
  background: var(--nv-navy-2);
  border-top: 1px solid var(--nv-border);
  padding: 2.5rem 0 0;
  margin-top: 2rem;
}

.nv-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-bottom: 2rem;
}

.nv-footer__brand-name {
  font-family: var(--nv-font-d);
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--nv-white);
  margin-bottom: .5rem;
}

.nv-footer__brand-sub {
  font-size: .8rem;
  color: var(--nv-w45);
  line-height: 1.65;
  margin-bottom: 1.1rem;
}

.nv-footer__social {
  display: flex;
  gap: .6rem;
}

.nv-social-btn {
  width: 36px; height: 36px;
  border-radius: 8px;
  background: var(--nv-w12);
  border: 1px solid var(--nv-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  color: var(--nv-w80);
  text-decoration: none;
  transition: background .2s, color .2s, border-color .2s;
}

.nv-social-btn:hover {
  background: var(--nv-orange);
  color: #fff;
  border-color: var(--nv-orange);
}

.nv-footer__col h4 {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--nv-w45);
  margin-bottom: .85rem;
}

.nv-footer__links {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .45rem;
}

.nv-footer__links a {
  font-size: .82rem;
  color: var(--nv-w80);
  text-decoration: none;
  transition: color .15s;
}

.nv-footer__links a:hover { color: var(--nv-orange); }

.nv-footer__contact {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .65rem;
}

.nv-footer__contact li {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  font-size: .82rem;
  color: var(--nv-w80);
}

.nv-footer__contact i {
  color: var(--nv-orange);
  width: 16px;
  text-align: center;
  flex-shrink: 0;
  margin-top: 2px;
}

.nv-footer__contact a {
  color: var(--nv-w80);
  text-decoration: none;
  transition: color .15s;
}

.nv-footer__contact a:hover { color: var(--nv-orange); }

.nv-footer__bottom {
  border-top: 1px solid var(--nv-border);
  padding: 1.1rem 0;
}

.nv-footer__bottom-in {
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 1.25rem;
  display: flex;
  flex-direction: column;
  gap: .65rem;
  align-items: center;
  text-align: center;
}

.nv-footer__copy {
  font-size: .74rem;
  color: var(--nv-w45);
}

.nv-footer__trust {
  display: flex;
  align-items: center;
  gap: .85rem;
  flex-wrap: wrap;
  justify-content: center;
}

.nv-trust-badge {
  display: flex;
  align-items: center;
  gap: .3rem;
  font-size: .72rem;
  color: var(--nv-w45);
  white-space: nowrap;
}

.nv-pix-icon {
  width: 13px; height: 13px;
  fill: var(--nv-w45);
  vertical-align: middle;
}

/* ── OVERRIDE BOOTSTRAP COMPONENTS para fundo navy ───────────────── */

/* alerts no contexto navy */
.alert { border-radius: 10px; }

/* form controls */
.form-control, .form-select {
  background: var(--nv-navy-3);
  border-color: var(--nv-border);
  color: var(--nv-white);
}

.form-control:focus, .form-select:focus {
  background: var(--nv-navy-3);
  border-color: rgba(249,115,22,.5);
  color: var(--nv-white);
  box-shadow: 0 0 0 3px rgba(249,115,22,.12);
}

.form-control::placeholder { color: var(--nv-w45); }

/* cards Bootstrap no fundo navy */
.card {
  background: var(--nv-navy-2);
  border-color: var(--nv-border);
  color: var(--nv-white);
}

.card-header, .card-footer {
  background: var(--nv-navy-3);
  border-color: var(--nv-border);
}

/* tabelas */
.table { color: var(--nv-white); }
.table-bordered td, .table-bordered th { border-color: var(--nv-border); }
.table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: rgba(255,255,255,.03);
}

/* badges Bootstrap */
.bg-primary { background-color: var(--nv-orange) !important; }

/* botões Bootstrap */
.btn-primary {
  background: var(--nv-orange);
  border-color: var(--nv-orange);
}

.btn-primary:hover, .btn-primary:focus {
  background: var(--nv-orange-2);
  border-color: var(--nv-orange-2);
}

.btn-outline-primary {
  color: var(--nv-orange);
  border-color: var(--nv-orange);
}

.btn-outline-primary:hover {
  background: var(--nv-orange);
  border-color: var(--nv-orange);
}

/* ── RESPONSIVE — tablet+ ─────────────────────────────────────────── */
@media (min-width: 576px) {
  .nv-course-grid { grid-template-columns: 1fr 1fr; }
  .nv-nl-form { flex-direction: row; }
  .nv-banner__inner { flex-direction: row; align-items: center; justify-content: space-between; }
  .nv-btn-lg { align-self: auto; }
}

@media (min-width: 768px) {
  .nv-nav__links { display: flex; }
  .nv-nav__search { display: flex; }
  .nv-hamburger { display: none; }
  .nv-nav__in .nv-btn-ghost  { display: inline-flex; }
  .nv-nav__in .nv-btn-orange { display: inline-flex; }

  .nv-hero__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 2.5rem;
  }

  .nv-hero__cards {
    height: 420px;
  }

  .nv-hcard { width: 200px; }
  .nv-hcard__thumb { height: 110px; }

  .nv-hcard:nth-child(1) { top: 10px; left: 0;    transform: rotate(-4deg); }
  .nv-hcard:nth-child(2) { top: 30px; left: 150px; transform: rotate(2deg);  }
  .nv-hcard:nth-child(3) { top: 220px; left: 40px; transform: rotate(-2deg); }
  .nv-hcard:nth-child(4) { top: 190px; left: 215px; transform: rotate(3.5deg); }

  .nv-course-grid { grid-template-columns: repeat(3, 1fr); }
  .nv-footer__grid { grid-template-columns: 1.8fr 1fr 1fr; }
  .nv-footer__bottom-in { flex-direction: row; justify-content: space-between; text-align: left; }
}

@media (min-width: 992px) {
  .nv-course-grid { grid-template-columns: repeat(4, 1fr); }
  .nv-footer__grid { grid-template-columns: 2fr 1fr 1fr 1.3fr; }

  .nv-hcard { width: 215px; }
  .nv-hcard__thumb { height: 120px; }
}

/* ── COOKIE BANNER navy ───────────────────────────────────────────── */
#cookie-banner {
  background: var(--nv-navy-3) !important;
  border-top: 1px solid var(--nv-border) !important;
  color: var(--nv-w80) !important;
}

/* ── Admin pages — não aplicar hero/home navy ─────────────────────── */
/* pages com .admin-layout mantêm tema claro Bootstrap */
body.admin-layout {
  background: #f8f9fa;
  color: #212529;
  font-family: var(--bs-font-sans-serif, system-ui, sans-serif);
}

/* ══════════════════════════════════════════════════════════════════
   NAVY UTILITIES — seções, cards, texto
   ══════════════════════════════════════════════════════════════════ */

/* Divisor de seção com borda navy */
.nv-section-divider {
  border-top: 1px solid var(--nv-border);
  border-bottom: 1px solid var(--nv-border);
}
.nv-section-divider:first-child { border-top: none; }

/* Seção CTA com fundo ligeiramente diferente */
.nv-cta-section { background: var(--nv-navy-2); }

/* Card interno (substitui div.bg-white.shadow-sm) */
.nv-inset-card {
  background: var(--nv-navy-3);
  border: 1px solid var(--nv-border);
  color: var(--nv-white);
}

/* Texto em secondary / muted no tema escuro */
.text-muted { color: var(--nv-w45) !important; }

/* Botão outline-secondary no tema navy */
.btn-outline-secondary {
  color: var(--nv-w80);
  border-color: rgba(255,255,255,.3);
}
.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
  background: var(--nv-navy-4);
  color: var(--nv-white);
  border-color: rgba(255,255,255,.5);
}

/* ── TABELAS — navy dark ──────────────────────────────────────────── */
.table {
  --bs-table-color:      var(--nv-white);
  --bs-table-bg:         transparent;
  --bs-table-border-color: var(--nv-border);
  --bs-table-striped-bg: rgba(255,255,255,.04);
  --bs-table-hover-bg:   rgba(255,255,255,.06);
  color: var(--nv-white);
}

.table > thead > tr > th {
  background: var(--nv-navy-3);
  color: var(--nv-orange-2);
  border-bottom: 2px solid var(--nv-border);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.table > :not(caption) > * > * { border-color: var(--nv-border) !important; }

/* ══════════════════════════════════════════════════════════════════
   MODAIS BOOTSTRAP — navy dark
   ══════════════════════════════════════════════════════════════════ */

.modal-content {
  background: var(--nv-navy-2);
  border: 1px solid var(--nv-border);
  color: var(--nv-white);
}

.modal-header {
  background: var(--nv-navy-3);
  border-bottom: 1px solid var(--nv-border);
}

.modal-footer {
  background: var(--nv-navy-3);
  border-top: 1px solid var(--nv-border);
}

/* X de fechar — inverte para branco */
.modal .btn-close {
  filter: invert(1) grayscale(100%) brightness(1.8);
  opacity: .7;
}
.modal .btn-close:hover { opacity: 1; }

/* Labels e texto auxiliar */
.modal-body .form-check-label { color: var(--nv-w80); }
.modal-body .text-muted,
.modal-body small { color: var(--nv-w45) !important; }

/* Form switch — trilho e bolinha no tema escuro */
.modal-body .form-check-input {
  background-color: var(--nv-navy-4);
  border-color: rgba(255,255,255,.25);
}
.modal-body .form-check-input:checked {
  background-color: var(--nv-orange);
  border-color: var(--nv-orange);
}
.modal-body .form-check-input:disabled { opacity: .45; }

/* Inputs dentro de modais */
.modal-body .form-control,
.modal-body .form-select {
  background: var(--nv-navy-3);
  border-color: var(--nv-border);
  color: var(--nv-white);
}
.modal-body .form-control:focus,
.modal-body .form-select:focus {
  background: var(--nv-navy-3);
  border-color: rgba(249,115,22,.5);
  color: var(--nv-white);
  box-shadow: 0 0 0 .25rem rgba(249,115,22,.15);
}
.modal-body .form-control::placeholder { color: var(--nv-w45); }

/* Labels do formulário DSAR */
.modal-body .form-label { color: var(--nv-w80); }

/* ══════════════════════════════════════════════════════════════════
   FILTROS SIDEBAR — /cursos  (.filtros-sidebar-card + offcanvas)
   _filtros.php tem <style> inline que carrega após navy.css → !important
   ══════════════════════════════════════════════════════════════════ */

.filtros-sidebar-card {
  background:   var(--nv-navy-2)   !important;
  border-color: var(--nv-border)   !important;
}
/* Header: remove gradiente roxo, usa navy-3 com borda */
.filtros-sidebar-card .card-header {
  background:   var(--nv-navy-3)   !important;
  border-bottom: 1px solid var(--nv-border) !important;
  color:        var(--nv-white)    !important;
}
.filtros-sidebar-card .card-body {
  background:   var(--nv-navy-2)   !important;
  color:        var(--nv-white)    !important;
}
/* Labels e textos */
.filtros-sidebar-card .form-label,
.filtros-sidebar-card label          { color: var(--nv-w80)  !important; }
.filtros-sidebar-card .text-muted    { color: var(--nv-w45)  !important; }
.filtros-sidebar-card hr             { border-color: var(--nv-border) !important; opacity: 1; }

/* Input de busca */
.filtros-sidebar-card .form-control {
  background:   var(--nv-navy-3) !important;
  border-color: var(--nv-border) !important;
  color:        var(--nv-white)  !important;
}
.filtros-sidebar-card .form-control:focus {
  border-color: rgba(249,115,22,.6)            !important;
  box-shadow:   0 0 0 .25rem rgba(249,115,22,.15) !important;
}
.filtros-sidebar-card .form-control::placeholder { color: var(--nv-w45) !important; }

/* Botão de busca (lupa) → laranja */
.filtros-sidebar-card .btn-primary {
  background:   var(--nv-orange) !important;
  border-color: var(--nv-orange) !important;
  color:        #fff             !important;
}
.filtros-sidebar-card .btn-primary:hover {
  background:   var(--nv-orange-2) !important;
  border-color: var(--nv-orange-2) !important;
}
/* Botão limpar filtros */
.filtros-sidebar-card .btn-outline-secondary {
  border-color: var(--nv-border) !important;
  color:        var(--nv-w80)    !important;
}
.filtros-sidebar-card .btn-outline-secondary:hover {
  background:   var(--nv-navy-4) !important;
  color:        var(--nv-white)  !important;
}

/* List-group itens (Modalidade + Categorias) */
.filtros-sidebar-card .list-group-item {
  background:   transparent     !important;
  border-color: var(--nv-border) !important;
  color:        var(--nv-w80)   !important;
}
.filtros-sidebar-card .list-group-item:hover {
  background:   var(--nv-navy-3) !important;
  color:        var(--nv-white)  !important;
  padding-left: 1.25rem; /* mantém animação original */
}
.filtros-sidebar-card .list-group-item.active {
  background:   var(--nv-orange) !important;
  border-color: var(--nv-orange) !important;
  color:        #fff             !important;
}
.filtros-sidebar-card .list-group-item.active:hover {
  background:   var(--nv-orange-2) !important;
}
.filtros-sidebar-card .list-group-item.active .badge {
  background:   rgba(255,255,255,.2) !important;
  color:        #fff                 !important;
}

/* Card footer (botão limpar) */
.filtros-sidebar-card .card-footer {
  background:   var(--nv-navy-3) !important;
  border-top:   1px solid var(--nv-border) !important;
}

/* Scrollbar da lista de categorias */
.categoria-scroll::-webkit-scrollbar-track { background: var(--nv-navy-3) !important; }
.categoria-scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2) !important; }
.filtros-sidebar-card::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2) !important; }

/* Offcanvas mobile (usa o mesmo _filtros.php) */
.offcanvas {
  background:   var(--nv-navy-2) !important;
  border-color: var(--nv-border) !important;
  color:        var(--nv-white)  !important;
}
.offcanvas-header {
  border-bottom: 1px solid var(--nv-border) !important;
}
.offcanvas-title { color: var(--nv-white) !important; }
.offcanvas .btn-close {
  filter: invert(1) grayscale(100%) brightness(1.8);
  opacity: .7;
}

/* ══════════════════════════════════════════════════════════════════
   MODAL "AVISE-ME QUANDO ABRIR" — #modal-fila-espera
   Tem inline style="background:#fff" → precisa !important
   ══════════════════════════════════════════════════════════════════ */

/* Caixa interna (curso.php usa .modal-content, cursos.php usa <div> direto) */
#modal-fila-espera > div,
#modal-fila-espera .modal-content {
  background: var(--nv-navy-2) !important;
  color:      var(--nv-white) !important;
  border:     1px solid var(--nv-border) !important;
  box-shadow: 0 24px 64px rgba(0,0,0,.6) !important;
}

#modal-fila-espera h3,
#modal-fila-espera h5 { color: var(--nv-white) !important; }

#modal-fila-espera p,
#modal-fila-espera .text-muted { color: var(--nv-w45) !important; }

#modal-fila-espera .form-label,
#modal-fila-espera label { color: var(--nv-w80) !important; }

#modal-fila-espera .form-control,
#modal-fila-espera input,
#modal-fila-espera select {
  background:   var(--nv-navy-3) !important;
  border-color: var(--nv-border) !important;
  color:        var(--nv-white) !important;
}
#modal-fila-espera .form-control:focus,
#modal-fila-espera input:focus {
  border-color: rgba(249,115,22,.6) !important;
  box-shadow:   0 0 0 .25rem rgba(249,115,22,.15) !important;
}
#modal-fila-espera .form-control::placeholder,
#modal-fila-espera input::placeholder { color: var(--nv-w45) !important; }

/* Botão "Quero ser avisado" → laranja */
#modal-fila-espera .btn-primary {
  background:   linear-gradient(135deg, var(--nv-orange) 0%, #ea580c 100%) !important;
  border-color: transparent !important;
  color:        #fff !important;
}
/* Botão "Fechar" → navy */
#modal-fila-espera .btn-secondary {
  background:   var(--nv-navy-4) !important;
  border-color: var(--nv-border) !important;
  color:        var(--nv-w80) !important;
}
#modal-fila-espera .btn-secondary:hover {
  background: var(--nv-navy-3) !important;
  color:      var(--nv-white) !important;
}

/* ══════════════════════════════════════════════════════════════════
   FIX: FORM-CHECK — escopo global (radio, checkbox, switch)
   Root cause: override anterior estava restrito a .modal-body
   Páginas afetadas: /recuperar-senha, qualquer form público
   ══════════════════════════════════════════════════════════════════ */
.form-check-input {
  background-color: var(--nv-navy-4);
  border-color: rgba(255,255,255,.25);
}
.form-check-input:checked {
  background-color: var(--nv-orange);
  border-color: var(--nv-orange);
}
.form-check-input:focus {
  border-color: rgba(249,115,22,.5);
  box-shadow: 0 0 0 .25rem rgba(249,115,22,.15);
  outline: 0;
}
.form-check-input:disabled { opacity: .45; }
.form-check-label { color: var(--nv-w80); }

/* ══════════════════════════════════════════════════════════════════
   FIX: COOKIE BANNER — botões com cores fora do tema navy
   Root cause: ScriptManager gera <style> com IDs #btn-* e cores do DB
   sem !important — nosso !important vence independente de ordem de carga
   ══════════════════════════════════════════════════════════════════ */
#btn-aceitar {
  background: var(--nv-orange) !important;
  color: #fff !important;
  font-weight: 700 !important;
}
#btn-aceitar:hover {
  background: var(--nv-orange-2) !important;
}
#btn-recusar {
  background: transparent !important;
  color: var(--nv-w80) !important;
  border: 1px solid rgba(255,255,255,.3) !important;
}
#btn-recusar:hover {
  background: var(--nv-navy-4) !important;
  color: var(--nv-white) !important;
}
#btn-preferencias {
  background: var(--nv-navy-4) !important;
  color: var(--nv-w80) !important;
  border: 1px solid var(--nv-border) !important;
}
#btn-preferencias:hover {
  background: var(--nv-navy-3) !important;
  color: var(--nv-white) !important;
}

/* ══════════════════════════════════════════════════════════════════
   LOGIN PAGE — painel esquerdo + fundo → navy dark
   Painel direito (laranja, .auth-pane--signup) permanece intacto
   ══════════════════════════════════════════════════════════════════ */

/* Fundo geral: substitui gradiente azul/branco por navy puro */
.auth-shell {
  background: var(--nv-navy) !important;
}
/* Remove textura de pontos azuis (invisível no dark, melhor sem) */
.auth-shell::before { display: none !important; }

/* Grid: fundo navy-2 (o painel laranja sobrescreve com seu próprio bg) */
.auth-grid {
  background: var(--nv-navy-2) !important;
  border-color: var(--nv-border) !important;
}

/* "Já sou aluno" → laranja no lugar do azul */
.auth-kicker { color: var(--nv-orange) !important; }

/* Título, subtítulo */
.auth-title { color: var(--nv-white) !important; }
.auth-sub   { color: var(--nv-w45)  !important; }

/* Labels e ícones */
.auth-field label       { color: var(--nv-w80) !important; }
.auth-input-wrap > i    { color: var(--nv-w45) !important; }

/* Inputs: fundo escuro, texto branco */
.auth-input {
  background:   var(--nv-navy-3) !important;
  border-color: var(--nv-border) !important;
  color:        var(--nv-white)  !important;
}
.auth-input:focus {
  background:   var(--nv-navy-3)              !important;
  border-color: rgba(249,115,22,.6)           !important;
  box-shadow:   0 0 0 4px rgba(249,115,22,.15)!important;
  color:        var(--nv-white)               !important;
}
.auth-input::placeholder { color: var(--nv-w45) !important; }

/* Botão revelar senha */
.auth-reveal       { color: var(--nv-w45) !important; background: none !important; }
.auth-reveal:hover { color: var(--nv-orange) !important; background: rgba(249,115,22,.1) !important; }

/* Botão "Entrar" → laranja (coerente com o tema) */
.auth-btn--primary {
  background: linear-gradient(135deg, var(--nv-orange) 0%, #ea580c 100%) !important;
  box-shadow: 0 16px 30px -14px rgba(249,115,22,.55) !important;
}
.auth-btn--primary:hover {
  box-shadow: 0 20px 38px -14px rgba(249,115,22,.7) !important;
}

/* "Esqueceu a senha?" */
.auth-forgot       { color: var(--nv-w45)    !important; }
.auth-forgot:hover { color: var(--nv-orange) !important; text-decoration: underline; }

/* "Recuperar acesso" link pós-erro */
.auth-alert-recuperar       { color: var(--nv-orange)   !important; }
.auth-alert-recuperar:hover { color: var(--nv-orange-2) !important; }

/* Selos de confiança na base */
.auth-trust      { color: var(--nv-w45)    !important; }
.auth-trust span { color: var(--nv-w45)    !important; }
.auth-trust i    { color: var(--nv-orange) !important; }

/* Alert de erro de login */
.auth-alert {
  background:   rgba(239,68,68,.12)    !important;
  border-color: rgba(239,68,68,.35)    !important;
  color:        #fca5a5                !important;
}

/* Separador "ou" no mobile */
.auth-or { color: var(--nv-w45) !important; }
.auth-or::before,
.auth-or::after { background: var(--nv-border) !important; }

/* Banner "você está quase lá" (compra pendente) */
.auth-banner {
  background: linear-gradient(110deg, var(--nv-navy-3) 0%, var(--nv-navy-2) 100%) !important;
  border: 1px solid var(--nv-border);
  box-shadow: 0 18px 40px -22px rgba(0,0,0,.5) !important;
}
