/*
============================================
MEMBERS ONE - DESIGN SYSTEM
============================================
CSS Custom Properties for theme-neutral styling.
WordPress themes can override these variables.
============================================
*/

:root {
  /* Primary colors - inherits from theme */
  --moi-primary: #000000;
  --moi-primary-hover: #333333;
  --moi-primary-rgb: 0, 0, 0;

  /* Background colors */
  --moi-bg: #ffffff;
  --moi-bg-secondary: #f7f7f7;
  --moi-bg-tertiary: #f0f0f0;

  /* Text colors */
  --moi-text: #222222;
  --moi-text-muted: #666666;
  --moi-text-light: #999999;

  /* Border colors */
  --moi-border: #e0e0e0;
  --moi-border-light: #eeeeee;

  /* Semantic colors */
  --moi-success: #28a745;
  --moi-warning: #f59e0b;
  --moi-error: #dc3545;
  --moi-discount: #28a745;

  /* Spacing scale */
  --moi-space-xs: 4px;
  --moi-space-sm: 8px;
  --moi-space-md: 16px;
  --moi-space-lg: 24px;
  --moi-space-xl: 32px;
  --moi-space-2xl: 48px;

  /* Border radius */
  --moi-radius-sm: 4px;
  --moi-radius-md: 8px;
  --moi-radius-lg: 12px;

  /* Shadows */
  --moi-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.06);
  --moi-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08);
  --moi-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.1);

  /* Transitions */
  --moi-transition-fast: 150ms ease;
  --moi-transition-base: 250ms ease;
}

/* ============================================
   CLUB SELECTION GRID
============================================ */

.moi-club-grid {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: var(--moi-space-lg) !important;
  max-width: 1200px;
  margin: 0 auto;
}

.moi-club-grid .moi-club-card {
  width: min(380px, calc((100% - 48px) / 3)) !important;
  max-width: 100%;
  flex-shrink: 1;
}

@media (max-width: 600px) {
  .moi-club-grid .moi-club-card {
    width: 100% !important;
  }
}

/* Club Card Animation */
@keyframes moiFadeInUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ============================================
   CLUB CARD - NEW DESIGN
============================================ */

.moi-club-card {
  background: var(--moi-bg);
  border: 1px solid var(--moi-border-light);
  border-radius: var(--moi-radius-lg);
  overflow: hidden;
  transition: all var(--moi-transition-base);
  cursor: pointer;
  position: relative;
  display: flex;
  flex-direction: column;
  animation: moiFadeInUp 0.4s ease backwards;
}

.moi-club-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--moi-radius-lg);
  border: 2px solid var(--moi-primary);
  opacity: 0;
  transition: opacity 300ms ease;
  pointer-events: none;
}

.moi-club-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--moi-shadow-lg);
  border-color: transparent;
}

.moi-club-card:hover::after {
  opacity: 1;
}

.moi-club-card.is-selected {
  border-color: transparent;
}

.moi-club-card.is-selected::after {
  opacity: 1;
}

/* Club Card Image */
.moi-club-card__image {
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, var(--moi-bg-secondary) 0%, var(--moi-bg-tertiary) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: relative;
}

.moi-club-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.moi-club-card__placeholder {
  color: var(--moi-text-light);
  font-size: 12px;
}

/* Club Card Badge */
.moi-club-card__badge {
  position: absolute;
  top: var(--moi-space-md);
  left: var(--moi-space-md);
  background: #1a1a1a;
  color: #ffffff;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 4px 10px;
  border-radius: 100px;
}

/* Club Card Content */
.moi-club-card__content {
  padding: var(--moi-space-lg);
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 300px;
}

.moi-widget-container .moi-club-card__title {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 var(--moi-space-sm) 0;
  color: var(--moi-text);
  line-height: 1.3;
}

/* Club Card Meta */
.moi-club-card__meta {
  display: flex;
  gap: var(--moi-space-md);
  margin-bottom: var(--moi-space-md);
  padding-bottom: var(--moi-space-md);
  border-bottom: 1px solid var(--moi-border-light);
}

.moi-club-card__meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--moi-text-muted);
}

.moi-club-card__meta-item svg {
  width: 14px;
  height: 14px;
  opacity: 0.7;
  fill: none !important;
  stroke: currentColor !important;
}

/* Hide redundant HR in club cards - meta already has border-bottom */
.moi-club-card .moi-hr {
  display: none !important;
}

/* Club Card Description */
.moi-club-card__description {
  font-size: 14px;
  color: var(--moi-text-muted);
  margin: 0 0 var(--moi-space-lg) 0;
  padding-bottom: 20px;
  line-height: 1.6;
  overflow: hidden;
  flex: 1;
  position: relative;
}

.moi-club-card__description::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60px;
  background: linear-gradient(to bottom, transparent, white);
  pointer-events: none;
}

.moi-club-card__description p {
  margin: 0;
}

/* Club Card Footer */
.moi-club-card__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-top: auto;
}

.moi-club-card__footer .moi-btn {
  padding: 12px 32px;
  font-size: 14px;
  font-weight: 600;
  border-radius: 100px;
  letter-spacing: 0.02em;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: all 0.2s ease;
  min-width: 110px;
  min-height: 44px;
  position: relative;
}

.moi-club-card__footer .moi-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.moi-club-card__price {
  font-size: 13px;
  color: var(--moi-text-muted);
}

.moi-club-card__price strong {
  font-size: 18px;
  font-weight: 600;
  color: var(--moi-text);
}

/* ============================================
   BUTTONS - NEW DESIGN
============================================ */

.moi-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 12px 32px;
  background: var(--moi-primary);
  color: var(--moi-bg);
  border: 1px solid var(--moi-primary);
  border-radius: 100px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all var(--moi-transition-fast);
  position: relative;
  text-decoration: none;
}

.moi-btn:hover {
  background: var(--moi-primary-hover);
  border-color: var(--moi-primary-hover);
  color: var(--moi-bg);
}

.moi-btn svg {
  width: 16px;
  height: 16px;
}

.moi-btn--primary {
  background: var(--moi-primary);
  color: var(--moi-bg);
}

.moi-btn--secondary,
.moi-btn--outline {
  background: transparent;
  color: var(--moi-text);
  border: 1px solid var(--moi-border);
}

.moi-btn--secondary:hover,
.moi-btn--outline:hover {
  border-color: var(--moi-primary);
  color: var(--moi-primary);
  background: var(--moi-bg-secondary);
}

.moi-btn--danger {
  background: var(--moi-error);
  border-color: var(--moi-error);
  color: white;
}

.moi-btn--danger:hover {
  background: #c82333;
  border-color: #c82333;
}

.moi-btn--sm {
  padding: 10px 24px;
  font-size: 13px;
}

.moi-btn--lg {
  padding: 14px 28px;
  font-size: 15px;
}

.moi-btn--block {
  width: 100%;
}

.moi-btn:disabled,
.moi-btn[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

.moi-btn:disabled:hover,
.moi-btn[disabled]:hover {
  transform: none;
  background: var(--moi-primary);
}

.moi-btn__spinner {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.moi-btn__spinner .spinner {
  display: flex;
  align-items: center;
  justify-content: center;
}

.moi-btn__spinner .spinner-icon {
  width: 22px;
  height: 22px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* ============================================
   PRODUCTS GRID
============================================ */

.moi-products-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: var(--moi-space-md) !important;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.moi-products-grid--single {
  display: grid !important;
  grid-template-columns: 1fr !important;
}

/* ============================================
   SINGLE PRODUCT - EXPANDED LAYOUT
   When only one product exists, display a
   spacious horizontal card layout
============================================ */

.moi-products-grid--single .moi-product-item {
  flex-direction: row;
  padding: 0;
  min-height: auto;
  overflow: hidden;
}

/* Keep white background for single product when selected */
.moi-products-grid--single .moi-product-item.is-selected {
  background: var(--moi-bg) !important;
}

.moi-products-grid--single .moi-product-item__image {
  width: 200px;
  height: auto;
  min-height: 220px;
  border-radius: 0;
  background: var(--moi-bg-secondary);
  flex-shrink: 0;
}

.moi-products-grid--single .moi-product-item__image img {
  object-fit: contain;
  padding: var(--moi-space-lg);
}

.moi-products-grid--single .moi-product-item__content {
  padding: var(--moi-space-xl);
  justify-content: center;
}

/* Single product badge */
.moi-product-item__badge {
  display: none;
}

.moi-products-grid--single .moi-product-item__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 500;
  color: var(--moi-success);
  background: rgba(40, 167, 69, 0.1);
  padding: 4px 10px;
  border-radius: var(--moi-radius-sm);
  margin-bottom: var(--moi-space-sm);
  width: fit-content;
}

.moi-products-grid--single .moi-product-item__badge svg {
  width: 12px;
  height: 12px;
}

.moi-widget-container .moi-products-grid--single .moi-product-item__title {
  font-size: 25px;
  font-weight: 500;
  margin-bottom: var(--moi-space-xs);
  -webkit-line-clamp: unset;
}

/* Single product variant/subtitle */
.moi-product-item__variant {
  display: none;
}

.moi-products-grid--single .moi-product-item__variant {
  display: block;
  font-size: 14px;
  color: var(--moi-text-muted);
  margin-bottom: var(--moi-space-md);
}

.moi-products-grid--single .moi-product-item__price {
  margin-bottom: var(--moi-space-xs);
}

.moi-products-grid--single .moi-product-item__price-original {
  font-size: 16px;
}

.moi-products-grid--single .moi-product-item__price-current {
  font-size: 24px;
}

/* Single product savings text */
.moi-product-item__savings {
  display: none;
}

.moi-products-grid--single .moi-product-item__savings {
  display: block;
  font-size: 13px;
  color: var(--moi-success);
  margin-bottom: var(--moi-space-lg);
}

.moi-products-grid--single .moi-product-item__constraints {
  margin-bottom: var(--moi-space-md);
}

/* Single product actions - horizontal layout */
.moi-products-grid--single .moi-product-item__actions {
  display: flex;
  align-items: center;
  gap: var(--moi-space-md);
  padding-top: var(--moi-space-md);
  border-top: 1px solid var(--moi-border-light);
  margin-top: auto;
}

.moi-products-grid--single .moi-product-item__qty-label {
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--moi-text-muted);
}

.moi-products-grid--single .moi-quantity-control {
  border-radius: var(--moi-radius-sm);
}

.moi-products-grid--single .moi-quantity-control__btn {
  width: 40px;
  height: 40px;
}

.moi-products-grid--single .moi-quantity-control__btn svg {
  width: 16px;
  height: 16px;
}

.moi-products-grid--single .moi-quantity-control__value {
  width: 48px;
  font-size: 16px;
  font-weight: 600;
  background: white;
  padding: 10px 0;
}

.moi-products-grid--single .moi-product-item__buttons {
  display: contents;
}

.moi-products-grid--single .moi-btn--add {
  padding: 12px 32px;
  font-size: 14px;
  height: 44px;
}

/* Single product line total */
.moi-product-item__line-total {
  display: none;
}

.moi-products-grid--single .moi-product-item__line-total {
  display: block;
  margin-left: auto;
  text-align: right;
}

.moi-product-item__line-total-label {
  font-size: 12px;
  color: var(--moi-text-muted);
  margin-bottom: 2px;
}

.moi-product-item__line-total-value {
  font-size: 18px;
  font-weight: 600;
  color: var(--moi-text);
}

/* Single product responsive */
@media (max-width: 768px) {
  .moi-products-grid--single .moi-product-item {
    flex-direction: column;
  }

  .moi-products-grid--single .moi-product-item__image {
    width: 100%;
    min-height: 180px;
    padding: var(--moi-space-xl);
  }

  .moi-products-grid--single .moi-product-item__content {
    padding: var(--moi-space-lg);
  }

  .moi-widget-container .moi-products-grid--single .moi-product-item__title {
    font-size: 18px;
  }

  .moi-products-grid--single .moi-product-item__price-current {
    font-size: 20px;
  }

  .moi-products-grid--single .moi-product-item__actions {
    flex-wrap: wrap;
  }

  .moi-products-grid--single .moi-product-item__line-total {
    width: 100%;
    margin-left: 0;
    margin-top: var(--moi-space-md);
    padding-top: var(--moi-space-md);
    border-top: 1px dashed var(--moi-border-light);
    text-align: left;
  }
}

@media (max-width: 768px) {
  .moi-products-grid {
    grid-template-columns: 1fr !important;
    gap: var(--moi-space-lg) !important;
    max-width: 100% !important;
    overflow: visible;
  }

  .moi-product-item {
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}

/* ============================================
   PRODUCT ITEM - NEW DESIGN
============================================ */

.moi-product-item {
  background: var(--moi-bg) !important;
  border: 1px solid var(--moi-border-light) !important;
  border-radius: var(--moi-radius-lg) !important;
  padding: var(--moi-space-lg) !important;
  display: flex !important;
  gap: var(--moi-space-lg) !important;
  transition: all var(--moi-transition-fast) !important;
  min-height: 200px !important;
}

.moi-product-item:hover {
  border-color: var(--moi-border) !important;
  box-shadow: var(--moi-shadow-md) !important;
}

.moi-product-item.is-selected {
  border-color: var(--moi-primary) !important;
  background: var(--moi-bg) !important;
}

.moi-product-item.is-sold-out {
  opacity: 0.5;
  pointer-events: none;
}

/* Product Image */
.moi-product-item__image {
  width: 130px;
  height: 130px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.moi-product-item__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Product Content */
.moi-product-item__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.moi-widget-container .moi-product-item__title {
  font-size: 15px;
  font-weight: 500;
  margin: 0 0 4px 0;
  color: var(--moi-text);
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Product Price */
.moi-product-item__price {
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  margin-bottom: var(--moi-space-sm);
}

.moi-product-item__price-original {
  font-size: 13px;
  text-decoration: line-through;
  color: var(--moi-text-light);
}

.moi-product-item__price-current {
  font-size: 15px;
  font-weight: 600;
  color: var(--moi-text);
}

.moi-product-item__price-current.has-discount {
  color: var(--moi-discount);
}

/* Product Constraints */
.moi-product-item__constraints {
  display: flex;
  flex-wrap: wrap;
  gap: var(--moi-space-xs);
  margin-bottom: var(--moi-space-sm);
}

.moi-product-item__constraint {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  color: var(--moi-text-muted);
  background: var(--moi-bg-secondary);
  padding: 4px 8px;
  border-radius: var(--moi-radius-sm);
}

.moi-product-item__constraint svg {
  width: 12px;
  height: 12px;
  opacity: 0.6;
}

/* Product Actions */
.moi-product-item__actions {
  margin-top: auto;
  padding-top: var(--moi-space-sm);
}

.moi-product-item__sold-out {
  font-size: 12px;
  font-weight: 600;
  color: var(--moi-error);
  text-transform: uppercase;
}

.moi-btn--add {
  padding: 10px 32px !important;
  font-size: 14px !important;
  font-weight: 600;
  border-radius: 100px !important;
  letter-spacing: 0.02em !important;
  text-transform: none !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: all 0.2s ease;
}

.moi-btn--add:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* ============================================
   QUANTITY CONTROL
============================================ */

.moi-quantity-control {
  display: inline-flex;
  align-items: center;
  background: var(--moi-bg-secondary);
  border-radius: var(--moi-radius-sm);
  overflow: hidden;
}

.moi-quantity-control__btn {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  min-height: 32px !important;
  max-width: 32px !important;
  max-height: 32px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  border: none !important;
  color: var(--moi-text) !important;
  cursor: pointer;
  transition: all var(--moi-transition-fast);
}

.moi-quantity-control__btn:hover:not(:disabled) {
  background: var(--moi-border-light);
}

.moi-quantity-control__btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

.moi-quantity-control__btn svg {
  width: 14px;
  height: 14px;
}

.moi-quantity-control__value {
  width: 36px;
  text-align: center;
  font-size: 14px;
  font-weight: 500;
  color: var(--moi-text);
}

/* ============================================
   ORDER SUMMARY SIDEBAR - NEW DESIGN
============================================ */

#moi_selections_overview_holder .woocommerce-checkout-review-order,
#moi_selections_overview_holder #order_review {
  background: var(--moi-bg) !important;
  border: 1px solid var(--moi-border-light) !important;
  border-radius: var(--moi-radius-lg) !important;
  overflow: hidden !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04), 0 4px 12px rgba(0, 0, 0, 0.03) !important;
  padding: 0 !important;
}

/* Sidebar Header - full width, no gaps */
.moi-sidebar__header {
  background: var(--moi-primary) !important;
  color: var(--moi-bg) !important;
  padding: var(--moi-space-lg) !important;
  margin: 0 !important;
}

.moi-sidebar__title {
  font-size: 18px !important;
  font-weight: 600 !important;
  margin: 0 0 4px 0 !important;
  color: var(--moi-bg) !important; /* White text on dark header */
}

.moi-sidebar__header-link {
  font-size: 13px;
  color: rgba(255, 255, 255, 0.7) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.moi-sidebar__header-link:hover {
  color: var(--moi-bg) !important;
}

/* Sidebar Sections */
.moi-sidebar__section {
  padding: var(--moi-space-lg) var(--moi-space-lg);
  border-bottom: 1px solid var(--moi-border-light);
}

#moi_load_selected_products .moi-sidebar__section {
  padding-top: var(--moi-space-xl);
  padding-bottom: var(--moi-space-md);
}

.moi-sidebar__section:last-child {
  border-bottom: none;
}

.moi-sidebar__section-title {
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--moi-text-muted);
  margin-bottom: var(--moi-space-sm);
}

.moi-sidebar__club-name {
  font-size: 16px;
  font-weight: 600;
  color: var(--moi-primary);
  margin-bottom: var(--moi-space-xs);
}

.moi-sidebar__link {
  font-size: 13px;
  color: var(--moi-text-muted);
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}

.moi-sidebar__link:hover {
  color: var(--moi-primary);
}

/* Sidebar Products */
.moi-sidebar__product {
  display: flex;
  gap: var(--moi-space-md);
  padding: var(--moi-space-sm) 0 var(--moi-space-md) 0;
  align-items: center;
}

.moi-sidebar__product-image {
  width: 54px;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.moi-sidebar__product-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.moi-sidebar__product-info {
  flex: 1;
  min-width: 0;
}

.moi-sidebar__product-name {
  font-size: 14px;
  font-weight: 500;
  color: var(--moi-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.moi-sidebar__product-meta {
  font-size: 13px;
  color: var(--moi-text-muted);
  display: flex;
  gap: var(--moi-space-sm);
  align-items: center;
  margin-top: 2px;
}

.moi-sidebar__product-price-original {
  text-decoration: line-through;
  color: var(--moi-text-light);
}

.moi-sidebar__product-price {
  font-weight: 500;
  color: var(--moi-text);
}

.moi-sidebar__product-remove {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
  max-width: 24px !important;
  max-height: 24px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--moi-bg-secondary) !important;
  border: none !important;
  border-radius: 50% !important;
  color: var(--moi-text-light) !important;
  cursor: pointer;
  transition: all var(--moi-transition-fast);
  flex-shrink: 0;
}

.moi-sidebar__product-remove:hover {
  background: #fee2e2;
  color: #dc2626;
}

.moi-sidebar__product-remove svg {
  width: 12px;
  height: 12px;
}

/* Sidebar Requirements */
.moi-sidebar__requirements {
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  padding: var(--moi-space-sm) var(--moi-space-md);
  background: rgba(40, 167, 69, 0.1);
  border-radius: var(--moi-radius-sm);
  font-size: 12px;
  color: var(--moi-success);
  margin-top: var(--moi-space-sm);
}

.moi-sidebar__requirements.is-not-met {
  background: rgba(220, 53, 69, 0.1);
  color: var(--moi-error);
}

/* Max Products Limit Styling */
.moi-sidebar__requirements--max.is-at-max {
  background: rgba(255, 193, 7, 0.15);
  color: #856404;
}

.moi-sidebar__requirements--max.is-at-max svg {
  color: #856404;
}

/* Hide min/max requirements messages on checkout page */
.moi-membership-checkout-part .moi-sidebar__requirements {
  display: none;
}

/* Max Products Toast Alert */
.moi-max-products-alert {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(100px);
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  padding: var(--moi-space-md) var(--moi-space-lg);
  background: #333;
  color: #fff;
  border-radius: var(--moi-radius-md);
  box-shadow: var(--moi-shadow-lg);
  font-size: 14px;
  font-weight: 500;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: transform 0.3s ease, opacity 0.3s ease, visibility 0.3s ease;
}

.moi-max-products-alert svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  color: #ffc107;
}

.moi-max-products-alert.moi-alert-show {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  visibility: visible;
}

.moi-max-products-alert.moi-alert-hide {
  transform: translateX(-50%) translateY(100px);
  opacity: 0;
  visibility: hidden;
}

/* Disabled Add button styling */
.moi-btn--add:disabled,
.moi-btn--add[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* Alert Messages (used in checkout forms) */
.moi-alert-message {
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  padding: var(--moi-space-sm) var(--moi-space-md);
  border-radius: var(--moi-radius-sm);
  font-size: 12px;
  margin-top: var(--moi-space-sm);
}

.moi-alert-message svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.moi-alert-error {
  background: rgba(220, 53, 69, 0.1);
  color: var(--moi-error);
}

.moi-alert-success {
  background: rgba(40, 167, 69, 0.1);
  color: var(--moi-success);
}

.moi-sidebar__requirements svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

/* Instant Shipment Banner */
.moi-sidebar__instant-shipment-banner {
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  padding: var(--moi-space-sm) var(--moi-space-md);
  background: rgba(40, 167, 69, 0.1);
  border-radius: var(--moi-radius-sm);
  font-size: 12px;
  color: var(--moi-success);
  margin-top: var(--moi-space-sm);
  margin-bottom: var(--moi-space-sm);
}

.moi-sidebar__instant-shipment-banner svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.moi-sidebar__empty {
  font-size: 14px;
  font-weight: 500;
  color: var(--moi-text);
  border-radius: var(--moi-radius-md);
  border: 1px dashed #d1d5db;
  background: var(--moi-bg-secondary);
  padding: 14px 16px;
  text-align: center;
}

/* Sidebar Schedule Section (no extra padding) */
.moi-sidebar__schedule-section {
  padding: var(--moi-space-sm) 0 0 0;
}

.moi-sidebar__schedule-section .moi-sidebar__section-title {
  padding: 0;
}

/* Sidebar Frequency/Shipments Info */
.moi-sidebar__frequency-info {
  padding: 0;
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  font-size: 14px;
  font-weight: 500;
  color: var(--moi-text);
  margin-bottom: var(--moi-space-md);
}

.moi-sidebar__frequency-info i {
  font-size: 16px;
  flex-shrink: 0;
  color: var(--moi-text);
}

.moi-sidebar__shipment-dates {
  display: flex;
  flex-wrap: wrap;
  gap: var(--moi-space-xs);
  margin-bottom: var(--moi-space-md);
}

.moi-sidebar__shipment-date-tag {
  display: inline-block;
  padding: 6px 12px;
  background: var(--moi-bg-secondary);
  border-radius: 100px;
  font-size: 13px;
  font-weight: 500;
  color: var(--moi-text);
}

.moi-sidebar__instant-shipment {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--moi-space-md);
  background: var(--moi-bg-secondary);
  border-radius: var(--moi-radius-md);
  margin-bottom: var(--moi-space-md);
}

.moi-sidebar__instant-shipment-label {
  display: flex;
  align-items: center;
  gap: var(--moi-space-xs);
  font-size: 14px;
  font-weight: 500;
  color: var(--moi-text);
}

.moi-sidebar__next-shipment {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--moi-space-sm) 0 0 0;
  font-size: 14px;
}

.moi-sidebar__next-shipment-date {
  font-weight: 600;
  color: var(--moi-text);
}

/* Toggle Switch */
.moi-toggle {
  position: relative;
  display: inline-block;
  width: 48px;
  height: 26px;
  flex-shrink: 0;
}

.moi-toggle input {
  opacity: 0;
  width: 0;
  height: 0;
}

.moi-toggle__slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #e5e7eb;
  transition: 0.3s;
  border-radius: 26px;
}

