/* ============================================================
   MUSCLES & LUNGS — CUSTOM CSS
   PART 1 = public website   ·   PART 2 = PWA app
============================================================ */

/* ===== Brand fonts ===== */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Paytone+One&display=swap');

body, p, div, span, a, li, td, label, input, textarea, select, button{
  font-family:'Montserrat', Arial, sans-serif !important;
}
h1, h2, h3, h4, h5, h6,
.company-title, #events h3, .sb-title{
  font-family:'Paytone One', Arial, sans-serif !important;
  font-weight:400 !important;   /* Paytone One ships one weight */
}


/* ============================================================
   PART 1 — PUBLIC WEBSITE
============================================================ */

/* ---- Homepage: hide core-values strip on phones ---- */
@media (max-width:767px){
  #ml-values{ display:none !important; }
}

/* ---- Homepage: pin hero "Book Now" to bottom of image ---- */
#main-buttons{ position:relative !important; }
#main-buttons .btn-bar.bar{
  position:absolute !important;
  left:0 !important; right:0 !important; bottom:26px !important;
  margin:0 !important; display:flex !important; justify-content:center !important;
  z-index:5 !important;
}
#main-buttons a.btn.book,
a.btn.book.btn-has-icon{
  background:linear-gradient(180deg,#4f6ad6 0%,#334fb4 55%,#2a429b 100%) !important;
  color:#ffffff !important;
  border:1px solid #22357d !important;
  border-radius:12px !important;
  font-size:14px !important;
  min-height:0 !important;
  padding:8px 20px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
  gap:1px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45), 0 8px 20px rgba(40,55,130,.5) !important;
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease !important;
}
#main-buttons a.btn.book:hover{
  filter:brightness(1.18) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 12px 26px rgba(40,55,130,.6) !important;
}
#main-buttons a.btn.book:active{
  transform:translateY(2px) !important;
  box-shadow:inset 0 2px 5px rgba(0,0,0,.35) !important;
}

/* ---- Booking page: hide unwanted filters ---- */
.form-group.provider_id{ display:none !important; }   /* All-providers dropdown */
.grid-weekly-provider{ display:none !important; }      /* Provider column */
.parts-of-day{ display:none !important; }              /* Morning/Afternoon/Evening */

/* ---- Booking page: week prev/next arrows → clean ‹ › ---- */
.top-date-select .header .row .col-xs-3 .btn,
.top-date-select .header .row .col-xs-3 button,
.top-date-select .header .row .col-xs-3 a{
  font-size:0 !important; color:transparent !important;
  border:none !important; outline:none !important; box-shadow:none !important; background:transparent !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
}
.top-date-select .header .row .col-xs-3{
  display:flex !important; align-items:center !important; justify-content:center !important; text-align:center !important;
}
.top-date-select .header .row .col-xs-3 .btn *,
.top-date-select .header .row .col-xs-3 button *,
.top-date-select .header .row .col-xs-3 a *{ display:none !important; }
.top-date-select .header .row .col-xs-3 .txt-left,
.top-date-select .header .row .col-xs-3 .txt-right{
  width:100% !important; text-align:center !important;
  display:flex !important; align-items:center !important; justify-content:center !important;
}
.top-date-select .header .row .col-xs-3:first-of-type .btn::after,
.top-date-select .header .row .col-xs-3:first-of-type button::after,
.top-date-select .header .row .col-xs-3:first-of-type a::after{ content:"\2039" !important; }
.top-date-select .header .row .col-xs-3:last-of-type .btn::after,
.top-date-select .header .row .col-xs-3:last-of-type button::after,
.top-date-select .header .row .col-xs-3:last-of-type a::after{ content:"\203A" !important; }
.top-date-select .header .row .col-xs-3 .btn::after,
.top-date-select .header .row .col-xs-3 button::after,
.top-date-select .header .row .col-xs-3 a::after{
  font-family:Arial, Helvetica, sans-serif !important;
  font-size:30px !important; font-weight:700 !important; line-height:1 !important; color:#334FB4 !important;
}

