/* file: program-details-fetch/css/styles.css */

/* Skeleton Loading Animation */
@keyframes skeleton-loading {
  0% {
    background-position: -200px 0;
  }
  100% {
    background-position: calc(200px + 100%) 0;
  }
}

.skeleton {
  display: inline-block;
  height: 100%;
  width: 100%;
  background: linear-gradient(
    90deg,
    #f0f0f0 25%,
    #e0e0e0 50%,
    #f0f0f0 75%
  );
  background-size: 200px 100%;
  animation: skeleton-loading 1.5s ease-in-out infinite;
}

/* Simple placeholder with subtle gradient */
.image-placeholder-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #f5f5f5 0%, #e8e8e8 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s ease-out;
}

.image-placeholder-bg.hide {
  opacity: 0;
  pointer-events: none;
}

/* Image icon with subtle pulse animation */
.image-placeholder-icon {
  color: #d0d0d0;
  font-size: 48px;
  opacity: 0.5;
  animation: subtle-pulse 2s ease-in-out infinite;
}

@keyframes subtle-pulse {
  0%, 100% {
    opacity: 0.3;
    transform: scale(1);
  }
  50% {
    opacity: 0.6;
    transform: scale(1.05);
  }
}

/* Circular image placeholders */
.rounded-circle.position-relative img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

.rounded-circle.position-relative img.loaded {
  opacity: 1;
}

/* Skeleton loader positioning */
.position-relative .skeleton {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
}

.position-relative img {
  z-index: 2;
}

/* Border radius utilities */
.border-radius-6px {
  border-radius: 6px;
}

/* Height utilities */
.h-60px {
  height: 60px;
}

/* Font size utilities */
.fs-24 {
  font-size: 24px !important;
}

/* Image placeholder to prevent layout shift */
.image-placeholder {
  position: relative;
  overflow: hidden;
  background-color: #f5f5f5;
  /* Use aspect-ratio instead of padding hack for better performance */
  aspect-ratio: 16/9;
  min-height: 200px; /* Fallback for browsers without aspect-ratio support */
}

.image-placeholder img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

.image-placeholder img.loaded {
  opacity: 1;
}

.image-placeholder .skeleton {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* Content skeleton loaders */
.skeleton-text {
  height: 20px;
  margin-bottom: 10px;
  border-radius: 4px;
}

.skeleton-title {
  height: 32px;
  width: 70%;
  margin-bottom: 15px;
  border-radius: 4px;
}

.skeleton-paragraph {
  height: 16px;
  margin-bottom: 8px;
  border-radius: 4px;
}

.skeleton-paragraph:last-child {
  width: 80%;
}

/* Mentor program skeleton specific */
.mentor-program-skeleton {
  transition: opacity 0.3s ease-out;
}

.mentor-program-skeleton.hide {
  opacity: 0;
  pointer-events: none;
}

/* Fade in animation for content */
.fade-in-content {
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

.fade-in-content.loaded {
  opacity: 1;
}

/* Gift Session Button Styling */
#giftSessionButton {
  background-color: #00d158;
  color: #ffffff;
  border: 2px solid #00d158;
  transition: all 0.3s ease;
}

#giftSessionButton:hover {
  background-color: #00a348;
  border-color: #00a348;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 209, 88, 0.3);
}

#giftSessionButton i {
  margin-right: 5px;
}

/* Price Section Styling for Mentor Programs - matches programs.html style */
.price-section {
  display: flex;
  align-items: center;
}



/* Prevent layout shifts in dynamic sections */
#mentorProgramsList {
  min-height: 400px;
  opacity: 0;
  transition: opacity 0.4s ease-in-out;
}

#mentorProgramsList.loaded {
  opacity: 1;
}

#reviewsContainer {
  min-height: 200px;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

#reviewsContainer.loaded {
  opacity: 1;
}

#availableOptionsSummary {
  min-height: 150px;
}

/* Pricing skeleton loader */
.pricing-skeleton {
  transition: opacity 0.3s ease-out;
}

.pricing-skeleton.hide {
  opacity: 0;
  pointer-events: none;
}

/* Smooth section transitions */
.bg-tranquil {
  transition: all 0.3s ease-in-out;
}

/* Fix for sticky aside panel overlapping content */
.aside-pricing-panel {
  /* Ensure the panel doesn't overlap with content above */
  margin-top: 20px;
}

/* Alternative: Remove sticky positioning on smaller screens where it causes issues */
@media (max-width: 991px) {
  .position-sticky.top-150px {
    position: relative !important;
    top: 0 !important;
  }
}

