/* ==========================================================================
   369AV — scoped presentation for the WooCommerce showroom (round 7 rebuild).
   The shop renders our own markup (M1 band · M2 row · M3 list bar · M4 grid/
   card · M5 product hero · M6 section bar + sections + related + enquire); this
   stylesheet dresses those classes to the approved mock-up and keeps the native
   cart / checkout / account surfaces neutral. One block per concern, in order:
   tokens → chrome resets → band → row → list bar → grid+card → product hero →
   sections → cart/checkout/account → responsive → reduced motion.
   ========================================================================== */

/* --- Tokens -------------------------------------------------------------- */
body.av369.woocommerce-page {
  --av-white: #ffffff;
  --av-ink: #171717;
  --av-body-ink: #646464;
  --av-muted: #737373;
  --av-band-dark: #111111;
  --av-surface: #f5f5f5;
  --av-line: #e5e5e5;
  --av-input-line: #d4d4d8;
  --av-rule-light: #c5c5c5;
  --av-tab-inactive: rgba(0, 0, 0, 0.7);
  --av-tab-bar: rgba(0, 0, 0, 0.15);
  --av-on-dark: rgba(255, 255, 255, 0.7);
  /* Dark gold on light surfaces: 4.30:1 on #fff, 3.95:1 on #f5f5f5 (WCAG 1.4.11 ≥3:1).
     av-dark overrides it back to the bright #c79b20 (~8:1) on black. */
  --av-focus: #9a7414;
  --av-font: Oswald, 'Roboto Condensed', sans-serif;
  --av-container: 1300px;
  --av-gutter: 24px;
  /* Full-bleed bands centre their own content at the 1300px container. */
  --av-pad: max(24px, calc(50vw - 650px));
}

/* --- Kadence / WooCommerce chrome resets on shop surfaces ---------------- */
/* Below 1000px the fixed mobile header is 68px, so sticky bars start under
   it; the desktop rule below raises this to the 97px desktop header. */
body.av369.single-product.av-sales-catalog { --av-sticky-top: 68px; }
@media (min-width: 1000px) {
  body.av369.single-product.av-sales-catalog { --av-sticky-top: 97px; }
  body.av369.woocommerce-page #inner-wrap {
    padding-top: 97px;
  }

}

body.av369.woocommerce-page #inner-wrap,
body.av369.woocommerce-page .site,
body.av369.woocommerce-page .content-area,
body.av369.woocommerce-page .entry-content-wrap {
  background: var(--av-white);
}

/* Paint only the header-height offset black, leaving the shop surface white. */
body.av369.woocommerce-page #inner-wrap {
  background-image: linear-gradient(#000, #000);
  background-size: 100% 97px;
  background-repeat: no-repeat;
}

body.av369.woocommerce-page .site-main {
  width: min(var(--av-container), calc(100vw - 2 * var(--av-gutter)));
  margin-inline: auto;
}

body.av369.woocommerce-page:is(.post-type-archive-product, .tax-product_cat, .search-results) .site-main,
body.av369.single-product.av-sales-catalog .site-main {
  padding-block: 0;
}

body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .site-main {
  padding-block: 0 88px;
}

/* Hide the theme's own hero, breadcrumb and duplicate titles on our surfaces. */
body.av369.woocommerce-page:is(.post-type-archive-product, .tax-product_cat, .search-results) .hero-container,
body.av369.woocommerce-page:is(.post-type-archive-product, .tax-product_cat, .search-results) .woocommerce-breadcrumb,
body.av369.woocommerce-page:is(.post-type-archive-product, .tax-product_cat, .search-results) .kadence-breadcrumbs,
body.av369.woocommerce-page:is(.post-type-archive-product, .tax-product_cat, .search-results) .product-title.product-above,
body.av369.woocommerce-page:is(.post-type-archive-product, .tax-product_cat, .search-results) .kadence-shop-top-row,
body.av369.single-product.av-sales-catalog .hero-container,
body.av369.single-product.av-sales-catalog .woocommerce-breadcrumb,
body.av369.single-product.av-sales-catalog .kadence-breadcrumbs,
body.av369.single-product.av-sales-catalog .product-title.product-above {
  display: none;
}

/* Keep notices quiet and square; never the WordPress blue. */
body.av369.woocommerce-page .woocommerce-notices-wrapper:empty {
  display: none;
}

body.av369.woocommerce-page :is(.woocommerce-info, .woocommerce-message, .woocommerce-error) {
  margin: 0 0 32px;
  border: 1px solid var(--av-line);
  border-radius: 0;
  background: var(--av-white);
  color: var(--av-ink);
}

/* Reset the single-product wrapper so our hero and sections flow cleanly. */
body.av369.single-product.av-sales-catalog div.product {
  display: block;
  margin: 0;
  padding: 0;
  color: var(--av-ink);
}

body.av369.single-product.av-sales-catalog div.product::before,
body.av369.single-product.av-sales-catalog div.product::after {
  content: none;
}

body.av369.single-product.av-sales-catalog div.product div.summary {
  display: none;
}

/* --- M1 band ------------------------------------------------------------- */
body.av369.woocommerce-page .av-band {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  background: var(--av-band-dark);
  color: var(--av-white);
  text-align: center;
}

body.av369.woocommerce-page .av-band-inner {
  box-sizing: border-box;
  max-width: var(--av-container);
  margin-inline: auto;
  padding: 56px var(--av-gutter);
}

body.av369.woocommerce-page .av-band-logo {
  display: block;
  width: auto;
  height: 96px;
  max-width: min(380px, 80vw);
  margin: 0 auto;
  object-fit: contain;
}

body.av369.woocommerce-page .av-band-logo--child {
  height: 72px;
}

body.av369.woocommerce-page .av-band-title {
  margin: 28px 0 0;
  color: var(--av-white);
  font: 400 55px/60.5px var(--av-font);
  letter-spacing: 2.5px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

body.av369.woocommerce-page .av-band--search .av-band-title,
body.av369.woocommerce-page .av-band--page .av-band-title {
  margin-top: 0;
}

body.av369.woocommerce-page .av-band-rule {
  display: block;
  width: 112px;
  height: 1px;
  margin: 22px auto 0;
  background: var(--av-on-dark);
}

body.av369.woocommerce-page .av-band-count {
  margin: 18px 0 0;
  color: var(--av-on-dark);
  font: 400 13px/26px var(--av-font);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

body.av369.woocommerce-page .av-band--page .av-band-inner {
  padding: 64px var(--av-gutter) 56px;
}

body.av369.woocommerce-page .av-band--page {
  margin-bottom: 56px;
}

/* --- M2 row -------------------------------------------------------------- */
body.av369.woocommerce-page .av-row {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  background: var(--av-white);
  border-bottom: 1px solid var(--av-tab-bar);
}

body.av369.woocommerce-page .av-row-inner {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 8px 32px;
  flex-wrap: wrap;
  /* Same edge as the list bar and grid, which are full-bleed with --av-pad. */
  padding-inline: var(--av-pad);
}

body.av369.woocommerce-page .av-row-nav {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  align-self: stretch;
}

body.av369.woocommerce-page :is(.av-row-back, .av-row-item) {
  display: flex;
  align-items: center;
  min-height: 72px;
  box-sizing: border-box;
  border-bottom: 2px solid transparent;
  color: var(--av-tab-inactive);
  font: 400 13px/26px var(--av-font);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
}

body.av369.woocommerce-page :is(.av-row-back, .av-row-item):hover,
body.av369.woocommerce-page .av-row-item[aria-current="page"] {
  color: #000;
}

body.av369.woocommerce-page .av-row-item[aria-current="page"] {
  border-bottom-color: #000;
}

body.av369.woocommerce-page .av-row-back {
  padding-right: 32px;
  border-right: 1px solid var(--av-tab-bar);
  color: #000;
}

body.av369.woocommerce-page .av-row-count {
  margin-left: 6px;
  color: var(--av-muted);
}

body.av369.woocommerce-page .av-row-search {
  position: relative;
  display: flex;
  margin-left: auto;
  padding: 14px 0;
}

body.av369.woocommerce-page .av-row-search input[type="search"] {
  width: 240px;
  max-width: 100%;
  height: 44px;
  box-sizing: border-box;
  padding: 0 14px;
  border: 1px solid var(--av-input-line);
  border-radius: 0;
  background: var(--av-white);
  color: var(--av-ink);
  font-family: inherit;
  font-size: 15px;
}

body.av369.woocommerce-page .av-row-search input[type="search"]:focus {
  border-color: #000;
}

body.av369.woocommerce-page .av-row-search input[type="search"]::placeholder {
  color: var(--av-muted);
  opacity: 1;
}

/* --- M3 list bar --------------------------------------------------------- */
body.av369.woocommerce-page .av-list-bar {
  box-sizing: border-box;
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding: 28px var(--av-pad) 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  background: var(--av-surface);
  font: 400 13px/26px var(--av-font);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

body.av369.woocommerce-page .av-list-count,
body.av369.woocommerce-page .av-list-count .woocommerce-result-count {
  margin: 0;
  color: var(--av-tab-inactive);
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

body.av369.woocommerce-page .av-list-sort {
  display: flex;
  align-items: center;
  gap: 12px;
}

body.av369.woocommerce-page .av-list-sort .woocommerce-ordering {
  margin: 0;
}

body.av369.woocommerce-page .av-list-sort select {
  height: 44px;
  padding: 0 12px;
  border: 1px solid var(--av-input-line);
  border-radius: 0;
  background: var(--av-white);
  color: var(--av-ink);
  font-family: inherit;
  font-size: 13px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

body.av369.woocommerce-page .av-list-sort button {
  display: none;
}

/* CELTO series dropdown (native details/summary, no JS) sits between the count and sort. */
body.av369.woocommerce-page .av-series {
  position: relative;
}

body.av369.woocommerce-page .av-series > summary {
  display: flex;
  align-items: center;
  height: 44px;
  padding: 0 14px;
  border: 1px solid var(--av-input-line);
  background: var(--av-white);
  color: var(--av-ink);
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  list-style: none;
  cursor: pointer;
}

body.av369.woocommerce-page .av-series > summary::-webkit-details-marker {
  display: none;
}

body.av369.woocommerce-page .av-series > ul {
  position: absolute;
  z-index: 6;
  min-width: 100%;
  margin: 2px 0 0;
  padding: 0;
  border: 1px solid var(--av-input-line);
  background: var(--av-white);
  list-style: none;
}

body.av369.woocommerce-page .av-series li {
  margin: 0;
}

body.av369.woocommerce-page .av-series a {
  display: block;
  padding: 10px 14px;
  color: var(--av-tab-inactive);
  text-decoration: none;
  white-space: nowrap;
}

body.av369.woocommerce-page .av-series a:hover,
body.av369.woocommerce-page .av-series a[aria-current="page"] {
  color: #000;
  background: var(--av-surface);
}

/* --- Pagination (catalogue archives) ------------------------------------- */
/* The native WooCommerce pager restyled into the shared square language; the
   WordPress-blue current page is removed entirely (no blue anywhere). */
/* Full-bleed like the .av-grid above it (same 100vw method), so the pager continues the
   grid's surface instead of sitting in a grey box inside the content column. The grid
   already ends with 72px of padding; text-align centres Kadence's inline-flex list. */
body.av369.woocommerce-page .woocommerce-pagination {
  box-sizing: border-box;
  width: 100vw;
  margin: 0 calc(50% - 50vw);
  padding: 0 var(--av-pad) 72px;
  background: var(--av-surface);
  text-align: center;
}

body.av369.woocommerce-page .woocommerce-pagination ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px 8px;
  margin: 0;
  padding: 0;
  border: 0;
  list-style: none;
}

body.av369.woocommerce-page .woocommerce-pagination ul li {
  margin: 0;
  padding: 0;
  border: 0;
}

body.av369.woocommerce-page .woocommerce-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-width: 44px;
  min-height: 44px;
  padding: 0 12px;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--av-ink);
  font: 400 13px/26px var(--av-font);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
}

body.av369.woocommerce-page .woocommerce-pagination a.page-numbers:hover,
body.av369.woocommerce-page .woocommerce-pagination .page-numbers.current {
  color: #000;
  border-bottom-color: #000;
}

/* --- M4 grid + card ------------------------------------------------------ */
body.av369.woocommerce-page .av-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.av369.woocommerce-page .av-grid::before,
body.av369.woocommerce-page .av-grid::after {
  content: none;
}

body.av369.woocommerce-page .av-grid-item {
  margin: 0;
  padding: 0;
  min-width: 0;
  list-style: none;
}

/* The listing grid is a full-bleed #f5f5f5 band that butts onto the list bar. */
body.av369.woocommerce-page:is(.post-type-archive-product, .tax-product_cat, .search-results) .av-grid {
  box-sizing: border-box;
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  padding: 0 var(--av-pad) 72px;
  background: var(--av-surface);
}

body.av369.woocommerce-page .av-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: var(--av-white);
  color: var(--av-ink);
  text-decoration: none;
  outline: 1px solid transparent;
  outline-offset: -1px;
  transition: outline-color 0.2s;
}

body.av369.woocommerce-page .av-card:hover {
  outline-color: #171717;
}

body.av369.woocommerce-page .av-card-media {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  padding: 28px;
  box-sizing: border-box;
  overflow: hidden;
  background: var(--av-white);
}

body.av369.woocommerce-page .av-card-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.4s;
}

