*, *::before, *::after {

  box-sizing: border-box;

  margin: 0;

  padding: 0;

}



:root {

  --background: #FAF8F5;

  --foreground: #231F20;

  --card: #FFFFFF;

  --card-foreground: #231F20;

  --primary: #54833B;

  --primary-foreground: #FFFFFF;

  --primary-hover: #4A7534;

  --secondary: #F5F3EF;

  --secondary-foreground: #231F20;

  --muted: #E8E6E1;

  --muted-foreground: #6B6B6B;

  --accent: #54833B;

  --accent-foreground: #FFFFFF;

  --border: #E5E3DE;

  --ring: #54833B;

  --brand-green: #54833B;

  --brand-dark: #231F20;

  --font-sans: 'DM Sans', system-ui, sans-serif;

  --font-serif: 'Playfair Display', Georgia, serif;

}



html {

  scroll-behavior: smooth;

  background-color: var(--background);

}



body {

  font-family: var(--font-sans);

  background-color: var(--background);

  color: var(--foreground);

  line-height: 1.6;

  -webkit-font-smoothing: antialiased;

}



.container {

  max-width: 1280px;

  margin: 0 auto;

  padding: 0 1.5rem;

}



@media (min-width: 1024px) {

  .container {

    padding: 0 2rem;

  }

}



/* Header */

.header {

  position: fixed;

  top: 0;

  left: 0;

  right: 0;

  z-index: 50;

  transition: all 0.3s;

  background-color: rgba(255, 255, 255, 0.9);

  backdrop-filter: blur(12px);

  border-bottom: 1px solid var(--border);

  box-shadow: 0 1px 3px rgba(0,0,0,0.05);

}



.header.scrolled {

  background-color: rgba(255, 255, 255, 0.95);

}



.header-inner {

  display: flex;

  height: 5rem;

  align-items: center;

  justify-content: space-between;

}



.logo {

  display: flex;

  align-items: center;

  gap: 0.75rem;

  text-decoration: none;

}



.logo-icon {

  display: flex;

  height: 2.5rem;

  width: 2.5rem;

  align-items: center;

  justify-content: center;

  border-radius: 2px;

  background-color: var(--primary);

  color: var(--primary-foreground);

  font-size: 1.125rem;

  font-weight: 700;

}



.logo-img {

  height: 2.5rem;

  width: auto;

  display: block;

}



.logo-text {

  font-size: 1.125rem;

  font-weight: 600;

  letter-spacing: -0.025em;

  color: var(--foreground);

}



.nav-desktop {

  display: none;

  align-items: center;

  gap: 2rem;

}



@media (min-width: 1024px) {

  .nav-desktop {

    display: flex;

  }

}



.nav-link {

  font-size: 0.875rem;

  font-weight: 500;

  color: var(--muted-foreground);

  text-decoration: none;

  transition: color 0.2s;

}



.nav-link:hover {

  color: var(--primary);

}



.btn {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 0.5rem;

  border-radius: 2px;

  font-size: 0.875rem;

  font-weight: 500;

  text-decoration: none;

  transition: all 0.2s;

  cursor: pointer;

  border: none;

}



.btn-primary {

  background-color: var(--primary);

  color: var(--primary-foreground);

  padding: 0.625rem 1.25rem;

}



.btn-primary:hover {

  background-color: var(--primary-hover);

}



.btn-lg {

  padding: 1rem 2rem;

}



.btn-outline-light {

  border: 1px solid rgba(250, 248, 245, 0.3);

  background: transparent;

  color: var(--background);

  padding: 1rem 2rem;

}



.btn-outline-light:hover {

  background-color: rgba(250, 248, 245, 0.1);

}



.btn-whatsapp {

  background-color: #25D366;

  color: white;

  padding: 0.75rem 1.5rem;

}



.btn-whatsapp:hover {

  background-color: rgba(37, 211, 102, 0.9);

}



