/* Identidade visual e ajustes responsivos das áreas de cursos e palestras. */
:root {
  --font-advertising: 'Montserrat', var(--font-sans);
}

.courses-grid,
.lectures-grid,
.course-lecture-content,
.speaker-page {
  font-family: var(--font-advertising);
}

#cursos,
#palestras,
#proximas-palestras {
  font-family: var(--font-advertising);
}

#cursos .section-title h2,
#palestras .section-title h2,
#proximas-palestras .section-title h2,
.upcoming-card h3 {
  font-family: var(--font-advertising);
  font-weight: 700;
}

.course-card,
.lecture-card {
  text-align: left;
}

.course-card h3,
.course-card p,
.course-card .course-duration,
.lecture-card h3,
.lecture-card p,
.lecture-card .lecture-meta,
.course-lecture-content .details-title,
.course-lecture-content .details-meta,
.course-lecture-content .details-text,
.course-lecture-content .details-cta .btn {
  font-family: var(--font-advertising);
}

.course-card h3,
.lecture-card h3,
.course-lecture-content .details-title {
  font-weight: 700;
  letter-spacing: -0.025em;
}

.course-card:hover > img,
.lecture-card:hover .lecture-thumb img,
.event-item-photo:hover .event-thumb img,
.event-gallery-item:hover img {
  transform: none;
}

.about-photo img {
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.16);
}

.speaker-page {
  padding-top: 120px !important;
}

.speaker-page h1,
.speaker-page h2,
.speaker-page h3 {
  font-family: var(--font-advertising) !important;
  font-weight: 700;
  letter-spacing: -0.035em;
}

.speaker-page .speaker-lead {
  font-family: var(--font-advertising) !important;
  font-style: normal !important;
}

.speaker-article {
  padding: 0 24px 80px !important;
}

.speaker-topics {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.speaker-cta {
  padding: clamp(28px, 5vw, 48px) clamp(20px, 4vw, 32px) !important;
}

@media (max-width: 768px) {
  :root { --section-pad: 56px; }

  .container { padding-right: 20px; padding-left: 20px; }
  .section-title { margin-bottom: 32px; }
  .section-title h2 { font-size: clamp(1.6rem, 6vw, 2.15rem); }

  .hero-v10 .hero-content {
    padding-right: 20px;
    padding-left: 20px;
    padding-top: clamp(240px, 42svh, 380px);
  }

  .course-card .course-info,
  .lecture-card > h3,
  .lecture-card > p,
  .lecture-card > .lecture-meta {
    padding-left: 18px;
    padding-right: 18px;
  }

  .course-card .course-info { padding: 18px; }
  .course-card h3,
  .lecture-card h3 { font-size: 1rem; }

  .speaker-page { padding-top: 88px !important; }
  .speaker-article { padding: 0 20px 52px !important; }
  .speaker-topics { grid-template-columns: 1fr !important; gap: 14px !important; }
  .speaker-article > section { margin-bottom: 40px !important; }
}

@media (max-width: 480px) {
  .container { padding-right: 16px; padding-left: 16px; }
  .section-title { margin-bottom: 28px; }
  .contact-paths { grid-template-columns: 1fr; }

  .speaker-page h1 { font-size: clamp(1.8rem, 8vw, 2.35rem) !important; }
  .speaker-page h1 br { display: none; }
  .speaker-page h2 { font-size: 1.4rem !important; }
  .speaker-page .speaker-lead { font-size: 1rem !important; }
  .speaker-article { padding-right: 16px !important; padding-left: 16px !important; }
  .speaker-article > div[style*="display:flex"] .btn { flex: 1 1 100%; justify-content: center; }
}

@media (max-width: 768px) {
  .details-modal-content {
    max-height: 95vh;
    max-height: 95svh;
  }

  .course-lecture-content { padding: 22px 20px 18px; }
  .course-lecture-content .details-title { font-size: clamp(1.35rem, 6vw, 1.8rem); }
}

@media (prefers-reduced-motion: reduce) {
  .course-card img,
  .lecture-thumb img,
  .event-item-photo .event-thumb img,
  .event-gallery-item img { transition: none; }
}
