/* ============================================================
   WCL — West Coast Liquor  •  Global Reset & Base Styles
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Instrument+Sans:wght@400..700&display=swap');

:root {
  --wcl-font-sans: 'Instrument Sans', sans-serif;
}

/* ---- Minimal Reset ---- */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
  margin: 0 !important;
  padding: 0 !important;
  background-color: #FFFFFF !important;
}

body {
  margin: 0 !important;
  padding: 0 !important;
  background-color: #FFFFFF !important;
  color: #2D2926;
  font-family: var(--wcl-font-sans);
  line-height: 1.5;
  overflow-x: hidden;
}

/* Hide any ST_REGIS / legacy global header/footer that may render */
.outer>header,
.outer>footer,
.outer>.customContainer,
.outer>nav,
.headerMain,
.footerMain,
.headerTopBar {
  display: none !important;
}

/* ---- Typography Reset & Utilities ---- */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
  font-weight: inherit;
  font-size: inherit;
}

p {
  margin: 0;
  padding: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

ul,
ol {
  list-style: none;
  margin: 0;
  padding: 0;
}

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

button {
  border: none;
  background: none;
  cursor: pointer;
  font: inherit;
  color: inherit;
  padding: 0;
}

/* ---- Common Reusable Classes ---- */
.wcl-container {
  /* Figma: full width with the header gutters (36px at 1440 and above, at least 16px on phones), no centred box */
  width: calc(100% - 2 * clamp(16px, 2.5vw, 36px));
  margin-left: auto;
  margin-right: auto;
}

.wcl-font-body {
  font-family: var(--wcl-font-sans);
}

.wcl-title-bebas {
  font-family: 'Bebas Neue', sans-serif;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.wcl-title-oswald {
  font-family: 'Bebas Neue', sans-serif;
  text-transform: uppercase;
}

.wcl-text-muted {
  color: #6B7280;
}

.wcl-text-secondary {
  color: #4B5563;
}

.wcl-text-dark {
  color: #2D2926;
}

.wcl-text-dark-body {
  color: #374151;
}

.wcl-card {
  background-color: #FFFFFF;
  border-radius: 14px;
  border: 1px solid #E5E7EB;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.wcl-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
}

.wcl-btn-pill-primary,
a.wcl-btn-pill-primary,
button.wcl-btn-pill-primary {
  background-color: #1E4E8C;
  color: #FFFFFF !important;
  border: none;
  border-radius: 9999px;
  padding: 12px 32px;
  font-family: var(--wcl-font-sans);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  box-shadow: 0 4px 14px rgba(30, 78, 140, 0.25);
}

.wcl-btn-pill-primary:hover,
a.wcl-btn-pill-primary:hover,
button.wcl-btn-pill-primary:hover {
  background-color: #153A6B;
  color: #FFFFFF !important;
  text-decoration: none !important;
  box-shadow: 0 6px 18px rgba(30, 78, 140, 0.35);
  transform: translateY(-1px);
}

.wcl-btn-pill-primary:active,
a.wcl-btn-pill-primary:active,
button.wcl-btn-pill-primary:active {
  transform: translateY(0) scale(0.98);
}

/* ---- Default display for layout tags ----
   :where() = zero specificity: the old "#wcl-root section" beat every page class (About story
   grid broke when About was opened from Home, which renders inside #wcl-root) */
:where(.wcl-root, #wcl-root) :where(header, nav, section, footer) {
  display: block;
}

/* ---- #wcl-root Base & Swiper Overrides ---- */
#wcl-root {
  width: 100%;
  min-height: 100vh;
  background-color: #FFFFFF;
  color: #2D2926;
  /* clip, not hidden: hidden makes #wcl-root a second vertical scroller */
  overflow-x: clip;
  font-family: var(--wcl-font-sans);
}

/* hero slider only: on #wcl-root these forced every carousel card (marketplace opened
   from a home store button) to full width */
#wcl-hero .swiper {
  width: 100% !important;
  height: 100% !important;
}

#wcl-hero .swiper-slide {
  flex-shrink: 0 !important;
  width: 100% !important;
  height: auto !important;
}

/* ---- Scrollbar Styling ---- */
::-webkit-scrollbar {
  width: 6px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
}

::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #555;
}

/* ============================================================
   Locations Page Styles
   ============================================================ */

/* ---- Page Layout ---- */
.wcl-locations-page {
  font-family: var(--wcl-font-sans);
}

.wcl-locations-header {
  border-bottom: 1px solid #E5E7EB;
  z-index: 50;
  flex-shrink: 0;
}

.wcl-locations-header-inner {
  width: 95%;
  max-width: 1368px;
  margin: 0 auto;
  padding: 16px 0;
}

/* ---- Brand Logo ---- */
.wcl-brand-logo {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  color: #2D2926;
}

.wcl-brand-title {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
}

.wcl-brand-divider {
  gap: 6px;
  width: 100%;
  margin-top: 3px;
}

.wcl-brand-line {
  flex: 1;
  height: 1px;
  background-color: #111111;
}

.wcl-brand-subtitle {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #2D2926;
  white-space: nowrap;
}

/* ---- Navigation ---- */
.wcl-nav {
  gap: 32px;
}

.wcl-nav-link {
  font-family: var(--wcl-font-sans);
  font-size: 15px;
  font-weight: 500;
  color: #4B5563;
  transition: color 0.2s ease;
}

.wcl-nav-link:hover {
  color: #2D2926 !important;
}

.wcl-nav-link--active {
  font-weight: 700;
  color: #2D2926;
}

/* ---- Sidebar ---- */
.wcl-sidebar {
  width: 380px;
  max-width: 400px;
  flex-shrink: 0;
  padding: 36px 28px 40px 36px;
  overflow-y: auto;
}

.wcl-sidebar-title {
  font-family: var(--wcl-font-sans);
  font-size: 24px;
  font-weight: 700;
  color: #2D2926;
  margin-bottom: 24px;
  letter-spacing: -0.01em;
}

/* ---- Store Card ---- */
.wcl-store-cards {
  gap: 16px;
}

.wcl-store-card {
  border: 1px solid #E5E7EB;
  border-radius: 20px;
  padding: 24px 24px 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  cursor: pointer;
}

.wcl-store-card:hover {
  border-color: #D1D5DB;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
}

.wcl-store-card--selected {
  border-color: #1D4F91 !important;
  box-shadow: 0 8px 24px rgba(29, 79, 145, 0.12) !important;
}

.wcl-store-name {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 26px;
  font-weight: 400;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #2D2926;
  margin-bottom: 4px;
  line-height: 1.1;
}

.wcl-store-tagline {
  font-size: 13px;
  color: #4B5563;
  font-weight: 400;
  margin-bottom: 16px;
}

.wcl-store-address {
  gap: 8px;
  margin-bottom: 20px;
  color: #1F2937;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
}

.wcl-store-address svg {
  flex-shrink: 0;
  margin-top: 2px;
}

.wcl-store-distance {
  font-size: 13px;
  color: #4B5563;
  font-weight: 500;
}

/* ---- View Store Button ---- */
.wcl-btn-view-store {
  background-color: #1D4F91;
  color: #FFFFFF;
  border: none;
  border-radius: 9999px;
  padding: 10px 32px;
  font-size: 13.5px;
  font-weight: 600;
  font-family: var(--wcl-font-sans);
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(29, 79, 145, 0.35);
  transition: background-color 0.2s ease, transform 0.15s ease;
}

.wcl-btn-view-store:hover {
  background-color: #163E75;
  transform: scale(1.02);
}

/* ---- Map Container ---- */
.wcl-map-container {
  flex: 1;
  background-color: #EDE7D6;
}

/* ---- Map Loading ---- */
.wcl-map-loading {
  background-color: #EFE8D6;
}

.wcl-map-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid #E5E7EB;
  border-top-color: #1D4F91;
  border-radius: 50%;
  animation: wcl-spin 0.8s linear infinite;
}

.wcl-map-loading-text {
  font-family: var(--wcl-font-sans);
  font-size: 14px;
  color: #6B7280;
  font-weight: 500;
}

/* ---- Map Nav Control ---- */
.wcl-map-nav {
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(30, 30, 30, 0.45);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: 9999px;
  gap: 1px;
  padding: 3px 4px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
  z-index: 10;
}

.wcl-map-nav-btn {
  width: 28px;
  height: 28px;
  border-radius: 9999px;
  background-color: transparent;
  border: none;
  color: #FFFFFF;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.wcl-map-nav-btn:hover {
  background-color: rgba(255, 255, 255, 0.18);
}

/* ---- Map Pins ---- */
.wcl-pin-wrapper {
  cursor: pointer;
  transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.2));
}

.wcl-pin-wrapper--active {
  transform: scale(1.1);
}

.wcl-pin-wrapper--selected {
  z-index: 20;
  filter: drop-shadow(0 6px 20px rgba(29, 79, 145, 0.4));
}

.wcl-pin-wrapper--hovered {
  z-index: 15;
}

.wcl-pin-pulse {
  position: absolute;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  border: 2px solid rgba(29, 79, 145, 0.25);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -55%);
  animation: wcl-pulse-ring 2.5s ease-in-out infinite;
  pointer-events: none;
}

.wcl-pin-glow {
  position: absolute;
  width: 84px;
  height: 84px;
  border-radius: 50%;
  background-color: rgba(29, 79, 145, 0.08);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -55%);
  pointer-events: none;
}

.wcl-pin-badge {
  width: 66px;
  height: 66px;
  border-radius: 50%;
  background-color: #FFFFFF;
  border: 1.5px solid rgba(0, 0, 0, 0.08);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04);
}

.wcl-pin-badge--active {
  width: 72px;
  height: 72px;
}

.wcl-pin-badge--hovered {
  border: 2px solid rgba(29, 79, 145, 0.4);
}

.wcl-pin-badge--selected {
  border: 3px solid #1D4F91;
  box-shadow: 0 0 0 4px rgba(29, 79, 145, 0.12), inset 0 1px 2px rgba(0, 0, 0, 0.04);
}

.wcl-pin-brand-name {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #2D2926;
  line-height: 1;
  text-align: center;
}

.wcl-pin-divider {
  gap: 3px;
  margin-top: 3px;
}

.wcl-pin-divider-line {
  width: 10px;
  height: 0.8px;
  background-color: #333333;
  display: block;
}

.wcl-pin-brand-sub {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 4.5px;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: #333333;
  line-height: 1;
  white-space: nowrap;
}

.wcl-pin-pointer {
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 10px solid #FFFFFF;
  margin-top: -2px;
  position: relative;
  z-index: 2;
}

.wcl-pin-pointer--selected {
  border-top-color: #1D4F91;
}

.wcl-pin-pointer-inner {
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 8px solid #FFFFFF;
  margin-top: -12px;
  position: relative;
  z-index: 3;
}

/* ---- Animations ---- */
@keyframes wcl-pulse-ring {

  0%,
  100% {
    transform: translate(-50%, -55%) scale(1);
    opacity: 1;
  }

  50% {
    transform: translate(-50%, -55%) scale(1.35);
    opacity: 0;
  }
}

@keyframes wcl-spin {
  to {
    transform: rotate(360deg);
  }
}

/* ============================================================
   WCL Header Styles
   ============================================================ */
.wcl-header {
  z-index: 50;
  border-bottom: 1px solid #EFEFEF;
}

.wcl-header-inner {
  /* Figma: full-width bar, logo and links at the screen edges */
  width: 100%;
  min-height: 122px;
  padding: 29px clamp(16px, 2.5vw, 36px) 34px;
}

.wcl-header-logo {
  display: block;
  height: 59px;
  width: auto;
}

.wcl-header .wcl-nav {
  gap: 38px;
  /* centres the links on y=52 next to the taller logo */
  margin-top: 6.5px;
}

.wcl-header .wcl-nav-link {
  font-family: var(--wcl-font-sans);
  font-size: 16px;
  font-weight: 500;
  line-height: 19.5px;
  color: #2D2926;
  position: relative;
  padding: 6px 0;
}

.wcl-header .wcl-nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  border-radius: 2px;
  background-color: #1D4F91;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.25s ease;
}

.wcl-header .wcl-nav-link:hover::after {
  transform: scaleX(1);
}

/* current page: brand blue, semibold, no underline */
.wcl-header .wcl-nav-link--active {
  /* Figma: the current page looks like the other links */
  font-weight: 500;
  color: #2D2926;
}

.wcl-header .wcl-nav-link--active::after {
  display: none;
}

@media (max-width: 575px) {
  .wcl-header-inner {
    min-height: 72px;
    padding: 12px 16px;
  }

  .wcl-header-logo {
    height: 34px;
  }

  .wcl-header .wcl-nav {
    gap: 18px;
    margin-top: 0;
  }

  .wcl-header .wcl-nav-link {
    font-size: 14px;
    line-height: 20px;
    /* 44px tap target */
    padding: 12px 0;
    min-width: 44px;
    text-align: center;
  }

  .wcl-header-inner > a {
    display: block;
    padding: 5px 0;
  }
}