/* Section Spacing */
section {
  padding-top: 50px;
  padding-bottom: 90px;
}

@media (max-width: 1600px) {
  section {
    padding-top: 30px;
    padding-bottom: 90px;
  }
}

/* Social Icons & Links */
.medium-icon a.tiktok {
  background-color: rgba(0, 0, 0, 0.747);
  border-radius: 50%;
  padding: 8px;
}

.medium-icon a.tiktok:hover {
  background-color: rgba(255, 255, 255, 0.2);
}

.mentor-portfolio-link {
  color: #828c8a;
  /* font-weight: 600; */
  /* text-decoration: underline; */
}

.mentor-portfolio-link:hover {
  color: blue;
  /* font-weight: 800; */
}

/* Tab Styles */
.tab-style-04 .nav-tabs .nav-item .nav-link {
  padding: 0px;
  /* border: 1px solid rgb(255, 255, 255);
  box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.2);
  background: #666d604a; */
  border-bottom: 1px solid #666d604a;
  position: relative;
  color: var(--medium-gray);
}

/* Video Container */


.local-video-container {
  width: 100%;
  height: 200px;
  background: #2a2a2a;
  border-radius: 8px;
  position: relative;
}

/* Modal Sizes and General Styles */
.modal-dialog.modal-md {
  max-width: 450px;
  margin: 1.75rem auto;
}

.modal-dialog.custom-calendar-modal {
  max-width: 500px;
  margin: 1.75rem auto;
}

.modal-dialog.modal-sm {
  max-width: 350px;
  margin: 1.75rem auto;
}

/* Modal Content Base Styles */
.modal-content {
  position: relative;
  display: flex;
  flex-direction: column;
  color: rgb(255 255 255);
  pointer-events: auto;
  background-color: rgb(12, 118, 0);
  background-clip: padding-box;
  border: 1px solid #757575;
  border-radius: var(--bs-modal-border-radius);
  outline: 0;
  font-size: medium;
}
.modal-content .btn {
  /* box-shadow: 0px 0px 5px white;
  background-color: #035369;
  color: white; */
  border: 1px solid #d0d0d0;
}
.modal-footer .btn {
  border-radius: 10px;
}

/* Pricing Modal Styles */
.pricing-option {
  background-color: #e0e0e0;
  transition: background-color 0.2s ease;
  cursor: pointer;
  color: black;
  line-height: 1.5;
}

.form-check-input:checked + .pricing-option {
  background-color: #ffffff;
  border: 2px solid #ff01ee;
  box-shadow: 0px 0px 10px 2px wheat;
  line-height: 1.5;
}

.form-check-input:checked {
  background-color: #fd0ded;
  border-color: #0d6efd;
  line-height: 0.8;
}

/* Calendar Styles */
.fc-event {
  min-height: 30px !important;
  padding: 2px !important;
}
.fc .fc-toolbar.fc-header-toolbar {
  margin-bottom: 0em;
}
.fc .fc-toolbar.fc-header-toolbar {
}
.fc .fc-button-primary:not(:disabled).fc-button-active, .fc .fc-button-primary:not(:disabled):active {
  background-color: #239500;
  border-color: var(--fc-button-active-border-color);
  color: var(--fc-button-text-color);
}
/* Make time text more compact but readable */
.fc-event-time {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: 0.85em !important;
  line-height: 1.2;
  text-align: center;
}
.fc-event-time .time-value {
  font-size: 1.5em;
  font-weight: 500;
}
.fc-event-time .meridiem {
  font-size: 0.9em;
  opacity: 0.9;
  text-transform: uppercase;
}

/* Make calendar cells wider */
.fc .fc-timegrid-col {
  min-width: 120px !important;
}
/* Selected event styles */
/* Calendar event styles moved to calendar-modal.css */

/* FullCalendar Customization - Moved to calendar-modal.css for better organization */
/* The scheduling modal calendar styles are now in program-details-fetch/css/calendar-modal.css */

/* Loading Modal Styles */
#loadingModal .modal-content {
  background-color: rgba(255, 255, 255, 0.9);
  border: none;
  border-radius: 8px;
  padding: 20px;
}

#loadingModal .spinner-border {
  color: #4CAF50;
  width: 3rem;
  height: 3rem;
}

#loadingModal p {
  margin-top: 15px;
  color: #000000;
}

/* Payment Modal Styles */
#paymentModal .modal-body {
  background-color: #000000 !important
}

#paymentModal .modal-content {
  background-color: #248d00;
  border: 1px solid white;
  border-radius: 8px;
  font-size: 16px;
}

