.elementor-kit-52{--e-global-color-primary:#E3E3E3;--e-global-color-secondary:#0E0E0E;--e-global-color-text:#E3E3E3;--e-global-color-accent:#DBAD02;--e-global-color-86b4fcd:#02010100;--e-global-typography-primary-font-family:"Kanit";--e-global-typography-primary-font-size:90px;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-text-transform:uppercase;--e-global-typography-primary-font-style:normal;--e-global-typography-primary-text-decoration:none;--e-global-typography-primary-line-height:1em;--e-global-typography-primary-letter-spacing:-0.02em;--e-global-typography-primary-word-spacing:0em;--e-global-typography-secondary-font-family:"Kanit";--e-global-typography-secondary-font-size:32px;--e-global-typography-secondary-font-weight:400;--e-global-typography-secondary-text-transform:none;--e-global-typography-secondary-font-style:normal;--e-global-typography-secondary-text-decoration:none;--e-global-typography-secondary-line-height:1.2em;--e-global-typography-secondary-letter-spacing:0px;--e-global-typography-secondary-word-spacing:0em;--e-global-typography-text-font-family:"Kanit";--e-global-typography-text-font-size:18px;--e-global-typography-text-font-weight:400;--e-global-typography-text-text-transform:none;--e-global-typography-text-font-style:normal;--e-global-typography-text-text-decoration:none;--e-global-typography-text-line-height:1.5em;--e-global-typography-text-letter-spacing:0px;--e-global-typography-text-word-spacing:0em;--e-global-typography-accent-font-family:"Kanit";--e-global-typography-accent-font-size:20px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-font-style:normal;--e-global-typography-accent-text-decoration:none;--e-global-typography-accent-line-height:1em;--e-global-typography-accent-letter-spacing:0em;--e-global-typography-accent-word-spacing:0em;background-color:var( --e-global-color-secondary );}.elementor-kit-52 e-page-transition{background-color:#FFBC7D;}.elementor-kit-52 a{color:var( --e-global-color-accent );font-family:"Tahoma", Sans-serif;font-size:71px;}.elementor-kit-52 a:hover{color:var( --e-global-color-primary );}.elementor-kit-52 h4{color:var( --e-global-color-primary );}.elementor-section.elementor-section-boxed > .elementor-container{max-width:100%;}.e-con{--container-max-width:100%;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-52{--e-global-typography-primary-font-size:80px;--e-global-typography-secondary-font-size:32px;--e-global-typography-text-font-size:18px;--e-global-typography-accent-font-size:28px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-52{--e-global-typography-primary-font-size:40px;--e-global-typography-primary-line-height:1.1em;--e-global-typography-secondary-font-size:28px;--e-global-typography-text-font-size:18px;--e-global-typography-accent-font-size:20px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* ============================================================
   MINDSET MMA — CLUB MANAGER PRO — COMPLETE CUSTOM CSS
   Paste into: Elementor > Site Settings > Custom CSS
   Version: 1.0  |  Covers all 21 CMP shortcodes
   ============================================================ */


/* ============================================================
   BRAND TOKENS
   ============================================================ */

:root {
  /* Core palette */
  --mm-bg:           #0a0a0a;
  --mm-card:         #141414;
  --mm-card-hover:   #1c1c1c;
  --mm-border:       #2a2a2a;
  --mm-accent:       #DBAD02;
  --mm-accent-hover: #f0c211;
  --mm-accent-dim:   rgba(219, 173, 2, 0.12);
  --mm-white:        #ffffff;
  --mm-grey:         #a0a0a0;
  --mm-muted:        #666666;

  /* Semantic colours */
  --mm-success:      #34d399;
  --mm-warning:      #DBAD02;
  --mm-danger:       #ef4444;
  --mm-info:         #60a5fa;

  /* Layout */
  --mm-radius:       8px;
  --mm-radius-sm:    4px;
  --mm-radius-lg:    12px;

  /* Typography */
  --mm-font: 'Inter', 'Helvetica Neue', Arial, sans-serif;

  /* Map plugin variables to brand tokens */
  --cmp-primary:       var(--mm-accent);
  --cmp-primary-hover: var(--mm-accent-hover);
  --cmp-success:       var(--mm-success);
  --cmp-warning:       var(--mm-warning);
  --cmp-danger:        var(--mm-danger);
  --cmp-text:          var(--mm-white);
  --cmp-text-light:    var(--mm-grey);
  --cmp-text-muted:    var(--mm-muted);
  --cmp-heading:       var(--mm-white);
  --cmp-bg:            var(--mm-bg);
  --cmp-white:         var(--mm-white);
  --cmp-border:        var(--mm-border);
}


/* ============================================================
   GLOBAL RESET — all CMP wrappers
   ============================================================ */

[class*="cmp-"] {
  font-family: var(--mm-font) !important;
  box-sizing: border-box !important;
}

/* Elementor shortcode widget container */
.elementor-widget-shortcode .elementor-widget-container {
  background: transparent !important;
}


/* ============================================================
   1. SHARED BUTTONS
   ============================================================ */

.cmp-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: var(--mm-font) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 0.5rem 1.25rem !important;
  border-radius: var(--mm-radius-sm) !important;
  border: none !important;
  cursor: pointer !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease !important;
  line-height: 1 !important;
}

.cmp-btn-primary {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  border: none !important;
}

.cmp-btn-primary:hover {
  background: var(--mm-accent-hover) !important;
  color: #0a0a0a !important;
}

.cmp-btn-secondary {
  background: transparent !important;
  color: var(--mm-grey) !important;
  border: 1px solid var(--mm-border) !important;
}

.cmp-btn-secondary:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-white) !important;
}

.cmp-btn-danger {
  background: var(--mm-danger) !important;
  color: var(--mm-white) !important;
  border: none !important;
}

.cmp-btn-danger:hover {
  background: #c53030 !important;
  color: var(--mm-white) !important;
}

.cmp-btn-link {
  background: transparent !important;
  color: var(--mm-accent) !important;
  border: none !important;
  padding: 0 !important;
  text-decoration: underline !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-weight: 500 !important;
}

.cmp-btn-link:hover {
  color: var(--mm-accent-hover) !important;
}

.cmp-btn-sm {
  font-size: 0.7rem !important;
  padding: 0.35rem 0.75rem !important;
}

.cmp-btn-block {
  width: 100% !important;
  display: flex !important;
}

.cmp-btn-disabled,
.cmp-btn:disabled {
  background: var(--mm-border) !important;
  color: var(--mm-muted) !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}


/* ============================================================
   2. SHARED ALERTS
   ============================================================ */

.cmp-alert {
  font-family: var(--mm-font) !important;
  font-size: 0.8rem !important;
  font-weight: 500 !important;
  padding: 0.7rem 1rem !important;
  border-radius: var(--mm-radius-sm) !important;
  margin-bottom: 0.75rem !important;
  line-height: 1.5 !important;
}

.cmp-alert-success {
  background: rgba(52, 211, 153, 0.1) !important;
  border: 1px solid rgba(52, 211, 153, 0.3) !important;
  color: var(--mm-success) !important;
}

.cmp-alert-warning {
  background: rgba(219, 173, 2, 0.1) !important;
  border: 1px solid rgba(219, 173, 2, 0.3) !important;
  color: var(--mm-accent) !important;
}

.cmp-alert-danger {
  background: rgba(239, 68, 68, 0.1) !important;
  border: 1px solid rgba(239, 68, 68, 0.3) !important;
  color: var(--mm-danger) !important;
}

.cmp-alert-info {
  background: rgba(96, 165, 250, 0.1) !important;
  border: 1px solid rgba(96, 165, 250, 0.3) !important;
  color: var(--mm-info) !important;
}


/* ============================================================
   3. SHARED LOADING / SPINNER
   ============================================================ */

.cmp-loading {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 2rem !important;
}

.cmp-spinner {
  width: 24px !important;
  height: 24px !important;
  border: 2px solid var(--mm-border) !important;
  border-top-color: var(--mm-accent) !important;
  border-radius: 50% !important;
  animation: cmp-spin 0.7s linear infinite !important;
}

@keyframes cmp-spin {
  to { transform: rotate(360deg); }
}


/* ============================================================
   4. SHARED EMPTY STATES
   ============================================================ */

.cmp-no-data,
.cmp-no-sessions,
.cmp-no-bookings,
.cmp-no-family {
  padding: 1.5rem !important;
  text-align: center !important;
  color: var(--mm-muted) !important;
  font-size: 0.875rem !important;
  border: 1px dashed var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  background: transparent !important;
}

.cmp-hidden {
  display: none !important;
}


/* ============================================================
   5. SHARED MODAL
   ============================================================ */

.cmp-modal-overlay {
  background: rgba(0, 0, 0, 0.85) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
}

.cmp-modal {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.6) !important;
  overflow: hidden !important;
}

.cmp-modal-header {
  background: var(--mm-bg) !important;
  border-bottom: 1px solid var(--mm-border) !important;
  padding: 1rem 1.25rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.cmp-modal-title {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 !important;
}

.cmp-modal-close {
  background: transparent !important;
  border: none !important;
  color: var(--mm-muted) !important;
  font-size: 1.5rem !important;
  cursor: pointer !important;
  line-height: 1 !important;
  padding: 0 !important;
  transition: color 0.2s ease !important;
}

.cmp-modal-close:hover {
  color: var(--mm-accent) !important;
}

.cmp-modal-body {
  background: var(--mm-card) !important;
  padding: 1.25rem !important;
  color: var(--mm-grey) !important;
  font-size: 0.875rem !important;
  line-height: 1.5 !important;
}

.cmp-modal-body h4,
.cmp-modal-body h3 {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  margin: 0 0 0.5rem 0 !important;
}

.cmp-modal-footer {
  background: var(--mm-bg) !important;
  border-top: 1px solid var(--mm-border) !important;
  padding: 1rem 1.25rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 0.5rem !important;
}

.cmp-modal-cancel {
  background: transparent !important;
  color: var(--mm-grey) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  padding: 0.5rem 1rem !important;
  font-family: var(--mm-font) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.cmp-modal-cancel:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-white) !important;
}


/* ============================================================
   6. SHARED FORM ELEMENTS
   ============================================================ */

.cmp-form-row {
  margin-bottom: 1rem !important;
}

.cmp-form-row label {
  display: block !important;
  color: var(--mm-grey) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 0.4rem !important;
}

.cmp-form-row input,
.cmp-form-row select,
.cmp-form-row textarea {
  width: 100% !important;
  background: var(--mm-bg) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  color: var(--mm-white) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.875rem !important;
  padding: 0.6rem 0.875rem !important;
  transition: border-color 0.2s ease !important;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.cmp-form-row input:focus,
.cmp-form-row select:focus,
.cmp-form-row textarea:focus {
  border-color: var(--mm-accent) !important;
  box-shadow: 0 0 0 2px var(--mm-accent-dim) !important;
}

.cmp-form-row input::placeholder,
.cmp-form-row textarea::placeholder {
  color: var(--mm-muted) !important;
}

.cmp-form-row select option {
  background: var(--mm-card) !important;
  color: var(--mm-white) !important;
}

.cmp-form-row--checkbox {
  display: flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
}

.cmp-form-row--checkbox input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  accent-color: var(--mm-accent) !important;
  flex-shrink: 0 !important;
}

.cmp-form-row--checkbox label {
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 0.85rem !important;
  font-weight: 400 !important;
  color: var(--mm-grey) !important;
  margin: 0 !important;
}

.cmp-form-grid {
  display: grid !important;
  gap: 0.75rem !important;
}

.cmp-form-grid--2col {
  grid-template-columns: 1fr 1fr !important;
}

.cmp-required {
  color: var(--mm-danger) !important;
  margin-left: 2px !important;
}

.cmp-optional {
  color: var(--mm-muted) !important;
  font-size: 0.7rem !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.cmp-field-error {
  color: var(--mm-danger) !important;
  font-size: 0.75rem !important;
  margin-top: 0.3rem !important;
  display: block !important;
}

.cmp-field-hint {
  color: var(--mm-muted) !important;
  font-size: 0.72rem !important;
  margin-top: 0.3rem !important;
  display: block !important;
}

/* Toggle group */
.cmp-toggle-group {
  display: flex !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  overflow: hidden !important;
}

.cmp-toggle-option {
  flex: 1 !important;
  text-align: center !important;
  padding: 0.5rem !important;
  background: var(--mm-bg) !important;
  color: var(--mm-muted) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  border-right: 1px solid var(--mm-border) !important;
}

.cmp-toggle-option:last-child {
  border-right: none !important;
}

.cmp-toggle-option.active,
.cmp-toggle-option:has(input:checked) {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
}


/* ============================================================
   7. SHARED DATE BADGE
   ============================================================ */

.cmp-booking-date {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 52px !important;
  padding: 8px 6px !important;
  border-radius: 6px !important;
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  text-align: center !important;
  line-height: 1.1 !important;
  flex-shrink: 0 !important;
}

.cmp-booking-day {
  font-size: 1.2rem !important;
  font-weight: 800 !important;
  color: #0a0a0a !important;
  line-height: 1 !important;
}

.cmp-booking-month {
  font-size: 0.55rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #0a0a0a !important;
  opacity: 0.75 !important;
}


/* ============================================================
   8. SHARED BOOKING META & DETAILS
   ============================================================ */

.cmp-booking-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 4px 10px !important;
  color: var(--mm-grey) !important;
  font-size: 0.78rem !important;
}

.cmp-booking-meta span {
  color: var(--mm-grey) !important;
}

.cmp-booking-details h4 {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  margin: 0 0 3px 0 !important;
}

.cmp-booking-actions {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  flex-shrink: 0 !important;
}


/* ============================================================
   9. [cmp_schedule] — SCHEDULE LIST & CALENDAR
   ============================================================ */

.cmp-schedule {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-schedule-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 1rem !important;
  margin-bottom: 1.5rem !important;
}

.cmp-schedule-title {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 !important;
}

.cmp-schedule-controls {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
}

.cmp-location-filter {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  color: var(--mm-grey) !important;
  border-radius: var(--mm-radius-sm) !important;
  padding: 0.45rem 0.75rem !important;
  font-family: var(--mm-font) !important;
  font-size: 0.78rem !important;
}

.cmp-location-filter:focus {
  border-color: var(--mm-accent) !important;
  outline: none !important;
}

.cmp-view-toggle {
  display: flex !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  overflow: hidden !important;
}

