/* ============================================
   UOFD Custom Styles - Reusable Components
   All styles scoped to .uofd-custom-landing
   ============================================ */

/* ========== BASE OVERRIDES ========== */
.uofd-custom-landing {
  scroll-behavior: smooth;
}

.uofd-custom-landing h1,
.uofd-custom-landing h2,
.uofd-custom-landing h3,
.uofd-custom-landing h4,
.uofd-custom-landing h5,
.uofd-custom-landing h6 {
  font-weight: 700 !important;
}

.uofd-custom-landing p,
.uofd-custom-landing ul {
  font-size: 1.2rem;
}

/* ========== BOOTSTRAP OVERRIDES ========== */
.uofd-custom-landing .container {
  max-width: 800px !important;
}

.uofd-custom-landing .card {
  border-radius: 0 !important;
}

.uofd-custom-landing .btn {
  border-radius: 0 !important;
}

.uofd-custom-landing .accordion-button {
  border-radius: 0 !important;
}

.uofd-custom-landing .accordion-item {
  border-radius: 0 !important;
}

.uofd-custom-landing .lead {
  font-weight: 300 !important;
}

/* ========== BUTTON STYLES ========== */
.uofd-custom-landing .btn-primary {
  border: none !important;
  font-weight: 700 !important;
}

.uofd-custom-landing .btn:hover {
  transform: translateY(-1px);
  transition: transform 0.2s ease;
}

.uofd-custom-landing .btn-secondary:hover {
  background-color: #274a7e !important;
}

/* Gold Button Variant */
.uofd-custom-landing .btn.btn-primary.gold,
.uofd-custom-landing a.btn.btn-primary.gold,
.uofd-custom-landing button.btn.btn-primary.gold {
  background-color: #F1CD67 !important;
  color: #1d365c !important;
  border: none !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}

.uofd-custom-landing .btn.btn-primary.gold:hover,
.uofd-custom-landing a.btn.btn-primary.gold:hover,
.uofd-custom-landing button.btn.btn-primary.gold:hover,
.uofd-custom-landing .btn.btn-primary.gold:focus,
.uofd-custom-landing a.btn.btn-primary.gold:focus,
.uofd-custom-landing button.btn.btn-primary.gold:focus {
  background-color: #f6be50 !important;
  color: #1d365c !important;
  border-color: #f6be50 !important;
  text-decoration: none !important;
}

/* Pink Button Variant */
.uofd-custom-landing .pink.btn-primary:hover {
  background-color: #d6055e !important;
}

/* ========== LINK STYLES ========== */
.uofd-custom-landing a {
  color: #ea0567 !important;
  text-decoration: none;
}

.uofd-custom-landing a:hover,
.uofd-custom-landing a:focus {
  text-decoration: underline;
}

/* Link Color Utilities */
.uofd-custom-landing a.text-brand-blue {
  color: #1d365c !important;
}

.uofd-custom-landing a.text-pink {
  color: #ea0567 !important;
}

.uofd-custom-landing a.text-gold {
  color: #F1CD67 !important;
}

/* CTA Link Style */
.uofd-custom-landing a.link-cta {
  display: inline-block;
  background-color: #F1CD67;
  color: #1d365c !important;
  font-weight: 700;
  text-transform: uppercase;
  padding: 0.75rem 1.25rem;
  border: none;
  border-radius: 0;
}

.uofd-custom-landing a.link-cta:hover,
.uofd-custom-landing a.link-cta:focus {
  background-color: #f6be50;
  color: #1d365c !important;
  text-decoration: none;
  transform: translateY(-1px);
  transition: transform 0.2s ease;
}

/* ========== COLOR UTILITIES ========== */
.uofd-custom-landing .text-light {
  color: #ffffff !important;
}

.uofd-custom-landing .text-brand-blue {
  color: #1d365c !important;
}

.uofd-custom-landing .text-dark-alt {
  color: #2c2c2c !important;
}

.uofd-custom-landing .text-gold {
  color: #ffda74 !important;
}

.uofd-custom-landing .text-pink {
  color: #ea0567 !important;
}

.uofd-custom-landing .white {
  background-color: #ffffff !important;
}

.uofd-custom-landing .blue {
  background-color: #1D365C !important;
}

.uofd-custom-landing .light-blue {
  background-color: #caecff !important;
}

.uofd-custom-landing .light-gray {
  background-color: #ededed !important;
}