/* ---- Booking page: mobile layout (≤767px) ---- */
@media (max-width:767px){
  #steps-content .row, #sb_booking_content .row{ margin-left:0 !important; margin-right:0 !important; }
  #steps-content [class*="col-"], #sb_booking_content [class*="col-"]{ padding-left:0 !important; padding-right:0 !important; }
  .section{ margin-bottom:8px !important; }
  .tab-pd{ padding:6px !important; }

  /* Empty band under "Time" header */
  #sb-timeline .steps-nav{ min-height:0 !important; margin-bottom:8px !important; }

  /* Date box */
  #sb_dateview_container.section{ min-height:0 !important; margin-bottom:4px !important; }
  #sb_timeview_container{ margin-top:4px !important; }
  .top-date-select .tab-pd{ padding:6px !important; }
  .top-date-select .header .row{ display:flex !important; flex-wrap:nowrap !important; align-items:stretch !important; margin:0 !important; width:100% !important; }
  .top-date-select .header .row .col-xs-3{ flex:0 0 44px !important; width:44px !important; max-width:44px !important; padding:0 !important; }
  .top-date-select .header .row .col-xs-3 .btn,
  .top-date-select .header .row .col-xs-3 button,
  .top-date-select .header .row .col-xs-3 a{ width:100% !important; height:40px !important; padding:0 !important; }
  .top-date-select .header .row .col-xs-6{ flex:1 1 auto !important; width:auto !important; max-width:none !important; padding:0 4px !important; }
  #sb_label_container.btn--link, .datepicker-button .btn{ width:100% !important; white-space:normal !important; font-size:14px !important; padding:6px 4px !important; height:auto !important; }

  /* Filter + day buttons */
  .top-inline-steps{ margin:0 !important; padding:0 !important; }
  .top-inline-steps .row{ margin:0 !important; }
  .top-inline-steps label{ display:none !important; }
  .top-inline-steps [class*="col-"]{ width:100% !important; flex:0 0 100% !important; padding:0 !important; }
  .form-group.service_id{ width:100% !important; margin:0 0 4px 0 !important; }
  .form-group.provider_id{ display:none !important; }
  #sb_grid_service_id.form-control, .form-group.service_id select{ width:100% !important; max-width:100% !important; }
  .days-of-week{ width:100% !important; margin:0 !important; padding:0 !important; }
  .days-of-week .buttons{ display:flex !important; flex-wrap:nowrap !important; width:100% !important; gap:4px !important; padding:0 !important; margin:0 !important; }
  .days-of-week .buttons .btn.sb-day-of-week{ flex:1 1 0 !important; width:auto !important; min-width:0 !important; margin:0 !important; padding:0 !important; height:34px !important; line-height:34px !important; font-size:13px !important; }

/* Class list rows: TIME  NAME ...... BOOK */
  .grid-weekly-provider{ display:none !important; width:0 !important; }
  .grid-weekly-body-row .grid-weekly-item,
  .grid-weekly-body-row:nth-child(odd) .grid-weekly-item{ background:transparent !important; box-shadow:none !important; }
  .grid-weekly-body-row{
    display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important;
    align-items:center !important; gap:10px !important; padding:6px 12px !important;
    width:100% !important; max-width:100% !important; box-sizing:border-box !important;
  }
  .grid-weekly-body-row .grid-weekly-date-time{
    flex:0 0 auto !important; width:auto !important; min-width:0 !important;
    margin:0 !important; padding:0 !important; text-align:left !important; white-space:nowrap !important; font-size:14px !important;
  }
  .grid-weekly-body-row .grid-weekly-serice{
    flex:1 1 auto !important; width:auto !important; min-width:0 !important;
    margin:0 !important; padding:0 !important; text-align:left !important; white-space:nowrap !important; font-size:14px !important;
    overflow:hidden !important; text-overflow:ellipsis !important;
  }
  .grid-weekly-body-row .grid-weekly-button{
    flex:0 0 auto !important; width:auto !important; min-width:0 !important;
    margin:0 0 0 auto !important; padding:0 !important; justify-content:flex-end !important;
  }
  .grid-weekly-body-row .grid-weekly-button .btn{ width:auto !important; padding:7px 16px !important; font-size:13px !important; white-space:nowrap !important; }
  .grid-weekly-header-row .grid-weekly-serice,
  .grid-weekly-header-row .grid-weekly-provider,
  .grid-weekly-header-row .grid-weekly-button{ display:none !important; }
  .grid-weekly-header-row .grid-weekly-date-time{ width:100% !important; text-align:center !important; justify-content:center !important; }
}
@media (max-width:767px){
  .grid-weekly-body-row .grid-weekly-serice{
    flex:1 1 auto !important; width:auto !important; min-width:0 !important;
    margin:0 !important; padding:0 !important; text-align:left !important; white-space:nowrap !important; font-size:14px !important;
    overflow:hidden !important; text-overflow:ellipsis !important;
    justify-content:flex-start !important;          /* left-align name in its cell */
  }
  .grid-weekly-body-row .grid-weekly-date-time{
    flex:0 0 84px !important; width:84px !important; min-width:84px !important;   /* fixed width so names align */
    margin:0 !important; padding:0 !important; text-align:left !important; white-space:nowrap !important; font-size:14px !important;
    justify-content:flex-start !important;
  }
}
@media (min-width:768px){
  .grid-weekly-header-row .grid-weekly-date-time{
    flex:0 0 170px !important; width:170px !important; min-width:170px !important;
    white-space:normal !important; overflow:visible !important; text-overflow:clip !important;
    line-height:1.25 !important;
    padding-right:16px !important;
  }
  .grid-weekly-body-row .grid-weekly-date-time{
    flex:0 0 170px !important; width:170px !important; min-width:170px !important;
    white-space:nowrap !important; overflow:visible !important;
    padding-right:16px !important;
  }
  .grid-weekly-header-row .grid-weekly-serice,
  .grid-weekly-body-row .grid-weekly-serice{
    flex:1 1 auto !important; min-width:0 !important;
  }
}