/* ============================================================
   WCL Store Header (marketplace, listing, product, cart)
   ============================================================ */
.wcl-ph {
  /* above page content; modals use 1050+ */
  z-index: 1020;
  background-color: #FFFFFF;
  border-bottom: 1px solid #E5E5E5;
  font-family: var(--wcl-font-sans);
}

/* the category mega menu drops from the bottom of the product header; the modal is
   portalled to <body>, so this lives on :root and both read the same number */
:root {
  --wcl-header-h: 116px;
}

@media (max-width: 575px) {
  :root {
    --wcl-header-h: 124px;
  }
}

.wcl-ph-inner {
  /* Figma 9300:2267: 116 tall, logo x37, same 36px gutters as the home header */
  width: 100%;
  min-height: var(--wcl-header-h);
  padding: 0 clamp(16px, 2.5vw, 36px);
  gap: 24px;
}

.wcl-ph-left {
  /* Figma: logo ends x233, picker starts x276 */
  gap: 42px;
}

.wcl-ph-logo {
  display: block;
  height: 59px;
  width: auto;
}

.wcl-ph-store {
  min-width: 190px;
  height: 61px;
  padding: 0 14px;
  gap: 12px;
  background-color: #FFFFFF;
  border: 1px solid #E6E6E6;
  border-radius: 8px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.wcl-ph-store:hover,
.wcl-ph-store[aria-expanded="true"] {
  border-color: #C9D3E0;
  box-shadow: 0 4px 14px rgba(17, 24, 39, 0.06);
}

.wcl-ph-store-name {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  color: #2D2926;
}

.wcl-ph-store-hours {
  font-size: 11px;
  line-height: 1.3;
  color: #4B5563;
  margin-top: 2px;
}

.wcl-ph-store-menu {
  top: calc(100% + 6px);
  left: 0;
  min-width: 240px;
  padding: 6px;
  background-color: #FFFFFF;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  box-shadow: 0 16px 36px rgba(17, 24, 39, 0.12);
}

.wcl-ph-store-option {
  padding: 10px 12px;
  border-radius: 8px;
  transition: background-color 0.15s ease;
}

.wcl-ph-store-option:hover,
.wcl-ph-store-option--active {
  background-color: #F3F4F6;
}

.wcl-ph-store-option-name {
  font-size: 14px;
  font-weight: 700;
  color: #2D2926;
}

.wcl-ph-store-option-meta {
  font-size: 12px;
  color: #6B7280;
}

.wcl-ph-nav {
  /* Figma 9300:2267: categories sit next to the icons on the right, not centred
     (nav x527..1011, icons x1085, button ends x1403) */
  margin-left: auto;
  gap: 23px;
}

/* Figma: medium weight, 16px */
.wcl-ph-nav-link {
  position: relative;
  padding: 6px 0;
  font-size: 16px;
  font-weight: 500;
  color: #2D2926;
  white-space: nowrap;
}

.wcl-ph-nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  border-radius: 2px;
  background-color: #1D4F91;
  transform: scaleX(0);
  transition: transform 0.25s ease;
}

.wcl-ph-nav-link:hover::after,
.wcl-ph-nav-link--active::after {
  transform: scaleX(1);
}

.wcl-ph-nav-link--active {
  font-weight: 700;
}

.wcl-ph-actions {
  /* 1011 -> 1085 nav-to-icon gap in Figma */
  margin-left: 24px;
  gap: 22px;
}

.wcl-ph-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 2px;
  color: #2D2926;
  transition: opacity 0.2s ease;
}

.wcl-ph-icon:hover {
  color: #2D2926;
  opacity: 0.65;
}

.wcl-ph-logout {
  font-size: 14px;
  font-weight: 700;
}

.wcl-ph-badge {
  position: absolute;
  top: -6px;
  right: -9px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9999px;
  background-color: #E5372B;
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 700;
  line-height: 18px;
  text-align: center;
}

.wcl-ph-wholesale {
  /* Figma: 229x52 pill (label 155 + 37 padding each side), ends 36px from the right edge */
  height: 52px;
  padding: 0 37px;
  border-radius: 9999px;
  background-color: #1D4F91;
  color: #F5F7F6;
  font-size: 16px;
  font-weight: 700;
  white-space: nowrap;
  transition: background-color 0.2s ease, transform 0.15s ease;
}

.wcl-ph-wholesale:hover {
  background-color: #173C71;
}

.wcl-ph-wholesale:active {
  transform: scale(0.98);
}

/* laptops: everything on one row */
@media (max-width: 1399px) {
  .wcl-ph-left {
    gap: 18px;
  }

  .wcl-ph-logo {
    height: 40px;
  }

  .wcl-ph-store {
    min-width: 170px;
    height: 50px;
  }

  .wcl-ph-nav {
    gap: 20px;
  }

  .wcl-ph-nav-link {
    font-size: 17px;
  }

  .wcl-ph-actions {
    gap: 16px;
  }

  .wcl-ph-wholesale {
    height: 46px;
    padding: 0 22px;
    font-size: 14px;
  }
}

@media (max-width: 1199px) {
  .wcl-ph-nav-link {
    font-size: 14px;
  }

  .wcl-ph-nav {
    gap: 12px;
  }

  /* the left group was overlapping the first category at 1024 */
  .wcl-ph-left {
    gap: 14px;
  }

  .wcl-ph-logo {
    height: 34px;
  }

  .wcl-ph-store {
    min-width: 0;
    height: 46px;
    padding: 0 10px;
    gap: 8px;
  }

  .wcl-ph-actions {
    margin-left: 14px;
    gap: 12px;
  }

  .wcl-ph-wholesale {
    height: 44px;
    padding: 0 18px;
    font-size: 14px;
  }
}

@media (max-width: 575px) {
  .wcl-ph-inner {
    /* wraps to two rows here, so the menu drops from a taller header */
    min-height: var(--wcl-header-h);
    padding: 10px 12px;
    gap: 10px;
    flex-wrap: wrap;
  }

  .wcl-ph-left {
    gap: 10px;
  }

  .wcl-ph-logo {
    height: 32px;
  }

  .wcl-ph-store {
    min-width: 0;
    height: 46px;
    padding: 0 10px;
    gap: 8px;
  }

  .wcl-ph-store-pin {
    width: 18px;
    height: 22px;
  }

  .wcl-ph-actions {
    gap: 12px;
    margin-left: auto;
  }

  .wcl-ph-wholesale {
    height: 44px;
    padding: 0 14px;
    font-size: 13px;
  }

  /* 44px tap targets on phones */
  .wcl-ph-icon {
    min-width: 44px;
    min-height: 44px;
  }

  .wcl-ph-logo {
    height: 40px;
  }

  .wcl-legal-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }
}

@media (max-width: 575px) {
  .wcl-listing-crumbs a,
  .wcl-listing-crumbs span {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  /* the sidebar uses inline styles; its rows are buttons and labels */
  .wcl-listing-sidebar button,
  .wcl-listing-sidebar label {
    min-height: 44px;
  }
}

/* ============================================================
   WCL Hero Banner Slider Styles
   ============================================================ */
#wcl-hero {
  height: clamp(560px, 57.708vw, 831px);
  background-color: #0B0A09;
  border-radius: 0 0 20px 20px;
  isolation: isolate;
}

#wcl-hero,
#wcl-hero h1,
#wcl-hero p,
#wcl-hero div,
#wcl-hero span,
#wcl-hero button {
  color: #F5F7F6 !important;
}

.wcl-hero-slide-inner {
  padding: 48px 20px clamp(48px, 10.556vw, 152px);
}

.wcl-hero-img {
  /* Figma: the photo as is (already soft), no extra blur or zoom */
  object-fit: cover;
  object-position: center;
}

.wcl-hero-vignette {
  background: radial-gradient(ellipse at center, rgba(14, 10, 8, 0.4) 0%, rgba(8, 6, 5, 0.72) 65%, rgba(2, 2, 2, 0.94) 100%),
    linear-gradient(to bottom, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.2) 38%, rgba(0, 0, 0, 0.7) 80%, rgba(0, 0, 0, 0.94) 100%);
}

.wcl-hero-content-frame {
  max-width: 943px;
  gap: 0;
  animation: wcl-fade-up 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.wcl-hero-sub {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(22px, 2.222vw, 32px);
  line-height: 1.2;
}

.wcl-hero-title {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(56px, 6.667vw, 96px);
  line-height: 1.2;
  text-shadow: 0 4px 24px rgba(0, 0, 0, 0.45);
}

.wcl-hero-desc {
  font-family: var(--wcl-font-sans);
  font-size: clamp(16px, 1.667vw, 24px);
  font-weight: 400;
  line-height: 1.22;
  margin-top: 20px !important;
}

.wcl-hero-store-frame {
  max-width: 880px;
  gap: 20px;
  margin-top: 48px;
  animation: wcl-fade-up 0.8s 0.15s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.wcl-hero-store-label {
  font-family: var(--wcl-font-sans);
  font-size: 16px;
  font-weight: 400;
  line-height: 19.5px;
  text-transform: uppercase;
}

.wcl-hero-store-btns {
  gap: 32px;
}

.wcl-hero-store-btn {
  height: 92px;
  flex-shrink: 0;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  padding: 0 31px;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.05) 100%);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
  transition: width 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    padding 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    background-color 0.35s ease,
    border-color 0.35s ease,
    box-shadow 0.35s ease,
    gap 0.42s ease;
}

/* grows after a short delay (a passing cursor does not trigger it); name stays centred
   and slides left as the badge opens, instead of jumping (justify-content cannot animate) */
.wcl-hero-store-btn:hover,
.wcl-hero-store-btn:focus-visible {
  padding: 0 16px 0 31px;
  background: linear-gradient(160deg, rgba(255, 255, 255, 0.24) 0%, rgba(255, 255, 255, 0.08) 100%);
  border-color: rgba(255, 255, 255, 0.5);
  gap: 12px;
  transition-duration: 0.6s, 0.35s, 0.35s, 0.35s, 0.6s;
  transition-delay: 0.08s, 0s, 0s, 0s, 0.08s;
  outline: none;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.45), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.wcl-hero-store-btn-name {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 36px;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
  flex-shrink: 0;
}

.wcl-hero-store-btn-badge {
  background-color: #1D4F91;
  color: #FFFFFF !important;
  border-radius: 9999px;
  padding: 9px 0;
  font-size: 13px;
  font-weight: 700;
  font-family: var(--wcl-font-sans);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translateX(10px);
  transition: max-width 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.32s ease,
    padding 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

/* badge opens with the button; text fades in once there is room */
.wcl-hero-store-btn:hover .wcl-hero-store-btn-badge,
.wcl-hero-store-btn:focus-visible .wcl-hero-store-btn-badge {
  max-width: 120px;
  opacity: 1;
  padding: 9px 18px;
  transform: translateX(0);
  transition-duration: 0.6s, 0.35s, 0.6s, 0.6s;
  transition-delay: 0.08s, 0.25s, 0.08s, 0.08s;
}

.wcl-hero-nav-arrow {
  width: 32px;
  height: 32px;
  background-color: rgba(0, 0, 0, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.2);
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

.wcl-hero-nav-arrow:hover {
  background-color: rgba(255, 255, 255, 0.2);
  border-color: rgba(255, 255, 255, 0.4);
}

/* touch screens and phones: no hover expand, buttons share the row */
@media (hover: none), (max-width: 640px) {
  .wcl-hero-store-btn,
  .wcl-hero-store-btn:hover,
  .wcl-hero-store-btn:focus-visible {
    width: auto;
    flex: 1 1 0;
    max-width: 192px;
    padding: 12px 8px;
    justify-content: center;
    gap: 0;
  }

  .wcl-hero-store-btn .wcl-hero-store-btn-badge {
    display: none;
  }
}

@media (max-width: 640px) {
  #wcl-hero {
    height: 580px;
  }

  .wcl-hero-store-btn {
    height: 62px;
    border-radius: 14px;
  }

  .wcl-hero-store-btn-name {
    font-size: 22px;
  }

  .wcl-hero-store-frame {
    margin-top: 32px;
  }

  .wcl-hero-store-btns {
    gap: 16px;
  }
}

@keyframes wcl-fade-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .wcl-hero-content-frame,
  .wcl-hero-store-frame {
    animation: none;
  }
}

/* ============================================================
   About Section Styles
   ============================================================ */
.wcl-about-section {
  padding: 77px 0 97px;
}

.wcl-about-grid {
  display: grid;
  grid-template-columns: 683fr 685fr;
  gap: 0;
  align-items: start;
}