.mobile-menu-btn {

  display: block;

  padding: 0.5rem;

  background: none;

  border: none;

  cursor: pointer;

}



@media (min-width: 1024px) {

  .mobile-menu-btn {

    display: none;

  }

}



.mobile-nav {

  display: none;

  padding-bottom: 1.5rem;

}



.mobile-nav.open {

  display: block;

}



@media (min-width: 1024px) {

  .mobile-nav {

    display: none !important;

  }

}



.mobile-nav-inner {

  display: flex;

  flex-direction: column;

  gap: 1rem;

  padding-top: 1rem;

  border-top: 1px solid var(--border);

}



.mobile-nav-link {

  font-size: 1rem;

  font-weight: 500;

  color: var(--muted-foreground);

  text-decoration: none;

  transition: color 0.2s;

}



.mobile-nav-link:hover {

  color: var(--primary);

}



.nav-link.active,

.mobile-nav-link.active {

  color: var(--primary);

  font-weight: 600;

}



/* Hero */

.hero {

  position: relative;

  min-height: 70vh;

  display: flex;

  align-items: center;

  overflow: hidden;

  background-color: var(--foreground);

}



@media (min-width: 768px) {

  .hero {

    min-height: 100vh;

  }

}



.hero-bg {

  position: absolute;

  inset: 0;

  overflow: hidden;

}



.hero-slideshow {

  position: relative;

  width: 100%;

  height: 100%;

}



.hero-image {

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  object-fit: cover;

  object-position: center;

  opacity: 0;

  transition: opacity 1s ease-in-out;

}



.hero-image.active {

  opacity: 1;

}



.hero-content {

  position: relative;

  z-index: 10;

  padding: 4rem 0;

  text-align: center;

}



@media (min-width: 640px) {

  .hero-content {

    padding: 6rem 0;

    text-align: left;

  }

}



@media (min-width: 1024px) {

  .hero-content {

    padding: 10rem 0;

  }

}



.hero-inner {

  max-width: 48rem;

}



.hero-badge {

  font-size: 0.625rem;

  font-weight: 500;

  text-transform: uppercase;

  letter-spacing: 0.15em;

  color: rgba(250, 248, 245, 0.7);

  margin-bottom: 1rem;

}



@media (min-width: 640px) {

  .hero-badge {

    font-size: 0.75rem;

    letter-spacing: 0.2em;

    margin-bottom: 1.5rem;

  }

}



.hero-title {

  font-family: var(--font-serif);

  font-size: 2.25rem;

  font-weight: 500;

  color: var(--background);

  line-height: 1.15;

  margin-bottom: 1.5rem;

  text-wrap: balance;

}



@media (min-width: 640px) {

  .hero-title {

    font-size: 2.5rem;

    margin-bottom: 2rem;

  }

}



@media (min-width: 768px) {

  .hero-title {

    font-size: 3.75rem;

  }

}



@media (min-width: 1024px) {

  .hero-title {

    font-size: 4.5rem;

  }

}



.hero-desc {

  font-size: 1.125rem;

  color: rgba(250, 248, 245, 0.8);

  margin-bottom: 2.5rem;

  max-width: 42rem;

  margin-left: auto;

  margin-right: auto;

  line-height: 1.6;

}



@media (min-width: 640px) {

  .hero-desc {

    font-size: 1.125rem;

    max-width: 36rem;

    margin-left: 0;

    margin-right: 0;

    margin-bottom: 3rem;

  }

}



@media (min-width: 768px) {

  .hero-desc {

    font-size: 1.25rem;

  }

}



.hero-buttons {

  display: flex;

  flex-direction: column;

  gap: 1rem;

  justify-content: center;

  align-items: center;

}



@media (min-width: 640px) {

  .hero-buttons {

    flex-direction: row;

    align-items: center;

  }

}



.hero-indicators {

  position: absolute;

  bottom: 2rem;

  left: 1rem;

  display: flex;

  gap: 0.5rem;

}



