.zoom-container {
  cursor: zoom-in;
}

.zoom-image {
  transition: transform 0.25s ease;
}

.zoom-container:hover .zoom-image {
  transform: scale(1.2);
}

.page-skeleton-target.loading {
  position: relative;
  min-height: 220px;
}

.page-skeleton-target.loading::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 1rem;
  background: linear-gradient(90deg, #e2e8f0 25%, #f8fafc 50%, #e2e8f0 75%);
  background-size: 200% 100%;
  animation: skeleton-shimmer 1.2s infinite;
  z-index: 5;
}

@keyframes skeleton-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  overflow-x: clip;
}

img,
video,
svg {
  max-width: 100%;
  height: auto;
}

/* Product carousel arrows (mobile) */
.mw-product-carousel {
  position: relative;
}

.mw-carousel-arrow {
  display: none;
}

@media (max-width: 767px) {
  .mw-carousel-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 42%;
    transform: translateY(-50%);
    z-index: 6;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 999px;
    border: 1px solid #cbd5e1;
    background: #fff;
    color: #334155;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.12);
    touch-action: manipulation;
  }

  .mw-carousel-arrow:disabled {
    opacity: 0.4;
    cursor: not-allowed;
  }

  .mw-carousel-arrow.mw-carousel-prev {
    left: 0;
  }

  .mw-carousel-arrow.mw-carousel-next {
    right: 0;
  }

  .mw-product-carousel .mw-carousel-viewport {
    overflow: hidden;
    margin: 0 2.35rem;
  }

  .mw-product-carousel .mw-mobile-product-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 0.5rem !important;
    grid-template-columns: unset !important;
    transition: transform 0.35s ease;
    will-change: transform;
  }

  .mw-product-carousel .mw-mobile-product-grid > article,
  .mw-product-carousel .mw-mobile-product-grid > .col-span-full {
    flex: 0 0 calc(50% - 0.25rem);
    min-width: 0;
  }

  .mw-product-carousel .mw-mobile-product-grid > .col-span-full {
    flex: 0 0 100%;
  }

  /* Standalone grids (no carousel wrapper): 2 columns */
  .mw-mobile-product-grid:not(.mw-carousel-track) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.5rem !important;
  }

  .mw-mobile-product-grid > article,
  .mw-mobile-product-grid .mw-product-card {
    min-width: 0;
  }

  .mw-mobile-product-grid .mw-product-card__media,
  .mw-mobile-product-grid .mw-catalog-media,
  .mw-mobile-product-grid a.block > img,
  .mw-mobile-product-grid img.h-52,
  .mw-mobile-product-grid img.h-48 {
    aspect-ratio: 1 / 1;
    height: auto !important;
    max-height: none;
  }

  .mw-mobile-product-grid .mw-product-card__body,
  .mw-mobile-product-grid .p-4 {
    padding: 0.5rem 0.4rem 0.55rem !important;
  }

  .mw-mobile-product-grid .mw-product-card__title,
  .mw-mobile-product-grid h3,
  .mw-mobile-product-grid h2 {
    font-size: 0.6875rem !important;
    line-height: 1.25 !important;
    font-weight: 600 !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .mw-mobile-product-grid .mw-product-card__price,
  .mw-mobile-product-grid .text-brand-700 {
    font-size: 0.625rem !important;
    margin-top: 0.25rem !important;
    font-weight: 700 !important;
  }

  .mw-mobile-product-grid .mw-product-card__actions,
  .mw-mobile-product-grid .mt-3.flex {
    display: none !important;
  }

  .mw-mobile-product-grid .mw-product-card:hover {
    transform: none;
  }

  /* Tailoring: 2 columns × 2 rows */
  .mw-tailoring-steps-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.65rem !important;
  }

  .mw-tailoring-steps-grid > a,
  .mw-tailoring-steps-grid > div {
    padding: 0.75rem 0.5rem !important;
  }

  .mw-tailoring-steps-grid > a:hover,
  .mw-tailoring-steps-grid > div:hover {
    transform: none !important;
  }

  .mw-tailoring-steps-grid .text-3xl {
    font-size: 1.5rem !important;
    line-height: 1;
  }

  .mw-tailoring-steps-grid h3 {
    font-size: 0.6875rem !important;
    line-height: 1.25 !important;
    margin-top: 0.4rem !important;
    font-weight: 600 !important;
  }

  .mw-tailoring-steps-grid p {
    font-size: 0.5625rem !important;
    line-height: 1.3 !important;
    margin-top: 0.25rem !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* Category sliders: 2 visible */
  .category-slide {
    flex: 0 0 calc((100% - 0.5rem) / 2) !important;
    min-width: 0;
    padding: 0.65rem !important;
  }

  .category-track {
    gap: 0.5rem !important;
  }

  .category-slide .category-thumb-carousel,
  .category-slide img {
    height: 5.5rem !important;
    margin-bottom: 0.35rem !important;
  }

  .category-slide h3 {
    font-size: 0.75rem !important;
    line-height: 1.2;
  }

  .category-slide p {
    font-size: 0.625rem !important;
    margin-top: 0.15rem !important;
  }

  .partners-marquee {
    height: 44px !important;
    overflow: hidden !important;
  }

  .partners-marquee-track {
    animation: partnersScroll 20s linear infinite !important;
  }

  .partners-marquee-group {
    gap: 1.25rem !important;
    padding: 0 0.75rem !important;
  }

  .partners-marquee-group span {
    font-size: 0.75rem;
  }

  /* Site-wide mobile polish */
  main {
    padding-top: 1.75rem !important;
    padding-bottom: 2rem !important;
  }

  main h1 {
    font-size: 1.5rem !important;
    line-height: 1.25;
  }

  main h2 {
    font-size: 1.25rem !important;
  }

  main .text-3xl {
    font-size: 1.375rem !important;
  }

  main .text-4xl {
    font-size: 1.5rem !important;
  }

  main nav.text-sm {
    font-size: 0.75rem;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.25rem;
  }

  main form.grid,
  main .grid.md\:grid-cols-4 {
    grid-template-columns: 1fr !important;
  }

  main form .grid.grid-cols-2 {
    grid-template-columns: 1fr !important;
  }

  main .grid.grid-cols-2:not(.mw-tailoring-steps-grid):not(.mw-mobile-product-grid) {
    gap: 0.65rem;
  }

  footer .grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 1.5rem !important;
  }

  footer .grid > div:first-child {
    grid-column: 1 / -1;
  }

  /* Product detail */
  .mw-product-detail .zoom-container:hover .zoom-image {
    transform: none;
  }

  .mw-product-detail .zoom-image {
    height: auto !important;
    max-height: min(72vw, 420px);
    min-height: 220px;
    object-fit: contain;
    background: #f8fafc;
  }

  .mw-product-detail .flex.flex-wrap.items-center.gap-3 > button,
  .mw-product-detail .flex.flex-wrap.items-center.gap-3 > form button,
  .mw-product-detail form.mt-6 > button {
    flex: 1 1 100%;
    width: 100%;
    text-align: center;
    min-height: 44px;
  }

  .mw-product-detail #productThumbTrack .product-thumb img {
    width: 3.5rem;
    height: 3.5rem;
    object-fit: cover;
  }

  #mwSizeModal .max-w-6xl {
    max-width: 100%;
    margin: 0.5rem;
  }

  #mwSizeModal .max-h-\[90vh\] {
    max-height: 95vh;
  }

  /* Cart / checkout tables */
  .mw-cart-table-wrap {
    margin: 0 -0.25rem;
    border-radius: 0.75rem;
  }

  .mw-cart-table-wrap table {
    min-width: 520px;
    font-size: 0.8125rem;
  }

  /* Track suit */
  .mw-track-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    margin: 0 -0.25rem;
  }

  .mw-track-table-wrap table {
    min-width: 480px;
    font-size: 0.8125rem;
  }

  /* Story / hero media */
  [data-media-carousel="story"] {
    height: 240px !important;
  }

  [data-media-carousel="story"] img,
  [data-media-carousel="story"] video {
    height: 240px !important;
  }

  /* Stats row */
  section .grid.grid-cols-2.lg\:grid-cols-4 {
    gap: 0.75rem !important;
  }

  section .grid.grid-cols-2.lg\:grid-cols-4 .text-3xl {
    font-size: 1.5rem !important;
  }

  /* Contact hero */
  .contact-fade-in h1.text-4xl {
    font-size: 1.75rem !important;
  }

  /* Cookie / back to top safe area */
  #cookieBanner {
    padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
  }

  #backToTop {
    bottom: max(1.25rem, env(safe-area-inset-bottom));
    right: 1rem;
    left: auto;
  }
}

@media (max-width: 380px) {
  .mw-mobile-product-grid:not(.mw-carousel-track) {
    gap: 0.4rem !important;
  }

  .mw-tailoring-steps-grid h3 {
    font-size: 0.625rem !important;
  }
}
