/** Shopify CDN: Minification failed

Line 428:17 Unexpected "{"

**/
/* =========================
   CUSTOM FONTS
   ========================= */

@font-face {
  font-family: 'Seasons';
  src: url('{{ "Seasons-Regular.otf" | asset_url }}') format('opentype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Poppins';
  src: url('{{ "Poppins-Regular.woff2" | asset_url }}') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* =========================
   TYPOGRAPHY OVERRIDES
   ========================= */

/* Best Selling title */
.bs-title {
  font-family: 'Seasons', serif;
}

/* Optional subtitle */
.bs-subtitle {
  font-family: 'Poppins', sans-serif;
  font-size: 13.5px;
  font-weight: 400;
  opacity: 0.75;
}

/* Product names */
.ps-title {
  font-family: 'Poppins', sans-serif;
  font-size: 14.5px;
  font-weight: 400;
  letter-spacing: 0;
}

/* Prices */
.ps-price {
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 500;
  margin-top: 5px;
}

/* VIEW ALL button */
.bs-view-all {
  font-family: 'Poppins', sans-serif;
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* product-card.css — card styles (updated for native smooth carousel + compact pagination) */

/* Root variables */
:root {
  --ps-title-size: 15px;
  --ps-price-size: 20px;
  --ps-title-color: #222;
  --ps-price-color: #111;
  --ps-gap-default: 28px;
}

/* Ensure grid item and card fill the row equally */
.bs-grid .bs-grid-item {
  display: flex;               /* make the wrapper a flex container */
  align-items: stretch;        /* stretch child to full height */
}

/* ensure the product-card child fills its grid cell fully */
/* ensure the product card fills the column and image uses full width */
.bs-grid .bs-grid-item > .ps-product-card,
.ps-product-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  width: 100%;
  margin: 0;
  padding: 0;                /* <-- important: remove horizontal padding */
  box-sizing: border-box;
  transition: transform 260ms cubic-bezier(.2,.9,.2,1);
}

/* image viewport: height controlled by inline padding-top (aspect %) */
.ps-image-viewport {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: 0;
  background: transparent;
  flex: 0 0 auto;
  box-shadow: none;
}

/* images */
.ps-image, .ps-picture img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: opacity .22s ease, transform .26s ease;
  backface-visibility: hidden;
  display:block;
}

/* gentle zoom on hover */
.ps-product-card:hover .ps-image-front { transform: scale(1.04); }

/* front/back states */
.ps-image-front { opacity: 1; }
.ps-image-back  { opacity: 0; transform: scale(1.02); pointer-events:none; }

/* swapped state (if JS toggles .ps-swapped) */
.ps-product-card.ps-swapped .ps-image-front { opacity: 0; transform: scale(.98); }
.ps-product-card.ps-swapped .ps-image-back  { opacity: 1; transform: scale(1); }

/* Hover image-swap only when section setting enabled */
.ps-product-card[data-hover-swap="true"] .ps-image-back { opacity: 0; transform: scale(1.02); pointer-events: none; }

/* When hovering a card with hover-swap enabled:
   - fade out front image slightly and show the alternate (back) image
   - keep the card lift (translateY) and a gentle zoom on the back image
*/
.ps-product-card[data-hover-swap="true"]:hover .ps-image-front {
  opacity: 0;
  transform: scale(.98); /* subtle shrink as it fades */
  transition: opacity .22s ease, transform .26s ease;
}

.ps-product-card[data-hover-swap="true"]:hover .ps-image-back {
  opacity: 1;
  transform: scale(1.04); /* slightly zoom the back image for pop */
  transition: opacity .22s ease, transform .26s ease;
}


/* card body — compact, centered */
.ps-card-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  align-items: center;      /* centered title + price like screenshot */
  justify-content: center;
  gap: 6px;
  padding: 12px 10px;       /* compact padding so image dominates */
  background: #fff;
  border-radius: 0 0 12px 12px;
  box-shadow: 0 12px 40px rgba(0,0,0,0.04);
  min-height: 56px;
}

