/* ========================================
   OVERFLOW PREVENTION & LAYOUT FIXES
   ======================================== */

/* Prevent horizontal overflow globally */
html,
body {
  /* overflow-x: hidden !important; */
  max-width: 100vw !important;
  width: 100% !important;
}

/* Allow sticky positioning to work properly */
html {
  overflow-x: hidden;
  overflow-y: auto;
}


/* Ensure all containers respect viewport width */
* {
  box-sizing: border-box !important;
}

/* ========================================
   TOOLTIP STYLES
   ======================================== */

/* Custom tooltip styles */
.custom-tooltip {
  position: fixed;
  background: rgba(0, 0, 0, 0.9);
  color: white;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 13px;
  white-space: nowrap;
  z-index: 9999;
  pointer-events: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  opacity: 0;
  transition: opacity 0.2s ease;
  max-width: 200px;
  text-align: center;
  visibility: hidden;
}

.custom-tooltip.show {
  opacity: 1;
  visibility: visible;
}

.custom-tooltip::after {
  content: '';
  position: absolute;
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-bottom-color: rgba(0, 0, 0, 0.9);
  z-index: 9999;
}

/* ========================================
   BANNER ANIMATIONS
   ======================================== */

@keyframes slideDown {
  0% {
    opacity: 0;
    transform: translateY(-30px);
  }

  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-slide-down {
  animation: slideDown 0.6s ease-out forwards;
}

/* ========================================
   TEXT SHADOW UTILITIES
   ======================================== */

.text-shadow-gray-900 {
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.8);
}

.text-shadow-black {
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9);
}

.text-shadow-white {
  text-shadow: 2px 2px 4px rgba(255, 255, 255, 0.8);
}

header .container,
nav#top .container {
  max-width: 1800px;
}

.container {
  max-width: 1920px;
  /* margin: auto; */
}

::placeholder {
  color: black;
  opacity: 1;
  /* Firefox */
}

/* ========================================
   CUSTOM SWIPER ARROW STYLES
   ======================================== */

.slideshow img {
  width: 100%;
}

.swiper-viewport {
  /* padding: unset !important;
  border: unset !important;
  box-shadow: unset !important; */
}

.slideshow .swiper-button-prev,
.slideshow .swiper-button-next,
.product-images .swiper-button-prev,
.product-images .swiper-button-next {
  width: 50px !important;
  height: 50px !important;
  border-radius: 100%;
  background-color: rgba(0, 0, 0, 0.46);
  display: flex;
  justify-content: center;
  align-content: center;
  align-items: center;
  /* top: calc(50% - 130px); */
}

/* Override default swiper button styles */
.slideshow .swiper-button-prev,
.slideshow .swiper-button-next,
.product-images .swiper-button-prev,
.product-images .swiper-button-next {
  background-image: none !important;
}

.slideshow .swiper-button-prev:before,
.slideshow .swiper-button-next:before,
.product-images .swiper-button-prev:before,
.product-images .swiper-button-next:before {
  content: "" !important;
  width: 48px !important;
  height: 48px !important;
  display: block !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

.slideshow .swiper-button-prev:before,
.product-images .swiper-button-prev:before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' class='size-6'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6.75 15.75 3 12m0 0 3.75-3.75M3 12h18' /%3E%3C/svg%3E") !important;
}

.slideshow .swiper-button-next:before,
.product-images .swiper-button-next:before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='white' class='size-6'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M17.25 8.25 21 12m0 0-3.75 3.75M21 12H3' /%3E%3C/svg%3E") !important;
}

/* Pagination styling */
.slideshow .swiper-pagination {
  bottom: -40px;
  left: 0;
  text-align: center;
  width: 100%;
}

.swiper-pagination-bullet {
  width: 12px;
  height: 12px;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 50%;
  box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.3);
  margin: 0 5px;
  opacity: 1;
  transition: all 0.3s ease;
}

.swiper-pagination-bullet:hover {
  background: rgba(0, 0, 0, 0.6);
  transform: scale(1.2);
}

.swiper-pagination-bullet-active {
  background: var(--primary-color) !important;
  transform: scale(1.3);

}

/* Responsive adjustments */
@media (max-width: 768px) {

  .slideshow .swiper-button-prev {
    left: 2%;
    width: 40px;
    height: 40px;
  }

  .slideshow .swiper-button-next {
    right: 2%;
    width: 40px;
    height: 40px;
  }
}