@media (min-width: 640px) {

  .hero-indicators {

    bottom: 3rem;

    left: 1.5rem;

  }

}



@media (min-width: 1024px) {

  .hero-indicators {

    left: 2rem;

  }

}



.indicator {

  width: 3rem;

  height: 0.25rem;

  border-radius: 9999px;

  background-color: rgba(250, 248, 245, 0.3);

  border: none;

  cursor: pointer;

  transition: background-color 0.3s;

}



.indicator.active {

  background-color: var(--primary);

}



/* Sections */

.section {

  padding: 6rem 0;

}



@media (min-width: 1024px) {

  .section {

    padding: 8rem 0;

  }

}



.section-alt {

  background-color: var(--secondary);

}



.section-dark {

  background-color: var(--foreground);

}



.section-header {

  max-width: 48rem;

  margin-bottom: 5rem;

}



.section-header-center {

  text-align: center;

  max-width: 42rem;

  margin-left: auto;

  margin-right: auto;

  margin-bottom: 4rem;

}



.section-title {

  font-family: var(--font-serif);

  font-size: 2.25rem;

  font-weight: 500;

  color: var(--foreground);

  margin-bottom: 1.5rem;

  text-wrap: balance;

}



@media (min-width: 768px) {

  .section-title {

    font-size: 3rem;

  }

}



.section-title-light {

  color: var(--background);

}



.section-desc {

  font-size: 1.125rem;

  color: var(--muted-foreground);

  line-height: 1.7;

}



.section-desc-light {

  color: rgba(250, 248, 245, 0.8);

}



/* Stats */

.stats-grid {

  display: grid;

  grid-template-columns: 1fr;

  gap: 2rem;

}



@media (min-width: 640px) {

  .stats-grid {

    grid-template-columns: repeat(2, 1fr);

  }

}



@media (min-width: 1024px) {

  .stats-grid {

    grid-template-columns: repeat(4, 1fr);

    gap: 3rem;

  }

}



.stat-item {

  border-top: 1px solid var(--border);

  padding-top: 2rem;

}



.stat-value {

  font-family: var(--font-serif);

  font-size: 3rem;

  font-weight: 500;

  color: var(--primary);

}



@media (min-width: 768px) {

  .stat-value {

    font-size: 3.75rem;

  }

}



.stat-label {

  margin-top: 1rem;

  font-size: 0.875rem;

  color: var(--muted-foreground);

  text-transform: uppercase;

  letter-spacing: 0.05em;

}



/* Features Grid */

.features-grid {

  display: grid;

  gap: 2rem;

}



@media (min-width: 768px) {

  .features-grid {

    grid-template-columns: repeat(2, 1fr);

  }

}



@media (min-width: 1024px) {

  .features-grid {

    grid-template-columns: repeat(3, 1fr);

  }

}



.feature-card {

  background-color: var(--card);

  padding: 2rem;

  border-radius: 2px;

  border: 1px solid var(--border);

  transition: border-color 0.2s;

}



.feature-card:hover {

  border-color: rgba(35, 31, 32, 0.2);

}



.feature-icon {

  width: 2rem;

  height: 2rem;

  margin-bottom: 1.5rem;

  color: var(--primary);

}



.feature-title {

  font-size: 1.125rem;

  font-weight: 600;

  color: var(--foreground);

  margin-bottom: 0.75rem;

}



.feature-desc {

  color: var(--muted-foreground);

  line-height: 1.7;

}



/* Courses */

.courses-header {

  display: flex;

  flex-direction: column;

  gap: 2rem;

  margin-bottom: 3rem;

}



@media (min-width: 1024px) {

  .courses-header {

    flex-direction: row;

    align-items: flex-end;

    justify-content: space-between;

  }

}



.filter-buttons {

  display: flex;

  flex-wrap: wrap;

  gap: 0.5rem;

}



