/* ============================================================
   ELITE CORE V6 (Gallery A) - SHOP / CATEGORY / GOAL ARCHIVE, v6.1
   woocommerce/archive-product.php. Loaded after main.css,
   ec-catalog-head.css (mu-plugin) and v6-core.css, so same-specificity
   rules here win. Rules that touch .ec-product-card are scoped to
   .v6-shop so they beat the !important frame rules that
   mu-plugins/ec-product-image-frame.php prints inline in wp_head.
   Tokens come from v6-core.css. Palette is locked: Ink, Paper, Card,
   Border, Muted, Gold, Cream. No new fonts or colours.
   Sections: 0 shell, 1 compact header, 2 sticky toolbar (chips + sort),
   3 status row (count, category links), 4 merchandising rows,
   5 grid + group headings, 6 cards (badges, tags), 7 footnote,
   8 quiz + lab band, 9 responsive, 10 reduced motion / print.
   ============================================================ */

/* ------------------------------------------------------------
   0. PAGE SHELL + LEGACY NEUTRALISERS
   ------------------------------------------------------------ */
.v6-shop{display:block;background:transparent;color:var(--ec-ink);font-family:var(--ec-font-body);--v6-shop-sticky-top:0px}
.v6-shop.ec-shop-page,
.v6-shop.ec-shop-page--clean{background:transparent;padding:0;margin:0}
.v6-shop [hidden]{display:none !important}
.v6-shop .ec-wc-hooks-hidden,
.v6-shop .v6-shop-compat,
.v6-shop #ecSortBtn,
.v6-shop #ecLoadMore,
.v6-shop #ecProgressBar,
.v6-shop #ecStickyBar{display:none !important}
/* "No results" nodes the legacy catalog scripts inject; v6 has its own. */
.v6-shop #ecNoResults,
#ecNoResults,
.v6-shop .ec-shop-grid__no-results{display:none !important}
.v6-shop *{box-sizing:border-box}
.v6-shop a{color:inherit;text-decoration:none}
.v6-shop button{font-family:inherit}
.v6-shop img{display:block;max-width:100%}
.v6-shop .v6-visually-hidden{position:absolute !important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}

/* ------------------------------------------------------------
   1. COMPACT HEADER (section.ec-catalog-head.v6-shop-head)
   ------------------------------------------------------------ */
/* Side padding is set here on purpose: ec-catalog-head.css zeroes it
   (.ec-catalog-head{padding:56px 0 24px}) and this must not depend on
   which stylesheet prints last. Matches .v6-container (32px, 16px under 480). */
.v6-shop .ec-catalog-head,
.v6-shop .ec-catalog-head.v6-shop-head{
  background:transparent;border:0;border-bottom:0;
  padding:24px 32px 28px;
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 40px;
}
.v6-shop-head__copy{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:14px}
.v6-shop-head__search{flex:0 1 520px;min-width:0;display:flex;flex-direction:column;gap:12px}

.v6-shop-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;color:var(--ec-muted);line-height:1.4}
.v6-shop-crumbs a{display:inline-flex;align-items:center;min-height:32px;color:var(--ec-muted);text-decoration:none;transition:color .2s ease}
.v6-shop-crumbs a:hover{color:var(--ec-ink)}
.v6-shop-crumbs__current{color:var(--ec-ink);font-weight:600}

.v6-shop-head__title-wrap{display:flex;flex-direction:column;gap:6px}
.v6-shop-title{
  margin:0;font-family:var(--ec-font-display);font-weight:700;letter-spacing:-.02em;
  font-size:clamp(34px,3.6vw,48px);line-height:1.05;color:var(--ec-ink);
}
.v6-shop-sub{margin:0;font-size:15px;line-height:1.5;color:var(--ec-muted);max-width:60ch}

/* Search row: ink outline pill, icon, input, ink button (#ecSearchClear) */
.v6-shop-search{
  position:relative;display:flex;align-items:stretch;width:100%;margin:0;
  border:1px solid var(--ec-ink);border-radius:999px;background:var(--ec-card);overflow:hidden;
}
.v6-shop-search:focus-within{box-shadow:0 0 0 3px rgba(201,169,97,.3)}
.v6-shop-search__icon{display:grid;place-items:center;padding-left:20px;flex:none}
.v6-shop-search__icon svg{display:block}
.v6-shop .v6-shop-search__input,
.v6-shop input#ecShopSearch{
  flex:1 1 auto;min-width:0;width:auto;height:52px;margin:0;padding:0 16px;
  border:0;border-radius:0;background:transparent;box-shadow:none;outline:none;
  font-family:inherit;font-size:15px;line-height:1.4;color:var(--ec-ink);
  -webkit-appearance:none;appearance:none;
}
.v6-shop .v6-shop-search__input:focus{border:0;box-shadow:none;background:transparent;outline:none}
.v6-shop .v6-shop-search__input::placeholder{color:var(--ec-muted)}
.v6-shop .v6-shop-search__input::-webkit-search-cancel-button,
.v6-shop .v6-shop-search__input::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none}
.v6-shop .v6-shop-search__btn,
.v6-shop button#ecSearchClear{
  position:static;display:inline-flex !important;align-items:center;justify-content:center;flex:none;
  width:auto;height:auto;min-height:52px;margin:0;padding:0 22px;border:0;border-radius:0;
  background:var(--ec-ink);color:var(--ec-paper);font-family:inherit;font-size:14px;font-weight:600;
  line-height:1;cursor:pointer;transform:none;transition:background .2s ease;
}
.v6-shop .v6-shop-search__btn:hover,
.v6-shop .v6-shop-search__btn:focus-visible{background:var(--ec-ink);color:var(--ec-paper)}
.v6-shop .v6-shop-search__btn:focus-visible{outline:2px solid var(--ec-gold);outline-offset:-4px}