/* ========================================
   MODERN FLOATING ALERT SYSTEM
   ======================================== */

/* Base alert styling - overrides default Bootstrap positioning */
.alert {
  position: fixed !important;
  bottom: 20px !important;
  right: 20px !important;
  z-index: 9999 !important;
  max-width: 400px !important;
  padding: 16px 20px !important;
  border-radius: 8px !important;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15) !important;
  border: none !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  backdrop-filter: blur(10px) !important;

  /* Animation: slide in from right only */
  animation: slideInRight 0.3s ease-out forwards !important;
}

/* Success alert - green gradient background */
.alert-success {
  background: linear-gradient(135deg, #10b981, #059669) !important;
  color: white !important;
  border-left: 4px solid #047857 !important;
}

/* Danger alert - red gradient background */
.alert-danger {
  background: linear-gradient(135deg, #ef4444, #dc2626) !important;
  color: white !important;
  border-left: 4px solid #b91c1c !important;
}

/* Warning alert - orange gradient background */
.alert-warning {
  background: linear-gradient(135deg, #f59e0b, #d97706) !important;
  color: white !important;
  border-left: 4px solid #b45309 !important;
}

/* Info alert - blue gradient background */
.alert-info {
  background: linear-gradient(135deg, #3b82f6, #2563eb) !important;
  color: white !important;
  border-left: 4px solid #1d4ed8 !important;
}

/* Dismissible alert - extra padding for close button */
.alert-dismissible {
  padding-right: 50px !important;
}

/* Close button styling */
.alert .close {
  position: absolute !important;
  top: 12px !important;
  right: 16px !important;
  background: none !important;
  border: none !important;
  color: rgba(255, 255, 255, 0.8) !important;
  font-size: 18px !important;
  font-weight: bold !important;
  cursor: pointer !important;
  padding: 0 !important;
  width: 24px !important;
  height: 24px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  transition: all 0.2s ease !important;
  opacity: 1 !important;
}

/* Close button hover effect */
.alert .close:hover {
  background: rgba(255, 255, 255, 0.2) !important;
  color: white !important;
}

/* Alert icon styling */
.alert i {
  margin-right: 8px !important;
  font-size: 16px !important;
}

/* ========================================
   ALERT ANIMATIONS
   ======================================== */

/* Slide in animation - alerts slide in from the bottom-right */
@keyframes slideInRight {
  from {
    transform: translateX(100%) translateY(100%);
    opacity: 0;
  }

  to {
    transform: translateX(0) translateY(0);
    opacity: 1;
  }
}

/* Slide out animation - for manual dismissal */
@keyframes slideOutRight {
  from {
    transform: translateX(0) translateY(0);
    opacity: 1;
  }

  to {
    transform: translateX(100%) translateY(100%);
    opacity: 0;
  }
}

/* Fade out animation - auto-hide after 5 seconds */
@keyframes fadeOut {
  to {
    opacity: 0;
    transform: translateX(100%) translateY(100%);
  }
}

/* Auto-hide class - can be added to alerts that should auto-hide */
.alert-auto-hide {
  animation: slideInRight 0.3s ease-out forwards, fadeOut 0.3s ease-in forwards 5s !important;
}

/* Slide-out class for manual closing */
.alert.slide-out {
  animation: slideOutRight 0.3s ease-out forwards !important;
}

/* ========================================
   RESPONSIVE DESIGN
   ======================================== */

/* Mobile devices - alerts appear at bottom center */
@media (max-width: 768px) {
  .alert {
    right: 10px !important;
    left: 10px !important;
    max-width: none !important;
  }

  /* Mobile slide in animation - from bottom */
  @keyframes slideInRight {
    from {
      transform: translateY(100%);
      opacity: 0;
    }

    to {
      transform: translateY(0);
      opacity: 1;
    }
  }

  /* Mobile fade out animation - to bottom */
  @keyframes fadeOut {
    to {
      opacity: 0;
      transform: translateY(100%);
    }
  }
}

/* ========================================
   FORM VALIDATION STYLING
   ======================================== */

/* Error state for form groups */
.form-group.has-error {
  margin-bottom: 1rem;
}

/* Error styling for form controls */
.form-group.has-error input,
.form-group.has-error select,
.form-group.has-error textarea {
  border-color: #ef4444 !important;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important;
}

/* Error styling for radio and checkbox groups */
.form-group.has-error .radio,
.form-group.has-error .checkbox {
  border: 1px solid #ef4444;
  border-radius: 6px;
  padding: 8px;
  background-color: rgba(239, 68, 68, 0.05);
}

/* Error message styling */
.text-danger {
  color: #ef4444 !important;
  font-size: 0.875rem !important;
  margin-top: 0.25rem !important;
  display: block !important;
}

/* Error icon styling */
.form-group.has-error .fa {
  color: #ef4444;
}

/* Focus state for error fields */
.form-group.has-error input:focus,
.form-group.has-error select:focus,
.form-group.has-error textarea:focus {
  border-color: #ef4444 !important;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2) !important;
}

/* Success state for form groups */
.form-group.has-success input,
.form-group.has-success select,
.form-group.has-success textarea {
  border-color: #10b981 !important;
  box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.1) !important;
}

/* ========================================
   PRODUCT PAGE SPECIFIC VALIDATION
   ======================================== */

.product-filters, #product-product .product-attributes {
    /*display: none;*/
}

/* Product options error styling */
#product .form-group.has-error {
  background-color: rgba(239, 68, 68, 0.05);
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: 8px;
  padding: 12px;
  margin-bottom: 1rem;
}

/* Product options error label */
#product .form-group.has-error label {
  color: #ef4444 !important;
  font-weight: 600 !important;
}

