/*
 * ============================================================
 *  Ortogeo – Estilos Principais
 *  Arquivo : css/style.css
 *  Descrição: Design system completo do site
 * ============================================================
 *
 *  ÍNDICE:
 *   1.  Reset & Base
 *   2.  Variáveis CSS (:root)
 *   3.  Tipografia & Utilitários
 *   4.  Botões
 *   5.  Header & Navegação Desktop
 *   6.  Navegação Mobile
 *   7.  Hero (Home)
 *   8.  Page Hero (Breadcrumb)
 *   9.  Segunda Dobra (About)
 *  10.  Feature Cards
 *  11.  Parceiros
 *  12.  Carousel
 *  13.  Modal de Professores
 *  14.  Cards de Professores
 *  15.  Detalhe de Professor
 *  16.  News / Blog
 *  17.  Categorias de Cursos
 *  18.  Detalhe de Curso
 *  19.  Formulário de Matrícula
 *  20.  Página Sobre
 *  21.  Contato
 *  22.  Localização
 *  23.  Compliance
 *  24.  Footer
 *  25.  Flutuantes (WhatsApp, Cookie)
 *  26.  Responsivo (1024px, 900px, 600px)
 *  27.  Animações
 *
 * ============================================================
 *
 *  COMO ALTERAR AS CORES:
 *  Edite as variáveis em :root (Seção 2):
 *    --pink        → Rosa principal  (#BE7F87)
 *    --pink-dark   → Hover / escuro  (#a66970)
 *    --pink-light  → Rosa claro      (#d49aa2)
 *    --dark        → Texto escuro    (#1a1218)
 *
 * ============================================================
 */

*,*::before,*::after {
  box-sizing:border-box;
  margin:0;
  padding:0
}

:root {
  
  --pink:#BE7F87;
  --pink-dark:#a66970;
  --pink-light:#d49aa2;
  
  --white:#fff;
  --off-white:#fdf8f8;
  --light:#f5eef0;
  
  --gray-bg:#e9e9e9;
  --gray:#6b7280;
  --dark:#1a1218;
  --text:#374151;
  
  --border:#e8d8da;
  
  --shadow:0 4px 24px rgba(190,127,135,.12);
  
  --shadow-lg:0 16px 48px rgba(190,127,135,.18);
  
  --radius:14px;
  --radius-lg:22px;
  

}

html {
  scroll-behavior:smooth
}

/* Accessibility */
:focus-visible {
  outline:2px solid var(--pink);
  outline-offset:2px;
  border-radius:4px
}

body {
  font-family:'Nunito Sans',sans-serif;
  color:var(--text);
  background:#fff;
  line-height:1.65
}

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

a {
  text-decoration:none;
  color:inherit
}

ul {
  list-style:none
}

h1,h2,h3 {
  font-family:'Montserrat',sans-serif;
  font-weight: 800
}

.wrap {
  max-width:1200px;
  margin:0 auto;
  padding:0 24px
}

.section {
  padding:88px 0
}

.section--alt {
  background:var(--off-white)
}

.section-eyebrow {
  font-size:11px;
  font-weight:800;
  letter-spacing:3px;
  text-transform:uppercase;
  color:var(--pink);
  margin-bottom:10px;
  display:block
}

.section-title {
  font-size:clamp(28px,3.5vw,42px);
  color:var(--dark);
  line-height:1.2;
  margin-bottom:16px
}

.section-title span {
  color:var(--pink)
}

.section-sub {
  color:var(--gray);
  font-size:16px;
  max-width:580px;
  margin-bottom:48px;
  line-height:1.75
}

.accent-bar {
  width:48px;
  height:4px;
  background:var(--pink);
  border-radius:2px;
  margin-bottom:18px
}

.text-center {
  text-align:center
}

.mt-40 {
  margin-top:40px
}

/* BUTTONS */
.btn {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'Nunito Sans',sans-serif;
  font-weight:800;
  font-size:14px;
  padding:14px 32px;
  border-radius:50px;
  border:none;
  cursor:pointer;
  transition:all .25s;
  text-decoration:none;
  letter-spacing:.3px
}

.btn-primary {
  background:var(--pink);
  color:#fff;
  box-shadow:0 6px 24px rgba(190,127,135,.35)
}

.btn-primary:hover {
  background:var(--pink-dark);
  transform:translateY(-2px)
}

.btn-outline-pink {
  background:transparent;
  color:var(--pink);
  border:2px solid var(--pink)
}

.btn-outline-pink:hover {
  background:var(--pink);
  color:#fff
}

.btn-back {
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--pink);
  font-weight:800;
  font-size:14px;
  background:var(--light);
  padding:10px 22px;
  border-radius:50px;
  border:1.5px solid var(--border);
  transition:all .2s;
  cursor:pointer;
  font-family:'Nunito Sans',sans-serif
}

.btn-back:hover {
  background:var(--pink);
  color:#fff
}