/* ---- Membership cards (website) ---- */
#sb_membership_filter_container{ display:none !important; }     /* Filter-by-attached-items */
.item__connected-services{ display:none !important; }          /* Attached classes list */
.session-remind,
.step-content.membership-step--plugin .item .session-remind{ display:none !important; }  /* "Sessions:" */
.item__content{ min-height:0 !important; height:auto !important; padding:10px 0 6px !important; }
.item__picture-wrapper{ position:relative !important; width:100% !important; aspect-ratio:1/1 !important; height:auto !important; overflow:hidden !important; }
.item__picture-wrapper .item__picture,
.item__picture-wrapper .item__picture--fit-mode,
.item__picture-wrapper .user.img{ position:absolute !important; top:0 !important; left:0 !important; width:100% !important; height:100% !important; }
.item__picture--fit-mode img,
.item__picture--user img{ width:100% !important; height:100% !important; object-fit:cover !important; object-position:center !important; }

/* ---- Login / sign-up ---- */
a[href*="/v2/client/openid/provider/google/"],
a[href*="/v2/client/openid/provider/facebook/"]{ display:none !important; }   /* social buttons */
#sb_login_form .not-logged > p.txt{ display:none !important; }                 /* "or" divider */
#sb_login_form .social-links{ display:none !important; }
.client-login-bar{ display:none !important; }                                  /* "use social media" bar */
#sb_sign_in_form, #sb_sign_up_form{
  border:1px solid #d9d9d9 !important; border-radius:8px !important;
  padding:20px !important; background:#ffffff !important;
}
.detail-step__item.left-side{ margin-right:10px !important; }
.detail-step__item.right-side{ margin-left:10px !important; }
#sb_sign_in_form > h3.title--h3,
#sb_sign_up_form > h3.title--h3{ font-size:17px !important; line-height:1.3 !important; white-space:normal !important; }
#sb_sign_in_form label, #sb_sign_up_form label{ font-size:14px !important; line-height:1.4 !important; font-weight:500 !important; }
.wrapper-details .title--h2{ font-size:22px !important; line-height:1.3 !important; margin-bottom:20px !important; }
@media (max-width:480px){ .wrapper-details .title--h2{ font-size:20px !important; } }
@media (max-width:767px){ #sb_sign_in_form, #sb_sign_up_form{ padding:16px !important; margin-bottom:16px !important; } }
.mdc-button--raised, .btn--sign-in{ background-color:#334FB4 !important; }
.mdc-button--raised .mdc-button__label, .btn--sign-in .mdc-button__label{ color:#fff !important; }


/* ============================================================
   PART 2 — PWA APP
============================================================ */

/* ---- Material theme → brand blue ---- */
:root{
  --mdc-theme-primary:#334FB4 !important;
  --mdc-theme-secondary:#334FB4 !important;
  --mdc-theme-on-primary:#ffffff !important;
}

/* ---- Top app bar: white title, back arrow, hamburger ---- */
#app-bar, #app-bar *{
  color:#ffffff !important; fill:#ffffff !important; opacity:1 !important;
}
#app-bar .mdc-icon-button, #app-bar button,
#app-bar svg, #app-bar svg path, #app-bar i{
  color:#ffffff !important; fill:#ffffff !important; opacity:1 !important;
}
.pwa-app__booking-steps-nav .title,
.pwa-app__booking-steps-nav .title-sub,
.pwa-app__booking-steps-nav a,
.pwa-app__booking-steps-nav a *{ color:#ffffff !important; }   /* "Time" / "Confirm details" (it's a link) */
#app-bar .mdc-top-app-bar__navigation-icon,
#app-bar .mdc-icon-button{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:48px !important; height:48px !important; padding:8px !important; line-height:1 !important; overflow:visible !important;
}
#app-bar .mdc-top-app-bar__navigation-icon svg,
#app-bar .mdc-icon-button svg,
#app-bar .mdc-top-app-bar__navigation-icon i,
#app-bar .mdc-icon-button i{
  width:24px !important; height:24px !important; font-size:24px !important; line-height:1 !important;
}