.moi-toggle__slider:before {
  position: absolute;
  content: "";
  height: 20px;
  width: 20px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: 0.3s;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.moi-toggle input:checked + .moi-toggle__slider {
  background-color: var(--moi-primary);
}

.moi-toggle input:checked + .moi-toggle__slider:before {
  transform: translateX(22px);
}

.moi-toggle input:disabled + .moi-toggle__slider {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Sidebar Summary */
.moi-sidebar__section--summary .moi-sidebar__section-title {
  display: block;
  margin-bottom: var(--moi-space-sm);
}

.moi-sidebar__summary-rows {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.moi-sidebar__summary-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 6px 0;
  font-size: 14px;
}

.moi-sidebar__summary-label {
  color: var(--moi-text);
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: var(--moi-space-xs);
}

.moi-sidebar__summary-label svg {
  width: 18px;
  height: 18px;
}

.moi-sidebar__summary-value {
  font-weight: 500;
  color: var(--moi-text);
}

.moi-sidebar__summary-row--discount .moi-sidebar__summary-value {
  color: var(--moi-success);
}

.moi-sidebar__summary-row--total {
  font-size: 16px;
  font-weight: 600;
  padding-top: var(--moi-space-md);
  margin-top: var(--moi-space-md);
  border-top: 1px solid var(--moi-border-light);
}

.moi-sidebar__summary-row--total .moi-sidebar__summary-label {
  color: var(--moi-text);
}

/* Sidebar Actions */
.moi-sidebar__actions {
  padding: var(--moi-space-lg);
  padding-top: var(--moi-space-md);
  background: transparent;
  display: flex;
  flex-direction: column;
  gap: var(--moi-space-sm);
}

/* Pill-shaped Continue button in sidebar */
.moi-sidebar__actions .moi-btn {
  border-radius: 100px;
  padding: 16px 28px;
  font-size: 15px;
  font-weight: 600;
}

.moi-sidebar__clear-btn {
  width: 100%;
  padding: 12px !important;
  background: transparent !important;
  border: none !important;
  color: var(--moi-text-muted) !important;
  font-family: inherit;
  font-size: 14px !important;
  font-weight: normal !important;
  letter-spacing: normal !important;
  cursor: pointer;
  text-align: center;
  text-transform: none !important;
}

.moi-sidebar__clear-btn:hover {
  color: var(--moi-primary);
  text-decoration: underline;
}

/* Sidebar Shipments */
.moi-sidebar__shipments {
  display: flex;
  flex-wrap: wrap;
  gap: var(--moi-space-xs);
  margin-top: var(--moi-space-sm);
}

.moi-sidebar__shipment-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  background: var(--moi-bg-secondary);
  border-radius: 100px;
  font-size: 12px;
  color: var(--moi-text-muted);
}

.moi-sidebar__shipment-pill:first-child {
  background: rgba(var(--moi-primary-rgb), 0.1);
  color: var(--moi-primary);
  font-weight: 500;
}

/* Ship Now Toggle */
.moi-sidebar__ship-now {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--moi-space-md);
  background: var(--moi-bg-secondary);
  border-radius: var(--moi-radius-md);
  margin-top: var(--moi-space-md);
}

.moi-sidebar__ship-now-label {
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  font-size: 14px;
  font-weight: 500;
}

.moi-sidebar__ship-now-label svg {
  width: 18px;
  height: 18px;
  color: var(--moi-primary);
}

/* Schedule Options Section - Container with divider */
#moi_load_selected_schedule_options {
  padding: var(--moi-space-md) var(--moi-space-lg);
  overflow: hidden;
  margin-top: var(--moi-space-sm);
  position: relative;
}

#moi_load_selected_schedule_options::before {
  content: '';
  position: absolute;
  top: 0;
  left: var(--moi-space-lg);
  right: var(--moi-space-lg);
  border-top: 1px solid var(--moi-border-light, #eee);
}

/* Schedule Options Section - General table styling */
#moi_load_selected_schedule_options .shop_table.woocommerce-checkout-review-order-table {
  border: none !important;
  margin: 0;
  width: 100%;
}

#moi_load_selected_schedule_options .shop_table.woocommerce-checkout-review-order-table thead,
#moi_load_selected_schedule_options .shop_table.woocommerce-checkout-review-order-table tbody {
  border: none !important;
}

#moi_load_selected_schedule_options .shop_table.woocommerce-checkout-review-order-table td {
  border: none !important;
  padding: var(--moi-space-sm) 0 !important;
  font-size: 14px;
}

/* Frequency content styling - "X Products every month" */
#moi_load_selected_schedule_options .moi-row {
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  font-size: 14px;
  font-weight: 500;
  color: var(--moi-text);
}

#moi_load_selected_schedule_options .moi-row .moi-icons {
  color: var(--moi-text-muted);
}

/* Your Next Shipment row styling */
#moi_load_selected_schedule_options .shop_table.woocommerce-checkout-review-order-table:last-child tr {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

#moi_load_selected_schedule_options .shop_table.woocommerce-checkout-review-order-table:last-child td:first-child {
  font-weight: 500;
  color: var(--moi-text);
}

#moi_load_selected_schedule_options .shop_table.woocommerce-checkout-review-order-table:last-child td:last-child {
  font-weight: 600;
  color: var(--moi-text);
  text-align: right;
}

/* Ship My Order Now - Container styling */
#moi_selections_overview_holder table.modal_selected_schedule_options {
  background: #f3f4f6;
  border-radius: 12px;
  margin: var(--moi-space-sm, 8px) 0 !important;
  border: none !important;
  border-collapse: separate;
  width: 100%;
  display: table;
  box-sizing: border-box;
}

#moi_selections_overview_holder table.modal_selected_schedule_options tbody {
  border: none !important;
}

#moi_selections_overview_holder table.modal_selected_schedule_options tr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

#moi_selections_overview_holder table.modal_selected_schedule_options td {
  padding: 14px 16px !important;
  border: none !important;
  font-size: 14px;
  font-weight: 500;
  background: transparent !important;
}

#moi_selections_overview_holder table.modal_selected_schedule_options td:first-child {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  padding-left: 20px !important;
}


#moi_selections_overview_holder table.modal_selected_schedule_options td:last-child {
  padding-right: 16px !important;
  flex-shrink: 0;
}

/* Calculations section - divider above subtotal */
#moi_load_selected_calculations {
  padding: var(--moi-space-md) var(--moi-space-lg);
  margin-top: var(--moi-space-sm);
  position: relative;
}

#moi_load_selected_calculations::before {
  content: '';
  position: absolute;
  top: 0;
  left: var(--moi-space-lg);
  right: var(--moi-space-lg);
  border-top: 1px solid var(--moi-border-light, #eee);
}

/* Remove double padding from nested section inside calculations */
#moi_load_selected_calculations .moi-sidebar__section,
#moi_load_selected_calculations .moi-sidebar__section--summary {
  padding: 0 !important;
  margin: 0 !important;
}

/* Show the "Summary" title in calculations section */
#moi_load_selected_calculations .moi-sidebar__section--summary .moi-sidebar__section-title {
  display: block;
  margin-bottom: var(--moi-space-sm);
}


/* iOS-style Toggle switch */
#moi_selections_overview_holder .moi-custom-checkbox,
#moi_selections_overview_holder input.moi-custom-checkbox[type="checkbox"],
.moi-custom-checkbox {
  width: 50px !important;
  min-width: 50px !important;
  height: 28px !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background: #e5e7eb !important;
  border-radius: 14px !important;
  position: relative !important;
  cursor: pointer !important;
  transition: background 0.2s ease !important;
  border: none !important;
  outline: none !important;
  flex-shrink: 0 !important;
}

#moi_selections_overview_holder .moi-custom-checkbox::after,
#moi_selections_overview_holder input.moi-custom-checkbox[type="checkbox"]::after,
.moi-custom-checkbox::after {
  content: '' !important;
  position: absolute !important;
  width: 24px !important;
  height: 24px !important;
  background: white !important;
  border-radius: 50% !important;
  top: 2px !important;
  left: 2px !important;
  transition: transform 0.2s ease !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2) !important;
}

#moi_selections_overview_holder .moi-custom-checkbox:checked,
#moi_selections_overview_holder input.moi-custom-checkbox[type="checkbox"]:checked,
.moi-custom-checkbox:checked {
  background: var(--moi-primary, #000) !important;
}

#moi_selections_overview_holder .moi-custom-checkbox:checked::after,
#moi_selections_overview_holder input.moi-custom-checkbox[type="checkbox"]:checked::after,
.moi-custom-checkbox:checked::after {
  transform: translateX(22px) !important;
}

/* ============================================
   SECTION HEADERS - NEW DESIGN
   Scoped to .moi-widget-container for higher specificity
============================================ */

.moi-widget-container .moi-section-header {
  margin-bottom: var(--moi-space-lg);
}

.moi-widget-container .moi-section-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: rgba(var(--moi-primary-rgb), 0.1);
  color: var(--moi-primary);
  font-size: 13px;
  font-weight: 600;
  border-radius: 50%;
  margin-right: var(--moi-space-sm);
}

.moi-widget-container .moi-section-title {
  font-size: 24px;
  font-weight: 600;
  display: inline;
  vertical-align: middle;
  color: var(--moi-text);
  margin: 0;
  line-height: 1.3;
}

.moi-widget-container .moi-section-subtitle {
  color: var(--moi-text-muted);
  font-size: 14px;
  margin-top: var(--moi-space-xs);
  margin-left: 38px;
  line-height: 1.5;
}

@media (max-width: 767px) {
  .moi-widget-container .moi-section-title {
    font-size: 20px;
  }

  .moi-widget-container .moi-section-subtitle {
    margin-left: 0;
    font-size: 13px;
  }
}

/* ============================================
   FREQUENCY GRID - NEW DESIGN
============================================ */

.moi-frequency-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--moi-space-md);
  max-width: 100%;
}

@media (max-width: 992px) {
  .moi-frequency-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .moi-frequency-grid {
    grid-template-columns: 1fr;
  }
}

.moi-frequency-item {
  background: var(--moi-bg);
  border: 1px solid var(--moi-border-light);
  border-radius: var(--moi-radius-md);
  padding: var(--moi-space-lg);
  text-align: center;
  cursor: pointer;
  transition: all var(--moi-transition-fast);
}

.moi-frequency-item:hover {
  border-color: var(--moi-border);
  box-shadow: var(--moi-shadow-sm);
}

.moi-frequency-item.is-selected,
.moi-frequency-item.active {
  border-color: var(--moi-primary);
  background: rgba(var(--moi-primary-rgb), 0.05);
}

.moi-frequency-item__icon {
  width: 36px;
  height: 36px;
  margin: 0 auto var(--moi-space-sm);
  color: var(--moi-text-light);
}

.moi-frequency-item.is-selected .moi-frequency-item__icon,
.moi-frequency-item.active .moi-frequency-item__icon {
  color: var(--moi-primary);
}

.moi-frequency-item__icon svg {
  width: 100%;
  height: 100%;
  fill: none !important;
  stroke: currentColor !important;
}

.moi-frequency-item__label {
  font-size: 15px;
  font-weight: 500;
  color: var(--moi-text);
  margin-bottom: 6px;
}

.moi-frequency-item.is-selected .moi-frequency-item__label,
.moi-frequency-item.active .moi-frequency-item__label {
  color: var(--moi-primary);
}

.moi-frequency-item__desc {
  font-size: 12px;
  color: var(--moi-text-muted);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.moi-frequency-item__desc svg {
  width: 12px;
  height: 12px;
  opacity: 0.6;
  fill: none !important;
  stroke: currentColor !important;
}

/* ============================================
   SHIPMENTS GRID - NEW DESIGN
============================================ */

.moi-shipments-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: var(--moi-space-md) !important;
}

/* When inside the two-column layout with sidebar, use 4 columns on wide screens only */
.moi-widget-layout .moi-shipments-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

@media (max-width: 1400px) {
  /* Reduce to 3 columns when sidebar is present on smaller screens */
  .moi-widget-layout .moi-shipments-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 1200px) {
  /* Reduce to 2 columns */
  .moi-widget-layout .moi-shipments-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 992px) {
  .moi-shipments-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 767px) {
  .moi-shipments-grid,
  .moi-widget-layout .moi-shipments-grid {
    grid-template-columns: 1fr !important;
  }
}

.moi-shipment-item {
  background: var(--moi-bg);
  border: 1px solid var(--moi-border-light);
  border-radius: var(--moi-radius-md);
  padding: var(--moi-space-md);
  text-align: center;
  position: relative;
  transition: all var(--moi-transition-fast);
}

.moi-shipment-item.is-selected {
  border-color: var(--moi-primary);
  background: rgba(var(--moi-primary-rgb), 0.05);
}

.moi-shipment-item--add {
  cursor: pointer;
  border-style: dashed;
}

.moi-shipment-item--add:hover {
  border-color: var(--moi-primary);
  background: rgba(var(--moi-primary-rgb), 0.03);
}

.moi-shipment-item__remove {
  position: absolute;
  top: var(--moi-space-sm);
  right: var(--moi-space-sm);
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: var(--moi-text-light);
  cursor: pointer;
  border-radius: 50%;
  transition: all var(--moi-transition-fast);
}

.moi-shipment-item__remove:hover {
  background: #fee2e2;
  color: #dc2626;
}

.moi-shipment-item__remove svg {
  width: 14px;
  height: 14px;
}

.moi-shipment-item__icon {
  width: 28px;
  height: 28px;
  margin: 0 auto var(--moi-space-sm);
  color: var(--moi-text-light);
}

.moi-shipment-item.is-selected .moi-shipment-item__icon {
  color: var(--moi-primary);
}

.moi-shipment-item__icon svg {
  width: 100%;
  height: 100%;
}

.moi-shipment-item__label {
  font-size: 13px;
  font-weight: 500;
  color: var(--moi-text);
  margin-bottom: var(--moi-space-sm);
}

.moi-shipment-item__date {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--moi-space-xs);
  color: var(--moi-text-muted);
}

.moi-shipment-item__date svg {
  width: 14px;
  height: 14px;
  opacity: 0.6;
}

.moi-shipment-item__input {
  background: transparent;
  border: none;
  font-size: 13px;
  font-weight: 500;
  color: var(--moi-text);
  text-align: center;
  cursor: pointer;
  width: 110px;
}

.moi-shipment-item__input:focus {
  outline: none;
}

/* Shipment Card - BEM style for custom/specific date schedules */
.moi-shipment-card {
  background: var(--moi-bg) !important;
  border: 1px solid var(--moi-border-light) !important;
  border-radius: var(--moi-radius-md) !important;
  padding: var(--moi-space-lg) !important;
  text-align: center !important;
  position: relative !important;
  transition: all var(--moi-transition-fast) !important;
  cursor: pointer;
  min-height: 160px !important;
}

.moi-shipment-card:hover {
  border-color: var(--moi-border);
  box-shadow: var(--moi-shadow-sm);
}

.moi-shipment-card.is-selected {
  border-color: var(--moi-primary) !important;
  background: rgba(var(--moi-primary-rgb), 0.05) !important;
}

.moi-shipment-card.is-disabled {
  opacity: 0.6;
}

.moi-shipment-card.is-disabled del {
  color: var(--moi-text-light);
}

/* Scheduled shipments (specific_date) - non-interactive display only */
.moi-schedule_specific_dates .moi-shipment-card {
  cursor: default;
}

.moi-schedule_specific_dates .moi-shipment-card:hover {
  border-color: var(--moi-border-light);
  box-shadow: none;
}

.moi-schedule_specific_dates .moi-shipment-card__date {
  cursor: default;
}

.moi-schedule_specific_dates .moi-shipment-card__date:hover {
  border-color: var(--moi-border);
  background: var(--moi-bg-secondary);
}

.moi-shipment-card--add {
  border-style: dashed;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.moi-shipment-card--add:hover {
  border-color: var(--moi-primary);
  background: rgba(var(--moi-primary-rgb), 0.03);
}

.moi-shipment-card__remove {
  position: absolute;
  top: var(--moi-space-sm);
  right: var(--moi-space-sm);
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  color: var(--moi-text-light);
  cursor: pointer;
  border-radius: 50%;
  transition: all var(--moi-transition-fast);
}

.moi-shipment-card__remove:hover {
  background: #fee2e2;
  color: #dc2626;
}

.moi-shipment-card__remove svg {
  width: 14px;
  height: 14px;
}

.moi-shipment-card__icon {
  width: 36px;
  height: 36px;
  margin: 0 auto var(--moi-space-sm);
  color: var(--moi-text-light);
}

.moi-shipment-card.is-selected .moi-shipment-card__icon {
  color: var(--moi-primary);
}

.moi-shipment-card__icon svg {
  width: 100%;
  height: 100%;
}

.moi-shipment-card__label {
  font-size: 15px;
  font-weight: 500;
  color: var(--moi-text);
  margin-bottom: 6px;
}

.moi-shipment-card.is-selected .moi-shipment-card__label {
  color: var(--moi-primary);
}

.moi-shipment-card__date {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--moi-space-xs);
  font-size: 13px;
  color: var(--moi-text);
  background: var(--moi-bg-secondary);
  border: 1px solid var(--moi-border-light);
  border-radius: var(--moi-radius-sm);
  padding: 8px 12px;
  cursor: pointer;
  transition: all var(--moi-transition-fast);
  white-space: nowrap;
  margin-top: var(--moi-space-sm);
}

.moi-shipment-card__date:hover {
  border-color: var(--moi-primary);
  background: var(--moi-bg);
}

.moi-shipment-card__date svg {
  width: 16px;
  height: 16px;
  color: var(--moi-text-muted);
}

.moi-shipment-card__input {
  background: transparent;
  border: none;
  font-size: 13px;
  font-weight: 500;
  color: var(--moi-text);
  text-align: center;
  cursor: pointer;
  width: auto;
  min-width: 100px;
}

.moi-shipment-card__input::placeholder {
  color: var(--moi-text-muted);
  font-weight: 400;
}

.moi-shipment-card__input:focus {
  outline: none;
}

/* Error Message */
.moi-error-message {
  padding: var(--moi-space-md);
  background: rgba(220, 53, 69, 0.1);
  border-radius: var(--moi-radius-md);
  color: var(--moi-error);
  font-size: 14px;
  text-align: center;
  margin-top: var(--moi-space-lg);
}

/* ============================================
   WIDGET CONTAINER LAYOUT
============================================ */

.moi-widget-container {
  max-width: 100%;
  width: 100%;
  margin: 0 auto;
  padding: var(--moi-space-lg);
  box-sizing: border-box;
  overflow-x: hidden;
}

@media (max-width: 767px) {
  .moi-widget-container {
    padding: var(--moi-space-sm) 0;
    max-width: 100vw;
    overflow-x: hidden;
  }
}

/* Club Selection Page - scoped for higher specificity */
.moi-widget-container .moi-club-selection {
  padding: var(--moi-space-2xl) 0;
}

.moi-widget-container .moi-club-selection__header {
  text-align: center;
  margin-bottom: var(--moi-space-2xl);
}

.moi-widget-container .moi-club-selection__title {
  font-size: 36px;
  font-weight: 600;
  margin: 0 0 var(--moi-space-sm) 0;
  color: var(--moi-text);
  line-height: 1.2;
}

.moi-widget-container .moi-club-selection__subtitle {
  color: var(--moi-text-muted);
  font-size: 16px;
  max-width: 480px;
  margin: 0 auto;
  line-height: 1.5;
}

/* Middle wrapper - contains widget layout */
#middle_wrapper,
#middle_wrapper_content {
  max-width: 100%;
  box-sizing: border-box;
}

@media (max-width: 767px) {
  #middle_wrapper {
    padding: 0;
    overflow-x: hidden;
  }
}

/* Widget Layout (Products + Sidebar) */
.moi-widget-layout {
  display: grid !important;
  grid-template-columns: 1fr min(420px, 37%) !important;
  gap: var(--moi-space-xl) !important;
  align-items: start !important;
  justify-content: normal !important;
  max-width: 100%;
  box-sizing: border-box;
}

/* Reduce product image size when sidebar is present to give text more room */
.moi-widget-layout .moi-product-item__image {
  width: 130px;
  height: 130px;
}

@media (max-width: 1024px) {
  .moi-widget-layout {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 767px) {
  .moi-widget-layout {
    grid-template-columns: 1fr !important;
    gap: var(--moi-space-lg) !important;
    max-width: 100%;
    overflow-x: hidden;
  }
}

.moi-widget-main {
  display: flex;
  flex-direction: column;
  gap: var(--moi-space-xl);
  min-width: 0 !important; /* Prevent overflow in grid */
  max-width: 100%;
  justify-self: stretch !important; /* Fill grid column in Elementor */
}

.moi-widget-sidebar {
  position: static !important;
  margin-top: 20px; /* Align with section title text */
  min-width: 0 !important;
  justify-self: stretch !important; /* Fill grid column in Elementor */
}

@media (max-width: 767px) {
  .moi-widget-main {
    max-width: 100%;
    overflow-x: hidden;
  }

  .moi-widget-sidebar {
    min-width: 0 !important;
    max-width: 100%;
    margin-top: var(--moi-space-lg);
  }
}

/* Sidebar Body */
.moi-sidebar__body {
  padding: 0;
}

/* Branding */
.moi-branding {
  text-align: center;
  font-size: 12px;
  color: var(--moi-text-light);
  padding: var(--moi-space-md);
}

/* ============================================
   LAYOUT & UTILITIES
============================================ */

#moi_checkout_form {
  display: flex;
}
/* Checkout page two-column layout */
form.moi-membership-checkout-part {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  gap: 0 !important;
  justify-content: flex-start !important;
}

/* Remove margin from error row to align columns */
.moi-membership-checkout-part #customer_details > .form-row:first-of-type {
  margin-bottom: 0;
}

/* Checkbox row alignment (pickup, ship to different address) */
.shipping_add_wrapper {
  display: flex !important;
  align-items: center;
  gap: var(--moi-space-sm);
  font-size: 15px;
  font-weight: 500;
  color: var(--moi-text);
}

/* Clearfix for shipping address card (contains floated form rows) */
#moi_shipping_address::after {
  content: "";
  display: table;
  clear: both;
}

/* Hide product remove button on checkout page */
.moi-membership-checkout-part .moi-sidebar__product-remove {
  display: none !important;
}

#moi_order_info_holder,
.moi-membership-checkout-part div#customer_details {
  width: 65%;
  float: left;
  padding: 0 2rem 2rem 0;
  box-sizing: border-box;
  display: block !important;
  grid-template-columns: none !important;
}
.moi-membership-checkout-part .moi-checkout-card,
.moi-membership-checkout-part .moi-checkout-user-card{margin-bottom: var(--moi-space-lg) !important; }
.moi-membership-checkout-part .form-row{display: block !important; }
.moi-membership-checkout-part .shipping_add_wrapper{display: flex !important; align-items: center !important; margin-bottom: var(--moi-space-sm) !important; }
.moi-membership-checkout-part .form-row-first,
.moi-membership-checkout-part .form-row-last{width: 47% !important; float: left !important; }
.moi-membership-checkout-part .form-row-first{clear: left !important; }
.moi-membership-checkout-part .form-row-last{float: right !important; }
#moi_selections_overview_holder .woocommerce-checkout-review-order,
#moi_selections_overview_holder div#order_review{position: static !important; }

.moi-membership-checkout-part #moi_selections_overview_holder {
  width: 35%;
  float: left;
  box-sizing: border-box;
}
div.moi-custom-loader {
  visibility: visible;
  align-items: center;
  background: #212529;
  display: flex;
  height: 100vh;
  justify-content: center;
  left: 0;
  position: fixed;
  top: 0;
  transition: opacity 0.2s linear;
  width: 100%;
  z-index: 10000;
  opacity: 0.8;
  /*transform: opacity 1s linear;*/
}
div.moi-custom-loader .moi-loading-image {
  width: 100px;
}

