@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800&display=swap');

/* Reset inherited theme/framework styles */
#class-finder {
  all: revert;
  display: flex;
  font-family: "Roboto", sans-serif;
  font-size: 16px;
  line-height: 1.5;
  color: #1f2323;
  box-sizing: border-box;
}

#class-finder *,
#class-finder *::before,
#class-finder *::after {
  box-sizing: inherit;
}

:where(#class-finder) :where(h1, h2, h3, h4, h5, h6, p, button, a, div, span) {
  font-family: "Roboto", sans-serif;
  font-size: revert;
  font-weight: revert;
  line-height: revert;
  margin: revert;
  letter-spacing: revert;
}

.bg-white {
  background-color: #fff;
}

#class-finder.full-view {
  padding: 0 !important;
  overflow: hidden;
}

#class-finder .filters {
  position: relative;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  width: 350px;
  text-align: left;
  border-right: 1px solid #0000000d;
}

#class-finder .filters .filter-box {
  font-weight: 300;
  font-size: 12px;
  line-height: 14.52px;
  color: #1f232380;
  min-height: 60px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid #0000000d;
  display: flex;
  justify-content: space-between;
}

#class-finder .filters .filter-box.multiple {
  padding: 20px 20px 0;
  align-items: start;
}

#class-finder .filters .filter-control {
  color: #53d89a;
  cursor: pointer;
}

#class-finder .filters .filter-box label {
  font-size: 14px;
  line-height: 17.94px;
}

#class-finder .filters .filter-box .selected-locations {
  margin-top: 5px;
}

#class-finder .result-content {
  width: 100%;
  padding: 20px;
  text-align: left;
  overflow: auto;
}
#class-finder .results {
  width: 100%;
}

#class-finder .filters label {
  font-size: 16px;
  font-weight: 300;
  color: #1f2323bf;
}

#class-finder .result-content h2 {
  font-weight: 300;
  font-size: 20px;
  line-height: 24px;
  margin-top: 0;
  margin-bottom: 0;
}

#class-finder .result-content p {
  margin-top: 0;
  color: #1f2323bf;
}

#class-finder .result-content .bar {
  background: #0000000a;
  height: 44px;
  border-radius: 10px;
  margin-bottom: 20px;
}

#class-finder .results .result-card {
  display: grid;
  grid-template-columns: repeat(9, minmax(0, 1fr));
  gap: 5px;
  border: 1px solid #0000001a;
  width: auto;
  padding: 20px;
  border-radius: 10px;
  margin-bottom: 10px;
}

#class-finder .results .result-card > p {
  display: none;
}

#class-finder .results .result-card .overview {
  grid-column: span 3 / span 3;
}

#class-finder .results .result-card .overview h2,
#ryb-connect
  #ryb-openings-result
  .step-view
  #class-finder
  .results
  .result-card
  .overview
  h2 {
  font-size: 15px;
  font-weight: 600;
  line-height: 18px;
  color: #000;
}

#class-finder .results .result-card .overview p {
  font-size: 12px;
  font-weight: 300;
  line-height: 15px;
  color: #000000bf;
}

#class-finder .results .result-card .age,
#class-finder .results .result-card .gender,
#class-finder .results .result-card .price,
#class-finder .results .result-card .button {
  grid-column: span 1 / span 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

#class-finder .results .result-card .age .text,
#class-finder .results .result-card .gender .text {
  font-weight: 600;
  font-size: 13px;
  line-height: 16px;
}

#class-finder .results .result-card .price {
  line-height: 20px;
  font-size: 16px;
  font-weight: 400;
}

#class-finder .results .result-card .price .text {
  font-weight: 700;
}

#class-finder .results .result-card .calendar {
  grid-column: span 2 / span 2;
  display: flex;
  align-items: center;
  justify-content: center;
}

#class-finder .results .result-card .button {
  justify-content: end;
}

#class-finder .results .result-card .calendar .text {
  font-size: 13px;
  line-height: 16px;
}

#class-finder button.enroll-class,
#class-finder a.enroll-class {
  background: linear-gradient(228.01deg, #56dad4 0%, #53d89a 82.24%);
  box-shadow: 0px 10px 20px 0px #56dac980;
  width: 100px;
  height: 40px;
  border-radius: 10px;
  transition: 0.3s all;
  color: #fff;
  cursor: pointer;
  border: none;
}

#class-finder button.enroll-class.waitlist {
  background: linear-gradient(228.01deg, #a4a4a4 0%, #808080 82.24%);
  box-shadow: 0px 10px 20px 0px #a4a4a44d;
}

#class-finder button.trial-full {
  cursor: default !important;
  opacity: 0.7;
  pointer-events: none;
}
#class-finder .result-card .icon {
  display: flex;
  align-items: center;
  margin-right: 5px;
}

#class-finder button.enroll-class:hover,
#class-finder a.enroll-class:hover {
  box-shadow: none;
  transition: 0.3s all;
}

#class-finder button.enroll-class.disabled-enroll {
  background: linear-gradient(228.01deg, #a4a4a4 0%, #808080 82.24%);
  box-shadow: none;
  cursor: default;
  opacity: 0.7;
  pointer-events: none;
}

#class-finder .enroll-disabled-banner {
  margin: 16px 20px 24px;
  border-radius: 14px;
  background: linear-gradient(135deg, #e8faf4 0%, #e0f5fb 100%);
  border: 1px solid #b8edd8;
  overflow: hidden;
}

#class-finder .enroll-disabled-banner-inner {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px 28px;
}

#class-finder .enroll-disabled-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #56dad4 0%, #53d89a 100%);
  border-radius: 12px;
  color: #fff;
}

#class-finder .enroll-disabled-content {
  display: flex;
  align-items: center;
  gap: 20px;
  flex: 1;
  min-width: 0;
}

#class-finder .enroll-disabled-banner p {
  margin: 0;
  font-size: 15px;
  font-weight: 500;
  color: #1f2937;
  line-height: 1.5;
}

#class-finder .enroll-disabled-banner .enroll-disabled-button {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  padding: 10px 24px;
  border-radius: 10px;
  text-decoration: none;
  color: #fff;
  font-weight: 600;
  font-size: 14px;
  background: linear-gradient(228.01deg, #56dad4 0%, #53d89a 82.24%);
  box-shadow: 0 4px 14px 0 rgba(86, 218, 201, 0.4);
  transition: all 0.25s ease;
  white-space: nowrap;
}