/* ---- Weekly schedule: clean rows ---- */
.flexible-weekly-view .item__picture-wrapper{ display:none !important; width:auto !important; aspect-ratio:auto !important; }
.flexible-weekly-view .item__tab{ display:flex !important; align-items:center !important; gap:10px !important; width:100% !important; }
.flexible-weekly-view .item__content{ flex:1 1 auto !important; min-width:0 !important; min-height:0 !important; padding:0 !important; line-height:1.35 !important; }
.flexible-weekly-view .item__content,
.flexible-weekly-view .item__content *{ white-space:normal !important; text-overflow:clip !important; overflow:visible !important; }
.flexible-weekly-view .item__content > *{ margin:0 0 2px !important; }
.flexible-weekly-view .item__content .item__description{ display:block !important; }   /* re-show start time */
.flexible-weekly-view .item__content .item__provider,
.flexible-weekly-view .item__content .item__service,
.flexible-weekly-view .item__content .item__subtitle{ display:none !important; }        /* redundant provider line */
.flexible-weekly-view .item.grid-weekly-row{ padding:10px 14px !important; }

/* ---- Weekly schedule: light block per day ---- */
.flexible-weekly-view .grid-weekly-day-header,
.flexible-weekly-view .grid-weekly-header{
  background:#EEF1FB !important; border-radius:8px !important;
  padding:6px 10px !important; margin:12px 0 6px !important;
  font-weight:700 !important; color:#1A1D26 !important;
}