#moi_save_membership_form
  .woocommerce-checkout-review-order-table
  .cart_item
  .product-thumbnail,
#moi_selections_overview_holder
  .woocommerce-checkout-review-order-table
  .cart_item
  .product-thumbnail,
#moi-memberships
  .woocommerce-checkout-review-order-table
  .cart_item
  .product-thumbnail,
#moi_co_form_wrap
  .woocommerce-checkout-review-order-table
  .cart_item
  .product-thumbnail {
  width: 25%;
}

.moi-membership-wrapper .moi-membership-info .moi-view-membership {
  min-width: 175px;
}
.moi-membership-wrapper .moi-membership-info table {
  border: none !important;
  /*border: 1px solid #dedede;*/
  display: table;
}
.moi-membership-wrapper .moi-membership-info {
  box-sizing: border-box !important;
}
.moi-membership-wrapper .moi-vertical-top img {
  height: 100%;
  width: 100%;
  object-fit: contain;
}
#moi_save_membership_form
  .woocommerce-checkout-review-order-table
  .cart_item
  .product-thumbnail
  img,
#moi_selections_overview_holder
  .woocommerce-checkout-review-order-table
  .cart_item
  .product-thumbnail
  img {
  height: auto;
  box-shadow: none;
}
.moi-vertical-top {
  vertical-align: top !important;
}
.moi-vertical-middle {
  vertical-align: middle !important;
}
.moi-vertical-bottom {
  vertical-align: bottom !important;
}
.product-remove a {
  text-decoration: none;
}
.product-remove {
  width: 17px;
  font-size: 16px;
}
.moi-remove-cart-item a {
  color: red !important;
  cursor: pointer;
}
.moi-membership-checkout-part table td.moi-remove-cart-item {
  display: none !important;
}
.moi-minimum-product-info span {
  font-weight: bold;
}
.moi-minimum-product-info,
#order_review .moi-minimum-product-info td {
  font-style: italic;
  font-size: 15px;
}
.moi-membership-checkout-part .moi-minimum-product-info {
  display: none;
}

.moi-right {
  float: right;
}
.moi-left {
  float: left;
}
.moi-d-none {
  display: none !important;
}
.moi-invisible {
  visibility: hidden !important;
}
.moi-d-block {
  display: block;
}
.moi-alert {
  position: relative;
  padding: 0.75rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid transparent;
  border-radius: 0.25rem;
}
.moi-alert-danger {
  color: #721c24;
  background-color: #f8d7da;
  border-color: #f5c6cb;
}
.ui-datepicker-calendar {
  background: #eeeeee !important;
}
#ui-datepicker-div {
  background: #eeeeee !important;
}
.ui-datepicker-next {
  float: right !important;
  font-weight: 600 !important;
  padding: 5px !important;
  cursor: pointer !important;
}
.ui-datepicker-prev {
  font-weight: 600 !important;
  padding: 5px !important;
  cursor: pointer !important;
}
.ui-datepicker-title {
  text-align: center !important;
  font-weight: 600 !important;
}

.custom_datetimepicker {
  box-sizing: border-box;
  padding: 7px 0;
  font-weight: 500;
  width: 100%;
}

/* .moi-form-group {
  margin-bottom: 1rem;
} */
.moi-form-control {
  display: block !important;
  width: 100% !important;
  padding: 13px 13px !important;
  font-size: 1.6rem !important;
  line-height: 1.5 !important;
  color: #495057 !important;
  background-color: #fff !important;
  background-clip: padding-box !important;
  border: 1px solid #bebebe !important;
  border-radius: 10px !important;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out !important;
}

.moi-form-control::-ms-expand {
  background-color: transparent !important;
  border: 0 !important;
}

.moi-form-control:focus {
  color: #495057 !important;
  background-color: #fff !important;
  border-color: #80bdff !important;
  outline: 0 !important;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25) !important;
}

.moi-form-control::-webkit-input-placeholder {
  color: #6c757d !important;
  opacity: 1 !important;
}

.moi-form-control::-moz-placeholder {
  color: #6c757d !important;
  opacity: 1 !important;
}

.moi-form-control:-ms-input-placeholder {
  color: #6c757d !important;
  opacity: 1 !important;
}

.moi-form-control::-ms-input-placeholder {
  color: #6c757d !important;
  opacity: 1 !important;
}

.moi-form-control::placeholder {
  color: #6c757d !important;
  opacity: 1 !important;
}

.moi-form-control:disabled,
.moi-form-control[readonly] {
  background-color: #e9ecef !important;
  opacity: 1 !important;
}

.moi-alert {
  position: relative;
  padding: 0.75rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid transparent;
  border-radius: 0.25rem;
}

.moi-alert-success {
  color: #155724;
  background-color: #d4edda;
  border-color: #c3e6cb;
}

/* product */
.custom-mix-wrapper {
  clear: both;
  margin: auto;
  height: auto;
  overflow: hidden;
  display: flex;
  flex-wrap: wrap;
}
.custom-mix-wrapper .moi-product-card-content {
  border: none !important;
  margin: 5px !important;
  width: calc(33.33% - 10px);
  flex: 0 1 390px;
}
.custom-mix-wrapper .moi-product-card-content .image {
  height: 271px;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  margin-bottom: 20px;
  margin-top: 0;
}
.moi-max-lines-1 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  -webkit-box-orient: vertical;
}
.moi-max-lines-2 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.moi-max-lines-3 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.moi-max-lines-4 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
}
.moi-max-lines-5 {
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  -webkit-box-orient: vertical;
}
.custom-mix-wrapper .moi-product-card-content .cc-product-title {
  line-height: 1.5em;
  font-weight: 500;
  font-size: 16px;
  text-transform: uppercase;
  font-family: inherit;
  color: #151515;
  padding: 0 15px;
}
.custom-mix-wrapper .moi-product-card-content .price,
.custom-mix-wrapper .moi-product-card-content .price strong {
  font-size: 15px;
  font-weight: 500;
  color: #000;
  width: 100%;
  margin: 0;
}
.custom-mix-wrapper .moi-product-card-content .price,
.custom-mix-wrapper .moi-product-card-content .price strong {
  font-size: 15px;
  font-weight: 500;
  color: #000;
  width: 100%;
  margin: 0;
}
.custom-mix-wrapper .moi-product-card-content:hover > .controls,
.custom-mix-wrapper .moi-product-card-content:focus > .controls {
  display: block;
}
.custom-mix-wrapper .moi-product-card-content .controls {
  display: none;
  position: absolute;
  top: 40%;
  left: 50%;
  text-align: center;
  transform: translateX(-50%);
}
.custom-mix-wrapper .moi-product-card-content .controls .cc-addremove,
.custom-mix-wrapper .moi-product-card-content .controls .quick-view-btn {
  cursor: pointer;
  width: 40px;
  height: 40px;
  background: rgba(0, 0, 0, 0.5);
  color: #ffffff;
  float: left;
  margin: 0 1px;
  border: none;
}
.custom-mix-wrapper .moi-product-card-content .controls .quick-view-btn {
  display: none;
}
.custom-mix-wrapper .moi-product-card-content .controls .cc-addremove,
.custom-mix-wrapper .moi-product-card-content .controls .quick-view-btn {
  cursor: pointer;
  width: 40px;
  height: 40px;
  background: rgba(0, 0, 0, 0.5);
  color: #ffffff;
  float: left;
  margin: 0 1px;
  border: none;
}

.moi-none {
  display: none !important;
}
/* product */
.cc-select-wrapper,
.cc-wc-btn.active .cc-select-wrapper {
  border-color: #565656;
}
.moi-box-active {
  border: 1px solid #9e804a;
  border-radius: 10px;
}
.moi-container-fluid {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}
.cc-section-title {
  font-size: 36px !important;
  text-transform: uppercase;
  text-align: center;
  color: #151515;
  font-weight: 400 !important;
}
.moi-class1 {
  text-align: center;
  font-size: 42px;
  margin-top: 34px;
}
.moi-special {
  text-align: center;
  font-size: 27px;
  margin-top: 31px;
}
.moi-button {
  background-color: #161515;
  border: none;
  color: white;
  padding: 10px 20px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  margin: 4px 2px;
  cursor: pointer;
  margin-top: 31px;
}
.moi-button:hover {
  background-color: #efb2ed;
  color: #161515;
}
.moi-button.moi-button {
  margin-left: 550px;
  font-size: 28px;
}
.moi-color {
  color: white;
}
.moi-color-red {
  color: red !important;
}
.moi-cancel-button {
  transition: text-decoration 0.3s ease-in-out;
}
.moi-cancel-button:hover {
  text-decoration: underline;
}
@media screen and (max-width: 600px) {
  .moi-cancel-button {
    display: inline-block;
    margin-top: 15px;
  }
}
.moi-column {
  float: left;
  width: 33.33%;
  padding: 5px;
}
.moi-row::after {
  content: '';
  clear: both;
}
.moi-container {
  text-align: center;
  font-size: 26px;
  margin-top: 33px;
}
.moi-container1 {
  margin-left: 112px;
}
.moi-space {
  margin-left: 321px;
  margin-right: 204px;
  font-size: 20px;
  margin-top: 16px;
}
.moi-1,
.moi-2,
.moi-3,
.moi-4,
.moi-5,
.moi-6,
.moi-7,
.moi-8,
.moi-9,
.moi-10,
.moi-11,
.moi-12,
.moi,
.moi-auto,
.moi-sm-1,
.moi-sm-2,
.moi-sm-3,
.moi-sm-4,
.moi-sm-5,
.moi-sm-6,
.moi-sm-7,
.moi-sm-8,
.moi-sm-9,
.moi-sm-10,
.moi-sm-11,
.moi-sm-12,
.moi-sm,
.moi-sm-auto,
.moi-md-1,
.moi-md-2,
.moi-md-3,
.moi-md-4,
.moi-md-5,
.moi-md-6,
.moi-md-7,
.moi-md-8,
.moi-md-9,
.moi-md-10,
.moi-md-11,
.moi-md-12,
.moi-md,
.moi-md-auto,
.moi-lg-1,
.moi-lg-2,
.moi-lg-3,
.moi-lg-4,
.moi-lg-5,
.moi-lg-6,
.moi-lg-7,
.moi-lg-8,
.moi-lg-9,
.moi-lg-10,
.moi-lg-11,
.moi-lg-12,
.moi-lg,
.moi-lg-auto,
.moi-xl-1,
.moi-xl-2,
.moi-xl-3,
.moi-xl-4,
.moi-xl-5,
.moi-xl-6,
.moi-xl-7,
.moi-xl-8,
.moi-xl-9,
.moi-xl-10,
.moi-xl-11,
.moi-xl-12,
.moi-xl,
.moi-xl-auto {
  position: relative;
  width: 100%;
  min-height: 1px;
}

.moi {
  -ms-flex-preferred-size: 0;
  flex-basis: 0;
  -webkit-box-flex: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
  max-width: 100%;
}

.moi-auto {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 auto;
  flex: 0 0 auto;
  width: auto;
  max-width: none;
}

.moi-1 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 8.333333%;
  flex: 0 0 8.333333%;
  max-width: 8.333333%;
}

.moi-2 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 16.666667%;
  flex: 0 0 16.666667%;
  max-width: 16.666667%;
}

.moi-3 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 25%;
  flex: 0 0 25%;
  max-width: 25%;
}

.moi-4 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 33.333333%;
  flex: 0 0 33.333333%;
  max-width: 33.333333%;
}

.moi-5 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 41.666667%;
  flex: 0 0 41.666667%;
  max-width: 41.666667%;
}

.moi-6 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 50%;
  flex: 0 0 50%;
  max-width: 50%;
}

.moi-7 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 58.333333%;
  flex: 0 0 58.333333%;
  max-width: 58.333333%;
}

.moi-8 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 66.666667%;
  flex: 0 0 66.666667%;
  max-width: 66.666667%;
}

.moi-9 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 75%;
  flex: 0 0 75%;
  max-width: 75%;
}

.moi-10 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 83.333333%;
  flex: 0 0 83.333333%;
  max-width: 83.333333%;
}

.moi-11 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 91.666667%;
  flex: 0 0 91.666667%;
  max-width: 91.666667%;
}

.moi-12 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 100%;
  flex: 0 0 100%;
  max-width: 100%;
}
.moi-w-25 {
  width: 25% !important;
}

.moi-w-50 {
  width: 50% !important;
}

.moi-w-75 {
  width: 75% !important;
}

.moi-w-100 {
  width: 100% !important;
}

.moi-h-25 {
  height: 25% !important;
}

.moi-h-50 {
  height: 50% !important;
}

.moi-h-75 {
  height: 75% !important;
}

.moi-h-100 {
  height: 100% !important;
}

.moi-mw-100 {
  max-width: 100% !important;
}

.moi-mh-100 {
  max-height: 100% !important;
}

.moi-m-0 {
  margin: 0 !important;
}

.moi-mt-0,
.moi-my-0 {
  margin-top: 0 !important;
}

.moi-mr-0,
.moi-mx-0 {
  margin-right: 0 !important;
}

.moi-mb-0,
.moi-my-0 {
  margin-bottom: 0 !important;
}

.moi-ml-0,
.moi-mx-0 {
  margin-left: 0 !important;
}

.moi-m-1 {
  margin: 0.25rem !important;
}

.moi-mt-1,
.moi-my-1 {
  margin-top: 0.25rem !important;
}

.moi-mr-1,
.moi-mx-1 {
  margin-right: 0.25rem !important;
}

.moi-mb-1,
.moi-my-1 {
  margin-bottom: 0.25rem !important;
}

.moi-ml-1,
.moi-mx-1 {
  margin-left: 0.25rem !important;
}

.moi-m-2 {
  margin: 0.5rem !important;
}

.moi-mt-2,
.moi-my-2 {
  margin-top: 1rem !important;
}

.moi-mr-2,
.moi-mx-2 {
  margin-right: 0.5rem !important;
}

.moi-mb-2,
.moi-my-2 {
  margin-bottom: 0.5rem !important;
}

.moi-ml-2,
.moi-mx-2 {
  margin-left: 0.5rem !important;
}

.moi-m-3 {
  margin: 1rem !important;
}

.moi-mt-3,
.moi-my-3 {
  margin-top: 1rem !important;
}

.moi-mr-3,
.moi-mx-3 {
  margin-right: 1rem !important;
}

.moi-mb-3,
.moi-my-3 {
  margin-bottom: 1rem !important;
}

.moi-ml-3,
.moi-mx-3 {
  margin-left: 1rem !important;
}

.moi-m-4 {
  margin: 1.5rem !important;
}

.moi-mt-4,
.moi-my-4 {
  margin-top: 1.5rem !important;
}

.moi-mt-10,
.moi-my-10 {
  margin-top: 3rem !important;
}
.moi-mt-8,
.moi-my-8 {
  margin-top: 2rem !important;
}

.moi-mr-4,
.moi-mx-4 {
  margin-right: 1.5rem !important;
}

.moi-mb-4,
.moi-my-4 {
  margin-bottom: 1.5rem !important;
}

.moi-ml-4,
.moi-mx-4 {
  margin-left: 1.5rem !important;
}

.moi-m-5 {
  margin: 3rem !important;
}

.moi-mt-5,
.moi-my-5 {
  margin-top: 1rem !important;
}

.moi-mr-5,
.moi-mx-5 {
  margin-right: 3rem !important;
}

.moi-mb-5,
.moi-my-5 {
  margin-bottom: 3rem !important;
}

.moi-mb-10,
.moi-my-10 {
  margin-bottom: 6rem !important;
}

.moi-img-fluid {
  max-width: 100%;
  height: auto;
}
.moi-ml-5,
.moi-mx-5 {
  margin-left: 3rem !important;
}

.moi-p-0 {
  padding: 0 !important;
}

.moi-pt-0,
.moi-py-0 {
  padding-top: 0 !important;
}

.moi-pr-0,
.moi-px-0 {
  padding-right: 0 !important;
}

.moi-pb-0,
.py-0 {
  padding-bottom: 0 !important;
}

.moi-pl-0,
.moi-px-0 {
  padding-left: 0 !important;
}

.moi-p-1 {
  padding: 0.25rem !important;
}

.moi-pt-1,
.moi-py-1 {
  padding-top: 0.25rem !important;
}

.moi-pr-1,
.moi-px-1 {
  padding-right: 0.25rem !important;
}

.moi-pb-1,
.moi-py-1 {
  padding-bottom: 0.25rem !important;
}

.moi-pl-1,
.moi-px-1 {
  padding-left: 0.25rem !important;
}

.moi-p-2 {
  padding: 0.5rem !important;
}

.moi-pt-2,
.moi-py-2 {
  padding-top: 0.5rem !important;
}

.moi-pr-2,
.moi-px-2 {
  padding-right: 0.5rem !important;
}

.moi-pb-2,
.moi-py-2 {
  padding-bottom: 1rem !important;
}

.moi-pl-2,
.moi-px-2 {
  padding-left: 0.5rem !important;
}

.moi-p-3 {
  padding: 1rem !important;
}

.moi-pt-3,
.moi-py-3 {
  padding-top: 1rem !important;
}

.moi-pr-3,
.moi-px-3 {
  padding-right: 1rem !important;
}

.moi-pb-3,
.moi-py-3 {
  padding-bottom: 1rem !important;
}

.moi-pl-3,
.moi-px-3 {
  padding-left: 1rem !important;
}

.moi-p-4 {
  padding: 1.5rem !important;
}

.moi-gtotal-padding {
  padding-top: 2rem !important;
  padding-bottom: 2rem !important;
}
.moi-total {
  font-size: 20px;
  font-weight: 600;
}
tr.order-total td bdi.moi-price-amount {
  font-size: 20px;
  font-weight: 600 !important;
}
.moi-pt-4,
.moi-py-4 {
  padding-top: 1.5rem !important;
}

.moi-pr-4,
.moi-px-4 {
  padding-right: 1.5rem !important;
}

.moi-pb-4,
.moi-py-4 {
  padding-bottom: 1.5rem !important;
}

.moi-pl-4,
.moi-px-4 {
  padding-left: 1.5rem !important;
}

.moi-p-5 {
  padding: 3rem !important;
}

.moi-pt-5,
.moi-py-5 {
  padding-top: 3rem !important;
}

.pr-5,
.px-5 {
  padding-right: 3rem !important;
}

.moi-pb-5,
.moi-py-5 {
  padding-bottom: 3rem !important;
}

.moi-pl-5,
.moi-px-5 {
  padding-left: 3rem !important;
}

.moi-m-auto {
  margin: auto !important;
}

.moi-mt-auto,
.moi-my-auto {
  margin-top: auto !important;
}

.moi-mr-auto,
.moi-mx-auto {
  margin-right: auto !important;
}

.moi-mb-auto,
.moi-my-auto {
  margin-bottom: auto !important;
}

.moi-ml-auto,
.moi-mx-auto {
  margin-left: auto !important;
}
.moi-text-center {
  text-align: center !important;
}
.moi-text-right {
  text-align: right !important;
}
.moi-text-left {
  text-align: left !important;
}
.moi-joined-club-list {
  background: white;
  padding: 10px;
}
.moi-fs-12 {
  font-size: 12px !important;
}
.moi-fs-14 {
  font-size: 14px !important;
}
.moi-fs-15 {
  font-size: 15px !important;
}
.moi-fs-16 {
  font-size: 16px !important;
}
.moi-fs-17 {
  font-size: 17px !important;
}
.moi-fs-18 {
  font-size: 18px !important;
}
.moi-fs-20 {
  font-size: 20px !important;
}
.moi-fs-22 {
  font-size: 22px !important;
}
.moi-btn:hover,
.moi-btn:focus {
  text-decoration: none;
}
.moi_club_info_preview{text-align:left; }
.moi-overview-subheading {text-align:left; }
#moi_selections_overview_holder .moi-row, #shipment_total_holder .moi-row {text-align:left; }
.moi-product-selection-overview {text-align:left; }
#moi_selections_overview_holder table.shop_table.woocommerce-checkout-review-order-table td, #moi_co_form_wrap table.shop_table.woocommerce-checkout-review-order-table td {text-align:left; }
#moi_selections_overview_holder table.shop_table.woocommerce-checkout-review-order-table tr.cart-subtotal td,
#moi_selections_overview_holder table.shop_table.woocommerce-checkout-review-order-table tr.moi-club-discount-row td,
#moi_selections_overview_holder table.shop_table.woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals td,
#moi_selections_overview_holder table.shop_table.woocommerce-checkout-review-order-table tr.moi-tax-row td,
#moi_selections_overview_holder table.shop_table.woocommerce-checkout-review-order-table tr.order-total td {
  white-space: nowrap;
}
#moi_selections_overview_holder table.shop_table.woocommerce-checkout-review-order-table td.moi-text-right {
  text-align: right;
}
.moi-membership-wrapper .moi-membership-info table td { text-align: left; display: table-cell !important; }
.moi_detail-sub-heading {
  font-weight: 500;
  line-height: 2;
}

.moi-shipment-items {
  box-sizing: border-box;
  padding-left: 13px;
}
.moi-btn:focus,
.moi-btn.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
.mo-shipping-calculated-on-club,
.mo-shipping-calculated-on-checkout {
  color: #9e9e9e;
  font-size: 0.9em;
}

.moi-membership-checkout-part .mo-shipping-calculated-on-club {
  display: none;
}
#moi_save_membership_form .mo-shipping-calculated-on-checkout {
  display: none;
}
.moi-btn.disabled,
.moi-btn:disabled {
  opacity: 0.5;
}

.moi-btn:not(:disabled):not(.disabled) {
  cursor: pointer;
}

.moi-btn:not(:disabled):not(.disabled):active,
.moi-btn:not(:disabled):not(.disabled).active {
  background-image: none;
}
/* .moi-btn-join:hover {
  background: #000 !important;
  border: 1px solid #000 !important;
  color: #fff !important;
} */

div.moi-frequency-card,
.moi-around-padding {
  padding: 0.5rem;
}

#order_review table td {
  font-size: 16px;
}
#order_review table td,
#order_review table td span,
#order_review .woocommerce-Price-amount,
#order_review tr.order-total td,
#order_review tr.order-total td span,
#order_review tr.order-total td bdi,
#order_review tr.order-total .woocommerce-Price-amount {
  color: inherit;
}
.elementor-page .woocommerce .alignwide,
.elementor-page .alignwide,
.elementor-default .alignwide {
  margin-inline: 0px !important;
}
.woocommerce-checkout #payment div.form-row {
  padding: 0px !important;
}
#orignal_payment #moi-card-button,
#stored_payment button {
  padding: 16px 28px !important;
  font-weight: 600;
  font-size: 15px;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  position: relative;
  border-radius: 100px;
}

/* Button loading spinner */
.moi-btn-spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: moi-btn-spin 0.8s linear infinite;
}

@keyframes moi-btn-spin {
  to {
    transform: rotate(360deg);
  }
}

#loadingButtonText {
  display: none;
}

