/**
 * Aqua 5.4.4 additions: mobile navigation, class timetable, trainer classes list.
 * Kept out of style.css because style.css is rebuilt from assets/css/less/style.less
 * every time Theme Options are saved. Loaded after style.css (see functions.php).
 */
/* ==========================================================================
   Mobile navigation (iPhone / Safari first)
   ========================================================================== */
@media (max-width: 767px) {
  /* Hamburger: 44px tap target (transparent border is part of the hit area) */
  .ro-hamburger {
    box-sizing: content-box;
    border: 15px solid transparent;
    margin: -15px;
    -webkit-tap-highlight-color: transparent;
  }

  /* Close button stays at the top of the panel on every header layout */
  body.ro-main-nav-opened #ro-hamburger {
    position: fixed;
    top: 25px;
    right: 15px;
    bottom: auto;
    left: auto;
    z-index: 1000;
  }

  body.admin-bar.ro-main-nav-opened #ro-hamburger {
    top: 71px;
  }

  body.ro-main-nav-opened #ro-hamburger:before,
  body.ro-main-nav-opened #ro-hamburger:after {
    background: #444444;
  }

  /* Slide-in panel: avoid the iOS 100vh toolbar gap, keep momentum scrolling */
  .tb-header-v1 #nav,
  .tb-header-v2 #nav,
  .tb-header-v3 #nav {
    height: 100%;
    bottom: 0;
    padding-bottom: 90px;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }

  body.ro-main-nav-opened {
    overflow: hidden;
  }

  /* Menu links: full-width rows, no sticky hover state on touch */
  body.ro-main-nav-opened #nav > li > a {
    -webkit-tap-highlight-color: transparent;
  }

  /* Wider panel on headers v1 to v3: more room for labels and the arrow */
  .tb-header-v1 #nav,
  .tb-header-v2 #nav,
  .tb-header-v3 #nav {
    width: 300px;
    max-width: 85vw;
    right: -320px;
    padding-left: 24px;
    padding-right: 24px;
    box-sizing: border-box;
  }

  .ro-main-nav-opened .tb-header-v1 #nav,
  .ro-main-nav-opened .tb-header-v2 #nav,
  .ro-main-nav-opened .tb-header-v3 #nav {
    right: 0;
    box-shadow: -8px 0 24px rgba(0, 0, 0, 0.15);
  }

  /* Dim backdrop: tap outside the panel to close it */
  body.ro-main-nav-opened .tb-nav-backdrop {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 997;
    background: rgba(0, 0, 0, 0.45);
    -webkit-tap-highlight-color: transparent;
  }

  /* Parent row: link on the left, 44px arrow button on the right */
  body.ro-main-nav-opened #nav li.menu-item-has-children {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-flex-wrap: wrap;
    flex-wrap: wrap;
    -webkit-box-align: stretch;
    -webkit-align-items: stretch;
    align-items: stretch;
  }

  body.ro-main-nav-opened #nav li.menu-item-has-children > a {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 0;
    flex: 1 1 0;
    min-width: 0;
  }

  body.ro-main-nav-opened .text-center #nav li.menu-item-has-children > a {
    padding-left: 44px;
  }

  body.ro-main-nav-opened #nav .tb-sub-toggle {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 44px;
    flex: 0 0 44px;
    width: 44px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: #444444;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }

  body.ro-main-nav-opened .tb-header-v1 #nav .tb-sub-toggle,
  body.ro-main-nav-opened .tb-header-v2 #nav .tb-sub-toggle,
  body.ro-main-nav-opened .tb-header-v3 #nav .tb-sub-toggle {
    border-bottom: 1px solid #444444;
  }

  body.ro-main-nav-opened #nav .tb-sub-toggle:before {
    font: normal normal normal 18px/1 FontAwesome;
    content: "\f107";
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.06);
    -webkit-transition: -webkit-transform 0.25s, background-color 0.25s;
    transition: transform 0.25s, background-color 0.25s;
  }

  body.ro-main-nav-opened #nav .tb-sub-toggle:active:before {
    background: rgba(0, 0, 0, 0.14);
  }

  body.ro-main-nav-opened #nav .tb-sub-toggle:focus {
    outline: none;
  }

  body.ro-main-nav-opened #nav .tb-sub-toggle:focus-visible:before {
    outline: 2px solid var(--aqua-accent-strong, #477615);
    outline-offset: 2px;
  }

  body.ro-main-nav-opened #nav li.active-sub > .tb-sub-toggle:before {
    -webkit-transform: rotate(180deg);
    transform: rotate(180deg);
    background: var(--aqua-accent-strong, #477615);
    color: #ffffff;
  }

  /* Sub menus: closed until the arrow is tapped */
  body.ro-main-nav-opened #nav li.menu-item-has-children > ul {
    display: none;
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 100%;
    flex: 0 0 100%;
    position: static;
    width: 100%;
    min-width: 0;
    left: auto;
    right: auto;
    top: auto;
    margin: 0;
    padding: 4px 0;
    background: rgba(0, 0, 0, 0.04);
    border: 0;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    -webkit-transform: none;
    transform: none;
    animation: none;
  }

  body.ro-main-nav-opened #nav li.menu-item-has-children.active-sub > ul {
    display: block;
  }

  /* Mega menu columns (no link of their own) stay open inside an open parent */
  body.ro-main-nav-opened #nav li.active-sub ul li:not(.menu-item-has-children) > ul,
  body.ro-main-nav-opened #nav li.active-sub ul li.menu-item-has-children:not(:has(> a)) > ul {
    display: block;
    position: static;
    width: 100%;
    margin: 0;
    padding: 0;
    background: none;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
  }

  body.ro-main-nav-opened #nav li.active-sub ul li {
    display: block;
    float: none;
    width: 100%;
    height: auto;
    overflow: visible;
    padding: 0;
  }

  body.ro-main-nav-opened #nav li.menu-item-has-children > ul li a {
    display: block;
    padding: 12px 8px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
    line-height: 1.4;
    font-size: 13px;
    text-align: center;
    text-transform: none;
    white-space: normal;
  }

  /* Desktop mega menu backgrounds and columns do not apply in the panel */
  body.ro-main-nav-opened #nav li.menu-item-has-children ul,
  body.ro-main-nav-opened #nav li.menu-item-has-children ul li {
    background-image: none !important;
  }

  body.ro-main-nav-opened #nav li.active-sub ul ul,
  body.ro-main-nav-opened #nav li.active-sub ul li {
    background-color: transparent;
  }

  body.ro-main-nav-opened #nav li.active-sub > ul > li > ul > li:last-child > a {
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  }

  body.ro-main-nav-opened #nav li.active-sub > ul > li:last-child > a,
  body.ro-main-nav-opened #nav li.active-sub > ul > li:last-child > ul > li:last-child > a {
    border-bottom: 0;
  }

  body.ro-main-nav-opened #nav li.menu-item-has-children > ul li.current-menu-item > a {
    color: var(--aqua-accent-strong, #477615);
  }
}

