/* ═══════════════════════════════════════════════════════
   Bootstrap JS compatibility shims
   (classes added/removed dynamically by Bootstrap JS + jQuery)
   ═══════════════════════════════════════════════════════ */
.d-none  { display: none  !important; }
.d-block { display: block !important; }
.d-flex  { display: flex  !important; }
.d-inline { display: inline !important; }

/* Subscription plan toggle */
.subscription { display: none; }

/* Form validation */
.is-invalid { border-color: #dc3545 !important; box-shadow: 0 0 0 2px rgba(220,53,69,.15) !important; }
.invalid-feedback { display: none; color: #dc3545; font-size: 0.75rem; margin-top: 4px; }
.invalid-feedback.d-block { display: block !important; }

/* Bootstrap tab system (JS adds/removes .fade .show .active) */
.tab-pane { display: none; }
.tab-pane.active { display: block; }
.fade { transition: opacity .15s linear; }
.fade:not(.show) { opacity: 0; }
.tab-pane.fade.show { opacity: 1; }

/* Alert dismiss button */
.btn-close {
  box-sizing: content-box;
  width: 1em; height: 1em;
  padding: .25em .25em;
  background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
  border: 0; border-radius: .375rem; opacity: .5; cursor: pointer; flex-shrink: 0;
}
.btn-close:hover { opacity: .75; }

/* Required field indicator */
.required label::before,
.required .form-label::before { content: "* "; color: #dc3545; font-weight: bold; }

/* ═══════════════════════════════════════════════════════
   Alert system (dynamically injected by JS)
   ═══════════════════════════════════════════════════════ */
#alert {
  position: fixed;
  top: 30%;
  left: 50%;
  width: 400px;
  margin-left: -200px;
  z-index: 9999;
}
@media (min-width: 992px) {
  #alert { width: 600px; margin-left: -300px; }
}
#alert .alert { margin-bottom: 12px; border-radius: 6px; padding: 12px 40px 12px 16px; position: relative; display: flex; align-items: center; gap: 10px; font-size: 14px; }
.alert-success  { background: #f0fdf4; border: 1px solid #bbf7d0; color: #166534; }
.alert-danger   { background: #fef2f2; border: 1px solid #fecaca; color: #991b1b; }
.alert-warning  { background: #fffbeb; border: 1px solid #fde68a; color: #92400e; }
.alert-info     { background: #eff6ff; border: 1px solid #bfdbfe; color: #1e40af; }
.alert-dismissible { padding-right: 48px; }
.alert-dismissible .btn-close { position: absolute; top: 50%; right: 12px; transform: translateY(-50%); }

/* ═══════════════════════════════════════════════════════
   Material Symbols
   ═══════════════════════════════════════════════════════ */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  font-family: 'Material Symbols Outlined';
  font-style: normal;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
}

/* ═══════════════════════════════════════════════════════
   Section heading highlight (pseudo-element)
   ═══════════════════════════════════════════════════════ */
.sm-highlight,
.category-header-highlight {
  position: relative;
  display: inline-block;
  z-index: 1;
}
.sm-highlight::after,
.category-header-highlight::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 100%; height: 38%;
  background-color: #0baf7c;
  z-index: -1;
}

/* ═══════════════════════════════════════════════════════
   Search form (Tailwind classes in template; layout only)
   ═══════════════════════════════════════════════════════ */
#search-form {
  width: 100%;
}

/* ═══════════════════════════════════════════════════════
   Navigation & mega menu
   ═══════════════════════════════════════════════════════ */
#sm-nav {
  scrollbar-width: none;
}
#sm-nav::-webkit-scrollbar {
  display: none;
}
.mega-menu-content {
  scrollbar-width: thin;
  scrollbar-color: #0baf7c transparent;
}
#sm-mega-overlay.opacity-100 {
  pointer-events: auto;
}

/* ═══════════════════════════════════════════════════════
   Account dropdown
   ═══════════════════════════════════════════════════════ */
.account-dropdown { position: relative; }
.account-menu {
  display: none;
  position: absolute;
  right: 0; top: 100%;
  background: #fff;
  border: 1px solid #e4e4e7;
  box-shadow: 0 4px 16px rgba(0,0,0,.1);
  z-index: 100;
  min-width: 180px;
  padding: 6px 0;
}
.account-dropdown:hover .account-menu,
.account-dropdown:focus-within .account-menu { display: block; }

