/** Shopify CDN: Minification failed

Line 337:8 Unexpected "{"
Line 337:17 Expected ":"
Line 337:24 Unexpected "{"

**/
/* =============================================================
   TWC Homepage Enhancements — typography, motion, polish
   ============================================================= */

/* ── WhatsApp widget: navy hover (override app's green glow) ── */
#whatsapp-floating-widget:hover {
  background-color: #243f6a !important;
  box-shadow: 0 8px 25px rgba(28, 43, 72, 0.55) !important;
}

/* ── WhatsApp widget: collision management (third-party element, so !important).
   The app renders TWO body children: #whatsapp-floating-widget (the pill) and
   .whatsapp-greeting-bubble (the "Need help finding something?" nudge) —
   every rule must target both. ── */

/* Yield to the email corner popup */
body.twc-popup-open #whatsapp-floating-widget,
body.twc-popup-open .whatsapp-greeting-bubble {
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 0.3s ease !important;
}

/* Yield to the cart drawer and to ANY open drawer sheet — Dawn puts
   .menu-opening on the open <details> of both the header menu drawer
   and the mobile facets (filter & sort) drawer */
body:has(cart-drawer.active) #whatsapp-floating-widget,
body:has(cart-drawer.animate) #whatsapp-floating-widget,
body:has(details.menu-opening) #whatsapp-floating-widget,
body:has(cart-drawer.active) .whatsapp-greeting-bubble,
body:has(cart-drawer.animate) .whatsapp-greeting-bubble,
body:has(details.menu-opening) .whatsapp-greeting-bubble {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Yield while the shopper is typing in any form (sell form, popup, search) */
body:has(input:focus, select:focus, textarea:focus) #whatsapp-floating-widget,
body:has(input:focus, select:focus, textarea:focus) .whatsapp-greeting-bubble {
  opacity: 0 !important;
  pointer-events: none !important;
}

@media screen and (max-width: 749px) {
  /* Respect iOS safe area */
  #whatsapp-floating-widget {
    bottom: calc(1.6rem + env(safe-area-inset-bottom)) !important;
  }

  /* Sit above the sticky add-to-cart bar on product pages;
     the nudge bubble would stack on top of everything — suppress it there */
  body.template-product #whatsapp-floating-widget {
    bottom: calc(8.6rem + env(safe-area-inset-bottom)) !important;
  }
  body.template-product .whatsapp-greeting-bubble {
    display: none !important;
  }
}

/* ── Scroll reveal system — only hides content when JS is running ── */
.js .twc-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.7s cubic-bezier(0.22, 0.61, 0.36, 1),
              transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
}

.js .twc-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .js .twc-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

.twc-reveal--delay-1 { transition-delay: 0.1s; }
.twc-reveal--delay-2 { transition-delay: 0.2s; }
.twc-reveal--delay-3 { transition-delay: 0.32s; }
.twc-reveal--delay-4 { transition-delay: 0.46s; }
.twc-reveal--delay-5 { transition-delay: 0.6s; }
.twc-reveal--delay-6 { transition-delay: 0.74s; }
.twc-reveal--delay-7 { transition-delay: 0.88s; }
.twc-reveal--delay-8 { transition-delay: 1.02s; }

/* ── Global section typography baseline ── */
.section {
  --section-eyebrow-size: 0.9rem;
  --section-eyebrow-spacing: 0.28em;
  --section-heading-weight: 300;
}

/* ── Best Sellers: remove card frame + typography ── */
.best-sellers__card-image-wrap {
  background: transparent !important;
}

.best-sellers__heading {
  font-size: 0.9rem !important;
  letter-spacing: 0.3em !important;
  color: rgba(var(--color-foreground), 0.45) !important;
  margin-bottom: 2.4rem !important;
}

.best-sellers__toggle-wrapper {
  margin-bottom: 4rem !important;
}

.best-sellers__toggle {
  gap: 3.2rem !important;
}