#class-finder .enroll-disabled-banner .enroll-disabled-button:hover {
  box-shadow: 0 6px 20px 0 rgba(86, 218, 201, 0.55);
  transform: translateY(-1px);
}

@media (max-width: 600px) {
  #class-finder .enroll-disabled-banner-inner {
    flex-direction: column;
    text-align: center;
    padding: 20px;
  }

  #class-finder .enroll-disabled-content {
    flex-direction: column;
    gap: 14px;
  }
}

/* Handles the overlay */
.ryb-connect-overlay {
  background: linear-gradient(
    264.9deg,
    #56dad4 4.1%,
    rgba(83, 216, 154, 0.85) 95.9%
  );
  position: fixed;
  top: 0;
  left: 0;
  overflow: hidden;
  width: 100%;
  height: 100%;
  z-index: -99;
  opacity: 0;
  transition: 0.4s all;
  display: flex;
  justify-content: space-around;
  align-items: center;
  pointer-events: none;
}

.ryb-connect-overlay.show {
  opacity: 1;
  transition: 0.4s all;
  z-index: 99;
  pointer-events: all;
}

.ryb-connect-overlay .ryb-connect-modal {
  border: 1px solid #0000000d;
  background: #fff;
  border-radius: 15px;
  width: 460px;
  height: auto;
  padding: 20px;
  max-height: 60vh;
}

.ryb-connect-overlay .ryb-connect-modal {
  transform: translateY(40px);
  transition: 0.4s all;
}

.ryb-connect-overlay.show .ryb-connect-modal {
  transform: translateY(0);
  transition: 0.4s all;
}

.ryb-connect-modal .modal-title {
  font-weight: 600;
  font-size: 15px;
  line-height: 18.15px;
  color: #000;
  margin-top: 0;
  margin-bottom: 0;
}

.ryb-connect-modal .modal-address {
  font-weight: 300;
  font-size: 12px;
  line-height: 14.52px;
  color: #000000bf;
  margin-top: 0;
  margin-bottom: 0;
}

.ryb-connect-modal .modal-price {
  font-weight: 700;
  font-size: 16px;
  line-height: 19.36px;
  color: #0f172a;
}

.ryb-connect-modal .modal-total-price {
  font-weight: 400;
  font-size: 16px;
  line-height: 19.36px;
  color: #0f172a;
}

.ryb-connect-modal .main-modal-data .age,
.ryb-connect-modal .main-modal-data .gender,
.ryb-connect-modal .main-modal-data .modal-meeting-day {
  font-weight: 600;
  font-size: 13px;
  line-height: 15.73px;
  color: #0f172a;
}

.ryb-connect-modal .main-modal-data .modal-start-time,
.ryb-connect-modal .main-modal-data .modal-end-time {
  font-weight: 300;
  font-size: 13px;
  line-height: 15.73px;
  color: #0f172a;
}

.ryb-connect-modal .top-modal-data {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.ryb-connect-modal .top-modal-data > p {
  display: none;
}

.ryb-connect-modal .top-modal-data .left {
  text-align: left;
}

.ryb-connect-modal .main-modal-data {
  margin-top: 20px;
  margin-bottom: 30px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.ryb-connect-modal .line {
  border-bottom: 1px solid #0000000d;
}

.ryb-connect-modal .modal-description-title {
  font-weight: 700;
  font-size: 13px;
  line-height: 20px;
  color: #000000bf;
  margin-bottom: 20px;
  text-align: left;
}

.ryb-connect-modal .modal-description {
  font-weight: 300;
  font-size: 13px !important;
  line-height: 20px;
  text-align: left;
  color: #000000bf;
}

.ryb-connect-modal .main-modal-data > p {
  display: none;
}

.ryb-connect-modal .main-modal-data .age,
.ryb-connect-modal .main-modal-data .gender,
.ryb-connect-modal .main-modal-data .calendar {
  display: flex;
  gap: 5px;
}
.ryb-connect-modal .main-modal-data .age .text,
.ryb-connect-modal .main-modal-data .gender .text,
.ryb-connect-modal .main-modal-data .calendar .text {
  text-align: left;
}
.ryb-connect-modal .main-modal-data .age > p,
.ryb-connect-modal .main-modal-data .gender > p,
.ryb-connect-modal .main-modal-data .calendar > p {
  display: none;
}

.ryb-connect-modal .main-modal-data .age,
.ryb-connect-modal .main-modal-data .calendar {
  grid-column: span 3 / span 3;
}

.ryb-connect-modal .main-modal-data .calendar {
  margin-top: -4px;
}

.ryb-connect-modal .main-modal-data .calendar .text {
  margin-top: -3px;
}

.ryb-connect-modal .main-modal-data .gender {
  grid-column: span 2 / span 2;
}

.ryb-connect-modal .modal-actions {
  display: flex;
  gap: 15px;
  justify-content: end;
  align-items: center;
  margin-top: 60px;
}

.ryb-connect-modal .registration-form,
.ryb-connect-modal .modal-content {
  opacity: 0;
  pointer-events: none;
  height: 0;
  transform: translateY(-20px);
  transition: 0.4s all;
}

.ryb-connect-modal .registration-form.show-field,
.ryb-connect-modal .modal-content.show-field {
  opacity: 1;
  pointer-events: all;
  transform: translateY(0);
  height: auto;
  transition: 0.4s all;
}

.ryb-connect-modal .registration-form .form-name {
  color: #000;
  font-size: 15px;
  font-weight: 500;
  line-height: 17.58px;
  text-align: left;
  margin-bottom: 20px;
  margin-top: 15px;
}

.ryb-connect-modal form input {
  width: 100%;
  box-sizing: border-box;
}

.ryb-connect-modal form {
  text-align: right;
}

.ryb-connect-modal .modal-actions .register-button {
  width: 100%;
  border: 0px solid transparent;
  background-color: #56dad4;
  color: #fff;
  font-size: 15px;
  line-height: 17.58px;
  text-align: center;
  font-weight: 500;
  cursor: pointer;
  border-radius: 20px;
  height: 50px;
  box-shadow: 0px 10px 20px 0px #56dad466;
  transition: 0.4s all;
}

.ryb-connect-modal .modal-actions .register-button:hover,
.ryb-connect-modal .modal-actions .already-registered-button:hover {
  box-shadow: none;
  transition: 0.4s all;
}

.ryb-connect-modal .modal-actions .already-registered-button {
  width: 100%;
  border: 0px solid transparent;
  background-color: #53d89a;
  color: #fff;
  font-size: 15px;
  line-height: 17.58px;
  text-align: center;
  font-weight: 500;
  cursor: pointer;
  border-radius: 20px;
  height: 50px;
  box-shadow: 0px 10px 20px 0px #53d89a66;
  transition: 0.4s all;
}

#registration-form {
  padding-top: 32px;
}

#registration-form .input-wrapper {
  margin-bottom: 10px;
}