/* title centered, slightly smaller weight */
.ps-title {
  font-size: var(--ps-title-size);
  margin: 0;
  color: var(--ps-title-color);
  line-height: 1.25;
  text-align: center;
  font-weight: 400;
  width: 100%;
  padding: 0 6px;
}

/* price centered and normal weight */
.ps-price {
  font-size: var(--ps-price-size);
  margin: 0;
  color: var(--ps-price-color);
  font-weight: 400;
  text-align: center;
  width: 100%;
}

/* responsiveness */
@media (max-width: 980px) {
  .bs-wrap { padding: 40px 20px; }
  .ps-card-body { padding: 12px 14px; min-height:76px; }
}
@media (max-width: 740px) {
  .bs-grid { grid-template-columns: 1fr !important; }
  .ps-product-card { padding: 0 8px; }
  .ps-image-viewport { border-radius:10px; }
  .ps-card-body { border-radius: 0 0 10px 10px; }
  .ps-title { font-size:14px; }
  .ps-price { font-size:18px; }
}

/* ensure local specificity against stronger theme selectors for price */
.ps-card-body .ps-price,
.ps-card-body .money,
.ps-card-body .product-price {
  font-size: 20px !important;
  font-weight: 400 !important;
  text-align: center !important;
  margin: 0 !important;
}

/* ---------- centered poster carousel (reference look) ---------- */

/* hide any previous side-pill buttons (if accidentally left) */
.bs-carousel-btn { display: none !important; }

/* container + frame
   IMPORTANT: frame is the native scroll container (so drag/trackpad/wheel are natural) */
.bs-carousel-wrap { width:100%; display:block; margin: 0 auto; padding: 6px 0 28px; box-sizing: border-box; }

/* REPLACED: make the frame the native horizontal scrolling area */
.bs-carousel-frame {
  overflow-x: auto;            /* allow native horizontal scrolling */
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  padding: 0;
  box-sizing: border-box;
  scroll-behavior: smooth;     /* smooth programmatic scroll */
}

/* track & items */
/* REPLACED: track becomes the horizontal content flow (no translate/transform) */
.bs-carousel-track {
  display:flex;
  gap: var(--bs-gap, var(--ps-gap-default));
  align-items:stretch;
  justify-content: flex-start; /* natural left-to-right flow */
  will-change: auto;
  /* track does not handle overflow; frame does */
}

.bs-carousel-item {
  flex: 0 0 auto;   /* stop forcing big width */
  max-width: none;
  display: block;  /* remove centering wrapper */
}



/* ensure card fills item and image dominates */
.bs-carousel-item > .ps-product-card { width:100%; height:100%; display:flex; flex-direction:column; }

/* make the track a true scroll container: hide default scrollbars gracefully */
.bs-carousel-track {
  overflow: visible;
}
.bs-carousel-frame .bs-carousel-track::-webkit-scrollbar { height: 8px; display: none; }
.bs-carousel-frame .bs-carousel-track { scrollbar-width: none; }

/* small arrows + page counter below the carousel (centered) */
/* REPLACED: compact Posterized-style pagination (chevrons + center text) */
.bs-carousel-meta {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:22px;
  margin-top:18px;
  user-select: none;
}

.bs-carousel-pages {
  font-size:15px;
  color:#6f6f6f;
  letter-spacing:0.02em;
  font-weight:400;
}

/* subtle chevrons — no big boxes */
.bs-carousel-small {
  background: transparent;
  border: none;
  width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  color: #333;
  cursor: pointer;
  padding: 0;
  margin: 0;
  transition: color .18s ease, transform .12s ease;
}

/* fallback glyphs for chevrons */
.bs-carousel-small.bs-prev::after { content: "‹"; font-size:18px; line-height:1; }
.bs-carousel-small.bs-next::after { content: "›"; font-size:18px; line-height:1; }