.best-sellers__toggle-btn {
  font-size: clamp(1.6rem, 2vw, 2.4rem) !important;
  letter-spacing: 0.22em !important;
  font-weight: 300 !important;
}

.best-sellers__card-info {
  padding: 1.2rem 0 0 !important;
}

.best-sellers__card-brand {
  font-size: 0.85rem !important;
  letter-spacing: 0.16em !important;
  margin-bottom: 0.2rem !important;
}

.best-sellers__card-model {
  font-size: 1.05rem !important;
  line-height: 1.35 !important;
  margin-bottom: 0.5rem !important;
}

.best-sellers__card-price {
  font-size: 0.95rem !important;
  letter-spacing: 0.06em !important;
  color: rgba(var(--color-foreground), 0.6) !important;
}

.best-sellers__grid {
  gap: 2rem !important;
  /* horizontal scroll: never wrap */
  flex-wrap: nowrap !important;
}

/* ── Service Restoration: toggle + section typography ── */
.service-restoration__eyebrow {
  font-size: 0.9rem !important;
  letter-spacing: 0.3em !important;
}

.service-restoration__heading {
  font-size: clamp(2rem, 3.2vw, 4rem) !important;
  font-weight: 300 !important;
  margin-bottom: 3rem !important;
}

.service-restoration__toggle {
  gap: 3.2rem !important;
}

.service-restoration__toggle-btn {
  font-size: clamp(1.6rem, 2vw, 2.4rem) !important;
  letter-spacing: 0.22em !important;
  font-weight: 300 !important;
}

.service-restoration__caption {
  font-size: 1.1rem !important;
  letter-spacing: 0.06em !important;
  margin-top: 2rem !important;
  color: rgba(var(--color-foreground), 0.5) !important;
}

/* ── Craftsmanship video: font polish ── */
.craftsmanship-video__eyebrow {
  font-size: 0.9rem !important;
  letter-spacing: 0.3em !important;
}

.craftsmanship-video__heading {
  font-size: clamp(2.8rem, 4.5vw, 6rem) !important;
  font-weight: 300 !important;
}

/* ── Banner 2 / Sell Your Watch: eyebrow fix ── */
.banner__box .banner__text.subtitle {
  font-size: 0.9rem !important;
  letter-spacing: 0.32em !important;
  font-weight: 400 !important;
  opacity: 0.7 !important;
}

/* ── Nav / Header polish ── */
.header__menu-item {
  font-size: 1.1rem !important;
  letter-spacing: 0.16em !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
}

/* ── Product card (PLP) cleanup ── */
.card__inner {
  background: transparent !important;
}

.card-information .card__heading,
.card-information .card__heading a {
  font-size: 1.1rem !important;
  letter-spacing: 0.04em !important;
  font-weight: 400 !important;
  line-height: 1.4 !important;
}

.card-information .price {
  font-size: 1.05rem !important;
  letter-spacing: 0.06em !important;
  color: rgba(var(--color-foreground), 0.9) !important;
}

/* ── Quick-add overlay refinement ── */
.card__quick-overlay-btn {
  width: 3.8rem !important;
  height: 3.8rem !important;
}

/* ── Footer newsletter heading ── */
.footer-block__newsletter .title,
.footer__newsletter .h4,
footer .h4 {
  font-size: 1rem !important;
  letter-spacing: 0.2em !important;
  font-weight: 400 !important;
  text-transform: uppercase !important;
}

/* ── Page-level smooth scroll ── */
html {
  scroll-behavior: smooth;
}

/* ── Smooth image load fade ── */
img {
  transition: opacity 0.3s ease;
}

/* ── Section separator: thin rule between sections ── */
.best-sellers,
.service-restoration {
  border-top: 1px solid rgba(var(--color-foreground), 0.06);
}