body.av369.woocommerce-page .av-card:hover .av-card-img {
  transform: scale(1.03);
}

body.av369.woocommerce-page .av-card-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 6px;
  padding: 4px 24px 26px;
}

body.av369.woocommerce-page .av-card-brand {
  color: var(--av-muted);
  font: 400 11px/17.6px var(--av-font);
  letter-spacing: 1.76px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

body.av369.woocommerce-page .av-card-title {
  font: 600 20px/26px var(--av-font);
  letter-spacing: 0.9px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

body.av369.woocommerce-page .av-card-desc {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 42px;
  color: var(--av-body-ink);
  font: 400 15px/21px var(--av-font);
}

/* Approved-customer card price: net + muted list line, pinned to the card base. */
body.av369.woocommerce-page .av-card-price {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--av-line);
}

body.av369.woocommerce-page .av-card-net {
  color: var(--av-ink);
  font: 600 18px/24px var(--av-font);
  letter-spacing: 0.4px;
}

body.av369.woocommerce-page .av-card-list {
  color: var(--av-body-ink);
  font: 400 13px/18px var(--av-font);
}

/* --- M5 product hero ----------------------------------------------------- */
body.av369.single-product.av-sales-catalog .av-shell {
  box-sizing: border-box;
  max-width: var(--av-container);
  margin-inline: auto;
  padding-inline: var(--av-gutter);
}

body.av369.single-product.av-sales-catalog .av-product-hero {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
  background: var(--av-white);
  color: var(--av-ink);
}

body.av369.single-product.av-sales-catalog .av-product-hero .av-shell {
  padding-block: 32px 72px;
}

body.av369.single-product.av-sales-catalog .av-crumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-bottom: 32px;
  font: 400 11px/17.6px var(--av-font);
  letter-spacing: 1.76px;
  text-transform: uppercase;
}

body.av369.single-product.av-sales-catalog .av-crumbs a {
  color: var(--av-body-ink);
  text-decoration: none;
}

body.av369.single-product.av-sales-catalog .av-crumbs a:hover {
  color: #000;
}

/* Separators are aria-hidden spans in the markup. */
body.av369.single-product.av-sales-catalog .av-crumbs > span[aria-hidden="true"] {
  color: var(--av-rule-light);
}

body.av369.single-product.av-sales-catalog .av-crumbs [aria-current="page"] {
  color: var(--av-ink);
}

body.av369.single-product.av-sales-catalog .av-hero {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
  gap: 48px 72px;
  align-items: center;
}

body.av369.single-product.av-sales-catalog .av-hero-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  max-height: 620px;
  padding: 48px;
  box-sizing: border-box;
  background: var(--av-white);
  border: 1px solid var(--av-line);
}

body.av369.single-product.av-sales-catalog .av-hero-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* Product photo strip under the stage (gallery photos are not normalised: contain on white). */
body.av369.single-product.av-sales-catalog .av-hero-media {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

body.av369.single-product.av-sales-catalog .av-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.av369.single-product.av-sales-catalog .av-thumbs li {
  margin: 0;
  padding: 0;
  list-style: none;
}

body.av369.single-product.av-sales-catalog .av-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  box-sizing: border-box;
  padding: 6px;
  border: 1px solid var(--av-line);
  border-radius: 0;
  background: var(--av-white);
  cursor: pointer;
}

body.av369.single-product.av-sales-catalog .av-thumb[aria-pressed="true"] {
  border-color: var(--av-ink);
}

body.av369.single-product.av-sales-catalog .av-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

body.av369.single-product.av-sales-catalog .av-hero-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
  max-width: 560px;
}

body.av369.single-product.av-sales-catalog .av-hero-title {
  margin: 0;
  font: 600 44px/52px var(--av-font);
  letter-spacing: 1.32px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

body.av369.single-product.av-sales-catalog .av-hero-deck {
  margin: 12px 0 0;
  color: rgba(0, 0, 0, 0.85);
  font: 400 20px/30px var(--av-font);
}

/* UXR12: the model line under the deck — it follows the chosen variation. The model
   code (strong) reads as an uppercase, tracked label; the description stays body ink. */
body.av369.single-product.av-sales-catalog .av-hero-model {
  margin: 8px 0 0;
  color: var(--av-body-ink);
  font: 400 17px/1.5 var(--av-font);
}

body.av369.single-product.av-sales-catalog .av-hero-model[hidden] {
  display: none;
}

body.av369.single-product.av-sales-catalog .av-hero-model strong {
  color: var(--av-ink);
  font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

body.av369.single-product.av-sales-catalog .av-hero-keys {
  margin: 28px 0 0;
  padding: 0;
}

body.av369.single-product.av-sales-catalog .av-hero-keys > div {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 16px;
  padding: 12px 0;
  border-top: 1px solid var(--av-line);
}

body.av369.single-product.av-sales-catalog .av-hero-keys dt {
  color: var(--av-body-ink);
  font: 400 13px/24px var(--av-font);
  letter-spacing: 1px;
  text-transform: uppercase;
}

body.av369.single-product.av-sales-catalog .av-hero-keys dd {
  margin: 0;
  font: 400 16px/24px var(--av-font);
}

/* Option chips: the attribute values a variable product offers (no prices). */
body.av369.single-product.av-sales-catalog .av-hero-options {
  margin: 28px 0 0;
  padding: 0;
}

body.av369.single-product.av-sales-catalog .av-hero-options > div {
  padding: 12px 0;
  border-top: 1px solid var(--av-line);
}

body.av369.single-product.av-sales-catalog .av-hero-options dt {
  color: var(--av-body-ink);
  font: 400 13px/24px var(--av-font);
  letter-spacing: 1px;
  text-transform: uppercase;
}

body.av369.single-product.av-sales-catalog .av-hero-options dd {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0 0;
}

/* Guest option chips: real single-select buttons in the buy-box chip language. */
body.av369.single-product.av-sales-catalog .av-hero-options .av-chip {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid var(--av-input-line);
  border-radius: 0;
  background: var(--av-white);
  color: var(--av-ink);
  font: 600 12px/18px var(--av-font);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

body.av369.single-product.av-sales-catalog .av-hero-options .av-chip:hover {
  border-color: var(--av-ink);
}

body.av369.single-product.av-sales-catalog .av-hero-options .av-chip[aria-pressed="true"] {
  border-color: #000;
  background: #000;
  color: var(--av-white);
}

body.av369.single-product.av-sales-catalog .av-hero-options .av-chip:focus-visible {
  outline: 3px solid var(--av-focus);
  outline-offset: 3px;
}

/* Units carried in uppercase labels (e.g. dB) keep their case. */
body.av369.single-product.av-sales-catalog .av-unit {
  text-transform: none;
}

/* Guest / approved actions reuse the existing .av-catalog-* classes. */
body.av369.single-product.av-sales-catalog .av-catalog-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
}

body.av369.single-product.av-sales-catalog .av-catalog-actions--hero {
  margin-top: 32px;
}

body.av369.single-product.av-sales-catalog .av-catalog-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  box-sizing: border-box;
  padding: 0 28px;
  border: 1px solid #000;
  border-radius: 0;
  background: #000;
  color: var(--av-white);
  font: 600 12px/16px var(--av-font);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}

body.av369.single-product.av-sales-catalog .av-catalog-cta:hover {
  background: #333;
}

body.av369.single-product.av-sales-catalog .av-catalog-cta-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  box-sizing: border-box;
  padding: 0 24px;
  border: 1px solid #000;
  border-radius: 0;
  background: transparent;
  color: #000;
  font: 600 12px/16px var(--av-font);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color 0.2s, color 0.2s;
}

body.av369.single-product.av-sales-catalog .av-catalog-cta-link:hover {
  background: #000;
  color: var(--av-white);
}

body.av369.single-product.av-sales-catalog :is(.av-cta-note, .av-catalog-cta-note) {
  margin: 16px 0 0;
  color: var(--av-body-ink);
  font: 400 14px/22px var(--av-font);
}

body.av369.single-product.av-sales-catalog :is(.av-cta-note, .av-catalog-cta-note) a {
  color: var(--av-ink);
}

body.av369.single-product.av-sales-catalog .av-hero-sheet {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  margin-top: 24px;
  color: var(--av-ink);
  font: 400 13px/26px var(--av-font);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
}

body.av369.single-product.av-sales-catalog .av-hero-sheet:hover {
  text-decoration: underline;
}

/* --- M6 section bar + sections + related + enquire ----------------------- */
body.av369.single-product.av-sales-catalog :is(.av-section-bar, .av-overview, .av-specs, .av-downloads, .av-related, .av-enquire) {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
}

/* Sticks just below the site header, which is fixed at 97px on desktop. */
body.av369.single-product.av-sales-catalog .av-section-bar {
  position: sticky;
  top: var(--av-sticky-top, 0px);
  z-index: 5;
  background: var(--av-white);
  border-bottom: 1px solid var(--av-tab-bar);
}

body.av369.single-product.av-sales-catalog .av-section-bar .av-shell {
  display: flex;
  gap: 40px;
  flex-wrap: wrap;
}

body.av369.single-product.av-sales-catalog .av-section-bar a {
  display: flex;
  align-items: center;
  min-height: 64px;
  box-sizing: border-box;
  border-bottom: 2px solid transparent;
  color: var(--av-tab-inactive);
  font: 400 13px/26px var(--av-font);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
}