/* Popular picks (search shortcuts) */
.v6-shop-popular{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;color:var(--ec-muted)}
.v6-shop-popular__label{margin-right:2px}
.v6-shop-popular__pick{
  display:inline-flex;align-items:center;min-height:34px;padding:0 13px;
  border:1px solid var(--ec-border);border-radius:999px;background:var(--ec-card);
  color:var(--ec-ink);font-size:13px;font-weight:600;line-height:1;cursor:pointer;
  transition:border-color .2s ease,background .2s ease;
}
.v6-shop-popular__pick:hover,
.v6-shop-popular__pick:focus-visible{border-color:var(--ec-ink);color:var(--ec-ink)}
.v6-shop-popular__pick:focus-visible{outline:2px solid var(--ec-gold);outline-offset:2px}

/* ------------------------------------------------------------
   2. STICKY TOOLBAR (#ecToolbar): goal chips + sort
   ------------------------------------------------------------ */
.v6-shop-controls-sentinel{height:1px;margin:0 0 -1px;pointer-events:none}
.v6-shop-controls{
  position:-webkit-sticky;position:sticky;top:var(--v6-shop-sticky-top,0px);z-index:40;
  background:var(--ec-paper);border-top:1px solid var(--ec-border);border-bottom:1px solid transparent;
  transition:box-shadow .2s ease,border-color .2s ease;
}
.v6-shop-controls.is-stuck{border-bottom-color:var(--ec-border);box-shadow:0 10px 24px rgba(10,10,10,.06)}
.v6-shop-controls__inner{display:flex;align-items:center;gap:16px;padding-top:12px;padding-bottom:12px}

/* Chips: one scrolling row, never wraps, so the bar stays one line tall. */
.v6-shop-chips{
  flex:1 1 auto;min-width:0;display:flex;flex-wrap:nowrap;gap:8px;
  overflow-x:auto;overflow-y:hidden;padding:2px 0;
  scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;
}
.v6-shop-chips::-webkit-scrollbar{display:none}
.v6-shop-chip{
  flex:0 0 auto;scroll-snap-align:start;
  display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 16px;
  border:1px solid var(--ec-border);border-radius:999px;background:var(--ec-card);color:var(--ec-ink);
  font-size:13px;font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;text-decoration:none;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.v6-shop-chip__n{font-size:11px;font-weight:600;color:var(--ec-muted);transition:color .2s ease}
.v6-shop-chip:hover{border-color:var(--ec-ink);color:var(--ec-ink)}
.v6-shop-chip.is-active{background:var(--ec-ink);color:var(--ec-paper);border-color:var(--ec-ink)}
.v6-shop-chip.is-active .v6-shop-chip__n{color:var(--ec-gold)}
.v6-shop-chip:focus-visible{outline:2px solid var(--ec-gold);outline-offset:2px}
/* Desktop (mouse, no visible scrollbar): the ten chips are wider than the 1216px
   container, so they wrap onto a second line instead of hiding the last ones
   behind an undiscoverable horizontal scroll. Phones and tablets keep the strip. */
@media (min-width: 1025px){
  .v6-shop-chips{flex-wrap:wrap;overflow:visible;scroll-snap-type:none}
}

.v6-shop-sort{flex:none;display:flex;align-items:center;gap:10px}
.v6-shop-sort__label{font-size:13px;font-weight:600;color:var(--ec-ink);margin:0;white-space:nowrap}
.v6-shop-sort__wrap{position:relative;display:inline-flex}
.v6-shop .v6-shop-sort__select,
.v6-shop select#ecSortDropdown{
  -webkit-appearance:none;-moz-appearance:none;appearance:none;
  height:40px;margin:0;padding:0 40px 0 16px;border:1px solid var(--ec-border);border-radius:999px;
  background:var(--ec-card);color:var(--ec-ink);font-family:inherit;font-size:13px;font-weight:600;
  line-height:1;cursor:pointer;box-shadow:none;background-image:none;max-width:100%;
  transition:border-color .2s ease;
}
.v6-shop .v6-shop-sort__select:hover{border-color:var(--ec-ink)}
.v6-shop .v6-shop-sort__select:focus{outline:none;border-color:var(--ec-ink)}
.v6-shop .v6-shop-sort__select:focus-visible{outline:2px solid var(--ec-gold);outline-offset:2px}
.v6-shop .v6-shop-sort__select::-ms-expand{display:none}
.v6-shop-sort__chevron{position:absolute;right:16px;top:12px;pointer-events:none;display:block}