/* ── Remove "Talk about your brand" rich-text section if it renders plainly ── */
.rich-text .rich-text__wrapper--center {
  max-width: 72rem;
}

.rich-text__heading {
  font-size: clamp(1.8rem, 2.5vw, 3.2rem) !important;
  font-weight: 300 !important;
  letter-spacing: 0.03em !important;
}

/* ════════════════════════════════════════════════════
   PDP — Refined layout, ratios & alignment
   ════════════════════════════════════════════════════ */

@media screen and (min-width: 990px) {
  /* ── Column ratio: 52 / 48 — more balanced for info panel ── */
  .product--large:not(.product--no-media) .product__media-wrapper {
    max-width: 52% !important;
    width: calc(52% - var(--grid-desktop-horizontal-spacing) / 2) !important;
  }

  .product--large:not(.product--no-media) .product__info-wrapper {
    max-width: 48% !important;
    width: calc(48% - var(--grid-desktop-horizontal-spacing) / 2) !important;
    padding: 0 0 0 5rem !important;
  }

  /* ── Info panel sticky clears the fixed header (info column ONLY —
     on the media gallery this top offset shifted the whole roll down 125px) ── */
  .product__info-wrapper .product__column-sticky {
    top: calc(var(--header-height, 80px) + 2.4rem) !important;
  }

  media-gallery.product__column-sticky {
    top: 0 !important;
  }
}

/* ── Info container: tighter vertical rhythm ── */
.product__info-container > * + * {
  margin: 0.8rem 0 !important;
}

.product__tax {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
}

.product__info-container .product-form {
  margin: 1.2rem 0 !important;
}

.product__info-container .product__description {
  margin: 1rem 0 !important;
  font-size: 1.2rem !important;
  line-height: 1.6 !important;
  color: rgba(var(--color-foreground), 0.65) !important;
}

/* ── Vendor: small tracked uppercase ── */
.product__text.caption-with-letter-spacing {
  font-size: 0.8rem !important;
  letter-spacing: 0.24em !important;
  color: rgba(var(--color-foreground), 0.4) !important;
  margin-bottom: 0.4rem !important;
}

/* ── Price: keep compact ── */
#price-{{ section.id }} {
  margin: 0.4rem 0 !important;
}

/* ── Divider line between price and buttons ── */
.product-form {
  padding-top: 1rem !important;
  border-top: 1px solid rgba(var(--color-foreground), 0.07) !important;
}