.wcl-about-title {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(40px, 4.444vw, 64px);
  color: #2D2926;
  line-height: 1.2;
  padding-right: 24px;
}

.wcl-about-copy {
  font-family: var(--wcl-font-sans);
  font-size: clamp(16px, 1.389vw, 20px);
  line-height: 1.22;
  color: #2D2926;
  gap: 1.22em;
}

@media (max-width: 767px) {
  .wcl-about-section {
    padding: 56px 0 40px;
  }

  .wcl-about-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }
}

/* ============================================================
   Discover Banner Styles
   ============================================================ */
.wcl-discover-section {
  padding: 0;
}

.wcl-discover-card {
  aspect-ratio: 1368 / 678;
  min-height: 420px;
  border-radius: 24px;
  background-color: #0E8BD0;
}

/* below this width the aspect ratio would push the card past the screen */
@media (max-width: 847px) {
  .wcl-discover-card {
    aspect-ratio: auto;
    height: 420px;
  }
}

/* phones: whole artwork at the bottom, so both flutes stay visible */
@media (max-width: 640px) {
  .wcl-discover-card {
    height: 380px;
    min-height: 0;
  }

  .wcl-discover-card .wcl-discover-img {
    object-fit: contain;
  }
}

.wcl-discover-img {
  object-fit: cover;
  object-position: center bottom;
}

.wcl-discover-content {
  padding: clamp(40px, 7.986vw, 115px) 20px 0;
}

.wcl-discover-title {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(40px, 4.444vw, 64px);
  line-height: 1.2;
  color: #F5F7F6;
}

.wcl-discover-subtitle {
  font-family: var(--wcl-font-sans);
  font-size: clamp(14px, 1.25vw, 18px);
  line-height: 1.333;
  color: #F5F7F6;
  margin-top: 14px !important;
}

/* ============================================================
   Store Locations Styles
   ============================================================ */
.wcl-stores-section {
  padding: 97px 0;
}

.wcl-stores-title {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(40px, 4.444vw, 64px);
  color: #2D2926;
  line-height: 1.2;
}

.wcl-stores-subtitle {
  font-family: var(--wcl-font-sans);
  font-size: clamp(15px, 1.25vw, 18px);
  color: #979797;
  line-height: 1.333;
  max-width: 461px;
  margin: 20px auto 0 !important;
}

.wcl-stores-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  margin-top: 48px;
}

.wcl-store-tile {
  font-family: var(--wcl-font-sans);
  background-color: #FFFFFF;
  border: 1px solid #E5E5E5;
  border-radius: 20px;
  padding: 20px;
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.wcl-store-tile:hover {
  transform: translateY(-4px);
  border-color: #DADADA;
  box-shadow: 0 16px 36px rgba(17, 17, 17, 0.08);
}

.wcl-store-tile-name {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: 40px;
  line-height: 1.2;
  color: #2D2926;
}

.wcl-store-tile-tagline {
  font-size: 18px;
  font-weight: 500;
  line-height: 22px;
  color: #2D2926;
  margin-top: 8px !important;
}

.wcl-store-tile-desc {
  font-size: 14px;
  line-height: 1.22;
  color: #2D2926;
  margin-top: 30px !important;
}

.wcl-store-tile-address {
  font-size: 16px;
  font-weight: 500;
  line-height: 19.5px;
  color: #2D2926;
  gap: 10px;
  margin-top: 30px;
}

.wcl-store-tile-actions {
  margin-top: 30px;
}

.wcl-store-tile-btn {
  width: 100%;
  height: 52px;
  border-radius: 9999px;
  background-color: #1D4F91;
  color: #F5F7F6;
  font-family: var(--wcl-font-sans);
  font-size: 16px;
  font-weight: 700;
  transition: background-color 0.2s ease, transform 0.15s ease;
}

.wcl-store-tile-btn:hover {
  background-color: #173C71;
}

.wcl-store-tile-distance {
  font-size: 14px;
  color: #3A3A3A;
  white-space: nowrap;
}

/* Locations page card (Figma): no description, smaller button + distance */
.wcl-store-tile--compact {
  padding: 18px 20px;
  box-shadow: 0 4px 16px rgba(17, 17, 17, 0.06);
}

.wcl-store-tile--compact .wcl-store-tile-name {
  font-size: 32px;
}

.wcl-store-tile--compact .wcl-store-tile-tagline {
  font-size: 15px;
  font-weight: 400;
  margin-top: 6px !important;
}

.wcl-store-tile--compact .wcl-store-tile-address {
  font-size: 14px;
  margin-top: 16px;
}

.wcl-store-tile--compact .wcl-store-tile-actions {
  margin-top: 16px;
}

.wcl-store-tile--compact .wcl-store-tile-btn {
  width: auto;
  min-width: 172px;
  height: 42px;
  padding: 0 28px;
}

.wcl-store-tile--clickable {
  cursor: pointer;
}

.wcl-store-tile--selected,
.wcl-store-tile--selected:hover {
  border-color: #1D4F91;
  box-shadow: 0 10px 26px rgba(31, 78, 146, 0.14);
}

.wcl-store-tile-btn:active {
  transform: scale(0.98);
}

@media (max-width: 991px) {
  .wcl-stores-grid {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
}

@media (max-width: 640px) {
  .wcl-stores-section {
    padding: 56px 0 64px;
  }

  .wcl-stores-grid {
    grid-template-columns: 1fr;
    margin-top: 36px;
  }

  .wcl-store-tile-name {
    font-size: 34px;
  }
}

/* ============================================================
   Sale Section Styles
   ============================================================ */
.wcl-sale-title {
  font-size: clamp(30px, 4.5vw, 44px);
  line-height: 1;
}

.wcl-sale-carousel-btn {
  width: 36px;
  height: 36px;
  background-color: #FFFFFF;
  border: 1.5px solid #1E4E8C;
  color: #1E4E8C;
  cursor: pointer;
  transition: all 0.2s ease;
}

.wcl-sale-carousel-btn:hover {
  background-color: #1E4E8C;
  color: #FFFFFF;
}

.wcl-sale-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 24px;
}

.wcl-bottle-art-wrapper {
  height: 230px;
}

.wcl-product-name {
  font-size: 19px;
  line-height: 1.2;
  min-height: 46px;
}

/* ============================================================
   WCL Footer Styles
   ============================================================ */
.wcl-footer {
  font-family: var(--wcl-font-sans);
}

.wcl-footer-main {
  padding: 64px 0 96px;
}

.wcl-footer-inner {
  /* Figma: 128px side margins at 1440; columns spread with the width */
  width: calc(100% - 2 * clamp(20px, 8.889vw, 128px));
  margin: 0 auto;
}

.wcl-footer-grid {
  display: grid;
  grid-template-columns: 325fr 429fr 430fr;
  gap: 0;
}

.wcl-footer-logo {
  display: block;
  height: 55px;
  width: auto;
  filter: invert(1);
}

.wcl-footer-heading {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 20px;
  letter-spacing: 0.7px;
  color: #F5F7F6;
  margin-bottom: 24px !important;
}

.wcl-footer-links {
  gap: 14px;
  font-size: 12px;
  line-height: 16px;
}

.wcl-footer-link {
  font-size: 12px;
  font-weight: 600;
  line-height: 16px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: #FFFFFF;
  transition: opacity 0.2s ease;
}

.wcl-footer-link:hover {
  color: #FFFFFF;
  opacity: 0.6;
}

.wcl-footer-locations-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.wcl-footer-store {
  font-size: 12px;
  line-height: 19.5px;
  color: #DCDCDC;
}

.wcl-footer-store-name {
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  color: #FFFFFF;
  margin-bottom: 4px;
}

.wcl-footer-store-gap {
  margin-top: 5.5px;
}

/* licence line */
.wcl-footer-store-gap:last-child {
  margin-top: 8.5px;
  color: #CCCCCC;
}

.wcl-legal-bar {
  background-color: #FFFFFF;
  color: #2D2926;
  padding: 16px 0;
}

.wcl-legal-bar-inner {
  padding: 0 clamp(16px, 3.333vw, 48px);
}

.wcl-legal-text {
  font-size: 11px;
  font-weight: 700;
  line-height: 16.5px;
  letter-spacing: 0.55px;
  text-transform: uppercase;
  color: #171717;
}

.wcl-legal-link {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #6B7280;
}

.wcl-legal-link:hover {
  color: #2D2926;
}

@media (max-width: 991px) {
  .wcl-footer-main {
    padding: 48px 0 56px;
  }

  .wcl-footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 36px;
  }

  .wcl-footer-grid > :last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 575px) {
  .wcl-footer-grid,
  .wcl-footer-locations-grid {
    grid-template-columns: 1fr;
  }

  .wcl-footer-grid > :last-child {
    grid-column: auto;
  }

  .wcl-footer-links {
    gap: 0;
  }

  /* 44px tap target */
  .wcl-footer-link {
    display: inline-block;
    padding: 14px 0;
    min-width: 44px;
  }
}

/* ============================================================
   Marketplace Recommended: New / Popular cards (Figma)
   ============================================================ */
/* marketplace sections share one container (max 1480px, centred) */
.wcl-section-wrap {
  /* Figma 9114:94: x36..1403 at 1440, full width, same gutters as the header */
  width: 100%;
  padding: 0 clamp(16px, 2.5vw, 36px);
}

/* Recommended: hero a little wider than before (58% -> 66%), New + Popular narrower (42% -> 34%) */

@media (min-width: 992px) {
  .wcl-rec-hero-col {
    /* Figma: hero 968 of 1368 */
    flex: 0 0 auto;
    width: 70.8%;
  }

  .wcl-rec-side-col {
    /* Figma: cards 375 of 1368 */
    flex: 0 0 auto;
    width: 29.2%;
  }
}

.wcl-rec-card {
  /* Figma: 393 tall (two cards + 26 gap match the hero) */
  min-height: clamp(240px, 27.3vw, 393px);
  border-radius: 20px;
  /* Figma 9114:94: badge 32 below the card top, text 32 from the left */
  padding: 32px 24px 0 32px;
  font-family: var(--wcl-font-sans);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.wcl-rec-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 34px rgba(17, 17, 17, 0.16);
}

.wcl-rec-card-copy {
  position: relative;
  z-index: 1;
  max-width: 60%;
  /* Figma: Buy Now ends 32 above the card bottom */
  padding-bottom: 32px;
}

.wcl-rec-buy-wrap {
  margin-top: auto;
  padding-top: 16px;
}

/* Figma: the bottle stands at the right, cropped by the card's bottom edge: top at 46% of the card,
   37px from the right (cut-outs are trimmed, so the bottle fills this box) */
.wcl-rec-card-media {
  position: absolute;
  right: 37px;
  top: 46%;
  bottom: -12%;
  width: 34%;
}

/* hero slide: copy on the left, bottle on the right running off the bottom */
.wcl-rec-hero-copy {
  position: relative;
  z-index: 1;
  /* Figma: description column is 585 of the 968 hero */
  width: 64%;
  /* Figma: title ink starts y253 (hero top y188); text x79 of a hero at x36 -> 44 in,
     and the card already supplies 32 of that */
  padding: clamp(28px, 4.5vw, 65px) 24px 56px 6px;
}

/* Figma: bottle top 142 under the tab top (17.5% of the 810 hero, the slide starts 78 lower), 8% from the right */
.wcl-rec-hero-media {
  position: absolute;
  right: 8%;
  top: 8%;
  bottom: -16%;
  width: 34%;
}

.wcl-rec-tab-title {
  top: 0;
  left: 22px;
  height: 9.877%;
  font-size: clamp(24px, 2.92vw, 42px);
  line-height: 1;
  letter-spacing: 0;
  color: #000000;
  z-index: 3;
}

.wcl-rec-hero-dots {
  left: 36px;
  bottom: 26px;
  z-index: 3;
}

.wcl-rec-cutout {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  /* Figma: the bottle's right edge sits on the box's right edge (hero x926 = 8% in, cards 37px in) */
  object-position: right bottom;
  filter: drop-shadow(0 16px 22px rgba(0, 0, 0, 0.25));
}