#loadingButtonText.moi-show {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
#moi_co_form_wrap .form-row .input-text {
  line-height: 48px !important;
  padding: 0 15px;
  border: 1px solid #d3ced2;
  height: auto;
}
#moi_co_form_wrap .form-row .input-text:focus {
  border-color: #000 !important;
}
.moi_memberships_content strong,
.moi_loyalty_content strong {
  font-family: inherit !important;
  font-weight: 600 !important;
}
.moi_memberships_content a {
  text-decoration: none !important;
}
.moi_memberships_content table tbody > tr:nth-child(odd) > td,
#moi-loyaltyclub table tbody > tr:nth-child(odd) > td {
  background-color: transparent !important;
  font-size: 16px !important;
  color: #000 !important;
}
select#cancellation_reasons,
select#cancellation_reasons option,
input.moi-form-control.input-text.mail-write-box {
  font-size: 16px !important;
}
#moi-loyalty_club .moi-mt-2.woocommerce-info::before {
  content: none !important;
}
#moi-loyalty_club .moi-mt-2.woocommerce-info {
  font-weight: 600 !important;
  color: #000 !important;
}
.elementor-widget-woocommerce-my-account {
  font-family: inherit !important;
}
@media (min-width: 576px) {
  .moi-sm {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
  }
  .moi-sm-auto {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: none;
  }
  .moi-sm-1 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 8.333333%;
    flex: 0 0 8.333333%;
    max-width: 8.333333%;
  }
  .moi-sm-2 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 16.666667%;
    flex: 0 0 16.666667%;
    max-width: 16.666667%;
  }
  .moi-sm-3 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .moi-sm-4 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 33.333333%;
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
  }
  .moi-sm-5 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 41.666667%;
    flex: 0 0 41.666667%;
    max-width: 41.666667%;
  }
  .moi-sm-6 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .moi-sm-7 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 58.333333%;
    flex: 0 0 58.333333%;
    max-width: 58.333333%;
  }
  .moi-sm-8 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 66.666667%;
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
  }
  .moi-sm-9 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
  }
  .moi-sm-10 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 83.333333%;
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
  }
  .moi-sm-11 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 91.666667%;
    flex: 0 0 91.666667%;
    max-width: 91.666667%;
  }
  .moi-sm-12 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media (min-width: 768px) {
  .moi-md {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    /*max-width: 100%;*/
  }
  .moi-md-auto {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: none;
  }
  .moi-md-1 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 8.333333%;
    flex: 0 0 8.333333%;
    max-width: 8.333333%;
  }
  .moi-md-2 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 16.666667%;
    flex: 0 0 16.666667%;
    max-width: 16.666667%;
  }
  .moi-md-3 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .moi-md-4 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 33.333333%;
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
  }
  .moi-md-5 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 41.666667%;
    flex: 0 0 41.666667%;
    max-width: 41.666667%;
  }
  .moi-md-6 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .moi-md-7 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 58.333333%;
    flex: 0 0 58.333333%;
    max-width: 58.333333%;
  }
  .moi-md-8 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 66.666667%;
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
  }
  .moi-md-9 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
  }
  .moi-md-10 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 83.333333%;
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
  }
  .moi-md-11 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 91.666667%;
    flex: 0 0 91.666667%;
    max-width: 91.666667%;
  }
  .moi-md-12 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
}
@media (min-width: 992px) {
  .moi-lg {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
  }
  .moi-lg-auto {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: none;
  }
  .moi-lg-1 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 8.333333%;
    flex: 0 0 8.333333%;
    max-width: 8.333333%;
  }
  .moi-lg-2 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 16.666667%;
    flex: 0 0 16.666667%;
    max-width: 16.666667%;
  }
  .moi-lg-3 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .moi-lg-4 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 33.333333%;
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
  }
  .moi-lg-5 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 41.666667%;
    flex: 0 0 41.666667%;
    max-width: 41.666667%;
  }
  .moi-lg-6 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .moi-lg-7 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 58.333333%;
    flex: 0 0 58.333333%;
    max-width: 58.333333%;
  }
  .moi-lg-8 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 66.666667%;
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
  }
  .moi-lg-9 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
  }
  .moi-lg-10 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 83.333333%;
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
  }
  .moi-lg-11 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 91.666667%;
    flex: 0 0 91.666667%;
    max-width: 91.666667%;
  }
  .moi-lg-12 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
}
.moi-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  /*margin-right: -15px;*/
  /*margin-left: -15px;*/
}
@media screen and (min-width: 992px) and (max-width: 1200px) {
  #moi_clubs_list .moi-lg-4 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50% !important;
  }
}
@media (min-width: 1200px) {
  .moi-xl {
    -ms-flex-preferred-size: 0;
    flex-basis: 0;
    -webkit-box-flex: 1;
    -ms-flex-positive: 1;
    flex-grow: 1;
    max-width: 100%;
  }
  .moi-xl-auto {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 auto;
    flex: 0 0 auto;
    width: auto;
    max-width: none;
  }
  .moi-xl-1 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 8.333333%;
    flex: 0 0 8.333333%;
    max-width: 8.333333%;
  }
  .moi-xl-2 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 16.666667%;
    flex: 0 0 16.666667%;
    max-width: 16.666667%;
  }
  .moi-xl-3 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 25%;
    flex: 0 0 25%;
    max-width: 25%;
  }
  .moi-xl-4 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 33.333333%;
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
  }
  .moi-xl-5 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 41.666667%;
    flex: 0 0 41.666667%;
    max-width: 41.666667%;
  }
  .moi-xl-6 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .moi-xl-7 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 58.333333%;
    flex: 0 0 58.333333%;
    max-width: 58.333333%;
  }
  .moi-xl-8 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 66.666667%;
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
  }
  .moi-xl-9 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 75%;
    flex: 0 0 75%;
    max-width: 75%;
  }
  .moi-xl-10 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 83.333333%;
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
  }
  .moi-xl-11 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 91.666667%;
    flex: 0 0 91.666667%;
    max-width: 91.666667%;
  }
  .moi-xl-12 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }
  .moi-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    /*margin-right: -15px;*/
    /*margin-left: -15px;*/
  }
}
@media (max-width: 1326px) {
  .moi-class1 {
    text-align: center;
  }
}
@media (max-width: 1052px) {
  .moi-class1 {
    text-align: center;
  }
  .moi-special {
    text-align: center;
    font-size: 25px;
  }
  .moi-button.moi-button {
    text-align: center;
    margin-left: 368px;
  }
  .moi-container {
    text-align: center;
    font-size: 23px;
  }
  .moi-form-group {
    margin-bottom: 1rem;
  }
}
.moi-container-checkbox {
  display: block;
  position: relative;
  margin-bottom: 12px;
  cursor: pointer;
  font-size: 15px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Hide the browser's default radio button */
.moi-container-checkbox input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
}

/* Create a custom radio button */
.moi-checkmark {
  position: absolute;
  top: 6px;
  left: 40px;
  height: 16px;
  width: 16px;
  background-color: #eee;
  border-radius: 50%;
}

/* On mouse-over, add a grey background color */
.moi-container-checkbox:hover input ~ .moi-checkmark {
  background-color: #ccc;
}

/* When the radio button is checked, add a blue background */
.moi-container-checkbox input:checked ~ .moi-checkmark {
  background-color: #2196f3;
}

/* Create the indicator (the dot/circle - hidden when not checked) */
.moi-checkmark:after {
  content: '';
  position: absolute;
  display: none;
}

/* Show the indicator (dot/circle) when checked */
.moi-container-checkbox input:checked ~ .moi-checkmark:after {
  display: block;
}

.moi_club_info_preview a {
  text-decoration: underline !important;
  font-family: inherit !important;
}
/* Frequency heading - match SELECTED PRODUCTS style */
.moi-overview-subheading,
.moi-overview-subheading strong {
  font-size: 10px !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--moi-text-muted);
}
.moi-vertical-top .product-name,
.moi-vertical-top .product-quantity,
.moi-vertical-top .woocommerce-Price-amount {
  font-size: 16px;
  color: #333333;
  font-weight: 400;
  font-family: inherit;
}
.moi_memberships_content .moi-vertical-top .product-name {
  font-size: 20px !important;
}
.moi_memberships_content .moi-membership-buttons button {
  font-size: 14px !important;
  text-transform: uppercase;
}
/* Style the indicator (dot/circle) */
.moi-container-checkbox .moi-checkmark:after {
  top: 4px;
  left: 4px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: white;
}
/* typo below */
/* .moi-schedule-box {
  padding: 20px;
  border: 1px solid #cfc8c8;
  border-radius: 10px;
} */
.moi-loader-center {
  justify-content: center;
  display: flex;
}
/* Old .moi-section-header removed - now using new BEM-style version above */
/* .moi-section-header-noclick {
  cursor: default;
  font-family: inherit;
}
.moi-section-header-noclick strong {
  font-weight: 600;
  font-family: inherit !important;
} */
.moi-noclick {
  cursor: default !important;
  font-family: inherit;
}
.moi-dob {
  width: 30% !important;
  margin-top: 0 !important;
}
.moi-dob-month {
  margin-left: 40px !important;
}
#customer_details .woocommerce-ordering::after {
  position: absolute;
  right: 1px;
  top: auto !important;
  bottom: 20px !important;
}
@media (max-width: 992px) {
  .moi-three-col {
    flex: 0 0 50%;
    max-width: 50%;
  }
}
@media screen and (max-width: 600px) {
  .moi-dob-month {
    margin-left: 20px !important;
  }
}
.moi-loader {
  border: 10px solid #e7e9eb;
  border-radius: 50%;
  border-top: 10px solid #00000085;
  width: 40px;
  height: 40px;
  -webkit-animation: spin 2s linear infinite; /* Safari */
  animation: spin 1s linear infinite;
}

.moi-loader-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  text-align: center;
}

.moi-loader-wrapper .moi-loader {
  border-width: 3px;
  border-color: rgba(0, 0, 0, 0.1);
  border-top-color: #5a5a5a;
  width: 32px;
  height: 32px;
  animation: spin 0.85s linear infinite;
}

.moi-loader-wrapper p {
  margin-top: 12px;
  color: #666;
  font-size: 14px;
}

#payment-element .moi-payment-loader {
  min-height: 80px;
}

#payment-element .moi-payment-loader .moi-loader {
  border-width: 2px;
  border-color: rgba(0, 0, 0, 0.12);
  border-top-color: #5a5a5a;
  width: 36px;
  height: 36px;
  animation: spin 0.85s linear infinite;
  margin: 0 auto;
}

#loading-bar-spinner.spinner {
  /*left: 50%;*/
  /*margin-left: -20px;*/
  /*top: 50%;*/
  /*margin-top: -20px;*/
  position: absolute;
  z-index: 19 !important;
  animation: loading-bar-spinner 400ms linear infinite;
  margin: 1% 4% 4% 4%;
}

div.location_holder #loading-bar-spinner.spinner {
  margin: -5px 0 0 2%;
}

/* Pickup Locations Card Styling */
div.location_holder:not(:empty) {
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  padding: var(--moi-space-lg);
  margin: var(--moi-space-lg) 0;
  background: var(--moi-bg);
}

div.location_holder #moi_location_title_holder {
  margin-bottom: var(--moi-space-sm);
  padding-bottom: 0 !important;
}

div.location_holder .form-row {
  display: flex;
  align-items: flex-start;
  gap: var(--moi-space-sm);
  margin-bottom: var(--moi-space-md);
  padding: 0;
}

div.location_holder .form-row:last-of-type {
  margin-bottom: 0;
}

div.location_holder .form-row label {
  font-size: 14px;
  font-weight: 400;
  color: var(--moi-text);
  line-height: 1.4;
  cursor: pointer;
}

div.location_holder input[type="radio"] {
  margin-top: 2px;
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  cursor: pointer;
  /* Custom radio button styling */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border: 2px solid #999;
  border-radius: 50%;
  background: white;
  position: relative;
}

div.location_holder input[type="radio"]:checked {
  border-color: #333;
  background: white;
}

div.location_holder input[type="radio"]:checked::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  background: #333;
  border-radius: 50%;
}

/* Billing address toggle wrapper alignment */
.billing_add_wrapper {
  display: flex !important;
  align-items: center;
  gap: var(--moi-space-sm);
  font-size: 15px;
  font-weight: 500;
  color: var(--moi-text);
  margin-top: var(--moi-space-md);
}

/* Billing address section padding */
#moi_membership_billing_address {
  padding-bottom: var(--moi-space-lg);
}

#moi_membership_billing_address::after {
  content: '';
  display: block;
  clear: both;
  height: var(--moi-space-sm);
}

#loading-bar-spinner.spinner .spinner-icon {
  width: 40px;
  height: 40px;
  border: solid 4px transparent;
  border-top-color: #666 !important;
  border-left-color: #666 !important;
  border-radius: 50%;
}
#loading-bar-spinner.spinner .spinner_custom_icon {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: transparent;
  z-index: 2;
  width: 25px;
  height: 25px;
  border: solid 2px transparent;
  border-top-color: #fff !important;
  border-left-color: #fff !important;
  border-radius: 50%;
}
#moi_save_membership_form .custom_select_btn,
#moi_selections_overview_holder .custom_select_btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 120px;
  min-height: 44px;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.7px;
}

.moi-spin-loader-custom {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.moi-md-6 .message-link-desktopView .message-link-mobileView {
  display: none !important;
}
#loading-bar-spinner.spinner .spinner-icon-small {
  width: 15px;
  height: 14px;
  border: solid 2px transparent;
}

@keyframes loading-bar-spinner {
  0% {
    transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

/* Safari */
@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
  }
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.moi-table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 1rem;
  background-color: transparent;
}

.moi-table th,
.moi-table td {
  padding: 0.75rem;
  vertical-align: top;
  border-top: 1px solid #dee2e6;
}

.moi-table thead th {
  vertical-align: bottom;
  border-bottom: 2px solid #dee2e6;
}

.moi-table tbody + tbody {
  border-top: 2px solid #dee2e6;
}

.moi-table .moi-table {
  background-color: #fff;
}

.moi-table-sm th,
.moi-table-sm td {
  padding: 0.3rem;
}

.moi-table-bordered {
  border: 1px solid #dee2e6;
}

.moi-table-bordered th,
.moi-table-bordered td {
  border: 1px solid #dee2e6;
}

.moi-table-bordered thead th,
.moi-table-bordered thead td {
  border-bottom-width: 2px;
}

.moi-table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(0, 0, 0, 0.05);
}

.moi-table-hover tbody tr:hover {
  background-color: rgba(0, 0, 0, 0.075);
}

.moi-table-primary,
.moi-table-primary > th,
.moi-table-primary > td {
  background-color: #b8daff;
}

.moi-table-hover .moi-table-primary:hover {
  background-color: #9fcdff;
}

.moi-table-hover .moi-table-primary:hover > td,
.moi-table-hover .moi-table-primary:hover > th {
  background-color: #9fcdff;
}

.moi-table-secondary,
.moi-table-secondary > th,
.moi-table-secondary > td {
  background-color: #d6d8db;
}

.moi-table-hover .moi-table-secondary:hover {
  background-color: #c8cbcf;
}

.moi-table-hover .moi-table-secondary:hover > td,
.moi-table-hover .moi-table-secondary:hover > th {
  background-color: #c8cbcf;
}

.moi-table-success,
.moi-table-success > th,
.moi-table-success > td {
  background-color: #c3e6cb;
}

.moi-table-hover .moi-table-success:hover {
  background-color: #b1dfbb;
}

.moi-table-hover .moi-table-success:hover > td,
.moi-table-hover .moi-table-success:hover > th {
  background-color: #b1dfbb;
}

.moi-table-info,
.moi-table-info > th,
.moi-table-info > td {
  background-color: #bee5eb;
}

.moi-table-hover .moi-table-info:hover {
  background-color: #abdde5;
}

.moi-table-hover .moi-table-info:hover > td,
.moi-table-hover .moi-table-info:hover > th {
  background-color: #abdde5;
}

.moi-table-warning,
.moi-table-warning > th,
.moi-table-warning > td {
  background-color: #ffeeba;
}

.moi-table-hover .moi-table-warning:hover {
  background-color: #ffe8a1;
}

.moi-table-hover .moi-table-warning:hover > td,
.moi-table-hover .moi-table-warning:hover > th {
  background-color: #ffe8a1;
}

.moi-table-danger,
.moi-table-danger > th,
.moi-table-danger > td {
  background-color: #f5c6cb;
}

.moi-table-hover .moi-table-danger:hover {
  background-color: #f1b0b7;
}

.moi-table-hover .moi-table-danger:hover > td,
.moi-table-hover .moi-table-danger:hover > th {
  background-color: #f1b0b7;
}

.moi-table-light,
.moi-table-light > th,
.moi-table-light > td {
  background-color: #fdfdfe;
}

.moi-table-hover .moi-table-light:hover {
  background-color: #ececf6;
}

.moi-table-hover .moi-table-light:hover > td,
.moi-table-hover .moi-table-light:hover > th {
  background-color: #ececf6;
}

.moi-table-dark,
.moi-table-dark > th,
.moi-table-dark > td {
  background-color: #c6c8ca;
}

.moi-table-hover .moi-table-dark:hover {
  background-color: #b9bbbe;
}

.moi-table-hover .moi-table-dark:hover > td,
.moi-table-hover .moi-table-dark:hover > th {
  background-color: #b9bbbe;
}

.moi-table-active,
.moi-table-active > th,
.moi-table-active > td {
  background-color: rgba(0, 0, 0, 0.075);
}

.moi-table-hover .moi-table-active:hover {
  background-color: rgba(0, 0, 0, 0.075);
}

.moi-table-hover .moi-table-active:hover > td,
.moi-table-hover .moi-table-active:hover > th {
  background-color: rgba(0, 0, 0, 0.075);
}

.moi-table .thead-dark th {
  color: #fff;
  background-color: #212529;
  border-color: #32383e;
}

.moi-table .thead-light th {
  color: #495057;
  background-color: #e9ecef;
  border-color: #dee2e6;
}

.moi-table-dark {
  color: #fff;
  background-color: #212529;
}

.moi-table-dark th,
.moi-table-dark td,
.moi-table-dark thead th {
  border-color: #32383e;
}

.moi-table-dark.moi-table-bordered {
  border: 0;
}

.moi-table-dark.moi-table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(255, 255, 255, 0.05);
}

.moi-table-dark.moi-table-hover tbody tr:hover {
  background-color: rgba(255, 255, 255, 0.075);
}

span.transect_badge {
  font-weight: 700;
  font-size: 14px;
  padding: 9px !important;
  margin: 0;
}

.error,
.required {
  color: rgba(255, 0, 0, 0.7);
}

/* Validation error labels */
label.error {
  color: #dc3545 !important;
  font-size: 13px;
  font-weight: 400;
  display: block;
  margin-top: 4px;
}

/* DOB field validation errors */
.moi-dob label.error {
  color: #dc3545 !important;
  font-size: 12px;
  margin-top: 4px;
  display: block;
  width: 100%;
}
.moi-ajax-loader-area .moi-loading-image {
  width: 100px;
}
.moi-ajax-loader-area {
  width: 100%;
  justify-content: center;
  display: flex;
}
.moi_payment_wrappper {
  background: none !important;
  border-radius: 12px !important;
}

/*#moi_clubs_wrap #moi_clubs_list .moi-club-card {*/
/*  min-width: 350px !important;*/
/*}*/

.moi-club-card .moi-club-price {
  margin-top: 7px;
  margin-bottom: 7px;
}

.moi-club-card {
  position: relative;
  box-sizing: border-box;
  padding: 15px;
  min-height: 280px;
}
.moi-club-card-with-img {
  height: 600px;
}
.moi-club-card .moi-club-img {
  height: 300px;
}
.moi-club-card .moi-club-img img {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.moi-schedule-card {
  box-sizing: border-box;
  margin: 3px 20px 3px 0;
  padding: 7px 14px;
  cursor: pointer;
  display: table-cell;
  vertical-align: middle;
  text-align: center;
  min-height: 160px;
  min-width: 180px;
  width: 23%;
  height: 160px;
  max-width: 230px;
  max-height: 200px;
  position: relative;
}

.moi-remove-shipment-btn {
  position: absolute;
  top: 2px;
  right: 7px;
  font-size: 18px;
}
.moi_selected_frequency .moi-schedule-card {
  color: #b0b0b0;
  transition: color 0.3s ease-in-out, border 0.3s ease-in-out;
}
.moi_selected_frequency .moi-schedule-card strong {
  color: #000;
}
.moi_schedules_list
  .moi_selected_frequency
  .moi-frequency-card
  .moi-schedule-card
  strong {
  color: #000;
}
.moi-club-custom .moi-schedule-card {
  cursor: default;
}
.moi-remove-shipment-icon {
  padding: 2px;
  color: #9e9e9e;
  transition: color 0.3s ease-in-out;
}
.moi-remove-shipment-icon:hover,
.moi-remove-shipment-icon:focus {
  color: #464343;
  cursor: pointer;
}

.moi-frequency-card {
  flex: 0 0 23%;
}

.moi-schedule-card,
.moi-club-card,
.moi-product-card-content {
  border: 1px solid #dedede;
  border-radius: 10px;
  transition: border 0.3s ease-in-out;
}
.moi-schedule-card:hover,
.moi-product-card-content:hover {
  border: 1px solid black;
  color: inherit;
}
.moi-schedule-card.active {
  color: inherit;
  cursor: default;
}

span.moi_schedule_shipment_date_date {
  text-transform: capitalize;
}
.moi-joined-club-card {
  border: 2px solid #dedede;
  box-sizing: border-box;
  margin: 3px 20px 3px 0;
  padding: 7px 14px;
  height: 100px;
  /*display: table-cell;*/
  /*  vertical-align: middle;
    text-align: center;*/
}
.moi-product-card .moi_active_cart_product_row,
.moi-schedule-card.active,
.moi-schedule_specific_dates .moi-schedule-card,
.moi-club-card.active {
  border: 1px solid black !important;
}

.moi-shipment-card.moi-shipment-empty {
  border-color: var(--moi-error) !important;
  background: rgba(220, 53, 69, 0.04);
}
/* Old float/width removed - now using CSS grid in .moi-widget-layout */
#moi_cart_product_holder {
  /* Grid child - no width/float needed */
}
/* Old float/width removed - now using CSS grid in .moi-widget-layout */
#moi_selections_overview_holder {
  box-sizing: border-box;
}
#moi_selections_overview_holder .shop_table {
  margin: 0 !important;
  border: none !important;
}
#moi_selections_overview_holder .shop_table thead {
  display: block !important;
  border: none !important;
  margin: 0 !important;
}
#moi_selections_overview_holder .shop_table tbody {
  border: none !important;
  margin: 0 !important;
  border-bottom: 1px solid #dedede !important;
}
#moi_modal_membership_widget #moi_load_selected_calculations .shop_table tbody {
  border-bottom: 0px !important;
}
#moi_save_membership_form .woocommerce-checkout-review-order,
#moi_selections_overview_holder .woocommerce-checkout-review-order {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06), 0 4px 16px rgba(0, 0, 0, 0.04) !important;
  padding: 0 !important;
  border-radius: 12px !important;
  border: 1px solid #e5e7eb !important;
}
#moi_modal_membership_widget #moi_selections_overview_holder .woocommerce-checkout-review-order {
  box-shadow: 0 1px 7px 0 rgba(0, 0, 0, 0.15) !important
}
#moi_selections_overview_holder .moi-shipment-items {
  padding-left: 7px;
  box-sizing: border-box;
}
#moi_save_membership_form
  table.shop_table.woocommerce-checkout-review-order-table,
#moi_selections_overview_holder
  table.shop_table.woocommerce-checkout-review-order-table {
  border-collapse: collapse;
  width: 100%;
}
#moi_selections_overview_holder
  table.shop_table.woocommerce-checkout-review-order-table
  td,
#moi_co_form_wrap table.shop_table.woocommerce-checkout-review-order-table td {
  background-color: transparent;
}
.woocommerce table.shop_table td,
.woocommerce table.shop_table th {
  border: none !important;
  padding: 16px !important;
}

