/**
* 2007-2025 PrestaShop
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@prestashop.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
* versions in the future. If you wish to customize PrestaShop for your
* needs please refer to http://www.prestashop.com for more information.
*
*  @author    PrestaShop SA <contact@prestashop.com>
*  @copyright 2007-2025 PrestaShop SA
*  @license   http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
*  International Registered Trademark & Property of PrestaShop SA
*
* Don't forget to prefix your containers with your own identifier
* to avoid any conflicts with others containers.
*/

@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@400;600;700&display=swap");

/* ============================================================
   OSS Top Bar Customisation
   ============================================================ */

/* 1. Background + remove default border + sticky positioning */
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header {
  background-color: #273776;
  border-bottom: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  /* Zero out Bootstrap container-fluid's 15px side padding so the inner
     20px wrapper padding is the sole offset — matching the mega menu bar */
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Push the rest of the header down to fill the gap left by the fixed bar */
.tvcmsdesktop-top-header-wrapper {
  padding-top: 32px;
}

/* Remove fixed positioning on mobile where the bar collapses */
@media (max-width: 991px) {
  .tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
  }

  .tvcmsdesktop-top-header-wrapper {
    padding-top: 0;
  }
}

/* 2. Fixed 32px height, full-width (override Bootstrap container max-width),
      positioning context for the absolutely-centred shipping text */
.tvcmsdesktop-top-header .tvcmsdesktop-top-wrapper {
  height: 32px !important;
  min-height: 32px;
  max-width: 100% !important;
  width: 100% !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
  position: relative;
  box-sizing: border-box;
}

/* 3. Remove Bootstrap col position:relative so the absolute center text
      anchors to the wrapper row, not the column.
      Also zero Bootstrap's 15px column gutter — the wrapper's 20px padding
      is the only side offset, matching the mega menu bar. */
.tvcmsdesktop-top-header .tvheader-offer-wrapper {
  position: static;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.tvcmsdesktop-top-header .tvheader-language-currency-wrapper {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* ============================================================
   4. Typography: Manrope SemiBold 12px / 17px / tracking 0
      Applied only to text-bearing elements — intentionally
      excludes <i> so Material Icons glyphs are not broken.
   ============================================================ */
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header span,
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header a,
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header p,
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header button,
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header li,
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header label {
  font-family: "Manrope", sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  line-height: 17px !important;
  letter-spacing: 0 !important;
}

/* ============================================================
   5. White colour for all visible (non-dropdown) top bar text
   ============================================================ */
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header span,
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header p,
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header button,
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header a {
  color: #fff !important;
}

/* ============================================================
   6. Arrow icons: restore Material Icons font, make white.
      These <i> elements were excluded from rule 4 above.
   ============================================================ */
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header i.material-icons {
  font-family: "Material Icons" !important;
  font-weight: normal !important;
  color: #fff !important;
  font-size: 14px !important;
  vertical-align: middle;
}

/* ============================================================
   7. Dropdowns: white background, black text
      These selectors are more specific than rule 5 above
      (4 classes vs 2 classes) so they win despite !important
      on both sides.
   ============================================================ */
.tvcmsdesktop-top-header-wrapper .tvcmsdesktop-top-header .tv-language-dropdown,
.tvcmsdesktop-top-header-wrapper
  .tvcmsdesktop-top-header
  .tv-currency-dropdown {
  background-color: #fff;
}

.tvcmsdesktop-top-header-wrapper
  .tvcmsdesktop-top-header
  .tv-language-dropdown
  li
  a,
.tvcmsdesktop-top-header-wrapper
  .tvcmsdesktop-top-header
  .tv-language-dropdown
  li
  span,
.tvcmsdesktop-top-header-wrapper
  .tvcmsdesktop-top-header
  .tv-currency-dropdown
  li
  a,
.tvcmsdesktop-top-header-wrapper
  .tvcmsdesktop-top-header
  .tv-currency-dropdown
  li
  span {
  color: #222 !important;
}

/* ============================================================
   8. Offer text block
   ============================================================ */
.tvcmsdesktop-top-header .tvheader-nav-offer-text {
  padding: 0;
  height: 32px;
  line-height: 32px;
  align-items: center;
}

.tvcmsdesktop-top-header .tvheader-nav-offer-text p,
.tvcmsdesktop-top-header .tvheader-nav-offer-text span {
  margin-bottom: 0;
  display: inline;
  line-height: 32px !important;
}

/* Hide the original Material Icons star — replaced by globe SVG */
.tvcmsdesktop-top-header .tvheader-nav-offer-text > i.material-icons {
  display: none !important;
}

/* Globe SVG icon — inherits white via currentColor */
.tvheader-globe-icon {
  width: 20px;
  height: 20px;
  margin-right: 6px;
  flex-shrink: 0;
  vertical-align: middle;
  color: #fff;
}

/* Gap between language selector and currency selector */
.tvcmsdesktop-top-header .tvheader-currency {
  margin-left: 20px;
}

/* ============================================================
   9. Center shipping link — absolutely centred in the top bar
   ============================================================ */
.tvheader-center-shipping-text {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  pointer-events: all;
  z-index: 1;
}

.tvheader-center-shipping-text a:hover {
  text-decoration: underline;
}

/* ============================================================
   10. Responsive: collapse centre text when columns stack
   ============================================================ */
@media (max-width: 991px) {
  .tvheader-center-shipping-text {
    display: none;
  }

  .tvcmsdesktop-top-header .tvcmsdesktop-top-wrapper {
    height: auto !important;
    min-height: 32px;
  }

  .tvcmsdesktop-top-header .tvheader-nav-offer-text {
    height: auto;
    padding: 6px 0;
  }
}

/* ============================================================
   OSS Navbar Redesign — single-row layout on desktop
   Merges the logo + megamenu + search/account/cart into one bar,
   aligned with the same 20 px side-padding as the top bar above.
   ============================================================ */

/* ============================================================
   OSS Sticky mega menu — offset below the fixed 32px top bar
   so the two bars don't overlap on scroll. Only applied on
   desktop where the top bar is position:fixed.
   ============================================================ */
@media (min-width: 992px) {
  .tvcmsheader-sticky.sticky {
    top: 32px !important;
  }
}

@media (min-width: 992px) {
  /* 1. Remove any outer padding that would push the row off-edge */
  .tvcms-header-menu-offer-wrapper {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* 2. Menu row: full-width flex container */
  .tvcms-header-menu {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box;
    min-height: 60px;
  }

  /* 3. Megamenu wrapper: natural width, stays centred between the two flex-1 columns */
  .tvcmsmain-menu-wrapper {
    flex: 0 0 auto !important;
    max-width: none !important;
    width: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* 4. Logo wrap: flex-1 left column — content anchored to the start */
  .oss-logo-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-start;
  }

  .oss-logo-wrap .tv-header-logo {
    display: flex;
    align-items: center;
  }

  .oss-logo-wrap .tv-header-logo a img {
    display: block;
    height: 34px;
    width: auto;
  }

  /* 5. Right nav group: flex-1 right column — content anchored to the end */
  .oss-nav-group {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
  }

  /* 6. Search bar — tvcmssearch module
        DOM order in the form: [.tvheader-top-search (text)] → [.tvheader-top-search-wrapper (icon)]
        We swap them visually with CSS order so icon sits LEFT of the text. */

  /* Strip float/overflow from outer wrappers */
  .oss-nav-group .tvcmssearch-wrapper {
    float: none;
    position: static;
    cursor: default;
  }

  /* Hide the toggle-icon (open/close) — we always show the form inline */
  .oss-nav-group .tvheader-search-display-icon {
    display: none !important;
  }

  /* Always show the full form (class tvsearch-header-display-full) */
  .oss-nav-group .tvsearch-header-display-wrappper {
    display: block !important;
    position: static !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  /* Pill: override tvcmssearch border/bg, apply rounded pill */
  .oss-nav-group .tvsearch-header-display-wrappper form {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    background: #a6e0dd !important;
    border: none !important;
    border-radius: 20px;
    height: 28px;
    padding: 0 10px;
    gap: 6px;
    width: auto;
  }

  /* Submit button wrapper → order 1 (LEFT) */
  .oss-nav-group .tvheader-top-search-wrapper {
    order: 1;
    background-color: transparent !important;
    padding: 0 !important;
    display: flex;
    align-items: center;
    flex-shrink: 0;
  }

  .oss-nav-group .tvheader-search-btn {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    display: flex;
    align-items: center;
    cursor: pointer;
  }

  .oss-nav-group .tvheader-search-btn svg {
    width: 14px !important;
    height: 14px !important;
    display: block;
    color: #000;
  }

  .oss-nav-group .tvheader-search-btn svg path,
  .oss-nav-group .tvheader-search-btn svg circle,
  .oss-nav-group .tvheader-search-btn svg * {
    stroke: #000 !important;
    fill: none !important;
  }

  /* Text input wrapper → order 2 (RIGHT of icon) */
  .oss-nav-group .tvheader-top-search {
    order: 2;
    width: auto !important; /* override width:100% from tvcmssearch */
    display: flex;
    align-items: center;
  }

  .oss-nav-group .tvheader-top-search-wrapper-info-box {
    display: flex;
    align-items: center;
  }

  /* Input: "Search..." text (~52 px) + ~20 px breathing room on the right */
  .oss-nav-group .tvcmssearch-words,
  .oss-nav-group input[name="s"] {
    width: 72px !important;
    min-width: 0 !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    font-family: "Manrope", sans-serif !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    color: #000;
    outline: none !important;
    box-shadow: none !important;
    height: 100%;
    line-height: normal;
  }

  .oss-nav-group .tvcmssearch-words::placeholder,
  .oss-nav-group input[name="s"]::placeholder {
    color: #000 !important;
    opacity: 1;
  }

  /* Search result dropdown */
  .oss-nav-group .tvsearch-result {
    min-width: 260px;
    right: 0;
    left: auto;
  }

  /* 7. Account button: keep position:relative so dropdown stays anchored */
  .oss-nav-group #tvcmsdesktop-account-button {
    position: relative;
  }

  /* 7b. Strip legacy theme padding from account + cart wrappers so gap:8px
         from .oss-nav-group is the only spacing between the three items */
  .oss-nav-group .tv-header-account,
  .oss-nav-group .tv-account-wrapper {
    padding: 0 !important;
    margin: 0 !important;
  }

  .oss-nav-group .tv-myaccount-btn {
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    align-items: center;
    line-height: 1;
  }

  .oss-nav-group #_desktop_cart_manage,
  .oss-nav-group .tvcms-header-cart,
  .oss-nav-group #_desktop_cart {
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center;
  }

  .oss-nav-group .tvheader-cart-wrapper {
    padding: 0 !important;
    margin: 0 !important;
  }

  .oss-nav-group .tvheader-cart-btn-wrapper {
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    align-items: center;
  }

  .oss-nav-group .tvcart-icon-text-wrapper {
    display: flex;
    align-items: center;
  }

  /* 8. Shopping bag icon swap — hide the theme's built-in cart SVG and
        replace it with the custom shopping-bag icon via background-image.
        The relative path resolves from this CSS file's location:
        views/css/ → views/img/oss-shopping-bag.svg */
  .oss-nav-group .tv-cart-icon-main {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    position: relative;
  }

  .oss-nav-group .tv-cart-icon-main > svg {
    display: none;
  }

  .oss-nav-group .tv-cart-icon-main::before {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    background-image: url("../img/oss-shopping-bag.svg");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
  }

  /* Hide "Sign In" text label — show icon only (matches target design) */
  .oss-nav-group .tv-myaccount-btn span:not(.tvcms_customer_name) {
    display: none;
  }

  /* Profile icon swap — hide theme SVG, replace with custom icon */
  .oss-nav-group .tv-myaccount-btn {
    position: relative;
    display: flex;
    align-items: center;
  }

  .oss-nav-group .tv-myaccount-btn > svg {
    display: none !important;
  }

  .oss-nav-group .tv-myaccount-btn::before {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    background-image: url("../img/oss-profile.svg");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
  }
}

/* ============================================================
   OSS SALE badge — red pill around the SALE menu item.
   Class .oss-sale-item is added by JS after megamenu loads.
   ============================================================ */

@media (min-width: 992px) {
  #tvdesktop-megamenu .tv-menu-horizontal ul li.level-1.oss-sale-item {
    display: inline-flex;
    align-items: center;
  }

  #tvdesktop-megamenu .tv-menu-horizontal ul li.level-1.oss-sale-item > a {
    background-color: #e8192c !important;
    border-radius: 20px !important;
    color: #fff !important;
    padding: 0 14px !important;
    line-height: 34px !important;
    display: inline-block;
  }

  #tvdesktop-megamenu .tv-menu-horizontal ul li.level-1.oss-sale-item > a span {
    color: #fff !important;
  }

  #tvdesktop-megamenu
    .tv-menu-horizontal
    ul
    li.level-1.oss-sale-item:hover
    > a {
    background-color: #c1101e !important;
    color: #fff !important;
  }

  /* CSS attribute fallback: if "sale" appears in the category URL */
  #tvdesktop-megamenu .tv-menu-horizontal ul li.level-1 > a[href*="/sale"],
  #tvdesktop-megamenu .tv-menu-horizontal ul li.level-1 > a[href*="=sale"] {
    background-color: #e8192c !important;
    border-radius: 20px !important;
    color: #fff !important;
    padding: 0 14px !important;
    line-height: 34px !important;
    display: inline-block;
  }
}