/* ── Left vertical thumbnail gallery ── */
@media screen and (min-width: 750px) {
  /* Media gallery = positioned row: [thumbnail rail | main image].
     The rail is absolutely positioned so the MAIN IMAGE defines the
     gallery height — a 16-image product no longer produces a 1200px
     thumbnail column dragging the page down. */
  media-gallery {
    display: block !important;
    position: relative !important;
  }

  /* Thumbnail slider → left rail capped to the stage height, scrolls inside */
  .thumbnail-slider {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 80px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    overflow: hidden !important;
  }

  /* Thumbnail list → vertical column, internal scroll, hidden scrollbar */
  .thumbnail-list {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: unset !important;
    gap: 0.6rem !important;
    overflow-y: auto !important;
    max-height: 100% !important;
    width: 100% !important;
    scrollbar-width: none !important;
    overscroll-behavior: contain !important;
  }
  .thumbnail-list::-webkit-scrollbar { display: none !important; }

  .thumbnail-list__item {
    width: 100% !important;
    flex-shrink: 0 !important;
  }

  .thumbnail-list__item .media {
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
  }

  /* Main slider fills the space right of the rail */
  media-gallery > slider-component:not(.thumbnail-slider) {
    margin-left: calc(80px + 1rem) !important;
    min-width: 0 !important;
  }

  /* Hide ONLY the prev/next nav arrows in the thumbnail strip, not the thumbnail items */
  .thumbnail-slider .slider-button--prev,
  .thumbnail-slider .slider-button--next {
    display: none !important;
  }

  /* ── PDP main gallery: overlaid prev/next circle arrows ── */

  /* ── Main image: fixed 4:5 stage — one consistent frame for mixed
     portrait renders and landscape dealer photos ── */
  .product--thumbnail_slider .product__media-item .product-media-container,
  .product--thumbnail .product__media-item .product-media-container {
    width: 100% !important;
    background: #faf8f4 !important;
    /* Force the padding-trick to our exact ratio */
    --ratio-percent: 125% !important;
  }

  /* Neutralise constrain-height overrides so our ratio wins */
  .product--thumbnail_slider .product__media-item .product-media-container.constrain-height,
  .product--thumbnail .product__media-item .product-media-container.constrain-height {
    --constrained-height: 125% !important;
  }

  /* Image: contain + centre within the frame */
  .product--thumbnail_slider .product__media-item .product-media-container img,
  .product--thumbnail .product__media-item .product-media-container img {
    object-fit: contain !important;
    object-position: center center !important;
  }

  /* Gallery viewer: normal flow (the thumbnail rail stays absolute) */
  .product__media-wrapper media-gallery > slider-component:not(.thumbnail-slider) {
    position: relative !important;
    display: block !important;
  }

  /* Arrows moved to media-gallery level via JS — see theme.liquid */
  media-gallery > .twc-gallery-arrows {
    position: absolute !important;
    top: 50% !important;
    left: 0 !important;
    right: 0 !important;
    transform: translateY(-50%) !important;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    pointer-events: none !important;
    z-index: 5 !important;
    /* offset left arrow past the 80px thumbnail strip + 1rem gap */
    padding-left: calc(80px + 1rem + 0.8rem) !important;
    padding-right: 0.8rem !important;
  }

  /* Keep original slider-buttons hidden — arrows handled by .twc-gallery-arrows */
  .product__media-wrapper media-gallery > slider-component .slider-buttons {
    display: none !important;
  }

  /* Hide the counter in the middle */
  .product__media-wrapper .slider-counter {
    display: none !important;
  }

  /* Arrow buttons in .twc-gallery-arrows overlay */
  .twc-gallery-arrows .slider-button--prev,
  .twc-gallery-arrows .slider-button--next {
    pointer-events: auto !important;
    width: 3.6rem !important;
    height: 3.6rem !important;
    background: rgba(250, 248, 244, 0.92) !important;
    border: 1px solid rgba(175, 182, 215, 0.5) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    padding: 0 !important;
    box-shadow: none !important;
    transition: border-color 0.22s ease, background 0.22s ease !important;
  }

  .twc-gallery-arrows .slider-button--prev:hover,
  .twc-gallery-arrows .slider-button--next:hover {
    border-color: rgba(0, 35, 102, 0.35) !important;
    background: #faf8f4 !important;
  }

  .twc-gallery-arrows .slider-button .svg-wrapper svg {
    width: 1.1rem !important;
    height: 1.1rem !important;
    color: #002366 !important;
    display: block !important;
  }
}

/* ── Mobile: PDP gallery arrows are desktop-only (styled in the min-width:750px
   block above); on touch the gallery is a native swipe slider, so the raw
   buttons must not render as unstyled elements below the thumbnails ── */