.filter-btn {

  padding: 0.5rem 1rem;

  font-size: 0.875rem;

  font-weight: 500;

  border-radius: 2px;

  border: none;

  cursor: pointer;

  transition: all 0.2s;

  background-color: var(--secondary);

  color: var(--secondary-foreground);

}



.filter-btn:hover {

  background-color: rgba(84, 131, 59, 0.12);

  color: var(--primary);

}



.filter-btn.active {

  background-color: var(--primary);

  color: var(--primary-foreground);

}



.course-card {

  background-color: var(--card);

  border: 1px solid var(--border);

  border-radius: 2px;

  padding: 1.5rem;

  transition: border-color 0.2s;

}



.course-card:hover {

  border-color: rgba(35, 31, 32, 0.2);

}



.course-title {

  font-size: 1.125rem;

  font-weight: 600;

  color: var(--foreground);

  margin-bottom: 1rem;

}



.course-code {

  font-size: 0.75rem;

  color: var(--muted-foreground);

  text-transform: uppercase;

  letter-spacing: 0.05em;

  margin-bottom: 1rem;

}



.course-meta {

  display: flex;

  flex-wrap: wrap;

  gap: 0.75rem;

  margin-bottom: 1rem;

}



.course-meta-item {

  display: inline-flex;

  align-items: center;

  gap: 0.375rem;

  font-size: 0.75rem;

  color: var(--muted-foreground);

}



.course-meta-item svg {

  width: 0.875rem;

  height: 0.875rem;

}



.course-training-area {

  font-size: 0.8125rem;

  color: var(--muted-foreground);

  margin-bottom: 1rem;

  line-height: 1.5;

}



.course-duration-bar {

  display: flex;

  flex-direction: column;

  gap: 0.25rem;

  margin-bottom: 1rem;

  padding: 0.625rem 0.875rem;

  background-color: var(--secondary);

  border: 1px solid var(--border);

  border-radius: 4px;

}



.course-duration-label {

  font-size: 0.6875rem;

  text-transform: uppercase;

  letter-spacing: 0.05em;

  color: var(--muted-foreground);

  font-weight: 600;

}



.course-duration-value {

  font-size: 0.8125rem;

  color: var(--foreground);

  font-weight: 500;

}



.course-desc {

  font-size: 0.875rem;

  color: var(--muted-foreground);

  margin-bottom: 1.5rem;

  line-height: 1.6;

}



.link-arrow {

  display: inline-flex;

  align-items: center;

  gap: 0.5rem;

  font-size: 0.875rem;

  font-weight: 500;

  color: var(--foreground);

  text-decoration: none;

  transition: gap 0.2s;

}



.link-arrow:hover {

  gap: 0.75rem;

  color: var(--primary);

}



.link-arrow svg {

  width: 1rem;

  height: 1rem;

}



button.link-arrow {

  background: none;

  border: none;

  padding: 0;

  cursor: pointer;

  font-family: inherit;

}



/* Services */

.service-card {

  background-color: var(--card);

  padding: 2rem;

  border-radius: 2px;

  border: 1px solid var(--border);

  transition: border-color 0.2s;

}



.service-card:hover {

  border-color: rgba(35, 31, 32, 0.2);

}



.service-features {

  list-style: none;

  margin-bottom: 1.5rem;

}



.service-features li {

  display: flex;

  align-items: flex-start;

  gap: 0.5rem;

  font-size: 0.875rem;

  color: var(--muted-foreground);

  margin-bottom: 0.5rem;

}



.service-features li span {

  color: var(--foreground);

  margin-top: 0.25rem;

}



/* Testimonials */

.testimonial-card {

  background-color: var(--card);

  padding: 2rem;

  border-radius: 2px;

  border: 1px solid var(--border);

}



.stars {

  display: flex;

  gap: 0.25rem;

  margin-bottom: 1.5rem;

}



.star {

  width: 1rem;

  height: 1rem;

  fill: var(--accent);

  color: var(--accent);

}