.tb-nav-backdrop,
.tb-sub-toggle {
  display: none;
}

/* Class schedule table: scroll inside its wrapper instead of widening the page */
@media (max-width: 991px) {
  .schedule-container .table-responsive {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .schedule-container .table-responsive .table-schedule {
    min-width: 720px;
  }
}

/* ==========================================================================
   Class timetable ([schedule]) and trainer classes list
   ========================================================================== */
.tb-schedule .tb-schedule-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-bottom: 16px;
  text-align: left;
}

.tb-schedule .tb-schedule-title {
  margin: 0;
  font-size: 20px;
  text-transform: uppercase;
}

.tb-schedule .tb-schedule-all {
  display: inline-block;
  min-height: 44px;
  line-height: 44px;
  padding: 0 16px;
  border: 1px solid #84c340;
  color: var(--aqua-accent-strong, #477615);
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

.tb-schedule .tb-schedule-all:hover {
  background: var(--aqua-accent-strong, #477615);
  color: #fff;
}

.tb-schedule .tb-schedule-days {
  display: none;
}

.tb-schedule .table-responsive .table-schedule tbody tr td .has_class {
  padding: 8px 6px;
}

.tb-schedule .table-responsive .table-schedule tbody tr td .has_class + .has_class {
  border-top: 1px dashed #d9d9d9;
}

.tb-schedule .table-responsive .table-schedule tbody tr td .has_class a.tb_class_title {
  display: block;
  color: #444444;
  font-weight: 600;
  line-height: 1.3;
}

.tb-schedule .table-responsive .table-schedule tbody tr td .has_class a.tb_class_title:hover {
  color: var(--aqua-accent-strong, #477615);
}

.tb-schedule .table-responsive .table-schedule tbody tr td span.tb_trainer,
.tb-schedule .table-responsive .table-schedule tbody tr td span.tb_level {
  font-size: 11px;
  color: #6b6b6b;
  text-transform: none;
  margin-top: 3px;
}

.tb-schedule .table-responsive .table-schedule tbody tr td span.tb_trainer a {
  color: var(--aqua-accent-strong, #477615);
}

.tb-schedule.has-highlight .table-responsive .table-schedule tbody tr td .has_class {
  opacity: 0.45;
}

.tb-schedule.has-highlight .table-responsive .table-schedule tbody tr td .has_class.is-highlighted {
  opacity: 1;
  background: #eef8e3;
  box-shadow: inset 0 0 0 2px #84c340;
}

.tb-schedule .tb-schedule-empty {
  margin-top: 16px;
  color: #666666;
}

@media (max-width: 767px) {
  .tb-schedule .tb-schedule-days {
    display: flex;
    gap: 6px;
    margin-bottom: 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
  }

  .tb-schedule .tb-schedule-day {
    flex: 1 0 auto;
    min-width: 44px;
    min-height: 44px;
    padding: 0 10px;
    border: 1px solid #d9d9d9;
    background: #fff;
    color: #444444;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    border-radius: 3px;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }

  .tb-schedule .tb-schedule-day[aria-selected="true"] {
    background: var(--aqua-accent-strong, #477615);
    border-color: var(--aqua-accent-strong, #477615);
    color: #fff;
  }

  .tb-schedule.is-day-view .table-responsive {
    overflow-x: visible;
  }

  .tb-schedule.is-day-view .table-responsive .table-schedule {
    min-width: 0;
    width: 100%;
    table-layout: fixed;
  }

  .tb-schedule.is-day-view .table-responsive .table-schedule th[data-day],
  .tb-schedule.is-day-view .table-responsive .table-schedule td[data-day] {
    display: none;
  }

  .tb-schedule.is-day-view .table-responsive .table-schedule th.is-active-day,
  .tb-schedule.is-day-view .table-responsive .table-schedule td.is-active-day {
    display: table-cell;
  }

  .tb-schedule.is-day-view .table-responsive .table-schedule .tb-col-time {
    width: 64px;
  }

  .tb-schedule.is-day-view .table-responsive .table-schedule tbody tr td {
    height: auto;
    min-height: 56px;
  }

  .tb-schedule.is-day-view .table-responsive .table-schedule tbody tr td.is-empty {
    height: 40px;
  }

  .tb-schedule.is-day-view .table-responsive .table-schedule tbody tr td .has_class {
    padding: 10px 8px;
    text-align: left;
  }

  .tb-schedule.is-day-view .table-responsive .table-schedule tbody tr td .has_class a.tb_class_title {
    font-size: 14px;
    padding: 4px 0;
  }
}

.tb-trainer-classes {
  margin-top: 30px;
  text-align: left;
}

.tb-trainer-classes .tb-trainer-classes-title {
  font-size: 18px;
  text-transform: uppercase;
  margin: 0 0 12px;
}

.tb-trainer-classes .tb-trainer-classes-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tb-trainer-classes .tb-trainer-classes-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 14px;
  padding: 12px 0;
  border-bottom: 1px solid #ebebeb;
}

.tb-trainer-classes .tb-trainer-class-title {
  font-weight: 600;
  color: #444444;
  min-height: 24px;
}

.tb-trainer-classes .tb-trainer-class-title:hover {
  color: var(--aqua-accent-strong, #477615);
}

.tb-trainer-classes .tb-trainer-class-meta {
  font-size: 13px;
  color: #6b6b6b;
}

.tb-trainer-classes .tb-trainer-class-meta span + span:before {
  content: "\00b7";
  margin: 0 6px;
}

/* Single class buttons: the theme makes them 50px tall (tap size is fine); keep the label centred */
.tb-blog .box-heading a.btn-button {
  line-height: 50px;
}

/* Class cards: the image links to the class page */
.tb-blog-image-link {
  display: block;
}

/* Stop the closed off-canvas menu from widening the page (sideways scroll on phones) */
@media (max-width: 767px) {
  .tb-header-wrap .header-menu {
    overflow-x: clip;
  }

  @supports not (overflow: clip) {
    html,
    body {
      overflow-x: hidden;
    }
  }
}

/* Related posts / blog cards: equal height columns and a 3:2 image crop */
@media (min-width: 992px) {
  .ro-related-posts {
    display: flex;
    flex-wrap: wrap;
  }

  .ro-related-posts > div[style*="clear"] {
    display: none;
  }

  .ro-related-posts > [class*="col-"] {
    display: flex;
    float: none;
    margin-bottom: 30px;
  }

  .ro-related-posts > [class*="col-"] > article {
    display: flex;
    width: 100%;
  }
}

.ro-related-posts .ro-relate-posts-item {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}

.ro-related-posts .ro-relate-posts-item .ro-image {
  overflow: hidden;
}

.ro-related-posts .ro-relate-posts-item .ro-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.ro-related-posts .ro-relate-posts-item .ro-content {
  flex: 1 1 auto;
}

/* Single trainer: thin divider under the name and button (was a 5px bar plus a second line) */
.single-trainer .tb-blog .tb-content-block .tb-heading {
  border-bottom: 1px solid #e5e5e5;
  padding-bottom: 20px;
  margin-bottom: 24px;
}

.single-trainer .tb-blog .tb-content-block .tb-heading:after {
  display: none;
}

/* Single trainer info rows: keep label and value on one line */
.single-trainer .tb-blog .tb-info > div > span {
  max-width: calc(100% - 150px);
}

@media (max-width: 767px) {
  .single-trainer .tb-blog .tb-info > div > span {
    max-width: none;
  }
}

/* ==========================================================================
   Images from assets/css/less/modules/update/*.less. The Theme Options LESS
   rebuild rewrites their relative URLs to a folder that does not exist (404),
   so they are set again here, relative to this file.
   ========================================================================== */
.newsletter-sidebar {
  background-color: #1c2533;
  background-image: url(../images/bg-newsletter.jpg);
}
.tb-pricing.tpl1 {
  background-image: url(../images/bg-pricing.jpg);
}
.wbp-title.tpl4 span.line {
  background-image: url(../images/title_bars/line.png);
}
.tb-blog.tpl1 #tb-blog-image .flex-control-nav li,
.tb-blog.tpl2 .flex-control-nav li {
  cursor: url(../images/cursor.png), pointer;
}
.tb-list-gallery ul li .tb-info-block {
  background-image: linear-gradient(to top, rgba(0, 0, 0, 0.65), rgba(0, 0, 0, 0));
}
.tb-blog .pagination.ajax.blog-more-ajax-loading,
.schedule-container .table-responsive.blog-more-ajax-loading:after,
.ro-shape-body-calculator.tpl3 > .cal_body_result.blog-more-ajax-loading:after {
  background-image: url(../images/loading-animate.gif);
}
.woocommerce.tb-products-list.tpl2 .products.ajax-loading:after {
  background: url(../images/loading-animate.gif) no-repeat center 20%, rgba(255, 255, 255, 0.2);
}

/* ==========================================================================
   Phones: compact bar (logo + menu) that slides in on scroll up (main.js)
   ========================================================================== */
.tb-mbar {
  display: none;
}
@media (max-width: 767px) {
  .tb-mbar {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 99990; /* above page sections; hidden while the menu panel is open */
    height: 60px;
    padding: 0 8px 0 16px;
    padding-top: env(safe-area-inset-top);
    background: #ffffff;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
    -webkit-transform: translateY(-110%);
    transform: translateY(-110%);
    -webkit-transition: -webkit-transform 0.25s ease;
    transition: transform 0.25s ease;
    visibility: hidden;
  }
  .tb-mbar.is-visible {
    -webkit-transform: none;
    transform: none;
    visibility: visible;
  }
  .ro-main-nav-opened .tb-mbar {
    visibility: hidden;
  }
  .tb-mbar__logo {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    gap: 6px;
    min-width: 0;
    line-height: 0;
  }
  .tb-mbar__logo img {
    display: block;
    width: auto;
    max-width: 140px;
    height: 36px;
    object-fit: contain;
  }
  .tb-mbar__menu {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    gap: 5px;
    width: 48px;
    height: 48px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--aqua-accent-strong, #477615);
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation;
  }
  .tb-mbar__menu span {
    display: block;
    width: 20px;
    height: 2px;
    border-radius: 1px;
    background: #ffffff;
  }
  .tb-mbar__menu:active {
    background: var(--aqua-accent-stronger, #305706);
  }
  .tb-mbar__menu:focus {
    outline: none;
  }
  .tb-mbar__menu:focus-visible {
    outline: 2px solid var(--aqua-accent-stronger, #305706);
    outline-offset: 2px;
  }
}
@media (min-width: 601px) and (max-width: 767px) {
  body.admin-bar .tb-mbar {
    top: 46px;
  }
}

/* Homepage Update 01, About us image: shown up to its sharp size, centred */
.tb-about-img.wpb_single_image .vc_figure,
.tb-about-img.wpb_single_image .vc_single_image-wrapper {
  display: block;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.tb-about-img.wpb_single_image img {
  display: block;
  width: 100%;
  max-width: 900px;
  height: auto;
  margin: 0 auto;
}

/* ==========================================================================
   Hover-only content: shown on touch screens and to keyboard users
   (captions, prices, product info and buttons were invisible on phones)
   ========================================================================== */
.tb-blog.entry article:focus-within .tb-content-block {
  opacity: 1;
  transform: rotate(0deg);
}
body .plan:focus-within li.plan-price .tb-overlay,
.ro-membership-item:focus-within .ro-price .ro-overlay {
  opacity: 1;
  transform: scale(1);
}
.woocommerce .products .tb-product-items .tb-product-item .tb-product-item-inner:focus-within .tb-item-content-info,
.woocommerce.tb-products-list.tpl2 .products .tb-product-item-inner:focus-within .tb-item-content-image .tb-item-button-content,
.ro-space-img:focus-within .ro-overlay {
  opacity: 1;
}
.tb-product-carousel.tpl4 .tb-product-item-inner:focus-within .tb-image .tb-action {
  z-index: 2;
  visibility: visible;
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
@media (hover: none) {
  .tb-blog.entry article .tb-content-block {
    opacity: 1;
    transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
  }
  body .plan li.plan-price .tb-overlay,
  .ro-membership-item .ro-price .ro-overlay {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
  }
  .ro-space-img .ro-overlay {
    opacity: 1;
  }
  /* Product list style 2: cart and wishlist icons on the photo, without the white veil */
  .woocommerce.tb-products-list.tpl2 .products .tb-product-item-inner .tb-item-content-image .tb-item-button-content {
    opacity: 1;
    background: transparent;
  }
  .woocommerce.tb-products-list.tpl2 .products .tb-product-item-inner .tb-item-content-image .tb-item-button-content .tb-item-button .tb-btn {
    background: rgba(255, 255, 255, 0.92);
  }
  .ro-service-wrap .ro-service-item-6 .ro-service-content a {
    opacity: 1;
    transform: translate(-50%, -80px);
  }
  .tb-product-carousel.tpl4 .tb-product-item-inner .tb-image .tb-action {
    z-index: 2;
    visibility: visible;
    opacity: 1;
    -webkit-transform: translate(-50%, -50%) scale(1);
    transform: translate(-50%, -50%) scale(1);
  }
  /* Product cards: name, price and button in a panel at the bottom of the photo */
  .woocommerce .products .tb-product-items .tb-product-item .tb-product-item-inner {
    position: relative;
  }
  .woocommerce .products .tb-product-items .tb-product-item .tb-product-item-inner .tb-item-content-info {
    opacity: 1;
    top: auto;
    bottom: 16px;
    height: auto;
    background: rgba(255, 255, 255, 0.94);
  }
  .woocommerce .products .tb-product-items .tb-product-item .tb-product-item-inner .tb-item-content-info .tb-item-content-info-inner {
    position: static;
    -webkit-transform: none;
    transform: none;
    width: auto;
    padding: 12px 10px 14px;
  }
  .woocommerce .products .tb-product-items .tb-product-item .tb-product-item-inner .tb-item-content-info h4 {
    margin-top: 0;
  }
  .woocommerce .products .tb-product-items .tb-product-item .tb-product-item-inner .tb-item-content-info .btn-addtocart {
    margin-top: 10px;
  }
}

/* Footer copyright: #666 on the dark footer was hard to read */
.tb_footer.v1 .footer-bottom h6 {
  color: #aaaaaa;
}

/* ==========================================================================
   Text contrast (UI audit, Oct 13 2026)
   ========================================================================== */
/* Gray meta text on white: #999 / #888 measured 2.8:1 to 3.5:1 */
.ro-related-posts.tpl2 .ro-relate-posts-item .ro-content .blog-info,
.ro-related-posts.tpl2 .ro-relate-posts-item .ro-content .blog-info a,
.ro-related-posts.tpl2 .ro-relate-posts-item .tb-date,
.single-classes .tb-blog .tb-blog-image .box-heading .tb-info > div,
.tb-classes.tb-classes-carousel article .tb-content-block .tb-info .tb-time,
.tb-classes.tb-classes-carousel article .tb-content-block .tb-info .tb-trainner,
.tb-classes.tpl2:not(.tb-classes-carousel) article .tb-content-block .tb-info .tb-time,
.tb-classes.tpl2:not(.tb-classes-carousel) article .tb-content-block .tb-info .tb-trainner,
.tb-classes.tpl4 article .tb-content-block .tb-info .tb-time,
.tb-classes.tpl4 article .tb-content-block .tb-info .tb-trainner,
.tb-decs-service p.sub-title,
.wbp-title.tpl4 p.sub-title {
  color: #6b6b6b;
}
/* Light footer (Footer 2): recent posts links */
.tb_footer_v2 .widget_recent_entries ul li a {
  color: #6b6b6b;
}
.tb_footer_v2 .widget_recent_entries ul li a:hover,
.tb_footer_v2 .widget_recent_entries ul li a:focus {
  color: var(--aqua-accent-stronger, #305706);
}
/* Blog tiles on pastel rows (Home Onepage, Home Fullwidth) */
.tb-blog.default.row-full-content article .tb-content-block h2.blog-title a,
#tb_wrapper .tb-blog.default.row-full-content article .tb-content-block h2.blog-title a {
  color: #2b2b2b;
}
.tb-blog.default.row-full-content article .tb-content-block h2.blog-title:after,
#tb_wrapper .tb-blog.default.row-full-content article .tb-content-block h2.blog-title:after {
  border-top-color: #2b2b2b;
}
.tb-blog.default.row-full-content article .tb-content-block .blog-info span a,
#tb_wrapper .tb-blog.default.row-full-content article .tb-content-block .blog-info span a {
  color: var(--aqua-accent-stronger, #305706);
}
/* Service tiles (Service style 3) on pastel colours */
.ro-service-item-3 h3 {
  color: #2b2b2b;
}
.ro-service-item-3 h3:after {
  border-top-color: #2b2b2b;
}

/* Buttons: keyboard focus looked like hover in reverse (text took the button colour) */
.btn-button:focus,
.btn-button:active {
  color: #ffffff;
}
.btn-button:focus-visible,
.ro-btn-bd-1:focus-visible,
.ro-btn-bd-2:focus-visible,
.ro-btn-3:focus-visible {
  outline: 2px solid var(--aqua-accent-stronger, #305706);
  outline-offset: 2px;
}

/* Membership price overlay: "monthly" label on the tinted overlay */
.ro-membership-item .ro-price .ro-overlay h5 {
  color: #444444;
}
/* Row class for content: darker green band so white text (Testimonial style 2) stays readable */
.vc_row.aqua-row-green {
  background-color: var(--aqua-accent-strong, #477615) !important;
}
.aqua-row-green .ro-testimonial-2 .ro-item .ro-content .ro-name p {
  background-color: var(--aqua-accent-strong, #477615);
}
/* Product list icons: the circle turns dark on hover, so the icon turns white */
.woocommerce .products .tb-product-items .tb-product-item .tb-product-item-inner .tb-item-content-image .tb-item-button .tb-btn:hover,
.woocommerce .products .tb-product-items .tb-product-item .tb-product-item-inner .tb-item-content-image .tb-item-button .tb-btn a:hover {
  color: #ffffff;
}

/* ==========================================================================
   Header 5 on phones: dark top bar (phone, cart, search) + white bar with
   logo and menu button, like the desktop layout
   ========================================================================== */
.tb-header-mlogo {
  display: none;
}
@media (max-width: 767px) {
  .tb-header-wrap.tb-header-v5 .header-sidebar .sidebar-top-center {
    display: none;
  }
  .tb-header-wrap.tb-header-v5 .header-sidebar > .container > .row {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    justify-content: space-between;
    min-height: 48px;
  }
  .tb-header-wrap.tb-header-v5 .header-sidebar > .container > .row > div {
    float: none;
    width: auto;
    margin-top: 0;
  }
  .tb-header-wrap.tb-header-v5 .header-sidebar .sidebar-top-left {
    -webkit-box-flex: 1;
    -webkit-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
    line-height: 1.4;
  }
  .tb-header-wrap.tb-header-v5 .header-sidebar .sidebar-top-right {
    -webkit-box-flex: 0;
    -webkit-flex: 0 0 auto;
    flex: 0 0 auto;
    padding-right: 15px;
  }
  .tb-header-wrap.tb-header-v5 .header-menu {
    position: relative;
    top: auto;
    background: #ffffff;
    border-bottom: 1px solid #eeeeee;
  }
  .tb-header-wrap.tb-header-v5 .header-menu .col-menu {
    min-height: 64px;
  }
  .tb-header-wrap.tb-header-v5 .tb-header-mlogo {
    display: block;
    position: absolute;
    top: 12px;
    left: 15px;
    line-height: 0;
  }
  .tb-header-wrap.tb-header-v5 .tb-header-mlogo img {
    width: auto;
    height: 40px;
  }
  .tb-header-wrap.tb-header-v5 .ro-hamburger {
    top: 10px;
  }
  .tb-header-wrap.tb-header-v5 .ro-hamburger span,
  .tb-header-wrap.tb-header-v5 .ro-hamburger:before,
  .tb-header-wrap.tb-header-v5 .ro-hamburger:after {
    background: #444444;
  }
}

/* ==========================================================================
   Social icons: X (formerly Twitter) and TikTok are not in Font Awesome 4.1.
   Drawn with an SVG mask in the current text colour, so hover colours still work.
   Use the classes "fa fa-x-twitter" and "fa fa-tiktok" in TB Socials widgets.
   The old "fa fa-twitter" and "icon-twitter" classes also show the X logo.
   ========================================================================== */
.fa.fa-twitter:before,
.fa.fa-x-twitter:before,
.icon-twitter:before,
.fa.fa-tiktok:before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.fa.fa-tiktok:before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z'/%3E%3C/svg%3E");
}

/* Rounded border buttons in "advertise" rows keep white text on focus, like hover */
.ro-advertise-2 .ro-btn-bd-2.ro-btn-bd-green:focus,
.ro-advertise-2 .ro-btn-bd-2.ro-btn-bd-pink:focus {
  color: #ffffff;
}
/* Product tabs on light backgrounds (Home Shop): readable tab labels */
.wpb_tabs.woo-product-tabs .ui-state-default a,
.wpb_tabs.woo-product-tabs .ui-state-default a:link,
.wpb_tabs.woo-product-tabs .ui-state-default a:visited {
  color: var(--aqua-accent-strong, #477615);
}

/* Dark footer (Footer 1): social icons were #444 on #222 */
.tb_footer.v1 .footer-top .tb-social a {
  color: #9a9a9a;
}
.tb_footer.v1 .footer-top .tb-social a:hover,
.tb_footer.v1 .footer-top .tb-social a:focus {
  color: var(--aqua-accent, #84c340);
}

/* Header 8: cart sits beside the social icons (it wrapped to its own line);
   on phones the menu bar already shows a cart, so the top one is hidden */
@media (min-width: 768px) {
  .tb-header-wrap.tb-header-v8 .header-sidebar .sidebar-top-right {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
    justify-content: flex-end;
  }
  .tb-header-wrap.tb-header-v8 .header-sidebar .sidebar-top-right .widget {
    margin-top: 0;
    margin-bottom: 0;
  }
  .tb-header-wrap.tb-header-v8 .header-sidebar .sidebar-top-right .widget_widget_mini_cart {
    display: inline-block;
    width: auto;
    margin-left: 12px;
  }
}
@media (max-width: 767px) {
  .tb-header-wrap.tb-header-v8 .header-sidebar .sidebar-top-right .widget_widget_mini_cart {
    display: none;
  }
  .tb-header-wrap.tb-header-v8 .header-sidebar .sidebar-top-right .widget_tb_social_widget {
    display: block;
    text-align: center;
  }
}

/* Header 7: social icons wrapped to two lines (widget fixed at cell width - 40px,
   and an invalid "margin-left: 14x" in the theme); one row with even spacing */
@media (min-width: 768px) {
  .tb-header-wrap.tb-header-v7 .mini-socials {
    white-space: nowrap;
  }
  .tb-header-wrap.tb-header-v7 .mini-socials .widget_tb_social_widget {
    width: auto;
  }
  .tb-header-wrap.tb-header-v7 .mini-socials .tb-social {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    margin: 0;
    padding: 0;
  }
  .tb-header-wrap.tb-header-v7 .mini-socials .tb-social li {
    display: block;
    padding: 0 12px;
  }
  .tb-header-wrap.tb-header-v7 .mini-socials .tb-social li:first-child {
    padding-left: 0;
  }
  .tb-header-wrap.tb-header-v7 .mini-socials .tb-social li:not(:last-child) a,
  .tb-header-wrap.tb-header-v7 .mini-socials .tb-social li:not(:first-child) a,
  .tb-header-wrap.tb-header-v7 .mini-socials .tb-social li a {
    margin: 0;
  }
  .tb-header-wrap.tb-header-v7 .mini-socials .tb-social li:not(:last-child):after {
    right: 0;
  }
  .tb-header-wrap.tb-header-v7 .mini-socials .widget_mini_cart_wrap {
    margin-left: 6px;
  }
}
@media (min-width: 768px) {
  .tb-header-wrap.tb-header-v7 .mini-socials {
    padding-left: 18px;
  }
}

/* Comment form: "Save my name..." checkbox was stretched by the full-width input rule */
.comment-form .comment-form-cookies-consent {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 20px;
}
.comment-form .comment-form-cookies-consent input[type="checkbox"] {
  -webkit-box-flex: 0;
  -webkit-flex: 0 0 auto;
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  min-height: 0;
  margin: 2px 0 0;
  padding: 0;
  border: 1px solid #929292;
  accent-color: var(--aqua-accent-strong, #477615);
  cursor: pointer;
}
.comment-form .comment-form-cookies-consent label {
  display: block;
  width: auto;
  margin: 0;
  line-height: 1.5;
  cursor: pointer;
}
.comment-form p.comment-form-cookies-consent {
  margin: 12px 0 22px;
}

/* Framed logo (aqua-brand2.png) on Header 3 and fixed Header 1: smaller, with space above and below */
@media (min-width: 768px) {
  .tb-header-wrap.tb-header-v3 .ro-logo-menu img.ro-brand {
    width: 200px;
    max-width: 200px;
    height: auto;
  }
  .tb-header-wrap.tb-header-v1.tb_header_fixed .menubar-brand img {
    width: 180px;
    max-width: 180px;
    height: auto;
  }
}
/* Fixed Header 1 turns white when sticky: show the white framed logo in dark grey */
.tb-stick-active .tb-header-wrap.tb-header-v1.tb_header_fixed .menubar-brand img {
  -webkit-filter: invert(0.75);
  filter: invert(0.75);
}

/* Header 2 sticky bar: logo on the left, menu with even spacing (items stretched as table cells) */
.tb-sticky-logo,
#nav > li.tb-sticky-logo {
  display: none;
}
@media (min-width: 992px) {
  .tb-stick-active .tb-header-wrap.tb_stick_header.tb-header-v2 {
    padding-top: 0;
  }
  .tb-stick-active .tb-header-wrap.tb_stick_header.tb-header-v2 #nav {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
    justify-content: flex-end;
    width: 100%;
  }
  .tb-stick-active .tb-header-wrap.tb_stick_header.tb-header-v2 #nav > li {
    display: block;
    width: auto;
  }
  .tb-stick-active .tb-header-wrap.tb_stick_header.tb-header-v2 #nav > li > a {
    padding: 22px 16px;
  }
  .tb-stick-active .tb-header-wrap.tb_stick_header.tb-header-v2 #nav > li.tb-sticky-logo {
    display: block;
    margin-right: auto;
  }
  .tb-stick-active .tb-header-wrap.tb_stick_header.tb-header-v2 #nav > li.tb-sticky-logo > a {
    display: -webkit-box;
    display: -webkit-flex;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    align-items: center;
    gap: 8px;
    padding: 10px 0;
    line-height: 0;
  }
  .tb-stick-active .tb-header-wrap.tb_stick_header.tb-header-v2 #nav > li.tb-sticky-logo > a:after {
    display: none;
  }
  .tb-stick-active .tb-header-wrap.tb_stick_header.tb-header-v2 #nav > li.tb-sticky-logo img {
    display: block;
    width: auto;
    height: 40px;
  }
}

/* ------------------------------------------------------------------
   Classes filter tabs (.tb-classes-tabs), e.g. Homepage 2 Yoga:
   newer WPBakery paints grey tab boxes (#ebebeb, #666) over the theme's
   dark rounded bar (#444, radius 34px). Restore the pill design: bar
   holds the tabs, inactive tab is white text on the bar, active tab is
   a green pill (white on --aqua-accent-strong), hover uses the bright
   accent, readable on #444.
------------------------------------------------------------------- */
.tb-classes-tabs .vc_tta-tabs-container {
  text-align: center;
}
.tb-classes-tabs .vc_tta-tabs-container .vc_tta-tabs-list {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  max-width: 760px;
  background: #444 !important;
  border: none !important;
  border-radius: 34px;
  margin: 0 auto 42px;
  padding: 7px 12px;
}
.tb-classes-tabs .vc_tta-tabs-container .vc_tta-tab {
  display: inline-block;
  float: none;
  margin: 2px;
}
.tb-classes-tabs .vc_tta-tabs-container .vc_tta-tab .vc_tta-panel-title {
  margin: 0;
  line-height: 1;
}
.tb-classes-tabs .vc_tta-tabs-container .vc_tta-tab a {
  display: inline-block !important;
  background: transparent !important;
  border: none !important;
  color: #fff !important;
  font-size: 16px !important;
  line-height: 18px !important;
  padding: 11px 22px !important;
  border-radius: 26px !important;
  white-space: nowrap;
  text-transform: capitalize;
  transition: background 0.3s, color 0.3s;
}
.tb-classes-tabs .vc_tta-tabs-container .vc_tta-tab:not(.vc_active):hover a,
.tb-classes-tabs .vc_tta-tabs-container .vc_tta-tab:not(.vc_active) a:focus-visible {
  color: var(--aqua-accent, #84c340) !important;
}
.tb-classes-tabs .vc_tta-tabs-container .vc_tta-tab.vc_active a {
  background: var(--aqua-accent-strong, #477615) !important;
  color: #fff !important;
}
@media (max-width: 767px) {
  .tb-classes-tabs .vc_tta-tabs-container .vc_tta-tabs-list {
    border-radius: 24px;
    padding: 6px 8px;
  }
  .tb-classes-tabs .vc_tta-tabs-container .vc_tta-tab a {
    padding: 9px 15px !important;
    font-size: 15px !important;
  }
}

/* Body Shape Calculator bar (.ro-calc-h4, fitness homes): the row overlaps the
   bottom of the slider by design, but Slider Revolution 7 layers paint over it.
   Lift the row above the slider (header menus sit far higher). */
.ro-calc-h3,
.ro-calc-h4 {
  position: relative;
  z-index: 50;
}