/* ============================================================
   OSS Megamenu — center dropdown panels horizontally on the page.
   The module's default positions relative to ul.menu-content (only
   as wide as the nav items). We re-parent to the full-width sticky
   bar so left:50% + translateX(-50%) truly centres on the page.
   ============================================================ */
@media (min-width: 992px) {
  /* 1. Remove menu-content as the dropdown positioning context */
  #tvdesktop-megamenu .tv-menu-horizontal .menu-content {
    position: static;
  }

  /* 2. Make the full-width nav bar the positioning context.
        When JS makes it sticky (position:fixed), that also works as a
        positioning context, so the dropdown stays anchored correctly. */
  .tvcms-header-menu-offer-wrapper {
    position: relative;
  }

  /* The .half-wrapper-backdrop (inside #wrapper, z-index:10) is positioned
     with top:-32px on non-index pages so it extends up over the area between
     #wrapper and the header. Without an explicit stacking context the navbar
     is below z-index:10 and gets dimmed too — exactly the look you see on
     home is achieved by lifting the entire <header> above the backdrop. */
  body header#header {
    position: relative;
    z-index: 50;
  }

  /* 3. Centre all level-1 dropdowns.
        top:100% = directly below the nav bar.
        left:50% + translateX(-50%) = horizontally centred on the bar. */
  #tvdesktop-megamenu
    .tv-menu-horizontal
    ul
    li.level-1
    > .tv-sub-menu.menu-dropdown {
    top: 100%;
    left: 50%;
    right: auto;
    margin: 0;
    transform: translateX(-50%) scale(1, 0);
    transform-origin: top center;
  }

  /* 4. Hover: reveal — must keep translateX or the panel jumps to the right */
  #tvdesktop-megamenu
    .tv-menu-horizontal
    ul
    li.level-1:hover
    > .tv-sub-menu.menu-dropdown {
    transform: translateX(-50%) scale(1, 1);
  }
}

/* ============================================================
   OSS Megamenu — group headers (Shop by category / brand / keyword)
   ============================================================ */
@media (min-width: 992px) {
  #tvdesktop-megamenu .tv-menu-horizontal ul li.level-1 ul li.item-header a {
    font-family: "Manrope", sans-serif !important;
    font-weight: 600 !important;
    font-size: 18px !important;
    line-height: 24px !important;
    letter-spacing: 0 !important;
    margin-bottom: 0 !important;
    display: block !important;
    text-align: left !important;
  }
}

/* ============================================================
   OSS Megamenu — line items (Sweaters, Devold, Softshell, Marius etc)
   ============================================================ */
@media (min-width: 992px) {
  #tvdesktop-megamenu
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a {
    font-family: "Manrope", sans-serif !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    line-height: 22px !important;
    letter-spacing: 0 !important;
    margin-bottom: 0 !important;
  }
}

/* ============================================================
   OSS Megamenu — SVG icons replacing circle dots for sub-menu items
   ============================================================ */
@media (min-width: 992px) {
  /* Base reset for all items that have an SVG: remove the circle dot */
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="sweaters"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="fleece"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="hoodies"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="t-shirts"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="rain-jackets"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="rain-poncho"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="rain-coats"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="softshell"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="shell-jackets"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="winter-jackets"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="down-coats"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="down-wests"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="pants"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="shorts"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="socks"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="accessories"]::before,
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="jewellery"]::before {
    border: none;
    border-radius: 0;
    width: 16px;
    height: 16px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    vertical-align: middle;
  }

  /* No border on icon hover */
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a:hover::before {
    border: none !important;
  }

  /* Per-category SVG */
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="sweaters"]::before {
    background-image: url("../img/sweaters.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="fleece"]::before {
    background-image: url("../img/fleece.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="hoodies"]::before {
    background-image: url("../img/hoodies.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="t-shirts"]::before {
    background-image: url("../img/t-shirts.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="rain-jackets"]::before {
    background-image: url("../img/rain-jackets.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="rain-poncho"]::before {
    background-image: url("../img/rain-poncho.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="rain-coats"]::before {
    background-image: url("../img/rain-coats.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="softshell"]::before {
    background-image: url("../img/softshell.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="shell-jackets"]::before {
    background-image: url("../img/shell-jackets.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="winter-jackets"]::before {
    background-image: url("../img/winter-jackets.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="down-coats"]::before {
    background-image: url("../img/down-coats.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="down-wests"]::before {
    background-image: url("../img/down-wests.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="pants"]::before {
    background-image: url("../img/pants.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="shorts"]::before {
    background-image: url("../img/shorts.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="socks"]::before {
    background-image: url("../img/socks.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="accessories"]::before {
    background-image: url("../img/accessories.svg");
  }
  #header
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a[href*="jewellery"]::before {
    background-image: url("../img/jewellery.svg");
  }
}

/* ============================================================
   OSS Megamenu — two-column category list (max 9 items per column)
   Grid approach: header spans both columns so col-2 items align
   with col-1 items, not with the header.
   ============================================================ */
@media (min-width: 992px) {
  #tvdesktop-megamenu .tv-menu-col.oss-cat-col .ul-column {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto repeat(9, auto);
    grid-auto-flow: column;
    column-gap: 24px;
  }
  #tvdesktop-megamenu .tv-menu-col.oss-cat-col .ul-column li.item-header {
    grid-column: 1 / -1;
    grid-row: 1;
  }
}

/* ============================================================
   OSS Megamenu — promo image column (fills row height, button overlay)
   ============================================================ */
@media (min-width: 992px) {
  /* Make the row flex so all columns share the same height */
  #tvdesktop-megamenu .tv-sub-menu .tv-menu-row {
    display: flex;
    align-items: stretch;
    position: relative;
  }

  /* Row 1: full-width bar via background gradient — paints behind all content
     so there's no z-index fight with the flex-item columns.
     Position + size offsets 15px each side to match Bootstrap col content edges. */
  #tvdesktop-megamenu .tv-sub-menu .tv-menu-row:first-child {
    background: linear-gradient(
      to bottom,
      transparent 40px,
      #273776 40px,
      #273776 41px,
      transparent 41px
    ) 15px 0 / calc(100% - 15px) 100% no-repeat !important;
  }

  /* Row 2: same gradient bar as row 1 for consistent appearance */
  #tvdesktop-megamenu .tv-sub-menu .tv-menu-row:last-child {
    background: linear-gradient(
      to bottom,
      transparent 40px,
      #273776 40px,
      #273776 41px,
      transparent 41px
    ) 15px 0 / calc(100% - 15px) 100% no-repeat !important;
  }

  /* Space between bar and first item — brand col and keyword col */
  #tvdesktop-megamenu
    .tv-sub-menu
    .tv-menu-col:not(.oss-promo-col):not(.oss-cat-col)
    li.item-header
    + li {
    margin-top: 12px;
  }

  /* oss-cat-col uses CSS Grid: target first item in each visual column explicitly */
  #tvdesktop-megamenu .tv-menu-col.oss-cat-col .ul-column li:nth-child(2),
  #tvdesktop-megamenu .tv-menu-col.oss-cat-col .ul-column li:nth-child(11) {
    margin-top: 12px;
  }

  /* Space between bar and keyword pills */
  #tvdesktop-megamenu
    .tv-sub-menu
    .tv-menu-col:not(.oss-promo-col)
    li.item-line
    .oss-keyword-tags {
    padding-top: 12px;
  }

  /* Promo column: strip all padding/margin from every wrapper so
     .oss-menu-promo reaches the column edges exactly */
  #tvdesktop-megamenu .tv-menu-col.oss-promo-col,
  #tvdesktop-megamenu .tv-menu-col.oss-promo-col .ul-column,
  #tvdesktop-megamenu .tv-menu-col.oss-promo-col .ul-column > li,
  #tvdesktop-megamenu .tv-menu-col.oss-promo-col .html-block {
    padding: 0 !important;
    margin: 0 !important;
    display: flex;
    flex-direction: column;
    flex: 1;
  }

  .oss-menu-promo {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 379px;
  }

  #tvdesktop-megamenu .tv-menu-col.oss-promo-col {
    flex: 0 0 284px !important;
    width: 284px !important;
    max-width: 284px !important;
    padding-top: 53px !important;
  }

  /* Ensure the dropdown is always wide enough to hold the fixed promo column,
     and remove the module's max-height scroll constraint */
  #tvdesktop-megamenu
    .tv-menu-horizontal
    ul
    li.level-1
    > .tv-sub-menu.menu-dropdown {
    min-width: 1040px;
    max-height: none !important;
    overflow-y: visible !important;
    padding-left: 55px !important;
    padding-right: 55px !important;
  }

  /* Override the module's default img margin and hover effect inside html-block */
  .oss-menu-promo img:hover {
    opacity: 1 !important;
    filter: none !important;
  }
  .oss-menu-promo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
    display: block;
    margin-bottom: 0 !important;
  }

  /* Small pill button, flush to bottom-right corner of the image.
     Selector specificity (1,3,1) beats the li.item-header a block rule (1,1,4). */
  #tvdesktop-megamenu .tv-menu-col.oss-promo-col li.item-header .oss-menu-promo-btn {
    position: absolute;
    bottom: 0 !important;
    right: 0 !important;
    left: auto !important;
    margin: 0 !important;
    background: rgba(39, 55, 118, 0.92);
    color: #fff !important;
    padding: 8px 14px !important;
    border-radius: 4px 0 0 0;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center;
    flex-wrap: nowrap !important;
    white-space: nowrap !important;
    gap: 6px;
    font-family: "Manrope", sans-serif !important;
    font-weight: 400 !important;
    font-size: 18px !important;
    line-height: 24px !important;
    letter-spacing: 0 !important;
    transition: background 0.2s ease;
  }

  #tvdesktop-megamenu .tv-menu-col.oss-promo-col li.item-header .oss-menu-promo-btn:hover {
    background: rgba(39, 55, 118, 1);
    color: #fff !important;
  }

  #tvdesktop-megamenu .tv-menu-col.oss-promo-col li.item-header .oss-menu-promo-btn span {
    font-size: 15px;
    line-height: 1;
  }

  #tvdesktop-megamenu .tv-menu-col.oss-promo-col li.item-header .oss-menu-promo-btn br {
    display: none;
  }
}

/* ============================================================
   OSS Megamenu — brand column: remove circle dots
   ============================================================ */
@media (min-width: 992px) {
  #tvdesktop-megamenu
    .tv-menu-col.oss-brand-col
    .ul-column
    li.item-line.tvmega-menu-link
    a::before {
    display: none;
  }
  #tvdesktop-megamenu
    .tv-menu-col.oss-brand-col
    .ul-column
    li.item-line.tvmega-menu-link
    a {
    padding-left: 0;
  }
}

/* ============================================================
   OSS Megamenu — keyword tag pills
   ============================================================ */
@media (min-width: 992px) {
  .oss-keyword-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 4px 0;
  }

  #tvdesktop-megamenu
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a.oss-keyword-tag {
    display: inline-block;
    padding: 5px 14px !important;
    border: 1px solid #c8ccd4;
    border-radius: 20px;
    font-family: "Manrope", sans-serif !important;
    font-weight: 700 !important;
    font-size: 16px !important;
    line-height: 22px !important;
    letter-spacing: 0 !important;
    margin: 0 !important;
    color: #273776 !important;
    text-decoration: none !important;
    background: #f0f1f3;
    transition:
      background 0.2s ease,
      border-color 0.2s ease;
    white-space: nowrap;
  }

  .oss-keyword-tag::before {
    display: none !important;
  }

  #tvdesktop-megamenu
    .tv-menu-horizontal
    ul
    li.level-1
    ul
    li.item-line.tvmega-menu-link
    a.oss-keyword-tag:hover {
    background: #273776;
    border-color: #273776;
    color: #fff !important;
  }
}