/* no photo: white silhouette, same place and crop as a real bottle */
.wcl-rec-cutout--none {
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.wcl-rec-tag {
  /* Figma: 62x32, regular weight */
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 14px;
  background-color: #FFFFFF;
  border-radius: 9999px;
  font-size: 16px;
  font-weight: 400;
}

.wcl-rec-name {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  /* Figma: cap 21 -> 26px, line pitch 36 */
  font-size: clamp(22px, 1.81vw, 26px);
  line-height: 1.38;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  margin-top: 22px !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.wcl-rec-price {
  /* Figma: price at rel 173, regular weight */
  font-size: 20px;
  font-weight: 400;
  margin-top: 17px;
}

.wcl-rec-was {
  margin-left: 8px;
  font-size: 14px;
  font-weight: 400;
  text-decoration: line-through;
  opacity: 0.75;
}

.wcl-rec-buy {
  /* Figma: 144x52 */
  height: 52px;
  min-width: 144px;
  padding: 0 36px;
  border: 0;
  border-radius: 9999px;
  background-color: #FFFFFF;
  color: #2D2926;
  font-size: 16px;
  font-weight: 400;
  transition: transform 0.2s ease;
}

.wcl-rec-buy:hover {
  transform: scale(1.04);
}

/* narrow cards (lg columns under 1200): keep the bottle clear of the copy and the Buy Now button */
@media (min-width: 992px) and (max-width: 1199px) {
  .wcl-rec-card-media {
    right: 16px;
    width: 30%;
  }
}

@media (max-width: 575px) {
  .wcl-rec-card {
    padding: 22px 16px 0 20px;
    min-height: 200px;
  }

  .wcl-rec-card-media {
    right: 12px;
    width: 36%;
  }

  .wcl-rec-hero-copy {
    width: 62%;
    padding-right: 12px;
  }

  .wcl-rec-hero-media {
    right: 4%;
    width: 34%;
  }
}

/* ============================================================
   WCL Product Cards & Carousels (marketplace, Figma)
   ============================================================ */
.wcl-pcard {
  font-family: var(--wcl-font-sans);
  background: none;
  border: 0;
  padding: 0;
  color: #2D2926;
  cursor: pointer;
}

.wcl-pcard-media {
  /* Figma: 333x411 panel */
  aspect-ratio: 333 / 411;
  background-color: #F6F5F2;
  /* Figma: 1px #E6E6E6 border, radius 12 (listing and marketplace) */
  border: 1px solid #E6E6E6;
  border-radius: 12px;
  overflow: hidden;
  /* Figma 9300:2267: the bottle is 70% of the panel height (61 top / 63 bottom of 411) */
  padding: 15% 18%;
  transition: box-shadow 0.25s ease;
}

/* Figma 9114:94 marketplace card: 324x414 panel */
.wcl-pcard--mkt .wcl-pcard-media {
  aspect-ratio: 324 / 414;
}

/* the artwork keeps Figma's proportion whatever the photo's own margins are.
   BottleArt renders <Image fill> inside a w-100 h-100 wrapper, so size that. */
.wcl-pcard-media > * {
  height: 70%;
  width: 100%;
}

/* photos shot on white: multiply turns their white background into the tile grey */
.wcl-pcard-media img {
  mix-blend-mode: multiply;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.wcl-pcard:hover .wcl-pcard-media,
.wcl-pcard:focus-visible .wcl-pcard-media {
  box-shadow: 0 12px 28px rgba(17, 17, 17, 0.1);
}

.wcl-pcard:hover .wcl-pcard-media img {
  transform: scale(1.05);
}

.wcl-pcard:focus-visible {
  outline: none;
}

.wcl-pcard-noimage {
  /* the bottle path is narrow: size by height so it reads like a photo */
  width: 100%;
  height: 88%;
}

.wcl-pcard-sale {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 3px 9px;
  border-radius: 9999px;
  background-color: #E5372B;
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
}

/* Figma: category label over the name, 12px upper case #979797 */
.wcl-pcard-cat {
  display: block;
  margin-top: 29px;
  font-size: 12px;
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #979797;
}

.wcl-pcard-name {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: 22px;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: #2D2926;
  margin-top: 6px !important;
  /* Figma: one line with "...", so the price row sits at the same height on every card */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.wcl-pcard-foot {
  margin-top: 4px;
}

.wcl-pcard-meta {
  font-size: 14px;
  color: #2D2926;
}

.wcl-pcard-was {
  font-size: 11px;
  color: #9CA3AF;
  text-decoration: line-through;
}

.wcl-pcard-price {
  font-size: 14px;
  font-weight: 700;
  color: #2D2926;
  font-variant-numeric: tabular-nums;
}

.wcl-pcard-skeleton {
  aspect-ratio: 1 / 1.08;
  height: auto;
  border-radius: 12px;
  background-color: #E6E6E6;
}

/* listing page (Figma): breadcrumb band, sidebar panel on the left edge */
.wcl-listing-page {
  font-family: var(--wcl-font-sans);
  /* clip, not hidden: hidden breaks the sticky header and adds a scroller */
  overflow-x: clip;
}

.wcl-listing-crumbs {
  /* Figma 9300:2267: 110 tall band, text at x47 */
  font-size: 14px;
  color: #2D2926;
  padding: 44px clamp(16px, 3.3vw, 47px);
  border-bottom: 1px solid #E5E5E4;
}

.wcl-listing-sidebar {
  /* Figma 9300:2267: divider at x311, no background fill */
  width: 312px;
  padding: 46px 40px 48px clamp(16px, 3.2vw, 46px);
  background-color: transparent;
  border-right: 1px solid #E3E3E3;
}

.wcl-listing-content {
  min-width: 0;
  /* Figma: cards start x348 (37 after the divider), right edge 1394 */
  padding: 42px clamp(16px, 3.2vw, 46px) 72px 37px;
}

.wcl-listing-grid {
  display: grid;
  /* Figma 9300:2267: 3 columns of 333 at x348 / 705 / 1062, 24px gap */
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 33px 24px;
}

@media (max-width: 1199px) {
  .wcl-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .wcl-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 14px;
  }

}

.wcl-listing-search,
.wcl-listing-sort {
  /* Figma: both 56 tall, 1px #E6E6E6 */
  height: 56px;
  border: 1px solid #E6E6E6;
  border-radius: 8px;
  font-size: 15px;
  color: #2D2926;
  white-space: nowrap;
}

.wcl-listing-search {
  /* Figma: x852..1117 */
  min-width: 266px;
  padding: 0 18px;
  background-color: #FFFFFF;
}

.wcl-listing-search:focus-within {
  border-color: #1D4F91;
}

.wcl-listing-sort {
  /* Figma: x1138..1394 */
  min-width: 257px;
  padding: 0 18px;
  background-color: #F5F7F6;
  cursor: pointer;
}

/* the Figma widths are desktop only (declared after them so they win) */
@media (max-width: 767px) {
  .wcl-listing-search,
  .wcl-listing-sort {
    min-width: 0;
    width: 100%;
    height: 48px;
  }

  /* the label is nowrap: truncate it instead of pushing the button wider */
  .wcl-listing-sort > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

@media (max-width: 991px) {
  .wcl-listing-sidebar {
    width: 100%;
    border-right: 0;
    border-bottom: 1px solid #ECECEC;
    padding: 20px 16px;
  }
}

.wcl-listing-title {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(28px, 2.6vw, 38px);
  line-height: 1;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #2D2926;
}

.wcl-listing-count {
  font-family: var(--wcl-font-sans);
  font-size: 13px;
  font-weight: 500;
  color: #2D2926;
  margin-top: 6px !important;
}

.wcl-carousel-title {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(30px, 3vw, 44px);
  line-height: 1;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #2D2926;
}

.wcl-carousel-arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
  color: #1D4F91;
  transition: transform 0.2s ease, opacity 0.2s ease;
}

.wcl-carousel-arrow:hover:not(:disabled) {
  transform: translateX(var(--wcl-arrow-nudge, 0));
}

.wcl-carousel-arrow[aria-label^="Next"] {
  --wcl-arrow-nudge: 3px;
}

.wcl-carousel-arrow[aria-label^="Previous"] {
  --wcl-arrow-nudge: -3px;
}

.wcl-carousel-arrow:disabled {
  opacity: 0.3;
  cursor: default;
}

.wcl-specials-label {
  font-family: var(--wcl-font-sans);
  font-size: 14px;
  letter-spacing: 0.04em;
  color: #2D2926;
}

.wcl-specials-tabs {
  gap: 8px 40px;
  margin: 14px 0 32px;
}

.wcl-specials-tab {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.1;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: #9A9A9A;
  padding: 2px 0;
  border-bottom: 2px solid transparent;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.wcl-specials-tab:hover {
  color: #2D2926;
}

.wcl-specials-tab--active {
  color: #1F1F1F;
  border-bottom-color: #1F1F1F;
}

.wcl-specials-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  /* the carousel Swiper has 2px side padding: same here so the edges match */
  padding: 0 2px;
}

@media (max-width: 991px) {
  .wcl-specials-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
}

.wcl-specials-more {
  font-family: var(--wcl-font-sans);
  margin-top: 36px;
  height: 44px;
  padding: 0 28px;
  border: 1.5px solid #1D4F91;
  border-radius: 9999px;
  color: #1D4F91;
  font-size: 14px;
  font-weight: 700;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.wcl-specials-more:hover {
  background-color: #1D4F91;
  color: #FFFFFF;
}

@media (max-width: 575px) {
  .wcl-pcard-name {
    font-size: 16px;
  }

  .wcl-specials-tabs {
    gap: 6px 22px;
  }
}

/* ============================================================
   WCL Locations page (Figma): store list + map, then footer
   ============================================================ */
.wcl-loc-page {
  font-family: var(--wcl-font-sans);
  overflow-x: clip;
}

.wcl-loc-main {
  display: grid;
  grid-template-columns: 400px minmax(0, 1fr);
  height: clamp(640px, calc(100vh - 123px), 920px);
}

.wcl-loc-list {
  /* fallback only: the three cards fit without scrolling on a normal laptop screen */
  overflow-y: auto;
  padding: 24px 24px 24px clamp(16px, 2.5vw, 40px);
}

.wcl-loc-title {
  font-size: 24px;
  font-weight: 500;
  color: #2D2926;
  margin-bottom: 16px !important;
}

.wcl-loc-cards {
  gap: 12px;
}

.wcl-loc-map {
  background-color: #EFE8D6;
  overflow: hidden;
}

.wcl-loc-pin {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background-color: #FFFFFF;
  border: 2px solid transparent;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition: transform 0.2s ease, border-color 0.2s ease;
}

.wcl-loc-pin img {
  width: 48px;
  height: auto;
}

.wcl-loc-pin--hovered {
  transform: scale(1.08);
}

.wcl-loc-pin--selected {
  border-color: #1D4F91;
  transform: scale(1.14);
}

@media (max-width: 991px) {
  .wcl-loc-main {
    grid-template-columns: 1fr;
    height: auto;
  }

  .wcl-loc-list {
    overflow: visible;
    padding: 24px 16px;
  }

  .wcl-loc-map {
    height: 420px;
  }
}

/* ============================================================
   WCL Terms / Privacy (/FR/terms, /FR/privacy)
   ============================================================ */
/* layout of the old site's /FR/terms: blue Home crumb, plain bold title, wide text column */
.wcl-legal-page {
  font-family: var(--wcl-font-sans);
  padding: 0 0 96px;
}

.wcl-legal-crumbs-bar {
  border-top: 1px solid #EFEFEF;
  border-bottom: 1px solid #EFEFEF;
  padding: 20px 0;
  margin-bottom: 28px;
}

.wcl-legal-inner {
  width: calc(100% - 40px);
  max-width: 1080px;
  margin: 0 auto;
}

/* starts under the header's store picker: gutter + logo width (44px tall, 182.9:54.8) + gap */
.wcl-legal-crumbs-inner {
  padding: 0 clamp(16px, 2.5vw, 40px) 0 calc(clamp(16px, 2.5vw, 40px) + 147px + 28px);
}

@media (max-width: 1399px) {
  .wcl-legal-crumbs-inner {
    padding-left: calc(clamp(16px, 2.5vw, 40px) + 134px + 18px);
  }
}

/* phones: header wraps, line up with the logo instead */
@media (max-width: 575px) {
  .wcl-legal-crumbs-inner {
    padding: 0 12px;
  }
}

.wcl-legal-crumbs {
  font-size: 14px;
  color: #9CA3AF;
}

.wcl-legal-crumbs a {
  color: #1D4F91;
  font-weight: 500;
  transition: color 0.2s ease;
}

.wcl-legal-crumbs a:hover {
  color: #173C71;
  text-decoration: underline !important;
}

.wcl-legal-crumb-current {
  color: #111827;
  font-weight: 500;
}

.wcl-legal-title {
  font-family: var(--wcl-font-sans);
  font-weight: 700;
  font-size: clamp(30px, 3.2vw, 40px);
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: #2D2926;
  padding-bottom: 12px;
}

.wcl-legal-body {
  padding-top: 8px;
}

.wcl-legal-doc-title {
  font-family: var(--wcl-font-sans);
  font-weight: 700;
  font-size: 24px;
  color: #2D2926;
  margin-top: 36px !important;
}

.wcl-legal-heading {
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #2D2926;
  margin-top: 32px !important;
}

.wcl-legal-subheading {
  font-size: 15px;
  font-weight: 700;
  color: #2D2926;
  margin-top: 20px !important;
}

.wcl-legal-p {
  font-size: 15px;
  line-height: 1.7;
  color: #3A3A3A;
  margin-top: 12px !important;
}

.wcl-legal-mail {
  color: #1D4F91;
  text-decoration: underline !important;
  word-break: break-all;
}

@media (max-width: 575px) {
  .wcl-legal-page {
    padding: 0 0 64px;
  }

  .wcl-legal-crumbs-bar {
    padding: 14px 0;
    margin-bottom: 20px;
  }

  .wcl-legal-p {
    font-size: 14px;
  }
}

/* ============================================================
   WCL About page (Figma), wcl-ab-*
   ============================================================ */
.wcl-ab-page {
  font-family: var(--wcl-font-sans);
  overflow-x: clip;
}

.wcl-ab-cover {
  object-fit: cover;
}

.wcl-ab-inner {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 clamp(16px, 2.7vw, 40px);
}

/* hero, as the home hero */
.wcl-ab-hero {
  height: clamp(520px, calc(100vh - 123px), 831px);
  background-color: #0B0A09;
  border-radius: 0 0 20px 20px;
}

.wcl-ab-hero-shade {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.86) 0%, rgba(0, 0, 0, 0.7) 100%);
}

.wcl-ab-hero-content {
  max-width: 980px;
  padding: 0 20px;
  animation: wcl-fade-up 0.8s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.wcl-ab-hero-title {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(48px, 6.4vw, 92px);
  line-height: 1.08;
  letter-spacing: 0.01em;
}

.wcl-ab-hero-sub {
  font-size: clamp(16px, 1.5vw, 21px);
  line-height: 1.4;
  margin-top: 26px !important;
  opacity: 0.95;
}

/* story: photos inset from the screen edges (header gutter), text centred between them, the right photo lower */
.wcl-ab-story {
  display: grid;
  grid-template-columns: 264px minmax(0, 1fr) 264px;
  column-gap: clamp(32px, 5vw, 80px);
  align-items: start;
  padding: 120px clamp(16px, 2.5vw, 40px) 104px;
}

.wcl-ab-story-left,
.wcl-ab-story-right {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 16px;
  object-fit: cover;
}

.wcl-ab-story-right {
  margin-top: 200px;
}

.wcl-ab-story-text {
  justify-self: center;
  max-width: 820px;
}

.wcl-ab-lead {
  font-family: var(--wcl-font-sans);
  font-weight: 500;
  font-size: clamp(24px, 2.25vw, 33px);
  line-height: 1.32;
  color: #2D2926;
}

.wcl-ab-lead--wide {
  max-width: 1200px;
}

.wcl-ab-body {
  font-size: 16px;
  line-height: 1.55;
  color: #3A3A3A;
  margin: 26px 0 0 !important;
}

/* full-width photo bands, each followed by a sheet that overlaps it with rounded corners */
.wcl-ab-band {
  height: auto;
  object-fit: cover;
}

.wcl-ab-band--bottle {
  aspect-ratio: 1440 / 424;
}

.wcl-ab-band--toast {
  aspect-ratio: 1440 / 700;
}

.wcl-ab-sheet {
  margin-top: -20px;
  border-radius: 20px 20px 0 0;
}

.wcl-ab-sheet--dark {
  background-color: #2D2926;
  color: #FFFFFF;
  padding: 80px 0 104px;
}

.wcl-ab-sheet--dark .wcl-ab-lead {
  color: #FFFFFF;
}

.wcl-ab-sheet--light {
  background-color: #FFFFFF;
  padding: 80px 0 64px;
}

.wcl-ab-eyebrow {
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 22px !important;
  opacity: 0.85;
}

.wcl-ab-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 60px;
  margin-top: 150px;
}

.wcl-ab-value {
  border-top: 1px solid rgba(255, 255, 255, 0.28);
  padding-top: 28px;
}

.wcl-ab-value-title {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: 26px;
  line-height: 1;
  letter-spacing: 0.01em;
}

.wcl-ab-value-text {
  font-size: 15px;
  line-height: 1.5;
  margin-top: 22px !important;
  color: rgba(255, 255, 255, 0.88);
}

.wcl-ab-commitments {
  list-style: none;
  margin: 76px 0 0;
  padding: 0;
}

.wcl-ab-commitment {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  padding: 34px 0;
  border-top: 1px solid #E5E5E5;
}

.wcl-ab-commitment-num {
  font-size: clamp(36px, 3.4vw, 48px);
  font-weight: 300;
  line-height: 1;
  color: #8E8E8E;
  font-variant-numeric: tabular-nums;
}

.wcl-ab-commitment-text {
  font-size: clamp(16px, 1.4vw, 20px);
  color: #1F1F1F;
}

/* loyalty: dark card, white title tab in its top-left corner (Figma) */
.wcl-ab-loyalty-section {
  padding: 56px 0 120px;
}

.wcl-ab-loyalty {
  --tab-h: 78px;
  --tab-w: min(560px, 46%);
  background-color: #2D2926;
  border-radius: 20px;
  padding: calc(var(--tab-h) + 28px) 18px 18px 44px;
}

.wcl-ab-loyalty-tab {
  position: absolute;
  top: 0;
  left: 0;
  width: var(--tab-w);
  height: var(--tab-h);
  background-color: #FFFFFF;
  border-bottom-right-radius: 44px;
  display: flex;
  align-items: center;
}

/* inverted corners: dark curves into the tab on its right and below it */
.wcl-ab-loyalty-tab::before,
.wcl-ab-loyalty-tab::after {
  content: "";
  position: absolute;
  width: 22px;
  height: 22px;
  background: radial-gradient(circle at 100% 100%, transparent 21.5px, #FFFFFF 22px);
}

.wcl-ab-loyalty-tab::before {
  top: 0;
  left: 100%;
}

.wcl-ab-loyalty-tab::after {
  top: 100%;
  left: 0;
}

.wcl-ab-loyalty-title {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: clamp(26px, 2.5vw, 36px);
  line-height: 1;
  color: #2D2926;
  letter-spacing: 0.01em;
}

.wcl-ab-loyalty-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 56px;
  align-items: start;
  /* the benefits panel rises into the band beside the tab */
  margin-top: calc(-1 * var(--tab-h));
}

.wcl-ab-loyalty-copy {
  padding-top: var(--tab-h);
  color: rgba(255, 255, 255, 0.92);
  font-size: 16px;
  line-height: 1.5;
}

.wcl-ab-loyalty-copy p {
  margin: 0 0 22px;
}

.wcl-ab-benefits {
  background-color: #F3F4F4;
  border-radius: 14px;
  padding: 26px 26px 24px;
}

.wcl-ab-benefits-title {
  font-family: 'Bebas Neue', sans-serif;
  font-weight: 400;
  font-size: 30px;
  line-height: 1;
  text-align: center;
  color: #2D2926;
}

.wcl-ab-benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin: 26px 0 20px;
}

.wcl-ab-benefit {
  background-color: #FFFFFF;
  border: 1px solid #ECEDEE;
  border-radius: 10px;
  min-height: 150px;
  padding: 22px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  text-align: center;
  font-size: 13px;
  line-height: 1.35;
  color: #2D2926;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.wcl-ab-benefit:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 22px rgba(17, 24, 39, 0.08);
}

.wcl-ab-join {
  height: 52px;
  border-radius: 9999px;
  background-color: #1D4F91;
  color: #FFFFFF;
  font-size: 16px;
  font-weight: 700;
  transition: background-color 0.2s ease;
}

.wcl-ab-join:hover {
  background-color: #173C71;
}

@media (max-width: 1199px) {
  .wcl-ab-story {
    grid-template-columns: 200px minmax(0, 1fr) 200px;
  }

  .wcl-ab-story-left,
  .wcl-ab-story-right {
    width: 200px;
  }

  .wcl-ab-loyalty-grid {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-top: 0;
  }

  .wcl-ab-loyalty-copy {
    padding-top: 0;
  }
}

@media (max-width: 767px) {
  .wcl-ab-story {
    grid-template-columns: 1fr 1fr;
    padding: 56px 16px;
    column-gap: 16px;
    row-gap: 32px;
  }

  .wcl-ab-story-text {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .wcl-ab-story-left,
  .wcl-ab-story-right {
    width: 100%;
    margin-top: 0;
    aspect-ratio: 1;
    object-fit: cover;
  }

  .wcl-ab-sheet--dark,
  .wcl-ab-sheet--light {
    padding: 48px 0 56px;
  }

  .wcl-ab-values {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-top: 48px;
  }

  .wcl-ab-commitment {
    grid-template-columns: 72px 1fr;
    padding: 22px 0;
  }

  .wcl-ab-loyalty {
    --tab-h: 64px;
    --tab-w: 88%;
    padding: calc(var(--tab-h) + 24px) 14px 14px;
  }

  .wcl-ab-loyalty-title {
    font-size: 22px;
    padding-right: 12px;
  }

  .wcl-ab-benefits-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ============================================================
   WCL About Us Page Styles
   ============================================================ */
.wcl-about-hero {
  position: relative !important;
  width: 100% !important;
  height: 540px;
  background-color: #0B0A09;
  border-radius: 0 0 24px 24px;
  overflow: hidden !important;
}

.wcl-about-hero-img {
  object-fit: cover;
  object-position: center 30%;
  filter: brightness(0.62);
}

.wcl-about-hero-title {
  font-family: 'Bebas Neue', sans-serif;
  font-size: clamp(40px, 6vw, 68px);
  letter-spacing: 0.03em;
  line-height: 1.05;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.7);
}

.wcl-about-hero-sub {
  font-family: var(--wcl-font-sans);
  font-size: clamp(14px, 1.8vw, 16px);
  line-height: 1.6;
  max-width: 820px;
  color: rgba(255, 255, 255, 0.92);
}

.wcl-about-story-grid {
  display: grid;
  grid-template-columns: 260px 1fr 280px;
  gap: 40px;
  align-items: start;
}

@media (max-width: 1199px) {
  .wcl-about-story-grid {
    grid-template-columns: 1fr 1fr;
  }

  .wcl-about-story-center {
    grid-column: span 2;
    order: 1;
  }

  .wcl-about-story-img-left {
    order: 2;
  }

  .wcl-about-story-img-right {
    order: 3;
  }
}

@media (max-width: 767px) {
  .wcl-about-story-grid {
    grid-template-columns: 1fr;
  }

  .wcl-about-story-center {
    grid-column: span 1;
  }
}

.wcl-about-story-title {
  font-family: var(--wcl-font-sans);
  font-size: clamp(24px, 3vw, 34px);
  line-height: 1.25;
  font-weight: 700;
  color: #2D2926;
  letter-spacing: -0.01em;
}

.wcl-about-story-p {
  font-family: var(--wcl-font-sans);
  font-size: 15px;
  line-height: 1.75;
  color: #4B5563;
}

.wcl-about-story-img-left {
  position: relative !important;
  width: 100% !important;
  height: 260px !important;
  border-radius: 16px;
  overflow: hidden !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.wcl-about-story-img-right {
  position: relative !important;
  width: 100% !important;
  height: 360px !important;
  border-radius: 16px;
  overflow: hidden !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  margin-top: 60px;
}

/* Full-bleed Bottle Banner */
.wcl-about-bottle-wrapper {
  position: relative !important;
  width: 100% !important;
  height: 420px !important;
  overflow: hidden !important;
  background-color: #1a1816;
}

.wcl-about-bottle-img {
  object-fit: cover !important;
  object-position: center 38% !important;
}

/* Attached Overlapping Dark Philosophy Sheet (Rectangle 161123931) */
.wcl-about-philosophy {
  position: relative !important;
  z-index: 5 !important;
  margin-top: -90px !important;
  width: 100% !important;
  background-color: #242220 !important;
  border-top-left-radius: 20px !important;
  border-top-right-radius: 20px !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  padding: 70px 0 80px !important;
  box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.25);
}

.wcl-about-philosophy-title {
  font-family: var(--wcl-font-sans);
  font-size: clamp(22px, 2.8vw, 32px);
  line-height: 1.35;
  font-weight: 600;
  color: #FFFFFF;
  max-width: 980px;
  letter-spacing: -0.01em;
}

.wcl-about-philosophy-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
}

.wcl-about-philosophy-col {
  border-top: 1px solid rgba(255, 255, 255, 0.22);
  padding-top: 22px;
}

@media (max-width: 991px) {
  .wcl-about-philosophy-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
}

/* Full-bleed Toasting Banner - Flush to Dark Card */
.wcl-about-toast-wrapper {
  position: relative !important;
  width: 100% !important;
  height: 440px !important;
  overflow: hidden !important;
  background-color: #1a1816;
}

.wcl-about-toast-img {
  object-fit: cover !important;
  object-position: center 30% !important;
}

/* Overlapping White Working With The Best Sheet */
.wcl-about-producers-sheet {
  position: relative !important;
  z-index: 5 !important;
  margin-top: -60px !important;
  width: 100% !important;
  background-color: #FFFFFF !important;
  border-top-left-radius: 20px !important;
  border-top-right-radius: 20px !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  padding: 80px 0 60px !important;
  box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.08);
}