body.av369.single-product.av-sales-catalog .av-section-bar a:hover,
body.av369.single-product.av-sales-catalog .av-section-bar a[aria-current="true"] {
  color: #000;
}

body.av369.single-product.av-sales-catalog .av-section-bar a[aria-current="true"] {
  border-bottom-color: #000;
}

/* UXR11: the product name heads the bar in the shared link look, set off from the
   section links by a 1px divider in the bar's line colour. It never underlines. */
body.av369.single-product.av-sales-catalog .av-section-top {
  padding-right: 40px;
  border-right: 1px solid var(--av-tab-bar);
  color: #000;
}

body.av369.single-product.av-sales-catalog .av-section-top:hover,
body.av369.single-product.av-sales-catalog .av-section-top[aria-current="true"] {
  border-bottom-color: transparent;
}

body.av369.single-product.av-sales-catalog :is(.av-overview, .av-downloads) {
  background: var(--av-white);
}

body.av369.single-product.av-sales-catalog :is(.av-specs, .av-related) {
  background: var(--av-surface);
}

body.av369.single-product.av-sales-catalog :is(.av-overview, .av-specs, .av-downloads, .av-related) .av-shell {
  padding-block: 72px;
}

body.av369.single-product.av-sales-catalog :is(.av-overview, .av-specs, .av-downloads, .av-related) h2 {
  margin: 0;
  color: var(--av-ink);
  font: 600 36px/40px var(--av-font);
  letter-spacing: 0.18px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

body.av369.single-product.av-sales-catalog .av-overview .av-shell {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 32px 72px;
}

body.av369.single-product.av-sales-catalog .av-overview-body {
  grid-column: span 2;
  max-width: 68ch;
}

body.av369.single-product.av-sales-catalog .av-overview-body p,
body.av369.single-product.av-sales-catalog .av-catalog-overview-copy p,
body.av369.single-product.av-sales-catalog .av-catalog-overview-excerpt {
  margin: 0 0 16px;
  color: rgba(0, 0, 0, 0.75);
  font: 400 18px/28px var(--av-font);
}

body.av369.single-product.av-sales-catalog .av-catalog-more {
  margin-top: 24px;
}

body.av369.single-product.av-sales-catalog .av-catalog-more summary {
  cursor: pointer;
  font: 600 12px/20px var(--av-font);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 4px;
}

body.av369.single-product.av-sales-catalog .av-overview:has(.av-catalog-more[open]) .av-catalog-overview-excerpt {
  display: none;
}

body.av369.single-product.av-sales-catalog .av-spec-list {
  margin: 32px 0 0;
  padding: 0;
  columns: 2 420px;
  column-gap: 72px;
}

body.av369.single-product.av-sales-catalog .av-spec-row {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  gap: 24px;
  padding: 14px 0;
  border-bottom: 1px solid var(--av-line);
  break-inside: avoid;
}

body.av369.single-product.av-sales-catalog .av-spec-row dt {
  color: var(--av-body-ink);
  font: 400 13px/22px var(--av-font);
  letter-spacing: 1px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

body.av369.single-product.av-sales-catalog .av-spec-row dd {
  margin: 0;
  color: var(--av-ink);
  font: 400 16px/24px var(--av-font);
  overflow-wrap: anywhere;
}

/* UXR14: the variation-dependent rows reuse .av-spec-row and inherit every colour; the base
   row is display:grid, so the hidden state needs its own rule to beat it. The hint that
   precedes them is muted body text spanning the two columns. Both toggle with [hidden]. */
body.av369.single-product.av-sales-catalog .av-spec-row[hidden] {
  display: none;
}

body.av369.single-product.av-sales-catalog .av-spec-variant-hint {
  margin: 14px 0 0;
  color: var(--av-body-ink);
  font: 400 15px/24px var(--av-font);
  column-span: all;
}

body.av369.single-product.av-sales-catalog .av-spec-variant-hint[hidden] {
  display: none;
}

body.av369.single-product.av-sales-catalog .av-spec-sheet {
  margin: 32px 0 0;
  padding: 0;
  columns: 2 420px;
  column-gap: 72px;
  list-style: none;
}

body.av369.single-product.av-sales-catalog .av-spec-sheet li {
  padding: 8px 0;
  border-bottom: 1px solid var(--av-line);
  break-inside: avoid;
  color: var(--av-ink);
  font: 400 16px/24px var(--av-font);
  overflow-wrap: anywhere;
}

body.av369.single-product.av-sales-catalog .av-dl-list {
  margin: 32px 0 0;
  padding: 0;
  border-top: 1px solid var(--av-line);
  list-style: none;
}

body.av369.single-product.av-sales-catalog .av-dl-list li {
  border-bottom: 1px solid var(--av-line);
}

body.av369.single-product.av-sales-catalog .av-dl {
  display: flex;
  align-items: center;
  gap: 20px;
  min-height: 44px;
  padding: 18px 0;
  color: var(--av-ink);
  text-decoration: none;
}

body.av369.single-product.av-sales-catalog .av-dl-type {
  flex-shrink: 0;
  width: 52px;
  border: 1px solid var(--av-ink);
  text-align: center;
  font: 400 11px/22px var(--av-font);
  letter-spacing: 1.5px;
}

body.av369.single-product.av-sales-catalog .av-dl-label {
  flex-grow: 1;
  font: 400 17px/24px var(--av-font);
}

body.av369.single-product.av-sales-catalog .av-dl-go {
  font: 600 12px/16px var(--av-font);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  white-space: nowrap;
}

body.av369.single-product.av-sales-catalog .av-dl:hover .av-dl-go {
  text-decoration: underline;
}

body.av369.single-product.av-sales-catalog .av-related-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 32px;
}

body.av369.single-product.av-sales-catalog .av-related-all {
  display: flex;
  align-items: center;
  min-height: 44px;
  color: var(--av-tab-inactive);
  font: 400 13px/26px var(--av-font);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  text-decoration: none;
}

body.av369.single-product.av-sales-catalog .av-related-all:hover {
  color: #000;
}

/* --- Approved-customer buy box (M10, in the hero for priced products) ----- */
/* Price block: label, big net amount + "ex VAT", muted list line. */
body.av369.single-product.av-sales-catalog .av-buy-price {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--av-ink);
}

body.av369.single-product.av-sales-catalog .av-buy-label {
  margin: 0;
  color: var(--av-body-ink);
  font: 400 12px/18px var(--av-font);
  letter-spacing: 1px;
  text-transform: uppercase;
}

body.av369.single-product.av-sales-catalog .av-buy-amount {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px;
  margin: 4px 0 0;
}

body.av369.single-product.av-sales-catalog .av-buy-net {
  font: 600 40px/48px var(--av-font);
  letter-spacing: 0.5px;
}

body.av369.single-product.av-sales-catalog .av-buy-vat {
  color: var(--av-body-ink);
  font: 400 14px/1 var(--av-font);
  letter-spacing: 1px;
  text-transform: uppercase;
}

body.av369.single-product.av-sales-catalog .av-buy-list {
  margin: 4px 0 0;
  color: var(--av-body-ink);
  font: 400 15px/22px var(--av-font);
}

body.av369.single-product.av-sales-catalog .av-buy-list[hidden] {
  display: none;
}

/* P2: the found variation's description, under the option chips. */
body.av369.single-product.av-sales-catalog .av-buy-variant {
  margin: 12px 0 0;
  color: #646464;
  font: 400 15px/22px var(--av-font);
}

body.av369.single-product.av-sales-catalog .av-buy-variant[hidden] {
  display: none;
}

/* Option chips: real buttons over the native selects. */
body.av369.single-product.av-sales-catalog .av-buy-options {
  margin: 0;
  padding: 0;
}

body.av369.single-product.av-sales-catalog .av-buy-group {
  display: flow-root;
  margin: 16px 0 0;
  padding: 0;
  border: 0;
}

body.av369.single-product.av-sales-catalog .av-buy-group:first-of-type {
  margin-top: 20px;
}

body.av369.single-product.av-sales-catalog .av-buy-group legend {
  float: left;
  width: 100%;
  margin: 0 0 10px;
  padding: 0;
  color: var(--av-body-ink);
  font: 400 12px/18px var(--av-font);
  letter-spacing: 1px;
  text-transform: uppercase;
}