/* ── HEADER ── */
.site-header {
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:1000;
  background:#B16770;
  height:74px;
  box-shadow:0 2px 20px rgba(0,0,0,.18)
}

.navbar {
  max-width:1200px;
  margin:0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 24px;
  height:100%
}

.navbar__logo img {
  height:60px;
  filter:brightness(0) invert(1)
}

.navbar__menu {
  display:flex;
  align-items:center;
  gap:2px
}

.nav-item {
  position:relative
}

.nav-item>a {
  display:block;
  padding:9px 13px;
  font-size:16px;
  font-weight:700;
  color:#fff;
  border-radius:8px;
  transition:background .2s,color .2s;
  white-space:nowrap;
  opacity:.9
}

.nav-item>a:hover,.nav-item.active>a {
  background:rgba(0,0,0,.18);
  color:#fff;
  opacity:1
}

.dropdown {
  position:absolute;
  top:100%;
  left:0;
  min-width:260px;
  display:none;
  z-index:900
}

.nav-item:hover>.dropdown {
  display:block
}

.dropdown::before {
  content:'';
  position:absolute;
  top:-8px;
  left:0;
  right:0;
  height:8px
}

.dropdown__inner {
  background:#fff;
  border:1px solid var(--border);
  border-top:3px solid var(--pink);
  border-radius:0 0 12px 12px;
  box-shadow:0 12px 40px rgba(0,0,0,.12);
  padding:6px 0
}

.dropdown__inner a {
  display:block;
  padding:10px 18px;
  font-size:14px;
  font-weight:600;
  color:var(--text);
  transition:background .15s,color .15s
}

.dropdown__inner a:hover {
  background:var(--light);
  color:var(--pink)
}

.has-sub {
  position:relative
}

.has-sub>.subdrop {
  position:absolute;
  left:100%;
  top:0;
  min-width:280px;
  display:none;
  padding-left:4px
}

.has-sub:hover>.subdrop {
  display:block
}

.subdrop .dropdown__inner {
  border-radius:0 12px 12px 12px
}

.navbar__toggle {
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;
  border:none;
  cursor:pointer;
  padding:8px
}

.navbar__toggle span {
  display:block;
  width:24px;
  height:2.5px;
  background:#fff;
  border-radius:2px;
  transition:all .3s
}

.page {
  display:none
}

.page.active {
  display:block
}




/* ── Hamburger → X animation ── */
.navbar__toggle .bar1,
.navbar__toggle .bar2,
.navbar__toggle .bar3 {
  display: block;
  width: 24px;
  height: 2.5px;
  background: #fff;
  border-radius: 2px;
  transition: all .3s ease;
  transform-origin: center;
}
.navbar__toggle.is-open .bar1 {
  transform: translateY(7.5px) rotate(45deg);
}
.navbar__toggle.is-open .bar2 {
  opacity: 0;
  transform: scaleX(0);
}
.navbar__toggle.is-open .bar3 {
  transform: translateY(-7.5px) rotate(-45deg);
}

/* ── HERO ── */
.hero {
  position:relative;
  min-height:72vh;
  display:flex;
  align-items:center;
  overflow:hidden;
  margin-top:74px
}

.hero__video-wrap {
  position:absolute;
  inset:0;
  overflow:hidden
}

.hero__video-wrap video {
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.2);
  transform-origin:center center
}

/* Hero overlay gradient */
.hero__video-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, .50) 0%,
    rgba(190, 126, 134, .50) 100%
  )
}

.hero__content {
  position:relative;
  z-index:2;
  max-width:1200px;
  margin:0 auto;
  padding:80px 24px;
  width:100%
}

.hero__tag {
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.35);
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:3px;
  text-transform:uppercase;
  padding:7px 18px;
  border-radius:50px;
  margin-bottom:28px
}

.hero__title {
  font-size:clamp(38px,5.5vw,68px);
  font-weight:800;
  color:#fff;
  line-height:1.08;
  margin-bottom:24px;
  max-width:640px;
  text-shadow:0 2px 24px rgba(0,0,0,.7), 0 1px 6px rgba(0,0,0,.5)
}

.hero__title em {
  color:#f5c6cb;
  font-style:normal;
  display:block
}

.hero__desc {
  font-size:17px;
  color:rgba(255,255,255,.92);
  max-width:500px;
  line-height:1.8;
  margin-bottom:42px;
  font-weight:600
}

.hero__actions {
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:72px
}

.hero__stats {
  display:flex;
  gap:0;
  border-top:1px solid rgba(255,255,255,.3);
  padding-top:40px;
  max-width:520px
}

.hero__stat {
  flex:1;
  padding-right:32px;
  border-right:1px solid rgba(255,255,255,.2);
  margin-right:32px
}

.hero__stat:last-child {
  border-right:none;
  margin-right:0;
  padding-right:0
}

.hero__stat-num {
  display:block;
  font-family:'Montserrat',sans-serif;
  font-size:44px;
  font-weight:700;
  color:#fff;
  line-height:1;
  margin-bottom:6px
}