/* Product options error input focus */
#product .form-group.has-error input:focus,
#product .form-group.has-error select:focus,
#product .form-group.has-error textarea:focus {
  border-color: #ef4444 !important;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.2) !important;
  outline: none !important;
}

/* Error message positioning */
#product .text-danger {
  margin-top: 0.5rem !important;
  padding: 0.5rem !important;
  background-color: rgba(239, 68, 68, 0.1) !important;
  border-radius: 4px !important;
  border-left: 3px solid #ef4444 !important;
}

.tab-pane {
  display: none;
}

.tab-pane.active {
  display: block;
}

/* ========================================
   MEGA MENU STYLING
   ======================================== */

/* Mega menu container */
.mega-menu-container {
  position: relative;
}

/* Mega menu dropdown */
.mega-menu-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 0.5rem;
  background: white;
  border-radius: 0.5rem;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  border: 1px solid #e5e7eb;
  z-index: 50;
  width: 800px;
  max-width: 90vw;
}

/* Left side - categories */
.mega-menu-left {
  background-color: #f9fafb;
  padding: 1rem;
  border-radius: 0.5rem 0 0 0.5rem;
  width: 33.333333%;
}

/* Right side - subcategories */
.mega-menu-right {
  padding: 1rem;
  width: 66.666667%;
}

/* Category hover effect */
.mega-menu-category {
  width: 100%;
  text-align: left;
  padding: 0.75rem;
  border-radius: 0.5rem;
  transition: all 0.2s ease;
  cursor: pointer;
}

.mega-menu-category:hover {
  background-color: white;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.mega-menu-category.active {
  background-color: white;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

/* Subcategory grid */
.mega-menu-subcategories {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

/* Subcategory link */
.mega-menu-subcategory {
  display: block;
  padding: 0.5rem;
  border-radius: 0.5rem;
  transition: all 0.2s ease;
  color: #374151;
  text-decoration: none;
}

.mega-menu-subcategory:hover {
  background-color: #f9fafb;
  color: var(--primary-color);
}

/* Default state when no category is hovered */
.mega-menu-default {
  text-align: center;
  color: #6b7280;
  padding: 2rem 0;
}

.mega-menu-default i {
  font-size: 3rem;
  margin-bottom: 1rem;
  color: #d1d5db;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .mega-menu-dropdown {
    width: 95vw;
    left: 2.5vw;
  }

  .mega-menu-left,
  .mega-menu-right {
    width: 100%;
  }

  .mega-menu-subcategories {
    grid-template-columns: 1fr;
  }
}

/* ========================================
   FOOTER STYLES 
   ======================================== */

footer #location-tabs>button {
  margin-bottom: -4px;
}

footer .location-content {
  margin-top: 8px
}

footer #location-tabs {
  border-bottom: 1px solid #979797;
}