/* OSS: brand list 25px after hero */
.container-fluid.tvcmsbrandlist-slider {
  margin-top: 25px !important;
}
.tvcmsbrandlist-slider .container.tvbrandlist-slider {
  margin-top: 0 !important;
}

/* ============================================================
   OSS: Best Sellers section — max-width, Playfair title, 2×4 grid
   ============================================================ */

/* Constrain the entire best-sellers block to 1256px and centre it */
.tvcmsbest-seller-product {
  max-width: 1256px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
}

/* Remove the inner Bootstrap .container's default side-padding so it
   doesn't double up with the outer 20 px padding above */
.tvcmsbest-seller-product > .container,
.tvcmsbest-seller-product .container.tvbest-seller-product-wrapper-box {
  padding-left: 0;
  padding-right: 0;
  max-width: 100%;
}

/* Playfair Display on the "Shop bestsellers" heading */
.tvcmsbest-seller-product .oss-bestseller-heading .tvmain-title h2 {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 400;
  font-size: 46px;
  line-height: 62px;
  text-transform: none;
  text-align: left;
}

/* Playfair Display on the "Shop by category" heading (tvcmsmultibanner1) */
.tvcmsmultibanners .oss-shopbycategory-heading .tvmain-title h2 {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 400;
  font-size: 46px;
  line-height: 62px;
  text-transform: none;
  text-align: left;
}

/* Shop by category section: 50px top and bottom spacing */
.tvcmsmultibanners {
  margin-top: 0;
  margin-bottom: 0;
  padding: 50px 20px 100px;
  box-sizing: border-box;
  background-color: #edebeb;
}
@media (max-width: 767px) {
  .tvcmsmultibanners {
    padding: 50px 15px;
  }
}

@media (max-width: 767px) {
  .tvcmsbest-seller-product {
    padding-left: 15px;
    padding-right: 15px;
  }
}

/* --- Best Sellers 2×4 static grid (replaces owl carousel) --- */

/* Hide star ratings in best sellers section */
.tvcmsbest-seller-product .tvcms-price-star-manage {
  display: none !important;
}

/* --- Best Sellers card internal spacing --- */

/* Remove the 7.5px side padding on the article wrapper that offsets the image */
.tvcmsbest-seller-product .tvall-product-wrapper-info-box {
  padding: 0 !important;
}

.tvcmsbest-seller-product .tvproduct-info-box-wrapper {
  padding: 0 !important;
}
.tvcmsbest-seller-product .product-description .tvproduct-name {
  padding: 0 !important;
}
.tvcmsbest-seller-product .tvproduct-name-price-wrapper .tvproduct-name {
  padding-bottom: 0 !important;
}
.tvcmsbest-seller-product .product-price-and-shipping {
  padding-bottom: 0 !important;
}

/* --- Best Sellers card typography --- */

/* Category label */
.tvcmsbest-seller-product .tvproduct-cat-name {
  font-family: "Manrope", sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  color: #575757 !important;
  letter-spacing: 0 !important;
  line-height: 17px !important;
}

/* Product title */
.tvcmsbest-seller-product .tvproduct-name h6,
.tvcmsbest-seller-product .tvproduct-name .product-title {
  font-family: "Manrope", sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  color: #000000 !important;
  letter-spacing: 0 !important;
  line-height: 24px !important;
}

/* Price */
.tvcmsbest-seller-product .price,
.tvcmsbest-seller-product .regular-price {
  font-family: "Manrope", sans-serif !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  color: #000000 !important;
  letter-spacing: 0 !important;
  line-height: 30px !important;
}

/* Hide carousel prev/next buttons — not needed for a static grid */
.tvcmsbest-seller-product .tvbestseller-pagination-wrapper {
  display: none !important;
}

/* Remove the shadow wrapper's overflow so the grid breathes */
.tvcmsbest-seller-product .tvall-block-box-shadows.tvbest-seller-product {
  box-shadow: none;
  background: none;
  padding: 0;
}

/* 4-column grid, desktop-first */
.tvcmsbest-seller-product .tvbest-seller-product-wrapper.oss-grid-layout {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  width: 100%;
}

/* Each article fills its grid cell */
.tvcmsbest-seller-product
  .tvbest-seller-product-wrapper.oss-grid-layout
  > article {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
}

