/*
 Theme Name:   GeneratePress Child
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.1
*/
.d-pt-carousel.owl-carousel .owl-stage {
    display: flex;         
    align-items: stretch;   
  }
  body div.wpforms-container-full .iti__dropdown-content {
     
      background-color: var(--body-background) !important;
      border-color: var(--wpforms-field-border-color) !important;
      border-bottom: 0 !important;
      border-radius: 10px !important;
  }

.modules-results-container.loading div#modules-loop {
    opacity: 0.2;
    transition: all 0.2s ease;
    pointer-events: none;
    
}

.modules-filters .tax-item:last-child .tax-item-parent {
    border: none !important;
}


.loading-container {
    position: absolute;
    top:100px;
    left:50%;
    transform: translateX(-50%);
    /* top: 50%;
    left: 50%;
   
    padding-top: 100px; */
}
  
  .elliptical-slider-container .elliptical-item {
      height: auto;
      display: inline-flex
  ;
      flex-wrap: wrap;
      align-items: center;
      justify-content: center;
  }


.modules-results-container > h3 {
    font-size: 40px;
    color: #F2F7FA;
    font-family: "ES Build TRIAL";
    font-size: 40px;
    font-style: normal;
    font-weight: 600;
    line-height: normal;
    letter-spacing: -1.2px;
    margin-bottom: 12px !important;
}
  
  .acf-rating { display:inline-flex; align-items:center; gap:.5rem; line-height:1; }
  .acf-rating__wrap { position:relative; display:inline-block; }
  .acf-rating__bg,
  .acf-rating__fg { display:flex; gap:5px; }
  .acf-rating__bg { color: #e5e7eb; }         /* gray background stars */
  .acf-rating__fg { 
    color: #FFC633;                           /* gold filled stars */
    position:absolute; inset:0 auto 0 0;
    overflow:hidden; white-space:nowrap; 
    pointer-events:none;
  }
  .acf-rating__star svg { display:block; width:18px; height:18px; }
 span.acf-rating__text strong {
color: rgba(255, 255, 255, 0.60);
font-weight: inherit;
}

.acf-rating__text {
font-size: 14px;
color: #fff;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: normal;
overflow: hidden;
line-height: 13px !important;
}



  .elliptical-slider-container .swiper-slide:not(.swiper-slide-active) p{
       opacity: 0;
  }
  .modules-results-container .module-info .meta span {
    display: block;
    opacity: 0.7;
    font-weight: 500;
    font-size: 16px;
}
span.checkmark {
    width: 18px;
    height: 18px;
    border-radius: 3px;
    border: 1px solid #D9D9D9;
    position: absolute;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
}
span.checkmark  svg{
 opacity:0;
}




  .tax-item-children input:checked ~ .checkmark {
  background: #1EB4FF;
    border-color: #1EB4FF;
}
  .tax-item-children input:checked ~ .checkmark svg{
   opacity:1;
  }
  
  /* .elliptical-slide.elliptical-hidden {
    display: none !important; 
    opacity: 0;
    pointer-events: none;
  }
  
   .slide.hidden {
      opacity: 0;
      pointer-events: none;
    }
   */
  .d-pt-carousel.owl-carousel .owl-item {
    flex: 1 0 auto;         
    display: flex;          
  }
  
  .d-pt-carousel.owl-carousel .owl-item > * {
    flex: 1;                
  }
  
   .y-position-info {
              background: #e6fffa;
              border: 1px solid #38b2ac;
              padding: 15px;
              border-radius: 8px;
              margin: 15px 0;
          }
          
          .y-position-info h4 {
              margin: 0 0 10px 0;
              color: #2c7a7b;
          }
          
          .y-position-info ul {
              margin: 0;
              padding-left: 20px;
          }
          
          .y-position-info li {
              margin: 5px 0;
          }
          
          /* Custom slider item styles */
          .custom-positions .elliptical-item {
              background: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
              border-radius: 15px;
              width: 80px;
              height: 80px;
          }
          
          /* Elliptical effect visualization */
          .elliptical-visualization {
              background: #f8f9fa;
              border: 2px dashed #dee2e6;
              padding: 20px;
              border-radius: 8px;
              margin: 20px 0;
              text-align: center;
          }
          
          .elliptical-visualization h4 {
              color: #495057;
              margin-bottom: 15px;
          }
          
          .position-demo {
              display: flex;
              justify-content: center;
              align-items: flex-end;
              gap: 20px;
              height: 120px;
              margin: 20px 0;
          }
          
          .position-item {
              width: 60px;
              height: 60px;
              border-radius: 50%;
              display: flex;
              align-items: center;
              justify-content: center;
              color: white;
              font-weight: bold;
              font-size: 14px;
              position: relative;
          }
          
          .position-center {
              background: #28a745;
              transform: translateY(0px);
              z-index: 10;
          }
          
          .position-adjacent {
              background: #ffc107;
              transform: translateY(15px);
              z-index: 5;
          }
          
          .position-edge {
              background: #dc3545;
              transform: translateY(60px);
              z-index: 1;
          }
          
          .position-label {
              position: absolute;
              bottom: -25px;
              left: 50%;
              transform: translateX(-50%);
              font-size: 12px;
              color: #6c757d;
              white-space: nowrap;
          }
  
  /* Modules Filter Accordion UI */
  .modules-filters {
      border-radius: 12px;
      /* padding: 20px; */
      margin-bottom: 30px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.1);
      width: 32.3%;
  }