.moi-shipment-product-wrapper .moi-product-card {
  margin-top: 7px;
}
span.moi-shipments-listing2,
span.moi-shipments-listing {
  font-size: 12px;
  display: inline-block;
  background: var(--moi-bg-secondary, #f5f5f5);
  border: 1px solid var(--moi-border-light, #e5e5e5);
  border-radius: 100px;
  padding: 6px 14px !important;
  margin-right: 6px !important;
  margin-bottom: 6px !important;
  cursor: default;
  color: var(--moi-text-muted, #666);
}
span.moi-shipments-listing2 {
  border: 1px solid var(--moi-border-light, #e5e5e5) !important;
}
#moi_selections_overview_holder .moi-row,
#shipment_total_holder .moi-row {
  margin-top: 10px;
}
#moi_selections_overview_holder .moi-row .moi-lg-12 {
  display: flex !important;
  flex-wrap: wrap !important;
}

.moi-select-btn {
  bottom: 0;
  position: absolute;
  width: 100%;
}

.moi-select-btn .moi-add-prod-btn {
  width: 90%;
  max-width: 174px;
  min-width: 110px;
  min-height: 44px;
  position: relative;
}

.moi_single_club_row:hover {
  cursor: pointer;
}

#moi_save_membership_form .moi-club-btn-wrap {
  position: absolute;
  bottom: 16px;
  width: 40%;
}

.moi-justify-center {
  justify-content: center !important;
}
.moi-product-card-content {
  padding: 15px 5px 15px 15px !important;
  min-height: 180px;
  /*margin: 0 15px 15px 0px !important;*/
}
.moi-product-max-qty,
.moi-product-min-qty {
  font-size: 14px;
  margin: 4px 0px;
  padding-right: 10px;
  padding-left: 5px;
}
#moi_cart_product_holder .moi-product-card .moi-img-two-col,
#modal_products_container .moi-product-card .moi-img-two-col,
#moi_cart_product_holder .moi-product-card .moi-product-card-inner .moi-img-two-col,
#modal_products_container .moi-product-card .moi-product-card-inner .moi-img-two-col {
  height: 212px;
}
#moi_cart_product_holder .moi-product-card .moi-img-three-col,
#modal_products_container .moi-product-card .moi-img-three-col,
#moi_cart_product_holder .moi-product-card .moi-product-card-inner .moi-img-three-col,
#modal_products_container .moi-product-card .moi-product-card-inner .moi-img-three-col,
#moi_cart_product_holder .moi-product-card .moi-img-three-col img,
#modal_products_container .moi-product-card .moi-img-three-col img {
  height: auto !important;
  object-fit: contain;
  vertical-align: top;
}
#moi_cart_product_holder .moi-product-card .moi-img-three-col,
#modal_products_container .moi-product-card .moi-img-three-col{ height: 180px !important;}
#moi_shipment_holder .moi-product-card .moi-image-warp img {
  max-height: 92px;
}

#moi_cart_product_holder .moi-product-card .moi-img-two-col img,
#modal_products_container .moi-product-card .moi-img-two-col img  {
  max-height: 212px;
}
.moi-product-card .moi-product-card-inner {
  padding: 0 0 0 10px;
  box-sizing: border-box;
}
.moi-continue-btn-warper {
  margin-top: 50px;
}
.moi-product_image-warp img {
  height: inherit !important;
}

.clearfix:after {
  content: '';
  display: table;
  clear: both;
}

.moi_custom_schedule_date {
  margin-bottom: 10px !important;
}

i.fa.fa-plus-circle.moi-left:hover {
  cursor: pointer !important;
}

i.fa.fa-minus-circle.moi-right:hover {
  cursor: pointer !important;
}

.moi_container {
  max-width: 1000px !important;
  margin: auto !important;
}

a.moi-disable-remove {
  cursor: pointer;
  color: gray;
}
a.moi-remove-disabled {
  pointer-events: none;
  opacity: 0.3;
  cursor: not-allowed;
}
/* Modal Backdrop */
.moi-modal {
  display: none;
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: rgba(0, 0, 0, 0.5);
  /* Flexbox centering */
  align-items: center;
  justify-content: center;
}
.moi-modal[style*="display: block"],
.moi-modal[style*="display:block"] {
  display: flex !important;
}
#update_address_modal .moi-modal-body input[type="checkbox"]{
  width: auto !important;
}
/* Modal Content */
.moi-modal-content {
  position: relative;
  background-color: #fefefe;
  color: var(--moi-text);
  padding: 0;
  border: 1px solid #ddd;
  border-radius: 10px;
  width: 100%;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  animation: moi-modal-fade-in 0.3s ease-out;
  overflow: hidden;
}

.moi-modal-body,
.moi-modal-footer {
  padding: 10px 25px !important;
  color: var(--moi-text);
}

/* Ensure modal text is visible on Elementor sites only */
body.elementor-page .moi-modal .moi-modal-content,
body.elementor-page .moi-modal .moi-modal-body,
body.elementor-page .moi-modal .moi-modal-body p,
body.elementor-page .moi-modal .moi-modal-body span,
body.elementor-page .moi-modal .moi-modal-body li,
body.elementor-page .moi-modal .moi-modal-body div {
  color: #333 !important;
}

.moi-modal-body input:not([type="checkbox"]):not([type="radio"]) {
  width: 100%;
  text-align: left;
  padding: 12px 14px !important;
  margin: 0;
  line-height: 1.5 !important;
  height: 46px !important;
  min-height: 0 !important;
  max-height: 46px !important;
  box-sizing: border-box !important;
  font-size: 14px !important;
}

/* Login modal specific styling */
#loginModal .moi-modal-body input {
  height: 46px !important;
  max-height: 46px !important;
  padding: 12px 14px !important;
  font-size: 14px !important;
  border: 1px solid var(--moi-border) !important;
  border-radius: var(--moi-radius-md) !important;
}
#moi_update_payment #moi-card-holder-name,
#update_payment_modal #moi-card-holder-name {
  line-height: 1.5 !important;
  padding: 12px 14px !important;
  border: 1px solid var(--moi-border) !important;
  font-family: inherit;
  font-weight: 400;
  letter-spacing: normal;
  display: block;
  background-color: var(--moi-bg) !important;
  border-radius: var(--moi-radius-md) !important;
  color: var(--moi-text) !important;
  box-sizing: border-box !important;
  width: 100%;
  margin: 0;
  height: auto !important;
  font-size: 14px !important;
}
#update_address_modal .moi-modal-body input[type="radio"]{
  width: auto !important;
}
/* Modal Animation */
@keyframes moi-modal-fade-in {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Modal Close Button - Standardized */
.moi-modal-close,
.moi-close,
.moi-close-btn {
  position: absolute;
  top: 15px;
  right: 20px;
  font-size: 28px;
  font-weight: 400;
  line-height: 1;
  color: #999;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 1;
}

.moi-modal-close:hover,
.moi-modal-close:focus,
.moi-close:hover,
.moi-close:focus,
.moi-close-btn:hover,
.moi-close-btn:focus {
  color: #333;
  text-decoration: none;
}

.moi-modal-footer {
  text-align: right;
  padding: 15px 25px;
  border-top: 1px solid #eee;
}

/* Modal error and success message styles */
.moi-modal-error {
  color: #dc3545;
  background-color: #f8d7da;
  border: 1px solid #f5c6cb;
}

.moi-modal-success {
  color: #155724;
  background-color: #d4edda;
  border: 1px solid #c3e6cb;
}

.moi-modal-error,
.moi-modal-success {
  font-size: 14px;
  font-weight: 400;
  margin-bottom: 10px;
  padding: 8px 12px;
  text-align: left;
  border-radius: 4px;
  display: block;
  width: 100%;
}

/* Modal Dialog - Consistent Centering */
.moi-modal-dialog {
  position: relative;
  width: 90%;
  margin: 20px;
  max-width: 800px;
  max-height: calc(100vh - 40px);
  overflow: hidden;
}

/* Modal Size Variants */
.moi-modal-lg {
  max-width: 900px;
}

.moi-modal-md,
.moi-modal-view-shipment-md {
  max-width: 700px;
}
/* Modal Body Scrolling */
.moi-modal .moi-modal-body {
  overflow-y: auto;
  max-height: 60vh;
}

#update_address_modal .moi-modal-body {
  max-height: 70vh;
}

/* Modal Header */
.moi-modal-header {
  position: relative;
  padding: 15px 25px;
  padding-right: 50px;
  background: #fff;
  text-align: left;
  border-bottom: 1px solid #eee;
}

.moi-modal-header .club_title_val {
  color: #333;
}

/* Modal Body */
.moi-modal-body {
  background: #fff;
  padding: 20px 25px;
  text-align: left;
}

#edit_membership_modal .moi-modal-content {
  display: flex;
  flex-direction: column;
  max-height: calc(100vh - 40px);
}

#edit_membership_modal .moi-modal-body {
  overflow-y: auto;
  flex: 1;
  min-height: 200px;
}

#edit_membership_modal .moi-modal-footer {
  flex-shrink: 0;
  border-top: 1px solid #e5e5e5;
  padding: 15px 20px;
  background: #fff;
}

.moi-modal-xl {
  max-width: 1200px;
}
/* Modal Loading State */
.moi-modal-loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.97);
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}

.moi-modal-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 150px;
  padding: 40px 20px;
}

.moi-modal-loading .moi-loader {
  border-width: 3px;
  width: 32px;
  height: 32px;
}

.moi-modal-loading-text {
  margin-top: 15px;
  color: #666;
  font-size: 14px;
}

/* Tab Content Loading State */
.moi-tab-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  padding: 40px 20px;
}

.moi-tab-loading .moi-loader {
  border-width: 4px;
  width: 40px;
  height: 40px;
}

.moi-tab-loading-text {
  margin-top: 15px;
  color: #666;
  font-size: 14px;
}

.moi-sub-heading {
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
  margin-bottom: 5px;
}

.bb_wrapper {
  border-bottom: 1px rgba(220, 216, 231, 0.87) solid !important;
  padding-bottom: 20px !important;
}

.tbl_bb {
  border-bottom: 1px rgba(220, 216, 231, 0.87) solid !important;
}
.tbl_bt {
  border-top: 1px rgba(220, 216, 231, 0.87) solid !important;
}

.moi-text-center {
  text-align: center;
}

#moi_save_membership_form {
  width: 100%;
  margin-bottom: 5%;
}
.moi-col-25 {
  width: 25%;
  margin-right: 15px;
}

.moi-25 {
  width: 25%;
}

.checkout-btn {
  background-color: rgb(161 141 93);
  color: #fff;
  font-size: 1rem;
  margin: 0 !important;
  width: 100%;
  font-weight: 600;
  position: relative;
  z-index: 5;
}
.checkout-btn:hover {
  color: #fff !important;
}
.main_header1.moi-text-center.moi-mt-5 {
  margin: 0 1rem 0.5rem;
  font-weight: bold;
}
.checkout-btn:before {
  content: '';
  position: absolute;
  background-color: rgb(161 141 93);
  height: 100%;
  width: 0%;
  top: 0;
  right: 0;
  left: unset;
  z-index: -1;
  transition: all 0.4s ease-in-out;
}
.checkout-btn:hover:before {
  width: 100%;
  left: 0;
  right: unset;
}
.moi-margin-0 {
  margin: 0px !important;
}
.mb-15 {
  margin-bottom: 15px !important;
}
.mb-25 {
  margin-bottom: 255px !important;
}

.mb-40 {
  margin-bottom: 40px !important;
}

.mt-15 {
  margin-top: 15px !important;
}
.mt-40 {
  margin-top: 40px !important;
}
.text-danger {
  color: red;
  font-weight: 600;
}
.moi_add_to_cart {
  background-color: black;
}

.moi-configurations .col-25 {
  float: left;
  width: 25%;
  margin-top: 6px;
}

.clearfix {
  overflow: auto;
}

.clearfix::after {
  content: '';
  clear: both;
  display: table;
}

.moi-lg-6 {
  -webkit-box-flex: 0;
  -ms-flex: 0 0 50%;
  flex: 0 0 50%;
  max-width: 50%;
}

.red,
.warn {
  color: red;
  font-weight: 600;
}

.primary {
  color: green;
}

th.woocommerce-orders-table__header {
  text-align: center !important;
}

td.woocommerce-orders-table__cell.woocommerce-orders-table__cell-order-number {
  text-align: center !important;
}

td.moi-actions a {
  margin-left: 10px !important;
}

div.moi-custom-loader {
  visibility: visible;
  align-items: center;
  background: #212529;
  display: flex;
  height: 100vh;
  justify-content: center;
  left: 0;
  position: fixed;
  top: 0;
  transition: opacity 0.2s linear;
  width: 100%;
  z-index: 10000;
  opacity: 0.8;
  /*transform: opacity 1s linear;*/
}
div.moi-custom-loader .moi-loading-image {
  width: 100px;
}

div.moi-chat-messages .chat-system .moi-message {
  display: flex;
  align-items: center;
}

div.moi-chat-messages .chat-system .moi-vendor-bag .moi-bubble {
  background: #d9d9d973;
}

div.chat-system .moi-customer-bag {
  justify-content: end;
}

div.moi-chat-messages .message_dated {
  text-align: right;
  color: gray;
  font-size: 13px;
}
div.moi-chat-messages .chat-system .moi-bubble {
  background: #d9d9d973;
  border-radius: 10px;
  margin-bottom: 7px;
  padding: 10px;
  max-width: 80%;
}

div.moi-chat-write-box-wrap {
  display: flex;
}

div.moi-chat-messages .chat-system-top-msg .moi-bubble {
  max-width: 100% !important;
}

div.moi-chat-messages .chat-system-top-msg {
  margin-bottom: 30px;
}
div.moi-chat-messages .moi-chat-usr-logo {
  border-radius: 50%;
  margin-top: 23px;
  width: 30px;
}
div.moi-chat-write-box-wrap input {
  width: 83%;
  padding: 0 25px 0 25px;
  border: 1px dotted #ddd;
}

div.moi-chat-messages {
  overflow-y: auto;
  max-height: 400px;
  padding-left: 15px;
  padding-right: 15px;
  min-height: 300px;
  border: 1px solid #bebebe;
  margin-top: 10px;
  margin-bottom: 20px;
  border-radius: 10px;
}

div.moi-chat-messages .active-chat {
  padding: 10px 0;
}

.woosw-copy-btn input[type='button'],
.form-submit input[type='submit'],
button[type='submit'],
.wp-block-search .wp-block-search__button,
form input[type='submit'],
.button {
  padding: 9px 12px 10px !important;
}
.overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none; /* Allows events to pass through the overlay */
}

div.chat-system .date_size {
  font-size: 10px;
  float: right;
}

/* Air Datepicker Overrides */
.air-datepicker-global-container {
  z-index: 10000 !important;
}

.air-datepicker {
  --adp-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --adp-font-size: 14px;
  --adp-width: 300px;
  --adp-padding: 8px;
  --adp-border-radius: 12px;
  --adp-border-color: #e5e7eb;
  --adp-border-color-inner: #f3f4f6;
  --adp-background-color: #fff;
  --adp-background-color-hover: #f9fafb;
  --adp-background-color-active: #f3f4f6;
  --adp-color: #1f2937;
  --adp-color-secondary: #6b7280;
  --adp-accent-color: #111827;
  --adp-color-current-date: #111827;
  --adp-color-other-month: #d1d5db;
  --adp-color-other-month-hover: #9ca3af;
  --adp-color-disabled: #d1d5db;
  --adp-day-name-color: #6b7280;
  --adp-day-name-color-hover: #374151;
  --adp-cell-border-radius: 8px;
  --adp-cell-background-color-selected: #111827;
  --adp-cell-background-color-selected-hover: #374151;
  --adp-cell-background-color-in-range: rgba(17, 24, 39, 0.1);
  --adp-cell-background-color-in-range-hover: rgba(17, 24, 39, 0.15);
  --adp-cell-border-color-in-range: #111827;
  --adp-nav-height: 40px;
  --adp-nav-arrow-color: #6b7280;
  --adp-nav-action-size: 36px;
  --adp-day-cell-height: 40px;
  --adp-month-cell-height: 48px;
  --adp-year-cell-height: 56px;
  --adp-btn-color: #111827;
  --adp-btn-color-hover: #fff;
  --adp-btn-background-color-hover: #111827;
  --adp-btn-background-color-active: #374151;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12), 0 2px 6px rgba(0, 0, 0, 0.04);
}

.air-datepicker-nav--title {
  font-weight: 600;
  font-size: 15px;
}

.air-datepicker-nav--action:hover {
  background: var(--adp-background-color-hover);
}

.air-datepicker-nav--action path {
  stroke-width: 2.5px;
}

.air-datepicker-body--day-name {
  font-weight: 500;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.air-datepicker-cell.-day- {
  font-weight: 500;
}

.air-datepicker-cell.-selected- {
  font-weight: 600;
}

.air-datepicker-cell.-current- {
  font-weight: 700;
}

.air-datepicker-cell.-current-::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: 50%;
  transform: translateX(-50%);
  width: 4px;
  height: 4px;
  background: var(--adp-accent-color);
  border-radius: 50%;
}

.air-datepicker-cell.-current-.-selected-::after {
  background: #fff;
}

.air-datepicker-body--cells.-months- .air-datepicker-cell,
.air-datepicker-body--cells.-years- .air-datepicker-cell {
  font-weight: 500;
  border-radius: 8px;
}

/* Air Datepicker Mobile Fixes */
@media (max-width: 768px) {
  /* Prevent iOS zoom on input focus - font-size must be 16px+ */
  .air-datepicker {
    --adp-font-size: 16px;
    --adp-width: 280px;
  }

  /* Shift calendar left to center it better */
  .air-datepicker-global-container .air-datepicker {
    margin-left: -40px;
  }

  /* Ensure shipment card inputs don't trigger zoom */
  .moi-shipment-card__input,
  .moi-shipment-item__input {
    font-size: 16px;
  }
}

input.moi-form-control.mail-write-box:focus {
  color: #666;
  border: 1px dotted;
  -webkit-box-shadow: 0 0 0 0;
  box-shadow: 0 0 0 0;
}

div.moi-response-msg {
  text-align: center;
}
.moi-success {
  color: green !important;
}
.moi-error {
  color: red !important;
  padding-left: 20px !important;
}
#moi_selections_overview_holder,
#moi_order_info_holder {
  position: static;
  top: 34px;
}

#moi_selections_overview_holder .moi-branding {
  font-size: 0.8em;
  color: darkgray;
  margin: 0;
  padding-top: 8px;
}
.moi-membership-view-totals {
  background-color: transparent;
}

.moi-membership-view-totals .moi-row .moi-cc-sub-heading {
  padding: 3px 0 0 50%;
  box-sizing: border-box;
}
.moi-membership-view-totals .moi-row .moi-cc-sub-heading-val {
  box-sizing: border-box;
}

#product_items .table td {
  border-top: none !important;
  border-bottom: 1px solid #ddd !important;
}

#product_items .moi-membership-view-totals .table td {
  border-top: none !important;
  border-bottom: none !important;
}

#product_items .moi-membership-view-totals .table td.tbl-bb {
  border-bottom: 1px solid #ddd !important;
}

.moi-discard-btn {
  margin-right: 10px;
}

.moi-price-suffix {
  font-size: 0.7em;
}
.moi-border-bottom {
  border-bottom: 1px solid #dedede !important;
}

.moi-border-none {
  border: none !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  border-bottom: none !important;
}
/* Edit modal save button - use moi-btn styling */
#moi_load_action_btn_holder .moi-btn,
#modal_save_membership_btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 12px 32px !important;
  background: var(--moi-primary) !important;
  color: var(--moi-bg) !important;
  border: 1px solid var(--moi-primary) !important;
  border-radius: 100px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  min-width: 160px;
  cursor: pointer;
}

#moi_load_action_btn_holder .moi-btn:hover,
#modal_save_membership_btn:hover {
  background: var(--moi-primary-hover) !important;
  border-color: var(--moi-primary-hover) !important;
}

/* Edit Your Selection link in checkout sidebar */
#moi_load_action_btn_holder table {
  margin: 0;
  max-width: 100% !important;
  width: 100% !important;
}

#moi_load_action_btn_holder td {
  padding: var(--moi-space-md);
  padding-top: var(--moi-space-sm);
}

#moi_load_action_btn_holder .moi-edit-btn {
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
}

#moi_load_action_btn_holder .moi-edit-btn:hover {
  text-decoration: underline;
}

.moi-tooltip {
  position: relative;
  display: inline-flex;
  align-items: center;
  cursor: help;
  margin-left: 4px;
}

.moi-tooltip .moi-tooltiptext {
  visibility: hidden;
  opacity: 0;
  width: 240px;
  background-color: #1a1a1a;
  color: #fff !important;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  text-align: left;
  border-radius: 8px;
  padding: 12px 14px !important;
  position: absolute;
  z-index: 1000;
  bottom: calc(100% + 12px);
  left: 50%;
  transform: translateX(-50%);
  text-decoration: none;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.moi-tooltip .moi-tooltiptext::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 8px;
  border-style: solid;
  border-color: #1a1a1a transparent transparent transparent;
}

.moi-tooltip:hover .moi-tooltiptext {
  visibility: visible;
  opacity: 1;
}

.woocommerce table.shop_table {
  border: none !important;
  margin: 0 !important;
}

#product_items table {
  border: none;
}

.woocommerce form .form-row textarea {
  height: 12em !important;
}

#membership_view_modal .moi-modal-dialog .moi-modal-lg {
  overflow-y: auto;
  max-height: 400px;
  min-height: 300px;
}

#moi_location_title_holder {
  padding-bottom: 15px !important;
}
#_frm_package_pause #moi_pasue_date_range input::placeholder {
  color: lightgray !important;
}

.woocommerce button.button:disabled[disabled] {
  opacity: 0.5 !important;
  /* background-color: transparent !important; */
}

#club_view_modal .moi-modal-body {
  overflow-y: auto !important;
  max-height: 400px !important;
  min-height: 300px !important;
}
.moi-frequency-card input {
  border: 1px solid #bebebe !important;
  border-radius: 10px !important;
  cursor: pointer;
}
#moi_save_membership_form
  button.moi_plus_qty_btn.cc-addremove.cc-add.moi-qty-btn.button.alt.wp-element-button,
  #modal_products_container button.moi_plus_qty_btn.cc-addremove.cc-add.moi-qty-btn.button.alt.wp-element-button,
  #modal_products_container button.moi_minus_qty_btn.cc-addremove.cc-remove.moi-qty-btn.button.alt.wp-element-button,
#moi_save_membership_form
  button.moi_minus_qty_btn.cc-addremove.cc-remove.moi-qty-btn.button.alt.wp-element-button,
   #edit_membership_modal .moi_minus_qty_btn.moi-custom-button.cc-addremove.cc-remove.moi-qty-btn.button.alt.wp-element-button,
  #edit_membership_modal .moi_plus_qty_btn.moi-custom-button.cc-addremove.cc-add.moi-qty-btn.button.alt.wp-element-button {
  padding: 0.8em !important;
}

#moi_save_membership_form input.button.alt.wp-element-button.moi-add-prod-btn,
#modal_products_container input.button.alt.wp-element-button.moi-add-prod-btn,
#edit_membership_modal input.button.alt.wp-element-button.moi-add-prod-btn {
  padding: 0.8em !important;
  text-transform: uppercase;
  font-size: 12px;
  letter-spacing: 0.7px;
  text-align: center;
}
#add_payment_method #payment,
#moi_save_membership_form .woocommerce-cart #payment,
#moi_co_form_wrap #payment {
  margin-top: 20px !important;
}

/* Modal Responsive - Tablet */
@media (max-width: 768px) {
  .moi-modal-dialog {
    width: 95%;
    margin: 30px auto;
  }

  .moi-modal .moi-modal-body {
    max-height: 70vh;
  }

  .woocommerce #customer_details .form-row-first {
    float: left !important;
  }
  .woocommerce #customer_details .form-row-last {
    float: right !important;
  }
}