.hero__stat-label {
  font-size:11px;
  color:rgba(255,255,255,.75);
  text-transform:uppercase;
  letter-spacing:2px;
  font-weight:700
}

/* ── PAGE HERO: breadcrumb only, no gray bar ── */
.page-hero {
  
  background:transparent;
  
  padding:12px 24px 0;
  
  text-align:left;
  
  position:relative;
  
  margin-top:74px;
  

}

.page-hero__bread {
  font-size:12px;
  color:#888;
  margin-bottom:0;
  position:relative;
  padding:2px 0
}

.page-hero__bread a {
  color:var(--pink-dark);
  font-weight:700
}

.page-hero__bread a:hover {
  text-decoration:underline
}

.page-hero h1 {
  display:none
}

.page-hero p:not(.page-hero__bread) {
  display:none
}

/* ── ABOUT ── */
/* Second fold: image 50% width */
.about-grid-home {
  display:grid;
  grid-template-columns:50% 1fr;
  gap:56px;
  align-items:center
}

.about-img-home {
  width:100%;
  height:auto;
  object-fit:contain;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg)
}

.about-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:56px;
  align-items:center
}

.about-img-wrap img {
  width:100%;
  height:auto;
  object-fit:cover;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg)
}

.about-text p {
  color:#4b5563;
  line-height:1.9;
  font-size:15.5px;
  margin-bottom:18px
}

.about-pills {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:28px
}

.pill {
  background:var(--light);
  color:var(--pink);
  padding:8px 18px;
  border-radius:50px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.5px;
  border:1.5px solid rgba(190,127,135,.2)
}

/* ── FEATURES ── */
.features-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px
}

.feature-card {
  background:#fff;
  border-radius:var(--radius-lg);
  padding:40px 32px;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  border-top:4px solid var(--pink);
  transition:transform .25s,box-shadow .25s;
  display:block;
  color:inherit;
  text-decoration:none;
  text-align:center
}

.feature-card:hover {
  transform:translateY(-6px);
  box-shadow:var(--shadow-lg)
}

.feature-card__icon {
  width:76px;
  height:76px;
  border-radius:18px;
  background:var(--light);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:32px;
  color:var(--pink);
  margin:0 auto 22px
}

.feature-card h4 {
  font-size:17px;
  color:var(--dark);
  margin-bottom:12px
}

.feature-card p {
  font-size:14px;
  color:var(--gray);
  line-height:1.75
}

/* ── PARTNERS ── */
.partners-row {
  display:flex;
  gap:32px;
  align-items:center;
  flex-wrap:wrap;
  justify-content:center
}

.partner-card {
  background:#fff;
  padding:24px 48px;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  transition:transform .2s,box-shadow .2s
}

.partner-card:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg)
}

.partner-card img {
  height:60px;
  object-fit:contain
}

/* ── CAROUSEL: fixed centring ── */
.carousel-outer {
  position:relative;
  padding:0 52px
}

.carousel-wrap {
  overflow:hidden;
  width:100%
}

.carousel-track {
  display:flex;
  gap:20px;
  transition:transform .4s cubic-bezier(.25,.46,.45,.94);
  will-change:transform
}

/* card width set dynamically by JS */
.carousel-btn {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:var(--pink);
  color:#fff;
  border:none;
  cursor:pointer;
  width:44px;
  height:44px;
  border-radius:50%;
  font-size:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 4px 16px rgba(190,127,135,.4);
  transition:background .2s;
  z-index:10;
  flex-shrink:0
}

.carousel-btn:hover {
  background:var(--pink-dark)
}

.carousel-btn.prev {
  left:0
}

.carousel-btn.next {
  right:0
}

.carousel-dots {
  display:flex;
  justify-content:center;
  gap:8px;
  margin-top:28px
}

.carousel-dot {
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--border);
  border:none;
  cursor:pointer;
  transition:background .2s,transform .2s;
  padding:0
}

.carousel-dot.active {
  background:var(--pink);
  transform:scale(1.3)
}

/* ── PROF MODAL ── */
.prof-modal-overlay {
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.55);
  z-index:2000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s
}

.prof-modal-overlay.open {
  opacity:1;
  pointer-events:all
}

.prof-modal {
  background:#fff;
  border-radius:var(--radius-lg);
  max-width:760px;
  width:100%;
  max-height:90vh;
  overflow-y:auto;
  box-shadow:0 24px 72px rgba(0,0,0,.22);
  position:relative;
  transform:translateY(20px);
  transition:transform .25s
}

.prof-modal-overlay.open .prof-modal {
  transform:translateY(0)
}

.prof-modal__close {
  position:absolute;
  top:16px;
  right:16px;
  background:var(--light);
  border:none;
  border-radius:50%;
  width:36px;
  height:36px;
  cursor:pointer;
  font-size:18px;
  color:var(--gray);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .2s,color .2s;
  z-index:10
}

.prof-modal__close:hover {
  background:var(--pink);
  color:#fff
}