#paymentModal .modal-header {
  background-color: #073600;
  color: #ffffff;
  padding: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

#paymentModal .modal-footer {
  background-color: #000000;
  padding: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
}

#paymentModal .payment-summary {
  background-color: #3b3b3b;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 6px;
  padding: 8px;
  margin-top: 10px;
  color: white;
}

#paymentModal label {
  color: white;
}

/* Card Element Container */
#card-element {
  padding: 12px;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  background-color: white !important;
  min-height: 40px;
}

/* Ensure Stripe Elements are visible */
.StripeElement {
  background-color: white !important;
  padding: 8px 12px;
  border-radius: 4px;
  border: 1px solid #e0e0e0;
  min-height: 40px;
}

.StripeElement--focus {
  box-shadow: 0 0 0 1px #213600;
}

/* Summary Text Colors */
#paymentModal .text-gray {
  color: rgba(255, 255, 255, 0.7) !important;
}

#paymentModal .fw-500,
#paymentModal .fw-600 {
  color: white !important;
}

/* Payment Button */
#paymentModal #submit-payment {
  background-color: #009783;
  color: white;
  padding: 12px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  font-weight: 600;
  transition: all 0.3s ease;
}

#paymentModal #submit-payment:hover {
  background-color: #5c9900;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Card Element Styles */
#card-element {
  transition: all 0.3s ease;
  min-height: 38px;
  padding: 8px;
  border-radius: 6px;
  background: #ffffff;
  color: #000000;
}

/* #paymentModal #card-element {
  padding: 15px;
  border: 1px solid #e0e0e0;
  border-radius: 6px;
  background: #ffffff;
}

#paymentModal #card-element:hover {
  border-color: #213600;
}

#paymentModal #card-element.focused {
  border-color: #213600;
  box-shadow: 0 0 0 1px #213600;
} */

/* Payment Button Styles */
#paymentModal #submit-payment {
  background-color: #005d9f;
  color: white;
  padding: 5px;
  border: 1px solid white;
  font-weight: 600;
  transition: all 0.3s ease;
  border-radius: 5px;
}

#paymentModal #submit-payment:hover {
  background-color: #2d4800;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* Saved Payment Method Styles */
.saved-payment-method {
  background-color: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 6px;
  padding: 15px;
}

/* Responsive Styles */
@media (max-width: 576px) {
  .modal-dialog.modal-md,
  .modal-dialog.custom-calendar-modal,
  .modal-dialog.modal-sm {
    max-width: calc(100% - 20px);
    margin: 10px;
  }

  #clientSchedulingCalendar {
    max-height: 400px;
    font-size: 0.8rem;
  }

  .fc .fc-toolbar-title {
    font-size: 1em;
  }

  .fc .fc-button {
    padding: 0.2em 0.5em;
    font-size: 0.8em;
  }

  .fc-timegrid-slot {
    height: 60px !important; /* Increased height to accommodate stacked format */
  }

  .modal-body {
    padding: 1rem;
  }

  .payment-summary {
    font-size: 0.9rem;
  }
}

.alert.alert-info {
  background-color: #004a03;
  color: #e9e9e9;
  border-color: #bce8f1;
}
.alert {
  padding: 5px 5px 5px 8px;
  margin-bottom: 30px;
  line-height: 22px;
  position: relative;
  z-index: 1;
  -webkit-border-radius: 4px;
  border-radius: 5px;
}






.popup-youtube {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
}

.video-icon-box {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
}

.video-icon {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

/* Video container positioning */
.video-container {
  position: relative;
  /* width: 100%;
  height: 100%; */
}

#modalMessage {
  color: white !important;
  font-size: 27px;
}

#customAlertModal .modal-content {

  background: linear-gradient(145deg, #008e58, #139f00);
  margin: 15% auto;
  padding: 20px;
  border: 3px solid #a8e19f;
  width: 80%;
  max-width: 500px;
  text-align: center;
  max-height: fit-content;
}
#modalOkButton {
  margin-top: 20px;
  display: flex;
  justify-content: center;
  align-self: center;
  width: 100px;
  font-size: large;
  background: linear-gradient(145deg, #337a00, #0e4600);
}

.tab-style-06 .nav-tabs > li.nav-item > a.nav-link {
  border-bottom: none;
  border-radius: 0;
  line-height: 18px;
  padding: 16px 0px;
  text-transform: uppercase;
  z-index: 1;
  background-color: transparent;
  color: var(--medium-gray);
  border: 0;
}