/* ------------------------------------------------------------
   3. STATUS ROW: count, category links, research focus
   ------------------------------------------------------------ */
.v6-shop-catalog{padding-top:0;padding-bottom:72px}
.v6-shop-status{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;
  padding:18px 0 6px;
}
.v6-shop-count{font-size:13px;color:var(--ec-muted);white-space:nowrap;margin-right:auto}
.v6-shop-count__strong{color:var(--ec-ink);font-weight:600}
.v6-shop-cats{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;color:var(--ec-muted)}
.v6-shop-cats__label{margin-right:4px}
.v6-shop-cat{
  display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0 12px;
  border:1px solid var(--ec-border);border-radius:999px;background:transparent;color:var(--ec-ink);
  font-size:12px;font-weight:600;line-height:1;white-space:nowrap;text-decoration:none;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.v6-shop-cat__n{font-weight:600;color:var(--ec-muted)}
.v6-shop-cat:hover{border-color:var(--ec-ink)}
.v6-shop-cat.is-active{background:var(--ec-ink);border-color:var(--ec-ink);color:var(--ec-paper)}
.v6-shop-cat.is-active .v6-shop-cat__n{color:var(--ec-gold)}
.v6-shop-cat:focus-visible{outline:2px solid var(--ec-gold);outline-offset:2px}

/* Research focus row (ec-shop-focus.php, server-side ?ec_focus filter; shown only while active) */
.v6-shop-focus{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:13px;color:var(--ec-muted);flex-basis:100%}
.v6-shop-focus__label{margin-right:4px}
.v6-shop-focus__pill{
  display:inline-flex;align-items:center;min-height:34px;padding:0 14px;
  border:1px solid var(--ec-border);border-radius:999px;background:transparent;color:var(--ec-ink);
  font-size:13px;font-weight:600;line-height:1;text-decoration:none;white-space:nowrap;
  transition:border-color .2s ease,background .2s ease,color .2s ease;
}
.v6-shop-focus__pill:hover{border-color:var(--ec-ink);color:var(--ec-ink)}
.v6-shop-focus__pill.is-active{background:var(--ec-ink);border-color:var(--ec-ink);color:var(--ec-paper)}
.v6-shop-focus__pill:focus-visible{outline:2px solid var(--ec-gold);outline-offset:2px}

/* Notices, empty / no results (cream) */
.v6-shop-notices{margin:20px 0 0}
.v6-shop-notices .woocommerce-message,
.v6-shop-notices .woocommerce-info,
.v6-shop-notices .woocommerce-error{
  margin:0 0 12px;padding:14px 18px;border:1px solid var(--ec-border);border-left:3px solid var(--ec-gold);
  border-radius:12px;background:var(--ec-card);color:var(--ec-ink);font-size:14px;line-height:1.5;
}
.v6-shop-notices .woocommerce-message a,
.v6-shop-notices .woocommerce-info a,
.v6-shop-notices .woocommerce-error a{font-weight:600;text-decoration:underline;text-underline-offset:3px}
.v6-shop-empty{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:16px 0 0;
  background:var(--ec-cream);border-radius:16px;padding:16px 20px;font-size:14px;line-height:1.5;color:var(--ec-ink);
}
.v6-shop-empty a{text-decoration:underline;text-underline-offset:3px}
.v6-shop-empty--catalog{grid-column:1 / -1;margin:0}

/* ------------------------------------------------------------
   4. MERCHANDISING ROWS: Best sellers, New arrivals, Bundles and save
   ------------------------------------------------------------ */
.v6-shop-rows{display:flex;flex-direction:column;gap:44px;margin:22px 0 56px}
.v6-shop-row{min-width:0}
.v6-shop-row__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 24px;margin-bottom:18px}
.v6-shop-row__copy{min-width:0;display:flex;flex-direction:column}
.v6-shop-row__eyebrow{margin:0 0 10px}
.v6-shop-row__title{
  margin:0;font-family:var(--ec-font-display);font-weight:700;letter-spacing:-.02em;
  font-size:clamp(24px,2.6vw,32px);line-height:1.1;color:var(--ec-ink);
}
.v6-shop-row__sub{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--ec-muted);max-width:62ch}
.v6-shop-row__link,
.v6-shop-group-head__link{
  display:inline-flex;align-items:center;gap:8px;min-height:40px;flex:none;
  color:var(--ec-ink);font-size:14px;font-weight:600;line-height:1;white-space:nowrap;text-decoration:none;
}
.v6-shop-row__link:hover,
.v6-shop-group-head__link:hover{text-decoration:underline;text-underline-offset:4px}
.v6-shop-row__link:focus-visible,
.v6-shop-group-head__link:focus-visible{outline:2px solid var(--ec-gold);outline-offset:3px;border-radius:4px}
.v6-shop-row__arrow{display:block;flex:none;transition:transform .25s ease}
.v6-shop-row__link:hover .v6-shop-row__arrow,
.v6-shop-group-head__link:hover .v6-shop-row__arrow{transform:translateX(3px)}

