
.gym-wallet-wrap{max-width:1000px;margin:30px auto;font-family:Arial,sans-serif;color:#172033}
.gym-wallet-wrap *{box-sizing:border-box}
.gym-wallet-card,.gym-wallet-stat{background:#fff;border:1px solid #dfe5ec;border-radius:14px;padding:22px;box-shadow:0 5px 20px rgba(20,35,55,.06);margin-bottom:18px}
.gym-wallet-wrap label{display:block;font-weight:700;margin:14px 0}
.gym-wallet-wrap input,.gym-wallet-wrap textarea,.gym-wallet-wrap select{display:block;width:100%;padding:11px;margin-top:6px;border:1px solid #c8d0da;border-radius:8px}
.gym-wallet-wrap button{background:#1769e0;color:#fff;border:0;border-radius:9px;padding:11px 16px;font-weight:700;cursor:pointer}
.gym-wallet-secondary{background:#596579!important}
.gym-wallet-notice,.gym-wallet-test{padding:13px 15px;border-radius:10px;background:#eef6ff;border:1px solid #b9d8ff;margin:15px 0}
.gym-wallet-memberbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}
.gym-wallet-stats,.gym-wallet-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.gym-wallet-stat span{display:block;color:#667085}
.gym-wallet-stat strong{font-size:1.5rem;display:block;margin-top:6px}
.gym-wallet-actions{display:flex;flex-wrap:wrap;gap:10px}
.gym-wallet-price{font-size:1.35rem;font-weight:800;margin:12px 0}
.gym-wallet-table{overflow:auto}
.gym-wallet-table table{width:100%;border-collapse:collapse}
.gym-wallet-table th,.gym-wallet-table td{text-align:left;padding:10px;border-bottom:1px solid #e6eaf0}
.gym-wallet-link{margin-top:18px}
@media(max-width:600px){.gym-wallet-memberbar{align-items:flex-start;flex-direction:column}.gym-wallet-wrap{margin:15px}}


/* Gym Wallet 3.3.15: unified sticky brown header with mobile dropdown */
.gym-wallet-site-nav {
    position: sticky;
    top: 0;
    z-index: 99999;
    width: 100%;
    margin: 0 0 20px;
    padding: 12px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    background: #6f4e37;
    border: 0;
    box-shadow: 0 4px 18px rgba(0, 0, 0, .18);
    box-sizing: border-box;
}

.gym-wallet-site-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.gym-wallet-site-brand {
    color: #ffffff !important;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none !important;
    white-space: nowrap;
}

.gym-wallet-site-links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}

.gym-wallet-site-links a {
    display: inline-block;
    padding: 9px 12px;
    border-radius: 8px;
    color: #ffffff !important;
    font-weight: 700;
    text-decoration: none !important;
}

.gym-wallet-site-links a:hover,
.gym-wallet-site-links a:focus,
.gym-wallet-site-brand:hover,
.gym-wallet-site-brand:focus {
    background: rgba(255, 255, 255, .14);
    color: #ffffff !important;
}

.gym-wallet-menu-toggle {
    display: none;
}

/* Hide the theme's broken mobile menu button.
   Gym Wallet provides its own dropdown instead. */
@media (max-width: 768px) {
    .menu-toggle,
    .navbar-toggler,
    .mobile-menu-toggle,
    .wp-block-navigation__responsive-container-open,
    button[aria-label*="menu" i]:not(.gym-wallet-menu-toggle),
    button[aria-label*="navigation" i] {
        display: none !important;
    }

    .gym-wallet-site-nav {
        display: block;
        padding: 10px 12px;
    }

    .gym-wallet-site-top {
        width: 100%;
    }

    .gym-wallet-site-brand {
        font-size: 16px;
        white-space: normal;
    }

    .gym-wallet-menu-toggle {
        display: inline-block;
        flex: 0 0 auto;
        padding: 8px 12px;
        border: 1px solid rgba(255, 255, 255, .55);
        border-radius: 8px;
        background: rgba(255, 255, 255, .12);
        color: #ffffff;
        font: inherit;
        font-weight: 700;
        cursor: pointer;
    }

    .gym-wallet-site-links {
        display: none;
        width: 100%;
        padding-top: 10px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 6px;
    }

    .gym-wallet-site-links.is-open {
        display: grid;
    }

    .gym-wallet-site-links a {
        text-align: center;
        background: rgba(255, 255, 255, .08);
    }
}


/* 3.3.16 mobile home header */
@media (max-width:768px){
.home .menu-toggle,
.home .navbar-toggler,
.home .mobile-menu-toggle,
.home .wp-block-navigation__responsive-container-open,
.home button[aria-label*="menu" i]:not(.gym-wallet-menu-toggle),
.home button[aria-label*="navigation" i){
display:none!important;
}
.home .gym-wallet-site-nav{
position:sticky!important;
top:0;
display:block!important;
z-index:99999;
}
}


/* Gym Wallet 3.3.17: mobile Home-page fallback header only */
.gym-wallet-mobile-home-fallback {
    display: none;
}

@media (max-width: 768px) {
    .home .gym-wallet-mobile-home-fallback {
        display: block;
        position: sticky;
        top: 0;
        z-index: 99999;
    }

    .home .gym-wallet-mobile-home-fallback .gym-wallet-site-nav {
        display: block !important;
        position: sticky !important;
        top: 0;
        margin: 0 0 20px;
    }
}


/* Annual membership status — 3.4.0 */
.gym-wallet-membership-stat small{display:block;margin-top:8px;line-height:1.5;font-size:.82rem;opacity:.85}
.gym-wallet-membership-stat em{display:block;margin-top:8px;font-style:normal;font-weight:800;font-size:.86rem}
.gym-wallet-membership-active{border-left:6px solid #238636}
.gym-wallet-membership-soon{border-left:6px solid #d99a00}
.gym-wallet-membership-expired{border-left:6px solid #c62828}
.gym-wallet-membership-none{border-left:6px solid #777}
.gym-wallet-membership-warning{margin:16px 0}


/* Compact training-pass selector — 3.4.3 */
.gym-wallet-pass-picker{min-height:0}
.gym-wallet-pass-picker h4{margin-top:0}
.gym-wallet-pass-picker label{margin:10px 0 14px}
.gym-wallet-pass-picker select{margin-top:6px}
.gym-wallet-pass-picker button{width:100%}

/* Training-pass date readability — 3.4.4 */
.gym-wallet-membership-stat small + em{display:block}


/* Member portal polish — 3.4.5 */
.gym-wallet-days-remaining{display:block;margin-top:12px;padding-top:10px;border-top:1px solid #e6eaf0}
.gym-wallet-days-remaining span{display:block;font-size:.82rem;font-weight:700;color:#667085}
.gym-wallet-days-remaining strong{display:block;margin-top:4px;font-size:1rem}
.gym-wallet-purchase-history{margin-top:18px}

/* Compact balance top-up — 3.4.6 */
.gym-wallet-balance-stat .gym-wallet-inline-topup {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: end;
    margin-top: 14px;
}
.gym-wallet-inline-topup label {
    display: grid;
    gap: 5px;
    min-width: 0;
}
.gym-wallet-inline-topup label > span {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .02em;
}
.gym-wallet-inline-topup select,
.gym-wallet-inline-topup input {
    width: 100%;
    min-width: 0;
    margin: 0;
}
.gym-wallet-inline-topup button {
    margin: 0;
    white-space: nowrap;
}
.gym-wallet-inline-topup .gym-wallet-other-amount {
    grid-column: 1 / -1;
}
.gym-wallet-inline-topup .gym-wallet-other-amount[hidden] {
    display: none;
}

/* PT module 3.5.3 */
.gym-wallet-trainer-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:16px}.gym-wallet-trainer-summary>div{padding:16px;border:1px solid rgba(0,0,0,.1);border-radius:12px}.gym-wallet-trainer-summary strong,.gym-wallet-trainer-summary span{display:block}.gym-wallet-trainer-summary span{margin-top:8px;font-size:1.05rem}.gym-wallet-availability-grid{display:grid;gap:10px;margin:16px 0}.gym-wallet-availability-row{display:grid;grid-template-columns:minmax(130px,1fr) repeat(2,minmax(125px,.8fr));gap:12px;align-items:center;padding:12px;border:1px solid rgba(0,0,0,.1);border-radius:10px}.gym-wallet-availability-row input[type=time]{width:100%}.gym-wallet-trainer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.gym-wallet-trainer-card img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;margin-bottom:14px}.gym-wallet-trainer-card details summary{display:inline-block;cursor:pointer;list-style:none}.gym-wallet-trainer-card details summary::-webkit-details-marker{display:none}.gym-wallet-trainer-availability{margin-top:12px;padding-top:8px;border-top:1px solid rgba(0,0,0,.1)}@media(max-width:640px){.gym-wallet-availability-row{grid-template-columns:1fr}.gym-wallet-day{margin-bottom:4px}}

/* PT hourly availability — 3.5.4 */
.gym-wallet-name-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.gym-wallet-availability-day{margin:0;padding:14px;border:1px solid rgba(0,0,0,.1);border-radius:12px}
.gym-wallet-availability-day legend{padding:0 7px;font-weight:800}
.gym-wallet-hour-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.gym-wallet-hour-slots label{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid rgba(0,0,0,.08);border-radius:8px;cursor:pointer}
.gym-wallet-hour-slots input{margin:0}
@media(max-width:760px){.gym-wallet-name-grid{grid-template-columns:1fr}.gym-wallet-hour-slots{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.gym-wallet-hour-slots label{justify-content:center;gap:3px;padding:6px 3px;font-size:.75rem;white-space:nowrap}.gym-wallet-hour-slots input{width:13px;height:13px;flex:0 0 auto}}

/* PT compact availability — 3.5.5: five slots per row, fifteen slots per day */

/* PT compact availability — 3.5.6: force exactly five slots per row */
.gym-wallet-hour-slots{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.gym-wallet-hour-slots label span{white-space:nowrap}


/* PT compact availability — 3.5.7: three physical rows of five in Trainer Portal */
.gym-wallet-hour-slot-rows{display:flex;flex-direction:column;gap:8px;width:100%}
.gym-wallet-hour-slot-row{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:8px;width:100%}
.gym-wallet-hour-slot-row label{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;padding:8px 4px;border:1px solid rgba(0,0,0,.1);border-radius:8px;cursor:pointer;box-sizing:border-box}
.gym-wallet-hour-slot-row label span{white-space:nowrap;font-size:.82rem}
.gym-wallet-hour-slot-row input{margin:0;flex:0 0 auto}
@media(max-width:760px){.gym-wallet-hour-slot-row{gap:4px}.gym-wallet-hour-slot-row label{padding:7px 2px}.gym-wallet-hour-slot-row label span{font-size:.7rem}}