.wcl-about-producers-title {
  font-family: var(--wcl-font-sans);
  font-size: clamp(22px, 2.8vw, 32px);
  line-height: 1.35;
  font-weight: 700;
  max-width: 1020px;
  color: #2D2926;
  letter-spacing: -0.01em;
}

.wcl-about-commitment-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 24px 0;
  border-bottom: 1px solid #E5E7EB;
}

.wcl-about-commitment-row:first-child {
  border-top: 1px solid #E5E7EB;
}

.wcl-about-commitment-num {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 38px;
  color: #9CA3AF;
  flex-shrink: 0;
  letter-spacing: 0.04em;
}

.wcl-about-commitment-text {
  font-family: var(--wcl-font-sans);
  font-size: 16px;
  font-weight: 600;
  color: #1F2937;
  text-align: right;
}

.wcl-loyalty-card {
  background-color: #1F1E1D;
  border-radius: 24px;
  padding: 50px 48px;
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.15);
}

@media (max-width: 991px) {
  .wcl-loyalty-card {
    padding: 36px 24px;
  }
}

.wcl-loyalty-tab-title {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 28px;
  letter-spacing: 0.04em;
  color: #FFFFFF;
  margin-bottom: 24px;
}

.wcl-loyalty-benefits-card {
  background-color: #FFFFFF;
  border-radius: 20px;
  padding: 32px 28px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.wcl-loyalty-benefits-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 20px;
}