/* Strip: equal columns on desktop, horizontal scroll when the cards do not fit (phones). */
.v6-shop-strip{
  display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,1fr);gap:20px;align-items:start;
  overflow-x:auto;overflow-y:hidden;padding:4px 0 10px;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--ec-border) transparent;
}
.v6-shop-strip::-webkit-scrollbar{height:6px}
.v6-shop-strip::-webkit-scrollbar-thumb{background:var(--ec-border);border-radius:3px}
.v6-shop-strip::-webkit-scrollbar-track{background:transparent}
.v6-shop-strip--bundles{grid-auto-columns:minmax(272px,1fr)}
.v6-shop-strip > .ec-product-card{scroll-snap-align:start;min-width:0}

/* ------------------------------------------------------------
   5. GRID + GROUP HEADINGS (.ec-product-card contract markup)
   ------------------------------------------------------------ */
/* Card fix: cards size to their own content (align-items:start), so one tall card no longer
   stretches its row and leaves a gap above the buttons of its neighbours. */
.v6-shop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px 24px;align-items:start;margin-top:16px}
.v6-shop-grid--empty{display:block}
.v6-shop-group-head{
  grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 24px;
  margin:12px 0 -12px;padding-top:28px;border-top:1px solid var(--ec-border);
}
.v6-shop-group-head:first-child{margin-top:0;padding-top:4px;border-top:0}
.v6-shop-group-head.is-hidden{display:none !important}
.v6-shop-group-head__copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.v6-shop-group-head__title{
  margin:0;display:flex;align-items:baseline;gap:10px;
  font-family:var(--ec-font-display);font-size:22px;font-weight:700;letter-spacing:-.01em;line-height:1.15;color:var(--ec-ink);
}
.v6-shop-group-head__n{font-family:var(--ec-font-body);font-size:13px;font-weight:600;color:var(--ec-muted)}
.v6-shop-group-head__desc{margin:0;font-size:14px;line-height:1.5;color:var(--ec-muted);max-width:64ch}
/* Flat mode (a chip, category or search is active): no group headings, grid order is the sort. */
.v6-shop-grid--flat .v6-shop-group-head{display:none !important}

/* ------------------------------------------------------------
   6. CARDS: no box, cream image well, badges, name / meta / price,
      points, tags, outline button
   ------------------------------------------------------------ */
.v6-shop .ec-product-card{
  position:relative;display:flex;flex-direction:column;gap:14px;min-width:0;margin:0;padding:0;
  background:transparent;border:0 !important;border-radius:0;overflow:visible;
  box-shadow:none !important;transform:none !important;transition:none;will-change:auto;
}
.v6-shop .ec-product-card:hover,
.v6-shop .ec-product-card:focus-within{transform:none !important;box-shadow:none !important;border-color:transparent}
.v6-shop .ec-product-card.is-hidden{display:none !important}
/* Undo the legacy main.js "hidden" treatment if it ever fires before v6-shop.js takes over. */
.v6-shop .ec-product-card.ec-card--hidden{position:relative;opacity:1;visibility:visible;transform:none !important;pointer-events:auto}

/* The well is a square (aspect-ratio) cream box; the link is pinned inside it with a
   16px inset so the image's height:100% always resolves against a definite box. */
.v6-shop .ec-product-card .ec-card-image-wrap{
  position:relative;display:block !important;
  width:100%;aspect-ratio:1 / 1;height:auto !important;min-height:0 !important;
  padding:0 !important;margin:0;
  background:var(--ec-cream) !important;background-color:var(--ec-cream) !important;
  border-radius:20px !important;box-shadow:none !important;overflow:hidden;
}
.v6-shop .ec-product-card:hover .ec-card-image-wrap{box-shadow:none !important}
.v6-shop .ec-product-card .ec-card-image-link{
  position:absolute;top:16px;right:16px;bottom:16px;left:16px;
  display:flex !important;align-items:center;justify-content:center;
  width:auto;height:auto !important;min-height:0 !important;padding:0 !important;margin:0;
  background:transparent !important;background-color:transparent !important;
  border-radius:0;box-shadow:none !important;aspect-ratio:auto;
}
.v6-shop .ec-product-card .ec-card-img,
.v6-shop .ec-product-card .ec-card-image-link img{
  display:block !important;width:auto !important;max-width:100% !important;
  height:100% !important;max-height:100% !important;object-fit:contain !important;
  margin:0 !important;padding:0;background:transparent !important;
  transform:none;transition:transform .35s ease;
}
.v6-shop .ec-product-card:hover .ec-card-img{transform:scale(1.03)}
@supports not (aspect-ratio: 1 / 1){
  .v6-shop .ec-product-card .ec-card-image-wrap{height:300px !important}
}