.prof-modal__body {
  padding:36px
}

/* Mobile modal: circular avatar */
@media(max-width:600px) {
  
  .prof-modal__body {
  padding:24px 20px
}

  .prof-detail-layout {
  grid-template-columns:1fr !important;
  gap:20px
}

  .prof-detail-photo {
  width:100px !important;
  height:100px !important;
  border-radius:50% !important;
  object-fit:cover;
  margin:0 auto;
  display:block
}

}

/* ── PROF CARDS ── */
.profs-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px
}

.prof-card {
  background:#fff;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  text-align:center;
  transition:transform .25s,box-shadow .25s;
  cursor:pointer
}

.prof-card:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow-lg)
}

.prof-card__photo {
  width:100%;
  height:220px;
  object-fit:cover;
  object-position:top
}

.prof-card__body {
  padding:18px 14px 22px;
  border-top:3px solid var(--pink)
}

.prof-card__body h5 {
  font-size:14px;
  font-weight:800;
  color:var(--dark);
  margin-bottom:5px
}

.prof-card__body span {
  font-size:12px;
  color:var(--gray)
}

/* ── PROF DETAIL ── */
.prof-detail-layout {
  display:grid;
  grid-template-columns:300px 1fr;
  gap:52px;
  align-items:start;
  max-width:900px
}

.prof-detail-photo {
  width:100%;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg)
}

.prof-detail-role {
  font-size:15px;
  color:var(--pink);
  font-weight:700;
  margin-bottom:20px
}

.prof-detail-bio {
  list-style:none;
  padding:0
}

.prof-detail-bio li {
  color:#4b5563;
  line-height:1.9;
  font-size:15px;
  margin-bottom:8px;
  padding-left:18px;
  position:relative
}

.prof-detail-bio li::before {
  content:'•';
  color:var(--pink);
  position:absolute;
  left:0
}

.prof-ig {
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--pink);
  font-weight:700;
  font-size:14px;
  margin-top:20px;
  padding:10px 20px;
  border-radius:50px;
  border:1.5px solid var(--pink);
  transition:all .2s
}

.prof-ig:hover {
  background:var(--pink);
  color:#fff
}

/* ── NEWS ── */
.news-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px
}

.news-card {
  background:#fff;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  text-decoration:none;
  color:inherit;
  transition:transform .25s,box-shadow .25s
}

.news-card:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow-lg)
}

.news-card__img {
  width:100%;
  height:auto;
  display:block
}

.news-card__body {
  padding:18px
}

.news-card__body h5 {
  font-size:14px;
  font-weight:700;
  color:var(--dark);
  line-height:1.5;
  margin-bottom:8px
}

/* Blog grid – 3 cols */
.blog-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px
}

/* ── CATEGORIES ── */
.cat-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:28px;
  max-width:960px;
  margin:0 auto
}

.cat-card {
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  transition:transform .25s,box-shadow .25s;
  display:block;
  text-decoration:none;
  color:inherit;
  cursor:pointer
}

.cat-card:hover {
  transform:translateY(-5px);
  box-shadow:var(--shadow-lg)
}

.cat-card img {
  width:100%;
  height:230px;
  object-fit:cover
}

.cat-card__body {
  background:#fff;
  padding:24px 28px;
  border-top:4px solid var(--pink)
}

.cat-card__body h4 {
  font-size:19px;
  color:var(--pink);
  margin-bottom:8px
}

.cat-card__body p {
  font-size:14px;
  color:var(--gray)
}

/* ── COURSE DETAIL ── */
.course-layout {
  display:grid;
  grid-template-columns:1fr 340px;
  gap:52px;
  align-items:start
}

.course-hero-img {
  width:100%;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  margin-bottom:20px
}

.course-content h2 {
  font-size:20px;
  color:var(--pink);
  margin:28px 0 12px
}

.course-content p {
  color:#4b5563;
  line-height:1.9;
  margin-bottom:12px;
  font-size:15px
}

.course-content ul {
  padding-left:20px;
  margin-bottom:12px;
  color:#4b5563;
  font-size:15px;
  line-height:1.9
}

.course-content ul li {
  margin-bottom:5px;
  list-style:disc
}

.course-tabs {
  display:flex;
  border-bottom:2px solid var(--border);
  margin-bottom:20px
}

.ctab {
  padding:13px 26px;
  font-size:14px;
  font-weight:800;
  color:var(--gray);
  cursor:pointer;
  border-bottom:3px solid transparent;
  margin-bottom:-2px;
  transition:color .2s,border-color .2s
}

.ctab.active {
  color:var(--pink);
  border-bottom-color:var(--pink)
}

.course-sidebar {
  position:sticky;
  top:94px
}

.sidebar-box {
  background:#fff;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  border:1px solid var(--border);
  overflow:hidden
}

.sidebar-box__head {
  background:var(--pink);
  color:#fff;
  padding:22px 26px
}

.sidebar-box__head h3 {
  font-size:18px
}