/* Modal Responsive - Mobile */
@media screen and (max-width: 520px) {
  .moi-modal-dialog {
    width: 98%;
    margin: 15px auto;
  }

  .moi-modal-header {
    padding: 12px 20px;
    padding-right: 45px;
  }

  .moi-modal-body {
    padding: 15px 20px;
  }

  .moi-modal-close,
  .moi-close,
  .moi-close-btn {
    top: 12px;
    right: 15px;
    font-size: 24px;
  }

  .moi-modal .moi-modal-body {
    max-height: 75vh;
  }

  #moi-memberships .moi-membership-wrapper .moi-membership-info td {
    padding: 0.2rem !important;
  }

  #membership_view_modal .moi-modal-body .moi-12.moi-view-section {
    display: block !important;
  }
  #membership_view_modal .moi-modal-body .moi-12.moi-view-section .moi-6 {
    width: 100%;
    max-width: 100%;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }
}
@media screen and (max-width: 780px) {
  .moi-membership-checkout-part {
    flex-direction: column;
  }

  #moi_selections_overview_holder,
  #moi-config-form2 #customer_details,
  .moi-membership-checkout-part div#customer_details,
  #moi_cart_product_holder {
    width: 100% !important;
    float: none !important;
  }

  .moi-membership-checkout-part div#customer_details {
    padding: inherit;
  }

  .moi-membership-checkout-part #moi_selections_overview_holder {
    width: 100% !important;
    float: none !important;
    margin-top: var(--moi-space-lg);
  }
}
@media screen and (min-width: 600px) and (max-width: 768px) {
  #moi_clubs_wrap #moi_clubs_list .moi-md-4 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
  }
  .moi-frequency-card {
    flex: 0 0 51% !important;
    max-width: 51% !important;
  }
  .moi-three-col .moi-lg-4, .moi-three-col.moi-md-4, .moi-two-col .moi-lg-4, .moi-two-col.moi-md-4{
    width: 50% !important;
  }
  .moi-three-col .moi-lg-8, .moi-three-col.moi-md-8, .moi-two-col .moi-lg-8, .moi-two-col.moi-md-8{
    width: 50% !important;
  }
  #moi_cart_product_holder .moi-product-card .moi-img-three-col img, #moi_cart_product_holder .moi-product-card .moi-img-two-col img,
  #modal_products_container .moi-product-card .moi-img-three-col img, #modal_products_container .moi-product-card .moi-img-two-col img{
    height: auto !important;
    max-height: 140px !important;
  }

  /* Fix stretched image wrapper - use auto height */
  #moi_cart_product_holder .moi-product-card .moi-img-two-col,
  #moi_cart_product_holder .moi-product-card .moi-img-three-col,
  #moi_cart_product_holder .moi-product-card .moi-product-card-inner .moi-img-two-col,
  #moi_cart_product_holder .moi-product-card .moi-product-card-inner .moi-img-three-col {
    height: auto !important;
  }
}
@media screen and (min-width: 768px) and (max-width: 991px) {
  #moi_clubs_list .moi-md-12 {
    max-width: 33.333333% !important;
  }
  .moi-membership-info1 .button.moi-custom-button{ margin:10px;}
}
@media screen and (max-width: 600px) {
  .moi-justify-center {
    justify-content: center !important;
    /* gap: 20px !important; */
  }
  .moi-frequency-card {
    -webkit-box-flex: 0 !important;
    -ms-flex: 0 0 33.333333% !important;
    flex: 0 0 100% !important;
    max-width: 51% !important;
  }
  .moi-section-header,
  .moi-section-header-noclick {
    text-align: center !important;
  }

  .moi-section-subtitle {
    margin-left: 0 !important;
  }

  #moi_step_product {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: var(--moi-space-lg) !important;
  }

  .moi-product-card-content {
    margin-right: 0 !important;
  }

  #club_products_rows .moi-row {
    display: block !important;
  }

  .moi-md-4 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 33.333333%;
    flex: 0 0 33.333333% !important;
    max-width: 33.333333% !important;
  }

  .moi-md-8 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 66.666667%;
    flex: 0 0 66.666667% !important;
    max-width: 66.666667% !important;
  }

  .moi-schedule-card {
    min-width: 150px !important;
  }
  .moi-frequency-card strong {
    font-size: 15px !important;
  }

  .moi-product-card {
    width: 100% !important;
    max-width: 100% !important;
  }
  #moi_cart_product_holder .moi-product-card .moi-img-three-col img , #moi_cart_product_holder .moi-product-card .moi-img-two-col img,
  #modal_products_container .moi-product-card .moi-img-three-col img, #modal_products_container .moi-product-card .moi-img-two-col img {
    height: auto !important;
    max-height: 140px !important;
  }

  /* Fix stretched image wrapper on mobile - use auto height */
  #moi_cart_product_holder .moi-product-card .moi-img-two-col,
  #moi_cart_product_holder .moi-product-card .moi-img-three-col,
  #moi_cart_product_holder .moi-product-card .moi-product-card-inner .moi-img-two-col,
  #moi_cart_product_holder .moi-product-card .moi-product-card-inner .moi-img-three-col {
    height: auto !important;
  }

  #order_review .woocommerce-checkout-review-order-table{ display: table !important;}
  #order_review .woocommerce-checkout-review-order-table td{ display: table-cell !important; vertical-align: inherit !important;}
  #order_review .woocommerce-checkout-review-order-table .moi-text-right{ text-align: right !important; float: right !important;}
  #order_review .woocommerce-checkout-review-order-table .moi-text-center{ text-align: center !important;}

  /* Fix price column alignment on mobile - force price summary table to respect container boundaries */
  #moi_selections_overview_holder table.shop_table:has(tr.cart-subtotal) {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    box-sizing: border-box !important;
  }
  @media screen and (max-width: 480px) {
  #moi_selections_overview_holder .moi-branding{margin-top:20px !important;}
  #moi_save_membership_form .woocommerce-checkout-review-order, #moi_selections_overview_holder .woocommerce-checkout-review-order{margin: 0px !important;}
  }
  @media screen and (max-width: 600px) {
    .moi-frequency-card strong {
      font-size: 20px !important;
    }
  }
  @media screen and (max-width: 600px) {
    .moi-product-title {
      font-size: 17px !important;
    }
  }
  #moi_clubs_wrap #moi_clubs_list .moi-club-card {
    min-width: 365px !important;
  }
  #moi_clubs_wrap #moi_clubs_list .moi-row {
    display: block;
  }
  #moi_cart_product_holder .moi-product-card .moi-image-warp,
  #moi_cart_product_holder .moi-product-card .moi-product-card-inner {
    height: 200px !important;
  }

  div#moi_clubs_list #moi-spin-loader {
    justify-content: center !important;
    display: flex !important;
  }
  .moi_quantity_col_2 {
    width: 40% !important;
  }
  .moi-membership-wrapper .moi-membership-info button {
    margin-left: 0;
    width: auto !important;
    display: table-cell !important;
  }
  .moi-membership-info1 .moi-membership-buttons{ display:initial !important;}
  .moi-md-12 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 100%;
    flex: 0 0 100% !important;
    max-width: 100% !important;
  }
  .moi_clubs_list .moi-md-12 .moi-p-2 {
    padding: 0px !important;
  }
}
.moi-membership-info .moi-membership-info1 .moi-membership-buttons button {
  padding: 1em 1.5em !important;
}
@media screen and (max-width: 430px) {
  .form-row .form-row-first .validate-required .moi-dob .woocommerce-ordering {
    margin-left: 15px !important;
  }
  .moi-membership-wrapper
    .woocommerce-checkout-review-order-table
    .cart_item
    .moi-membership-info1
    .moi-membership-buttons,
  #moi_selections_overview_holder
    .moi-membership-wrapper
    .woocommerce-checkout-review-order-table
    .cart_item
    .moi-membership-info1
    .moi-membership-buttons {
    display: inline-block !important;
    justify-content: space-evenly !important;
    flex-wrap: wrap;
    margin-top: 10px !important;
  }
  .moi-membership-wrapper .woocommerce-checkout-review-order-table .cart_item .moi-membership-info1 .moi-membership-buttons{margin-top: 1rem !important;}
  .moi-membership-buttons .moi-error {
    width: 100% !important;
    text-align: left !important;
  }
  .moi-membership-wrapper
    .woocommerce-checkout-review-order-table
    .cart_item
    .moi-vertical-top,
  #moi_selections_overview_holder
    .moi-membership-wrapper
    .woocommerce-checkout-review-order-table
    .cart_item
    .moi-vertical-top {
    display: block !important;
    width: 100% !important;
    text-align: left !important;
  }
  .moi-membership-wrapper
    .woocommerce-checkout-review-order-table
    .cart_item
    .moi-text-right,
  #moi_selections_overview_holder
    .moi-membership-wrapper
    .woocommerce-checkout-review-order-table
    .cart_item
    .moi-text-right {
    text-align: left !important;
  }
  .moi-membership-wrapper
    .woocommerce-checkout-review-order-table
    .cart_item
    .moi-view-membership,
  #moi_selections_overview_holder
    .moi-membership-wrapper
    .woocommerce-checkout-review-order-table
    .cart_item
    .moi-view-membership {
    text-align: left;
    margin-top: 10px;
    margin-bottom: 10px;
  }
  .moi-membership-wrapper .cart_item .moi-membership-info2 {
    width: 100%;
    margin-top: 10px;
    display: block;
  }
}
/* My Account Info 2 section stacked for mobile */
@media (max-width: 600px) {
  .moi-membership-info2 tr:first-child {
    display: none;
  }

  .moi-membership-info2 tr {
    display: flex;
    flex-wrap: wrap;
  }

  .moi-membership-info2 td {
    display: block;
    flex: 0 0 50%;
    box-sizing: border-box;
    padding: 8px;
  }

  .moi-membership-info2 td::before {
    content: attr(data-label);
    display: block;
    font-weight: bold;
    font-size: 16px;
    margin-bottom: 2px;
  }
}
#moi-message-link-desktop {
  display: block !important;
}
.view_shipment_dates .view_membership_shipment {
  border: 1px solid #bebebe !important;
  padding: 8px 15px !important;
  margin-bottom: 10px !important;
  border-radius: 10px !important;
}

.view_shipment_dates .view_membership_shipment {
  display: flex;
  justify-content: space-between; /* Pushes due-days to the right */
  align-items: center; /* Vertically aligns items in the middle */
  padding: 10px;
}

.view_shipment_dates .date-info .day {
  font-weight: bold;
}

.view_shipment_dates .due-days {
  float: right;
  font-size: 14px; /* Optional to adjust font size */
}

/* Shipment status styles */
.view_shipment_dates .view_membership_shipment.moi-shipment-scheduled {
  opacity: 0.6;
  border-style: dashed !important;
}

.view_shipment_dates .view_membership_shipment.moi-shipment-processed {
  background-color: #f8f8f8 !important;
  border-color: #e0e0e0 !important;
  color: #888 !important;
}

.view_shipment_dates .view_membership_shipment.moi-shipment-processed .day,
.view_shipment_dates .view_membership_shipment.moi-shipment-processed .date-info span,
.view_shipment_dates .view_membership_shipment.moi-shipment-processed .due-days {
  color: #999 !important;
}

/* ============================================
   VIEW SHIPMENTS - NEW DESIGN
============================================ */

/* Section Labels */
.shipments-section-label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--moi-text-muted, #666);
  margin-bottom: var(--moi-space-sm, 8px);
}

.shipments-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--moi-space-sm, 8px);
}