#registration-form .input-wrapper input {
  box-sizing: border-box;
  width: 100%;
  padding: 10px;
  border: 1px solid #0000001a;
  border-radius: 5px;
}

#registration-form .checkbox-wrapper {
  display: flex;
  align-items: center;
  gap: 16px;
}

#registration-form .checkbox-wrapper label {
  font-size: 14px;
}

.inner-filter {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  z-index: 1;
  pointer-events: none;
  transition: 0.4s;
  background-color: #fff;
  box-shadow: 4px 0 6px -1px rgb(0 0 0 / 0.1), 2px 0 4px -2px rgb(0 0 0 / 0.1);
  border-left: 1px solid #0000000d;
}

.inner-filter.active {
  left: 100%;
  pointer-events: all;
  opacity: 1;
  transition: 0.4s;
}

.filter-flex {
  display: flex;
  gap: 15px;
}

.back-arrow {
  font-size: 21px;
}

.back-arrow:hover {
  cursor: pointer;
  color: #53d89a;
  transition: 0.4s;
}

#age-radio,
#class-type,
#locations {
  padding: 10px;
}

#age-radio input[type="radio"] {
  accent-color: #53d89a;
  background-color: #fff;
}

#age-radio input[type="radio"]:focus-visible,
#age-radio input[type="radio"]:focus {
  outline: none;
}

#age-radio input[type="radio"]:after {
  width: 9px;
  height: 9px;
  border-radius: 15px;
  top: 0;
  left: 0;
  position: relative;
  background-color: #d1d3d1;
  content: "";
  display: inline-block;
  visibility: visible;
  border: 3px solid white;
  outline: 1px solid #d1d3d1;
  transition: 0.4s all;
  cursor: pointer;
}

#age-radio input[type="radio"]:disabled:after {
  pointer-events: none;
  background-color: #ededed;
  outline: 1px solid #ededed;
}

#age-radio input[type="radio"]:disabled + label {
  color: #ededed;
}

#age-radio input[type="radio"]:checked:after {
  width: 9px;
  height: 9px;
  border-radius: 15px;
  top: 0;
  left: 0;
  position: relative;
  background-color: #53d89a;
  content: "";
  display: inline-block;
  visibility: visible;
  outline: 1px solid #d1d3d1;
  border: 3px solid #fff;
  transition: 0.4s all;
}

#class-type input:focus-visible,
#class-type input:focus,
#locations input:focus-visible,
#locations input:focus {
  border: none;
  outline: none;
}

#class-type label,
#locations label {
  position: relative;
  cursor: pointer;
}

#class-type input,
#locations input {
  opacity: 0;
  cursor: pointer;
}

#class-type label:hover .custom-checkbox,
#locations label:hover .custom-checkbox {
  background-color: #ededed;
  transition: 0.2s all;
}

#class-type .custom-checkbox,
#locations .custom-checkbox {
  position: absolute;
  top: -1px;
  left: -1px;
  height: 20px;
  width: 20px;
  border-radius: 5px;
  background-color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-around;
  border: 1px solid #ededed;
  cursor: pointer;
  transition: 0.2s all;
}

#class-type .custom-checkbox .check,
#locations .custom-checkbox .check {
  border-bottom: 3px solid #fff;
  border-right: 3px solid #fff;
  height: 10px;
  width: 4px;
}

#class-type .custom-checkbox:after,
#locations .custom-checkbox:after {
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid white;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

#class-type .input-option,
#locations .input-option {
  margin-bottom: 10px;
}

#class-type input:checked ~ .custom-checkbox,
#locations input:checked ~ .custom-checkbox {
  background-color: #53d89a;
  transition: 0.2s all;
  border: 1px solid #53d89a;
}

.kids-class-type {
  text-transform: capitalize;
}

.filter-locations .filter-control.disabled {
  opacity: 0;
  pointer-events: none;
}

.empty-results .result-card {
  filter: blur(6px);
  opacity: 0.5;
  pointer-events: none;
}

.empty-results .result-card.last-card {
  opacity: 0.25;
}

.bar-text {
  color: #000;
  font-size: 13px;
  font-weight: 500;
  line-height: 15.73px;
}
.bar {
  display: flex;
  justify-content: space-between;
  padding-left: 15px;
  padding-right: 15px;
}