/* Badges in the image well: gold outline "Best seller", ink "New"; "Lab verified" micro badge. */
.v6-shop-badge{
  position:absolute;top:12px;left:12px;z-index:2;pointer-events:none;
  display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:999px;
  font-family:var(--ec-font-body);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1;white-space:nowrap;
}
.v6-shop-badge--best{background:var(--ec-card);color:var(--ec-ink);border:1.5px solid var(--ec-gold)}
.v6-shop-badge--new{background:var(--ec-ink);color:var(--ec-paper);border:1.5px solid var(--ec-ink)}
.v6-shop-lab{
  position:absolute;left:12px;bottom:12px;z-index:2;pointer-events:none;
  display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px 0 7px;border-radius:999px;
  background:var(--ec-card);border:1px solid var(--ec-border);color:var(--ec-ink);
  font-size:11px;font-weight:600;line-height:1;letter-spacing:.01em;white-space:nowrap;
}
.v6-shop-lab svg{display:block;flex:none}

.v6-shop .ec-product-card .ec-card-body{display:flex;flex-direction:column;flex:1 1 auto;gap:12px;padding:0;margin:0;background:transparent}
.v6-shop .ec-card-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin:0}
.v6-shop .ec-card-text{min-width:0;display:flex;flex-direction:column;gap:4px}
.v6-shop .ec-product-card .ec-card-title{
  margin:0;font-family:var(--ec-font-body);font-size:16px;font-weight:600;line-height:1.35;
  letter-spacing:0;color:var(--ec-ink);text-transform:none;
}
.v6-shop .ec-product-card .ec-card-title a{color:inherit;text-decoration:none;transition:color .2s ease}
.v6-shop .ec-product-card .ec-card-title a:hover{color:var(--ec-muted)}
.v6-shop .ec-product-card .ec-card-title a:focus-visible{outline:2px solid var(--ec-gold);outline-offset:2px;border-radius:2px}
.v6-shop .ec-product-card .ec-card-meta{display:block;justify-content:flex-start;margin:0;padding:0;font-size:13px;line-height:1.4;color:var(--ec-muted);background:transparent}
.v6-shop .ec-product-card .ec-card-price{
  margin:0;font-family:var(--ec-font-body);font-size:16px;font-weight:600;line-height:1.35;
  color:var(--ec-ink);white-space:nowrap;flex:none;
}
.v6-shop .ec-card-points,
.v6-shop .ec-card-save{display:flex;align-items:center;gap:8px;font-size:13px;line-height:1.4;color:var(--ec-ink)}
.v6-shop .ec-card-points .v6-dot,
.v6-shop .ec-card-save .v6-dot{width:6px;height:6px;flex:none}
.v6-shop .ec-card-points strong{font-weight:600}
.v6-shop .ec-card-save{font-weight:600}
.v6-shop .ec-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:-4px}
.v6-shop-tag{
  display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:999px;
  background:var(--ec-cream);border:1px solid var(--ec-border);color:var(--ec-ink);
  font-size:11px;font-weight:600;line-height:1;letter-spacing:.02em;white-space:nowrap;
}
.v6-shop .ec-product-card .ec-card-atc{margin-top:auto;padding:0;width:100%}