/* Strip the white card box — no longer needs oss-grid-layout */
.tvcmsbest-seller-product .thumbnail-container,
.tvcmsbest-seller-product .tvproduct-wrapper {
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.tvcmsbest-seller-product .tvproduct-wrapper:hover {
  box-shadow: none !important;
}

/* Image container — fixed 4:5 aspect ratio, clipping context */
.tvcmsbest-seller-product .tvproduct-image {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  position: relative;
  width: 100%;
}

/* Anchor pinned to all four edges of the image container */
.tvcmsbest-seller-product .tvproduct-image > a {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  display: block !important;
  padding: 0 !important;
  border: none !important;
  margin: 0 !important;
}

/* Image fills the anchor edge-to-edge */
.tvcmsbest-seller-product .tvproduct-image img.tvproduct-defult-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: fill !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Tablet: 2 columns */
@media (max-width: 991px) {
  .tvcmsbest-seller-product .tvbest-seller-product-wrapper.oss-grid-layout {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

/* Mobile: 2 columns, tighter gap */
@media (max-width: 575px) {
  .tvcmsbest-seller-product .tvbest-seller-product-wrapper.oss-grid-layout {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}

/* ========== Bestsellers CTA Button ========== */
.tvcmsbest-seller-product .oss-bestseller-btn-wrapper {
  text-align: left;
  margin-top: 40px;
}

.tvcmsbest-seller-product .oss-bestseller-btn {
  display: inline-block;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 24px;
  letter-spacing: 0.08em;
  color: #ffffff;
  background-color: #273776;
  border: none;
  border-radius: 0;
  padding: 13px 48px;
  text-transform: none !important;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.tvcmsbest-seller-product .oss-bestseller-btn:hover,
.tvcmsbest-seller-product .oss-bestseller-btn:focus {
  background-color: #000000;
  color: #ffffff;
  text-decoration: none;
}

.tvcmsbest-seller-product .oss-bestseller-btn i {
  margin-left: 20px;
  vertical-align: middle;
  font-size: 18px;
}

.tvcmsbest-seller-product .oss-bestseller-btn span {
  vertical-align: middle;
}

@media (max-width: 575px) {
  .tvcmsbest-seller-product .oss-bestseller-btn-wrapper {
    margin-top: 28px;
  }

  .tvcmsbest-seller-product .oss-bestseller-btn {
    padding: 11px 36px;
  }
}

/* ============================================================
   OSS: New Arrivals section — replica of Best Sellers styling
   ============================================================ */

/* Constrain the entire new-arrivals block to 1256px and centre it */
.tvcmsnew-product {
  max-width: 1256px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
}

/* Remove the inner Bootstrap .container's default side-padding */
.tvcmsnew-product > .container,
.tvcmsnew-product .container.tvnew-product-wrapper-box {
  padding-left: 0;
  padding-right: 0;
  max-width: 100%;
}

/* Playfair Display on the "New arrivals" heading */
.tvcmsnew-product .oss-newarrivals-heading .tvmain-title h2 {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 400;
  font-size: 46px;
  line-height: 62px;
  text-transform: none;
  text-align: left;
}

@media (max-width: 767px) {
  .tvcmsnew-product {
    padding-left: 15px;
    padding-right: 15px;
  }
}

/* --- New Arrivals 2x4 static grid (replaces owl carousel) --- */

/* Hide star ratings */
.tvcmsnew-product .tvcms-price-star-manage {
  display: none !important;
}

/* --- New Arrivals card internal spacing --- */

.tvcmsnew-product .tvall-product-wrapper-info-box {
  padding: 0 !important;
}

.tvcmsnew-product .tvproduct-info-box-wrapper {
  padding: 0 !important;
}
.tvcmsnew-product .product-description .tvproduct-name {
  padding: 0 !important;
}
.tvcmsnew-product .tvproduct-name-price-wrapper .tvproduct-name {
  padding-bottom: 0 !important;
}
.tvcmsnew-product .product-price-and-shipping {
  padding-bottom: 0 !important;
}

/* --- New Arrivals card typography --- */

/* Category label */
.tvcmsnew-product .tvproduct-cat-name {
  font-family: "Manrope", sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  color: #575757 !important;
  letter-spacing: 0 !important;
  line-height: 17px !important;
}

/* Product title */
.tvcmsnew-product .tvproduct-name h6,
.tvcmsnew-product .tvproduct-name .product-title {
  font-family: "Manrope", sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  color: #000000 !important;
  letter-spacing: 0 !important;
  line-height: 24px !important;
}

/* Price */
.tvcmsnew-product .price,
.tvcmsnew-product .regular-price {
  font-family: "Manrope", sans-serif !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  color: #000000 !important;
  letter-spacing: 0 !important;
  line-height: 30px !important;
}

/* Hide carousel prev/next buttons — not needed for a static grid */
.tvcmsnew-product .tvnew-pagination-wrapper {
  display: none !important;
}

/* Remove the shadow wrapper's overflow so the grid breathes */
.tvcmsnew-product .tvall-block-box-shadows.tvnew-product {
  box-shadow: none;
  background: none;
  padding: 0;
}

/* 4-column grid, desktop-first */
.tvcmsnew-product .tvnew-product-wrapper.oss-grid-layout {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  width: 100%;
}

/* Each article fills its grid cell */
.tvcmsnew-product .tvnew-product-wrapper.oss-grid-layout > article {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
}

/* Strip the white card box */
.tvcmsnew-product .thumbnail-container,
.tvcmsnew-product .tvproduct-wrapper {
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.tvcmsnew-product .tvproduct-wrapper:hover {
  box-shadow: none !important;
}

/* Image container — fixed 4:5 aspect ratio, clipping context */
.tvcmsnew-product .tvproduct-image {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  position: relative;
  width: 100%;
}

/* Anchor pinned to all four edges of the image container */
.tvcmsnew-product .tvproduct-image > a {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  display: block !important;
  padding: 0 !important;
  border: none !important;
  margin: 0 !important;
}

/* Image fills the anchor edge-to-edge */
.tvcmsnew-product .tvproduct-image img.tvproduct-defult-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: fill !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Tablet: 2 columns */
@media (max-width: 991px) {
  .tvcmsnew-product .tvnew-product-wrapper.oss-grid-layout {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

/* Mobile: 2 columns, tighter gap */
@media (max-width: 575px) {
  .tvcmsnew-product .tvnew-product-wrapper.oss-grid-layout {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}

/* ========== New Arrivals CTA Button ========== */
.tvcmsnew-product .oss-newarrivals-btn-wrapper {
  text-align: left;
  margin-top: 40px;
}

.tvcmsnew-product .oss-newarrivals-btn {
  display: inline-block;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 24px;
  letter-spacing: 0.08em;
  color: #ffffff;
  background-color: #273776;
  border: none;
  border-radius: 0;
  padding: 13px 48px;
  text-transform: none !important;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.tvcmsnew-product .oss-newarrivals-btn:hover,
.tvcmsnew-product .oss-newarrivals-btn:focus {
  background-color: #000000;
  color: #ffffff;
  text-decoration: none;
}

.tvcmsnew-product .oss-newarrivals-btn i {
  margin-left: 20px;
  vertical-align: middle;
  font-size: 18px;
}

.tvcmsnew-product .oss-newarrivals-btn span {
  vertical-align: middle;
}

@media (max-width: 575px) {
  .tvcmsnew-product .oss-newarrivals-btn-wrapper {
    margin-top: 28px;
  }

  .tvcmsnew-product .oss-newarrivals-btn {
    padding: 11px 36px;
  }
}

/* ============================================================
   OSS: Seasonal Favorites section — replica of Best Sellers styling
   ============================================================ */

/* Constrain the entire seasonal-favorites block to 1256px and centre it */
.tvcmsfeatured-product {
  max-width: 1256px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px;
  padding-right: 20px;
  box-sizing: border-box;
}

/* Remove the inner Bootstrap .container's default side-padding */
.tvcmsfeatured-product > .container,
.tvcmsfeatured-product .container.tvfeatured-product-wrapper-box {
  padding-left: 0;
  padding-right: 0;
  max-width: 100%;
}

/* Playfair Display on the "Seasonal favorites" heading */
.tvcmsfeatured-product .oss-seasonal-heading .tvmain-title h2 {
  font-family: "Playfair Display", Georgia, serif;
  font-weight: 400;
  font-size: 46px;
  line-height: 62px;
  text-transform: none;
  text-align: left;
}

@media (max-width: 767px) {
  .tvcmsfeatured-product {
    padding-left: 15px;
    padding-right: 15px;
  }
}

/* --- Seasonal Favorites 2x4 static grid (replaces owl carousel) --- */

/* Hide star ratings */
.tvcmsfeatured-product .tvcms-price-star-manage {
  display: none !important;
}

/* --- Seasonal Favorites card internal spacing --- */

.tvcmsfeatured-product .tvall-product-wrapper-info-box {
  padding: 0 !important;
}

.tvcmsfeatured-product .tvproduct-info-box-wrapper {
  padding: 0 !important;
}
.tvcmsfeatured-product .product-description .tvproduct-name {
  padding: 0 !important;
}
.tvcmsfeatured-product .tvproduct-name-price-wrapper .tvproduct-name {
  padding-bottom: 0 !important;
}
.tvcmsfeatured-product .product-price-and-shipping {
  padding-bottom: 0 !important;
}

/* --- Seasonal Favorites card typography --- */

/* Category label */
.tvcmsfeatured-product .tvproduct-cat-name {
  font-family: "Manrope", sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  color: #575757 !important;
  letter-spacing: 0 !important;
  line-height: 17px !important;
}

/* Product title */
.tvcmsfeatured-product .tvproduct-name h6,
.tvcmsfeatured-product .tvproduct-name .product-title {
  font-family: "Manrope", sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  color: #000000 !important;
  letter-spacing: 0 !important;
  line-height: 24px !important;
}

/* Price */
.tvcmsfeatured-product .price,
.tvcmsfeatured-product .regular-price {
  font-family: "Manrope", sans-serif !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  color: #000000 !important;
  letter-spacing: 0 !important;
  line-height: 30px !important;
}

/* Hide carousel prev/next buttons — not needed for a static grid */
.tvcmsfeatured-product .tvfeature-pagination-wrapper {
  display: none !important;
}

/* Remove the shadow wrapper's overflow so the grid breathes */
.tvcmsfeatured-product .tvall-block-box-shadows.tvfeatured-product {
  box-shadow: none;
  background: none;
  padding: 0;
}

/* 4-column grid, desktop-first */
.tvcmsfeatured-product .tvfeatured-product-wrapper.oss-grid-layout {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  width: 100%;
}

/* Each article fills its grid cell */
.tvcmsfeatured-product .tvfeatured-product-wrapper.oss-grid-layout > article {
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
}

/* Strip the white card box */
.tvcmsfeatured-product .thumbnail-container,
.tvcmsfeatured-product .tvproduct-wrapper {
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.tvcmsfeatured-product .tvproduct-wrapper:hover {
  box-shadow: none !important;
}

/* Image container — fixed 4:5 aspect ratio, clipping context */
.tvcmsfeatured-product .tvproduct-image {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  position: relative;
  width: 100%;
}

/* Anchor pinned to all four edges of the image container */
.tvcmsfeatured-product .tvproduct-image > a {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  display: block !important;
  padding: 0 !important;
  border: none !important;
  margin: 0 !important;
}

/* Image fills the anchor edge-to-edge */
.tvcmsfeatured-product .tvproduct-image img.tvproduct-defult-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: fill !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Tablet: 2 columns */
@media (max-width: 991px) {
  .tvcmsfeatured-product .tvfeatured-product-wrapper.oss-grid-layout {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

/* Mobile: 2 columns, tighter gap */
@media (max-width: 575px) {
  .tvcmsfeatured-product .tvfeatured-product-wrapper.oss-grid-layout {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}

/* ========== Seasonal Favorites CTA Button ========== */
.tvcmsfeatured-product .oss-seasonal-btn-wrapper {
  text-align: left;
  margin-top: 40px;
}

.tvcmsfeatured-product .oss-seasonal-btn {
  display: inline-block;
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 24px;
  letter-spacing: 0.08em;
  color: #ffffff;
  background-color: #273776;
  border: none;
  border-radius: 0;
  padding: 13px 48px;
  text-transform: none !important;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.tvcmsfeatured-product .oss-seasonal-btn:hover,
.tvcmsfeatured-product .oss-seasonal-btn:focus {
  background-color: #000000;
  color: #ffffff;
  text-decoration: none;
}

.tvcmsfeatured-product .oss-seasonal-btn i {
  margin-left: 20px;
  vertical-align: middle;
  font-size: 18px;
}

.tvcmsfeatured-product .oss-seasonal-btn span {
  vertical-align: middle;
}

@media (max-width: 575px) {
  .tvcmsfeatured-product .oss-seasonal-btn-wrapper {
    margin-top: 28px;
  }

  .tvcmsfeatured-product .oss-seasonal-btn {
    padding: 11px 36px;
  }
}

/* ============================================================
   OSS Footer — 3-column redesign
   ============================================================ */

/* Wrapper: full-width dark background */
.oss-footer-wrapper {
  background-color: #181a44;
  padding: 60px 0 50px;
}

/* Base typography for all footer text */
.oss-footer-wrapper,
.oss-footer-wrapper * {
  font-family: "Manrope", sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 19px;
  color: #ffffff;
  letter-spacing: 0;
}

/* Remove padding from footer text elements */
.oss-footer-wrapper p,
.oss-footer-wrapper ul,
.oss-footer-wrapper li,
.oss-footer-wrapper .tvfooter-title,
.oss-footer-wrapper .oss-footer-text,
.oss-footer-wrapper .tvfooter-logo-desc,
.oss-footer-wrapper .tvfooter-logo-title,
.oss-footer-wrapper .tvfooter-logo-short-title,
.oss-footer-wrapper #footer_sub_menu_tvfooter_category,
.oss-footer-wrapper #footer_sub_menu_tvfooter_category li,
.oss-footer-wrapper #footer_sub_menu_tvfooter_category li a,
.oss-footer-wrapper .oss-footer-account-links,
.oss-footer-wrapper .oss-footer-account-links li,
.oss-footer-wrapper .oss-footer-account-links li a,
.oss-footer-wrapper .oss-footer-contact-address,
.oss-footer-wrapper .oss-footer-contact-email {
  padding: 0 !important;
}

/* Restore icon fonts (Material Icons) */
.oss-footer-wrapper .material-icons {
  font-family: "Material Icons" !important;
}

/* 3-column flex layout */
.oss-footer-columns {
  display: flex;
  max-width: 1256px;
  margin: 0 auto;
  gap: 40px;
}

/* Column widths: 50% / 25% / 25% */
.oss-footer-col-1 {
  flex: 2 1 0;
  min-width: 0;
}

.oss-footer-col-2,
.oss-footer-col-3 {
  flex: 1 1 0;
  min-width: 0;
}

/* Reset bootstrap grid classes on col-2 inside the OSS layout */
.oss-footer-columns .oss-footer-col-2 {
  width: auto;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

/* ── Column 1: Logo + paragraphs (left-aligned) ── */
/* Override theme's text-align:center, margin:0 auto, and padding (align with other columns) */
.oss-footer-columns .oss-footer-col-1,
.oss-footer-columns .oss-footer-col-1.tvfooter-logo-block {
  text-align: left !important;
  padding-top: 0;
}

/* Align logo, cart icon, profile icon by their BOTTOM (creates shared baseline for text below) */
.oss-footer-columns .oss-footer-col-1 .tvfooter-img-block {
  min-height: 60px;
  display: flex;
  align-items: flex-end;
  margin-bottom: 20px;
  text-align: left !important;
}

.oss-footer-columns .oss-footer-col-2 .oss-footer-cart-icon {
  min-height: 60px;
  height: 60px;
  width: 32px;
  background-size: 32px 32px;
  background-position: left bottom;
  background-repeat: no-repeat;
  margin-bottom: 16px;
}

.oss-footer-columns .oss-footer-col-3 .oss-footer-icon {
  min-height: 60px;
  display: flex;
  align-items: flex-end;
  margin-bottom: 16px;
}

/* Override theme's margin:0 auto on .tvfooter-logo-desc (centers the block) */
.oss-footer-columns .oss-footer-col-1 .tvfooter-logo-desc,
.oss-footer-columns .oss-footer-col-1 .tvfooter-logo-title,
.oss-footer-columns .oss-footer-col-1 .tvfooter-logo-short-title,
.oss-footer-columns .oss-footer-col-1 .oss-footer-text {
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Override theme's .tvfooter-logo-block .tvfooter-logo-desc (color #666, font-size 14px) */
.oss-footer-columns .oss-footer-col-1 .tvfooter-logo-desc,
.oss-footer-columns .oss-footer-col-1 .tvfooter-logo-title,
.oss-footer-columns .oss-footer-col-1 .tvfooter-logo-short-title,
.oss-footer-columns .oss-footer-col-1 .oss-footer-text {
  font-size: 16px !important;
  line-height: 22px !important;
  color: #ffffff !important;
}

.oss-footer-col-1 .tvfooter-img-block img {
  max-width: 180px;
  height: auto;
}

.oss-footer-col-1 .oss-footer-text {
  margin: 0 0 8px;
}

.oss-footer-col-1 .tvfooter-logo-desc.oss-footer-text {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

/* Store contact info (address + email) moved from ps_contactinfo */
.oss-footer-col-1 .oss-footer-contact {
  margin-top: 12px;
}

.oss-footer-col-1 .oss-footer-contact-address,
.oss-footer-col-1 .oss-footer-contact-email {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 0 8px;
}

.oss-footer-col-1 .oss-footer-contact-address::before,
.oss-footer-col-1 .oss-footer-contact-email::before {
  content: "";
  display: block;
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.oss-footer-col-1 .oss-footer-contact-address::before {
  background-image: url("../img/oss-location-white.svg");
}

.oss-footer-col-1 .oss-footer-contact-email::before {
  background-image: url("../img/oss-email-white.svg");
}

.oss-footer-col-1 .oss-footer-contact-email a {
  color: #ffffff;
  text-decoration: none;
  transition: color 0.2s ease;
}

.oss-footer-col-1 .oss-footer-contact-email a:hover {
  color: #ffffff;
}

/* ── Column 2: Shopping bag icon (white version of navbar icon) + categories ── */
.oss-footer-col-2 .oss-footer-cart-icon {
  width: 32px;
  height: 32px;
  margin-bottom: 16px;
  background-image: url("../img/oss-shopping-bag-white.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* Hide the original title collapse arrow on desktop */
.oss-footer-columns .oss-footer-col-2 .tvfooter-toggle-icon-wrapper {
  display: none;
}

.oss-footer-columns .oss-footer-col-2 .tvfooter-title {
  font-weight: 400;
  margin-bottom: 12px;
}

/* Force category list visible on desktop (Bootstrap collapse hides it) */
.oss-footer-columns .oss-footer-col-2 #footer_sub_menu_tvfooter_category {
  display: block !important;
  height: auto !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

.oss-footer-columns .oss-footer-col-2 #footer_sub_menu_tvfooter_category li {
  list-style: none;
  margin-bottom: 8px;
}

.oss-footer-columns .oss-footer-col-2 #footer_sub_menu_tvfooter_category li a {
  font-size: 16px !important;
  color: #ffffff;
  text-decoration: none;
  transition: color 0.2s ease;
}

.oss-footer-columns
  .oss-footer-col-2
  #footer_sub_menu_tvfooter_category
  li
  a:hover {
  color: #ffffff;
}

/* Hide material icon bullets from categories */
.oss-footer-columns
  .oss-footer-col-2
  #footer_sub_menu_tvfooter_category
  li
  .material-icons {
  display: none;
}

/* ── Column 3: Profile icon + account links ── */
.oss-footer-col-3 .oss-footer-icon {
  margin-bottom: 16px;
}

.oss-footer-columns .oss-footer-col-2,
.oss-footer-columns .oss-footer-col-2 * {
  font-size: 16px !important;
}

.oss-footer-col-3 .oss-footer-account-links {
  list-style: none;
  padding: 8px 0 !important;
  margin: 0;
  font-size: 16px !important;
  display: flex;
  flex-direction: column;
  gap: 8px 0;
}

.oss-footer-col-3 .oss-footer-account-links li {
  margin: 0;
}

.oss-footer-col-3 .oss-footer-account-links li a {
  font-size: 16px !important;
  color: #ffffff;
  text-decoration: none;
  transition: color 0.2s ease;
}

.oss-footer-col-3 .oss-footer-account-links li a:hover {
  color: #ffffff;
}

/* Hide the original payment icons section */
.oss-footer-payment-original {
  display: none !important;
}

/* Hide other default footer elements that are replaced by OSS layout */
.oss-footer-wrapper ~ .tvfooter-logo-link-wrapper .tvfooter-storelogo-weapper {
  display: none;
}

/* ── Bottom bar: payment icons (left) + page links (right) ── */
.oss-footer-bottom-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1256px;
  margin: 24px auto 0;
  padding-top: 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.6);
}

/* Left: payment icons */
.oss-footer-bottom-payments {
  flex-shrink: 0;
}

.oss-footer-bottom-payments .tvfooter-payment-icon-wrapper {
  display: flex;
  align-items: center;
  gap: 12px;
}

.oss-footer-bottom-payments .tvfooter-payment-icon {
  display: flex;
  align-items: center;
}

.oss-footer-bottom-payments .tvfooter-payment-icon img {
  height: 24px;
  width: auto;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}

.oss-footer-bottom-payments .tvfooter-payment-icon img:hover {
  opacity: 1;
}

/* Right: page links */
.oss-footer-bottom-links {
  flex-shrink: 0;
}

.oss-footer-links-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  list-style: none;
  padding: 0;
  margin: 0;
  gap: 6px 24px;
}

.oss-footer-links-list li a {
  font-family: "Manrope", sans-serif;
  font-size: 12px;
  color: #ffffff !important;
  text-decoration: none;
  transition: color 0.2s ease;
}

.oss-footer-links-list li a:hover {
  color: #ffffffcc !important;
}

/* ── Responsive: tablet ── */
@media (max-width: 991px) {
  .oss-footer-columns {
    gap: 30px;
    padding-left: 20px;
    padding-right: 20px;
  }

  .oss-footer-wrapper {
    padding-top: 40px;
    padding-bottom: 36px;
  }

  .oss-footer-bottom-bar {
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* ── Responsive: mobile ── */
@media (max-width: 767px) {
  .oss-footer-columns {
    flex-direction: column;
    gap: 36px;
    padding-left: 20px;
    padding-right: 20px;
  }

  .oss-footer-col-1,
  .oss-footer-col-2,
  .oss-footer-col-3 {
    flex: none;
    width: 100%;
  }

  .oss-footer-wrapper {
    padding-top: 36px;
    padding-bottom: 32px;
  }

  /* Keep category list visible on mobile too */
  .oss-footer-columns .oss-footer-col-2 #footer_sub_menu_tvfooter_category {
    display: block !important;
  }

  .oss-footer-bottom-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding-left: 20px;
    padding-right: 20px;
    margin-top: 24px;
  }

  .oss-footer-links-list {
    justify-content: flex-start;
    gap: 6px 20px;
  }
}

/* ═══════════════════════════════════════════════════════════════
   OSS: Seasonal Favorites section wrapper
   ═══════════════════════════════════════════════════════════════ */
.oss-seasonal-wrapper {
  max-width: 100%;
  width: 100%;
  margin: 0 auto;
  padding: 70px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  background-color: #edebeb;
}
.oss-seasonal-wrapper > * {
  max-width: 1256px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
.oss-seasonal-wrapper .container,
.oss-seasonal-wrapper .container-fluid {
  max-width: 1256px;
  padding-left: 0;
  padding-right: 0;
  margin: 0 auto;
}
/* Kill hover shine on twoofferbanner inside seasonal wrapper */
.oss-seasonal-wrapper .tvcmstwoofferbanners-one .tvbanner-hover-wrapper {
  display: block !important;
}
.oss-seasonal-wrapper .tvcmstwoofferbanners-one .tvbanner-hover-wrapper:after,
.oss-seasonal-wrapper
  .tvcmstwoofferbanners-one
  .tvbanner-hover-wrapper:hover:after {
  display: none !important;
  content: none !important;
  width: 0 !important;
  height: 0 !important;
}

@media (max-width: 991px) {
  .oss-seasonal-wrapper {
    padding: 30px 15px;
    margin: 0 auto;
  }
}

/* ═══════════════════════════════════════════════════════════════
   OSS: Story section (below seasonal wrapper)
   ═══════════════════════════════════════════════════════════════ */
.oss-story-section {
  width: 100%;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  background-color: #273776;
}

/* ── Upper part: text + image side by side, full-width image ── */
.oss-story-upper {
  display: flex;
  gap: 0;
  width: 100%;
  margin: 0;
  padding: 0;
}
.oss-story-text {
  flex: 1 1 0;
  max-width: 628px;
  margin-left: calc((100vw - 1256px) / 2);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 114px 50px 114px 0;
  box-sizing: border-box;
}
.oss-story-image {
  flex: 1 1 0;
  min-width: 0;
}
.oss-story-label {
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 27px;
  color: #87ceeb;
  margin: 0 0 8px 0;
}
.oss-story-heading {
  font-family: "Playfair Display", serif;
  font-weight: 400;
  font-size: 46px;
  line-height: 62px;
  color: #ffffff;
  margin: 0 0 16px 0;
}
.oss-story-body {
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 24px;
  color: #ffffff;
  margin: 0 0 8px 0;
}
.oss-story-hours {
  font-family: "Manrope", sans-serif;
  font-weight: 600;
  font-size: 18px;
  line-height: 24px;
  color: #ffffff;
  margin: 0;
}
.oss-story-readmore {
  display: inline-block;
  width: fit-content;
  margin-top: 40px;
  font-size: 15px;
  color: #ffffff;
  padding: 4px 25px;
  font-weight: 400;
  letter-spacing: 0;
  cursor: pointer;
  border-radius: 3px;
  line-height: 35px;
  border: none;
  text-shadow: none;
  background-color: #13283b;
  text-decoration: none;
  font-family: "Manrope", sans-serif;
}
.oss-story-readmore:hover {
  background-color: #000000;
  color: #ffffff;
}
.oss-story-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ── Lower part: full-width image ── */
.oss-story-lower {
  width: 100%;
  line-height: 0;
  font-size: 0;
}
.oss-story-lower img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}

/* ── Responsive ── */
@media (max-width: 1300px) {
  .oss-story-text {
    margin-left: 0;
    max-width: none;
    flex: 1 1 50%;
    padding: 80px 40px;
  }
}
@media (max-width: 991px) {
  .oss-story-text {
    padding: 60px 30px;
  }
  .oss-story-label {
    font-size: 18px;
    line-height: 24px;
  }
  .oss-story-heading {
    font-size: 36px;
    line-height: 48px;
  }
  .oss-story-body,
  .oss-story-hours {
    font-size: 16px;
    line-height: 22px;
  }
}
@media (max-width: 767px) {
  .oss-story-upper {
    flex-direction: column;
  }
  .oss-story-text {
    flex: 0 0 auto;
    max-width: none;
    margin-left: 0;
    padding: 40px 20px;
  }
  .oss-story-image {
    flex: 0 0 auto;
  }
  .oss-story-label {
    font-size: 16px;
    line-height: 22px;
  }
  .oss-story-heading {
    font-size: 28px;
    line-height: 38px;
  }
  .oss-story-body,
  .oss-story-hours {
    font-size: 15px;
    line-height: 20px;
  }
}
/* ── OSS: hide empty tvcmsfooterproduct container (50px margin gap) ── */
#index #footer .tvfooter-product-box-layout {
  display: none !important;
}

/* ── OSS: PDP white background ── */
body#product,
body#product .tv-main-div {
  background-color: #ffffff !important;
}

/* ── OSS: PDP product title font size ── */
body#product .tv-product-page-content h1 {
  font-family: "Manrope", sans-serif !important;
  font-size: 36px !important;
  margin-bottom: 16px !important;
}

/* ── OSS: PDP price styling ── */
body#product .current-price .price {
  font-family: "Manrope", sans-serif !important;
  font-size: 36px !important;
  font-weight: 700 !important;
  color: #000000 !important;
}

/* ── OSS: PDP description font ── */
body#product .tvproduct-page-decs,
body#product .tvproduct-page-decs p {
  font-family: "Manrope", sans-serif !important;
  color: #000000 !important;
}

body#product .tv-product-page-content .product-prices {
  margin-bottom: 6px !important;
}

/* ── OSS: PDP hide star rating/review block ── */
body#product .tvall-product-star-icon {
  display: none !important;
}

/* ── OSS: PDP breadcrumb — hide original, show custom above h1 ── */
body#product #header nav.breadcrumb {
  display: none !important;
}

.oss-pdp-breadcrumb {
  font-family: "Manrope", sans-serif !important;
  font-size: 12px;
  color: #000000;
  margin-bottom: 10px;
  letter-spacing: 0.02em;
}

.oss-pdp-breadcrumb a {
  color: #000000;
  text-decoration: none;
}

.oss-pdp-breadcrumb a:hover {
  text-decoration: underline;
}

.oss-pdp-breadcrumb-sep,
.oss-pdp-breadcrumb-current {
  color: #000000;
}

/* ── OSS: PDP remove dashed divider before options ── */
body#product .tv-product-page-content .tvproduct-special-desc {
  border-top: none !important;
  padding-top: 0 !important;
}

/* ── OSS: PDP options section wrapper ── */
body#product .oss-pdp-options-section {
  margin-top: 20px;
  display: inline-flex;
  flex-direction: column;
  width: fit-content;
}

body#product .oss-pdp-options-section .control-label {
  font-family: "Manrope", sans-serif !important;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0;
  display: flex;
  align-items: center;
}

body#product .oss-pdp-options-section .product-variants {
  width: 100%;
  margin-bottom: 0 !important;
}

body#product .oss-pdp-options-section .product-variants-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  width: 100%;
}

body#product .oss-pdp-options-section .product-variants-item::after {
  display: none !important;
}

body#product .oss-pdp-options-section .oss-combination-dropdown-wrap {
  width: 160px;
}

body#product .oss-pdp-options-section .oss-dropdown-trigger {
  width: 100%;
  box-sizing: border-box;
}