/* ========================================
   FOOTER STYLES 
   ======================================== */

#information-information #column-left {
  width: 100% !important;
}

/* ========================================
   CART DRAWER STYLING
   ======================================== */

/* Cart drawer styling */
.cart-drawer {
  display: flex;
  flex-direction: column;
  height: calc(100svh - 92px);
  max-height: calc(100svh - 92px);
} 

/* Cart items container - scrollable area */
.cart-items-container {
  flex: 1;
  overflow-y: auto;
}

/* Cart footer - always visible at bottom */
.cart-footer {
  flex-shrink: 0;
  background: white;
}

/* Ensure cart items don't overflow */
.cart-item {
  border-bottom: 1px solid #f3f4f6;
}

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

/* Scrollbar styling for cart */
.cart-items-container::-webkit-scrollbar {
  width: 6px;
}

.cart-items-container::-webkit-scrollbar-track {
  background: #f1f1f1;
}

.cart-items-container::-webkit-scrollbar-thumb {
  background: #c1c1c1;
  border-radius: 3px;
}

.cart-items-container::-webkit-scrollbar-thumb:hover {
  background: #a8a8a8;
}

/* ========================================
   BUTTONS
   ======================================== */

/* Specific button hover that wins over bg-primary */
a.bg-primary:hover,
button.bg-primary:hover {
    background-color: #000000 !important;
}

/* ========================================
   HOME PAGE OVERIDES
   ======================================== */

.homepage-tabs-2,
.homepage-tabs-2>div.bg-white {
  background-color: #F2F2F2;
}

.homepage-tabs-2 {
  padding-bottom: 5rem;
}

.homepage-tabs-3 nav {
  margin-bottom: -65px;
  z-index: 2;
  position: relative;
  justify-content: flex-end;
  padding-right: 130px;
}

.carousel.swiper-viewport .swiper-slide.text-center {
  background: white;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
}

/* ========================================
   PRODUCT LISTS
   ======================================== */

#product-category .col-left-container #column-left,
#product-search #column-left,
#product-manufacturer #column-left,
#product-special #column-left {
  width: 100%;
  position: sticky;
  top: 120px;
}

.category-info {
  display: none;
}

.mfilter-tb-as-td>input[type="checkbox"] {
  accent-color: var(--primary-color);
  width: 15px;
  height: 15px;
  cursor: pointer;
  margin-right: 7px !important;
}

.mfilter-tb-as-td>input[type="checkbox"]:checked {
  background-color: var(--primary-color);
  border-color: var(--primary-color);
}

.mfilter-filter-item,
.mfilter-opts-container,
.mfilter-content-opts,
.mfilter-content-wrapper,
.mfilter-content,
.mfilter-tb-as-td {
  border: unset !important;
}

.mfilter-heading {
  background-color: unset !important;
  border-bottom: 1px solid #D8D8D8 !important;
  border-top: unset !important;
}

.mfilter-heading-text>span {
  display: inline-block;
  padding-left: 18px;
  color: #000000;
  font-size: 14px;
  font-weight: bold;
  text-transform: uppercase;
}

.col-left-container {
  background: #F2F2F2;
  border: 1px solid rgba(151, 151, 151, 0.38);
  max-width: 390px;
  flex-shrink: 0;
  padding-left: 50px;
}

.col-left-container+div {
  flex: 1;
  min-width: 0;
}

.mfilter-content>ul>li {
  margin-bottom: 20px !important;
}

.mfilter-tb-as-td {
  color: #000000;
  font-size: 13px;
  font-weight: 500;
  line-height: 23px;
}

.mfilter-counter {
  background: var(--primary-color) !important;
}

.mfilter-box .mfilter-counter.mfilter-close {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='size-6'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M6 18 18 6M6 6l12 12' /%3E%3C/svg%3E%0A") !important;
  width: 15px !important;
  height: 15px !important;
}

.mfilter-counter::after {
  border-right-color: var(--primary-color) !important;
}

.mfilter-box>.box-heading {
  color: #000000;
  font-size: 20px;
  line-height: 24px;
  font-weight: bold;
}

.col-left-container h1 {
  font-size: 32px;
}