.sidebar-info {
  padding:24px
}

.info-row {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  padding:12px 0;
  border-bottom:1px solid var(--border);
  font-size:14px;
  gap:12px
}

.info-row:last-child {
  border-bottom:none
}

.info-row .lbl {
  color:var(--gray);
  font-weight:700;
  white-space:nowrap
}

.info-row .val {
  color:var(--dark);
  font-weight:700;
  text-align:right
}

.sidebar-cta {
  padding:0 24px 26px;
  display:flex;
  flex-direction:column;
  gap:10px
}

.sidebar-cta .btn {
  text-align:center;
  justify-content:center
}

/* ── ENROLLMENT FORM ── */
.enroll-form {
  background:#fff;
  padding:38px;
  border-radius:var(--radius-lg);
  border:1px solid var(--border);
  width:100%;
  box-shadow:var(--shadow)
}

.enroll-form h3 {
  font-size:22px;
  color:var(--dark);
  margin-bottom:6px;
  padding-bottom:16px;
  border-bottom:1px solid var(--border)
}

.form-sub {
  font-size:14px;
  color:var(--gray);
  margin-bottom:24px;
  margin-top:8px
}

.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px
}

.frow-1col { grid-template-columns:1fr }
.frow-3col { grid-template-columns:1fr 1fr 1fr }
.frow-cep  { grid-template-columns:160px 1fr }

.fgroup {
  margin-bottom:14px
}

.fgroup label {
  display:block;
  font-size:12px;
  font-weight:800;
  color:#4b5563;
  margin-bottom:7px;
  text-transform:uppercase;
  letter-spacing:.5px
}

/* Icon-style inputs matching original */
.fgroup--icon {
  position:relative;
  margin-bottom:14px;
  overflow:visible
}
.field-error {
  color:#e05a6a;
  font-size:11px;
  margin-top:5px;
  padding-left:4px;
  font-family:'Nunito Sans',sans-serif;
  display:block
}

.fgroup--icon .ficon {
  position:absolute;
  left:16px;
  top:0;
  height:48px;
  transform:none;
  color:var(--pink-light);
  font-size:14px;
  pointer-events:none;
  z-index:1;
  width:20px;
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center
}

.fgroup--icon input,
.fgroup--icon select {
  width:100%;
  padding:13px 16px 13px 48px !important;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:13px;
  font-family:'Nunito Sans',sans-serif;
  background:#fafafa;
  color:var(--text);
  transition:border-color .2s,background .2s;
  -webkit-appearance:none;
  appearance:none
}

.fgroup--icon input::placeholder {
  color:#aaa;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.5px
}

.fgroup--icon input:focus,
.fgroup--icon select:focus {
  outline:none;
  border-color:var(--pink);
  background:#fff
}

.fgroup--select::after {
  content:'\f107';
  font-family:'Font Awesome 6 Free';
  font-weight:900;
  position:absolute;
  right:14px;
  top:50%;
  transform:translateY(-50%);
  color:var(--pink-light);
  pointer-events:none;
  font-size:13px
}

.fgroup--select select {
  color:#aaa;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.5px
}

.fgroup--select select option {
  color:var(--text);
  font-size:14px;
  text-transform:none;
  letter-spacing:0
}

.fgroup input,.fgroup select,.fgroup textarea {
  width:100%;
  padding:13px 16px;
  border:1.5px solid var(--border);
  border-radius:10px;
  font-size:14px;
  font-family:'Nunito Sans',sans-serif;
  background:#fff;
  color:var(--text);
  transition:border .2s,box-shadow .2s
}

.fgroup input:focus,.fgroup select:focus,.fgroup textarea:focus {
  outline:none;
  border-color:var(--pink);
  box-shadow:0 0 0 3px rgba(190,127,135,.12)
}

.fgroup textarea {
  height:110px;
  resize:vertical
}

.enroll-doc-label p {
  font-size:13px;
  color:var(--dark);
  margin-bottom:0
}

.file-upload-area {
  border:2px dashed var(--border);
  border-radius:10px;
  padding:28px 24px;
  text-align:center;
  cursor:pointer;
  transition:border-color .2s,background .2s;
  background:#f8f4f5;
  position:relative
}

.file-upload-area:hover {
  border-color:var(--pink);
  background:var(--light)
}

.file-upload-area input[type=file] {
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
  width:100%;
  height:100%
}

.file-upload-area .fua-icon {
  font-size:24px;
  color:var(--pink);
  margin-bottom:10px
}

.file-upload-area p {
  font-size:13px;
  color:var(--gray);
  margin:0
}

.file-upload-area strong {
  color:var(--pink)
}

/* Enroll submit button — dark style matching original */
.btn-enroll {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  padding:16px 24px;
  background:var(--dark);
  color:#fff;
  border:none;
  border-radius:10px;
  font-size:15px;
  font-weight:700;
  font-family:'Montserrat',sans-serif;
  cursor:pointer;
  margin-top:8px;
  transition:background .2s,transform .15s
}