body#product .oss-pdp-options-section .product-quantity {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  width: 100%;
}

body#product .oss-pdp-options-section .product-quantity .qty {
  margin-right: 0 !important;
  margin-bottom: 0 !important;
}

/* ── OSS: PDP combination dropdown ── */
.oss-combination-dropdown-wrap {
  position: relative;
  display: inline-block;
}

.oss-dropdown-trigger {
  background: #f0f0f0;
  border: none;
  border-radius: 20px;
  padding: 6px 16px;
  min-width: 160px;
  font-family: "Manrope", sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  color: #000;
  line-height: 1.4;
  text-align: center;
}

.oss-dropdown-trigger:hover {
  background: #e0e0e0;
}

.oss-dropdown-menu {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 4px 0;
  min-width: 140px;
  z-index: 999;
  list-style: none;
  margin: 0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.oss-combination-dropdown-wrap.open .oss-dropdown-menu {
  display: block;
}

.oss-dropdown-option {
  padding: 8px 16px;
  font-family: "Manrope", sans-serif;
  font-size: 13px;
  cursor: pointer;
  color: #000;
}

.oss-dropdown-option:hover,
.oss-dropdown-option.active {
  background: #f0f0f0;
  font-weight: 600;
}

/* ── OSS: PDP quantity (TouchSpin) ── */
body#product .oss-pdp-options-section .product-quantity .bootstrap-touchspin {
  display: inline-flex !important;
  align-items: center;
  justify-content: space-between;
  background: #f0f0f0 !important;
  border-radius: 20px !important;
  border: none !important;
  box-shadow: none !important;
  overflow: visible !important;
  padding: 0 4px;
  min-width: 160px;
}