.filter-group-header {
    padding: 16px 24px;
    background-color: rgba(255,255,255,0.1);
    border-radius: 24px 24px 0 0;
}

.filter-group-content {
    padding-top: 2px;
}
  
  .modules-results-container {
      width: 67.8%;
  }
  
  .modules-results-container h3 {
      color: white;
      font-size: 28px;
      font-weight: 700;
      margin: 0 0 8px 0;
  }
  
  .modules-results-container .description {
      /* color: white; */
      font-size: 16px;
      margin: 0 0 32px 0;
      /* opacity: 0.8; */
  }
  
  /* Flexbox container for filters and results */
  .modules-filters-wrapper {
      display: flex;
      gap: 20px;
      align-items: flex-start;
      justify-content: space-around;
      width: 100%;
      margin-top: 61px;
  }
  
  /* Responsive adjustments */
  @media (max-width: 768px) {
      .modules-filters-wrapper {
          flex-direction: column;
          position: relative;
          margin-top: 40px;
      }
      
      .modules-filters,
      .modules-results-container {
          width: 100%;
      }
  }
  
  .modules-filters .filter-group {
      margin-bottom: 20px;
      padding-bottom: 14px;
      /* border: 1px solid #e9ecef; */
      border-radius: 24px;
      background: #1E283B;
  }
  
  .modules-filters .filter-group:last-child {
      margin-bottom: 0;
  }
  
  .modules-filters .filter-group-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 0;
  }
  
  .modules-filters .filter-group-header .clear-button {
      background: transparent;
      color: white;
      display: none; /* Hidden by default */
      align-items: center;
      justify-content: center;
      gap: 8px;
      padding: 0;
      border: none;
      border-radius: 4px;
      font-weight: 500;
      /* font-size: 12px; */
      cursor: pointer;
      transition: all 0.2s ease;
      font-size: 16px;
      font-style: normal;
      font-weight: 400;
      line-height: normal;
  }
  
  .modules-filters .filter-group-header .clear-button.show {
      display: flex; /* Show when has .show class */
  }

  .modules-filters .filter-group-header .clear-button:hover {
      /* background: #c82333; */
      transform: translateY(-1px);
  }
  
  .modules-filters .filter-group-header .clear-button svg {
      flex-shrink: 0;
      width: 20px;
      height: 20px;
  }
  
  .modules-filters .filter-group-title {
      font-weight: 600;
      font-size: 18px;
      margin: 0;
      color: white;
      font-size: 20px;
      font-style: normal;
      font-weight: 600;
      line-height: normal;
  }
  
  .modules-filters .tax-checklist {
      list-style: none;
      padding: 0 24px;
      /* margin-top: 20px; */
      margin: 0;
  }
  
  .modules-filters .tax-item {
      margin-bottom: 0;
      /* padding: 2px 0; */
      /* border-bottom: 1px solid #f1f3f4; */
  }
  
  .modules-filters .tax-item:last-child {
      border-bottom: none;
      margin-bottom: 0;
  }
  
  .modules-filters .tax-item-parent {
      font-weight: 600;
      color: white;
      /* margin-bottom: 8px; */
      cursor: pointer;
      padding: 0;
      border-radius: 0;
      transition: background-color 0.2s ease;
      position: relative;
      ColorsHexHexBorder colors#FFFFFF · 14%Export;
      ColorsHexHexBorder colors#FFFFFF · 13%Export;
      ColorsHexHexBorder colors#FFFFFF · 11%Export;
      border-bottom: solid 1px  rgba(255, 255, 255, 0.10);
      padding: 18px 0;
      display: flex;
      flex-wrap: wrap;
  }
  
  .modules-filters .tax-item-parent > span {
      display: flex;
      align-items: center;
      justify-content: space-between;
      width: 100%;
      font-size: 20px;
      font-style: normal;
      font-weight: 600;
      line-height: normal;
      letter-spacing: -0.4px;
  }
  
  .modules-filters .tax-item-parent:hover {
      /* background: #f8f9fa; */
  }
  
  .modules-filters .tax-item-parent .parent-toggle {
      width: 20px;
      height: 20px;
      margin-left: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: transform 0.3s ease;
      flex-shrink: 0;
      position: absolute;
      right: 12px;
      top: 22px;
      /* transform: translateY(-50%); */
  }
  
  .modules-filters .tax-item-parent.collapsed .parent-toggle {
      transform: rotate(0deg);
  }
  
  .modules-filters .tax-item-parent:not(.collapsed) .parent-toggle {
      transform: rotate(0deg);
  }
  
  .modules-filters .tax-item-children {
      transition: all 0.3s ease;
      overflow: hidden;
      max-height: 1000px; /* Large enough to show all children */
      opacity: 1;
      margin-top: 10px;
      display: inline-flex;
      width: 100%;
      flex-direction: column;
      gap: 16px;
  }
  
  .modules-filters .tax-item-parent.collapsed .tax-item-children {
      max-height: 0;
      opacity: 0;
      margin-top: 0;
      margin-bottom: 0;
  }
  
  .modules-filters .tax-item-child {
      /* margin-bottom: 6px; */
      /* padding: 4px 0; */
  }
  
  .modules-filters .tax-item-child:last-child {
      margin-bottom: 0;
  }
  
  .modules-filters .tax-item-child label {
      display: flex;
      align-items: center;
      cursor: pointer;
      /* font-size: 14px; */
      color: white;
      transition: color 0.2s ease;
      font-size: 16px;
      font-style: normal;
      font-weight: 400;
      line-height: normal;
      letter-spacing: -0.32px;
      line-height: 19px;
      position: relative;
  }
  
  .modules-filters .tax-item-child label:hover {
      color: #007cba;
  }
  
  .modules-filters .tax-item-child input[type="checkbox"] {
      margin-right: 8px;
      width: 18px;
      height: 18px;
      accent-color: #007cba;
      opacity: 0;
      visibility: hidden;
  }

  /* Multi-level hierarchy styling */
  .modules-filters .tax-item-child.tax-level-1 {
      /* padding-left: 20px; */
      /* border-left: 2px solid #555; */
      /* margin-left: 10px; */
  }

  .modules-filters .tax-item-child.tax-level-2 {
      /* padding-left: 40px; */
      /* border-left: 2px solid #777; */
      margin-left: 20px;
  }

  .modules-filters .tax-item-child.tax-level-3 {
      padding-left: 60px;
      border-left: 2px solid #999;
      margin-left: 30px;
  }

  .modules-filters .tax-item-sub-children {
      margin-top: 8px;
      padding-left: 0;
  }

  .modules-filters .tax-item-child-parent {
      font-weight: 500;
      margin-bottom: 4px;
  }
  .results-list .acf-rating__text {
    line-height: 1;
}
  
  /* Results styling */
  .modules-results {
      border-radius: 12px;
      padding: 20px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  }
  
  .modules-results-container  .results-list {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px 24px;
      row-gap: 32px;
      margin-bottom: 30px;
  }
  