.btn-enroll:hover {
  background:#2d2030;
  transform:translateY(-1px)
}

.file-list {
  margin-top:10px;
  display:flex;
  flex-direction:column;
  gap:6px
}

.file-item {
  display:flex;
  align-items:center;
  gap:10px;
  background:#fff;
  border:1px solid var(--border);
  border-radius:8px;
  padding:7px 12px;
  font-size:13px
}

.file-item i {
  color:var(--pink)
}

.file-item span {
  flex:1;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.file-item button {
  background:none;
  border:none;
  color:var(--gray);
  cursor:pointer;
  font-size:15px;
  padding:0 4px
}

.file-item button:hover {
  color:#e53e3e
}

.cep-status {
  font-size:12px;
  margin-top:5px;
  min-height:16px
}

.cep-status.ok {
  color:#059669
}
.cep-status.err {
  color:#dc2626
}

.form-divider {
  border:none;
  border-top:1px solid var(--border);
  margin:22px 0
}

.form-section-title {
  font-size:13px;
  font-weight:800;
  color:var(--pink);
  text-transform:uppercase;
  letter-spacing:1px;
  margin-bottom:16px
}

.form-success {
  display:none;
  margin-top:20px;
  padding:16px 20px;
  background:#d1fae5;
  color:#065f46;
  border-radius:10px;
  font-weight:700;
  font-size:15px
}

.required-note {
  font-size:12px;
  color:var(--gray);
  margin-bottom:20px
}

/* ── SOBRE / ORTOGEO PAGE ── */
/* Layout: left=video+text, right=text continues;
   below 3 cards;
   below reestruct */
.sobre-hero-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:start;
  margin-bottom:56px
}

.sobre-video-wrap {
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-lg)
}

.sobre-video-wrap iframe {
  width:100%;
  height:300px;
  border:none;
  display:block
}

.sobre-info-col h2 {
  font-size:28px;
  color:var(--dark);
  margin-bottom:16px
}

.sobre-info-col p {
  color:#4b5563;
  line-height:1.9;
  font-size:15px;
  margin-bottom:12px
}

.sobre-stats {
  display:flex;
  gap:20px;
  margin:20px 0
}

.sobre-stat {
  background:var(--light);
  padding:18px 28px;
  border-radius:var(--radius);
  text-align:center;
  border:1px solid var(--border)
}

.sobre-stat strong {
  display:block;
  font-family:'Montserrat',sans-serif;
  font-size:32px;
  color:var(--pink);
  line-height:1
}

.sobre-stat span {
  font-size:11px;
  color:var(--gray);
  text-transform:uppercase;
  letter-spacing:1px;
  font-weight:800
}

.mvv-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  margin-bottom:56px
}

.mvv-card {
  background:var(--light);
  border-radius:var(--radius);
  padding:28px 24px;
  border-top:3px solid var(--pink)
}

.mvv-card h4 {
  font-size:13px;
  font-weight:800;
  color:var(--pink);
  text-transform:uppercase;
  letter-spacing:1px;
  margin-bottom:10px
}

.mvv-card p {
  font-size:14px;
  color:#4b5563;
  line-height:1.7
}

.reestruct-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center
}

.reestruct-img {
  width:100%;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg)
}

/* ── CONTACT ── */
.contact-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  align-items:start
}

.contact-info h3 {
  font-size:24px;
  color:var(--pink);
  margin-bottom:28px
}

.cinfo-item {
  display:flex;
  gap:16px;
  align-items:flex-start;
  margin-bottom:26px
}

.cinfo-icon {
  font-size:20px;
  color:var(--pink);
  flex-shrink:0;
  margin-top:3px
}

.cinfo-item strong {
  display:block;
  color:var(--dark);
  margin-bottom:3px;
  font-weight:800
}

.cinfo-item p {
  color:#4b5563;
  font-size:15px;
  line-height:1.65
}

/* ── LOCATION ── */
.location-layout {
  display:grid;
  grid-template-columns:360px 1fr;
  gap:50px;
  align-items:start
}

.map-box {
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow-lg)
}

.map-box iframe {
  width:100%;
  height:460px;
  border:none;
  display:block
}

/* ── COMPLIANCE ── */
.compliance-img-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  max-width:760px;
  margin:48px auto 0
}

.compliance-doc-card {
  text-decoration:none;
  color:inherit;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:var(--shadow);
  border:1px solid var(--border);
  transition:transform .2s,box-shadow .2s;
  cursor:pointer;
  display:block
}

.compliance-doc-card:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg)
}

.compliance-doc-card img {
  width:100%;
  height:auto;
  display:block
}

.compliance-doc-card .doc-label {
  padding:16px 20px;
  background:#fff;
  border-top:3px solid var(--pink);
  font-weight:800;
  font-size:15px;
  color:var(--dark)
}

/* PDF viewer embed */
.pdf-viewer {
  width:100%;
  height:80vh;
  border:none;
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  display:block
}