/* ---- Pop-ups (class / membership detail) ---- */
.item__popup .modal-content,
.item__popup .modal-dialog,
.mdc-dialog__surface{
  background:#ffffff !important;
  border:1px solid #C9CCD6 !important; border-radius:12px !important;
  box-shadow:0 10px 30px rgba(0,0,0,.18) !important;
}
.item__popup .modal-body,
.item__popup .modal__body_scroll-box{ background:#ffffff !important; }
.item__popup.modal,
.mdc-dialog__scrim{ background:rgba(0,0,0,.32) !important; }    /* dim page behind */

/* ---- 3-dot (kebab) bottom sheet ---- */
.card--option-bar__cover{ background:rgba(0,0,0,.32) !important; }   /* dim scrim, NOT white */
.card--option-bar{
  background:#ffffff !important;
  top:auto !important; bottom:0 !important; height:auto !important; max-height:60vh !important;
  border-radius:14px 14px 0 0 !important;
  box-shadow:0 -4px 20px rgba(0,0,0,.18) !important;
}

/* ---- Hide push-notification prompt ---- */
.pwa-app__push-wrapper,
.push-notification, .push-permission,
[class*="push"][class*="wrapper"]{ display:none !important; }

/*Service Details to Class Details*/
button.mdc-list-item[data-target*="service"] {
  font-size: 0 !important;
  line-height: 0;
}
button.mdc-list-item[data-target*="service"]::after {
  content: "Class details";
  font-size: 16px;
  line-height: normal;
  display: inline-block;
}
/* Pop-up inner padding (overrides the website .item__content rule) */
.item__popup .item__content,
.item__popup .modal-body,
.item__popup .modal__body_scroll-box{
  padding:18px 22px !important;
}
.item__popup .modal-footer{ padding:12px 22px !important; }
.item__popup .title.title--h4{ margin:0 0 12px !important; }
/* "Time" / "Confirm details" active step title → white (beats the theme color) */
.pwa-app__booking-steps-nav .booking-steps-nav--item.active .content .title,
.pwa-app__booking-steps-nav .booking-steps-nav--item.active .content .title-sub,
.pwa-app__booking-steps-nav .booking-steps-nav--item.active a,
.pwa-app__booking-steps-nav .booking-steps-nav--item.active a *{
  color:#ffffff !important;
}
/* Hide "Provider details" from the 3-dot menu */
button.mdc-list-item[data-target*="provider"]{
  display:none !important;
}
/* "Step 1 of 2" / "Step 2 of 2" → white */
.pwa-app__step-count,
.pwa-app__step-count *,
.step-header__step,
.step-header__step *{
  color:#ffffff !important;
}
/* Back-step button (Confirm details) — kill the contained-button styling */
.mdc-button__to-prev-step,
#sb_back_button .mdc-button{
  background:transparent !important;
  box-shadow:none !important;
  min-width:0 !important;
  width:48px !important;
  height:48px !important;
  padding:8px !important;
}
.mdc-button__to-prev-step svg,
.mdc-button__to-prev-step svg path,
#sb_back_button svg{
  fill:#ffffff !important;
  color:#ffffff !important;
  width:22px !important;
  height:22px !important;
}
.mdc-button__to-prev-step .mdc-button__label,
.mdc-button__to-prev-step .mdc-button__ripple{ display:none !important; }
/* Hide the entire "Sessions: N" row (label + orphaned number) */
.info-bar--item:has(.session-remind){ display:none !important; }
/* Hide the (ⓘ) info button on Confirm details */
button.mdc-button__read-more[data-target*="current-booking-info"]{
  display:none !important;
}
/* PWA filter — hide the entire Providers field (label + dropdown) */
.grid-weekly__filter-item:has(#sb_grid_provider_id),
.grid-weekly__filter-item:has(.provider_id){
  display:none !important;
}
/* PWA — opaque plans tab bar (keep its native sticky position) */
.pwa-app__tabs{
  background:#ffffff !important;
  z-index:6 !important;
  box-shadow:0 2px 6px rgba(0,0,0,.06) !important;
}
/* PWA only — hide membership images */
body:has(.pwa-app__bottom-nav) .membership__label-wrapper .item__picture-wrapper{
  display:none !important;
}
/* PWA — opaque bottom nav so list doesn't bleed through */
.pwa-app__bottom-nav,
.bottom-navigation,
#sb_footer_menu,
.bottom-navigation__list-wrapper{
  background:#ffffff !important;
  z-index:10 !important;
}
.pwa-app__bottom-nav{
  box-shadow:0 -2px 8px rgba(0,0,0,.08) !important;
}
.ml-maps-btn{
  display:inline-block !important;
  white-space:nowrap !important;
  background:linear-gradient(180deg,#4f6ad6 0%, #334fb4 55%, #2a429b 100%) !important;
  color:#ffffff !important;
  font-family:Montserrat,Arial,sans-serif !important;
  font-weight:800 !important;
  font-size:15px !important;
  text-decoration:none !important;
  padding:14px 30px !important;
  border-radius:12px !important;
  border:1px solid #22357d !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45), 0 8px 20px rgba(40,55,130,.5) !important;
  text-shadow:0 1px 1px rgba(0,0,0,.25) !important;
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease !important;
}
.ml-maps-btn:link, .ml-maps-btn:visited,
.ml-maps-btn:hover, .ml-maps-btn:focus, .ml-maps-btn:active{
  color:#ffffff !important;
  text-decoration:none !important;
}
.ml-maps-btn:hover{
  filter:brightness(1.18) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5), 0 12px 26px rgba(40,55,130,.6) !important;
}
.ml-maps-btn:active{
  transform:translateY(2px) !important;
  box-shadow:inset 0 2px 5px rgba(0,0,0,.35) !important;
}
.index__item-timetable {
  display: none !important;
}
/* Always show the full About Us text */
.index__item-about-us .mdc-card__about-us--short {
  max-height: none !important;
}

/* Hide the Read more / Show less button */
.index__item-about-us .mdc-card__actions {
  display: none !important;
}
.pwa-app__header-title{ color:#ffffff !important; 
}
/* PWA — drawer must sit above the tabs bar and bottom nav */
.pwa-app__sidebar,
.mdc-drawer--modal{ z-index:1000 !important; }
.mdc-drawer-scrim{ z-index:999 !important; }

/* Book now filter — hide the duplicate (services) option */
#sb_grid_service_id option[value="services"]{ display:none !important; }
/* Book now filter — hide the duplicate (services) option, any instance */
select[name="service_id"] option[value="services"]{ display:none !important; }
#sb_membership_list_container .item__picture--default {
  display: none !important;
}