.wcl-loyalty-benefit-tile {
  background-color: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 12px;
  padding: 14px 10px;
  min-height: 86px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  transition: all 0.2s ease;
}

.wcl-loyalty-benefit-tile:hover {
  background-color: #F0F4F8;
  border-color: #CBD5E1;
}

.wcl-loyalty-benefit-icon {
  color: #1D4F91;
  margin-bottom: 6px;
}

.wcl-loyalty-benefit-label {
  font-family: var(--wcl-font-sans);
  font-size: 11.5px;
  font-weight: 600;
  color: #374151;
  line-height: 1.3;
}

.wcl-tracking-widest {
  letter-spacing: 0.22em;
}

.wcl-tracking-wide {
  letter-spacing: 0.05em;
}

.wcl-tracking-header {
  letter-spacing: 0.12em;
}

.wcl-story-img-left-wrapper {
  height: 260px;
}

.wcl-story-img-right-wrapper {
  height: 340px;
}

.wcl-about-pano-img {
  object-fit: cover;
  object-position: center 45%;
}

.wcl-about-toast-img {
  object-fit: cover;
  object-position: center 40%;
}




/* Age gate (shared components/common/AgeGate) */
.age-gate-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.8);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 16px;
  z-index: 2000;
}

.age-gate-card {
  background-color: #fff;
  border-radius: 16px;
  max-width: 570px;
  width: 100%;
  padding: 30px 24px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

.age-gate-card h3 {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.5;
  color: #111827;
  margin: 0;
}

.age-gate-card .custom-checkbox {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-size: 14px;
  color: #374151;
  user-select: none;
}

.age-gate-card .custom-checkbox input {
  display: none;
}

.age-gate-card .checkmark {
  width: 18px;
  height: 18px;
  border: 1px solid #9ca3af;
  border-radius: 4px;
  display: inline-block;
  margin-right: 8px;
  position: relative;
}

.age-gate-card .custom-checkbox input:checked + .checkmark {
  background-color: #1e4e8c;
  border-color: #1e4e8c;
}

.age-gate-card .custom-checkbox input:checked + .checkmark::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 1px;
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

.age-gate-card .redButton {
  background-color: #1e4e8c;
  color: #fff;
  border: none;
  border-radius: 50px;
  font-weight: 700;
  font-size: 14px;
  padding: 12px 0;
  width: 100%;
  max-width: 160px;
}

.age-gate-card .redButton:hover {
  background-color: #163e72;
}

/* ============================================================
   WCL category mega-menu modal
   Figma 9560:14489 (Wine), 9560:5974 (expanded), 9726:10706 (Spirits)
   card 1440x596 | 5 columns, 274px pitch | rows 58px apart
   ============================================================ */
/* the menu drops straight from the header and covers the full width (user, 2026-10-23) */
.wcl-cm-overlay {
  /* Figma 9560:14489: the dim layer covers the header too; the card starts at its bottom */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  padding-top: var(--wcl-header-h, 116px);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  background-color: rgba(17, 24, 39, 0.35);
  z-index: 1050;
}

.wcl-cm-card {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  /* fits its rows (user, 2026-10-23: the fixed 596 left Beer, one row, mostly empty) */
  max-height: 100%;
  padding: 13px 36px 20px;
  background-color: #FFFFFF;
  border-radius: 12px;
  box-shadow: 0 18px 48px -12px rgba(33, 30, 28, 0.15);
}

.wcl-cm-close {
  position: absolute;
  top: 26px;
  right: 31px;
  padding: 2px;
  border: 0;
  background: transparent;
  color: #9CA3AF;
}

.wcl-cm-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
}

/* Figma: cap height 28px (ink y38..65) */
.wcl-cm-title {
  font-size: 40px;
  line-height: 1;
  color: #030712;
}

/* Figma: ink y81..95, 24px under the title */
.wcl-cm-desc {
  margin: 13px 0 0;
  font-size: 14px;
  line-height: 1.4;
  color: #6B7280;
}

.wcl-cm-scroll {
  margin-top: 25px;
  overflow-y: auto;
  min-height: 0;
}

/* 5 x 274px columns, first text column at x33 of the card */
.wcl-cm-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  column-gap: 0;
  row-gap: 0;
  /* rows size to the tallest cell, so an open panel pushes the next row down */
  align-items: stretch;
  grid-auto-rows: min-content;
}

.wcl-cm-cell {
  padding-right: 24px;
}

/* expanded column: #F2F2F2 panel, one column wide, radius 12
   Figma 9726:10706: title +21 from the panel top, sub-items 27 apart, View All +126 */
.wcl-cm-cell--open {
  /* keep the column gutter: without it the panel covers the next column */
  padding-right: 24px;
  margin-bottom: 32px;
  background-color: transparent;
  background-clip: content-box;
  border-radius: 0;
}

/* the grey panel lives inside the gutter, never over the neighbour */
.wcl-cm-cell--open > .wcl-cm-row,
.wcl-cm-cell--open > .wcl-cm-sub {
  background-color: #F2F2F2;
}

.wcl-cm-cell--open > .wcl-cm-row {
  border-radius: 12px 12px 0 0;
}

.wcl-cm-cell--open > .wcl-cm-sub {
  border-radius: 0 0 12px 12px;
}

.wcl-cm-cell--open .wcl-cm-row {
  min-height: 0;
  padding: 14px 18px 0;
}

.wcl-cm-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  /* Figma: category rows 58px apart */
  min-height: 58px;
}

.wcl-cm-name {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1 auto;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
  color: #2D2926;
}

/* flag is 20px; names without one keep the same text start */
.wcl-cm-flag {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  border-radius: 50%;
  object-fit: cover;
}

.wcl-cm-flag--none {
  display: none;
}

.wcl-cm-toggle {
  flex-shrink: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #1D4F91;
}

.wcl-cm-cell--open .wcl-cm-toggle {
  margin-right: 0;
}

.wcl-cm-sub {
  display: flex;
  flex-direction: column;
  /* Figma: rows 27px apart, aligned with the title (no indent) */
  gap: 14px;
  padding: 18px 18px 18px;
}

.wcl-cm-subitem {
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  font-size: 14px;
  line-height: 1.3;
  color: #595D62;
}

.wcl-cm-viewall {
  /* Figma: 45px under the last sub-item */
  margin-top: 17px;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  font-size: 13px;
  font-weight: 600;
  color: #1D4F91;
}

.wcl-cm-foot {
  padding-top: 48px;
  text-align: center;
}

/* Figma: 186x53 outlined pill */
.wcl-cm-cta {
  min-width: 186px;
  height: 53px;
  padding: 0 28px;
  border: 1px solid #1D4F91;
  border-radius: 9999px;
  background-color: #FFFFFF;
  color: #1D4F91;
  font-size: 15px;
  font-weight: 600;
}

@media (max-width: 1199px) {
  .wcl-cm-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .wcl-cm-card {
    padding: 13px 20px 20px;
  }

  .wcl-cm-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .wcl-cm-title {
    font-size: 32px;
  }

  /* 44px tap targets on phones */
  .wcl-cm-row {
    min-height: 48px;
  }
}

@media (max-width: 479px) {
  .wcl-cm-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ============================================================
   WCL product detail page - Figma 10531:8008
   content x45..1394 | image panel 717x688 | right column from x804
   ============================================================ */
.wcl-pdp {
  /* Figma: 45px gutters, full width (no centred max-width box) */
  padding: 0 clamp(16px, 3.2vw, 45px) 120px;
}

/* the fixed add-to-cart bar sits over the page end: clear it on the footer too */
.wcl-pdp-page .wcl-footer {
  padding-bottom: 180px;
}

@media (min-width: 768px) {
  .wcl-pdp-page .wcl-footer {
    padding-bottom: 110px;
  }
}

/* Figma: breadcrumb in its own band under the header */
.wcl-pdp > nav[aria-label="Breadcrumb"] {
  margin: 0 calc(-1 * clamp(16px, 3.2vw, 45px)) 0;
  padding: 44px clamp(16px, 3.3vw, 47px);
  border-bottom: 1px solid #E5E5E4;
  font-size: 14px !important;
  color: #2D2926 !important;
}

.wcl-pdp-barinner {
  width: 100%;
  padding: 0 clamp(16px, 3.2vw, 45px);
}

/* Figma: image column 717, info column 591, 42px gap */
@media (min-width: 992px) {
  .wcl-pdp-row > .col-lg-6:first-child {
    flex: 0 0 auto;
    width: 53.5%;
  }

  .wcl-pdp-row > .col-lg-6:last-child {
    flex: 0 0 auto;
    width: 46.5%;
  }
}

/* Figma 10531:8008 black details card: x45..1395, 42 under the image panel, radius 30, 32 in; centre divider,
   right column text 28 past it (20 on the Grape / Aging row); labels 14/600, values 16, names Bebas 44 */
.wcl-pdp-specs {
  margin-top: 42px;
  padding: 34px 32px 32px;
  border-radius: 30px;
  background-color: #000000;
  color: #FFFFFF;
}

.wcl-pdp-specs-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid #2B2B2B;
}

.wcl-pdp-specs-row--top {
  padding-bottom: 32px;
}

.wcl-pdp-specs-row--mid {
  padding: 32px 0 20px;
}

.wcl-pdp-specs-col {
  min-width: 0;
}

.wcl-pdp-specs-col + .wcl-pdp-specs-col {
  padding-left: 28px;
  border-left: 1px solid #2B2B2B;
}

.wcl-pdp-specs-row--mid .wcl-pdp-specs-col + .wcl-pdp-specs-col {
  padding-left: 20px;
}

.wcl-pdp-specs-label {
  display: block;
  margin-bottom: 4px;
  font-family: var(--wcl-font-sans);
  font-size: 14px;
  font-weight: 600;
  line-height: 20px;
  color: #FFFFFF;
}

.wcl-pdp-specs-title {
  margin: 0 0 24px;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 44px;
  font-weight: 400;
  line-height: 50px;
  text-transform: uppercase;
  color: #FFFFFF;
}

.wcl-pdp-specs-value {
  margin: 0;
  font-family: var(--wcl-font-sans);
  font-size: 16px;
  line-height: 22px;
  color: #FFFFFF;
}

.wcl-pdp-specs-row--top .wcl-pdp-specs-value + .wcl-pdp-specs-label {
  margin-top: 20px;
}

.wcl-pdp-specs-paired {
  padding-top: 20px;
}

/* phones / small tablets: one column, the divider becomes a rule */
@media (max-width: 767px) {
  .wcl-pdp-specs {
    margin-top: 32px;
    padding: 24px 20px;
    border-radius: 20px;
  }

  .wcl-pdp-specs-row {
    grid-template-columns: 1fr;
  }

  .wcl-pdp-specs-row--top {
    padding-bottom: 24px;
  }

  .wcl-pdp-specs-row--mid {
    padding: 24px 0 20px;
  }

  .wcl-pdp-specs-col + .wcl-pdp-specs-col,
  .wcl-pdp-specs-row--mid .wcl-pdp-specs-col + .wcl-pdp-specs-col {
    margin-top: 20px;
    padding: 20px 0 0;
    border-left: 0;
    border-top: 1px solid #2B2B2B;
  }

  .wcl-pdp-specs-title {
    margin-bottom: 20px;
    font-size: 36px;
    line-height: 42px;
  }
}