/* ── FOOTER ── */
.site-footer {
  background:var(--dark);
  color:rgba(255,255,255,.7);
  padding:72px 0 0
}

.footer-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr 1fr;
  gap:48px;
  padding-bottom:52px
}

.footer-brand__logo {
  height:46px;
  margin-bottom:22px;
  filter:brightness(0) invert(1)
}

.footer-brand p {
  font-size:14px;
  line-height:1.85;
  color:rgba(255,255,255,.5);
  margin-bottom:8px
}

.footer-brand a {
  color:rgba(255,255,255,.5);
  font-size:14px;
  display:block;
  margin-bottom:7px;
  transition:color .2s
}

.footer-brand a:hover {
  color:var(--pink-light)
}

.footer-col h4 {
  font-size:11px;
  font-weight:800;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:2px;
  margin-bottom:20px
}

.footer-col ul li {
  margin-bottom:10px
}

.footer-col ul li a {
  color:rgba(255,255,255,.5);
  font-size:14px;
  font-weight:600;
  transition:color .2s
}

.footer-col ul li a:hover {
  color:var(--pink-light)
}

.social-links {
  display:flex;
  gap:10px;
  margin-top:24px
}

.social-links a {
  width:38px;
  height:38px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:15px;
  transition:background .2s,transform .2s
}

.social-links a:hover {
  background:var(--pink);
  transform:translateY(-3px)
}

.footer-bottom {
  border-top:1px solid rgba(255,255,255,.07);
  padding:22px 0;
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:13px;
  color:rgba(255,255,255,.3)
}

.footer-bottom a {
  color:var(--pink-light)
}

/* ── FLOAT ── */
.whatsapp-btn {
  position:fixed;
  bottom:28px;
  right:28px;
  z-index:900;
  width:58px;
  height:58px;
  border-radius:50%;
  background:#25D366;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:28px;
  box-shadow:0 6px 24px rgba(37,211,102,.45);
  transition:transform .2s
}

.whatsapp-btn:hover {
  transform:scale(1.1)
}

#cookie-bar {
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:9999;
  background:rgba(26,18,24,.97);
  color:#fff;
  padding:16px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  box-shadow:0 -4px 28px rgba(0,0,0,.4)
}

#cookie-bar p {
  font-size:14px;
  color:rgba(255,255,255,.75)
}

#cookie-bar a {
  color:var(--pink-light)
}

#cookie-bar button {
  background:var(--pink);
  color:#fff;
  border:none;
  padding:10px 28px;
  border-radius:50px;
  cursor:pointer;
  font-family:'Nunito Sans',sans-serif;
  font-weight:800;
  font-size:13px;
  white-space:nowrap
}

/* ── RESPONSIVE ── */
@media(max-width:1024px) {
  
  .profs-grid {
  grid-template-columns:repeat(3,1fr)
}

  .footer-grid {
  grid-template-columns:1fr 1fr
}

  .course-layout {
  grid-template-columns:1fr;
  display:flex;
  flex-direction:column;
  gap:16px
}

  .course-sidebar {
  position:static;
  order:2;
  width:100%
}

  .course-sidebar .sidebar-box {
  width:100%
}

  /* dissolve wrapper so img and tabs become direct flex children */
  .course-layout > div:first-child {
  order:1;
  display:contents
}

  .course-hero-img {
  order:1;
  margin-bottom:0
}

  .course-tabs {
  order:3;
  margin-bottom:12px
}

  [class^="course-content"],[id^="sobre-"],[id^="docente-"],[id^="matricula-"] {
  order:3
}

  .course-layout > aside {
  order:2
}

  /* form full width on mobile — override any inherited max-width */
  [id^="matricula-"] {
  width:100%
}

  .enroll-form {
  width:100%;
  max-width:100%;
  padding:24px 16px;
  box-sizing:border-box
}

  .location-layout {
  grid-template-columns:1fr
}

  .form-row {
  grid-template-columns:1fr
}

  .frow-3col,
  .frow-cep {
  grid-template-columns:1fr
}

  .prof-detail-layout {
  grid-template-columns:1fr;
  max-width:600px
}

  .about-grid-home {
  grid-template-columns:1fr
}

  .sobre-hero-row,.reestruct-row {
  grid-template-columns:1fr
}

  .mvv-grid {
  grid-template-columns:1fr
}

}

@media(max-width:900px) {
  
  .navbar__menu {
  display:none
}

  /* Overlay escuro atrás do menu mobile */
  body.menu-open::after {
  content:'';
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.5);
  z-index:98;
  animation:fadeInOverlay .22s ease
}

@keyframes fadeInOverlay {
  from { opacity:0 }
  to   { opacity:1 }
}

  /* ── Mobile menu – novo design ── */
  .navbar__menu.open {
  display:flex;
  flex-direction:column;
  gap:0;
  position:fixed;
  top:74px;
  left:0;
  right:0;
  background:#fff;
  padding:0;
  box-shadow:0 12px 40px rgba(190,127,135,.22);
  max-height:calc(100vh - 74px);
  overflow-y:auto;
  border-top:3px solid var(--pink);
  animation:mobileMenuIn .22s ease
}