/* Natural DOM order from TouchSpin: [- span], [+ span], [input] → reorder to [- span], [input], [+ span] */
body#product
  .oss-pdp-options-section
  .product-quantity
  .bootstrap-touchspin
  > :nth-child(1) {
  order: 1;
}
body#product
  .oss-pdp-options-section
  .product-quantity
  .bootstrap-touchspin
  > :nth-child(2) {
  order: 3;
}
body#product
  .oss-pdp-options-section
  .product-quantity
  .bootstrap-touchspin
  > :nth-child(3) {
  order: 2;
}

body#product .oss-pdp-options-section .product-quantity .btn-touchspin {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 1px 12px;
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  color: #000;
}

body#product .oss-pdp-options-section #quantity_wanted {
  background: #ffffff !important;
  border: none !important;
  border-radius: 20px !important;
  box-shadow: none !important;
  text-align: center;
  width: 48px;
  font-family: "Manrope", sans-serif;
  font-size: 13px;
  font-weight: 600;
  padding: 0 6px;
}

/* ── OSS: PDP full-width content at 1256px max ── */
body#product #left-column,
body#product #right-column {
  display: none !important;
}

body#product #content-wrapper {
  flex: 0 0 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}

body#product #wrapper > .container {
  width: 100% !important;
  max-width: 1256px !important;
}

/* ── OSS: PDP add-to-cart button ── */
body#product .product-add-to-cart .add-to-cart {
  padding: 10px 16px !important;
  font-family: "Manrope", sans-serif !important;
  text-transform: none !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

/* Hide Material Icons cart glyph */
body#product .product-add-to-cart .add-to-cart i.material-icons.shopping-cart {
  display: none !important;
}

/* Inject shopping bag SVG as content */
body#product .product-add-to-cart .add-to-cart span::before {
  content: url("../img/oss-shopping-bag-white.svg");
  display: inline-block;
  width: 28px;
  height: 28px;
  vertical-align: middle;
  margin-right: 16px;
  position: relative;
  top: -1px;
  transform: scale(1.5);
  transform-origin: center;
}

body#product .product-add-to-cart .add-to-cart span {
  font-family: "Manrope", sans-serif !important;
  text-transform: none !important;
  vertical-align: middle;
}

/* ── OSS: PDP description tabs wrapper spacing ── */
body#product .tabs.tvproduct-description-tab {
  margin-bottom: 30px !important;
  padding-bottom: 0 !important;
}

/* ── OSS: PDP description tabs ── */
body#product .tvproduct-description-tab .nav-tabs {
  border-bottom: none !important;
  font-family: "Manrope", sans-serif !important;
}

body#product .tvproduct-description-tab .nav-tabs .nav-link {
  font-family: "Manrope", sans-serif !important;
  text-transform: uppercase !important;
  border: none !important;
  border-bottom: 2px solid transparent !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 10px 0 !important;
  margin-right: 36px !important;
  color: #575757 !important;
}

body#product .tvproduct-description-tab .nav-tabs .nav-link.active,
body#product .tvproduct-description-tab .nav-tabs .nav-link:focus {
  border-bottom-color: transparent !important;
  color: #000000 !important;
  background: transparent !important;
  font-weight: 700 !important;
}

body#product .tvproduct-description-tab .tab-content {
  border: none !important;
  border-top: 1px solid #000000 !important;
  font-family: "Manrope", sans-serif !important;
  padding: 16px 0 0 0 !important;
}

/* ── OSS: PDP related products ── */
body#product .tvcmslike-next-pre-btn.tvcms-next-pre-btn {
  display: none !important;
}

body#product .tvlike-product-wrapper-box .tvcms-main-title .tvmain-title h2 {
  font-family: "Playfair Display", Georgia, serif !important;
  font-weight: 400 !important;
  font-size: 36px !important;
  text-align: left !important;
  text-transform: none !important;
}

body#product
  .tvlike-product-wrapper-box
  .tvcms-main-title
  .tvmain-title
  h2::after {
  display: none !important;
}

/* Full-width carousel stage — remove container side padding and extend stage */
body#product .tvlike-product-wrapper-box.container {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body#product .tvlike-product-wrapper-box .owl-stage-outer {
  width: 100% !important;
}

