/* Trend Sift responsive PWA layer */

:root {
  --ts-pink: #ef3d75;
  --ts-pink-dark: #d92f65;
  --ts-navy: #0d1938;
  --ts-surface: #ffffff;
  --ts-soft: #fff5f8;
  --ts-border: #e3e7ef;
  --ts-shadow: 0 18px 45px rgba(15, 28, 58, 0.12);
}

html {
  box-sizing: border-box;
  max-width: 100%;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
}

*,
*::before,
*::after {
  box-sizing: inherit;
}

body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
svg,
video {
  max-width: 100%;
}

button,
input,
select,
textarea {
  font: inherit;
}

.product-card {
  cursor: pointer;
}

.product-card:focus-visible {
  outline: 3px solid var(--ts-pink);
  outline-offset: 4px;
}

.product-card:hover .product-image img {
  transform: scale(1.025);
}

.product-image img {
  transition: transform 0.25s ease;
}

.ts-mobile-filter-bar {
  display: none;
}

.ts-mobile-filter-toggle {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--ts-border);
  border-radius: 12px;
  background: var(--ts-surface);
  color: var(--ts-navy);
  font-weight: 800;
  cursor: pointer;
  padding: 12px 16px;
  box-shadow: 0 8px 22px rgba(15, 28, 58, 0.07);
}

.ts-install-app {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 10000;
  display: none;
  min-height: 48px;
  border: 0;
  border-radius: 999px;
  padding: 12px 20px;
  background: var(--ts-pink);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
  box-shadow: var(--ts-shadow);
}

