/* Point Lookout catalog. Load after style.css; the shared site shell is unchanged.
   Merchandising follows a classic bottle-shop rhythm: photo window, category tiles,
   service promises, then product shelves on a deeper paper band. */
.plws-main--catalog > .wc-block-store-notices:has(.woocommerce-notices-wrapper:empty) { display: none; }
.plws-main--catalog > .plws-market { margin-block-start: 0; }
.plws-market {
  --market-muted: #52625e;
  --market-space: clamp(3rem, 6vw, 5.5rem);
  --market-gutter: clamp(1.2rem, 5vw, 3rem);
  --market-tile: #ece3d1;
  --market-card-line: rgba(33, 48, 46, .13);
  --market-on-ink: rgba(245, 239, 227, .93);
  --market-sea-light: #c2d6d1;
  background: var(--paper, #f5efe3);
  color: var(--ink, #21302e);
  font-family: var(--body, "Hanken Grotesk", sans-serif);
  overflow-wrap: break-word;
}

.plws-market :where(a, button, input, select, summary) {
  -webkit-tap-highlight-color: transparent;
}

.plws-market :where(a, button, input, select, summary):focus-visible {
  outline: 2px solid var(--ink, #21302e);
  outline-offset: 4px;
}

.plws-market :where(input, select) {
  accent-color: var(--ink, #21302e);
  caret-color: var(--ink, #21302e);
}

.plws-market ::selection {
  background: var(--ink, #21302e);
  color: var(--paper, #f5efe3);
}

.plws-market :where(h1, h2, h3, p) { margin: 0; }
.plws-market :where(h1, h2) { text-wrap: balance; }
.plws-market :where(a) { text-underline-offset: .22em; }
.plws-market :where(svg) { flex-shrink: 0; }

/* A compact second navigation row keeps the primary site links intact. */
.plws-market-nav {
  position: relative;
  z-index: 20;
  border-bottom: 1px solid var(--line, rgba(33, 48, 46, .16));
  background: var(--paper, #f5efe3);
}

.plws-market-nav__links {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0 clamp(1.25rem, 3vw, 2.6rem);
}

.plws-market-nav__links > .plws-market-nav__item > a,
.plws-market-nav__links > details > summary {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 48px;
  padding: .6rem 0;
  color: var(--ink, #21302e);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .055em;
  line-height: 1.3;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
}

.plws-market-nav__links > details { position: relative; }
.plws-market-nav summary { list-style: none; }
.plws-market-nav summary::-webkit-details-marker { display: none; }
.plws-market-nav summary::marker { content: ""; }

.plws-market-nav summary::after {
  content: "";
  width: 6px;
  height: 6px;
  margin-top: -3px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
}

.plws-market-nav details[open] > summary::after {
  margin-top: 3px;
  transform: rotate(225deg);
}

.plws-market-nav__links > .plws-market-nav__item > a:hover,
.plws-market-nav summary:hover,
.plws-market-nav__links > .plws-market-nav__item > a[aria-current] {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .45em;
}

.plws-market-nav__dropdown {
  position: absolute;
  top: 100%;
  left: -.9rem;
  width: max-content;
  min-width: 200px;
  max-width: min(280px, calc(100vw - 2.4rem));
  max-height: min(65svh, 440px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: .5rem;
  border: 1px solid var(--line-2, rgba(33, 48, 46, .3));
  background: var(--paper, #f5efe3);
  box-shadow: 0 18px 32px -22px rgba(33, 48, 46, .45);
  scrollbar-color: var(--ink-soft, #5d6b67) var(--paper-2, #efe7d8);
  scrollbar-width: thin;
}

.plws-market-nav__dropdown > a {
  display: block;
  min-height: 44px;
  padding: .65rem .75rem;
  font-size: .9rem;
  line-height: 1.45;
  text-decoration: none;
}

.plws-market-nav__dropdown > a:hover,
.plws-market-nav__dropdown > a[aria-current] {
  background: var(--paper-2, #efe7d8);
}

.plws-market-nav__links > details:last-child .plws-market-nav__dropdown {
  right: -.9rem;
  left: auto;
}

.plws-market-menu > summary { display: none; }
.plws-market-menu > summary::after { content: none; }

/* The shop window: the store's own photograph under an ink wash, split into red and white. */
.plws-market-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-content: center;
  min-height: clamp(480px, 64svh, 620px);
  padding-block: clamp(3.5rem, 7vw, 5rem) clamp(7rem, 10vw, 8.5rem);
  overflow: hidden;
  background: radial-gradient(85% 120% at 50% 18%, #33504b 0%, var(--ink, #21302e) 68%);
  color: var(--paper, #f5efe3);
  text-align: center;
}
.plws-market-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  /* Measured against the photo's bright price tags: copy keeps 4.5:1 and display type 3:1. */
  background:
    radial-gradient(58% 52% at 50% 46%, rgba(33, 48, 46, .5) 0%, rgba(33, 48, 46, .28) 55%, rgba(33, 48, 46, 0) 100%),
    linear-gradient(180deg, rgba(33, 48, 46, .64) 0%, rgba(33, 48, 46, .6) 45%, rgba(33, 48, 46, .9) 100%);
}
.plws-market-hero--compact::before {
  background:
    radial-gradient(60% 70% at 50% 50%, rgba(33, 48, 46, .45) 0%, rgba(33, 48, 46, .2) 70%, rgba(33, 48, 46, 0) 100%),
    linear-gradient(180deg, rgba(33, 48, 46, .7) 0%, rgba(33, 48, 46, .78) 100%);
}
.plws-market-hero::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  z-index: -1;
  width: 1px;
  background: rgba(245, 239, 227, .32);
  -webkit-mask-image: linear-gradient(180deg, #000 0, #000 9%, transparent 16%, transparent 80%, #000 88%, #000 100%);
  mask-image: linear-gradient(180deg, #000 0, #000 9%, transparent 16%, transparent 80%, #000 88%, #000 100%);
}
.plws-market-hero__photo {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
}
.plws-market-hero__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 50%;
}
.plws-market-hero__inner { position: relative; }
.plws-market-hero h1 {
  max-width: 13ch;
  margin-inline: auto;
  color: var(--paper, #f5efe3);
  font-family: var(--display);
  font-size: clamp(3rem, 6.2vw, 5.4rem);
  font-weight: 400;
  letter-spacing: -.012em;
  line-height: .98;
}
.plws-market-hero__script {
  display: block;
  margin-top: .12em;
  color: var(--market-sea-light);
  font-family: var(--script);
  font-size: .62em;
  letter-spacing: 0;
  line-height: 1.2;
}
.plws-market-hero__inner > p {
  max-width: 46ch;
  margin: 1.15rem auto 0;
  color: var(--market-on-ink);
  font-size: 1.05rem;
  line-height: 1.6;
}
.plws-market-hero .plws-market-search {
  width: min(560px, 100%);
  margin: 1.9rem auto 0;
  box-shadow: 0 22px 44px -26px rgba(0, 0, 0, .65);
}

/* Red and white bottles stand over their links at the window's edges. The nav spans the
   hero's height but passes clicks through, so only the two link columns are targets. */
.plws-market-hero__links {
  position: absolute;
  top: clamp(2rem, 4.5vw, 3.75rem);
  right: 0;
  bottom: clamp(1.8rem, 3.6vw, 2.8rem);
  left: 0;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  gap: 2rem;
  width: min(var(--maxw), calc(100% - 2 * var(--market-gutter)));
  margin-inline: auto;
  pointer-events: none;
}
.plws-market-hero__links a {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  gap: .55rem;
  width: clamp(110px, 13vw, 220px);
  min-width: 0;
  color: var(--paper, #f5efe3);
  text-align: left;
  text-decoration: none;
  white-space: nowrap;
  pointer-events: auto;
}
.plws-market-hero__links .plws-market-hero__bottle {
  flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  max-height: 440px;
  margin-bottom: .55rem;
  object-fit: contain;
  object-position: left bottom;
  filter: drop-shadow(0 22px 24px rgba(0, 0, 0, .5));
  transition: transform .5s var(--ease);
}
.plws-market-hero__links a:last-child .plws-market-hero__bottle { object-position: right bottom; }
.plws-market-hero__links a:hover .plws-market-hero__bottle { transform: translateY(-6px); }
.plws-market-hero__links a:last-child { align-items: flex-end; text-align: right; }
.plws-market-hero__links strong {
  font-family: var(--display);
  font-size: clamp(1.7rem, 2.5vw, 2.2rem);
  font-weight: 400;
  line-height: 1.05;
}
.plws-market-hero__links span {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  min-height: 32px;
  border-bottom: 1px solid rgba(245, 239, 227, .45);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
  transition: border-color .25s var(--ease);
}
.plws-market-hero__links svg { width: 17px; height: 17px; transition: transform .3s var(--ease); }
.plws-market-hero__links a:hover span { border-color: var(--paper, #f5efe3); }
.plws-market-hero__links a:hover svg { transform: translateX(4px); }
.plws-market-hero :where(a):focus-visible { outline-color: var(--paper, #f5efe3); }

/* Collection banner: the same window, shortened to a title and search. */
.plws-market-hero--compact {
  min-height: 0;
  padding-block: clamp(2.6rem, 5vw, 3.6rem);
}
.plws-market-hero--compact::after { content: none; }
.plws-market-hero--compact h1 { max-width: 20ch; font-size: clamp(2.5rem, 4.8vw, 3.8rem); line-height: 1.02; }
.plws-market-hero--compact .plws-market-hero__inner > p { margin-top: .5rem; font-size: 1rem; }
.plws-market-hero--compact .plws-market-search { width: min(480px, 100%); margin-top: 1.4rem; }

.plws-market-search {
  display: flex;
  align-items: stretch;
  gap: 5px;
  width: 100%;
  margin: 0;
  padding: 5px;
  border: 1px solid var(--line-2);
  border-radius: 3px;
  background: var(--paper);
}
.plws-market-search input[type="search"] {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: .7rem .75rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  font-size: 1rem;
}
.plws-market-search input[type="search"]:focus-visible { outline: 0; }
.plws-market-search:focus-within { outline: 2px solid var(--paper); outline-offset: 3px; }
.plws-market input::placeholder { color: var(--market-muted); opacity: 1; }
.plws-market-search button,
.plws-filter-form button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 46px;
  padding: .75rem 1.1rem;
  border: 1px solid var(--ink);
  border-radius: 0;
  background: var(--ink);
  color: var(--paper);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .055em;
  line-height: 1.4;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .2s var(--ease), color .2s var(--ease);
}
.plws-market-search button { width: 52px; min-height: 48px; padding: 0; border-radius: 2px; flex-shrink: 0; }
.plws-market-search button svg { width: 21px; height: 21px; }
.plws-market-search button:hover { background: var(--ink-2); }
.plws-market-search button:focus-visible { outline-color: var(--paper); outline-offset: -5px; }
.plws-filter-form button:hover { background: var(--paper); color: var(--ink); }
.plws-market :where(button, input, select):disabled { opacity: .45; cursor: not-allowed; }
/* No photo yet: the shop's drawn bottle (the store's logo on its label) over a quiet caption. */
.plws-product-placeholder { display: grid; grid-template-rows: minmax(0, 1fr) auto; justify-items: center; gap: .55rem; height: 100%; color: var(--market-muted); font-size: .7rem; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; text-align: center; }
.plws-market .plws-product-placeholder > img { display: block; width: auto; height: 100%; min-height: 0; max-width: 100%; max-height: 100%; margin: 0; padding: 0; object-fit: contain; opacity: .9; }

/* Section headings share one rhythm: generous above, tight to their content. */
.plws-market .plws-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .5rem 1.5rem;
  margin-bottom: 1.5rem;
}
.plws-market .plws-section-heading h2 {
  font-family: var(--display, "Cormorant Garamond", Georgia, serif);
  font-size: clamp(2.1rem, 3.2vw, 2.85rem);
  font-weight: 400;
  letter-spacing: -.015em;
  line-height: 1.05;
}

/* Category tiles: a trio of real bottles from each shelf, set into the paper. */
.plws-market-categories { padding-top: var(--market-space); }
.plws-category-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.plws-category-grid > li { min-width: 0; }
.plws-category-card {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.6rem 1.5rem 1.3rem;
  overflow: hidden;
  border-radius: 3px;
  background: var(--market-tile);
  color: var(--ink);
  text-decoration: none;
  transition: background-color .35s var(--ease);
}
.plws-category-card:hover { background: #e6dcc7; }
.plws-category-card__stage {
  position: relative;
  display: block;
  height: clamp(200px, 19vw, 250px);
  margin-bottom: 1.15rem;
}
.plws-category-card__bottle {
  position: absolute;
  bottom: 0;
  left: 30%;
  z-index: 2;
  /* Wider than the outer slots, so a squat bottle in the middle still reaches full height
     on a narrow phone tile. */
  width: 40%;
  height: 100%;
  /* Each bottle is its own stacking context, so it blends as a whole: white canvas becomes paper. */
  mix-blend-mode: multiply;
  transition: transform .55s var(--ease);
}
.plws-category-card__bottle:nth-child(2) { left: 3%; z-index: 1; width: 32%; height: 85%; }
.plws-category-card__bottle:nth-child(3) { left: 65%; z-index: 1; width: 32%; height: 85%; }
[data-bottles="2"] > .plws-category-card__bottle:nth-child(1) { left: 22%; width: 32%; }
[data-bottles="2"] > .plws-category-card__bottle:nth-child(2) { left: 46%; height: 90%; }
/* Packs and cases are wider than tall, so a bottle-width column shrinks them to one size.
   They stack like a shop display instead: two side by side, the third centred on top, one
   size, never overlapping (multiply blending would show one pack through another). Each
   slot is as tall as its pack at 46% of the tile's width (--a1..3: width over height, from
   the measured photo), so the top pack rests on the taller of the two below; shop.js draws
   a subject at 695/720 of its slot's height, hence .965. */
.plws-category-card__stage[data-shape="wide"] { container-type: size; }
[data-shape="wide"] > .plws-category-card__bottle { left: 27%; width: 46%; height: min(50cqh, 46cqw / var(--a1, 1.4)); }
[data-shape="wide"] > .plws-category-card__bottle:nth-child(1) { bottom: calc(.965 * max(min(50cqh, 46cqw / var(--a2, 1.4)), min(50cqh, 46cqw / var(--a3, 1.4)))); }
[data-shape="wide"] > .plws-category-card__bottle:nth-child(2) { left: 3%; width: 46%; height: min(50cqh, 46cqw / var(--a2, 1.4)); }
[data-shape="wide"] > .plws-category-card__bottle:nth-child(3) { left: 51%; width: 46%; height: min(50cqh, 46cqw / var(--a3, 1.4)); }
[data-shape="wide"][data-bottles="1"] > .plws-category-card__bottle:nth-child(1) { bottom: 0; height: min(100cqh, 46cqw / var(--a1, 1.4)); }
[data-shape="wide"][data-bottles="2"] > .plws-category-card__bottle:nth-child(1) { left: 2%; bottom: 0; width: 47%; height: min(100cqh, 47cqw / var(--a1, 1.4)); }
[data-shape="wide"][data-bottles="2"] > .plws-category-card__bottle:nth-child(2) { left: 51%; width: 47%; height: min(100cqh, 47cqw / var(--a2, 1.4)); }
.plws-category-card:hover .plws-category-card__bottle:nth-child(1) { transform: translateY(-8px); }
.plws-category-card:hover .plws-category-card__bottle:nth-child(2) { transform: translateY(-4px); transition-delay: .04s; }
.plws-category-card:hover .plws-category-card__bottle:nth-child(3) { transform: translateY(-4px); transition-delay: .08s; }
.plws-market .plws-category-card .plws-product-photo { padding: 0; background: transparent; }
.plws-market .plws-category-card .plws-product-photo > img {
  padding: 0;
  background: transparent;
  object-position: center bottom;
}
.plws-category-card__label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-top: auto;
  font-family: var(--display);
  font-size: clamp(1.55rem, 2vw, 1.9rem);
  line-height: 1.1;
}
.plws-category-card__label svg {
  width: 44px;
  height: 44px;
  padding: 12px;
  border: 1px solid var(--line-2);
  border-radius: 50%;
  transition: background-color .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), transform .35s var(--ease);
}
.plws-category-card:hover .plws-category-card__label svg { border-color: var(--ink); background: var(--ink); color: var(--paper); transform: translateX(3px); }

/* Service promises: three plain facts, centered under drawn icons. */
.plws-market-service { padding-block: var(--market-space); }
.plws-market-service > .plws-container {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
  text-align: center;
}
.plws-market-service > .plws-container > div { display: flex; flex-direction: column; align-items: center; gap: .3rem; min-width: 0; }
.plws-market-service__icon {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin-bottom: .7rem;
  border: 1px solid var(--line-2);
  border-radius: 50%;
  background: var(--paper-2);
}
.plws-market-service svg { width: 26px; height: 26px; }
.plws-market-service strong { font-size: 1rem; font-weight: 600; line-height: 1.4; }
.plws-market-service span:not(.plws-market-service__icon) { color: var(--market-muted); font-size: .88rem; line-height: 1.5; }

/* Shelves sit on a deeper band so white product cards read as one display. */
.plws-market-shelves {
  padding-block: var(--market-space);
  border-top: 1px solid var(--line);
  background: var(--paper-2);
}
.plws-market-shelf + .plws-market-shelf { margin-top: var(--market-space); }
/* Product page: related bottles reuse the shelf, set apart from the details above it. */
.plws-related {
  clear: both;
  margin-top: clamp(3rem, 6vw, 5rem);
  padding-top: clamp(2rem, 4vw, 3rem);
  border-top: 1px solid var(--line);
}
.plws-shelf-actions { display: flex; align-items: center; gap: 1.25rem; }
.plws-shelf-actions > a {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  min-height: 44px;
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
}
.plws-shelf-actions > a:hover { text-decoration: underline; text-underline-offset: .4em; }
.plws-shelf-actions > a svg { width: 17px; height: 17px; }
.plws-shelf-controls { display: flex; gap: .5rem; }
.plws-shelf-controls button {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid var(--line-2);
  border-radius: 50%;
  background: var(--paper);
  color: var(--ink);
  cursor: pointer;
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.plws-shelf-controls svg { width: 18px; height: 18px; }
.plws-shelf-controls button:first-child svg { transform: rotate(180deg); }
.plws-shelf-controls button:hover:not(:disabled) { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.plws-shelf-controls button:disabled { opacity: .35; cursor: default; }

.plws-market .plws-product-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.plws-market .plws-product-grid--shelf {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 4 * 1.25rem) / 4.25);
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scroll-padding-inline: 6px;
  padding: 6px 6px 1.5rem;
  margin: -6px -6px -1rem;
  scrollbar-color: var(--ink-soft) transparent;
  scrollbar-width: thin;
}
.plws-product-grid--shelf > .plws-product-card { scroll-snap-align: start; }
.plws-product-grid--shelf::-webkit-scrollbar { height: 6px; }
.plws-product-grid--shelf::-webkit-scrollbar-track { background: transparent; }
.plws-product-grid--shelf::-webkit-scrollbar-thumb { background: var(--ink-soft); border-radius: 3px; }
.plws-market .plws-product-grid--shelf:focus-visible { outline-offset: 0; }

/* Product card: one link, the bottle on white, then name, price and size. */
.plws-market .plws-product-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--market-card-line);
  border-radius: 3px;
  background: #fff;
  transition: border-color .25s var(--ease), box-shadow .35s var(--ease), transform .35s var(--ease);
}
.plws-market .plws-product-card:hover {
  border-color: var(--line-2);
  box-shadow: 0 20px 34px -26px rgba(33, 48, 46, .55);
  transform: translateY(-2px);
}
.plws-market .plws-product-card:has(.plws-product-card__link:focus-visible) { outline: 2px solid var(--ink); outline-offset: 3px; }
.plws-product-card__image {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1.08;
  padding: 2.4rem 1rem .5rem;
}
.plws-product-card__image .plws-product-placeholder { position: absolute; inset: 0; padding: inherit; }
.plws-product-card.is-sold-out .plws-product-placeholder > img { opacity: .45; }
/* Fit the photographed subject, rather than its supplier's white canvas. */
.plws-product-photo {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  padding: inherit;
  background: #fff;
}
.plws-market .plws-product-photo > img {
  position: absolute;
  inset: auto;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  min-width: 0;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: inherit;
  aspect-ratio: auto;
  background: #fff;
  object-fit: contain;
}
.plws-market .plws-product-photo.is-sized > img { padding: 0; }
.plws-product-card.is-sold-out .plws-product-photo { opacity: .5; }
.plws-product-card__tag {
  position: absolute;
  top: .75rem;
  left: .75rem;
  z-index: 1;
  max-width: calc(100% - 4.75rem);
  padding: .34rem .5rem .3rem;
  overflow: hidden;
  border-radius: 1px;
  background: var(--ink);
  color: var(--paper);
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.2;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.plws-product-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: .85rem;
  padding: .75rem 1rem 1rem;
}
.plws-market .plws-product-card h3 {
  display: -webkit-box;
  min-height: 2.4em;
  overflow: hidden;
  color: var(--ink);
  font-family: var(--display);
  font-size: 1.24rem;
  font-weight: 500;
  line-height: 1.2;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
.plws-product-card__link { color: inherit; text-decoration: none; }
.plws-product-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.plws-market .plws-product-card__link:focus-visible { outline: 0; }
.plws-product-card:hover .plws-product-card__link { text-decoration: underline; text-decoration-thickness: 1px; }
.plws-product-card__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .3rem .75rem;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: .75rem;
  border-top: 1px solid var(--line);
}
.plws-product-card__price {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .1rem .45rem;
  color: var(--ink, #21302e);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
.plws-product-card__price del { color: var(--market-muted); font-size: .86rem; font-weight: 400; }
.plws-product-card__price ins { text-decoration: none; }
.plws-product-card__size,
.plws-product-card__stock {
  overflow: hidden;
  color: var(--market-muted);
  font-size: .8rem;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.plws-product-card__stock { font-weight: 600; letter-spacing: .04em; }

/* Quick add uses WooCommerce's add-to-cart request; its states are loading and added. */
.plws-quick-add {
  position: absolute;
  top: .55rem;
  right: .55rem;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line-2);
  border-radius: 50%;
  background: rgba(255, 255, 255, .94);
  color: var(--ink);
  text-decoration: none;
  transition: background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
}
.plws-quick-add svg { grid-area: 1 / 1; width: 21px; height: 21px; transition: opacity .2s var(--ease), transform .3s var(--ease); }
.plws-quick-add__done { opacity: 0; transform: scale(.6); }
.plws-quick-add:hover { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.plws-quick-add:active { transform: scale(.94); }
.plws-quick-add.loading { pointer-events: none; }
.plws-quick-add.loading .plws-quick-add__cart { animation: plws-quick-add-pulse 1s ease-in-out infinite; }
.plws-quick-add.added { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.plws-quick-add.added .plws-quick-add__cart { opacity: 0; transform: scale(.6); }
.plws-quick-add.added .plws-quick-add__done { opacity: 1; transform: none; }
/* The header badge and live region confirm the add; Woo's inline "View cart" link would break the card. */
.plws-market .plws-product-card .added_to_cart { display: none; }
@keyframes plws-quick-add-pulse { 50% { opacity: .35; } }

.plws-cart-link.updating { opacity: .6; }

/* Collection: breadcrumb, filters in normal document flow, three-up results. */
.plws-market-browser { padding-block: 1.6rem clamp(3.5rem, 6vw, 6rem); scroll-margin-top: 100px; }
.plws-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .25rem .55rem;
  margin: 0 0 1.6rem;
  padding: 0;
  color: var(--market-muted);
  font-size: .82rem;
  list-style: none;
}
.plws-breadcrumb li { display: inline-flex; align-items: center; gap: .55rem; }
.plws-breadcrumb li + li::before {
  content: "";
  width: 5px;
  height: 5px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(45deg);
}
.plws-breadcrumb a { display: inline-flex; align-items: center; min-height: 32px; color: var(--ink); }
.plws-breadcrumb [aria-current] { color: var(--ink); font-weight: 600; }
.plws-browser-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); align-items: start; gap: 2.25rem; }
.plws-browser-results { min-width: 0; }
.plws-filters { min-width: 0; border-top: 1px solid var(--line-2, rgba(33, 48, 46, .3)); }
.plws-filters > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 52px;
  padding-block: .75rem;
  font-size: .95rem;
  font-weight: 600;
  list-style: none;
  cursor: pointer;
}
.plws-filters > summary::-webkit-details-marker { display: none; }
.plws-filters > summary svg { width: 20px; height: 20px; margin-left: auto; }
.plws-filters > summary::marker { content: ""; }
.plws-filters > summary::after {
  content: "";
  width: 7px;
  height: 7px;
  margin-right: 4px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
}
.plws-filters[open] > summary::after { transform: rotate(225deg); }
.plws-filter-form { display: flex; flex-direction: column; gap: .85rem; padding-block: .35rem 1rem; }
.plws-market .plws-filter-form h3 {
  margin-top: .75rem;
  font-family: var(--body, "Hanken Grotesk", sans-serif);
  font-size: .85rem;
  font-weight: 600;
  line-height: 1.5;
}
.plws-filter-form h3:first-child { margin-top: 0; }
.plws-filter-categories { display: flex; flex-direction: column; gap: .1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--line, rgba(33, 48, 46, .16)); }
.plws-filter-categories a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
  min-height: 40px;
  padding: .45rem .6rem;
  margin-inline: -.6rem;
  border-radius: 2px;
  color: var(--market-muted);
  font-size: .86rem;
  line-height: 1.4;
  text-decoration: none;
}
.plws-filter-categories a:hover { color: var(--ink, #21302e); text-decoration: underline; }
.plws-filter-categories a.is-child { padding-left: 1.3rem; font-size: .82rem; }
.plws-filter-categories a[aria-current],
.plws-filter-categories a.is-active { background: var(--paper-2, #efe7d8); color: var(--ink, #21302e); font-weight: 600; }
.plws-filter-form label { display: flex; flex-direction: column; gap: .4rem; color: var(--market-muted); font-size: .83rem; line-height: 1.5; }
.plws-filter-form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select),
.plws-browser-toolbar select {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: .65rem .7rem;
  border: 1px solid var(--line-2, rgba(33, 48, 46, .3));
  border-radius: 2px;
  background: var(--paper, #f5efe3);
  color: var(--ink, #21302e);
  font-size: .88rem;
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
.plws-filter-form :where(input[type="checkbox"], input[type="radio"]) { width: 18px; height: 18px; margin: 0; flex-shrink: 0; }
.plws-filter-form label:has(input[type="checkbox"]),
.plws-filter-form label:has(input[type="radio"]) { flex-direction: row; align-items: center; gap: .6rem; min-height: 44px; color: var(--ink, #21302e); }
.plws-price-inputs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.plws-filter-form button { width: 100%; margin-top: .35rem; }
.plws-filter-form .plws-filter-reset { align-self: center; display: inline-flex; align-items: center; min-height: 44px; color: var(--market-muted); font-size: .82rem; }
.plws-market :where(input, select)[aria-invalid="true"] { border-color: #8a3d2d; outline: 1px solid #8a3d2d; outline-offset: -1px; }

.plws-browser-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .6rem 1rem;
  margin-bottom: 1.4rem;
  padding-bottom: .9rem;
  border-bottom: 1px solid var(--line, rgba(33, 48, 46, .16));
}
.plws-browser-toolbar > p { color: var(--market-muted); font-size: .85rem; font-variant-numeric: tabular-nums; }
.plws-browser-toolbar form { display: flex; align-items: center; gap: .6rem; max-width: 100%; margin: 0; }
.plws-browser-toolbar label { display: flex; align-items: center; gap: .65rem; color: var(--market-muted); font-size: .8rem; white-space: nowrap; }
.plws-browser-toolbar form > label { width: auto; flex: 0 0 auto; }
.plws-browser-toolbar select { width: auto; max-width: 230px; padding-right: 1.8rem; }
.plws-sort-submit { min-height: 44px; padding: .6rem .8rem; border: 1px solid var(--line-2); border-radius: 2px; background: transparent; color: var(--ink); cursor: pointer; }
.plws-browser-results[aria-busy="true"] > .plws-product-grid { opacity: .55; }

.plws-market-pagination { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .45rem; margin-top: 2.75rem; font-variant-numeric: tabular-nums; }
.plws-market-pagination ul.page-numbers { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.plws-market-pagination :is(a, span).page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  min-height: 44px;
  padding: .6rem .8rem;
  border: 1px solid var(--line-2, rgba(33, 48, 46, .3));
  border-radius: 2px;
  font-size: .85rem;
  line-height: 1.4;
  text-decoration: none;
}
.plws-market-pagination .page-numbers.current,
.plws-market-pagination a.page-numbers:hover { background: var(--ink, #21302e); color: var(--paper, #f5efe3); border-color: var(--ink, #21302e); }
.plws-market-pagination span.page-numbers.dots { min-width: 24px; padding-inline: .2rem; border-color: transparent; }

.plws-preview-notice {
  position: relative;
  margin: 0;
  padding: .65rem var(--market-gutter);
  border-bottom: 1px solid var(--line, rgba(33, 48, 46, .16));
  background: var(--paper-2, #efe7d8);
  color: var(--ink, #21302e);
  font-family: var(--body, "Hanken Grotesk", sans-serif);
  font-size: .8rem;
  line-height: 1.5;
  text-align: center;
}
.plws-preview-notice p { margin: 0; }
.plws-preview-notice a { font-weight: 600; text-underline-offset: .2em; }
.plws-market-empty { display: flex; flex-direction: column; align-items: center; gap: .6rem; padding: clamp(2.5rem, 5vw, 4rem) 1.5rem; border: 1px dashed var(--line-2); border-radius: 3px; text-align: center; }
.plws-market .plws-market-empty h3 { font-family: var(--display); font-size: clamp(1.8rem, 3vw, 2.4rem); font-weight: 400; line-height: 1.1; }
.plws-market-empty p { max-width: 52ch; margin-inline: auto; color: var(--market-muted); }
.plws-market-empty > a { margin-top: 1rem; }

@media (max-width: 1100px) {
  .plws-market .plws-product-grid--shelf { grid-auto-columns: calc((100% - 3 * 1.25rem) / 3.25); }
  .plws-browser-layout { gap: 1.75rem; }
}

@media (max-width: 960px) {
  .plws-market-nav__links { column-gap: 1.1rem; }
  .plws-market-nav__links > .plws-market-nav__item > a,
  .plws-market-nav__links > details > summary { font-size: .72rem; letter-spacing: .04em; }
  .plws-market-hero h1 { font-size: clamp(3rem, 7vw, 4.4rem); }
  .plws-category-card { padding: 1.3rem 1.2rem 1.1rem; }
  .plws-browser-layout { grid-template-columns: 190px minmax(0, 1fr); }
  .plws-market .plws-product-grid:not(.plws-product-grid--shelf) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .plws-browser-toolbar { align-items: flex-start; flex-direction: column; }
  .plws-browser-toolbar form, .plws-browser-toolbar label { width: 100%; }
  .plws-browser-toolbar form { flex-wrap: wrap; }
  .plws-browser-toolbar form > label { flex-basis: 100%; }
  .plws-browser-toolbar form > select { flex: 1 1 auto; width: 0; }
  .plws-browser-toolbar select { flex: 1 1 auto; max-width: none; }
}

/* Below 900px the bottle columns would crowd the search; the links become two bottle buttons. */
@media (max-width: 900px) {
  .plws-market-hero { min-height: 0; padding-block: 3.25rem 2.25rem; }
  .plws-market-hero::before { background: linear-gradient(180deg, rgba(33, 48, 46, .76) 0%, rgba(33, 48, 46, .74) 50%, rgba(33, 48, 46, .88) 100%); }
  .plws-market-hero::after { content: none; }
  .plws-market-hero__links {
    position: static;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .75rem;
    margin-top: 1.75rem;
    pointer-events: auto;
  }
  .plws-market-hero__links a,
  .plws-market-hero__links a:last-child {
    width: auto;
    align-items: center;
    gap: .35rem;
    padding: .95rem .75rem .8rem;
    border: 1px solid rgba(245, 239, 227, .38);
    border-radius: 2px;
    background: rgba(33, 48, 46, .35);
    text-align: center;
  }
  .plws-market-hero__links strong { font-size: 1.45rem; }
  .plws-market-hero__links span { min-height: 0; border: 0; font-size: .64rem; letter-spacing: .11em; }
  .plws-market-hero__links svg { width: 15px; height: 15px; }
  /* Two classes deep: WooCommerce's .woocommerce-page img { height: auto } outranks one. */
  .plws-market-hero__links .plws-market-hero__bottle,
  .plws-market-hero__links a:last-child .plws-market-hero__bottle {
    flex: none;
    width: auto;
    height: clamp(118px, 30vw, 170px);
    max-height: none;
    margin-bottom: .45rem;
  }
}

/* Mobile browsing collapses the secondary nav, never the site header. */
@media (max-width: 780px) {
  .plws-market-menu > summary { display: flex; align-items: center; justify-content: space-between; min-height: 52px; font-size: .9rem; font-weight: 600; cursor: pointer; }
  .plws-market-menu > summary svg { width: 20px; height: 20px; transform: rotate(90deg); }
  .plws-market-menu[open] > summary svg { transform: rotate(-90deg); }
  .plws-market-nav__links { justify-content: flex-start; padding-bottom: .5rem; }


  .plws-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
  .plws-category-card__stage { height: clamp(150px, 34vw, 210px); }

  .plws-market-service > .plws-container { grid-template-columns: 1fr; gap: 1.1rem; text-align: left; }
  .plws-market-service > .plws-container > div {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    align-items: center;
    column-gap: 1rem;
    row-gap: 0;
  }
  .plws-market-service__icon { grid-row: span 2; width: 52px; height: 52px; margin: 0; }
  .plws-market-service svg { width: 22px; height: 22px; }

  .plws-browser-layout { grid-template-columns: 1fr; gap: 1.25rem; }
  .plws-filters { border-bottom: 1px solid var(--line-2, rgba(33, 48, 46, .3)); }
  .plws-filter-form { max-width: 440px; padding-bottom: 1.4rem; }
  .plws-filter-categories a { min-height: 44px; }
  .plws-browser-toolbar { align-items: center; flex-direction: row; }
  .plws-browser-toolbar form, .plws-browser-toolbar label { width: auto; }
  .plws-browser-toolbar select { max-width: 230px; }
  .plws-market-browser { scroll-margin-top: 90px; }
  .plws-market .plws-product-grid--shelf { grid-auto-columns: calc((100% - 1rem) / 2.3); gap: 1rem; }
}

@media (max-width: 560px) {
  .plws-market-nav__links { justify-content: flex-start; column-gap: 1.15rem; }
  .plws-market-nav__links > .plws-market-nav__item > a,
  .plws-market-nav__links > details > summary { min-height: 44px; font-size: .7rem; letter-spacing: .025em; }
  .plws-market-nav__links > details { position: static; }
  .plws-market-nav__dropdown,
  .plws-market-nav__links > details:last-child .plws-market-nav__dropdown { left: 1.2rem; right: 1.2rem; width: auto; max-width: none; }

  .plws-market-hero { padding-block: 2.6rem 1.75rem; }
  .plws-market-hero h1 { font-size: clamp(2.6rem, 12vw, 3.2rem); }
  .plws-market-hero__inner > p { margin-top: .9rem; font-size: .95rem; }
  .plws-market-hero .plws-market-search { margin-top: 1.4rem; }
  .plws-market-hero--compact { padding-block: 2rem 1.75rem; }
  .plws-market-hero--compact h1 { font-size: clamp(2.2rem, 10vw, 2.7rem); }
  .plws-market-search input[type="search"] { min-height: 46px; padding-inline: .6rem; }
  .plws-market-search button { width: 48px; min-height: 46px; }

  .plws-market .plws-section-heading { align-items: center; gap: .4rem 1rem; margin-bottom: 1.1rem; }
  .plws-market .plws-section-heading h2 { font-size: 2rem; }
  .plws-category-card { padding: 1rem .9rem .85rem; }
  .plws-category-card__stage { margin-bottom: .75rem; }
  .plws-category-card__label { font-size: 1.3rem; }
  .plws-category-card__label svg { width: 34px; height: 34px; padding: 8px; }

  .plws-shelf-controls { display: none; }
  .plws-market .plws-product-grid--shelf { grid-auto-columns: 64%; }
  .plws-market .plws-product-grid:not(.plws-product-grid--shelf) { gap: .75rem; }
  .plws-product-card__image { padding: 2.3rem .7rem .4rem; }
  .plws-product-card__tag { top: .55rem; left: .55rem; max-width: calc(100% - 4rem); font-size: .56rem; letter-spacing: .1em; }
  .plws-quick-add { top: .3rem; right: .3rem; }
  .plws-product-card__body { gap: .65rem; padding: .6rem .75rem .8rem; }
  .plws-market .plws-product-card h3 { font-size: 1.1rem; -webkit-line-clamp: 3; line-clamp: 3; }
  .plws-product-card__meta { padding-top: .6rem; }
  .plws-product-card__price { font-size: .95rem; }
  .plws-product-card__size, .plws-product-card__stock { font-size: .74rem; }
  .plws-browser-toolbar { align-items: flex-start; flex-direction: column; gap: .7rem; }
  .plws-browser-toolbar form, .plws-browser-toolbar label { width: 100%; }
  .plws-browser-toolbar select { max-width: none; font-size: 1rem; }
  .plws-filter-form :where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select) { font-size: 1rem; }
  .plws-market-pagination { gap: .3rem; margin-top: 2rem; }
  .plws-market-pagination :is(a, span).page-numbers { padding-inline: .65rem; }
}

@media (prefers-reduced-motion: reduce) {
  .plws-market *, .plws-market *::before, .plws-market *::after { animation: none; transition: none; scroll-behavior: auto; }
  .plws-market .plws-product-grid--shelf { scroll-snap-type: none; }
}
