/* =========================================================
   Amino Crew — theme styles
   Palette: black #111111 · white #FFFFFF · grey #F3F3F1 · graphite #55575A · blue #4667E8
   ========================================================= */

:root {
  --ac-black: #111111;
  --ac-white: #FFFFFF;
  --ac-grey: #F3F3F1;
  --ac-graphite: #55575A;
  --ac-blue: #4667E8;
  --ac-line: #E4E4E1;
  --ac-radius: 8px;
  --ac-radius-lg: 16px;
  --ac-max: 1320px;
}

html { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; scroll-behavior: smooth; }
body { color: var(--ac-black); background: var(--ac-white); }
::selection { background: var(--ac-blue); color: #fff; }
a { text-decoration: none; }
a:hover { color: var(--ac-blue); }
img { height: auto; }
.ac-dot { color: var(--ac-blue); }

/* ---------- Type helpers ---------- */
.ac-eyebrow {
  font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase;
  color: var(--ac-graphite); display: flex; align-items: center; gap: .6rem; margin: 0 0 1rem;
}
.ac-eyebrow::before { content: ""; width: 14px; height: 1px; background: var(--ac-blue); }
.ac-more { font-size: 14px; font-weight: 500; color: var(--ac-black); white-space: nowrap; }
.ac-more:hover { color: var(--ac-blue); }
h1, h2, h3, h4 { text-wrap: balance; }

/* ---------- Buttons ---------- */
.wp-block-button__link, .ac-btn, .woocommerce button.button, .woocommerce a.button, .woocommerce .button,
.wc-block-components-button, .wp-block-jetpack-button button {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  background: var(--ac-black); color: #fff; font-family: inherit; font-size: 14px; font-weight: 500;
  line-height: 1; padding: .9rem 1.5rem; border-radius: 4px; border: 1px solid var(--ac-black);
  cursor: pointer; transition: background .18s, border-color .18s, color .18s;
}
.wp-block-button__link:hover, .ac-btn:hover, .woocommerce button.button:hover, .woocommerce a.button:hover,
.woocommerce .button:hover, .wc-block-components-button:hover, .wp-block-jetpack-button button:hover {
  background: var(--ac-blue); border-color: var(--ac-blue); color: #fff;
}
.is-style-outline .wp-block-button__link, .ac-btn--ghost {
  background: transparent; color: var(--ac-black); border-color: var(--ac-black);
}
.is-style-outline .wp-block-button__link:hover, .ac-btn--ghost:hover { background: var(--ac-black); color: #fff; }
.is-style-white .wp-block-button__link { background: #fff; color: var(--ac-black); border-color: #fff; }
.is-style-white .wp-block-button__link:hover { background: var(--ac-blue); border-color: var(--ac-blue); color: #fff; }
.woocommerce button.button.alt, .woocommerce a.button.alt { background: var(--ac-black); color: #fff; }
.woocommerce button.button.alt:hover { background: var(--ac-blue); }

/* ---------- Logo ---------- */
.ac-logo { font-weight: 600; font-size: 20px; letter-spacing: -0.02em; color: var(--ac-black); line-height: 1; display: inline-block; }
.ac-logo:hover { color: var(--ac-black); }
.ac-logo--lg { font-size: 26px; }
/* Image logo: height-driven so a region's own wordmark sits on the same baseline
   as the text one, whatever its aspect ratio. */
.ac-logo--img { display: inline-flex; align-items: center; }
/* Trading entity line under the hero headline. Sits between the h1 and the lead,
   so it is sized to read as a credential rather than compete with either. */
.ac-hero__entity {
  /* Top margin so it clears the headline's descenders rather than sitting on
     them; the h1 is set tight, so it needs the space added back here. */
  margin: 1.1rem 0 .75rem;
  font-size: 15.5px;
  font-weight: 500;
  letter-spacing: .02em;
  color: var(--ac-graphite);
}
.ac-hero__entity-name { color: var(--ac-blue); font-weight: 600; }
/* Registered address on its own line, a step down from the company name so the
   block reads as one credential rather than two competing lines. */
.ac-hero__entity-addr {
  display: block;
  margin-top: .3rem;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: .01em;
  line-height: 1.5;
  max-width: 46ch;
}
@media (max-width: 782px) { .ac-hero__entity-addr { font-size: 12.5px; } }

/* Country line on the regional home pages only. Sized between the lead and the
   address so it reads as a note on the lead rather than a second headline. */
.ac-hero__region {
  margin: .85rem 0 0;
  max-width: 54ch;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ac-graphite);
}
.ac-hero__region strong { color: var(--ac-black); font-weight: 600; }
.ac-hero--vdark .ac-hero__region { color: rgba(255,255,255,.85); }
.ac-hero--vdark .ac-hero__region strong { color: #fff; }
@media (max-width: 782px) { .ac-hero__region { font-size: 13.5px; } }

/* Brand mark under the hero CTA. Width-driven because the lockup is a fixed
   3:1 wordmark; the top margin keeps it clear of the button. */
/* Grid, not flex: flex-wrap fills each line greedily, which left six marks
   sitting 5 + 1. Equal columns wrap them evenly instead, and each mark is
   centred in its own cell so the row stays tidy whatever gets added next. */
/* Payments-paused notice on cart and checkout. Amber rather than red: this is a
   temporary state the customer can act on, not an error they caused. */
.ac-paused {
  margin: 0 0 1.75rem;
  padding: 1.25rem 1.4rem;
  border: 1px solid #E8D9A8;
  border-left: 3px solid #C79A2E;
  background: #FCF8EC;
  border-radius: 4px;
}
.ac-paused__title { margin: 0 0 .5rem; font-size: 15px; font-weight: 600; color: var(--ac-black); }
.ac-paused__text  { margin: 0 0 .65rem; font-size: 14.5px; line-height: 1.6; color: var(--ac-graphite); max-width: 62ch; }
/* The code is the one thing on this notice a customer has to copy by hand, so
   it gets a dashed box and monospace digits rather than sitting inside the
   sentence where the eye slides over it. */
.ac-paused__code  { margin: 0 0 .7rem; }
.ac-paused__code span {
  display: inline-block; padding: .45rem .85rem;
  border: 1px dashed var(--ac-black); border-radius: 6px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 15px; font-weight: 600; letter-spacing: .08em;
  color: var(--ac-black); background: #fff;
  user-select: all;
}
/* Three ways out of the apology, given equal weight and made big enough to tap.
   Grid rather than flex: the three fill the row evenly on a desktop and stack
   cleanly on a phone, which flex-wrap would leave 2 + 1. */
.ac-paused__links {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin: 0;
}
.ac-paused__link {
  box-sizing: border-box;
  display: flex; flex-direction: column; gap: .15rem;
  padding: .7rem .9rem; border-radius: 8px;
  border: 1px solid var(--ac-line); background: #fff;
  text-decoration: none; color: var(--ac-black);
  transition: border-color .15s, background .15s, transform .15s;
}
.ac-paused__link:hover { border-color: var(--ac-black); transform: translateY(-1px); }
.ac-paused__link:focus-visible { outline: 2px solid var(--ac-blue); outline-offset: 2px; }
.ac-paused__link-name { font-size: 14.5px; font-weight: 600; }
.ac-paused__link-note { font-size: 12px; line-height: 1.4; color: var(--ac-graphite); }
/* Each carries its own mark's colour so the row is scannable at a glance. */
.ac-paused__link--discord .ac-paused__link-name { color: #5865F2; }
.ac-paused__link--skool   .ac-paused__link-name { color: var(--ac-black); }
.ac-paused__link--mail    .ac-paused__link-name { color: var(--ac-blue); }
.ac-paused__link--mail .ac-paused__link-note { word-break: break-all; }
@media (max-width: 600px) {
  .ac-paused__links { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .ac-paused__link { transition: none; } }
.ac-paused__cta   { margin: 0; font-size: 14.5px; font-weight: 600; }
.ac-paused__cta a { color: var(--ac-blue); }

/* The band: rule, label, then the marks. */
.ac-hero__badges {
  margin-top: 2.25rem;
  padding-top: 2.25rem;
  border-top: 1px solid var(--ac-line);
}
.ac-hero__badge-label {
  margin: 0 0 1.75rem;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ac-graphite);
}
.ac-hero__badge {
  display: grid;
  /* Fixed three columns, not auto-fit. auto-fit picked a different column
     count at every window width and stranded the remainder — six marks came out
     4 + 2. Three columns always gives a balanced 3 + 3. */
  grid-template-columns: repeat(3, 1fr);
  align-items: center;
  justify-items: center;
  gap: 2.25rem 2rem;
  max-width: 900px;
  margin-inline: auto;
}
/* Capped on BOTH axes, because these marks run from 2.1:1 to 5.3:1. Matching
   heights alone made the wide wordmarks enormous; matching widths alone made the
   compact ones tower. The height cap governs the compact marks, the width cap
   governs the wide ones, and object-fit keeps both undistorted.
   The source PNGs were also cropped to their artwork — they shipped with up to
   70% blank canvas, which made some render a third the size of the others. */
.ac-hero__badge img { display: block; height: 68px; width: auto; max-width: 240px; object-fit: contain; }
@media (max-width: 782px) {
  .ac-hero__badges { margin-top: 1.75rem; padding-top: 1.75rem; }
  .ac-hero__badge-label { margin-bottom: 1.25rem; font-size: 10px; }
  .ac-hero__badge {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem 1rem;
  }
  .ac-hero__badge img { height: 50px; max-width: 165px; }
}

/* Hero Shop button, scoped so the site's other buttons — add to cart, checkout,
   the account forms — keep the standard 14px size. */
.ac-hero__copy .wp-block-button__link {
  font-size: 16px;
  padding: 1.15rem 2.4rem;
  border-radius: 5px;
}
@media (max-width: 782px) {
  .ac-hero__entity { font-size: 14.5px; margin-top: .9rem; }
  /* The hero CTA is sized up on desktop; on a phone that width reads as a
     full-width banner rather than a button. Back to near the site default. */
  .ac-hero__copy .wp-block-button__link { font-size: 14.5px; padding: .85rem 1.6rem; }
}

/* 46px, not the 30px the text wordmark sits at: this lockup carries a tagline
   under the name, so it needs the extra height to stay legible. */
.ac-logo--img img { display: block; height: 46px; width: auto; max-width: 300px; object-fit: contain; }
.ac-logo--img.ac-logo--lg img { height: 58px; max-width: 380px; }
@media (max-width: 782px) {
  .ac-logo--img img { height: 34px; max-width: 220px; }
  .ac-logo--img.ac-logo--lg img { height: 42px; max-width: 280px; }
}

/* ---------- Header ---------- */
.ac-header {
  position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.92); backdrop-filter: blur(10px);
  border-bottom: 1px solid transparent; transition: border-color .2s; padding-top: 0; padding-bottom: 0;
}
.ac-header.is-scrolled { border-bottom-color: var(--ac-line); }
.ac-header__inner { min-height: 72px; gap: 2rem; }
.ac-nav { gap: 2rem; }
.ac-nav .wp-block-navigation-item__content { font-size: 14px; font-weight: 500; color: var(--ac-black); }
.ac-nav .wp-block-navigation-item__content:hover { color: var(--ac-blue); }
.ac-nav .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content { text-decoration: underline; text-underline-offset: 6px; text-decoration-color: var(--ac-blue); }
.ac-header__tools { gap: 1.1rem; }
.ac-header__tools svg { width: 20px; height: 20px; }
.ac-search .wp-block-search__button { background: transparent; border: 0; padding: .35rem; color: var(--ac-black); }
.ac-search .wp-block-search__button:hover { color: var(--ac-blue); background: transparent; }
.ac-search.wp-block-search__button-only .wp-block-search__inside-wrapper { border: 0; }
.ac-search .wp-block-search__input { border: 1px solid var(--ac-line); border-radius: 4px; padding: .5rem .75rem; font-family: inherit; font-size: 14px; }
.wc-block-mini-cart__button, .wc-block-customer-account__account-icon { color: var(--ac-black); padding: .35rem; }
.wc-block-mini-cart__badge { background: var(--ac-blue); color: #fff; border: 0; font-size: 10px; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { color: var(--ac-black); }

/* ---------- Sections ---------- */
.ac-main { padding-top: 0; padding-bottom: 0; }
.ac-section { padding-top: 5rem; padding-bottom: 5rem; }
.ac-section--tight { padding-top: 4rem; padding-bottom: 2rem; }
.ac-section__head { margin-bottom: 2.25rem; }
.ac-section__head p { margin: .4rem 0 0; }
.ac-section--grey { background: var(--ac-grey); border-radius: var(--ac-radius-lg); padding: 4rem 3rem; margin: 1rem auto; }
.ac-cta { border-radius: var(--ac-radius-lg); padding: 4rem 3rem; margin: 1rem auto 5rem; }
.ac-cta__text { color: rgba(255,255,255,.7); }

/* ---------- Hero ---------- */
.ac-hero { padding-top: 5rem; padding-bottom: 5rem; position: relative; }
.ac-eyebrow--multi { line-height: 1.9; align-items: flex-start; }
.ac-eyebrow--multi::before { margin-top: .75em; }
.ac-hero__hq { display: grid; gap: .2rem; font-size: 13px; color: var(--ac-graphite); margin: 2.25rem 0 0; max-width: 34rem; padding-top: 1.25rem; border-top: 1px solid var(--ac-line); }
.ac-hero__hq-label { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; margin-bottom: .3rem; }
.ac-hero__hq strong { font-weight: 600; color: var(--ac-black); }
.ac-hero--video .ac-hero__hq { border-top-color: rgba(255,255,255,.25); }
.ac-hero__copy { max-width: 640px; }
.ac-footer__addr { text-align: right; }

/* Hero entrance animation */
@keyframes ac-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.ac-anim { opacity: 0; animation: ac-rise .8s cubic-bezier(.2,.7,.2,1) forwards; }
.ac-anim--1 { animation-delay: .1s; } .ac-anim--2 { animation-delay: .25s; } .ac-anim--3 { animation-delay: .4s; }
.ac-anim--4 { animation-delay: .55s; } .ac-anim--5 { animation-delay: .7s; }
@media (prefers-reduced-motion: reduce) { .ac-anim { animation: none; opacity: 1; } }

/* Hero is align-full; keep its content on the 1320px grid with root padding. */
.ac-hero.alignfull { padding-left: var(--wp--style--root--padding-left, 1.5rem); padding-right: var(--wp--style--root--padding-right, 1.5rem); }

/* Video hero: video sits in a rounded panel beside the copy (option ac_hero_video_url). */
.ac-hero--video { padding-top: 4.5rem; padding-bottom: 4.5rem; }
.ac-hero--vlight { background: #fff; color: var(--ac-black); }
.ac-hero--vdark  { background: #000; color: #fff; }
.ac-hero__media { position: relative; border-radius: var(--ac-radius-lg); overflow: hidden; aspect-ratio: 4 / 5; background: var(--ac-grey); box-shadow: 0 30px 60px rgba(17,17,17,.10); }
.ac-hero--vdark .ac-hero__media { background: #0a0a0a; box-shadow: none; }
.ac-hero__media video { width: 100%; height: 100%; object-fit: cover; display: block; }
.ac-hero--vdark .ac-eyebrow, .ac-hero--vdark .ac-hero__hq, .ac-hero--vdark .ac-hero__lead { color: rgba(255,255,255,.85) !important; }
.ac-hero--vdark .ac-eyebrow::before { background: #fff; }
.ac-hero--vdark .ac-hero__hq strong, .ac-hero--vdark h1 { color: #fff !important; }
.ac-hero--vdark .ac-hero__hq { border-top-color: rgba(255,255,255,.25); }
.ac-hero--vdark .wp-block-button__link { background: #fff; color: var(--ac-black); border-color: #fff; }
.ac-hero--vdark .wp-block-button__link:hover { background: var(--ac-blue); border-color: var(--ac-blue); color: #fff; }
@media (max-width: 781px) {
  .ac-hero--video { padding-top: .5rem; padding-bottom: 3rem; }
  .ac-hero__cols { flex-direction: column-reverse !important; gap: 2rem; }
  /* Landscape and height-capped on phones: the 3:4 portrait crop pushed the
     headline most of a screen down before anyone saw it. */
  .ac-hero__media { aspect-ratio: 5 / 4; max-height: 26vh; }
  .ac-hero__img img { max-height: 26vh; width: 100%; object-fit: cover; }
}

/* ---------- Trust bar / features ---------- */
.ac-trustbar { border-top: 1px solid var(--ac-line); border-bottom: 1px solid var(--ac-line); padding-top: 1.75rem; padding-bottom: 1.75rem; }
.ac-trust { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.ac-trust li, .ac-feature { display: flex; gap: .85rem; align-items: flex-start; }
.ac-trust strong, .ac-feature strong { display: block; font-size: 14px; font-weight: 600; letter-spacing: -0.01em; }
.ac-trust span, .ac-feature span { display: block; font-size: 13px; color: var(--ac-graphite); margin-top: .15rem; }
.ac-icon { width: 22px; height: 22px; flex: 0 0 22px; color: var(--ac-black); margin-top: .1rem; }
.ac-trust--compact { grid-template-columns: repeat(2, 1fr); gap: .9rem 1.25rem; margin: 1.75rem 0 0; padding-top: 1.5rem; border-top: 1px solid var(--ac-line); }
.ac-trust--compact li { align-items: center; }
.ac-trust--compact span { font-size: 13px; color: var(--ac-black); margin: 0; }
.ac-trust--compact .ac-icon { width: 18px; height: 18px; flex-basis: 18px; }
.ac-features { display: grid; gap: 1.5rem 2rem; }
.ac-features--2col { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ac-features--3col { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ac-features--4col { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* wpautop wraps shortcode output in <p>/<br> inside page content; keep them out of the grid. */
.ac-features > p, .ac-contact-list > p { display: contents; }
.ac-features > br, .ac-contact-list > br, .ac-features > p:empty { display: none; }
.ac-contact-list { margin-top: 2rem; display: grid; gap: 1.25rem; }
.ac-checklist { padding-left: 1.2rem; }
.ac-checklist li { margin-bottom: .6rem; }

/* ---------- Page images ---------- */
.ac-img { margin: 0; }
.ac-img img { display: block; width: 100%; border-radius: var(--ac-radius-lg); background: var(--ac-grey); }
.ac-hero__img img { box-shadow: 0 30px 60px rgba(17,17,17,.10); }

/* ---------- Image placeholders (until photos are uploaded) ---------- */
.ac-img-placeholder img { display: block; width: 100%; background: var(--ac-grey); border-radius: var(--ac-radius-lg); color: transparent; font-size: 0; min-height: 280px; }

/* ---------- Product cards (shop loop + [products]) ---------- */
.woocommerce ul.products, .woocommerce-page ul.products {
  display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.5rem 2rem; margin: 0; padding: 0; list-style: none;
}
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product {
  width: auto !important; margin: 0 !important; float: none !important; text-align: left; clear: none !important;
}
/* WooCommerce's clearfix pseudo-elements become empty grid cells — remove them. */
.woocommerce ul.products::before, .woocommerce ul.products::after,
.woocommerce-page ul.products::before, .woocommerce-page ul.products::after { display: none !important; content: none !important; }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.woocommerce ul.products li.product a img {
  aspect-ratio: 1 / 1; object-fit: contain; width: 100%; background: var(--ac-grey); border-radius: var(--ac-radius);
  padding: 12%; margin: 0 0 1rem !important; box-sizing: border-box; transition: transform .25s;
}
.woocommerce ul.products li.product a:hover img { transform: translateY(-2px); }
/* Cut-out tiles: card removed, vial floats. .ac-float-card and .ac-vialbox come from theme.js.
 * Not .ac-tile — that name is already the grey card component further down.
 * width:100% is load-bearing: without it the aspect-ratio resolves against the child
 * image's height, which is itself a percentage of this box, and the wrapper blows out. */
.ac-float-card .ac-vialbox { display: block; position: relative; width: 100%; max-width: 100%; aspect-ratio: 1 / 1; margin: 0 0 1rem; padding: 0; box-sizing: border-box; background: none; border: 0; perspective: 800px; transform-style: preserve-3d; }
.woocommerce ul.products li.product.ac-float-card a img {
  background: none; border-radius: 0; padding: 6%; margin: 0 !important;
  width: 100%; height: 100%; aspect-ratio: auto; object-fit: contain;
  filter: drop-shadow(0 12px 16px rgba(17,17,17,.15));
}
@media (prefers-reduced-motion: no-preference) {
  .woocommerce ul.products li.product.ac-float-card a img { animation: ac-tile-bob 7s ease-in-out infinite; }
}
/* Shallower than the single-product bob: a tile is a fraction of the size. */
@keyframes ac-tile-bob {
  0%, 100% { transform: translate3d(0,-6px,0) rotate(-.8deg); }
  50%      { transform: translate3d(0, 6px,0) rotate(.8deg); }
}
.woocommerce ul.products li.product .woocommerce-loop-product__title, .woocommerce ul.products li.product h2 {
  font-size: 15px; font-weight: 600; letter-spacing: -0.01em; padding: 0; margin: 0 0 .2rem; line-height: 1.3;
}
.ac-card__size { font-size: 13px; color: var(--ac-graphite); margin-bottom: .45rem; }
.woocommerce ul.products li.product .price { font-size: 14px; font-weight: 600; color: var(--ac-black); margin: 0 0 .5rem; }
.woocommerce ul.products li.product .price del { color: var(--ac-graphite); font-weight: 400; opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.ac-card__view { font-size: 13px; font-weight: 500; color: var(--ac-black); }
.woocommerce ul.products li.product:hover .ac-card__view { color: var(--ac-blue); }
.woocommerce ul.products li.product .onsale { display: none; }
.woocommerce ul.products li.product .woocommerce-LoopProduct-link { display: block; color: inherit; }

/* ---------- Shop landing tiles ---------- */
.ac-shop__intro { padding-top: 1rem; margin-bottom: 2rem; }
.ac-tiles { gap: 1.5rem; margin-bottom: 4rem; }
.ac-tile { display: flex; flex-direction: column; gap: .5rem; padding: 2.5rem; min-height: 260px; border-radius: var(--ac-radius-lg); background: var(--ac-grey); color: var(--ac-black); border: 1px solid transparent; transition: transform .2s, border-color .2s; }
.ac-tile:hover { transform: translateY(-3px); border-color: var(--ac-blue); color: var(--ac-black); }
.ac-tile--dark { background: var(--ac-black); color: #fff; }
.ac-tile--dark:hover { color: #fff; }
.ac-tile__eyebrow { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; opacity: .7; }
.ac-tile__title { font-size: var(--wp--preset--font-size--xl); font-weight: 600; letter-spacing: -0.02em; line-height: 1.1; }
.ac-tile__text { font-size: 14px; opacity: .75; max-width: 28rem; }
.ac-tile__cta { margin-top: auto; padding-top: 1.5rem; font-size: 14px; font-weight: 500; }
.ac-tile:hover .ac-tile__cta { color: var(--ac-blue); }
.ac-tile--dark:hover .ac-tile__cta { color: #fff; }
.ac-shop--landing .woocommerce-products-header { display: none; }
.ac-shop__all { font-size: var(--wp--preset--font-size--xl); margin: 0 0 .5rem; }
.wp-block-navigation .wp-block-navigation__submenu-container { border: 1px solid var(--ac-line); border-radius: 8px; padding: .5rem 0; min-width: 240px; box-shadow: 0 16px 40px rgba(17,17,17,.08); }
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .6rem 1rem; font-size: 14px; }

/* ---------- Shop / category archive ---------- */
.ac-shop { padding-top: 3.5rem; padding-bottom: 5rem; }
.ac-shop__cols { gap: 3rem; }
.ac-side__h { font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--ac-graphite); margin-bottom: 1rem; }
.ac-side__cats ul, .wc-block-product-categories-list { list-style: none; margin: 0; padding: 0; }
.ac-side__cats li { margin: 0 0 .55rem; font-size: 14px; }
.ac-side__cats a { color: var(--ac-black); }
.ac-side__cats a:hover { color: var(--ac-blue); }
.wc-block-product-categories-list-item-count { color: var(--ac-graphite); font-size: 12px; margin-left: .35rem; }
.wc-block-product-categories-list-item-count::before, .wc-block-product-categories-list-item-count::after { content: ""; }
.wc-block-product-categories-list-item-count::before { content: "("; }
.wc-block-product-categories-list-item-count::after { content: ")"; }
.woocommerce-products-header .page-title { font-size: var(--wp--preset--font-size--xxl); font-weight: 600; letter-spacing: -0.02em; margin: 0 0 .5rem; }
.woocommerce .term-description { color: var(--ac-graphite); max-width: 40rem; }
.woocommerce-result-count { font-size: 13px; color: var(--ac-graphite); margin: 1.5rem 0 1.5rem; }
.woocommerce-ordering { margin: 1.25rem 0 1.5rem; }
.woocommerce-ordering select { font-family: inherit; font-size: 13px; border: 1px solid var(--ac-line); border-radius: 4px; padding: .5rem 2rem .5rem .75rem; background: #fff; }
.woocommerce nav.woocommerce-pagination { margin-top: 3rem; }
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span { padding: .6rem .9rem; font-size: 14px; border-radius: 4px; }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--ac-black); color: #fff; }
.woocommerce .woocommerce-breadcrumb { font-size: 12px; color: var(--ac-graphite); margin-bottom: 1.5rem; }
.woocommerce .woocommerce-breadcrumb a { color: var(--ac-graphite); }

/* ---------- Single product ---------- */
/* clip, not hidden: the floating image may lift past the top edge, but must never scroll the page sideways. */
.ac-product { padding-top: 3rem; padding-bottom: 5rem; overflow-x: clip; }
.woocommerce div.product { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: auto !important; float: none !important; margin: 0 !important; }
.woocommerce div.product .woocommerce-tabs, .woocommerce div.product section.related, .woocommerce div.product section.upsells, .woocommerce div.product .woocommerce-breadcrumb { grid-column: 1 / -1; }
/* Photographs keep a soft card; cut-outs lose it entirely and float free. */
.woocommerce div.product div.images img { background: none; border-radius: var(--ac-radius-lg); }
.woocommerce div.product div.images .woocommerce-product-gallery__image { border-radius: var(--ac-radius-lg); overflow: hidden; }
.ac-float.woocommerce-product-gallery img { border-radius: 0 !important; }
.ac-float .woocommerce-product-gallery__image { border-radius: 0 !important; overflow: visible !important; }

/* Floating vial. .ac-float is added by theme.js only when the image is a true cut-out. */
.ac-float { position: relative; perspective: 1100px; }
.ac-float .woocommerce-product-gallery__wrapper { position: relative; z-index: 1; }
.ac-float .woocommerce-product-gallery__image { transform-style: preserve-3d; cursor: pointer; transition: transform .55s cubic-bezier(.22,1,.36,1); }
.ac-float .woocommerce-product-gallery__image a { display: block; }
.ac-float img.wp-post-image { will-change: transform; filter: drop-shadow(0 20px 26px rgba(17,17,17,.14)); }
/* Contact shadow on the floor, breathing with the bob. */
.ac-float::after { content: ""; position: absolute; left: 50%; bottom: 3%; width: 44%; height: 26px; z-index: 0; pointer-events: none; background: radial-gradient(ellipse at center, rgba(17,17,17,.22) 0%, rgba(17,17,17,0) 70%); }

@media (prefers-reduced-motion: no-preference) {
  .ac-float img.wp-post-image { animation: ac-float-bob 7s ease-in-out infinite; }
  .ac-float::after { animation: ac-float-shadow 7s ease-in-out infinite; }
  .ac-float.is-tap img.wp-post-image { animation: ac-float-tap 1.5s cubic-bezier(.34,1.2,.5,1) 1; }
}
@keyframes ac-float-bob {
  0%, 100% { transform: translate3d(0,-10px,0) rotate(-1.1deg); }
  50%      { transform: translate3d(0, 10px,0) rotate(1.1deg); }
}
@keyframes ac-float-shadow {
  0%, 100% { opacity: .5;  transform: translateX(-50%) scale(.88); }
  50%      { opacity: .85; transform: translateX(-50%) scale(1.06); }
}
/* Tap: lift, swing, settle. Ends exactly where the bob starts so the loop rejoins cleanly. */
@keyframes ac-float-tap {
  0%   { transform: translate3d(0,  0px,0) rotateY(0deg)   rotate(0deg)    scale(1); }
  18%  { transform: translate3d(0,-30px,0) rotateY(17deg)  rotate(3.4deg)  scale(1.06); }
  38%  { transform: translate3d(0, -6px,0) rotateY(-13deg) rotate(-2.6deg) scale(1.03); }
  58%  { transform: translate3d(0,-18px,0) rotateY(9deg)   rotate(1.9deg)  scale(1.04); }
  76%  { transform: translate3d(0, -5px,0) rotateY(-5deg)  rotate(-1deg)   scale(1.01); }
  90%  { transform: translate3d(0,-13px,0) rotateY(2deg)   rotate(.3deg)   scale(1); }
  100% { transform: translate3d(0,-10px,0) rotateY(0deg)   rotate(-1.1deg) scale(1); }
}
.woocommerce div.product div.images .flex-control-thumbs { display: flex; gap: .75rem; margin-top: .75rem; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 72px; margin: 0; }
.woocommerce div.product div.images .flex-control-thumbs img { border-radius: var(--ac-radius); border: 1px solid transparent; }
.woocommerce div.product div.images .flex-control-thumbs img.flex-active { border-color: var(--ac-black); }
.woocommerce div.product .product_title { font-size: var(--wp--preset--font-size--xxl); font-weight: 600; letter-spacing: -0.02em; margin: 0 0 .5rem; }
.woocommerce div.product p.price, .woocommerce div.product span.price { font-size: 22px; font-weight: 600; color: var(--ac-black); margin: 0 0 .25rem; }
.ac-ruo-inline { font-size: 12px; color: var(--ac-graphite); margin: 0 0 1.25rem; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--ac-graphite); font-size: 15px; margin-bottom: 1.5rem; }
.woocommerce div.product .woocommerce-product-rating { margin-bottom: 1rem; }
.woocommerce .star-rating span::before, .woocommerce .star-rating::before { color: var(--ac-black); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin: 0 0 .5rem; }
.woocommerce div.product form.cart table.variations { width: 100%; margin-bottom: .5rem; }
.woocommerce div.product form.cart .variations td, .woocommerce div.product form.cart .variations th { padding: .35rem 0; vertical-align: middle; }
.woocommerce div.product form.cart .variations label { font-size: 13px; font-weight: 500; }
.woocommerce div.product form.cart .variations select { font-family: inherit; font-size: 14px; border: 1px solid var(--ac-line); border-radius: 4px; padding: .6rem 2rem .6rem .75rem; min-width: 12rem; }
.woocommerce div.product form.cart .reset_variations { font-size: 12px; color: var(--ac-graphite); }
.woocommerce div.product form.cart .woocommerce-variation-price { margin-bottom: .75rem; }
/* Quantity is chosen with the Buy 1 / 2 / 3 pills, so the number box is hidden and the button goes full width. */
.woocommerce div.product form.cart .quantity { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.woocommerce div.product form.cart .single_add_to_cart_button { height: 52px; width: 100%; font-size: 15px; justify-content: center; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: flex; width: 100%; }
.woocommerce div.product form.cart .button { height: 46px; padding: 0 1.75rem; }
.woocommerce div.product .product_meta { font-size: 12px; color: var(--ac-graphite); margin-top: 1.25rem; }
.woocommerce div.product .product_meta span { display: block; margin-bottom: .2rem; }
.woocommerce div.product .woocommerce-tabs { margin-top: 3rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: none; }
.ac-accordion { border-top: 1px solid var(--ac-line); }
.ac-accordion__item { border-bottom: 1px solid var(--ac-line); }
.ac-accordion__item summary { list-style: none; cursor: pointer; padding: 1.1rem 0; font-size: 15px; font-weight: 500; display: flex; justify-content: space-between; align-items: center; }
.ac-accordion__item summary::-webkit-details-marker { display: none; }
.ac-accordion__item summary::after { content: "+"; font-size: 20px; font-weight: 300; color: var(--ac-graphite); transition: transform .2s; }
.ac-accordion__item[open] summary::after { transform: rotate(45deg); }
.ac-accordion__item .woocommerce-Tabs-panel { padding: 0 0 1.5rem; font-size: 15px; color: var(--ac-graphite); }
/* WooCommerce's own tab script runs after ours and sets display:none inline on every
 * .wc-tab panel, because we removed the tab list it looks for. Drive visibility from
 * the <details> open state instead; !important is what beats the inline style. */
.ac-accordion__item > .woocommerce-Tabs-panel { display: none !important; }
.ac-accordion__item[open] > .woocommerce-Tabs-panel { display: block !important; }
.ac-accordion__item .woocommerce-Tabs-panel p { margin: 0 0 1rem; line-height: 1.7; }
.ac-accordion__item .woocommerce-Tabs-panel ul { margin: 0 0 1rem; padding-left: 1.1rem; }
.ac-accordion__item .woocommerce-Tabs-panel li { margin-bottom: .4rem; line-height: 1.6; }
.ac-accordion__item .woocommerce-Tabs-panel a { color: var(--ac-black); text-decoration: underline; text-underline-offset: 2px; }
.woocommerce div.product .woocommerce-Tabs-panel h3 { font-size: 16px; color: var(--ac-black); margin: 1.25rem 0 .5rem; }
.woocommerce div.product section.related > h2, .woocommerce div.product section.upsells > h2 { font-size: var(--wp--preset--font-size--xl); font-weight: 600; letter-spacing: -0.02em; margin: 4rem 0 1.5rem; }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { font-size: 14px; border: 0; border-bottom: 1px solid var(--ac-line); padding: .6rem 0; background: none; }

/* ---------- Notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
  border-top: 0; border-left: 3px solid var(--ac-blue); background: var(--ac-grey); color: var(--ac-black); border-radius: 4px; font-size: 14px;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--ac-blue); }
.woocommerce-error { border-left-color: #c62828; }
.woocommerce-error::before { color: #c62828; }

/* ---------- Cart / checkout (blocks) ---------- */
.wc-block-components-product-name { font-weight: 600; }
.wc-block-components-totals-item__value, .wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-weight: 600; }
.wc-block-components-checkout-step__title { letter-spacing: -0.01em; }
.wc-block-components-text-input input, .wc-block-components-select select, .wc-block-components-textarea { border-color: var(--ac-line) !important; border-radius: 4px !important; font-family: inherit; }
.wc-block-cart, .wc-block-checkout { padding-top: 2rem; padding-bottom: 4rem; }
.ac-research-check label { font-size: 13px; }

/* ---------- Posts / research library ---------- */
.ac-library { padding-bottom: 5rem; }
.ac-posts { margin-top: 0; }
.ac-posts .wp-block-post-template { gap: 2.5rem 2rem; }
.ac-post-card__img img { background: var(--ac-grey); border-radius: var(--ac-radius); }
.ac-post-card .wp-block-post-title { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; margin: 1rem 0 .4rem; line-height: 1.3; }
.ac-post-card .wp-block-post-title a { color: var(--ac-black); }
.ac-post-card .wp-block-post-title a:hover { color: var(--ac-blue); }
.ac-post-card .wp-block-read-more { font-size: 13px; font-weight: 500; color: var(--ac-black); }
.ac-post-card .wp-block-read-more:hover { color: var(--ac-blue); }
.ac-article { padding-top: 4rem; padding-bottom: 5rem; }
.ac-article .wp-block-post-title { margin-bottom: .5rem; }
.ac-article__img img { border-radius: var(--ac-radius-lg); margin: 2rem 0; }
.ac-article .wp-block-post-content { font-size: 17px; line-height: 1.7; }
.ac-article .wp-block-post-content h2 { font-size: var(--wp--preset--font-size--xl); margin-top: 2.5rem; }
.wp-block-query-pagination { margin-top: 3rem; font-size: 14px; }
.wp-block-query-pagination-numbers .current { background: var(--ac-black); color: #fff; padding: .35rem .7rem; border-radius: 4px; }

/* ---------- Generic pages ---------- */
.ac-page__head { padding-top: 4rem; padding-bottom: 1rem; }
.ac-page__body { padding-bottom: 5rem; font-size: 17px; line-height: 1.7; }
.ac-page__body h2 { font-size: var(--wp--preset--font-size--xl); margin-top: 2.5rem; }
.ac-page__body h3 { font-size: var(--wp--preset--font-size--lg); margin-top: 2rem; }
.ac-page__body ul, .ac-page__body ol { padding-left: 1.25rem; }
.ac-404 { padding-top: 6rem; padding-bottom: 8rem; }

/* ---------- Batch lookup ---------- */
.ac-batch { margin-top: 1.5rem; max-width: 34rem; }
.ac-batch__form { display: flex; gap: .5rem; }
.ac-batch__form input { flex: 1; font-family: inherit; font-size: 15px; padding: .85rem 1rem; border: 1px solid var(--ac-line); border-radius: 4px; text-transform: uppercase; }
.ac-batch__form input::placeholder { text-transform: none; color: #9A9A97; }
.ac-batch__form input:focus { outline: 2px solid var(--ac-blue); outline-offset: 1px; border-color: var(--ac-blue); }
.ac-batch__hint { font-size: 12px; color: var(--ac-graphite); margin: .6rem 0 0; }
.ac-batch__result { margin-top: 2rem; border: 1px solid var(--ac-line); border-radius: var(--ac-radius-lg); padding: 1.75rem; }
.ac-batch__result--empty { background: var(--ac-grey); border-color: transparent; }
.ac-batch__result--empty p { margin: .4rem 0 0; font-size: 14px; color: var(--ac-graphite); }
.ac-batch__head h3 { margin: .25rem 0 1.25rem; font-size: var(--wp--preset--font-size--xl); font-family: var(--wp--preset--font-family--mono); letter-spacing: 0; }
.ac-batch__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.5rem; margin: 0 0 1.5rem; }
.ac-batch__grid dt { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ac-graphite); margin-bottom: .15rem; }
.ac-batch__grid dd { margin: 0; font-size: 15px; font-weight: 500; }

/* ---------- FAQ (details) ---------- */
.ac-faq .wp-block-details { border-top: 1px solid var(--ac-line); margin: 0; }
.ac-faq .wp-block-details:last-child { border-bottom: 1px solid var(--ac-line); }
.ac-faq .wp-block-details summary { list-style: none; cursor: pointer; padding: 1.15rem 0; font-size: 15px; font-weight: 500; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.ac-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.ac-faq .wp-block-details summary::after { content: "+"; font-size: 20px; font-weight: 300; color: var(--ac-graphite); flex: 0 0 auto; transition: transform .2s; }
.ac-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.ac-faq .wp-block-details p { margin: 0 0 1.25rem; font-size: 15px; color: var(--ac-graphite); max-width: 40rem; }

/* ---------- Contact page ---------- */
.ac-contact { padding-top: 4rem; padding-bottom: 5rem; }
.ac-contact__cols { gap: 4rem; }
.ac-contact__details { margin-top: 2rem; }
.ac-contact__email { display: inline-block; font-size: 22px; font-weight: 600; letter-spacing: -0.01em; color: var(--ac-black); border-bottom: 2px solid var(--ac-blue); padding-bottom: .15rem; margin-bottom: 1.75rem; }
.ac-contact__email:hover { color: var(--ac-blue); }
.ac-contact__meta { margin: 0; display: grid; gap: .9rem; border-top: 1px solid var(--ac-line); padding-top: 1.5rem; }
.ac-contact__meta div { display: grid; grid-template-columns: 110px 1fr; gap: 1rem; font-size: 14px; }
.ac-contact__meta dt { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ac-graphite); padding-top: .15rem; }
.ac-contact__meta dd { margin: 0; }
.ac-contact__card { background: var(--ac-grey); border-radius: var(--ac-radius-lg); padding: 2rem; }

/* ---------- Contact form (Jetpack) ---------- */
.ac-contact-form .wp-block-jetpack-contact-form { display: grid; gap: .9rem; }
.ac-contact-form .wp-block-jetpack-contact-form > * { margin: 0; }
.ac-contact-form .contact-form-submission { padding: 1.5rem; font-size: 15px; }
.ac-contact-form input:not([type=checkbox]), .ac-contact-form textarea { border-radius: 6px !important; border-color: var(--ac-line) !important; background: #fff !important; }
.ac-contact-form .jetpack-field-label__input, .ac-contact-form .grunion-field-label { font-size: 12px !important; font-weight: 500 !important; text-transform: uppercase; letter-spacing: .06em; color: var(--ac-graphite) !important; }
.ac-contact-form .grunion-field-label .grunion-label-required, .ac-contact-form .jetpack-field-label__required { display: none !important; }
.ac-contact-form .wp-block-jetpack-button { justify-content: flex-start !important; display: flex; margin-top: .25rem; }
.ac-contact-form .wp-block-jetpack-button button { width: 100%; height: 50px; }
@media (max-width: 781px) { .ac-contact__cols { gap: 2rem; } .ac-contact__card { padding: 1.25rem; } .ac-contact__meta div { grid-template-columns: 90px 1fr; } }
.ac-contact-form .grunion-field-label, .ac-contact-form .jetpack-field-label { font-size: 12px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--ac-graphite); margin-bottom: .35rem; }
.ac-contact-form input[type="text"], .ac-contact-form input[type="email"], .ac-contact-form textarea {
  width: 100%; font-family: inherit; font-size: 15px; padding: .85rem 1rem; border: 1px solid var(--ac-line); border-radius: 4px; background: #fff;
}
.ac-contact-form input:focus, .ac-contact-form textarea:focus { outline: 2px solid var(--ac-blue); outline-offset: 1px; border-color: var(--ac-blue); }
.ac-contact-form textarea { min-height: 160px; }
.ac-contact-form .wp-block-jetpack-button { justify-content: flex-end; display: flex; }

/* ---------- Footer ---------- */
.ac-footer { border-top: 1px solid var(--ac-line); padding-top: 4rem; padding-bottom: 2rem; margin-top: 2rem; }
.ac-footer__cols { gap: 3rem; margin-bottom: 3rem; }
.ac-footer__tag { font-size: 13px; color: var(--ac-graphite); margin: .5rem 0 1rem; letter-spacing: .04em; }
.ac-footer__h { font-size: 11px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--ac-graphite); margin: 0 0 1rem; }
.ac-footer__list { list-style: none; margin: 0; padding: 0; }
.ac-footer__list li { margin: 0 0 .55rem; font-size: 14px; }
.ac-footer__list a { color: var(--ac-black); }
.ac-footer__list a:hover { color: var(--ac-blue); }
.ac-footer .wp-block-separator { margin: 0 0 1.5rem; border-color: var(--ac-line); opacity: 1; }
.ac-footer__bottom p { margin: 0; }

/* ---------- Stats marquee ---------- */
.ac-marquee { overflow: hidden; border-top: 1px solid var(--ac-line); border-bottom: 1px solid var(--ac-line); background: var(--ac-white); padding: 0 !important; }
.ac-marquee__track { display: flex; width: max-content; align-items: center; gap: 2rem; padding: .9rem 0; animation: ac-marquee 38s linear infinite; white-space: nowrap; }
.ac-marquee:hover .ac-marquee__track { animation-play-state: paused; }
.ac-marquee__item { font-size: 13px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
.ac-marquee__dot { color: var(--ac-blue); font-size: 10px; }
@keyframes ac-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ac-marquee__track { animation: none; } }

/* ---------- Size pills (replaces the variation dropdown) ---------- */
.woocommerce div.product form.cart .variations select { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.woocommerce div.product form.cart .variations td.value { position: relative; }
.woocommerce div.product form.cart .variations th.label { display: none; }
.woocommerce div.product form.cart .variations td.value::before { content: "Vial size"; display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ac-graphite); margin-bottom: .5rem; }
.ac-pills { display: flex; flex-wrap: wrap; gap: .5rem; }
.ac-pill { font-family: inherit; font-size: 14px; font-weight: 500; padding: .65rem 1rem; border: 1px solid var(--ac-line); border-radius: 6px; background: #fff; color: var(--ac-black); cursor: pointer; transition: border-color .15s, background .15s; }
.ac-pill:hover { border-color: var(--ac-black); }
.ac-pill.is-active { border-color: var(--ac-black); background: var(--ac-black); color: #fff; }
.woocommerce div.product form.cart .reset_variations { display: none !important; }
.woocommerce div.product form.cart .woocommerce-variation-price .price { font-size: 22px; }
.woocommerce div.product form.cart .woocommerce-variation-availability { display: none; }

/* ---------- Bundle pills ---------- */
.ac-bundle { width: 100%; margin: .25rem 0 1rem; }
.ac-bundle__label { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ac-graphite); margin-bottom: .5rem; }
.ac-pills--bundle { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; }
.ac-pills--bundle .ac-pill { position: relative; text-align: left; padding: .8rem .9rem; display: grid; gap: .1rem; }
.ac-pills--bundle .ac-pill strong { font-size: 14px; }
.ac-pills--bundle .ac-pill span { font-size: 12px; opacity: .7; }
.ac-pills--bundle .ac-pill em { position: absolute; top: -9px; right: 8px; font-style: normal; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; background: var(--ac-blue); color: #fff; padding: .15rem .45rem; border-radius: 999px; }
.ac-bundle__note { display: block; margin-top: .5rem; font-size: 12px; color: var(--ac-graphite); }
.ac-bundle-tag { display: inline-block; margin-left: .5rem; font-size: 11px; font-weight: 600; color: var(--ac-blue); background: rgba(70,103,232,.1); padding: .15rem .5rem; border-radius: 999px; }

/* ---------- Shipping protection (cart) ---------- */
.ac-protect { max-width: 1200px; margin: 1.5rem auto 0; border: 1px solid var(--ac-line); border-radius: var(--ac-radius); padding: 1rem 1.25rem; background: var(--ac-grey); }
.ac-protect.is-on { border-color: var(--ac-blue); }
.ac-protect.is-busy { opacity: .6; pointer-events: none; }
.ac-protect__label { display: flex; align-items: center; gap: .9rem; cursor: pointer; }
.ac-protect__check { position: absolute; opacity: 0; }
.ac-protect__box { width: 20px; height: 20px; border: 1.5px solid var(--ac-black); border-radius: 4px; flex: 0 0 20px; position: relative; background: #fff; }
.ac-protect__check:checked + .ac-protect__box { background: var(--ac-black); }
.ac-protect__check:checked + .ac-protect__box::after { content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.ac-protect__text { display: grid; font-size: 14px; }
.ac-protect__text em { font-style: normal; font-weight: 600; }
.ac-protect__text strong { font-weight: 600; }
.ac-protect__text small { color: var(--ac-graphite); font-size: 12px; }

/* ---------- Scratch card popup ---------- */
.ac-scratch { position: fixed; inset: 0; z-index: 1001; background: rgba(17,17,17,.55); backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.ac-scratch[hidden] { display: none; }
.ac-scratch__panel { position: relative; background: #fff; border-radius: var(--ac-radius-lg); max-width: 560px; width: 100%; padding: 2.25rem; box-shadow: 0 40px 80px rgba(0,0,0,.25); }
.ac-scratch__close { position: absolute; top: .75rem; right: .9rem; background: none; border: 0; font-size: 26px; line-height: 1; color: var(--ac-graphite); cursor: pointer; padding: .25rem .5rem; }
.ac-scratch__panel h2 { font-size: var(--wp--preset--font-size--xl); margin: 1rem 0 1.25rem; }
.ac-scratch__card { position: relative; border-radius: 12px; overflow: hidden; aspect-ratio: 520 / 220; background: var(--ac-black); }
.ac-scratch__prize { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; color: #fff; text-align: center; padding: 1rem; }
.ac-scratch__prize-eyebrow { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.ac-scratch__prize-title { font-size: 26px; font-weight: 600; letter-spacing: -0.02em; }
.ac-scratch__canvas { position: absolute; inset: 0; width: 100%; height: 100%; cursor: crosshair; touch-action: none; transition: opacity .5s; }
.ac-scratch__canvas.is-revealed { opacity: 0; pointer-events: none; }
.ac-scratch__form { margin-top: 1.25rem; }
.ac-scratch__form p { margin: 0 0 .6rem; font-size: 14px; }
.ac-scratch__row { display: flex; gap: .5rem; }
.ac-scratch__row input { flex: 1; font-family: inherit; font-size: 15px; padding: .8rem 1rem; border: 1px solid var(--ac-line); border-radius: 4px; }
.ac-scratch__fine { display: block; margin-top: .5rem; font-size: 11px; color: var(--ac-graphite); }
/* Honeypot. Off-screen rather than display:none, which some form-fillers skip. */
.ac-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ac-scratch__error { margin-top: .5rem; font-size: 13px; color: #c62828; }
.ac-scratch__done { margin-top: 1.25rem; text-align: center; }
.ac-scratch__done p { margin: 0 0 .4rem; font-size: 13px; color: var(--ac-graphite); }
.ac-scratch__code { font-family: var(--wp--preset--font-family--mono); font-size: 28px; font-weight: 600; letter-spacing: .1em; border: 1px dashed var(--ac-black); border-radius: 8px; padding: .6rem 1rem; margin: 0 auto 1rem; display: inline-block; }
@media (max-width: 480px) { .ac-scratch__row { flex-direction: column; } .ac-pills--bundle { grid-template-columns: 1fr; } }

/* ---------- Age gate ---------- */
.ac-gate-open { overflow: hidden; }
.ac-age-gate { position: fixed; inset: 0; z-index: 1000; background: rgba(17,17,17,.55); backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.ac-age-gate[hidden] { display: none; }
.ac-age-gate__panel { background: #fff; border-radius: var(--ac-radius-lg); max-width: 480px; width: 100%; padding: 2.5rem; box-shadow: 0 40px 80px rgba(0,0,0,.25); }
.ac-age-gate__panel h2 { font-size: var(--wp--preset--font-size--xl); margin: 1.5rem 0 .75rem; }
.ac-age-gate__panel p { font-size: 14px; color: var(--ac-graphite); margin: 0 0 .75rem; }
.ac-age-gate__actions { display: flex; gap: .75rem; margin-top: 1.5rem; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ac-trust { grid-template-columns: repeat(2, 1fr); }
  .ac-posts .wp-block-post-template { grid-template-columns: repeat(2, 1fr) !important; }
  .ac-features--4col { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 781px) {
  .ac-header__inner { min-height: 64px; }
  .ac-hero, .ac-hero--page { padding-top: 3rem; padding-bottom: 3rem; }
  .ac-hero__cols { gap: 2rem; }
  .ac-section { padding-top: 3.5rem; padding-bottom: 3.5rem; }
  .ac-section--grey, .ac-cta { padding: 2.5rem 1.5rem; }
  .ac-section__head { flex-direction: column; align-items: flex-start !important; gap: .5rem; }
  .woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1rem; }
  .woocommerce div.product { grid-template-columns: 1fr; gap: 2rem; }
  .ac-shop__cols { flex-direction: column; }
  .ac-shop__side { flex-basis: auto !important; }
  .ac-side__cats ul { display: flex; flex-wrap: wrap; gap: .5rem; }
  .ac-side__cats li { margin: 0; border: 1px solid var(--ac-line); border-radius: 999px; padding: .35rem .8rem; font-size: 13px; }
  .ac-footer__cols { gap: 1.5rem; }
  .ac-batch__grid { grid-template-columns: 1fr; }
  .ac-features--3col, .ac-features--2col { grid-template-columns: 1fr !important; }
  .ac-cta .wp-block-buttons { justify-content: flex-start !important; }
}
@media (max-width: 480px) {
  .ac-trust { grid-template-columns: 1fr; }
  .ac-batch__form { flex-direction: column; }
  .ac-age-gate__actions { flex-direction: column; }
}

/* ---------- Checkout / cart social proof ---------- */
.ac-checkout-trust { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .5rem 1.75rem; max-width: 1200px; margin: 0 auto 1.5rem; padding: .85rem 1rem; border: 1px solid var(--ac-line); border-radius: var(--ac-radius); background: var(--ac-grey); font-size: 13px; color: var(--ac-graphite); text-align: center; }
.ac-checkout-trust strong { color: var(--ac-black); font-weight: 600; }
.ac-checkout-trust__stars { color: var(--ac-black); letter-spacing: .1em; }
@media (max-width: 600px) { .ac-checkout-trust { gap: .35rem .9rem; font-size: 12px; padding: .7rem .75rem; } }

/* No lightbox/zoom on the product gallery. */
.woocommerce div.product .woocommerce-product-gallery__trigger { display: none !important; }
.woocommerce div.product .woocommerce-product-gallery img.zoomImg { display: none !important; }

/* ---------- Half-price reconstitution water offer ---------- */
.ac-recon { max-width: 1200px; margin: 0 auto 1.25rem; border: 1px solid var(--ac-black); border-radius: var(--ac-radius); overflow: hidden; background: #fff; }
.ac-recon__head { padding: 1rem 1.25rem .85rem; display: grid; gap: .2rem; }
.ac-recon__flag { justify-self: start; font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; background: var(--ac-blue); color: #fff; padding: .2rem .5rem; border-radius: 999px; margin-bottom: .35rem; }
.ac-recon__head strong { font-size: 15px; font-weight: 600; }
.ac-recon__sub { font-size: 13px; color: var(--ac-graphite); }
.ac-recon__opts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--ac-line); border-top: 1px solid var(--ac-line); }
.ac-recon__opt { display: flex; align-items: center; gap: .75rem; padding: .9rem 1.25rem; background: #fff; color: var(--ac-black); font-size: 14px; transition: background .15s; }
.ac-recon__opt:hover { background: var(--ac-grey); color: var(--ac-black); }
.ac-recon__size { font-weight: 600; }
.ac-recon__price { color: var(--ac-graphite); }
.ac-recon__price s { opacity: .65; margin-right: .25rem; }
.ac-recon__price strong { color: var(--ac-black); }
.ac-recon__add { margin-left: auto; font-weight: 500; color: var(--ac-blue); white-space: nowrap; }
@media (max-width: 600px) { .ac-recon__opts { grid-template-columns: 1fr; } }

/* ---------- Recent-order social proof toaster ---------- */
.ac-proof { position: fixed; left: 1rem; bottom: 1rem; z-index: 900; max-width: 340px; opacity: 0; transform: translateY(12px); transition: opacity .35s, transform .35s; pointer-events: none; }
.ac-proof.is-in { opacity: 1; transform: none; pointer-events: auto; }
.ac-proof[hidden] { display: none; }
.ac-proof__card { position: relative; display: flex; gap: .75rem; align-items: center; background: #fff; border: 1px solid var(--ac-line); border-radius: var(--ac-radius); padding: .7rem .85rem; box-shadow: 0 14px 34px rgba(17,17,17,.12); color: var(--ac-black); }
.ac-proof__card:hover { color: var(--ac-black); border-color: var(--ac-black); }
.ac-proof__img { flex: 0 0 46px; width: 46px; height: 46px; border-radius: 6px; overflow: hidden; background: var(--ac-grey); }
.ac-proof__img img { width: 100%; height: 100%; object-fit: contain; padding: 4px; box-sizing: border-box; }
.ac-proof__body { display: grid; gap: .1rem; min-width: 0; }
.ac-proof__who { font-size: 12px; color: var(--ac-graphite); }
.ac-proof__who strong { color: var(--ac-black); font-weight: 600; }
.ac-proof__what { font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ac-proof__meta { font-size: 11px; color: var(--ac-graphite); display: flex; align-items: center; gap: .4rem; }
.ac-proof__verified { color: var(--ac-blue); font-weight: 600; }
.ac-proof__close { position: absolute; top: 2px; right: 5px; background: none; border: 0; font-size: 16px; line-height: 1; color: #b9b9b6; cursor: pointer; padding: 2px 4px; }
.ac-proof__close:hover { color: var(--ac-black); }
@media (max-width: 600px) { .ac-proof { left: .6rem; right: .6rem; bottom: .6rem; max-width: none; } }

/* ============ Cart & checkout ============ */
.wc-block-cart, .wc-block-checkout { max-width: 1180px; margin-inline: auto; }
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { padding-top: 1rem; padding-bottom: 3rem; }

/* Layout: form left, summary right.
 * WooCommerce sizes these two columns to fill the row exactly, so adding a gap
 * without shrinking them pushes the sidebar onto its own line and the checkout
 * silently collapses to one column on desktop. Size them explicitly instead. */
.wc-block-components-sidebar-layout { gap: 3rem; }
.wc-block-components-sidebar-layout .wc-block-components-sidebar { position: sticky; top: 96px; align-self: flex-start; }
@media (min-width: 1000px) {
  .wc-block-components-sidebar-layout { flex-wrap: nowrap; }
  .wc-block-components-sidebar-layout .wc-block-checkout__main,
  .wc-block-components-sidebar-layout .wc-block-cart__main { flex: 1 1 auto; min-width: 0; width: auto; padding-right: 0; }
  .wc-block-components-sidebar-layout .wc-block-components-sidebar { flex: 0 0 380px; max-width: 380px; width: 380px; }
}

/* --- Steps --- */
.wc-block-components-checkout-step { border: 0; padding-bottom: 1.75rem; }
.wc-block-components-checkout-step__heading { margin: 0 0 1rem; }
.wc-block-components-title.wc-block-components-checkout-step__title,
.wc-block-components-checkout-step__title { font-size: 15px !important; font-weight: 600 !important; letter-spacing: .01em; text-transform: none; }
.wc-block-components-checkout-step__description { font-size: 13px; color: var(--ac-graphite); margin-top: .15rem; }
.wc-block-components-checkout-step__container::after { display: none; }

/* --- Inputs --- */
.wc-block-components-text-input input.input-text,
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-textarea,
.wc-block-components-combobox-control input.components-combobox-control__input,
.wc-blocks-components-select__select {
  height: 52px !important; border: 1px solid var(--ac-line) !important; border-radius: 8px !important;
  background: #fff !important; font-family: inherit !important; font-size: 15px !important; color: var(--ac-black) !important;
  padding: 1.1rem .9rem .35rem !important; box-shadow: none !important; transition: border-color .15s, box-shadow .15s;
}
.wc-block-components-textarea { height: auto !important; padding: 1rem .9rem !important; }
.wc-block-components-text-input input:focus,
.wc-block-components-combobox-control input:focus,
.wc-blocks-components-select__select:focus {
  border-color: var(--ac-black) !important; outline: none !important; box-shadow: 0 0 0 3px rgba(70,103,232,.15) !important;
}
.wc-block-components-text-input label, .wc-blocks-components-select__label {
  font-size: 13px !important; color: #8d8d8a !important; left: .95rem !important; font-family: inherit !important;
}
.wc-block-components-text-input.is-active label { font-size: 11px !important; letter-spacing: .04em; color: var(--ac-graphite) !important; }
.wc-blocks-components-select { border: 0; }
.wc-blocks-components-select__container { border: 0 !important; background: transparent !important; }
.wc-block-components-address-form { display: grid; gap: .75rem; }
.wc-block-components-address-form .wc-block-components-text-input { margin-top: 0 !important; }

/* --- Radio options (shipping + payment) --- */
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option {
  border: 1px solid var(--ac-line) !important; border-radius: 10px !important; margin-bottom: .6rem; padding: 0 !important; background: #fff;
  transition: border-color .15s, box-shadow .15s;
}
.wc-block-components-radio-control-accordion-option:has(input:checked),
.wc-block-components-radio-control__option:has(input:checked) { border-color: var(--ac-black) !important; box-shadow: 0 0 0 1px var(--ac-black); }
.wc-block-components-radio-control__option { padding: 1rem 1.1rem 1rem 2.9rem !important; }
.wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option { border: 0 !important; box-shadow: none; margin: 0; }
.wc-block-components-radio-control__label { font-size: 15px; font-weight: 500; }
.wc-block-components-radio-control__secondary-label, .wc-block-components-radio-control__description {
  font-size: 13px; color: var(--ac-graphite); font-weight: 400;
}
.wc-block-components-radio-control-accordion-content { padding: 0 1.1rem 1rem 2.9rem; font-size: 13px; color: var(--ac-graphite); }
.wc-block-components-radio-control__input { accent-color: var(--ac-black); }

/* --- Checkboxes --- */
.wc-block-components-checkbox { margin: .75rem 0; }
.wc-block-components-checkbox__label { font-size: 13px; line-height: 1.5; color: var(--ac-graphite); }
.wc-block-components-checkbox__input[type=checkbox] { accent-color: var(--ac-black); width: 18px; height: 18px; }

/* --- Order summary card --- */
.wc-block-components-sidebar .wc-block-components-panel,
.wc-block-checkout__sidebar > div, .wc-block-cart__sidebar > div { border-radius: 14px; }
.wc-block-checkout__sidebar .wc-block-components-order-summary,
.wc-block-cart__sidebar .wc-block-cart__totals-title { border: 0; }
.wc-block-checkout__sidebar, .wc-block-cart__sidebar {
  background: #fff; border: 1px solid var(--ac-line); border-radius: 14px; padding: 1.5rem 1.35rem;
}
.wc-block-components-order-summary__button { padding: 0 0 .75rem; }
.wc-block-components-order-summary__button-text { font-size: 15px; font-weight: 600; }
.wc-block-components-order-summary-item { padding: .9rem 0; border-bottom: 1px solid var(--ac-line); }
.wc-block-components-order-summary-item:last-child { border-bottom: 0; }
.wc-block-components-order-summary-item__image img { border-radius: 8px; background: var(--ac-grey); }
.wc-block-components-order-summary-item__quantity { background: var(--ac-black) !important; border-color: var(--ac-black) !important; color: #fff !important; }
.wc-block-components-product-name { font-weight: 600; font-size: 14px; letter-spacing: -0.01em; }
.wc-block-components-product-metadata { font-size: 12px; color: var(--ac-graphite); }
.wc-block-components-totals-wrapper { border-color: var(--ac-line) !important; padding: .9rem 0; }
.wc-block-components-totals-item { font-size: 14px; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 19px; font-weight: 600; }
.wc-block-components-totals-coupon__form .wc-block-components-text-input input { height: 48px !important; }
.wc-block-components-panel__button { font-size: 14px; font-weight: 500; padding: .75rem 0; }
.wc-block-components-sale-badge { background: var(--ac-black); color: #fff; border-radius: 4px; font-size: 11px; font-weight: 600; padding: .15rem .45rem; }

/* --- Buttons --- */
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button {
  height: 56px !important; width: 100%; font-size: 15px !important; font-weight: 600 !important;
  border-radius: 8px !important; background: var(--ac-black) !important; color: #fff !important; border: 0 !important;
}
.wc-block-cart__submit-button:hover, .wc-block-components-checkout-place-order-button:hover { background: var(--ac-blue) !important; }

/* --- Cart table --- */
.wc-block-cart-items__header { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--ac-graphite); border-bottom: 1px solid var(--ac-line); }
.wc-block-cart-items__row { border-bottom: 1px solid var(--ac-line); }
.wc-block-cart-item__image img { border-radius: 10px; background: var(--ac-grey); }
.wc-block-cart-item__wrap .wc-block-components-product-name { font-size: 15px; }
.wc-block-components-quantity-selector { border-radius: 8px; border-color: var(--ac-line); }
.wc-block-components-quantity-selector__button { color: var(--ac-black); }

/* --- Terms + notices --- */
.wc-block-checkout__terms, .woocommerce-terms-and-conditions-wrapper { font-size: 12px; color: var(--ac-graphite); }
.wc-block-components-notice-banner { border-radius: 10px; }

@media (max-width: 781px) {
  .wc-block-components-sidebar-layout { gap: 1.5rem; }
  .wc-block-components-sidebar-layout .wc-block-components-sidebar { position: static; }
  .wc-block-checkout__sidebar, .wc-block-cart__sidebar { padding: 1.1rem 1rem; }
  .ac-recon__opt { padding: .8rem 1rem; }
}

/* Category archive intro + breadcrumbs */
.ac-cat-intro { max-width: 46rem; margin: 0 0 1.5rem; }
.ac-cat-intro p { color: var(--ac-graphite); font-size: 15px; margin: 0; }
.ac-crumbs { font-size: 12px; color: var(--ac-graphite); margin-bottom: 1.25rem; }
.ac-crumbs a { color: var(--ac-graphite); }
.ac-crumbs a:hover { color: var(--ac-blue); }
.ac-crumb-sep { margin: 0 .4rem; opacity: .5; }
.woocommerce-products-header { margin-bottom: .5rem; }

/* ===== Audit fixes, 5 Sep 2026 ===== */

/* WordPress adds a 24px block gap above <main>; it stacks with our section padding
   and left ~80px of dead space above the fold on phones. */
.ac-main { margin-top: 0 !important; }

/* Nested product categories rendered as pills looked like a broken box-in-a-box.
   Flatten the hierarchy so every category is a sibling pill. */
@media (max-width: 781px) {
  .ac-side__cats ul ul { display: contents; }
  .ac-side__cats li { display: inline-flex; }
}
/* On desktop keep the hierarchy but indent it properly instead of nesting borders. */
@media (min-width: 782px) {
  .ac-side__cats ul ul { margin: .4rem 0 .4rem .9rem; padding-left: .9rem; border-left: 1px solid var(--ac-line); }
}

/* Shop landing tiles were a fixed 260px tall, which left a big empty band on phones. */
@media (max-width: 781px) {
  .ac-tile { min-height: 0; padding: 1.5rem 1.25rem; }
  .ac-tile__cta { padding-top: 1rem; }
  .ac-tiles { margin-bottom: 2.5rem; }
}

/* Tighter top spacing on inner pages for phones. */
@media (max-width: 781px) {
  .ac-shop { padding-top: 1.5rem; padding-bottom: 3rem; }
  .ac-product { padding-top: 1rem; }
  .ac-page__head { padding-top: 2rem; }
  .ac-contact { padding-top: 2rem; padding-bottom: 3rem; }
  .ac-shop__intro { padding-top: 0; }
  .ac-shop__intro h1 { font-size: 2.4rem; }
  .woocommerce-products-header .page-title { font-size: 2.4rem; }
}

/* Result count and sort control sat awkwardly stacked. */
.woocommerce-result-count { margin: 1rem 0 .5rem; }
.woocommerce-ordering { margin: 0 0 1.5rem; }
@media (min-width: 782px) {
  .ac-shop__content .woocommerce-result-count { float: left; }
  .ac-shop__content .woocommerce-ordering { float: right; }
  .ac-shop__content ul.products { clear: both; }
}

/* The closed mini-cart drawer reports as overflowing; keep it fully off-canvas. */
.wc-block-mini-cart__drawer:not(.is-open) { overflow: hidden; }

/* Category archive title spacing */
.woocommerce-products-header { margin-bottom: .75rem; }
.ac-cat-intro { margin-bottom: 1rem; }

/* ===== Category pills =====
   The category list is rendered flat (isHierarchical:false) so every term is a sibling
   and each one can be its own chip. */
@media (max-width: 781px) {
  .ac-side__cats ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
  .ac-side__cats li {
    display: inline-flex; align-items: baseline; gap: .3rem; white-space: nowrap;
    border: 1px solid var(--ac-line); border-radius: 999px; padding: .4rem .85rem;
    font-size: 13px; line-height: 1.4; margin: 0;
  }
  .ac-side__cats li:hover { border-color: var(--ac-black); }
  .ac-side__cats li a { color: var(--ac-black); }
  .ac-side__h { margin-bottom: .75rem; }
  .ac-shop__side { margin-bottom: .5rem; }
}

/* ===== Fix pass 2 ===== */

/* Radio input sits absolutely inside the option; keep it aligned with the padding. */
.wc-block-components-radio-control__input { left: 1.1rem !important; top: 1.15rem !important; }
.wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option { padding-left: 2.9rem !important; }

/* The sidebar already has a border; stop the inner summary drawing a second box. */
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block,
.wc-block-checkout__sidebar .wc-block-components-panel,
.wc-block-cart__sidebar .wc-block-components-panel { border: 0 !important; background: transparent !important; padding-left: 0; padding-right: 0; }

/* ---- Category / shop sidebar on desktop ---- */
@media (min-width: 782px) {
  .ac-shop__side { padding-right: 1rem; }
  .ac-side__h { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--ac-graphite); margin: 0 0 1rem; padding-bottom: .75rem; border-bottom: 1px solid var(--ac-line); }
  .ac-side__cats ul { list-style: none; margin: 0; padding: 0; }
  .ac-side__cats li { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; margin: 0; padding: .5rem 0; font-size: 14px; border-bottom: 1px solid transparent; }
  .ac-side__cats li:hover { border-bottom-color: var(--ac-line); }
  .ac-side__cats li a { color: var(--ac-black); flex: 1; }
  .ac-side__cats li a:hover { color: var(--ac-blue); }
  .ac-side__cats .count,
  .ac-side__cats .wc-block-product-categories-list-item-count { font-size: 12px; color: #9a9a97; }
  .ac-side__cats li.current-cat > a,
  .ac-side__cats li.wc-block-product-categories-list-item--current > a { font-weight: 600; }
}

/* ---- Result count + sort on one clean row ---- */
.ac-shop__content .woocommerce-notices-wrapper { margin: 0; }
@media (min-width: 782px) {
  .ac-shop__content .woocommerce-result-count,
  .ac-shop__content .woocommerce-ordering { float: none; }
  .ac-shop__content .woocommerce-result-count {
    display: inline-block; margin: 0; padding: 1rem 0; font-size: 13px; color: var(--ac-graphite);
  }
  .ac-shop__content .woocommerce-ordering {
    display: inline-block; float: right; margin: 0; padding: .5rem 0;
  }
  .ac-shop__content ul.products { clear: both; margin-top: 1.25rem !important; padding-top: 1.25rem; border-top: 1px solid var(--ac-line); }
}
.woocommerce-ordering select {
  appearance: none; -webkit-appearance: none;
  background: #fff url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right .6rem center / 16px;
  border: 1px solid var(--ac-line); border-radius: 6px; padding: .6rem 2.2rem .6rem .85rem;
  font-family: inherit; font-size: 13px; color: var(--ac-black); cursor: pointer;
}
.woocommerce-ordering select:hover { border-color: var(--ac-black); }

/* Confirmation banner after email verification */
.ac-verified-banner { position: fixed; left: 50%; bottom: 1.25rem; transform: translateX(-50%); z-index: 950; background: var(--ac-black); color: #fff; font-size: 14px; padding: .85rem 1.25rem; border-radius: 8px; box-shadow: 0 18px 40px rgba(17,17,17,.25); max-width: calc(100vw - 2rem); }
.ac-verified-banner code { font-family: var(--wp--preset--font-family--mono); background: rgba(255,255,255,.14); padding: .1rem .4rem; border-radius: 4px; margin: 0 .15rem; }

/* Order received page */
.ac-thanks-trust { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1.75rem; margin: 1.5rem 0; padding: 1rem 1.25rem; border: 1px solid var(--ac-line); border-radius: var(--ac-radius); background: var(--ac-grey); font-size: 13px; color: var(--ac-graphite); }
.ac-thanks-trust span { display: inline-flex; align-items: center; gap: .4rem; }
.ac-thanks-trust strong { color: var(--ac-black); font-weight: 600; }
.ac-thanks-stars { color: var(--ac-black); letter-spacing: .1em; }
.woocommerce-bacs-bank-details { margin: 1.5rem 0; }
.woocommerce-bacs-bank-details h2, .wc-bacs-bank-details-heading { font-size: 1.15rem; font-weight: 600; letter-spacing: -0.01em; margin: 0 0 .75rem; }
ul.wc-bacs-bank-details { list-style: none; margin: 0; padding: 1.1rem 1.25rem; border: 1px solid var(--ac-black); border-radius: var(--ac-radius); background: #fff; display: grid; gap: .5rem; max-width: 30rem; }
ul.wc-bacs-bank-details li { display: flex; justify-content: space-between; gap: 1rem; font-size: 15px; }
ul.wc-bacs-bank-details li strong { font-family: var(--wp--preset--font-family--mono); font-weight: 600; }
@media (max-width: 600px) { .ac-thanks-trust { gap: .4rem 1rem; font-size: 12px; } }

/* Order received: bank account details */
.ac-thanks { padding-top: 2.5rem; padding-bottom: 4rem; }
.ac-bank { border: 1px solid var(--ac-black); border-radius: var(--ac-radius-lg); padding: 1.5rem 1.6rem; margin: 1.75rem 0; background: #fff; }
.ac-bank__title { font-size: 1.15rem; font-weight: 600; letter-spacing: -0.01em; margin: 0 0 .4rem; }
.ac-bank__lead { font-size: 15px; margin: 0 0 1.25rem; color: var(--ac-black); }
.ac-bank__list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .6rem; }
.ac-bank__list li { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding-bottom: .6rem; border-bottom: 1px solid var(--ac-line); font-size: 15px; }
.ac-bank__list li:last-child { border-bottom: 0; padding-bottom: 0; }
.ac-bank__list span { color: var(--ac-graphite); font-size: 13px; }
.ac-bank__list strong { font-family: var(--wp--preset--font-family--mono); font-weight: 600; text-align: right; }
.ac-bank__note { font-size: 12px; color: var(--ac-graphite); margin: 0; }
@media (max-width: 600px) { .ac-bank { padding: 1.15rem 1.1rem; } .ac-bank__list li { flex-direction: column; gap: .15rem; } .ac-bank__list strong { text-align: left; } }

/* Trust / policy pages */
.ac-page-lead { font-size: 1.15rem; line-height: 1.6; color: var(--ac-graphite); margin: 0 0 2.5rem; }
.ac-page__body h2 { font-size: 1.35rem; margin-top: 2.75rem; margin-bottom: .75rem; }
.ac-page__body h2:first-of-type { margin-top: 1.5rem; }
.ac-table table { border-collapse: collapse; width: 100%; }
.ac-table td { border: 0; border-bottom: 1px solid var(--ac-line); padding: .85rem 1rem .85rem 0; font-size: 15px; vertical-align: top; }
.ac-table tr:last-child td { border-bottom: 0; }
.ac-table td:first-child { width: 34%; white-space: nowrap; }
@media (max-width: 600px) { .ac-table td { display: block; padding: .35rem 0; border-bottom: 0; } .ac-table td:first-child { width: auto; padding-top: .85rem; } .ac-table tr { display: block; border-bottom: 1px solid var(--ac-line); padding-bottom: .6rem; } }

/* Community cards on the contact page (Discord, Skool) */
.ac-contact__community { display: flex; align-items: center; gap: .9rem; padding: 1rem 1.1rem; margin-bottom: .75rem; border: 1px solid var(--ac-line); border-radius: var(--ac-radius); color: var(--ac-black); transition: border-color .15s, background .15s; }
.ac-contact__community:hover { color: var(--ac-black); }
.ac-contact__community svg { width: 28px; height: 28px; flex: 0 0 28px; }
.ac-contact__community span { display: grid; gap: .1rem; }
.ac-contact__community strong { font-size: 14px; font-weight: 600; }
.ac-contact__community small { font-size: 12px; color: var(--ac-graphite); }
.ac-contact__community-go { margin-left: auto; color: var(--ac-graphite); }
.ac-contact__community--discord svg { color: #5865F2; }
.ac-contact__community--discord:hover { border-color: #5865F2; background: rgba(88,101,242,.05); }
.ac-contact__community--skool svg { color: #111111; }
.ac-contact__community--skool:hover { border-color: var(--ac-black); background: var(--ac-grey); }
.ac-contact__details { margin-top: 2rem; }

/* Five-up featured row on the home page */
.woocommerce ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1100px) { .woocommerce ul.products.columns-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 781px)  { .woocommerce ul.products.columns-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Buy box stacking — the bundle pills and the add-to-cart button were sharing a
   flex row, so the button floated over the pills. Stack them instead. */
.woocommerce div.product form.cart { display: block; }
.woocommerce div.product form.cart::after { content: ""; display: table; clear: both; }
.woocommerce div.product form.cart .ac-bundle { display: block; width: 100%; margin: 1rem 0 1.25rem; }
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart { display: block; width: 100%; }
.woocommerce div.product form.cart .single_add_to_cart_button { display: flex; width: 100%; margin: 0; }
.woocommerce div.product form.cart .woocommerce-variation { margin-bottom: .5rem; }
.woocommerce div.product .product_meta { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--ac-line); }

/* Force the add-to-cart button to fill the buy box on every product type. */
.woocommerce div.product form.cart button.single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button.button {
  width: 100% !important; display: flex !important; justify-content: center; height: 52px !important; padding: 0 1.5rem !important;
}
.ac-tiles { display: grid; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .ac-tiles { grid-template-columns: 1fr; } }
.ac-tiles .wp-block-column { flex-basis: auto !important; }

/* ---------- Image protection ----------
 * Deterrents only. A browser must download an image to display it, so anyone
 * determined can still get the file from the network tab or the direct URL.
 * This stops the easy routes: right-click save, drag to desktop, long-press.
 */
img { -webkit-user-drag: none; -khtml-user-drag: none; -moz-user-drag: none; user-drag: none; }
.ac-main img, .woocommerce img, .ac-hero img, .ac-hero video {
  -webkit-touch-callout: none; -webkit-user-select: none; user-select: none;
}

/* Long-form category copy under the product grid. */
.ac-cat-copy { clear: both; margin-top: 3.5rem; padding-top: 2.5rem; border-top: 1px solid var(--ac-line); max-width: 46rem; }
.ac-cat-copy h2 { font-size: var(--wp--preset--font-size--lg); font-weight: 600; letter-spacing: -0.01em; margin: 2rem 0 .6rem; }
.ac-cat-copy h2:first-child { margin-top: 0; }
.ac-cat-copy p { font-size: 15px; line-height: 1.7; color: var(--ac-graphite); margin: 0 0 1rem; }
.ac-cat-copy a { color: var(--ac-black); text-decoration: underline; text-underline-offset: 2px; }

/* ---------- Checkout reassurance ---------- */
.ac-bank-steps { list-style: none; margin: 1rem 0 .25rem; padding: 0; display: grid; gap: .85rem; }
.ac-bank-steps li { display: flex; gap: .7rem; align-items: flex-start; }
.ac-bank-steps__n { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: var(--ac-black); color: #fff; font-size: 12px; font-weight: 600; display: flex; align-items: center; justify-content: center; margin-top: 1px; }
.ac-bank-steps__t { font-size: 13px; line-height: 1.55; color: var(--ac-graphite); }
.ac-bank-steps__t strong { display: block; color: var(--ac-black); font-weight: 600; }

.ac-assure { margin: 2.5rem 0 0; padding-top: 2rem; border-top: 1px solid var(--ac-line); }
/* Sitting inside the checkout actions rather than at the foot of the page, both
   blocks are now part of the decision, so they get tighter spacing and the
   trust points get a panel of their own instead of a page-width rule. */
.ac-assure.is-at-payment {
  margin: 0 0 1.25rem; padding: 1.1rem 1.25rem;
  border: 1px solid var(--ac-line); border-radius: var(--ac-radius); background: var(--ac-grey);
}
.ac-assure.is-at-payment .ac-assure__grid { gap: .9rem 1.5rem; }
.ac-assure.is-at-payment .ac-assure__item p { font-size: 12.5px; }
.ac-assure.is-at-payment .ac-assure__help { margin-top: .9rem; font-size: 12.5px; }
.ac-paused.is-at-payment { margin: 0 0 1rem; }
@media (max-width: 600px) {
  .ac-assure.is-at-payment .ac-assure__grid { grid-template-columns: 1fr; }
}
.ac-assure__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; }
.ac-assure__item { display: flex; gap: .75rem; align-items: flex-start; }
.ac-assure__item .ac-icon { width: 20px; height: 20px; flex: 0 0 auto; color: var(--ac-black); margin-top: 2px; }
.ac-assure__item strong { display: block; font-size: 14px; font-weight: 600; margin-bottom: .2rem; }
.ac-assure__item p { margin: 0; font-size: 13px; line-height: 1.55; color: var(--ac-graphite); }
.ac-assure__help { margin: 1.75rem 0 0; font-size: 13px; color: var(--ac-graphite); }
.ac-assure__help a { color: var(--ac-black); text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 781px) { .ac-assure__grid { grid-template-columns: 1fr; gap: 1.25rem; } }

/* ---------- Regional storefronts ---------- */
.ac-region-note { background: var(--ac-grey); border-radius: var(--ac-radius); padding: 1rem 1.25rem; font-size: 14px; line-height: 1.6; color: var(--ac-graphite); margin: 0 0 1.75rem; }
.ac-region-note strong { color: var(--ac-black); }
.ac-region-note a { color: var(--ac-black); text-decoration: underline; text-underline-offset: 2px; }
/* Second sentence of the notice: the country detail. On its own line so the
   first line stays a scannable summary. */
.ac-region-note__more { display: block; margin-top: .45rem; color: var(--ac-graphite); }
.ac-region-switch { display: flex; align-items: center; gap: .75rem; font-size: 13px; flex-wrap: wrap; }
.ac-region-switch__label { color: var(--ac-graphite); }
/* Wrap, do not overflow. The row held four countries; Thailand and Bali took it
   to six and 617px, which is wider than a phone — and because this sits in the
   footer it pushed every page on the site sideways, not just this row. */
.ac-region-switch ul { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; min-width: 0; }
.ac-region-switch a { display: inline-flex; align-items: baseline; gap: .35rem; padding: .35rem .7rem; border: 1px solid var(--ac-line); border-radius: 999px; color: var(--ac-graphite); text-decoration: none; }
.ac-region-switch a em { font-style: normal; font-size: 11px; opacity: .7; }
.ac-region-switch a.is-active { background: var(--ac-black); border-color: var(--ac-black); color: #fff; }
/* The shop landing tiles offer single vials and supplies, which a kits-only
   region does not stock, so they are hidden rather than leading to empty pages. */
.ac-region-kits-only .ac-tiles { display: none; }
/* The header links are fixed markup, so hide the collections a kits-only region
   does not stock rather than sending visitors to an empty listing. */
.ac-region-kits-only .wp-block-navigation li:has(> a[href$="/product-category/peptides/"]),
.ac-region-kits-only .wp-block-navigation li:has(> a[href$="/product-category/supplies/"]) { display: none; }
.ac-region-kits-only .wp-block-navigation a[href$="/product-category/peptides/"],
.ac-region-kits-only .wp-block-navigation a[href$="/product-category/supplies/"] { display: none; }

/* ---------- Trust bar (replaces the scrolling marquee) ---------- */
.ac-proofbar { border-top: 1px solid var(--ac-line); border-bottom: 1px solid var(--ac-line); padding: 1.1rem 0; background: #fff; }
.ac-proofbar__list { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.ac-proofbar__item { display: flex; align-items: center; gap: .55rem; white-space: nowrap; }
.ac-proofbar__item .ac-icon { width: 17px; height: 17px; color: var(--ac-black); flex: 0 0 auto; }
.ac-proofbar__stars { font-size: 12px; letter-spacing: 1px; color: var(--ac-black); }
.ac-proofbar__text { font-size: 13px; color: var(--ac-graphite); letter-spacing: .01em; }
.ac-proofbar__text strong { color: var(--ac-black); font-weight: 600; }
@media (max-width: 1100px) {
  /* Scroll horizontally rather than shrink the type; still no animation. */
  .ac-proofbar__list { justify-content: flex-start; gap: 1.75rem; overflow-x: auto; scrollbar-width: none; padding: 0 1.25rem; }
  .ac-proofbar__list::-webkit-scrollbar { display: none; }
}
@media (max-width: 782px) {
  /* On a phone the scrolling row hid three of the five claims and cut the
     fourth mid-word, which reads as broken rather than swipeable. Two columns
     show all five without a gesture most people never make. */
  .ac-proofbar__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .9rem 1.25rem;
    align-items: start;
    overflow-x: visible;
    /* The bar is a full-width group with no global padding of its own, so with
       the scroll container's padding gone the row sat flush against the screen
       edge. Take the same gutter the rest of the page uses. */
    padding-inline: var(--wp--style--root--padding-left, 1.25rem);
  }
  /* Text may now take two lines, so the icon aligns to the first line rather
     than to the centre of the block. */
  .ac-proofbar__item { align-items: flex-start; white-space: normal; }
  .ac-proofbar__item .ac-icon { margin-top: 1px; }
  .ac-proofbar__stars { flex: 0 0 auto; }
  /* An odd number of claims leaves the last one alone in the left column; give
     it the whole row so the block does not end lopsided. */
  .ac-proofbar__item:nth-child(odd):last-child { grid-column: 1 / -1; }
}

/* ---------- Country picker ----------
   Replaces the scratch-card discount popup. aminocrew.com is the group
   shopfront: the first thing a visitor is asked is where they are, and they are
   handed to the storefront that ships to them. Every option goes somewhere: a
   separate brand site where one exists, otherwise this site's own storefront for
   that country. */
.ac-region { position: fixed; inset: 0; z-index: 1001; background: rgba(17,17,17,.55); backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; padding: 1.5rem; }
.ac-region[hidden] { display: none; }
/* Scroll inside the panel rather than past the screen. Six countries plus the
   group marks came to 791px in a 760px phone viewport, which cut off the close
   button at the top and the logos at the bottom with no way to reach either.
   dvh, not vh, so the mobile browser's collapsing toolbar is accounted for. */
.ac-region__panel { position: relative; background: #fff; border-radius: var(--ac-radius-lg); max-width: 480px; width: 100%; padding: 2.25rem; box-shadow: 0 40px 80px rgba(0,0,0,.25); max-height: calc(100vh - 3rem); max-height: calc(100dvh - 3rem); overflow-y: auto; overscroll-behavior: contain; }
.ac-region__close { position: absolute; top: .85rem; right: 1rem; background: none; border: 0; font-size: 26px; line-height: 1; color: var(--ac-graphite); cursor: pointer; padding: .2rem .4rem; }
.ac-region__close:hover { color: var(--ac-black); }
.ac-region h2 { font-size: 24px; letter-spacing: -.02em; margin: 1rem 0 .4rem; }
.ac-region__lead { margin: 0 0 1.4rem; color: var(--ac-graphite); font-size: 14.5px; }
.ac-region__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.ac-region__item {
  /* width:100% plus side padding and a border made each row wider than the
     panel holding it — the rows ran under the panel's right edge, and once the
     panel became a scroll container it showed as a scrollbar inside the modal.
     The theme sets no global border-box, so this rule needs its own. */
  box-sizing: border-box;
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: #fff; border: 1px solid var(--ac-line); border-radius: 6px;
  padding: .95rem 1.1rem; font-size: 15.5px; font-weight: 500;
  color: var(--ac-black); text-decoration: none; cursor: pointer;
  transition: border-color .15s, background .15s;
}
.ac-region__item:hover { border-color: var(--ac-black); background: var(--ac-grey); color: var(--ac-black); }
.ac-region__item:focus-visible { outline: 2px solid var(--ac-blue); outline-offset: 2px; }
.ac-region__go { color: var(--ac-blue); font-size: 17px; transition: transform .15s; }
.ac-region__item:hover .ac-region__go { transform: translateX(3px); }
.ac-region__skip { display: block; width: 100%; margin-top: 1.1rem; background: none; border: 0; font: inherit; font-size: 13.5px; color: var(--ac-graphite); text-decoration: underline; cursor: pointer; padding: .4rem; }
.ac-region__skip:hover { color: var(--ac-black); }
@media (max-width: 600px) {
  /* Tightened so the six options and the group marks fit a phone screen without
     needing the scroll above — the scroll is the safety net, not the design. */
  .ac-region__panel { padding: 1.5rem 1.35rem; }
  .ac-region h2 { font-size: 21px; }
  .ac-region__item { padding: .7rem 1rem; font-size: 15px; }
  .ac-region__list { gap: .4rem; }
  .ac-region__lead { margin-bottom: 1.1rem; }
  .ac-region__skip { margin-top: .8rem; }
  .ac-region__group { margin-top: 1.1rem; padding-top: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .ac-region__item, .ac-region__go { transition: none; } }
.ac-region__panel:focus { outline: none; }

/* Group marks inside the country picker. Sized by height like the hero row —
   these lockups run 2:1 to 5:1, so matching widths would distort them. */
.ac-region__group { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--ac-line); }
.ac-region__group-label { display: block; text-align: center; font-size: 10px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ac-graphite); margin-bottom: .9rem; }
.ac-region__marks { display: grid; grid-template-columns: repeat(3, 1fr); align-items: center; justify-items: center; gap: 1.1rem 1.1rem; }
.ac-region__marks img { display: block; height: 34px; width: auto; max-width: 100%; object-fit: contain; }
@media (max-width: 600px) {
  .ac-region__marks { gap: .7rem; }
  .ac-region__marks img { height: 24px; }
}

/* ---------- Cart table on small screens ---------- */
/* The cart items table lays out automatically, so a long line — "Retatrutide —
   10 Vial Kit" beside a price and a Save badge — sets a min-content width the
   browser honours by growing the table past its container. At 375px that made
   the table 355px inside a 339px column and scrolled the whole cart sideways.
   Fixed layout makes the columns share the width they are given instead. */
@media (max-width: 782px) {
  .wc-block-cart-items {
    table-layout: fixed;
    width: 100%;
    max-width: 100%;
  }
  /* With fixed columns the long product name has to be allowed to break rather
     than push its cell wider. */
  .wc-block-cart-items .wc-block-components-product-name,
  .wc-block-cart-item__total { overflow-wrap: anywhere; }

  /* The total cell is a flex box, and a flex item will not shrink below its
     content unless told to. Without this the "Save $12.49" badge — one
     unbreakable line — held the column open and kept three pixels of the page
     hanging off the right edge even with the table constrained. */
  .wc-block-cart-item__total,
  .wc-block-cart-item__total-price-and-sale-badge-wrapper { min-width: 0; }
  .wc-block-cart-item__total .wc-block-components-product-badge {
    max-width: 100%;
    white-space: normal;
    font-size: 10px;
    line-height: 1.3;
  }
}