@media screen and (max-width: 749px) {
  media-gallery > .twc-gallery-arrows {
    display: none !important;
  }

  /* "Request Price on 🟢" card buttons must stay one line in the 2-col grid */
  .twc-wa-price-link {
    white-space: nowrap !important;
    font-size: 1.05rem !important;
    letter-spacing: 0.03em !important;
    gap: 0.5rem !important;
    padding: 1rem 0.6rem !important;
  }
  .twc-wa-price-link svg {
    width: 14px !important;
    height: 14px !important;
  }

  /* Mobile gallery: same fixed 4:5 stage so mixed-ratio uploads don't
     resize the slider from photo to photo */
  .product__media-item .product-media-container {
    --ratio-percent: 125% !important;
    background: #faf8f4 !important;
  }
  .product__media-item .product-media-container.constrain-height {
    --constrained-height: 125% !important;
  }
  .product__media-item .product-media-container img {
    object-fit: contain !important;
    object-position: center center !important;
  }

  /* Stronger PDP hierarchy on mobile: prominent serif title, darker price */
  .product__info-container .product__title,
  .product__info-container .product__title h1 {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 2.6rem !important;
    line-height: 1.1 !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    color: rgb(0, 35, 102) !important;
  }
  .product__info-container .price .price-item {
    font-size: 1.8rem !important;
    color: rgba(18, 26, 46, 0.92) !important;
  }
}

/* ── Mobile: remove sidebar overflow-y scrollbar ── */
@media screen and (max-width: 749px) {
  .facets-vertical .facets-wrapper {
    overflow-y: visible !important;
    max-height: none !important;
    position: static !important;
  }
}

/* ── Mobile filter drawer: start below sticky header ── */
@media screen and (max-width: 749px) {
  form.mobile-facets {
    top: var(--header-height, 64px) !important;
  }
}

/* ── Mobile drawer: category section labels ── */
.twc-mobile-cat-label {
  display: block;
  font-family: var(--font-body-family);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(var(--color-foreground), 0.38);
  padding: 1.6rem 3rem 0.4rem;
}

/* ── Suppress Plum popup app — all variants ── */
[class*="plum-popup"],
[id*="plum-popup"],
[class*="plum-gamif"],
[id*="plum-gamif"],
.k-popup-inner-wrap,
iframe[src*="plum"],
iframe[src*="gamif"] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ── Product description: strip inline padding, left-align table ── */
.product__description,
.product__description div,
.product__description p {
  padding-left: 0 !important;
  margin-left: 0 !important;
}

.product__description table {
  margin-left: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  table-layout: fixed !important;
}

.product__description table td:first-child,
.product__description table th:first-child {
  width: 55% !important;
}

.product__description table td:last-child,
.product__description table th:last-child {
  width: 45% !important;
}

/* ── Product info: consistent left alignment ── */
.product__info-container,
.product__info-container > *,
.product__info-container .price,
.product__info-container .product__tax,
.product__info-container .product__text,
.product__info-container .product-form__buttons,
.product__info-container .product__description {
  text-align: left !important;
}

.product__info-container .price {
  justify-content: flex-start !important;
}

/* ── Product page: compact title + info for single-view ── */
.product__title h1,
.product__title h2.h1 {
  font-size: clamp(1.4rem, 2vw, 2rem) !important;
  line-height: 1.3 !important;
  font-weight: 400 !important;
  letter-spacing: 0.02em !important;
  margin-bottom: 0.6rem !important;
}

.product__info-container {
  padding-top: 0 !important;
}

.product__info-container > * + * {
  margin-top: 0.6rem !important;
}

.price--large {
  font-size: 1.4rem !important;
}

/* ── Product page: inline buy buttons — equal width, top aligned ── */
.product-form__buttons {
  display: flex !important;
  flex-direction: row !important;
  gap: 0.8rem !important;
  align-items: flex-start !important;
}

.product-form__buttons .product-form__submit {
  flex: 1 1 0 !important;
  width: 0 !important;          /* force equal flex basis */
  min-height: 4rem !important;
  height: 4rem !important;
  padding: 0 1.2rem !important;
  font-size: 1.1rem !important;
  letter-spacing: 0.08em !important;
}

.product-form__buttons .shopify-payment-button {
  flex: 1 1 0 !important;
  width: 0 !important;
}

.product-form__buttons .shopify-payment-button__button,
.product-form__buttons .shopify-payment-button__button--unbranded {
  min-height: 4rem !important;
  height: 4rem !important;
  width: 100% !important;
  font-size: 1.1rem !important;
  padding: 0 1.2rem !important;
}