.box-content.mfilter-content {
  margin-top: 25px;
}

.mfilter-opts-container {
  padding: 15px 0 !important;
}

.mfilter-selected-filters {
  margin-bottom: 25px;
}

.mfilter-button.mfilter-button-top {
  margin-bottom: 25px;
}

.mfilter-box .mfilter-selected-filters-cnt a>span {
  padding: 0 !important;
  display: block !important;
}

.mfilter-box .mfilter-selected-filters-cnt a {
  display: flex !important;
  justify-content: space-between;
  padding: 5px 10px;
  background-color: #FFFFFF;
  border: 1px solid #979797;
  border-radius: 4px;
  height: 40px;
  align-content: center;
  align-items: center;
  margin-bottom: 10px !important;
}

html[lang="el"] .mfilter-selected-filters-cnt::before {
  content: "Έχετε επιλέξει";
  display: block;
  position: relative;
  margin-top: -15px;
  margin-bottom: 19px;
  color: #666;
}

html[lang="en"] .mfilter-selected-filters-cnt::before {
  content: "Selected filters";
  display: block;
  position: relative;
  margin-top: -15px;
  margin-bottom: 19px;
  color: #666;
}

.mfilter-button-reset {
  font-size: 16px;
  display: flex;
  flex-direction: row-reverse;
  gap: 10px;
  justify-content: center;
  align-content: center;
  align-items: center;
}

.mfilter-button-reset .mfilter-reset-icon {
  margin: 0 !important;
  background-position: 0px -11px;
}

.mfilter-selected-filters-cnt a>span.mfilter-close i {
  background-position: 0px -11px !important;
}

.mfilter-button-reset {
  margin-left: 0px !important;
}

.mfilter-box .mfilter-selected-filters-cnt a>span.mfilter-close {
  width: 20px !important;
  height: 20px !important;
}

.mfilter-heading.mfilter-collapsed .mfilter-head-icon::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='size-6'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M12 4.5v15m7.5-7.5h-15' /%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.mfilter-heading .mfilter-head-icon::after {
  content: "";
  display: inline-block;
  width: 24px;
  height: 24px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke-width='1.5' stroke='currentColor' class='size-6'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M5 12h14' /%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.mfilter-heading .mfilter-head-icon {
  background: unset !important;
  width: 24px !important;
  height: 24px !important;
}

.mfilter-heading-text {
  margin-left: -24px !important;
}

.mfilter-content-opts .mfilter-slider-slider .ui-slider-range,
.mfilter-content-opts #mfilter-price-slider .ui-slider-range {
  background: var(--primary-300) !important;
}

#mfilter-opts-price-max,
#mfilter-opts-price-min {
  background: unset !important;
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  text-align: center;
  padding: 5px;
  max-width: 70px !important;
  width: 70px !important;
  min-width: 70px !important;
}

.mfilter-price-inputs {
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 15px;
  margin-top: 15px;
}

/* Pagination Styling */
.pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  list-style: none;
  margin: 2rem 0;
  padding: 0;
  flex-wrap: wrap;
}

.pagination li {
  margin: 0;
}

.pagination li a,
.pagination li span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 12px;
  text-decoration: none;
  font-size: 16px;
  font-weight: 500;
  transition: all 0.3s ease;
}

.pagination li a {
  background-color: transparent;
  color: black;
}

.pagination li a:hover {
  background-color: transparent;
  color: var(--primary-color);
  font-weight: 700;
}

.pagination li.active span {
  background-color: transparent;
  color: var(--primary-color);
  font-weight: 700;
}

/* 3 column grid layout */
.grid-3-cols {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* 4 column grid layout */
.grid-4-cols {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.product-partial-container a img {
  /* aspect-ratio: 1 / 1; */
  background: rgba(0, 0, 0, 0.01);
  font-size: 0;
}

.product-partial-container > div:hover {
	box-shadow: var(--tw-shadow) !important;
}

:is(#product-category, #product-special, #product-manufacturer, #product-search) .product-partial-container {
  width: 100%;
}

:is(#product-category, #product-special, #product-manufacturer, #product-search) .product-partial-container h4 {
  overflow: hidden;
}

/* ========================================
   REQUIRED LOGIN
   ======================================== */

.required-login #top,
.required-login footer .grid,
.required-login footer .fixed,
.required-login #header .container>.flex>.flex {
  display: none;
}

.required-login #header .container>.flex>.flex:first-child {
  display: block !important;
}