.modules-results-container  .result-item {
    padding: 0;
    border-bottom: none;
}

.modules-results-container  .module-info {
   transition: all 0.3s ease;
   height: 100%;
   /* display: flex; */
   flex-direction: column;
   text-decoration: none;
   color: inherit;
}

.modules-results-container  .module-info:hover {
    text-decoration: none;
    color: inherit;
    /* background: rgba(255, 255, 255, 0.08); */
    transform: translateY(-4px);
    /* box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15); */
}
  
  .modules-results-container  .module-img {
      width: 100%;
      height: 340px;
      object-fit: cover;
      border-radius: 24px;
      margin-bottom: 24px;
  }
  
  .modules-results-container  .module-info h3 {
      margin: 0 0 12px 0;
      color: white;
      /* font-size: 18px; */
      /* font-weight: 600; */
      /* line-height: 1.3; */
      font-size: 20px;
      font-style: normal;
      font-weight: 600;
      line-height: normal;
      line-height: 24px;
  }
  
  .modules-results-container  .module-info p {
      color: rgba(255,255,255,0.7);
      margin: 0 0 12px 0;
      line-height: 1.5;
      opacity: 0.9;
      flex-grow: 1;
      text-overflow: ellipsis;
      /* font-family: Inter; */
      font-size: 16px;
      font-style: normal;
      font-weight: 400;
      line-height: normal;
      line-height: 1.2;
  }