body#product .tvlike-product-wrapper-box .owl-stage {
  width: 100% !important;
  display: flex !important;
  gap: 24px !important;
}

body#product .tvlike-product-wrapper-box .owl-item {
  width: calc(25% - 18px) !important;
  flex-shrink: 0 !important;
  padding: 0 !important;
}

/* --- Related products card spacing --- */
body#product .tvlike-product-wrapper-box .tvall-product-wrapper-info-box {
  padding: 0 !important;
}
body#product .tvlike-product-wrapper-box .tvproduct-info-box-wrapper {
  padding: 0 !important;
}
body#product .tvlike-product-wrapper-box .product-description .tvproduct-name {
  padding: 0 !important;
}
body#product
  .tvlike-product-wrapper-box
  .tvproduct-name-price-wrapper
  .tvproduct-name {
  padding-bottom: 0 !important;
}
body#product .tvlike-product-wrapper-box .product-price-and-shipping {
  padding-bottom: 0 !important;
}

/* Hide star ratings */
body#product .tvlike-product-wrapper-box .tvcms-price-star-manage {
  display: none !important;
}

/* Strip card box */
body#product .tvlike-product-wrapper-box .thumbnail-container,
body#product .tvlike-product-wrapper-box .tvproduct-wrapper {
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}
body#product .tvlike-product-wrapper-box .tvproduct-wrapper:hover {
  box-shadow: none !important;
}

/* Image — fixed height to keep total section within 540px */
body#product .tvlike-product-wrapper-box .tvproduct-image {
  aspect-ratio: unset !important;
  height: 360px;
  overflow: hidden;
  position: relative;
  width: 100%;
}
body#product .tvlike-product-wrapper-box .tvproduct-image > a {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  display: block !important;
  padding: 0 !important;
  border: none !important;
  margin: 0 !important;
}
body#product
  .tvlike-product-wrapper-box
  .tvproduct-image
  img.tvproduct-defult-img {
  width: 100% !important;
  height: 100% !important;
  object-fit: fill !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Category label */
body#product .tvlike-product-wrapper-box .tvproduct-cat-name {
  font-family: "Manrope", sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  color: #575757 !important;
  letter-spacing: 0 !important;
  line-height: 17px !important;
}

/* Product title */
body#product .tvlike-product-wrapper-box .tvproduct-name h6,
body#product .tvlike-product-wrapper-box .tvproduct-name .product-title {
  font-family: "Manrope", sans-serif !important;
  font-weight: 400 !important;
  font-size: 16px !important;
  color: #000000 !important;
  letter-spacing: 0 !important;
  line-height: 24px !important;
}

/* Price */
body#product .tvlike-product-wrapper-box .price,
body#product .tvlike-product-wrapper-box .regular-price {
  font-family: "Manrope", sans-serif !important;
  font-weight: 700 !important;
  font-size: 22px !important;
  color: #000000 !important;
  letter-spacing: 0 !important;
  line-height: 30px !important;
}

/* Tablet/Mobile: 2 columns */
@media (max-width: 991px) {
  body#product .tvlike-product-wrapper-box .owl-item {
    width: calc(50% - 12px) !important;
  }
}

/* ── OSS: PDP product image layout — thumbnails below main image ── */
body#product .product-1 .tv-product-page-image {
  display: flex;
  flex-direction: column;
}

/* True parent of both .images-container and .tvvertical-slider on the server */
body#product .tv-product-page-image .page-contents {
  display: flex !important;
  flex-direction: column !important;
  width: 100% !important;
}

body#product .product-1 .images-container {
  width: 100% !important;
  max-width: 100% !important;
  order: 1;
}

/* Main image: full width, fills available height */
body#product .product-1 .product-cover {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  flex: none;
  padding: 0 !important;
}

body#product .product-1 .tvproduct-image-slider {
  aspect-ratio: 3 / 4;
  width: 100%;
  max-height: 540px;
}

/* Hide zoom overlay */
body#product .product-1 .tvproduct-image-slider .layer {
  display: none !important;
}

/* zoomContainer is appended to body, not inside .product-1 */
body#product .zoomContainer {
  display: none !important;
}

body#product .product-1 .tvproduct-image-slider img.js-qv-product-cover {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  max-height: unset !important;
  display: block;
}

/* Thumbnails: full width horizontal strip below main image */
body#product .product-1 .tvvertical-slider {
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
  padding: 0 !important;
  margin-top: 8px;
  order: 2;
}

/* Hide ThemeVolty's original vertical arrows */
body#product .product-1 .tvvertical-slider .arrows {
  display: none !important;
}

/* Hide thumbnails until our horizontal reinit completes */
body#product
  .product-1
  .tvvertical-slider:not(.oss-thumbs-ready)
  .product-images {
  opacity: 0;
  pointer-events: none;
}

body#product .product-1 .tvvertical-slider.oss-thumbs-ready .product-images {
  opacity: 1;
  transition: opacity 0.15s ease;
}

/* Core slick CSS — tvcmsblog.css provides these globally but is not loaded
   on PDP on staging (no blog hooks on that page). */
body#product .product-1 .tvvertical-slider .product-images .slick-list {
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0;
}
body#product .product-1 .tvvertical-slider .product-images .slick-track {
  display: block;
}
body#product .product-1 .tvvertical-slider .product-images .slick-track::after {
  content: "";
  display: table;
  clear: both;
}
body#product .product-1 .tvvertical-slider .product-images .slick-slide {
  float: left;
  display: none;
}
body#product .product-1 .tvvertical-slider .product-images.slick-initialized .slick-slide {
  display: block;
}

/* Thumbnail nav arrows */
body#product .product-1 .tvvertical-slider {
  position: relative;
}
body#product .product-1 .oss-thumb-prev,
body#product .product-1 .oss-thumb-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  width: 28px;
  height: 28px;
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid #ccc;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  line-height: 1;
  color: #333;
  padding: 0;
  transition: background 0.15s;
}
body#product .product-1 .oss-thumb-prev:hover,
body#product .product-1 .oss-thumb-next:hover {
  background: #fff;
  border-color: #999;
}
body#product .product-1 .oss-thumb-prev {
  left: 0;
}
body#product .product-1 .oss-thumb-next {
  right: 0;
}
body#product .product-1 .oss-thumb-prev.slick-disabled,
body#product .product-1 .oss-thumb-next.slick-disabled {
  opacity: 0;
  pointer-events: none;
}

body#product .product-1 .tvvertical-slider .thumb-container {
  margin: 0 !important;
  aspect-ratio: 3 / 4;
  overflow: hidden;
}

body#product .product-1 .tvvertical-slider img.thumb {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
}

/* ── OSS: Hide sticky bottom bar on PDP ── */
body#product .tvfooter-product-sticky-bottom {
  display: none !important;
}

/* ── OSS: PDP info rows (below cart button) ── */
body#product .oss-pdp-info-rows {
  display: flex;
  flex-direction: column;
  margin-top: 0 !important;
  padding-top: 56px;
  clear: both;
}

body#product .oss-pdp-info-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 0 3px;
  border-bottom: 1px solid #000;
  font-family: "Manrope", sans-serif !important;
  font-size: 14px;
  font-weight: 400;
  color: #000;
}

body#product .oss-pdp-info-row__icon {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

/* ── OSS: PDP qty spinner icons (buttons moved out of .input-group-btn-vertical) ── */
body#product .bootstrap-touchspin .touchspin-up:after {
  content: "\e145" !important;
}

body#product .bootstrap-touchspin .touchspin-down:after {
  content: "\e15b" !important;
}

body#product .bootstrap-touchspin i.material-icons {
  top: 0.0625rem;
  left: 0.1875rem;
  font-size: 0.9375rem;
}

body#product .oss-pdp-info-row__icon img {
  width: 26px !important;
  height: 26px !important;
}

body#product .oss-pdp-info-row__text {
  font-family: "Manrope", sans-serif !important;
  line-height: 1.4;
}

/* ── OSS: PDP payment icons section ── */
body#product .oss-pdp-payment-icons {
  margin-top: 24px;
  clear: both;
}

body#product .oss-pdp-payment-icons .tvfooter-payment-icon-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  align-items: center;
  margin: 0;
  padding: 0;
}

body#product .oss-pdp-payment-icons .tvfooter-payment-icon {
  padding: 0 !important;
  margin: 0 !important;
}

body#product .oss-pdp-payment-icons .tvfooter-payment-icon img.img-responsive {
  padding: 0 !important;
  margin: 0 !important;
  display: block;
}

/* ── OSS: PLP toolbar — filter left, sort right ── */

/* Flatten the three-column grid into a single flex row */
body#category #js-product-list-top.products-selection,
body#new-products #js-product-list-top.products-selection,
body#best-sales #js-product-list-top.products-selection,
body#prices-drop #js-product-list-top.products-selection,
body#search #js-product-list-top.products-selection,
body#manufacturer #js-product-list-top.products-selection,
body#supplier #js-product-list-top.products-selection {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  padding: 12px 0 !important;
  margin-bottom: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
}

/* ── OSS: PLP product grid top spacing ── */
body#category #js-product-list .products,
body#new-products #js-product-list .products,
body#best-sales #js-product-list .products,
body#prices-drop #js-product-list .products,
body#search #js-product-list .products,
body#manufacturer #js-product-list .products,
body#supplier #js-product-list .products {
  padding-top: 16px !important;
}

/* Hide: grid/list toggles, product count, "Sort by:" label, right panel btn */
.tv-grid-list-all-wrapper,
.tv-total-product,
.sort-by,
.tvcms-right-column-wrapper {
  display: none !important;
}

/* Remove Bootstrap column widths from the two remaining sections */
.tv-left-search-totle-product {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  padding: 0 !important;
}

.tvall-page-shortby {
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  padding: 0 !important;
  margin-left: auto !important;
}

/* ── Filter button (direct child only — avoids matching the heading inside #search_filters) ── */
.tv_search_filter_wrapper > .tvleft-right-title-wrapper {
  padding: 0 !important;
  background: none !important;
  border: none !important;
  cursor: pointer;
  display: flex !important;
  align-items: center !important;
}

/* Hide the existing polygon SVG and label text */
.tv_search_filter_wrapper > .tvleft-right-title-wrapper .tvfilter-top,
.tv_search_filter_wrapper > .tvleft-right-title-wrapper .tvproduct-top-filter-name,
.tv_search_filter_wrapper > .tvleft-right-title-wrapper i.material-icons {
  display: none !important;
}

/* Show uploaded FILTER.svg — natural size 83×26 */
.tv_search_filter_wrapper > .tvleft-right-title-wrapper::before {
  content: '';
  display: block;
  width: 83px;
  height: 26px;
  background-image: url('../img/FILTER.svg');
  background-repeat: no-repeat;
  background-size: 83px 26px;
  background-position: center left;
}

/* Hide the theme's "Filter" heading row inside the dropdown (duplicate of our button) */
#search_filters_wrapper .tvleft-right-title-wrapper {
  display: none !important;
}