/* ═══════════════════════════════════════════════════════
   Cookie bar
   ═══════════════════════════════════════════════════════ */
#cookie {
  position: fixed; bottom: 0; left: 0;
  width: 100%; height: 150px;
  z-index: 9999; opacity: 0.95;
  color: #ecf0f1; background: #343a40;
}
#cookie div { font-size: 16px; color: #fff; }

/* ═══════════════════════════════════════════════════════
   Benefit bar (used in homepage module)
   ═══════════════════════════════════════════════════════ */
#sm-benefit-bar { background: #fff; border-bottom: 1px solid #e4e4e7; }
.sm-benefit-item {
  display: flex; align-items: center; gap: 14px;
  padding: 20px 24px;
  border-right: 1px solid #e4e4e7;
}
.sm-benefit-item:last-child { border-right: none; }
@media (max-width: 767.98px) { .sm-benefit-item:nth-child(even) { border-right: none; } }
.sm-benefit-icon { color: #0baf7c; font-size: 24px; flex-shrink: 0; }
.sm-benefit-text { font-size: 13px; font-weight: 600; color: #1a1c1c; }

/* ═══════════════════════════════════════════════════════
   Logo strip title (banner module – logo_strip mode)
   ═══════════════════════════════════════════════════════ */
.sm-brands-title {
  text-align: center; text-transform: uppercase;
  letter-spacing: 0.1em; font-size: 28px; font-weight: 700;
  line-height: 1.2; margin-bottom: 40px; color: #fff;
}

/* Logo strip (banner module – logo_strip mode) */
.sm-logo-strip-viewport { padding: 0 40px; }
.sm-logo-strip-link { text-decoration: none; }
.sm-logo-strip-img {
  max-height: 52px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
  filter: grayscale(100%) brightness(1.8);
  opacity: 0.75;
  transition: filter 0.15s ease, opacity 0.15s ease;
}
.sm-logo-strip-item:hover .sm-logo-strip-img {
  filter: grayscale(0%);
  opacity: 1;
}
.sm-logo-strip-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  color: #fff;
  background: rgba(0, 0, 0, 0.35);
  border: 0;
  padding: 6px;
  cursor: pointer;
  transition: background 0.15s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sm-logo-strip-btn:hover { background: rgba(0, 0, 0, 0.6); }
.sm-logo-strip-btn-prev { left: 0; }
.sm-logo-strip-btn-next { right: 0; }
.sm-logo-strip-dot.bg-primary { background-color: #0baf7c !important; }

/* ═══════════════════════════════════════════════════════
   Magnific Popup (lightbox)
   ═══════════════════════════════════════════════════════ */
.mfp-bg { top: 0; left: 0; width: 100%; height: 100%; z-index: 1042; overflow: hidden; position: fixed; background: #0b0b0b; opacity: 0.8; }
.mfp-wrap { top: 0; left: 0; width: 100%; height: 100%; z-index: 1043; position: fixed; outline: none !important; -webkit-backface-visibility: hidden; }
.mfp-container { text-align: center; position: absolute; width: 100%; height: 100%; left: 0; top: 0; padding: 0 8px; box-sizing: border-box; }
.mfp-container:before { content: ''; display: inline-block; height: 100%; vertical-align: middle; }
.mfp-align-top .mfp-container:before { display: none; }
.mfp-content { position: relative; display: inline-block; vertical-align: middle; margin: 0 auto; text-align: left; z-index: 1045; }
.mfp-inline-holder .mfp-content, .mfp-ajax-holder .mfp-content { width: 100%; cursor: auto; }
.mfp-ajax-cur { cursor: progress; }
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close { cursor: -webkit-zoom-out; cursor: zoom-out; }
.mfp-zoom { cursor: pointer; cursor: -webkit-zoom-in; cursor: zoom-in; }
.mfp-auto-cursor .mfp-content { cursor: auto; }
.mfp-close, .mfp-arrow, .mfp-preloader, .mfp-counter { -webkit-user-select: none; -moz-user-select: none; user-select: none; }
.mfp-loading.mfp-figure { display: none; }
.mfp-hide { display: none !important; }
.mfp-preloader { color: #ccc; position: absolute; top: 50%; width: auto; text-align: center; margin-top: -0.8em; left: 8px; right: 8px; z-index: 1044; }
.mfp-preloader a { color: #ccc; }
.mfp-preloader a:hover { color: #fff; }
.mfp-s-ready .mfp-preloader { display: none; }
.mfp-s-error .mfp-content { display: none; }
button.mfp-close, button.mfp-arrow { overflow: visible; cursor: pointer; background: transparent; border: 0; -webkit-appearance: none; display: block; outline: none; padding: 0; z-index: 1046; box-shadow: none; touch-action: manipulation; }
button::-moz-focus-inner { padding: 0; border: 0; }
.mfp-close {
  width: 44px; height: 44px; line-height: 44px;
  position: absolute; right: 0; top: 0;
  text-decoration: none; text-align: center;
  opacity: 0.65; padding: 0 0 18px 10px; color: #fff; font-style: normal; font-size: 28px; font-family: Arial, Baskerville, monospace;
}
.mfp-close:hover, .mfp-close:focus { opacity: 1; }
.mfp-close:active { top: 1px; }
.mfp-close-btn-in .mfp-close { color: #333; }
.mfp-image-holder .mfp-close, .mfp-iframe-holder .mfp-close { color: #fff; right: -6px; text-align: right; padding-right: 6px; width: 100%; }
.mfp-counter { position: absolute; top: 0; right: 0; color: #ccc; font-size: 12px; line-height: 18px; white-space: nowrap; }
.mfp-arrow { position: absolute; opacity: 0.65; margin: 0; top: 50%; margin-top: -55px; padding: 0; width: 90px; height: 110px; -webkit-tap-highlight-color: transparent; }
.mfp-arrow:active { margin-top: -54px; }
.mfp-arrow:hover, .mfp-arrow:focus { opacity: 1; }
.mfp-arrow:before, .mfp-arrow:after { content: ''; display: block; width: 0; height: 0; position: absolute; left: 0; top: 0; margin-top: 35px; margin-left: 35px; border: medium inset transparent; }
.mfp-arrow:after { border-top-width: 13px; border-bottom-width: 13px; top: 8px; }
.mfp-arrow:before { border-top-width: 21px; border-bottom-width: 21px; opacity: 0.7; }
.mfp-arrow-left { left: 0; }
.mfp-arrow-left:after { border-right: 17px solid #fff; margin-left: 31px; }
.mfp-arrow-left:before { margin-left: 25px; border-right: 27px solid #3f3f3f; }
.mfp-arrow-right { right: 0; }
.mfp-arrow-right:after { border-left: 17px solid #fff; margin-left: 39px; }
.mfp-arrow-right:before { border-left: 27px solid #3f3f3f; }
.mfp-iframe-holder { padding-top: 40px; padding-bottom: 40px; }
.mfp-iframe-holder .mfp-content { line-height: 0; width: 100%; max-width: 900px; }
.mfp-iframe-holder .mfp-close { top: -40px; }
.mfp-iframe-scaler { width: 100%; height: 0; overflow: hidden; padding-top: 56.25%; }
.mfp-iframe-scaler iframe { position: absolute; display: block; top: 0; left: 0; width: 100%; height: 100%; box-shadow: 0 0 8px rgba(0,0,0,.6); background: #000; }
img.mfp-img { width: auto; max-width: 100%; height: auto; display: block; line-height: 0; box-sizing: border-box; padding: 40px 0 40px; margin: 0 auto; }
.mfp-figure { line-height: 0; }
.mfp-figure:after { content: ''; position: absolute; left: 0; top: 40px; bottom: 40px; display: block; right: 0; width: auto; height: auto; z-index: -1; box-shadow: 0 0 8px rgba(0,0,0,.6); background: #444; }
.mfp-figure small { color: #bdbdbd; display: block; font-size: 12px; line-height: 14px; }
.mfp-figure figure { margin: 0; }
.mfp-bottom-bar { margin-top: -36px; position: absolute; top: 100%; left: 0; width: 100%; cursor: auto; }
.mfp-title { text-align: left; line-height: 18px; color: #f3f3f3; word-wrap: break-word; }
.mfp-image-holder .mfp-content { max-width: 100%; }
.mfp-gallery .mfp-image-holder .mfp-figure { cursor: pointer; }