/* Row cards (merchandising strips): slightly tighter type. */
.v6-shop .v6-shop-card--row .ec-card-title{font-size:15px}
.v6-shop .v6-shop-card--row .ec-card-price{font-size:15px}
.v6-shop .v6-shop-card--row .ec-card-meta{font-size:12px}
/* Bundle cards: the contents line can wrap to two lines. */
.v6-shop .v6-shop-card--bundle .ec-card-meta{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* Add to cart: 44px gold-outline pill with a CSS plus sign. The anchor text stays the
   plain "Add to cart" string that wc-add-to-cart / ec-shop-tweaks expect. main.css paints
   .ec-atc-btn gold with !important, so these overrides carry !important too. */
.v6-shop .ec-product-card .ec-atc-btn,
.v6-shop .ec-product-card a.button.ec-atc-btn,
.v6-shop .ec-product-card .ec-card-atc a.add_to_cart_button,
.v6-shop .ec-product-card .ec-card-atc .button{
  display:inline-flex !important;align-items:center;justify-content:center;gap:8px;
  width:100%;height:44px;min-height:44px;margin:0;padding:0 16px !important;
  border:1.5px solid var(--ec-gold) !important;border-radius:999px;
  background:transparent !important;color:var(--ec-ink) !important;
  font-family:var(--ec-font-body);font-size:14px;font-weight:600;line-height:1;letter-spacing:0;
  text-align:center;text-decoration:none !important;text-transform:none;cursor:pointer;white-space:nowrap;
  transform:none !important;box-shadow:none !important;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.v6-shop .ec-product-card .ec-atc-btn::before{
  content:"";flex:none;width:12px;height:12px;
  background:linear-gradient(currentColor,currentColor) center / 2px 12px no-repeat,
             linear-gradient(currentColor,currentColor) center / 12px 2px no-repeat;
}
.v6-shop .ec-product-card .ec-atc-btn:hover,
.v6-shop .ec-product-card a.button.ec-atc-btn:hover,
.v6-shop .ec-product-card .ec-card-atc a.add_to_cart_button:hover{
  background:rgba(201,169,97,.12) !important;color:var(--ec-ink) !important;border-color:var(--ec-gold) !important;
  transform:none !important;box-shadow:none !important;
}
.v6-shop .ec-product-card .ec-atc-btn:focus-visible{outline:2px solid var(--ec-gold);outline-offset:3px}
.v6-shop .ec-product-card .ec-atc-btn.loading{opacity:.65;cursor:wait}
.v6-shop .ec-product-card .ec-atc-btn.added,
.v6-shop .ec-product-card .ec-atc-btn.is-in-cart,
.v6-shop .ec-product-card a.button.ec-atc-btn.added{
  background:var(--ec-ink) !important;color:var(--ec-paper) !important;border-color:var(--ec-ink) !important;
}
.v6-shop .ec-product-card .ec-atc-btn.added::before,
.v6-shop .ec-product-card .ec-atc-btn.is-in-cart::before{
  background:linear-gradient(var(--ec-gold),var(--ec-gold)) center / 2px 12px no-repeat,
             linear-gradient(var(--ec-gold),var(--ec-gold)) center / 12px 2px no-repeat;
}
/* "View product" / "Choose size" / "View bundle" / "Out of stock" links: same pill, chevron, no plus. */
.v6-shop .ec-product-card .ec-atc-btn--view::before{display:none}
.v6-shop .ec-product-card .ec-atc-btn--view::after{
  content:"";flex:none;width:8px;height:8px;margin-left:2px;
  border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);
}
.v6-shop .ec-product-card .v6-shop-atc--soon{border-color:var(--ec-border) !important;color:var(--ec-muted) !important}
.v6-shop .ec-product-card .v6-shop-atc--soon::after{display:none}
/* wc-add-to-cart appends a "View cart" link after the button; the drawer opens instead. */
.v6-shop .ec-card-atc .added_to_cart{display:none !important}

/* Dose families (v6.2): dose chips on a variable card and the "Select a dose" state of its button. */
.v6-shop .ec-product-card .v6-shop-doses{display:flex;flex-wrap:wrap;gap:6px;margin-top:-2px}
.v6-shop .ec-product-card .v6-shop-dose{
  -webkit-appearance:none;appearance:none;margin:0;
  display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 12px;border-radius:999px;
  border:1.5px solid var(--ec-border);background:var(--ec-card);color:var(--ec-ink);
  font-family:var(--ec-font-body);font-size:12px;font-weight:600;line-height:1;letter-spacing:.01em;white-space:nowrap;cursor:pointer;
  transition:border-color .2s ease,background .2s ease,color .2s ease;
}
.v6-shop .ec-product-card .v6-shop-dose:hover{border-color:var(--ec-ink)}
.v6-shop .ec-product-card .v6-shop-dose:focus-visible{outline:2px solid var(--ec-gold);outline-offset:2px}
.v6-shop .ec-product-card .v6-shop-dose.is-active,
.v6-shop .ec-product-card .v6-shop-dose.is-active:hover{background:var(--ec-ink);border-color:var(--ec-ink);color:var(--ec-paper)}
.v6-shop .ec-product-card .v6-shop-dose.is-oos,
.v6-shop .ec-product-card .v6-shop-dose[disabled]{color:var(--ec-muted);border-style:dashed;cursor:not-allowed}
.v6-shop .ec-product-card.is-nudge .v6-shop-dose:not(.is-active):not([disabled]){border-color:var(--ec-gold)}
.v6-shop .ec-product-card .v6-shop-atc--pick{border-color:var(--ec-border) !important;color:var(--ec-muted) !important}
.v6-shop .ec-product-card .v6-shop-atc--pick:hover{background:transparent !important;border-color:var(--ec-gold) !important;color:var(--ec-ink) !important}
.v6-shop .ec-product-card .v6-shop-atc--pick::before{display:none}
.v6-shop .ec-product-card .v6-shop-atc--pick::after{
  content:"";flex:none;width:8px;height:8px;margin-left:2px;
  border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(135deg);
}
.v6-shop .ec-product-card .v6-shop-atc--ready::after{display:none}
@media (prefers-reduced-motion: reduce){
  .v6-shop .ec-product-card .v6-shop-dose{transition:none}
}

/* ------------------------------------------------------------
   7. FOOTNOTE ROW
   ------------------------------------------------------------ */
.v6-shop-foot{
  margin-top:56px;padding-top:24px;border-top:1px solid var(--ec-border);
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;
  font-size:13px;line-height:1.6;color:var(--ec-muted);
}
.v6-shop-foot__dot{display:inline-block;flex:none;width:6px;height:6px;border-radius:50%;background:var(--ec-gold)}
.v6-shop-foot__ruo{flex:1 1 420px;min-width:0;display:flex;gap:10px;align-items:baseline}
.v6-shop-foot__ruo .v6-shop-foot__dot{transform:translateY(-2px)}
.v6-shop-foot__points{flex:0 1 auto}

/* ------------------------------------------------------------
   8. QUIZ + LAB RESULTS BAND
   ------------------------------------------------------------ */
.v6-shop-band{display:flex;flex-wrap:wrap;gap:24px;padding-bottom:96px}
.v6-shop-band__card{
  flex:1 1 460px;min-width:0;border-radius:32px;padding:56px clamp(24px,4vw,48px);
  display:flex;flex-direction:column;gap:20px;
}
.v6-shop-band__card--ink{background:var(--ec-ink);color:var(--ec-paper)}
.v6-shop-band__card--cream{background:var(--ec-cream);color:var(--ec-ink);border:1px solid var(--ec-border)}
.v6-shop-band__eyebrow{margin:0}
.v6-shop-band__title{
  margin:0;font-family:var(--ec-font-display);font-weight:700;letter-spacing:-.02em;
  font-size:clamp(36px,4vw,48px);line-height:1;color:inherit;
}
.v6-shop-band__text{margin:0;font-size:16px;line-height:1.6;max-width:460px;color:var(--ec-muted)}
.v6-shop-band__card--ink .v6-shop-band__text{color:var(--ec-border)}
.v6-shop-band__box{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;
  border-radius:16px;padding:16px 18px;
}
.v6-shop-band__box--ink{background:rgba(250,250,248,.06);border:1px solid rgba(250,250,248,.14)}
.v6-shop-band__box--card{background:var(--ec-card);border:1px solid var(--ec-border);box-shadow:0 10px 30px rgba(10,10,10,.06)}
.v6-shop-band__box-text{min-width:0;display:flex;flex-direction:column;gap:4px}
.v6-shop-band__box-title{font-size:14px;font-weight:600;color:inherit}
.v6-shop-band__box-sub{font-size:12px;color:var(--ec-muted)}
.v6-shop-band__card--ink .v6-shop-band__box-sub{color:var(--ec-border)}
.v6-shop-band__box-end{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:inherit}
.v6-shop-band__box-end svg{display:block;flex:none}
.v6-shop-band__action{margin-top:auto;padding-top:12px;display:flex}
.v6-shop-band__card--ink .v6-shop-band__btn{height:56px;padding:0 32px;font-weight:700}
.v6-shop-band__card--cream .v6-shop-band__btn{height:54px;padding:0 30px}

/* ------------------------------------------------------------
   9. RESPONSIVE
   ------------------------------------------------------------ */
@media (max-width: 1024px){
  .v6-shop-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 20px}
  .v6-shop-head__search{flex-basis:100%}
}