.bar-col {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.bar-col .bar-days {
  display: flex;
  gap: 3px;
  font-size: 13px;
  font-weight: 600;
}

.bar .day {
  border-radius: 7px;
  width: 24px;
  height: 24px;
  background-color: #fff;
  transition: 0.3s all;
  border: 1px solid #0000001a;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bar-days .day,
.bar-days .day.weekend {
  cursor: pointer;
  transition: 0.4s;
}

.bar-days .day:hover,
.bar-days .day.weekend:hover {
  transition: 0.4s;
  background-color: #dfe7e3;
}

.bar .day.weekend {
  background-color: #effcfb;
  border: 1px solid #c0e3d3;
  transition: 0.3s all;
}

.bar .day.active {
  background-color: #53d89a;
  border: 1px solid #53d89a;
  color: #fff;
  transition: 0.3s all;
}

.switch {
  position: relative;
  display: inline-block;
  width: 48px;
  height: 24px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #fff;
  outline: 1px solid #0000001a;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 24px;
  width: 24px;
  left: -1px;
  bottom: -1px;
  background-color: #0000001a;
  border: 1px solid #0000001a;
  -webkit-transition: 0.4s;
  transition: 0.4s;
}

input:checked + .slider {
  background-color: #fff;
}

input:checked + .slider:before {
  background-color: #53d89a;
}

input:focus + .slider {
  box-shadow: 0 0 1px #fff;
}

input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

/* Rounded sliders */
.slider.round {
  border-radius: 5px;
}

.slider.round:before {
  border-radius: 5px;
}

.filter-top {
  display: flex;
  justify-content: space-between;
  margin-top: 16px;
  margin-bottom: 64px;
  margin-left: auto;
  margin-right: auto;
  max-width: 1900px;
}

.grid-view-select {
  display: flex;
  justify-content: end;
  max-width: 1900px;
  margin-left: auto;
  margin-right: auto;
  padding-right: 10px;
  padding-bottom: 10px;
}

.grid-view-select span {
  cursor: pointer;
}

.grid-view-select .active {
  font-weight: 600;
}

.grid-view-select .label {
  font-weight: 200;
  cursor: auto;
}

#ryb-connect .grid-view,
#ryb-connect .list-view {
  margin-left: auto;
  margin-right: auto;
  max-width: 1900px;
}

#ryb-connect .full-view .filter-top .main-title {
  font-weight: 700;
  font-size: 32px;
  line-height: 40px;
}

.grid-view .grid-results {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border: 1px solid #00000026;
}

.grid-view .grid-results > div {
  grid-column: span 1 / span 1;
  border: 1px solid #00000026;
  position: relative;
}

.grid-view .grid-results > div > div {
  padding-bottom: 16px;
  padding-left: 16px;
  padding-right: 16px;
}

.grid-view .grid-results > div .accordion svg {
  width: 20px;
  transform: rotate(0);
  fill: rgba(86, 218, 212, 1);
  transition: 0.4s;
}

.grid-view .grid-results > div .accordion.open svg {
  transform: rotate(45deg);
  fill: rgba(0, 0, 0, 0.5);
  transition: 0.4s;
}

.grid-view .grid-results > div .accordion {
  position: absolute;
  top: 12px;
  right: 15px;
  cursor: pointer;
}

.grid-view .grid-results h4 {
  color: #00000080;
  font-size: 14px;
  line-height: 20px;
  letter-spacing: 3%;
  font-weight: 700;
  text-align: center;
  margin-top: 13px;
  padding-bottom: 13px;
  margin-bottom: 0;
  border-bottom: 1px solid #00000026;
}

.grid-view .grid-results h4 + div {
  padding: 5px;
}

.grid-results h3 .class-name {
  font-size: 20px;
  line-height: 20px;
  color: #000;
  padding-top: 16px;
  font-weight: 600;
  text-align: left;
  padding-left: 16px;
  text-transform: capitalize;
  position: relative;
}

.result-grid-cell .location-wrapper {
  display: flex;
  align-items: center;
  gap: 5px;
}

.result-grid-cell .location-wrapper h6 {
  margin-block-start: 0;
  margin-block-end: 0;
}

.result-grid-cell .info {
  position: relative;
  cursor: pointer;
}

.result-grid-cell .info .tooltip_text {
  opacity: 0;
  pointer-events: none;
  width: 80px;
  background-color: #796e6e;
  color: #fff;
  font-size: 12px;
  padding: 5px 10px;
  position: absolute;
  transition: 0.2s;
  top: -100%;
  right: 0%;
}

.result-grid-cell .info .info-icon {
  width: 18px;
  height: 18px;
}

.info .info-icon .details {
  stroke: white;
  fill: #d9d9d9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.info:hover .info-icon .details {
  fill: #777;
}

.result-grid-cell .info:hover .tooltip_text {
  opacity: 1;
  pointer-events: all;
  transition: 0.2s;
}

.form-info .error-message {
  color: red;
  font-size: 13px;
  margin-top: 5px;
}

.result-grid-cell {
  display: flex;
  justify-content: space-between;
  flex-flow: column;
  background-color: #fff;
  border-radius: 5px;
  border: 1px solid #0000001a;
  width: 100%;
  margin-top: 20px;
  position: relative;
}

.result-grid-cell:last-child {
  margin-bottom: 0;
}

.result-grid-cell .class-data {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-left: 16px;
  padding-right: 16px;
  font-size: 14px;
  font-weight: 700;
  line-height: 18px;
  color: #000000bf;
}

.result-grid-cell .classes-per-week {
  color: red;
  font-size: 13px;
  padding: 0 16px 8px;
}

.result-grid-cell .class-data .class-time,
.result-grid-cell .class-data .class-price {
  font-size: 14px;
  font-weight: 700;
  line-height: 24px;
  color: #000000bf;
}

.result-grid-cell .button-section {
  display: flex;
}

.result-grid-cell .control-button {
  width: 100%;
}

.result-grid-cell .control-button button.enroll-class,
.result-grid-cell .control-button a.enroll-class {
  color: #5426d5 !important;
  height: 44px !important;
  width: 100% !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  border-radius: 0px !important;
  box-shadow: none !important;
  background-color: #fff !important;
  background: #fff !important;
  border-top: 1px solid #0000001a !important;
  border-bottom-left-radius: 5px !important;
}