.testimonial-text {

  color: var(--foreground);

  line-height: 1.7;

  margin-bottom: 1.5rem;

}



.testimonial-author {

  font-weight: 600;

  color: var(--foreground);

}



.testimonial-role {

  font-size: 0.875rem;

  color: var(--muted-foreground);

}



/* About */

.about-grid {

  display: grid;

  gap: 2rem;

}



@media (min-width: 768px) {

  .about-grid {

    grid-template-columns: repeat(2, 1fr);

  }

}



.vision-card {

  background-color: var(--card);

  padding: 2rem;

  border-radius: 2px;

  border: 1px solid var(--border);

}



.vision-title {

  font-size: 1.25rem;

  font-weight: 600;

  color: var(--foreground);

  margin-bottom: 1rem;

}



.accreditation-grid {

  display: grid;

  gap: 2rem;

}



@media (min-width: 768px) {

  .accreditation-grid {

    grid-template-columns: repeat(3, 1fr);

  }

}



.accreditation-card {

  background-color: var(--card);

  padding: 2rem;

  border-radius: 2px;

  border: 1px solid var(--border);

}



.accreditation-abbr {

  font-size: 1.5rem;

  font-weight: 700;

  color: var(--primary);

  margin-bottom: 0.5rem;

}



.accreditation-name {

  font-size: 0.875rem;

  font-weight: 500;

  color: var(--foreground);

  margin-bottom: 0.75rem;

}



.accreditation-desc {

  font-size: 0.875rem;

  color: var(--muted-foreground);

}



.team-grid {

  display: grid;

  grid-template-columns: 1fr;

  gap: 2rem;

}



@media (min-width: 640px) {

  .team-grid {

    grid-template-columns: repeat(2, 1fr);

  }

}



@media (min-width: 1024px) {

  .team-grid {

    grid-template-columns: repeat(3, 1fr);

  }

}



.team-member {

  background-color: var(--card);

  border: 1px solid var(--border);

  border-radius: 12px;

  padding: 2rem;

  text-align: center;

  transition: all 0.3s ease;

  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);

}



.team-member:hover {

  transform: translateY(-4px);

  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);

  border-color: var(--accent);

}



.team-avatar {

  width: 6rem;

  height: 6rem;

  background: linear-gradient(135deg, var(--accent) 0%, var(--foreground) 100%);

  border-radius: 50%;

  margin: 0 auto 1.5rem;

  display: flex;

  align-items: center;

  justify-content: center;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);

}



.team-initials {

  font-size: 1.75rem;

  font-weight: 700;

  color: var(--background);

}



.team-name {

  font-weight: 600;

  font-size: 1.125rem;

  color: var(--foreground);

  margin-bottom: 0.5rem;

  font-family: var(--font-serif);

}



.team-role {

  font-size: 0.875rem;

  color: var(--muted-foreground);

  line-height: 1.5;

}



.partnership-card {

  background-color: var(--card);

  padding: 2rem;

  border-radius: 2px;

  border: 1px solid var(--border);

}



@media (min-width: 1024px) {

  .partnership-card {

    padding: 3rem;

  }

}



.partnership-title {

  font-family: var(--font-serif);

  font-size: 1.5rem;

  font-weight: 500;

  color: var(--foreground);

  margin-bottom: 1rem;

}



.partnership-subtitle {

  font-size: 1.125rem;

  font-weight: 600;

  color: var(--foreground);

  margin-bottom: 1rem;

}



.partnership-desc {

  color: var(--muted-foreground);

  line-height: 1.7;

  margin-bottom: 1.5rem;

}



/* Contact */

.contact-grid {

  display: grid;

  gap: 3rem;

}



@media (min-width: 1024px) {

  .contact-grid {

    grid-template-columns: repeat(2, 1fr);

    gap: 4rem;

  }

}



.form-group {

  margin-bottom: 1.5rem;

}