/* 44px tap targets on phones for the Current Specials tabs and the carousel dots */
@media (max-width: 575px) {
  .wcl-specials-tab {
    min-height: 44px;
  }

  .wcl-rec-hero-dots button,
  .wcl-rec-hero-dots span {
    min-width: 24px;
    min-height: 24px;
  }
}

/* Figma 9114:94 hero copy: title 48/67 with 32 under it, description 16/22 with 46
   under it. Classes instead of Bootstrap mb-* / m-0, which are !important. */
.wcl-rec-hero-title {
  margin: 0 0 10px;
}

.wcl-rec-hero-desc {
  margin: 0 0 42px;
}

/* ============================================================
   WCL cart and checkout - Figma 9295:61 (cart), 9296:14315 (email), 9296:14788 (code),
   9296:16882 (delivery), 9296:16330 (payment), 9297:88 (order placed)
   content x45..1394 | left column 904 | 26 gap | summary 420
   Line boxes are set so the cap tops land on the Figma ink rows
   (Instrument Sans cap top = line-height/2 - 0.36em, Bebas = line-height/2 - 0.4em).
   ============================================================ */
.wcl-co-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background-color: #FFFFFF;
  color: #2D2926;
  font-family: var(--wcl-font-sans);
  overflow-x: hidden;
}

.wcl-co-header {
  /* same strip as the product header: 116 tall, logo at the 36px gutter, 1px #E5E5E5 */
  display: flex;
  align-items: center;
  gap: 24px;
  /* 116 white + the 1px border, as .wcl-ph */
  min-height: calc(var(--wcl-header-h) + 1px);
  padding: 0 clamp(16px, 2.5vw, 36px);
  border-bottom: 1px solid #E5E5E5;
  background-color: #FFFFFF;
}

.wcl-co-logo {
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.wcl-co-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  margin-left: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #1D4F91;
  font-size: 16px;
  font-weight: 500;
}

.wcl-co-main {
  padding: 0 clamp(16px, 3.2vw, 45px) 80px;
}

/* Figma: ink y166..177, "Home" #595D62 400, "Cart" #2D2926 500 */
.wcl-co-crumbs {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 44px 0 49px;
  font-size: 14px;
  line-height: 20px;
  color: #595D62;
}

.wcl-co-crumbs button {
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  color: #595D62;
}

.wcl-co-crumbs button:last-child {
  font-weight: 500;
  color: #2D2926;
}

.wcl-co-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 26px;
  align-items: start;
}

.wcl-co-card {
  background-color: #FFFFFF;
  border: 1px solid #E9EAEB;
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(10, 13, 18, 0.05);
}

/* ---- cart items (Figma 9295:61) ---- */
.wcl-co-items-head {
  height: 68px;
  padding: 22px 23px 0;
  border-bottom: 1px solid #E9EAEB;
}

.wcl-co-items-title {
  margin: 0;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 22px;
  color: #2D2926;
}

.wcl-co-empty {
  padding: 48px 23px;
  text-align: center;
  font-size: 14px;
  color: #595D62;
}

.wcl-co-item {
  /* thumb + name | price 216 | stepper 84 | delete 72 */
  display: grid;
  grid-template-columns: minmax(0, 1fr) 216px 84px 72px;
  align-items: center;
  min-height: 83px;
  padding: 16px 23px 15px;
}

.wcl-co-item + .wcl-co-item {
  border-top: 1px solid #E9EAEB;
}

.wcl-co-item-main {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.wcl-co-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  overflow: hidden;
  background-color: #F6F5F2;
  border: 1px solid #BDD3E2;
  border-radius: 4px;
}

.wcl-co-thumb > div {
  width: 100%;
  height: 100%;
}

.wcl-co-thumb--empty > div {
  width: 60%;
  height: 90%;
}

/* long names wrap instead of being cut, so the whole product name is always readable */
.wcl-co-item-name {
  min-width: 0;
  overflow-wrap: anywhere;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 20px;
  line-height: 24px;
  color: #2D2926;
  text-transform: uppercase;
}

.wcl-co-item-price {
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #535862;
}

/* Figma: 84x40 pill, 14px minus / plus, quantity centred */
.wcl-co-stepper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 84px;
  height: 40px;
  padding: 0 7px;
  background-color: #FFFFFF;
  border: 1px solid #E9EAEB;
  border-radius: 20px;
  box-shadow: 0 1px 2px rgba(10, 13, 18, 0.05);
}

.wcl-co-stepper button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #000000;
}

.wcl-co-stepper span {
  min-width: 12px;
  text-align: center;
  font-size: 13px;
  font-weight: 500;
  line-height: 16px;
  color: #2D2926;
}

.wcl-co-delete {
  display: flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #EF4D2F;
}

.wcl-co-stepper button:disabled,
.wcl-co-delete:disabled {
  opacity: 0.5;
}

/* ---- order summary ---- */
.wcl-co-summary {
  padding: 23px;
}

.wcl-co-summary-title {
  margin: 0 0 21px;
  font-size: 18px;
  font-weight: 600;
  line-height: 27px;
  color: #2D2926;
}

.wcl-co-sum-item {
  display: flex;
  align-items: flex-start;
  gap: 22px;
  margin-bottom: 5px;
}

.wcl-co-sum-item + .wcl-co-sum-item {
  margin-top: 16px;
}

.wcl-co-sum-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 76px;
  height: 92px;
  overflow: hidden;
  background-color: #F6F5F2;
  border: 1px solid #BDD3E2;
  border-radius: 4px;
}

.wcl-co-sum-thumb > div {
  width: 100%;
  height: 100%;
}

.wcl-co-sum-thumb--empty > div {
  width: 50%;
  height: 85%;
}

.wcl-co-sum-body {
  flex: 1;
  min-width: 0;
  padding-top: 5px;
}

.wcl-co-sum-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.wcl-co-sum-name {
  margin: 0;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 20px;
  color: #2D2926;
  text-transform: uppercase;
}

.wcl-co-sum-price {
  flex-shrink: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 20px;
  color: #2D2926;
}

.wcl-co-sku {
  display: inline-flex;
  align-items: center;
  height: 31px;
  margin-top: 11px;
  padding: 0 15px;
  background-color: #F6F6F6;
  border-radius: 16px;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  color: #2D2926;
}

.wcl-co-qty {
  margin-top: 5px;
  font-size: 14px;
  line-height: 20px;
  color: #2D2926;
}

/* Figma: 50px rows, cap 18 under the divider, 1px #EFF0F4 */
.wcl-co-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0 17px;
  border-bottom: 1px solid #EFF0F4;
  font-size: 14px;
  line-height: 20px;
  color: #2D2926;
}

/* Figma: the first row sits 2px lower and ends 30 under its text */
.wcl-co-sum-item + .wcl-co-row {
  padding: 14px 0 15px;
}

.wcl-co-row > span:last-child {
  font-weight: 500;
  white-space: nowrap;
}

.wcl-co-row-muted {
  color: #898989;
}

.wcl-co-row-discount {
  color: #058E6E;
}

.wcl-co-total {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 12px;
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
  color: #2D2926;
}

/* ---- buttons ---- */
.wcl-co-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 52px;
  padding: 0 20px;
  border: 0;
  border-radius: 26px;
  background-color: #1D4F91;
  color: #FFFFFF;
  font-size: 16px;
  font-weight: 600;
  line-height: 20px;
  white-space: nowrap;
}

.wcl-co-btn:disabled {
  opacity: 0.6;
}

.wcl-co-btn--block {
  width: 100%;
}

.wcl-co-summary .wcl-co-btn--block {
  margin-top: 20px;
}

.wcl-co-link {
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  color: #1D4F91;
  text-decoration: none;
}

/* ---- checkout steps (Figma 9296:14315 / 14788 / 16882 / 16330) ---- */
.wcl-co-steps {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.wcl-co-step {
  padding: 23px 23px 24px;
}

.wcl-co-step-head {
  display: flex;
  align-items: center;
  gap: 20px;
}

/* step number badge */
.wcl-co-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  /* always a circle on every step (user, 2026-10-23) */
  width: 32px;
  height: 32px;
  border: 1px solid #2D2926;
  border-radius: 50%;
  background-color: #FFFFFF;
  color: #2D2926;
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
}

.wcl-co-badge--on {
  background-color: #2D2926;
  color: #FFFFFF;
}

/* e-mail / code frames: badge level with the two text lines, title 1px down */
.wcl-co-step-head--top {
  align-items: flex-start;
}

.wcl-co-step-head--top > .wcl-co-badge {
  margin-top: 12px;
}

.wcl-co-step-head--top .wcl-co-step-title {
  padding-top: 1px;
}

.wcl-co-step-head--top .wcl-co-step-sub {
  margin-top: 4px;
}

.wcl-co-step-title {
  margin: 0;
  font-size: 18px;
  font-weight: 500;
  line-height: 24px;
  color: #2D2926;
}

.wcl-co-step-title--on {
  font-weight: 600;
}

.wcl-co-step-sub {
  margin: 6px 0 0;
  font-size: 16px;
  line-height: 24px;
  color: #2D2926;
}

.wcl-co-done {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  margin-left: auto;
  margin-right: 2px;
  border-radius: 50%;
  background-color: #058E6E;
  color: #FFFFFF;
}

.wcl-co-skip {
  align-self: flex-start;
  min-width: 72px;
  height: 32px;
  margin: 4px 0 0 auto;
  padding: 0 18px;
  border: 1px solid #1D4F91;
  border-radius: 16px;
  background-color: #FFFFFF;
  color: #1D4F91;
  font-size: 16px;
  line-height: 20px;
}

/* step 1 body: lined up with the title text (x119 = badge 32 + 18) */
.wcl-co-email {
  margin: 18px 0 0 50px;
}

.wcl-co-email-label {
  display: block;
  margin: 0 0 9px;
  font-size: 16px;
  line-height: 24px;
  color: #2D2926;
}

.wcl-co-email-row {
  display: flex;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 12px;
}

.wcl-co-email-row + .wcl-co-email-label {
  margin-top: 16px;
}

.wcl-co-email-field {
  position: relative;
  width: 403px;
  max-width: 100%;
}

.wcl-co-email-input {
  width: 100%;
  height: 40px;
  padding: 0 11px;
  border: 1px solid #E2E2E2;
  border-radius: 8px;
  background-color: #FFFFFF;
  font-size: 14px;
  color: #2D2926;
  outline: none;
}

.wcl-co-email-input::placeholder {
  color: #595D62;
  opacity: 1;
}

.wcl-co-email-input:focus,
.wcl-co-input:focus,
.wcl-co-otp input:focus {
  border-color: #1D4F91;
}

.wcl-co-email-input--pw {
  padding-right: 44px;
}

.wcl-co-eye {
  position: absolute;
  top: 50%;
  right: 12px;
  display: flex;
  align-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: #595D62;
  transform: translateY(-50%);
}

/* Figma: six 70x40 boxes, 8 apart */
.wcl-co-otp {
  display: flex;
  gap: 8px;
}

.wcl-co-otp input {
  width: 70px;
  height: 40px;
  padding: 0;
  border: 1px solid #E2E2E2;
  border-radius: 8px;
  background-color: #FFFFFF;
  text-align: center;
  font-size: 18px;
  font-weight: 600;
  color: #2D2926;
  outline: none;
}

.wcl-co-otp-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 16px;
}

/* step 2 body (Figma 9296:16882) */
.wcl-co-toggle {
  display: inline-flex;
  margin-top: 15px;
  padding: 10px;
  border-radius: 32px;
  background-color: #EEEEEE;
}

.wcl-co-toggle button {
  height: 44px;
  padding: 0 30.5px;
  border: 0;
  border-radius: 22px;
  background: transparent;
  color: #2D2926;
  font-size: 16px;
  line-height: 20px;
}

.wcl-co-toggle button + button {
  padding: 0 31.5px;
}

.wcl-co-toggle button.is-on {
  background-color: #1D4F91;
  color: #FFFFFF;
}

.wcl-co-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 14px;
  margin-top: 14px;
}

.wcl-co-label {
  display: block;
  margin: 0 0 4px;
  font-size: 14px;
  line-height: 20px;
  color: #909294;
}

.wcl-co-input {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 53px;
  padding: 0 17px;
  border: 1px solid #E5E5E5;
  border-radius: 27px;
  background-color: #FFFFFF;
  font-size: 13px;
  font-weight: 600;
  color: #212529;
  text-align: left;
  outline: none;
}