.result-grid-cell .control-button a.enroll-class {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.result-grid-cell .info-button {
  background: transparent;
  cursor: pointer;
  border-top: 1px solid #0000001a;
  border-left: 1px solid #0000001a;
  border-bottom-color: transparent;
  border-right-color: transparent;
  border-bottom-right-radius: transparent;
  border-top-left-radius: 0px !important;
  border-bottom-left-radius: 0px !important;
  border-top-right-radius: 0px !important;
  height: 44px;
  width: 64px;
  border-radius: 5px;
}

.result-grid-cell .class-start {
  width: fit-content;
  position: absolute;
  top: -15px;
  left: 15px;
  background: #defffb;
  font-size: 16px;
  padding: 5px 10px;
  border-radius: 5px;
}
.result-grid-cell .class-start .time {
  font-weight: 700;
}

.result-grid-cell .class-start .period {
  font-weight: 200;
}

.filter-top .edit-option {
  position: relative;
  border: 1px solid #00000026;
  border-radius: 10px;
  padding: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 205px;
  height: 44px;
  transition: 0.4s;
}

.filter-top .dropdown {
  position: absolute;
  top: 100%;
  width: -webkit-fill-available;
  left: 0;
  border: 1px solid #00000026;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  margin-top: 5px;
  transform: translateY(-20px);
  opacity: 0;
  transition: 0.4s;
  pointer-events: none;
  max-height: 50vh;
  overflow: scroll;
  z-index: 2;
}

.filter-top li.select {
  background-color: #53d89a;
  color: #333;
}

.filter-top .select {
  color: #53d89a;
}

.filter-top .edit-option.active .dropdown {
  opacity: 1;
  transition: 0.4s;
  transform: translateY(0);
  pointer-events: all;
}

.filter-top .dropdown ul {
  list-style-type: none;
  padding-inline-start: 0;
  margin-block-start: 0;
  margin-block-end: 0;
  width: 100%;
}

.filter-top .dropdown ul li {
  padding: 5px 10px;
  width: 100%;
  transition: 0.4s;
}

.filter-top .dropdown ul li:hover {
  background-color: #00000026;
  transition: 0.4s;
}

.filter-top .dropdown ul li:last-child {
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
}

.filter-top .dropdown ul li:first-child {
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}

.filter-top .edit-option:hover,
.filter-top .edit-option.active {
  transition: 0.4s;
  border: 1px solid #53d89a;
  cursor: pointer;
}

.filter-top .edit-option.active svg {
  transition: 0.4s;
  fill: #53d89a;
  fill-opacity: 1;
  transition: 0.4s;
}

.filter-top .edit-option .label {
  color: #1f2323bf;
  font-size: 16px;
  font-weight: 300;
}

.filter-top .edit-option .value {
  color: #000;
  font-size: 16px;
  font-weight: 700;
}

.filter-top .edit-option svg {
  fill: #1f2323;
  fill-opacity: 0.75;
  transition: 0.4s;
}

.filter-top .filter-controls {
  display: flex;
  gap: 16px;
  align-items: center;
}

.grid-view .no-result {
  font-size: 14px;
  color: #00000095;
  text-align: center;
  padding-top: 12px;
}

.grid-view .grid-results .accordion {
  display: none;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 120px;
  background-color: black;
  color: #fff;
  text-align: center;
  border-radius: 6px;
  padding: 5px 0;

  /* Position the tooltip */
  position: absolute;
  z-index: 1;
  top: -5px;
  left: 105%;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
}

@media only screen and (max-width: 1370px) {
  .filter-top .edit-option {
    width: 170px;
  }
}

@media only screen and (max-width: 1250px) {
  .filter-top {
    flex-flow: column;
    margin-bottom: 32px;
    gap: 24px;
  }
}

@media only screen and (max-width: 1200px) {
  .grid-view .grid-results .accordion {
    display: block;
  }

  .grid-view .grid-results .accordion + div {
    display: none;
  }

  .grid-view .grid-results .accordion.open + div {
    display: flex;
  }

  .grid-view .grid-results {
    grid-template-columns: repeat(1, minmax(0, 1fr));
  }

  .grid-view .grid-results > div > div {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 16px;
  }

  .result-grid-cell {
    max-width: 30%;
  }
}

@media only screen and (max-width: 767px) {
  .result-grid-cell {
    max-width: 45%;
  }
}

@media only screen and (max-width: 520px) {
  .filter-top .filter-controls {
    flex-flow: column;
  }

  .filter-top .filter-controls .edit-option {
    width: 100%;
    box-sizing: border-box;
    height: 70px !important;
  }
}

@media only screen and (max-width: 450px) {
  .result-grid-cell {
    max-width: 100%;
  }
}

/* ==================== Camps Template ==================== */

/* --- Filter bar --- */

#class-finder.template-camps .camps-filter-bar {
  background: #fff;
  border-radius: 16px;
  padding: 14px 16px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.08);
  margin-bottom: 24px;
}

#class-finder.template-camps .camps-filters-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* Quick filter button */

#class-finder.template-camps .camps-quick-filter {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #fef3c7, #fde68a);
  padding: 10px 20px;
  border-radius: 9999px;
  font-size: 13px;
  font-weight: 700;
  color: #92400e;
  border: 1px solid #fcd34d;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

#class-finder.template-camps .camps-quick-filter:hover {
  background: linear-gradient(135deg, #fde68a, #fcd34d);
  box-shadow: 0 2px 8px rgba(252, 211, 77, 0.3);
}

#class-finder.template-camps .camps-quick-filter.active {
  background: linear-gradient(135deg, #fbbf24, #f59e0b);
  color: #fff;
  border-color: #f59e0b;
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}

#class-finder.template-camps .camps-quick-filter svg {
  flex-shrink: 0;
}

/* Filter pill buttons */

#class-finder.template-camps .camps-filter-pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #f8fafc;
  padding: 10px 16px;
  border-radius: 9999px;
  font-size: 13px;
  font-weight: 500;
  color: #334155;
  border: 1px solid #e2e8f0;
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
  user-select: none;
}

#class-finder.template-camps .camps-filter-pill:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}

#class-finder.template-camps .camps-filter-pill.active {
  border-color: #53d89a;
  box-shadow: 0 0 0 1px #53d89a;
  background: #f0fdf4;
}

#class-finder.template-camps .camps-filter-pill.has-value {
  background: #f0fdf4;
  border-color: #86efac;
  color: #166534;
}

#class-finder.template-camps .camps-filter-pill svg {
  flex-shrink: 0;
  color: #94a3b8;
}

#class-finder.template-camps .camps-filter-pill.has-value svg {
  color: #16a34a;
}

#class-finder.template-camps .camps-pill-chevron {
  transition: transform 0.2s ease;
}

#class-finder.template-camps .camps-filter-pill.active .camps-pill-chevron {
  transform: rotate(180deg);
}

#class-finder.template-camps .camps-pill-label {
  color: #94a3b8;
  font-weight: 500;
}

#class-finder.template-camps .camps-filter-pill.has-value .camps-pill-label {
  color: #16a34a;
}