.bs-carousel-small:hover { color: #111; transform: translateY(-1px); }
.bs-carousel-small:disabled { opacity: .35; cursor: default; transform: none; }

/* remove unwanted black pills left/right if any (defensive) */
.bs-scroller-btn, .bs-carousel-btn { display:none !important; }

@media (min-width: 981px) {
  .section-best-selling .bs-carousel-item {
    flex: 0 0 calc((100% / 5.3) - 28px);
  }

  .section-best-selling .ps-product-card {
    width: 100%;
  }
}


/* responsive: fewer visible items on narrow screens */
@media (max-width:980px) {
  .bs-carousel-item { flex: 0 0 calc((100% / 3) - (var(--bs-gap, var(--ps-gap-default)) * (1/3))); }
}
@media (max-width:740px) {
  .bs-carousel-item { flex: 0 0 calc((100% / 1) - (var(--bs-gap, var(--ps-gap-default)) * (1/1))); }
}



/* Optional center-snap + slight scale (enable by adding `bs-snap` class to .bs-carousel-wrap) */
.bs-carousel-wrap.bs-snap .bs-carousel-frame { scroll-snap-type: x mandatory; }
.bs-carousel-wrap.bs-snap .bs-carousel-item { scroll-snap-align: center; transition: transform .18s ease; }
.bs-carousel-wrap.bs-snap .bs-carousel-item.is-center { transform: scale(1.03); }

/* ===========================
   HOTFIX: hide legacy/duplicate pagination UI
   Keeps only the intended .bs-carousel-meta
   =========================== */

.bs-carousel-wrap .legacy-pagination,
.bs-carousel-wrap .bs-old-pagination,
.bs-carousel-wrap .bs-pagination,
.bs-carousel-wrap .pagination-wrapper,
.bs-carousel-wrap .old-pagination,
.bs-carousel-wrap .slick-dots,
.bs-carousel-wrap .slick-arrow,
.bs-carousel-wrap .bs-scroller-btn,
.bs-carousel-wrap .bs-carousel-btn,
.bs-carousel-wrap .prev-pill,
.bs-carousel-wrap .next-pill {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* defensive: hide any stray elements that contain literal "1 /" */
.bs-carousel-wrap *:not(.bs-carousel-meta) > .bs-carousel-pages,
.bs-carousel-wrap *:not(.bs-carousel-meta) .page-count,
.bs-carousel-wrap *:not(.bs-carousel-meta) .page-number {
  display: none !important;
}

/* Make sure the single intended pagination is visible and centered */
.bs-carousel-wrap .bs-carousel-meta {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin-top: 18px !important;
  gap: 22px !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
/* ===== FORCE POSTERIZED-STYLE RECTANGLE IMAGE ===== */

/* remove all rounded corners everywhere */
.ps-product-card,
.ps-image-viewport,
.ps-image,
.ps-picture,
.ps-picture img {
  border-radius: 0 !important;
}

/* remove any background behind image */
.ps-image-viewport {
  background: transparent !important;
}

/* remove ALL shadows that create card/cover feel */
.ps-image-viewport,
.ps-product-card,
.ps-card-body {
  box-shadow: none !important;
}

/* make image sit flat like posterized */
.ps-image,
.ps-picture img {
  object-fit: cover !important;
}
/* ---------- Intelligent underline (text-width, left-to-right) ---------- */
/* ========= FINAL TITLE UNDERLINE ========= */

.ps-title {
  position: relative;
  display: inline-block;
  width: fit-content;
}

.ps-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 1px;
  background: rgba(0,0,0,.35);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 260ms cubic-bezier(.4,0,.2,1);
}

.ps-card-link:hover .ps-title::after {
  transform: scaleX(1);
}

/* NEVER underline price */
.ps-price::after {
  content: none !important;
}

  /* animation */{
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 280ms cubic-bezier(0.4, 0, 0.2, 1);
}



/* =========================
   FINAL GUARANTEED HOVER FIX
   ========================= */

/* ensure link fills card */
.ps-card-link {
  display: block;
}

@media (hover: hover) and (pointer: fine) {
  .ps-card-link:hover .ps-product-card {
    transform: translateY(-16px);
  }
}


/* title underline (only title) */
.ps-title {
  position: relative;
  display: inline-block;
}

.ps-title::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -6px;
  width: 100%;
  height: 1px;
  background: rgba(0,0,0,.35);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 260ms ease;
}

.ps-card-link:hover .ps-title::after {
  transform: scaleX(1);
}

/* NEVER underline price */
.ps-price::after {
  content: none !important;
}





/* =========================
   HIDE HORIZONTAL SCROLLBAR
   (keep scrolling working)
   ========================= */

/* Chrome, Edge, Safari */
.bs-carousel-frame::-webkit-scrollbar {
  height: 0 !important;
  display: none !important;
}

/* Firefox */
.bs-carousel-frame {
  scrollbar-width: none !important;
}

/* Extra safety */
.bs-carousel-frame {
  -ms-overflow-style: none !important; /* IE/old Edge */
}
/* ===========================================
   FINAL FIX: FORCE PRODUCT IMAGE VISIBILITY
   =========================================== */

/* Front image MUST start visible */
.ps-image-front {
  opacity: 1 !important;
}

/* Back image MUST start hidden */
.ps-image-back {
  opacity: 0 !important;
}

/* On hover, only swap IF back image actually exists */
.ps-product-card[data-has-back-image="true"]:hover .ps-image-front {
  opacity: 0 !important;
}

.ps-product-card[data-has-back-image="true"]:hover .ps-image-back {
  opacity: 1 !important;
}
/* Wishlist button (Cartier-style) */
.ps-wishlist-btn {
  position: absolute;
  top: 14px;
  right: 14px;

  width: 38px;
  height: 38px;
  border-radius: 50%;

  background: #ffffff;
  border: none;
  cursor: pointer;

  display: flex;
  align-items: center;
  justify-content: center;

  opacity: 0;
  transform: scale(0.9);
  transition: opacity 0.25s ease, transform 0.25s ease;

  z-index: 5;
}

/* show on hover */
.ps-product-card:hover .ps-wishlist-btn {
  opacity: 1;
  transform: scale(1);
}

/* icon size */
.ps-wishlist-icon {
  width: 18px;
  height: 18px;
  display: block;
}
.ps-wishlist-btn {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fff;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.25s ease, transform 0.25s ease;
  z-index: 5;
}

.ps-product-card:hover .ps-wishlist-btn {
  opacity: 1;
}

/* Heart icon */
.ps-wishlist-icon {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #710014;
  stroke-width: 1.8;
  transition: fill 0.25s ease, transform 0.2s ease;
}

/* Filled state */
.ps-wishlist-btn.is-active .ps-wishlist-icon {
  fill: #710014;}

  /* =========================
   FINAL VIEW ALL BUTTON
   ========================= */

:root {
  --viewall-bg: #710014;
  --viewall-text: #ffffff;
  --viewall-border: #710014;
}

.bs-view-all-wrap {
  display: flex;
  justify-content: center;
  margin-top: 48px;
}

.bs-view-all {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 200px;
  height: 45px;
  padding: 0 56px;

  background-color: var(--viewall-bg);
  color: var(--viewall-text);

  border: 2px solid var(--viewall-border);
  border-radius: 0;

  font-size: 14px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  font-weight: 500;

  text-decoration: none;
  cursor: pointer;

  transition:
    background-color 220ms ease,
    color 220ms ease,
    border-color 220ms ease;
}

.bs-view-all:hover {
  background-color: #ffffff;
  color: var(--viewall-border);
  border-color: var(--viewall-border);
}
/* ===========================
   CARD SIZE FIX
   =========================== */



/* Ensure image fills the box */
.ps-image,
.ps-picture img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.ps-card-body {
  padding-top: 12px;
  padding-bottom: 8px;
  min-height: unset;
}
.ps-card-body {
  gap: 4px;
}
.ps-title {
  margin-top: 6px;
}
/* =========================
   MOBILE-ONLY PRODUCT CARD SIZE
   ========================= */


/* ======================================
   MOBILE: FORCE CONTAINER = CARD SIZE
   ====================================== */

@media (max-width: 740px) {

  /* 1. shrink the carousel item itself */
  .bs-carousel-item {
    flex: 0 0 auto !important;
    width: 140px !important;
    max-width: 145px !important;
  }

  /* 2. prevent link from stretching wider */
  .ps-card-link {
    display: inline-block !important;
    width: 100% !important;
  }

  /* 3. card defines everything */
  .ps-product-card {
    width: 165px !important;
  }

  /* image container defines size */
  .ps-image-viewport { 
    height: 210px !important;
    padding-top: 0% !important;   /* controls height */
    position: relative;
  }

  /* image fills container — NO extra space */
  .ps-image,
  .ps-picture img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover !important;
  }

  /* compact text spacing */
  .ps-card-body {
    padding: 8px 6px;
    gap: 2px;
  }

   .ps-title {
  font-size: 12px;
  line-height: 1.3;
}

.ps-price {
  font-size: 8px;
  line-height: 1.2;
}}

/* ===============================
   FINAL FORCE — PRODUCT TYPOGRAPHY
   =============================== */

/* PRODUCT TITLE — CORMORANT GARAMOND */
.ps-title,
.ps-card-body .ps-title,
.product-card__title,
.card__heading,
.grid-product__title {
   font-family: 'Montserrat Custom', sans-serif !important;
  font-size: 14.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  line-height: 1.35 !important;
  text-transform: none !important;
}

/* PRODUCT PRICE — MONTSERRAT */
.ps-price,
.ps-card-body .ps-price,
.money,
.price,
.price-item {
  font-family: 'Montserrat Custom', sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  margin-top: 5px !important;
}

  /* ===============================
   REMOVE TITLE UNDERLINE ON MOBILE
   (keep desktop hover intact)
   =============================== */

@media (hover: none) and (pointer: coarse) {
  .ps-title::after {
    display: none !important;
    transform: none !important;
  }
}


/* ===============================
   DESKTOP — FIXED CARD HEIGHT (FINAL)
   =============================== */

@media (min-width: 741px) {

  /* Let carousel decide width */
  .bs-carousel-item {
    flex: 0 0 auto;
  }

  /* Card stretches vertically, not by text */
  .ps-product-card {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
  }

  /* HARD LOCK image height (this is the key) */
  .ps-image-viewport {
    height: 360px;        /* adjust if needed */
    padding-top: 0 !important;
    flex-shrink: 0;
  }

  /* Prevent text from changing card height */
  .ps-card-body {
    min-height: 72px;
    justify-content: flex-start;
  }

  /* Clamp title to 2 lines MAX */
  .ps-title {
    max-height: 2.6em;
    overflow: hidden;
  }
}
/* ===============================
   DESKTOP — BEST SELLING ONLY
   =============================== */

@media (min-width: 741px) {

  .section-best-selling .bs-carousel-item {
    flex: 0 0 calc((100% / 5) - 28px);
  }

  .section-best-selling .ps-product-card {
    width: 100%;
  }

  .section-best-selling .ps-image-viewport {
    aspect-ratio: 3 / 4;
    height: auto;
  }

  .section-best-selling .ps-title {
    max-height: 2.6em;
    overflow: hidden;
  }
}
/* =====================================
   FIX: WISHLIST OVERFLOW — DESKTOP HOME
===================================== */

@media (min-width: 741px) {

  /* Home page best selling ONLY */
  .section-best-selling .ps-product-card {
    overflow: hidden !important;
    position: relative !important;
  }

}
/* DESKTOP — reduce right padding so next card peeks */
@media (min-width: 981px) {
  .section-best-selling .bs-carousel-frame {
    padding-right: 8px !important;   /* was effectively too large */
  }
}
/* DESKTOP — tighter spacing between cards */
@media (min-width: 981px) {
  .section-best-selling .bs-carousel-track {
    gap: 22px !important;  /* perfect for 5.2 / 5.3 */
  }
}