.shipments-section-count {
  font-size: 12px;
  color: var(--moi-text-light, #999);
}

/* Next Shipment Hero Card */
.shipments-next {
  margin-top: var(--moi-space-sm, 8px);
  margin-bottom: var(--moi-space-lg, 24px);
}

.shipments-next__card {
  background: var(--moi-bg, #fff);
  border: 2px solid var(--moi-primary, #000);
  border-radius: var(--moi-radius-md, 8px);
  padding: var(--moi-space-md, 16px);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.shipments-next__date {
  display: flex;
  align-items: center;
  gap: var(--moi-space-md, 16px);
}

.shipments-next__day {
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
}

.shipments-next__month {
  font-size: 14px;
  color: var(--moi-text-muted, #666);
}

.shipments-next__status {
  text-align: right;
}

.shipments-next__due {
  font-size: 14px;
  font-weight: 500;
}

.shipments-next__badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 100px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  margin-top: var(--moi-space-xs, 4px);
}

.shipments-next__badge--scheduled {
  background: rgba(40, 167, 69, 0.12);
  color: var(--moi-success, #28a745);
}

.shipments-next__badge--skipped {
  background: rgba(245, 158, 11, 0.15);
  color: var(--moi-warning, #f59e0b);
}

/* Skipped State for Hero Card */
.shipments-next__card--skipped {
  border-color: var(--moi-warning, #f59e0b);
  background: rgba(245, 158, 11, 0.05);
}

.shipments-next__card--skipped .shipments-next__day,
.shipments-next__card--skipped .shipments-next__month {
  color: var(--moi-warning, #f59e0b);
}

/* Upcoming Shipments List */
.shipments-upcoming {
  margin-bottom: var(--moi-space-lg, 24px);
}

.shipments-list {
  display: flex;
  flex-direction: column;
  gap: var(--moi-space-xs, 4px);
}

.shipments-list__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--moi-space-sm, 8px) var(--moi-space-md, 16px);
  background: var(--moi-bg-secondary, #f7f7f7);
  border-radius: var(--moi-radius-sm, 4px);
  font-size: 14px;
}

.shipments-list__item--skipped {
  background: rgba(245, 158, 11, 0.08);
}

.shipments-list__item--skipped .shipments-list__date {
  color: var(--moi-warning, #f59e0b);
}

.shipments-list__item--skipped .shipments-list__due {
  color: var(--moi-warning, #f59e0b);
  font-weight: 500;
}

.shipments-list__date {
  font-weight: 500;
}

.shipments-list__due {
  color: var(--moi-text-muted, #666);
  font-size: 13px;
}

/* Show More Button */
.shipments-show-more {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--moi-space-xs, 4px);
  padding: var(--moi-space-sm, 8px);
  background: none;
  border: 1px dashed var(--moi-border, #e0e0e0);
  border-radius: var(--moi-radius-sm, 4px);
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  color: var(--moi-text-muted, #666);
  width: 100%;
  margin-top: var(--moi-space-sm, 8px);
  transition: all 150ms ease;
}

.shipments-show-more:hover {
  border-color: var(--moi-primary, #000);
  color: var(--moi-primary, #000);
}

.shipments-show-more.is-expanded svg {
  transform: rotate(180deg);
}

/* Repeat Yearly Badge */
.shipments-repeat-yearly {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--moi-space-sm, 8px);
  padding: var(--moi-space-sm, 8px) var(--moi-space-md, 16px);
  background: var(--moi-bg-secondary, #f7f7f7);
  border-radius: var(--moi-radius-sm, 4px);
  font-size: 13px;
  color: var(--moi-text-muted, #666);
  margin-top: var(--moi-space-sm, 8px);
}

/* Past Shipments Accordion */
.shipments-past {
  border-top: 1px solid var(--moi-border-light, #eee);
  padding-top: var(--moi-space-md, 16px);
}

.shipments-past__toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--moi-space-sm, 8px) 0;
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  color: var(--moi-text-muted, #666);
  transition: color 150ms ease;
}

.shipments-past__toggle:hover {
  color: var(--moi-text, #222);
}

.shipments-past__toggle-text {
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm, 8px);
}

.shipments-past__toggle svg {
  transition: transform 150ms ease;
}

.shipments-past__toggle.is-open svg {
  transform: rotate(90deg);
}

.shipments-past__content {
  display: none;
  padding-top: var(--moi-space-sm, 8px);
}

.shipments-past__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--moi-space-sm, 8px) var(--moi-space-md, 16px);
  border-radius: var(--moi-radius-sm, 4px);
  font-size: 13px;
  color: var(--moi-text-muted, #666);
}

.shipments-past__status {
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 100px;
  background: var(--moi-bg-tertiary, #f0f0f0);
}

.shipments-past__status--completed {
  background: rgba(40, 167, 69, 0.1);
  color: var(--moi-success, #28a745);
}

/* Empty State */
.shipments-empty {
  text-align: center;
  padding: var(--moi-space-xl, 32px);
  color: var(--moi-text-muted, #666);
}

/* Legacy styles kept for backward compatibility */
.view_shipment_dates .view_membership_shipment.moi-shipment-skipped {
  background-color: rgba(245, 158, 11, 0.08) !important;
  border-color: var(--moi-warning, #f59e0b) !important;
  border-style: dashed !important;
}

.view_shipment_dates .view_membership_shipment.moi-shipment-skipped .day,
.view_shipment_dates .view_membership_shipment.moi-shipment-skipped .date-info span {
  color: var(--moi-warning, #f59e0b) !important;
}

.moi-message-link-desktop {
  display: none !important;
}
.moi-message-link-mobile {
  display: none !important;
}
@media screen and (max-width: 410px) {
  #moi_clubs_wrap #moi_clubs_list .moi-club-card {
    min-width: 0px !important;
  }
  .moi-frequency-card {
    max-width: 100% !important;
  }
}
@media screen and (max-width: 768px) {
  .moi-message-link-mobile {
    display: block !important;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
    text-align: right !important;
  }
  .moi-message-link-desktop {
    display: none !important;
  }
}
@media screen and (min-width: 768px) {
  .moi-message-link-desktop {
    display: block !important;
    -webkit-box-flex: 0;
    -ms-flex: 0 0 50%;
    flex: 0 0 50%;
    max-width: 50%;
    text-align: right !important;
  }
  .moi-message-link-mobile {
    display: none !important;
  }
}
.moi-disabled-conversation-link {
  color: rgb(128, 128, 128) !important;
  pointer-events: none;
  cursor: default;
  text-decoration: none;
}
/* Conversations Button Styling */
.moi-message-link a:hover,
.moi-message-link a:hover .moi-message-unread {
  text-decoration: underline;
}
/* make unread count red when present */
.moi-message-unread {
  color: inherit;
  font-weight: 500;
}
/* increase specificity to beat other rules; avoid !important unless necessary */
.moi-message-link .moi-message-unread.red {
  color: red;
}
/* if the disabled class prevents hover (check this) override pointer-events for non-disabled hover case */
.moi-message-link a.moi-disabled-conversation-link {
  pointer-events: auto;
}
.moi-message-link .fa-message,
.moi-message-link .fa-message::before {
  display: inline-block;
  margin-right: 3px;
}
@media (max-width: 767px) {
  .moi-message-link .fa-message,
  .moi-message-link .fa-message::before,
  #moi-message-link-mobileView .fa-message,
  #moi-message-link-mobileView .fa-message::before {
    margin-right: 0 !important;
    display: inline-block;
  }
}
/* Conversations Button Styling END */

/* My Membership & Conversation link line formatting */
.moi-st{
    text-decoration:line-through !important;
}

/* Dashboard Header - New Style */
.moi-dashboard-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--moi-space-md);
  margin-bottom: var(--moi-space-lg);
  padding-bottom: var(--moi-space-md);
  border-bottom: 1px solid var(--moi-border);
}

.moi-dashboard-header__content {
  flex: 1;
  min-width: 0;
}

.moi-dashboard-header__title,
.moi-dashboard-header .moi-dashboard-header__title,
.moi-dashboard-header h1.moi-dashboard-header__title,
h1.moi-dashboard-header__title,
.woocommerce-MyAccount-content .moi-dashboard-header__title,
.woocommerce-MyAccount-content h1.moi-dashboard-header__title {
  font-size: 28px !important;
  font-weight: 600 !important;
  color: var(--moi-text) !important;
  line-height: 1.2 !important;
  margin: 0 0 var(--moi-space-xs) 0 !important;
  padding: 0 !important;
}

.moi-dashboard-header__subtitle {
  font-size: 15px;
  color: var(--moi-text-light);
  margin: 0;
  line-height: 1.4;
}

.moi-dashboard-header__actions {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

/* Conversation Button - New Style */
.moi-dashboard-header .moi-message-link a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #fff;
  border: 1px solid var(--moi-border);
  border-radius: var(--moi-radius-md);
  color: var(--moi-text);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: all var(--moi-transition-fast);
  white-space: nowrap;
}

.moi-dashboard-header .moi-message-link a:hover {
  border-color: var(--moi-text-light);
  text-decoration: none;
}

.moi-dashboard-header .moi-message-link a svg {
  flex-shrink: 0;
}

.moi-dashboard-header .moi-message-link .moi-unread-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 10px;
  background: var(--moi-text);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  border-radius: 12px;
  line-height: 1.2;
}

.moi-dashboard-header .moi-message-link .moi-unread-badge.has-unread {
  background: #dc3545;
}

/* Desktop/Mobile visibility for dashboard header */
.moi-dashboard-header .moi-message-link-desktop {
  display: block !important;
}
.moi-dashboard-header .moi-message-link-mobile {
  display: none !important;
}

@media (max-width: 768px) {
  .moi-dashboard-header {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--moi-space-sm);
  }

  .moi-dashboard-header__title {
    font-size: 24px;
  }

  .moi-dashboard-header__actions {
    justify-content: flex-start;
    align-self: flex-start;
  }

  .moi-dashboard-header .moi-message-link-desktop {
    display: none !important;
  }
  .moi-dashboard-header .moi-message-link-mobile {
    display: block !important;
  }
}

/* Legacy header row styles - keep for backward compatibility */
.moi-header-row > .moi-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.moi-header-row .moi-md-6 {
  flex: 1 1 auto;
  min-width: 0;
}
.moi-header-row .moi-message-link-desktop,
.moi-header-row .moi-message-link-mobile {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  margin-left: auto;
  text-align: right;
}
@media (min-width: 769px) {
  .moi-header-row .moi-message-link-mobile { display: none !important; }
}
@media (max-width: 768px) {
  .moi-header-row .moi-message-link-desktop { display: none !important; }
}
@media (max-width: 768px) {
  .moi-header-row > .moi-row {
    flex-wrap: nowrap !important;
    gap: 8px;
  }
  .moi-header-row .moi-md-6 {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .moi-header-row .moi-message-link-mobile {
    flex: 0 0 auto !important;
    max-width: none !important;
    margin-left: auto;
    display: flex !important;
    align-items: center;
    text-align: right;
  }
  .moi-header-row .moi-message-link-desktop { display: none !important; }
}
/* My Membership & Conversation link line formatting END */

.moi-product-selection-overview {
  font-weight: 500;
  color: var(--moi-text);
  border-radius: var(--moi-radius-md);
  border: 1px dashed #d1d5db;
  background: var(--moi-bg-secondary);
  padding: 16px 20px;
  text-align: center;
}

.moi-frequency-placeholder {
  font-size: 14px;
  font-weight: 500;
  color: var(--moi-text);
  border-radius: var(--moi-radius-md);
  border: 1px dashed #d1d5db;
  background: var(--moi-bg-secondary);
  padding: 14px 16px;
  text-align: center;
}
.moi-frequency-placeholder__loader {
  display: flex;
  justify-content: center;
  align-items: center;
}
.moi-frequency-placeholder__loader .spinner {
  position: relative;
  width: 20px;
  height: 20px;
}
.moi-frequency-placeholder__loader .spinner-icon {
  width: 20px;
  height: 20px;
  border: 2px solid #e5e7eb;
  border-top-color: var(--moi-primary, #000);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
.moi-overview-shipment-date {
  font-weight: 600 !important;
}
.moi-discount-price {
  color: #9e9e9e;
}
.moi-icons {
  font-size: 17px;
}
.moi-custom-checkbox {
  width: 15px !important;
  height: 15px;
}
.moi-product-title {
  line-height: 20px;
  font-size: 18px;
}

/* google autocomplete css */
.pac-logo:after {
  display: none !important;
}
.pac-item {
  padding: 4px 4px !important;
}
div.pac-container {
  z-index: 999999 !important;
}
/* .pac-container {
  border-radius: 0 0 10px 10px !important;
} */
/* end of google autocomplete css */

.moi-modal-footer .moi-btn-loading,.moi-btn-loading_modal {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.moi-modal-footer .moi-btn-spinner .moi-inline-spinner,#modal_save_membership_btn .moi-btn-spinner .moi-inline-spinner {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background: transparent;
  z-index: 2;
  width: 25px;
  height: 25px;
  border: solid 2px transparent;
  border-top-color: #fff !important;
  border-left-color: #fff !important;
  border-radius: 50%;
  animation: moi-inline-spin 0.75s linear infinite;
}

@keyframes moi-inline-spin {
  to {
    transform: rotate(360deg);
  }
}

/* ==========================================================================
   Checkout Form Cards
   ========================================================================== */

.moi-checkout-card {
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  padding: var(--moi-space-lg);
  margin-bottom: var(--moi-space-lg);
  background: var(--moi-bg);
  overflow: hidden;
  clear: both;
}

.moi-checkout-card .moi-checkout-headings {
  margin-bottom: var(--moi-space-md);
  display: block;
}

.moi-checkout-card .form-row:last-child {
  margin-bottom: 0;
}

/* Clear floats in form groups */
.moi-form-group {
  display: flow-root;
  overflow: hidden;
}

.moi-form-group::after {
  content: "";
  display: table;
  clear: both;
}

/* Ensure checkout cards clear previous floats */
.moi-checkout-card::before {
  content: "";
  display: table;
  clear: both;
}

/* User Card - Logged In State */
.moi-checkout-user-card {
  display: flex;
  align-items: center;
  gap: var(--moi-space-md);
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  padding: var(--moi-space-md) var(--moi-space-lg);
  margin-bottom: var(--moi-space-lg);
  background: var(--moi-bg);
}

.moi-checkout-user-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--moi-primary);
  color: var(--moi-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
  font-size: 16px;
  flex-shrink: 0;
}

.moi-checkout-user-info {
  flex: 1;
  min-width: 0;
}

.moi-checkout-user-email {
  font-weight: 500;
  font-size: 15px;
  color: var(--moi-text);
  margin: 0;
  word-break: break-word;
}

.moi-checkout-user-status {
  font-size: 13px;
  color: var(--moi-text-muted);
  margin: 2px 0 0 0;
}

.moi-checkout-logout-btn {
  border: 1px solid #e5e5e5;
  border-radius: 8px;
  padding: 8px 16px;
  background: var(--moi-bg);
  color: var(--moi-text);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.2s, border-color 0.2s;
  white-space: nowrap;
}

.moi-checkout-logout-btn:hover {
  background: #f5f5f5;
  border-color: #d0d0d0;
  color: var(--moi-text);
  text-decoration: none;
}

/* Customer Email Card (Guest) */
.moi-checkout-customer-card {
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  padding: var(--moi-space-lg);
  margin-bottom: var(--moi-space-lg);
  background: var(--moi-bg);
}

.moi-checkout-customer-card .form-row {
  margin-bottom: var(--moi-space-sm);
}

.moi-checkout-customer-card .moi-login-row {
  margin-top: var(--moi-space-sm);
}

/* Hide the form-row containing the hidden account create checkbox */
.moi-checkout-customer-card .form-row:has(#moi_account_create) {
  display: none;
}

/* Remove old hr separators inside checkout form */
.moi-checkout-card .moi-hr,
#customer_details .moi-hr {
  display: none;
}

.moi-checkout-headings {
  font-size: 16px;
  font-weight: 600;
}

/* Checkout Form Typography */
#moi_co_form_wrap label {
  font-size: 14px;
  font-weight: 500;
  color: var(--moi-text);
}

#moi_co_form_wrap .form-row .input-text,
#moi_co_form_wrap .form-row select,
#moi_co_form_wrap input[type="text"],
#moi_co_form_wrap input[type="email"],
#moi_co_form_wrap input[type="tel"],
#moi_co_form_wrap select {
  font-size: 14px;
}

#moi_co_form_wrap .form-row .input-text::placeholder,
#moi_co_form_wrap input::placeholder {
  color: var(--moi-text-light);
  font-size: 14px;
}

#moi_co_form_wrap .moi-login-text {
  font-size: 14px;
}
.moi-overview-headings {
  font-size: 19px !important;
  font-family: inherit;
}

/* Dropdown Container */
.moi-dropdown-container {
  position: relative;
  display: inline-block;
}

/* Dropdown Button */
.moi-dropdown-button {
  background-color: #f8f9fa;
  border: 1px solid #dedede;
  border-radius: 10px;
  padding: 8px 18px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: #333;
  display: flex;
  align-items: center;
  gap: 15px;
  transition: all 0.2s ease;
  min-width: 100px;
}

.moi-dropdown-button:hover {
  background-color: #f3f3f3;
  border-color: #dedede;
}

.moi-dropdown-arrow {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  margin-left: 6px;
  margin-bottom: 3px;
  transition: transform 0.2s ease;
}

.moi-dropdown-container.active .moi-dropdown-arrow {
  transform: rotate(-135deg);
  margin-bottom: -2px;
}

/* Dropdown Menu */
.moi-dropdown-menu {
  position: absolute;
  top: 100%;
  right: 0;
  left: auto;
  background-color: white;
  border: 1px solid #dedede;
  border-radius: 10px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  min-width: 200px;
  z-index: 1000;
  display: none;
  margin-top: 2px;
  text-align: left;
  overflow: hidden;
}

/* Mobile: Dropdown opens to the left to prevent cutoff */
@media screen and (max-width: 768px) {
  .moi-dropdown-menu {
    right: auto;
    left: 0;
  }
}

.moi-dropdown-container.active .moi-dropdown-menu {
  display: block;
}

/* Dropdown Items */
.moi-dropdown-item {
  display: block;
  padding: 12px 20px;
  text-decoration: none;
  color: #333;
  font-size: 14px;
  border-bottom: 1px solid #ececec;
  transition: all 0.2s ease;
}

.moi-dropdown-item:last-child {
  border-bottom: none;
}

.moi-dropdown-item:hover {
  background-color: #f3f3f3;
  text-decoration: none;
}

.moi-dropdown-item.moi-cancel-item {
  color: red !important;
}

/* .moi-dropdown-item.moi-cancel-item:hover {
  background-color: #f8f9fa;
  color: red !important;
} */

/* Legacy styles for backward compatibility */
.moi-membership-options {
  transition: text-decoration 0.3s ease-in-out;
}
.moi-membership-options:hover {
  text-decoration: underline;
}
.moi-membership-chat:hover {
  text-decoration: underline;
}
.moi-cancellation-text {
  border-radius: 10px;
  border-color: #bebebe;
}
.moi-box-radius {
  border-radius: 10px;
}
.moi-box-2 {
  padding-top: 20px !important;
}
.moi-hr {
  margin-top: 20px !important;
  margin-bottom: 20px !important;
  border-top: 1px solid #dedede !important;
  border: 0;
}

/* #moi_membership_widget, #moi_membership_widget * {
  font-family: inherit !important;
} */

.moi-frequency-title {
  font-size: 18px;
}
/* @media screen and (max-width: 600px) {
  .moi-frequency-title {
    font-size: 16px;
  }
  
} */
.moi-frequency-subtitle {
  font-size: 15px;
}
.moi-frequency-icon {
  font-size: 18px;
  margin-right: 5px;
}
.moi-frequency-custom-field {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 20px 0 20px;
}
@media screen and (max-width: 600px) {
  .moi-frequency-custom-field {
    padding: 0 15px;
    gap: 5px;
  }
  .moi-frequency-icon {
    font-size: 20px;
  }
}
.custom_datetimepicker::placeholder {
  /* font-style: italic; */
  opacity: 0.6;
}
.moi-club-heading {
  font-size: 20px !important;
}
.moi-custom-date-picker {
  font-size: 15px;
}
@media screen and (max-width: 600px) {
  .moi-custom-date-picker {
    font-size: 16px !important;
  }
}
/* My Acount Page Styles */
.moi-my-account {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid #dedede;
  border-radius: 10px;
  padding: 1.5rem !important;
  background: inherit;
}
.moi-my-account-title {
  font-size: 1.2em;
  font-weight: 500;
}

.woocommerce .col2-set{display: block; }
/* Theme conflict overrides - scoped to .moi-modal to prevent theme CSS from breaking modal layouts.
   Uses !important defensively since themes may use high-specificity selectors or load order varies. */
.moi-modal .col2-set{columns: unset !important; }
.moi-modal #middle_wrapper_content{display: block !important; }
.moi-modal #moi_selections_overview_holder .woocommerce-checkout-review-order{width: 100% !important; }
.moi-modal .shop_table{max-width: 100% !important; }
.moi-modal .moi-product-item__title{font-size: 15px !important; font-weight: 500 !important; line-height: 1.3 !important; color: var(--moi-text) !important; }
#moi_selections_overview_holder .woocommerce-checkout-review-order{width: 100% !important; }
.woocommerce-checkout #order_review{float: none; width: auto; position: static; }

/* ========================================
   Single Product Layout Styles
   When only one product is displayed
   Only applies on screens > 768px (desktop/tablet)
   On mobile, single product cards use default styling
   ======================================== */
@media screen and (min-width: 769px) {
  /* Row container - right align single product card */
  .moi-row.moi-single-product-row {
    justify-content: flex-end;
  }

  /* Single product card - 100% width within product area */
  .moi-single-product-row .moi-product-card.moi-single-product-card {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }

  /* Single product card content - consistent padding all around */
  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-product-card-content {
    padding: 20px;
  }

  /* Single product - image/content split 30%/70% */
  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-product-card-content > .moi-row > .moi-lg-4,
  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-product-card-content > .moi-row > .moi-md-4 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 30%;
    flex: 0 0 30%;
    max-width: 30%;
  }

  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-product-card-content > .moi-row > .moi-lg-8,
  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-product-card-content > .moi-row > .moi-md-8 {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 70%;
    flex: 0 0 70%;
    max-width: 70%;
  }

  /* Single product image wrapper */
  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-image-warp {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
  }

  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-image-warp img {
    max-height: 150px;
    max-width: 100%;
    object-fit: contain;
  }

  /* Single product - title styling */
  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-product-title {
    font-size: 1.3em;
    line-height: 1.3;
    margin-bottom: 6px;
    padding-bottom: 0 !important;
  }

  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-product-title strong {
    font-size: inherit;
    font-weight: 600;
  }

  /* Single product - price display */
  .moi-single-product-row .moi-product-card.moi-single-product-card .price {
    font-size: 1.2em;
    margin-bottom: 6px;
    padding: 0;
  }

  .moi-single-product-row .moi-product-card.moi-single-product-card .price .woocommerce-Price-currencySymbol {
    font-weight: 600;
  }

  .moi-single-product-row .moi-product-card.moi-single-product-card .price del {
    font-size: 0.9em;
    margin-right: 6px;
    opacity: 0.6;
  }

  /* Single product - min/max qty styling */
  .moi-single-product-row .moi-product-card.moi-single-product-card .min-max-qty {
    font-size: 0.95em;
    margin-bottom: 10px;
    padding: 0;
    color: #666;
  }

  /* Single product - add button styling */
  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-select-btn {
    margin-top: 4px;
  }

  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-add-prod-btn {
    padding: 10px 40px;
    font-size: 1em;
  }

  /* Single product - qty buttons */
  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-qty-btn {
    width: 36px;
    height: 36px;
    font-size: 1em;
  }

  .moi-single-product-row .moi-product-card.moi-single-product-card .item-quantity {
    font-size: 1.1em;
    min-width: 36px;
    text-align: center;
  }

  /* Single product - align controls holder with text content */
  .moi-single-product-row .moi-product-card.moi-single-product-card .controls_holder {
    display: flex;
    justify-content: flex-start;
    align-items: center;
  }

  /* Single product inner card - top aligned content */
  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-product-card-inner {
    padding: 0 10px 0 15px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }
}

/* ========================================
   Single Product - Tablet (769px - 1024px)
   ======================================== */
@media screen and (min-width: 769px) and (max-width: 1024px) {
  .moi-single-product-row .moi-product-card.moi-single-product-card {
    -ms-flex: 0 0 100%;
    flex: 0 0 100%;
    max-width: 100%;
  }

  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-product-card-content {
    padding: 18px;
  }

  .moi-single-product-row .moi-product-card.moi-single-product-card .moi-product-title {
    font-size: 1.2em;
  }

  .moi-single-product-row .moi-product-card.moi-single-product-card .price {
    font-size: 1.1em;
  }
}

/* ========================================
   Single Product - Mobile (768px and below)
   No special styles - uses default card styling
   ======================================== */

/* ========================================
   Membership View Modal Styles
   ======================================== */

/* Section headings in membership view */
#membership_view_modal .moi-view-section-heading {
    font-size: 15px;
    font-weight: 600;
    color: #333;
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid #eee;
}

/* Label/value row in membership view */
#membership_view_modal .moi-view-row {
    margin-bottom: 6px;
    font-size: 14px;
    line-height: 1.5;
}

#membership_view_modal .moi-view-label {
    color: #666;
    font-weight: 400;
}

#membership_view_modal .moi-view-value {
    color: #333;
    font-weight: 500;
}

/* Address block styling */
#membership_view_modal .moi-view-address {
    font-size: 14px;
    line-height: 1.6;
    color: #333;
}

/* Products table in membership view */
#membership_view_modal .moi-view-products-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0;
}

#membership_view_modal .moi-view-products-table thead th {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    padding: 10px 8px;
    text-align: left;
    border-bottom: 2px solid #ddd;
    background: #fafafa;
}

#membership_view_modal .moi-view-products-table tbody td {
    font-size: 14px;
    padding: 12px 8px;
    border-bottom: 1px solid #eee;
    color: #333;
}

#membership_view_modal .moi-view-products-table tbody tr:last-child td {
    border-bottom: none;
}

/* Totals section in membership view */
#membership_view_modal .moi-view-totals {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px solid #ddd;
}

#membership_view_modal .moi-view-totals-table {
    width: 100%;
    border-collapse: collapse;
}

#membership_view_modal .moi-view-totals-table td {
    padding: 8px 8px;
    font-size: 14px;
}

#membership_view_modal .moi-view-totals-table td:first-child {
    text-align: right;
    color: #666;
    width: 70%;
}

#membership_view_modal .moi-view-totals-table td:last-child {
    text-align: right;
    color: #333;
    font-weight: 500;
    width: 30%;
}

#membership_view_modal .moi-view-totals-table tr.moi-view-total-row td {
    font-weight: 600;
    font-size: 15px;
    color: #333;
    padding-top: 12px;
    border-top: 1px solid #ddd;
}

#membership_view_modal .moi-view-totals-table tr.moi-view-total-row td:first-child {
    color: #333;
}

/* Discount styling */
#membership_view_modal .moi-view-discount {
    color: #d63638;
}

/* Section spacing adjustments */
#membership_view_modal .moi-view-section {
    padding: 10px 0 15px 0 !important;
    margin-bottom: 0;
    border-bottom: none !important;
}

#membership_view_modal .moi-view-section:first-child {
    padding-top: 5px !important;
}

#membership_view_modal .moi-view-section:last-child {
    padding-bottom: 5px !important;
}

#membership_view_modal .moi-modal-body .moi-6 {
    padding-right: 20px;
}

#membership_view_modal .moi-modal-body .moi-6:last-child {
    padding-right: 0;
    padding-left: 20px;
}

/* ================================
   Login Prompt Banner
   For Events/Reservations widgets
   ================================ */
.moi-login-prompt {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: #f8f9fa;
    border-radius: 6px;
    margin: 0 24px 16px 24px;
    box-sizing: border-box;
}

.moi-login-prompt i {
    color: #28a745;
    font-size: 18px;
    flex-shrink: 0;
}

.moi-login-prompt span {
    flex: 1;
    color: #333;
    font-weight: 500;
    font-size: 14px;
}

.moi-login-prompt button.moi-login-btn.button {
    padding: 10px 16px !important;
    font-size: 12px !important;
    flex-shrink: 0;
}

.moi-login-prompt .moi-login-btn:focus {
    outline: 2px solid #333;
    outline-offset: 2px;
}

/* Responsive adjustments */
@media (max-width: 576px) {
    .moi-login-prompt {
        flex-wrap: wrap;
        gap: 10px;
        padding: 12px;
    }

    .moi-login-prompt span {
        flex: 1;
        min-width: 0;
    }

    .moi-login-prompt .moi-login-btn {
        width: auto;
        padding: 6px 14px;
    }
}

/* ============================================
   CARROTS (PROMOTIONAL BANNERS)
============================================ */

.moi-carrot {
    padding: var(--moi-space-md) var(--moi-space-xl);
    border-radius: var(--moi-radius-lg);
    max-width: 50%;
    font-size: 13px;
    line-height: 1.4;
    font: inherit;
}

.moi-carrot p {
    margin: 0;
}

.moi-carrot p + p {
    margin-top: var(--moi-space-sm);
}

.moi-carrot a {
    color: inherit;
    text-decoration: underline;
    font-weight: 600;
}

.moi-carrot a:hover {
    opacity: 0.8;
}

.moi-carrot strong {
    font-weight: 700;
}

/* Site-wide header banner - full width, no border radius */
.moi-carrot--site_header {
    border-radius: 0;
    margin-bottom: 0;
    padding: var(--moi-space-sm) var(--moi-space-lg);
    text-align: center;
    box-shadow: none;
}

/* Site-wide footer banner - full width, no border radius */
.moi-carrot--site_footer {
    border-radius: 0;
    margin-bottom: 0;
    margin-top: var(--moi-space-lg);
    padding: var(--moi-space-sm) var(--moi-space-lg);
    text-align: center;
    box-shadow: none;
}

/* Club selection header - replaces subtitle */
.moi-carrot--clubs_header {
    margin-top: var(--moi-space-sm);
}

/* Checkout top/bottom */
.moi-carrot--checkout_top {
    margin-bottom: var(--moi-space-lg);
}

.moi-carrot--checkout_bottom {
    margin-top: var(--moi-space-lg);
    margin-bottom: 0;
}

/* Thank you banner */
.moi-carrot--thank_you_banner {
    margin-bottom: var(--moi-space-lg);
}

/* Events page */
.moi-carrot--events_header {
    margin-bottom: var(--moi-space-lg);
    text-align: center;
    padding-top: 0;
}

.moi-carrot--events_below_list {
    margin-top: var(--moi-space-lg);
    margin-bottom: var(--moi-space-md);
}

.moi-carrot--events_footer {
    margin-top: var(--moi-space-md);
}

/* Reservations widget */
.moi-carrot--reservations_widget {
    margin-bottom: var(--moi-space-lg);
}

/* WooCommerce hook locations */
.moi-carrot--product_before,
.moi-carrot--shop_header,
.moi-carrot--cart_top {
    margin-bottom: var(--moi-space-lg);
}

.moi-carrot--product_after,
.moi-carrot--shop_footer,
.moi-carrot--cart_bottom {
    margin-top: var(--moi-space-lg);
    margin-bottom: 0;
}

/* Responsive adjustments for carrots */
@media (max-width: 768px) {
    .moi-carrot {
        padding: var(--moi-space-sm) var(--moi-space-md);
        font-size: 13px;
    }

    .moi-carrot--site_header,
    .moi-carrot--site_footer {
        padding: var(--moi-space-xs) var(--moi-space-md);
    }
}

/* ============================================
   MEMBERSHIP DASHBOARD - NEW CARD DESIGN
============================================ */

/* Container for membership cards */
.membership-cards {
  display: flex;
  flex-direction: column;
  gap: var(--moi-space-lg);
  max-width: 900px;
  margin: 0 auto;
}

/* Main Membership Card */
.membership-card {
  background: var(--moi-bg);
  border: 1px solid var(--moi-border-light);
  border-radius: var(--moi-radius-lg);
  overflow: hidden;
  transition: all var(--moi-transition-base);
  box-shadow: var(--moi-shadow-sm);
  margin-bottom: var(--moi-space-lg);
}

.membership-card:hover {
  box-shadow: var(--moi-shadow-md);
}

.membership-card__main {
  display: flex;
  gap: var(--moi-space-lg);
  padding: var(--moi-space-lg);
}

/* Card Image */
.membership-card__image {
  width: 180px;
  height: 140px;
  background: linear-gradient(135deg, var(--moi-bg-secondary) 0%, var(--moi-bg-tertiary) 100%);
  border-radius: var(--moi-radius-md);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

.membership-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.membership-card__image-placeholder {
  color: var(--moi-text-light);
  font-size: 12px;
  text-align: center;
}

/* Card Content */
.membership-card__content {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
}

.membership-card__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: var(--moi-space-md);
}

.membership-card__info {
  flex: 1;
}

.membership-card__title,
.membership-card .membership-card__title,
.membership-cards .membership-card__title,
.woocommerce-MyAccount-content .membership-card__title,
h2.membership-card__title,
h3.membership-card__title {
  font-size: 20px !important;
  font-weight: 600 !important;
  margin-top: 0 !important;
  margin-bottom: var(--moi-space-xs) !important;
  color: var(--moi-text) !important;
  line-height: 1.3 !important;
  padding: 0 !important;
}

.membership-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--moi-space-md);
  color: var(--moi-text-muted);
  font-size: 14px;
}

.membership-card__meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.membership-card__meta-item svg {
  width: 14px;
  height: 14px;
  opacity: 0.6;
}

.membership-card__discount {
  color: var(--moi-discount);
  font-weight: 600;
}

/* ============================================
   OPTIONS DROPDOWN (Three-dot menu)
============================================ */

.membership-card__options {
  position: relative;
}

.options-btn {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  min-height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--moi-bg-secondary) !important;
  border: 1px solid var(--moi-border-light) !important;
  border-radius: var(--moi-radius-md) !important;
  cursor: pointer;
  transition: all var(--moi-transition-fast);
  padding: 0 !important;
}

.options-btn:hover {
  background: var(--moi-bg-tertiary) !important;
  border-color: var(--moi-border) !important;
}

.options-btn svg {
  width: 18px !important;
  height: 18px !important;
  color: var(--moi-text-muted) !important;
  fill: currentColor !important;
}

.options-dropdown {
  position: absolute;
  top: calc(100% + var(--moi-space-xs));
  right: 0;
  min-width: 200px;
  background: var(--moi-bg);
  border: 1px solid var(--moi-border-light);
  border-radius: var(--moi-radius-md);
  box-shadow: var(--moi-shadow-lg);
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: all var(--moi-transition-fast);
}

.options-dropdown.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.options-dropdown__item {
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  padding: var(--moi-space-sm) var(--moi-space-md);
  font-size: 14px;
  color: var(--moi-text);
  cursor: pointer;
  transition: background var(--moi-transition-fast);
}

.options-dropdown__item:first-child {
  border-radius: var(--moi-radius-md) var(--moi-radius-md) 0 0;
}

.options-dropdown__item:last-child {
  border-radius: 0 0 var(--moi-radius-md) var(--moi-radius-md);
}

.options-dropdown__item:hover {
  background: var(--moi-bg-secondary);
}

.options-dropdown__item svg {
  width: 16px;
  height: 16px;
  opacity: 0.6;
}

.options-dropdown__item--danger {
  color: var(--moi-error);
}

.options-dropdown__item--danger svg {
  opacity: 0.8;
}

.options-dropdown__divider {
  height: 1px;
  background: var(--moi-border-light);
  margin: var(--moi-space-xs) 0;
}

/* ============================================
   ACTION BUTTONS
============================================ */

.membership-card__actions {
  display: flex;
  gap: var(--moi-space-sm);
  margin-top: auto;
}


/* ============================================
   STATUS SECTION (Bottom of card)
============================================ */

.membership-card__status-section {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--moi-space-md);
  padding: var(--moi-space-md) var(--moi-space-lg);
  border-top: 1px solid var(--moi-border-light);
  background: var(--moi-bg-secondary);
}

.status-item {
  text-align: center;
}

.status-item__label {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--moi-text-muted);
  margin-bottom: var(--moi-space-xs);
}

.status-item__value {
  font-size: 14px;
  font-weight: 500;
  color: var(--moi-text);
}

/* ============================================
   STATUS BADGES
============================================ */

.status-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 12px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.status-badge svg {
  width: 12px;
  height: 12px;
}