#class-finder.template-camps .camps-pill-value {
  font-weight: 600;
}

/* Filter dropdown */

#class-finder.template-camps .camps-filter-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  min-width: 200px;
  max-height: 300px;
  overflow-y: auto;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-8px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  z-index: 20;
}

#class-finder.template-camps .camps-filter-pill.active .camps-filter-dropdown {
  opacity: 1;
  pointer-events: all;
  transform: translateY(0);
}

#class-finder.template-camps .camps-filter-dropdown ul {
  list-style: none;
  margin: 0;
  padding: 6px 0;
}

#class-finder.template-camps .camps-filter-dropdown li {
  padding: 9px 16px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  color: #334155;
  transition: background 0.1s ease;
}

#class-finder.template-camps .camps-filter-dropdown li:hover {
  background: #f1f5f9;
}

#class-finder.template-camps .camps-filter-dropdown li.selected {
  background: #f0fdf4;
  color: #16a34a;
  font-weight: 600;
}

#class-finder.template-camps .camps-filter-dropdown::-webkit-scrollbar {
  width: 6px;
}

#class-finder.template-camps .camps-filter-dropdown::-webkit-scrollbar-track {
  background: transparent;
}

#class-finder.template-camps .camps-filter-dropdown::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}

/* --- Filter bar responsive --- */

@media only screen and (max-width: 768px) {
  #class-finder.template-camps .camps-filter-bar {
    padding: 12px;
    border-radius: 12px;
    margin-bottom: 16px;
  }

  #class-finder.template-camps .camps-filters-wrap {
    gap: 8px;
  }

  #class-finder.template-camps .camps-filter-pill {
    padding: 8px 12px;
    font-size: 12px;
    gap: 6px;
  }

  #class-finder.template-camps .camps-quick-filter {
    padding: 8px 14px;
    font-size: 12px;
  }
}

@media only screen and (max-width: 480px) {
  #class-finder.template-camps .camps-filters-wrap {
    gap: 6px;
  }

  #class-finder.template-camps .camps-filter-pill {
    padding: 8px 10px;
    font-size: 11px;
    flex: 1 1 calc(50% - 6px);
    min-width: 0;
    justify-content: center;
  }

  #class-finder.template-camps .camps-quick-filter {
    width: 100%;
    justify-content: center;
  }

  #class-finder.template-camps .camps-filter-dropdown {
    min-width: 180px;
    left: auto;
    right: 0;
  }

  #class-finder.template-camps .camps-pill-label {
    display: none;
  }
}

@keyframes campCardEnter {
  from { opacity: 0; transform: translateX(-10px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* --- Container --- */

#class-finder.template-camps .camps-results {
  max-width: 1900px;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 48px;
}

/* --- Type (session) filter bar --- */

#class-finder.template-camps .camps-type-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  margin-bottom: 16px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

#class-finder.template-camps .camps-type-bar::-webkit-scrollbar {
  display: none;
}

#class-finder.template-camps .camps-type-label {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: rgba(0, 0, 0, 0.35);
  flex-shrink: 0;
  margin-right: 4px;
}

#class-finder.template-camps .camp-type-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 14px;
  border-radius: 20px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  background: #fff;
  color: #475569;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

#class-finder.template-camps .camp-type-pill:hover {
  border-color: rgba(3, 105, 161, 0.3);
  color: #0f172a;
  background: rgba(3, 105, 161, 0.04);
}

#class-finder.template-camps .camp-type-pill.active {
  background: #0369a1;
  border-color: transparent;
  color: #fff;
  box-shadow: 0 4px 12px rgba(3, 105, 161, 0.25);
}

#class-finder.template-camps .camp-type-pill.active:hover {
  box-shadow: 0 2px 8px rgba(3, 105, 161, 0.2);
}

#class-finder.template-camps .camp-type-pill .pill-count {
  font-size: 11px;
  font-weight: 700;
  opacity: 0.6;
}

#class-finder.template-camps .camp-type-pill.active .pill-count {
  opacity: 0.85;
}

/* --- Month filter bar --- */

#class-finder.template-camps .camps-month-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  margin-bottom: 8px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

#class-finder.template-camps .camps-month-bar::-webkit-scrollbar {
  display: none;
}

#class-finder.template-camps .camp-month-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 16px;
  border-radius: 20px;
  border: 1px solid rgba(0, 0, 0, 0.1);
  background: #fff;
  color: #475569;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

#class-finder.template-camps .camp-month-pill:hover {
  border-color: rgba(83, 216, 154, 0.4);
  color: #0f172a;
  background: rgba(83, 216, 154, 0.04);
}

#class-finder.template-camps .camp-month-pill.active {
  background: linear-gradient(228deg, #56dad4, #53d89a 82%);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 4px 12px rgba(83, 216, 154, 0.25);
}

#class-finder.template-camps .camp-month-pill.active:hover {
  box-shadow: 0 2px 8px rgba(83, 216, 154, 0.2);
}

#class-finder.template-camps .pill-count {
  font-size: 11px;
  font-weight: 700;
  opacity: 0.6;
}

#class-finder.template-camps .camp-month-pill.active .pill-count {
  opacity: 0.85;
}

/* Month group show/hide */

#class-finder.template-camps .camps-month-group {
  transition: opacity 0.25s ease, max-height 0.3s ease;
}

#class-finder.template-camps .camps-month-group.camps-hidden {
  display: none;
}

/* --- Month headings --- */

#class-finder.template-camps h4.camps-month-heading {
  font-size: 20px;
  font-weight: 700;
  color: #0f172a;
  margin: 48px 0 20px;
  padding: 0;
  border: none;
  display: flex;
  align-items: center;
  gap: 12px;
}

#class-finder.template-camps h4.camps-month-heading::before {
  content: "";
  width: 4px;
  height: 20px;
  background: linear-gradient(180deg, #56dad4, #53d89a);
  border-radius: 2px;
  flex-shrink: 0;
}

#class-finder.template-camps .camps-month-group:first-of-type h4.camps-month-heading {
  margin-top: 0;
}

#class-finder.template-camps .camp-count {
  font-weight: 400;
  font-size: 14px;
  color: rgba(0, 0, 0, 0.35);
  margin-left: -4px;
}