.wcl-co-input::placeholder {
  color: #212529;
  opacity: 1;
}

.wcl-co-input--clear {
  padding-right: 44px;
}

select.wcl-co-input {
  appearance: none;
  padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23424141' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='1 4 6 9 11 4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
}

/* Figma shows the closed time list in full colour before a date is picked */
select.wcl-co-input:disabled {
  background-color: #FFFFFF;
  color: #212529;
  opacity: 1;
  cursor: not-allowed;
}

.wcl-co-input-placeholder {
  color: #212529;
}

.wcl-co-h {
  margin: 23px 0 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  color: #2D2926;
}

.wcl-co-fields--address + .wcl-co-h {
  margin-top: 21px;
}

.wcl-co-fields--times {
  margin-top: 10px;
}

/* Figma: the address row sits 1px lower under its labels than the others */
.wcl-co-fields--address .wcl-co-field .wcl-co-label {
  margin-bottom: 5px;
}

.wcl-co-note {
  margin: 4px 0 0;
  font-size: 14px;
  line-height: 20px;
  color: #6C6967;
}

.wcl-co-h + .wcl-co-tips {
  margin-top: 12px;
}

.wcl-co-tips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 15px;
}

.wcl-co-tips label {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font-size: 14px;
  line-height: 18px;
  color: #2D2926;
}

/* Figma radios: 18px, #F5F7F6 with a grey ring; checked = 4px #1D4F91 ring */
.wcl-co-radio {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin: 0;
  border: 1px solid #898989;
  border-radius: 50%;
  background-color: #F5F7F6;
  appearance: none;
  cursor: pointer;
}

.wcl-co-radio:checked {
  border: 4px solid #1D4F91;
  background-color: #FFFFFF;
}

.wcl-co-tips + .wcl-co-h {
  margin-top: 22px;
}

.wcl-co-pickup {
  margin-top: 14px;
  padding: 16px 19px;
  border: 1px solid #E5E5E5;
  border-radius: 16px;
  font-size: 14px;
  line-height: 20px;
  color: #6C6967;
}

.wcl-co-pickup strong {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: #2D2926;
}

.wcl-co-fields--phone {
  margin-top: 22px;
}

.wcl-co-gift {
  margin: 2px 0 0;
  font-size: 14px;
  line-height: 20px;
  color: #6C6967;
}

.wcl-co-gift + .wcl-co-field {
  margin-top: 9px;
}

.wcl-co-step .wcl-co-continue {
  margin-top: 16px;
  padding: 0 20.5px;
}

/* step 3 body (Figma 9296:16330) */
.wcl-co-pay {
  margin-top: 19px;
}

.wcl-co-paybox {
  padding: 19px 19px 23px;
  border: 1px solid #E9EAEB;
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(10, 13, 18, 0.05);
}

.wcl-co-paybox-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.wcl-co-paybox-title {
  display: block;
  font-size: 16px;
  font-weight: 500;
  line-height: 18px;
  color: #2D2926;
}

.wcl-co-paybox-sub {
  display: block;
  margin-top: 5px;
  font-size: 14px;
  line-height: 20px;
  color: #6C6967;
}

.wcl-co-brands {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-shrink: 0;
}

.wcl-co-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 28px;
  border-radius: 3px;
  color: #FFFFFF;
}

.wcl-co-brand--visa {
  width: 45px;
  background-color: #21246E;
  font-size: 13px;
  font-style: italic;
  font-weight: 900;
  letter-spacing: 0.02em;
}

.wcl-co-brand--mastercard {
  width: 48px;
  background-color: #013668;
}

.wcl-co-brand--mastercard i {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background-color: #E9302A;
}

.wcl-co-brand--mastercard i + i {
  margin-left: -6px;
  background-color: #F8B533;
  opacity: 0.95;
}

.wcl-co-brand--amex {
  width: 39px;
  background-color: #306FC5;
  font-size: 7px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.wcl-co-brand--other {
  width: 45px;
  background-color: #F5F5F5;
  color: #2D2926;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.wcl-co-saved {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 14px;
  padding: 18px 19px 18px;
  border: 1px solid #E9EAEB;
  border-radius: 16px;
  background-color: #FFFFFF;
  box-shadow: 0 1px 2px rgba(10, 13, 18, 0.05);
  cursor: pointer;
}

.wcl-co-saved + .wcl-co-saved {
  margin-top: 16px;
}

/* Figma: unselected card radio is 22px with a 2px #D9D9D9 ring, the selected one 18px */
.wcl-co-saved .wcl-co-radio {
  width: 22px;
  height: 22px;
  margin: 0 -2px;
  border: 2px solid #D9D9D9;
  background-color: #FFFFFF;
}

.wcl-co-saved .wcl-co-radio:checked {
  width: 18px;
  height: 18px;
  margin: 0;
  border: 4px solid #1D4F91;
}

.wcl-co-saved-num {
  display: block;
  font-size: 16px;
  line-height: 20px;
  color: #2D2926;
}

.wcl-co-saved-exp {
  margin-left: 8px;
  font-size: 14px;
  color: #6C6967;
}

.wcl-co-saved .wcl-co-link {
  display: block;
  margin-top: 3px;
  font-size: 14px;
  line-height: 20px;
  color: #6184B2;
}

.wcl-co-saved .wcl-co-brand {
  margin-left: auto;
}

.wcl-co-paybox-note {
  margin: 20px 0 0;
  font-size: 16px;
  line-height: 20px;
  color: #2D2926;
}

.wcl-co-newcard {
  margin-top: 14px;
}

.wcl-co-saved ~ .wcl-co-newcard {
  padding: 19px;
  border: 1px solid #E9EAEB;
  border-radius: 16px;
}

/* Stripe Elements mount inside the same pill as the inputs */
.wcl-co-input.StripeElement {
  display: block;
  padding-top: 17px;
}

.wcl-co-newcard-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 16px;
  font-size: 14px;
}

.wcl-co-or {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 14px;
  font-size: 14px;
  line-height: 20px;
  color: #2D2926;
}

.wcl-co-or::before,
.wcl-co-or::after {
  content: "";
  flex: 1;
  height: 2px;
  background-color: #F4F4F4;
}

.wcl-co-wallets {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}

.wcl-co-wallet {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 52px;
  padding: 0 16px;
  border: 2px solid #9D9FA1;
  border-radius: 26px;
  background-color: #FFFFFF;
  color: #3C4043;
  font-size: 21px;
  line-height: 24px;
}

.wcl-co-wallet--apple {
  border-color: #808080;
  color: #000000;
}

.wcl-co-wallet b {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-weight: 500;
}

.wcl-co-terms {
  display: flex;
  align-items: center;
  gap: 13px;
  margin-top: 23px;
  font-size: 14px;
  line-height: 18px;
  color: #2D2926;
}

.wcl-co-terms label {
  margin: 0;
  cursor: pointer;
}

.wcl-co-terms a {
  color: #1D4F91;
}

.wcl-co-check {
  flex-shrink: 0;
  width: 18px;
  height: 18px;
  margin: 0;
  border: 1px solid #898989;
  border-radius: 4px;
  background-color: #FFFFFF;
  appearance: none;
  cursor: pointer;
}

.wcl-co-check:checked {
  border-color: #1D4F91;
  background: #1D4F91 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%23FFFFFF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='2.5 6.2 5 8.5 9.5 3.5'/%3E%3C/svg%3E") center / 12px no-repeat;
}

.wcl-co-place {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 20px;
}

.wcl-co-secure {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  line-height: 20px;
  color: #6C6967;
}

/* ---- order placed (Figma 9297:88): 733 wide card, 95 under the header ---- */
.wcl-co-done-page {
  display: flex;
  justify-content: center;
  padding: 94px 16px 120px;
}

.wcl-co-success {
  width: 100%;
  max-width: 733px;
  padding: 24px 54px 32px;
  border-radius: 20px;
  background-color: #FFFFFF;
  /* fitted to the Figma render's shadow brightness (mean difference 1.4 of 255) */
  box-shadow: 0 40px 100px rgba(16, 37, 66, 0.12), 0 4px 10px rgba(16, 37, 66, 0.06);
  text-align: center;
}

.wcl-co-halo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin: 0 auto;
  border-radius: 50%;
  background-color: #E4F3ED;
}

.wcl-co-halo span {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background-color: #23A26D;
  color: #FFFFFF;
}

.wcl-co-success h2 {
  margin: 25px 0 0;
  font-size: 18px;
  font-weight: 600;
  line-height: 24px;
  color: #2D2926;
}

.wcl-co-thanks {
  margin: 11px 0 0;
  font-size: 13px;
  line-height: 18px;
  color: #444444;
}

.wcl-co-confirm {
  margin: 20px 0 0;
  font-size: 18px;
  line-height: 24px;
  color: #444444;
}

.wcl-co-confirm strong {
  font-weight: 700;
  color: #2D2926;
}

/* Figma: 1px #DCDEE0 dashes, 6 on 6 off */
.wcl-co-dash {
  height: 1px;
  margin: 29px 0 32px;
  background: repeating-linear-gradient(to right, #DCDEE0 0 6px, transparent 6px 12px);
}

.wcl-co-details {
  margin-bottom: 32px;
  text-align: left;
}

.wcl-co-details h3 {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 600;
  line-height: 24px;
  color: #2D2926;
}

.wcl-co-details .wcl-co-row {
  padding: 8px 0 9px;
}

.wcl-co-details .wcl-co-row--total {
  font-size: 16px;
  font-weight: 700;
  border-bottom: 0;
}

.wcl-co-details-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-top: 12px;
  font-size: 14px;
  line-height: 20px;
  color: #6C6967;
}

.wcl-co-details-info strong {
  font-weight: 600;
  color: #2D2926;
}

/* ---- responsive ---- */
@media (max-width: 1199px) {
  .wcl-co-grid {
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 20px;
  }

  .wcl-co-item {
    grid-template-columns: minmax(0, 1fr) 120px 84px 48px;
  }
}

@media (max-width: 991px) {
  .wcl-co-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 767px) {
  .wcl-co-crumbs {
    margin: 24px 0 24px;
  }

  /* name on its own row, then price | stepper | delete */
  .wcl-co-item {
    grid-template-columns: minmax(0, 1fr) auto 44px;
    grid-template-areas:
      "main main main"
      "price stepper delete";
    row-gap: 12px;
    column-gap: 16px;
  }

  .wcl-co-item-main {
    grid-area: main;
  }

  .wcl-co-item-price {
    grid-area: price;
  }

  .wcl-co-stepper {
    grid-area: stepper;
  }

  .wcl-co-delete {
    grid-area: delete;
  }

  .wcl-co-fields,
  .wcl-co-wallets {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .wcl-co-email {
    margin-left: 0;
  }

  .wcl-co-email-field {
    width: 100%;
  }

  .wcl-co-otp input {
    flex: 1;
    width: auto;
    min-width: 0;
  }

  .wcl-co-paybox-head {
    flex-direction: column;
    align-items: flex-start;
  }

  .wcl-co-success {
    padding: 24px 20px 28px;
  }

  .wcl-co-done-page {
    padding-top: 48px;
  }
}

/* phones: 44px tap targets */
@media (max-width: 575px) {
  .wcl-co-step {
    padding: 19px 15px 20px;
  }

  .wcl-co-summary,
  .wcl-co-paybox,
  .wcl-co-saved {
    padding: 15px;
  }

  .wcl-co-step-head {
    gap: 12px;
    flex-wrap: wrap;
  }

  .wcl-co-stepper {
    width: 120px;
    height: 44px;
    border-radius: 22px;
  }

  .wcl-co-stepper button,
  .wcl-co-delete {
    width: 44px;
    height: 44px;
  }

  .wcl-co-skip,
  .wcl-co-otp input,
  .wcl-co-email-input {
    height: 44px;
  }

  .wcl-co-link,
  .wcl-co-crumbs button,
  .wcl-co-logo {
    min-width: 44px;
    min-height: 44px;
  }

  .wcl-co-eye {
    right: 0;
    justify-content: center;
    width: 44px;
    height: 44px;
  }

  .wcl-co-clear {
    right: 4px !important;
    justify-content: center;
    width: 44px;
    height: 44px;
  }

  .wcl-co-terms a {
    display: inline-block;
    padding: 13px 0;
  }

  .wcl-co-email-row .wcl-co-btn {
    width: 100%;
  }

  .wcl-co-toggle {
    display: flex;
  }

  .wcl-co-toggle button {
    flex: 1;
    padding: 0 12px;
  }

  .wcl-co-tips label {
    min-height: 44px;
  }

  .wcl-co-wallet {
    font-size: 18px;
  }
}