.uofd-custom-landing .pink {
  background-color: #ea0567 !important;
}

.uofd-custom-landing .gold {
  background-color: #ffda74ef !important;
}

.uofd-custom-landing .bg-primary {
  background-color: #1D365C !important;
}

.uofd-custom-landing .bg-success {
  background-color: #28a745 !important;
}

.uofd-custom-landing .bg-warning {
  background-color: #F1CD67 !important;
}

/* ========== BADGE STYLES ========== */
.uofd-custom-landing .badge.bg-danger,
.uofd-custom-landing span.badge.bg-danger,
.uofd-custom-landing .badge {
  background-color: #dc3545 !important;
  color: #ffffff !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  border-radius: 0.375rem !important;
  padding: 0.25rem 0.5rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

/* ========== LAYOUT COMPONENTS ========== */
.uofd-custom-landing .triangle-spacer {
  height: 4vw;
  width: 100%;
  position: relative;
  z-index: 3;
  clip-path: polygon(0 0, 100% 0, 0 100%);
  margin-top: -1px;
}

.uofd-custom-landing .triangle-spacer.inverse {
  transform: rotate(180deg);
  margin-bottom: -1px;
}

.uofd-custom-landing .triangle-spacer.inverseY {
  transform: rotate(180deg) scaleY(-1);
}

.uofd-custom-landing .triangle-spacer.bottom {
  transform: scaleY(-1);
}

/* ========== CURRICULUM MODULE ========== */
.uofd-custom-landing .curriculum-module {
  border-left: 4px solid #1d365c;
  padding-left: 20px;
  margin-bottom: 30px;
}

/* ========== PRICING STYLES ========== */
.uofd-custom-landing .pricing-amount {
  font-size: 2rem !important;
  font-weight: bold !important;
}

.uofd-custom-landing .pricing-period {
  font-size: 1rem !important;
  font-weight: normal !important;
}

/* ========== NAVIGATION ========== */
.uofd-custom-landing .nav-topic:hover {
  background-color: rgba(255, 255, 255, 0.1) !important;
}

/* ========== INTERACTIVE ELEMENTS ========== */
.uofd-custom-landing .cursor-pointer {
  cursor: pointer;
}

.uofd-custom-landing .cursor-pointer:hover .bg-white {
  transform: scale(1.1);
  background-color: rgba(255, 255, 255, 1) !important;
}

.uofd-custom-landing .cursor-pointer:hover {
  transform: translateY(-2px);
  transition: all 0.3s ease;
}

/* ========== CAROUSEL / TESTIMONIALS ========== */
.uofd-custom-landing #testimonialCarousel {
  min-height: 400px !important;
  position: relative !important;
}

.uofd-custom-landing .carousel-indicators {
  position: absolute !important;
  bottom: 30px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  margin: 0 !important;
  width: auto !important;
  z-index: 10 !important;
}

.uofd-custom-landing .carousel-indicators button {
  width: 12px !important;
  height: 12px !important;
  border-radius: 50% !important;
  margin: 0 6px !important;
  background-color: rgba(255, 255, 255, 0.5) !important;
  border: 2px solid white !important;
  opacity: 1 !important;
}

.uofd-custom-landing .carousel-indicators button.active {
  background-color: #F1CD67 !important;
}

.uofd-custom-landing #testimonialCarousel .carousel-indicators button.active {
  background-color: #F1CD67 !important;
  transform: scale(1.2);
  transition: all 0.3s ease;
}

.uofd-custom-landing #testimonialCarousel .carousel-indicators button:hover {
  background-color: rgba(241, 205, 103, 0.8) !important;
  transform: scale(1.1);
}

.uofd-custom-landing .testimonial-quote {
  position: relative;
  padding-left: 80px;
  text-align: left !important;
}

.uofd-custom-landing .testimonial-quote::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 60px;
  height: 52px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 138' fill='none'%3E%3Cpath d='M63.3605 138H0V92.3783C0 73.9178 1.57838 59.3914 4.73513 48.7993C8.0422 38.0559 14.0551 28.4474 22.7737 19.9737C31.4924 11.5 42.6162 4.84211 56.1451 0L68.5466 26.3289C55.9196 30.5658 46.8252 36.4671 41.2633 44.0329C35.8517 51.5987 32.9956 61.6612 32.6949 74.2204H63.3605V138ZM154.814 138H91.4534V92.3783C91.4534 73.7664 93.0317 59.1645 96.1885 48.5724C99.4956 37.9803 105.508 28.4474 114.227 19.9737C123.096 11.5 134.22 4.84211 147.598 0L160 26.3289C147.373 30.5658 138.279 36.4671 132.717 44.0329C127.305 51.5987 124.449 61.6612 124.148 74.2204H154.814V138Z' fill='%23F1CD67'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* ========== BOOTSTRAP MODAL OVERRIDES ========== */