.form-label {

  display: block;

  font-size: 0.875rem;

  font-weight: 500;

  color: var(--foreground);

  margin-bottom: 0.5rem;

}



.form-input,

.form-select,

.form-textarea {

  width: 100%;

  padding: 0.75rem 1rem;

  background-color: var(--card);

  border: 1px solid var(--border);

  border-radius: 2px;

  font-family: inherit;

  font-size: 1rem;

  color: var(--foreground);

  transition: all 0.2s;

}



.form-input::placeholder,

.form-textarea::placeholder {

  color: var(--muted-foreground);

}



.form-input:focus,

.form-select:focus,

.form-textarea:focus {

  outline: none;

  border-color: var(--ring);

  box-shadow: 0 0 0 2px rgba(84, 131, 59, 0.2);

}



.form-textarea {

  resize: none;

}



.contact-info-grid {

  display: grid;

  grid-template-columns: repeat(2, 1fr);

  gap: 1.5rem;

  margin-bottom: 2rem;

}



@media (max-width: 639px) {

  .contact-info-grid {

    grid-template-columns: 1fr;

  }

}



.contact-info-card {

  background-color: var(--card);

  padding: 1.5rem;

  border-radius: 2px;

  border: 1px solid var(--border);

}



.contact-info-icon {

  width: 1.5rem;

  height: 1.5rem;

  color: var(--foreground);

  margin-bottom: 1rem;

}



.contact-info-title {

  font-weight: 600;

  color: var(--foreground);

  margin-bottom: 0.5rem;

}



.contact-info-content {

  font-size: 0.875rem;

  color: var(--muted-foreground);

  white-space: pre-line;

}



.location-card {

  background-color: var(--muted);

  padding: 1.5rem;

  border-radius: 2px;

}



.location-name {

  font-weight: 500;

  color: var(--foreground);

  margin-bottom: 0.25rem;

}



.location-address {

  font-size: 0.875rem;

  color: var(--muted-foreground);

}



/* CTA */

.cta-section {

  text-align: center;

}



.cta-title {

  font-family: var(--font-serif);

  font-size: 2.25rem;

  font-weight: 500;

  color: var(--background);

  margin-bottom: 1.5rem;

  text-wrap: balance;

}



@media (min-width: 768px) {

  .cta-title {

    font-size: 3rem;

  }

}



.cta-desc {

  font-size: 1.125rem;

  color: rgba(250, 248, 245, 0.8);

  margin-bottom: 2.5rem;

  max-width: 42rem;

  margin-left: auto;

  margin-right: auto;

}



.cta-buttons {

  display: flex;

  flex-direction: column;

  gap: 1rem;

  justify-content: center;

}



@media (min-width: 640px) {

  .cta-buttons {

    flex-direction: row;

  }

}



/* Footer */

.footer {

  background-color: var(--foreground);

  padding: 4rem 0;

}



.footer-grid {

  display: grid;

  grid-template-columns: 1fr;

  gap: 2.5rem;

  margin-bottom: 3rem;

}



@media (min-width: 640px) {

  .footer-grid {

    grid-template-columns: repeat(2, 1fr);

  }

}



@media (min-width: 768px) {

  .footer-grid {

    grid-template-columns: repeat(2, 1fr);

  }

}



@media (min-width: 1024px) {

  .footer-grid {

    grid-template-columns: 1.5fr 1fr 1fr 1fr;

  }

}



.footer-logo {

  display: flex;

  align-items: center;

  gap: 0.75rem;

  text-decoration: none;

  margin-bottom: 1.5rem;

}



.footer-logo-icon {

  display: flex;

  height: 2.5rem;

  width: 2.5rem;

  align-items: center;

  justify-content: center;

  border-radius: 2px;

  background-color: var(--primary);

  color: var(--primary-foreground);

  font-size: 1.125rem;

  font-weight: 700;

}



.footer-logo-img {

  height: 2.5rem;

  width: auto;

  display: block;

}



