/* Website Redesign v2 Styles */

body {
  -webkit-tap-highlight-color: transparent;
}

.service-card:hover {
  transform: translateY(-4px);
  box-shadow:
    0 20px 25px -5px rgb(0 0 0 / 0.1),
    0 8px 10px -6px rgb(0 0 0 / 0.1);
}

.hide-scroll::-webkit-scrollbar {
  display: none;
}

.hide-scroll {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type="number"] {
  -moz-appearance: textfield;
  -webkit-appearance: textfield;
          appearance: textfield;
}

.hidden-view {
  display: none !important;
}

/* Fade-in animation for cart items */
.fade-in {
  animation: fadeIn 0.3s ease-out;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

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

/* Modal open state - prevent body scroll */
.modal-open {
  overflow: hidden;
}

/* Product description content styles (from Trix editor) - Published site only */
.product-description-content {
  line-height: 1.5;
}

.product-description-content strong,
.product-description-content b {
  font-weight: 700;
}

/* Trix uses <div> tags for blocks, not <p> tags */
.product-description-content > div {
  margin: 0.45em 0;
}

.product-description-content > div:first-child {
  margin-top: 0;
}

.product-description-content > div:last-child {
  margin-bottom: 0;
}

/* Reduce margin for divs that only contain a line break (new lines) */
/* We don't set height/line-height on divs - only on br tags themselves */
.product-description-content > div:has(> br:only-child),
.product-description-content > div:has(> br:first-child:last-child) {
  margin: 0.125em 0 !important;
  padding: 0 !important;
}

/* Fallback for browsers that don't support :has() */
.product-description-content > div:empty {
  margin: 0.125em 0 !important;
  padding: 0 !important;
}

/* Make br tags in empty divs small (when br is the ONLY element child) */
.product-description-content > div:has(> br:only-child) > br:only-child {
  line-height: 0.5em !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block;
  height: 0.5em !important;
}

/* Lists - Trix uses standard ul/ol */
.product-description-content ul,
.product-description-content ol {
  padding-left: 2em;
  margin: 0.45em 0;
}

.product-description-content ul {
  list-style-type: disc;
}

.product-description-content ol {
  list-style-type: decimal;
}

.product-description-content li {
  padding-left: 0.2em;
  margin: 0.45em 0;
  line-height: 1.5;
}

.product-description-content li::marker {
  color: #475569;
}

/* Regular br tags (not in empty divs) - must override the empty div br rule */
.product-description-content > div:not(:has(> br:only-child)) br,
.product-description-content > div br:not(:only-child) {
  line-height: 1.5 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block;
}

/* Support for <p> tags if they exist (backward compatibility) */
.product-description-content p {
  margin: 0.45em 0;
}

.product-description-content p:first-child {
  margin-top: 0;
}

.product-description-content p:last-child {
  margin-bottom: 0;
}