.modules-results-container .result-item .meta {
    display: flex;
    /* flex-direction: column; */
    flex-wrap: nowrap;
}



.modules-results-container .result-item .meta strong {
    /* font-size: 16px; */
    /* opacity: 0.7; */
    display: block;
    font-weight: 600;
    color: #fff;
}


  .modules-results-container  .module-info .rating {
      margin: 0 0 12px 0;
      color: white;
      display: flex;
      font-size: 14px;
  }
  
  .modules-results-container  .module-info .meta {
      margin-bottom: 24px;
      display: flex;
      justify-content: space-between;
  }
  
  .modules-results-container  .module-info .meta p {
      margin: 0 0 4px 0;
      color: white;
      font-size: 14px;
      opacity: 0.8;
      font-size: 15px;
      font-style: normal;
      font-weight: 600;
      line-height: normal;
      display: inline-block;
      width: auto;
      width: auto;
  }
  
  .modules-results-container  .module-info .meta p:last-child {
      margin-bottom: 0;
  }
  
  .modules-results-container  .module-info button {
      /* background: #007cba; */
      width: auto;
      display: inline-block !important;
      color: #121D31;
      font-family: Poppins;
      font-size: 16px;
      font-style: normal;
      font-weight: 500;
      line-height: 24px;
  }
  
  .modules-results-container  .module-info button:hover {
      background: #005a87;
      transform: translateY(-1px);
  }
  
  .modules-results-container  .module-info button a {
      color: white;
      text-decoration: none;
  }
