/* ============= ConPrev Educacional — Brand Overrides ============= */
:root{
  --brand-primary:#030e1a;
  --brand-primary-soft:#eef0f3;
  --brand-accent:#fc7b16;
  --brand-accent-soft:#fff1e3;
  --brand-surface:#f5f5f5;
  --brand-muted:#6b7280;
  --brand-border:#e5e7eb;
  --brand-text:#101a2b;
}

*{ border-color: var(--brand-border); }
html{ scroll-behavior:smooth; }
body{
  font-family:'Plus Jakarta Sans', system-ui, -apple-system, sans-serif;
  color: var(--brand-text);
  -webkit-font-smoothing: antialiased;
  background:#fff;
}
h1,h2,h3,h4,h5{ font-family:'Plus Jakarta Sans', system-ui, sans-serif; letter-spacing:-0.02em; }

.text-accent{ color:var(--brand-accent)!important; }
.text-primary-brand{ color:var(--brand-primary)!important; }
.text-muted-brand{ color:var(--brand-muted)!important; }
.text-blue{ color:#013778!important; }
.text-white{ color:#ffffff!important; }
.text-white-75{ color:rgba(255,255,255,0.75)!important; }
.bg-primary-brand{ background:var(--brand-primary)!important; }
.section-surface{ background:var(--brand-surface); }
.link-accent{ color:var(--brand-primary); text-decoration:none; }
.link-accent:hover{ color:var(--brand-accent); }
.link-primary-brand{ color:var(--brand-primary); text-decoration:none; }
.link-primary-brand:hover{ color:var(--brand-accent); }
.hidden {  display: none !important;}

/* Buttons */
.btn-primary-brand {
  background: var(--brand-primary);
  color: #fff;
  border: none;
  font-weight: 600;
  transition: filter .2s ease, box-shadow .2s ease;
  text-transform: uppercase;
  font-size: 13px;
  padding: 5px 15px;
}

.btn-primary-brand i {
  margin-right: 6px;
}

.btn-primary-brand:hover{ background: var(--brand-accent); color:#fff; box-shadow:0 8px 24px -8px rgba(3,14,26,.5); }
.btn-accent-brand{
  background:var(--brand-accent); color:#fff; border:none; font-weight:600;
  transition:filter .2s ease, box-shadow .2s ease;
}
.btn-accent-brand:hover {
  color: #fff;
  box-shadow: 0 8px 24px -8px rgba(252,123,22,.55);
  background: var(--brand-primary);
}
/* Eyebrow */
.eyebrow{
  display:inline-flex; align-items:center; gap:.4rem;
  background:var(--brand-primary-soft); color:var(--brand-primary);
  padding:.35rem .8rem; border-radius:999px;
  font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em;
}
.eyebrow-on-dark{ background:rgba(255,255,255,.1); color:var(--brand-accent); }

/* Header */
.site-header{
  background:rgba(255,255,255,.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--brand-border);
}
.site-header .navbar{ padding:.5rem 0; }
.site-header .nav-link{
  font-weight:500; font-size:.9rem; color:rgba(16,26,43,.8);
  padding:.5rem .9rem!important; border-radius:999px;
  transition:background .2s, color .2s;
}
.site-header .nav-link:hover, .site-header .nav-link.active{
  color:var(--brand-primary); background:var(--brand-primary-soft);
}

/* Hero carousel */
.hero-carousel .hero-slide{
  position:relative; height:560px; background-size:cover; background-position:center;
}
@media (min-width:768px){ .hero-carousel .hero-slide{ height:620px; } }
@media (min-width:1200px){ .hero-carousel .hero-slide{ height:680px; } }
.hero-overlay{
  position:absolute; inset:0;
  background:linear-gradient(90deg, rgba(3,14,26,.95) 0%, rgba(3,14,26,.8) 50%, rgba(3,14,26,.4) 100%);
}
.hero-content{ max-width:640px; }
.hero-ctrl{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:999px;
  background:rgba(255,255,255,.18); backdrop-filter:blur(8px);
  color:#fff; font-size:1.2rem; transition:background .2s;
}
.hero-ctrl:hover{ background:rgba(255,255,255,.3); }
.carousel-indicators [data-bs-target]{
  width:10px; height:10px; border-radius:999px; background:rgba(255,255,255,.5);
  border:none; margin:0 4px; transition:all .3s;
}
.carousel-indicators .active{ width:32px; background:var(--brand-accent); }

/* Page hero */
.page-hero{
  background:linear-gradient(135deg, var(--brand-primary) 0%, #1a2540 100%);
  color:#fff;
}
.page-hero-corner{
  position:absolute; bottom:-1px; right:0; height:64px; width:25%;
  background:var(--brand-accent); clip-path:polygon(100% 0,0 100%,100% 100%);
}

/* Cards */
.card-soft {
  background: #fff;
  border: 1px solid var(--brand-border);
  border-radius: 1rem;
  box-shadow: 0 2px 12px -6px rgba(0,58,121,.12);
  transition: transform .3s, box-shadow .3s, border-color .3s;
}
.card-inscricao {
  background: var(--brand-accent) !important;
  border: 1px solid var(--brand-border);
  border-radius: 1rem;
  box-shadow: 0 2px 12px -6px rgba(0,58,121,.12);
  transition: transform .3s, box-shadow .3s, border-color .3s;
}

.card-soft:hover, .card-inscricao:hover {
  transform:translateY(-4px);
  box-shadow:0 18px 40px -18px rgba(0,58,121,.35);
  border-color:rgba(252,123,22,.4);
}

.card-course{
  background:#fff; border:1px solid var(--brand-border); border-radius:1rem; overflow:hidden;
  color:inherit; box-shadow:0 2px 12px -6px rgba(0,58,121,.12);
  transition:transform .3s, box-shadow .3s;
}
.card-course:hover{ transform:translateY(-4px); box-shadow:0 18px 40px -18px rgba(0,58,121,.35); color:inherit; }
.card-course-img{ height:176px; background-size:cover; background-position:center; }

/* Icon squares */
.icon-square{
  display:inline-flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:.75rem;
  background:var(--brand-accent-soft); color:var(--brand-accent); font-size:1.2rem;
  transition:transform .3s;
}
.card-soft:hover .icon-square{ transform:scale(1.1); }
.icon-square-primary{ background:var(--brand-primary-soft); color:var(--brand-primary); }
.accent-line{ height:1px; width:40px; background:linear-gradient(to right, var(--brand-accent), transparent); }

/* Value card (sobre) */
.value-card{ border-left:4px solid var(--brand-accent); }

/* Section bg decor */
.bg-grid{
  position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image:
    linear-gradient(to right, rgba(3,14,26,.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(3,14,26,.06) 1px, transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(ellipse at center, #000 40%, transparent 75%);
  mask-image:radial-gradient(ellipse at center, #000 40%, transparent 75%);
}
.bg-blob{ position:absolute; border-radius:50%; filter:blur(80px); pointer-events:none; }
.bg-blob-1{ top:-130px; left:-100px; width:320px; height:320px; background:rgba(3,14,26,.1); }
.bg-blob-2{ bottom:-130px; right:-100px; width:380px; height:380px; background:rgba(252,123,22,.15); }

/* CTA Banner */
.cta-banner{ color:#fff; }
.cta-bg{ position:absolute; inset:0; background-size:cover; background-position:center; }
.cta-overlay{ position:absolute; inset:0; background:linear-gradient(90deg, var(--brand-primary) 0%, rgba(3,14,26,.85) 60%, rgba(3,14,26,.6) 100%); }
.cta-blob{ position:absolute; border-radius:50%; filter:blur(80px); }
.cta-blob-1{ top:-64px; right:-64px; width:260px; height:260px; background:rgba(252,123,22,.4); }
.cta-blob-2{ bottom:-80px; left:-40px; width:290px; height:290px; background:rgba(252,123,22,.2); }
.stat-card{
  background:rgba(255,255,255,.1); backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.15); border-radius:1rem; padding:1.25rem;
}
.stat-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:.75rem;
  background:rgba(252,123,22,.2); color:var(--brand-accent); font-size:1.1rem;
}

/* Inscricao */
.subline {
  text-decoration:line-through;
}

h2.price {
  color: #192f59 !important;
  font-size: 50px;
  font-weight: bold;
  line-height: 52px;
}


/* Footer */
.site-footer{ background:var(--brand-primary); color:#fff; margin-top:6rem; }
.footer-blob{ position:absolute; border-radius:50%; filter:blur(80px); pointer-events:none; }
.footer-blob-1{ top:-130px; left:-80px; width:320px; height:320px; background:rgba(252,123,22,.15); }
.footer-blob-2{ bottom:-130px; right:-80px; width:380px; height:380px; background:rgba(252,123,22,.1); }
.footer-contact-card{
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.1); color:#fff;
  transition:background .2s, border-color .2s;
  font-size: 15px;
}
.footer-contact-card:hover{ background:rgba(255,255,255,.08); border-color:rgba(252,123,22,.4); color:#fff; }
.footer-contact-card:hover .text-white-50{ color:var(--brand-accent)!important; }
.footer-contact-icon{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:.75rem;
  background:rgba(252,123,22,.15); color:var(--brand-accent); font-size:1.15rem; flex-shrink:0;
}
.text-white-75{ color:rgba(255,255,255,.85); }
.footer-link{ color:rgba(255,255,255,.85); text-decoration:none; transition:color .2s; }
.footer-link:hover{ color:var(--brand-accent); }
.social-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:999px; background:rgba(255,255,255,.1);
  color:#fff; text-decoration:none; transition:background .2s, color .2s;
}

.list-unit {
  margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:1.5rem;
}

.list-unit li {
  display: inline-flex;
  width: 30%;
}
.social-btn:hover{ background:var(--brand-accent); color:#fff; }
.min-w-0{ min-width:0; }

/* WhatsApp float */
.whatsapp-float{
  position:fixed; bottom:24px; right:24px; z-index:1050;
  width:56px; height:56px; border-radius:999px;
  background:#25D366; color:#fff; display:inline-flex; align-items:center; justify-content:center;
  font-size:1.6rem; box-shadow:0 12px 30px -8px rgba(37,211,102,.6);
  text-decoration:none; transition:transform .2s;
}
.whatsapp-float:hover{ transform:scale(1.1); color:#fff; }

/* Filter chips (cursos) */
.filter-chip{
  border:none; background:#f1f3f5; color:var(--brand-text);
  padding:.4rem 1rem; border-radius:999px; font-size:.85rem; font-weight:500;
  transition:background .2s, color .2s;
}
.filter-chip:hover{ background:var(--brand-primary-soft); }
.filter-chip.active{ background:var(--brand-primary); color:#fff; }

/* Event card */
.event-card{ transition:box-shadow .2s; }
.event-card:hover{ box-shadow:0 8px 24px -8px rgba(0,58,121,.2); }
.event-date{
  background:var(--brand-primary); color:#fff; border-radius:.75rem; padding:1rem;
  min-width:104px;
}

/* Pagination */
.page-btn{
  width:40px; height:40px; border-radius:999px; border:1px solid var(--brand-border);
  background:#fff; font-weight:600; transition:background .2s, color .2s;
}
.page-btn:hover{ background:var(--brand-primary-soft); }
.page-btn.active{ background:var(--brand-primary); color:#fff; border-color:var(--brand-primary); }

/* Professor avatar */
.prof-avatar{ width:128px; height:128px; object-fit:cover; border:4px solid var(--brand-accent-soft); }

/* Forms */
.form-control:focus{ border-color:var(--brand-primary); box-shadow:0 0 0 .2rem rgba(3,14,26,.15); }

/* Accordion */
.accordion-button:not(.collapsed){ background:var(--brand-primary-soft); color:var(--brand-primary); box-shadow:none; }
.accordion-button:focus{ box-shadow:none; border-color:var(--brand-border); }

/* Custom alert variant */
.alert-accent{ background:var(--brand-accent-soft); color:var(--brand-accent); border:1px solid rgba(252,123,22,.2); }

/* Truncate 2 lines */
.text-truncate-2{
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}

/* Reveal animation */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }

/* ============= Page Preloader ============= */
#page-preloader{
  position:fixed; inset:0; z-index:9999;
  background:#fff;
  display:flex; align-items:center; justify-content:center;
  transition: opacity .4s ease, visibility .4s ease;
}
#page-preloader .preloader-inner{
  display:flex; flex-direction:column; align-items:center; gap:1rem;
}
#page-preloader .spinner-ring{
  width:56px; height:56px; border-radius:50%;
  border:4px solid var(--brand-primary-soft);
  border-top-color: var(--brand-accent);
  animation: cp-spin .8s linear infinite;
}
#page-preloader .preloader-label{
  font-family:'Plus Jakarta Sans', sans-serif;
  font-weight:600; color: var(--brand-primary);
  letter-spacing:.02em; font-size:.95rem;
}
#page-preloader.is-hidden{ opacity:0; visibility:hidden; }
@keyframes cp-spin{ to{ transform: rotate(360deg); } }
body.preloading{ overflow:hidden; }





/* ============= Student Area (Aluno) ============= */
.aluno-side-link{ color:var(--brand-text); text-decoration:none; font-weight:500; font-size:.92rem; transition:background .15s,color .15s; }
.aluno-side-link:hover{ background:var(--brand-primary-soft); color:var(--brand-primary); }
.aluno-side-link.active{ background:var(--brand-primary); color:#fff; }
.aluno-side-link.active i{ color:#fff; }
.aluno-side-link i{ color:var(--brand-accent); font-size:1.05rem; width:20px; }
.bg-primary-brand{ background:var(--brand-primary)!important; }
.bg-accent-soft{ background:var(--brand-accent-soft); }
.text-accent{ color:var(--brand-accent)!important; }
.btn-outline-primary-brand{ border:1px solid var(--brand-primary); color:var(--brand-primary); background:#fff; }
.btn-outline-primary-brand:hover{ background:var(--brand-primary); color:#fff; }

/* ============= Gallery ============= */
.album-card{ transition:transform .25s, box-shadow .25s; }
.album-card:hover{ transform:translateY(-4px); }
.album-card:hover .h6{ color:var(--brand-primary); }
.photo-thumb{ cursor:zoom-in; transition:transform .25s; }
.photo-thumb:hover{ transform:scale(1.02); }
.object-fit-cover{ object-fit:cover; }