#sb_membership_list_container .item__picture-wrapper:not(:has(.item__picture:not(.item__picture--default))) {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
}
/* Class name */
#sb_time_grid_weekly_container .item__content .title--h4,
.grid-weekly-body .item__content h4.title {
  font-family: 'Montserrat', Arial, sans-serif !important;
font-size: 15px !important;
  line-height: 1.25 !important;
  font-weight: 600 !important;
}

/* Start time / info line under the name */
#sb_time_grid_weekly_container .item__info-bar,
#sb_time_grid_weekly_container .item__info-bar *,
.grid-weekly-body .item__subtitle {
  font-size: 16px !important;
  line-height: 1.35 !important;
}

/* a little breathing room now that text is bigger */
#sb_time_grid_weekly_container .item__content {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

@media (max-width: 767px) {
  #sb_time_grid_weekly_container .item__content .title--h4,
  .grid-weekly-body .item__content h4.title { font-size: 15px !important; }
  #sb_time_grid_weekly_container .item__info-bar,
  #sb_time_grid_weekly_container .item__info-bar * { font-size: 15px !important; }
}
/* Condense the class list rows */
#sb_time_grid_weekly_container .item__tab {
  min-height: 0 !important;
  height: auto !important;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
}

#sb_time_grid_weekly_container .grid-weekly-body-row {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  border: 0 !important;
  border-bottom: 1px solid #e5e5e5 !important;
}

#sb_time_grid_weekly_container .item__content {
  padding-top: 2px !important;
  padding-bottom: 2px !important;
  margin: 0 !important;
}

#sb_time_grid_weekly_container .item__content .title--h4 {
  margin: 0 0 2px 0 !important;
}

#sb_time_grid_weekly_container .item__info-bar {
  margin: 0 !important;
}

#sb_time_grid_weekly_container .item__footer:empty,
#sb_time_grid_weekly_container .item__picture-wrapper:empty {
  display: none !important;
}
/* Smaller Book button */
#sb_time_grid_weekly_container .grid-weekly-button button,
#sb_time_grid_weekly_container .grid-weekly-button a,
#sb_time_grid_weekly_container .grid-weekly-button .btn {
  padding: 6px 14px !important;
  font-size: 14px !important;
  line-height: 1.2 !important;
  min-height: 0 !important;
  height: auto !important;
  min-width: 0 !important;
  width: auto !important;
  border-radius: 5px !important;
}

/* Tighter rows */
#sb_time_grid_weekly_container .grid-weekly-body-row {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

#sb_time_grid_weekly_container .grid-weekly-body-item {
  padding-top: 2px !important;
  padding-bottom: 2px !important;
}

/* Pull the day headers in tighter too */
#sb_time_grid_weekly_container .grid-weekly-header-row {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  min-height: 44px !important;
}
/* Hide the "All classes" filter dropdown */
#sb_timeview_container .top-inline-steps .form-group.service_id,
#sb_timeview_container .top-inline-steps label[for="sb_grid_service_id"],
#sb_timeview_container #sb_grid_service_id {
  display: none !important;
}

#sb_timeview_container .top-inline-steps .col-sm-6:has(#sb_grid_service_id) {
  display: none !important;
}
/* Remove the empty provider column reserving space */
#sb_time_grid_weekly_container .grid-weekly-provider {
  display: none !important;
}