.cmp-view-btn {
  background: var(--mm-card) !important;
  border: none !important;
  color: var(--mm-muted) !important;
  padding: 0.45rem 0.875rem !important;
  font-family: var(--mm-font) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  border-right: 1px solid var(--mm-border) !important;
}

.cmp-view-btn:last-child {
  border-right: none !important;
}

.cmp-view-btn.active,
.cmp-view-btn[data-view].active {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
}

/* Day headers */
.cmp-schedule-day {
  margin-bottom: 1.25rem !important;
}

.cmp-day-header {
  color: var(--mm-accent) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 0.35rem 0 !important;
  margin-bottom: 0.5rem !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

/* Session cards */
.cmp-sessions-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
}

.cmp-session-card {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  padding: 0.875rem 1rem !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-left: 3px solid var(--mm-accent) !important;
  border-radius: var(--mm-radius) !important;
  transition: background 0.2s ease !important;
}

.cmp-session-card:hover {
  background: var(--mm-card-hover) !important;
}

.cmp-session-card.cmp-session-full {
  border-left-color: var(--mm-muted) !important;
  opacity: 0.7 !important;
}

.cmp-session-time {
  color: var(--mm-accent) !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  min-width: 80px !important;
  flex-shrink: 0 !important;
}

.cmp-session-info {
  flex: 1 !important;
  min-width: 0 !important;
}

.cmp-session-name {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  margin-bottom: 2px !important;
}

.cmp-session-location {
  color: var(--mm-grey) !important;
  font-size: 0.78rem !important;
}

.cmp-session-availability {
  display: flex !important;
  gap: 6px !important;
  margin-top: 3px !important;
}

.cmp-availability-spots {
  color: var(--mm-success) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
}

.cmp-availability-full {
  color: var(--mm-danger) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

.cmp-session-actions {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  flex-shrink: 0 !important;
}

.cmp-add-to-calendar {
  color: var(--mm-muted) !important;
  text-decoration: none !important;
  font-size: 0.78rem !important;
  transition: color 0.2s ease !important;
}

.cmp-add-to-calendar:hover {
  color: var(--mm-accent) !important;
}

.cmp-book-btn {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  font-family: var(--mm-font) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.4rem 0.875rem !important;
  border: none !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.cmp-book-btn:hover {
  background: var(--mm-accent-hover) !important;
  color: #0a0a0a !important;
}

.cmp-waitlist-btn {
  background: transparent !important;
  color: var(--mm-grey) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  padding: 0.38rem 0.75rem !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.cmp-waitlist-btn:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-accent) !important;
}

/* Calendar view */
.cmp-schedule-calendar {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  overflow: hidden !important;
}

.cmp-calendar-nav {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0.875rem 1rem !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

.cmp-calendar-prev,
.cmp-calendar-next {
  background: transparent !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  color: var(--mm-grey) !important;
  padding: 0.35rem 0.6rem !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  font-size: 0.85rem !important;
}

.cmp-calendar-prev:hover,
.cmp-calendar-next:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-accent) !important;
}

.cmp-calendar-current {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

.cmp-calendar-header {
  display: grid !important;
  grid-template-columns: repeat(7, 1fr) !important;
  background: var(--mm-bg) !important;
}

.cmp-calendar-header > * {
  padding: 0.5rem !important;
  text-align: center !important;
  color: var(--mm-muted) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  border-right: 1px solid var(--mm-border) !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

.cmp-calendar-body {
  display: grid !important;
  grid-template-columns: repeat(7, 1fr) !important;
}

.cmp-calendar-body > * {
  min-height: 60px !important;
  padding: 0.35rem !important;
  border-right: 1px solid var(--mm-border) !important;
  border-bottom: 1px solid var(--mm-border) !important;
  color: var(--mm-grey) !important;
  font-size: 0.75rem !important;
}


/* ============================================================
   10. [cmp_my_bookings]
   ============================================================ */

.cmp-my-bookings {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-bookings-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 1.5rem !important;
}

.cmp-bookings-header h2 {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 !important;
}

.cmp-bookings-section {
  margin-bottom: 2rem !important;
}

.cmp-bookings-section h3 {
  color: var(--mm-accent) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border-bottom: 1px solid var(--mm-border) !important;
  padding-bottom: 0.5rem !important;
  margin-bottom: 0.75rem !important;
}

.cmp-bookings-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
}

.cmp-booking-item {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  padding: 0.875rem 1rem !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-left: 3px solid var(--mm-accent) !important;
  border-radius: var(--mm-radius) !important;
}

/* Waitlist */
.cmp-waitlist-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
  margin-top: 0.5rem !important;
}