.uofd-custom-landing .modal {
  background-color: rgba(0, 0, 0, 0.5) !important;
  display: none !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 1055 !important;
  overflow: hidden !important;
  outline: 0 !important;
}

.uofd-custom-landing .modal.show {
  display: block !important;
  opacity: 1 !important;
}

.uofd-custom-landing .modal.fade {
  transition: opacity 0.15s linear !important;
}

.uofd-custom-landing .modal.fade:not(.show) {
  opacity: 0 !important;
}

.uofd-custom-landing .modal-dialog {
  position: relative !important;
  width: auto !important;
  margin: 0.5rem !important;
  pointer-events: none !important;
}

.uofd-custom-landing .modal-dialog-centered {
  display: flex !important;
  align-items: center !important;
  min-height: calc(100% - 1rem) !important;
  justify-content: center !important;
}

.uofd-custom-landing .modal-lg {
  max-width: 800px !important;
}

.uofd-custom-landing .modal-content {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
  pointer-events: auto !important;
  background-clip: padding-box !important;
  border-radius: 0.375rem !important;
  outline: 0 !important;
}

.uofd-custom-landing .modal-content.bg-dark {
  background-color: #343a40 !important;
  border: none !important;
}

.uofd-custom-landing .modal-header {
  display: flex !important;
  flex-shrink: 0 !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 1rem 1rem !important;
  border-bottom: 1px solid #dee2e6 !important;
  border-top-left-radius: calc(0.375rem - 1px) !important;
  border-top-right-radius: calc(0.375rem - 1px) !important;
}

.uofd-custom-landing .modal-body {
  position: relative !important;
  flex: 1 1 auto !important;
  padding: 0 !important;
}

.uofd-custom-landing .modal-backdrop {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  z-index: 1050 !important;
  width: 100vw !important;
  height: 100vh !important;
  background-color: #000 !important;
}

.uofd-custom-landing .modal-backdrop.fade {
  opacity: 0 !important;
}

.uofd-custom-landing .modal-backdrop.show {
  opacity: 0.5 !important;
}

.uofd-custom-landing #modalVideo {
  background-color: #000 !important;
  width: 100% !important;
  height: auto !important;
}

body.modal-open .uofd-custom-landing .modal {
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

/* ========== RESPONSIVE ========== */
@media (min-width: 576px) {
  .uofd-custom-landing .modal-dialog {
    max-width: 500px !important;
    margin: 1.75rem auto !important;
  }

  .uofd-custom-landing .modal-dialog-centered {
    min-height: calc(100% - 3.5rem) !important;
  }

  .uofd-custom-landing .modal-lg {
    max-width: 800px !important;
  }
}

@media (max-width: 767px) {
  .uofd-custom-landing #testimonialCarousel .testimonial-card {
    min-height: 400px !important;
  }
}

@media (max-width: 450px) {
  .uofd-custom-landing #testimonialCarousel .testimonial-card {
    padding-top: 100px !important;
  }
}

@media (max-width: 768px) {
  .uofd-custom-landing .container {
    max-width: 100% !important;
    padding: 0 15px;
  }

  .uofd-custom-landing .triangle-spacer {
    height: 6vw;
  }

  .uofd-custom-landing #program-highlights .ratio,
  .uofd-custom-landing #instructors .ratio {
    aspect-ratio: 3/2 !important;
    --bs-aspect-ratio: 50% !important;
    margin-bottom: 2rem !important;
  }

  .uofd-custom-landing #program-highlights img {
    max-height: 200px !important;
  }

  .uofd-custom-landing .u-headingdialog .publiclogin__heading {
    font-size: 24px;
  }

  .uofd-custom-landing .pricing-section .col-sm-12 {
    margin-bottom: 2rem;
  }
}

@media (max-width: 576px) {
  .uofd-custom-landing .triangle-spacer {
    height: 8vw;
  }
}