@media (max-width: 768px){
  .v6-shop .ec-catalog-head,
  .v6-shop .ec-catalog-head.v6-shop-head{padding-top:16px;padding-bottom:20px;gap:16px}
  .v6-shop-head__copy{gap:10px;flex-basis:100%}
  .v6-shop-title{font-size:34px}
  .v6-shop-sub{font-size:14px}
  .v6-shop .v6-shop-search__input{font-size:16px;padding:0 12px;height:48px}
  .v6-shop .v6-shop-search__btn{padding:0 16px;min-height:48px}
  .v6-shop-popular{display:none}

  /* Toolbar: chips scroll edge to edge (negative margins = .v6-container gutter). */
  .v6-shop-controls__inner{gap:10px;padding-top:10px;padding-bottom:10px}
  .v6-shop-chips{margin:0 -32px;padding-left:32px;padding-right:32px;scroll-padding-left:32px}
  .v6-shop-chip{min-height:38px;padding:0 14px}
  .v6-shop .v6-shop-sort__select{height:38px;padding:0 34px 0 14px;max-width:170px;text-overflow:ellipsis}
  .v6-shop-sort__chevron{right:12px;top:11px}

  /* Status row: count + sort on the first line, category links underneath. */
  .v6-shop-status{padding-top:14px}
  .v6-shop-cats{order:3;flex-basis:100%}
  .v6-shop-focus{order:4}
  .v6-shop-rows{gap:36px;margin:16px 0 44px}
  .v6-shop-row__head{margin-bottom:14px}
  .v6-shop-row__link{min-height:36px}
  /* Strips bleed to the gutter so the scroll edge is the screen edge. */
  .v6-shop-strip{margin:0 -32px;padding:4px 32px 10px;scroll-padding-left:32px;gap:14px;grid-auto-columns:minmax(196px,1fr)}
  .v6-shop-strip--bundles{grid-auto-columns:minmax(250px,1fr)}

  .v6-shop-catalog{padding-bottom:56px}
  .v6-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 16px}
  .v6-shop-group-head{padding-top:24px;margin:8px 0 -10px}
  .v6-shop-group-head__title{font-size:20px}
  .v6-shop-group-head__desc{font-size:13px}
  .v6-shop-foot{margin-top:40px}

  .v6-shop-band{padding-bottom:64px;gap:16px}
  .v6-shop-band__card{padding:40px 24px;border-radius:24px;gap:16px}
  .v6-shop-band__title{font-size:36px}
  .v6-shop-band__action{display:flex}
  .v6-shop-band__btn{width:100%;display:flex}
}