.required-login #header .container>.flex {
  justify-content: center !important;
}

html.required-login,
.required-login body {
  background: rgb(31 41 55 / var(--tw-bg-opacity, 1));
}

.required-login #account-register .text-gray-600.mb-8.text-center {
  color: white;
}

.required-login #account-register .text-gray-600.mb-8.text-center a {
  font-weight: bold;
}

.guest_customer .hide-on-guest,
.guest_customer .mfilter-filter-item.mfilter-price,
.guest_customer .product-partial-container hr {
  display: none !important; 
}

/* ========================================
   CHECKOUT
   ======================================== */

#checkout-checkout>nav {
  display: none;
}

#common-success .recently-viewed-products {
  display: none;
}

#common-success {
  padding: 0;
}

/* ========================================
   PRODUCT PAGE OPTIONS
   ======================================== */
   
   #product-product .radio-btn-input {
    position: absolute;
    opacity: 0;
  }
  
  #product-product .radio-btn-wrapper {
    padding: 0.375rem 0.75rem;
    border-radius: 0;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
  }
  
  #product-product .radio-btn-wrapper:hover {
    border-color: #666;
  }
  
  #product-product .radio-btn-input:checked ~ .radio-btn-label {
    color: #fff !important;
    font-weight: 600;
  }
  
  #product-product .radio-btn-label {
    margin-left: 0 !important;
  }
  
  #product-product .radio-btn-input:checked + .radio-btn-image,
  #product-product .radio-btn-input:checked + .radio-btn-label,
  #product-product .radio-btn-input:checked + .radio-btn-image + .radio-btn-label {
    color: #fff !important;
  }
  
  #product-product .radio-btn-wrapper:has(.radio-btn-input:checked) {
    background-color: #000 !important;
    border-color: #000 !important;
  }
  
  #product-product .radio-btn-input {
    position: absolute;
    opacity: 0;
  }
  
  #product-product .radio-btn-wrapper {
    padding: 0.375rem 0.75rem;
    border-radius: 0;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
  }
  
  #product-product .radio-btn-wrapper:hover {
    border-color: #666;
  }
  
  
  #product-product .radio-btn-input:checked ~ .radio-btn-label {
    color: #fff !important;
    font-weight: 600;
  }
  
  #product-product .radio-btn-input:checked + .radio-btn-image,
  #product-product .radio-btn-input:checked + .radio-btn-label,
  #product-product .radio-btn-input:checked + .radio-btn-image + .radio-btn-label {
    color: #fff !important;
  }
  
  #product-product .radio-btn-wrapper:has(.radio-btn-input:checked) {
    background-color: #000 !important;
    border-color: #000 !important;
  }

/* ========================================
   RESPONSIVE STYLES
   ======================================== */

#saved-lists-drawer {
  max-width: 400px;
}

#blog .related-products .swiper-viewport {
	border: unset;
	box-shadow: unset;
}

.product-description * {
	font-size: 14px !important;
	font-family: inherit !important;
}

@media (min-width: 1800px) {
  #product-product #content > div:has(.product-images, .product-description), #product-product #content .related-products, #product-product #content .recently-viewed-products {
    padding-left: var(--spaceForSocials) !important;
    padding-right: var(--spaceForSocials) !important;
  }
}

@media (max-width: 1800px) {

  #account-register,
  #account-login,
  #account-account,
  #financial_data,
  #subusers,
  #subusers_form,
  #account-edit,
  #account-password,
  #account-order-invoices,
  #account-backorder,
  #extension-module-order-from-file,
  #account-return-ext-form,
  #account-return-ext-info,
  #account-return-ext-list,
  #account-order-list,
  #account-order-info,
  #account-newsletter,
  #account-wishlist,
  #product-compare,
  #checkout-cart {
    padding-inline: var(--spaceForSocials) var(--calculatedPadding);
  }
}