/* Button hugs the right edge at all widths */
#sb_time_grid_weekly_container .grid-weekly-body-row .grid-weekly-button {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  flex: 0 0 auto !important;
  flex-basis: auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-left: auto !important;
  padding-right: 16px !important;
}

/* header row: no empty button/provider cells */
#sb_time_grid_weekly_container .grid-weekly-header-row .grid-weekly-button,
#sb_time_grid_weekly_container .grid-weekly-header .grid-weekly-button {
  display: none !important;
}

/* Class name column takes the freed space */
#sb_time_grid_weekly_container .grid-weekly-serice {
  flex: 1 1 auto !important;
}
/* ============================================================
   MEMBERSHIPS — cards, "Read more" pop-up, PWA kebab sheet

   Card text:  .item__tab > article.item__content
   Pop-up:     .item__tab > .item__popup > .modal-dialog >
               .modal-content > .modal__body > article.item__content
   The ">" in the card selectors is what keeps the two apart.
============================================================ */

/* ---------- CARD (website only) ---------- */
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item__tab > article.item__content{
  position:relative !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  min-height:0 !important;
  height:auto !important;
  padding:8px 24px 4px !important;
  box-sizing:border-box !important;
}
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item__tab > article.item__content > .title--h4{
  flex:1 1 auto !important;
  min-width:0 !important;
  margin:0 !important;
  padding-right:110px !important;
}

/* Description text off, "Read more" pinned right on the title row */
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item__tab > article.item__content > .item__description{
  display:block !important;
  position:absolute !important;
  top:50% !important;
  right:24px !important;
  left:auto !important;
  bottom:auto !important;
  transform:translateY(-50%) !important;
  width:max-content !important;
  max-width:none !important;
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  white-space:nowrap !important;
  text-align:right !important;
  margin:0 !important;
  padding:0 !important;
  background:none !important;
}
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item__tab > article.item__content > .item__description > p{
  display:none !important;
}
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item__tab > article.item__content > .item__description::after{
  display:none !important;
}
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item__tab > article.item__content > .item__description .item__read-more,
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item__tab > article.item__content > .item__description button[data-toggle="modal"]{
  display:inline-block !important;
  position:static !important;
  width:auto !important;
  white-space:nowrap !important;
  margin:0 !important;
  padding:0 !important;
  background:none !important;
  border:0 !important;
  color:#334FB4 !important;
  font-family:'Montserrat',Arial,sans-serif !important;
  font-weight:700 !important;
  font-size:14px !important;
  line-height:1.3 !important;
  text-decoration:underline !important;
  cursor:pointer !important;
}

/* Footer boxes share the same 24px inset as the title row */
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item__footer,
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item__info-bar{
  padding-left:24px !important;
  padding-right:24px !important;
  box-sizing:border-box !important;
}

/* Cards 1-3 and 7-12: no expiry clock.  Cards 7-12: no "Read more" */
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item:nth-child(-n+3) .item__info-bar .info-bar--item:first-child,
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item:nth-child(n+7):nth-child(-n+12) .item__info-bar .info-bar--item:first-child{
  display:none !important;
}
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item:nth-child(n+7):nth-child(-n+12) .item__tab > article.item__content > .item__description{
  display:none !important;
}