body.av369.single-product.av-sales-catalog .av-buy-group .av-chip {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: 0 8px 8px 0;
  padding: 0 18px;
  border: 1px solid var(--av-input-line);
  border-radius: 0;
  background: var(--av-white);
  color: var(--av-ink);
  font: 600 12px/18px var(--av-font);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

body.av369.single-product.av-sales-catalog .av-buy-group .av-chip:hover {
  border-color: var(--av-ink);
}

body.av369.single-product.av-sales-catalog .av-buy-group .av-chip[aria-pressed="true"] {
  border-color: #000;
  background: #000;
  color: var(--av-white);
}

body.av369.single-product.av-sales-catalog .av-buy-group .av-chip:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* The native WooCommerce form, now the control row inside the buy box. */
body.av369.single-product.av-sales-catalog .av-catalog-purchase {
  margin: 20px 0 0;
  padding: 0;
  background: transparent;
}

body.av369.woocommerce-page .price del {
  margin-right: 0.35em;
  opacity: 0.65;
}

body.av369.woocommerce-page .price ins {
  color: inherit;
  font-weight: 600;
  text-decoration: none;
}

/* With JS on, chips drive the selects, so the native price/reset/selects hide. */
body.av369.single-product.av-sales-catalog .av-buy--js .av-catalog-purchase table.variations {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

body.av369.single-product.av-sales-catalog .av-catalog-purchase .woocommerce-variation-price,
body.av369.single-product.av-sales-catalog .av-catalog-purchase .woocommerce-variation-availability,
body.av369.single-product.av-sales-catalog .av-catalog-purchase .woocommerce-variation-description,
body.av369.single-product.av-sales-catalog .av-catalog-purchase .reset_variations {
  display: none;
}

/* Horizontal control row (JS on): quantity, add to cart, and the quote link. */
body.av369.single-product.av-sales-catalog .av-buy--js .av-catalog-purchase,
body.av369.single-product.av-sales-catalog .av-buy--js .av-catalog-purchase form.cart,
body.av369.single-product.av-sales-catalog .av-buy--js .av-catalog-purchase .variations_button {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

body.av369.single-product.av-sales-catalog .av-buy--js .av-catalog-purchase form.cart,
body.av369.single-product.av-sales-catalog .av-buy--js .av-catalog-purchase .variations_button {
  margin: 0;
}

body.av369.single-product.av-sales-catalog .av-buy--js .av-catalog-purchase .single_variation_wrap {
  display: contents;
}

/* Its contents are all hidden above; an empty flex item would still take a gap slot. */
body.av369.single-product.av-sales-catalog .av-buy--js .av-catalog-purchase .single_variation {
  /* !important: WooCommerce's script shows it with an inline display:block. */
  display: none !important;
}

/* WooCommerce's screen-reader alert stays readable but leaves the flex row. */
body.av369.single-product.av-sales-catalog .av-buy--js .av-catalog-purchase .reset_variations_alert {
  position: absolute;
}

/* The quote link sits on the add-to-cart row; every other buy-box block is full width. */
body.av369.single-product.av-sales-catalog .av-buy--js {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 12px;
}

body.av369.single-product.av-sales-catalog .av-buy--js > :not(.av-catalog-purchase):not(.av-buy-quote) {
  flex: 1 1 100%;
}

body.av369.single-product.av-sales-catalog .av-buy--js > .av-buy-quote {
  margin-top: 20px;
}

/* With the taller buy box, the photo lines up with the top of the copy (T-Product). */
body.av369.single-product.av-sales-catalog .av-hero:has(.av-buy) {
  align-items: start;
}

/* Quantity: a 48px box by default; a -/+ stepper once JS wraps it. */
body.av369.single-product.av-sales-catalog .av-catalog-purchase .quantity {
  margin: 0;
}

body.av369.single-product.av-sales-catalog .av-catalog-purchase .quantity input.qty {
  box-sizing: border-box;
  width: 64px;
  height: 48px;
  border: 1px solid var(--av-input-line);
  border-radius: 0;
  background: var(--av-white);
  color: var(--av-ink);
  text-align: center;
  font: 400 17px/1 var(--av-font);
}

body.av369.single-product.av-sales-catalog .av-catalog-purchase .quantity.av-qty {
  display: inline-flex;
  height: 48px;
  border: 1px solid var(--av-input-line);
}

body.av369.single-product.av-sales-catalog .av-catalog-purchase .quantity.av-qty input.qty {
  width: 56px;
  height: auto;
  border: 0;
  border-left: 1px solid var(--av-line);
  border-right: 1px solid var(--av-line);
}

body.av369.single-product.av-sales-catalog .av-catalog-purchase .av-qty-step {
  width: 44px;
  border: 0;
  background: var(--av-white);
  color: var(--av-ink);
  font: 400 20px/1 var(--av-font);
  cursor: pointer;
}

body.av369.single-product.av-sales-catalog .av-catalog-purchase .av-qty-step:hover {
  background: var(--av-surface);
}

/* Add to cart: 48px black button; grey + muted while a choice is missing. */
body.av369.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: auto;
  min-height: 48px;
  padding: 15px 28px;
  border: 1px solid var(--av-ink);
  border-radius: 0;
  background: var(--av-ink);
  color: var(--av-white);
  font: 600 12px/16px var(--av-font);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}

body.av369.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button:hover {
  background: #333;
}

body.av369.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button.disabled,
body.av369.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button:disabled,
body.av369.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button.wc-variation-selection-needed {
  border-color: var(--av-line);
  background: var(--av-line);
  color: var(--av-body-ink);
  cursor: not-allowed;
}

/* Hint under the controls. */
body.av369.single-product.av-sales-catalog .av-buy-hint {
  margin: 12px 0 0;
  color: var(--av-body-ink);
  font: 400 14px/22px var(--av-font);
}

body.av369.single-product.av-sales-catalog .av-buy :is(.av-chip, .av-qty-step, .single_add_to_cart_button):focus-visible {
  outline: 3px solid var(--av-focus);
  outline-offset: 3px;
}

/* Closing "Planning a system?" enquire band (dark). */
body.av369.single-product.av-sales-catalog .av-enquire {
  background: var(--av-band-dark);
  color: var(--av-white);
  text-align: center;
}

body.av369.single-product.av-sales-catalog .av-enquire .av-shell {
  padding-block: 80px;
}

body.av369.single-product.av-sales-catalog .av-enquire h2 {
  margin: 0;
  color: var(--av-white);
  font: 700 40px/55px var(--av-font);
  letter-spacing: 3.2px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

body.av369.single-product.av-sales-catalog .av-enquire .av-band-rule {
  margin-top: 18px;
}

body.av369.single-product.av-sales-catalog .av-enquire p {
  margin: 22px auto 0;
  max-width: 600px;
  color: rgba(255, 255, 255, 0.78);
  font: 400 18px/28px var(--av-font);
}

body.av369.single-product.av-sales-catalog .av-enquire .av-catalog-actions {
  display: inline-flex;
  gap: 12px;
  margin-top: 32px;
  vertical-align: top;
}

body.av369.single-product.av-sales-catalog .av-enquire .av-catalog-actions--band .av-catalog-cta {
  border-color: var(--av-white);
  background: var(--av-white);
  color: #000;
}

body.av369.single-product.av-sales-catalog .av-enquire .av-catalog-actions--band .av-catalog-cta:hover {
  background: #d9d9d9;
}

body.av369.single-product.av-sales-catalog .av-enquire .av-catalog-actions--band .av-catalog-cta-link {
  border-color: var(--av-white);
  background: transparent;
  color: var(--av-white);
}

body.av369.single-product.av-sales-catalog .av-enquire .av-catalog-actions--band .av-catalog-cta-link:hover {
  background: var(--av-white);
  color: #000;
}

body.av369.single-product.av-sales-catalog .av-enquire-call {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  box-sizing: border-box;
  margin: 32px 0 0 12px;
  padding: 0 24px;
  border: 1px solid var(--av-white);
  border-radius: 0;
  background: transparent;
  color: var(--av-white);
  font: 600 12px/16px var(--av-font);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  text-decoration: none;
  vertical-align: top;
  transition: background-color 0.2s, color 0.2s;
}

body.av369.single-product.av-sales-catalog .av-enquire-call:hover {
  background: var(--av-white);
  color: #000;
}

/* Keyboard focus never stacks into a double frame: it is always an outline. */
body.av369.woocommerce-page :is(.av-card, .av-row-back, .av-row-item, .av-thumb, .av-section-bar a, .av-dl, .av-hero-sheet, .av-related-all, .av-catalog-cta, .av-catalog-cta-link, .av-enquire-call):focus-visible {
  outline: 3px solid var(--av-focus);
  outline-offset: 4px;
}

/* Item 2: remaining catalogue form controls (search field, the native details/summary
   series menu, any surviving sort select) get the same focus ring — never a bare
   outline:none. The token is dark gold on light pages, bright gold on av-dark. */
body.av369.woocommerce-page :is(.av-row-search input[type="search"], .av-list-sort select, .av-series > summary, .av-series a):focus-visible {
  outline: 3px solid var(--av-focus);
  outline-offset: 2px;
}

/* --- UXR11 floating back-to-top button ----------------------------------- */
/* Fixed bottom-right on catalogue product and listing surfaces. JS toggles the
   [hidden] attribute; we keep the element laid out so it can fade in and out. It
   sits above content but below the sticky section bar and the preview badge. */
body.av369.woocommerce-page .av-to-top {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 0;
  background: #000;
  color: #fff;
  font: 400 20px/1 var(--av-font);
  text-decoration: none;
  opacity: 1;
  transform: translateY(0);
  visibility: visible;
  transition: opacity 0.2s, transform 0.2s, visibility 0s;
}

body.av369.woocommerce-page .av-to-top[hidden] {
  display: inline-flex;
  opacity: 0;
  transform: translateY(8px);
  visibility: hidden;
  pointer-events: none;
  /* UXR15 A5: the button fades, then visibility flips to hidden so it leaves the
     focus order; showing it (base rule, no delay) flips visibility back at once. */
  transition: opacity 0.2s, transform 0.2s, visibility 0s linear 0.2s;
}

body.av369.woocommerce-page .av-to-top:focus-visible {
  outline: 3px solid var(--av-focus);
  outline-offset: 3px;
}

@media (min-width: 768px) {
  body.av369.woocommerce-page .av-to-top {
    right: 24px;
    bottom: 24px;
  }
}

/* --- Cart / checkout / account (native WooCommerce, kept neutral) -------- */
body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content :is(h1, h2, h3) {
  color: var(--av-ink);
  font-family: var(--av-font);
  text-transform: uppercase;
}

body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content .av-band .av-band-title {
  color: var(--av-white);
}

body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content label,
body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .woocommerce form .form-row label {
  color: var(--av-ink);
  font: 400 11px/17.6px var(--av-font);
  letter-spacing: 1.76px;
  text-transform: uppercase;
}

body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]),
body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content select,
body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content textarea {
  max-width: 100%;
  height: 48px;
  border: 1px solid var(--av-input-line);
  border-radius: 0;
  background: var(--av-white);
  color: var(--av-ink);
  font-family: var(--av-font);
}

body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content textarea {
  height: auto;
}

body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content :is(input, select, textarea):focus {
  border-color: #000;
}

body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content :is(input[type="checkbox"], input[type="radio"]) {
  accent-color: #000;
}

body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content :is(.woocommerce-button, .button, button[type="submit"], .wc-block-components-button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: auto;
  min-height: 48px;
  padding: 15px 28px;
  border: 1px solid #000;
  border-radius: 0;
  background: #000;
  color: var(--av-white);
  font: 600 12px/16px var(--av-font);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  text-decoration: none;
}

body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content :is(.woocommerce-button, .button, button[type="submit"], .wc-block-components-button):hover {
  background: #333;
  color: var(--av-white);
}

body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content form:is(.login, .register) {
  border: 1px solid var(--av-line);
  border-radius: 0;
  background: var(--av-white);
}

body.av369:is(.woocommerce-cart, .woocommerce-checkout, .woocommerce-account) .entry-content a:not(.button):not(.wc-block-components-button) {
  color: var(--av-ink);
}

body.av369.woocommerce-cart .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
  display: none;
}

body.av369.woocommerce-cart .wc-block-grid__products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin: 0;
  padding: 0;
}

body.av369.woocommerce-cart .wc-block-grid__product {
  width: auto;
  max-width: none;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 1px solid var(--av-line);
  border-radius: 0;
  box-shadow: none;
  background: var(--av-white);
  overflow-wrap: anywhere;
}

body.av369.woocommerce-cart .wc-block-grid__product img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  padding: 16px;
  background: var(--av-white);
  object-fit: contain;
}

body.av369.woocommerce-cart .wc-block-grid__product-title {
  margin: 12px 16px 16px;
  padding: 0;
  color: var(--av-ink);
  font: 600 16px/24px var(--av-font);
  letter-spacing: 0.9px;
  text-transform: uppercase;
}

/* --- Responsive ---------------------------------------------------------- */
@media (max-width: 1024px) {
  body.av369.woocommerce-cart .wc-block-grid__products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 999px) {
  /* Keep all shop content below the fixed bar; its backing scrolls away. */
  body.av369.woocommerce-page #wrapper {
    padding-top: 0 !important;
    background-image: none !important;
  }
  body.av369.woocommerce-page #inner-wrap {
    padding-top: 68px;
    background-size: 100% 68px;
  }
}

@media (max-width: 900px) {
  body.av369.single-product.av-sales-catalog .av-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }

  body.av369.single-product.av-sales-catalog .av-hero-stage {
    max-height: none;
  }

  body.av369.single-product.av-sales-catalog .av-hero-keys > div {
    grid-template-columns: 130px minmax(0, 1fr);
  }
}