.modules-results-container .page-numbers svg{
        width:14px;
}
  
  /* Pagination styling */
  .modules-results-container .pagination {
      margin-top: 30px;
      padding-top: 20px;
 
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 8px;
  }
  
  .modules-results-container  .page-numbers {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      /* min-width: 40px; */
      /* height: 40px; */
      padding: 0 10px;
      margin: 0 2px;
      border: 1px solid #e9ecef;
      border-radius: 0;
      color: white;
      text-decoration: none;
      font-weight: 500;
      transition: all 0.2s ease;
  }
  
  .modules-results-container  .page-numbers:hover {
      background: #fff;
      color: #121d31;
      border-color: #fff;
      transform: translateY(-1px);
  }
  
  .modules-results-container  .page-numbers.current {
      background: #fff;
      color: #121d31;
      border-color: #fff;
  }
  
  .modules-results-container  .page-numbers.dots {
      border: none;
      cursor: default;
  }
  
  .modules-results-container  .page-numbers.dots:hover {
      background: transparent;
      color: white;
      transform: none;
  }
  
  .modules-results-container .page-numbers.prev,
  .modules-results-container .page-numbers.next {
      padding: 0 16px;
      font-weight: normal;
      font-size: 14px;
      border: none;
      gap: 4px;
  }
  
  .modules-results-container .page-numbers.disabled {
      opacity: 0.5;
      cursor: not-allowed;
      pointer-events: none;
  }
  
  /* Loading effects */
  .loading-container {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 60px 20px;
      text-align: center;
  }
  
  .loading-spinner {
      width: 40px;
      height: 40px;
      border: 4px solid rgba(255, 255, 255, 0.3);
      border-top: 4px solid white;
      border-radius: 50%;
      animation: spin 1s linear infinite;
      margin-bottom: 16px;
  }
  
  .loading-text {
      color: white;
      font-size: 16px;
      margin: 0;
      opacity: 0.8;
  }
  
  @keyframes spin {
      0% { transform: rotate(0deg); }
      100% { transform: rotate(360deg); }
  }
  
  /* Fade in animation for results */
  .modules-results {
      animation: fadeIn 0.3s ease-in-out;
  }
  
  @keyframes fadeIn {
      from { opacity: 0; transform: translateY(10px); }
      to { opacity: 1; transform: translateY(0); }
  }
  
  /* Hover effects for better UX */
  .modules-results-container  .result-item {
      transition: all 0.2s ease;
  }
  
  .modules-results-container  .result-item:hover {
      transform: translateY(-2px);
      /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); */
      background: transparent;
  }
  
  /* Responsive */
  @media (max-width: 767px) {
      /* Mobile: Hide filters by default */
      .modules-filters {
          display: none;
          padding: 0;
          opacity: 0;
          transform: translateY(-10px);
          transition: all 0.3s ease;
      }
      .modules-results-container .page-numbers.prev span,
      .modules-results-container .page-numbers.next span {
          display:none;
      }
      .modules-results-container .page-numbers.prev svg,
      .modules-results-container .page-numbers.next svg{
          width:20px;
      }

      .modules-results-container .page-numbers.prev, .modules-results-container .page-numbers.next{
          border:solid 1px #fff;
          padding:5px 8px;
          border-radius:5px;
      }
      .modules-results-container .page-numbers.prev:hover svg path,
      .modules-results-container .page-numbers.next:hover svg path {
        stroke: var(--body-background);
    }
      
      .modules-filters.show {
          display: block;
          position: absolute;
          top: 40px;
          left: 0;
          z-index: 999;
          opacity: 1;
          transform: translateY(0);
          animation: fadeInDown 0.3s ease;
      }
      
      @keyframes fadeInDown {
          from {
              opacity: 0;
              transform: translateY(-10px);
          }
          to {
              opacity: 1;
              transform: translateY(0);
          }
      }
      
      .modules-filters .filter-group-header {
          padding: 12px 15px;
      }
      
      .modules-filters .filter-group-content {
          padding: 15px;
      }
      
      .modules-filters .filter-actions {
          flex-direction: column;
      }
      
      .modules-results-container  .results-list {
          grid-template-columns: 1fr;
          gap: 20px;
          row-gap: 24px;
      }
      
      .modules-results-container  .module-img {
          height: 300px;
      }
      
      .modules-results-container .pagination {
          justify-content: space-between;
          align-items: center;
      }
      
      .modules-results-container .page-info {
          color: white;
          font-size: 14px;
          font-weight: 500;
          text-align: center;
          flex: 1;
      }
      
      /* Trigger button styling */
      .trigger-filters-button {
          display: flex;
          /* align-items: center; */
          justify-content: center;
          /* width: 50px; */
          /* height: 50px; */
          background: rgba(255, 255, 255, 0.10)  !important;
          /* color: white; */
          border: none;
          border-radius: 0 !important;
          cursor: pointer;
          /* margin: 0 auto 20px auto; */
          transition: all 0.3s ease;
          position: relative;
          color: #FFF;
          /* font-family: Inter; */
          font-size: 16px;
          font-style: normal;
          font-weight: 500;
          line-height: normal;
          gap: 8px;
          padding: 8px 12px;
          position: absolute;
          right: 0;
          margin-bottom: 0;
          top: -1px;
          line-height: 19px;
          border-radius: 8px !important;
          line-height: 16px;
      }
      
      .trigger-filters-button:hover {
          background: transparent;
          /* transform: translateY(-2px); */
          /* box-shadow: 0 4px 12px rgba(0, 124, 186, 0.3); */
      }
      
      .trigger-filters-button:active {
          transform: translateY(0);
      }
      
      .trigger-filters-button svg {
          width: 18px;
          height: 18px;
          transition: transform 0.3s ease;
      }
      
      .trigger-filters-button.active svg {
          transform: rotate(180deg);
      }
      
      .trigger-filters-button span {
         /* margin-left: 8px; */
         font-size: 14px;
         font-weight: 500;
         line-height: 16px;
      }
      
      .trigger-filters-button.active span {
          display: inline;
      }
  }
  
  /* Desktop: Show filters and hide trigger button */
  @media (min-width: 768px) {
      .trigger-filters-button {
          display: none;
      }
      
      .modules-filters {
          display: block;
      }
  }
  
  /* Modules Results Container */
  .modules-results-container {
      margin-top: 0;
      position: relative;
  }