/* ---------- READ-MORE POP-UP ---------- */
.item__popup .modal-dialog,
.item__popup .modal-content,
.item__popup .modal__body{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
.item__popup .modal__body{ padding:0 !important; }

/* No image in the pop-up */
.item__popup .item__picture,
.item__popup .item__picture-wrapper{ display:none !important; }

/* Content column */
.item__popup .modal__body > article.item__content{
  display:block !important;
  position:static !important;
  height:auto !important;
  min-height:0 !important;
  overflow:visible !important;
  padding:16px 22px 14px !important;
  box-sizing:border-box !important;
}
.item__popup .modal__body > article.item__content > .title--h4{
  display:block !important;
  margin:0 0 10px !important;
  padding-right:0 !important;
  white-space:normal !important;
}
.item__popup .modal__body .item__description{
  display:block !important;
  position:static !important;
  transform:none !important;
  width:auto !important;
  max-width:none !important;
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
  white-space:normal !important;
  text-align:left !important;
  margin:0 !important;
  padding:0 !important;
}
.item__popup .modal__body .item__description > p{
  display:block !important;
  white-space:normal !important;
  font-size:15px !important;
  line-height:1.55 !important;
  margin:0 !important;
}
.item__popup .modal__body .item__info-bar{ padding:10px 22px 16px !important; }

/* ---------- PWA kebab sheet ---------- */
.card--option-bar .mdc-list-item,
.card--option-bar button.mdc-list-item,
.card--option-bar .mdc-list-item .mdc-list-item__text{
  align-items:center !important;
  justify-content:flex-start !important;
  width:100% !important;
  text-align:left !important;
  text-decoration:none !important;
  font-weight:500 !important;
  font-size:16px !important;
  color:#1A1D26 !important;
  background:none !important;
  border:0 !important;
  margin:0 !important;
  padding:14px 20px !important;
  line-height:1.3 !important;
}
.card--option-bar .mdc-list-item svg,
.card--option-bar .mdc-list-item i,
.card--option-bar .mdc-list-item__graphic{
  flex:0 0 24px !important;
  margin:0 16px 0 0 !important;
  fill:#334FB4 !important;
  color:#334FB4 !important;
}
.card--option-bar .mdc-list-item[data-target*="date"] ~ .mdc-list-item[data-target*="date"]{
  display:none !important;
}
/* Memberships page: hide the 3 drop-in passes (they live on the Drop-In page) */
body:not(:has(.pwa-app__bottom-nav)) #sb_membership_list_container .item:nth-child(-n+3){
  display:none !important;
}
/* Kebab menu: relabel "Service details" → "Class details" */
.card--option-bar button.mdc-list-item[data-target^="#service_"]{
  font-size:0 !important;
  color:transparent !important;
}
.card--option-bar button.mdc-list-item[data-target^="#service_"] > i.icon,
.card--option-bar button.mdc-list-item[data-target^="#service_"] > span{
  font-size:16px !important;
}
.card--option-bar button.mdc-list-item[data-target^="#service_"]::after{
  content:"Class details" !important;
  font-size:16px !important;
  color:#1A1D26 !important;
}
/* --- Muscles & Lungs: clean up package cards --- */

/* hide the clock / "3 days", keep "See full offer" right-aligned */
#sb_package_list_container .item__info-bar > *:first-child { display: none !important; }
#sb_package_list_container .item__info-bar { justify-content: flex-end !important; }

/* hide the "Starts from <date>" row above the price button */
#sb_package_list_container .item__footer > *:first-child { display: none !important; }
/* hide the default placeholder picture */
#sb_package_list_container .item__picture-wrapper,
#sb_package_list_container .item__picture--default { display: none !important; }

/* collapse the empty description block so the price sits under the title */
#sb_package_list_container .item__description,
#sb_package_list_container .selected-package-list { display: none !important; }

#sb_package_list_container .item__tab,
#sb_package_list_container .item,
#sb_package_list_container .item__content { min-height: 0 !important; height: auto !important; }
#sb_package_list_container .item__footer { margin-top: 10px !important; }

/* ---- PWA: hide the FILTER bar ---- */
.item.grid-weekly__filter-bar,
.grid-weekly__filter-bar{
  display:none !important;
}

/* ---- PWA: week-range date label — bigger, bold, centred ---- */
.inline-datepicker__wrapper .btn,
.inline-datepicker__wrapper button,
.inline-datepicker__wrapper .btn--link,
.inline-datepicker__container .btn--link{
  font-family:'Montserrat',Arial,sans-serif !important;
  font-size:20px !important;
  font-weight:700 !important;
  line-height:1.3 !important;
  white-space:normal !important;
  height:auto !important;
  width:100% !important;
  text-align:center !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* the row itself centres the label between the arrows */
.inline-datepicker__wrapper .content-container,
.inline-datepicker__container .content-container{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
}
/* header row: no own margin — the band handles spacing */
.flexible-weekly-view .grid-weekly-header-row{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  margin:0 !important;
  min-height:44px !important;
}
.flexible-weekly-view .grid-weekly-header-row .grid-weekly-date-time{
  font-family:'Montserrat',Arial,sans-serif !important;
  font-size:20px !important;
  font-weight:700 !important;
  line-height:1.3 !important;
  flex:1 1 auto !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  text-align:center !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
#sb_dialog .modal-dialog.license-modal .modal-title {
  display: none !important;
}