@keyframes mobileMenuIn {
  from { opacity:0; transform:translateY(-8px) }
  to   { opacity:1; transform:translateY(0) }
}

  /* Linha sutil de topo como separador de seção */
  .navbar__menu.open::before {
  content:'';
  display:block;
  height:0
}

  .navbar__menu.open .nav-item {
  display:block;
  border-bottom:1px solid var(--border);
  margin:0;
  padding:0;
  width:100%
}

  .navbar__menu.open .nav-item:last-child {
  border-bottom:none
}

  /* Links principais */
  .navbar__menu.open .nav-item>a {
  padding:15px 24px;
  color:var(--dark);
  font-size:15px;
  font-weight:700;
  font-family:'Montserrat',sans-serif;
  letter-spacing:.01em;
  border-radius:0;
  opacity:1;
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  box-sizing:border-box;
  margin:0;
  transition:background .15s, color .15s;
  position:relative
}

  .navbar__menu.open .nav-item>a::before {
  content:'';
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--pink);
  flex-shrink:0;
  opacity:.55
}

  .navbar__menu.open .nav-item>a:hover,
  .navbar__menu.open .nav-item.active>a {
  background:var(--light);
  color:var(--pink-dark)
}

  .navbar__menu.open .nav-item>a:hover::before,
  .navbar__menu.open .nav-item.active>a::before {
  opacity:1
}

  /* Esconde dropdowns no mobile — só links principais visíveis */
  .navbar__menu.open .dropdown {
  display:none !important
}

  .navbar__toggle {
  display:flex
}

  .about-grid {
  grid-template-columns:1fr
}

  .features-grid {
  grid-template-columns:1fr
}

  .cat-grid {
  grid-template-columns:1fr;
  max-width:480px
}

  .news-grid {
  grid-template-columns:repeat(2,1fr)
}

  .blog-grid {
  grid-template-columns:repeat(2,1fr)
}

  .profs-grid {
  grid-template-columns:repeat(2,1fr)
}

  .contact-layout {
  grid-template-columns:1fr
}

  .compliance-img-grid {
  grid-template-columns:1fr
}

  .footer-grid {
  grid-template-columns:1fr;
  gap:28px
}

  .footer-bottom {
  flex-direction:column;
  gap:8px;
  text-align:center
}

  #cookie-bar {
  flex-direction:column;
  align-items:flex-start
}

  .sobre-hero-row,.reestruct-row,.mvv-grid {
  grid-template-columns:1fr
}

}

@media(max-width:600px) {
  
  .hero__title {
  font-size:32px
}

  .hero__stats {
  flex-direction:column;
  gap:24px
}

  .hero__stat {
  border-right:none;
  border-bottom:1px solid rgba(255,255,255,.2);
  padding-bottom:20px;
  padding-right:0;
  margin-right:0;
  margin-bottom:0
}

  .hero__stat:last-child {
  border-bottom:none;
  padding-bottom:0;
  margin-bottom:0
}

  .profs-grid {
  grid-template-columns:repeat(2,1fr)
}

  .news-grid {
  grid-template-columns:1fr
}

  .blog-grid {
  grid-template-columns:1fr
}

  .hero__actions {
  flex-direction:column
}

  .carousel-outer {
  padding:0 40px
}

  .sobre-stats {
  flex-direction:column
}

}

/* Page sections start just below breadcrumb */
.page-hero + .section {
  padding-top:40px
}

.page-hero + section {
  padding-top:40px
}

@keyframes fadeUp {
  from {
  opacity:0;
  transform:translateY(28px)
}
to {
  opacity:1;
  transform:translateY(0)
}

}

.hero__tag {
  animation:fadeUp .6s ease both
}

.hero__title {
  animation:fadeUp .6s .1s ease both
}

.hero__desc {
  animation:fadeUp .6s .2s ease both
}

.hero__actions {
  animation:fadeUp .6s .3s ease both
}

.hero__stats {
  animation:fadeUp .6s .45s ease both
}

/* ── Cat-page-grid: 3 col desktop → 1 col mobile ── */
.cat-page-grid {
  grid-template-columns: repeat(3,1fr);
}
/* ── Docente-grid: 3 col desktop → max 2 col mobile ── */
.profs-grid.docente-grid {
  grid-template-columns: repeat(3,1fr);
}
@media(max-width:900px){
  .cat-page-grid {
    grid-template-columns: repeat(2,1fr);
  }
  .profs-grid.docente-grid {
    grid-template-columns: repeat(2,1fr);
  }
}
@media(max-width:600px){
  .cat-page-grid {
    grid-template-columns: 1fr;
  }
  .profs-grid.docente-grid {
    grid-template-columns: repeat(2,1fr) !important;
  }
}