/* --- Row-based camp layout --- */

#class-finder.template-camps .camp-row-enter {
  animation: campCardEnter 0.45s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  opacity: 0;
}

/* --- Collapsible month header --- */

#class-finder.template-camps .camps-month-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 18px 24px;
  cursor: pointer;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  user-select: none;
  transition: background 0.15s ease;
}

#class-finder.template-camps .camps-month-header:hover {
  background: rgba(0, 0, 0, 0.015);
}

#class-finder.template-camps .camps-month-header h4 {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 22px;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
  padding: 0;
  border: none;
}

#class-finder.template-camps .camps-month-chevron {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: #6B7280;
  transition: transform 0.25s ease;
}

#class-finder.template-camps .camps-month-group.collapsed .camps-month-chevron {
  transform: rotate(-90deg);
}

#class-finder.template-camps .camps-month-bar-accent {
  width: 3px;
  height: 24px;
  background: #10B981;
  border-radius: 2px;
  flex-shrink: 0;
}

#class-finder.template-camps .camps-month-count {
  display: inline-flex;
  align-items: center;
  font-size: 12px;
  font-weight: 600;
  color: #94a3b8;
  background: #f1f5f9;
  border-radius: 6px;
  padding: 3px 12px;
  white-space: nowrap;
  margin-left: 4px;
}

#class-finder.template-camps .camps-month-rows {
  transition: opacity 0.2s ease;
}

#class-finder.template-camps .camps-month-group.collapsed .camps-month-rows {
  display: none;
}

#class-finder.template-camps .camps-month-group + .camps-month-group {
  margin-top: 8px;
}

/* --- Card layout (desktop) --- */

#class-finder.template-camps .camp-row {
  display: flex;
  align-items: stretch;
  border: 1px solid #E5E7EB;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  margin-bottom: 12px;
  transition: all 0.2s ease;
}

#class-finder.template-camps .camp-row:hover {
  border-color: #10B981;
  box-shadow: 0 4px 16px rgba(16, 185, 129, 0.1);
}

#class-finder.template-camps .camp-row:last-child {
  margin-bottom: 0;
}

/* --- Left panel --- */

#class-finder.template-camps .camp-card-left {
  flex: 0 0 300px;
  background: #F9FAFB;
  border-right: 1px solid rgba(0, 0, 0, 0.06);
  padding: 20px 24px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

#class-finder.template-camps .camp-card-left-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

/* --- Date (inside left panel) --- */

#class-finder.template-camps .camp-row-date {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

#class-finder.template-camps .camp-row-date .date-range {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 20px;
  font-weight: 800;
  color: #111827;
  white-space: nowrap;
  line-height: 1.2;
  letter-spacing: -0.3px;
}

#class-finder.template-camps .camp-row-date .weekday-range {
  font-size: 13px;
  font-weight: 500;
  color: #6B7280;
}

/* --- Info (inside left panel) --- */

#class-finder.template-camps .camp-row-name {
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.3;
  margin-top: 4px;
}

#class-finder.template-camps .camp-row-subtitle {
  font-size: 12px;
  font-weight: 500;
  color: #6B7280;
  line-height: 1.3;
}

#class-finder.template-camps .camp-row-desc {
  font-size: 12px;
  font-weight: 400;
  color: #6B7280;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

#class-finder.template-camps .camp-row-time {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  font-weight: 500;
  color: #6B7280;
  white-space: nowrap;
  margin-top: auto;
}

#class-finder.template-camps .camp-row-time .clock-icon {
  width: 14px;
  height: 14px;
  color: #94a3b8;
  flex-shrink: 0;
}

/* --- Multi-camp info line --- */

#class-finder.template-camps .camp-card-multi-info {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: #64748b;
  margin-top: auto;
}

#class-finder.template-camps .camp-card-multi-info svg {
  flex-shrink: 0;
  color: #94a3b8;
}

/* --- Tags (shared) --- */

#class-finder.template-camps .camp-tag {
  display: inline-flex;
  align-items: center;
  font-size: 11px;
  font-weight: 700;
  border-radius: 8px;
  padding: 5px 12px;
  white-space: nowrap;
  line-height: 1;
}

#class-finder.template-camps .camp-tag-age {
  color: #15803D;
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-radius: 6px;
}

#class-finder.template-camps .camp-tag-session {
  color: #0D9488;
  background: #F0FDFA;
  border: 1px solid #99F6E4;
  border-radius: 6px;
}

/* --- Right panel (single rows: price + button) --- */

#class-finder.template-camps .camp-card-right {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 24px 32px;
}

#class-finder.template-camps .camp-row-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  text-align: right;
}

#class-finder.template-camps .camp-row-price .amount {
  font-size: 28px;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.3px;
}

#class-finder.template-camps .camp-row-price .price-suffix {
  font-size: 12px;
  font-weight: 400;
  color: #9CA3AF;
}

/* --- Status indicators --- */

#class-finder.template-camps .camp-status {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  white-space: nowrap;
}

#class-finder.template-camps .status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}

#class-finder.template-camps .camp-status.low {
  color: #d97706;
}

#class-finder.template-camps .camp-status.low .status-dot {
  background: #F59E0B;
}

#class-finder.template-camps .camp-status.waitlist {
  color: #9ca3af;
}

#class-finder.template-camps .camp-status.waitlist .status-dot {
  background: #9CA3AF;
}

/* --- Action (inside right panel) --- */

#class-finder.template-camps .camp-row-action {
  flex-shrink: 0;
}

/* --- Buttons --- */

#class-finder.template-camps .camp-button {
  min-width: 110px;
  height: 42px;
  border-radius: 10px;
  border: none;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  letter-spacing: 0.2px;
}

#class-finder.template-camps .camp-button.enroll {
  background: #10B981;
  color: #fff;
}

#class-finder.template-camps .camp-button.enroll:hover {
  background: #059669;
}

#class-finder.template-camps .camp-button.waitlist {
  background: #fff;
  color: #475569;
  border: 1.5px solid #cbd5e1;
}

#class-finder.template-camps .camp-button.waitlist:hover {
  border-color: #94a3b8;
  color: #1e293b;
  background: #f8fafc;
}