.ts-install-app.ts-visible {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.ts-network-status {
  position: fixed;
  top: 12px;
  left: 50%;
  z-index: 11000;
  display: none;
  transform: translateX(-50%);
  border-radius: 999px;
  padding: 9px 16px;
  background: var(--ts-navy);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  box-shadow: var(--ts-shadow);
}

.ts-network-status.ts-visible {
  display: block;
}

@media (max-width: 1180px) {
  .product-grid,
  .products-grid {
    grid-template-columns:
      repeat(3, minmax(0, 1fr)) !important;
  }

  .hero-inner,
  .hero-grid {
    gap: 28px !important;
  }

  .header-inner,
  .header-main,
  .top-header {
    column-gap: 18px !important;
  }
}

@media (max-width: 960px) {
  .header-inner,
  .header-main,
  .top-header {
    display: grid !important;
    grid-template-columns:
      minmax(150px, auto)
      minmax(0, 1fr) !important;
    align-items: center !important;
  }

  .search-wrap,
  .search-shell,
  .header-search,
  .site-search {
    grid-column: 1 / -1 !important;
    order: 3 !important;
    width: 100% !important;
  }

  .hero-inner,
  .hero-grid {
    grid-template-columns:
      minmax(0, 1fr) !important;
  }

  .hero-copy,
  .hero-visual,
  .finder-card,
  .finder-panel {
    width: 100% !important;
    max-width: none !important;
  }

  .hero-visual {
    min-height: 440px;
  }

  .results-layout,
  .catalogue-layout,
  .catalog-layout,
  .shop-layout,
  .products-layout {
    grid-template-columns:
      minmax(0, 1fr) !important;
  }

  .filter-panel,
  .filters-panel,
  .refine-panel,
  .filters-sidebar {
    width: 100% !important;
    max-width: none !important;
  }

  .trust-strip,
  .benefits-strip {
    grid-template-columns:
      repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  body {
    font-size: 14px;
  }

  .site-header,
  header {
    position: relative;
  }

  .header-inner,
  .header-main,
  .top-header {
    grid-template-columns:
      minmax(0, 1fr) auto !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .brand,
  .site-brand,
  .logo {
    min-width: 0;
  }

  .brand img,
  .site-brand img,
  .logo img {
    max-width: 150px;
    height: auto;
  }

  .header-actions,
  .top-actions,
  .user-actions {
    gap: 10px !important;
  }

  .header-actions span:not(.icon),
  .top-actions span:not(.icon),
  .user-actions span:not(.icon) {
    display: none;
  }

  .main-nav,
  .nav-inner,
  nav {
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    white-space: nowrap;
  }

  .main-nav::-webkit-scrollbar,
  .nav-inner::-webkit-scrollbar,
  nav::-webkit-scrollbar {
    display: none;
  }

  .main-nav a,
  .main-nav button,
  .nav-inner a,
  .nav-inner button {
    flex: 0 0 auto;
  }

  .hero,
  .hero-section {
    padding-top: 38px !important;
    padding-bottom: 38px !important;
  }

  .hero-inner,
  .hero-grid {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .hero h1 {
    font-size: clamp(
      42px,
      12vw,
      68px
    ) !important;
    line-height: 0.98 !important;
  }

  .hero-copy p {
    font-size: 16px !important;
    line-height: 1.55;
  }

  .hero-actions {
    display: grid !important;
    grid-template-columns:
      minmax(0, 1fr) !important;
  }

  .hero-actions a,
  .hero-actions button {
    width: 100%;
    justify-content: center;
  }

  .hero-proof {
    display: grid !important;
    grid-template-columns:
      repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }

  .hero-proof strong {
    font-size: 20px !important;
  }

  .hero-proof span {
    font-size: 10px !important;
  }

  .hero-visual {
    min-height: 355px !important;
  }

  .hero-visual .fashion-card {
    max-width: 62% !important;
  }

  .finder-card,
  .finder-panel {
    padding: 22px !important;
    border-radius: 20px !important;
  }

  .trust-strip,
  .benefits-strip {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
    gap: 0 !important;
  }

  .trust-strip > *,
  .benefits-strip > * {
    padding: 14px 10px !important;
  }

  .results-section,
  .catalogue-section,
  .products-section {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .results-header,
  .catalogue-header,
  .products-header {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 14px !important;
  }

  .sort-controls,
  .view-controls {
    width: 100%;
    justify-content: space-between;
  }

  .product-grid,
  .products-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  .product-card {
    min-width: 0;
    border-radius: 16px !important;
  }

  .product-info {
    padding: 13px !important;
  }

  .product-info h3 {
    font-size: 14px !important;
    line-height: 1.3;
  }

  .product-image {
    min-height: 250px;
  }

  .product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
  }

  .quick-btn {
    min-height: 43px;
  }

  .ts-mobile-filter-bar {
    display: block;
    margin: 0 0 14px;
  }

  body.ts-mobile-filters-ready
  .ts-mobile-filter-panel:not(.ts-open) {
    display: none !important;
  }

  .ts-mobile-filter-panel {
    margin-bottom: 18px !important;
  }

  .occasion-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
  }

  .modal-product {
    grid-template-columns:
      minmax(0, 1fr) !important;
    max-height: 85vh;
    overflow-y: auto;
  }

  .modal-product > img {
    width: 100% !important;
    height: min(430px, 55vh) !important;
    object-fit: cover;
    object-position: center top;
  }

  dialog {
    width: calc(100% - 24px) !important;
    max-width: 620px !important;
    margin: auto !important;
  }

  .cookie-banner {
    left: 12px !important;
    right: 12px !important;
    bottom: 12px !important;
    width: auto !important;
    max-width: none !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  .cookie-banner button {
    width: 100%;
  }

  .ts-install-app {
    right: 14px;
    bottom: 14px;
  }
}

@media (max-width: 520px) {
  .header-inner,
  .header-main,
  .top-header {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .hero-inner,
  .hero-grid {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .hero h1 {
    font-size: clamp(
      38px,
      13.5vw,
      56px
    ) !important;
  }

  .hero-visual {
    min-height: 300px !important;
  }

  .hero-visual .fashion-card {
    max-width: 67% !important;
  }

  .floating-pill {
    font-size: 10px !important;
  }

  .trust-strip,
  .benefits-strip {
    grid-template-columns:
      minmax(0, 1fr) !important;
  }

  .product-grid,
  .products-grid {
    grid-template-columns:
      minmax(0, 1fr) !important;
  }

  .product-image {
    min-height: 430px;
  }

  .occasion-grid {
    grid-template-columns:
      minmax(0, 1fr) !important;
  }

  .hero-proof {
    grid-template-columns:
      minmax(0, 1fr)
      minmax(0, 1fr)
      minmax(0, 1fr) !important;
  }
}

@media (display-mode: standalone) {
  .ts-install-app {
    display: none !important;
  }

  body {
    min-height: 100vh;
  }
}