@media (max-width: 768px) {

  #account-register #content,
  #account-login #content,
  #account-account #content,
  #financial_data #content,
  #subusers #content,
  #subusers_form #content,
  #account-edit #content,
  #account-password #content,
  #account-order-invoices #content,
  #account-backorder #content,
  #extension-module-order-from-file #content,
  #account-return-ext-form #content,
  #account-return-ext-info #content,
  #account-return-ext-list #content,
  #account-order-list #content,
  #account-order-info #content,
  #account-newsletter #content,
  #account-wishlist #content,
  #product-manufacturer {
    padding-top: 0 !important;
  }

  .page-title-box {
    padding-top: calc(var(--headerHeight)) !important;
  }

  .latest-posts {
    margin-top: 5rem;
  }
}

/* Options popup (product list) — table + steppers aligned with product page classic options */
#d4u-options-popup-modal .d4u-opt-popup-table-wrap {
  position: relative;
  border-radius: 14px;
  max-height: min(55vh, 420px);
  overflow-y: auto;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

#d4u-options-popup-modal .d4u-opt-popup-table {
  table-layout: fixed;
  width: 100%;
}

#d4u-options-popup-modal .d4u-opt-popup-table th,
#d4u-options-popup-modal .d4u-opt-popup-table td {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  min-width: 0;
  padding: 10px 14px;
  line-height: 1.2;
}

#d4u-options-popup-modal .d4u-opt-popup-table td {
  font-variant-numeric: tabular-nums;
}

#d4u-options-popup-modal .d4u-opt-popup-table thead th {
  letter-spacing: 0.08em;
}

#d4u-options-popup-modal .d4u-opt-popup-table thead {
  border-bottom: 1px solid rgba(229, 231, 235, 0.9);
}

#d4u-options-popup-modal .d4u-opt-popup-table tbody tr:nth-child(even) {
  background: rgba(249, 250, 251, 0.55);
}

#d4u-options-popup-modal .d4u-opt-popup-table tbody tr:hover {
  background: rgba(249, 250, 251, 0.85);
}

#d4u-options-popup-modal .d4u-opt-popup-table .d4u-opt-qty-minus,
#d4u-options-popup-modal .d4u-opt-popup-table .d4u-opt-qty-plus {
  width: 28px !important;
  height: 28px !important;
}

#d4u-options-popup-modal .d4u-opt-popup-table .d4u-opt-qty {
  width: 44px !important;
  padding-top: 6px !important;
  padding-bottom: 6px !important;
  outline: none !important;
  font-weight: 700;
}

#d4u-options-popup-modal .d4u-opt-popup-table .d4u-opt-qty:focus {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18);
}

@media (max-width: 640px) {
  #d4u-options-popup-modal .d4u-opt-popup-table thead {
    display: none;
  }

  #d4u-options-popup-modal .d4u-opt-popup-table tbody {
    display: block;
  }

  #d4u-options-popup-modal .d4u-opt-popup-table tbody tr {
    display: block;
    padding: 12px 12px;
    border-bottom: 1px solid rgba(229, 231, 235, 0.9);
  }

  #d4u-options-popup-modal .d4u-opt-popup-table tbody td {
    display: grid;
    grid-template-columns: 104px 1fr;
    gap: 10px;
    align-items: center;
    padding: 6px 0 !important;
    text-align: left !important;
  }

  #d4u-options-popup-modal .d4u-opt-popup-table tbody td::before {
    content: attr(data-label);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6b7280;
  }

  #d4u-options-popup-modal .d4u-opt-popup-table tbody td:last-child {
    padding-top: 8px !important;
  }

  #d4u-options-popup-modal .d4u-opt-popup-table tbody td .inline-flex {
    justify-content: flex-end;
    width: 100%;
  }

  #d4u-options-popup-modal .d4u-opt-popup-table th,
  #d4u-options-popup-modal .d4u-opt-popup-table td {
    padding: 8px 10px;
  }

  #d4u-options-popup-modal .d4u-opt-popup-table thead th {
    font-size: 10px !important;
  }

  #d4u-options-popup-modal .d4u-opt-popup-table tbody td {
    font-size: 12px !important;
  }

  #d4u-options-popup-modal .d4u-opt-popup-table .d4u-opt-qty-minus,
  #d4u-options-popup-modal .d4u-opt-popup-table .d4u-opt-qty-plus {
    width: 30px !important;
    height: 30px !important;
  }

  #d4u-options-popup-modal .d4u-opt-popup-table .d4u-opt-qty {
    width: 46px !important;
  }
}