.status-badge--active {
  background: rgba(40, 167, 69, 0.15);
  color: var(--moi-success);
}

.status-badge--paused {
  background: rgba(245, 158, 11, 0.15);
  color: var(--moi-warning);
}

.status-badge--cancelling {
  background: rgba(245, 158, 11, 0.15);
  color: var(--moi-warning);
}

.status-badge--skipped {
  background: rgba(245, 158, 11, 0.15);
  color: var(--moi-warning);
}

.status-badge--cancelled {
  background: rgba(220, 53, 69, 0.15);
  color: var(--moi-error);
}

.status-badge--pending {
  background: rgba(108, 117, 125, 0.15);
  color: var(--moi-text-muted, #6c757d);
}

/* ============================================
   CANCELLED CARD STATE
============================================ */

.membership-card--cancelled {
  opacity: 0.85;
}

.membership-card--cancelled .membership-card__image {
  filter: grayscale(50%);
}

.membership-card--cancelled .membership-card__actions {
  display: none;
}

/* ============================================
   MEMBERSHIP CARD RESPONSIVE
============================================ */

@media (max-width: 768px) {
  .membership-card__main {
    flex-direction: column;
    position: relative;
  }

  .membership-card__image {
    width: 100%;
    height: 180px;
  }

  .membership-card__header {
    flex-direction: column;
    gap: var(--moi-space-md);
  }

  .membership-card__options {
    position: absolute;
    top: var(--moi-space-md);
    right: var(--moi-space-md);
  }

  .membership-card__status-section {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--moi-space-sm);
  }

  .membership-card__actions {
    flex-wrap: wrap;
  }

  .membership-card__actions .moi-btn {
    flex: 1;
    min-width: calc(50% - var(--moi-space-xs));
  }
}

@media (max-width: 480px) {
  .membership-card__meta {
    flex-direction: column;
    gap: var(--moi-space-xs);
  }

  .membership-card__actions {
    flex-direction: column;
  }

  .membership-card__actions .moi-btn {
    width: 100%;
  }
}

/* ============================================
   ELEMENTOR OVERRIDES - MEMBERSHIP & LOYALTY BUTTONS
   Elementor themes apply aggressive button styling
   Using high-specificity selectors to override
============================================ */

/* Primary/Edit buttons (moi-custom-button) - High specificity */
.membership-card__actions .moi-custom-button,
.membership-card__actions button.moi-custom-button,
.membership-cards .membership-card__actions .moi-custom-button,
.woocommerce-MyAccount-content .membership-card__actions .moi-custom-button,
.woocommerce-MyAccount-content .membership-card__actions button.moi-custom-button,
.woocommerce-MyAccount-content button.moi-custom-button,
.loyalty-card .moi-custom-button,
.woocommerce-MyAccount-content .loyalty-card .moi-custom-button {
  background: var(--moi-primary) !important;
  color: var(--moi-bg) !important;
  border: 1px solid var(--moi-primary) !important;
  border-radius: 100px !important;
  padding: 10px 20px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  line-height: 1.4 !important;
  height: auto !important;
  min-height: 0 !important;
}

.membership-card__actions .moi-custom-button:hover,
.woocommerce-MyAccount-content .membership-card__actions .moi-custom-button:hover,
.loyalty-card .moi-custom-button:hover {
  background: var(--moi-primary-hover) !important;
  border-color: var(--moi-primary-hover) !important;
  color: var(--moi-bg) !important;
}

/* Secondary/Outline buttons (Skip, Pause - moi-custom-button-outline) - High specificity */
.membership-card__actions .moi-custom-button-outline,
.membership-card__actions button.moi-custom-button-outline,
.membership-card__actions .moi-btn--outline,
.membership-cards .membership-card__actions .moi-custom-button-outline,
.membership-cards .membership-card__actions .moi-btn--outline,
.woocommerce-MyAccount-content .membership-card__actions .moi-custom-button-outline,
.woocommerce-MyAccount-content .membership-card__actions .moi-btn--outline,
.woocommerce-MyAccount-content .membership-card__actions button.moi-custom-button-outline,
.woocommerce-MyAccount-content .membership-card__actions button.moi-btn--outline,
.woocommerce-MyAccount-content button.moi-custom-button-outline,
.loyalty-card .moi-custom-button-outline,
.loyalty-card .moi-btn--outline,
.woocommerce-MyAccount-content .loyalty-card .moi-custom-button-outline,
.woocommerce-MyAccount-content .loyalty-card .moi-btn--outline {
  background: transparent !important;
  color: var(--moi-text) !important;
  border: 1px solid var(--moi-border) !important;
  border-radius: 100px !important;
  padding: 10px 20px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  line-height: 1.4 !important;
  height: auto !important;
  min-height: 0 !important;
}

.membership-card__actions .moi-custom-button-outline:hover,
.membership-card__actions .moi-btn--outline:hover,
.woocommerce-MyAccount-content .membership-card__actions .moi-custom-button-outline:hover,
.woocommerce-MyAccount-content .membership-card__actions .moi-btn--outline:hover,
.loyalty-card .moi-custom-button-outline:hover,
.loyalty-card .moi-btn--outline:hover {
  border-color: var(--moi-primary) !important;
  color: var(--moi-primary) !important;
  background: var(--moi-bg-secondary) !important;
}

/* Button SVG icons */
.membership-card__actions .moi-btn svg,
.woocommerce-MyAccount-content .membership-card__actions .moi-btn svg,
.loyalty-card .moi-btn svg {
  width: 14px !important;
  height: 14px !important;
  fill: none !important;
  stroke: currentColor !important;
}

/* ============================================
   ELEMENTOR SVG FIX - GLOBAL
   Elementor sets svg { fill: currentcolor } which breaks
   our stroke-based icons. Override for all plugin SVGs.
============================================ */

/* All MOI button SVGs */
.moi-btn svg,
.moi-custom-button svg,
.moi-custom-button-outline svg {
  fill: none !important;
  stroke: currentColor !important;
}

/* Club card and meta icons */
.moi-club-card svg,
.moi-club-card__meta-item svg {
  fill: none !important;
  stroke: currentColor !important;
}

/* Product grid and item icons */
.moi-products-grid svg,
.moi-product-item svg,
.moi-product-item__badge svg,
.moi-product-item__constraint svg,
.moi-quantity-control__btn svg {
  fill: none !important;
  stroke: currentColor !important;
}

/* Sidebar icons */
.moi-sidebar__product-remove svg,
.moi-sidebar__requirements svg,
.moi-sidebar__instant-shipment-banner svg,
.moi-sidebar__ship-now-label svg,
.moi-max-products-alert svg,
.moi-alert-message svg {
  fill: none !important;
  stroke: currentColor !important;
}
.moi-sidebar__summary-label svg {
  fill: currentColor !important;
  stroke: none !important;
}

/* Frequency and shipment icons */
.moi-frequency-item__icon svg,
.moi-frequency-item__desc svg,
.moi-shipment-item__remove svg,
.moi-shipment-item__icon svg,
.moi-shipment-item__date svg,
.moi-shipment-card__remove svg,
.moi-shipment-card__icon svg,
.moi-shipment-card__date svg {
  fill: none !important;
  stroke: currentColor !important;
}

/* Dashboard and membership card icons */
.moi-dashboard-header svg,
.membership-card svg,
.membership-card__meta-item svg,
.options-btn svg,
.options-dropdown__item svg,
.status-badge svg {
  fill: none !important;
  stroke: currentColor !important;
}

/* Loyalty card icons */
.loyalty-card svg,
.loyalty-card__meta-item svg {
  fill: none !important;
  stroke: currentColor !important;
}

/* Shipments toggle icons */
.shipments-show-more svg,
.shipments-past__toggle svg {
  fill: none !important;
  stroke: currentColor !important;
}

/* Chat and modal icons */
.chat-avatar svg,
.modal__close svg {
  fill: none !important;
  stroke: currentColor !important;
}

/* Thank you page icons */
.moi-thankyou svg,
.moi-thankyou-icon svg,
.moi-thankyou-shipment-pill svg,
.moi-thankyou-btn svg {
  fill: none !important;
  stroke: currentColor !important;
}

/* ============================================
   LOYALTY DISCOUNT CARD
============================================ */

.loyalty-header {
  margin-bottom: var(--moi-space-lg);
}

.loyalty-header__title,
.loyalty-header .loyalty-header__title,
.loyalty-header h2.loyalty-header__title,
h2.loyalty-header__title,
.woocommerce-MyAccount-content .loyalty-header__title,
.woocommerce-MyAccount-content h2.loyalty-header__title {
  font-size: 28px !important;
  font-weight: 600 !important;
  color: var(--moi-text) !important;
  line-height: 1.2 !important;
  margin: 0 0 var(--moi-space-xs) 0 !important;
  padding: 0 !important;
  font-family: inherit !important;
}

.loyalty-header__description {
  color: var(--moi-text-muted);
  font-size: 15px;
}

.loyalty-empty {
  padding: var(--moi-space-lg);
  background: var(--moi-bg-secondary);
  border-radius: var(--moi-radius-md);
  color: var(--moi-text-muted);
  text-align: center;
}

.loyalty-cards {
  display: flex;
  flex-direction: column;
  gap: var(--moi-space-lg);
}

.loyalty-card {
  background: var(--moi-bg);
  border: 1px solid var(--moi-border-light);
  border-radius: var(--moi-radius-lg);
  overflow: hidden;
  transition: all var(--moi-transition-base);
  box-shadow: var(--moi-shadow-sm);
}

.loyalty-card:hover {
  box-shadow: var(--moi-shadow-md);
}

.loyalty-card__main {
  padding: var(--moi-space-lg) var(--moi-space-lg) var(--moi-space-2xl);
}

.loyalty-card__content {
  display: flex;
  flex-direction: column;
  gap: var(--moi-space-sm);
}

.loyalty-card__title {
  font-size: 20px;
  font-weight: 600;
  margin: 0;
}

.loyalty-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--moi-space-md);
  color: var(--moi-text-muted);
  font-size: 14px;
}

.loyalty-card__meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
}

.loyalty-card__meta-item svg {
  width: 14px;
  height: 14px;
  opacity: 0.6;
  flex-shrink: 0;
}

.loyalty-card__discount {
  color: var(--moi-discount);
  font-weight: 600;
}

.loyalty-card__status-section {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--moi-space-md);
  padding: var(--moi-space-md) var(--moi-space-lg);
  border-top: 1px solid var(--moi-border-light);
  background: var(--moi-bg-secondary);
}

/* Loyalty Card Responsive */
@media (max-width: 768px) {
  .loyalty-card__status-section {
    grid-template-columns: 1fr 1fr;
  }

  .loyalty-card__status-section .status-item:last-child {
    grid-column: span 2;
  }
}

@media (max-width: 480px) {
  .loyalty-card__meta {
    flex-direction: column;
    gap: var(--moi-space-xs);
  }

  .loyalty-card__status-section {
    grid-template-columns: 1fr;
  }

  .loyalty-card__status-section .status-item:last-child {
    grid-column: span 1;
  }
}

/* ============================================
   CONVERSATION/CHAT STYLES
============================================ */

.chat-container {
  border: 1px solid var(--moi-border-light);
  border-radius: var(--moi-radius-md);
  height: 350px;
  display: flex;
  flex-direction: column;
}

.chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: var(--moi-space-md);
  display: flex;
  flex-direction: column;
  gap: var(--moi-space-md);
}

.chat-message {
  display: flex;
  align-items: flex-end;
  gap: var(--moi-space-sm);
  max-width: 80%;
}

.chat-message--customer {
  align-self: flex-start;
}

.chat-message--vendor {
  align-self: flex-end;
  flex-direction: row-reverse;
}

.chat-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--moi-bg-tertiary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.chat-avatar svg {
  width: 18px;
  height: 18px;
  color: var(--moi-text-muted);
}

.chat-avatar--vendor {
  background: var(--moi-primary);
}

.chat-avatar--vendor svg {
  color: var(--moi-bg);
}

.chat-bubble {
  background: var(--moi-bg-secondary);
  border-radius: var(--moi-radius-lg);
  padding: var(--moi-space-sm) var(--moi-space-md);
}

.chat-message--vendor .chat-bubble {
  background: var(--moi-bg-tertiary);
}

.chat-bubble__text {
  font-size: 14px;
  margin-bottom: 2px;
}

.chat-bubble__time {
  font-size: 11px;
  color: var(--moi-text-muted);
}

.chat-input-area {
  display: flex;
  gap: var(--moi-space-sm);
  padding: var(--moi-space-md);
  border-top: 1px solid var(--moi-border-light);
}

.chat-input {
  flex: 1;
  padding: 12px 16px;
  border: 1px solid var(--moi-border);
  border-radius: var(--moi-radius-md);
  font-family: inherit;
  font-size: 14px;
  background: var(--moi-bg);
}

.chat-input:focus {
  outline: none;
  border-color: var(--moi-primary);
}

.chat-send-btn {
  padding: 14px 28px;
  background: var(--moi-primary);
  color: var(--moi-bg);
  border: none;
  border-radius: 100px;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--moi-transition-fast);
}

.chat-send-btn:hover {
  background: var(--moi-primary-hover);
}

/* Conversation link button */
.conversation-link {
  display: inline-flex;
  align-items: center;
  gap: var(--moi-space-sm);
  padding: var(--moi-space-sm) var(--moi-space-md);
  background: var(--moi-bg);
  border: 1px solid var(--moi-border);
  border-radius: var(--moi-radius-md);
  font-size: 14px;
  color: var(--moi-text);
  cursor: pointer;
  transition: all var(--moi-transition-fast);
}

.conversation-link:hover {
  border-color: var(--moi-primary);
  color: var(--moi-primary);
}

.conversation-link__badge {
  background: var(--moi-primary);
  color: var(--moi-bg);
  padding: 2px 8px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 600;
}

/* ============================================
   MODAL FORM STYLES (NEW)
============================================ */

.form-group {
  margin-bottom: var(--moi-space-md);
}

.form-label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: var(--moi-space-xs);
}

.form-label .required {
  color: var(--moi-error);
}

.form-input,
.form-select,
.form-textarea {
  width: 100%;
  padding: 12px 16px;
  font-family: inherit;
  font-size: 14px;
  border: 1px solid var(--moi-border);
  border-radius: var(--moi-radius-md);
  background: var(--moi-bg);
  transition: all var(--moi-transition-fast);
}

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
  outline: none;
  border-color: var(--moi-primary);
  box-shadow: 0 0 0 3px rgba(var(--moi-primary-rgb), 0.1);
}

.form-textarea {
  min-height: 120px;
  resize: vertical;
}

/* Form row grid - ONLY for new modal structure (modal-overlay) */
/* NOT for existing WooCommerce .form-row classes */
.modal-overlay .form-row-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--moi-space-md);
}

@media (max-width: 640px) {
  .modal-overlay .form-row-grid {
    grid-template-columns: 1fr;
  }
}

/* Toggle switch */
.form-toggle {
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  cursor: pointer;
}

.form-toggle input {
  display: none;
}

.form-toggle__switch {
  width: 44px;
  height: 24px;
  background: var(--moi-border);
  border-radius: 100px;
  position: relative;
  transition: all var(--moi-transition-fast);
}

.form-toggle__switch::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  background: var(--moi-bg);
  border-radius: 50%;
  transition: all var(--moi-transition-fast);
}

.form-toggle input:checked + .form-toggle__switch {
  background: var(--moi-primary);
}

.form-toggle input:checked + .form-toggle__switch::after {
  transform: translateX(20px);
}

/* ============================================
   INFO DISPLAY STYLES (View Membership Modal)
============================================ */

.info-section {
  margin-bottom: var(--moi-space-lg);
}

.info-section__title {
  font-size: 14px;
  font-weight: 600;
  padding-bottom: var(--moi-space-sm);
  border-bottom: 1px solid var(--moi-border-light);
  margin-bottom: var(--moi-space-sm);
}

.info-row {
  display: flex;
  font-size: 14px;
  padding: var(--moi-space-xs) 0;
}

.info-row__label {
  color: var(--moi-text-muted);
  min-width: 140px;
}

.info-row__value {
  font-weight: 500;
}

.info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--moi-space-lg);
}

@media (max-width: 640px) {
  .info-grid {
    grid-template-columns: 1fr;
  }
}

/* Products Table */
.products-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  margin-top: var(--moi-space-sm);
}

.products-table th,
.products-table td {
  padding: var(--moi-space-sm);
  text-align: left;
  border-bottom: 1px solid var(--moi-border-light);
}

.products-table th {
  font-weight: 600;
  color: var(--moi-text-muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.products-table td:last-child,
.products-table th:last-child {
  text-align: right;
}

.totals-table {
  margin-left: auto;
  width: 280px;
  margin-top: var(--moi-space-md);
}

.totals-table td {
  padding: var(--moi-space-xs) var(--moi-space-sm);
  border: none;
}

.totals-table td:first-child {
  text-align: right;
  color: var(--moi-text-muted);
}

.totals-table td:last-child {
  font-weight: 500;
  text-align: right;
}

.totals-table .total-row td {
  font-weight: 600;
  font-size: 16px;
  border-top: 1px solid var(--moi-border);
  padding-top: var(--moi-space-sm);
}

.totals-table .discount-row td:last-child {
  color: var(--moi-discount);
}

/* Stripe Card Mock */
.stripe-card-mock {
  border: 1px solid var(--moi-border);
  border-radius: var(--moi-radius-md);
  padding: var(--moi-space-md);
  margin-top: var(--moi-space-md);
}

.stripe-card-mock__header {
  display: flex;
  align-items: center;
  gap: var(--moi-space-sm);
  margin-bottom: var(--moi-space-md);
  font-size: 14px;
}

.stripe-card-mock__header svg {
  width: 20px;
  height: 20px;
  color: var(--moi-text-muted);
}

.stripe-card-mock__secure {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: var(--moi-success);
  margin-left: auto;
}

.stripe-card-mock__fields {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  gap: var(--moi-space-sm);
}

.stripe-card-mock__field {
  padding: 10px 12px;
  background: var(--moi-bg-secondary);
  border: 1px solid var(--moi-border-light);
  border-radius: var(--moi-radius-sm);
  font-size: 13px;
  color: var(--moi-text-light);
}

@media (max-width: 640px) {
  .stripe-card-mock__fields {
    grid-template-columns: 1fr;
  }
}

/* ============================================
   MODAL OVERLAY & STRUCTURE (NEW)
============================================ */

.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: all var(--moi-transition-base);
  padding: var(--moi-space-md);
}

.modal-overlay.is-open {
  opacity: 1;
  visibility: visible;
}

.modal {
  background: var(--moi-bg);
  border-radius: var(--moi-radius-lg);
  box-shadow: var(--moi-shadow-lg);
  max-width: 560px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  transform: translateY(20px);
  transition: transform var(--moi-transition-base);
}

.modal-overlay.is-open .modal {
  transform: translateY(0);
}

.modal--wide {
  max-width: 720px;
}

.modal__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--moi-space-lg);
  border-bottom: 1px solid var(--moi-border-light);
}

.modal__title {
  font-size: 18px;
  font-weight: 600;
}

.modal__close {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  border-radius: var(--moi-radius-sm);
  cursor: pointer;
  color: var(--moi-text-muted);
  transition: all var(--moi-transition-fast);
}

.modal__close:hover {
  background: var(--moi-bg-secondary);
  color: var(--moi-text);
}

.modal__close svg {
  width: 20px;
  height: 20px;
}

.modal__body {
  padding: var(--moi-space-lg);
}

.modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: var(--moi-space-sm);
  padding: var(--moi-space-lg);
  border-top: 1px solid var(--moi-border-light);
}

/* ============================================
   MODAL BUTTON INTEGRATION
   Ensures .moi-btn works within existing modal structure
============================================ */

/* Buttons in moi-modal-footer - override WooCommerce styles */
.moi-modal-footer .moi-btn,
.moi-modal .moi-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px;
  padding: 12px 32px !important;
  background: var(--moi-primary) !important;
  color: var(--moi-bg) !important;
  border: 1px solid var(--moi-primary) !important;
  border-radius: 100px !important;
  font-family: inherit;
  font-size: 14px !important;
  font-weight: 500 !important;
  cursor: pointer;
  margin: 0;
  line-height: 1.5 !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  min-width: 120px;
}

.moi-modal-footer .moi-btn:hover,
.moi-modal .moi-btn:hover {
  background: var(--moi-primary-hover) !important;
  border-color: var(--moi-primary-hover) !important;
  color: var(--moi-bg) !important;
}

/* Danger button in modals */
.moi-modal-footer .moi-btn--danger,
.moi-modal .moi-btn--danger {
  background: var(--moi-error) !important;
  border-color: var(--moi-error) !important;
  color: white !important;
}

.moi-modal-footer .moi-btn--danger:hover,
.moi-modal .moi-btn--danger:hover {
  background: #c82333 !important;
  border-color: #c82333 !important;
}

/* Remove extra padding from form-row wrapper in modal footer */
.moi-modal-footer .form-row {
  margin: 0;
  padding: 0;
}

/* Ensure proper button sizing in modals */
.moi-modal-footer .moi-text-right {
  display: flex;
  justify-content: flex-end;
  gap: var(--moi-space-sm);
}

/* Button loading state in modals */
.moi-modal-footer .moi-btn.is-loading {
  pointer-events: none;
  opacity: 0.7;
}

.moi-modal-footer .moi-btn.is-loading .moi-btn-label {
  opacity: 0;
}

.moi-modal-footer .moi-btn.is-loading .moi-btn-spinner {
  display: flex !important;
}

/* Modal form inputs - Normal styling with high specificity */
#moi_model_holder .moi-modal .moi-modal-body input.input-text,
#moi_model_holder .moi-modal .moi-modal-body input[type="text"],
#moi_model_holder .moi-modal .moi-modal-body input[type="email"],
#moi_model_holder .moi-modal .moi-modal-body input[type="tel"],
#moi_model_holder .moi-modal .moi-modal-body input[type="number"],
.moi-modal .moi-modal-body input.input-text,
.moi-modal .moi-modal-body input[type="text"],
.moi-modal .moi-modal-body input[type="email"],
.moi-modal .moi-modal-body input[type="tel"],
.moi-modal .moi-modal-body input[type="number"] {
  padding: 12px 14px !important;
  line-height: 1.5 !important;
  height: auto !important;
  min-height: 0 !important;
  border: 1px solid var(--moi-border) !important;
  border-radius: var(--moi-radius-md) !important;
  font-size: 14px !important;
  box-sizing: border-box !important;
}

#moi_model_holder .moi-modal .moi-modal-body input:focus,
.moi-modal .moi-modal-body input:focus {
  outline: none !important;
  border-color: var(--moi-primary) !important;
  box-shadow: 0 0 0 3px rgba(var(--moi-primary-rgb), 0.1) !important;
}

/* Modal select dropdowns */
#moi_model_holder .moi-modal .moi-modal-body select,
.moi-modal .moi-modal-body select {
  padding: 12px 36px 12px 14px !important;
  line-height: 1.5 !important;
  height: auto !important;
  border: 1px solid var(--moi-border) !important;
  border-radius: var(--moi-radius-md) !important;
  background: var(--moi-bg) !important;
  font-size: 14px !important;
  cursor: pointer;
  width: 100%;
  box-sizing: border-box;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}

.moi-modal .moi-modal-body select:disabled {
  background-color: #f5f5f5 !important;
  cursor: not-allowed;
  opacity: 0.7;
}

/* Modal textarea */
#moi_model_holder .moi-modal .moi-modal-body textarea,
.moi-modal .moi-modal-body textarea {
  padding: 12px 14px !important;
  line-height: 1.5 !important;
  min-height: 80px !important;
  max-height: 150px !important;
  height: auto !important;
  resize: vertical;
  font-size: 14px !important;
  border: 1px solid var(--moi-border) !important;
  border-radius: var(--moi-radius-md) !important;
}