/* ── Product page: hide variant picker + share button ── */
.product-form__input--pill,
.product-form__input--dropdown,
.product__accordion--share,
.share-button {
  display: none !important;
}

/* ── Product accordion: match screenshot style ── */
.product__accordion .accordion__title {
  font-size: 1.4rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.04em !important;
  color: rgb(var(--color-foreground)) !important;
}

.product__accordion details > summary {
  padding: 1.8rem 0 !important;
  border-top: 1px solid rgba(var(--color-foreground), 0.08) !important;
  list-style: none !important;
}

.product__accordion details:last-of-type {
  border-bottom: 1px solid rgba(var(--color-foreground), 0.08) !important;
}

.product__accordion .accordion__content {
  padding: 0 0 1.6rem !important;
  font-size: 1.3rem !important;
  line-height: 1.6 !important;
  color: rgba(var(--color-foreground), 0.7) !important;
}

.product__accordion .summary__title {
  display: flex !important;
  align-items: center !important;
  gap: 1.2rem !important;
}

.product__accordion .summary__title .icon {
  width: 2rem !important;
  height: 2rem !important;
  color: rgba(var(--color-foreground), 0.55) !important;
  flex-shrink: 0 !important;
}

/* ── Predictive search ── */

/* Section headings: reset h2 size back to caption level so text doesn't wrap */
.predictive-search__heading {
  font-size: 0.72rem !important;
  letter-spacing: 0.2em !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Loader: constrain the TWS pulse loader to a compact size */
predictive-search .predictive-search__loading-state .tws-loader {
  width: 2.4rem !important;
  height: 2.4rem !important;
  flex: 0 0 2.4rem !important;
}

/* Product rows: more breathing room between results */
.predictive-search__item--link-with-thumbnail {
  align-items: center !important;
  grid-template-columns: 4.4rem 1fr !important;
  gap: 1.4rem !important;
  padding: 1.4rem 2rem !important;
}

.predictive-search__image {
  width: 4.4rem !important;
  height: 4.4rem !important;
  object-fit: contain !important;
  border-radius: 2px !important;
}

/* Suggestion + page items: compact */
.predictive-search__item--term,
.predictive-search__pages-wrapper .predictive-search__item,
.predictive-search__results-list .predictive-search__item:not(.predictive-search__item--link-with-thumbnail) {
  padding-top: 0.55rem !important;
  padding-bottom: 0.55rem !important;
}

/* Page/suggestion text: body font, modest size, truncate long titles */
.predictive-search__pages-wrapper .predictive-search__item-heading,
.predictive-search__results-list .predictive-search__item-heading:not(.predictive-search__item--link-with-thumbnail .predictive-search__item-heading) {
  font-family: var(--font-body-family) !important;
  font-size: 1.25rem !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* "Search for X" button: small body text, not a heading */
.predictive-search__item--term {
  font-family: var(--font-body-family) !important;
  font-size: 1.2rem !important;
  font-weight: 400 !important;
  letter-spacing: 0.01em !important;
  color: rgba(var(--color-foreground), 0.55) !important;
  padding: 1rem 2rem !important;
  line-height: 1.4 !important;
}
.predictive-search__item--term span[data-predictive-search-search-for-text] {
  font-family: var(--font-body-family) !important;
  font-size: 1.2rem !important;
  font-weight: 400 !important;
}
.predictive-search__item--term .icon-arrow,
.predictive-search__item--term svg {
  width: 1.2rem !important;
  height: 1.2rem !important;
  opacity: 0.45 !important;
}

/* ── Cart page: h1 at h2-level (scheme-1 hierarchy) ── */
cart-items h1.title,
cart-items h1.cart__empty-text {
  font-size: clamp(2.4rem, 3.5vw, 4rem) !important;
  font-weight: 400 !important;
  letter-spacing: 0.03em !important;
}