/* Force facets to single-column inside the dropdown regardless of Bootstrap grid classes */
#search_filters_wrapper .tvsearch-filter-content-wrapper {
  display: block !important;
}
#search_filters_wrapper .facet {
  width: 100% !important;
  max-width: 100% !important;
  flex: 0 0 100% !important;
  padding: 0 !important;
}

/* ── Filter button wrapper: positioning context for the dropdown ── */
.tv_search_filter_wrapper {
  position: relative;
}

/* ── Filter dropdown panel (anchored inside .tv_search_filter_wrapper) ── */
#search_filters_wrapper {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  width: 300px;
  z-index: 9999;
  background: #fff;
  border: 1px solid #e8e6e4;
  border-radius: 8px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);
  padding: 0;
  margin: 0;
}

/* ── Filter dropdown content ── */

/* Reset theme box styles; single-column block layout */
#search_filters_wrapper #search_filters {
  box-shadow: none !important;
  margin: 0 !important;
  padding: 8px 0 !important;
  display: block !important;
  columns: 1 !important;
}

/* Hide the redundant "Filter By" heading at top */
#search_filters_wrapper #search_filters > p.h6 {
  display: none !important;
}

/* Each facet group: full width, separated by a light rule */
#search_filters_wrapper #search_filters .facet {
  box-shadow: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border-bottom: 1px solid #f0eeec !important;
  float: none !important;
  width: 100% !important;
}

#search_filters_wrapper #search_filters .facet:last-child {
  border-bottom: none !important;
}

/* Hide the static non-clickable desktop title — use the accordion toggle instead */
#search_filters_wrapper #search_filters .facet > p.h6.hidden-sm-down {
  display: none !important;
}

/* Show the accordion toggle row (normally hidden on desktop via hidden-md-up) */
#search_filters_wrapper #search_filters .facet .title {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 12px 20px !important;
  cursor: pointer !important;
  user-select: none !important;
}

#search_filters_wrapper #search_filters .facet .title .h6 {
  font-family: 'Manrope', sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  color: #000 !important;
  margin: 0 !important;
}

/* Chevron icons inside the accordion toggle */
#search_filters_wrapper #search_filters .facet .title .collapse-icons .material-icons {
  font-size: 18px !important;
  color: #666 !important;
}

/* Show add icon when collapsed, remove icon when expanded */
#search_filters_wrapper #search_filters .facet .title .collapse-icons .remove {
  display: none !important;
}
#search_filters_wrapper #search_filters .facet .title[aria-expanded="true"] .collapse-icons .add {
  display: none !important;
}
#search_filters_wrapper #search_filters .facet .title[aria-expanded="true"] .collapse-icons .remove {
  display: inline !important;
}

/* Collapsed content — Bootstrap manages display; ensure no height clipping */
#search_filters_wrapper #search_filters .facet .collapse {
  height: auto !important;
  overflow: visible !important;
}

/* Expanded content padding */
#search_filters_wrapper #search_filters .facet .collapse.in,
#search_filters_wrapper #search_filters .facet .collapse.show {
  padding: 0 20px 12px !important;
}

/* Force single-column option list (override any multi-column theme rule) */
#search_filters_wrapper #search_filters .facet ul {
  columns: 1 !important;
  column-count: 1 !important;
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Each filter option: full-width row */
#search_filters_wrapper #search_filters .facet-label {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  font-family: 'Manrope', sans-serif !important;
  font-size: 13px !important;
  color: #333 !important;
  padding: 5px 0 !important;
  white-space: normal !important;
}

/* Let the link text wrap and fill available space */
#search_filters_wrapper #search_filters .facet-label a {
  width: auto !important;
  flex: 1 !important;
  overflow: visible !important;
  text-overflow: unset !important;
  white-space: normal !important;
  color: #333 !important;
}

/* Count badge */
#search_filters_wrapper #search_filters .facet-label .magnitude {
  color: #999 !important;
  font-size: 11px !important;
  margin-left: 4px !important;
}

/* Clear-all button */
#search_filters_wrapper #search_filters .clear-all-wrapper {
  display: block !important;
  padding: 8px 20px !important;
}

/* Hide mobile-only OK button */
#search_filter_controls {
  display: none !important;
}

/* ── Sort-by button ── */
.tvall-page-shortby .sort-by-row {
  margin: 0 !important;
  flex-wrap: nowrap !important;
}

.products-sort-order.dropdown {
  width: auto !important;
  padding: 0 !important;
}

.products-sort-order .select-title {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 600 !important;
  font-size: 12px !important;
  color: #000 !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
  background-color: #efeceb !important;
  border: none !important;
  border-radius: 50px !important;
  padding: 7px 16px !important;
  cursor: pointer;
}

/* Prepend "Sort by: " with a non-breaking space before the label */
.products-sort-order .select-title::before {
  content: 'Sort by:\00a0';
}

/* Hide the material icon chevron */
.products-sort-order .select-title .material-icons {
  display: none !important;
}

/* ── OSS: PLP — hide breadcrumb ── */
body#category nav.breadcrumb,
body#new-products nav.breadcrumb,
body#best-sales nav.breadcrumb,
body#prices-drop nav.breadcrumb,
body#search nav.breadcrumb,
body#manufacturer nav.breadcrumb,
body#supplier nav.breadcrumb {
  display: none !important;
}

/* ── OSS: PLP — hide subcategory cards block ── */
body#category .tv-category-main-div {
  display: none !important;
}

/* ── OSS: PLP — hide "Our latest news" blog block in left column ── */
body#category .tvcmsblog-event.tvcmsblog-left-side,
body#new-products .tvcmsblog-event.tvcmsblog-left-side,
body#best-sales .tvcmsblog-event.tvcmsblog-left-side,
body#prices-drop .tvcmsblog-event.tvcmsblog-left-side,
body#search .tvcmsblog-event.tvcmsblog-left-side,
body#manufacturer .tvcmsblog-event.tvcmsblog-left-side,
body#supplier .tvcmsblog-event.tvcmsblog-left-side {
  display: none !important;
}

/* ── OSS: PLP content area max-width ── */
body#category #content-wrapper,
body#new-products #content-wrapper,
body#best-sales #content-wrapper,
body#prices-drop #content-wrapper,
body#search #content-wrapper,
body#manufacturer #content-wrapper,
body#supplier #content-wrapper {
  max-width: 1256px !important;
}

/* Remove border/background from the toolbar section wrapper so it stays flush */
body#category .tvcenter-block-product-section,
body#new-products .tvcenter-block-product-section,
body#best-sales .tvcenter-block-product-section,
body#prices-drop .tvcenter-block-product-section,
body#search .tvcenter-block-product-section,
body#manufacturer .tvcenter-block-product-section,
body#supplier .tvcenter-block-product-section {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
}

/* ── OSS: White background on all PLP pages ── */
body#category .tv-main-div,
body#new-products .tv-main-div,
body#best-sales .tv-main-div,
body#prices-drop .tv-main-div,
body#search .tv-main-div,
body#manufacturer .tv-main-div,
body#supplier .tv-main-div {
  background-color: #fff !important;
}

/* ── OSS: Category sidebar icons (::before pseudo-elements) ── */
.tv-leftcategory-wrapper .category-sub-menu > li > a {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.tv-leftcategory-wrapper .category-sub-menu > li > a::before {
  content: '' !important;
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  flex-shrink: 0 !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="sweaters"]::before {
  background-image: url('../img/sweaters.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="fleece"]::before {
  background-image: url('../img/fleece.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="hoodies"]::before {
  background-image: url('../img/hoodies.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="t-shirts"]::before {
  background-image: url('../img/t-shirts.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="rain-jackets"]::before {
  background-image: url('../img/rain-jackets.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="rain-poncho"]::before {
  background-image: url('../img/rain-poncho.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="rain-coats"]::before {
  background-image: url('../img/rain-coats.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="softshell"]::before {
  background-image: url('../img/softshell.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="shell-jackets"]::before {
  background-image: url('../img/shell-jackets.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="winter-jackets"]::before {
  background-image: url('../img/winter-jackets.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="down-coats"]::before {
  background-image: url('../img/down-coats.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="down-vests"]::before {
  background-image: url('../img/down-wests.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="down-wests"]::before {
  background-image: url('../img/down-wests.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="pants"]::before {
  background-image: url('../img/pants.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="shorts"]::before {
  background-image: url('../img/shorts.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="accessories"]::before {
  background-image: url('../img/accessories.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="jewellery"]::before {
  background-image: url('../img/jewellery.svg') !important;
}
.tv-leftcategory-wrapper .category-sub-menu > li > a[href*="socks"]::before {
  background-image: url('../img/socks.svg') !important;
}

/* ── OSS: Category tree sidebar (ps_categorytree / .block-categories) ── */
.block-categories {
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;
}

.tv-leftcategory-wrapper {
  border-top: none !important;
}

.block-categories .category-top-menu > li.tv-category-title-wrapper a {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-weight: 400 !important;
  font-size: 32px !important;
  line-height: 43px !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  text-transform: none !important;
}

/* ── Hide active filters bar below the toolbar ── */
#js-active-search-filters {
  display: none !important;
}

/* ── OSS: Subcategory sidebar text styles ── */
.block-categories .category-top-menu.tvside-panel-dropdown .category-sub-menu li > a {
  font-family: 'Manrope', sans-serif !important;
  font-weight: 400 !important;
  font-size: 12px !important;
  color: #000000 !important;
  letter-spacing: 0 !important;
}

/* ── OSS: PLP sidebar — parent label + active/dim states (paired with front.js) ── */
.block-categories .tv-category-title-wrapper {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
}

.block-categories .category-top-menu > li.tv-category-title-wrapper a.tv-parent-category-label,
.block-categories .category-top-menu > li.tv-category-title-wrapper a.tv-parent-category-label:hover,
.block-categories .category-top-menu > li.tv-category-title-wrapper a.tv-parent-category-label:focus,
.block-categories .category-top-menu > li.tv-category-title-wrapper a.tv-parent-category-label:active {
  flex-basis: 100% !important;
  display: block !important;
  font-family: 'Manrope', sans-serif !important;
  font-weight: 400 !important;
  font-size: 12px !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
  color: #000000 !important;
  text-decoration: none !important;
  margin-bottom: 2px !important;
}

.block-categories.has-active-sub .category-sub-menu > li:not(.is-active) > a {
  opacity: 0.35;
  font-weight: 400 !important;
}
.block-categories.has-active-sub .category-sub-menu > li.is-active > a {
  opacity: 1;
  font-weight: 700 !important;
  color: #000 !important;
}

/* ── OSS: PDP hide wishlist, compare, social share, size guide, reassurance, stock bar ── */
body#product .tvproduct-wishlist,
body#product .tvcompare-wrapper,
body#product .tvproduct-wishlist-compare,
body#product .product-additional-info,
body#product .tvproduct-size-custom,
body#product #block-reassurance,
body#product .tvproduct-stock-social {
  display: none !important;
}