.footer-logo-text {

  font-size: 1.125rem;

  font-weight: 600;

  letter-spacing: -0.025em;

  color: var(--background);

}



.footer-desc {

  font-size: 0.875rem;

  color: rgba(250, 248, 245, 0.7);

  line-height: 1.7;

  margin-bottom: 1.5rem;

}



.footer-social {

  display: flex;

  gap: 1rem;

}



.footer-social a {

  font-size: 0.875rem;

  color: rgba(250, 248, 245, 0.7);

  text-decoration: none;

  transition: color 0.2s;

}



.footer-social a:hover {

  color: var(--background);

}



.footer-heading {

  font-size: 0.875rem;

  font-weight: 600;

  color: var(--background);

  text-transform: uppercase;

  letter-spacing: 0.05em;

  margin-bottom: 1.5rem;

}



.footer-links {

  list-style: none;

}



.footer-links li {

  margin-bottom: 0.75rem;

}



.footer-links a {

  font-size: 0.875rem;

  color: rgba(250, 248, 245, 0.7);

  text-decoration: none;

  transition: color 0.2s;

}



.footer-links a:hover {

  color: var(--background);

}



.footer-contact p {

  font-size: 0.875rem;

  color: rgba(250, 248, 245, 0.7);

  margin-bottom: 1rem;

}



.footer-contact strong {

  color: var(--background);

}



.footer-bottom {

  border-top: 1px solid rgba(250, 248, 245, 0.1);

  padding-top: 2rem;

  display: flex;

  flex-direction: column;

  gap: 1.5rem;

}



@media (min-width: 768px) {

  .footer-bottom {

    flex-direction: row;

    align-items: center;

    justify-content: space-between;

  }

}



.footer-badges {

  display: flex;

  flex-wrap: wrap;

  gap: 0.75rem;

}



.footer-badge {

  padding: 0.375rem 0.75rem;

  background-color: rgba(84, 131, 59, 0.25);

  color: var(--background);

  font-size: 0.75rem;

  font-weight: 500;

  border-radius: 2px;

  border: 1px solid rgba(84, 131, 59, 0.4);

}



.footer-copyright {

  font-size: 0.875rem;

  color: rgba(250, 248, 245, 0.5);

}



/* SVG Icons */

.icon {

  width: 1.5rem;

  height: 1.5rem;

  stroke: currentColor;

  stroke-width: 1.5;

  fill: none;

  stroke-linecap: round;

  stroke-linejoin: round;

}



.icon-sm {

  width: 1rem;

  height: 1rem;

}



/* Spacing utilities */

.mb-6 { margin-bottom: 1.5rem; }

.mb-8 { margin-bottom: 2rem; }

.mb-12 { margin-bottom: 3rem; }

.mb-16 { margin-bottom: 4rem; }

.mb-24 { margin-bottom: 6rem; }

.mt-4 { margin-top: 1rem; }

.mt-8 { margin-top: 2rem; }



/* Grid for courses */

.courses-grid {

  display: grid;

  grid-template-columns: 1fr;

  gap: 1.5rem;

}



@media (min-width: 640px) {

  .courses-grid {

    grid-template-columns: repeat(2, 1fr);

  }

}



@media (min-width: 1024px) {

  .courses-grid {

    grid-template-columns: repeat(3, 1fr);

  }

}



/* Hidden class for filtering */

.hidden {

  display: none !important;

}



/* Subtitle */

.subtitle {

  font-family: var(--font-serif);

  font-size: 1.875rem;

  font-weight: 500;

  color: var(--foreground);

  margin-bottom: 2rem;

}



.subtitle-center {

  text-align: center;

}



/* Subsection spacing */

.subsection {

  margin-bottom: 6rem;

}



/* Modal Styles */

.modal {

  display: none;

  position: fixed;

  z-index: 1000;

  left: 0;

  top: 0;

  width: 100%;

  height: 100%;

  background-color: rgba(0, 0, 0, 0.6);

  backdrop-filter: blur(8px);

  animation: fadeIn 0.3s ease;

}