@media (max-width: 480px){
  .v6-shop .ec-catalog-head,
  .v6-shop .ec-catalog-head.v6-shop-head{padding-left:16px;padding-right:16px}
  .v6-shop-chips{margin:0 -16px;padding-left:16px;padding-right:16px;scroll-padding-left:16px}
  .v6-shop-strip{margin:0 -16px;padding:4px 16px 10px;scroll-padding-left:16px;grid-auto-columns:minmax(188px,1fr)}
  .v6-shop-strip--bundles{grid-auto-columns:minmax(236px,1fr)}
  .v6-shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 12px}
  .v6-shop .ec-product-card{gap:12px}
  .v6-shop .ec-product-card .ec-card-image-wrap{border-radius:16px !important}
  .v6-shop .ec-product-card .ec-card-image-link{top:12px;right:12px;bottom:12px;left:12px}
  .v6-shop .ec-product-card .ec-card-body{gap:10px}
  .v6-shop .ec-card-row{flex-direction:column;gap:4px;align-items:flex-start}
  .v6-shop .ec-product-card .ec-card-title{font-size:15px}
  .v6-shop .ec-product-card .ec-card-price{font-size:15px}
  .v6-shop .ec-card-points,
  .v6-shop .ec-card-save{font-size:12px}
  .v6-shop-badge{top:10px;left:10px;height:24px;padding:0 8px;font-size:10px}
  .v6-shop-lab{left:10px;bottom:10px;height:22px;font-size:10px}
  .v6-shop .ec-product-card .ec-atc-btn,
  .v6-shop .ec-product-card a.button.ec-atc-btn,
  .v6-shop .ec-product-card .ec-card-atc a.add_to_cart_button{font-size:13px;padding:0 10px !important;gap:6px}
  .v6-shop-group-head__link{display:none}
}

/* ------------------------------------------------------------
   10. REDUCED MOTION + PRINT
   ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce){
  .v6-shop *,
  .v6-shop *::before,
  .v6-shop *::after{transition:none !important;animation:none !important}
  .v6-shop .ec-product-card:hover .ec-card-img{transform:none}
  .v6-shop-row__link:hover .v6-shop-row__arrow,
  .v6-shop-group-head__link:hover .v6-shop-row__arrow{transform:none}
  .v6-shop-chips,
  .v6-shop-strip{scroll-behavior:auto}
}

@media print{
  .v6-shop-band,.v6-shop-controls,.v6-shop-search,.v6-shop-popular,.v6-shop-rows{display:none !important}
  .v6-shop-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
}

/* ------------------------------------------------------------
   11. CARD GLOW (2026-10-17 client request): every shop card's cream well lights up
       exactly like the home page "Shop more" cards (v6-home.css): gold border, gold
       ring + soft gold halo, 0.45s fade, image lifts 6px. Covers the main grid, the
       bundles row, Blends and every filtered or category view (all .ec-product-card).
   ------------------------------------------------------------ */
.v6-shop .ec-product-card .ec-card-image-wrap{
  border:1.5px solid transparent !important;
  transition:border-color .45s ease,box-shadow .45s ease;
}
.v6-shop .ec-product-card:hover .ec-card-image-wrap,
.v6-shop .ec-product-card:has(:focus-visible) .ec-card-image-wrap{
  border-color:var(--ec-gold,#C9A961) !important;
  box-shadow:0 0 0 3px rgba(201,169,97,.22),0 18px 40px rgba(201,169,97,.18) !important;
}
.v6-shop .ec-product-card .ec-card-img,
.v6-shop .ec-product-card .ec-card-image-link img{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.v6-shop .ec-product-card:hover .ec-card-img,
.v6-shop .ec-product-card:hover .ec-card-image-link img{transform:translateY(-6px)}
/* The bundles row scrolls sideways, which would clip the ring on its first and last cards:
   give it 8px of breathing room on each side without moving the cards. */
.v6-shop-strip{margin:-8px -8px 0;padding:12px 8px 10px;scroll-padding-inline:8px}
@media (prefers-reduced-motion: reduce){
  .v6-shop .ec-product-card .ec-card-image-wrap{transition:none}
  .v6-shop .ec-product-card:hover .ec-card-img,
  .v6-shop .ec-product-card:hover .ec-card-image-link img{transform:none}
}
