/* ==========================================================================
   WineHub · one stylesheet. Marketplace system (Nov 2026 redesign): a light grey canvas, every block a white panel
   (12 px radius, a soft shadow, no heavy borders); a white header bar with the big search and a charcoal category
   bar; ink text, red only for actions (buttons, the search button) and the logo's drop. Onest for the interface and
   body, Montserrat for the big headings. Divin pages swap the action red for navy (body.wh-divin).
   ========================================================================== */

:root {
  color-scheme: light;
  --red: #BE2130;
  --red-hover: #A11B28;
  --red-tint: #FCEBEC;
  --ink: #18181B;
  --ink-2: #3F3F46;
  --muted: #62626A;
  --line: #E4E4E7;
  --line-2: #D4D4D8;
  --canvas: #F2F2F3;
  --soft: #F4F4F5;
  --charcoal: #232327;
  --shadow-1: 0 1px 2px rgb(24 24 27 / .06), 0 1px 3px rgb(24 24 27 / .04);
  --shadow-2: 0 12px 28px -12px rgb(24 24 27 / .24), 0 2px 6px rgb(24 24 27 / .06);
  --shadow: var(--shadow-1);
  /* older names still used by the plugins' markup: now solid or neutral, no pink bands */
  --grad: var(--red);
  --rose: var(--line-2);
  --rose-soft: var(--soft);
  --band: var(--soft);
  --strip: #fff;
  --font-head: "Montserrat", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-text: "Onest", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --container: 1320px;
  --gutter: 16px;
  --gap: 16px;
  --r-card: 12px;
  --r-tile: 16px;
  --r-ctl: 10px;
  --ease: cubic-bezier(.23, 1, .32, 1);
}
@media (min-width: 700px) { :root { --gutter: 24px; } }
@media (min-width: 1200px) { :root { --gutter: 32px; --gap: 20px; } }

body.wh-divin, .wh-divin {
  --red: #30308E;
  --red-hover: #26267A;
  --red-tint: #EEEEFA;
  --grad: #30308E;
}

/* ---- base ------------------------------------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; accent-color: var(--red); caret-color: var(--red); scrollbar-color: #C4C4CC transparent; }
::selection { background: #F7D3D7; color: var(--ink); }
body { margin: 0; background: var(--canvas); color: var(--ink); font: 400 1rem/1.55 var(--font-text); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--ink); text-decoration-color: rgb(24 24 27 / .35); text-underline-offset: 3px; }
a:hover { color: var(--red); text-decoration-color: currentColor; }
:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
h1, h2, h3 { margin: 0; color: var(--ink); text-wrap: balance; }
h1 { font: 800 clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem)/1.15 var(--font-head); letter-spacing: -.02em; }
h2 { font: 700 clamp(1.25rem, 1.15rem + .4vw, 1.5rem)/1.25 var(--font-head); letter-spacing: -.01em; }
h3 { font: 600 1rem/1.35 var(--font-text); }
p { margin: 0; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.wh-container { width: 100%; max-width: calc(var(--container) + 2 * var(--gutter)); margin-inline: auto; padding-inline: var(--gutter); }
.wh-skip { position: absolute; left: -9999px; top: 0; z-index: 200; background: var(--ink); color: #fff; padding: 10px 16px; border-radius: 0 0 8px 0; }
.wh-skip:focus { left: 8px; top: 8px; color: #fff; }
.wh-icon { width: 20px; height: 20px; flex: none; }
.wh-icon--line { fill: none; }
.wh-flip { rotate: 180deg; }
.wh-muted, .wh-meta { color: var(--muted); font-size: .875rem; line-height: 1.45; }
p.wh-lead, .wh-prose .wh-lead { font-size: 1.0625rem; color: var(--muted); max-width: 46rem; }
.wh-chip { display: inline-block; padding: 1px 8px; border-radius: 999px; background: #FCD34D; color: var(--ink); font: 700 .6875rem/1.6 var(--font-text); letter-spacing: .02em; vertical-align: middle; }
.wh-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.wh-dots { list-style: none; padding: 0; margin: 0; display: grid; gap: 2px; font-size: .875rem; color: var(--muted); }

/* a white block on the canvas */
.wh-panel { background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); padding: 20px; }
.wh-panel + .wh-panel, .wh-panel + .wh-shelves, .wh-shelves + .wh-panel, .wh-panel + .wh-split { margin-top: 16px; }

/* a heading row: the title, then what it leads to on the right */
.wh-ruled { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 18px; }
.wh-ruled > h2 { flex: 1 1 auto; }