#class-finder.template-camps .camp-button.disabled {
  background: #F3F4F6;
  color: #9CA3AF;
  cursor: default;
  font-size: 12px;
  font-weight: 500;
}

/* --- Multi-option rows --- */

#class-finder.template-camps .camp-row-multi {
  align-items: stretch;
}

#class-finder.template-camps .camp-row-options {
  display: flex;
  flex-direction: column;
  gap: 0;
  flex: 1;
  min-width: 0;
  padding: 8px;
  justify-content: center;
}

#class-finder.template-camps .camp-options-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  font-size: 12px;
  font-weight: 600;
  color: #6B7280;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-bottom: 1px solid #F3F4F6;
}

#class-finder.template-camps .camp-options-header svg {
  flex-shrink: 0;
  color: #9CA3AF;
}

#class-finder.template-camps .camp-sub-option {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 16px;
  border-radius: 10px;
  transition: background 0.15s ease;
}

#class-finder.template-camps .camp-sub-option:hover {
  background: rgba(0, 0, 0, 0.025);
}

#class-finder.template-camps .camp-sub-option + .camp-sub-option {
  border-top: 1px solid rgba(0, 0, 0, 0.05);
}

#class-finder.template-camps .sub-info {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 100px;
  flex: 1;
}

#class-finder.template-camps .sub-label {
  font-size: 13px;
  font-weight: 600;
  color: #0f172a;
}

#class-finder.template-camps .sub-time {
  font-size: 12px;
  font-weight: 400;
  color: #94a3b8;
}

#class-finder.template-camps .sub-option-right {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-left: auto;
}

#class-finder.template-camps .sub-price-wrap {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  min-width: 60px;
  text-align: right;
}

#class-finder.template-camps .sub-price-wrap .amount {
  font-size: 16px;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: -0.3px;
}

#class-finder.template-camps .camp-sub-option .camp-button {
  min-width: 80px;
  height: 36px;
  font-size: 12px;
}

/* --- Empty state --- */

#class-finder.template-camps .no-camps-message {
  text-align: center;
  padding: 80px 20px;
  color: rgba(0, 0, 0, 0.4);
  font-size: 16px;
  font-weight: 400;
}

/* --- Responsive — Tablet --- */

@media only screen and (max-width: 768px) {
  #class-finder.template-camps .camp-row {
    flex-direction: column;
    border-radius: 12px;
  }

  #class-finder.template-camps .camp-card-left {
    flex: none;
    width: 100%;
    border-right: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    padding: 20px;
    border-radius: 0;
  }

  #class-finder.template-camps .camp-card-right {
    padding: 16px 20px;
    justify-content: space-between;
  }

  #class-finder.template-camps .camp-row-action .camp-button {
    width: auto;
  }

  #class-finder.template-camps .camp-row-options {
    width: 100%;
    min-width: unset;
  }
}

/* --- Responsive — Mobile --- */

@media only screen and (max-width: 480px) {
  #class-finder.template-camps .camps-type-bar {
    gap: 6px;
    margin-left: -20px;
    margin-right: -20px;
    padding-left: 20px;
    padding-right: 20px;
    margin-bottom: 12px;
    padding-bottom: 12px;
  }

  #class-finder.template-camps .camp-type-pill {
    height: 30px;
    padding: 0 12px;
    font-size: 12px;
  }

  #class-finder.template-camps .camps-month-bar {
    gap: 6px;
    padding-bottom: 16px;
    margin-left: -20px;
    margin-right: -20px;
    padding-left: 20px;
    padding-right: 20px;
  }

  #class-finder.template-camps .filter-controls {
    margin-bottom: 8px;
  }

  #class-finder.template-camps .camp-month-pill {
    height: 32px;
    padding: 0 12px;
    font-size: 12px;
  }

  #class-finder.template-camps .camps-month-header {
    padding: 14px 16px;
  }

  #class-finder.template-camps .camps-month-header h4 {
    font-size: 16px;
  }

  #class-finder.template-camps .camp-row {
    border-radius: 10px;
    margin-bottom: 8px;
  }

  #class-finder.template-camps .camp-card-left {
    padding: 16px;
  }

  #class-finder.template-camps .camp-row-date .date-range {
    font-size: 18px;
  }

  #class-finder.template-camps .camp-row-name {
    font-size: 14px;
    margin-top: 4px;
  }

  #class-finder.template-camps .camp-card-right {
    padding: 12px 16px;
    gap: 12px;
  }

  #class-finder.template-camps .camp-row-options {
    width: 100%;
    min-width: unset;
  }

  #class-finder.template-camps .camp-sub-option {
    padding: 10px 12px;
    flex-wrap: wrap;
    gap: 8px;
  }

  #class-finder.template-camps .camp-sub-option .camp-button {
    width: 100%;
    margin-left: 0;
  }
}

/* --- Camps: compact filter on narrow mobile --- */

@media only screen and (max-width: 520px) {
  #class-finder.template-camps .filter-top {
    margin-top: 8px;
    margin-bottom: 4px;
    gap: 12px;
  }

  #class-finder.template-camps .filter-top .main-title {
    font-size: 22px !important;
    margin-bottom: 4px;
  }

  #class-finder.template-camps .filter-controls {
    flex-flow: row !important;
    gap: 8px;
  }

  #class-finder.template-camps .filter-controls .edit-option {
    height: 48px !important;
    width: 50% !important;
    padding: 6px 10px;
  }

  #class-finder.template-camps .filter-controls .edit-option .label {
    font-size: 11px;
  }

  #class-finder.template-camps .filter-controls .edit-option .value {
    font-size: 13px;
  }

  #class-finder.template-camps .camps-month-bar {
    padding-bottom: 10px;
    margin-bottom: 4px;
  }
}

/* --- Camps: scroll overflow indicators on mobile --- */

@media only screen and (max-width: 768px) {
  #class-finder.template-camps .camps-type-bar::after,
  #class-finder.template-camps .camps-month-bar::after {
    content: "";
    position: sticky;
    right: 0;
    flex-shrink: 0;
    width: 40px;
    min-height: 100%;
    margin-left: -40px;
    background: linear-gradient(to left, #fff 0%, rgba(255, 255, 255, 0) 100%);
    pointer-events: none;
    z-index: 1;
  }
}