@media (max-width: 767px) {
  body.av369.woocommerce-page .av-band-inner {
    padding: 32px 16px;
  }

  body.av369.woocommerce-page .av-band-title {
    font-size: 36px;
    line-height: 40px;
    letter-spacing: 2px;
  }

  body.av369.woocommerce-page .av-band-logo {
    height: 52px;
  }

  body.av369.woocommerce-page .av-band-logo--child {
    height: 44px;
  }

  body.av369.woocommerce-page .av-row-inner {
    align-items: stretch;
    padding-top: 16px;
  }

  body.av369.woocommerce-page .av-row-search {
    order: -1;
    width: 100%;
    margin-left: 0;
    padding: 0 0 8px;
  }

  body.av369.woocommerce-page .av-row-search input[type="search"] {
    width: 100%;
  }

  body.av369.woocommerce-page .av-row-nav {
    flex-wrap: nowrap;
    gap: 24px;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body.av369.woocommerce-page .av-row-nav::-webkit-scrollbar {
    display: none;
  }

  body.av369.woocommerce-page :is(.av-row-back, .av-row-item) {
    flex-shrink: 0;
    min-height: 52px;
  }

  body.av369.woocommerce-page:is(.post-type-archive-product, .tax-product_cat, .search-results) .av-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    padding-bottom: 48px;
  }

  body.av369.woocommerce-page .av-card-media {
    padding: 14px;
  }

  body.av369.woocommerce-page .av-card-body {
    gap: 3px;
    padding: 2px 12px 14px;
  }

  body.av369.woocommerce-page .av-card-title {
    font-size: 16px;
    line-height: 21px;
    letter-spacing: 0.7px;
  }

  body.av369.woocommerce-page .av-card-desc {
    min-height: 36px;
    font-size: 13px;
    line-height: 18px;
  }

  body.av369.single-product.av-sales-catalog .av-product-hero .av-shell {
    padding-block: 8px 36px;
  }

  body.av369.single-product.av-sales-catalog .av-hero-title {
    font-size: 34px;
    line-height: 40px;
    letter-spacing: 1px;
  }

  body.av369.single-product.av-sales-catalog .av-hero-deck {
    font-size: 18px;
    line-height: 26px;
  }

  /* Buy box, phone (MT-Product): smaller price, controls stack full-width. */
  body.av369.single-product.av-sales-catalog .av-buy-price {
    margin-top: 20px;
    padding-top: 18px;
  }

  body.av369.single-product.av-sales-catalog .av-buy-amount {
    gap: 8px;
  }

  body.av369.single-product.av-sales-catalog .av-buy-net {
    font-size: 34px;
    line-height: 42px;
  }

  body.av369.single-product.av-sales-catalog .av-buy-vat {
    font-size: 13px;
  }

  body.av369.single-product.av-sales-catalog .av-buy-group .av-chip {
    padding: 0 16px;
  }

  body.av369.single-product.av-sales-catalog .av-buy--js .av-catalog-purchase .single_add_to_cart_button {
    flex: 1 1 auto;
  }

  body.av369.single-product.av-sales-catalog .av-buy--js .av-catalog-purchase .av-catalog-cta-link,
  body.av369.single-product.av-sales-catalog .av-buy--js > .av-buy-quote {
    flex: 1 1 100%;
    justify-content: center;
  }

  body.av369.single-product.av-sales-catalog .av-buy--js > .av-catalog-purchase {
    flex: 1 1 100%;
  }

  body.av369.single-product.av-sales-catalog .av-thumbs {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body.av369.single-product.av-sales-catalog .av-thumbs::-webkit-scrollbar {
    display: none;
  }

  body.av369.single-product.av-sales-catalog .av-thumb {
    flex-shrink: 0;
  }

  body.av369.single-product.av-sales-catalog .av-section-bar .av-shell {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    /* The active link scrolls fully into view, clear of the strip's edges. */
    scroll-padding-inline: var(--av-gutter);
  }

  body.av369.single-product.av-sales-catalog .av-section-bar .av-shell::-webkit-scrollbar {
    display: none;
  }

  /* End spacer so the last link can scroll past the right edge (flex ignores end padding). */
  body.av369.single-product.av-sales-catalog .av-section-bar .av-shell::after {
    content: "";
    flex: 0 0 var(--av-gutter);
  }

  body.av369.single-product.av-sales-catalog .av-section-bar a {
    min-height: 52px;
    white-space: nowrap;
    flex: 0 0 auto;
  }

  body.av369.single-product.av-sales-catalog :is(.av-overview, .av-specs, .av-downloads, .av-related) .av-shell {
    padding-block: 40px;
  }

  body.av369.single-product.av-sales-catalog :is(.av-overview, .av-specs, .av-downloads, .av-related) h2 {
    font-size: 28px;
    line-height: 34px;
  }

  body.av369.single-product.av-sales-catalog .av-overview .av-shell {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  body.av369.single-product.av-sales-catalog .av-overview-body {
    grid-column: auto;
  }

  body.av369.single-product.av-sales-catalog .av-spec-list,
  body.av369.single-product.av-sales-catalog .av-spec-sheet {
    columns: 1 auto;
  }

  body.av369.single-product.av-sales-catalog .av-spec-row {
    grid-template-columns: minmax(0, 1fr);
    gap: 2px;
  }

  body.av369.single-product.av-sales-catalog .av-related .av-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  body.av369.single-product.av-sales-catalog .av-enquire .av-shell {
    /* Extra bottom room so the floating back-to-top button never covers a tap target. */
    padding-block: 48px 88px;
  }

  body.av369.single-product.av-sales-catalog .av-enquire h2 {
    font-size: 28px;
    line-height: 36px;
    letter-spacing: 2.4px;
  }

  body.av369.woocommerce-cart .wc-block-grid__products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* --- Reduced motion ------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  body.av369.woocommerce-page .av-card,
  body.av369.woocommerce-page .av-card-img,
  body.av369.woocommerce-page .av-to-top,
  body.av369.single-product.av-sales-catalog .av-catalog-cta,
  body.av369.single-product.av-sales-catalog .av-catalog-cta-link,
  body.av369.single-product.av-sales-catalog .av-enquire-call {
    transition: none;
  }

  /* No slide on the back-to-top button; it toggles with opacity only. */
  body.av369.woocommerce-page .av-to-top,
  body.av369.woocommerce-page .av-to-top[hidden] {
    transform: none;
  }
}

/* --- body.av-dark variant (Portman presentation) ------------------------- */
/* Portman luminaires only read on black. Lane A adds body.av-dark on the
   Portman brand root, its child archives, Portman catalog products and catalog
   search filtered to portman-lights. Every rule below carries .av-dark so light
   pages are untouched; the extra class also outranks the base shop rules. */
body.av369.av-dark {
  --av-dark-line: rgba(255, 255, 255, 0.1);
  --av-dark-edge: rgba(255, 255, 255, 0.28);
  --av-dark-muted: rgba(255, 255, 255, 0.65);
  --av-dark-hover: rgba(255, 255, 255, 0.85);
  /* Black surfaces keep the bright gold focus ring (~8:1 on #000). */
  --av-focus: #c79b20;
}

/* Base: page and every band pure #000, text white. The body carries the canvas
   colour too, so overscroll and gaps never show the theme's white. */
body.av369.av-dark.woocommerce-page,
body.av369.av-dark.woocommerce-page #inner-wrap,
body.av369.av-dark.woocommerce-page .site,
body.av369.av-dark.woocommerce-page .content-area,
body.av369.av-dark.woocommerce-page .entry-content-wrap {
  background: #000;
}

body.av369.av-dark.woocommerce-page,
body.av369.av-dark.woocommerce-page .site-main {
  color: #fff;
}

/* M1 band */
body.av369.av-dark.woocommerce-page .av-band {
  background: #000;
}

body.av369.av-dark.woocommerce-page .av-band-count {
  color: var(--av-dark-muted);
}

/* M2 row */
body.av369.av-dark.woocommerce-page .av-row {
  background: #000;
  border-bottom-color: var(--av-dark-line);
}

body.av369.av-dark.woocommerce-page :is(.av-row-back, .av-row-item) {
  color: var(--av-dark-muted);
}

body.av369.av-dark.woocommerce-page :is(.av-row-back, .av-row-item):hover,
body.av369.av-dark.woocommerce-page .av-row-item[aria-current="page"] {
  color: #fff;
}

body.av369.av-dark.woocommerce-page .av-row-item[aria-current="page"] {
  border-bottom-color: #fff;
}

body.av369.av-dark.woocommerce-page .av-row-back {
  border-right-color: var(--av-dark-line);
  color: #fff;
}

body.av369.av-dark.woocommerce-page .av-row-count {
  color: var(--av-dark-muted);
}

body.av369.av-dark.woocommerce-page .av-row-search input[type="search"] {
  border-color: var(--av-dark-edge);
  background: #0b0b0b;
  color: #fff;
}

body.av369.av-dark.woocommerce-page .av-row-search input[type="search"]:focus {
  border-color: #fff;
}

body.av369.av-dark.woocommerce-page .av-row-search input[type="search"]::placeholder {
  color: rgba(255, 255, 255, 0.55);
}

/* M3 list bar */
body.av369.av-dark.woocommerce-page .av-list-bar {
  background: #000;
  border-top: 1px solid var(--av-dark-line);
  color: var(--av-dark-muted);
}

body.av369.av-dark.woocommerce-page .av-list-count,
body.av369.av-dark.woocommerce-page .av-list-count .woocommerce-result-count {
  color: var(--av-dark-muted);
}

body.av369.av-dark.woocommerce-page .av-list-sort select {
  border-color: var(--av-dark-edge);
  background: #000;
  color: #fff;
}

/* Pagination on black: muted numbers, white current/hover underline. */
body.av369.av-dark.woocommerce-page .woocommerce-pagination {
  background: #000;
}

body.av369.av-dark.woocommerce-page .woocommerce-pagination .page-numbers {
  color: var(--av-dark-muted);
}

body.av369.av-dark.woocommerce-page .woocommerce-pagination a.page-numbers:hover,
body.av369.av-dark.woocommerce-page .woocommerce-pagination .page-numbers.current {
  color: #fff;
  border-bottom-color: #fff;
}

/* M4 grid + card */
body.av369.av-dark.woocommerce-page:is(.post-type-archive-product, .tax-product_cat, .search-results) .av-grid {
  background: #000;
}

body.av369.av-dark.woocommerce-page .av-card {
  background: #000;
  color: #fff;
  border: 1px solid var(--av-dark-line);
}

body.av369.av-dark.woocommerce-page .av-card:hover {
  outline-color: var(--av-dark-hover);
}

body.av369.av-dark.woocommerce-page .av-card-media {
  background: #000;
}

body.av369.av-dark.woocommerce-page .av-card-title,
body.av369.av-dark.woocommerce-page .av-card-net {
  color: #fff;
}

body.av369.av-dark.woocommerce-page .av-card-price {
  border-top-color: var(--av-dark-line);
}

body.av369.av-dark.woocommerce-page :is(.av-card-brand, .av-card-desc, .av-card-list) {
  color: var(--av-dark-muted);
}

/* M5 product hero */
body.av369.av-dark.single-product.av-sales-catalog .av-product-hero {
  background: #000;
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-crumbs a {
  color: var(--av-dark-muted);
}

body.av369.av-dark.single-product.av-sales-catalog .av-crumbs a:hover {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-crumbs > span[aria-hidden="true"] {
  color: rgba(255, 255, 255, 0.3);
}

body.av369.av-dark.single-product.av-sales-catalog .av-crumbs [aria-current="page"] {
  color: #fff;
}

/* The stage has no white panel: Portman photos sit on black. */
body.av369.av-dark.single-product.av-sales-catalog .av-hero-stage {
  background: #000;
  border: 0;
}

body.av369.av-dark.single-product.av-sales-catalog .av-thumb {
  background: #000;
  border-color: rgba(255, 255, 255, 0.18);
}

body.av369.av-dark.single-product.av-sales-catalog .av-thumb[aria-pressed="true"] {
  border-color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-title {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-deck {
  color: #fff;
}

/* Deck lead: shown (24/34, white) when the cine hero carries the h1. */
body.av369.av-dark.single-product.av-sales-catalog .av-hero-deck--lead {
  margin: 0;
  font: 400 24px/34px var(--av-font);
  color: #fff;
}

/* UXR12: on black the model line is muted body text with a white model code. */
body.av369.av-dark.single-product.av-sales-catalog .av-hero-model {
  color: var(--av-dark-muted);
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-model strong {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-keys > div {
  border-top-color: rgba(255, 255, 255, 0.14);
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-keys dt {
  color: var(--av-dark-muted);
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-keys dd {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-options > div {
  border-top-color: rgba(255, 255, 255, 0.14);
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-options dt {
  color: var(--av-dark-muted);
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-options .av-chip {
  border-color: var(--av-dark-edge);
  background: #000;
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-options .av-chip:hover {
  border-color: var(--av-dark-hover);
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-options .av-chip[aria-pressed="true"] {
  border-color: #fff;
  background: #fff;
  color: #000;
}

/* Buttons: primary white on black text; secondary white outline. */
body.av369.av-dark.single-product.av-sales-catalog .av-catalog-cta {
  border-color: #fff;
  background: #fff;
  color: #000;
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-cta:hover {
  background: #d9d9d9;
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-cta-link {
  border-color: #fff;
  background: transparent;
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-cta-link:hover {
  background: #fff;
  color: #000;
}

body.av369.av-dark.single-product.av-sales-catalog :is(.av-cta-note, .av-catalog-cta-note) {
  color: var(--av-dark-muted);
}

body.av369.av-dark.single-product.av-sales-catalog :is(.av-cta-note, .av-catalog-cta-note) a {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-hero-sheet {
  color: #fff;
}

/* M6 section bar + sections: all #000, 1px white .1 separators, no grey bands. */
body.av369.av-dark.single-product.av-sales-catalog .av-section-bar {
  background: #000;
  border-bottom-color: var(--av-dark-line);
}

body.av369.av-dark.single-product.av-sales-catalog .av-section-bar a {
  color: var(--av-dark-muted);
}

body.av369.av-dark.single-product.av-sales-catalog .av-section-bar a:hover,
body.av369.av-dark.single-product.av-sales-catalog .av-section-bar a[aria-current="true"] {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-section-bar a[aria-current="true"] {
  border-bottom-color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog :is(.av-overview, .av-specs, .av-downloads, .av-related) {
  background: #000;
  border-bottom: 1px solid var(--av-dark-line);
}

body.av369.av-dark.single-product.av-sales-catalog :is(.av-overview, .av-specs, .av-downloads, .av-related) h2 {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-overview-body p,
body.av369.av-dark.single-product.av-sales-catalog .av-catalog-overview-copy p,
body.av369.av-dark.single-product.av-sales-catalog .av-catalog-overview-excerpt {
  color: var(--av-dark-muted);
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-more summary {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-spec-row {
  border-bottom-color: var(--av-dark-line);
}

body.av369.av-dark.single-product.av-sales-catalog .av-spec-row dt {
  color: var(--av-dark-muted);
}

body.av369.av-dark.single-product.av-sales-catalog .av-spec-row dd {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-spec-variant-hint {
  color: var(--av-dark-muted);
}

body.av369.av-dark.single-product.av-sales-catalog .av-spec-sheet li {
  border-bottom-color: var(--av-dark-line);
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-dl-list {
  border-top-color: var(--av-dark-line);
}

body.av369.av-dark.single-product.av-sales-catalog .av-dl-list li {
  border-bottom-color: var(--av-dark-line);
}

body.av369.av-dark.single-product.av-sales-catalog .av-dl {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-dl-type {
  border-color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-related-all {
  color: var(--av-dark-muted);
}

body.av369.av-dark.single-product.av-sales-catalog .av-related-all:hover {
  color: #fff;
}

/* Closing "Planning a show?" band goes black too. */
body.av369.av-dark.single-product.av-sales-catalog .av-enquire {
  background: #000;
  border-top: 1px solid var(--av-dark-line);
}

/* UXR11: back-to-top button inverts on black — white square, black arrow. */
body.av369.av-dark.woocommerce-page .av-to-top {
  border-color: rgba(0, 0, 0, 0.2);
  background: #fff;
  color: #000;
}

/* Buy box on black: same shape, white on black (B2). */
body.av369.av-dark.single-product.av-sales-catalog .av-buy-price {
  border-top-color: var(--av-dark-edge);
}

body.av369.av-dark.single-product.av-sales-catalog .av-buy-label,
body.av369.av-dark.single-product.av-sales-catalog .av-buy-vat,
body.av369.av-dark.single-product.av-sales-catalog .av-buy-list,
body.av369.av-dark.single-product.av-sales-catalog .av-buy-variant,
body.av369.av-dark.single-product.av-sales-catalog .av-buy-group legend,
body.av369.av-dark.single-product.av-sales-catalog .av-buy-hint {
  color: var(--av-dark-muted);
}

body.av369.av-dark.single-product.av-sales-catalog .av-buy-net {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-buy-group .av-chip {
  border-color: var(--av-dark-edge);
  background: #000;
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-buy-group .av-chip:hover {
  border-color: var(--av-dark-hover);
}

body.av369.av-dark.single-product.av-sales-catalog .av-buy-group .av-chip[aria-pressed="true"] {
  border-color: #fff;
  background: #fff;
  color: #000;
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-purchase .quantity input.qty {
  border-color: var(--av-dark-edge);
  background: #000;
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-purchase .quantity.av-qty {
  border-color: var(--av-dark-edge);
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-purchase .quantity.av-qty input.qty {
  border-left-color: var(--av-dark-line);
  border-right-color: var(--av-dark-line);
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-purchase .av-qty-step {
  background: #000;
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-purchase .av-qty-step:hover {
  background: #111;
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button {
  border-color: #fff;
  background: #fff;
  color: #000;
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button:hover {
  background: #d9d9d9;
}

body.av369.av-dark.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button.disabled,
body.av369.av-dark.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button:disabled,
body.av369.av-dark.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button.wc-variation-selection-needed {
  border-color: var(--av-dark-edge);
  background: rgba(255, 255, 255, 0.18);
  color: var(--av-dark-muted);
}

/* --- M7 cine hero / M8 features / M9 film (dark Portman only) ------------- */
body.av369.av-dark.single-product.av-sales-catalog :is(.av-cine, .av-features, .av-film) {
  width: 100vw;
  margin-inline: calc(50% - 50vw);
}

/* M7 cinematic hero */
body.av369.av-dark.single-product.av-sales-catalog .av-cine {
  position: relative;
  height: 60vh;
  min-height: 420px;
  max-height: 680px;
  overflow: hidden;
  background: #000;
}

body.av369.av-dark.single-product.av-sales-catalog .av-cine-video,
body.av369.av-dark.single-product.av-sales-catalog .av-cine-poster {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.av369.av-dark.single-product.av-sales-catalog .av-cine-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0) 45%);
}

/* Brand line, title and tagline stack bottom-left; the toggle is a sibling, pinned bottom-right. */
body.av369.av-dark.single-product.av-sales-catalog .av-cine-caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  box-sizing: border-box;
  display: block;
  padding: 0 var(--av-pad) 56px;
}

body.av369.av-dark.single-product.av-sales-catalog .av-cine-brand {
  margin: 0;
  color: var(--av-dark-muted);
  font: 400 13px/20px var(--av-font);
  letter-spacing: 2.4px;
  text-transform: uppercase;
}

body.av369.av-dark.single-product.av-sales-catalog .av-cine-brand a {
  color: inherit;
  text-decoration: none;
}

body.av369.av-dark.single-product.av-sales-catalog .av-cine-brand a:hover {
  color: #fff;
}

body.av369.av-dark.single-product.av-sales-catalog .av-cine-title {
  margin: 8px 0 0;
  color: #fff;
  font: 600 96px/96px var(--av-font);
  letter-spacing: 6px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

body.av369.av-dark.single-product.av-sales-catalog .av-cine-tagline {
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.85);
  font: 400 22px/30px var(--av-font);
}

body.av369.av-dark.single-product.av-sales-catalog .av-cine-toggle {
  position: absolute;
  right: var(--av-pad);
  bottom: 56px;
  z-index: 2;
  height: 44px;
  padding: 0 18px;
  border: 1px solid rgba(255, 255, 255, 0.8);
  border-radius: 0;
  background: rgba(0, 0, 0, 0.35);
  color: #fff;
  font: 600 11px/16px var(--av-font);
  letter-spacing: 1.6px;
  text-transform: uppercase;
  cursor: pointer;
}

body.av369.av-dark.single-product.av-sales-catalog .av-cine-toggle:hover {
  background: #fff;
  color: #000;
}

/* M8 features */
body.av369.av-dark.single-product.av-sales-catalog .av-features {
  background: #000;
  border-bottom: 1px solid var(--av-dark-line);
}

body.av369.av-dark.single-product.av-sales-catalog .av-features .av-shell {
  display: flex;
  flex-direction: column;
  gap: 96px;
  padding-block: 96px;
}

body.av369.av-dark.single-product.av-sales-catalog .av-feature {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
  gap: 40px 80px;
  align-items: center;
}

body.av369.av-dark.single-product.av-sales-catalog .av-feature--flip .av-feature-media {
  order: 2;
}

body.av369.av-dark.single-product.av-sales-catalog .av-feature--flip .av-feature-copy {
  order: 1;
}

body.av369.av-dark.single-product.av-sales-catalog .av-feature-media {
  min-width: 0;
}

body.av369.av-dark.single-product.av-sales-catalog .av-feature-media :is(video, img) {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background: #000;
}

/* Still images are Portman's own feature graphics on black (often portrait):
   show them whole inside the 16:9 frame rather than cropping. */
body.av369.av-dark.single-product.av-sales-catalog .av-feature-media > img {
  object-fit: contain;
}

body.av369.av-dark.single-product.av-sales-catalog .av-feature-copy h2 {
  margin: 0;
  color: #fff;
  font: 600 36px/42px var(--av-font);
  letter-spacing: 0.6px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

body.av369.av-dark.single-product.av-sales-catalog .av-feature-copy p {
  margin: 18px 0 0;
  max-width: 46ch;
  color: rgba(255, 255, 255, 0.75);
  font: 400 18px/28px var(--av-font);
}

/* M9 film: self-hosted poster as the only inline style; iframe only on click. */
body.av369.av-dark.single-product.av-sales-catalog .av-film {
  background: #000;
  border-bottom: 1px solid var(--av-dark-line);
}

body.av369.av-dark.single-product.av-sales-catalog .av-film-link {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  max-height: 90vh;
  background-color: #000;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  color: #fff;
  text-decoration: none;
}

body.av369.av-dark.single-product.av-sales-catalog .av-film-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 35%);
}

body.av369.av-dark.single-product.av-sales-catalog .av-film-label {
  position: absolute;
  left: var(--av-pad);
  bottom: 56px;
  display: inline-flex;
  align-items: center;
  gap: 14px;
  height: 56px;
  padding: 0 26px 0 20px;
  border: 1px solid #fff;
  background: rgba(0, 0, 0, 0.45);
  font: 600 13px/16px var(--av-font);
  letter-spacing: 2px;
  text-transform: uppercase;
}

body.av369.av-dark.single-product.av-sales-catalog .av-film-link:hover .av-film-label {
  background: #fff;
  color: #000;
}

body.av369.av-dark.single-product.av-sales-catalog .av-film-frame {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Keyboard focus stays gold on the new dark controls. */
body.av369.av-dark.single-product.av-sales-catalog :is(.av-cine-toggle, .av-cine-brand a, .av-film-link):focus-visible {
  outline: 3px solid #c79b20;
  outline-offset: 4px;
}

/* Dark responsive (phone): follows MZ-/MP- mock-up source values. */
@media (max-width: 767px) {
  body.av369.av-dark.single-product.av-sales-catalog .av-cine {
    height: 480px;
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-cine-shade {
    background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0) 50%);
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-cine-caption {
    padding: 0 72px 24px 16px;
  }

  /* 44x44 icon on phones; the text stays as the accessible name. */
  body.av369.av-dark.single-product.av-sales-catalog .av-cine-toggle {
    right: 16px;
    bottom: 24px;
    width: 44px;
    padding: 0;
    font-size: 0;
    letter-spacing: 0;
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-cine-toggle::before {
    content: "";
    display: block;
    box-sizing: border-box;
    width: 12px;
    height: 14px;
    margin: 0 auto;
    border-left: 4px solid currentColor;
    border-right: 4px solid currentColor;
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-cine-toggle[aria-pressed="false"]::before {
    width: 0;
    height: 0;
    border-right: 0;
    border-left: 12px solid currentColor;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
    transform: translateX(2px);
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-cine-title {
    font-size: 56px;
    line-height: 58px;
    letter-spacing: 3px;
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-cine-tagline {
    font-size: 17px;
    line-height: 24px;
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-features .av-shell {
    gap: 40px;
    padding-block: 40px;
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-feature {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-feature--flip .av-feature-media,
  body.av369.av-dark.single-product.av-sales-catalog .av-feature--flip .av-feature-copy {
    order: 0;
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-feature-copy h2 {
    font-size: 24px;
    line-height: 30px;
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-feature-copy p {
    font-size: 16px;
    line-height: 25px;
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-film-label {
    left: 16px;
    bottom: 16px;
    height: 48px;
  }
}

/* --- body.av-f1: Funktion-One violet accents on the shared layout (R2) --- */
/* 369AV owns the layout; Funktion-One only changes colour. These rules recolour the
   shared light markup with the F1 violet (#33294A, hover #4a3d69) and change nothing
   else: no sizes, fonts, radii, padding, grid or order. Each selector carries .av-f1 at
   the same compound as its base rule so the F1 colour wins. Header, footer, page
   backgrounds, specs, downloads and cards (other than the price colour) stay as the
   shared light layout. */

/* Brand band (archives): violet background; logo, count and rule keep their colours. */
body.av369.av-f1.woocommerce-page .av-band {
  background: #33294A;
}

/* Category row: the active item underline is violet. */
body.av369.av-f1.woocommerce-page .av-row-item[aria-current="page"] {
  border-bottom-color: #33294A;
}

/* Pagination: the current page and hover underline are violet. */
body.av369.av-f1.woocommerce-page .woocommerce-pagination a.page-numbers:hover,
body.av369.av-f1.woocommerce-page .woocommerce-pagination .page-numbers.current {
  border-bottom-color: #33294A;
}

/* Section bar: the active (aria-current) link underline is violet. */
body.av369.av-f1.single-product.av-sales-catalog .av-section-bar a[aria-current="true"] {
  border-bottom-color: #33294A;
}

/* UXR11: the product-name back-to-top link hovers violet like the other F1 bar links. */
body.av369.av-f1.single-product.av-sales-catalog .av-section-top:hover {
  color: #33294A;
}

/* Card price. */
body.av369.av-f1.woocommerce-page .av-card-net {
  color: #33294A;
}

/* Buy box: price figure violet. */
body.av369.av-f1.single-product.av-sales-catalog .av-buy-net {
  color: #33294A;
}

/* UXR12: the model code reads in the F1 violet. */
body.av369.av-f1.single-product.av-sales-catalog .av-hero-model strong {
  color: #33294A;
}

/* Buy box + guest option chips: violet border on hover; violet fill + white text when pressed. */
body.av369.av-f1.single-product.av-sales-catalog .av-buy-group .av-chip:hover,
body.av369.av-f1.single-product.av-sales-catalog .av-hero-options .av-chip:hover {
  border-color: #33294A;
}

body.av369.av-f1.single-product.av-sales-catalog .av-buy-group .av-chip[aria-pressed="true"],
body.av369.av-f1.single-product.av-sales-catalog .av-hero-options .av-chip[aria-pressed="true"] {
  border-color: #33294A;
  background: #33294A;
  color: #fff;
}

/* Add to cart: violet, hover darker violet. Disabled keeps its grey (re-stated so
   the violet fill above does not leak into the disabled state). */
body.av369.av-f1.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button {
  border-color: #33294A;
  background: #33294A;
}

body.av369.av-f1.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button:hover {
  background: #4a3d69;
}

body.av369.av-f1.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button.disabled,
body.av369.av-f1.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button:disabled,
body.av369.av-f1.single-product.av-sales-catalog .av-catalog-purchase .single_add_to_cart_button.wc-variation-selection-needed {
  border-color: var(--av-line);
  background: var(--av-line);
  color: var(--av-body-ink);
}

/* Guest hero: primary CTA violet, hover darker violet. */
body.av369.av-f1.single-product.av-sales-catalog .av-catalog-cta {
  border-color: #33294A;
  background: #33294A;
}

body.av369.av-f1.single-product.av-sales-catalog .av-catalog-cta:hover {
  background: #4a3d69;
}

/* Outline buttons (guest hero link + the buy box quote button): violet border and text,
   hover fills violet with white text. */
body.av369.av-f1.single-product.av-sales-catalog .av-catalog-cta-link {
  border-color: #33294A;
  color: #33294A;
}

body.av369.av-f1.single-product.av-sales-catalog .av-catalog-cta-link:hover {
  background: #33294A;
  color: #fff;
}

/* Enquire band: violet background. Its buttons keep their light-on-dark treatment. */
body.av369.av-f1.single-product.av-sales-catalog .av-enquire {
  background: #33294A;
}

/* UXR11: back-to-top button in F1 violet, hover darker violet (white arrow kept). */
body.av369.av-f1.woocommerce-page .av-to-top {
  background: #33294A;
}

body.av369.av-f1.woocommerce-page .av-to-top:hover {
  background: #4a3d69;
}

/* Cart and checkout: variation descriptions repeat the attributes WooCommerce already lists
   ("Protection: Standard. Colour: Black." above "Protection: Standard / Colour: Black"),
   so the description line is hidden there. Product data is not edited. */
body.av369 :is(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout, .wc-block-mini-cart__drawer) .wc-block-components-product-metadata__description {
  display: none;
}

/* ==========================================================================
   UXR15 Lane C — shop-surface styling for the hardened/clarified markup
   (K2 no-results · K3 guest cart · K4 keep-case + units · K5 brand-band logo
   H1 · K6 no-JS option chips form + hint · pending dashboard note · B3 register
   field layout). The 404 band (K1), the CF7 invalid border and the quote-mode
   subline note live in style.css, which is always loaded (catalog.css is only
   enqueued on WooCommerce surfaces). av-dark/av-f1 variants follow each block.
   ========================================================================== */

/* --- K2 no-results ------------------------------------------------------- */
body.av369.woocommerce-page .av-noresults {
  margin: 0 0 32px;
  padding: 32px 24px;
  border: 1px solid var(--av-line);
  background: var(--av-white);
  color: var(--av-ink);
  text-align: center;
}

body.av369.woocommerce-page .av-noresults p {
  margin: 0;
  color: var(--av-ink);
  font: 400 16px/26px var(--av-font);
}

body.av369.woocommerce-page .av-noresults p + p {
  margin-top: 16px;
}

body.av369.woocommerce-page .av-noresults-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px 20px;
}

body.av369.woocommerce-page .av-noresults a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--av-ink);
  text-decoration: underline;
}

body.av369.woocommerce-page .av-noresults-note {
  color: var(--av-muted);
  font-size: 14px;
}

/* --- K3 guest empty cart ------------------------------------------------- */
body.av369.woocommerce-cart .av-cart-empty {
  max-width: 620px;
  margin: 0 auto;
  padding: 48px 0;
  text-align: center;
}

body.av369.woocommerce-cart .av-cart-empty p {
  margin: 0;
  color: var(--av-ink);
  font: 400 18px/28px var(--av-font);
}

body.av369.woocommerce-cart .av-cart-empty-links {
  margin: 16px 0 0;
  color: var(--av-muted);
  font: 400 13px/26px var(--av-font);
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

body.av369.woocommerce-cart .av-cart-empty-links a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--av-ink);
  text-decoration: none;
}

body.av369.woocommerce-cart .av-cart-empty-links a:hover {
  text-decoration: underline;
}

/* --- Pending trade-account dashboard note (light info box) --------------- */
body.av369.woocommerce-account .av-pending-note {
  margin: 0 0 24px;
  padding: 16px 20px;
  border: 1px solid var(--av-line);
  background: var(--av-surface);
  color: var(--av-ink);
  font: 400 15px/24px var(--av-font);
}

/* --- K4 keep-case (titles/labels that must not be force-uppercased) ------ */
/* Each selector carries .av-keep-case at the element so it outranks the base
   uppercase rule on card titles, the hero h1, the breadcrumb current item and
   the section-bar product name. .av-unit already covers the unit spans. */
body.av369.woocommerce-page .av-card-title.av-keep-case,
body.av369.single-product.av-sales-catalog .av-hero-title.av-keep-case,
body.av369.single-product.av-sales-catalog .av-crumbs .av-keep-case,
body.av369.single-product.av-sales-catalog .av-section-top.av-keep-case {
  text-transform: none;
}

/* --- K5 brand-band H1 logo (root bands) ---------------------------------- */
/* The logo moves inside the H1; the H1 renders as the logo image, no text
   metrics or margins. Sized like the current .av-band-logo. Child bands keep
   .av-band-logo and are unchanged. */
body.av369.woocommerce-page .av-band-title--logo {
  margin: 0;
  line-height: 0;
}

body.av369.woocommerce-page .av-band-title--logo img {
  display: block;
  width: auto;
  height: 96px;
  max-width: min(380px, 80vw);
  margin: 0 auto;
  object-fit: contain;
}

@media (max-width: 767px) {
  body.av369.woocommerce-page .av-band-title--logo img {
    height: 52px;
  }
}

/* --- K6 no-JS guest option chips form + hint ----------------------------- */
/* The form only wraps the existing option dl, adding no box of its own; the
   submit chips reuse the .av-hero-options .av-chip language (pressed/hover/
   focus + av-dark/av-f1) already defined above. */
body.av369.single-product.av-sales-catalog .av-hero-options-form {
  margin: 0;
  padding: 0;
  border: 0;
}

body.av369.single-product.av-sales-catalog .av-options-hint {
  margin: 12px 0 0;
  color: var(--av-body-ink);
  font: 400 15px/22px var(--av-font);
}

/* --- B3 register fields: two per row from 768px, one per row below ------- */
/* Lane T adds the trade-account fields as WooCommerce p.form-row elements. All
   direct children span both columns by default (intro note, policy text, submit,
   WooCommerce's own wide rows); only paired p.form-row fields flow two-up. */
@media (min-width: 768px) {
  body.av369.woocommerce-account .woocommerce-form-register {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 24px;
    align-items: start;
  }

  body.av369.woocommerce-account .woocommerce-form-register > * {
    grid-column: 1 / -1;
  }

  body.av369.woocommerce-account .woocommerce-form-register > p.form-row:not(.form-row-wide) {
    grid-column: auto;
    float: none;
    width: auto;
    margin-bottom: 16px;
  }
}

/* --- av-dark variants (Portman surfaces) --------------------------------- */
/* K2: info boxes and no-results go black with light text (WooCommerce's own
   .woocommerce-info is white in the shared block above). */
body.av369.av-dark.woocommerce-page .woocommerce-info,
body.av369.av-dark.woocommerce-page .av-noresults {
  background: #000;
  border-color: var(--av-dark-line);
  color: #fff;
}

body.av369.av-dark.woocommerce-page .av-noresults p,
body.av369.av-dark.woocommerce-page .av-noresults a {
  color: #fff;
}

body.av369.av-dark.woocommerce-page .av-noresults-note {
  color: var(--av-dark-muted);
}

/* K6: the options hint is muted light on black. */
body.av369.av-dark.single-product.av-sales-catalog .av-options-hint {
  color: var(--av-dark-muted);
}

/* UXR16 item 2: native/hash fallback; 64px links plus the 1px bar border. */
body.av369.single-product.av-sales-catalog :is(.av-overview, .av-specs, .av-downloads, .av-related, .av-enquire)[id] {
  scroll-margin-top: calc(var(--av-sticky-top, 0px) + 65px);
}

/* UXR16: one listing row, compact cards and a two-column product hero on tablets. */
@media (min-width: 768px) and (max-width: 1024px) {
  body.av369.woocommerce-page .av-row-inner {
    flex-wrap: nowrap;
  }

  body.av369.woocommerce-page .av-row-nav {
    flex: 1 1 auto;
    min-width: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
  }

  body.av369.woocommerce-page .av-row-nav::-webkit-scrollbar {
    display: none;
  }

  body.av369.woocommerce-page :is(.av-row-back, .av-row-item) {
    flex-shrink: 0;
    white-space: nowrap;
    min-height: 56px;
  }

  body.av369.woocommerce-page .av-row-search {
    flex: 0 0 200px;
    min-width: 0;
    padding-block: 6px;
  }

  body.av369.woocommerce-page .av-row-search input[type="search"] {
    width: 100%;
  }

  body.av369.single-product.av-sales-catalog .av-hero {
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: 32px 40px;
  }

  body.av369.single-product.av-sales-catalog .av-hero-stage {
    max-height: 620px;
  }

  body.av369.single-product.av-sales-catalog .av-hero-keys > div {
    grid-template-columns: 130px minmax(0, 1fr);
  }

  body.av369.woocommerce-page:is(.post-type-archive-product, .tax-product_cat, .search-results) .av-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  body.av369.woocommerce-page:is(.post-type-archive-product, .tax-product_cat, .search-results) .av-card-media {
    padding: 20px;
  }

  body.av369.single-product.av-sales-catalog .av-related .av-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.av369.av-dark.single-product.av-sales-catalog .av-feature {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  }
}

@media (min-width: 900px) and (max-width: 1024px) {
  body.av369.single-product.av-sales-catalog .av-related .av-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 768px) and (max-width: 1024px) and (max-height: 820px) {
  body.av369.woocommerce-page .av-band-inner,
  body.av369.woocommerce-page .av-band--page .av-band-inner {
    padding-block: 32px;
  }
}

/* UXR16 item 9: touch-only enlargement without moving the visible labels/icons. */
@media (pointer: coarse) {
  body.av369.single-product.av-sales-catalog .av-crumbs a {
    display: inline-flex;
    align-items: center;
    padding-block: 14px;
    margin-block: -14px;
  }

  body.av369.woocommerce-account .woocommerce-form-login__rememberme {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-block: 13.2px;
    margin-block: -13.2px;
  }

  body.av369.woocommerce-account .show-password-input::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 44px;
    height: 44px;
    transform: translate(-50%, -50%);
  }
}

/* --- Trade account dashboard (WEB369-65) --------------------------------- */
body.av369.logged-in.woocommerce-account .account-navigation-wrap li.is-active a,
body.av369.logged-in.woocommerce-account .account-navigation-wrap li.is-active a:hover {
  border-color: #000;
  color: #000;
}

/* The theme's avatar block shows the login name; hide it on every account page. */
body.av369.logged-in.woocommerce-account .kadence-account-avatar {
  display: none;
}

/* Addresses: modest titles with the add/edit link on the same line. */
body.av369.logged-in.woocommerce-account .woocommerce-Address-title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 16px;
  margin-bottom: 8px;
}

/* The theme's clearfix pseudo-elements would become flex items and push the title right. */
body.av369.logged-in.woocommerce-account .woocommerce-Address-title::before,
body.av369.logged-in.woocommerce-account .woocommerce-Address-title::after {
  display: none;
}

body.av369.logged-in.woocommerce-account .woocommerce-Address-title h2 {
  margin: 0;
  font: 400 20px/1.3 var(--av-font);
  letter-spacing: 1px;
}

/* Same modest size for the title of the address edit form. */
body.av369.logged-in.woocommerce-account .woocommerce-MyAccount-content > form > h2 {
  margin: 0 0 16px;
  font: 400 20px/1.3 var(--av-font);
  letter-spacing: 1px;
}

body.av369.logged-in.woocommerce-account .woocommerce-Address-title .edit {
  float: none;
  font-size: 15px;
}

/* Balance our page band's original 64px top / 56px bottom padding. */
body.av369.logged-in.woocommerce-account .av-band--page .av-band-inner {
  padding-block: 56px;
  text-align: center;
}

body.av369.logged-in.woocommerce-account .av-trade-dashboard {
  min-width: 0;
  overflow-wrap: anywhere;
}

/* One plain line: the page band above already carries the big title. */
body.av369.logged-in.woocommerce-account .av-trade-who {
  margin: 0 0 16px;
  color: #171717;
  font: 400 16px/1.5 var(--av-font);
}

body.av369.logged-in.woocommerce-account .av-trade-intro {
  margin: 0 0 24px;
  color: #646464;
}

body.av369.logged-in.woocommerce-account .av-trade-tiles {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

body.av369.logged-in.woocommerce-account .woocommerce-MyAccount-content a.av-trade-tile {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  min-width: 0;
  min-height: 148px;
  padding: 24px;
  border: 1px solid #e5e5e5;
  border-radius: 0;
  background: #fff;
  color: #000;
  text-decoration: none;
}

body.av369.logged-in.woocommerce-account .woocommerce-MyAccount-content a.av-trade-tile:hover,
body.av369.logged-in.woocommerce-account .woocommerce-MyAccount-content a.av-trade-tile:focus-visible {
  border-color: #000;
}

body.av369.logged-in.woocommerce-account .account-navigation-wrap a:focus-visible,
body.av369.logged-in.woocommerce-account .woocommerce-MyAccount-content a.av-trade-tile:focus-visible {
  outline: 2px solid #c79b20;
  outline-offset: 3px;
}

body.av369.logged-in.woocommerce-account .av-trade-tile-label {
  font: 400 24px/1.3 var(--av-font);
  text-transform: uppercase;
  letter-spacing: 1px;
}

body.av369.logged-in.woocommerce-account .av-trade-tile-hint {
  color: #646464;
  font: 400 16px/1.5 var(--av-font);
}

@media (max-width: 767px) {
  body.av369.logged-in.woocommerce-account .av-trade-tiles {
    grid-template-columns: minmax(0, 1fr);
  }

  /* Notices with a button ("No order has been made yet." + Browse products): the right float
     overlaps wrapped text on a phone, so the button goes under the text instead. */
  body.av369.logged-in.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info .button {
    float: none;
    display: inline-flex;
    margin: 12px 0 0;
  }

  body.av369.logged-in.woocommerce-account .av-band--page .av-band-inner {
    padding-block: 40px;
  }
}

/* Pixelhue features and scenarios (WEB369-70): opt-in product metadata only. */
body.av369.single-product.av-sales-catalog .av-pixelhue-media {
  padding-block: 56px;
  min-width: 0;
}
body.av369.single-product.av-sales-catalog .av-pixelhue-media h2 {
  margin: 0 0 24px;
  color: var(--av-ink);
  font: 600 36px/1.2 var(--av-font);
  letter-spacing: 0.6px;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}
body.av369.av-dark.single-product.av-sales-catalog .av-pixelhue-media h2 {
  color: var(--av-white);
}
body.av369.single-product.av-sales-catalog .av-pixelhue-feature-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, 88px);
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
body.av369.single-product.av-sales-catalog .av-pixelhue-feature-tile {
  display: block;
  box-sizing: border-box;
  aspect-ratio: 1;
  width: 100%;
  /* Small tiles like the official strip (icons are 200px source, downscaled). */
  max-width: 88px;
  min-width: 0;
  padding: 0;
  border: 1px solid var(--av-line);
  border-radius: 0;
  background: var(--av-surface);
  color: var(--av-ink);
  text-align: center;
}
body.av369.single-product.av-sales-catalog .av-feature-icon {
  display: block;
  width: 100%;
  height: 100%;
  max-width: 100%;
  object-fit: contain;
  /* Colour toggle: remove this one declaration to restore the official icon colours. */
  filter: grayscale(1);
}
body.av369.single-product.av-sales-catalog .av-pixelhue-scenarios figure {
  margin: 0 auto 24px;
  width: 100%;
  min-width: 0;
}
body.av369.single-product.av-sales-catalog .av-pixelhue-scenario-link {
  display: block;
  max-width: 100%;
}
body.av369.single-product.av-sales-catalog .av-pixelhue-scenario-link img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
}
body.av369.single-product.av-sales-catalog .av-pixelhue-scenario-link:focus-visible {
  outline: 2px solid var(--av-focus);
  outline-offset: 4px;
}
body.av369.single-product.av-sales-catalog .av-pixelhue-scenarios figcaption {
  margin-top: 12px;
  color: var(--av-body-ink);
  font: 400 16px/1.5 var(--av-font);
  overflow-wrap: anywhere;
}
body.av369.av-dark.single-product.av-sales-catalog .av-pixelhue-scenarios figcaption {
  color: var(--av-on-dark);
}
@media (max-width: 900px) {
  body.av369.single-product.av-sales-catalog .av-pixelhue-feature-list {
    grid-template-columns: repeat(auto-fill, 88px);
  }
}
@media (max-width: 600px) {
  body.av369.single-product.av-sales-catalog .av-pixelhue-feature-list {
    grid-template-columns: repeat(auto-fill, 76px);
    gap: 8px;
  }
  body.av369.single-product.av-sales-catalog .av-pixelhue-media h2 {
    font-size: 28px;
  }
}