/* ---- buttons: primary = solid red, secondary = white with an ink border ---------------------------------------- */
.wh-pill, .wh-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border-radius: var(--r-ctl); border: 1px solid transparent; font: 600 .9375rem/1.1 var(--font-text); text-decoration: none; text-align: center; white-space: nowrap; cursor: pointer; transition: background-color 160ms var(--ease), color 160ms var(--ease), border-color 160ms var(--ease), transform 120ms var(--ease); }
.wh-pill:active, .wh-btn:active { transform: translateY(1px); }
.wh-pill--outline, .wh-btn, .wh-btn--secondary { background: #fff; color: var(--ink); border-color: var(--ink-2); }
.wh-pill--outline:hover, .wh-btn:hover, .wh-btn--secondary:hover { background: var(--soft); color: var(--ink); border-color: var(--ink); }
.wh-pill--red, .wh-btn.wh-btn--primary { background: var(--red); color: #fff; border-color: transparent; }
.wh-pill--red:hover, .wh-btn.wh-btn--primary:hover { background: var(--red-hover); color: #fff; border-color: transparent; }
.wh-pill--white { background: #fff; color: var(--ink); }
.wh-pill--white:hover { background: var(--soft); color: var(--ink); }
.wh-pill--ghost { background: transparent; color: #fff; border-color: rgb(255 255 255 / .75); }
.wh-pill--ghost:hover { background: rgb(255 255 255 / .14); color: #fff; }
.wh-pill--lg { min-height: 48px; padding: 0 24px; font-size: 1rem; }
@media (min-width: 700px) { .wh-pill--sm { min-height: 36px; padding: 0 14px; font-size: .875rem; } }
.wh-pill--price { min-height: 36px; padding: 0 16px; background: var(--soft); color: var(--ink); font: 800 1rem/1 var(--font-text); font-variant-numeric: tabular-nums; cursor: default; }
.wh-pill:focus-visible, .wh-btn:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }

/* ---- demo ribbon, the white bar, the charcoal category bar ------------------------------------------------------------ */
.wh-ribbon { margin: 0; padding: 6px var(--gutter); background: var(--ink); color: #D4D4D8; font: 400 .75rem/1.35 var(--font-text); text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wh-ribbon a { color: #fff; }
.wh-ribbon a:hover { color: #fff; }
.wh-ribbon strong { color: #FCD34D; font-weight: 600; }
@media (max-width: 1359.98px) { .wh-ribbon__long { display: none; } }

.wh-bar { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; background: #fff; color: var(--ink); border-bottom: 1px solid var(--line); }
.wh-bar__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding-block: 10px; }
@media (min-width: 900px) { .wh-bar__inner { flex-wrap: nowrap; min-height: 63px; padding-block: 0; gap: 20px; } }
.wh-logo { --drop-in: #fff; display: inline-flex; align-items: center; gap: 8px; flex: none; color: var(--ink); text-decoration: none; font: 800 1.375rem/1 var(--font-head); letter-spacing: -.03em; }
.wh-logo:hover { color: var(--ink); }
.wh-logo svg { width: 34px; height: 34px; flex: none; color: var(--red); }
.wh-deliver { display: none; }
@media (min-width: 1280px) {
  .wh-deliver { display: flex; align-items: center; gap: 6px; flex: none; min-height: 44px; padding: 0 8px; border-radius: var(--r-ctl); color: var(--ink); text-decoration: none; line-height: 1.2; }
  .wh-deliver:hover { color: var(--ink); background: var(--soft); }
  .wh-deliver span { display: grid; }
  .wh-deliver small { font-size: .75rem; color: var(--muted); }
  .wh-deliver b { font: 600 .875rem var(--font-text); }
  .wh-deliver .wh-icon { width: 22px; height: 22px; color: var(--ink-2); }
}

/* the search: a big grey field, the red button inside it; suggestions while typing (mu-plugin wh-shop) */
.wh-search { position: relative; order: 3; flex: 1 0 100%; }
@media (min-width: 900px) { .wh-search { order: 0; flex: 1 1 auto; max-width: 780px; } }
.wh-search > .wh-icon { display: none; }
.wh-search input { width: 100%; height: 46px; padding: 0 120px 0 18px; border: 1.5px solid transparent; border-radius: var(--r-ctl); background: #EFEFF1; font: 400 1rem var(--font-text); color: var(--ink); transition: background-color 160ms var(--ease), border-color 160ms var(--ease), box-shadow 160ms var(--ease); }
.wh-search input:hover { background: #E9E9EC; }
.wh-search input::placeholder { color: #5F5F67; }
.wh-search input:focus { outline: none; background: #fff; border-color: var(--ink); box-shadow: 0 0 0 4px rgb(24 24 27 / .08); }
.wh-search input::-webkit-search-cancel-button { display: none; }
.wh-search__go { position: absolute; right: 4px; top: 4px; bottom: 4px; display: inline-flex; align-items: center; gap: 6px; padding: 0 18px; border: 0; border-radius: 8px; background: var(--red); color: #fff; font: 600 .9375rem var(--font-text); cursor: pointer; transition: background-color 160ms var(--ease); }
.wh-search__go:hover { background: var(--red-hover); }
.wh-search__go .wh-icon { width: 18px; height: 18px; }
.wh-search__go:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.wh-suggest { position: absolute; z-index: 80; left: 0; right: 0; top: calc(100% + 6px); max-height: min(70vh, 540px); overflow: auto; padding: 8px; background: #fff; color: var(--ink); border-radius: var(--r-card); box-shadow: 0 24px 48px -16px rgb(24 24 27 / .3), 0 2px 6px rgb(24 24 27 / .08); }
.wh-suggest__h { margin: 6px 10px 4px; font: 600 .75rem var(--font-text); color: var(--muted); }
.wh-suggest a { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 8px; color: var(--ink); text-decoration: none; }
.wh-suggest a:hover, .wh-suggest a.is-active { background: var(--soft); color: var(--ink); }
.wh-suggest__wine img { width: 34px; height: 46px; object-fit: contain; flex: none; }
.wh-suggest__wine span { display: grid; min-width: 0; flex: 1; }
.wh-suggest__wine b { font: 600 .875rem/1.3 var(--font-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wh-suggest__wine small, .wh-suggest__link small { color: var(--muted); font-size: .75rem; }
.wh-suggest__wine em { font: 700 .875rem var(--font-text); font-style: normal; color: var(--ink); white-space: nowrap; }
.wh-suggest__link small { min-width: 70px; }
.wh-suggest__link span { font-weight: 600; font-size: .875rem; }
.wh-suggest a.wh-suggest__all { justify-content: center; margin-top: 6px; padding-block: 10px; border-top: 1px solid var(--line); border-radius: 0 0 8px 8px; font: 600 .875rem var(--font-text); }
.wh-suggest__none { margin: 0; padding: 12px 10px; color: var(--muted); font-size: .875rem; }

/* account, favourites, cart: ink icons with labels on wide screens */
.wh-bar__tools { margin-left: auto; display: flex; align-items: center; gap: 2px; }
.wh-bar__link { position: relative; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; min-width: 44px; justify-content: center; padding: 0 10px; border-radius: var(--r-ctl); color: var(--ink); text-decoration: none; font: 500 .875rem/1.1 var(--font-text); white-space: nowrap; }
.wh-bar__link:hover, .wh-bar__link[aria-current] { color: var(--ink); background: var(--soft); }
.wh-bar__link .wh-icon { width: 24px; height: 24px; }
.wh-bar__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (min-width: 1200px) { .wh-bar__label { position: static; width: auto; height: auto; overflow: visible; clip: auto; } }
.wh-cart-count, .wh-wish-count { position: absolute; top: 2px; left: 22px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: var(--red); color: #fff; font: 700 11px/18px var(--font-text); text-align: center; box-shadow: 0 0 0 2px #fff; }
.wh-cart-count[hidden], .wh-wish-count[hidden] { display: none; }
.wh-bar .whr-chip { gap: 4px; background: var(--soft); font-weight: 500; }
.wh-bar .whr-chip b { font-weight: 700; }
.wh-bar .whr-chip--teaser { display: none; }
/* language switcher (wh_lang_switcher): RO / RU / EN, one segmented control */
.wh-langs { display: inline-flex; align-items: center; gap: 2px; margin-left: 6px; padding: 3px; border: 1px solid var(--line-2); border-radius: 999px; }
.wh-langlink { display: inline-grid; place-items: center; min-width: 32px; height: 30px; padding: 0 6px; border-radius: 999px; color: var(--ink-2); text-decoration: none; font: 600 .75rem/1 var(--font-text); letter-spacing: .02em; transition: background-color 160ms var(--ease), color 160ms var(--ease); }
.wh-langlink:hover { color: var(--ink); background: var(--soft); }
.wh-langlink.is-on { background: var(--ink); color: #fff; }

.wh-sub { position: relative; z-index: 40; background: var(--charcoal); color: #fff; }
.wh-sub__inner { display: flex; align-items: center; gap: 4px 6px; min-height: 44px; }
.wh-sub__nav { display: flex; align-items: center; gap: 2px; overflow-x: auto; scrollbar-width: none; flex: 1 1 auto; min-width: 0; }
.wh-sub__nav::-webkit-scrollbar { display: none; }
.wh-sub__item { position: relative; flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 8px; color: #E4E4E7; text-decoration: none; font: 500 .875rem/1 var(--font-text); }
.wh-sub__item:hover { color: #fff; background: rgb(255 255 255 / .08); }
.wh-sub__item[aria-current] { color: #fff; font-weight: 600; }
.wh-sub__item[aria-current]::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 6px; height: 2px; border-radius: 2px; background: #fff; }
.wh-sub :focus-visible { outline-color: #fff; outline-offset: -2px; }
@media (min-width: 1000px) { .wh-sub__item:last-child { margin-left: auto; } }
@media (max-width: 999.98px) { .wh-sub__nav { mask-image: linear-gradient(90deg, #000 85%, transparent); padding-right: 28px; } }

/* "All categories" */
.wh-mega { flex: none; }
.wh-mega > summary { list-style: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; min-width: 44px; padding: 0 14px 0 10px; border-radius: 8px; color: #fff; font: 600 .875rem var(--font-text); cursor: pointer; white-space: nowrap; user-select: none; }
.wh-mega > summary::-webkit-details-marker { display: none; }
.wh-mega > summary:hover { background: rgb(255 255 255 / .08); }
.wh-mega > summary .wh-icon { width: 20px; height: 20px; }
.wh-mega[open] > summary { background: rgb(255 255 255 / .14); }
.wh-mega__panel { position: absolute; left: 0; right: 0; top: 100%; background: #fff; color: var(--ink); box-shadow: 0 30px 50px -24px rgb(24 24 27 / .35); max-height: calc(100svh - 150px); overflow: auto; }
.wh-mega__grid { max-width: calc(var(--container) + 2 * var(--gutter)); margin-inline: auto; padding: 24px var(--gutter) 28px; display: grid; gap: 22px 28px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .wh-mega__grid { grid-template-columns: repeat(5, minmax(0, 1fr)) 220px; } }
.wh-mega__h { margin: 0 0 8px; font: 700 .9375rem var(--font-text); color: var(--ink); }
.wh-mega ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.wh-mega li a { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 6px 0; color: var(--ink-2); text-decoration: none; font-size: .875rem; }
.wh-mega li a:hover { color: var(--ink); text-decoration: underline; }
.wh-mega li small { color: var(--muted); font-variant-numeric: tabular-nums; }
.wh-mega__promo { align-self: start; display: grid; gap: 10px; padding: 18px; border-radius: var(--r-card); background: var(--soft); color: var(--ink); text-decoration: none; }
.wh-mega__promo b { font: 700 1rem/1.3 var(--font-head); }
.wh-mega__promo span { display: inline-flex; align-items: center; gap: 4px; color: var(--ink); font: 600 .875rem var(--font-text); text-decoration: underline; text-underline-offset: 3px; }
.wh-mega__promo:hover { color: var(--ink); background: #ECECEE; }
.wh-mega__promo .wh-icon { width: 16px; height: 16px; }
@media (max-width: 899.98px) { .wh-mega__promo { grid-column: 1 / -1; } }

/* ---- the perks strip: the day-one promises under the menu, every page --------------------------------------------------- */
.wh-perks { background: #fff; border-bottom: 1px solid var(--line); }
.wh-perks ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px 28px; overflow-x: auto; scrollbar-width: none; justify-content: space-between; }
.wh-perks ul::-webkit-scrollbar { display: none; }
.wh-perks li { flex: none; }
.wh-perks a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; color: var(--ink-2); text-decoration: none; font: 500 .8125rem/1.2 var(--font-text); white-space: nowrap; }
.wh-perks a:hover { color: var(--ink); text-decoration: underline; }
.wh-perks__ico { width: 18px; height: 18px; color: var(--ink-2); flex: none; }
@media (max-width: 999.98px) { .wh-perks ul { justify-content: flex-start; mask-image: linear-gradient(90deg, #000 85%, transparent); padding-right: 24px; } }

/* ---- page frame: breadcrumb, title --------------------------------------------------------------------------------------- */
.wh-main { padding-block: 16px 56px; }
.wh-crumbs-bar ol { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; font-size: .8125rem; color: var(--muted); }
.wh-crumbs-bar li { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.wh-crumbs-bar a { color: var(--ink-2); text-decoration: none; }
.wh-crumbs-bar a:hover { color: var(--ink); text-decoration: underline; }
.wh-crumbs-bar .wh-icon { width: 14px; height: 14px; color: #A1A1AA; }
.wh-crumbs-bar [aria-current] { max-width: 40ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
@media (max-width: 699.98px) { .wh-crumbs-bar ol { margin-bottom: 2px; } .wh-crumbs-bar a { display: inline-flex; align-items: center; min-height: 44px; } }
.wh-page-head { display: grid; gap: 6px; padding-block: 2px 16px; max-width: 56rem; }
.wh-page-head h1 { font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem); }
.wh-main .wh-page-head .wh-lead { font-size: .9375rem; }

/* ---- home --------------------------------------------------------------------------------------------------------------------- */
.wh-homemkt { padding-block: 16px 48px; }
/* the banner: three slides on a scroll-snap track, arrows and dots over it */
.wh-carousel { position: relative; overflow: hidden; border-radius: var(--r-tile); background: var(--charcoal); box-shadow: var(--shadow-1); }
.wh-carousel__track { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.wh-carousel__track::-webkit-scrollbar { display: none; }
.wh-slide { position: relative; isolation: isolate; display: grid; align-items: center; min-height: clamp(300px, 26vw, 380px); scroll-snap-align: start; scroll-snap-stop: always; color: #fff; }
.wh-slide > img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; }
.wh-slide::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgb(17 17 19 / .88) 0%, rgb(17 17 19 / .66) 36%, rgb(17 17 19 / .12) 70%, rgb(17 17 19 / 0) 100%); }
.wh-slide__body { display: grid; gap: 14px; justify-items: start; max-width: 40rem; padding: 40px 32px 56px max(72px, 5vw); }
.wh-slide h1, .wh-slide h2 { color: #fff; font: 800 clamp(1.75rem, 1.2rem + 1.9vw, 2.5rem)/1.1 var(--font-head); letter-spacing: -.02em; }
.wh-slide p { color: rgb(255 255 255 / .92); font-size: 1.0625rem; line-height: 1.5; max-width: 46ch; }
.wh-slide .wh-actions { margin-top: 6px; }
.wh-carousel__arrow { position: absolute; top: 50%; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: #fff; color: var(--ink); box-shadow: var(--shadow-2); cursor: pointer; translate: 0 -50%; transition: background-color 160ms var(--ease), scale 160ms var(--ease); }
.wh-carousel__arrow:hover { background: var(--soft); }
.wh-carousel__arrow:active { scale: .94; }
.wh-carousel__arrow .wh-icon { width: 20px; height: 20px; }
.wh-carousel__arrow--prev { left: 14px; }
.wh-carousel__arrow--next { right: 14px; }
.wh-carousel__dots { position: absolute; left: 50%; bottom: 2px; z-index: 2; display: flex; translate: -50% 0; }
.wh-carousel__dots button { display: grid; place-items: center; width: 36px; height: 44px; padding: 0; border: 0; background: none; cursor: pointer; }
.wh-carousel__dots button::before { content: ""; width: 8px; height: 8px; border-radius: 999px; background: rgb(255 255 255 / .6); transition: width 240ms var(--ease), background-color 240ms var(--ease); }
.wh-carousel__dots button[aria-current="true"]::before { width: 26px; background: #fff; }
.wh-carousel :focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.wh-carousel__arrow:focus-visible { outline-color: var(--ink); }
/* the home's one static banner: lower, so the recommended wines show in the first screen */
.wh-hero1 .wh-slide { min-height: clamp(260px, 20vw, 320px); }
.wh-hero1 .wh-slide__body { gap: 12px; padding: 32px 32px 36px max(40px, 4vw); }
.wh-hero1__offer { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: .9375rem; font-weight: 600; text-decoration: underline; text-decoration-color: rgb(255 255 255 / .45); text-underline-offset: 4px; }
.wh-hero1__offer:hover { text-decoration-color: #fff; }
.wh-hero1__offer .wh-icon { width: 18px; height: 18px; }
@media (max-width: 699.98px) {
  .wh-carousel { border-radius: var(--r-card); }
  .wh-slide { align-items: end; min-height: 340px; }
  .wh-slide::before { background: linear-gradient(0deg, rgb(17 17 19 / .9) 0%, rgb(17 17 19 / .62) 55%, rgb(17 17 19 / .15) 100%); }
  .wh-slide__body { gap: 10px; padding: 24px 20px 52px; }
  .wh-slide p { font-size: .9375rem; }
  .wh-slide .wh-pill--lg { min-height: 44px; padding: 0 18px; font-size: .9375rem; }
  .wh-carousel__arrow { display: none; }
}

/* categories as round picture tiles */
.wh-catrow { margin-top: 16px; padding-bottom: 14px; }
.wh-cats { list-style: none; margin: 0; padding: 0 0 4px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(128px, 1fr); gap: 8px; overflow-x: auto; scrollbar-width: none; }
.wh-cats::-webkit-scrollbar { display: none; }
.wh-cats a { display: grid; justify-items: center; gap: 2px; padding: 4px 4px 6px; border-radius: var(--r-card); color: var(--ink); text-decoration: none; text-align: center; }
.wh-cats__img { display: grid; place-items: center; width: clamp(112px, 9.5vw, 156px); height: clamp(112px, 9.5vw, 156px); margin-bottom: 10px; overflow: hidden; border-radius: 50%; background: var(--soft); transition: background-color 200ms var(--ease), box-shadow 200ms var(--ease); }
.wh-cats__img img { width: auto; height: 80%; padding: 0; object-fit: contain; mix-blend-mode: multiply; transition: transform 240ms var(--ease); }
.wh-cats .is-photo .wh-cats__img img { width: 100%; height: 100%; padding: 0; object-fit: cover; mix-blend-mode: normal; }
.wh-cats a:hover { color: var(--ink); }
.wh-cats a:hover .wh-cats__img { background: #E9E9EC; box-shadow: 0 0 0 2px var(--ink); }
.wh-cats a:hover .wh-cats__img img { transform: scale(1.05); }
.wh-cats b { font: 600 1rem/1.25 var(--font-text); }
.wh-cats small { font-size: .8125rem; color: var(--muted); font-variant-numeric: tabular-nums; }
@media (max-width: 699.98px) { .wh-cats { grid-auto-columns: 96px; } .wh-cats__img { width: 84px; height: 84px; } .wh-cats b { font-size: .875rem; } }

/* four-picture cards */
.wh-quads { margin-top: 16px; display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 1000px) { .wh-quads { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* the home keeps two service cards side by side (sign-in or rewards, the taste finder); stacked on phones */
.wh-quads.wh-quads--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wh-quads--two .wh-quad--finder { display: grid; grid-template-columns: minmax(0, 1fr) 40%; grid-template-rows: auto 1fr auto auto; column-gap: 20px; align-content: start; }
.wh-quads--two .wh-quad--finder .wh-quad__pic { grid-column: 2; grid-row: 1 / span 4; }
.wh-quads--two .wh-quad--finder > :not(.wh-quad__pic) { grid-column: 1; }
@media (max-width: 699.98px) {
  .wh-quads.wh-quads--two { grid-template-columns: 1fr; grid-auto-flow: row; grid-auto-columns: auto; overflow: visible; }
  .wh-quads--two .wh-quad--finder { grid-template-columns: 1fr; }
  .wh-quads--two .wh-quad--finder .wh-quad__pic { grid-column: 1; grid-row: auto; }
}
.wh-quad { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 18px 18px 8px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.wh-quad h2 { margin: 0; font: 700 1.125rem/1.3 var(--font-head); }
.wh-quad__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 10px; }
.wh-quad__grid a { display: grid; gap: 6px; color: var(--ink-2); text-decoration: none; font-size: .8125rem; line-height: 1.3; }
.wh-quad__grid a:hover { color: var(--ink); }
.wh-quad__grid a:hover .wh-quad__label { text-decoration: underline; }
.wh-quad__img { display: grid; place-items: center; aspect-ratio: 1; overflow: hidden; background: #F6F6F7; border-radius: 8px; }
.wh-quad__img img { width: 100%; height: 100%; padding: 8px; object-fit: contain; transition: transform 240ms var(--ease); }
.wh-quad__grid a:hover .wh-quad__img img { transform: scale(1.04); }
.wh-quad--photos .wh-quad__img img { padding: 0; object-fit: cover; }
.wh-quad--logos .wh-quad__img { background: #fff; border: 1px solid var(--line); }
.wh-quad--logos .wh-logotile { width: 86%; height: auto; aspect-ratio: 5 / 3; box-shadow: none; border: 0; }
.wh-quad__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wh-quad__more { align-self: flex-start; margin-top: auto; display: inline-flex; align-items: center; min-height: 44px; font: 600 .875rem var(--font-text); color: var(--ink); text-decoration: underline; text-decoration-color: var(--line-2); text-underline-offset: 4px; }
.wh-quad__more:hover { color: var(--red); text-decoration-color: currentColor; }
.wh-quad--me p, .wh-quad--finder p { margin: 0; font-size: .875rem; color: var(--muted); }
.wh-quad--me .wh-quad__big { font: 800 1.375rem/1.25 var(--font-text); color: var(--ink); }
.wh-quad--me .wh-pill, .wh-quad--finder .wh-pill { justify-content: center; margin-top: 4px; }
.wh-quad__pic { display: block; overflow: hidden; border-radius: 8px; aspect-ratio: 16 / 9; }
.wh-quad__pic img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 639.98px) {
  .wh-quads { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 82%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 6px; scrollbar-width: none; }
  .wh-quad { scroll-snap-align: start; }
}

/* shelves: a white panel each, a row of cards that scrolls sideways */
.wh-shelves { padding-block: 0; }
.wh-shelf { margin-top: 16px; padding: 18px 20px 12px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.wh-shelf__head { display: flex; align-items: center; gap: 8px 16px; margin-bottom: 12px; }
.wh-shelf__head h2 { margin: 0; font: 700 clamp(1.125rem, 1.05rem + .3vw, 1.3125rem)/1.25 var(--font-head); }
.wh-shelf__more { margin-left: auto; display: inline-flex; align-items: center; min-height: 44px; font: 600 .875rem var(--font-text); color: var(--ink); white-space: nowrap; text-decoration: underline; text-decoration-color: var(--line-2); text-underline-offset: 4px; }
.wh-shelf__more:hover { color: var(--red); text-decoration-color: currentColor; }
.wh-shelf__nav { display: none; gap: 6px; }
@media (min-width: 900px) { .wh-shelf__nav { display: inline-flex; } }
.wh-shelf__head h2 + .wh-shelf__nav { margin-left: auto; }
.wh-shelf__nav button { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--line-2); border-radius: 50%; background: #fff; color: var(--ink); cursor: pointer; transition: background-color 160ms var(--ease), border-color 160ms var(--ease); }
.wh-shelf__nav button:hover { background: var(--soft); border-color: var(--ink-2); }
.wh-shelf__nav .wh-icon { width: 18px; height: 18px; }
.wh-shelf ul.products.wh-shelf__list { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(160px, 46%); gap: 12px; margin: 0; padding: 2px 2px 10px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--line-2) transparent; }
@media (min-width: 700px) { .wh-shelf ul.products.wh-shelf__list { grid-auto-columns: calc((100% - 2 * 16px) / 3); gap: 16px; } }
@media (min-width: 1100px) { .wh-shelf ul.products.wh-shelf__list { grid-auto-columns: calc((100% - 3 * 24px) / 4); gap: 24px; } } /* four wines per row: room for each bottle */
@media (min-width: 1500px) { .wh-shelf ul.products.wh-shelf__list { grid-auto-columns: calc((100% - 4 * 24px) / 5); } } /* five on wide screens, so cards never get oversized */
.wh-shelf__list > li { scroll-snap-align: start; }

/* wineries' logos */
.wh-logos { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width: 700px) { .wh-logos { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .wh-logos { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.wh-logos a { display: grid; place-items: center; aspect-ratio: 16 / 10; padding: 14px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-ctl); text-decoration: none; transition: border-color 160ms var(--ease), box-shadow 160ms var(--ease); }
.wh-logos a:hover { border-color: var(--ink-2); box-shadow: var(--shadow-2); }
.wh-logos img { width: 100%; height: 100%; object-fit: contain; }
.wh-logos__name { font: 700 1rem/1.2 var(--font-text); color: var(--ink); text-align: center; }
.wh-logos a.wh-logos__more { align-content: center; gap: 4px; background: var(--soft); border-color: transparent; color: var(--ink); text-align: center; }
.wh-logos a.wh-logos__more:hover { background: #E9E9EC; }
.wh-logos__more b { font: 800 1.75rem/1 var(--font-text); }
.wh-logos__more span { font-size: .8125rem; line-height: 1.3; }

/* the call to producers */
.wh-split { display: grid; overflow: hidden; margin-top: 16px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.wh-split__media img { width: 100%; height: 100%; min-height: 240px; object-fit: cover; }
.wh-split__body { display: grid; gap: 14px; align-content: center; justify-items: start; padding: 28px 22px 32px; }
.wh-split p { color: var(--muted); max-width: 46ch; font-size: 1.0625rem; }
@media (min-width: 900px) { .wh-split { grid-template-columns: 1fr 1fr; } .wh-split__body { padding: 48px 56px; } .wh-split h2 { font-size: 1.75rem; } }

/* ---- catalogue: the filter panel, the toolbar, the grid ----------------------------------------------------------------------- */
.wh-cat { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
@media (min-width: 1000px) { .wh-cat { grid-template-columns: 264px minmax(0, 1fr); gap: 20px; align-items: start; } }
.wh-side { padding: 4px 18px 8px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.wh-side details { border-bottom: 1px solid var(--line); padding-block: 14px; }
.wh-side details:last-child { border-bottom: 0; }
.wh-side summary { display: flex; justify-content: space-between; align-items: center; min-height: 28px; cursor: pointer; list-style: none; font: 700 .9375rem/1.3 var(--font-text); }
.wh-side summary::-webkit-details-marker { display: none; }
.wh-side summary::after { content: ""; width: 8px; height: 8px; border: solid var(--ink-2); border-width: 0 1.6px 1.6px 0; rotate: 45deg; translate: 0 -2px; transition: rotate 200ms var(--ease); }
.wh-side details[open] summary::after { rotate: 225deg; translate: 0 2px; }
.wh-side ul { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 2px; max-height: 340px; overflow: auto; }
.wh-check { display: flex; align-items: center; gap: 10px; min-height: 34px; color: var(--ink-2); text-decoration: none; font-size: .875rem; }
.wh-check::before { content: ""; flex: none; width: 18px; height: 18px; border: 1.5px solid #8E8E96; border-radius: 4px; background: #fff; transition: background-color 140ms var(--ease), border-color 140ms var(--ease); }
.wh-check.is-on { color: var(--ink); font-weight: 600; }
.wh-check.is-on::before { background: var(--ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E") center / 12px no-repeat; border-color: var(--ink); }
.wh-check:hover { color: var(--ink); }
.wh-check:hover::before { border-color: var(--ink); }
.wh-check small { margin-left: auto; color: var(--muted); font-weight: 400; font-variant-numeric: tabular-nums; }
/* phones and tablets: the filters fold behind one button, which sits beside the sort; the list opens as a bottom sheet */
.wh-filters > summary { display: none; }
.wh-filters__close { display: none; }
@media (max-width: 999.98px) {
  .wh-cat { position: relative; }
  .wh-cat:has(> .wh-filters) { gap: 0; }
  .wh-filters > summary { position: absolute; z-index: 3; top: 8px; left: 8px; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid var(--ink-2); border-radius: var(--r-ctl); background: #fff; color: var(--ink); font: 600 .875rem var(--font-text); cursor: pointer; list-style: none; }
  .wh-filters > summary::-webkit-details-marker { display: none; }
  .wh-filters > summary .wh-icon { width: 18px; height: 18px; }
  .wh-cat__main .wh-toolbar { min-height: 60px; justify-content: flex-end; padding-left: 150px; }
  .wh-check { min-height: 44px; }
  .wh-filters[open]::before { content: ""; position: fixed; inset: 0; z-index: 79; background: rgb(17 17 19 / .45); }
  .wh-filters[open] > .wh-side { position: fixed; z-index: 80; left: 0; right: 0; bottom: 0; max-height: 82vh; overflow: auto; margin: 0; padding: 8px 16px 88px; background: #fff; border-radius: 16px 16px 0 0; box-shadow: 0 -20px 60px rgb(0 0 0 / .25); }
  .wh-filters[open] > .wh-filters__close { display: block; position: fixed; z-index: 81; left: 16px; right: 16px; bottom: calc(14px + env(safe-area-inset-bottom)); min-height: 48px; border: 0; border-radius: var(--r-ctl); background: var(--ink); color: #fff; font: 600 .9375rem var(--font-text); cursor: pointer; }
  .wh-filters:not([open]) > .wh-side { display: none; }
}
.wh-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; min-height: 60px; margin-bottom: 12px; padding: 8px 8px 8px 18px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.woocommerce .wh-toolbar .woocommerce-result-count { float: none; margin: 0; font-size: .875rem; color: var(--ink-2); }
.wh-toolbar__count { margin: 0; font-size: .875rem; color: var(--ink-2); }
.woocommerce .wh-toolbar .woocommerce-ordering { float: none; min-width: 0; margin: 0 0 0 auto; }
.woocommerce .wh-toolbar .woocommerce-ordering select { width: 100%; }
.woocommerce .woocommerce-ordering select { height: 44px; padding: 0 38px 0 14px; border: 1px solid var(--line-2); border-radius: var(--r-ctl); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10l5 5 5-5' fill='none' stroke='%2318181B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 12px center / 16px no-repeat; font: 500 .875rem var(--font-text); color: var(--ink); appearance: none; cursor: pointer; max-width: 100%; }
.woocommerce .woocommerce-ordering select:hover { border-color: var(--ink-2); }
.wh-active { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 12px; }
.wh-active a.wh-tag { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 10px 0 14px; border: 1px solid var(--ink-2); border-radius: 999px; background: #fff; color: var(--ink); font: 500 .8125rem/1 var(--font-text); text-decoration: none; }
.wh-active a.wh-tag:hover { background: var(--soft); }
.wh-active a.wh-tag .wh-icon { width: 16px; height: 16px; }
.wh-active .wh-clear { display: inline-flex; align-items: center; min-height: 34px; padding: 0 6px; font-size: .8125rem; color: var(--ink); }
@media (max-width: 699.98px) { .wh-active a.wh-tag, .wh-active .wh-clear { min-height: 44px; } .wh-main .wh-page-head .wh-lead, .woocommerce .wh-toolbar .woocommerce-result-count { display: none; } }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; gap: 6px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li .page-numbers { display: inline-grid; place-items: center; min-width: 44px; min-height: 44px; padding: 0 10px; border-radius: var(--r-ctl); background: #fff; box-shadow: var(--shadow-1); color: var(--ink); font-weight: 600; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ink); color: #fff; }
.woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--soft); color: var(--ink); }

/* the grid: two cards across on phones, as many 188 px cards as fit above */
.woocommerce ul.products, ul.products.wh-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; padding: 0; margin: 0 0 24px; }
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none; display: none; }
@media (min-width: 700px) { .woocommerce ul.products, ul.products.wh-grid { grid-template-columns: repeat(auto-fill, minmax(188px, 1fr)); gap: 14px; } }

/* ---- the wine card: white, the bottle on white, title, winery, stars, a big ink price, points, the red button ---- */
.woocommerce ul.products li.product.wh-card, li.wh-card { position: relative; width: auto; float: none; margin: 0; padding: 0; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid transparent; border-radius: var(--r-card); box-shadow: var(--shadow-1); transition: box-shadow 200ms var(--ease); }
li.wh-card:hover { box-shadow: var(--shadow-2); }
/* inside a white panel (shelves, the winery page, related): a hairline instead of the shadow */
:is(.wh-shelf, .wh-psec, .related, .upsells, .whr-picks) li.wh-card { border-color: var(--line); box-shadow: none; }
:is(.wh-shelf, .wh-psec, .related, .upsells) li.wh-card:hover { border-color: var(--line-2); box-shadow: var(--shadow-2); }
.wh-card__media { position: relative; background: #fff; }
.wh-card__img { display: grid; place-items: center; aspect-ratio: 1 / 1; padding: 14px 14px 4px; }
.woocommerce ul.products li.product .wh-card__img img, .wh-card__img img { width: 100%; height: 100%; margin: 0; object-fit: contain; transition: transform 260ms var(--ease); }
.wh-card:hover .wh-card__img img { transform: scale(1.03); }
.wh-card__body { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; padding: 8px 14px 14px; }
.wh-card__producer { margin: 0; font: 500 .75rem/1.35 var(--font-text); color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wh-card__producer a { color: inherit; text-decoration: none; }
.wh-card__producer a:hover { color: var(--ink); text-decoration: underline; }
.woocommerce ul.products li.product .wh-card__title, .wh-card__title { margin: 0; padding: 0; min-height: 2.7em; font: 600 .9375rem/1.35 var(--font-text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.wh-card__title a { color: var(--ink); text-decoration: none; }
.wh-card__title a:hover { color: var(--ink); text-decoration: underline; }
.wh-card__meta { margin: 0; font-size: .75rem; color: var(--muted); }
.wh-card__stars { display: flex; align-items: center; gap: 6px; margin: 2px 0 0; }
.wh-card__stars .star-rating { margin: 0; font-size: .8125rem; color: #B45309; }
.wh-card__stars small { color: var(--muted); font-size: .75rem; }
.wh-card__price { margin: 8px 0 0; font: 800 1.375rem/1.1 var(--font-text); color: var(--ink); font-variant-numeric: tabular-nums; letter-spacing: -.01em; }
.wh-card__price small { margin-left: 6px; font: 500 .75rem var(--font-text); color: var(--muted); letter-spacing: 0; }
.wh-card .price { color: inherit !important; font-size: inherit !important; }
.wh-card .whr-earn { margin: 3px 0 0; display: flex; flex-wrap: wrap; gap: 0 8px; }
.wh-card .whr-earn span { min-height: 0; padding: 0; background: none; color: var(--muted); font: 500 .75rem/1.4 var(--font-text); }
.wh-card__ship { margin: 2px 0 0; font-size: .75rem; color: var(--muted); }
.wh-card__buy { margin-top: auto; padding-top: 12px; display: grid; gap: 6px; }
.wh-card--visit .wh-card__img { aspect-ratio: 4 / 3; padding: 0; }
.woocommerce ul.products li.product.wh-card--visit .wh-card__img img, .wh-card--visit .wh-card__img img { width: 100%; height: 100%; object-fit: cover; }
.wh-badge { position: absolute; top: 10px; left: 10px; z-index: 1; max-width: calc(100% - 64px); padding: 4px 8px; border-radius: 6px; background: var(--ink); color: #fff; font: 600 .6875rem/1.2 var(--font-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* favourites heart: on the picture in cards, beside the button on the wine page */
.wh-heart { position: absolute; top: 6px; right: 6px; z-index: 1; display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink-2); box-shadow: var(--shadow-1); cursor: pointer; transition: color 160ms var(--ease), transform 160ms var(--ease), border-color 160ms var(--ease); }
.wh-heart svg { width: 19px; height: 19px; fill: none; }
.wh-heart:hover { color: var(--red); border-color: var(--line-2); }
.wh-heart:active { transform: scale(.9); }
.wh-heart[aria-pressed="true"] { color: var(--red); }
.wh-heart[aria-pressed="true"] svg { fill: currentColor; }
@media (max-width: 699.98px) { .wh-heart { width: 44px; height: 44px; top: 4px; right: 4px; } }

/* WooCommerce buttons: secondary by default, the card's and the wine page's add-to-cart primary */
.woocommerce :is(a.button, button.button, input.button) { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 0 18px; border-radius: var(--r-ctl); background: #fff; color: var(--ink); border: 1px solid var(--ink-2); font: 600 .875rem/1 var(--font-text); text-decoration: none; transition: background-color 160ms var(--ease), border-color 160ms var(--ease); }
.woocommerce :is(a.button, button.button, input.button):hover { background: var(--soft); color: var(--ink); border-color: var(--ink); }
.woocommerce ul.products li.product .wh-card__buy .button, .wh-card__buy .button { display: flex; align-items: center; justify-content: center; width: 100%; margin: 0; padding: 0 12px; min-height: 42px; line-height: 1; border: 0; border-radius: var(--r-ctl); background: var(--red); color: #fff; font: 600 .875rem var(--font-text); }
.woocommerce ul.products li.product .wh-card__buy .button:hover, .wh-card__buy .button:hover { color: #fff; background: var(--red-hover); }
.wh-card__buy .button.loading { opacity: .7; }
.wh-card__buy .added_to_cart { justify-self: center; display: inline-flex; align-items: center; min-height: 32px; font: 600 .8125rem var(--font-text); color: var(--ink); }
.woocommerce :is(a.button.alt, button.button.alt, input.button.alt), .woocommerce div.product form.cart .button { background: var(--red); color: #fff; border: 0; }
.woocommerce :is(a.button.alt, button.button.alt, input.button.alt):hover, .woocommerce div.product form.cart .button:hover { color: #fff; background: var(--red-hover); }
.woocommerce form :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit), .woocommerce :is(button, input)[type=submit].button { min-height: 48px; padding: 0 26px; background: var(--red); color: #fff; border: 0; font: 600 .9375rem/1 var(--font-text); }
.woocommerce form :is(.woocommerce-form-login__submit, .woocommerce-form-register__submit):hover, .woocommerce :is(button, input)[type=submit].button:hover { background: var(--red-hover); color: #fff; }
.wc-block-components-button:not(.is-link) { background: var(--red); color: #fff; border-radius: var(--r-ctl); font-family: var(--font-text); font-weight: 600; }
.wc-block-components-button:not(.is-link):hover { background: var(--red-hover); color: #fff; }
.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) { border-top: 0; border-radius: var(--r-card); background: #fff; color: var(--ink); box-shadow: var(--shadow-1); }
.woocommerce .woocommerce-message::before { color: #15803D; }
.woocommerce .woocommerce-info::before { color: var(--ink-2); }
.woocommerce .woocommerce-error::before { color: var(--red); }
.woocommerce-message:focus { outline: none; }

/* ---- forms: one field style for WooCommerce classic forms, Dokan, the block cart / checkout ------------------------------------ */
.woocommerce form .input-text, .woocommerce-account select, .dokan-form-control { min-height: 46px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: var(--r-ctl); background: #fff; font: 400 1rem var(--font-text); color: var(--ink); }
.woocommerce form textarea.input-text { min-height: 120px; padding: 12px 14px; }
.woocommerce form .input-text:focus, .dokan-form-control:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgb(24 24 27 / .1); }
.woocommerce form .form-row label { font-size: .875rem; font-weight: 500; }
.woocommerce form :is(.woocommerce-form__label-for-checkbox, .user-role label) { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; }
.woocommerce form :is(.woocommerce-form__label-for-checkbox, .user-role label) input { width: 18px; height: 18px; margin: 0; }
.woocommerce form .show-password-input { display: grid; place-items: center; width: 44px; height: 44px; top: 1px; right: 2px; }
.woocommerce form.login, .woocommerce form.register { margin-top: 0; border: 0; border-radius: var(--r-card); padding: 24px; box-shadow: var(--shadow-1); background: #fff; }
.woocommerce h2 { font-size: 1.375rem; margin-bottom: 14px; }
.wc-block-components-text-input input, .wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input, .wc-block-components-textarea { border-radius: var(--r-ctl) !important; border-color: var(--line-2) !important; }
.wc-block-components-text-input input:focus, .wc-blocks-components-select .wc-blocks-components-select__select:focus { border-color: var(--ink) !important; box-shadow: 0 0 0 1px var(--ink) !important; }
.wc-block-components-radio-control--highlight-checked, .wc-block-components-radio-control-accordion-option, .wc-block-checkout__shipping-option .wc-block-components-radio-control__option { border-radius: var(--r-ctl) !important; }
.wc-block-components-radio-control--highlight-checked::after { border-radius: var(--r-ctl) !important; border-color: var(--ink) !important; }
.wc-block-components-checkout-step__title, .wc-block-components-title.wc-block-components-title, .wc-block-cart__totals-title, .wc-block-components-checkout-order-summary__title-text { font-family: var(--font-head) !important; font-weight: 700 !important; letter-spacing: -.01em; text-transform: none !important; color: var(--ink) !important; }
.wc-block-components-order-summary-item__image img, .wc-block-cart-item__image img { object-fit: contain; }
.wc-block-components-product-name, .wc-block-cart-item__product a.wc-block-components-product-name { color: var(--ink) !important; font-weight: 600; text-decoration: none; }

/* ---- cart and checkout (WooCommerce blocks, styled only from here): the lines and the totals as two white panels ---------- */
.wp-block-woocommerce-cart.alignwide, .wp-block-woocommerce-checkout.alignwide { margin-inline: 0; }
.wp-block-woocommerce-checkout { padding-top: 0 !important; }
.wc-block-components-sidebar-layout { gap: 16px 20px; margin-bottom: 0 !important; }
.wc-block-components-sidebar-layout .wc-block-components-main, .wc-block-components-sidebar-layout .wc-block-components-sidebar { background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); padding: 20px !important; margin: 0 !important; }
.wc-block-components-sidebar-layout.is-large, .wc-block-components-sidebar-layout.is-medium { flex-wrap: nowrap; }
.wc-block-components-sidebar-layout.is-large .wc-block-components-main, .wc-block-components-sidebar-layout.is-medium .wc-block-components-main { flex: 1 1 auto; width: auto !important; min-width: 0; padding: 24px 28px !important; }
.wc-block-components-sidebar-layout.is-large .wc-block-components-sidebar, .wc-block-components-sidebar-layout.is-medium .wc-block-components-sidebar { flex: 0 0 380px; width: 380px !important; padding: 24px !important; align-self: flex-start; }
.wc-block-components-sidebar-layout.is-small, .wc-block-components-sidebar-layout.is-mobile { flex-direction: column; }
.wc-block-components-sidebar-layout.is-small > *, .wc-block-components-sidebar-layout.is-mobile > * { width: 100% !important; }
.wc-block-cart .wc-block-cart-items { width: 100%; }
/* phones: picture | name, price, quantity | line total, inside the panel (WooCommerce's own grid ran 20 px past the edge) */
:is(.wc-block-cart.is-mobile, .wc-block-cart.is-small) .wc-block-cart-items__row { grid-template-columns: 72px minmax(0, 1fr) auto !important; column-gap: 12px; }
:is(.wc-block-cart.is-mobile, .wc-block-cart.is-small) .wc-block-cart-item__image { padding-right: 0 !important; }
:is(.wc-block-cart.is-mobile, .wc-block-cart.is-small) .wc-block-cart-item__product { grid-column: 2 / 3 !important; }
:is(.wc-block-cart.is-mobile, .wc-block-cart.is-small) .wc-block-cart-item__total { grid-column: 3 / 4 !important; grid-row: 1 !important; }
.wc-block-cart-items__header { color: var(--muted); font-size: .75rem !important; letter-spacing: .02em; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value, .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font: 800 1.25rem var(--font-text) !important; color: var(--ink); }
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { min-height: 52px !important; font-size: 1rem !important; }
.wc-block-checkout__sidebar.is-sticky { top: 80px; }
.wc-block-checkout__sidebar .wc-block-components-panel, .wp-block-woocommerce-checkout-order-summary-block { border-color: var(--line) !important; border-radius: var(--r-ctl) !important; }
.wc-block-components-quantity-selector { min-height: 44px; border-radius: var(--r-ctl) !important; }
.wc-block-components-quantity-selector::after { border-radius: var(--r-ctl) !important; border-color: var(--line-2) !important; }
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button { min-width: 44px; }
.wc-block-cart-item__remove-link { min-width: 44px; min-height: 44px; }
.wc-block-components-sidebar .wc-block-components-panel__button { min-height: 44px; }
/* one delivery choice for the whole order: only the first producer's parcel shows the rate picker (mu-plugin wh-checkout) */
.wc-block-components-shipping-rates-control__package + .wc-block-components-shipping-rates-control__package .wc-block-components-radio-control { display: none; }
.wc-block-components-shipping-rates-control__package + .wc-block-components-shipping-rates-control__package::after { content: "Same delivery as above"; display: block; font-size: .8125rem; color: var(--muted); padding: 4px 0 8px; }
/* checkout: the Nova Post point right under the delivery choice, the phone first, no one-country picker */
form.wc-block-checkout__form { display: flex; flex-direction: column; }
form.wc-block-checkout__form > #shipping-option { order: 1; }
form.wc-block-checkout__form > #order-fields { order: 2; }
form.wc-block-checkout__form > #payment-method { order: 3; }
form.wc-block-checkout__form > #order-notes, form.wc-block-checkout__form > .wc-block-checkout__terms, form.wc-block-checkout__form > .wc-block-checkout__actions { order: 4; }
.wc-block-components-address-form__phone { order: -1; }
.wc-block-components-address-form__country, .wc-block-checkout__use-address-for-billing { display: none; }

/* ---- checkout extras (mu-plugin wh-checkout) ------------------------------------------------------------------------------------- */
.whc-quick-open { width: 100%; justify-content: center; margin-top: 10px; }
/* the phone cart's sticky checkout bar paints a full-size ::before over its children: lift the one-click button above it */
.wc-block-cart__submit-container .whc-quick-open { position: relative; z-index: 1; margin-top: 8px; }
/* the cart page: the checkout itself under the wines (mu wh-checkout.php whc_quick_dialog inline), then the confirmation */
/* (.whc-quick.whc-quick--inline: two classes, so it beats the dialog's own .whc-quick rules further down) */
.whc-quick.whc-quick--inline { width: auto; max-height: none; overflow: visible; margin: 28px 0 0; padding: 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; box-shadow: none; background: transparent; }
.whc-quick.whc-quick--inline .whc-quick__form { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; padding: 28px 0 0; }
.whc-quick.whc-quick--inline .whc-quick__form > * { grid-column: 1 / -1; }
.whc-quick.whc-quick--inline .whc-quick__form > label:nth-of-type(-n+2) { grid-column: auto; } /* phone and name side by side */
.whc-quick.whc-quick--inline .whc-quick__foot { position: static; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 0; padding: 18px 0 0; background: none; box-shadow: none; border-top: 1px solid var(--line); }
.whc-quick.whc-quick--inline .whc-quick__foot .whc-quick__total { font-size: 1.125rem; }
.whc-quick.whc-quick--inline .whc-quick__foot .whc-quick__error { flex-basis: 100%; }
.whc-quick.whc-quick--inline .wh-actions .wh-pill { min-height: 52px; padding: 0 32px; font-size: 1rem; }
@media (max-width: 699.98px) {
  .whc-quick.whc-quick--inline .whc-quick__form { grid-template-columns: 1fr; }
  .whc-quick.whc-quick--inline .wh-actions, .whc-quick.whc-quick--inline .wh-actions .wh-pill { width: 100%; }
}
/* with the checkout on the page, the side panel's button is the secondary way (the full checkout: company invoice) */
body.whc-inline-on .wc-block-cart .wc-block-cart__submit-button { background: #fff !important; color: var(--ink) !important; border: 1px solid var(--ink-2) !important; box-shadow: none !important; }
body.whc-inline-on .wc-block-cart .wc-block-cart__submit-button:hover { background: var(--soft) !important; }
/* cart wines: a bottle you can see, larger on hover or keyboard focus */
.wc-block-cart .wc-block-cart-items .wc-block-cart-item__image { width: 104px; }
.wc-block-cart .wc-block-cart-items .wc-block-cart-item__image a { position: relative; display: block; }
.wc-block-cart .wc-block-cart-items .wc-block-cart-item__image img { width: 100%; max-height: 156px; object-fit: contain; border-radius: 8px; transform-origin: left center; transition: transform 220ms var(--ease), box-shadow 220ms var(--ease); }
.wc-block-cart .wc-block-cart-items .wc-block-cart-item__image a:is(:hover, :focus-visible) img { position: relative; z-index: 5; transform: scale(2.8); background: #fff; box-shadow: var(--shadow-2); }
.wc-block-cart.is-mobile .wc-block-cart-items .wc-block-cart-items__row, .wc-block-cart.is-small .wc-block-cart-items .wc-block-cart-items__row { grid-template-columns: 96px 1fr; }
.wc-block-cart:is(.is-mobile, .is-small) .wc-block-cart-items .wc-block-cart-item__image { width: 96px; }
@media (prefers-reduced-motion: reduce) { .wc-block-cart .wc-block-cart-items .wc-block-cart-item__image img { transition: none; } }
.whc-pay { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; border: 0; padding: 0; margin: 0; }
.whc-pay legend { font-size: .875rem; font-weight: 500; margin-bottom: 8px; }
@media (max-width: 599.98px) { .whc-pay { grid-template-columns: 1fr; } }
/* the choices made more visible (Mack's / Doina Vin): Nova Post's red on the delivery icons, a 2 px frame on the chosen
   tile, the payment tiles with an icon, a line and the logos (Nova Post for cash, the card marks for the card) */
.whc-kinds .whc-ico, #shipping-option .whc-ico { width: 30px; height: 30px; color: #DA291C !important; }
.whc-pay .whc-ico { width: 30px; height: 30px; color: var(--ink) !important; }
.whc-kind:hover { border-color: var(--ink-2); }
.whc-kind:has(input:checked) { box-shadow: inset 0 0 0 2px var(--ink); background: #FAFAFA; }
.whc-kind > span { font-size: 1rem; }
.whc-kind b.whc-marks { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px; }
.whc-marks img { width: auto; height: 18px; padding: 3px 6px; border: 1px solid #E4E4E7; border-radius: 5px; background: #fff; box-sizing: content-box; }
/* the marks as one row of 28 px boxes: the card marks at 20 px, Apple Pay and Google Pay (wide margins inside their own
   artwork) at the box height; the Nova Post wordmark as large as the Visa mark */
.whc-marks img, .wc-block-checkout .whcd-label__marks img { height: 20px !important; padding: 3px 6px; }
.whc-marks img:is([alt="Apple Pay"], [alt="Google Pay"]), .wc-block-checkout .whcd-label__marks img:is([alt="Apple Pay"], [alt="Google Pay"]) { height: 26px !important; padding: 0 3px; }
.whc-marks img[alt="Nova Post"] { height: 32px !important; max-width: 100%; padding: 0 !important; border: 0 !important; background: none !important; object-fit: contain; } /* no box: its letters as tall as VISA's */
/* WineHub's pop-up for what is missing or went wrong (notice.js) */
.whn { width: min(440px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: 28px 24px 24px; border: 0; border-radius: 16px; background: #fff; color: var(--ink); box-shadow: var(--shadow-2); text-align: center; }
.whn[open] { display: grid; justify-items: center; gap: 10px; }
.whn::backdrop { background: rgba(24, 24, 27, .45); }
.whn__mark { --drop-in: #fff; color: var(--red); line-height: 0; }
.whn__mark svg { width: 52px; height: 52px; }
.whn h2 { margin: 4px 0 0; font-size: 1.25rem; }
.whn__text { margin: 0; color: var(--ink-2); }
.whn__list { width: 100%; margin: 4px 0 6px; padding: 12px 16px; list-style: none; border-radius: 12px; background: var(--soft); text-align: left; display: grid; gap: 6px; }
.whn__list li { position: relative; padding-left: 16px; font-weight: 600; font-size: .9375rem; }
.whn__list li::before { content: ""; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
.whn__list[hidden], .whn__text[hidden] { display: none; }
.whn__ok { min-width: 160px; min-height: 44px; margin-top: 4px; }
.whc-np__geo { margin: 0; color: var(--muted); font-size: .8125rem; line-height: 1.4; }
.whc-np__geo[hidden] { display: none; }
.whc-np__near { justify-self: start; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid var(--line-2); border-radius: 999px; background: #fff; color: var(--ink); font: 600 .875rem var(--font-text); cursor: pointer; }
.whc-np__near:hover { border-color: var(--ink); }
.whc-np__near svg { width: 18px; height: 18px; color: #DA291C; }
.whc-np__near[hidden] { display: none; }
/* the full checkout kept compact: no order-note toggle; the card marks stay inside their row */
.wc-block-checkout__add-note { display: none !important; }
.whcd-label { min-width: 0; }
.whcd-label__marks { flex-wrap: wrap; }
.wc-block-checkout .whcd-label__marks img { width: auto !important; height: 20px !important; max-width: none; }
/* private person or legal entity, the company fields, a third payment tile (invoice) for companies */
.whc-buyer { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; border: 0; padding: 0; margin: 0; }
.whc-buyer .whc-kind { min-height: 52px; align-content: center; justify-items: center; text-align: center; }
.whc-firm { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
.whc-firm label { display: grid; gap: 6px; font-size: .875rem; font-weight: 500; }
.whc-firm small { color: var(--muted); font-weight: 400; }
.whc-firm input, .whc-quick__form input[type=email] { min-height: 46px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: var(--r-ctl); font: 400 1rem var(--font-text); }
.whc-firm input:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgb(24 24 27 / .1); }
.whc-firm[hidden], .whc-kind[hidden] { display: none !important; }
.whc-quick .whc-pay { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
@media (max-width: 699.98px) { .whc-firm { grid-template-columns: 1fr; } }
.whc-done { max-width: 720px; margin: 24px auto 48px; padding: 32px; display: grid; gap: 12px; justify-items: start; }
.whc-done:focus { outline: none; }
.whc-done__ok { width: 44px; height: 44px; color: #15803D; }
.whc-done h2 { font-size: 1.5rem; }
.whc-done p { margin: 0; }
.whc-done__items { width: 100%; margin: 4px 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.whc-done__items li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.whc-quick { width: min(100% - 32px, 480px); max-height: calc(100dvh - 32px); overflow: auto; padding: 0; border: 0; border-radius: var(--r-tile); box-shadow: var(--shadow-2); }
.whc-quick::backdrop { background: rgb(17 17 19 / .55); }
.whc-quick__form { display: grid; gap: 12px; padding: 28px; }
.whc-quick__form h2 { font-size: 1.375rem; }
.whc-quick__form label { display: grid; gap: 6px; font-size: .875rem; font-weight: 500; }
.whc-quick__form :is(input[type=tel], input[type=text], input[type=number]) { min-height: 46px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: var(--r-ctl); font: 400 1rem var(--font-text); }
.whc-quick__form :is(input[type=tel], input[type=text], input[type=number]):focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgb(24 24 27 / .1); }
.whc-quick__total { margin: 6px 0 0; font: 700 1rem var(--font-text); }
/* delivery as on Mack's Professional: Nova Post's logo beside "Delivery", three equal tiles (icon, kind, sub-line, price),
   "Choose the branch" over a search field, the map always open, the chosen point as a card with "Change" */
.whc-kinds { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; border: 0; padding: 0; margin: 0; }
.whc-kinds legend { display: flex; align-items: center; justify-content: space-between; width: 100%; font-size: .875rem; font-weight: 500; margin-bottom: 8px; }
.whc-kinds legend img { height: 21px; width: auto; }
.whc-kind { position: relative; display: grid !important; align-content: start; justify-items: start; gap: 2px !important; padding: 12px; border: 1px solid var(--line-2); border-radius: 12px; cursor: pointer; line-height: 1.3; font-weight: 600 !important; }
.whc-kind input { position: absolute; opacity: 0; pointer-events: none; }
.whc-kind:has(input:checked) { border-color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); background: var(--soft); }
.whc-kind:has(input:focus-visible) { outline: 2px solid var(--ink); outline-offset: 2px; }
.whc-kind b { margin-top: 4px; color: var(--ink); font-weight: 700; font-size: .875rem; }
.whc-ico { width: 24px; height: 24px; margin-bottom: 6px; color: var(--muted); }
:is(.whc-kind:has(input:checked), .wc-block-components-radio-control__option-checked) .whc-ico { color: var(--ink); }
.whc-kind small, .whc-sub { color: var(--muted); font-size: .8125rem; font-weight: 400; line-height: 1.3; }
/* compact tiles: the icon beside the name and its line, the price on the right, the payment marks under the text; three
   delivery tiles in a row when the form is wide, one per row when it is narrow (the wine page's dialog, phones) */
.whc-quick__form { container-type: inline-size; }
.whc-kinds .whc-kind, .whc-pay .whc-kind { grid-template-columns: 24px minmax(0, 1fr) auto; column-gap: 12px; row-gap: 1px !important; align-content: center; align-items: center; padding: 10px 14px; }
.whc-kinds .whc-kind .whc-ico, .whc-pay .whc-kind .whc-ico { grid-row: 1 / span 2; width: 24px; height: 24px; }
.whc-kinds .whc-kind > :is(span, small), .whc-pay .whc-kind > :is(span, small) { grid-column: 2; }
.whc-kinds .whc-kind > b { grid-column: 3; grid-row: 1 / span 2; margin: 0; white-space: nowrap; }
.whc-pay .whc-kind > b.whc-marks { grid-column: 1 / -1; margin-top: 8px; flex-wrap: nowrap; } /* the full width of the tile: the four marks stay on one line */
/* the three Nova Post options always on one line: on a wide form icon | name and line | price; narrower, icon | name over
   price; on a phone, icon over name over price */
@container (max-width: 639.98px) {
  .whc-kinds .whc-kind > small { display: none; }
  .whc-kinds .whc-kind { grid-template-columns: 26px minmax(0, 1fr); column-gap: 10px; padding: 10px 12px; }
  .whc-kinds .whc-kind .whc-ico { width: 26px; height: 26px; }
  .whc-kinds .whc-kind > span { font-size: 1.0625rem; }
  .whc-kinds .whc-kind > b { grid-column: 2; grid-row: 2; font-size: 1rem; }
}
@container (max-width: 379.98px) {
  .whc-kinds .whc-kind { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; padding: 10px 4px; }
  .whc-kinds .whc-kind .whc-ico { grid-row: auto; }
  .whc-kinds .whc-kind > :is(span, b) { grid-column: 1; grid-row: auto; }
  .whc-kinds .whc-kind .whc-ico { width: 24px; height: 24px; }
  .whc-kinds .whc-kind > span { font-size: 1rem; }
  .whc-kinds .whc-kind > b { font-size: .9375rem; }
}
/* the wine page's dialog: phone, name and bottles on one row (on phones name and bottles), a lower map */
.whc-quick:not(.whc-quick--inline) .whc-quick__form:has(input[name=qty]) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 84px; column-gap: 10px; }
.whc-quick:not(.whc-quick--inline) .whc-quick__form:has(input[name=qty]) > * { grid-column: 1 / -1; }
.whc-quick:not(.whc-quick--inline) .whc-quick__form:has(input[name=qty]) > label:nth-of-type(-n+3) { grid-column: auto; }
.whc-quick:not(.whc-quick--inline) .whc-np__map { height: 220px; }
.whc-quick__form > label { min-width: 0; }
.whc-quick__form > label > input:not([type=checkbox], [type=radio]) { width: 100%; min-width: 0; box-sizing: border-box; } /* the inputs fit their column */
@media (max-width: 479.98px) {
  .whc-quick:not(.whc-quick--inline) .whc-quick__form:has(input[name=qty]) { grid-template-columns: minmax(0, 1fr) 84px; }
  .whc-quick:not(.whc-quick--inline) .whc-quick__form:has(input[name=qty]) > label:first-of-type { grid-column: 1 / -1; }
  .whc-quick:not(.whc-quick--inline) .whc-np__map { height: 200px; }
}
.whc-quick { width: min(100% - 32px, 600px); }
.whc-where__label { font-weight: 600; }
.whc-quick__form .whc-where input { padding-left: 42px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='6.5'/%3E%3Cpath d='m16 16 4 4'/%3E%3C/svg%3E") no-repeat 14px center / 18px; }
.whc-np-chosen { display: none !important; } /* the field's wrapper while a point is chosen: the card stands in its place */
/* the picker (mu wh-checkout/np-pick.js): the matches over the map, the map under the field */
.whc-np { position: relative; display: grid; gap: 10px; }
.whc-np[hidden] { display: none; }
.whc-np__list { position: absolute; inset: 4px 0 auto; z-index: 1100; max-height: 312px; margin: 0; padding: 4px; overflow: auto; list-style: none; background: #fff; border: 1px solid var(--line-2); border-radius: 12px; box-shadow: var(--shadow-2); }
.whc-np__list[hidden] { display: none; }
.whc-np__list li { display: grid; padding: 8px 10px; border-radius: 8px; cursor: pointer; font-size: .875rem; line-height: 1.35; }
.whc-np__list li:is(:hover, .is-active) { background: var(--soft); }
.whc-np__list small { color: #DA291C; font-size: .75rem; font-weight: 600; }
.whc-np__list span { color: var(--muted); }
.whc-np__card { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: start; gap: 12px; padding: 14px 16px; border: 1px solid var(--ink); box-shadow: inset 0 0 0 1px var(--ink); border-radius: 12px; font-size: .875rem; line-height: 1.4; }
.whc-np__card[hidden] { display: none; }
.whc-np__card > svg { width: 26px; height: 26px; color: var(--ink); }
.whc-np__card div { display: grid; gap: 2px; }
.whc-np__card b { font-size: 1rem; }
.whc-np__card span, .whc-np__card small { color: var(--muted); }
.whc-np__card small { font-size: .8125rem; }
.whc-np__card button { padding: 4px 0; border: 0; background: none; color: var(--ink); font: 600 .875rem var(--font-text); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.whc-np__map { height: 280px; border: 1px solid var(--line-2); border-radius: 12px; overflow: hidden; z-index: 0; }
@media (max-width: 599.98px) { .whc-np__map { height: 240px; } }
.whc-np__map[hidden] { display: none; }
.whc-np__map .leaflet-tile-pane { filter: saturate(.35) contrast(.95); } /* calm streets, the pins stand out */
/* the block checkout: the same logo at the end of the delivery step's title, the rates as the same three tiles (the icon
   and sub-line come from mu wh-checkout/checkout.js) */
#shipping-option .wc-block-components-checkout-step__title::after { content: ""; display: inline-block; width: 104px; height: 21px; margin-left: 12px; vertical-align: -3px; background: url(/wp-content/mu-plugins/wh-checkout/novapost.svg) no-repeat left center / contain; }
#shipping-option .wc-block-components-radio-control { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
#shipping-option .wc-block-components-radio-control::before, #shipping-option .wc-block-components-radio-control::after { display: none !important; }
#shipping-option .wc-block-components-radio-control .wc-block-components-radio-control__option { margin: 0 !important; padding: 12px !important; border: 1px solid var(--line-2) !important; border-radius: 12px !important; box-shadow: none !important; background: #fff; }
#shipping-option .wc-block-components-radio-control .wc-block-components-radio-control__option::after { display: none !important; }
#shipping-option .wc-block-components-radio-control .wc-block-components-radio-control__option-checked { border-color: var(--ink) !important; box-shadow: inset 0 0 0 1px var(--ink) !important; background: var(--soft); }
#shipping-option .wc-block-components-radio-control__option:has(input:focus-visible) { outline: 2px solid var(--ink); outline-offset: 2px; }
#shipping-option .wc-block-components-radio-control__input { position: absolute !important; opacity: 0 !important; pointer-events: none; }
#shipping-option .wc-block-components-radio-control__label-group { display: grid !important; justify-items: start; gap: 2px; }
#shipping-option .wc-block-components-radio-control__label { font-weight: 600; line-height: 1.3; }
#shipping-option .wc-block-components-radio-control__secondary-label { margin: 4px 0 0 !important; color: var(--ink); font-weight: 700; font-size: .875rem; }
/* "Choose the branch" follows the tiles directly: no "Additional order information" step title between them */
#order-fields .wc-block-components-checkout-step__heading { display: none; }
#order-fields.wc-block-components-checkout-step { padding-top: 0; margin-top: -8px; }
.wc-block-components-text-input + .whc-np { margin: 10px 0 16px; }
.whc-age { display: flex !important; align-items: center; gap: 10px !important; font-weight: 400 !important; }
.whc-quick__error { color: var(--red); font-size: .875rem; }
.whc-paynote { margin: 10px 0 0; padding: 12px 14px; border-radius: var(--r-ctl); background: var(--soft); font-size: .8125rem; color: var(--ink); }
.whc-visit { display: grid; gap: 8px; margin: 0 0 16px; }
.whc-visit label { display: grid; gap: 6px; font-size: .875rem; font-weight: 500; }
.whc-visit input[type=date] { min-height: 46px; max-width: 260px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: var(--r-ctl); font: 400 1rem var(--font-text); }
.whc-parcels { margin: 8px 0 32px; padding: 24px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
/* the thank-you page: our card replaces WooCommerce's notice and overview list */
.woocommerce-order-received .woocommerce-order > .woocommerce-notice--success, .woocommerce-order-received .woocommerce-order-overview { display: none !important; }
.whty { margin: 8px auto 32px; }
.whty h1 { font-size: clamp(1.375rem, 1.1rem + 1vw, 1.75rem); line-height: 1.25; }
.whty__where { display: flex; gap: 10px; align-items: flex-start; width: 100%; padding: 12px 14px; border-radius: 12px; background: var(--soft); box-sizing: border-box; }
.whty__where .whc-ico { flex: none; width: 24px; height: 24px; color: #DA291C; }
.whty__where span { display: grid; gap: 2px; }
.whty__parcel { width: 100%; }
.whty__from { margin: 6px 0 0 !important; font-weight: 700; }
.whty :is(.whc-done__items, .whty__steps) { padding-left: 0 !important; }
.whty :is(.whc-done__items, .whty__steps) li { margin: 0 !important; }
.whty .whc-done__items .whty__ship { color: var(--muted); }
.whty__steps { width: 100%; margin: 6px 0 0; padding: 0; list-style: none; counter-reset: whty; display: grid; gap: 8px; }
.whty__steps li { counter-increment: whty; display: grid; grid-template-columns: 28px 1fr; gap: 10px; align-items: start; color: var(--ink-2); }
.whty__steps li::before { content: counter(whty); display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: #fff; font-size: .8125rem; font-weight: 700; }
@media (max-width: 599.98px) { .whty { padding: 22px 18px; } }
.whc-parcels__list { margin: 14px 0 0; padding-left: 1.2em; display: grid; gap: 10px; }
.whc-parcels__list li { display: grid; gap: 2px; }
.whc-deliv { display: flex; gap: 10px; align-items: flex-start; margin: 14px 0 0; padding: 12px 14px; border-radius: var(--r-ctl); background: var(--soft); font-size: .875rem; line-height: 1.45; }
.whc-deliv svg { flex: none; width: 20px; height: 20px; color: var(--ink-2); margin-top: 1px; }
.whc-deliv small { display: block; color: var(--muted); }

/* ---- wine page: breadcrumb, one white panel with the pictures, the facts and the sticky buy box; panels below ------------ */
.woocommerce div.product { margin-top: 0; }
.wh-pdp-top { position: relative; display: grid; gap: 24px; padding: 16px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.woocommerce div.product .wh-pdp-top > div.images, .woocommerce div.product .wh-pdp-top > div.summary { float: none; width: auto !important; margin: 0; }
.wh-pdp-top > .onsale { position: absolute; top: 16px; left: 16px; z-index: 2; }
@media (min-width: 900px) { .wh-pdp-top { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px; padding: 24px; } }
@media (min-width: 1100px) { .wh-pdp-top { grid-template-columns: minmax(0, 34%) minmax(0, 1fr); } }
.woocommerce div.product div.images { padding: 0; background: #fff; }
.woocommerce div.product div.images img { max-height: 560px; width: auto; margin-inline: auto; }
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: 8px; margin-top: 12px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 64px; }
.woocommerce div.product div.images .flex-control-thumbs img { border: 1px solid var(--line); border-radius: 8px; opacity: .7; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active, .woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; border-color: var(--ink-2); }
.woocommerce div.product.product_cat-winery-visits div.images { overflow: hidden; border-radius: var(--r-ctl); }
.woocommerce div.product.product_cat-winery-visits div.images img { max-height: none; width: 100%; }
.wh-by { font-size: .875rem; color: var(--muted); }
.wh-by a { color: var(--ink-2); font-weight: 600; text-decoration: underline; text-decoration-color: var(--line-2); text-underline-offset: 3px; }
.wh-by a:hover { color: var(--ink); text-decoration-color: currentColor; }
.woocommerce div.product .product_title { font: 800 clamp(1.5rem, 1.25rem + .9vw, 1.875rem)/1.2 var(--font-head); letter-spacing: -.02em; margin: 4px 0 8px; }
.wh-crumbs { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.wh-crumbs span { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; background: var(--soft); color: var(--ink-2); font-size: .8125rem; }
/* the buy box */
.wh-buybox { padding: 20px; margin: 12px 0 18px; border: 1px solid var(--line); border-radius: var(--r-card); background: #fff; }
.woocommerce div.product .wh-buybox p.price, .woocommerce div.product .wh-buybox span.price, .woocommerce div.product p.price, .woocommerce div.product span.price { display: block; min-height: 0; padding: 0; margin: 0 0 6px !important; border-radius: 0; background: none; color: var(--ink); font: 800 clamp(1.75rem, 1.5rem + .8vw, 2.125rem)/1.1 var(--font-text); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.wh-buybox .whr-earn { margin: 0 0 14px; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 0; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { content: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .single_add_to_cart_button { float: none; flex: 1 1 120px; min-height: 50px; padding: 0 24px; border-radius: var(--r-ctl); font: 600 1rem var(--font-text); }
.woocommerce div.product form.cart .whc-visit { flex: 1 0 100%; }
.woocommerce .quantity .qty { min-height: 50px; width: 4.5em; border: 1px solid var(--line-2); border-radius: var(--r-ctl); font: 600 1rem var(--font-text); }
.wh-heart--pdp { position: static; width: 50px; height: 50px; flex: none; border-radius: var(--r-ctl); box-shadow: none; border-color: var(--line-2); }
.wh-heart--pdp svg { width: 22px; height: 22px; }
.wh-seller { display: flex; align-items: center; gap: 12px; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.wh-seller:hover { color: var(--ink); }
.wh-seller:hover b { text-decoration: underline; }
.wh-seller .wh-logotile { width: 72px; height: 44px; flex: none; box-shadow: none; border: 1px solid var(--line); }
.wh-seller span { display: grid; gap: 1px; flex: 1; min-width: 0; }
.wh-seller small { font-size: .75rem; color: var(--muted); }
.wh-seller b { font: 700 .9375rem var(--font-text); }
.wh-seller > .wh-icon { width: 18px; height: 18px; color: var(--muted); flex: none; }
.wh-spec { width: 100%; border-collapse: collapse; margin: 18px 0 8px; font-size: .9375rem; }
.wh-spec th, .wh-spec td { text-align: left; padding: 11px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.wh-spec tr:first-child :is(th, td) { border-top: 1px solid var(--line); }
.wh-spec th { width: 34%; padding-right: 16px; font-weight: 400; color: var(--muted); }
.wh-spec td { font-weight: 500; }
.wh-ext { margin: 12px 0 0; font-size: .875rem; }
.wh-ext a { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; color: var(--ink); font-weight: 600; }
.wh-ext .wh-icon { width: 16px; height: 16px; }
.wh-note { font-size: .8125rem; color: var(--muted); margin: 12px 0; }
.wh-note a { color: var(--ink-2); }
@media (min-width: 1200px) {
  .woocommerce div.product .wh-pdp-top > div.summary { display: grid; grid-template-columns: minmax(0, 1fr) 300px; column-gap: 28px; align-items: start; }
  .woocommerce div.product div.summary > * { grid-column: 1; }
  .woocommerce div.product div.summary > .wh-buybox { grid-column: 2; grid-row: 1 / span 30; position: sticky; top: 80px; margin: 0; }
  /* in the narrow buy box: quantity and heart on one line, the button full width under them */
  .wh-buybox form.cart div.quantity { order: 1; }
  .wh-buybox form.cart .wh-heart--pdp { order: 2; margin-left: auto; }
  .wh-buybox form.cart .single_add_to_cart_button { order: 3; flex: 1 0 100%; }
}
/* the producer, the tabs, related wines: panels under the top one */
.wh-producer-box { clear: both; display: grid; gap: 16px; margin: 16px 0 0; padding: 24px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
@media (min-width: 760px) { .wh-producer-box { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 28px; } }
.wh-producer-box .wh-logotile { width: 180px; height: 108px; border: 1px solid var(--line); box-shadow: none; }
.wh-producer-box__body { display: grid; gap: 10px; }
.wh-producer-box__body > p:not(.wh-actions) { color: var(--ink-2); max-width: 72ch; }
.woocommerce div.product .woocommerce-tabs { margin-top: 16px; padding: 8px 24px 24px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 18px; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-color: var(--line); }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; margin: 0 22px 0 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 12px 0; font: 600 .9375rem var(--font-text); color: var(--muted); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--ink); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--ink); }
.woocommerce div.product :is(.related, .upsells).products { margin-top: 16px; padding: 18px 20px 4px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.woocommerce div.product :is(.related, .upsells).products > h2 { margin-bottom: 14px; font-size: 1.3125rem; }
.single-product .wh-shelf { margin-top: 16px; }

/* ---- winery profile (store page) ------------------------------------------------------------------------------------------------- */
.wh-profile__head { overflow: hidden; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.wh-profile__hero { height: clamp(180px, 22vw, 300px); background: var(--charcoal); }
.wh-profile__hero img { width: 100%; height: 100%; object-fit: cover; }
.wh-profile__id { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 24px; padding: 0 24px 18px; }
.wh-profile__id > .wh-logotile { width: 200px; height: 120px; padding: 12px 18px; margin-top: -60px; flex: none; border-radius: var(--r-card); border: 1px solid var(--line); box-shadow: var(--shadow-2); }
.wh-profile__title { display: grid; gap: 6px; flex: 1 1 320px; min-width: 0; padding-top: 16px; }
.wh-profile__title h1 { font-size: clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem); }
.wh-profile__facts { margin: 0; color: var(--muted); font-size: .9375rem; }
.wh-profile__title .whr-badges { margin: 2px 0 0; }
.wh-profile__id > .wh-pill { margin-bottom: 4px; }
@media (max-width: 699.98px) { .wh-pdp-top { padding: 12px; gap: 16px; } .woocommerce div.product div.images img { max-height: 300px; } }
@media (max-width: 699.98px) { .wh-profile__id { padding: 0 16px 16px; } .wh-profile__id > .wh-logotile { width: 150px; height: 90px; margin-top: -46px; } .wh-profile__title { padding-top: 0; } }
.wh-tabs { display: flex; gap: 4px 24px; overflow-x: auto; scrollbar-width: none; padding: 0 24px; border-top: 1px solid var(--line); }
.wh-tabs::-webkit-scrollbar { display: none; }
.wh-tabs a { flex: none; display: inline-flex; align-items: center; min-height: 48px; color: var(--ink-2); font: 600 .9375rem/1 var(--font-text); text-decoration: none; border-bottom: 2px solid transparent; }
.wh-tabs a:hover { color: var(--ink); border-bottom-color: var(--ink); }
.wh-psec { margin-top: 16px; padding: 24px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); scroll-margin-top: 80px; }
@media (max-width: 699.98px) { .wh-psec { padding: 18px 16px; } .wh-tabs { padding: 0 16px; } }
.wh-psec ul.products { margin-bottom: 0; }
.wh-zig { display: grid; gap: 24px; }
.wh-zig__row { display: grid; gap: 20px; align-items: center; color: var(--ink-2); }
.wh-zig__row p + p { margin-top: 12px; }
.wh-zig__row img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--r-ctl); }
@media (min-width: 860px) { .wh-zig__row { grid-template-columns: 1.6fr 1fr; gap: 40px; } .wh-zig__row--flip { grid-template-columns: 1fr 1.6fr; } .wh-zig__row--flip img { order: -1; } .wh-zig__row--text { grid-template-columns: minmax(0, 60rem); } }
.wh-visitbox { display: grid; gap: 24px; }
@media (min-width: 860px) { .wh-visitbox { grid-template-columns: 1.2fr 1fr; gap: 40px; } }
.wh-visitbox__img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--r-ctl); }
.wh-infolist { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; font-size: .9375rem; }
.wh-facilities { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.wh-facilities span { display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px; border-radius: 999px; background: var(--soft); color: var(--ink); font-size: .8125rem; }
.wh-contacts { display: grid; gap: 8px; font-size: .9375rem; }
.wh-source { font-size: .8125rem; color: var(--muted); margin-top: 12px; }
.wh-source a { color: var(--ink-2); }
.wh-unclaimed { display: grid; gap: 14px; margin-top: 16px; padding: 28px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.wh-unclaimed > p { max-width: 64ch; color: var(--ink-2); }
/* the logo tile, the same shape everywhere */
.wh-logotile { display: grid; place-items: center; width: 136px; height: 80px; padding: 8px 12px; background: #fff; border-radius: var(--r-ctl); box-shadow: 0 6px 18px -10px rgb(0 0 0 / .3); }
.wh-logotile img { width: 100%; height: 100%; object-fit: contain; }
.wh-logotile--mono { font: 800 1.5rem/1 var(--font-head); color: var(--ink-2); letter-spacing: -.02em; background: var(--soft); }

/* ---- wineries list --------------------------------------------------------------------------------------------------------------- */
.wh-wlist { list-style: none; padding: 0; margin: 0; display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 290px), 1fr)); }
.wh-wcard { position: relative; display: flex; flex-direction: column; overflow: hidden; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); transition: box-shadow 200ms var(--ease); }
.wh-wcard:hover { box-shadow: var(--shadow-2); }
.wh-wcard__media { display: block; aspect-ratio: 16 / 9; background: var(--soft); }
.wh-wcard__media > img { width: 100%; height: 100%; object-fit: cover; }
.wh-wcard__body { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 0 18px 18px; }
.wh-wcard__body > .wh-logotile { position: relative; margin-top: -40px; margin-bottom: 8px; border: 1px solid var(--line); }
.wh-wcard h3 { font: 700 1.0625rem/1.3 var(--font-text); }
.wh-wcard h3 a { color: var(--ink); text-decoration: none; }
.wh-wcard h3 a::after { content: ""; position: absolute; inset: 0; } /* the whole card is the link */
.wh-wcard:hover h3 a { text-decoration: underline; }
.wh-wcard__facts { font-size: .875rem; color: var(--muted); }
.wh-wcard__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px; margin-top: auto; padding-top: 14px; }
.wh-wcard__foot .wh-pill { position: relative; z-index: 1; }
.wh-reg { margin-top: 16px; padding: 24px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.wh-reg .wh-lead { font-size: .9375rem; }
.wh-reg__grid { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.wh-reg__grid a { display: flex; align-items: center; gap: 16px; min-height: 104px; padding: 10px 14px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-ctl); color: var(--ink); text-decoration: none; transition: border-color 150ms var(--ease), box-shadow 150ms var(--ease); }
.wh-reg__grid a:hover { border-color: var(--ink-2); box-shadow: var(--shadow-1); }
.wh-reg__mono { display: grid; place-items: center; width: 140px; height: 84px; flex: none; border-radius: 8px; background: var(--soft); color: var(--ink-2); font: 800 1.375rem/1 var(--font-head); letter-spacing: .02em; }
.wh-reg__logo { background: #fff; border: 1px solid var(--line); padding: 4px 6px; } /* a bigger tile, a thin margin: the mark fills it */
.wh-reg__logo img { width: 100%; height: 100%; object-fit: contain; }
.wh-reg__logo, .wh-logotile { grid-template: minmax(0, 1fr) / minmax(0, 1fr); } /* a definite cell, so a tall trimmed logo is contained instead of overflowing the tile */
.wh-reg__grid b { display: block; font: 600 .875rem/1.25 var(--font-text); }
.wh-reg__grid span span { font-size: .75rem; color: var(--muted); }

/* ---- regions page ------------------------------------------------------------------------------------------------------------------- */
.wh-regionrow { display: grid; gap: 20px; align-items: center; margin-top: 16px; padding: 16px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); scroll-margin-top: 80px; }
.wh-regionrow__media img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-ctl); }
.wh-regionrow__body { display: grid; gap: 12px; padding: 4px 8px 8px; }
.wh-regionrow__body > p { color: var(--ink-2); max-width: 56ch; }
.wh-region__count { font: 600 .875rem/1.3 var(--font-text); color: var(--muted) !important; }
.wh-namelist { list-style: none; padding: 0; margin: 4px 0; display: flex; flex-wrap: wrap; gap: 8px; }
.wh-namelist a { display: inline-flex; min-height: 34px; align-items: center; padding: 0 12px; border-radius: 999px; border: 1px solid var(--line-2); background: #fff; color: var(--ink); font-size: .8125rem; text-decoration: none; }
.wh-namelist a:hover { border-color: var(--ink-2); background: var(--soft); color: var(--ink); }
@media (min-width: 900px) { .wh-regionrow { grid-template-columns: 1.1fr 1fr; gap: 40px; padding: 20px; } .wh-regionrow--flip .wh-regionrow__media { order: 2; } }

/* ---- prose pages, account, favourites ------------------------------------------------------------------------------------------- */
.wh-prose { max-width: 860px; padding: clamp(20px, 3vw, 40px); background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.wh-prose > * + * { margin-top: 14px; }
.wh-prose h2 { margin-top: 36px; font-size: 1.375rem; }
.wh-prose ul, .wh-prose ol { padding-left: 1.2em; }
.wh-prose a:not([class]) { color: var(--ink); }
.wh-prose .wh-btn, .wh-prose .wh-pill { text-decoration: none; }
.woocommerce-cart .wh-prose, .woocommerce-checkout .wh-prose, .woocommerce-account .wh-prose, .dokan-dashboard .wh-prose, .wh-prose:has(ul.products), .wh-prose:has(.whr-play), .wh-prose:has(.wh-empty) { max-width: none; padding: 0; background: none; box-shadow: none; border-radius: 0; }
.wh-empty { display: grid; gap: 12px; justify-items: start; padding: 28px; border-radius: var(--r-card); background: #fff; box-shadow: var(--shadow-1); }
/* My account: the menu and the content as two panels */
.woocommerce-account .woocommerce { display: grid; gap: 16px; }
@media (min-width: 900px) { .woocommerce-account.logged-in .woocommerce { grid-template-columns: 260px minmax(0, 1fr); align-items: start; } .woocommerce-account.logged-in .woocommerce > :not(.woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content) { grid-column: 1 / -1; } }
.woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after { content: none; }
.woocommerce-account .woocommerce-MyAccount-navigation, .woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-MyAccount-navigation { padding: 8px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 4px; }
@media (min-width: 900px) { .woocommerce-MyAccount-navigation ul { display: grid; gap: 2px; } }
.woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: 8px; color: var(--ink-2); text-decoration: none; font: 500 .9375rem var(--font-text); }
.woocommerce-MyAccount-navigation a:hover { background: var(--soft); color: var(--ink); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--soft); color: var(--ink); font-weight: 700; }
.woocommerce-MyAccount-content { padding: clamp(18px, 2.5vw, 28px); background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.woocommerce-account:not(.logged-in) .u-columns { gap: 16px; }
.woocommerce-account:not(.logged-in) .u-columns > h2, .woocommerce-account:not(.logged-in) .u-column1 > h2, .woocommerce-account:not(.logged-in) .u-column2 > h2 { margin: 6px 0 12px; }
.wh-signup-bonus { margin: 0 0 14px; padding: 10px 14px; border-radius: var(--r-ctl); background: var(--soft); font: 600 .875rem var(--font-text); }
/* social sign-in (Nextend Social Login), above the e-mail forms */
.wh-social { display: grid; gap: 14px; margin-bottom: 18px; }
.wh-social__or { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--muted); font-size: .8125rem; }
.wh-social__or::before, .wh-social__or::after { content: ""; flex: 1; height: 1px; background: var(--line); }

/* ---- rewards (mu-plugin wh-rewards) ---------------------------------------------------------------------------------------------- */
.whr-earn, .whr-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.whr-earn span, .whr-badges span { display: inline-flex; align-items: center; min-height: 24px; padding: 0 10px; border-radius: 999px; background: var(--soft); color: var(--ink-2); font: 500 .75rem/1.2 var(--font-text); }
.whr-badges { margin: 4px 0 8px; }
.whr { display: grid; gap: 8px; }
.whr-hero { display: grid; gap: 20px; padding: 24px; border-radius: var(--r-card); background: var(--soft); }
@media (min-width: 900px) { .whr-hero { grid-template-columns: 1fr 1.2fr auto; align-items: center; } }
.whr-balance b { font: 800 clamp(2.4rem, 2rem + 1.6vw, 3.2rem)/1 var(--font-text); color: var(--ink); margin-right: 6px; }
.whr-balance { font: 600 1rem var(--font-text); }
.whr-level { display: grid; gap: 6px; padding: 16px; background: #fff; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
.whr-bar { display: block; height: 8px; border-radius: 999px; background: #E4E4E7; overflow: hidden; }
.whr-bar > span { display: block; height: 100%; border-radius: inherit; background: var(--red); }
.whr-checkin { display: grid; gap: 6px; justify-items: start; }
.whr-checkin button:disabled { opacity: .7; cursor: default; }
.whr-sec { padding-top: 28px; }
.whr-regions { list-style: none; padding: 0; margin: 12px 0 16px; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.whr-regions li { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: baseline; padding: 12px 14px; border-radius: var(--r-ctl); border: 1px dashed var(--line-2); color: var(--muted); }
.whr-regions li b { font: 700 .875rem var(--font-text); }
.whr-regions li small { font: 600 .75rem var(--font-text); font-variant-numeric: tabular-nums; }
.whr-regions li .whr-bar { grid-column: 1 / -1; height: 6px; }
.whr-regions li.is-on { border-style: solid; border-color: var(--ink-2); color: var(--ink); background: var(--soft); }
.whr-stamps { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
.whr-stamps a { display: block; text-decoration: none; }
.whr-stamps .wh-logotile { width: 100%; height: auto; aspect-ratio: 5 / 3; border-radius: var(--r-card); filter: grayscale(1); opacity: .38; box-shadow: none; border: 1px dashed var(--line-2); transition: opacity 200ms var(--ease), filter 200ms var(--ease); }
.whr-stamps li.is-on .wh-logotile { filter: none; opacity: 1; border: 2px solid var(--ink); box-shadow: var(--shadow-1); }
.whr-stamps a:hover .wh-logotile { opacity: .8; }
.whr-missions { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.whr-missions li { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r-ctl); }
.whr-missions li > span:first-child { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.whr-missions li.is-done { border-color: var(--ink-2); background: var(--soft); }
.whr-missions b a { color: inherit; text-decoration-color: var(--line-2); text-underline-offset: 3px; }
.whr-missions b a:hover { color: var(--red); }
.whr-cols { display: grid; gap: 28px; }
@media (min-width: 900px) { .whr-cols { grid-template-columns: 1fr 1fr; } }
.whr-cols select, .whr-link { min-height: 44px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: var(--r-ctl); font: inherit; font-size: .875rem; background: #fff; width: 100%; max-width: 420px; }
.whr-log { width: 100%; border-collapse: collapse; font-size: .875rem; }
.whr-log td { padding: 8px 0; border-bottom: 1px solid var(--line); }
.whr-log td:last-child { text-align: right; font-weight: 600; font-variant-numeric: tabular-nums; }
.whr-log td.is-plus { color: #15803D; }
/* bars fill in once; a new level and the next reward get their own line */
@keyframes whr-fill { from { width: 0; } }
@keyframes whr-pop { 0% { transform: scale(.96); opacity: 0; } 60% { transform: scale(1.015); opacity: 1; } 100% { transform: none; } }
.whr-bar > span { animation: whr-fill 900ms var(--ease) both; }
.whr-levelup { padding: 14px 18px; border-radius: var(--r-card); background: var(--ink); color: #fff; font: 600 1rem var(--font-text); animation: whr-pop 600ms var(--ease) both; }
.whr-next { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 12px 16px; border: 1px solid var(--line-2); border-radius: var(--r-ctl); background: #fff; font-size: .9375rem; }
/* cart and checkout: use the points */
.whr-use { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 0 0 16px; padding: 12px 12px 12px 20px; border-radius: var(--r-card); background: #fff; box-shadow: var(--shadow-1); font-size: .9375rem; }
.whr-use p { margin: 0; }
.whr-use .wh-pill--red { background: #fff; color: var(--ink); border: 1px solid var(--ink-2); }
.whr-use .wh-pill--red:hover { background: var(--soft); }
.wh-prose > .whr-use { margin-bottom: 16px; }

/* games: the taste finder and the quiz */
.whr-play { display: grid; gap: 20px; }
.whr-play [hidden] { display: none !important; }
.wh-prose:has(.whr-play) { max-width: 980px; }
.whr-game .wh-ruled { margin-bottom: 4px; }
.whr-game .wh-ruled h2 { margin: 0; }
.whr-play .whr-picks { padding: 0; }
.whr-game { display: grid; gap: 12px; padding: clamp(18px, 3vw, 32px); border-radius: var(--r-card); background: #fff; box-shadow: var(--shadow-1); }
.whr-steps { display: grid; gap: 14px; margin: 0; }
.whr-step { border: 0; padding: 0; margin: 0; min-width: 0; animation: whr-pop 380ms var(--ease) both; }
.whr-step legend, .whr-q h3 { padding: 0; margin-bottom: 14px; font: 700 clamp(1.125rem, 1rem + .6vw, 1.5rem)/1.3 var(--font-head); color: var(--ink); }
.whr-progress, .whr-q__n { margin: 0; font: 500 .8125rem var(--font-text); color: var(--muted); }
.whr-tiles { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.whr-tile { position: relative; display: block; cursor: pointer; }
.whr-tile input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.whr-tile span { display: flex; align-items: center; justify-content: center; min-height: 64px; padding: 10px 14px; border: 1.5px solid var(--line); border-radius: var(--r-ctl); background: #fff; font: 600 .9375rem/1.25 var(--font-text); text-align: center; transition: border-color 160ms var(--ease), background-color 160ms var(--ease), transform 160ms var(--ease); }
.whr-tile:hover span { border-color: var(--ink-2); }
.whr-tile input:checked + span { border-color: var(--ink); background: var(--soft); color: var(--ink); box-shadow: inset 0 0 0 1px var(--ink); transform: scale(.98); }
.whr-tile input:focus-visible + span { outline: 2px solid var(--ink); outline-offset: 2px; }
.whr-nav { margin: 0; }
.whr-result { display: grid; gap: 14px; animation: whr-pop 420ms var(--ease) both; }
.whr-result h3 { margin: 0; font: 700 1.25rem/1.3 var(--font-head); }
.whr-picks { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.whr-pick { display: grid; grid-template-columns: 72px 1fr; gap: 14px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: var(--r-card); }
.whr-pick img { width: 72px; height: 108px; object-fit: contain; }
.whr-pick p { margin: 0 0 6px; }
.whr-pick__name { display: block; margin-bottom: 10px; font: 600 .9375rem/1.3 var(--font-text); color: var(--ink); text-decoration: none; }
.whr-pick__name:hover { color: var(--ink); text-decoration: underline; }
.whr-pick__buy { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.whr-pick__buy b { font: 800 1.0625rem var(--font-text); color: var(--ink); white-space: nowrap; }
.whr-award { margin: 0; padding: 12px 16px; border-radius: var(--r-ctl); background: var(--soft); font-size: .9375rem; }
.whr-award .wh-pill { margin-left: 6px; }
.whr-quiz { display: grid; gap: 14px; }
.whr-q { animation: whr-pop 380ms var(--ease) both; }
.whr-answers { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.whr-answer { min-height: 56px; padding: 10px 16px; border: 1.5px solid var(--line); border-radius: var(--r-ctl); background: #fff; font: 600 .9375rem/1.3 var(--font-text); color: var(--ink); text-align: left; cursor: pointer; transition: border-color 160ms var(--ease), background-color 160ms var(--ease); }
.whr-answer:hover:not(:disabled) { border-color: var(--ink-2); }
.whr-answer:disabled { cursor: default; opacity: .6; }
.whr-answer.is-right { opacity: 1; border-color: #15803D; background: #E8F5EC; color: #14532D; }
.whr-answer.is-wrong { opacity: 1; border-color: var(--red); background: var(--red-tint); color: #8E1622; }
.whr-why { margin: 0; padding: 12px 16px; border-radius: var(--r-ctl); background: var(--soft); animation: whr-pop 320ms var(--ease) both; }
.whr-score { font: 800 clamp(1.5rem, 1.2rem + 1vw, 2rem) var(--font-text); color: var(--ink); }

/* ---- lead form on the page of a winery without a store (mu-plugin wh-leads) ------------------------------------------------------- */
form.wh-lead { display: grid; gap: 10px; margin-top: 8px; padding-top: 18px; border-top: 1px solid var(--line); }
form.wh-lead h3 { margin: 0; font: 700 1.125rem/1.3 var(--font-head); }
form.wh-lead p { margin: 0; }
.wh-lead__row { display: flex; flex-wrap: wrap; gap: 10px; }
.wh-lead__row input { flex: 1 1 220px; min-height: 46px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: var(--r-ctl); font: inherit; background: #fff; }
.wh-lead__row input:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgb(24 24 27 / .1); }
.wh-lead__ok { font-size: .8125rem; color: var(--muted); }
.wh-lead__ok input { vertical-align: -2px; margin-right: 6px; }
.wh-lead__err { color: var(--red); font-weight: 600; }
.wh-lead__hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
p.wh-lead--ok { padding: 14px 18px; border-radius: var(--r-ctl); background: #E8F5EC; color: #14532D; font-weight: 600; }

/* ---- toast after adding from a list; the phone tab bar and the wine page's buy bar ------------------------------------------------ */
.wh-toast { position: fixed; z-index: 60; left: 50%; bottom: 20px; max-width: calc(100vw - 32px); padding: 12px 18px; border-radius: var(--r-ctl); background: var(--ink); color: #fff; font: 500 .875rem var(--font-text); box-shadow: var(--shadow-2); transform: translateX(-50%); animation: wh-toast-in 260ms var(--ease) both; }
.wh-toast a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.wh-toast.is-out { opacity: 0; transform: translate(-50%, 8px); transition: opacity 260ms var(--ease), transform 260ms var(--ease); }
@keyframes wh-toast-in { from { opacity: 0; transform: translate(-50%, 12px); } }
.wh-tabbar { display: none; }
.wh-buybar { position: fixed; z-index: 55; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 12px; padding: 10px var(--gutter) calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -8px 24px -12px rgb(0 0 0 / .18); }
.wh-buybar[hidden] { display: none; }
.wh-buybar span { display: grid; flex: 1; min-width: 0; }
.wh-buybar b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 500 .8125rem var(--font-text); }
.wh-buybar em { font: 800 1.125rem var(--font-text); font-style: normal; color: var(--ink); }
@media (min-width: 900px) { .wh-buybar { display: none !important; } }
@media (max-width: 699.98px) {
  body { padding-bottom: calc(60px + env(safe-area-inset-bottom)); }
  .wh-tabbar { position: fixed; z-index: 55; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); padding-bottom: env(safe-area-inset-bottom); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 18px -12px rgb(0 0 0 / .2); }
  .wh-tabbar > * { position: relative; display: grid; justify-items: center; align-content: center; gap: 3px; min-height: 58px; padding: 0; border: 0; background: none; color: var(--muted); font: 500 .6875rem/1 var(--font-text); text-decoration: none; cursor: pointer; }
  .wh-tabbar .wh-icon { width: 22px; height: 22px; }
  .wh-tabbar [aria-current] { color: var(--ink); font-weight: 700; }
  .wh-tabbar [aria-current]::before { content: ""; position: absolute; top: 0; left: 30%; right: 30%; height: 2px; border-radius: 0 0 2px 2px; background: var(--red); }
  .wh-tabbar .wh-cart-count, .wh-tabbar .wh-wish-count { top: 5px; left: calc(50% + 4px); }
  .wh-toast { bottom: calc(72px + env(safe-area-inset-bottom)); }
  body.single-product { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  body.single-product .wh-tabbar { display: none; }
}

/* ---- phones: the compact header ---------------------------------------------------------------------------------------------------- */
@media (max-width: 699.98px) {
  .wh-ribbon { padding: 4px var(--gutter); font-size: .6875rem; }
  .wh-bar__inner { flex-wrap: nowrap; gap: 8px; min-height: 55px; padding-block: 5px; }
  .wh-logo { justify-content: center; min-width: 44px; min-height: 44px; }
  .wh-logo span { display: none; }
  .wh-logo svg { width: 32px; height: 32px; }
  .wh-bar__link, .wh-bar .whr-chip { display: none; } /* account, favourites and cart are in the bottom tab bar */
  .wh-search { order: 0; flex: 1 1 auto; min-width: 0; }
  .wh-search input { height: 44px; padding: 0 56px 0 14px; font-size: 16px; }
  .wh-search__go { top: 0; right: 0; bottom: 0; width: 48px; padding: 0; justify-content: center; border-radius: 0 var(--r-ctl) var(--r-ctl) 0; }
  .wh-search__go span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  /* the bar keeps the two other languages as full-size targets; the footer has all three */
  .wh-bar .wh-langs { margin: 0; padding: 0; gap: 0; border: 0; }
  .wh-bar .wh-langlink.is-on { display: none; }
  .wh-bar .wh-langlink { min-width: 44px; height: 44px; padding: 0; border-radius: var(--r-ctl); font-size: .8125rem; }
  .wh-mega li a { min-height: 44px; align-items: center; }
  .wh-card__buy .button, .woocommerce ul.products li.product .wh-card__buy .button { min-height: 44px; }
  .wh-mega > summary { padding: 0; justify-content: center; }
  .wh-mega > summary span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .wh-sub__item { padding: 0 10px; }
  .wh-perks a { min-height: 44px; }
  .wh-main { padding-top: 12px; }
}
@media (max-width: 359.98px) { .wh-langs { display: none; } }

/* ---- producer dashboard (Dokan): WineHub colours instead of Dokan's purple, the shop's own bars left out -------------------------- */
/* Same calm system as the WineHub admin: a charcoal menu with the red "you are here" marker, white cards on the grey
   canvas, readable stat tiles (two per row on a phone), 44 px fields and buttons, the menu one scrolling row on phones
   (wh-admin.php starts it at the current page). Dokan's own colours come through its CSS variables. */
body.dokan-dashboard {
  --pd-field: #8E8E96; --pd-line-soft: #EFEFF1; --pd-head: #FAFAFA; --pd-chrome-2: #2E2E33; --pd-chrome-3: #3A3A40;
  --wp-admin-theme-color: #BE2130; --wp-admin-theme-color--rgb: 190, 33, 48; --wp-admin-theme-color-darker-10: #9E1B28;
  --dokan-button-background-color: #BE2130; --dokan-button-border-color: #BE2130; --dokan-button-hover-background-color: #9E1B28;
  --dokan-button-hover-color: #9E1B28; --dokan-button-text-color: #fff; --dokan-button-secondary-text-color: #18181B;
  --dokan-link-color: #18181B; --dokan-link-hover-color: #9E1B28;
  --dokan-sidebar-background-color: #232327; --dokan-sidebar-text-color: #D4D4D8; --dokan-sidebar-hover-background-color: #2E2E33; --dokan-sidebar-hover-text-color: #fff;
  --colors-primary-50: #FDF1F2; --colors-primary-100: #F9D9DC; --colors-primary-200: #F2B1B7; --colors-primary-300: #E7838D; --colors-primary-400: #D65461;
  --colors-primary-500: #C42F3D; --colors-primary-600: #BE2130; --colors-primary-700: #9E1B28; --colors-primary-800: #7F1620; --colors-primary-900: #5F1018;
  background: var(--canvas);
}
body.dokan-dashboard .wh-sub, body.dokan-dashboard .wh-perks, body.dokan-dashboard .wh-tabbar { display: none; }
body.dokan-dashboard .wh-page-head h1 { font-size: 1.5rem; }
body.dokan-dashboard .dokan-dashboard-wrap { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; background: none; box-shadow: none; }
body.dokan-dashboard .dokan-dashboard-wrap .dokan-dash-sidebar, body.dokan-dashboard .dokan-dashboard-wrap .dokan-dashboard-content { float: none; width: auto !important; max-width: none !important; margin: 0; padding: 0; min-width: 0; }
body.dokan-dashboard .dokan-dashboard-content { overflow-wrap: break-word; }
body.dokan-dashboard .dokan-dashboard-content > article, body.dokan-dashboard .dokan-dashboard-content .product-listing-top > ul { margin-left: 0; margin-right: 0; padding-left: 0 !important; padding-right: 0 !important; }
body.dokan-dashboard .select2-hidden-accessible, body.dokan-dashboard .dokan-orders-content .dokan-orders-area .dokan-order-filter-serach .dokan-left .dokan-form-group select.select2-hidden-accessible { width: 1px !important; min-height: 0 !important; } /* Dokan's full-width class made the hidden select stick out of the page */
@media (min-width: 900px) { body.dokan-dashboard .dokan-dashboard-wrap { grid-template-columns: 236px minmax(0, 1fr); gap: 24px; } }

/* the menu */
body.dokan-dashboard .dokan-dash-sidebar { padding: 8px !important; background: var(--charcoal) !important; border-radius: var(--r-card); box-shadow: var(--shadow-1); }
body.dokan-dashboard .dokan-dash-sidebar #dokan-navigation { height: auto !important; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu { margin: 0; padding: 0 !important; background: none !important; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li, body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li:hover, body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.active { background: none !important; box-shadow: none !important; border: 0; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li::after, body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.active::after,
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li ul.navigation-submenu li::before { display: none !important; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li a {
  position: relative; display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 10px 12px; border-radius: 8px;
  color: #D4D4D8; font-size: .9375rem; font-weight: 500; line-height: 1.25; text-decoration: none;
}
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li a i { flex: none; width: 20px; padding: 0; font-size: 1rem; text-align: center; color: #A1A1AA; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li a i.menu-dropdown { width: auto; margin-left: auto; font-size: .75rem; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li a i.menu-dropdown::before { padding: 0; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li:hover > a, body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li > a:focus-visible { background: var(--pd-chrome-2); color: #fff; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li:hover > a i { color: #fff; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.active > a { background: var(--pd-chrome-3); color: #fff; font-weight: 600; padding-right: 12px; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.active > a i { color: #fff; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.active > a::before { content: ""; position: absolute; left: 0; top: 11px; bottom: 11px; width: 3px; border-radius: 0 3px 3px 0; background: var(--red); }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu a:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
/* Settings' own pages: under it when open, a floating panel on hover */
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li ul.navigation-submenu { border: 0 !important; box-shadow: none; background: none; padding: 2px 0 4px; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li ul.navigation-submenu li { padding: 0; background: none !important; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li ul.navigation-submenu li a { min-height: 40px; padding: 8px 12px 8px 44px; font-size: .875rem; font-weight: 500 !important; color: #A1A1AA; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li ul.navigation-submenu li a i { display: none; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li ul.navigation-submenu li.current a, body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li ul.navigation-submenu li a:hover { color: #fff; font-weight: 600 !important; background: rgb(255 255 255 / .06); }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li:hover:not(.active) ul.navigation-submenu { min-width: 190px; padding: 6px; border-radius: 10px; background: var(--pd-chrome-2) !important; box-shadow: var(--shadow-2); }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li:hover:not(.active) ul.navigation-submenu li a { padding-left: 12px; }
/* store, account and log-out icons */
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.dokan-common-links { display: flex; gap: 4px; margin-top: 8px; padding-top: 8px; border-top: 1px solid rgb(255 255 255 / .08); }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.dokan-common-links a { flex: 1; justify-content: center; float: none; width: auto; padding: 0; min-height: 44px; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.dokan-common-links a i { color: #D4D4D8; }
body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.dokan-common-links a:hover { background: var(--pd-chrome-2); }
/* phones and tablets: no hamburger, the menu is one row you swipe; Settings' pages sit in the same row */
@media (max-width: 899.98px) {
  body.dokan-dashboard .dokan-dash-sidebar { padding: 6px !important; }
  /* body. in front: Dokan's phone rules (hamburger, a 48 px gap, full-width rows) carry !important at the same weight */
  body.dokan-dashboard .dokan-dash-sidebar #dokan-navigation #mobile-menu-icon { display: none !important; }
  body.dokan-dashboard .dokan-dash-sidebar #dokan-navigation ul.dokan-dashboard-menu {
    display: flex !important; gap: 4px; height: auto !important; padding: 0 !important; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none; animation: none !important;
  }
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu::before, body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu::after { display: none !important; }
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu::-webkit-scrollbar { display: none; }
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu > li { flex: none; display: block; float: none; width: auto; margin: 0; border: 0 !important; }
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li ul.navigation-submenu li { float: none; width: auto; }
  body.dokan-dashboard .dokan-dashboard-content article { overflow: auto; } /* Dokan's "scroll" draws empty scrollbars */
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li a { white-space: nowrap; gap: 8px; padding: 10px 14px; }
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li a i.menu-dropdown { display: none; }
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.active > a::before { left: 14px; right: 14px; top: auto; bottom: 4px; width: auto; height: 3px; border-radius: 3px; }
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.has-submenu, body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.has-submenu ul.navigation-submenu { display: contents !important; }
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li ul.navigation-submenu li { flex: none; }
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li ul.navigation-submenu li.store { display: none; } /* the same page as Settings */
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li ul.navigation-submenu li a { min-height: 44px; padding: 10px 14px; font-size: .9375rem; color: #D4D4D8; }
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.dokan-common-links { margin: 0 0 0 4px; padding: 0 0 0 4px; border-top: 0; border-left: 1px solid rgb(255 255 255 / .1); }
  body.dokan-dashboard .dokan-dash-sidebar ul.dokan-dashboard-menu li.dokan-common-links a { flex: none; width: 44px; }
}

/* buttons and fields */
body.dokan-dashboard .dokan-btn, body.dokan-dashboard a.dokan-btn, body.dokan-dashboard input[type=submit].dokan-btn, body.dokan-dashboard button.dokan-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1px solid var(--line-2); border-radius: var(--r-ctl);
  background: #fff; color: var(--ink); font: 600 .9375rem/1.2 var(--font-text); box-shadow: 0 1px 0 rgb(24 24 27 / .04); text-decoration: none; white-space: nowrap;
}
body.dokan-dashboard .dokan-btn:hover { background: var(--soft); border-color: #A1A1AA; color: var(--ink); }
body.dokan-dashboard .dokan-btn-theme, body.dokan-dashboard a.dokan-btn-theme, body.dokan-dashboard input[type=submit].dokan-btn-theme, body.dokan-dashboard button.dokan-btn-theme { background: var(--red) !important; border-color: var(--red) !important; color: #fff !important; }
body.dokan-dashboard .dokan-btn-theme:hover { background: var(--red-hover) !important; border-color: var(--red-hover) !important; }
body.dokan-dashboard .dokan-btn i { padding: 0; margin: 0; }
body.dokan-dashboard .dokan-btn-theme i.fa-briefcase { display: none; } /* "Add new product" reads fine without a briefcase */
body.dokan-dashboard .dokan-form-control, body.dokan-dashboard .dokan-dashboard-content input[type=text], body.dokan-dashboard .dokan-dashboard-content input[type=email], body.dokan-dashboard .dokan-dashboard-content input[type=number],
body.dokan-dashboard .dokan-dashboard-content input[type=search], body.dokan-dashboard .dokan-dashboard-content input[type=tel], body.dokan-dashboard .dokan-dashboard-content input[type=url], body.dokan-dashboard .dokan-dashboard-content select {
  min-height: 44px; padding: 8px 12px; border: 1px solid var(--pd-field); border-radius: var(--r-ctl); background-color: #fff; color: var(--ink); font-size: 1rem; box-shadow: none;
}
body.dokan-dashboard .dokan-dashboard-content textarea.dokan-form-control { min-height: 96px; }
body.dokan-dashboard .dokan-form-control:focus, body.dokan-dashboard .dokan-dashboard-content :is(input, select, textarea):focus { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); outline: 0; }
body.dokan-dashboard .select2-container .select2-selection--single, body.dokan-dashboard .chosen-container-single .chosen-single { height: 44px; border: 1px solid var(--pd-field); border-radius: var(--r-ctl); background: #fff; box-shadow: none; }
body.dokan-dashboard .select2-container .select2-selection--single .select2-selection__rendered { line-height: 42px; padding-left: 12px; }
body.dokan-dashboard .select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }
body.dokan-dashboard .chosen-container-single .chosen-single span { line-height: 42px; }
body.dokan-dashboard .dokan-dashboard-content ::placeholder, body.dokan-dashboard .select2-selection__placeholder { color: #6E6E76 !important; opacity: 1; }

/* tabs and filter pills (products, orders) */
body.dokan-dashboard ul.subsubsub, body.dokan-dashboard ul.order-statuses-filter, body.dokan-dashboard ul.dokan-listing-filter {
  display: flex; gap: 6px; float: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; list-style: none; font-size: .875rem;
}
body.dokan-dashboard ul.subsubsub li { flex: none; margin: 0; padding: 0; border: 0; color: transparent; }
body.dokan-dashboard ul.subsubsub li::after { display: none; }
body.dokan-dashboard ul.subsubsub li a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; border-radius: 999px; background: #fff; border: 1px solid var(--line); color: var(--ink-2); font-weight: 500; text-decoration: none; white-space: nowrap; }
body.dokan-dashboard ul.subsubsub li.active a, body.dokan-dashboard ul.subsubsub li a.current { background: var(--ink); border-color: var(--ink); color: #fff !important; }
body.dokan-dashboard .dokan-dashboard-content ul.subsubsub li a { font-size: .8125rem !important; }

/* the products list: header row, one card for filters, bulk actions and the table */
body.dokan-dashboard .product-listing-top { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; padding: 0; border: 0; }
body.dokan-dashboard .product-listing-top .dokan-add-product-link { float: none; margin: 0; }
body.dokan-dashboard .dokan-product-listing-area > .dokan-w12 {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px; width: 100%; float: none; margin: 0; padding: 12px;
  background: #fff; border: 1px solid var(--line); border-bottom-color: var(--pd-line-soft); border-radius: var(--r-card) var(--r-card) 0 0;
}
body.dokan-dashboard .dokan-product-listing-area > .dokan-w12 form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; float: none; width: auto; margin: 0; }
body.dokan-dashboard .dokan-product-listing-area > .dokan-w12 .dokan-form-group { margin: 0; display: flex; gap: 8px; }
body.dokan-dashboard .dokan-product-listing-area .dokan-product-search-form { margin-left: auto !important; }
body.dokan-dashboard .dokan-product-search-form > button { order: 2; }
body.dokan-dashboard .dokan-product-listing .dokan-product-listing-area .dokan-product-search-form > .dokan-form-group, body.dokan-dashboard .dokan-product-listing .dokan-product-listing-area .dokan-product-search-form > .dokan-btn { width: auto; float: none; }
/* exporting is not the main job here: the export buttons are outlined, Apply and Add stay red */
body.dokan-dashboard .dokan-order-filter-serach .dokan-right input.dokan-btn-theme { background: #fff !important; border-color: var(--line-2) !important; color: var(--ink) !important; }
body.dokan-dashboard .dokan-order-filter-serach .dokan-right input.dokan-btn-theme:hover { background: var(--soft) !important; }
body.dokan-dashboard .dokan-order-filter-serach .dokan-right { margin-left: auto; float: none; }
body.dokan-dashboard .dokan-order-filter-serach .dokan-right .dokan-form-group { flex-wrap: nowrap; }
body.dokan-dashboard .dokan-product-search-form > .dokan-form-group { order: 1; }
body.dokan-dashboard .dokan-dashboard-product-listing-wrapper { padding: 12px; background: #fff; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 var(--r-card) var(--r-card); box-shadow: var(--shadow-1); }
body.dokan-dashboard #product-filter > .dokan-form-group, body.dokan-dashboard #order-filter > .dokan-form-group { display: inline-flex; margin: 0 6px 10px 0; vertical-align: middle; }
/* tables */
body.dokan-dashboard table.dokan-table { width: 100%; margin: 0; border: 0; border-collapse: collapse; background: #fff; font-size: .9375rem; }
body.dokan-dashboard table.dokan-table > thead > tr > th { padding: 10px; background: var(--pd-head); border: 0; border-bottom: 1px solid var(--line); color: var(--ink-2); font-size: .8125rem; font-weight: 600; text-align: left; white-space: nowrap; }
body.dokan-dashboard table.dokan-table > tbody > tr > td, body.dokan-dashboard table.dokan-table > tbody > tr > th { padding: 12px 10px; border: 0; border-top: 1px solid var(--pd-line-soft); background: transparent !important; vertical-align: middle; }
body.dokan-dashboard table.dokan-table > tbody > tr:first-child > * { border-top: 0; }
body.dokan-dashboard table.dokan-table > tbody > tr:hover > * { background: #FAFAFB !important; }
body.dokan-dashboard table.dokan-table td a { color: var(--ink); }
body.dokan-dashboard table.dokan-table .column-primary strong a { color: var(--ink) !important; font-weight: 600; text-decoration: none; }
body.dokan-dashboard table.dokan-table td:is([data-title="Price"], [data-title="Earning"], [data-title="Stock"], [data-title="Status"]) { white-space: nowrap; }
body.dokan-dashboard table.dokan-table .column-thumb img { width: 44px; height: 56px; object-fit: contain; border-radius: 6px; background: var(--soft); }
body.dokan-dashboard .row-actions { font-size: .8125rem; color: var(--muted); }
body.dokan-dashboard .row-actions a { color: var(--ink-2); }
body.dokan-dashboard .row-actions .delete a { color: #B42318; }
/* states: the admin's chips */
body.dokan-dashboard .dokan-label { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px 3px 8px; border-radius: 999px; background: #EDEDEF; color: #3F3F46; font-size: .75rem; font-weight: 600; line-height: 1.5; }
body.dokan-dashboard .dokan-label::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
body.dokan-dashboard .dokan-label-success { background: #DCFCE7 !important; color: #166534 !important; }
body.dokan-dashboard .dokan-label-info, body.dokan-dashboard .dokan-label-processing { background: #DBEAFE !important; color: #1E40AF !important; }
body.dokan-dashboard .dokan-label-warning, body.dokan-dashboard .dokan-label-on-hold, body.dokan-dashboard .dokan-label-pending { background: #FEF3C7 !important; color: #92400E !important; }
body.dokan-dashboard .dokan-label-danger, body.dokan-dashboard .dokan-label-failed { background: #FEE2E2 !important; color: #991B1B !important; }
body.dokan-dashboard .dokan-label-default, body.dokan-dashboard .dokan-label-cancelled { background: #EDEDEF !important; color: #3F3F46 !important; }
body.dokan-dashboard mark.instock { background: none; color: #166534 !important; font-weight: 600; }
body.dokan-dashboard mark.outofstock { background: none; color: #B42318 !important; font-weight: 600; }
@media (max-width: 699.98px) { body.dokan-dashboard .row-actions .delete { display: none; } body.dokan-dashboard .row-actions .edit a { display: inline-block; padding: 12px 0; } }

/* the orders list (classic): pills, a filter card, the table card */
body.dokan-dashboard .dokan-orders-area > ul.order-statuses-filter { margin-bottom: 14px; }
body.dokan-dashboard .dokan-order-filter-serach, body.dokan-dashboard .dokan-orders-content .dokan-orders-area .dokan-order-filter-serach { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0; padding: 12px; background: #fff; border: 1px solid var(--line); border-bottom-color: var(--pd-line-soft); border-radius: var(--r-card) var(--r-card) 0 0; }
body.dokan-dashboard .dokan-order-filter-serach form { float: none; margin: 0; }
body.dokan-dashboard .dokan-order-filter-serach .dokan-form-group { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
body.dokan-dashboard .dokan-order-filter-serach .dokan-form-group > * { margin: 0 !important; max-width: 100%; }
body.dokan-dashboard .dokan-order-filter-serach .dokan-clearfix { display: none; }
body.dokan-dashboard .dokan-orders-area #order-filter { padding: 12px; background: #fff; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 var(--r-card) var(--r-card); box-shadow: var(--shadow-1); overflow-x: auto; }

/* the overview (Dokan's analytics): the balance up top, stat tiles, cards for the charts */
body.dokan-dashboard #dokan-analytics-app .woocommerce-layout { padding: 0; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-layout__header { position: static; display: block; width: auto; min-height: 0; margin: 0 0 14px; padding: 0; background: none; border: 0; box-shadow: none; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-layout__header-wrapper { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 0; min-height: 0; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-layout__header .entry-title { margin: 0; font: 700 1.25rem/1.3 var(--font-text); color: var(--ink); }
body.dokan-dashboard .dokan-analytics-vendor-earning-section { width: auto !important; }
body.dokan-dashboard .dokan-analytics-vendor-earning-section .vendor-earning-title { margin: 0; padding: 8px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--line); font: 500 .9375rem var(--font-text); color: var(--ink-2); }
body.dokan-dashboard .dokan-analytics-vendor-earning-section .vendor-earning { color: var(--ink) !important; font-weight: 700; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-layout__primary { margin: 0; padding: 0; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-layout__main { padding: 0; max-width: none; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-filters { margin: 0 0 18px; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-filters-filter { min-width: 0 !important; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-filters-label { display: block; margin: 0 0 6px; font-size: .8125rem; font-weight: 600; color: var(--ink-2); }
body.dokan-dashboard #dokan-analytics-app button.woocommerce-dropdown-button { width: 100%; max-width: 360px; min-height: 48px; height: auto !important; padding: 6px 14px; border: 1px solid var(--line-2); border-radius: var(--r-ctl); background: #fff; box-shadow: var(--shadow-1); }
body.dokan-dashboard #dokan-analytics-app .woocommerce-dashboard-section { margin: 0 0 22px; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-section-header { display: flex; align-items: center; gap: 12px; min-height: 44px; margin: 0 0 10px; padding: 0 !important; border: 0; background: none; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-section-header__title { margin: 0; padding: 0; font: 700 1.0625rem/1.3 var(--font-text); color: var(--ink); }
body.dokan-dashboard #dokan-analytics-app .woocommerce-section-header hr { flex: 1; width: auto !important; margin: 0; border: 0; border-top: 1px solid var(--line); background: none; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-ellipsis-menu__toggle, body.dokan-dashboard #dokan-analytics-app .woocommerce-chart__type-button { min-width: 44px; min-height: 44px; justify-content: center; border-radius: var(--r-ctl); }
body.dokan-dashboard #dokan-analytics-app .woocommerce-summary { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px; margin: 0; padding: 0; border: 0 !important; background: none !important; box-shadow: none !important; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-summary::before, body.dokan-dashboard #dokan-analytics-app .woocommerce-summary::after { display: none !important; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-summary__item-container { display: block; width: auto !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-summary__item {
  display: flex; flex-direction: column; gap: 8px; height: 100%; min-height: 0; padding: 14px 16px !important; border: 1px solid var(--line) !important; border-radius: var(--r-card);
  background: #fff !important; box-shadow: var(--shadow-1); color: var(--ink); text-decoration: none;
}
body.dokan-dashboard #dokan-analytics-app .woocommerce-summary__item:hover { border-color: var(--line-2) !important; box-shadow: var(--shadow-2); }
body.dokan-dashboard #dokan-analytics-app .woocommerce-summary__item-label, body.dokan-dashboard #dokan-analytics-app .woocommerce-summary__item-label .components-text { margin: 0; color: var(--ink-2) !important; font-size: .8125rem !important; line-height: 1.3 !important; white-space: normal; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-summary__item-data { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; margin: 0; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-summary__item-value, body.dokan-dashboard #dokan-analytics-app .woocommerce-summary__item-value .components-text { margin: 0; color: var(--ink) !important; font-size: 1.375rem !important; font-weight: 700 !important; line-height: 1.15 !important; font-variant-numeric: tabular-nums; }
body.dokan-dashboard #dokan-analytics-app .woocommerce-summary__item-delta { margin: 0; padding: 1px 8px; border-radius: 999px; background: var(--soft); }
body.dokan-dashboard #dokan-analytics-app .woocommerce-summary__item-delta .components-text { color: var(--ink-2) !important; font-size: .75rem !important; }
body.dokan-dashboard #dokan-analytics-app .components-card, body.dokan-dashboard #dokan-analytics-app .woocommerce-dashboard__chart-block-wrapper .components-surface.components-card { border-radius: var(--r-card) !important; border: 1px solid var(--line); box-shadow: var(--shadow-1) !important; overflow: hidden; }
@media (min-width: 700px) { body.dokan-dashboard #dokan-analytics-app .woocommerce-summary { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 14px; } }
@media (max-width: 899.98px) { body.dokan-dashboard #dokan-analytics-app .woocommerce-dashboard__columns { grid-template-columns: minmax(0, 1fr) !important; } }

/* Dokan's newer screens (orders, withdraw): links in ink, the red for buttons and the selected tab only */
body.dokan-dashboard .dokan-layout a.text-primary, body.dokan-dashboard .dokan-layout .text-primary:is(a, span) { color: var(--ink) !important; font-weight: 600; }
body.dokan-dashboard .dokan-layout [class*="border-[#7047EB]" i] { border-color: var(--line-2) !important; color: var(--ink) !important; }
body.dokan-dashboard .dokan-layout [class*="bg-[#7047EB]" i] { background-color: var(--red) !important; }
body.dokan-dashboard .dokan-layout [class*="text-[#7047EB]" i] { color: var(--ink) !important; }
body.dokan-dashboard #dokan-vendor-dashboard-root .rounded-lg.border, body.dokan-dashboard #dokan-vendor-dashboard-root [class*="rounded"][class*="border"][class*="bg-white"] { border-radius: var(--r-card); border-color: var(--line); box-shadow: var(--shadow-1); }

/* store settings: a calm header, the form in a white card, the save button reachable on a phone */
body.dokan-dashboard .dokan-dashboard-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 0 0 16px; padding: 0; border: 0; }
body.dokan-dashboard .dokan-dashboard-header .entry-title { margin: 0; font: 700 1.375rem/1.3 var(--font-text); color: var(--ink); }
body.dokan-dashboard .dokan-dashboard-header .entry-title small { display: inline-block; margin-left: 6px; font-size: .9375rem; font-weight: 500; }
body.dokan-dashboard .dokan-dashboard-header .entry-title small a { color: var(--ink-2); text-decoration: underline; }
body.dokan-dashboard .dokan-dashboard-header .dokan-update-setting-top { margin-left: auto; float: none; }
body.dokan-dashboard .dokan-dashboard-header > .dokan-store-settign-header-wrap { flex: 1 1 auto; width: auto; float: none; }
body.dokan-dashboard .dokan-dashboard-header .dokan-update-setting-top .dokan-btn { float: none; margin: 0; }
body.dokan-dashboard .dokan-settings-content > form, body.dokan-dashboard .dokan-settings-area form.dokan-form-horizontal, body.dokan-dashboard form#store-form, body.dokan-dashboard form#payment-form {
  padding: 20px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-1);
}
body.dokan-dashboard .dokan-form-horizontal .dokan-control-label { color: var(--ink); font-weight: 600; }
@media (max-width: 699.98px) {
  body.dokan-dashboard .dokan-dashboard-header > * { max-width: 100%; }
  body.dokan-dashboard .dokan-dashboard-header .dokan-update-setting-top { flex: 1 1 100%; float: none; }
  body.dokan-dashboard .dokan-dashboard-header .dokan-btn, body.dokan-dashboard .dokan-dashboard-header input[type=submit] { width: 100%; float: none; }
  body.dokan-dashboard .dokan-settings-content > form, body.dokan-dashboard form#store-form, body.dokan-dashboard form#payment-form { padding: 14px; }
}

/* Dokan's secondary buttons (Export) take the ink outline, not its purple */
body.dokan-dashboard .dokan-layout .dokan-btn-secondary { color: var(--ink) !important; border-color: var(--line-2) !important; background: #fff !important; }
body.dokan-dashboard .dokan-layout .dokan-btn-secondary:hover { background: var(--soft) !important; border-color: #A1A1AA !important; }
/* product filters on a phone: two per row, search full width */
@media (max-width: 699.98px) {
  body.dokan-dashboard .dokan-product-listing-area > .dokan-w12 > form { width: 100%; }
  body.dokan-dashboard .dokan-product-listing-area > .dokan-w12 > form.dokan-product-date-filter { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body.dokan-dashboard .dokan-product-listing-area > .dokan-w12 > form > .dokan-form-group { display: flex; gap: 8px; min-width: 0; margin: 0; text-align: left; }
  body.dokan-dashboard .dokan-product-listing-area > .dokan-w12 > form > .dokan-form-group > * { flex: 1 1 0; min-width: 0; width: 100%; margin: 0; }
  body.dokan-dashboard .dokan-product-listing-area > .dokan-w12 > form.dokan-product-search-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; margin-left: 0 !important; }
  body.dokan-dashboard .product-listing-top .dokan-add-product-link, body.dokan-dashboard .product-listing-top .dokan-add-product-link .dokan-btn { width: 100%; }
}
/* the rewards panel in store settings (mu-plugin wh-rewards) */
fieldset.whr-vendor { margin: 18px 0; padding: 16px; text-align: left; border: 1px solid var(--line); border-radius: 8px; }
fieldset.whr-vendor legend { padding: 0 6px; font-weight: 700; }
fieldset.whr-vendor label { display: flex; gap: 8px; align-items: flex-start; margin: 8px 0; font-weight: 500; }
fieldset.whr-vendor br { display: none; }
fieldset.whr-vendor .help-block { color: #5C5C64; }

/* ---- footer: charcoal, tidy columns, the legal line -------------------------------------------------------------------------------- */
.wh-totop { display: block; padding: 14px; background: #2E2E33; color: #fff; font: 600 .8125rem var(--font-text); text-align: center; text-decoration: none; }
.wh-totop:hover { color: #fff; background: #3A3A40; }
.wh-foot { background: var(--ink); color: #E4E4E7; padding-block: 48px 0; }
.wh-foot a { color: #D4D4D8; text-decoration: none; transition: color 150ms var(--ease); }
.wh-foot a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.wh-foot :focus-visible { outline-color: #fff; }
.wh-foot__grid { display: grid; gap: 36px 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wh-foot__brand { grid-column: 1 / -1; display: grid; gap: 14px; align-content: start; max-width: 32ch; }
.wh-foot__brand p { color: #D4D4D8; font-size: .9375rem; line-height: 1.5; }
.wh-foot .wh-logo { --drop-in: var(--red); justify-self: start; min-height: 44px; color: #fff; font-size: 1.5rem; }
.wh-foot .wh-logo svg { color: #fff; width: 40px; height: 40px; }
.wh-foot .wh-logo:hover { color: #fff; text-decoration: none; }
.wh-foot .wh-langs { justify-self: start; border-color: #52525B; }
.wh-foot .wh-langlink { color: #D4D4D8; }
.wh-foot .wh-langlink:hover { color: #fff; background: rgb(255 255 255 / .08); text-decoration: none; }
.wh-foot .wh-langlink.is-on { background: #fff; color: var(--ink); }
.wh-foot__cols { display: contents; }
.wh-foot h2 { color: #fff; font: 700 .9375rem/1.3 var(--font-text); margin-bottom: 12px; }
.wh-foot ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; font-size: .9375rem; }
.wh-foot ul a { display: inline-flex; align-items: center; min-height: 36px; }
@media (min-width: 900px) { .wh-foot__grid { grid-template-columns: 1.5fr repeat(3, minmax(0, 1fr)); gap: 32px; } .wh-foot__brand { grid-column: auto; } }
.wh-foot__legal { display: grid; gap: 8px 32px; margin-top: 40px; padding-block: 20px 28px; border-top: 1px solid #3F3F46; font-size: .8125rem; line-height: 1.5; color: #A1A1AA; }
.wh-foot__legal p:last-child { color: #E4E4E7; font-weight: 500; white-space: nowrap; }
@media (min-width: 900px) { .wh-foot__legal { grid-template-columns: minmax(0, 1fr) auto; align-items: start; } }

/* ---- age gate ---------------------------------------------------------------------------------------------------------------------- */
.wh-gate { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: var(--gutter); background: rgb(17 17 19 / .72); }
.wh-gate__box { display: grid; gap: 16px; width: min(100%, 440px); padding: 40px 28px; background: #fff; border-radius: var(--r-tile); box-shadow: var(--shadow-2); text-align: center; }
.wh-gate__box .wh-logo { justify-self: center; }
.wh-gate__box .wh-actions { justify-content: center; }
.wh-gate__box > p:not(.wh-logo) { color: var(--muted); }

/* ---- calmer wine cards (8 Nov, "crowded"): four per row on wide screens, lighter price and button ---- */
@media (min-width: 1200px) { .wh-cat__main ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } }
/* at most four wines per row in the catalogue, however wide the screen */
.wh-card__quick { display: grid; place-items: center; min-height: 44px; margin-top: 2px; padding: 0; text-align: center; color: var(--ink); font-size: .8125rem; font-weight: 600; text-decoration: underline; text-decoration-color: #D4D4D8; text-underline-offset: 3px; }
.wh-card__quick:hover { color: #BE2130; }
.wh-score--link a { display: inline-flex; align-items: center; min-height: 28px; color: var(--muted); font-size: .75rem; } /* a 24 px+ target (WCAG 2.5.8) */
/* pictures: a 2:3 frame; the whole photo shows (contain), so a tall packshot keeps its bottle whole instead of a close-up of
   the neck, and a white packshot background melts into the frame's grey (multiply) */
.wh-card__img { aspect-ratio: 2 / 3; padding: 0 !important; overflow: hidden; }
.wh-card__img img, .woocommerce ul.products li.product .wh-card__img img { width: 100% !important; height: 100% !important; object-fit: contain !important; mix-blend-mode: multiply; }
.wh-card--visit .wh-card__img img, .woocommerce ul.products li.product.wh-card--visit .wh-card__img img { object-fit: cover !important; max-height: none; }
/* cellar visits are experiences: three wide cards per row (two on tablets), one photo shape, the price per person on one line */
@media (min-width: 700px) { body.term-winery-visits .wh-cat__main ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } }
@media (min-width: 1200px) { body.term-winery-visits .wh-cat__main ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.wh-card--visit .wh-card__img { aspect-ratio: 2 / 3 !important; max-height: none !important; padding: 0 !important; overflow: hidden; } /* beside wines (shelves, recently viewed) a visit has the wines' frame, so the cards line up */
body.term-winery-visits .wh-card--visit .wh-card__img { aspect-ratio: 16 / 10 !important; }
.wh-card--visit .wh-card__img img, .woocommerce ul.products li.product.wh-card--visit .wh-card__img img { width: 100% !important; height: 100% !important; mix-blend-mode: normal; }
.wh-card__price small { white-space: nowrap; }
@media (min-width: 700px) and (max-width: 1199.98px) { .wh-cat__main ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }
.wh-card__producer { color: var(--muted); font-size: .8125rem; }
.wh-card__title { margin-top: 2px; }
.wh-card__price { margin-top: 10px; font-size: 1.25rem; font-weight: 700; }
.woocommerce ul.products li.product .wh-card__buy .button, .wh-card__buy .button { min-height: 44px; font-size: .875rem; font-weight: 600; }
/* in rows on a white panel the wines sit flat (no card inside a card); every picture shares one light frame, and bottle
   shots on white blend into it, so mixed photo backgrounds read as one row */
.wh-shelf li.wh-card, .wh-panel li.wh-card { border-color: transparent; box-shadow: none; background: transparent; }
.wh-shelf li.wh-card:hover, .wh-panel li.wh-card:hover { border-color: var(--line); background: #fff; }
.wh-card__img { background: #F4F4F5; border-radius: 10px; }
.wh-shelf .wh-badge { display: none; } /* a row of picks needs no "pick" badge on each wine */
/* one calm action in lists: an outline button that fills red on hover; the filled red stays for the wine page's buy box.
   Divin cards use the same button (no second buy colour) */
.woocommerce ul.products li.product .wh-card__buy .button, .wh-card__buy .button, .wh-card.wh-divin .wh-card__buy .button { background: #fff; color: var(--ink); border: 1px solid #D4D4D8; }
.woocommerce ul.products li.product .wh-card__buy .button:hover, .wh-card__buy .button:hover, .wh-card.wh-divin .wh-card__buy .button:hover { background: #BE2130; border-color: #BE2130; color: #fff; filter: none; }

/* ---- motion: off when asked -------------------------------------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0ms !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---- wholesalers (tier W): the wineries / wholesalers switch on the producers page, the wholesale request ---------- */
.wh-groups { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.wh-groups a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border: 1px solid var(--line-2); border-radius: 999px; background: #fff; color: var(--ink-2); font: 600 .875rem/1 var(--font-text); text-decoration: none; }
.wh-groups a:hover { border-color: var(--ink-2); color: var(--ink); }
.wh-groups a[aria-current] { background: var(--ink); border-color: var(--ink); color: #fff; }
.wh-groups small { font-weight: 500; font-size: .8125rem; opacity: .72; }
@media (max-width: 699.98px) { .wh-groups a { min-height: 44px; } }
.wh-whsl .wh-spec { max-width: 720px; margin: 4px 0; }
.wh-whsl .wh-spec th { width: 40%; }
.wh-lead__notelabel { font-size: .875rem; font-weight: 500; color: var(--ink-2); }
textarea.wh-lead__note { width: 100%; min-height: 84px; padding: 10px 14px; border: 1px solid var(--line-2); border-radius: var(--r-ctl); font: inherit; background: #fff; resize: vertical; }
textarea.wh-lead__note:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgb(24 24 27 / .1); }

/* ---- design review 08.11: targets, one red per screen, quieter overlays ------------------------------------------------- */
/* 44 px targets: the language links, the shelf arrows, the favourites hearts */
.wh-langs { padding: 0; gap: 0; }
.wh-langlink { min-width: 44px; height: 44px; }
.wh-shelf__nav button { width: 44px; height: 44px; }
.wh-shelf__nav[hidden] { display: none; } /* every wine of the shelf already in view (winehub.js) */
.wh-heart:not(.wh-heart--pdp) { width: 44px; height: 44px; top: 4px; right: 4px; }
/* the heart sits on photos of any colour: a white ring inside a dark one shows on both */
.wh-heart:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; box-shadow: 0 0 0 2px #fff; }
/* "WineHub pick" wraps instead of being cut on narrow cards */
.wh-badge { white-space: normal; text-overflow: clip; overflow: visible; }
/* the home sign-in card: the offer reads under its title, not over it */
.wh-quad--me .wh-quad__offer { margin: 0; font: 600 1rem/1.4 var(--font-text); color: var(--ink); }
/* wine page: the toast's Checkout link is enough, no WooCommerce "View cart" beside the quantity */
form.cart .added_to_cart { display: none !important; }
/* phones and tablets: while the buy bar is up, the toast shows above it, not over its price */
@media (max-width: 899.98px) { body.has-buybar .wh-toast { bottom: calc(var(--wh-buybar-h, 72px) + 12px); } }
/* related wines: the shelves' columns and gaps, full rows only: an incomplete last row is left out (phones: at most three
   rows); the first row always shows */
.woocommerce div.product .related.products ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
@media (min-width: 700px) { .woocommerce div.product .related.products ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
@media (min-width: 1100px) { .woocommerce div.product .related.products ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; } }
@media (min-width: 1500px) { .woocommerce div.product .related.products ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (max-width: 699.98px) { .related.products ul.products > li:is(:nth-child(n+7), :nth-child(2n+3):nth-last-child(1)) { display: none; } }
@media (min-width: 700px) and (max-width: 1099.98px) { .related.products ul.products > li:nth-child(3n+4):nth-last-child(-n+2), .related.products ul.products > li:nth-child(3n+4):nth-last-child(-n+2) ~ li { display: none; } }
@media (min-width: 1100px) and (max-width: 1499.98px) { .related.products ul.products > li:nth-child(4n+5):nth-last-child(-n+3), .related.products ul.products > li:nth-child(4n+5):nth-last-child(-n+3) ~ li { display: none; } }
@media (min-width: 1500px) { .related.products ul.products > li:nth-child(5n+6):nth-last-child(-n+4), .related.products ul.products > li:nth-child(5n+6):nth-last-child(-n+4) ~ li { display: none; } }
/* wineries list: every photo fills the same 16:9 frame, so taller pictures leave no gaps */
.wh-wcard__media { position: relative; overflow: hidden; }
.wh-wcard__media > img { position: absolute; inset: 0; }
/* the register's producers fold behind one button */
.wh-reg > .wh-lead { margin-bottom: 16px; }
.wh-reg__more > summary { list-style: none; cursor: pointer; }
.wh-reg__more > summary::-webkit-details-marker { display: none; }
.wh-reg__more[open] > summary { margin-bottom: 16px; }
.wh-reg__hide, .wh-reg__more[open] .wh-reg__show { display: none; }
.wh-reg__more[open] .wh-reg__hide { display: inline; }
/* a store's About without a text in the visitor's language */
.wh-about-note { margin: 0; }
/* the empty cart */
.wh-cartempty { margin-bottom: 0; }
.wh-cartempty h2 { margin: 0; font: 700 1.375rem/1.25 var(--font-head); }
.wh-cartempty p { margin: 0; color: var(--ink-2); }
/* its shelf sits on the cart page (body.woocommerce-page, inside .wh-prose): no WooCommerce float columns, no prose margins */
.woocommerce-page ul.products li.product.wh-card { width: auto; float: none; margin: 0; }
.woocommerce-page ul.products::before, .woocommerce-page ul.products::after { content: none; display: none; }
.wh-prose :is(.wh-shelf__head, .wh-cartempty) h2 { margin: 0; }
/* one click: a close button at the top; the total and the buttons stay in view at the bottom, even with the map open */
.whc-quick__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.whc-quick__x { flex: none; display: grid; place-items: center; width: 44px; height: 44px; margin: -10px -14px 0 0; padding: 0; border: 0; border-radius: 50%; background: none; color: var(--ink); cursor: pointer; }
.whc-quick__x:hover { background: var(--soft); }
.whc-quick__x svg { width: 22px; height: 22px; }
.whc-quick__foot { position: sticky; bottom: 0; z-index: 2; display: grid; gap: 10px; margin: 0 -28px -28px; padding: 14px 28px 20px; background: #fff; border-top: 1px solid var(--line); }
.whc-quick__foot .whc-quick__total { margin: 0; }
/* /play/: one centred column instead of a page that stops two thirds across */
.wh-container:has(.whr-play) > :is(.wh-page-head, .wh-prose) { margin-inline: auto; max-width: 980px; }
@media (max-width: 699.98px) {
  /* home: about three and a half categories in view, so the row says it scrolls */
  .wh-cats { grid-auto-columns: calc((100% - 3 * 8px) / 3.5); }
  .wh-cats__img { width: 100%; max-width: 84px; height: auto; aspect-ratio: 1; }
  /* the tab bar's Categories while the menu is open */
  .wh-tabbar [aria-expanded="true"] { color: var(--ink); font-weight: 700; }
  .wh-tabbar [aria-expanded="true"]::before { content: ""; position: absolute; top: 0; left: 30%; right: 30%; height: 2px; border-radius: 0 0 2px 2px; background: var(--red); }
}