@keyframes fadeIn {

  from {

    opacity: 0;

  }

  to {

    opacity: 1;

  }

}



.modal.active {

  display: flex;

  align-items: center;

  justify-content: center;

}



.modal-content {

  background-color: var(--card);

  border-radius: 12px;

  max-width: 650px;

  width: 90%;

  max-height: 90vh;

  overflow-y: auto;

  position: relative;

  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);

  animation: slideUp 0.3s ease;

  border: 1px solid var(--border);

}



@keyframes slideUp {

  from {

    opacity: 0;

    transform: translateY(30px);

  }

  to {

    opacity: 1;

    transform: translateY(0);

  }

}



.modal-close {

  position: absolute;

  top: 1.25rem;

  right: 1.25rem;

  font-size: 1.75rem;

  font-weight: 400;

  color: var(--muted-foreground);

  background: var(--secondary);

  border: 1px solid var(--border);

  cursor: pointer;

  width: 2.75rem;

  height: 2.75rem;

  display: flex;

  align-items: center;

  justify-content: center;

  border-radius: 8px;

  transition: all 0.2s ease;

  z-index: 10;

}



.modal-close:hover {

  background-color: var(--primary);

  color: var(--primary-foreground);

  border-color: var(--primary);

  transform: rotate(90deg);

}



.modal-body {

  padding: 2.5rem;

}



.modal-title {

  font-family: var(--font-serif);

  font-size: 2rem;

  font-weight: 600;

  color: var(--foreground);

  margin-bottom: 1.5rem;

  padding-right: 3.5rem;

  line-height: 1.2;

}



.modal-meta {

  display: flex;

  flex-wrap: wrap;

  gap: 0.75rem;

  margin-bottom: 2rem;

  padding-bottom: 1.5rem;

  border-bottom: 1px solid var(--border);

}



.modal-meta-item {

  font-size: 0.875rem;

  font-weight: 500;

  color: var(--foreground);

  background-color: var(--secondary);

  padding: 0.5rem 1rem;

  border-radius: 6px;

  border: 1px solid var(--border);

  display: flex;

  align-items: center;

  gap: 0.375rem;

}



.modal-duration-box {

  display: flex;

  flex-direction: column;

  gap: 0.375rem;

  margin-bottom: 2rem;

  padding: 1rem 1.25rem;

  background-color: var(--secondary);

  border: 1px solid var(--border);

  border-radius: 8px;

}



.modal-duration-label {

  font-size: 0.6875rem;

  text-transform: uppercase;

  letter-spacing: 0.06em;

  color: var(--muted-foreground);

  font-weight: 600;

}



.modal-duration-value {

  font-size: 0.9375rem;

  color: var(--foreground);

  font-weight: 500;

  line-height: 1.5;

}



.modal-section {

  margin-bottom: 2rem;

}



.modal-section:last-child {

  margin-bottom: 0;

}



.modal-section-title {

  font-size: 1.125rem;

  font-weight: 600;

  color: var(--foreground);

  margin-bottom: 0.875rem;

  font-family: var(--font-serif);

}



.modal-text {

  font-size: 0.95rem;

  line-height: 1.8;

  color: var(--muted-foreground);

}



.modal-list {

  list-style: none;

  padding: 0;

}



.modal-list li {

  font-size: 0.95rem;

  line-height: 1.8;

  color: var(--muted-foreground);

  padding-left: 1.75rem;

  position: relative;

  margin-bottom: 0.625rem;

}



.modal-list li::before {

  content: "✓";

  position: absolute;

  left: 0;

  color: var(--accent);

  font-weight: 600;

  font-size: 0.875rem;

}



.modal-actions {

  margin-top: 2.5rem;

  padding-top: 2rem;

  border-top: 1px solid var(--border);

  text-align: center;

}



.modal-actions .btn {

  min-width: 200px;

}