.cmp-waitlist-card {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  padding: 0.875rem 1rem !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-left: 3px solid var(--mm-muted) !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-waitlist-card.cmp-waitlist-offered {
  border-left-color: var(--mm-accent) !important;
  background: rgba(219, 173, 2, 0.05) !important;
}

.cmp-offer-badge {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  font-size: 0.65rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 2px 8px !important;
  border-radius: 20px !important;
}

.cmp-offer-expires {
  color: var(--mm-danger) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
}

.cmp-waitlist-position {
  color: var(--mm-muted) !important;
  font-size: 0.78rem !important;
}

.cmp-accept-offer-btn {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  border: none !important;
}

.cmp-accept-offer-btn:hover {
  background: var(--mm-accent-hover) !important;
}

.cmp-decline-offer-btn,
.cmp-leave-waitlist-btn {
  background: transparent !important;
  color: var(--mm-grey) !important;
  border: 1px solid var(--mm-border) !important;
}

.cmp-decline-offer-btn:hover,
.cmp-leave-waitlist-btn:hover {
  border-color: var(--mm-danger) !important;
  color: var(--mm-danger) !important;
}

/* Past bookings */
.cmp-bookings-list-compact {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.3rem !important;
}

.cmp-booking-past {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.6rem 0.875rem !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  opacity: 0.7 !important;
}

.cmp-attended-badge {
  background: rgba(52, 211, 153, 0.15) !important;
  color: var(--mm-success) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 2px 8px !important;
  border-radius: 20px !important;
  border: 1px solid rgba(52, 211, 153, 0.3) !important;
}

.cmp-booking-locked {
  color: var(--mm-muted) !important;
  font-size: 0.72rem !important;
  font-style: italic !important;
}

.cmp-cancel-booking {
  background: transparent !important;
  color: var(--mm-muted) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  padding: 0.35rem 0.75rem !important;
  cursor: pointer !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  transition: all 0.2s ease !important;
}

.cmp-cancel-booking:hover {
  border-color: var(--mm-danger) !important;
  color: var(--mm-danger) !important;
}


/* ============================================================
   11. [cmp_my_membership]
   ============================================================ */

.cmp-my-membership {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-membership-grid {
  display: grid !important;
  gap: 1rem !important;
  grid-template-columns: 1fr !important;
  margin-bottom: 1.5rem !important;
}

.cmp-membership-card {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  overflow: hidden !important;
}

.cmp-membership-header {
  background: var(--mm-bg) !important;
  padding: 1rem 1.25rem !important;
  border-bottom: 1px solid var(--mm-border) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.cmp-membership-status {
  font-size: 0.65rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 3px 10px !important;
  border-radius: 20px !important;
  background: rgba(52, 211, 153, 0.15) !important;
  color: var(--mm-success) !important;
  border: 1px solid rgba(52, 211, 153, 0.3) !important;
}

.cmp-membership-body {
  padding: 1.25rem !important;
}

.cmp-membership-stat {
  margin-bottom: 1rem !important;
}

.cmp-stat-label {
  color: var(--mm-muted) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 0.25rem !important;
  display: block !important;
}

.cmp-stat-value {
  color: var(--mm-white) !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
}

.cmp-credit-balance {
  color: var(--mm-accent) !important;
  font-size: 2.5rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  display: block !important;
}

.cmp-topup-link {
  display: inline-flex !important;
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  font-family: var(--mm-font) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.4rem 0.875rem !important;
  border-radius: var(--mm-radius-sm) !important;
  text-decoration: none !important;
  margin-top: 0.5rem !important;
  transition: background 0.2s ease !important;
}

.cmp-topup-link:hover {
  background: var(--mm-accent-hover) !important;
  color: #0a0a0a !important;
}

.cmp-membership-subscription {
  border-top: 1px solid var(--mm-border) !important;
  padding-top: 1rem !important;
  margin-top: 0.75rem !important;
}

.cmp-subscription-renewal,
.cmp-subscription-info {
  color: var(--mm-grey) !important;
  font-size: 0.82rem !important;
  margin-bottom: 0.35rem !important;
}

.cmp-notice.cmp-notice-warning {
  background: rgba(219, 173, 2, 0.08) !important;
  border: 1px solid rgba(219, 173, 2, 0.25) !important;
  color: var(--mm-accent) !important;
  padding: 0.6rem 0.875rem !important;
  border-radius: var(--mm-radius-sm) !important;
  font-size: 0.8rem !important;
  margin-top: 0.75rem !important;
}

/* Membership links */
.cmp-membership-links {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 1.5rem !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.5rem !important;
}

.cmp-membership-links li a {
  color: var(--mm-accent) !important;
  font-size: 0.8rem !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.cmp-membership-links li a:hover {
  color: var(--mm-accent-hover) !important;
  text-decoration: underline !important;
}

/* Credit history table */
.cmp-credit-history {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  overflow: hidden !important;
  margin-bottom: 1.5rem !important;
}

.cmp-credit-history h3 {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 0.875rem 1rem !important;
  border-bottom: 1px solid var(--mm-border) !important;
  margin: 0 !important;
}

.cmp-credit-table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 0.82rem !important;
}

.cmp-credit-table th {
  background: var(--mm-bg) !important;
  color: var(--mm-muted) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.6rem 1rem !important;
  text-align: left !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

.cmp-credit-table td {
  padding: 0.6rem 1rem !important;
  color: var(--mm-grey) !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

.cmp-credit-table tr:last-child td {
  border-bottom: none !important;
}

.cmp-positive {
  color: var(--mm-success) !important;
  font-weight: 700 !important;
}

.cmp-negative {
  color: var(--mm-danger) !important;
  font-weight: 700 !important;
}

/* Referral section */
.cmp-referral-section {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.25rem !important;
}

.cmp-referral-section h3 {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 0.75rem !important;
}

.cmp-referral-code {
  background: var(--mm-bg) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  color: var(--mm-accent) !important;
  font-family: monospace !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  padding: 0.75rem 1rem !important;
  display: inline-block !important;
  margin-bottom: 0.75rem !important;
}

.cmp-copy-referral {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  border: none !important;
  border-radius: var(--mm-radius-sm) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.45rem 0.875rem !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
}

.cmp-copy-referral:hover {
  background: var(--mm-accent-hover) !important;
}


/* ============================================================
   12. [cmp_my_family]
   ============================================================ */

.cmp-my-family {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-family-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 0.5rem !important;
}

.cmp-family-header h2 {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 !important;
}

.cmp-family-description {
  color: var(--mm-grey) !important;
  font-size: 0.85rem !important;
  margin-bottom: 1.25rem !important;
}

.cmp-family-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.5rem !important;
}

.cmp-family-member {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  padding: 1rem 1.25rem !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  transition: background 0.2s ease !important;
}

.cmp-family-member:hover {
  background: var(--mm-card-hover) !important;
}

.cmp-family-avatar {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0.85rem !important;
  font-weight: 800 !important;
  flex-shrink: 0 !important;
}

.cmp-family-member-info {
  flex: 1 !important;
  min-width: 0 !important;
}

.cmp-family-member-info > strong,
.cmp-family-member-info > b {
  color: var(--mm-white) !important;
  font-size: 0.9rem !important;
  display: block !important;
  margin-bottom: 3px !important;
}

.cmp-family-member-meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 4px 10px !important;
  margin-bottom: 4px !important;
}

.cmp-family-relationship {
  color: var(--mm-grey) !important;
  font-size: 0.75rem !important;
}

.cmp-family-type-badge {
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  padding: 1px 8px !important;
  border-radius: 20px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

.cmp-family-type-child {
  background: rgba(96, 165, 250, 0.15) !important;
  color: var(--mm-info) !important;
  border: 1px solid rgba(96, 165, 250, 0.3) !important;
}

.cmp-family-type-adult {
  background: rgba(219, 173, 2, 0.12) !important;
  color: var(--mm-accent) !important;
  border: 1px solid rgba(219, 173, 2, 0.3) !important;
}

.cmp-family-dob {
  color: var(--mm-muted) !important;
  font-size: 0.72rem !important;
}

.cmp-tier-badge {
  background: rgba(219, 173, 2, 0.12) !important;
  color: var(--mm-accent) !important;
  border: 1px solid rgba(219, 173, 2, 0.3) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 2px 8px !important;
  border-radius: 20px !important;
}

.cmp-credit-info,
.cmp-family-credits-shared {
  color: var(--mm-muted) !important;
  font-size: 0.72rem !important;
}

.cmp-family-bookings {
  color: var(--mm-grey) !important;
  font-size: 0.78rem !important;
  margin-right: 0.5rem !important;
}

.cmp-family-actions {
  display: flex !important;
  gap: 0.4rem !important;
  flex-shrink: 0 !important;
}

.cmp-edit-family-member,
.cmp-delete-family-member {
  background: transparent !important;
  border: 1px solid var(--mm-border) !important;
  color: var(--mm-muted) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  padding: 0.35rem 0.6rem !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.cmp-edit-family-member:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-accent) !important;
}

.cmp-delete-family-member:hover {
  border-color: var(--mm-danger) !important;
  color: var(--mm-danger) !important;
}


/* ============================================================
   13. [cmp_guest_pass]
   ============================================================ */

.cmp-guest-pass-redeem {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-guest-pass-entry {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.5rem !important;
  margin-bottom: 1rem !important;
}

.cmp-guest-pass-form {
  display: flex !important;
  gap: 0.75rem !important;
}

.cmp-guest-pass-form input {
  flex: 1 !important;
  background: var(--mm-bg) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  color: var(--mm-white) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.875rem !important;
  padding: 0.6rem 0.875rem !important;
}

.cmp-guest-pass-form input:focus {
  border-color: var(--mm-accent) !important;
  outline: none !important;
}

.cmp-guest-pass-valid {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-left: 3px solid var(--mm-success) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.25rem !important;
  margin-bottom: 1rem !important;
}

.cmp-guest-pass-info {
  color: var(--mm-grey) !important;
  font-size: 0.85rem !important;
  line-height: 1.6 !important;
}

.cmp-guest-pass-info strong {
  color: var(--mm-white) !important;
}


/* ============================================================
   14. [cmp_refer_friend]
   ============================================================ */

.cmp-refer-friend {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-refer-friend h2 {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 1.25rem !important;
}

.cmp-referral-stats {
  display: flex !important;
  gap: 0.75rem !important;
  margin-bottom: 1.5rem !important;
}

.cmp-referral-stat {
  flex: 1 !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1rem !important;
  text-align: center !important;
}

.cmp-referral-stat-number {
  color: var(--mm-accent) !important;
  font-size: 2rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  display: block !important;
}

.cmp-referral-stat-label {
  color: var(--mm-muted) !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  display: block !important;
  margin-top: 4px !important;
}

/* Leaderboard */
.cmp-leaderboard {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  overflow: hidden !important;
  margin-bottom: 1.25rem !important;
}

.cmp-leaderboard h3 {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 0.875rem 1rem !important;
  border-bottom: 1px solid var(--mm-border) !important;
  margin: 0 !important;
}

.cmp-leaderboard-item {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.6rem 1rem !important;
  border-bottom: 1px solid var(--mm-border) !important;
  font-size: 0.82rem !important;
}

.cmp-leaderboard-item:last-child {
  border-bottom: none !important;
}

.cmp-leaderboard-item.cmp-current-user {
  background: rgba(219, 173, 2, 0.06) !important;
}

.cmp-leaderboard-rank {
  color: var(--mm-muted) !important;
  min-width: 24px !important;
  font-weight: 700 !important;
}

.cmp-rank-gold .cmp-leaderboard-rank { color: #ffd700 !important; }
.cmp-rank-silver .cmp-leaderboard-rank { color: #c0c0c0 !important; }
.cmp-rank-bronze .cmp-leaderboard-rank { color: #cd7f32 !important; }

.cmp-leaderboard-name {
  flex: 1 !important;
  color: var(--mm-white) !important;
  font-weight: 600 !important;
}

.cmp-you-badge {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  font-size: 0.6rem !important;
  font-weight: 800 !important;
  padding: 1px 6px !important;
  border-radius: 20px !important;
  text-transform: uppercase !important;
  margin-left: 6px !important;
}

.cmp-leaderboard-count {
  color: var(--mm-accent) !important;
  font-weight: 700 !important;
}

/* How it works */
.cmp-how-it-works {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.25rem !important;
}

.cmp-how-it-works h3 {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 1rem !important;
}

.cmp-steps {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.75rem !important;
}

.cmp-step {
  display: flex !important;
  gap: 0.875rem !important;
  align-items: flex-start !important;
}

.cmp-step-number {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0.75rem !important;
  font-weight: 800 !important;
  flex-shrink: 0 !important;
}

.cmp-step-content {
  color: var(--mm-grey) !important;
  font-size: 0.85rem !important;
  line-height: 1.5 !important;
  padding-top: 4px !important;
}


/* ============================================================
   15. [cmp_privacy_centre]
   ============================================================ */

.cmp-privacy-centre {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-privacy-header {
  display: flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  margin-bottom: 0.5rem !important;
}

.cmp-privacy-header h2 {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 !important;
}

.cmp-privacy-intro {
  color: var(--mm-grey) !important;
  font-size: 0.85rem !important;
  line-height: 1.6 !important;
  margin-bottom: 1.5rem !important;
}

.cmp-privacy-section {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.25rem !important;
  margin-bottom: 1rem !important;
}

.cmp-privacy-section h3 {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 1rem !important;
}

/* Consent toggles */
.cmp-consent-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 1rem !important;
  padding: 0.75rem 0 !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

.cmp-consent-item:last-child {
  border-bottom: none !important;
  padding-bottom: 0 !important;
}

.cmp-consent-toggle {
  flex-shrink: 0 !important;
  position: relative !important;
  width: 40px !important;
  height: 22px !important;
}

.cmp-consent-checkbox {
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
}

.cmp-toggle-slider {
  position: absolute !important;
  inset: 0 !important;
  background: var(--mm-border) !important;
  border-radius: 22px !important;
  transition: background 0.2s ease !important;
  cursor: pointer !important;
}

.cmp-toggle-slider::before {
  content: '' !important;
  position: absolute !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 50% !important;
  background: var(--mm-white) !important;
  top: 3px !important;
  left: 3px !important;
  transition: transform 0.2s ease !important;
}

.cmp-consent-checkbox:checked + .cmp-toggle-slider {
  background: var(--mm-accent) !important;
}

.cmp-consent-checkbox:checked + .cmp-toggle-slider::before {
  transform: translateX(18px) !important;
}

.cmp-consent-info {
  flex: 1 !important;
  color: var(--mm-grey) !important;
  font-size: 0.82rem !important;
  line-height: 1.5 !important;
}

.cmp-consent-info strong {
  color: var(--mm-white) !important;
  display: block !important;
  margin-bottom: 2px !important;
}

/* Danger zone */
.cmp-privacy-danger {
  border-color: rgba(239, 68, 68, 0.3) !important;
}

.cmp-privacy-danger h3 {
  color: var(--mm-danger) !important;
}

.cmp-deletion-warning {
  color: var(--mm-grey) !important;
  font-size: 0.82rem !important;
  padding-left: 1.25rem !important;
  margin-bottom: 1rem !important;
}

.cmp-deletion-warning li {
  margin-bottom: 0.25rem !important;
}

.cmp-privacy-note {
  color: var(--mm-muted) !important;
  font-size: 0.75rem !important;
  margin-top: 0.75rem !important;
  font-style: italic !important;
}


/* ============================================================
   16. [cmp_register]
   ============================================================ */

.cmp-register {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-register__header {
  text-align: center !important;
  margin-bottom: 1.75rem !important;
}

.cmp-register__header h2 {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.5rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 0.35rem !important;
}

.cmp-register__subtitle {
  color: var(--mm-grey) !important;
  font-size: 0.875rem !important;
}

.cmp-register__fieldset {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.25rem !important;
  margin-bottom: 1rem !important;
}

.cmp-register__legend {
  color: var(--mm-accent) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 0 0.5rem !important;
}

.cmp-register__field-desc {
  color: var(--mm-grey) !important;
  font-size: 0.82rem !important;
  margin-bottom: 0.875rem !important;
  line-height: 1.5 !important;
}

/* Tier cards */
.cmp-tier-cards {
  display: grid !important;
  gap: 0.75rem !important;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
}

.cmp-tier-card {
  display: block !important;
  position: relative !important;
  cursor: pointer !important;
}

.cmp-tier-radio {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.cmp-tier-card__inner {
  background: var(--mm-bg) !important;
  border: 2px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.25rem !important;
  transition: border-color 0.2s ease, background 0.2s ease !important;
  position: relative !important;
}

.cmp-tier-card:hover .cmp-tier-card__inner {
  border-color: var(--mm-accent) !important;
}

.cmp-tier-radio:checked ~ .cmp-tier-card__inner {
  border-color: var(--mm-accent) !important;
  background: rgba(219, 173, 2, 0.06) !important;
}

.cmp-tier-card__badge {
  position: absolute !important;
  top: -1px !important;
  right: 12px !important;
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  font-size: 0.6rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 2px 10px !important;
  border-radius: 0 0 6px 6px !important;
}

.cmp-tier-card__name {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  margin-bottom: 0.5rem !important;
}

.cmp-tier-card__pricing {
  display: flex !important;
  align-items: baseline !important;
  gap: 2px !important;
  margin-bottom: 0.4rem !important;
}

.cmp-tier-card__amount {
  color: var(--mm-accent) !important;
  font-size: 1.75rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

.cmp-pricing-currency {
  color: var(--mm-accent) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
}

.cmp-tier-card__period {
  color: var(--mm-muted) !important;
  font-size: 0.75rem !important;
}

.cmp-tier-card__credits {
  color: var(--mm-grey) !important;
  font-size: 0.78rem !important;
  margin-bottom: 0.5rem !important;
}

.cmp-tier-card__desc {
  color: var(--mm-muted) !important;
  font-size: 0.78rem !important;
  line-height: 1.4 !important;
}

.cmp-tier-card__check {
  position: absolute !important;
  bottom: 10px !important;
  right: 10px !important;
  color: var(--mm-accent) !important;
  opacity: 0 !important;
  transition: opacity 0.2s ease !important;
}

.cmp-tier-radio:checked ~ .cmp-tier-card__inner .cmp-tier-card__check {
  opacity: 1 !important;
}

/* Password strength */
.cmp-password-strength {
  margin-top: 0.4rem !important;
  font-size: 0.72rem !important;
  color: var(--mm-muted) !important;
}

/* Submit area */
.cmp-register__submit {
  margin-top: 1rem !important;
}

.cmp-register__login-link {
  display: block !important;
  text-align: center !important;
  margin-top: 0.875rem !important;
  color: var(--mm-grey) !important;
  font-size: 0.82rem !important;
}

.cmp-register__login-link a {
  color: var(--mm-accent) !important;
  text-decoration: none !important;
}

.cmp-register__login-link a:hover {
  color: var(--mm-accent-hover) !important;
  text-decoration: underline !important;
}


/* ============================================================
   17. [cmp_locations]
   ============================================================ */

.cmp-locations {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-locations-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
  gap: 0.75rem !important;
}

.cmp-location-card {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-top: 3px solid var(--mm-accent) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.25rem !important;
  transition: background 0.2s ease !important;
}

.cmp-location-card:hover {
  background: var(--mm-card-hover) !important;
}

.cmp-location-card__name {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  margin-bottom: 0.35rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
}

.cmp-location-card__address {
  color: var(--mm-grey) !important;
  font-size: 0.82rem !important;
  margin-bottom: 0.5rem !important;
}

.cmp-location-card__description {
  color: var(--mm-muted) !important;
  font-size: 0.78rem !important;
  line-height: 1.5 !important;
}

.cmp-locations-list .cmp-location-card {
  border-top: none !important;
  border-left: 3px solid var(--mm-accent) !important;
}

.cmp-locations-empty {
  color: var(--mm-muted) !important;
  text-align: center !important;
  padding: 2rem !important;
  font-size: 0.875rem !important;
}


/* ============================================================
   18. [cmp_instructors]
   ============================================================ */

.cmp-instructors {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-instructors-grid {
  display: grid !important;
  grid-template-columns: repeat(var(--cmp-instructors-columns, 3), 1fr) !important;
  gap: 0.75rem !important;
}

.cmp-instructor-card {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.5rem 1.25rem !important;
  text-align: center !important;
  transition: background 0.2s ease, border-color 0.2s ease !important;
}

.cmp-instructor-card:hover {
  background: var(--mm-card-hover) !important;
  border-color: var(--mm-accent) !important;
}

.cmp-instructor-card__avatar {
  border-radius: 50% !important;
  border: 3px solid var(--mm-accent) !important;
  margin: 0 auto 0.875rem !important;
  display: block !important;
}

.cmp-instructor-card__name {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  margin-bottom: 0.5rem !important;
}

.cmp-instructor-card__bio {
  color: var(--mm-muted) !important;
  font-size: 0.8rem !important;
  line-height: 1.5 !important;
}

.cmp-instructors-list .cmp-instructor-card {
  text-align: left !important;
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  padding: 0.875rem 1rem !important;
}

.cmp-instructors-list .cmp-instructor-card__avatar {
  margin: 0 !important;
  flex-shrink: 0 !important;
}

.cmp-instructors-empty {
  color: var(--mm-muted) !important;
  text-align: center !important;
  padding: 2rem !important;
  font-size: 0.875rem !important;
}


/* ============================================================
   19. [cmp_pricing]
   ============================================================ */

.cmp-pricing {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-pricing-section {
  margin-bottom: 2rem !important;
}

.cmp-pricing-section-title {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.1rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 0.35rem !important;
}

.cmp-pricing-section-desc {
  color: var(--mm-grey) !important;
  font-size: 0.85rem !important;
  margin-bottom: 1.25rem !important;
}

.cmp-pricing-cards {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 0.75rem !important;
}

.cmp-pricing-card {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.5rem 1.25rem !important;
  position: relative !important;
  overflow: hidden !important;
  transition: border-color 0.2s ease, background 0.2s ease !important;
}

.cmp-pricing-card:hover {
  border-color: var(--mm-accent) !important;
}

.cmp-pricing-card--featured {
  border-color: var(--mm-accent) !important;
  background: rgba(219, 173, 2, 0.04) !important;
}

.cmp-pricing-card__badge {
  position: absolute !important;
  top: 0 !important;
  right: 16px !important;
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  font-size: 0.6rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 4px 12px !important;
  border-radius: 0 0 6px 6px !important;
}

.cmp-pricing-card__name {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 0.875rem !important;
}

.cmp-pricing-card__price {
  display: flex !important;
  align-items: baseline !important;
  gap: 2px !important;
  margin-bottom: 0.25rem !important;
}

.cmp-pricing-card__amount {
  color: var(--mm-accent) !important;
  font-size: 2.25rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

.cmp-pricing-card__period {
  color: var(--mm-muted) !important;
  font-size: 0.75rem !important;
  margin-left: 2px !important;
}

.cmp-pricing-card__credits {
  color: var(--mm-grey) !important;
  font-size: 0.8rem !important;
  margin-bottom: 0.75rem !important;
}

.cmp-pricing-card__description {
  color: var(--mm-muted) !important;
  font-size: 0.78rem !important;
  line-height: 1.5 !important;
  margin-bottom: 1.25rem !important;
}

.cmp-pricing-card__cta {
  display: flex !important;
  width: 100% !important;
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  font-family: var(--mm-font) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 0.6rem 1rem !important;
  border: none !important;
  border-radius: var(--mm-radius-sm) !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  justify-content: center !important;
  transition: background 0.2s ease !important;
}

.cmp-pricing-card__cta:hover {
  background: var(--mm-accent-hover) !important;
  color: #0a0a0a !important;
}

/* Pricing table layout */
.cmp-pricing-table-wrapper {
  overflow-x: auto !important;
}

.cmp-pricing-table {
  width: 100% !important;
  border-collapse: collapse !important;
}

.cmp-pricing-table th,
.cmp-pricing-table td {
  padding: 0.75rem 1rem !important;
  border: 1px solid var(--mm-border) !important;
  color: var(--mm-grey) !important;
  font-size: 0.85rem !important;
  text-align: left !important;
}

.cmp-pricing-table th {
  background: var(--mm-bg) !important;
  color: var(--mm-muted) !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}

.cmp-pricing-table__name {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
}

.cmp-pricing-table__cta a {
  color: var(--mm-accent) !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}


/* ============================================================
   20. [cmp_timetable]
   ============================================================ */

.cmp-timetable-wrapper {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-timetable-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 1rem !important;
  margin-bottom: 1.25rem !important;
}

.cmp-timetable-title {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 !important;
}

.cmp-timetable-nav {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
}

.cmp-timetable-nav button {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  color: var(--mm-grey) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  padding: 0.4rem 0.75rem !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.cmp-timetable-nav button:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-accent) !important;
}

.cmp-timetable-week-label {
  color: var(--mm-grey) !important;
  font-size: 0.82rem !important;
  font-weight: 600 !important;
  min-width: 120px !important;
  text-align: center !important;
}

.cmp-timetable-today {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  border-color: var(--mm-accent) !important;
}

.cmp-timetable-today:hover {
  background: var(--mm-accent-hover) !important;
  color: #0a0a0a !important;
}

/* Grid */
.cmp-timetable-grid {
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  overflow: auto !important;
  background: var(--mm-card) !important;
}

.cmp-timetable-corner {
  background: var(--mm-bg) !important;
  border-right: 1px solid var(--mm-border) !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

.cmp-timetable-day-header {
  background: var(--mm-bg) !important;
  color: var(--mm-grey) !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.5rem !important;
  text-align: center !important;
  border-right: 1px solid var(--mm-border) !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

.cmp-timetable-day-header.cmp-today {
  color: var(--mm-accent) !important;
}

.cmp-timetable-time-label {
  background: var(--mm-bg) !important;
  color: var(--mm-muted) !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  padding: 0.35rem 0.6rem !important;
  border-right: 1px solid var(--mm-border) !important;
  border-bottom: 1px solid var(--mm-border) !important;
  text-align: right !important;
}

.cmp-timetable-day-col {
  border-right: 1px solid var(--mm-border) !important;
}

.cmp-timetable-hour-row {
  border-bottom: 1px solid var(--mm-border) !important;
  min-height: 48px !important;
}

.cmp-timetable-session {
  background: rgba(219, 173, 2, 0.15) !important;
  border-left: 3px solid var(--mm-accent) !important;
  border-radius: var(--mm-radius-sm) !important;
  padding: 4px 6px !important;
  margin: 2px !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
  overflow: hidden !important;
}

.cmp-timetable-session:hover {
  background: rgba(219, 173, 2, 0.25) !important;
}

.cmp-timetable-session.cmp-session-full {
  opacity: 0.5 !important;
  border-left-color: var(--mm-muted) !important;
  background: rgba(255,255,255,0.04) !important;
}

.cmp-timetable-session-name {
  color: var(--mm-white) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.cmp-timetable-session-time,
.cmp-timetable-session-spots {
  color: var(--mm-grey) !important;
  font-size: 0.62rem !important;
}

/* Mobile tabs */
.cmp-timetable-mobile-tabs {
  display: flex !important;
  gap: 0.35rem !important;
  margin-bottom: 0.75rem !important;
  overflow-x: auto !important;
  padding-bottom: 4px !important;
}

.cmp-timetable-mobile-tab {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  color: var(--mm-muted) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 0.4rem 0.75rem !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: all 0.2s ease !important;
}

.cmp-timetable-mobile-tab.cmp-active {
  background: var(--mm-accent) !important;
  border-color: var(--mm-accent) !important;
  color: #0a0a0a !important;
}

.cmp-timetable-mobile-session {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.75rem !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  margin-bottom: 0.35rem !important;
}

.cmp-timetable-mobile-colour {
  width: 4px !important;
  height: 40px !important;
  border-radius: 2px !important;
  flex-shrink: 0 !important;
}

.cmp-timetable-mobile-name {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.875rem !important;
  margin-bottom: 2px !important;
}

.cmp-timetable-mobile-meta {
  color: var(--mm-grey) !important;
  font-size: 0.75rem !important;
}

.cmp-timetable-mobile-spots {
  color: var(--mm-success) !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
}

.cmp-full-label {
  color: var(--mm-danger) !important;
  font-weight: 700 !important;
}

.cmp-timetable-mobile-empty {
  color: var(--mm-muted) !important;
  text-align: center !important;
  padding: 1.5rem !important;
  font-size: 0.85rem !important;
}


/* ============================================================
   21. [cmp_upcoming] — (included for completeness; existing CSS already covers this)
   ============================================================ */

.cmp-upcoming,
.elementor-shortcode .cmp-upcoming,
.elementor-widget-shortcode .cmp-upcoming,
.elementor-widget-shortcode .elementor-widget-container {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-upcoming-title {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 1rem 0 !important;
}


/* ============================================================
   22. [cmp_classes] — CLASS TYPES
   ============================================================ */

.cmp-classes {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-class-types__grid {
  display: grid !important;
  gap: 0.75rem !important;
}

.cmp-class-types__grid--2col { grid-template-columns: repeat(2, 1fr) !important; }
.cmp-class-types__grid--3col { grid-template-columns: repeat(3, 1fr) !important; }

.cmp-class-card {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  overflow: hidden !important;
  transition: border-color 0.2s ease, background 0.2s ease !important;
  display: flex !important;
  flex-direction: column !important;
}

.cmp-class-card:hover {
  border-color: var(--mm-accent) !important;
  background: var(--mm-card-hover) !important;
}

.cmp-class-card__body {
  padding: 1.25rem !important;
  flex: 1 !important;
}

.cmp-class-card__category {
  color: var(--mm-accent) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  margin-bottom: 0.35rem !important;
}

.cmp-class-card__name {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  margin-bottom: 0.5rem !important;
}

.cmp-class-card__description {
  color: var(--mm-muted) !important;
  font-size: 0.8rem !important;
  line-height: 1.5 !important;
  margin-bottom: 0.75rem !important;
}

.cmp-class-card__meta {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 4px 12px !important;
  margin-bottom: 0.75rem !important;
}

.cmp-class-card__meta-item {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  color: var(--mm-grey) !important;
  font-size: 0.75rem !important;
}

.cmp-class-card__meta-item svg {
  color: var(--mm-accent) !important;
}

.cmp-class-card__pricing {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
}

.cmp-class-card__price {
  color: var(--mm-accent) !important;
  font-weight: 700 !important;
  font-size: 0.875rem !important;
}

.cmp-class-card__price-label {
  color: var(--mm-muted) !important;
  font-size: 0.72rem !important;
}

.cmp-class-card__price-divider {
  color: var(--mm-border) !important;
}

.cmp-class-card__footer {
  background: var(--mm-bg) !important;
  border-top: 1px solid var(--mm-border) !important;
  padding: 0.75rem 1.25rem !important;
}

.cmp-class-card__link {
  color: var(--mm-accent) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.cmp-class-card__link:hover {
  color: var(--mm-accent-hover) !important;
}


/* ============================================================
   23. [cmp_session_detail]
   ============================================================ */

.cmp-session-detail {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-session-detail__header {
  margin-bottom: 1.5rem !important;
}

.cmp-session-detail__badge-row {
  display: flex !important;
  gap: 0.5rem !important;
  margin-bottom: 0.75rem !important;
}

.cmp-session-detail__badge {
  font-size: 0.65rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 3px 10px !important;
  border-radius: 20px !important;
}

.cmp-session-detail__badge--category {
  background: rgba(219, 173, 2, 0.15) !important;
  color: var(--mm-accent) !important;
  border: 1px solid rgba(219, 173, 2, 0.3) !important;
}

.cmp-session-detail__badge--cancelled {
  background: rgba(239, 68, 68, 0.15) !important;
  color: var(--mm-danger) !important;
  border: 1px solid rgba(239, 68, 68, 0.3) !important;
}

.cmp-session-detail__badge--past {
  background: rgba(255,255,255,0.06) !important;
  color: var(--mm-muted) !important;
  border: 1px solid var(--mm-border) !important;
}

.cmp-session-detail__title {
  color: var(--mm-white) !important;
  font-size: 1.75rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  margin: 0 0 0.35rem !important;
}

.cmp-session-detail__date-hero {
  color: var(--mm-grey) !important;
  font-size: 0.95rem !important;
}

.cmp-session-detail__content {
  display: grid !important;
  grid-template-columns: 1fr 320px !important;
  gap: 1.25rem !important;
  align-items: start !important;
}

.cmp-session-detail__info-card {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.25rem !important;
  margin-bottom: 0.75rem !important;
}

.cmp-session-detail__info-card h4 {
  color: var(--mm-accent) !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  margin: 0 0 0.875rem !important;
  border-bottom: 1px solid var(--mm-border) !important;
  padding-bottom: 0.5rem !important;
}

.cmp-session-detail__instructor {
  display: flex !important;
  align-items: center !important;
  gap: 0.875rem !important;
}

.cmp-session-detail__instructor-avatar {
  border-radius: 50% !important;
  border: 2px solid var(--mm-accent) !important;
  flex-shrink: 0 !important;
}

.cmp-session-detail__instructor-name {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
}

.cmp-session-detail__instructor-role {
  color: var(--mm-muted) !important;
  font-size: 0.75rem !important;
}

.cmp-session-detail__info-rows {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.6rem !important;
}

.cmp-session-detail__info-row {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
}

.cmp-session-detail__info-icon svg {
  color: var(--mm-accent) !important;
}

.cmp-session-detail__info-text {
  color: var(--mm-white) !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
}

.cmp-session-detail__info-label {
  color: var(--mm-muted) !important;
  font-size: 0.72rem !important;
}

.cmp-session-detail__description {
  color: var(--mm-grey) !important;
  font-size: 0.875rem !important;
  line-height: 1.6 !important;
}

.cmp-session-detail__notes {
  border-left: 3px solid var(--mm-accent) !important;
  padding-left: 0.875rem !important;
  color: var(--mm-grey) !important;
  font-size: 0.85rem !important;
  font-style: italic !important;
  line-height: 1.5 !important;
}

/* Sidebar booking card */
.cmp-session-detail__sidebar {
  position: sticky !important;
  top: 1.5rem !important;
}

.cmp-session-detail__booking-card {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  overflow: hidden !important;
}

.cmp-session-detail__price-section {
  padding: 1.25rem !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

.cmp-session-detail__price-primary {
  color: var(--mm-accent) !important;
  font-size: 1.75rem !important;
  font-weight: 800 !important;
  display: block !important;
  line-height: 1 !important;
  margin-bottom: 4px !important;
}

.cmp-session-detail__price-alt {
  color: var(--mm-muted) !important;
  font-size: 0.78rem !important;
}

.cmp-session-detail__availability {
  padding: 1rem 1.25rem !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

.cmp-session-detail__spots {
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  margin-bottom: 0.5rem !important;
}

.cmp-session-detail__spots--available { color: var(--mm-success) !important; }
.cmp-session-detail__spots--low       { color: var(--mm-accent) !important; }
.cmp-session-detail__spots--full      { color: var(--mm-danger) !important; }

.cmp-session-detail__capacity-bar {
  height: 4px !important;
  background: var(--mm-border) !important;
  border-radius: 2px !important;
  margin-bottom: 0.35rem !important;
  overflow: hidden !important;
}

.cmp-session-detail__capacity-fill {
  height: 100% !important;
  border-radius: 2px !important;
  transition: width 0.4s ease !important;
}

.cmp-session-detail__capacity-fill--available { background: var(--mm-success) !important; }
.cmp-session-detail__capacity-fill--low       { background: var(--mm-accent) !important; }
.cmp-session-detail__capacity-fill--full      { background: var(--mm-danger) !important; }

.cmp-session-detail__capacity-text {
  color: var(--mm-muted) !important;
  font-size: 0.68rem !important;
}

.cmp-session-detail__cta {
  padding: 1.25rem !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.5rem !important;
}

.cmp-session-detail__cta--book {
  display: flex !important;
  width: 100% !important;
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  font-family: var(--mm-font) !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 0.75rem 1rem !important;
  border: none !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  justify-content: center !important;
  align-items: center !important;
  text-decoration: none !important;
  transition: background 0.2s ease !important;
}

.cmp-session-detail__cta--book:hover {
  background: var(--mm-accent-hover) !important;
  color: #0a0a0a !important;
}

.cmp-session-detail__cta--waitlist {
  display: flex !important;
  width: 100% !important;
  background: transparent !important;
  color: var(--mm-accent) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.7rem 1rem !important;
  border: 1px solid var(--mm-accent) !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  justify-content: center !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}

.cmp-session-detail__cta--waitlist:hover {
  background: var(--mm-accent-dim) !important;
}

.cmp-session-detail__cta--disabled {
  display: flex !important;
  width: 100% !important;
  background: var(--mm-border) !important;
  color: var(--mm-muted) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.7rem 1rem !important;
  border: none !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: not-allowed !important;
  justify-content: center !important;
}

.cmp-session-detail__login-note {
  color: var(--mm-muted) !important;
  font-size: 0.75rem !important;
  text-align: center !important;
}

.cmp-session-detail__login-note a {
  color: var(--mm-accent) !important;
  text-decoration: none !important;
}


/* ============================================================
   24. [cmp_today]
   ============================================================ */

.cmp-today {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-today-title {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 0.2rem !important;
}

.cmp-today-date {
  color: var(--mm-accent) !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 1rem !important;
  display: block !important;
}

.cmp-today-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
}

.cmp-today-item {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  padding: 0.875rem 1rem !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-left: 3px solid var(--mm-accent) !important;
  border-radius: var(--mm-radius) !important;
  transition: background 0.2s ease !important;
}

.cmp-today-item:hover {
  background: var(--mm-card-hover) !important;
}

.cmp-today-item--past {
  opacity: 0.5 !important;
  border-left-color: var(--mm-muted) !important;
}

.cmp-today-time {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  min-width: 56px !important;
  flex-shrink: 0 !important;
}

.cmp-today-time-start {
  color: var(--mm-accent) !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
}

.cmp-today-time-end {
  color: var(--mm-muted) !important;
  font-size: 0.68rem !important;
}

.cmp-today-info {
  flex: 1 !important;
  min-width: 0 !important;
}

.cmp-today-name {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  margin-bottom: 2px !important;
}

.cmp-today-meta {
  color: var(--mm-grey) !important;
  font-size: 0.75rem !important;
}

.cmp-today-spots {
  flex-shrink: 0 !important;
}

.cmp-today-spots-available { color: var(--mm-success) !important; font-size: 0.72rem !important; font-weight: 600 !important; }
.cmp-today-spots-low       { color: var(--mm-accent)  !important; font-size: 0.72rem !important; font-weight: 600 !important; }
.cmp-today-spots-full      { color: var(--mm-danger)  !important; font-size: 0.72rem !important; font-weight: 700 !important; }

.cmp-today-actions {
  display: flex !important;
  gap: 0.4rem !important;
  flex-shrink: 0 !important;
}

.cmp-today-book-btn {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  font-family: var(--mm-font) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.38rem 0.75rem !important;
  border: none !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
  text-decoration: none !important;
}

.cmp-today-book-btn:hover {
  background: var(--mm-accent-hover) !important;
  color: #0a0a0a !important;
}

.cmp-today-waitlist-btn {
  background: transparent !important;
  color: var(--mm-grey) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  padding: 0.35rem 0.6rem !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  text-decoration: none !important;
}

.cmp-today-waitlist-btn:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-accent) !important;
}

.cmp-today-login-link {
  color: var(--mm-accent) !important;
  font-size: 0.72rem !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.cmp-today-login-link:hover {
  color: var(--mm-accent-hover) !important;
  text-decoration: underline !important;
}

.cmp-today-empty {
  padding: 1.5rem !important;
  text-align: center !important;
  color: var(--mm-muted) !important;
  font-size: 0.875rem !important;
  border: 1px dashed var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
}


/* ============================================================
   25. [cmp_buy_credits]
   ============================================================ */

.cmp-buy-credits {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-buy-credits h2 {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 1.25rem !important;
}

.cmp-buy-credits-balance {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1rem 1.25rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 1.25rem !important;
}

.cmp-buy-credits-balance-label {
  color: var(--mm-grey) !important;
  font-size: 0.82rem !important;
}

.cmp-buy-credits-balance-value {
  color: var(--mm-accent) !important;
  font-size: 1.5rem !important;
  font-weight: 800 !important;
}

.cmp-credit-packs-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 0.75rem !important;
}

.cmp-credit-pack-card {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  transition: border-color 0.2s ease !important;
}

.cmp-credit-pack-card:hover {
  border-color: var(--mm-accent) !important;
}

.cmp-credit-pack-header {
  background: var(--mm-bg) !important;
  padding: 0.875rem 1rem !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

.cmp-credit-pack-name {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 !important;
}

.cmp-credit-pack-body {
  padding: 1.25rem 1rem !important;
  flex: 1 !important;
  text-align: center !important;
}

.cmp-credit-pack-amount {
  display: flex !important;
  align-items: baseline !important;
  justify-content: center !important;
  gap: 4px !important;
  margin-bottom: 0.35rem !important;
}

.cmp-credit-pack-number {
  color: var(--mm-accent) !important;
  font-size: 3rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}

.cmp-credit-pack-label {
  color: var(--mm-muted) !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
}

.cmp-credit-pack-price {
  color: var(--mm-white) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  margin-bottom: 0.5rem !important;
}

.cmp-credit-pack-description {
  color: var(--mm-muted) !important;
  font-size: 0.78rem !important;
  line-height: 1.4 !important;
}

.cmp-credit-pack-footer {
  padding: 0.875rem 1rem !important;
  border-top: 1px solid var(--mm-border) !important;
}


/* ============================================================
   26. [cmp_instructor_hub]
   ============================================================ */

.cmp-instructor-hub {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

.cmp-instructor-hub__header {
  margin-bottom: 1.5rem !important;
}

.cmp-instructor-hub__header h2 {
  color: var(--mm-white) !important;
  font-weight: 800 !important;
  font-size: 1.25rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0 0 0.2rem !important;
}

.cmp-instructor-hub__subtitle {
  color: var(--mm-muted) !important;
  font-size: 0.82rem !important;
}

.cmp-instructor-hub__sessions {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.5rem !important;
}

.cmp-instructor-hub__session-card {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  overflow: hidden !important;
}

.cmp-instructor-hub__session-header {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  padding: 1rem 1.25rem !important;
}

.cmp-instructor-hub__session-info {
  flex: 1 !important;
  min-width: 0 !important;
}

.cmp-instructor-hub__session-info h3 {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
  margin: 0 0 3px !important;
}

.cmp-instructor-hub__booking-count {
  color: var(--mm-accent) !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  margin-top: 4px !important;
}

.cmp-instructor-hub__session-actions {
  display: flex !important;
  gap: 0.4rem !important;
  flex-shrink: 0 !important;
}

.cmp-instructor-hub__toggle-roster,
.cmp-instructor-hub__toggle-plan {
  background: transparent !important;
  border: 1px solid var(--mm-border) !important;
  color: var(--mm-grey) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 0.4rem 0.75rem !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.cmp-instructor-hub__toggle-roster:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-accent) !important;
}

.cmp-instructor-hub__toggle-plan:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-accent) !important;
}

/* Plan panel */
.cmp-instructor-hub__plan-panel {
  background: var(--mm-bg) !important;
  border-top: 1px solid var(--mm-border) !important;
  padding: 1rem 1.25rem !important;
}

.cmp-instructor-hub__plan-panel h4 {
  color: var(--mm-accent) !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  margin: 0 0 0.75rem !important;
}

.cmp-instructor-hub__plan-input {
  width: 100% !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  color: var(--mm-white) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.875rem !important;
  padding: 0.75rem !important;
  min-height: 100px !important;
  resize: vertical !important;
  outline: none !important;
  transition: border-color 0.2s ease !important;
}

.cmp-instructor-hub__plan-input:focus {
  border-color: var(--mm-accent) !important;
}

.cmp-instructor-hub__plan-actions {
  margin-top: 0.75rem !important;
  display: flex !important;
  justify-content: flex-end !important;
}

.cmp-instructor-hub__save-plan {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  border: none !important;
  border-radius: var(--mm-radius-sm) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.45rem 0.875rem !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
}

.cmp-instructor-hub__save-plan:hover {
  background: var(--mm-accent-hover) !important;
}

/* Roster panel */
.cmp-instructor-hub__roster-panel {
  background: var(--mm-bg) !important;
  border-top: 1px solid var(--mm-border) !important;
  padding: 1rem 1.25rem !important;
}

.cmp-instructor-hub__roster-stats {
  display: flex !important;
  gap: 1rem !important;
  margin-bottom: 0.875rem !important;
  flex-wrap: wrap !important;
}

.cmp-instructor-hub__roster-stats span {
  color: var(--mm-grey) !important;
  font-size: 0.78rem !important;
}

.cmp-instructor-hub__roster-stats strong {
  color: var(--mm-white) !important;
}

.cmp-instructor-hub__roster-list,
.cmp-instructor-hub__guest-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.3rem !important;
  margin-bottom: 0.75rem !important;
}

.cmp-instructor-hub__roster-item {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.5rem 0.75rem !important;
  background: var(--mm-card) !important;
  border-radius: var(--mm-radius-sm) !important;
  font-size: 0.82rem !important;
  color: var(--mm-white) !important;
}

.cmp-checkin-box {
  width: 20px !important;
  height: 20px !important;
  border-radius: 4px !important;
  border: 2px solid var(--mm-border) !important;
  background: transparent !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  transition: background 0.2s ease, border-color 0.2s ease !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.cmp-checkin-box.checked {
  background: var(--mm-success) !important;
  border-color: var(--mm-success) !important;
}

.cmp-instructor-hub__show-walkin-form {
  background: transparent !important;
  border: 1px dashed var(--mm-border) !important;
  color: var(--mm-muted) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  width: 100% !important;
  padding: 0.6rem !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  transition: all 0.2s ease !important;
}

.cmp-instructor-hub__show-walkin-form:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-accent) !important;
}

.cmp-instructor-hub__walkin-form {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  padding: 1rem !important;
  margin-top: 0.5rem !important;
}

.cmp-instructor-hub__walkin-submit {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  border: none !important;
  border-radius: var(--mm-radius-sm) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.5rem 1rem !important;
  cursor: pointer !important;
  width: 100% !important;
  margin-top: 0.75rem !important;
  transition: background 0.2s ease !important;
}

.cmp-instructor-hub__walkin-submit:hover {
  background: var(--mm-accent-hover) !important;
}


/* ============================================================
   27. [cmp_member_hub]
   ============================================================ */

.cmp-member-hub {
  background: var(--mm-bg) !important;
  padding: 1.5rem !important;
  border-radius: var(--mm-radius) !important;
}

/* Tally cards */
.cmp-member-hub__tally {
  display: flex !important;
  gap: 0.75rem !important;
  margin-bottom: 1.75rem !important;
}

.cmp-member-hub__tally-card {
  flex: 1 !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-top: 3px solid var(--mm-accent) !important;
  border-radius: var(--mm-radius) !important;
  padding: 1.25rem !important;
  text-align: center !important;
}

.cmp-member-hub__tally-number {
  color: var(--mm-accent) !important;
  font-size: 2.5rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  display: block !important;
  margin-bottom: 0.35rem !important;
}

.cmp-member-hub__tally-label {
  color: var(--mm-muted) !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}

/* Sections */
.cmp-member-hub__section {
  margin-bottom: 2rem !important;
}

.cmp-member-hub__section h3 {
  color: var(--mm-accent) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  border-bottom: 1px solid var(--mm-border) !important;
  padding-bottom: 0.5rem !important;
  margin-bottom: 0.875rem !important;
}

/* Booking cards */
.cmp-member-hub__bookings,
.cmp-member-hub__available-sessions {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
}

.cmp-member-hub__booking-card,
.cmp-member-hub__available-session {
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  padding: 0.875rem 1rem !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-left: 3px solid var(--mm-accent) !important;
  border-radius: var(--mm-radius) !important;
  transition: background 0.2s ease !important;
}

.cmp-member-hub__booking-card:hover,
.cmp-member-hub__available-session:hover {
  background: var(--mm-card-hover) !important;
}

/* Session plan highlight */
.cmp-member-hub__session-plan {
  background: rgba(219, 173, 2, 0.08) !important;
  border: 1px solid rgba(219, 173, 2, 0.2) !important;
  border-left: 3px solid var(--mm-accent) !important;
  border-radius: var(--mm-radius-sm) !important;
  padding: 0.5rem 0.75rem !important;
  margin-top: 0.5rem !important;
  font-size: 0.78rem !important;
}

.cmp-member-hub__session-plan strong {
  color: var(--mm-accent) !important;
}

.cmp-member-hub__session-plan p {
  color: var(--mm-grey) !important;
  margin: 2px 0 0 !important;
}

/* Training diary */
.cmp-member-hub__diary {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
}

.cmp-member-hub__diary-entry {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  overflow: hidden !important;
}

.cmp-member-hub__diary-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0.875rem 1rem !important;
  gap: 1rem !important;
}

.cmp-member-hub__diary-header strong {
  color: var(--mm-white) !important;
  font-size: 0.875rem !important;
  display: block !important;
  margin-bottom: 2px !important;
}

.cmp-member-hub__diary-toggle {
  background: transparent !important;
  border: 1px solid var(--mm-border) !important;
  color: var(--mm-muted) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.7rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  padding: 0.35rem 0.6rem !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  flex-shrink: 0 !important;
  transition: all 0.2s ease !important;
}

.cmp-member-hub__diary-toggle:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-accent) !important;
}

.cmp-member-hub__diary-content {
  padding: 0 1rem 0.875rem !important;
}

.cmp-member-hub__diary-content p {
  color: var(--mm-grey) !important;
  font-size: 0.82rem !important;
  line-height: 1.5 !important;
  margin: 0 0 4px !important;
}

.cmp-member-hub__diary-content small {
  color: var(--mm-muted) !important;
  font-size: 0.7rem !important;
}

.cmp-member-hub__diary-form {
  background: var(--mm-bg) !important;
  border-top: 1px solid var(--mm-border) !important;
  padding: 0.875rem 1rem !important;
}

.cmp-member-hub__diary-input {
  width: 100% !important;
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  color: var(--mm-white) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.875rem !important;
  padding: 0.6rem 0.875rem !important;
  min-height: 80px !important;
  resize: vertical !important;
  outline: none !important;
  transition: border-color 0.2s ease !important;
}

.cmp-member-hub__diary-input:focus {
  border-color: var(--mm-accent) !important;
}

.cmp-member-hub__diary-save {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  border: none !important;
  border-radius: var(--mm-radius-sm) !important;
  font-family: var(--mm-font) !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.45rem 0.875rem !important;
  cursor: pointer !important;
  margin-top: 0.5rem !important;
  transition: background 0.2s ease !important;
}

.cmp-member-hub__diary-save:hover {
  background: var(--mm-accent-hover) !important;
}

.cmp-open-booking,
.cmp-join-waitlist {
  font-family: var(--mm-font) !important;
  font-size: 0.7rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.4rem 0.75rem !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  border: none !important;
  text-decoration: none !important;
}

.cmp-open-booking {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
}

.cmp-open-booking:hover {
  background: var(--mm-accent-hover) !important;
  color: #0a0a0a !important;
}

.cmp-join-waitlist {
  background: transparent !important;
  color: var(--mm-grey) !important;
  border: 1px solid var(--mm-border) !important;
}

.cmp-join-waitlist:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-accent) !important;
}


/* ============================================================
   28. BOOKING MODAL (global — already covered but unified here)
   ============================================================ */

.cmp-booking-modal-overlay,
#cmp-booking-modal {
  background: rgba(0, 0, 0, 0.85) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
}

.cmp-booking-modal {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius) !important;
  font-family: var(--mm-font) !important;
  max-width: 480px !important;
  width: 90% !important;
  overflow: hidden !important;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.6) !important;
}

/* Attendee selection */
.cmp-booking-who {
  margin-bottom: 1rem !important;
}

.cmp-booking-attendee {
  display: flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  padding: 0.6rem 0.875rem !important;
  background: var(--mm-bg) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  margin-bottom: 0.4rem !important;
  cursor: pointer !important;
  transition: border-color 0.2s ease !important;
}

.cmp-booking-attendee.selected {
  border-color: var(--mm-accent) !important;
  background: rgba(219, 173, 2, 0.06) !important;
}

.cmp-attendee-name {
  color: var(--mm-white) !important;
  font-weight: 600 !important;
  font-size: 0.85rem !important;
  flex: 1 !important;
}

.cmp-booked-badge {
  background: rgba(52, 211, 153, 0.15) !important;
  color: var(--mm-success) !important;
  font-size: 0.6rem !important;
  font-weight: 700 !important;
  padding: 1px 6px !important;
  border-radius: 20px !important;
  border: 1px solid rgba(52, 211, 153, 0.3) !important;
  text-transform: uppercase !important;
}

.cmp-member-tier-badge {
  background: rgba(219, 173, 2, 0.12) !important;
  color: var(--mm-accent) !important;
  font-size: 0.6rem !important;
  font-weight: 700 !important;
  padding: 1px 6px !important;
  border-radius: 20px !important;
  border: 1px solid rgba(219, 173, 2, 0.3) !important;
}

.cmp-member-credits {
  color: var(--mm-grey) !important;
  font-size: 0.72rem !important;
}

.cmp-shared {
  color: var(--mm-muted) !important;
  font-size: 0.65rem !important;
}

/* Payment options */
.cmp-payment-options {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
}

.cmp-payment-option {
  display: flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  padding: 0.6rem 0.875rem !important;
  background: var(--mm-bg) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  cursor: pointer !important;
  transition: border-color 0.2s ease !important;
}

.cmp-payment-option:has(input:checked) {
  border-color: var(--mm-accent) !important;
  background: rgba(219, 173, 2, 0.06) !important;
}

.cmp-payment-option input[type="radio"] {
  accent-color: var(--mm-accent) !important;
  width: 15px !important;
  height: 15px !important;
}

.cmp-payment-label {
  flex: 1 !important;
  color: var(--mm-white) !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
}

.cmp-payment-balance {
  color: var(--mm-muted) !important;
  font-size: 0.72rem !important;
}

/* Booking summary */
.cmp-booking-summary {
  background: var(--mm-bg) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: var(--mm-radius-sm) !important;
  padding: 0.6rem 0.875rem !important;
  margin-top: 0.75rem !important;
  color: var(--mm-grey) !important;
  font-size: 0.82rem !important;
}


/* ============================================================
   29. RESPONSIVE BREAKPOINTS
   ============================================================ */

@media (max-width: 1024px) {
  .cmp-session-detail__content {
    grid-template-columns: 1fr !important;
  }

  .cmp-session-detail__sidebar {
    position: static !important;
  }

  .cmp-instructors-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 768px) {
  /* Containers */
  .cmp-schedule,
  .cmp-my-bookings,
  .cmp-my-membership,
  .cmp-my-family,
  .cmp-member-hub,
  .cmp-instructor-hub,
  .cmp-upcoming,
  .cmp-today,
  .cmp-buy-credits,
  .cmp-pricing,
  .cmp-locations,
  .cmp-instructors,
  .cmp-timetable-wrapper,
  .cmp-register,
  .cmp-refer-friend,
  .cmp-privacy-centre,
  .cmp-session-detail {
    padding: 1rem !important;
    border-radius: var(--mm-radius-sm) !important;
  }

  /* Grids → single column */
  .cmp-form-grid--2col,
  .cmp-tier-cards,
  .cmp-pricing-cards,
  .cmp-credit-packs-grid,
  .cmp-referral-stats,
  .cmp-class-types__grid--2col,
  .cmp-class-types__grid--3col,
  .cmp-instructors-grid,
  .cmp-locations-grid {
    grid-template-columns: 1fr !important;
  }

  /* Session & booking cards stack */
  .cmp-session-card,
  .cmp-booking-item,
  .cmp-today-item,
  .cmp-member-hub__booking-card,
  .cmp-member-hub__available-session,
  .cmp-family-member {
    flex-wrap: wrap !important;
  }

  .cmp-session-actions,
  .cmp-booking-actions,
  .cmp-today-actions,
  .cmp-family-actions {
    width: 100% !important;
  }

  .cmp-book-btn,
  .cmp-today-book-btn,
  .cmp-open-booking,
  .cmp-waitlist-btn,
  .cmp-today-waitlist-btn,
  .cmp-join-waitlist {
    flex: 1 !important;
    justify-content: center !important;
  }

  /* Tally stacks */
  .cmp-member-hub__tally {
    flex-direction: column !important;
  }

  /* Modal full width */
  .cmp-booking-modal {
    width: 95% !important;
    max-width: none !important;
  }

  .cmp-modal-footer,
  .cmp-booking-modal-footer {
    flex-direction: column-reverse !important;
  }

  .cmp-modal-footer .cmp-btn,
  .cmp-modal-cancel,
  .cmp-confirm-booking {
    width: 100% !important;
    justify-content: center !important;
  }

  /* Schedule header stacks */
  .cmp-schedule-header,
  .cmp-timetable-header {
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  /* Instructor hub header */
  .cmp-instructor-hub__session-header {
    flex-wrap: wrap !important;
  }

  .cmp-instructor-hub__session-actions {
    width: 100% !important;
  }

  .cmp-instructor-hub__toggle-roster,
  .cmp-instructor-hub__toggle-plan {
    flex: 1 !important;
    justify-content: center !important;
  }
}

@media (max-width: 480px) {
  .cmp-credit-balance,
  .cmp-buy-credits-balance-value,
  .cmp-member-hub__tally-number {
    font-size: 2rem !important;
  }

  .cmp-session-detail__title {
    font-size: 1.25rem !important;
  }

  .cmp-guest-pass-form {
    flex-direction: column !important;
  }
}

/* ============================================================
   MINDSET MMA — PATCH 1: Calendar, Modal boxes, Modal redesign
   ============================================================ */

/* ----- CALENDAR: force dark on all cells ----- */
.cmp-schedule-calendar,
.cmp-schedule-calendar .cmp-calendar-grid,
.cmp-schedule-calendar .cmp-calendar-grid * {
  background-color: var(--mm-bg) !important;
  color: var(--mm-grey) !important;
}

/* Nav bar */
.cmp-schedule-calendar .cmp-calendar-nav {
  background: var(--mm-bg) !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

/* Day-of-week header row */
.cmp-schedule-calendar .cmp-calendar-header,
.cmp-schedule-calendar .cmp-calendar-header > *,
.cmp-schedule-calendar th {
  background: #111111 !important;
  color: var(--mm-muted) !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  border-color: var(--mm-border) !important;
}

/* Date cells */
.cmp-schedule-calendar .cmp-calendar-body td,
.cmp-schedule-calendar .cmp-calendar-body > *,
.cmp-schedule-calendar td {
  background: var(--mm-card) !important;
  border-color: var(--mm-border) !important;
  color: var(--mm-grey) !important;
}

/* Today highlight */
.cmp-schedule-calendar td.cmp-today,
.cmp-schedule-calendar .cmp-today {
  background: rgba(219, 173, 2, 0.08) !important;
  color: var(--mm-accent) !important;
}

/* Out-of-month cells */
.cmp-schedule-calendar td.cmp-other-month,
.cmp-schedule-calendar .cmp-other-month {
  background: var(--mm-bg) !important;
  color: var(--mm-muted) !important;
}

/* Session pills inside calendar */
.cmp-schedule-calendar .cmp-calendar-session,
.cmp-schedule-calendar [class*="cmp-calendar-event"],
.cmp-schedule-calendar [class*="cmp-session"] {
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  border-radius: 3px !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  padding: 2px 5px !important;
  margin: 1px 2px !important;
  cursor: pointer !important;
  border: none !important;
}

/* Nav buttons */
.cmp-schedule-calendar .cmp-calendar-prev,
.cmp-schedule-calendar .cmp-calendar-next {
  background: var(--mm-card) !important;
  border: 1px solid var(--mm-border) !important;
  color: var(--mm-grey) !important;
  border-radius: 4px !important;
  padding: 0.35rem 0.75rem !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}

.cmp-schedule-calendar .cmp-calendar-prev:hover,
.cmp-schedule-calendar .cmp-calendar-next:hover {
  border-color: var(--mm-accent) !important;
  color: var(--mm-accent) !important;
}

.cmp-schedule-calendar .cmp-calendar-current {
  color: var(--mm-white) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}


/* ----- BOOKING MODAL: attendee + payment boxes ----- */

/* The modal body itself */
.cmp-booking-modal-body,
#cmp-booking-content,
.cmp-booking-modal-content {
  background: var(--mm-card) !important;
  color: var(--mm-grey) !important;
}

/* Attendee selection rows */
.cmp-booking-attendee,
.cmp-booking-who .cmp-booking-attendee,
#cmp-booking-form .cmp-booking-attendee,
#cmp-booking-content .cmp-booking-attendee {
  background: var(--mm-bg) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: 6px !important;
  color: var(--mm-white) !important;
}

.cmp-booking-attendee:has(input:checked),
.cmp-booking-attendee.selected {
  background: rgba(219, 173, 2, 0.08) !important;
  border-color: var(--mm-accent) !important;
}

/* Payment option rows */
.cmp-payment-option,
.cmp-payment-options .cmp-payment-option,
#cmp-booking-form .cmp-payment-option,
#cmp-booking-content .cmp-payment-option {
  background: var(--mm-bg) !important;
  border: 1px solid var(--mm-border) !important;
  border-radius: 6px !important;
  color: var(--mm-white) !important;
}

.cmp-payment-option:has(input:checked) {
  background: rgba(219, 173, 2, 0.08) !important;
  border-color: var(--mm-accent) !important;
}

/* Section labels ("Payment" heading etc) */
#cmp-booking-content h3,
#cmp-booking-content h4,
.cmp-booking-modal-content h3,
.cmp-booking-modal-content h4,
.cmp-payment-info h4,
.cmp-booking-who > label,
.cmp-booking-payment > label {
  color: var(--mm-accent) !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  margin-bottom: 0.5rem !important;
}

/* Session info block */
.cmp-booking-session-info {
  border-bottom: 1px solid var(--mm-border) !important;
  padding-bottom: 1rem !important;
  margin-bottom: 1rem !important;
}

.cmp-booking-session-info h4 {
  color: var(--mm-white) !important;
  font-size: 1.1rem !important;
  font-weight: 700 !important;
  margin: 0 0 0.25rem !important;
}

.cmp-booking-datetime,
.cmp-booking-location,
.cmp-booking-spots {
  color: var(--mm-grey) !important;
  font-size: 0.82rem !important;
}

.cmp-booking-spots {
  color: var(--mm-success) !important;
  font-weight: 600 !important;
  font-size: 0.78rem !important;
  margin-top: 0.35rem !important;
  display: block !important;
}

.cmp-booking-spots.cmp-full {
  color: var(--mm-danger) !important;
}

/* Confirm button — gold, full width */
#cmp-confirm-booking,
.cmp-confirm-booking {
  width: 100% !important;
  background: var(--mm-accent) !important;
  color: #0a0a0a !important;
  font-family: var(--mm-font) !important;
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 0.75rem 1rem !important;
  border: none !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  margin-top: 1rem !important;
  transition: background 0.2s ease !important;
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}

#cmp-confirm-booking:hover,
.cmp-confirm-booking:hover {
  background: var(--mm-accent-hover) !important;
}

/* ----- MODAL: upgraded header with gold accent bar ----- */

.cmp-booking-modal {
  border-top: 3px solid var(--mm-accent) !important;
}

.cmp-booking-modal-header,
.cmp-modal-header {
  background: #0f0f0f !important;
  padding: 1.1rem 1.25rem !important;
  border-bottom: 1px solid var(--mm-border) !important;
}

.cmp-booking-modal-header h3,
.cmp-modal-title {
  color: var(--mm-white) !important;
  font-size: 0.9rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
}

/* Close button — styled as a small pill */
.cmp-booking-modal-close,
.cmp-modal-close {
  background: rgba(239, 68, 68, 0.12) !important;
  border: 1px solid rgba(239, 68, 68, 0.3) !important;
  border-radius: 4px !important;
  color: var(--mm-danger) !important;
  font-size: 1rem !important;
  width: 28px !important;
  height: 28px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  padding: 0 !important;
}

.cmp-booking-modal-close:hover,
.cmp-modal-close:hover {
  background: rgba(239, 68, 68, 0.25) !important;
  border-color: var(--mm-danger) !important;
}

/* ============================================================
   PATCH 3: Registration checkbox link size + label fix
   ============================================================ */

/* Fix oversized links inside checkbox labels */
.cmp-form-row--checkbox label a,
.cmp-register .cmp-form-row--checkbox label a,
.cmp-register__fieldset .cmp-form-row--checkbox a {
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  color: var(--mm-accent) !important;
  text-decoration: underline !important;
  line-height: inherit !important;
}

.cmp-form-row--checkbox label a:hover {
  color: var(--mm-accent-hover) !important;
}

/* Fix the label itself inheriting theme heading styles */
.cmp-form-row--checkbox label,
.cmp-register .cmp-form-row--checkbox label {
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  color: var(--mm-grey) !important;
  line-height: 1.5 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.6rem !important;
}

/* Same fix for the "Log in" link at the bottom */
.cmp-register__login-link a,
.cmp-register .cmp-register__login-link a {
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  color: var(--mm-accent) !important;
  line-height: inherit !important;
}

/* Catch-all: any anchor inside a CMP label */
[class*="cmp-"] label a {
  font-size: inherit !important;
  line-height: inherit !important;
  color: var(--mm-accent) !important;
  text-decoration: underline !important;
}

/* ============================================================
   MINDSET MMA — WOOCOMMERCE BLOCK CHECKOUT CSS
   Paste into: Elementor > Site Settings > Custom CSS
   Targets: WC Block Checkout + Stripe payment element wrapper
   ============================================================ */


/* ============================================================
   1. PAGE & LAYOUT
   ============================================================ */

.wc-block-checkout,
.wp-block-woocommerce-checkout {
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  background: transparent !important;
  color: #a0a0a0 !important;
}

/* Two-column sidebar layout */
.wc-block-components-sidebar-layout.wc-block-checkout {
  gap: 1.5rem !important;
}

.wc-block-components-main.wc-block-checkout__main {
  background: transparent !important;
}

.wc-block-components-sidebar.wc-block-checkout__sidebar {
  background: transparent !important;
}


/* ============================================================
   2. CHECKOUT STEPS
   ============================================================ */

.wc-block-components-checkout-step {
  background: #141414 !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 8px !important;
  padding: 1.5rem !important;
  margin-bottom: 1rem !important;
}

/* Step heading */
.wc-block-components-checkout-step__heading-container {
  margin-bottom: 1.25rem !important;
  padding-bottom: 0.75rem !important;
  border-bottom: 1px solid #2a2a2a !important;
}

.wc-block-components-title.wc-block-components-checkout-step__title {
  color: #ffffff !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  margin: 0 !important;
}

/* Step number circle */
.wc-block-components-checkout-step__heading::before {
  background: #DBAD02 !important;
  color: #0a0a0a !important;
  font-weight: 800 !important;
  border: none !important;
}


/* ============================================================
   3. TEXT INPUTS (contact, billing address)
   ============================================================ */

.wc-block-components-text-input {
  position: relative !important;
  margin-bottom: 0.75rem !important;
}

.wc-block-components-text-input input,
.wc-block-components-address-form input[type="text"],
.wc-block-components-address-form input[type="email"],
.wc-block-components-address-form input[type="tel"] {
  background: #0a0a0a !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 4px !important;
  color: #ffffff !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.875rem !important;
  padding: 1.4rem 0.875rem 0.4rem !important;
  width: 100% !important;
  outline: none !important;
  transition: border-color 0.2s ease !important;
  box-shadow: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-address-form input:focus {
  border-color: #DBAD02 !important;
  box-shadow: 0 0 0 2px rgba(219, 173, 2, 0.12) !important;
  outline: none !important;
}

.wc-block-components-text-input input::placeholder {
  color: transparent !important;
}

/* Floating labels */
.wc-block-components-text-input label,
.wc-block-components-address-form label {
  position: absolute !important;
  top: 50% !important;
  left: 0.875rem !important;
  transform: translateY(-50%) !important;
  color: #666666 !important;
  font-size: 0.875rem !important;
  font-weight: 400 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  pointer-events: none !important;
  transition: all 0.15s ease !important;
  background: transparent !important;
}

.wc-block-components-text-input.is-active label,
.wc-block-components-text-input input:focus ~ label,
.wc-block-components-text-input input:not(:placeholder-shown) ~ label {
  top: 0.5rem !important;
  transform: none !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #DBAD02 !important;
}


/* ============================================================
   4. SELECT DROPDOWNS (country)
   ============================================================ */

.wc-blocks-components-select__container {
  position: relative !important;
  margin-bottom: 0.75rem !important;
}

.wc-blocks-components-select__label {
  position: absolute !important;
  top: 0.5rem !important;
  left: 0.875rem !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #DBAD02 !important;
  pointer-events: none !important;
  z-index: 1 !important;
  background: transparent !important;
}

.wc-blocks-components-select__select {
  background: #0a0a0a !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 4px !important;
  color: #ffffff !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.875rem !important;
  padding: 1.4rem 2rem 0.4rem 0.875rem !important;
  width: 100% !important;
  outline: none !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  cursor: pointer !important;
  transition: border-color 0.2s ease !important;
}

.wc-blocks-components-select__select:focus {
  border-color: #DBAD02 !important;
  box-shadow: 0 0 0 2px rgba(219, 173, 2, 0.12) !important;
}

.wc-blocks-components-select__select option {
  background: #141414 !important;
  color: #ffffff !important;
}

.wc-blocks-components-select__expand {
  position: absolute !important;
  right: 0.75rem !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  pointer-events: none !important;
  color: #666666 !important;
  fill: #666666 !important;
}

/* Address toggle link */
.wc-block-components-address-form__address_2-toggle {
  color: #DBAD02 !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  display: inline-block !important;
  margin-bottom: 0.75rem !important;
  transition: color 0.2s ease !important;
}

.wc-block-components-address-form__address_2-toggle:hover {
  color: #f0c211 !important;
}


/* ============================================================
   5. ADDRESS CARD (saved address display)
   ============================================================ */

.wc-block-components-address-card {
  background: #0a0a0a !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 4px !important;
  padding: 0.875rem 1rem !important;
  margin-bottom: 0.75rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.wc-block-components-address-card address {
  color: #a0a0a0 !important;
  font-size: 0.85rem !important;
  font-style: normal !important;
}

.wc-block-components-address-card__edit {
  color: #DBAD02 !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  cursor: pointer !important;
  transition: color 0.2s ease !important;
}

.wc-block-components-address-card__edit:hover {
  color: #f0c211 !important;
}


/* ============================================================
   6. PAYMENT OPTIONS — radio cards
   ============================================================ */

.wc-block-components-radio-control {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
}

.wc-block-components-radio-control-accordion-option {
  background: #0a0a0a !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 6px !important;
  overflow: hidden !important;
  transition: border-color 0.2s ease !important;
}

.wc-block-components-radio-control-accordion-option:hover {
  border-color: #DBAD02 !important;
}

/* Selected/checked payment method */
.wc-block-components-radio-control-accordion-option.wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option:has(input:checked) {
  border-color: #DBAD02 !important;
  background: rgba(219, 173, 2, 0.05) !important;
}

.wc-block-components-radio-control__option {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.875rem 1rem !important;
  cursor: pointer !important;
  background: transparent !important;
}

.wc-block-components-radio-control__input {
  accent-color: #DBAD02 !important;
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0 !important;
  cursor: pointer !important;
  background: transparent !important;
}

.wc-block-components-radio-control__label {
  color: #ffffff !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
}

/* Payment method logo images */
.wc-block-components-radio-control__label img {
  height: 20px !important;
  width: auto !important;
  vertical-align: middle !important;
  margin-left: 0.5rem !important;
  opacity: 0.85 !important;
}

/* Stripe/Klarna accordion content area */
.wc-block-components-radio-control-accordion-content {
  background: #0a0a0a !important;
  border-top: 1px solid #2a2a2a !important;
  padding: 1rem !important;
}

/* Save card checkbox inside Stripe */
.wc-block-components-payment-methods__save-card-info {
  margin-top: 0.75rem !important;
}


/* ============================================================
   7. CHECKBOXES (save card, order notes, terms)
   ============================================================ */

.wc-block-components-checkbox {
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.6rem !important;
  margin-bottom: 0.5rem !important;
}

.wc-block-components-checkbox__input {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  background: #0a0a0a !important;
  border: 2px solid #2a2a2a !important;
  border-radius: 3px !important;
  cursor: pointer !important;
  position: relative !important;
  transition: border-color 0.2s ease, background 0.2s ease !important;
  flex-shrink: 0 !important;
  margin-top: 1px !important;
}

.wc-block-components-checkbox__input:checked {
  background: #DBAD02 !important;
  border-color: #DBAD02 !important;
}

/* Hide the SVG checkmark — we'll use ::after instead */
.wc-block-components-checkbox__mark {
  display: none !important;
}

.wc-block-components-checkbox__input:checked::after {
  content: '' !important;
  position: absolute !important;
  left: 4px !important;
  top: 1px !important;
  width: 5px !important;
  height: 9px !important;
  border: 2px solid #0a0a0a !important;
  border-top: none !important;
  border-left: none !important;
  transform: rotate(45deg) !important;
}

.wc-block-components-checkbox__label {
  color: #a0a0a0 !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.82rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  background: transparent !important;
}

.wc-block-components-checkbox__label a {
  color: #DBAD02 !important;
  text-decoration: underline !important;
  font-size: inherit !important;
}

.wc-block-components-checkbox__label a:hover {
  color: #f0c211 !important;
}


/* ============================================================
   8. ORDER NOTES SECTION
   ============================================================ */

.wc-block-checkout__order-notes {
  background: #141414 !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 8px !important;
  padding: 1.25rem 1.5rem !important;
  margin-bottom: 1rem !important;
}

.wc-block-checkout__add-note textarea {
  background: #0a0a0a !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 4px !important;
  color: #ffffff !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.875rem !important;
  padding: 0.75rem 0.875rem !important;
  width: 100% !important;
  min-height: 80px !important;
  resize: vertical !important;
  outline: none !important;
  margin-top: 0.75rem !important;
  transition: border-color 0.2s ease !important;
}

.wc-block-checkout__add-note textarea:focus {
  border-color: #DBAD02 !important;
  box-shadow: 0 0 0 2px rgba(219, 173, 2, 0.12) !important;
}


/* ============================================================
   9. TERMS BAR
   ============================================================ */

.wc-block-checkout__terms {
  background: rgba(219, 173, 2, 0.06) !important;
  border: 1px solid rgba(219, 173, 2, 0.2) !important;
  border-radius: 4px !important;
  padding: 0.75rem 1rem !important;
  margin-bottom: 1rem !important;
}

.wc-block-checkout__terms .wc-block-components-checkbox__label {
  color: #666666 !important;
  font-size: 0.75rem !important;
}

.wc-block-checkout__terms a {
  color: #DBAD02 !important;
  font-size: inherit !important;
}


/* ============================================================
   10. ACTIONS ROW — Return to cart + Place Order
   ============================================================ */

.wc-block-checkout__actions_row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  margin-top: 0.5rem !important;
}

/* Return to cart link */
.wc-block-components-checkout-return-to-cart-button {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  color: #666666 !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

.wc-block-components-checkout-return-to-cart-button:hover {
  color: #a0a0a0 !important;
}

.wc-block-components-checkout-return-to-cart-button svg {
  fill: currentColor !important;
}

/* Place Order button */
.wc-block-components-checkout-place-order-button,
.wc-block-components-button.wc-block-components-checkout-place-order-button {
  background: #DBAD02 !important;
  color: #0a0a0a !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.82rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.12em !important;
  padding: 0.875rem 2rem !important;
  border: none !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
  box-shadow: none !important;
  min-width: 160px !important;
}

.wc-block-components-checkout-place-order-button:hover {
  background: #f0c211 !important;
  color: #0a0a0a !important;
}

.wc-block-components-checkout-place-order-button:disabled {
  background: #2a2a2a !important;
  color: #666666 !important;
  cursor: not-allowed !important;
}


/* ============================================================
   11. ORDER SUMMARY SIDEBAR
   ============================================================ */

.wp-block-woocommerce-checkout-order-summary-block {
  background: #141414 !important;
  border: 1px solid #2a2a2a !important;
  border-top: 3px solid #DBAD02 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
}

/* Collapsible title (mobile) */
.wc-block-components-checkout-order-summary__title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 1rem 1.25rem !important;
  cursor: pointer !important;
  border-bottom: 1px solid #2a2a2a !important;
  background: #0f0f0f !important;
}

.wc-block-components-checkout-order-summary__title-text {
  color: #ffffff !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  margin: 0 !important;
}

.wc-block-components-checkout-order-summary__title-price {
  color: #DBAD02 !important;
  font-weight: 700 !important;
  font-size: 0.95rem !important;
}

.wc-block-components-checkout-order-summary__title-icon svg {
  fill: #666666 !important;
}

.wc-block-components-checkout-order-summary__content {
  padding: 0 !important;
}

/* Desktop sidebar heading */
.wc-block-components-checkout-step__heading .wc-block-components-title {
  color: #ffffff !important;
}


/* ============================================================
   12. ORDER SUMMARY ITEMS
   ============================================================ */

.wc-block-components-totals-wrapper {
  border-bottom: 1px solid #2a2a2a !important;
  padding: 0 !important;
}

.wc-block-components-totals-wrapper:last-child {
  border-bottom: none !important;
}

.wc-block-components-order-summary {
  padding: 0 !important;
}

.wc-block-components-order-summary__content {
  padding: 0 !important;
}

.wc-block-components-order-summary-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 0.875rem !important;
  padding: 1rem 1.25rem !important;
  background: transparent !important;
}

.wc-block-components-order-summary-item__image {
  position: relative !important;
  flex-shrink: 0 !important;
}

.wc-block-components-order-summary-item__image img {
  border-radius: 4px !important;
  border: 1px solid #2a2a2a !important;
  width: 48px !important;
  height: 48px !important;
  object-fit: cover !important;
}

.wc-block-components-order-summary-item__quantity {
  position: absolute !important;
  top: -6px !important;
  right: -6px !important;
  background: #DBAD02 !important;
  color: #0a0a0a !important;
  font-size: 0.6rem !important;
  font-weight: 800 !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.wc-block-components-order-summary-item__description {
  flex: 1 !important;
  min-width: 0 !important;
}

.wc-block-components-product-name {
  color: #ffffff !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  margin: 0 0 0.25rem !important;
}

.wc-block-components-product-metadata__description p {
  color: #666666 !important;
  font-size: 0.75rem !important;
  margin: 0 !important;
}

.wc-block-components-order-summary-item__total-price {
  flex-shrink: 0 !important;
}

.wc-block-components-order-summary-item__total-price .price,
.wc-block-components-product-price {
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 0.875rem !important;
}

.wc-block-formatted-money-amount {
  color: inherit !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
}


/* ============================================================
   13. COUPON PANEL
   ============================================================ */

.wc-block-components-totals-coupon.wc-block-components-panel {
  background: transparent !important;
  border: none !important;
}

.wc-block-components-panel__button {
  display: flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  padding: 0.875rem 1.25rem !important;
  color: #DBAD02 !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  background: transparent !important;
  border: none !important;
  transition: color 0.2s ease !important;
}

.wc-block-components-panel__button:hover {
  color: #f0c211 !important;
}

.wc-block-components-panel__button-icon {
  fill: currentColor !important;
  transition: transform 0.2s ease !important;
}

.wc-block-components-panel__button[aria-expanded="true"] .wc-block-components-panel__button-icon {
  transform: rotate(180deg) !important;
}

/* Coupon input (when expanded) */
.wc-block-components-totals-coupon__form {
  padding: 0 1.25rem 1rem !important;
  display: flex !important;
  gap: 0.5rem !important;
}

.wc-block-components-totals-coupon__input input {
  background: #0a0a0a !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 4px !important;
  color: #ffffff !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.875rem !important;
  padding: 0.6rem 0.875rem !important;
  outline: none !important;
}

.wc-block-components-totals-coupon__input input:focus {
  border-color: #DBAD02 !important;
}

.wc-block-components-totals-coupon__button {
  background: #DBAD02 !important;
  color: #0a0a0a !important;
  border: none !important;
  border-radius: 4px !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.6rem 0.875rem !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: background 0.2s ease !important;
}

.wc-block-components-totals-coupon__button:hover {
  background: #f0c211 !important;
}


/* ============================================================
   14. TOTALS (subtotal, total)
   ============================================================ */

.wc-block-components-totals-item {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 0.75rem 1.25rem !important;
  background: transparent !important;
}

.wc-block-components-totals-item__label {
  color: #a0a0a0 !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.82rem !important;
}

.wc-block-components-totals-item__value {
  color: #ffffff !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
}

/* Grand total row */
.wc-block-components-totals-footer-item {
  background: #0f0f0f !important;
  border-top: 1px solid #2a2a2a !important;
  padding: 1rem 1.25rem !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item-tax-value {
  color: #DBAD02 !important;
  font-size: 1.1rem !important;
  font-weight: 800 !important;
}


/* ============================================================
   15. NOTICES / ALERTS
   ============================================================ */

.wc-block-components-notices .wc-block-components-notice,
.wc-block-components-notice-snackbar {
  background: rgba(96, 165, 250, 0.1) !important;
  border: 1px solid rgba(96, 165, 250, 0.3) !important;
  border-radius: 4px !important;
  color: #60a5fa !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.82rem !important;
  padding: 0.7rem 1rem !important;
  margin-bottom: 0.75rem !important;
}

.wc-block-components-notice--error,
.wc-block-components-validation-error {
  background: rgba(239, 68, 68, 0.1) !important;
  border-color: rgba(239, 68, 68, 0.3) !important;
  color: #ef4444 !important;
}

.wc-block-components-notice--success {
  background: rgba(52, 211, 153, 0.1) !important;
  border-color: rgba(52, 211, 153, 0.3) !important;
  color: #34d399 !important;
}

/* Inline validation errors */
.wc-block-components-validation-error p {
  color: #ef4444 !important;
  font-size: 0.72rem !important;
  margin: 0.25rem 0 0 !important;
}

/* Input invalid state */
.wc-block-components-text-input input[aria-invalid="true"] {
  border-color: #ef4444 !important;
}


/* ============================================================
   16. SPINNER / LOADING
   ============================================================ */

.wc-block-components-spinner {
  border-color: #2a2a2a !important;
  border-top-color: #DBAD02 !important;
}

.wc-block-components-button .wc-block-components-spinner {
  border-top-color: #0a0a0a !important;
}


/* ============================================================
   17. RESPONSIVE
   ============================================================ */

@media (max-width: 768px) {
  .wc-block-components-checkout-step {
    padding: 1rem !important;
    border-radius: 6px !important;
  }

  .wc-block-checkout__actions_row {
    flex-direction: column-reverse !important;
    gap: 0.75rem !important;
  }

  .wc-block-components-checkout-place-order-button {
    width: 100% !important;
    justify-content: center !important;
  }

  .wc-block-components-checkout-return-to-cart-button {
    width: 100% !important;
    justify-content: center !important;
  }

  .wc-block-components-sidebar-layout {
    gap: 1rem !important;
  }
}

/* ============================================================
   PATCH: Restore WC checkout two-column layout
   ============================================================ */

.wc-block-components-sidebar-layout.wc-block-checkout {
  display: grid !important;
  grid-template-columns: 1fr 380px !important;
  gap: 1.5rem !important;
  align-items: start !important;
}

.wc-block-components-main.wc-block-checkout__main {
  min-width: 0 !important;
}

.wc-block-components-sidebar.wc-block-checkout__sidebar {
  position: sticky !important;
  top: 1.5rem !important;
  min-width: 0 !important;
}

@media (max-width: 960px) {
  .wc-block-components-sidebar-layout.wc-block-checkout {
    grid-template-columns: 1fr !important;
  }

  .wc-block-components-sidebar.wc-block-checkout__sidebar {
    position: static !important;
  }
}

/* ============================================================
   MINDSET MMA — CHECKOUT FIXES + ORDER CONFIRMATION CSS
   ============================================================ */


/* ============================================================
   FIX 1: Payment radio options — prevent overlap
   ============================================================ */

.wc-block-components-radio-control-accordion-option {
  display: flex !important;
  flex-direction: column !important;
  margin-bottom: 0.4rem !important;
}

.wc-block-components-radio-control__option {
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.875rem 1rem !important;
  width: 100% !important;
  cursor: pointer !important;
  position: relative !important;
  z-index: 1 !important;
}

.wc-block-components-radio-control__option-layout {
  flex: 1 !important;
  min-width: 0 !important;
}

.wc-block-components-radio-control__label-group {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
}

.wc-block-components-radio-control__label {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 0.5rem !important;
  color: #ffffff !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
}

/* Accordion content sits below the label, not on top of it */
.wc-block-components-radio-control-accordion-content {
  display: block !important;
  position: relative !important;
  z-index: 0 !important;
  background: #0a0a0a !important;
  border-top: 1px solid #2a2a2a !important;
  padding: 1rem !important;
  width: 100% !important;
}


/* ============================================================
   FIX 2: Country/Region label overlap once selected
   ============================================================ */

/* WC moves the label to float above when a value is selected —
   force the label to always sit in the small-text position */
.wc-block-components-country-input .wc-blocks-components-select__label,
.wc-block-components-address-form__country .wc-blocks-components-select__label {
  position: absolute !important;
  top: 0.45rem !important;
  left: 0.875rem !important;
  font-size: 0.62rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #DBAD02 !important;
  pointer-events: none !important;
  z-index: 2 !important;
  line-height: 1 !important;
  background: transparent !important;
  /* Never let it grow or shift */
  transform: none !important;
  transition: none !important;
}

/* Ensure the select itself has enough top padding to not sit under the label */
.wc-block-components-country-input .wc-blocks-components-select__select,
.wc-block-components-address-form__country .wc-blocks-components-select__select {
  padding-top: 1.4rem !important;
  padding-bottom: 0.4rem !important;
}

/* Same fix for state/county field which has the same pattern */
.wc-block-components-text-input label {
  transition: top 0.15s ease, font-size 0.15s ease, color 0.15s ease !important;
}

.wc-block-components-text-input.is-active label {
  top: 0.45rem !important;
  font-size: 0.62rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: #DBAD02 !important;
  transform: none !important;
}


/* ============================================================
   ORDER CONFIRMATION — woocommerce-order / thankyou page
   ============================================================ */

.woocommerce-order {
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  max-width: 760px !important;
  margin: 0 auto !important;
}

/* ---- Thank you notice ---- */
.woocommerce-notice--success.woocommerce-thankyou-order-received {
  background: rgba(52, 211, 153, 0.08) !important;
  border: 1px solid rgba(52, 211, 153, 0.25) !important;
  border-left: 3px solid #34d399 !important;
  border-radius: 8px !important;
  color: #34d399 !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  padding: 1rem 1.25rem !important;
  margin-bottom: 1.5rem !important;
}

/* ---- Order overview strip ---- */
.woocommerce-order-overview.order_details {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 1.5rem !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
  gap: 0.5rem !important;
}

.woocommerce-order-overview li {
  background: #141414 !important;
  border: 1px solid #2a2a2a !important;
  border-top: 3px solid #DBAD02 !important;
  border-radius: 8px !important;
  padding: 0.875rem 1rem !important;
  color: #666666 !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.3rem !important;
}

.woocommerce-order-overview li strong {
  color: #ffffff !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  display: block !important;
}

/* Total value in gold */
.woocommerce-order-overview__total strong,
.woocommerce-order-overview__total .woocommerce-Price-amount {
  color: #DBAD02 !important;
}

/* ---- Order details section ---- */
.woocommerce-order-details {
  background: #141414 !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  margin-bottom: 1rem !important;
}

.woocommerce-order-details__title,
.woocommerce-column__title {
  color: #ffffff !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 0.875rem 1.25rem !important;
  margin: 0 !important;
  border-bottom: 1px solid #2a2a2a !important;
  background: #0f0f0f !important;
}

/* Order details table */
.woocommerce-table.order_details {
  width: 100% !important;
  border-collapse: collapse !important;
  background: transparent !important;
}

.woocommerce-table.order_details thead tr {
  background: #0a0a0a !important;
}

.woocommerce-table.order_details thead th {
  color: #666666 !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.6rem 1.25rem !important;
  border-bottom: 1px solid #2a2a2a !important;
  background: #0a0a0a !important;
  text-align: left !important;
}

.woocommerce-table.order_details thead th.product-total {
  text-align: right !important;
}

.woocommerce-table.order_details tbody td {
  padding: 1rem 1.25rem !important;
  border-bottom: 1px solid #2a2a2a !important;
  background: #141414 !important;
  color: #a0a0a0 !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.875rem !important;
  vertical-align: top !important;
}

/* Product name link */
.woocommerce-table.order_details tbody .product-name a {
  color: #ffffff !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  font-size: 0.9rem !important;
  transition: color 0.2s ease !important;
}

.woocommerce-table.order_details tbody .product-name a:hover {
  color: #DBAD02 !important;
}

/* Quantity */
.woocommerce-table.order_details .product-quantity {
  color: #666666 !important;
  font-weight: 400 !important;
}

/* CMP membership info line */
.cmp-order-membership-info {
  color: #DBAD02 !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0.25rem 0 0 !important;
}

/* Product total cell */
.woocommerce-table.order_details tbody .product-total {
  text-align: right !important;
  color: #ffffff !important;
  font-weight: 700 !important;
}

/* Tfoot rows */
.woocommerce-table.order_details tfoot tr th,
.woocommerce-table.order_details tfoot tr td {
  padding: 0.6rem 1.25rem !important;
  border-bottom: 1px solid #2a2a2a !important;
  background: #0f0f0f !important;
  color: #a0a0a0 !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.82rem !important;
}

.woocommerce-table.order_details tfoot tr th {
  color: #666666 !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  text-align: left !important;
}

.woocommerce-table.order_details tfoot tr td {
  text-align: right !important;
  color: #ffffff !important;
  font-weight: 600 !important;
}

/* Total row — gold */
.woocommerce-table.order_details tfoot tr:last-of-type th,
.woocommerce-table.order_details tfoot tr:has(td .woocommerce-Price-amount) td {
  color: #DBAD02 !important;
}

.woocommerce-table.order_details tfoot tr td .woocommerce-Price-amount {
  color: inherit !important;
}

/* ---- Customer / billing address section ---- */
.woocommerce-customer-details {
  background: #141414 !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  margin-bottom: 1rem !important;
}

.woocommerce-customer-details address {
  padding: 1.25rem !important;
  color: #a0a0a0 !important;
  font-style: normal !important;
  font-size: 0.875rem !important;
  line-height: 1.7 !important;
}

.woocommerce-customer-details--email {
  color: #DBAD02 !important;
  font-size: 0.82rem !important;
  margin: 0.25rem 0 0 !important;
}

/* ---- Generic WC price amounts ---- */
.woocommerce-order .woocommerce-Price-amount.amount {
  color: inherit !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
}

/* ---- Responsive ---- */
@media (max-width: 600px) {
  .woocommerce-order-overview.order_details {
    grid-template-columns: 1fr 1fr !important;
  }
}

/* ============================================================
   PATCH: Order confirmation — boost specificity for classic WC template
   ============================================================ */

.woocommerce .woocommerce-order {
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  color: #a0a0a0 !important;
}

/* Thank you banner */
.woocommerce .woocommerce-notice--success.woocommerce-thankyou-order-received {
  background: rgba(52, 211, 153, 0.08) !important;
  border: 1px solid rgba(52, 211, 153, 0.25) !important;
  border-left: 3px solid #34d399 !important;
  border-radius: 8px !important;
  color: #34d399 !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  padding: 1rem 1.25rem !important;
  margin-bottom: 1.5rem !important;
  list-style: none !important;
}

/* Order overview stat strip */
.woocommerce .woocommerce-order-overview.order_details {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 1.5rem !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
  gap: 0.5rem !important;
  background: transparent !important;
  border: none !important;
}

.woocommerce .woocommerce-order-overview li {
  background: #141414 !important;
  border: 1px solid #2a2a2a !important;
  border-top: 3px solid #DBAD02 !important;
  border-radius: 8px !important;
  padding: 0.875rem 1rem !important;
  color: #666666 !important;
  font-size: 0.68rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.3rem !important;
  float: none !important;
  width: auto !important;
  margin: 0 !important;
}

.woocommerce .woocommerce-order-overview li strong {
  color: #ffffff !important;
  font-size: 0.875rem !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  display: block !important;
}

.woocommerce .woocommerce-order-overview__total strong,
.woocommerce .woocommerce-order-overview__total .woocommerce-Price-amount {
  color: #DBAD02 !important;
}

/* Order details section */
.woocommerce .woocommerce-order-details {
  background: #141414 !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  margin-bottom: 1rem !important;
}

.woocommerce .woocommerce-order-details__title,
.woocommerce .woocommerce-column__title {
  color: #ffffff !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.72rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.1em !important;
  padding: 0.875rem 1.25rem !important;
  margin: 0 !important;
  border-bottom: 1px solid #2a2a2a !important;
  background: #0f0f0f !important;
}

/* Table */
.woocommerce .woocommerce-table.order_details,
.woocommerce table.shop_table.order_details {
  width: 100% !important;
  border-collapse: collapse !important;
  background: transparent !important;
  border: none !important;
  margin: 0 !important;
}

.woocommerce .woocommerce-table.order_details thead th {
  background: #0a0a0a !important;
  color: #666666 !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.65rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  padding: 0.6rem 1.25rem !important;
  border-bottom: 1px solid #2a2a2a !important;
  border-top: none !important;
}

.woocommerce .woocommerce-table.order_details tbody td {
  padding: 1rem 1.25rem !important;
  border-bottom: 1px solid #2a2a2a !important;
  background: #141414 !important;
  color: #a0a0a0 !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.875rem !important;
  vertical-align: top !important;
  border-top: none !important;
}

.woocommerce .woocommerce-table.order_details tbody .product-name a {
  color: #ffffff !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}

.woocommerce .woocommerce-table.order_details tbody .product-name a:hover {
  color: #DBAD02 !important;
}

.woocommerce .woocommerce-table.order_details tbody .product-total {
  color: #ffffff !important;
  font-weight: 700 !important;
  text-align: right !important;
}

.woocommerce .woocommerce-table.order_details tfoot th,
.woocommerce .woocommerce-table.order_details tfoot td {
  background: #0f0f0f !important;
  border-top: 1px solid #2a2a2a !important;
  color: #a0a0a0 !important;
  font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif !important;
  font-size: 0.82rem !important;
  padding: 0.6rem 1.25rem !important;
}

.woocommerce .woocommerce-table.order_details tfoot th {
  color: #666666 !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  text-align: left !important;
}

.woocommerce .woocommerce-table.order_details tfoot td {
  text-align: right !important;
  color: #ffffff !important;
  font-weight: 600 !important;
}

/* CMP credits line */
.woocommerce .cmp-order-membership-info {
  color: #DBAD02 !important;
  font-size: 0.72rem !important;
  font-weight: 600 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  margin: 0.25rem 0 0 !important;
}

/* Billing address */
.woocommerce .woocommerce-customer-details {
  background: #141414 !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  margin-bottom: 1rem !important;
}

.woocommerce .woocommerce-customer-details address {
  padding: 1.25rem !important;
  color: #a0a0a0 !important;
  font-style: normal !important;
  font-size: 0.875rem !important;
  line-height: 1.7 !important;
  background: transparent !important;
}

.woocommerce .woocommerce-customer-details--email {
  color: #DBAD02 !important;
  font-size: 0.82rem !important;
  margin: 0.25rem 0 0 !important;
}/* End custom CSS */