/* stylelint-disable -- recovered V3 campaign CSS is an approved visual baseline;
 * maintainable Bad Mafia overrides are linted in ../style.css. */

@font-face {
  font-family: "Bebas Neue";
  src: url("badmafia/bebas-neue-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

:root {
  --black: #050505;
  --paper: #f1efe9;
  --card: #e8e5de;
  --white: #fbfaf6;
  --red: #d31f26;
  --grey: #8c8881;
  --line: rgba(8, 8, 8, .16);
  --pad: clamp(1.25rem, 3.8vw, 3.75rem);
  --display: "Bebas Neue", Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  --body: Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  min-height: 100vh;
  margin: 0;
  display: flex;
  flex-direction: column;
  background: var(--paper);
  color: var(--black);
  font-family: var(--body);
  -webkit-font-smoothing: antialiased;
}
body > main { flex: 1; }
a { color: inherit; text-decoration: none; }
button, input { color: inherit; font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .42; }
img { display: block; max-width: 100%; }
.sr-only {
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  position: absolute;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
:where([hidden]) { display: none !important; }
:where(a, button, input, textarea):focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 3px;
}

.site-header {
  height: clamp(58px, 4.65vw, 72px);
  padding: 0 var(--pad);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 2rem;
  background: var(--black);
  color: var(--white);
  border-bottom: 1px solid rgba(255,255,255,.09);
  position: relative;
  z-index: 30;
}
.site-announcement {
  min-height: 28px;
  padding: .45rem 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--red);
  color: #fff;
  font-size: .52rem;
  font-weight: 900;
  letter-spacing: .13em;
  line-height: 1.3;
  text-align: center;
  text-transform: uppercase;
}
.runlo-maintenance-announcement {
  min-height: 32px;
  padding: .5rem var(--pad);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem 1.25rem;
  flex-wrap: wrap;
  background: var(--red);
  color: var(--white);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.35;
  text-align: center;
  text-transform: uppercase;
}
.runlo-maintenance-announcement strong {
  color: var(--white);
  font-weight: 900;
}
.runlo-maintenance-announcement span + span {
  opacity: .8;
}
@media (max-width: 480px) {
  .site-announcement {
    min-height: 26px;
    padding-inline: .7rem;
    font-size: .6rem;
    letter-spacing: .09em;
  }
  .runlo-maintenance-announcement {
    padding-inline: .7rem;
    font-size: .55rem;
    letter-spacing: .06em;
  }
}
.landing .site-announcement {
  display: none;
}
.landing .site-header {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  padding-left: 2.75vw;
  padding-right: 2.75vw;
  background: linear-gradient(180deg, rgba(0,0,0,.82), rgba(0,0,0,.14));
}
.logo { display: inline-flex; width: max-content; flex-direction: column; line-height: .8; }
.logo strong { font: 1.7rem var(--display); letter-spacing: .12em; }
.logo small { margin-top: .55rem; color: var(--red); font-size: .5rem; font-weight: 900; letter-spacing: .28em; }
.nav { display: flex; align-items: center; gap: clamp(1.6rem, 3vw, 3rem); }
.nav a {
  position: relative;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -.6rem;
  height: 1px;
  background: var(--red);
  transition: right .2s ease;
}
.nav a:hover::after,
.nav a:focus-visible::after,
.nav a[aria-current="page"]::after { right: 0; }
.header-tools { justify-self: end; display: flex; align-items: center; gap: .72rem; }
.demo-search {
  width: 31px;
  height: 31px;
  min-width: 31px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: var(--white);
  font-size: .54rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.demo-search svg { width: 17px; height: 17px; flex: none; }
.demo-search span,
.demo-search em { display: none; }
.demo-search em {
  margin-left: auto;
  padding: .18rem .3rem;
  background: #222;
  color: #888;
  font-size: .6rem;
  font-style: normal;
  letter-spacing: .1em;
}
.header-icon { width: 40px; height: 40px; display: grid; place-items: center; position: relative; }
.header-icon svg { width: 18px; height: 18px; }
.cart-link {
  min-width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  position: relative;
  border: 1px solid rgba(255,255,255,.16);
  font-size: .6rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.cart-link span {
  position: absolute;
  right: -6px;
  top: -6px;
  width: 16px;
  height: 16px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--red);
  color: white;
  font-size: .6rem;
}
.bag-icon span {
  position: absolute;
  right: -3px;
  top: -2px;
  width: 14px;
  height: 14px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--red);
  color: white;
  font-size: .6rem;
  font-weight: 900;
}
.menu-toggle { display: none; }

.hero {
  height: clamp(284px, 24.05vw, 420px);
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: var(--black);
  color: var(--white);
}
.hero__campaign {
  position: absolute;
  inset: 0;
  z-index: -2;
  background-color: var(--black);
  background-image: var(--bad-mafia-hero, url("badmafia/hero-reference-v10.webp"));
  background-position: 5.2vw top;
  background-size: cover;
  background-repeat: no-repeat;
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(0,0,0,.35), transparent 62%);
}
.hero__copy {
  height: 100%;
  padding: 0 var(--pad);
  display: block;
  position: relative;
}
.hero__brandline { display: none; }
.hero__mobile-title { display: none; }
.hero h1 {
  position: absolute;
  left: var(--pad);
  top: 6.8vw;
  margin: 0;
  width: 75%;
  max-width: none;
  color: var(--paper);
  font: 400 clamp(12rem, 20vw, 19rem)/.74 var(--display);
  letter-spacing: .008em;
  text-transform: uppercase;
  white-space: nowrap;
  transform: scaleX(.61);
  transform-origin: left bottom;
}
.hero__meta {
  position: absolute;
  left: var(--pad);
  top: 21.7vw;
  width: min(640px, 48vw);
  margin-top: 0;
  display: flex;
  align-items: center;
  gap: .85rem;
  color: #8f8b84;
  font-size: .6rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.hero__meta strong { color: var(--red); }
.hero__meta i { height: 1px; flex: 1; background: rgba(211,31,38,.5); }
.hero__pager {
  position: absolute;
  right: var(--pad);
  top: 50%;
  display: grid;
  gap: .8rem;
  color: #777;
  font-size: .58rem;
  letter-spacing: .16em;
  transform: translateY(-50%);
}
.hero__pager span::before { content: ""; display: inline-block; width: 18px; height: 1px; margin-right: .65rem; background: #333; vertical-align: middle; }
.hero__pager .is-active { color: var(--red); }
.hero__pager .is-active::before { background: var(--red); }
.hero__cta {
  min-height: 44px;
  padding: .35rem 0;
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  position: absolute;
  right: var(--pad);
  bottom: 1.1rem;
  z-index: 2;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.72);
  background: transparent;
  color: white;
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .15em;
  text-transform: uppercase;
  transition: border-color .2s ease, color .2s ease;
}
.hero__cta b { color: var(--red); font-size: .85rem; }
.hero__cta:hover, .hero__cta:focus-visible { border-color: var(--red); color: white; }
.hero__cta:hover b, .hero__cta:focus-visible b { color: white; }

.drop-section {
  /* The Woo-backed metadata row is part of the card, so let the section grow
   * to its content on larger screens instead of clipping names/prices at the
   * next editorial band. Narrow-screen heights remain intentionally fixed in
   * the responsive rules below to preserve the approved mobile rhythm. */
  height: auto;
  min-height: clamp(200px, 16.85vw, 295px);
  padding: 1.15vw var(--pad);
  display: grid;
  grid-template-columns: 14.3vw minmax(0, 1fr) 3.7vw;
  gap: .75rem;
  background: var(--paper);
}
.drop-intro {
  padding: .3rem .2rem;
  display: grid;
  grid-template-rows: auto 1fr auto;
  align-items: start;
}
.drop-intro h2 {
  margin: 0;
  font: 400 clamp(2.9rem, 4.4vw, 4.8rem)/.82 var(--display);
  letter-spacing: -.02em;
  text-transform: uppercase;
  transform: scaleX(.70);
  transform-origin: left top;
}
.drop-intro__thumb {
  width: 11.1vw;
  height: 5.85vw;
  margin-top: 1rem;
  overflow: hidden;
  background: var(--black);
}
.drop-intro__thumb img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.compact-arrow {
  width: 7.3vw;
  min-width: 88px;
  height: 2.55vw;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-around;
  border: 1px solid var(--black);
}
.compact-arrow span { color: var(--red); }
.drop-rail {
  display: grid;
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(155px, 1fr);
  gap: .68rem;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
}
.drop-rail::-webkit-scrollbar { display: none; }
.drop-card { min-width: 0; position: relative; }
.drop-card__visual {
  height: 14.65vw;
  display: block;
  position: relative;
  overflow: hidden;
  background: var(--card);
}
.drop-card__visual a { width: 100%; height: 100%; display: block; }
.drop-card__visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform .45s cubic-bezier(.2,.75,.25,1);
}
.drop-card:hover img { transform: scale(1.035); }
.drop-card__plus {
  position: absolute;
  top: .45rem;
  right: .55rem;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  color: var(--red);
  font-size: 1.25rem;
  line-height: 1;
}
.drop-card__swatches {
  position: absolute;
  left: .65rem;
  bottom: .55rem;
  display: flex;
  gap: .25rem;
}
.drop-card__swatches i { width: 11px; height: 11px; border: 1px solid #8d8982; background: var(--black); }
.drop-card__swatches i:nth-child(2) { background: #8d8b86; }
.drop-card__swatches i:nth-child(3) { background: var(--paper); }
.drop-card__reveal {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: .55rem .7rem;
  display: flex;
  justify-content: space-between;
  gap: .5rem;
  background: rgba(5,5,5,.9);
  color: white;
  font-size: .5rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(100%);
  transition: .22s ease;
}
.drop-card:hover .drop-card__reveal { opacity: 1; transform: translateY(0); }
.drop-card__reveal strong { color: var(--red); }
.drop-next {
  width: 44px;
  height: 44px;
  align-self: end;
  margin-bottom: .8rem;
  display: grid;
  place-items: center;
  background: var(--black);
  color: white;
}

.manifesto {
  height: clamp(120px, 10.16vw, 178px);
  display: grid;
  grid-template-columns: 13.4vw 21.6vw 32vw minmax(0, 1fr);
  overflow: hidden;
  background: var(--black);
  color: white;
  border-top: 1px solid #252525;
  border-bottom: 1px solid #252525;
}
.manifesto > div { min-width: 0; }
.manifesto__sigil {
  padding: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  color: white;
}
.manifesto__sigil svg { width: 82px; color: white; }
.manifesto__sigil span { font: .85rem var(--display); }
.manifesto__redshot, .manifesto__crew { overflow: hidden; }
.manifesto__redshot img, .manifesto__crew img { width: 100%; height: 100%; object-fit: cover; }
.manifesto__redshot img { object-position: 88% center; filter: saturate(1.35) contrast(1.08); }
.manifesto__crew img { object-position: center; filter: grayscale(1) contrast(1.08); }
.manifesto__statement {
  padding: 1.7rem 2vw;
  display: grid;
  grid-template-columns: minmax(0, .45fr) minmax(0, .55fr);
  align-content: center;
  column-gap: .75rem;
}
.manifesto__statement h2 {
  grid-row: 1 / 3;
  margin: 0;
  width: 128%;
  font: 400 clamp(2rem, 2.72vw, 3rem)/.82 var(--display);
  letter-spacing: .02em;
  text-transform: uppercase;
  white-space: nowrap;
  transform: scaleX(.78);
  transform-origin: left center;
}
.manifesto__statement i { width: 45px; height: 2px; margin-bottom: .7rem; background: var(--red); }
.manifesto__statement p {
  margin: 0;
  color: #a5a19a;
  font: .53rem/1.7 "Courier New", monospace;
}

.community {
  height: clamp(104px, 8.81vw, 154px);
  display: grid;
  grid-template-columns: 12.5vw minmax(0, 1fr);
  overflow: hidden;
  background: var(--black);
  color: white;
}
.community__intro {
  padding: 1rem var(--pad);
  display: grid;
  grid-template-columns: 28px 1fr;
  align-content: center;
  gap: .5rem .7rem;
}
.community__intro svg { width: 25px; }
.community__intro i { height: 1px; align-self: center; background: white; }
.community__intro p { grid-column: 1 / -1; margin: .2rem 0; font: .66rem/1.4 "Courier New", monospace; }
.community__intro a { grid-column: 1 / -1; color: var(--red); font-size: .55rem; font-weight: 900; letter-spacing: .08em; }

.home-categories {
  padding: clamp(4rem, 7vw, 7rem) var(--pad);
  background: var(--paper);
}
.home-categories__head {
  margin-bottom: clamp(2rem, 4vw, 4rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  align-items: end;
  gap: 2rem;
}
.home-categories h2 {
  margin: 0;
  font: clamp(4.8rem, 9vw, 9.5rem)/.78 var(--display);
  letter-spacing: .01em;
  text-transform: uppercase;
}
.home-categories__head > p {
  margin: 0;
  color: #625f59;
  font-size: .72rem;
  line-height: 1.75;
}
.home-categories__grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .8rem;
}
.category-card { min-width: 0; display: block; }
.category-card__image {
  aspect-ratio: .82;
  display: block;
  overflow: hidden;
  background: var(--card);
}
.category-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s cubic-bezier(.2,.75,.25,1);
}
.category-card:hover .category-card__image img { transform: scale(1.025); }
.category-card__info {
  padding: .9rem 0;
  display: grid;
  gap: .35rem;
  border-bottom: 1px solid var(--line);
}
.category-card__info strong {
  font: 1.4rem/.95 var(--display);
  text-transform: uppercase;
}
.category-card__info > span {
  color: #77736d;
  font-size: .68rem;
  line-height: 1.35;
}
.category-card__info b {
  margin-top: .35rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: .6rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.category-card__info b span { color: var(--red); font-size: .9rem; }
.home-categories__empty { min-height: 220px; padding: 2rem; display: grid; place-content: center start; gap: 1rem; border: 1px solid var(--line); }
.home-categories__empty p { margin: 0; color: #625f59; }

.editorial-break {
  min-height: clamp(430px, 48vw, 720px);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(330px, .8fr);
  background: var(--black);
  color: white;
}
.editorial-break__image { min-height: 430px; overflow: hidden; }
.editorial-break__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(1.12) contrast(1.06);
}
.editorial-break__copy {
  padding: clamp(3rem, 7vw, 7rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.editorial-break__copy span {
  color: var(--red);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .22em;
  text-transform: uppercase;
}
.editorial-break__copy h2 {
  margin: 1.2rem 0;
  font: clamp(4.2rem, 7vw, 7.5rem)/.79 var(--display);
  letter-spacing: .015em;
  text-transform: uppercase;
}
.editorial-break__copy p {
  max-width: 390px;
  margin: 0 0 2rem;
  color: #aaa59d;
  font-size: .76rem;
  line-height: 1.8;
}

.site-footer {
  padding: 1.2rem var(--pad);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2rem;
  background: var(--black);
  color: #777;
  border-top: 1px solid #1d1d1d;
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.site-footer__meta { display: grid; gap: .55rem; min-width: 0; }
.site-footer__contact { display: flex; flex-wrap: wrap; gap: .35rem .9rem; align-items: baseline; color: #aaa; line-height: 1.5; }
.site-footer__contact a { color: inherit; text-decoration: none; }
.site-footer__contact a:hover, .site-footer__contact a:focus-visible { color: var(--red); }
.site-footer__contact span { max-width: 42rem; color: #777; }
.site-footer nav { display: flex; gap: 1.5rem; color: #aaa; }
.site-footer__instagram { display: inline-flex; align-items: center; gap: .4rem; }
.site-footer__instagram svg { width: 14px; height: 14px; }

/* Shared shop, product and cart pages */
.page-title {
  padding: clamp(2.15rem, 4.2vw, 3.6rem) var(--pad);
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 2rem;
  background: var(--black);
  color: white;
}
.kicker { margin: 0 0 .8rem; color: var(--red); font-size: .58rem; font-weight: 900; letter-spacing: .2em; text-transform: uppercase; }
.page-title h1, .product-info h1, .cart-title h1, .empty-cart h2 {
  margin: 0;
  font-family: var(--display);
  font-weight: 900;
  letter-spacing: .01em;
  line-height: .84;
  text-transform: uppercase;
}
.page-title h1 { font-size: clamp(3.5rem, 6.5vw, 6.5rem); }
.page-title > p { margin: 0 0 .5rem; color: #8b8780; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.shop-layout { padding: 2rem var(--pad) 6rem; display: grid; grid-template-columns: 185px 1fr; gap: clamp(2rem, 5vw, 5rem); }
.sitemap-page { min-height: 60vh; }
.sitemap-page__content { padding: 2rem var(--pad) 6rem; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 5rem); }
.sitemap-page__section { min-width: 0; }
.sitemap-page__section h2 { margin: 0 0 1rem; color: var(--black); font-size: .62rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.sitemap-page__list { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.sitemap-page__list li { border-bottom: 1px solid var(--line); }
.sitemap-page__list a { min-height: 44px; padding: .72rem 0; display: flex; align-items: center; justify-content: space-between; gap: 1rem; color: #4d4944; font-size: .75rem; letter-spacing: .02em; }
.sitemap-page__list a span { color: var(--red); font-size: 1rem; }
.sitemap-page__list a:hover,
.sitemap-page__list a:focus-visible { color: var(--red); }
.sitemap-page__empty { margin: 0; color: #77716b; font-size: .78rem; line-height: 1.65; }
.filters { position: sticky; top: 2rem; height: max-content; }
.filter-list { display: grid; }
.filters h2 { margin: 0 0 1rem; font-size: .6rem; letter-spacing: .16em; text-transform: uppercase; }
.filters button { width: 100%; padding: .75rem 0; display: flex; justify-content: space-between; border: 0; border-bottom: 1px solid var(--line); background: none; color: #777; text-align: left; font-size: .62rem; text-transform: uppercase; }
.filters .filter-list a { width: 100%; min-height: 44px; padding: .7rem 0; display: flex; align-items: center; justify-content: space-between; gap: .75rem; border-bottom: 1px solid var(--line); color: #777; font-size: .62rem; letter-spacing: .03em; text-transform: uppercase; }
.filters .filter-list a.is-active { color: var(--black); font-weight: 900; }
.filters .filter-list a span { color: var(--grey); font-size: .54rem; }
.filters .filter-list a:hover,
.filters .filter-list a:focus-visible { color: var(--red); }
.filters button::after { content: "→"; color: transparent; }
.filters button.is-active { color: var(--black); font-weight: 900; }
.filters button.is-active::after { color: var(--red); }
.catalogue-area { min-width: 0; }
.shop-toolbar { margin-bottom: 1.5rem; }
.shop-toolbar label { display: block; margin-bottom: .55rem; font-size: .6rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.shop-search-control { min-height: 46px; display: grid; grid-template-columns: 1fr auto; border: 1px solid var(--line); background: var(--white); }
.shop-search-control input { min-width: 0; padding: 0 1rem; border: 0; background: transparent; font-size: 1rem; }
.shop-search-control button { min-width: 74px; border: 0; border-left: 1px solid var(--line); background: transparent; font-size: .58rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.shop-search-control button:hover { background: var(--black); color: white; }
.shop-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem 1rem; }
.catalogue-empty { min-height: 360px; grid-column: 1 / -1; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; border-top: 1px solid var(--line); }
.catalogue-empty > span { color: var(--red); font-size: .62rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.catalogue-empty h2 { margin: .8rem 0 1.5rem; font: clamp(3.5rem, 7vw, 7rem)/.85 var(--display); }
.product-card { min-width: 0; }
.product-card__link { display: block; }
.product-card__image { aspect-ratio: 1; display: block; position: relative; overflow: hidden; background: var(--card); }
.product-card__image img { width: 100%; height: 100%; object-fit: contain; object-position: center; background: var(--card); transition: transform .4s ease; }
.product-card:hover .product-card__image img { transform: scale(1.025); }
.product-card__badge { position: absolute; top: .7rem; left: .7rem; padding: .35rem .45rem; background: var(--paper); font-size: .6rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.product-card__info { min-height: 65px; padding: .8rem .1rem .5rem; display: flex; justify-content: space-between; gap: .6rem; }
.product-card__copy { min-width: 0; display: grid; gap: .25rem; }
.product-card__info h3 { margin: 0 0 .25rem; font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; }
.product-card__info p, .product-card__info strong { margin: 0; color: #77736d; font-size: .7rem; }
.product-card__info strong { color: var(--black); white-space: nowrap; }
.product-card__add { width: 100%; min-height: 44px; padding: 0 .7rem; display: flex; align-items: center; justify-content: space-between; border: 1px solid var(--line); background: transparent; font-size: .64rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.product-card__add:hover { background: var(--black); color: white; }
.product-card__add span { color: var(--red); font-size: 1rem; }

.product-page { padding: clamp(2rem, 5vw, 5rem) var(--pad); display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: clamp(2rem, 7vw, 7rem); }
.product-page--not-found { display: block; min-height: 60vh; }
.product-not-found { max-width: 720px; padding: clamp(2rem, 8vw, 7rem) 0; border-top: 3px solid var(--red); }
.product-not-found h1 { margin: 0 0 1.2rem; font: clamp(4rem, 10vw, 9rem)/.84 var(--display); text-transform: uppercase; }
.product-not-found p:not(.kicker) { max-width: 440px; margin: 0 0 2rem; color: #625f59; font-size: .82rem; line-height: 1.75; }
.product-not-found .button { gap: .7rem; }
.product-gallery { align-self: start; position: relative; background: var(--card); }
.product-gallery img { width: 100%; aspect-ratio: 1; object-fit: contain; background: var(--card); }
.product-gallery__badge { position: absolute; top: 1rem; left: 1rem; padding: .5rem; background: var(--paper); font-size: .52rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.product-thumbnails { position: absolute; left: 1rem; bottom: 1rem; display: flex; gap: .5rem; }
.gallery-thumb { width: 60px; height: 60px; padding: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.7); background: var(--paper); opacity: .7; }
.gallery-thumb img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: contain; background: var(--card); }
.gallery-thumb.is-active { border-color: var(--red); opacity: 1; }
.product-info { align-self: center; }
.breadcrumb { margin-bottom: 2rem; color: #777; font-size: .55rem; letter-spacing: .12em; text-transform: uppercase; }
.product-info h1 { font-size: clamp(3.6rem, 7vw, 7rem); }
.product-info__price { display: block; margin: 1.2rem 0; color: #655f57; font-size: .95rem; font-weight: 600; }
.product-disclosure { margin: -.55rem 0 1.05rem; color: #746d64; font-size: .62rem; line-height: 1.45; letter-spacing: .02em; }
.product-disclosure::before { content: '•'; margin-right: .35rem; color: var(--red); }
.demo-flags { margin: -.4rem 0 1.2rem; display: flex; flex-wrap: wrap; gap: .35rem; }
.demo-flags span { padding: .35rem .45rem; border: 1px solid var(--line); color: #625f59; font-size: .5rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.product-info__description { max-width: 500px; color: #625f59; font-size: .8rem; line-height: 1.75; }
.product-option { margin-top: 2rem; }
.product-option__label { display: flex; justify-content: space-between; margin-bottom: .7rem; font-size: .58rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.sizes { display: flex; gap: .5rem; }
.size { width: 46px; height: 44px; border: 1px solid var(--line); background: transparent; font-size: .62rem; }
.size.is-active, .size:hover:not(:disabled) { background: var(--black); color: white; }
.colour-options { display: flex; flex-wrap: wrap; gap: .55rem; }
.colour-choice { min-height: 44px; padding: .45rem .7rem .45rem .45rem; display: inline-flex; align-items: center; gap: .6rem; border: 1px solid var(--line); background: transparent; color: #625f59; font-size: .65rem; }
.colour-choice i { width: 26px; height: 26px; display: block; background: var(--swatch); border: 1px solid rgba(0,0,0,.22); box-shadow: inset -8px 0 var(--accent); }
.colour-choice.is-active { border-color: var(--black); color: var(--black); box-shadow: inset 0 -2px 0 var(--red); }
.selection-status { min-height: 1.2rem; margin: 1rem 0 .6rem; color: #625f59; font-size: .65rem; }
.button { min-height: 46px; padding: 0 1.2rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; font-size: .59rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.button--red { background: var(--red); color: white; }
.button--dark { background: var(--black); color: white; }
.button--outline { border-color: var(--black); }
.product-purchase { display: grid; grid-template-columns: auto 1fr; gap: .65rem; }
.product-quantity { min-height: 46px; }
.product-quantity button, .product-quantity span { width: 42px; height: 44px; }
.product-info__add { width: 100%; margin: 0; }
.product-details { margin: 2rem 0 0; padding: 1.5rem 0 0; border-top: 1px solid var(--line); list-style: none; }
.product-details li { padding: .42rem 0; color: #777; font-size: .66rem; }
.product-details li::before { content: "＋"; margin-right: .6rem; color: var(--red); }
.related { padding: 3rem var(--pad) 6rem; }
.related__heading { margin-bottom: 2rem; display: flex; align-items: end; justify-content: space-between; }
.related__heading h2 { margin: 0; font: clamp(3rem, 6vw, 5rem)/.85 var(--display); text-transform: uppercase; }
.arrow-link { width: 108px; height: 44px; display: flex; align-items: center; justify-content: space-around; border: 1px solid var(--black); }
.arrow-link b { color: var(--red); }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }

.bad-mafia-complete-look {
  padding: clamp(2.4rem, 5vw, 5rem) var(--pad) 1rem;
  border-top: 1px solid var(--line);
  background: var(--paper);
}
.bad-mafia-complete-look__heading {
  margin-bottom: 1.5rem;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.5rem;
}
.bad-mafia-complete-look__heading h2 {
  margin: 0;
  font: clamp(2.8rem, 5.5vw, 5.5rem)/.84 var(--display);
  text-transform: uppercase;
}
.bad-mafia-complete-look__heading .kicker { margin-bottom: .45rem; }
.bad-mafia-complete-look__heading .arrow-link { flex: none; }
.bad-mafia-complete-look__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.bad-mafia-complete-look__card .product-card__info {
  min-height: 76px;
}
.bad-mafia-complete-look__card .product-card__copy > span {
  color: #77736d;
  font-size: .58rem;
  line-height: 1.4;
}

/* Product-context stylist: an inline, quiet assistant that keeps the
 * product and purchase decision in view instead of introducing a floating
 * chat bubble over the approved V3 composition. */
.bad-mafia-stylist {
  margin-top: 1.35rem;
  border: 1px solid var(--line);
  background: rgba(255, 255, 255, .34);
}
.bad-mafia-stylist__intro {
  padding: 1.05rem 1.1rem;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.25rem;
}
.bad-mafia-stylist__intro h2 {
  margin: .25rem 0 .4rem;
  font: clamp(2.1rem, 4.4vw, 3.8rem)/.86 var(--display);
  text-transform: uppercase;
}
.bad-mafia-stylist__intro p:not(.kicker) {
  max-width: 34rem;
  margin: 0;
  color: #625f59;
  font-size: .68rem;
  line-height: 1.5;
}
.bad-mafia-stylist__disclosure {
  display: block;
  margin-top: .48rem;
  color: #8a857d;
  font-size: .5rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.bad-mafia-stylist__toggle {
  min-width: 154px;
  min-height: 44px;
  padding: 0 .8rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  border: 1px solid var(--black);
  background: transparent;
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.bad-mafia-stylist__toggle b { color: var(--red); font-size: 1rem; }
.bad-mafia-stylist__toggle:hover,
.bad-mafia-stylist__toggle[aria-expanded="true"] { background: var(--black); color: var(--white); }
.bad-mafia-stylist__panel {
  padding: 1rem 1.1rem 1.15rem;
  border-top: 1px solid var(--line);
  background: rgba(255, 255, 255, .4);
}
.bad-mafia-stylist__quick {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .45rem;
  margin-bottom: .9rem;
}
.bad-mafia-stylist__quick > span {
  margin-right: .25rem;
  color: #625f59;
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.bad-mafia-stylist__quick button {
  min-height: 40px;
  padding: 0 .65rem;
  border: 1px solid var(--line);
  background: transparent;
  color: #625f59;
  font-size: .56rem;
  letter-spacing: .04em;
}
.bad-mafia-stylist__quick button:hover,
.bad-mafia-stylist__quick button:focus-visible { border-color: var(--black); color: var(--black); }
.bad-mafia-stylist__form label {
  display: block;
  margin-bottom: .45rem;
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.bad-mafia-stylist__input-row { display: grid; grid-template-columns: 1fr auto; gap: .55rem; }
.bad-mafia-stylist__input-row input {
  min-width: 0;
  min-height: 46px;
  padding: 0 .75rem;
  border: 1px solid var(--line);
  background: var(--white);
  font-size: .76rem;
}
.bad-mafia-stylist__input-row input:focus { outline: 2px solid var(--red); outline-offset: 2px; }
.bad-mafia-stylist__input-row .button { min-height: 46px; }
.bad-mafia-stylist__status { min-height: 1.2rem; margin: .75rem 0 .15rem; color: #625f59; font-size: .64rem; line-height: 1.45; }
.bad-mafia-stylist__results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.bad-mafia-stylist__empty { padding: .8rem; border: 1px dashed var(--line); color: #625f59; font-size: .65rem; }
.bad-mafia-stylist__card { min-width: 0; border: 1px solid var(--line); background: var(--paper); }
.bad-mafia-stylist__card > a { display: block; height: 100%; }
.bad-mafia-stylist__card-image { display: block; aspect-ratio: 1; overflow: hidden; background: var(--card); }
.bad-mafia-stylist__card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.bad-mafia-stylist__card > a:hover .bad-mafia-stylist__card-image img { transform: scale(1.025); }
.bad-mafia-stylist__card-copy { min-height: 105px; padding: .65rem .7rem .75rem; display: grid; align-content: start; gap: .28rem; }
.bad-mafia-stylist__card-copy strong { font-size: .68rem; line-height: 1.2; text-transform: uppercase; }
.bad-mafia-stylist__card-copy small { color: #77736d; font-size: .56rem; }
.bad-mafia-stylist__card-copy em { min-height: 1.3em; color: #625f59; font-size: .58rem; font-style: normal; line-height: 1.35; }
.bad-mafia-stylist__card-copy b { margin-top: .15rem; color: var(--red); font-size: .68rem; }

@media (max-width: 760px) {
  .bad-mafia-complete-look { padding: 2.8rem 1rem .5rem; }
  .bad-mafia-complete-look__heading { align-items: start; }
  .bad-mafia-complete-look__heading h2 { font-size: clamp(3rem, 14vw, 4.6rem); }
  .bad-mafia-complete-look__heading .arrow-link { width: 88px; }
  .bad-mafia-complete-look__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
  .bad-mafia-complete-look__card:nth-child(n+3) { display: none; }
  .bad-mafia-complete-look__card .product-card__info { min-height: 82px; }
  .bad-mafia-stylist { margin-top: 1rem; }
  .bad-mafia-stylist__intro { display: block; padding: .95rem; }
  .bad-mafia-stylist__intro h2 { font-size: clamp(2.45rem, 12vw, 3.8rem); }
  .bad-mafia-stylist__toggle { width: 100%; margin-top: .9rem; }
  .bad-mafia-stylist__panel { padding: .95rem; }
  .bad-mafia-stylist__quick { align-items: stretch; }
  .bad-mafia-stylist__quick > span { width: 100%; }
  .bad-mafia-stylist__quick button { flex: 1 1 100%; text-align: left; }
  .bad-mafia-stylist__input-row { grid-template-columns: 1fr; }
  .bad-mafia-stylist__input-row .button { width: 100%; }
  .bad-mafia-stylist__results { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
  .bad-mafia-stylist__card-copy { min-height: 112px; padding: .58rem; }
}

/* Account journey: the overview itself is the navigation. Keeping the
   WooCommerce rail above these actions duplicated the same decision on mobile
   and buried the order history. Endpoint pages use one quiet return path. */
.bad-mafia-account__body--overview {
  display: block;
}
.bad-mafia-account__body--overview .bad-mafia-account__content {
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.bad-mafia-account__back {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: .55rem;
  color: var(--ink);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
}
.bad-mafia-account__back span {
  color: var(--red);
  font-size: 1.1rem;
  line-height: 1;
}
.bad-mafia-account__back:hover,
.bad-mafia-account__back:focus-visible { color: var(--red); }
.bad-mafia-address-hub,
.bad-mafia-address-editor { max-width: 54rem; }
.bad-mafia-address-hub__header,
.bad-mafia-address-editor__header {
  margin-bottom: 1.75rem;
  padding-bottom: 1.4rem;
  border-bottom: 1px solid var(--line);
}
.bad-mafia-address-hub__header h2,
.bad-mafia-address-editor__header h2 {
  margin: 0 0 .55rem;
  color: var(--ink);
  font: clamp(2.65rem, 5vw, 4.6rem)/.84 var(--display);
  letter-spacing: .015em;
  text-transform: uppercase;
}
.bad-mafia-address-hub__header p,
.bad-mafia-address-editor__header p {
  max-width: 34rem;
  margin: 0;
  color: #625f59;
  font-size: .8rem;
  line-height: 1.65;
}
.bad-mafia-address-editor__header .bad-mafia-account__back { margin-bottom: 1rem; }
.bad-mafia-address-hub__list { display: grid; gap: .75rem; }
.bad-mafia-address-hub__card {
  display: flex;
  min-height: 9.75rem;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.5rem;
  padding: 1.15rem;
  border: 1px solid var(--line);
  background: var(--paper);
}
.bad-mafia-address-hub__label {
  margin: 0 0 .85rem;
  color: var(--red);
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.bad-mafia-address-hub__card h3 {
  margin: 0 0 .65rem;
  color: var(--ink);
  font: 2rem/.9 var(--display);
  letter-spacing: .015em;
  text-transform: uppercase;
}
.bad-mafia-address-hub__card address {
  max-width: 25rem;
  color: #625f59;
  font-size: .78rem;
  font-style: normal;
  line-height: 1.55;
}
.bad-mafia-address-hub__action {
  display: inline-flex;
  min-height: 44px;
  flex: 0 0 auto;
  align-items: center;
  gap: .55rem;
  border-bottom: 1px solid var(--ink);
  color: var(--ink);
  font-size: .6rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-decoration: none;
  text-transform: uppercase;
}
.bad-mafia-address-hub__action span { color: var(--red); font-size: 1rem; }
.bad-mafia-address-hub__action:hover,
.bad-mafia-address-hub__action:focus-visible { border-color: var(--red); color: var(--red); }
.bad-mafia-address-editor__actions { margin: 1.5rem 0 0; }
.bad-mafia-address-editor__actions .button { min-height: 48px; }

@media (max-width: 760px) {
  .bad-mafia-account__body--overview .bad-mafia-account__content { margin-top: 0; }
  .bad-mafia-account__navigation { padding-top: 0; border-top: 0; }
  .bad-mafia-account__back { margin-bottom: 1rem; }
  .bad-mafia-address-hub__header,
  .bad-mafia-address-editor__header { margin-bottom: 1.25rem; padding-bottom: 1.1rem; }
  .bad-mafia-address-hub__card { min-height: 0; flex-direction: column; gap: 1rem; padding: 1rem; }
  .bad-mafia-address-hub__label { margin-bottom: .65rem; }
  .bad-mafia-address-hub__action { width: 100%; justify-content: space-between; }
}

.cart-page { padding: clamp(3rem, 7vw, 7rem) var(--pad); min-height: 70vh; }
.cart-title { margin-bottom: 3rem; display: flex; justify-content: space-between; align-items: end; }
.cart-title h1 { font-size: clamp(4rem, 9vw, 9rem); }
.cart-title p { color: #777; font-size: .65rem; text-transform: uppercase; }
.cart-layout { display: grid; grid-template-columns: 1.35fr .65fr; gap: clamp(2rem, 6vw, 6rem); }
.cart-item { padding: 1rem 0; display: grid; grid-template-columns: 150px 1fr; gap: 1.5rem; border-top: 1px solid var(--line); }
.cart-item img { width: 150px; aspect-ratio: 1; object-fit: contain; object-position: center; background: var(--card); }
.cart-item__body { display: grid; grid-template-columns: 1fr auto; align-content: start; gap: .8rem 1rem; }
.cart-item__body h2 { margin: .3rem 0; font-size: .85rem; letter-spacing: .05em; text-transform: uppercase; }
.cart-item__body p { margin: 0; color: #777; font-size: .62rem; }
.cart-item__body small { display: block; margin-top: .45rem; color: #8a857d; font-size: .52rem; line-height: 1.4; }
.cart-item__body strong { font-size: .72rem; }
.quantity { width: max-content; display: flex; align-items: center; border: 1px solid var(--line); }
.quantity button, .quantity span { width: 44px; height: 44px; display: grid; place-items: center; border: 0; background: none; font-size: .7rem; }
.remove { justify-self: end; border: 0; background: none; color: #777; font-size: .56rem; text-decoration: underline; }
.cart-summary { padding: 1.6rem; height: max-content; position: sticky; top: 2rem; background: #e7e4dd; }
.cart-summary h2 { margin: 0 0 1.5rem; font: 2.5rem var(--display); text-transform: uppercase; }
.summary-row { padding: .7rem 0; display: flex; justify-content: space-between; border-bottom: 1px solid var(--line); font-size: .66rem; }
.summary-row--total { margin-top: .5rem; border: 0; font-weight: 900; }
.cart-summary .button { width: 100%; margin-top: 1rem; }
.cart-summary > p { color: #777; font-size: .56rem; line-height: 1.6; }
.empty-cart { padding: 4rem 0; }
.empty-cart h2 { margin-bottom: 2rem; font-size: clamp(4rem, 9vw, 8rem); }
.toast { position: fixed; left: 50%; bottom: 1.5rem; z-index: 1000; max-width: calc(100% - 2rem); padding: .9rem 1.2rem; display: flex; align-items: center; gap: 1rem; background: var(--red); color: white; font-size: .63rem; font-weight: 800; letter-spacing: .08em; text-align: center; text-transform: uppercase; opacity: 0; transform: translate(-50%,20px); pointer-events: none; transition: .25s ease; }
.toast a, .toast button { padding: .3rem 0; border: 0; border-bottom: 1px solid currentColor; background: transparent; color: white; font-size: inherit; font-weight: 900; letter-spacing: inherit; text-transform: uppercase; white-space: nowrap; }
.toast.is-visible { opacity: 1; transform: translate(-50%,0); pointer-events: auto; }

dialog { max-width: none; margin: auto; padding: 0; border: 0; background: transparent; color: var(--black); }
dialog::backdrop { background: rgba(0,0,0,.78); }
.search-dialog { width: min(760px, calc(100% - 2rem)); }
.search-panel, .quick-panel, .enquiry-panel { padding: clamp(1.2rem, 4vw, 2.4rem); background: var(--paper); border-top: 3px solid var(--red); }
.search-panel__head, .quick-panel__head, .enquiry-panel__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
.search-panel__head span, .quick-panel__head > span, .enquiry-panel__head span { color: var(--red); font-size: .56rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.search-panel__head h2, .quick-panel h2, .enquiry-panel__head h2 { margin: .35rem 0 1.3rem; font: clamp(2.8rem, 7vw, 5rem)/.82 var(--display); text-transform: uppercase; }
.search-panel__head button, .quick-panel__head button, .enquiry-panel__head button { width: 44px; height: 44px; flex: none; border: 1px solid var(--line); background: transparent; font-size: 1.4rem; }
.search-panel > input { width: 100%; height: 54px; padding: 0 1rem; border: 1px solid var(--black); background: var(--white); font-size: 1rem; }
.search-panel__count { min-height: 1.3rem; margin: .75rem 0; color: #625f59; font-size: .68rem; }
.search-results { max-height: min(390px, 48vh); overflow-y: auto; border-top: 1px solid var(--line); }
.search-result { min-height: 92px; padding: .55rem 0; display: grid; grid-template-columns: 76px 1fr auto; align-items: center; gap: 1rem; border-bottom: 1px solid var(--line); }
.search-result img { width: 76px; height: 76px; object-fit: contain; object-position: center; background: var(--card); }
.search-result span { display: grid; gap: .4rem; }
.search-result strong { font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }
.search-result small { color: #625f59; font-size: .65rem; }
.search-result b { color: var(--red); }
.search-empty { min-height: 140px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: .5rem; }
.search-empty strong { font: 2.2rem var(--display); text-transform: uppercase; }
.search-empty span { color: #625f59; font-size: .7rem; }
.search-panel__all, .quick-panel__details { min-height: 46px; margin-top: 1rem; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--black); font-size: .64rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }

.quick-dialog { width: min(610px, calc(100% - 2rem)); }
.quick-panel__product { margin: 1rem 0 1.5rem; display: grid; grid-template-columns: 140px 1fr; gap: 1.25rem; align-items: center; }
.quick-panel__product img { width: 140px; height: 140px; object-fit: contain; object-position: center; background: var(--card); }
.quick-panel__product h2 { margin-bottom: .6rem; }
.quick-panel__product strong { font-size: .9rem; }
.quick-panel__product p { color: #625f59; font-size: .58rem; line-height: 1.5; }
.quick-option { margin-top: 1.2rem; }
.quick-option > span { display: block; margin-bottom: .55rem; font-size: .58rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.quick-panel__status, .enquiry-panel__status { min-height: 1.2rem; color: #625f59; font-size: .65rem; }
.quick-panel > .button { width: 100%; }

.enquiry-dialog { width: min(690px, calc(100% - 2rem)); }
.enquiry-panel > p { max-width: 62ch; color: #625f59; font-size: .76rem; line-height: 1.6; }
.enquiry-panel label { display: block; margin: 1.2rem 0 .5rem; font-size: .58rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.enquiry-panel textarea { width: 100%; min-height: 210px; padding: 1rem; resize: vertical; border: 1px solid var(--line); background: var(--white); color: var(--black); font: .76rem/1.6 var(--body); }
.enquiry-panel__actions { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; }

/* Desktop reading pass: preserve the compressed editorial display type, but
   give navigation, product data and supporting copy a dependable 12–16px floor. */
@media (min-width: 761px) {
  .logo strong { font-size: 2rem; }
  .logo small { font-size: .58rem; }
  .nav a { font-size: .75rem; }
  .header-tools { gap: .9rem; }
  .demo-search { width: 36px; height: 36px; min-width: 36px; }
  .demo-search svg, .header-icon svg { width: 20px; height: 20px; }
  .header-icon { width: 36px; height: 36px; }
  .hero__meta { font-size: .62rem; }
  .hero__pager { font-size: .66rem; }
  .drop-card__reveal { font-size: .64rem; }
  .manifesto__statement p { font-size: .64rem; line-height: 1.65; }
  .community__intro p { font-size: .72rem; }
  .community__intro a { font-size: .62rem; }
  .kicker { font-size: .68rem; }
  .home-categories__head > p { font-size: .9rem; line-height: 1.65; }
  .editorial-break__copy > span { font-size: .68rem; }
  .editorial-break__copy p { font-size: .95rem; line-height: 1.65; }
  .page-title > p, .filters h2, .filters button { font-size: .72rem; }
  .product-card__info h3 { font-size: .84rem; }
  .product-card__info p, .product-card__info strong { font-size: .76rem; }
  .product-card__add { font-size: .7rem; }
  .product-info__description { font-size: .95rem; }
  .product-option__label { font-size: .68rem; }
  .product-details li { font-size: .76rem; }
  .cart-title p, .cart-item__body p, .summary-row { font-size: .75rem; }
  .cart-item__body h2 { font-size: 1rem; }
}

@media (max-width: 1100px) {
  .demo-search { min-width: 34px; width: 34px; }
  .drop-rail { grid-template-columns: none; grid-auto-columns: 190px; }
  .manifesto { grid-template-columns: 150px .8fr 1.2fr 1fr; }
  .manifesto__statement { grid-template-columns: 1fr; }
  .manifesto__statement h2 { grid-row: auto; }
  .manifesto__statement p { display: none; }
  .community { grid-template-columns: 150px minmax(0, 1fr); }
  .home-categories__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem .8rem; }
  .shop-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Keep archive cards readable after the legacy responsive block above. The
 * shop is a decision surface: names, prices and the option action must not
 * collapse into microcopy at the approved phone widths. */
@media (min-width: 761px) {
  .shop-grid .product-card__info h2,
  .shop-grid .product-card__info h3 { font-size: .84rem; }
  .shop-grid .product-card__info p,
  .shop-grid .product-card__info > strong,
  .shop-grid .product-card__info > b,
  .shop-grid .product-card__info .amount { font-size: .76rem; }
  .shop-grid .product-card__add { font-size: .7rem; }
}

@media (max-width: 760px) {
  .shop-grid .product-card__info h2,
  .shop-grid .product-card__info h3 { font-size: .82rem; line-height: 1.2; }
  .shop-grid .product-card__info p { font-size: .74rem; }
  .shop-grid .product-card__info > strong,
  .shop-grid .product-card__info > b,
  .shop-grid .product-card__info .amount { font-size: .82rem; }
  .shop-grid .product-card__add { font-size: .68rem; }
}

/* Final archive type contract: this follows the older responsive blocks so
 * later legacy rules cannot collapse product decision labels into microcopy. */
@media (min-width: 761px) {
  .shop-grid .product-card__info h2,
  .shop-grid .product-card__info h3 { font-size: 1.05rem !important; }
  .shop-grid .product-card__info p,
  .shop-grid .product-card__info > strong,
  .shop-grid .product-card__info > b,
  .shop-grid .product-card__info .amount { font-size: .94rem !important; }
  .shop-grid .product-card__add { font-size: .74rem !important; }
}

@media (max-width: 760px) {
  .shop-grid .product-card__info h2,
  .shop-grid .product-card__info h3 { font-size: .96rem !important; line-height: 1.2; }
  .shop-grid .product-card__info p { font-size: .84rem !important; }
  .shop-grid .product-card__info > strong,
  .shop-grid .product-card__info > b,
  .shop-grid .product-card__info .amount { font-size: .9rem !important; }
  .shop-grid .product-card__add { font-size: .72rem !important; }
}

@media (min-width: 761px) and (max-width: 1100px) {
  /* Three featured cards fit the tablet reading width; additional cards stay
   * in an explicit horizontal column rather than clipping the third card's
   * metadata at the viewport edge. */
  .drop-rail {
    grid-template-columns: none;
    grid-template-rows: 1fr;
    grid-auto-flow: column;
    grid-auto-columns: minmax(155px, 1fr);
  }
}

@media (max-width: 760px) {
  .site-header { height: 66px; padding: 0 1rem; grid-template-columns: 1fr auto auto; gap: .45rem; }
  .header-tools { gap: 0; }
  .demo-search, .header-icon, .cart-link { width: 44px; height: 44px; min-width: 44px; }
  body.menu-open { overflow: hidden; }
  .landing .site-header {
    position: relative;
    padding: 0 1rem;
    background: var(--black);
  }
  .menu-toggle { width: 44px; height: 44px; display: grid; place-items: center; border: 0; background: none; }
  .menu-toggle__icon { width: 18px; height: 16px; display: grid; align-content: center; gap: 5px; }
  .menu-toggle__icon i { width: 18px; height: 1px; display: block; background: white; transform-origin: center; transition: transform .18s ease, opacity .18s ease; }
  .menu-toggle__icon.is-open i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .menu-toggle__icon.is-open i:nth-child(2) { opacity: 0; }
  .menu-toggle__icon.is-open i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .nav { position: absolute; top: 66px; left: 0; right: 0; max-height: calc(100vh - 66px); padding: 1.2rem 1rem 1.6rem; display: none; flex-direction: column; align-items: stretch; gap: 0; overflow-y: auto; background: var(--black); border-top: 1px solid #222; }
  .nav a { min-height: 48px; display: flex; align-items: center; border-bottom: 1px solid #222; }
  .nav.is-open { display: flex; }
  .landing .site-header { position: absolute; }
  .hero {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 941 / 1055;
  }
  .hero__campaign {
    inset: 0;
    background-image: url("badmafia/mobile-hero-composite-v19.webp");
    background-position: center;
    background-size: 100% 100%;
  }
  .hero::after { display: none; }
  .hero__copy h1 { display: none; }
  .hero__mobile-title,
  .hero__meta { display: none; }
  .hero__meta { left: 1rem; top: auto; bottom: 1.5rem; width: calc(100% - 2rem); }
  .hero__pager { display: none; }
  .hero__cta {
    left: 1rem;
    right: auto;
    bottom: 2.65rem;
    /* Preserve the compact editorial label while retaining a reliable 44px
       touch target for thumb users. */
    min-height: 44px;
    align-items: center;
    padding: .15rem 0 .2rem;
    gap: .45rem;
    border-bottom: 0;
    background: transparent;
    font-size: .5rem;
  }
  .drop-section { height: 336px; padding: .85rem 0 .85rem 1rem; grid-template-columns: 1fr; grid-template-rows: 58px minmax(0,1fr); gap: .55rem; }
  .drop-intro { padding: 0 1rem 0 0; display: flex; align-items: center; justify-content: space-between; }
  .drop-intro h2 { font-size: 2.85rem; }
  .drop-intro__thumb { display: none; }
  .compact-arrow {
    width: auto;
    min-width: 0;
    height: 44px;
    min-height: 44px;
    justify-content: flex-end;
    gap: .65rem;
    border: 0;
    border-bottom: 1px solid var(--black);
    font-size: .58rem;
    font-weight: 900;
    letter-spacing: .13em;
  }
  .compact-arrow span { display: none; }
  .compact-arrow::before { content: "VIEW ALL"; }
  .drop-rail { grid-template-columns: none; grid-auto-columns: 170px; gap: .55rem; }
  .drop-card__visual { height: 242px; }
  .drop-card__visual img {
    object-fit: cover;
    object-position: center;
  }
  .drop-card__plus {
    top: .65rem;
    right: .65rem;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--black);
    color: white;
    font-size: 1rem;
  }
  .drop-card__reveal {
    padding: .55rem .6rem;
    opacity: 1;
    transform: none;
  }
  .drop-card__swatches { display: none; }
  .drop-next { display: none; }
  .manifesto { height: auto; min-height: 0; grid-template-columns: 1fr; }
  .manifesto__sigil { display: none; }
  .manifesto__redshot { display: none; }
  .manifesto__statement { padding: 2rem 1rem 2.3rem; display: grid; grid-template-columns: 1fr; row-gap: 1rem; }
  .manifesto__statement h2 { width: 100%; max-width: 100%; min-width: 0; grid-row: auto; font-size: clamp(3.4rem, 16vw, 3.9rem); transform: scaleX(.58); transform-origin: left center; white-space: nowrap; }
  .manifesto__statement i { margin: 0; }
  .manifesto__statement p { display: block; max-width: 440px; color: #b3afa8; font-size: .62rem; line-height: 1.7; }
  .manifesto__crew { height: 155px; }
  .community { height: auto; grid-template-columns: 1fr; overflow: hidden; }
  .community__intro { min-height: 118px; padding: 1.2rem 1rem; grid-template-columns: 28px 1fr; }
  .home-categories { padding: 3.5rem 1rem 3rem; }
  .home-categories__head { grid-template-columns: 1fr; gap: 1rem; margin-bottom: 2rem; }
  .home-categories h2 { min-width: 0; max-width: 100%; font-size: clamp(3.8rem, 16vw, 5.4rem); }
  .home-categories__head > p { min-width: 0; max-width: 100%; }
  .home-categories__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.7rem .55rem; }
  .home-categories__grid--count-1 { grid-template-columns: 1fr; }
  .home-categories__grid--count-2 .category-card:first-child,
  .home-categories__grid--count-4 .category-card:first-child,
  .home-categories__grid--count-6 .category-card:first-child { grid-column: auto; }
  .home-categories__grid--count-3 .category-card:first-child,
  .home-categories__grid--count-5 .category-card:first-child { grid-column: 1 / -1; }
  .home-categories__grid--count-3 .category-card:first-child .category-card__image,
  .home-categories__grid--count-5 .category-card:first-child .category-card__image { aspect-ratio: 1.55; }
  .category-card__image { aspect-ratio: .78; }
  .category-card__info strong { font-size: 1.15rem; }
  .editorial-break { min-height: 0; grid-template-columns: 1fr; }
  .editorial-break__image { min-height: 350px; height: 96vw; }
  .editorial-break__copy { padding: 3.5rem 1rem 4rem; }
  .editorial-break__copy h2 { font-size: clamp(4.2rem, 20vw, 6rem); }
  .site-footer { grid-template-columns: 1fr; }
  .page-title { grid-template-columns: 1fr; }
  .page-title { padding: .9rem 1rem .75rem; }
  .page-title h1 { font-size: clamp(2.8rem, 12vw, 3.9rem); }
  .shop-layout { grid-template-columns: 1fr; padding-top: 1rem; gap: 1.2rem; }
  .filters { position: static; display: block; min-width: 0; }
  .filter-list { display: flex; overflow-x: auto; gap: .5rem; padding-bottom: .2rem; scrollbar-width: none; }
  .filter-list::-webkit-scrollbar { display: none; }
  .filters h2 { display: none; }
  .filters button { width: auto; min-width: max-content; min-height: 44px; padding: .65rem .8rem; border: 1px solid var(--line); }
  .filters button::after { display: none; }
  .filters button.is-active { background: var(--black); color: white; }
  .filters .filter-list a { width: auto; min-width: max-content; min-height: 44px; padding: .65rem .8rem; border: 1px solid var(--line); }
  .filters .filter-list a.is-active { background: var(--black); color: white; }
  .product-page { grid-template-columns: 1fr; padding-top: 1rem; }
  .product-info { padding-top: .5rem; }
  .product-thumbnails { left: .65rem; bottom: .65rem; }
  .gallery-thumb { width: 52px; height: 52px; }
  .product-purchase { grid-template-columns: 1fr; }
  .product-quantity { width: 100%; justify-content: space-between; }
  .product-quantity button, .product-quantity span { width: 33.333%; min-height: 44px; }
  .related-grid { grid-template-columns: 1fr 1fr; }
  .related-grid .product-card:last-child { display: none; }
  .cart-layout { grid-template-columns: 1fr; }
  .cart-summary { position: static; }
  .search-dialog, .quick-dialog, .enquiry-dialog { width: calc(100% - 1rem); }
  .search-panel, .quick-panel, .enquiry-panel { padding: 1.1rem; }
  .search-panel__head h2, .quick-panel h2, .enquiry-panel__head h2 { font-size: 2.8rem; }
  .quick-panel__product { grid-template-columns: 92px 1fr; gap: .9rem; }
  .quick-panel__product img { width: 92px; height: 92px; }
  .enquiry-panel__actions { grid-template-columns: 1fr; }
  .toast { width: calc(100% - 1rem); bottom: max(.5rem, env(safe-area-inset-bottom)); justify-content: space-between; text-align: left; }
}

/* Tablet header guard: keep the approved desktop navigation readable at
 * narrow tablet widths without allowing the nav and utility icons to create
 * a horizontal scroll surface. The full mobile drawer remains the source of
 * truth at 760px and below. */
@media (min-width: 761px) and (max-width: 900px) {
  .site-header {
    grid-template-columns: minmax(0, auto) minmax(0, 1fr) auto;
    gap: 1rem;
    padding-inline: 1.25rem;
  }

  .logo strong { font-size: 1.55rem; }
  .logo small { font-size: .6rem; }
  .nav { gap: 1.1rem; min-width: 0; }
  .nav > a,
  .nav .nav-contact__toggle { font-size: .56rem; letter-spacing: .12em; }
  .header-tools { gap: .3rem; }
  .demo-search,
  .header-icon { width: 40px; min-width: 40px; height: 40px; }
  .demo-search svg,
  .header-icon svg { width: 18px; height: 18px; }
}

/* WordPress/WooCommerce adapter: V3 remains the visual surface while the
   catalogue, customer and transaction states are server-owned. */
.admin-bar .site-header { top: 32px; }
.header-search { position: absolute; top: 100%; right: var(--pad); width: min(520px, calc(100vw - 2rem)); padding: 1rem; background: var(--paper); color: var(--black); border-top: 2px solid var(--red); box-shadow: 0 18px 48px rgba(0,0,0,.24); }
.header-search form { display: grid; grid-template-columns: 1fr auto; }
.header-search label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.header-search input { min-width: 0; height: 48px; padding: 0 1rem; border: 1px solid var(--line); background: var(--white); font-size: 16px; }
.header-search button { min-height: 48px; padding: 0 1.2rem; border: 0; background: var(--black); color: var(--white); font-size: .62rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.product-card__info h2 { margin: 0 0 .25rem; font-size: .75rem; letter-spacing: .05em; text-transform: uppercase; }
.product-card__info .amount { color: inherit; }
.drop-rail .product-card { min-width: 0; }
.drop-rail .product-card__info {
  display: grid;
  grid-template-columns: 1fr;
  align-content: start;
  gap: .3rem;
  padding: .65rem .25rem .5rem;
}
.drop-rail .product-card__info strong {
  min-width: 0;
  overflow-wrap: anywhere;
  white-space: normal;
  line-height: 1.15;
}
.drop-rail .product-card__info b {
  display: block;
  color: var(--black);
  font-size: .82rem;
  line-height: 1;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.drop-rail .product-card__info b del { margin-right: .25rem; color: #77736d; font-size: .68rem; font-weight: 500; }
.drop-rail .product-card__info b ins { color: var(--red); text-decoration: none; }
.woocommerce-ordering select { min-height: 48px; padding: 0 2.4rem 0 1rem; border: 1px solid var(--line); border-radius: 0; background: var(--white); font-size: .72rem; }
.woocommerce nav.woocommerce-pagination { padding: 1.5rem 0 4rem; }
.woocommerce nav.woocommerce-pagination ul { display: flex; gap: .35rem; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span { min-width: 44px; min-height: 44px; display: grid; place-items: center; border: 1px solid var(--line); }
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--black); color: var(--white); }
.content-page { padding-top: clamp(3rem, 8vw, 8rem); }
.content-page .entry-header h1 { color: var(--black); }
.demo-notice { display: none; }

@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
}

@media (max-width: 760px) {
  .header-search { position: fixed; top: 66px; right: .5rem; left: .5rem; width: auto; }
  .admin-bar .header-search { top: 112px; }
  .header-search { border-top: 1px solid var(--line); }
  .header-search input:focus { outline: none; border-color: var(--black); box-shadow: none; }
  .product-card__info h2 { font-size: .76rem; }
  .product-card__info { min-height: 70px; }
  .drop-rail .product-card__info {
    min-height: 64px;
    padding: .55rem .15rem 0;
    grid-template-columns: 1fr;
    align-content: start;
    gap: .28rem;
  }
  .drop-rail .product-card__info strong {
    min-height: 2.3em;
    font-size: .66rem;
    line-height: 1.15;
  }
  .drop-rail .product-card__info b {
    font-size: .78rem;
    line-height: 1;
    font-variant-numeric: tabular-nums;
  }
  .shop-toolbar { align-items: stretch; }
  .woocommerce-ordering select { width: 100%; }
}

@media (max-width: 480px) {
  .logo strong { font-size: 1.2rem; }
  .header-icon:first-of-type { display: none; }
  .hero { width: 100%; height: auto; min-height: 0; max-height: none; aspect-ratio: 941 / 1055; }
  .hero__campaign { inset: 0; background-position: center; background-size: 100% 100%; }
  .drop-section { height: 318px; }
  .drop-intro h2 { font-size: 2.65rem; }
  .drop-rail { grid-template-columns: none; grid-auto-columns: 160px; }
  .drop-card__visual { height: 226px; }
  .manifesto__statement h2 { font-size: 16vw; }
  /* The catalogue is a browse surface, not a poster wall: two compact cards
   * keep product choice visible without sacrificing readable names or touch
   * targets on a 360–390px phone. */
  .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.35rem .55rem; }
  .shop-grid .product-card__image { aspect-ratio: .82; }
  .shop-grid .product-card__info { min-height: 58px; padding: .55rem .1rem .35rem; gap: .35rem; }
  .shop-grid .product-card__info h2 { min-height: 2.3em; font-size: .82rem; line-height: 1.2; }
  .shop-grid .product-card__info p { font-size: .74rem; }
  .shop-grid .product-card__info > strong { font-size: .82rem; align-self: start; }
  .shop-grid .product-card__add { min-height: 42px; padding-inline: .55rem; font-size: .68rem; letter-spacing: .07em; }
  .related-grid { grid-template-columns: 1fr; }
  .related-grid .product-card:last-child { display: block; }
  .cart-item { grid-template-columns: 105px 1fr; gap: 1rem; }
  .cart-item img { width: 105px; }
  .cart-item__body { grid-template-columns: 1fr; }
  .cart-item__body > strong, .remove { justify-self: start; }
  .quantity button, .quantity span { width: 44px; height: 44px; }
  .cart-title { display: block; }
}

/* On phones the manifesto crew image is a tactile, continuous strip rather
 * than a cropped poster. The duplicate frame makes the loop seamless; users
 * can still drag it manually, and reduced-motion users get a normal scroller. */
.manifesto__crew-track { display: flex; width: 100%; height: 100%; }
.manifesto__crew-track img { flex: 0 0 auto; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 760px) {
  .manifesto__crew { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; overscroll-behavior-x: contain; }
  .manifesto__crew::-webkit-scrollbar { display: none; }
  .manifesto__crew-track { width: max-content; animation: bad-mafia-crew-loop 34s linear infinite; }
  .manifesto__crew-track img { width: 760px; max-width: none; }
  .manifesto__crew:hover .manifesto__crew-track,
  .manifesto__crew:focus-within .manifesto__crew-track { animation-play-state: paused; }
}
@keyframes bad-mafia-crew-loop {
  from { transform: translateX(0); }
  to { transform: translateX(-760px); }
}
@media (prefers-reduced-motion: reduce) {
  .manifesto__crew-track { animation: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Account access: give the WooCommerce account endpoint a deliberate Bad Mafia
 * entry state instead of the generic page/card treatment. The shortcode and
 * OTP forms remain WooCommerce/Runlo-owned; this is presentation only. */
body.woocommerce-account:not(.logged-in) .content-page--account-guest {
  max-width: none;
  min-height: 0;
  padding: 0;
  background: var(--black);
}
body.woocommerce-account .bag-icon span { right: 0; }
body.woocommerce-account:not(.logged-in) .content-page--account-guest > article {
  margin: 0;
}
.bad-mafia-account-guest {
  display: grid;
  grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr);
  min-height: min(720px, calc(100vh - 72px));
  background: var(--black);
}
.bad-mafia-account-guest__intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(3rem, 7vw, 7rem) var(--pad);
  color: var(--white);
}
.bad-mafia-account-guest__intro h1 {
  max-width: 9ch;
  margin: .9rem 0 1.25rem;
  font: clamp(4.5rem, 9vw, 9rem)/.78 var(--display);
  letter-spacing: .02em;
  text-transform: uppercase;
}
.bad-mafia-account-guest__intro > p:not(.section-kicker) {
  max-width: 20rem;
  margin: 0;
  color: #bdb8b0;
  font-size: .84rem;
  line-height: 1.65;
}
.bad-mafia-account-guest__benefits {
  width: min(100%, 22rem);
  margin: clamp(2rem, 5vw, 4rem) 0 0;
  padding: 0;
  list-style: none;
}
.bad-mafia-account-guest__benefits li {
  display: flex;
  align-items: center;
  min-height: 45px;
  border-top: 1px solid rgba(255,255,255,.2);
  color: #f2eee8;
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.bad-mafia-account-guest__benefits li::before {
  width: 1.2rem;
  margin-right: .55rem;
  color: var(--red);
  content: '↗';
  font-size: .85rem;
}
.bad-mafia-account-guest__content {
  display: flex;
  align-items: center;
  max-width: none !important;
  min-width: 0;
  padding: clamp(1.5rem, 5vw, 5rem) var(--pad);
  background: var(--paper);
}
body.woocommerce-account:not(.logged-in) .bad-mafia-auth {
  display: block;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
}
body.woocommerce-account:not(.logged-in) .bad-mafia-auth__panel {
  border-top: 3px solid var(--red);
  background: var(--white);
  padding: clamp(1.35rem, 4vw, 3rem);
}
body.woocommerce-account:not(.logged-in) .bad-mafia-auth__panel h2 {
  margin: .5rem 0 .8rem;
  font: clamp(3.25rem, 6vw, 6rem)/.8 var(--display);
  letter-spacing: .02em;
  text-transform: uppercase;
}
body.woocommerce-account:not(.logged-in) .bad-mafia-auth__intro {
  max-width: 31rem;
  min-height: 0;
  margin: 0 0 1.65rem;
  color: #625f59;
  font-size: .78rem;
  line-height: 1.65;
}
body.woocommerce-account.logged-in .bad-mafia-email-login-notice {
  margin: 0 0 1.25rem;
  padding: .85rem 1rem;
  border: 1px solid var(--line);
  border-left: 3px solid var(--red);
  background: var(--paper);
  color: #625f59;
  font-size: .75rem;
  line-height: 1.55;
}
body.woocommerce-account.logged-in .bad-mafia-email-login-notice strong {
  display: block;
  margin-bottom: .2rem;
  color: var(--black);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}
body.woocommerce-account.logged-in .bad-mafia-email-login-notice p { margin: 0; }
body.woocommerce-account.logged-in .bad-mafia-email-login-notice a {
  color: var(--red);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: .14em;
}
body.woocommerce-account:not(.logged-in) .runlo-mobile-auth {
  margin: 0;
  border: 1px solid var(--line);
  border-top: 2px solid var(--black);
  background: var(--paper);
  padding: clamp(1rem, 3vw, 1.65rem);
}
body.woocommerce-account:not(.logged-in) .runlo-mobile-auth__heading h3 {
  font-size: clamp(2rem, 4vw, 3rem);
}
body.woocommerce-account:not(.logged-in) .runlo-mobile-auth__purpose {
  max-width: 34rem;
  margin: .8rem 0 1.35rem;
  font-size: .74rem;
}
body.woocommerce-account:not(.logged-in) .runlo-mobile-auth__field-row input {
  min-width: 0;
  font-size: 16px;
}

/* Signed-in account hub: one clear title, a compact navigation rail and
 * action cards that remain useful on small screens. */
body.woocommerce-account.logged-in .content-page--account {
  max-width: none;
  padding-top: clamp(2.5rem, 6vw, 6rem);
}
.bad-mafia-account {
  max-width: 1280px;
  margin: 0 auto;
}
.bad-mafia-account__header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, .42fr);
  align-items: end;
  gap: 2rem;
  margin-bottom: clamp(2rem, 4vw, 3.5rem);
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--line);
}
.bad-mafia-account__header h1 {
  font: clamp(3.7rem, 8vw, 8rem)/.78 var(--display);
  letter-spacing: .02em;
}
.bad-mafia-account__header > p:last-child {
  max-width: 22rem;
  margin: 0;
  color: #625f59;
  font-size: .78rem;
  line-height: 1.65;
}
.bad-mafia-account__body {
  grid-template-columns: minmax(170px, 210px) minmax(0, 1fr);
  gap: clamp(1.25rem, 4vw, 4rem);
}
.bad-mafia-account__navigation {
  border-top: 2px solid var(--black);
  padding-top: .9rem;
}
.bad-mafia-account .woocommerce-MyAccount-navigation ul {
  display: grid;
  gap: .25rem;
}
.bad-mafia-account .woocommerce-MyAccount-navigation li a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 44px;
  padding: .55rem .65rem;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.bad-mafia-account .woocommerce-MyAccount-navigation li a span { color: var(--red); }
.bad-mafia-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--black); color: var(--white); }
.bad-mafia-account__content { min-height: 0; padding: clamp(1.25rem, 4vw, 2.5rem); }
.bad-mafia-account-overview__actions { gap: .75rem; }
.bad-mafia-account-overview__action { min-height: 175px; padding: 1.15rem; }

@media (max-width: 760px) {
  .bad-mafia-account-guest {
    display: block;
    min-height: 0;
  }
  .bad-mafia-account-guest__intro {
    min-height: 370px;
    padding: 3.25rem var(--pad) 2.5rem;
  }
  /* The account gate is a task surface, not a poster: keep its two
     headings strong without letting them dominate the mobile form. */
  .bad-mafia-account-guest__intro h1 {
    max-width: 7ch;
    margin-top: .7rem;
    font-size: clamp(3.45rem, 14.5vw, 4.6rem);
    line-height: .82;
  }
  .bad-mafia-account-guest__benefits { margin-top: 2rem; }
  .bad-mafia-account-guest__content { padding: 1rem var(--pad) 2.5rem; }
  body.woocommerce-account:not(.logged-in) .bad-mafia-auth__panel { padding: 1rem; }
  body.woocommerce-account:not(.logged-in) .bad-mafia-auth__panel h2 {
    font-size: clamp(2.65rem, 10.5vw, 4rem);
    line-height: .84;
  }
  body.woocommerce-account:not(.logged-in) .runlo-mobile-auth { padding: 1rem; }
  body.woocommerce-account:not(.logged-in) .runlo-mobile-auth__heading { display: block; }
  body.woocommerce-account:not(.logged-in) .runlo-mobile-auth__badge { display: inline-flex; margin-top: .7rem; }
  body.woocommerce-account:not(.logged-in) .runlo-mobile-auth__field-row { grid-template-columns: 1fr; }
  body.woocommerce-account:not(.logged-in) .runlo-mobile-auth__field-row button { width: 100%; }
  .bad-mafia-account__header { grid-template-columns: 1fr; gap: .8rem; }
  .bad-mafia-account__header h1 { font-size: clamp(4rem, 18vw, 6rem); }
  .bad-mafia-account__body { grid-template-columns: 1fr; gap: 1.25rem; }
  .bad-mafia-account__navigation { padding-top: .75rem; }
  .bad-mafia-account .woocommerce-MyAccount-navigation ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem; }
  .bad-mafia-account .woocommerce-MyAccount-navigation li a { min-height: 48px; font-size: .57rem; }
  .bad-mafia-account__content { padding: 1rem; }
  .bad-mafia-account-overview__welcome { display: block; }
  .bad-mafia-account-overview__logout { margin-top: 1rem; }
  .bad-mafia-account-overview__actions { grid-template-columns: 1fr; }
  .bad-mafia-account-overview__action { min-height: 148px; }
}

/* Production UX refinement: keeps the approved editorial system, but gives
   new story/contact/account surfaces and catalogue controls a clear rhythm. */
.community__instagram { width: 28px; height: 28px; display: grid; place-items: center; color: white; }
.community__intro .community__instagram { grid-column: auto; font-size: inherit; letter-spacing: normal; }
.community__instagram svg { width: 25px; height: 25px; }
.community__instagram:hover, .community__instagram:focus-visible { color: var(--red); }
.community__links { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: .35rem .7rem; margin-top: .15rem; }
.community__links a { color: var(--red); font-size: .55rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.community__links a:hover, .community__links a:focus-visible { color: white; }
.bad-mafia-delivery-note { margin-top: 1rem; padding: .85rem 1rem; display: grid; gap: .7rem; border: 1px solid var(--line); background: rgba(255,255,255,.42); }
.bad-mafia-delivery-note__group { display: grid; gap: .35rem; }
.bad-mafia-delivery-note__group + .bad-mafia-delivery-note__group { margin-top: .05rem; padding-top: .7rem; border-top: 1px solid var(--line); }
.bad-mafia-delivery-note strong { color: var(--red); font-size: .56rem; letter-spacing: .12em; text-transform: uppercase; }
.bad-mafia-delivery-note ul { margin: 0; padding: 0; list-style: none; }
.bad-mafia-delivery-note li,
.bad-mafia-delivery-note p { margin: 0; color: #625f59; font-size: .68rem; line-height: 1.5; }
.bad-mafia-delivery-note p { display: grid; gap: .15rem; }
.bad-mafia-delivery-note p b { color: var(--ink); font-weight: 700; }
.bad-mafia-delivery-note--cart { margin: 0 0 1.5rem; }
.bad-mafia-product-returns { margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.bad-mafia-product-returns h2 { margin: 0 0 .6rem; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.bad-mafia-product-returns__status { margin: 0 0 .5rem; color: var(--black); font-size: .72rem; font-weight: 800; }
.bad-mafia-product-returns > p:not(.bad-mafia-product-returns__status) { margin: 0; color: #625f59; font-size: .68rem; line-height: 1.6; white-space: pre-line; }
.shop-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.shop-toolbar__summary { display: grid; gap: .35rem; }
.shop-toolbar__eyebrow { color: var(--red); font-size: .58rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.shop-toolbar__summary strong { font: 1.8rem/.9 var(--display); letter-spacing: .03em; text-transform: uppercase; }
.shop-search-control { width: min(420px, 100%); min-height: 48px; grid-template-columns: auto 1fr auto; align-items: center; }
.shop-search-control__icon { padding-left: .85rem; color: var(--red); font-size: 1.2rem; line-height: 1; }
.shop-search-control input { padding-left: .65rem; }
.shop-search-control input:focus { outline: 0; }
.shop-search-control button { min-width: 64px; min-height: 46px; }
.colour-choice.is-static { cursor: default; color: var(--black); position: relative; padding-right: .95rem; }
.colour-choice.is-static small { display: block; margin-left: .2rem; color: #8a857d; font-size: .5rem; letter-spacing: .04em; text-transform: uppercase; }
.colour-choice.is-static:hover { background: transparent; }
.header-icon[aria-current="page"] { color: var(--red); }
.site-footer nav { flex-wrap: wrap; justify-content: flex-end; row-gap: .55rem; }

/* Story */
.story-hero { padding: clamp(3.5rem, 8vw, 8rem) var(--pad) clamp(2.5rem, 5vw, 5rem); display: grid; grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr); gap: clamp(2rem, 7vw, 8rem); align-items: end; background: var(--black); color: var(--white); }
.story-hero h1, .contact-hero h1, .account-intro h1 { margin: 0; font: clamp(4.5rem, 11vw, 12rem)/.78 var(--display); letter-spacing: .02em; text-transform: uppercase; }
.story-hero > div:first-child > p:last-child, .contact-hero > p:last-child, .account-intro > p:last-child { max-width: 34rem; margin: 2rem 0 0; color: #aaa59d; font-size: .9rem; line-height: 1.7; }
.story-hero__image { min-width: 0; aspect-ratio: 1.35; overflow: hidden; background: var(--card); }
.story-hero__image img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(1.25) contrast(1.08); }
.story-manifesto { padding: clamp(4rem, 8vw, 8rem) var(--pad); display: grid; grid-template-columns: minmax(180px, .4fr) minmax(0, 1fr) minmax(240px, .65fr); gap: 2rem; align-items: end; background: var(--paper); }
.story-manifesto h2 { margin: 0; font: clamp(4rem, 9vw, 9rem)/.78 var(--display); text-transform: uppercase; }
.story-manifesto__copy { max-width: 25rem; }
.story-manifesto__copy p { margin: 0 0 1.5rem; color: #625f59; font-size: .9rem; line-height: 1.7; }
.story-image-grid { display: grid; grid-template-columns: 1.1fr .9fr; background: var(--black); }
.story-image-grid figure { min-width: 0; margin: 0; position: relative; overflow: hidden; border-top: 1px solid #222; }
.story-image-grid figure:first-child { border-right: 1px solid #222; }
.story-image-grid img { width: 100%; aspect-ratio: 1.65; object-fit: cover; filter: grayscale(1) contrast(1.08); }
.story-image-grid figure:last-child img { filter: saturate(1.2) contrast(1.08); }
.story-image-grid figcaption { position: absolute; left: var(--pad); bottom: 1.2rem; color: white; font: 1.6rem var(--display); letter-spacing: .04em; }
.story-visit, .contact-locations { padding: clamp(3rem, 6vw, 6rem) var(--pad); display: grid; grid-template-columns: .7fr 1.3fr; gap: 2rem; background: var(--card); }
.story-visit h2, .contact-locations h2 { margin: 0; font: clamp(3.4rem, 7vw, 7rem)/.8 var(--display); }
.location-list { display: grid; gap: 0; align-content: start; }
.location-list__item { padding: 1.1rem 0; display: grid; gap: .35rem; border-top: 1px solid var(--line); }
.location-list__item strong { font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.location-list__item span { max-width: 42rem; color: #625f59; font-size: .85rem; line-height: 1.6; }
.location-list__link { color: var(--red); font-size: .65rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.story-actions, .contact-footnote { padding: 2rem var(--pad) 5rem; display: flex; flex-wrap: wrap; gap: .75rem; background: var(--paper); }

/* Contact */
.contact-page {
  /* A short utility page should not stretch its main into a dead paper band
     merely to pin the footer to the viewport bottom. Longer contact content
     still grows naturally, while the footer follows the last real row. */
  flex: 0 0 auto;
}
body:has(main.contact-page) {
  /* Do not retain the global min-height once this short utility page has
     finished; otherwise the paper background continues below the footer. */
  min-height: auto;
}
.contact-page__copy {
  padding: clamp(1.5rem, 4vw, 3.5rem) var(--pad) 0;
  background: var(--paper);
}
.contact-page__copy-inner {
  max-width: 54rem;
  color: #625f59;
  font-size: .9rem;
  line-height: 1.7;
}
.contact-page__copy-inner h2 {
  margin: 1.8rem 0 .55rem;
  color: var(--black);
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  line-height: 1.15;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.contact-page__copy-inner h2:first-child { margin-top: 0; }
.contact-page__copy-inner p { margin: 0 0 .8rem; }
.contact-page__copy-inner ul,
.contact-page__copy-inner ol {
  margin: 1rem 0 1.25rem;
  padding-left: 1.25rem;
}
.contact-page__copy-inner li + li { margin-top: .45rem; }
.contact-page__copy-inner strong { color: var(--black); font-weight: 800; }
.contact-page__copy-inner a {
  color: var(--red);
  text-decoration-thickness: .08em;
  text-underline-offset: .18em;
  overflow-wrap: anywhere;
}
.contact-page__copy-inner a:hover,
.contact-page__copy-inner a:focus-visible { color: var(--black); }
.contact-hero { padding: clamp(4rem, 9vw, 9rem) var(--pad) clamp(3rem, 6vw, 6rem); background: var(--black); color: var(--white); }
.contact-hero > p:last-child { max-width: 36rem; }
.contact-grid { padding: clamp(2rem, 5vw, 5rem) var(--pad); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.contact-card { min-height: 0; padding: clamp(1.3rem, 3vw, 2.5rem); display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; background: var(--paper); }
.contact-card--primary { background: var(--black); color: white; }
.contact-card__number { color: var(--red); font: 1.4rem var(--display); }
.contact-card h2 { margin: 0 0 1.2rem; font: clamp(3.6rem, 7vw, 7rem)/.78 var(--display); text-transform: uppercase; }
.contact-card p:not(.kicker) { max-width: 22rem; color: #77736d; font-size: .85rem; line-height: 1.7; }
.contact-card--primary p:not(.kicker) { color: #aaa59d; }
.contact-value { display: block; margin-top: .8rem; color: var(--red); font-size: .82rem; font-weight: 900; letter-spacing: .04em; word-break: break-word; }
.contact-locations { background: var(--card); }
.contact-footnote { align-items: center; justify-content: space-between; gap: 1.5rem; }
.contact-footnote p { max-width: 34rem; margin: 0; color: #625f59; font-size: .85rem; line-height: 1.7; }

/* Account */
.account-shell { background: var(--paper); }
.account-intro { padding: clamp(4rem, 9vw, 9rem) var(--pad) clamp(3rem, 6vw, 6rem); display: grid; grid-template-columns: 1fr minmax(250px, .55fr); align-items: end; gap: 2rem; background: var(--black); color: white; }
.account-card { margin: clamp(2rem, 5vw, 5rem) var(--pad) 0; padding: clamp(1.4rem, 4vw, 3rem); border-top: 3px solid var(--red); background: var(--white); }
.account-card__heading { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: start; }
.account-card__heading > span { color: var(--red); font: 1.5rem var(--display); }
.account-card h2 { margin: 0; font: clamp(3.2rem, 7vw, 6rem)/.8 var(--display); text-transform: uppercase; }
.account-card__copy { max-width: 48rem; margin: 2rem 0; color: #625f59; font-size: .9rem; line-height: 1.75; }
.account-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.account-note { margin: 1.5rem 0 0; color: #8a857d; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.account-benefits { padding: clamp(3rem, 7vw, 7rem) var(--pad); display: grid; grid-template-columns: .8fr 1.2fr; gap: 2rem; }
.account-benefits h2 { margin: 0; font: clamp(3.5rem, 7vw, 7rem)/.8 var(--display); }
.account-benefits ul { margin: 0; padding: 0; list-style: none; }
.account-benefits li { padding: 1.2rem 0; display: grid; gap: .35rem; border-top: 1px solid var(--line); }
.account-benefits li strong { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.account-benefits li span { color: #625f59; font-size: .85rem; line-height: 1.6; }

@media (max-width: 760px) {
  .shop-toolbar { display: grid; grid-template-columns: 1fr; align-items: stretch; gap: .8rem; }
  .shop-search-control { width: auto; justify-self: stretch; min-width: 0; }
  .shop-toolbar__summary { grid-template-columns: 1fr auto; align-items: end; }
  .shop-toolbar__summary strong { text-align: right; }
  .story-hero, .account-intro { grid-template-columns: 1fr; gap: 2rem; }
  .story-hero h1, .contact-hero h1, .account-intro h1 { font-size: clamp(4rem, 19vw, 6.8rem); }
  .story-hero__image { aspect-ratio: 1.08; }
  .story-manifesto { grid-template-columns: 1fr; gap: 1.5rem; }
  .story-manifesto h2 { font-size: clamp(4rem, 18vw, 6rem); }
  .story-image-grid { grid-template-columns: 1fr; }
  .story-image-grid figure:first-child { border-right: 0; }
  .story-image-grid img { aspect-ratio: 1.25; }
  .story-image-grid figcaption { font-size: 1.4rem; }
  .story-visit, .contact-locations, .account-benefits { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-card { min-height: 260px; }
  .contact-footnote { align-items: flex-start; flex-direction: column; }
  .account-card { margin-top: 2rem; }
  .account-benefits { padding-top: 3.5rem; }
  .nav-account { display: flex !important; }
}

/* Phone catalogue finish: keep the title band intentional and the first
 * product close enough to the controls to preserve browsing momentum. */
@media (max-width: 480px) {
  .page-title h1 { font-size: clamp(2.05rem, 8.5vw, 2.65rem); }
  .page-title > p { letter-spacing: .08em; }
  .shop-layout { padding-top: .65rem; }
  .shop-toolbar { gap: .65rem; margin-bottom: 1.1rem; }
  .shop-search-control { min-height: 46px; }
  .woocommerce-ordering select { min-height: 46px; font-size: .66rem; }
}

@media (min-width: 761px) {
  .nav-account { display: none; }
}

/* V3 Visit Store route: the same editorial system, with location data intentionally unverified. */
.visit-page { background: var(--paper); }
.visit-page__hero { display: grid; grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr); background: var(--black); color: white; }
.visit-page__hero-copy { padding: clamp(4rem, 9vw, 9rem) var(--pad) clamp(3rem, 6vw, 6rem); display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.visit-page__hero-copy h1 { margin: 0; font: clamp(4.5rem, 10vw, 11rem)/.78 var(--display); letter-spacing: .02em; text-transform: uppercase; }
.visit-page__hero-copy > p:not(.kicker) { max-width: 30rem; margin: 2rem 0; color: #aaa59d; font-size: .9rem; line-height: 1.7; }
.visit-page__hero-image { min-height: 420px; position: relative; overflow: hidden; }
.visit-page__hero-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(1.15) contrast(1.05); }
.visit-page__hero-image span { position: absolute; right: 1rem; bottom: 1rem; padding: .35rem .5rem; background: rgba(5,5,5,.78); color: #d4d0c8; font-size: .56rem; letter-spacing: .08em; text-transform: uppercase; }
.visit-page__details { padding: clamp(4rem, 8vw, 8rem) var(--pad); display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(2rem, 7vw, 8rem); background: var(--card); }
.visit-page__details h2 { margin: 0; font: clamp(4rem, 8vw, 8rem)/.78 var(--display); text-transform: uppercase; }
.visit-page__detail-list { display: grid; align-content: start; }
.visit-page__detail-list > div { padding: 1.2rem 0; display: grid; gap: .35rem; border-top: 1px solid var(--line); }
.visit-page__detail-list span { color: var(--red); font-size: .62rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.visit-page__detail-list strong { font-size: .98rem; letter-spacing: .02em; }
.visit-page__detail-list p { margin: 0; color: #625f59; font-size: .8rem; line-height: 1.55; }
.visit-page__note { padding: 2rem var(--pad) clamp(4rem, 7vw, 7rem); display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1.5rem; }
.visit-page__note strong { font: 1.5rem var(--display); text-transform: uppercase; }
.visit-page__note p { max-width: 38rem; margin: 0; color: #625f59; font-size: .82rem; line-height: 1.65; }

@media (max-width: 760px) {
  .visit-page__hero { grid-template-columns: 1fr; }
  .visit-page__hero-copy { padding-top: 5.5rem; }
  .visit-page__hero-copy h1 { font-size: clamp(4.2rem, 19vw, 7rem); }
  .visit-page__hero-image { min-height: 310px; height: 82vw; }
  .visit-page__details { grid-template-columns: 1fr; gap: 2rem; }
  .visit-page__details h2 { font-size: clamp(4rem, 18vw, 6.5rem); }
  .visit-page__note { grid-template-columns: 1fr; gap: .8rem; align-items: start; }
}

/* Archive refinement: preserve the V3 editorial title band while removing
   billboard-scale dead space before search, filters and the first product. */
.page-title {
  padding: clamp(1.45rem, 2.8vw, 2.45rem) var(--pad);
}
.page-title h1 { font-size: clamp(2.2rem, 3.8vw, 3.8rem); }
.page-title > p { margin-bottom: .2rem; }
.shop-layout { padding-top: 1.5rem; padding-bottom: 4.5rem; }

@media (max-width: 760px) {
  .page-title { padding: 1.15rem 1rem .95rem; }
  .page-title h1 { font-size: clamp(2rem, 9vw, 2.9rem); }
  .page-title > p { margin-bottom: 0; font-size: .6rem; }
  .shop-layout { padding-top: .8rem; padding-bottom: 3.5rem; gap: 1rem; }
}

/* The selected-styles rail is content-driven. Avoid a fixed mobile height
   leaving a blank paper band when a client curates one or two products. */
.drop-section { grid-template-rows: minmax(0, 1fr); }
.drop-section--count-0 { display: none; }

@media (max-width: 760px) {
  .drop-section {
    height: auto;
    min-height: 0;
    grid-template-rows: auto auto;
  }
  .drop-rail { min-height: 0; }
  .drop-card__visual { height: min(226px, 58vw); }
}

/* Final V3 mobile pass: keep the campaign language, but remove the two
   accidental overflow/spacing traps that made the header and shop feel
   unfinished at phone widths. */
@media (max-width: 760px) {
  .manifesto__statement h2 { width: 100%; max-width: 100%; min-width: 0; transform: scaleX(.58); transform-origin: left center; white-space: nowrap; }
  .page-title { padding: .9rem 1rem .75rem; }
  .page-title h1 { font-size: clamp(2rem, 9vw, 2.9rem); }
  .page-title > p { margin-top: .12rem; }
  .drop-section { overflow: hidden; }
}

/* Editorial harmony pass: keep the approved V3 composition while making
 * its reading rhythm deliberate at both phone and wide desktop widths. */
.home-categories__head {
  display: block;
  margin-bottom: clamp(1.8rem, 2.5vw, 2.6rem);
}
.home-categories__head h2 { max-width: 8ch; }
.home-categories__browse {
  max-width: 14rem;
  margin: 1.15rem 0 0 auto;
  padding: .55rem 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-bottom: 1px solid var(--black);
  color: var(--black);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.home-categories__browse b { color: var(--red); font-size: .9rem; }
.home-categories__browse:hover,
.home-categories__browse:focus-visible { border-color: var(--red); color: var(--red); }
.drop-intro h2 { line-height: .78; }
.drop-card__reveal { align-items: start; }
.manifesto__statement { align-content: center; }
.manifesto__statement h2 { line-height: .78; }
.bad-mafia-complete-look__card .product-card__info {
  display: grid;
  align-content: start;
  gap: .3rem;
}
.bad-mafia-complete-look__card .product-card__copy {
  display: grid;
  gap: .22rem;
}
.bad-mafia-complete-look__card .product-card__info > b { display: block; }

@media (min-width: 761px) {
  .drop-section { padding-top: clamp(.9rem, 1.15vw, 1.2rem); padding-bottom: clamp(.9rem, 1.15vw, 1.2rem); }
  .drop-intro { padding-top: .15rem; }
  .manifesto__statement { padding-inline: clamp(1.15rem, 2.2vw, 2.5rem); }
  .home-categories__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, 240px);
    align-items: end;
    gap: 2rem;
    margin-bottom: clamp(2rem, 2.8vw, 3rem);
  }
  .home-categories__browse { margin: 0 0 .45rem auto; }
}

/* Featured rail: the original Bad Mafia composition is a compact editorial
 * index, not a row of oversized product posters. Keep the image, title, CTA
 * and catalogue cards in one visual group (Gestalt proximity), and let the
 * actual Woo product count determine the rail rather than stretching a blank
 * intro panel when fewer products are featured. */
.drop-intro { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: .55rem; }
.drop-intro__kicker { margin: 0; color: var(--red); font-size: .6rem; font-weight: 900; letter-spacing: .14em; line-height: 1; text-transform: uppercase; }
.drop-intro h2 { order: 1; }
.drop-intro__kicker { order: 0; }
.drop-intro__thumb { order: 2; width: min(11.1vw, 164px); height: auto; aspect-ratio: 1.9; margin-top: .2rem; }
.drop-intro__thumb img { object-position: center; }
.compact-arrow { order: 3; margin-top: .2rem; }
.drop-rail .product-card__image { aspect-ratio: 1.16; }
.drop-card__index { position: absolute; top: .55rem; right: .65rem; z-index: 1; color: var(--red); font-size: .56rem; font-weight: 900; letter-spacing: .13em; line-height: 1; }
.drop-rail .product-card__info { padding-top: .5rem; }
.drop-rail .product-card__info strong { font-size: .57rem; }
.drop-rail .product-card__info b { font-size: .74rem; }
.home-categories h2 { font-size: clamp(4.2rem, 7vw, 7.4rem); }

@media (min-width: 761px) {
  .drop-section { min-height: clamp(228px, 15.8vw, 276px); }
  .drop-intro { padding-top: 0; }
  .drop-intro__thumb { margin-top: .25rem; }
  .drop-rail { align-items: start; }
}

@media (max-width: 760px) {
  .drop-intro { flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem; }
  .drop-intro__kicker { display: none; }
  .drop-intro h2 { order: 0; }
  .drop-intro__thumb { display: none; }
  .compact-arrow { order: 1; margin-top: 0; }
  .drop-rail .product-card__image { aspect-ratio: 1.1; }
  .drop-card__index { top: .45rem; right: .5rem; font-size: .5rem; }
  .drop-rail .product-card__info strong { font-size: .62rem; }
  .drop-rail .product-card__info b { font-size: .74rem; }
  .home-categories h2 { font-size: clamp(3.15rem, 13.5vw, 4.8rem); }
}

@media (max-width: 760px) {
  .hero__cta {
    left: 1rem;
    right: auto;
    bottom: 2.65rem;
    min-height: 44px;
    align-items: center;
    padding: .15rem 0 .2rem;
    gap: .45rem;
    border-bottom: 0;
    font-size: .52rem;
    letter-spacing: .12em;
  }
  .hero__cta b { font-size: .78rem; }
  .drop-section { padding: .65rem 0 .9rem 1rem; gap: .4rem; }
  .drop-intro { padding-right: 1rem; }
  .drop-intro h2 { font-size: clamp(2.45rem, 11vw, 2.85rem); }
  .drop-rail { gap: .5rem; }
  .drop-card__visual { height: min(216px, 55vw); }
  .manifesto__statement { padding: 2.15rem 1rem 2.45rem; row-gap: .8rem; }
  .manifesto__statement h2 { font-size: clamp(3.25rem, 15vw, 3.9rem); }
  .home-categories { padding-top: 3rem; }
  .home-categories__head { margin-bottom: 1.45rem; }
  .home-categories h2 { font-size: clamp(3.55rem, 15vw, 5.2rem); }
  .home-categories__browse { max-width: 12rem; margin: .8rem 0 0; }
  .bad-mafia-complete-look__heading { align-items: end; }
  .bad-mafia-complete-look__heading h2 { font-size: clamp(2.65rem, 12.5vw, 3.8rem); }
  .bad-mafia-complete-look__heading .arrow-link {
    width: auto;
    min-width: 88px;
    padding: 0 0 .2rem;
    border: 0;
    border-bottom: 1px solid var(--black);
    justify-content: flex-end;
    gap: .55rem;
  }
}

/* T599: never crop a customer-uploaded portrait in the catalogue grid. The
 * archive card keeps a stable editorial well, but the complete garment must
 * remain visible when its source ratio is taller than that well. */
body.woocommerce-shop .shop-page .product-card__image img,
body.tax-product_cat .shop-page .product-card__image img {
  object-fit: contain;
  object-position: center;
}

/* Reference-led homepage redesign. This scope is intentionally limited to
 * body.home: the WooCommerce archive, product, cart, checkout and account
 * templates keep their existing visual/interaction contracts. */
body.home {
  --home-pad: clamp(1.25rem, 4vw, 3.75rem);
  --home-red: #ef1f2d;
  background: var(--paper);
}
body.home .site-header {
  height: 60px;
  min-height: 60px;
  padding-inline: var(--home-pad);
  grid-template-columns: 1fr auto 1fr;
  gap: 1.5rem;
}
body.home .logo strong { font-size: 1.55rem; letter-spacing: .12em; }
body.home .logo small { margin-top: .42rem; font-size: .6rem; }
body.home .nav { gap: clamp(1.25rem, 2.6vw, 2.65rem); }
body.home .nav a { font-size: .58rem; letter-spacing: .17em; }
body.home .header-tools { gap: .7rem; }
body.home .hero {
  height: clamp(418px, 29vw, 470px);
  background: var(--black);
}
body.home .hero__campaign { background-position: center; background-size: cover; }
body.home .hero::after { display: block; background: linear-gradient(90deg, rgba(0,0,0,.48), rgba(0,0,0,0) 68%); }
body.home .hero__copy { padding-inline: var(--home-pad); }
body.home .hero__eyebrow {
  position: absolute;
  top: clamp(48px, 4.2vw, 64px);
  left: var(--home-pad);
  margin: 0;
  color: var(--home-red);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .19em;
  text-transform: uppercase;
}
body.home .hero h1 {
  top: clamp(78px, 5.6vw, 90px);
  left: var(--home-pad);
  width: auto;
  max-width: 60vw;
  font-size: clamp(7rem, 12.5vw, 12rem);
  line-height: .78;
  transform: scaleX(.86);
}
body.home .hero__description {
  position: absolute;
  top: clamp(220px, 17.2vw, 255px);
  left: var(--home-pad);
  max-width: 360px;
  margin: 0;
  color: #d7d2ca;
  font-size: .78rem;
  line-height: 1.6;
}
body.home .hero__description-mobile { display: none; }
body.home .hero__actions { position: absolute; top: clamp(292px, 20.8vw, 318px); left: var(--home-pad); display: flex; align-items: center; gap: 1.4rem; }
body.home .hero__cta {
  position: static;
  min-height: 48px;
  padding: .85rem 1.55rem;
  border: 1px solid var(--home-red);
  background: var(--home-red);
  color: white;
  font-size: .58rem;
  letter-spacing: .15em;
}
body.home .hero__cta:hover,
body.home .hero__cta:focus-visible { border-color: white; background: white; color: var(--black); }
body.home .hero__cta b { color: white; }
body.home .hero__cta:hover b,
body.home .hero__cta:focus-visible b { color: var(--home-red); }
body.home .hero__meta { top: auto; bottom: 1.15rem; left: var(--home-pad); width: min(640px, 48vw); }
body.home .hero__pager { right: var(--home-pad); top: 51%; }
body.home .hero__pager span::before { width: 22px; }

body.home .drop-section {
  position: relative;
  min-height: 0;
  padding: 1.55rem var(--home-pad) 1.35rem;
  display: block;
  background: var(--paper);
}
body.home .drop-intro { display: block; margin: 0 0 1rem; padding: 0; }
body.home .drop-intro__kicker { margin: 0 0 .42rem; color: var(--home-red); font-size: .55rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
body.home .drop-intro h2 { margin: 0; font: 400 clamp(2.2rem, 3.55vw, 4rem)/.84 var(--display); letter-spacing: .01em; transform: none; }
body.home .drop-intro h2 br { display: none; }
body.home .drop-rail { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-auto-flow: initial; grid-auto-columns: initial; gap: .65rem; overflow: visible; }
body.home .drop-rail .product-card { min-width: 0; display: block; }
body.home .drop-rail .product-card__image { position: relative; aspect-ratio: 1.12; background: #f7f5f0; overflow: hidden; }
body.home .drop-rail .product-card__image img { width: 100%; height: 100%; object-fit: contain; object-position: center; background: #f7f5f0; transition: transform .4s cubic-bezier(.2,.75,.25,1); }
body.home .drop-rail .product-card:hover .product-card__image img { transform: scale(1.03); }
body.home .drop-card__badge { position: absolute; top: .55rem; right: .55rem; z-index: 2; padding: .28rem .38rem; background: var(--home-red); color: white; font-size: .6rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
body.home .drop-rail .product-card__info { min-height: 50px; padding: .65rem .05rem .1rem; display: grid; gap: .32rem; }
body.home .drop-rail .product-card__info strong { font-size: .58rem; line-height: 1.15; letter-spacing: .06em; text-transform: uppercase; }
body.home .drop-rail .product-card__info b { color: var(--black); font-size: .72rem; line-height: 1; }
body.home .drop-next { position: absolute; top: 1.55rem; right: var(--home-pad); width: auto; height: auto; margin: 0; padding: .45rem 0; display: inline-flex; align-items: center; gap: .6rem; border: 0; border-bottom: 1px solid var(--black); background: transparent; color: var(--black); font-size: .55rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
body.home .drop-next b { color: var(--home-red); font-size: .9rem; }
body.home .drop-next:hover,
body.home .drop-next:focus-visible { border-color: var(--home-red); color: var(--home-red); }

body.home .manifesto { height: auto; min-height: clamp(390px, 34vw, 510px); display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(0, .97fr); background: var(--black); }
body.home .manifesto__image { min-height: 390px; overflow: hidden; }
body.home .manifesto__image img { width: 100%; height: 100%; object-fit: cover; object-position: center; filter: saturate(1.2) contrast(1.08); }
body.home .manifesto__copy { padding: clamp(2.4rem, 5vw, 5.25rem); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; background: var(--black); color: white; }
body.home .manifesto__eyebrow { margin: 0 0 .55rem; color: var(--home-red); font-size: .53rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
body.home .manifesto__copy h2 { margin: 0 0 .85rem; font: 400 clamp(3.1rem, 5.25vw, 6.2rem)/.78 var(--display); letter-spacing: .015em; text-transform: uppercase; }
body.home .manifesto__body { max-width: 430px; margin: 0 0 1.65rem; color: #b4afa8; font-size: .75rem; line-height: 1.65; }
body.home .manifesto__actions { width: min(100%, 520px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .72rem; }
body.home .manifesto__actions a { min-height: 48px; padding: .7rem .9rem; display: flex; align-items: center; justify-content: space-between; gap: .7rem; border: 1px solid rgba(255,255,255,.45); color: white; font-size: .53rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; transition: border-color .2s ease, background .2s ease; }
body.home .manifesto__actions a b { color: var(--home-red); font-size: .9rem; }
body.home .manifesto__actions a:hover,
body.home .manifesto__actions a:focus-visible { border-color: var(--home-red); background: rgba(239,31,45,.08); }

body.home .home-categories { padding: 2.65rem var(--home-pad) 3.5rem; }
body.home .home-categories__head { min-height: 22px; margin: 0 0 1.15rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
body.home .home-categories__eyebrow { margin: 0; color: var(--home-red); font-size: .55rem; font-weight: 900; letter-spacing: .17em; text-transform: uppercase; }
body.home .home-categories h2 { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
body.home .home-categories__browse { margin: 0; padding: .45rem 0; display: inline-flex; align-items: center; gap: .6rem; border: 0; border-bottom: 1px solid var(--black); color: var(--black); font-size: .55rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
body.home .home-categories__browse b { color: var(--home-red); font-size: .9rem; }
body.home .home-categories__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
body.home .category-card { position: relative; min-width: 0; overflow: hidden; background: var(--black); }
body.home .category-card__image { position: relative; aspect-ratio: 1.18; background: #151515; }
body.home .category-card__image::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.75)); }
body.home .category-card__image img { filter: brightness(.58) saturate(.72) contrast(1.08); transition: transform .5s cubic-bezier(.2,.75,.25,1), filter .3s ease; }
body.home .category-card:hover .category-card__image img,
body.home .category-card:focus-visible .category-card__image img { filter: brightness(.72) saturate(.85) contrast(1.08); transform: scale(1.045); }
body.home .category-card__info { position: absolute; z-index: 2; inset: auto .75rem .65rem; padding: 0; display: flex; align-items: center; justify-content: space-between; gap: .6rem; border: 0; color: white; }
body.home .category-card__info strong { color: white; font: 400 1.2rem/.9 var(--display); letter-spacing: .05em; text-transform: uppercase; }
body.home .category-card__info b { margin: 0; color: var(--home-red); font-size: 1rem; }

body.home .community { height: clamp(115px, 9vw, 155px); }
body.home .community__intro { padding-inline: var(--home-pad); }
/* The community block closes the homepage as a deliberate text/contact
   lockup. The former duplicated image strip is intentionally not rendered;
   keep this a single readable region instead of a second visual carousel. */
body.home .community { height: auto; min-height: clamp(132px, 10vw, 176px); grid-template-columns: 1fr; }
body.home .community__intro { max-width: 34rem; }

body.home .site-footer { padding: 2.6rem var(--home-pad) 1rem; grid-template-columns: 1.35fr repeat(3, minmax(0, .8fr)) 1.2fr; gap: 1.8rem; align-items: start; font-size: .55rem; }

@media (max-width: 760px) {
  body.home .site-header { height: 86px; padding-inline: 1rem; grid-template-columns: 44px 1fr auto; gap: .3rem; }
  body.home .logo { grid-column: 2; justify-self: center; align-items: flex-start; }
  body.home .logo strong { font-size: 1.55rem; }
  body.home .menu-toggle { grid-column: 1; grid-row: 1; }
  body.home .header-tools { grid-column: 3; grid-row: 1; }
  body.home .nav { top: 86px; max-height: calc(100vh - 86px); }
  body.home .hero { height: auto; min-height: 0; max-height: none; aspect-ratio: 941 / 1055; }
  body.home .hero__campaign { background-position: center; background-size: 100% 100%; }
  body.home .hero::after { display: none; }
  body.home .hero__eyebrow { display: none; }
  body.home .hero h1 { display: none; }
  body.home .hero__description { left: 1.6rem; top: auto; bottom: 8.35rem; max-width: 190px; color: #cec8c0; font-size: .98rem; line-height: 1.45; }
  body.home .hero__description-desktop { display: none; }
  body.home .hero__description-mobile { display: inline; }
  body.home .hero__actions { left: 1.6rem; top: auto; bottom: 3.8rem; }
  body.home .hero__cta { min-height: 48px; padding-inline: 1.35rem; font-size: .6rem; }
  body.home .hero__meta { display: none; }
  body.home .hero__pager { top: auto; right: auto; bottom: 1.35rem; left: 1.6rem; display: flex; gap: .52rem; transform: none; }
  body.home .hero__pager span { width: 22px; height: 8px; border-radius: 99px; background: #4f4d4a; font-size: 0; }
  body.home .hero__pager span::before { display: none; }
  body.home .hero__pager .is-active { background: var(--home-red); }
  body.home .drop-section { min-height: 0; padding: 1.35rem 0 1.3rem 1rem; }
  body.home .drop-intro { margin: 0 0 1rem; padding-right: 1rem; display: flex; align-items: center; justify-content: space-between; }
  body.home .drop-intro__kicker { display: block; margin: 0; color: var(--black); font: 400 2.5rem/.82 var(--display); letter-spacing: .01em; text-transform: uppercase; }
  body.home .drop-intro h2 { display: none; }
  body.home .drop-next { position: static; margin: 0; padding: .45rem 0; }
  body.home .drop-rail { display: grid; grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(158px, 42vw); gap: .55rem; overflow-x: auto; padding-right: 1rem; scrollbar-width: none; }
  body.home .drop-rail::-webkit-scrollbar { display: none; }
  body.home .drop-rail .product-card { padding: .4rem .4rem .7rem; border: 1px solid rgba(8,8,8,.08); border-radius: .45rem; background: #f9f8f4; box-shadow: 0 3px 12px rgba(0,0,0,.045); }
  body.home .drop-rail .product-card__image { aspect-ratio: .86; }
  body.home .drop-card__badge { top: .5rem; right: .5rem; padding: .27rem .34rem; font-size: .55rem; }
  body.home .drop-rail .product-card__info { min-height: 54px; padding: .55rem .12rem 0; }
  body.home .drop-rail .product-card__info strong { font-size: .58rem; }
  body.home .drop-rail .product-card__info b { font-size: .75rem; }
  body.home .manifesto { min-height: 0; grid-template-columns: 1fr; }
  body.home .manifesto__image { min-height: 280px; height: 78vw; }
  body.home .manifesto__copy { padding: 2.35rem 1rem 2.55rem; }
  body.home .manifesto__eyebrow { font-size: .6rem; }
  body.home .manifesto__copy h2 { margin-bottom: .8rem; font-size: clamp(3.55rem, 15vw, 5.2rem); }
  body.home .manifesto__body { margin-bottom: 1.3rem; font-size: .72rem; }
  body.home .manifesto__actions { grid-template-columns: 1fr; gap: .55rem; }
  body.home .manifesto__actions a { min-height: 46px; font-size: .52rem; }
  body.home .home-categories { padding: 2.35rem 1rem 2.9rem; }
  body.home .home-categories__head { min-height: 0; margin-bottom: 1.15rem; }
  body.home .home-categories__eyebrow { display: none; }
  body.home .home-categories h2 { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; white-space: normal; font: 400 clamp(2.65rem, 11vw, 4.1rem)/.82 var(--display); letter-spacing: .01em; }
  body.home .home-categories__browse { font-size: .52rem; }
  body.home .home-categories__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
  body.home .category-card { border-radius: .55rem; }
  body.home .category-card__image { aspect-ratio: .92; }
  body.home .category-card__info { inset: auto .7rem .7rem; }
  body.home .category-card__info strong { font-size: 1.4rem; }
  body.home .category-card__info b { font-size: .95rem; }
  body.home .home-categories__grid--count-1 { grid-template-columns: 1fr; }
  body.home .home-categories__grid--count-3 .category-card:first-child,
  body.home .home-categories__grid--count-5 .category-card:first-child { grid-column: auto; }
  /* Multi-card mobile grids must use the same portrait media well for every
     card. The desktop editorial lead-card ratio otherwise leaks into the
     first (usually hoodies) card and leaves artwork visibly letter-boxed or
     cut after the tint is removed. */
  body.home .home-categories__grid--count-3 .category-card:first-child .category-card__image,
  body.home .home-categories__grid--count-5 .category-card:first-child .category-card__image {
    aspect-ratio: .92;
  }
  body.home .community { height: auto; }
  body.home .site-footer { grid-template-columns: 1fr 1fr; padding: 2.2rem 1rem 1rem; gap: 1.6rem 1rem; }
}

/* Commerce consistency pass: keep price, quantity and stylist controls
 * quiet, aligned and legible across product, archive and recommendation
 * cards. This is intentionally additive so the approved V3 composition stays
 * intact while WooCommerce markup and the custom cards share one rhythm. */
.product-card__info > b,
.product-card__info > strong,
.product-card__info .amount,
.drop-rail .product-card__info > b,
.drop-rail .product-card__info > strong,
.bad-mafia-complete-look__card .product-card__info strong,
.bad-mafia-complete-look__card .product-card__info b,
.bad-mafia-complete-look__card .product-card__info .amount {
  color: #655f57;
  font-family: var(--body), Arial, sans-serif;
  font-size: clamp(.74rem, .85vw, .95rem);
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.25;
  font-variant-numeric: tabular-nums;
}
.product-card__info del,
.product-info__price del,
.bad-mafia-complete-look__card .product-card__info del {
  color: #aaa49a;
  font-weight: 500;
}
.product-card__info ins,
.product-info__price ins,
.bad-mafia-complete-look__card .product-card__info ins {
  color: #655f57;
  font-weight: 700;
  text-decoration: none;
}
.product-card__info del,
.product-card__info ins,
.product-info__price del,
.product-info__price ins,
.bad-mafia-complete-look__card .product-card__info del,
.bad-mafia-complete-look__card .product-card__info ins {
  white-space: nowrap;
}
.product-card__info del,
.product-info__price del,
.bad-mafia-complete-look__card .product-card__info del {
  margin-right: .28rem;
  text-decoration-thickness: 1px;
}
.bad-mafia-price-savings {
  width: fit-content;
  margin: -.7rem 0 1rem;
  padding: .28rem .42rem;
  border: 1px solid rgba(239, 31, 45, .35);
  color: var(--red);
  font-size: .52rem;
  font-weight: 900;
  letter-spacing: .1em;
  line-height: 1;
  text-transform: uppercase;
}
@media (max-width: 760px) {
  .bad-mafia-price-savings { margin-top: -.45rem; font-size: .6rem; }
}

/* Footer system for the reference-led storefront. The links remain dynamic,
 * while the visual system gives the page a considered closing frame instead
 * of an afterthought row of utility links. */
.site-footer {
  padding: clamp(2.25rem, 3.5vw, 3.5rem) var(--pad) 1rem;
  display: grid;
  grid-template-columns: minmax(15rem, 1.2fr) repeat(2, minmax(11rem, .9fr)) minmax(18rem, 1.25fr);
  gap: clamp(1.2rem, 2.25vw, 2.6rem);
  align-items: start;
  background: var(--black);
  color: #9f9a94;
  border-top: 1px solid #242424;
  font-size: .64rem;
  letter-spacing: .09em;
  text-transform: uppercase;
}
.site-footer__brand,
.site-footer__column,
.site-footer__connect { min-width: 0; }
.site-footer__wordmark { display: inline-flex; flex-direction: column; align-items: flex-start; color: white; }
.site-footer__wordmark strong { font: 400 clamp(1.25rem, 1.85vw, 1.85rem)/.9 var(--display); letter-spacing: .14em; }
.site-footer__wordmark small { margin-top: .45rem; color: var(--red); font-size: .6rem; font-weight: 900; letter-spacing: .22em; }
.site-footer__description { max-width: 14rem; margin: 1.1rem 0 1.15rem; color: #aaa59d; font-size: .62rem; line-height: 1.65; letter-spacing: .03em; text-transform: none; }
.site-footer__socials { display: flex; flex-wrap: wrap; gap: .55rem .85rem; }
.site-footer__social { display: inline-flex; align-items: center; gap: .4rem; color: white; font-size: .52rem; letter-spacing: .1em; }
.site-footer__social svg { width: 15px; height: 15px; }
.site-footer__social b { color: var(--red); font-size: .78rem; }
.site-footer__social:hover,
.site-footer__social:focus-visible { color: var(--red); }
.site-footer__column { display: grid; align-content: start; gap: .64rem; }
.site-footer__column h2 { margin: 0 0 .4rem; color: var(--red); font-size: .52rem; font-weight: 900; letter-spacing: .18em; }
.site-footer__column a { color: #d0cbc4; font-size: .66rem; letter-spacing: .03em; text-transform: none; }
.site-footer__column a:hover,
.site-footer__column a:focus-visible { color: var(--red); }
.site-footer__connect-kicker { margin: 0 0 .6rem; color: var(--red); font-size: .52rem; font-weight: 900; letter-spacing: .18em; }
.site-footer__connect h2 { margin: 0 0 .55rem; color: white; font: 400 clamp(1.55rem, 2.2vw, 2.3rem)/.88 var(--display); letter-spacing: .04em; text-transform: uppercase; }
.site-footer__connect > p:not(.site-footer__connect-kicker) { max-width: 18rem; margin: 0 0 .9rem; color: #aaa59d; font-size: .68rem; line-height: 1.55; letter-spacing: .02em; text-transform: none; }
.site-footer__connect-links { display: grid; gap: .42rem; }
.site-footer__connect-links a,
.site-footer__connect-links span { overflow-wrap: anywhere; color: #d0cbc4; font-size: .66rem; letter-spacing: .02em; text-transform: none; }
.site-footer__connect-links a b { color: var(--red); font-size: .75rem; }
.site-footer__connect-links a:hover,
.site-footer__connect-links a:focus-visible { color: var(--red); }
.site-footer__connect.is-empty { align-self: start; }
.site-footer__connect.is-empty h2 { font-size: clamp(1.35rem, 2vw, 2rem); }
.site-footer__connect.is-empty > p:not(.site-footer__connect-kicker) { max-width: 18rem; }
.site-footer__connect-links.is-empty { margin-top: .15rem; }
.site-footer__bottom { grid-column: 1 / -1; min-width: 0; padding-top: .9rem; display: flex; flex-wrap: wrap; align-items: center; gap: .45rem 1.2rem; border-top: 1px solid #242424; color: #77716b; font-size: .6rem; letter-spacing: .09em; }
.site-footer__bottom a { margin-left: auto; color: #aaa59d; }
.site-footer__bottom a:hover,
.site-footer__bottom a:focus-visible { color: var(--red); }

body.home .site-footer { grid-template-columns: minmax(15rem, 1.2fr) repeat(2, minmax(11rem, .9fr)) minmax(18rem, 1.25fr); }

@media (max-width: 900px) {
  .site-footer,
  body.home .site-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .site-footer__brand,
  .site-footer__connect { grid-column: 1 / -1; }
}
.woocommerce div.product .detail-copy p.price,
.woocommerce div.product .detail-copy span.price,
.product-info__price {
  margin: 1rem 0 1.15rem !important;
  color: #655f57 !important;
  font-family: var(--body), Arial, sans-serif !important;
  font-size: clamp(.92rem, 1vw, 1.08rem) !important;
  font-weight: 600 !important;
  letter-spacing: .01em;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}
.woocommerce div.product .detail-copy .price del,
.woocommerce div.product .detail-copy p.price del,
.woocommerce div.product .detail-copy span.price del {
  color: #706961 !important;
  font-size: .78em;
  font-weight: 500;
}
.woocommerce div.product .detail-copy .price ins,
.woocommerce div.product .detail-copy p.price ins,
.woocommerce div.product .detail-copy span.price ins {
  color: var(--red) !important;
  font-weight: 800;
  text-decoration: none;
}
.detail-copy form.cart:not(.variations_form),
.detail-copy .woocommerce-variation-add-to-cart {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  gap: .5rem;
}
.detail-copy form.cart:not(.variations_form) .quantity,
.detail-copy .woocommerce-variation-add-to-cart .quantity {
  grid-column: 1 / -1;
  justify-self: start;
  width: 132px;
  min-width: 132px;
  height: 46px;
  min-height: 46px;
  margin: 0;
  display: inline-flex;
  align-items: stretch;
}
.detail-copy form.cart:not(.variations_form) .quantity .qty,
.detail-copy .woocommerce-variation-add-to-cart .quantity .qty,
.detail-copy form.cart:not(.variations_form) .quantity .minus,
.detail-copy form.cart:not(.variations_form) .quantity .plus,
.detail-copy .woocommerce-variation-add-to-cart .quantity .minus,
.detail-copy .woocommerce-variation-add-to-cart .quantity .plus {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0;
  display: grid;
  place-items: center;
}
.detail-copy form.cart:not(.variations_form) .quantity .qty,
.detail-copy .woocommerce-variation-add-to-cart .quantity .qty {
  border: 0;
  border-inline: 1px solid var(--line);
  text-align: center;
}
.detail-copy form.cart:not(.variations_form) .single_add_to_cart_button,
.detail-copy .woocommerce-variation-add-to-cart .single_add_to_cart_button {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding-inline: .45rem;
  font-size: .56rem;
  letter-spacing: .08em;
}
.bad-mafia-stylist__toggle b {
  width: 1rem;
  height: 1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 1rem;
  line-height: 1;
  transform: none;
}

@media (max-width: 760px) {
  .product-card__info > b,
  .product-card__info > strong,
  .product-card__info .amount,
  .drop-rail .product-card__info > b,
  .drop-rail .product-card__info > strong,
  .bad-mafia-complete-look__card .product-card__info strong,
  .bad-mafia-complete-look__card .product-card__info b,
  .bad-mafia-complete-look__card .product-card__info .amount {
    font-size: .72rem;
  }
  .woocommerce div.product .detail-copy p.price,
  .woocommerce div.product .detail-copy span.price,
  .product-info__price {
    font-size: .92rem !important;
  }
  .detail-copy form.cart:not(.variations_form),
  .detail-copy .woocommerce-variation-add-to-cart {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
  }
  .detail-copy form.cart:not(.variations_form) .quantity,
  .detail-copy .woocommerce-variation-add-to-cart .quantity {
    grid-column: 1 / -1;
    justify-self: start;
  }
  .detail-copy form.cart:not(.variations_form) .single_add_to_cart_button,
  .detail-copy .woocommerce-variation-add-to-cart .single_add_to_cart_button {
    font-size: .52rem;
    letter-spacing: .06em;
  }
  .bad-mafia-stylist {
    margin-top: 1rem;
  }
  .bad-mafia-stylist__intro {
    padding: .9rem;
  }
  .bad-mafia-stylist__intro h2 {
    font-size: clamp(2.25rem, 10vw, 3.2rem);
    line-height: .9;
  }
  .bad-mafia-stylist__intro p:not(.kicker) {
    font-size: .64rem;
    line-height: 1.45;
  }
  .bad-mafia-stylist__toggle {
    width: 100%;
    min-height: 44px;
    margin-top: .7rem;
  }
  .bad-mafia-stylist__quick {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: .45rem;
  }
  .bad-mafia-stylist__quick > span {
    width: auto;
    grid-column: 1 / -1;
    margin: 0;
  }
  .bad-mafia-stylist__quick button {
    width: 100%;
    min-width: 0;
    min-height: 40px;
    flex: none;
    text-align: center;
  }
  .bad-mafia-stylist__quick button:last-child {
    grid-column: 1 / -1;
  }
  .bad-mafia-stylist__input-row {
    grid-template-columns: 1fr;
    gap: .45rem;
  }
  .bad-mafia-stylist__input-row .button {
    width: 100%;
  }
}

@media (max-width: 760px) {
  .site-footer,
  body.home .site-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 2.45rem 1rem 1rem;
    gap: 1.65rem 1rem;
  }
  .site-footer__brand,
  .site-footer__connect { grid-column: 1 / -1; }
  .site-footer__brand { padding-bottom: .25rem; }
  .site-footer__description { margin-top: .85rem; }
  .site-footer__connect { padding: 1.25rem 0 1.35rem; border-top: 1px solid #242424; border-bottom: 1px solid #242424; }
  .site-footer__connect h2 { font-size: 2.3rem; }
  .site-footer__bottom { gap: .55rem .9rem; }
  .site-footer__bottom a { margin-left: 0; }
}

/* Final catalogue/product finish: keep information dense enough to scan on a
 * phone, while retaining the editorial scale on wide screens. These rules
 * deliberately sit last so WooCommerce's injected markup follows one visual
 * rhythm without changing the approved homepage. */
.page-title h1 {
  max-width: 15ch;
  font-size: clamp(2.55rem, 4.2vw, 4.5rem);
}
.page-title > p {
  color: #928c84;
  font-size: .62rem;
  font-weight: 600;
  letter-spacing: .12em;
}
.shop-layout {
  padding-top: 1.25rem;
  gap: clamp(1.75rem, 4vw, 4rem);
}
.shop-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 1rem;
  margin-bottom: 1.15rem;
  padding-bottom: .9rem;
  border-bottom: 1px solid var(--line);
}
.shop-toolbar .shop-search-control { min-width: 0; }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select {
  min-width: 176px;
  min-height: 46px;
  color: #292623;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.shop-grid .product-card__info {
  min-height: 58px;
  padding-top: .65rem;
  align-items: start;
}
.shop-grid .product-card__info h2,
.shop-grid .product-card__info h3 {
  font-size: clamp(.9rem, 1.05vw, 1.05rem);
  line-height: 1.15;
}
.shop-grid .product-card__info > strong,
.shop-grid .product-card__info > b,
.shop-grid .product-card__info .amount {
  color: #746d64;
  font-size: clamp(.82rem, .95vw, .95rem);
  font-weight: 600;
}
.bad-mafia-stylist { display: none !important; }

@media (max-width: 760px) {
  .page-title {
    min-height: 94px;
    padding: .72rem 1rem .68rem;
    align-items: center;
    gap: .15rem;
  }
  .page-title h1 {
    max-width: 12ch;
    font-size: clamp(2rem, 8.2vw, 2.55rem);
  }
  .page-title > p {
    margin: .18rem 0 0;
    font-size: .68rem;
    letter-spacing: .1em;
  }
  .shop-layout {
    padding: .75rem 1rem 3rem;
    gap: .9rem;
  }
  .sitemap-page__content {
    grid-template-columns: 1fr;
    gap: 2.4rem;
    padding: 1.25rem 1rem 3.5rem;
  }
  .filter-list {
    margin-inline: 0;
    padding-bottom: .15rem;
  }
  .filters .filter-list a {
    min-height: 44px;
    padding: .62rem .78rem;
    font-size: .56rem;
  }
  .filters .filter-list a.is-active {
    background: var(--black);
    color: var(--white);
  }
  .shop-toolbar {
    grid-template-columns: 1fr;
    gap: .62rem;
    margin-bottom: .9rem;
    padding-bottom: .85rem;
  }
  .shop-search-control,
  .woocommerce-ordering select { min-height: 44px; }
  /* Keep the search field at a comfortable reading/touch size; the previous
   * .76rem override made the visible placeholder unreadable on phones. */
  .shop-search-control input { font-size: 1rem; }
  .shop-search-control button,
  .woocommerce-ordering select { font-size: .64rem; }
  .woocommerce-ordering select { width: 100%; }
  .shop-grid {
    gap: 1.25rem .55rem;
  }
  .shop-grid .product-card__image { aspect-ratio: .9; }
  .shop-grid .product-card__info {
    min-height: 52px;
    padding: .5rem .1rem .25rem;
    gap: .35rem;
  }
  .shop-grid .product-card__info h2,
  .shop-grid .product-card__info h3 { font-size: .86rem; line-height: 1.2; }
  .shop-grid .product-card__info h2 { font-size: .86rem; line-height: 1.2; }
  .filters .filter-list a { font-size: .66rem; }
  .shop-grid .product-card__info p { font-size: .74rem; }
  .shop-grid .product-card__info > strong,
  .shop-grid .product-card__info > b,
  .shop-grid .product-card__info .amount { font-size: .86rem; }
  .shop-grid .product-card__add {
    min-height: 40px;
    padding-inline: .55rem;
    font-size: .68rem;
  }
  .woocommerce div.product .detail-copy p.price,
  .woocommerce div.product .detail-copy span.price,
  .product-info__price {
    color: #746d64 !important;
    font-size: .86rem !important;
  }
  .detail-copy form.cart:not(.variations_form),
  .detail-copy .woocommerce-variation-add-to-cart {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
  }
  .detail-copy form.cart:not(.variations_form) .quantity,
  .detail-copy .woocommerce-variation-add-to-cart .quantity {
    grid-column: 1 / -1;
    width: 132px;
    min-width: 132px;
    justify-self: start;
  }
.detail-copy form.cart:not(.variations_form) .single_add_to_cart_button,
.detail-copy .woocommerce-variation-add-to-cart .single_add_to_cart_button {
  min-height: 44px;
  font-size: .5rem;
}
}

/* ---------------------------------------------------------------------------
 * Storefront refinement pass (Bad Mafia V3 contract): smaller, calmer
 * surfaces for the shop hero, contact navigation, stock honesty and the
 * product detail composition. No visual direction change — these only
 * tighten alignment, hierarchy and touch targets on the approved design.
 * ------------------------------------------------------------------------- */

/* Phone hero: keep the primary CTA as the red visual anchor from the approved
   mobile direction. It keeps a 44px touch target, lines up with the masthead
   copy on the left edge, and leaves the campaign image untouched. */
@media (max-width: 760px) {
  body.home .hero__actions {
    left: 1.6rem;
    bottom: 3.35rem;
    top: auto;
    gap: 1.1rem;
  }
  body.home .hero__cta {
    min-height: 44px;
    width: fit-content;
    min-width: 168px;
    padding: .68rem .9rem;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: .55rem;
    border: 1px solid var(--home-red);
    background: var(--home-red);
    color: white;
    font-size: .54rem;
    letter-spacing: .14em;
  }
  body.home .hero__cta b {
    color: white;
    font-size: .82rem;
  }
  body.home .hero__cta:hover,
  body.home .hero__cta:focus-visible {
    border-color: white;
    background: white;
    color: var(--black);
  }
  body.home .hero__cta:hover b,
  body.home .hero__cta:focus-visible b {
    color: var(--home-red);
  }
  body.home .hero__pager {
    bottom: 1.35rem;
  }
  body.home .hero__description {
    bottom: 7.2rem;
  }
}

/* Contact dropdown in the header nav (desktop + drawer). */
.nav .nav-contact {
  position: relative;
  display: inline-flex;
}
.nav .nav-contact__toggle {
  position: relative;
  min-height: 0;
  line-height: 1.2;
  padding: 0;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  cursor: pointer;
}
.nav .nav-contact__toggle::after {
  width: .34rem;
  height: .34rem;
  margin-left: .18rem;
  border-right: 1px solid var(--red);
  border-bottom: 1px solid var(--red);
  content: "";
  transform: translateY(-.1rem) rotate(45deg);
  transition: transform .18s ease;
}
.nav .nav-contact.is-open .nav-contact__toggle::after {
  transform: translateY(.1rem) rotate(225deg);
}
.nav .nav-contact__toggle::before {
  position: absolute;
  right: 100%;
  bottom: -.6rem;
  left: 0;
  height: 1px;
  background: var(--red);
  content: "";
  transition: right .2s ease;
}
.nav .nav-contact__toggle:hover::before,
.nav .nav-contact__toggle:focus-visible::before,
.nav .nav-contact.is-open .nav-contact__toggle::before {
  right: 0;
}
.nav .nav-contact__menu {
  position: absolute;
  z-index: 60;
  top: calc(100% + 1rem);
  right: 0;
  width: max-content;
  min-width: 220px;
  padding: .35rem 0;
  display: grid;
  border: 1px solid #2b2b2b;
  background: var(--black);
  box-shadow: 0 22px 44px rgba(0, 0, 0, .45);
}
.nav .nav-contact__menu[hidden] {
  display: none;
}
.nav .nav-contact__menu a {
  min-height: 44px;
  padding: .7rem .9rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .9rem;
  color: #d4d0c9;
  border-bottom: 1px solid #262626;
  font-size: .54rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.nav .nav-contact__menu a:last-child {
  border-bottom: 0;
}
.nav .nav-contact__menu a:hover,
.nav .nav-contact__menu a:focus-visible {
  color: var(--red);
}
.nav .nav-contact__menu b {
  color: var(--red);
  font-size: .7rem;
}
.nav .nav-contact__empty {
  display: block;
  padding: .7rem .9rem;
  color: #8b857e;
  font-size: .54rem;
  letter-spacing: .08em;
  line-height: 1.5;
  text-transform: uppercase;
}
@media (min-width: 761px) {
  .nav .nav-contact__toggle { font-size: .75rem; }
}
@media (max-width: 760px) {
  .nav .nav-contact {
    display: block;
  }
  .nav .nav-contact__toggle {
    display: flex;
    width: 100%;
    min-height: 48px;
    border-bottom: 1px solid #222;
    padding: 0;
    justify-content: flex-start;
    font-size: .62rem;
  }
  .nav .nav-contact__toggle::after,
  .nav .nav-contact__toggle:hover::after,
  .nav .nav-contact__toggle:focus-visible::after,
  .nav .nav-contact.is-open .nav-contact__toggle::after { display: none !important; }
  .nav .nav-contact__toggle::before { display: none; }
  .nav .nav-contact__menu {
    position: static;
    width: 100%;
    min-width: 0;
    margin: 0 0 .35rem;
    border: 0;
    border-bottom: 1px solid #222;
    box-shadow: none;
  }
}

/* Contact remains available from the footer/support surface on phones. Keep
 * the primary drawer focused on shopping actions instead of repeating a
 * second disclosure control that users already rejected in the mobile UX. */
@media (max-width: 760px) {
  .nav .nav-contact { display: none; }
}

/* Neutral focus treatment for the search field: a black edge instead of
   an oversized red ring on phone keyboards. */
.header-search input:focus,
.header-search input:focus-visible,
.page-search input:focus,
.page-search input:focus-visible {
  outline: none;
  border-color: var(--black);
  box-shadow: none;
}

/* Stock honesty labels (LOW IN STOCK / Only N units left). */
.product-card__badge--stock {
  left: auto;
  right: .7rem;
  background: var(--ink);
  color: white;
}
.product-card__badge--tag {
  top: auto;
  right: auto;
  bottom: .7rem;
  left: .7rem;
  max-width: calc(100% - 1.4rem);
  overflow: hidden;
  background: rgba(0, 0, 0, .78);
  color: white;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 480px) {
  .product-card__badge--stock {
    right: .5rem;
    top: .5rem;
    font-size: .6rem;
  }
  .product-card__badge--tag {
    bottom: .5rem;
    left: .5rem;
    max-width: calc(100% - 1rem);
    font-size: .55rem;
  }
}
.bad-mafia-stock-flag {
  margin: .35rem 0 .7rem;
  display: flex;
  align-items: center;
  gap: .5rem;
  color: #9c4a2f;
  font-size: .56rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.bad-mafia-stock-flag i {
  width: 7px;
  height: 7px;
  display: block;
  border-radius: 50%;
  background: currentColor;
}
.bad-mafia-stock-flag--variation[hidden] {
  display: none !important;
}

/* Product detail: tighten the margin between the black header band and
   the "Back to collection" row on phones. */
.single-commerce-page {
  padding-top: clamp(28px, 4vw, 56px);
}
@media (max-width: 760px) {
  .single-commerce-page {
    padding-top: 12px;
  }
  .detail-nav {
    margin-bottom: 1.4rem;
  }
}

/* Home categories: keep the editorial scale but bring the desktop heading
   back under the campaign-size ceiling. */
body.home .home-categories h2 {
  font-size: clamp(3rem, 5.3vw, 5.6rem);
}

/* Footer: neutral fulfilment line next to the existing verified contacts. */
.site-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  max-width: 100%;
}
.site-footer__shipping-note {
  margin: 0;
  color: #777;
  font-size: .6rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}

/* Product purchase alignment pass. Keep quantity visually separate while the
 * two actions read as one contiguous decision group. */
.detail-copy form.cart:not(.variations_form),
.detail-copy .woocommerce-variation-add-to-cart {
  column-gap: 0;
  row-gap: 8px;
}
.detail-copy form.cart:not(.variations_form) .quantity,
.detail-copy .woocommerce-variation-add-to-cart .quantity {
  margin-right: 8px;
}
.detail-copy form.cart:not(.variations_form) .single_add_to_cart_button + .bad-mafia-buy-now-button,
.detail-copy .woocommerce-variation-add-to-cart .single_add_to_cart_button + .bad-mafia-buy-now-button {
  border-left: 1px solid var(--paper) !important;
}
@media (max-width: 760px) {
  .detail-copy form.cart:not(.variations_form) .quantity,
  .detail-copy .woocommerce-variation-add-to-cart .quantity {
    margin-right: 0;
  }
}

/* Footer close: keep the desktop reference hierarchy, but give the mobile
 * footer a deliberate reading order and real touch targets. The base theme's
 * broad nav rule is more specific than the footer column rule, so the
 * qualified selector restores the intended vertical link groups. */
.site-footer nav.site-footer__column {
  display: grid;
  align-content: start;
  gap: .64rem;
}
.site-footer nav.site-footer__column a {
  display: block;
}

@media (max-width: 760px) {
  .site-footer,
  body.home .site-footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 2.5rem 1rem 1rem;
    gap: 1.7rem 1.15rem;
  }
  .site-footer__brand,
  .site-footer__connect {
    grid-column: 1 / -1;
  }
  .site-footer__description {
    max-width: 18rem;
    margin-bottom: .8rem;
    font-size: .7rem;
  }
  .site-footer__socials {
    gap: .35rem .7rem;
  }
  .site-footer__social {
    min-height: 36px;
    font-size: .62rem;
  }
  .site-footer nav.site-footer__column {
    gap: .25rem;
  }
  .site-footer__column h2 {
    margin-bottom: .35rem;
    font-size: .56rem;
  }
  .site-footer__column a {
    min-height: 40px;
    display: flex !important;
    align-items: center;
    font-size: .66rem;
  }
  .site-footer__connect {
    padding: 1.4rem 0 1.45rem;
  }
  .site-footer__connect-kicker {
    margin-bottom: .7rem;
    font-size: .56rem;
  }
  .site-footer__connect h2 {
    font-size: clamp(2.15rem, 10vw, 2.65rem);
  }
  .site-footer__connect > p:not(.site-footer__connect-kicker) {
    max-width: 22rem;
    font-size: .7rem;
    line-height: 1.6;
  }
  .site-footer__connect-links {
    gap: .15rem;
  }
  .site-footer__connect-links a,
  .site-footer__connect-links span {
    min-height: 40px;
    display: flex;
    align-items: center;
    font-size: .65rem;
  }
  .site-footer__bottom {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: start;
    gap: .55rem .8rem;
    padding-top: 1rem;
    font-size: .52rem;
    line-height: 1.45;
  }
  .site-footer__bottom > span:nth-child(2) {
    grid-column: 1 / -1;
    grid-row: 2;
  }
  .site-footer__bottom .site-footer__shipping-note {
    grid-column: 1 / -1;
    grid-row: 3;
    font-size: .52rem;
  }
  .site-footer__bottom > a {
    grid-column: 2;
    grid-row: 1;
    min-height: 32px;
    display: flex;
    align-items: center;
  }
}

/* Final storefront visual gate: these rules intentionally come last so the
 * footer and nav keep one optical scale after all legacy responsive layers. */
body.home .manifesto__actions {
  width: min(100%, 560px);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}
body.home .manifesto__actions a {
  min-height: 52px;
  padding: .8rem 1rem;
  letter-spacing: .12em;
}
.site-footer,
body.home .site-footer {
  width: 100%;
  padding: clamp(3.4rem, 5.3vw, 5.4rem) var(--pad) 1.15rem;
  grid-template-columns: minmax(15rem, 1.2fr) repeat(2, minmax(11rem, .9fr)) minmax(18rem, 1.25fr);
  column-gap: clamp(1.6rem, 3.4vw, 4.4rem);
  row-gap: clamp(2.4rem, 4vw, 3.8rem);
  align-content: start;
  font-size: .61rem;
}
.site-footer__brand { padding-right: .75rem; }
.site-footer__wordmark strong { font-size: clamp(1.7rem, 2.35vw, 2.45rem); letter-spacing: .13em; }
.site-footer__wordmark small { margin-top: .5rem; font-size: .5rem; }
.site-footer__description { max-width: 15rem; margin: 1.2rem 0 1.3rem; font-size: .7rem; line-height: 1.65; }
.site-footer__socials { gap: .6rem 1rem; }
.site-footer__social { min-height: 32px; font-size: .58rem; }
.site-footer__social svg { width: 16px; height: 16px; }
.site-footer nav.site-footer__column { gap: .48rem; }
.site-footer__column h2 { margin-bottom: .55rem; font-size: .58rem; }
.site-footer__column a { min-height: 30px; display: flex; align-items: center; font-size: .66rem; line-height: 1.25; }
.site-footer__connect-kicker { margin-bottom: .7rem; font-size: .58rem; }
.site-footer__connect h2 { margin-bottom: .7rem; font-size: clamp(2.1rem, 3vw, 3.2rem); }
.site-footer__connect > p:not(.site-footer__connect-kicker) { max-width: 20rem; margin-bottom: 1.05rem; font-size: .7rem; line-height: 1.6; }
.site-footer__connect-links { gap: .3rem; }
.site-footer__connect-links a,
.site-footer__connect-links span { min-height: 30px; display: flex; align-items: center; font-size: .64rem; line-height: 1.4; }
.site-footer__bottom {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .7rem 1.25rem;
  padding-top: 1.15rem;
  font-size: .5rem;
  line-height: 1.45;
}
.site-footer__bottom a { margin-left: 0; }
.nav .nav-contact { align-items: center; }
/* The disclosure button shares the exact optical scale of its neighbouring
 * links. Its chevron is a hover/focus affordance, not part of the label. */
.nav > a,
.nav .nav-contact__toggle {
  font-family: inherit;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .18em;
  line-height: 1.2;
  text-transform: uppercase;
}
.nav .nav-contact__toggle { min-height: 0; gap: 0; }
.nav .nav-contact__toggle::after,
.nav .nav-contact.is-open .nav-contact__toggle::after {
  width: 0;
  height: 0;
  margin-left: 0;
  border: 0;
  content: "";
  opacity: 0;
  transform: none;
}
.nav .nav-contact__toggle:hover::after,
.nav .nav-contact__toggle:focus-visible::after {
  width: .34rem;
  height: .34rem;
  margin-left: .35rem;
  border-right: 1px solid var(--red);
  border-bottom: 1px solid var(--red);
  content: "";
  opacity: 1;
  transform: translateY(-.1rem) rotate(45deg);
}
body.home .nav > a,
body.home .nav .nav-contact__toggle {
  font-size: .58rem;
  letter-spacing: .17em;
}
@media (min-width: 761px) {
  .nav > a,
  .nav .nav-contact__toggle { font-size: .75rem; }
  body.home .nav > a,
  body.home .nav .nav-contact__toggle { font-size: .58rem; }
}

@media (max-width: 760px) {
  body.home .manifesto__actions {
    width: 100%;
    grid-template-columns: 1fr;
    gap: .55rem;
  }
  body.home .manifesto__actions a { min-height: 48px; }
  .site-footer,
  body.home .site-footer {
    width: 100%;
    box-sizing: border-box;
    padding: 2.75rem 1rem 1rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: .9rem;
    row-gap: 1.45rem;
    align-content: start;
  }
  .site-footer__brand,
  .site-footer__connect {
    width: auto;
    max-width: 100%;
    min-width: 0;
  }
  .site-footer__brand { padding-right: 0; }
  .site-footer__socials,
  .site-footer__connect-links,
  .site-footer__bottom {
    width: auto;
    max-width: 100%;
    min-width: 0;
  }
  .site-footer__description { max-width: 19rem; margin: .9rem 0 1rem; font-size: .7rem; }
  .site-footer__social { min-height: 38px; font-size: .62rem; }
  .site-footer nav.site-footer__column { gap: .22rem; }
  .site-footer__column h2 { margin-bottom: .4rem; font-size: .56rem; }
  .site-footer__column a { min-height: 36px; font-size: .68rem; }
  .site-footer__connect { padding: 1.5rem 0 1.55rem; }
  .site-footer__connect h2 { font-size: clamp(2.2rem, 10vw, 2.8rem); }
  .site-footer__connect > p:not(.site-footer__connect-kicker) { max-width: 23rem; font-size: .7rem; }
  .site-footer__connect-links a,
  .site-footer__connect-links span { min-height: 36px; font-size: .66rem; }
  .site-footer__bottom {
    grid-template-columns: 1fr auto;
    gap: .55rem .8rem;
    padding-top: 1rem;
    font-size: .52rem;
  }
  .site-footer__bottom > span:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  .site-footer__bottom .site-footer__shipping-note { grid-column: 1 / -1; grid-row: 3; font-size: .52rem; }
  .site-footer__bottom > a { grid-column: 2; grid-row: 1; min-height: 32px; display: flex; align-items: center; }
}

/* Data-driven campaign frames: one image is a still, while optional Runlo
 * appearance frames become a quiet crossfade with exactly one control per
 * configured image. Empty slots never render a phantom dot. */
.hero__campaign { background-image: none !important; }
.hero__slide { position: absolute; inset: 0; z-index: 0; background-color: var(--black); background-image: var(--hero-slide-image); background-position: 5.2vw top; background-repeat: no-repeat; background-size: cover; opacity: 0; transition: opacity .55s ease; }
.hero__slide.is-active { opacity: 1; }
/* The campaign wrapper owns the slide stack; a blanket inherited background
 * here would paint an opaque black layer over every data-driven hero image. */
.hero__campaign::after { content: none; }
.hero__pager { z-index: 4; }
.hero__pager button { appearance: none; border: 0; margin: 0; padding: 0; color: #777; background: transparent; font: inherit; cursor: pointer; }
.hero__pager button::before { content: ""; display: inline-block; width: 18px; height: 1px; margin-right: .65rem; background: #333; vertical-align: middle; }
.hero__pager button.is-active { color: var(--red); }
.hero__pager button.is-active::before { background: var(--red); }
.hero--single .hero__pager { display: none; }
.hero--single:not(.hero--custom) .hero__slide:first-child { background-image: url("badmafia/hero-reference-v10.webp"); }
.site-footer__social--icon { width: 38px; min-height: 38px; justify-content: center; }
.site-footer__social--icon svg { width: 19px; height: 19px; }
.site-footer__connect-links.is-empty { min-height: 30px; }
.site-footer__connect-links.is-empty a { color: white; }

@media (max-width: 760px) {
  body.home .hero__slide,
  body.home .hero--custom .hero__slide { background-position: center; background-size: cover; }
  body.home .hero--single:not(.hero--custom) .hero__slide:first-child { background-image: url("badmafia/mobile-hero-composite-v19.webp"); background-size: 100% 100%; }
  body.home .hero--multi .hero__slide { background-size: cover; }
  body.home .hero__pager { display: flex; z-index: 5; gap: .52rem; }
  body.home .hero--single .hero__pager { display: none; }
  body.home .hero__pager button { width: 22px; height: 8px; min-width: 22px; border-radius: 99px; background: #4f4d4a; font-size: 0; }
  body.home .hero__pager button::before { display: none; }
  body.home .hero__pager button.is-active { background: var(--home-red); }
  body.home .hero__cta { min-height: 44px; min-width: 154px; padding: .58rem .78rem; gap: .42rem; font-size: .5rem; letter-spacing: .095em; }
  body.home .community { min-height: 150px; grid-template-columns: 1fr; }
  body.home .community__intro { min-height: 0; padding: .85rem 1rem; }
  .site-footer__social--icon { min-height: 42px; }
}

/* Final mobile hero composition pass. The campaign artwork remains the
 * approved asset; only the overlaid copy/CTA group is tightened so it reads
 * as one balanced block on narrow phones. Desktop coordinates are untouched.
 */
@media (max-width: 760px) {
  body.home .hero__description {
    /* Keep the copy as a single, quiet lock-up with the CTA. The artwork
       already carries the large title, so the supporting line should never
       compete with it on narrow screens. */
    left: 1.5rem;
    bottom: 8.05rem;
    max-width: 182px;
    font-size: .94rem;
    line-height: 1.42;
  }
  body.home .hero__actions {
    left: 1.5rem;
    bottom: 3.95rem;
  }
  body.home .hero__cta {
    min-width: 152px;
    min-height: 44px;
    padding: .55rem .72rem;
    gap: .38rem;
    font-size: .6rem;
    letter-spacing: .11em;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hero__slide { transition: none; }
}

/* The approved desktop reference uses a quiet vertical campaign index at the
 * hero edge. Keep the numbers legible without competing with the headline;
 * phones use the compact pills from the mobile rule above. */
@media (min-width: 761px) {
  body.home .hero__pager {
    top: 50%;
    right: var(--home-pad);
    bottom: auto;
    left: auto;
    display: grid;
    align-items: start;
    gap: .7rem;
    transform: translateY(-50%);
  }
  body.home .hero__pager button {
    min-height: 22px;
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: #88827b;
    font-size: .58rem;
    letter-spacing: .16em;
  }
  body.home .hero__pager button::before {
    width: 22px;
    margin-right: 0;
  }
  body.home .hero__pager button.is-active { color: var(--home-red); }
}

/* Keep the mobile drawer label aligned with the other links after the final
 * desktop cascade above. The disclosure remains clickable; only its desktop
 * hover affordance is removed on touch layouts. */
@media (max-width: 760px) {
  .nav .nav-contact__toggle { justify-content: flex-start; }
  .nav .nav-contact__toggle::after,
  .nav .nav-contact__toggle:hover::after,
  .nav .nav-contact__toggle:focus-visible::after,
  .nav .nav-contact.is-open .nav-contact__toggle::after {
    display: none !important;
    width: 0;
    height: 0;
    margin-left: 0;
    border: 0;
    opacity: 0;
  }
}

/* Footer visual reference pass: align the five columns as one calm baseline,
 * then give the links enough scale to read without turning the closing frame
 * into a second hero. Content remains data-driven and editable in Runlo. */
@media (min-width: 761px) {
  .site-footer {
    grid-template-columns: minmax(15rem, 1.2fr) repeat(2, minmax(11rem, .9fr)) minmax(18rem, 1.25fr);
    gap: clamp(1.25rem, 2.4vw, 2.8rem);
    padding-top: clamp(2.4rem, 3.2vw, 3.4rem);
  }
  .site-footer__description { font-size: .72rem; }
  .site-footer__column { gap: .82rem; }
  .site-footer__column h2,
  .site-footer__connect-kicker { font-size: .6rem; margin-bottom: .55rem; }
  .site-footer__column a { font-size: .74rem; line-height: 1.3; }
  .site-footer__connect h2 { font-size: clamp(1.8rem, 2.25vw, 2.5rem); }
  .site-footer__connect > p:not(.site-footer__connect-kicker) { font-size: .72rem; }
  .site-footer__connect-links a,
  .site-footer__connect-links span { font-size: .72rem; }
}

/* Footer closing frame — a deliberately compact, five-part information grid.
 * This final layer owns the footer layout so older campaign-era grid rules
 * cannot create oversized empty columns or dilute the link hierarchy. */
.site-footer,
body.home .site-footer {
  display: block;
  width: 100%;
  padding: clamp(2.4rem, 3vw, 3.1rem) var(--pad) clamp(1.75rem, 2.35vw, 2.5rem);
  background: var(--black);
  border-top: 1px solid #242424;
}
.site-footer__main {
  display: grid;
  grid-template-columns: minmax(11rem, 1.18fr) repeat(3, minmax(7.4rem, .72fr)) minmax(15rem, 1.08fr);
  align-items: start;
  gap: clamp(1.4rem, 2.45vw, 3.35rem);
}
.site-footer__brand,
.site-footer__column,
.site-footer__connect {
  min-width: 0;
}
.site-footer__brand { padding: 0; }
.site-footer__community { margin-top: 1rem; }
.site-footer__community p { margin: 0 0 .45rem; color: #aaa59d; font: .68rem/1.45 "Courier New", monospace; }
.site-footer__community-handle,
.site-footer__community-links a { color: var(--red); font-size: .58rem; font-weight: 900; letter-spacing: .1em; }
.site-footer__community-links { display: flex; flex-wrap: wrap; gap: .35rem .7rem; margin-top: .55rem; }
.site-footer__community-links a:hover,
.site-footer__community-links a:focus-visible,
.site-footer__community-handle:hover,
.site-footer__community-handle:focus-visible { color: var(--white); }
.site-footer__wordmark strong {
  font-size: clamp(1.55rem, 2.05vw, 2.1rem);
  letter-spacing: .12em;
}
.site-footer__description {
  max-width: 13.5rem;
  margin: .95rem 0 .85rem;
  color: #aaa59d;
  font-size: .72rem;
  line-height: 1.55;
}
.site-footer__socials { gap: .5rem; }
.site-footer__social--icon {
  width: 34px;
  min-height: 40px;
}
.site-footer nav.site-footer__column {
  display: grid;
  gap: .2rem;
  align-content: start;
}
.site-footer__column h2,
.site-footer__connect-kicker {
  margin: 0 0 .65rem;
  color: var(--red);
  font-size: .59rem;
  font-weight: 900;
  letter-spacing: .16em;
}
.site-footer__column a {
  display: flex;
  align-items: center;
  min-height: 31px;
  color: #ddd7cf;
  font-size: .72rem;
  letter-spacing: .01em;
  line-height: 1.25;
}
.site-footer__connect {
  padding: 0;
  border: 0;
}
.site-footer__connect h2 {
  margin: 0 0 .55rem;
  font-size: clamp(1.8rem, 2.4vw, 2.5rem);
  line-height: .9;
}
.site-footer__connect > p:not(.site-footer__connect-kicker) {
  max-width: 18rem;
  margin: 0 0 .75rem;
  font-size: .72rem;
  line-height: 1.5;
}
.site-footer__connect-links { gap: .2rem; }
.site-footer__connect-links a,
.site-footer__connect-links span {
  min-height: 30px;
  font-size: .72rem;
}
.site-footer__bottom {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) auto auto;
  align-items: center;
  gap: .6rem 1.2rem;
  margin-top: clamp(2rem, 3vw, 3rem);
  padding-top: .9rem;
  border-top: 1px solid #242424;
  color: #77716b;
  font-size: .5rem;
  line-height: 1.4;
}
.site-footer__bottom > span:nth-child(2),
.site-footer__bottom .site-footer__shipping-note,
.site-footer__bottom > a {
  grid-column: auto;
  grid-row: auto;
}
.site-footer__bottom .site-footer__shipping-note { margin: 0; }
.site-footer__bottom > a {
  min-height: 28px;
  margin-left: 0;
  display: inline-flex;
  align-items: center;
}

@media (max-width: 960px) {
  .site-footer__main {
    grid-template-columns: minmax(11rem, 1.15fr) repeat(2, minmax(8rem, .8fr));
  }
  .site-footer__connect { grid-column: 2 / -1; }
}

@media (max-width: 760px) {
  .site-footer,
  body.home .site-footer {
    padding: 2.4rem 1rem calc(1.5rem + env(safe-area-inset-bottom));
  }
  .site-footer__main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.55rem 1.1rem;
  }
  .site-footer__brand,
  .site-footer__connect {
    grid-column: 1 / -1;
  }
  .site-footer__brand { padding-bottom: .1rem; }
  .site-footer__wordmark strong { font-size: 1.7rem; }
  .site-footer__description { max-width: 18rem; margin: .8rem 0 .8rem; }
  .site-footer__community { margin-top: .8rem; }
  .site-footer__community p { font-size: .7rem; }
  .site-footer__social--icon {
    width: 42px;
    min-height: 42px;
  }
  .site-footer nav.site-footer__column { gap: .18rem; }
  .site-footer__column h2,
  .site-footer__connect-kicker { margin-bottom: .45rem; }
  .site-footer__column a {
    min-height: 42px;
    font-size: .75rem;
  }
  .site-footer__connect {
    padding: 1.45rem 0 1.35rem;
    border-top: 1px solid #242424;
    border-bottom: 1px solid #242424;
  }
  .site-footer__connect h2 { font-size: clamp(2rem, 10vw, 2.65rem); }
  .site-footer__connect > p:not(.site-footer__connect-kicker) { font-size: .75rem; }
  .site-footer__connect-links a,
  .site-footer__connect-links span {
    min-height: 42px;
    font-size: .74rem;
  }
  .site-footer__bottom {
    grid-template-columns: 1fr auto;
    gap: .55rem .8rem;
    margin-top: 1.4rem;
    padding-top: .85rem;
    font-size: .52rem;
  }
  .site-footer__bottom > span:nth-child(2),
  .site-footer__bottom .site-footer__shipping-note { grid-column: 1 / -1; }
  .site-footer__bottom > span:nth-child(2) { grid-row: 2; }
  .site-footer__bottom .site-footer__shipping-note { grid-row: 3; }
  .site-footer__bottom > a { grid-column: 2; grid-row: 1; }
}

/* Final footer/account pass: keep the closing frame useful and calm. Contact
 * belongs to Support, so the desktop grid has four intentional columns rather
 * than a detached fifth contact panel. The same hierarchy collapses cleanly
 * to a two-column mobile rhythm without making links look like buttons. */
.site-footer__main {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(2rem, 3.2vw, 4rem);
  width: min(100%, 80rem);
  margin-inline: auto;
}
.site-footer__column--support {
  min-width: 0;
}
.site-footer__support-contact {
  display: grid;
  gap: .1rem;
  margin-top: .7rem;
  padding-top: .7rem;
  border-top: 1px solid #242424;
}
.site-footer__support-contact::before {
  margin-bottom: .15rem;
  color: var(--red);
  content: 'CONTACT';
  font-size: .52rem;
  font-weight: 900;
  letter-spacing: .16em;
}
.site-footer__support-contact a,
.site-footer__support-contact span {
  display: flex;
  min-height: 30px;
  align-items: center;
  color: #aaa59d;
  font-size: .68rem;
  letter-spacing: .01em;
  line-height: 1.35;
  text-transform: none;
}
.site-footer__support-contact a:hover,
.site-footer__support-contact a:focus-visible {
  color: var(--white);
}
.site-footer__support-contact b {
  margin-left: .25rem;
  color: var(--red);
  font-weight: 700;
}
.site-footer__support-contact span {
  max-width: 18rem;
  color: #77716b;
  font-size: .63rem;
  line-height: 1.5;
}

@media (min-width: 961px) {
  .site-footer nav.site-footer__column {
    padding-top: .2rem;
  }
  .site-footer__column h2 {
    font-size: .64rem;
  }
  .site-footer__column a {
    font-size: .76rem;
  }
}

@media (max-width: 960px) {
  .site-footer__main {
    grid-template-columns: minmax(13rem, 1.2fr) repeat(2, minmax(8rem, .9fr));
    width: 100%;
  }
  .site-footer__column--support {
    grid-column: 2 / -1;
  }
}

@media (max-width: 760px) {
  .site-footer__main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.45rem .95rem;
  }
  .site-footer__brand,
  .site-footer__column--support {
    grid-column: 1 / -1;
  }
  .site-footer__column--support {
    padding-top: 1.3rem;
    border-top: 1px solid #242424;
  }
  .site-footer__support-contact {
    max-width: 22rem;
    margin-top: .8rem;
    padding-top: .8rem;
  }
  .site-footer__support-contact a,
  .site-footer__support-contact span {
    min-height: 38px;
    font-size: .72rem;
  }
}

/* Footer authority layer. Kept last intentionally: this supersedes legacy
 * footer declarations while the stylesheet is consolidated. */
.site-footer,
body.home .site-footer {
  padding: clamp(1.55rem, 1.9vw, 2rem) var(--pad) clamp(1.25rem, 1.6vw, 1.6rem);
}
.site-footer__main {
  grid-template-columns: minmax(12rem, 1.08fr) minmax(6.5rem, .56fr) minmax(7.5rem, .68fr) minmax(9rem, .82fr) minmax(14rem, 1.2fr);
  gap: clamp(1.15rem, 1.8vw, 2.15rem);
  width: min(100%, 88rem);
  margin-inline: auto;
  align-items: start;
}
.site-footer__description { max-width: 14rem; margin: .55rem 0 .45rem; }
.site-footer__community { margin-top: .45rem; }
.site-footer__community p { margin: 0 0 .25rem; line-height: 1.35; }
.site-footer__community p br { display: none; }
.site-footer__community-handle { min-height: 24px; }
.site-footer nav.site-footer__column { gap: .08rem; padding-top: .1rem; }
.site-footer__column h2 { margin-bottom: .32rem; }
.site-footer__column a { min-height: 27px; font-size: .7rem; }
.site-footer__support-contact { margin-top: .38rem; padding-top: .42rem; }
.site-footer__support-contact a,
.site-footer__support-contact span { min-height: 26px; }
.site-footer__updates { min-width: 0; padding: .1rem 0 0; }
.site-footer__updates-kicker {
  margin: 0 0 .35rem;
  color: var(--red);
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .16em;
}
.site-footer__updates h2 {
  margin: 0 0 .3rem;
  color: var(--white);
  font-family: "Bebas Neue", Impact, sans-serif;
  font-size: clamp(1.65rem, 2.15vw, 2.25rem);
  font-weight: 400;
  letter-spacing: .025em;
  line-height: .92;
}
.site-footer__updates > p:not(.site-footer__updates-kicker) {
  max-width: 18rem;
  margin: 0 0 .65rem;
  color: #aaa59d;
  font-size: .68rem;
  line-height: 1.4;
}
.site-footer__updates > a {
  display: flex;
  width: 100%;
  min-height: 40px;
  align-items: center;
  justify-content: space-between;
  padding: 0 .8rem;
  border: 1px solid #403d39;
  color: var(--white);
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .1em;
}
.site-footer__updates > a:hover,
.site-footer__updates > a:focus-visible { border-color: var(--red); background: var(--red); }
.site-footer__updates b { color: var(--red); font-size: .95rem; }
.site-footer__updates > a:hover b,
.site-footer__updates > a:focus-visible b { color: var(--white); }

@media (max-width: 1100px) {
  .site-footer__main { grid-template-columns: minmax(12rem, 1fr) repeat(3, minmax(7rem, .7fr)); }
  .site-footer__updates {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(10rem, .65fr) minmax(12rem, 1fr) minmax(14rem, .9fr);
    gap: .25rem 1.2rem;
    align-items: center;
    padding-top: .8rem;
    border-top: 1px solid #242424;
  }
  .site-footer__updates-kicker,
  .site-footer__updates h2,
  .site-footer__updates > p:not(.site-footer__updates-kicker) { margin: 0; }
  .site-footer__updates-kicker { grid-column: 1; grid-row: 1; }
  .site-footer__updates h2 { grid-column: 1; grid-row: 2; }
  .site-footer__updates > p:not(.site-footer__updates-kicker) { grid-column: 2; grid-row: 1 / 3; }
  .site-footer__updates > a { grid-column: 3; grid-row: 1 / 3; }
}

@media (max-width: 760px) {
  .site-footer,
  body.home .site-footer { padding: 1.25rem 1rem calc(1rem + env(safe-area-inset-bottom)); }
  .site-footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem .9rem; }
  .site-footer__brand,
  .site-footer__column--support,
  .site-footer__updates { grid-column: 1 / -1; }
  .site-footer__brand {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .2rem .8rem;
    align-items: start;
  }
  .site-footer__wordmark,
  .site-footer__description,
  .site-footer__community { grid-column: 1; }
  .site-footer__socials { grid-column: 2; grid-row: 1 / 4; }
  .site-footer__description { margin: .35rem 0 .2rem; }
  .site-footer__community { margin-top: .2rem; }
  .site-footer__community p { font-size: .58rem; letter-spacing: .1em; }
  .site-footer__column--support {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .1rem .8rem;
    padding-top: .6rem;
    border-top: 1px solid #242424;
  }
  .site-footer__column--support h2,
  .site-footer__support-contact { grid-column: 1 / -1; }
  .site-footer__updates {
    display: grid;
    grid-template-columns: 1fr;
    gap: .25rem;
    padding-top: .6rem;
    border-top: 1px solid #242424;
  }
  .site-footer__updates-kicker,
  .site-footer__updates h2,
  .site-footer__updates > p:not(.site-footer__updates-kicker),
  .site-footer__updates > a { grid-column: 1; grid-row: auto; }
  .site-footer__updates h2 { font-size: 1.75rem; }
  .site-footer__updates > a { margin-top: .25rem; min-height: 44px; }
}

/* Approved footer composition — desktop grid and purpose-built mobile layout. */
.site-footer,
body.home .site-footer {
  padding: 0;
  border-top: 1px solid #222;
  background: #050505;
}
.site-footer__shell {
  width: min(100%, 92rem);
  margin-inline: auto;
  padding: clamp(3rem, 5vw, 5rem) clamp(1.5rem, 4vw, 4rem) 2rem;
}
.site-footer .site-footer__main {
  display: grid;
  grid-template-columns: minmax(16rem, .9fr) minmax(25rem, 1.35fr);
  gap: clamp(4rem, 9vw, 10rem);
  width: 100%;
  margin: 0;
  align-items: start;
}
.site-footer .site-footer__brand {
  display: block;
  min-width: 0;
  padding: 0;
}
.site-footer .site-footer__wordmark {
  display: inline-flex;
  flex-direction: column;
  gap: .55rem;
  color: var(--white);
}
.site-footer .site-footer__wordmark strong {
  font-family: "Bebas Neue", Impact, sans-serif;
  font-size: clamp(2.35rem, 3vw, 3.2rem);
  font-weight: 400;
  letter-spacing: .12em;
  line-height: 1;
}
.site-footer .site-footer__wordmark small {
  color: var(--red);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .22em;
}
.site-footer .site-footer__description {
  max-width: 16rem;
  margin: 1.55rem 0 1.65rem;
  color: #aaa6a1;
  font-size: .92rem;
  line-height: 1.55;
}
.site-footer .site-footer__socials {
  display: flex;
  align-items: center;
  gap: 1.2rem;
}
.site-footer .site-footer__social {
  display: inline-flex;
  min-width: 32px;
  min-height: 32px;
  align-items: center;
  justify-content: center;
  color: #fff;
}
.site-footer .site-footer__social svg { width: 25px; height: 25px; }
.site-footer .site-footer__social span { font-size: 0; }
.site-footer .site-footer__social--icon[aria-label="Instagram"] { color: var(--red); }
.site-footer .site-footer__social--icon[aria-label="Instagram"] svg { stroke-width: 2.1; }
.site-footer__desktop-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(10rem, 1fr));
  gap: clamp(3rem, 8vw, 8rem);
}
.site-footer nav.site-footer__column {
  display: flex;
  gap: .8rem;
  padding: 0;
}
.site-footer .site-footer__column h2 {
  margin: 0 0 .7rem;
  color: var(--red);
  font-family: "JetBrains Mono", monospace;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
}
.site-footer .site-footer__column a {
  display: inline-flex;
  width: fit-content;
  min-height: 30px;
  align-items: center;
  color: #d0ccc7;
  font-size: .94rem;
  line-height: 1.25;
}
.site-footer .site-footer__column a:hover,
.site-footer .site-footer__column a:focus-visible { color: var(--white); }
.site-footer__mobile-nav { display: none; }
.site-footer__join {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 1.35rem;
  align-items: center;
  margin-top: clamp(2.8rem, 5vw, 4.5rem);
  padding: clamp(1.45rem, 2.4vw, 2.15rem) 0;
  border-top: 1px solid #292929;
  border-bottom: 1px solid #292929;
}
.site-footer__join-icon {
  display: grid;
  width: 52px;
  height: 52px;
  place-items: center;
  color: var(--red);
}
.site-footer__join-icon svg { width: 48px; height: 48px; }
.site-footer__join-copy h2 {
  margin: 0;
  color: var(--white);
  font-family: "Bebas Neue", Impact, sans-serif;
  font-size: 1.55rem;
  font-weight: 400;
  letter-spacing: .16em;
  line-height: 1;
}
.site-footer__join-copy > p {
  margin: .5rem 0 0;
  color: #aaa6a1;
  font-size: .9rem;
}
.site-footer__join-action {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 2.15rem;
  padding: 0 .25rem .25rem;
  border-bottom: 1px solid var(--red);
  color: var(--red);
  font-family: "JetBrains Mono", monospace;
  font-size: .77rem;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.site-footer__join-action b { font-size: 1.2rem; font-weight: 400; }
.site-footer__join-action:hover,
.site-footer__join-action:focus-visible { color: #fff; border-color: #fff; }
.site-footer__legal {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1.25rem;
  align-items: center;
  padding-top: 2.1rem;
  color: #77736f;
  font-size: .67rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.site-footer__legal nav { display: flex; gap: 1.4rem; }
.site-footer__legal a { color: #8e8a85; }
.site-footer__legal a + a::before { content: "|"; margin-right: 1.4rem; color: #55514d; }
.site-footer__legal > span:last-child { justify-self: end; }

@media (max-width: 760px) {
  .site-footer__shell {
    padding: 2.2rem 1.35rem calc(1.7rem + env(safe-area-inset-bottom));
  }
  .site-footer .site-footer__main { display: block; }
  .site-footer .site-footer__wordmark strong { font-size: 2.25rem; }
  .site-footer .site-footer__wordmark small { font-size: .66rem; }
  .site-footer .site-footer__description {
    max-width: 15rem;
    margin: 1.25rem 0 1.1rem;
    font-size: .88rem;
  }
  .site-footer .site-footer__socials { gap: 1rem; margin-bottom: 1.65rem; }
  .site-footer__desktop-nav { display: none; }
  .site-footer__mobile-nav {
    display: block;
    border-top: 1px solid #292929;
  }
  .site-footer__mobile-nav details { border-bottom: 1px solid #292929; }
  .site-footer__mobile-nav summary {
    display: flex;
    min-height: 68px;
    align-items: center;
    justify-content: space-between;
    color: #fff;
    cursor: pointer;
    font-family: "JetBrains Mono", monospace;
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .22em;
    list-style: none;
    text-transform: uppercase;
  }
  .site-footer__mobile-nav summary::-webkit-details-marker { display: none; }
  .site-footer__mobile-nav summary::after {
    content: "+";
    font-family: Inter, sans-serif;
    font-size: 1.55rem;
    font-weight: 300;
    letter-spacing: 0;
  }
  .site-footer__mobile-nav details[open] summary::after { content: "−"; }
  .site-footer__mobile-nav nav {
    display: grid;
    gap: .1rem;
    padding: 0 0 1rem;
  }
  .site-footer__mobile-nav nav a {
    min-height: 40px;
    color: #bcb8b3;
    font-size: .88rem;
  }
  .site-footer__join {
    display: flex;
    flex-direction: column;
    gap: .7rem;
    margin-top: 0;
    padding: 2rem 0 1.65rem;
    text-align: center;
  }
  .site-footer__join-icon { width: 48px; height: 48px; }
  .site-footer__join-icon svg { width: 44px; height: 44px; }
  .site-footer__join-copy h2 { font-size: 1.4rem; }
  .site-footer__join-copy > p { margin-top: .55rem; font-size: .83rem; }
  .site-footer__join-action { margin-top: .55rem; gap: 1.5rem; }
  .site-footer__legal {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    align-items: center;
    padding-top: 1.55rem;
    text-align: center;
  }
  .site-footer__legal nav {
    order: 2;
    width: 100%;
    justify-content: center;
    padding: .9rem 0;
    border-top: 1px solid #292929;
    border-bottom: 1px solid #292929;
  }
  .site-footer__legal > span:last-child { order: 3; justify-self: auto; }
}

/* Product-detail final alignment guard. Keep the black header close to the
 * collection return link, and keep the native quantity group inside its
 * desktop grid track instead of allowing the old margin cascade to overlap
 * the add-to-cart action. */
.single-commerce-page .bad-mafia-product-detail {
  margin-top: 0;
}

.single-commerce-page {
  padding-top: clamp(16px, 2.2vw, 32px);
}

.single-commerce-page .detail-nav {
  margin-bottom: clamp(18px, 2.6vw, 28px);
}

.detail-copy form.cart:not(.variations_form) .quantity,
.detail-copy .woocommerce-variation-add-to-cart .quantity {
  width: 132px;
  min-width: 132px;
  height: 48px;
  min-height: 48px;
  margin-right: 0 !important;
  box-sizing: border-box;
  align-self: stretch;
}

.detail-copy .variations tr.bad-mafia-variation-row--duplicate {
  display: none;
}

.detail-copy form.cart:not(.variations_form) .quantity .qty,
.detail-copy .woocommerce-variation-add-to-cart .quantity .qty,
.detail-copy form.cart:not(.variations_form) .quantity .minus,
.detail-copy form.cart:not(.variations_form) .quantity .plus,
.detail-copy .woocommerce-variation-add-to-cart .quantity .minus,
.detail-copy .woocommerce-variation-add-to-cart .quantity .plus,
.detail-copy .quantity[data-enhanced='true'] .bad-mafia-quantity-button {
  height: 46px;
  min-height: 46px;
  box-sizing: border-box;
}

@media (max-width: 760px) {
  .single-commerce-page {
    padding-top: 8px;
  }

  .single-commerce-page .detail-nav {
    margin-bottom: 12px;
  }

  .detail-copy {
    padding-top: 16px;
  }
}

/* T09 footer acceptance layer. The footer is one closing frame: brand/social,
 * Explore, Support (including Contact), and the configured WhatsApp action
 * share one desktop baseline. Keep this last so legacy campaign-era rules
 * cannot recreate the old double-footer or oversized dead space. */
.site-footer,
body.home .site-footer {
  padding: 0;
  background: #050505;
  border-top: 1px solid #242424;
}
.site-footer .site-footer__shell {
  width: min(100%, 88rem);
  margin-inline: auto;
  padding: clamp(2.15rem, 3.5vw, 3.55rem) clamp(1.15rem, 3.8vw, 3.6rem) clamp(1.15rem, 2vw, 1.7rem);
}
.site-footer .site-footer__main {
  display: grid;
  grid-template-columns: minmax(13rem, 1.15fr) minmax(8rem, .72fr) minmax(9rem, .82fr) minmax(15rem, 1.1fr);
  gap: clamp(1.45rem, 3vw, 3.7rem);
  width: 100%;
  margin: 0;
  align-items: start;
}
.site-footer .site-footer__desktop-nav {
  display: contents;
}
.site-footer .site-footer__mobile-nav {
  display: none;
}
.site-footer .site-footer__brand {
  min-width: 0;
}
.site-footer .site-footer__wordmark strong {
  font-size: clamp(1.8rem, 2.6vw, 2.7rem);
}
.site-footer .site-footer__wordmark small {
  font-size: .6rem;
}
.site-footer .site-footer__description {
  max-width: 14rem;
  margin: .85rem 0 .75rem;
  font-size: .75rem;
  line-height: 1.45;
}
.site-footer .site-footer__socials {
  gap: .6rem;
}
.site-footer .site-footer__social--icon {
  width: 32px;
  min-height: 32px;
}
.site-footer .site-footer__social--icon svg {
  width: 21px;
  height: 21px;
}
.site-footer nav.site-footer__column {
  display: grid;
  gap: .08rem;
  align-content: start;
  padding-top: .1rem;
}
.site-footer .site-footer__column h2 {
  margin: 0 0 .35rem;
  font-size: .58rem;
  letter-spacing: .16em;
}
.site-footer .site-footer__column a {
  min-height: 28px;
  font-size: .72rem;
  line-height: 1.25;
}
.site-footer .site-footer__join {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .55rem .75rem;
  align-items: start;
  min-width: 0;
  margin: 0;
  padding: .1rem 0 0;
  border: 0;
}
.site-footer .site-footer__join-icon {
  display: grid;
  width: 35px;
  height: 35px;
  place-items: center;
  color: var(--red);
}
.site-footer .site-footer__join-icon svg {
  width: 32px;
  height: 32px;
}
.site-footer .site-footer__join-copy h2 {
  margin: 0 0 .25rem;
  font-size: clamp(1.55rem, 2.1vw, 2.15rem);
  letter-spacing: .08em;
}
.site-footer .site-footer__join-copy > p {
  max-width: 17rem;
  margin: 0;
  font-size: .72rem;
  line-height: 1.45;
}
.site-footer .site-footer__join-action {
  grid-column: 2;
  justify-self: start;
  min-height: 44px;
  box-sizing: border-box;
  align-items: center;
  gap: 1.1rem;
  padding: 0 0 .2rem;
  font-size: .62rem;
  letter-spacing: .12em;
}
.site-footer .site-footer__join-action b {
  font-size: 1rem;
}
.site-footer .site-footer__legal {
  grid-template-columns: 1fr auto 1fr;
  gap: .8rem 1.1rem;
  margin-top: clamp(1.8rem, 3vw, 2.6rem);
  padding-top: .8rem;
  border-top: 1px solid #242424;
  font-size: .55rem;
  line-height: 1.35;
}
.site-footer .site-footer__legal nav {
  gap: .85rem;
}
.site-footer .site-footer__legal a + a::before {
  margin-right: .85rem;
}

@media (max-width: 980px) and (min-width: 761px) {
  .site-footer .site-footer__main {
    grid-template-columns: minmax(12rem, 1fr) repeat(2, minmax(8rem, .75fr));
  }
  .site-footer .site-footer__join {
    grid-column: 1 / -1;
    padding-top: 1rem;
    border-top: 1px solid #242424;
  }
}

@media (max-width: 760px) {
  .site-footer .site-footer__shell {
    padding: 1.7rem 1rem calc(1.1rem + env(safe-area-inset-bottom));
  }
  .site-footer .site-footer__main {
    display: block;
  }
  .site-footer .site-footer__desktop-nav {
    display: none;
  }
  .site-footer .site-footer__mobile-nav {
    display: block;
    margin-top: 1rem;
    border-top: 1px solid #292929;
  }
  .site-footer .site-footer__mobile-nav details {
    border-bottom: 1px solid #292929;
  }
  .site-footer .site-footer__mobile-nav summary {
    min-height: 52px;
    font-size: .68rem;
    letter-spacing: .17em;
  }
  .site-footer .site-footer__mobile-nav summary::after {
    font-size: 1.25rem;
  }
  .site-footer .site-footer__mobile-nav nav {
    gap: 0;
    padding: 0 0 .65rem;
  }
  .site-footer .site-footer__mobile-nav nav a {
    min-height: 36px;
    font-size: .75rem;
  }
  .site-footer .site-footer__join {
    grid-template-columns: auto minmax(0, 1fr);
    gap: .45rem .7rem;
    margin-top: 1.1rem;
    padding: 1.2rem 0 1.1rem;
    border-top: 1px solid #292929;
    border-bottom: 1px solid #292929;
    text-align: left;
  }
  .site-footer .site-footer__join-icon {
    width: 35px;
    height: 35px;
    grid-row: 1 / span 2;
  }
  .site-footer .site-footer__join-copy h2 {
    font-size: 1.55rem;
    letter-spacing: .08em;
  }
  .site-footer .site-footer__join-copy > p {
    font-size: .7rem;
  }
  .site-footer .site-footer__join-action {
    grid-column: 2;
    margin: .25rem 0 0;
  }
  .site-footer .site-footer__legal {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: space-between;
    gap: .65rem;
    margin-top: 1.1rem;
    padding-top: .75rem;
    text-align: left;
  }
  .site-footer .site-footer__legal nav {
    width: auto;
    padding: 0;
    border: 0;
  }
  .site-footer .site-footer__legal > span:last-child {
    justify-self: auto;
  }
}

/* Category media visibility and footer preset integration. Category imagery
 * should read as product photography first; the only darkening left is a
 * localized text-protection fade at the bottom edge. */
body.home .category-card__image::after {
  /* Tint is opt-in per category. The default keeps the supplied photograph
     unaltered; labels retain their own text shadow for contrast. */
  background: transparent;
}
body.home .category-card__image img,
body.home .category-card:hover .category-card__image img,
body.home .category-card:focus-visible .category-card__image img {
  filter: none;
  /* Category tiles use the same WooCommerce product photography as the
   * editor. Preserve the complete garment/accessory instead of allowing the
   * portrait tile ratio to crop the source image. */
  object-fit: contain;
  object-position: center;
  background: var(--card);
}
body.home .category-card__info {
  text-shadow: 0 1px 8px rgba(0, 0, 0, .78);
}
/* A fine border is enabled by default and can be disabled per category in
 * Runlo; keeping the flag explicit lets the editor tune the editorial grid
 * without changing the image treatment. */
body.home .category-card--border {
  border: 1px solid rgba(255, 255, 255, .58);
}
body.home .category-card--tint .category-card__image::after {
  background: linear-gradient(180deg, transparent 78%, rgba(0, 0, 0, .32) 100%);
}

/* Keep the media well, its letterbox area and the optional frame on one
 * surface. Uploaded WooCommerce photography can be white, transparent,
 * portrait or square; the storefront should provide a stable matte instead
 * of inheriting a black shell and a mismatched translucent border. Complete
 * media remains centered via the contain rule above. */
body.home {
  --category-media-surface: var(--paper);
  --category-media-line: rgba(255, 255, 255, .58);
}
body.home .category-card,
body.home .category-card__image,
body.home .category-card__image img {
  background-color: var(--category-media-surface);
}
body.home .category-card--border {
  border-color: var(--category-media-line);
}

/* Keep the existing footer's expanded mobile topics on one left edge. The
 * previous rule set gave the nav no explicit inset, so font metrics and
 * inherited link styles made rows look optically staggered. */
@media (max-width: 760px) {
  .site-footer .site-footer__mobile-nav nav {
    display: grid;
    gap: 0;
    padding: .25rem 0 .8rem .9rem;
  }
  .site-footer .site-footer__mobile-nav nav a {
    display: flex;
    width: 100%;
    min-height: 2.5rem;
    box-sizing: border-box;
    align-items: center;
    justify-content: flex-start;
    padding: .35rem .65rem;
    line-height: 1.3;
    text-align: left;
  }
}

/* Compact JOIN THE MAFIA footer preset. It is intentionally a separate
 * namespace so the admin switch cannot regress the current editorial footer. */
.footer-compact {
  width: 100%;
  box-sizing: border-box;
  padding: clamp(.8rem, 2.2vw, 1.4rem);
  background: #f1eee8;
  color: #d4d0cb;
}
.footer-compact__join-action.is-disabled {
  grid-column: 2;
  justify-self: start;
  width: fit-content;
  max-width: 100%;
  min-height: 1.5rem;
  box-sizing: border-box;
  padding: 0;
  border-bottom: 0;
  color: #8f8a84;
  cursor: default;
  opacity: .9;
  font-size: .62rem;
  letter-spacing: .08em;
  white-space: normal;
}
.footer-compact__join-action.is-disabled:hover,
.footer-compact__join-action.is-disabled:focus-visible {
  color: #8f8a84;
  border-bottom: 0;
}
.footer-compact__shell {
  width: min(100%, 88rem);
  margin-inline: auto;
  padding: clamp(2.5rem, 5vw, 4.8rem) clamp(1.25rem, 4.2vw, 4.6rem) 1.25rem;
  box-sizing: border-box;
  background: #070707;
  border: 1px solid #262626;
  border-radius: .45rem;
}
.footer-compact__top {
  display: grid;
  grid-template-columns: minmax(15rem, .78fr) minmax(25rem, 1.22fr);
  gap: clamp(3rem, 10vw, 9rem);
  align-items: start;
}
.footer-compact__brand,
.footer-compact__column,
.footer-compact__join-copy { min-width: 0; }
.footer-compact__wordmark {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  color: #fff;
}
.footer-compact__wordmark strong {
  font: 400 clamp(2rem, 3.2vw, 3.25rem)/.86 var(--display);
  letter-spacing: .15em;
}
.footer-compact__wordmark small {
  margin-top: .55rem;
  color: var(--red);
  font: 800 .62rem/1 var(--body);
  letter-spacing: .24em;
}
.footer-compact__description {
  max-width: 16rem;
  margin: 1.35rem 0 1.45rem;
  color: #aaa6a1;
  font: 400 .84rem/1.55 var(--body);
}
.footer-compact__socials {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem 1rem;
  align-items: center;
}
.footer-compact__social {
  display: inline-flex;
  min-height: 2.25rem;
  align-items: center;
  gap: .45rem;
  color: #fff;
  font: 700 .68rem/1 var(--body);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.footer-compact__social svg { width: 1.35rem; height: 1.35rem; }
.footer-compact__social--instagram { color: var(--red); }
.footer-compact__social--instagram svg { stroke-width: 2.1; }
.footer-compact__social span { color: var(--red); font-size: 1rem; }
.footer-compact__social:hover,
.footer-compact__social:focus-visible { color: var(--red); }
.footer-compact__desktop-nav {
  display: grid;
  grid-template-columns: repeat(2, minmax(10rem, 1fr));
  gap: clamp(2.2rem, 8vw, 8rem);
  align-items: start;
}
.footer-compact__column {
  display: grid;
  gap: .08rem;
  align-content: start;
}
.footer-compact__column h2 {
  margin: 0 0 .85rem;
  color: var(--red);
  font: 800 .72rem/1 var(--body);
  letter-spacing: .23em;
  text-transform: uppercase;
}
.footer-compact__column a {
  display: flex;
  min-height: 2.05rem;
  align-items: center;
  color: #d5d1cc;
  font: 400 .88rem/1.3 var(--body);
}
.footer-compact__column a:hover,
.footer-compact__column a:focus-visible { color: #fff; }
.footer-compact__mobile-nav { display: none; }
.footer-compact__join {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem clamp(1rem, 2vw, 1.7rem);
  align-items: center;
  margin-top: clamp(3rem, 5.5vw, 5rem);
  padding: clamp(1.55rem, 3vw, 2.25rem) 0;
  border-top: 1px solid #282828;
  border-bottom: 1px solid #282828;
}
.footer-compact__join-icon {
  display: grid;
  width: 3.2rem;
  height: 3.2rem;
  place-items: center;
  color: var(--red);
}
.footer-compact__join-icon svg { width: 3rem; height: 3rem; }
.footer-compact__join-kicker {
  margin: 0 0 .45rem;
  color: var(--red);
  font: 800 .64rem/1 var(--body);
  letter-spacing: .2em;
  text-transform: uppercase;
}
.footer-compact__join-copy h2 {
  margin: 0;
  color: #fff;
  font: 400 clamp(1.8rem, 3vw, 2.7rem)/.9 var(--display);
  letter-spacing: .12em;
}
.footer-compact__join-copy > p:last-child {
  margin: .55rem 0 0;
  color: #aaa6a1;
  font: 400 .84rem/1.4 var(--body);
}
.footer-compact__join-action {
  display: inline-flex;
  min-height: 2.75rem;
  box-sizing: border-box;
  align-items: center;
  gap: 1.6rem;
  padding: 0 0 .35rem;
  border-bottom: 1px solid var(--red);
  color: var(--red);
  font: 800 .7rem/1 var(--body);
  letter-spacing: .2em;
  text-transform: uppercase;
  white-space: nowrap;
}
.footer-compact__join-action:not(.is-disabled) span:last-child { font-size: 1.25rem; font-weight: 400; }
.footer-compact__join-action:hover,
.footer-compact__join-action:focus-visible { color: #fff; border-color: #fff; }
.footer-compact__legal {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 1rem;
  align-items: center;
  padding-top: 1.25rem;
  color: #77736e;
  font: 400 .62rem/1.4 var(--body);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.footer-compact__legal nav { display: flex; gap: 1.2rem; }
.footer-compact__legal a { color: #9a958f; }
.footer-compact__legal a + a::before { content: "|"; margin-right: 1.2rem; color: #4c4946; }
.footer-compact__legal > span:last-child { justify-self: end; }

@media (max-width: 900px) and (min-width: 761px) {
  .footer-compact__top { grid-template-columns: minmax(13rem, .7fr) minmax(21rem, 1.3fr); gap: 2.5rem; }
  .footer-compact__desktop-nav { gap: 2rem; }
  .footer-compact__join { grid-template-columns: auto minmax(0, 1fr); }
  .footer-compact__join-action { grid-column: 2; justify-self: start; }
}

@media (min-width: 901px) {
  /* The compact footer is the closing surface, not a narrow card floating in
     the page. Let the black field run edge-to-edge on desktop while retaining
     the padded card treatment on phones. */
  .footer-compact {
    padding: 0;
  }
  .footer-compact__shell {
    width: 100%;
    max-width: none;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    padding-inline: clamp(2rem, 7vw, 8rem);
  }
  .footer-compact__top {
    grid-template-columns: minmax(16rem, 1fr) minmax(28rem, 1.25fr);
    gap: clamp(2.75rem, 5vw, 5rem);
  }

  /* An unconfigured community destination is a status, not a second content
     row. Keep it aligned with the join prompt so the desktop footer does not
     grow a large blank band while the owner is still wiring WhatsApp. */
  .footer-compact__join-action.is-disabled {
    grid-column: 3;
    grid-row: 1;
    align-self: center;
    justify-self: end;
  }
}

@media (max-width: 760px) {
  .footer-compact {
    padding: .35rem;
  }
  .footer-compact__shell {
    padding: 2.15rem 1rem calc(1rem + env(safe-area-inset-bottom));
    border-radius: .65rem;
  }
  .footer-compact__top { display: block; }
  .footer-compact__wordmark strong { font-size: clamp(2.1rem, 10vw, 3rem); }
  .footer-compact__description {
    max-width: 14rem;
    margin: 1.15rem 0 1.1rem;
    font-size: .78rem;
  }
  .footer-compact__socials { gap: .55rem .85rem; }
  .footer-compact__social { min-height: 2rem; font-size: .6rem; }
  .footer-compact__desktop-nav { display: none; }
  .footer-compact__mobile-nav {
    display: block;
    margin-top: 1.75rem;
    border-top: 1px solid #282828;
  }
  .footer-compact__mobile-nav details { border-bottom: 1px solid #282828; }
  .footer-compact__mobile-nav summary {
    display: flex;
    min-height: 3.7rem;
    align-items: center;
    justify-content: space-between;
    color: #fff;
    cursor: pointer;
    font: 800 .68rem/1 var(--body);
    letter-spacing: .2em;
    list-style: none;
    text-transform: uppercase;
  }
  .footer-compact__mobile-nav summary::-webkit-details-marker { display: none; }
  .footer-compact__mobile-nav summary::after { content: "+"; color: var(--red); font-size: 1.3rem; font-weight: 300; }
  .footer-compact__mobile-nav details[open] summary::after { content: "−"; }
  .footer-compact__mobile-nav nav {
    display: grid;
    gap: 0;
    padding: .25rem 0 .8rem .9rem;
  }
  .footer-compact__mobile-nav nav a {
    display: flex;
    width: 100%;
    min-height: 2.5rem;
    box-sizing: border-box;
    align-items: center;
    padding: .35rem .65rem;
    border-left: 1px solid #333;
    color: #bcb8b2;
    font: 400 .78rem/1.3 var(--body);
    text-align: left;
  }
  .footer-compact__mobile-nav nav a:hover,
  .footer-compact__mobile-nav nav a:focus-visible { color: #fff; border-left-color: var(--red); }
  .footer-compact__join {
    grid-template-columns: auto minmax(0, 1fr);
    gap: .55rem .75rem;
    margin-top: 1.65rem;
    padding: 1.5rem 0 1.35rem;
  }
  .footer-compact__join-icon { width: 2.8rem; height: 2.8rem; grid-row: 1 / span 2; }
  .footer-compact__join-icon svg { width: 2.65rem; height: 2.65rem; }
  .footer-compact__join-copy h2 { font-size: 1.65rem; letter-spacing: .1em; }
  .footer-compact__join-copy > p:last-child { font-size: .72rem; }
  .footer-compact__join-action { grid-column: 2; justify-self: start; min-height: 2.75rem; margin-top: .15rem; font-size: .62rem; gap: 1.2rem; }
  .footer-compact__join-action.is-disabled {
    min-width: 0;
    width: fit-content;
    max-width: 100%;
    min-height: 1.5rem;
    margin-top: .15rem;
    padding: 0;
    border-bottom: 0;
    font-size: .58rem;
    letter-spacing: .08em;
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .footer-compact__legal {
    display: flex;
    flex-direction: column;
    gap: .8rem;
    align-items: flex-start;
    padding-top: 1rem;
    font-size: .55rem;
  }
  .footer-compact__legal nav { gap: .8rem; flex-wrap: wrap; }
  .footer-compact__legal a + a::before { margin-right: .8rem; }
  .footer-compact__legal > span:last-child { align-self: flex-start; }
}

/* Contact cards are information rows on phones, not five oversized panels.
 * Keep the two-column editorial grid above the mobile breakpoint, but collapse
 * each narrow card into one scanline so the value and outbound action stay
 * visible together without a stranded second row. */
@media (max-width: 760px) {
  .contact-grid {
    padding: 1.25rem var(--pad) 3rem;
  }
  .contact-card {
    min-height: 0;
    padding: 1rem;
    grid-template-columns: minmax(6.2rem, max-content) minmax(0, 1fr) auto;
    align-items: center;
    gap: .55rem;
  }
  .contact-card > span,
  .contact-card > strong,
  .contact-card > b {
    min-width: 0;
  }
  .contact-card > span {
    font-size: .78rem;
    line-height: 1.3;
  }
  .contact-card > strong {
    overflow-wrap: anywhere;
    font-size: .82rem;
    line-height: 1.35;
  }
  .contact-card > b {
    grid-column: auto;
    grid-row: auto;
    align-self: center;
    margin: 0;
    font-size: .95rem;
    line-height: 1;
  }
  .contact-page__copy { padding: 1.5rem 1rem 0; }
  .contact-page__copy-inner { max-width: none; font-size: .84rem; line-height: 1.65; }
  .contact-page__copy-inner h2 { margin-top: 1.5rem; font-size: 1rem; }
}

/* Contact is a utility page, not a campaign canvas. When only one verified
 * destination is configured, keep the card at its content height and stop
 * the two-column grid from leaving a broad, empty paper field beside it. */
@media (min-width: 761px) {
  .contact-grid {
    align-content: start;
    padding-block: clamp(1.75rem, 3vw, 3rem);
  }
  .contact-grid:has(.contact-card:only-child) {
    grid-template-columns: minmax(0, 32rem);
  }
}

/* Keep the campaign subject visible on laptop/tablet widths where the
 * desktop artwork otherwise leaves only a sliver at the right edge. The
 * approved wide and phone compositions keep their existing positions. */
@media (min-width: 761px) and (max-width: 1100px) {
  body.home .hero__slide,
  body.home .hero--custom .hero__slide { background-position: 68% center; }
}

/* Support page: a compact editorial guide, not a second billboard. Keep the
 * same paper/ink/red system as the approved footer and make the contact rows
 * scan cleanly at phone widths. */
.support-page { background: var(--paper); }
.support-page__title { padding-bottom: clamp(1.5rem, 3vw, 2.8rem); }
.support-page__title > p { max-width: 30rem; line-height: 1.6; }
.support-page__contact,
.support-page__guides { padding: clamp(2.5rem, 6vw, 5.5rem) var(--pad); }
.support-page__contact { display: grid; grid-template-columns: minmax(13rem, .65fr) minmax(0, 1.35fr); gap: clamp(2rem, 6vw, 6rem); background: var(--card); }
.support-page__section-heading h2,
.support-page__guide h2 { margin: 0; font: clamp(2.7rem, 5vw, 5.4rem)/.82 var(--display); text-transform: uppercase; }
.support-page__contact-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.support-page__contact-card { min-height: 7.5rem; padding: 1.1rem 1.2rem; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-content: space-between; gap: .75rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--paper); text-decoration: none; }
.support-page__contact-card span { color: var(--muted); font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.support-page__contact-card strong { grid-column: 1 / span 2; overflow-wrap: anywhere; font-size: .92rem; }
.support-page__contact-card b { grid-column: 3; grid-row: 2; color: var(--red); font-size: 1.05rem; }
.support-page__contact-card:hover strong,
.support-page__contact-card:focus-visible strong { color: var(--red); }
.support-page__contact--empty .support-page__contact-list {
  display: block;
  border: 0;
}
.support-page__contact-empty {
  max-width: 30rem;
  padding: 1rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.support-page__contact-empty p {
  margin: 0 0 .8rem;
  color: #625f59;
  font-size: .86rem;
  line-height: 1.65;
}
.support-page__contact-empty a {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  gap: .55rem;
  color: var(--red);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}
.support-page__contact-empty a b { font-size: 1rem; font-weight: 400; }
.support-page__contact-empty a:hover,
.support-page__contact-empty a:focus-visible { color: var(--ink); }
.support-page__guides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.support-page__guide { min-height: 16rem; padding: clamp(1.4rem, 3vw, 2.5rem); background: var(--paper); }
.support-page__guide > p:not(.kicker) { max-width: 38rem; margin: 1.1rem 0 0; color: #625f59; font-size: .86rem; line-height: 1.7; }
.support-page__guide .kicker { margin-bottom: .9rem; }
.support-page__guide--wide { grid-column: 1 / -1; min-height: auto; }
.support-page__guide ol { max-width: 48rem; margin: 1.3rem 0 0; padding-left: 1.2rem; color: #625f59; font-size: .86rem; line-height: 1.8; }
.support-page__guide li + li { margin-top: .35rem; }
.support-page__emphasis { color: var(--red) !important; font-weight: 800; }
.support-page__editorial-content { max-width: none; }
.support-page__editorial-content h2 { margin: 1.8rem 0 0; font: 700 clamp(1.05rem, 1.8vw, 1.35rem)/1.2 var(--body); letter-spacing: .03em; text-transform: uppercase; }
.support-page__editorial-content h2:first-child { margin-top: 0; }
.support-page__editorial-content p,
.support-page__editorial-content ul,
.support-page__editorial-content ol { max-width: 56rem; margin: .85rem 0 0; color: #625f59; font-size: .92rem; line-height: 1.75; }
.support-page__editorial-content ul,
.support-page__editorial-content ol { padding-left: 1.35rem; }
.support-page__editorial-content li + li { margin-top: .35rem; }

@media (max-width: 760px) {
  .support-page__contact { grid-template-columns: 1fr; gap: 1.5rem; padding-top: 2.4rem; padding-bottom: 2.4rem; }
  .support-page__section-heading h2 { font-size: clamp(2.7rem, 13vw, 4.5rem); }
  .support-page__contact-list { grid-template-columns: 1fr; }
  .support-page__contact-card { min-height: 5.5rem; }
  .support-page__contact--empty { gap: .8rem; padding-top: 1.45rem; padding-bottom: 1.45rem; }
  .support-page__contact-empty { padding-block: .8rem; }
  .support-page__guides { grid-template-columns: 1fr; padding-top: 2.4rem; padding-bottom: 2.4rem; }
  .support-page__guide,
  .support-page__guide--wide { grid-column: auto; min-height: 0; }
  .support-page__guide h2 { font-size: clamp(2.7rem, 13vw, 4.5rem); }
}

/* Product detail readability contract. The legacy stylesheet's final
 * WooCommerce rules collapse the title and purchase labels to a 32px/9px
 * desktop rhythm, even though the editorial product layout has room for
 * larger type. Keep the approved scale on desktop and a compact but legible
 * touch scale on phones; price remains quieter than the title. */
.single-commerce-page .detail-copy h1.product_title,
.single-commerce-page .detail-copy h1.entry-title {
  margin-bottom: .3rem;
  color: var(--ink);
  font-family: var(--display), Impact, sans-serif;
  font-size: clamp(2.8rem, 5vw, 5.6rem) !important;
  font-weight: 400;
  letter-spacing: .01em;
  line-height: .86 !important;
  text-transform: uppercase;
}
.single-commerce-page .detail-copy .product-reference,
.single-commerce-page .detail-copy th.label,
.single-commerce-page .detail-copy .variations label {
  font-size: .68rem;
  line-height: 1.35;
}
.single-commerce-page .detail-copy form.cart:not(.variations_form) .single_add_to_cart_button,
.single-commerce-page .detail-copy .woocommerce-variation-add-to-cart .single_add_to_cart_button,
.single-commerce-page .detail-copy .bad-mafia-buy-now-button {
  min-height: 48px;
  font-size: .68rem !important;
  line-height: 1.2 !important;
  letter-spacing: .09em;
}

@media (max-width: 760px) {
  .single-commerce-page .detail-copy h1.product_title,
  .single-commerce-page .detail-copy h1.entry-title {
    font-size: clamp(2.65rem, 13vw, 4.4rem) !important;
    line-height: .88 !important;
  }
  .single-commerce-page .detail-copy form.cart:not(.variations_form) .single_add_to_cart_button,
  .single-commerce-page .detail-copy .woocommerce-variation-add-to-cart .single_add_to_cart_button,
  .single-commerce-page .detail-copy .bad-mafia-buy-now-button {
    font-size: .62rem !important;
    letter-spacing: .07em;
  }
}

/* Final account-flow cascade: this file loads after style.css and its legacy
 * mobile account rules, so keep the single-hub contract authoritative. */
.bad-mafia-account__body--overview { display: block; }
.bad-mafia-account__body--overview .bad-mafia-account__content {
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
@media (max-width: 760px) {
  .bad-mafia-account__navigation { padding-top: 0; border-top: 0; }
  .bad-mafia-account__body--overview .bad-mafia-account__content { margin-top: 0; }
}

/* T147 desktop catalogue readability: keep the editorial grid compact, but
 * do not let product metadata collapse into unreadable micro-copy on wide
 * screens. Mobile rules intentionally remain governed by the existing phone
 * type scale above. */
@media (min-width: 761px) {
  .shop-grid .product-card__info h2,
  .shop-grid .product-card__info h3,
  .related-grid .product-card__info h3,
  .related-grid .product-card__info h2,
  .bad-mafia-complete-look__card .product-card__info h3,
  .bad-mafia-complete-look__card .product-card__info h2,
  .drop-rail .product-card__info b {
    font-size: .92rem;
    line-height: 1.2;
    letter-spacing: .06em;
  }

  .shop-grid .product-card__info p,
  .shop-grid .product-card__info strong,
  .related-grid .product-card__info p,
  .related-grid .product-card__info strong,
  .bad-mafia-complete-look__card .product-card__info > b,
  .bad-mafia-complete-look__card .product-card__copy > span,
  .drop-rail .product-card__info strong {
    font-size: .82rem;
    line-height: 1.35;
  }
}

@media (max-width: 760px) {
  /* Keep catalogue metadata readable on narrow screens without letting the
   * card grid become visually heavy. */
  .shop-grid .product-card__info h2,
  .shop-grid .product-card__info h3,
  .related-grid .product-card__info h3,
  .related-grid .product-card__info h2,
  .bad-mafia-complete-look__card .product-card__info h3,
  .bad-mafia-complete-look__card .product-card__info h2 {
    font-size: .86rem;
    line-height: 1.2;
  }

  .shop-grid .product-card__info p,
  .shop-grid .product-card__info strong,
  .related-grid .product-card__info p,
  .related-grid .product-card__info strong,
  .bad-mafia-complete-look__card .product-card__info > b,
  .bad-mafia-complete-look__card .product-card__copy > span {
    font-size: .78rem;
    line-height: 1.35;
  }
}

/* Final PDP purchase-row cascade. This stylesheet loads after the legacy
 * theme stylesheet, so keep the wide-screen controls on one optical baseline
 * here while preserving the compact two-column phone layout above. */
@media (min-width: 821px) {
  .detail-copy form.cart:not(.variations_form),
  .detail-copy .woocommerce-variation-add-to-cart {
    grid-template-columns: 132px minmax(0, 1fr) minmax(0, 1fr);
    align-items: stretch;
  }

  .detail-copy form.cart:not(.variations_form) .quantity,
  .detail-copy .woocommerce-variation-add-to-cart .quantity {
    grid-column: auto;
  }
}

/* The visible heading is supplied by the size-chart row. Keep WooCommerce's
 * first variation label available to assistive technology, but remove the
 * duplicate visual heading and its legacy table spacing. */
.bad-mafia-size-chart + form.variations_form .variations tr:first-child > th.label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  padding: 0;
  border: 0;
}

.bad-mafia-size-chart + form.variations_form .variations tr:first-child {
  padding-top: 8px;
}

.bad-mafia-size-chart + form.variations_form .variations tr:first-child > td.value {
  margin-top: 0;
}

.bad-mafia-variation-selection-hint {
  margin: .75rem 0 0;
  color: var(--muted);
  font-size: .68rem;
  line-height: 1.45;
}

.bad-mafia-variation-options--fixed button[disabled] {
  cursor: default;
  opacity: 1;
  background: var(--ink);
  color: var(--white);
}

/* T506 storefront bug sweep: final contract fixes for measured mobile drawer,
 * touch target and clipping defects. These deliberately sit at the end of the
 * campaign stylesheet so they do not disturb the approved Bad Mafia direction. */
.demo-search,
.header-icon {
  width: 44px;
  min-width: 44px;
  height: 44px;
}

.logo {
  min-height: 44px;
  justify-content: center;
}

.header-icon svg,
.demo-search svg {
  width: 20px;
  height: 20px;
}

.nav > a,
.nav .nav-contact__toggle {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}

.shop-search-control input,
.woocommerce-ordering select {
  min-height: 48px;
  height: 48px;
}

.product-card__add,
.shop-grid .product-card__add,
.drop-next,
.home-categories__browse,
.footer-compact__column a,
.footer-compact__mobile-nav nav a,
.footer-compact__social,
.footer-compact__legal a,
.detail-nav a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a,
.single-product .woocommerce-tabs ul.tabs li a,
.single-commerce-page .reset_variations,
.single-commerce-page .product_meta a {
  min-height: 44px;
}

.footer-compact__social,
.footer-compact__legal a,
.single-commerce-page .reset_variations,
.woocommerce div.product .woocommerce-tabs ul.tabs li a,
.single-product .woocommerce-tabs ul.tabs li a,
.woocommerce-breadcrumb a,
.single-commerce-page .product_meta a {
  min-width: 44px;
}

.single-commerce-page .reset_variations,
.detail-nav a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a,
.single-product .woocommerce-tabs ul.tabs li a,
.single-commerce-page .product_meta a {
  display: inline-flex;
  align-items: center;
}

.single-commerce-page .reset_variations {
  padding-inline: .35rem;
}

/* The visible stepper supplies the only quantity affordance. Hide the
 * browser's native number arrows so a second, nested-looking control cannot
 * appear when a browser or plugin stylesheet changes the input appearance. */
.single-commerce-page .quantity[data-enhanced='true'] .qty,
.woocommerce-cart .quantity[data-enhanced='true'] .qty {
  appearance: textfield;
  -moz-appearance: textfield;
}

.single-commerce-page .quantity[data-enhanced='true'] .qty::-webkit-outer-spin-button,
.single-commerce-page .quantity[data-enhanced='true'] .qty::-webkit-inner-spin-button,
.woocommerce-cart .quantity[data-enhanced='true'] .qty::-webkit-outer-spin-button,
.woocommerce-cart .quantity[data-enhanced='true'] .qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

body.woocommerce-account:not(.logged-in) .bad-mafia-account-guest__intro h1 {
  max-width: 100%;
  overflow-wrap: normal;
  font-size: clamp(5rem, 8.1vw, 7.1rem);
  line-height: .9;
}

body.home .category-card__info strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-shadow: 0 1px 8px rgba(0, 0, 0, .72);
}

.single-commerce-page .detail-copy:has(.bad-mafia-size-chart) form.variations_form .variations tr:first-child > th.label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  padding: 0;
  border: 0;
}

@media (max-width: 760px) {
  body.nav-open {
    overflow: hidden;
  }

  .nav .nav-contact {
    display: block;
  }

  .nav .nav-contact__toggle {
    display: flex;
    width: 100%;
    min-height: 48px;
    align-items: center;
    justify-content: flex-start;
    border-bottom: 1px solid #222;
    font-size: .62rem;
    letter-spacing: .16em;
  }

  .nav .nav-contact__menu {
    position: static;
    width: 100%;
    min-width: 0;
    margin: 0 0 .35rem;
    padding: .15rem 0 .35rem .9rem;
    border: 0;
    border-bottom: 1px solid #222;
    box-shadow: none;
  }

  .nav .nav-contact__menu a,
  .nav .nav-contact__empty {
    min-height: 44px;
    padding: .55rem .65rem;
    font-size: .62rem;
  }

  body.home .category-card__info strong {
    max-width: 100%;
    font-size: clamp(.92rem, 5vw, 1.06rem);
    letter-spacing: .01em;
  }

  .product-card__add,
  .shop-grid .product-card__add,
  .drop-next,
  .home-categories__browse,
  .footer-compact__social,
  .footer-compact__legal a {
    min-height: 44px;
  }

  .shop-grid .product-card__add,
  .footer-compact__social,
  .footer-compact__legal a {
    min-width: 44px;
  }
}

@media (max-width: 390px) {
  body.single-product .bad-mafia-complete-look__heading > div {
    min-width: 0;
  }
}

/* T513 recovery: keep the mobile hero heading semantic without introducing a
 * second visible label over the approved composite artwork. */
@media (max-width: 760px) {
  body.home .hero h1 {
    display: block;
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
    transform: none;
  }
}

/* T580: category image tint is opt-in. Keep the photograph unobscured by
 * default; only a category explicitly marked .category-card--tint receives a
 * restrained bottom fade for label legibility. */
body.home .category-card__image::after {
  background: transparent;
}
body.home .category-card--tint .category-card__image::after {
  background: linear-gradient(180deg, transparent 78%, rgba(0, 0, 0, .32) 100%);
}

/* T568: legal links are required customer-facing navigation, not metadata.
 * Keep them in the single legal strip, but make every destination—including
 * Terms & conditions—readable at a glance on desktop and touch-friendly on
 * phones. */
.footer-compact .footer-compact__legal {
  font-size: .64rem;
}

@media (max-width: 760px) {
  .footer-compact .footer-compact__legal {
    font-size: .62rem;
  }
}

/* T569: closed mobile footer accordions must not reserve or paint their link
 * grids. The explicit grid declaration above otherwise overrides the browser
 * details disclosure behavior and produces stacked/overlapping empty space. */
@media (max-width: 760px) {
  .footer-compact__mobile-nav details:not([open]) > nav {
    display: none;
  }
}

/* T595: scoped archive/PDP finish. The homepage campaign, footer and legal
 * surfaces intentionally remain outside this pass. Keep the catalogue
 * editorial, but remove avoidable dead space, let the search row use its
 * available track, and make the product inspection surface calmer on phones.
 * Motion is progressive enhancement only and is disabled for reduced-motion
 * users. */
@keyframes bad-mafia-storefront-rise {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes bad-mafia-storefront-rule {
  from { transform: scaleX(0); transform-origin: left center; }
  to { transform: scaleX(1); transform-origin: left center; }
}

body.woocommerce-shop .page-title,
body.tax-product_cat .page-title {
  min-height: 0;
  padding-block: clamp(1.25rem, 2.15vw, 2rem) clamp(1rem, 1.8vw, 1.5rem);
}

body.woocommerce-shop .page-title > p,
body.tax-product_cat .page-title > p {
  margin-bottom: .1rem;
}

body.woocommerce-shop .shop-search-control,
body.tax-product_cat .shop-search-control {
  width: 100%;
}

body.woocommerce-shop .shop-grid .product-card__image,
body.tax-product_cat .shop-grid .product-card__image {
  aspect-ratio: .96;
}

body.woocommerce-shop .shop-grid .product-card__info,
body.tax-product_cat .shop-grid .product-card__info {
  min-height: 54px;
  padding-top: .55rem;
}

body.woocommerce-shop .shop-grid .product-card__add,
body.tax-product_cat .shop-grid .product-card__add {
  letter-spacing: .1em;
}

@media (min-width: 761px) {
  body.woocommerce-shop .page-title h1,
  body.tax-product_cat .page-title h1 {
    font-size: clamp(2.35rem, 3.7vw, 3.85rem);
  }

  body.woocommerce-shop .shop-layout,
  body.tax-product_cat .shop-layout {
    padding-top: 1.1rem;
    gap: clamp(1.5rem, 3.15vw, 3.1rem);
  }

  body.woocommerce-shop .shop-toolbar,
  body.tax-product_cat .shop-toolbar {
    margin-bottom: .9rem;
    padding-bottom: .75rem;
  }

  body.woocommerce-shop .shop-grid,
  body.tax-product_cat .shop-grid {
    gap: 1.8rem .9rem;
  }

  body.woocommerce-shop .shop-grid .product-card__info h2,
  body.tax-product_cat .shop-grid .product-card__info h2 {
    font-size: clamp(.84rem, .92vw, .96rem);
  }

  body.woocommerce-shop .shop-grid .product-card__info p,
  body.tax-product_cat .shop-grid .product-card__info p,
  body.woocommerce-shop .shop-grid .product-card__info > strong,
  body.tax-product_cat .shop-grid .product-card__info > strong {
    font-size: clamp(.72rem, .78vw, .82rem);
  }

  body.single-product .single-commerce-page {
    padding-top: clamp(14px, 1.55vw, 24px);
  }

  body.single-product .single-commerce-page .detail-nav {
    margin-bottom: clamp(14px, 1.85vw, 22px);
  }

  body.single-product .single-commerce-page .detail-layout {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
    gap: clamp(3rem, 4.6vw, 4.5rem);
  }

  body.single-product .single-commerce-page .detail-copy {
    align-self: start;
    padding-top: 0;
  }

  body.single-product .single-commerce-page .detail-copy h1.product_title,
  body.single-product .single-commerce-page .detail-copy h1.entry-title {
    margin: 0 0 .35rem !important;
    font-size: clamp(2.8rem, 4.6vw, 5.35rem) !important;
  }
}

@media (max-width: 760px) {
  body.woocommerce-shop .page-title,
  body.tax-product_cat .page-title {
    min-height: 76px;
    padding: .62rem 1rem .58rem;
    align-items: center;
  }

  body.woocommerce-shop .page-title h1,
  body.tax-product_cat .page-title h1 {
    max-width: 13ch;
    font-size: clamp(1.95rem, 8vw, 2.45rem);
  }

  body.woocommerce-shop .page-title > p,
  body.tax-product_cat .page-title > p {
    margin-top: .12rem;
    font-size: .62rem;
  }

  body.woocommerce-shop .shop-layout,
  body.tax-product_cat .shop-layout {
    padding: .65rem 1rem 3rem;
    gap: .72rem;
  }

  body.woocommerce-shop .filters .filter-list,
  body.tax-product_cat .filters .filter-list {
    display: flex;
    flex-wrap: nowrap;
    gap: .4rem;
    margin: 0;
    overflow-x: auto;
    scrollbar-width: none;
  }

  body.woocommerce-shop .filters .filter-list::-webkit-scrollbar,
  body.tax-product_cat .filters .filter-list::-webkit-scrollbar {
    display: none;
  }

  body.woocommerce-shop .filters .filter-list a,
  body.tax-product_cat .filters .filter-list a {
    flex: 0 0 auto;
    min-height: 44px;
    padding-inline: .7rem;
  }

  body.woocommerce-shop .shop-toolbar,
  body.tax-product_cat .shop-toolbar {
    grid-template-columns: minmax(0, 1fr) 104px;
    gap: .42rem;
    margin-bottom: .72rem;
    padding-bottom: .72rem;
  }

  body.woocommerce-shop .shop-search-control,
  body.tax-product_cat .shop-search-control,
  body.woocommerce-shop .woocommerce-ordering select,
  body.tax-product_cat .woocommerce-ordering select {
    min-height: 44px;
    height: 44px;
  }

  body.woocommerce-shop .shop-search-control__icon,
  body.tax-product_cat .shop-search-control__icon {
    padding-left: .55rem;
    font-size: 1rem;
  }

  body.woocommerce-shop .shop-search-control input,
  body.tax-product_cat .shop-search-control input {
    padding-inline: .45rem;
    font-size: .88rem;
  }

  body.woocommerce-shop .shop-search-control button,
  body.tax-product_cat .shop-search-control button {
    min-width: 52px;
    padding-inline: .3rem;
    font-size: .53rem;
    letter-spacing: .07em;
  }

  body.woocommerce-shop .woocommerce-ordering,
  body.tax-product_cat .woocommerce-ordering {
    width: 104px;
    min-width: 0;
  }

  body.woocommerce-shop .woocommerce-ordering select,
  body.tax-product_cat .woocommerce-ordering select {
    width: 100%;
    min-width: 0;
    padding-inline: .45rem 1.55rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .54rem;
  }

  body.woocommerce-shop .shop-grid,
  body.tax-product_cat .shop-grid {
    gap: 1.05rem .55rem;
  }

  body.woocommerce-shop .shop-grid .product-card__image,
  body.tax-product_cat .shop-grid .product-card__image {
    aspect-ratio: .96;
  }

  body.woocommerce-shop .shop-grid .product-card__info,
  body.tax-product_cat .shop-grid .product-card__info {
    min-height: 50px;
    padding-top: .45rem;
    gap: .28rem;
  }

  body.woocommerce-shop .shop-grid .product-card__info h2,
  body.tax-product_cat .shop-grid .product-card__info h2 {
    font-size: .8rem;
    line-height: 1.16;
  }

  body.woocommerce-shop .shop-grid .product-card__info p,
  body.tax-product_cat .shop-grid .product-card__info p {
    font-size: .68rem;
  }

  body.woocommerce-shop .shop-grid .product-card__info > strong,
  body.tax-product_cat .shop-grid .product-card__info > strong {
    font-size: .78rem;
  }

  body.woocommerce-shop .shop-grid .product-card__add,
  body.tax-product_cat .shop-grid .product-card__add {
    min-height: 44px;
    padding-inline: .5rem;
    font-size: .62rem;
  }

  body.single-product .single-commerce-page {
    padding-top: 6px;
  }

  body.single-product .single-commerce-page .detail-nav {
    margin-bottom: 10px;
  }

  body.single-product .single-commerce-page .detail-copy {
    padding-top: 12px;
  }

  body.single-product .single-commerce-page .detail-copy h1.product_title,
  body.single-product .single-commerce-page .detail-copy h1.entry-title {
    margin: 0 0 .3rem !important;
    font-size: clamp(2.45rem, 11vw, 3.7rem) !important;
    line-height: .88 !important;
  }

  body.single-product .single-commerce-page .detail-copy p.price {
    margin-block: .7rem 1rem !important;
  }

  body.single-product .single-commerce-page .detail-after-summary {
    margin-top: 44px;
  }
}

@media (prefers-reduced-motion: no-preference) {
  body.woocommerce-shop .page-title,
  body.tax-product_cat .page-title,
  body.single-product .single-commerce-page .detail-nav {
    animation: bad-mafia-storefront-rise .48s cubic-bezier(.2, .75, .25, 1) both;
  }

  body.woocommerce-shop .shop-toolbar,
  body.tax-product_cat .shop-toolbar,
  body.single-product .single-commerce-page .detail-layout {
    animation: bad-mafia-storefront-rise .52s .07s cubic-bezier(.2, .75, .25, 1) both;
  }

  body.woocommerce-shop .shop-grid .product-card,
  body.tax-product_cat .shop-grid .product-card {
    animation: bad-mafia-storefront-rise .5s cubic-bezier(.2, .75, .25, 1) both;
  }

  body.woocommerce-shop .shop-grid .product-card:nth-child(2),
  body.tax-product_cat .shop-grid .product-card:nth-child(2) { animation-delay: .045s; }
  body.woocommerce-shop .shop-grid .product-card:nth-child(3),
  body.tax-product_cat .shop-grid .product-card:nth-child(3) { animation-delay: .09s; }
  body.woocommerce-shop .shop-grid .product-card:nth-child(4),
  body.tax-product_cat .shop-grid .product-card:nth-child(4) { animation-delay: .135s; }
  body.woocommerce-shop .shop-grid .product-card:nth-child(5),
  body.tax-product_cat .shop-grid .product-card:nth-child(5) { animation-delay: .18s; }
  body.woocommerce-shop .shop-grid .product-card:nth-child(6),
  body.tax-product_cat .shop-grid .product-card:nth-child(6) { animation-delay: .225s; }

  body.woocommerce-shop .shop-toolbar,
  body.tax-product_cat .shop-toolbar {
    position: relative;
  }

  body.woocommerce-shop .shop-toolbar::after,
  body.tax-product_cat .shop-toolbar::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 1px;
    background: var(--red);
    content: "";
    animation: bad-mafia-storefront-rule .55s .12s cubic-bezier(.2, .75, .25, 1) both;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.woocommerce-shop .page-title,
  body.tax-product_cat .page-title,
  body.woocommerce-shop .shop-toolbar,
  body.tax-product_cat .shop-toolbar,
  body.woocommerce-shop .shop-grid .product-card,
  body.tax-product_cat .shop-grid .product-card,
  body.single-product .single-commerce-page .detail-nav,
  body.single-product .single-commerce-page .detail-layout {
    animation: none;
  }
}

/* T597: the active v1 catalogue uses the lighter editorial shop header. Keep
 * the homepage campaign and all non-catalogue page-title surfaces unchanged;
 * only WooCommerce shop/category archives get the v8/v9-style paper header. */
body.woocommerce-shop .page-title,
body.tax-product_cat .page-title {
  background: var(--paper);
  color: var(--black);
  border-bottom: 1px solid var(--black);
}

body.woocommerce-shop .page-title h1,
body.tax-product_cat .page-title h1 {
  color: var(--black);
}

body.woocommerce-shop .page-title > p,
body.tax-product_cat .page-title > p {
  color: #746d64;
}

@media (max-width: 760px) {
  body.woocommerce-shop .page-title,
  body.tax-product_cat .page-title {
    border-bottom-color: var(--line);
  }

  body.woocommerce-shop .woocommerce-ordering select,
  body.tax-product_cat .woocommerce-ordering select {
    padding-inline: .25rem 1rem;
    text-overflow: clip;
    font-size: .4375rem;
    letter-spacing: .03em;
  }
}

/* T598: v8/v9 catalogue port. The active v1 homepage, global header and
 * footer deliberately remain outside this scope. These rules only style the
 * WooCommerce archive and single-product compositions emitted by the new
 * templates, while WooCommerce remains responsible for every product query,
 * price, variation, image and purchase action. */
@keyframes bad-mafia-catalogue-enter {
  from { opacity: .01; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes bad-mafia-catalogue-rule {
  from { transform: scaleX(0); transform-origin: left center; }
  to { transform: scaleX(1); transform-origin: left center; }
}

body.woocommerce-shop .shop-page,
body.tax-product_cat .shop-page {
  --catalogue-ink: var(--black);
  --catalogue-paper: var(--paper);
  --catalogue-field: #e4dcd1;
  --catalogue-line: #c7bfb3;
  --catalogue-muted: #65615b;
  --catalogue-signal: var(--red);
  background: var(--catalogue-paper);
  color: var(--catalogue-ink);
}

body.woocommerce-shop .shop-page .section-shell,
body.tax-product_cat .shop-page .section-shell {
  width: min(calc(100% - (var(--pad) * 2)), 90rem);
  margin-inline: auto;
}

body.woocommerce-shop .shop-page .shop-intro,
body.tax-product_cat .shop-page .shop-intro {
  min-height: 12rem;
  padding-block: clamp(2.4rem, 5vw, 4.2rem) clamp(1.8rem, 3.4vw, 2.8rem);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 2rem;
  border-bottom: 1px solid var(--catalogue-ink);
}

body.woocommerce-shop .shop-intro__copy,
body.tax-product_cat .shop-intro__copy {
  min-width: 0;
}

body.woocommerce-shop .shop-intro__eyebrow,
body.tax-product_cat .shop-intro__eyebrow,
body.woocommerce-shop .filter-rail__label,
body.tax-product_cat .filter-rail__label {
  margin: 0 0 .8rem;
  color: var(--catalogue-signal);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .17em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.woocommerce-shop .shop-intro h1,
body.tax-product_cat .shop-intro h1 {
  max-width: 10ch;
  margin: 0;
  color: var(--catalogue-ink);
  font: 400 clamp(3.9rem, 7.5vw, 7.6rem)/.82 var(--display);
  letter-spacing: .005em;
  text-transform: uppercase;
}

body.woocommerce-shop .shop-intro__description,
body.tax-product_cat .shop-intro__description {
  max-width: 32rem;
  margin: 1rem 0 0;
  color: var(--catalogue-muted);
  font-size: .84rem;
  line-height: 1.55;
}

body.woocommerce-shop .shop-intro__count,
body.tax-product_cat .shop-intro__count {
  min-width: 6.3rem;
  margin: 0 0 .15rem;
  display: flex;
  align-items: flex-end;
  gap: .55rem;
  color: var(--catalogue-muted);
  font-size: .57rem;
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

body.woocommerce-shop .shop-intro__count strong,
body.tax-product_cat .shop-intro__count strong {
  color: var(--catalogue-signal);
  font: 400 clamp(3rem, 5vw, 5.4rem)/.78 var(--display);
  letter-spacing: 0;
}

body.woocommerce-shop .shop-intro__count span,
body.tax-product_cat .shop-intro__count span {
  max-width: 5ch;
}

body.woocommerce-shop .shop-page .shop-layout,
body.tax-product_cat .shop-page .shop-layout {
  padding-block: clamp(2rem, 3.6vw, 3.2rem) clamp(4rem, 7vw, 7rem);
  display: grid;
  grid-template-columns: 10.5rem minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5.5rem);
  align-items: start;
}

body.woocommerce-shop .shop-page .filter-rail,
body.tax-product_cat .shop-page .filter-rail {
  position: sticky;
  top: 1.5rem;
  min-width: 0;
  height: max-content;
}

body.woocommerce-shop .shop-page .filter-rail h2,
body.tax-product_cat .shop-page .filter-rail h2 {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

body.woocommerce-shop .shop-page .filter-list,
body.tax-product_cat .shop-page .filter-list {
  display: grid;
  gap: .18rem;
}

body.woocommerce-shop .shop-page .filter-chip,
body.tax-product_cat .shop-page .filter-chip {
  min-height: 2rem;
  padding: .5rem .65rem;
  display: flex;
  align-items: center;
  border: 1px solid transparent;
  color: var(--catalogue-muted);
  font-size: .6rem;
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1.15;
  text-transform: uppercase;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}

body.woocommerce-shop .shop-page .filter-chip:hover,
body.tax-product_cat .shop-page .filter-chip:hover,
body.woocommerce-shop .shop-page .filter-chip:focus-visible,
body.tax-product_cat .shop-page .filter-chip:focus-visible {
  border-color: var(--catalogue-line);
  color: var(--catalogue-ink);
}

body.woocommerce-shop .shop-page .filter-chip.is-active,
body.tax-product_cat .shop-page .filter-chip.is-active {
  background: var(--catalogue-ink);
  color: var(--catalogue-paper);
}

body.woocommerce-shop .shop-page .shop-results,
body.tax-product_cat .shop-page .shop-results {
  min-width: 0;
}

body.woocommerce-shop .shop-page .catalogue-toolbar,
body.tax-product_cat .shop-page .catalogue-toolbar {
  min-height: 3.8rem;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  border-bottom: 1px solid var(--catalogue-line);
}

body.woocommerce-shop .shop-page .shop-search-control,
body.tax-product_cat .shop-page .shop-search-control {
  min-width: 0;
  min-height: 3.8rem;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: .55rem;
  border: 0;
  background: transparent;
}

body.woocommerce-shop .shop-page .shop-search-control__icon,
body.tax-product_cat .shop-page .shop-search-control__icon {
  color: var(--catalogue-signal);
  font-size: 1.2rem;
  line-height: 1;
}

body.woocommerce-shop .shop-page .shop-search-control input,
body.tax-product_cat .shop-page .shop-search-control input {
  min-width: 0;
  min-height: 3rem;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--catalogue-ink);
  font-size: .86rem;
}

body.woocommerce-shop .shop-page .shop-search-control input::placeholder,
body.tax-product_cat .shop-page .shop-search-control input::placeholder {
  color: var(--catalogue-muted);
  opacity: 1;
}

body.woocommerce-shop .shop-page .shop-search-control button,
body.tax-product_cat .shop-page .shop-search-control button {
  display: none;
  min-height: 2.75rem;
  padding: 0 .8rem;
  border: 1px solid transparent;
  background: transparent;
  color: var(--catalogue-ink);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

body.woocommerce-shop .shop-page .shop-search-control button:hover,
body.tax-product_cat .shop-page .shop-search-control button:hover,
body.woocommerce-shop .shop-page .shop-search-control button:focus-visible,
body.tax-product_cat .shop-page .shop-search-control button:focus-visible {
  border-color: var(--catalogue-ink);
  background: var(--catalogue-ink);
  color: var(--catalogue-paper);
}

body.woocommerce-shop .shop-page .woocommerce-ordering,
body.tax-product_cat .shop-page .woocommerce-ordering {
  min-width: 9.7rem;
  min-height: 2.75rem;
  margin: 0;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--catalogue-ink);
}

body.woocommerce-shop .shop-page .woocommerce-ordering::before,
body.tax-product_cat .shop-page .woocommerce-ordering::before {
  flex: 0 0 auto;
  color: var(--catalogue-muted);
  content: "Sort";
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .1em;
  line-height: 1;
  text-transform: uppercase;
}

body.woocommerce-shop .shop-page .woocommerce-ordering select,
body.tax-product_cat .shop-page .woocommerce-ordering select {
  flex: 1 1 auto;
  width: 100%;
  min-height: 2.75rem;
  padding: 0 1.6rem 0 .2rem;
  border: 0;
  outline: 0;
  background-color: transparent;
  color: var(--catalogue-ink);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

body.woocommerce-shop .shop-page .shop-grid.product-index-grid,
body.tax-product_cat .shop-page .shop-grid.product-index-grid {
  padding-top: 1.8rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(2rem, 3.2vw, 3.5rem) 1rem;
}

body.woocommerce-shop .shop-page .product-card,
body.tax-product_cat .shop-page .product-card {
  min-width: 0;
  background: transparent;
}

body.woocommerce-shop .shop-page .product-card__media,
body.tax-product_cat .shop-page .product-card__media {
  position: relative;
  display: block;
  overflow: hidden;
  border: 1px solid var(--catalogue-line);
  background: var(--catalogue-field);
  transition: box-shadow .25s ease;
}

body.woocommerce-shop .shop-page .product-card__image,
body.tax-product_cat .shop-page .product-card__image {
  aspect-ratio: .86;
  display: block;
  position: relative;
  overflow: hidden;
  background: var(--catalogue-field);
}

body.woocommerce-shop .shop-page .product-card__image img,
body.tax-product_cat .shop-page .product-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background: var(--catalogue-field);
  mix-blend-mode: multiply;
  transition: transform .6s cubic-bezier(.16, 1, .3, 1);
}

body.woocommerce-shop .shop-page .product-card__media:hover,
body.tax-product_cat .shop-page .product-card__media:hover,
body.woocommerce-shop .shop-page .product-card__media:focus-visible,
body.tax-product_cat .shop-page .product-card__media:focus-visible {
  box-shadow: inset 0 0 0 1px var(--catalogue-ink);
}

body.woocommerce-shop .shop-page .product-card__media:hover img,
body.tax-product_cat .shop-page .product-card__media:hover img,
body.woocommerce-shop .shop-page .product-card__media:focus-visible img,
body.tax-product_cat .shop-page .product-card__media:focus-visible img {
  transform: scale(1.035);
}

body.woocommerce-shop .shop-page .product-card__index,
body.tax-product_cat .shop-page .product-card__index {
  position: absolute;
  z-index: 2;
  top: .7rem;
  right: .7rem;
  color: var(--catalogue-muted);
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .08em;
}

body.woocommerce-shop .shop-page .product-card__badge,
body.tax-product_cat .shop-page .product-card__badge {
  z-index: 3;
  top: .7rem;
  left: .7rem;
  padding: .35rem .45rem;
  background: var(--catalogue-ink);
  color: var(--catalogue-paper);
  font-size: .55rem;
}

body.woocommerce-shop .shop-page .product-card__badge--stock,
body.tax-product_cat .shop-page .product-card__badge--stock {
  top: auto;
  right: .7rem;
  bottom: .7rem;
  left: auto;
  background: var(--catalogue-paper);
  color: var(--catalogue-ink);
}

body.woocommerce-shop .shop-page .product-card__badge--tag,
body.tax-product_cat .shop-page .product-card__badge--tag {
  top: auto;
  bottom: .7rem;
  background: var(--catalogue-signal);
}

body.woocommerce-shop .shop-page .product-card__body,
body.tax-product_cat .shop-page .product-card__body {
  min-height: 0;
  padding: .75rem 0 0;
  display: block;
}

body.woocommerce-shop .shop-page .product-card__meta,
body.tax-product_cat .shop-page .product-card__meta {
  min-height: 1.1rem;
  display: flex;
  justify-content: space-between;
  gap: .7rem;
  color: var(--catalogue-muted);
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .1em;
  line-height: 1.25;
  text-transform: uppercase;
}

body.woocommerce-shop .shop-page .product-card__meta span,
body.tax-product_cat .shop-page .product-card__meta span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.woocommerce-shop .shop-page .product-card__meta span:last-child,
body.tax-product_cat .shop-page .product-card__meta span:last-child {
  text-align: right;
}

body.woocommerce-shop .shop-page .product-card__title-row,
body.tax-product_cat .shop-page .product-card__title-row {
  min-width: 0;
  margin-top: .3rem;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .7rem;
}

body.woocommerce-shop .shop-page .product-card__title-row h2,
body.tax-product_cat .shop-page .product-card__title-row h2 {
  min-width: 0;
  margin: 0;
  color: var(--catalogue-ink);
  font: 400 clamp(1.05rem, 1.5vw, 1.45rem)/.95 var(--display);
  letter-spacing: .015em;
  text-transform: uppercase;
}

body.woocommerce-shop .shop-page .product-card__title,
body.tax-product_cat .shop-page .product-card__title {
  display: block;
  transition: color .2s ease;
}

body.woocommerce-shop .shop-page .product-card__title:hover,
body.tax-product_cat .shop-page .product-card__title:hover,
body.woocommerce-shop .shop-page .product-card__title:focus-visible,
body.tax-product_cat .shop-page .product-card__title:focus-visible {
  color: var(--catalogue-signal);
}

body.woocommerce-shop .shop-page .product-card__price,
body.tax-product_cat .shop-page .product-card__price {
  flex: 0 0 auto;
  color: var(--catalogue-ink);
  font-size: .78rem;
  line-height: 1.2;
  white-space: nowrap;
}

body.woocommerce-shop .shop-page .product-card__price .price,
body.tax-product_cat .shop-page .product-card__price .price {
  color: inherit;
}

body.woocommerce-shop .shop-page .product-card__footer,
body.tax-product_cat .shop-page .product-card__footer {
  min-height: 2.75rem;
  margin-top: .55rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .7rem;
  border-top: 1px solid var(--catalogue-line);
}

body.woocommerce-shop .shop-page .product-card__stock,
body.tax-product_cat .shop-page .product-card__stock {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  color: var(--catalogue-muted);
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .09em;
  line-height: 1.2;
  text-transform: uppercase;
}

body.woocommerce-shop .shop-page .product-card__stock i,
body.tax-product_cat .shop-page .product-card__stock i {
  width: .38rem;
  height: .38rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #3c7647;
}

body.woocommerce-shop .shop-page .product-card__stock--unavailable i,
body.tax-product_cat .shop-page .product-card__stock--unavailable i {
  background: var(--catalogue-signal);
}

body.woocommerce-shop .shop-page .product-card__add,
body.tax-product_cat .shop-page .product-card__add {
  width: auto;
  min-height: 2.75rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: .45rem;
  border: 0;
  background: transparent;
  color: var(--catalogue-ink);
  font-size: .55rem;
  letter-spacing: .09em;
  white-space: nowrap;
}

body.woocommerce-shop .shop-page .product-card__add:hover,
body.tax-product_cat .shop-page .product-card__add:hover,
body.woocommerce-shop .shop-page .product-card__add:focus-visible,
body.tax-product_cat .shop-page .product-card__add:focus-visible {
  background: transparent;
  color: var(--catalogue-signal);
}

body.woocommerce-shop .shop-page .product-card__add span,
body.tax-product_cat .shop-page .product-card__add span {
  color: var(--catalogue-signal);
  font-size: .95rem;
}

body.woocommerce-shop .shop-page .woocommerce-pagination,
body.tax-product_cat .shop-page .woocommerce-pagination {
  margin-top: 3rem;
  border-top: 1px solid var(--catalogue-line);
  padding-top: 1rem;
}

body.woocommerce-shop .shop-page .woocommerce-info,
body.woocommerce-shop .shop-page .woocommerce-message,
body.woocommerce-shop .shop-page .woocommerce-error,
body.tax-product_cat .shop-page .woocommerce-info,
body.tax-product_cat .shop-page .woocommerce-message,
body.tax-product_cat .shop-page .woocommerce-error {
  margin-block: 1rem;
  border-top-color: var(--catalogue-signal);
  background: transparent;
  color: var(--catalogue-muted);
}

/* Product detail: keep the v8/v9 reading order—breadcrumb, back link, image
 * inspection, then a clear purchase panel—without replacing WooCommerce's
 * gallery, variation form, tabs or related-product hooks. */
body.single-product .single-commerce-page .product-page {
  --catalogue-ink: var(--black);
  --catalogue-paper: var(--paper);
  --catalogue-field: #e4dcd1;
  --catalogue-line: #c7bfb3;
  --catalogue-muted: #65615b;
  --catalogue-signal: var(--red);
  width: 100%;
  padding: 1.5rem 0 5.5rem;
  display: block;
  background: var(--paper);
}

body.single-product .single-commerce-page .product-page > .section-shell {
  width: min(calc(100% - (var(--pad) * 2)), 90rem);
  margin-inline: auto;
}

body.single-product .single-commerce-page .breadcrumbs {
  margin-bottom: .8rem;
  color: var(--catalogue-muted);
  font-size: .55rem;
  letter-spacing: .1em;
  line-height: 1.4;
  text-transform: uppercase;
}

body.single-product .single-commerce-page .breadcrumbs .woocommerce-breadcrumb {
  margin: 0;
}

body.single-product .single-commerce-page .breadcrumbs a:hover,
body.single-product .single-commerce-page .breadcrumbs a:focus-visible {
  color: var(--red);
}

body.single-product .single-commerce-page .product-backbar {
  margin-bottom: 1.4rem;
}

body.single-product .single-commerce-page .product-back-link {
  min-height: 2.75rem;
  padding: .5rem 0;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  border-bottom: 1px solid var(--black);
  color: var(--black);
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

body.single-product .single-commerce-page .product-back-link span {
  color: var(--red);
  font-size: 1rem;
}

body.single-product .single-commerce-page .product-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(20rem, .85fr);
  gap: clamp(2.5rem, 6vw, 7rem);
  align-items: start;
}

body.single-product .single-commerce-page .product-gallery {
  min-width: 0;
  background: transparent;
}

body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery {
  width: 100%;
  margin: 0;
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: .8rem;
  float: none;
}

body.single-product .single-commerce-page .detail-gallery .flex-viewport,
body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery__wrapper {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}

body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery__image {
  overflow: hidden;
  border: 1px solid var(--catalogue-line);
  background: #e4dcd1;
}

body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery__image img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  background: #e4dcd1;
  mix-blend-mode: multiply;
  transition: transform .6s cubic-bezier(.16, 1, .3, 1);
}

body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery__image:hover img {
  transform: scale(1.02);
}

body.single-product .single-commerce-page .detail-gallery .flex-control-thumbs {
  width: 4.5rem;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .55rem;
  grid-column: 1;
  grid-row: 1;
}

body.single-product .single-commerce-page .detail-gallery .flex-control-thumbs li {
  width: 100%;
  margin: 0;
  border: 1px solid var(--catalogue-line);
  background: #e4dcd1;
}

body.single-product .single-commerce-page .detail-gallery .flex-control-thumbs img {
  width: 100%;
  aspect-ratio: .86;
  object-fit: contain;
  background: #e4dcd1;
  mix-blend-mode: multiply;
  opacity: .72;
}

body.single-product .single-commerce-page .detail-gallery .flex-control-thumbs .flex-active {
  opacity: 1;
  outline: 1px solid var(--catalogue-ink);
  outline-offset: -1px;
}

body.single-product .single-commerce-page .purchase-panel {
  min-width: 0;
  padding: .15rem 0 0 clamp(0rem, 2.5vw, 2rem);
  border-left: 1px solid var(--catalogue-line);
}

body.single-product .single-commerce-page .purchase-panel h1.product_title,
body.single-product .single-commerce-page .purchase-panel h1.entry-title {
  max-width: 10ch;
  margin: 0 0 .6rem !important;
  color: var(--black);
  font: 400 clamp(3.1rem, 5.2vw, 6.2rem)/.82 var(--display) !important;
  letter-spacing: .005em;
  text-transform: uppercase;
}

body.single-product .single-commerce-page .purchase-panel .product-reference {
  margin-bottom: .8rem;
  color: var(--catalogue-muted);
}

body.single-product .single-commerce-page .purchase-panel p.price {
  margin: .8rem 0 1.25rem !important;
  color: var(--catalogue-muted) !important;
  font-size: 1rem !important;
}

body.single-product .single-commerce-page .purchase-panel .product-verification {
  margin: 0 0 1rem;
}

body.single-product .single-commerce-page .purchase-panel form.cart:not(.variations_form),
body.single-product .single-commerce-page .purchase-panel .woocommerce-variation-add-to-cart {
  border-top: 1px solid var(--catalogue-line);
  padding-top: 1rem;
}

body.single-product .single-commerce-page .detail-after-summary.product-information {
  margin-top: clamp(4rem, 8vw, 8rem);
  padding-top: 0;
}

body.single-product .single-commerce-page .product-information .woocommerce-tabs ul.tabs {
  border-bottom-color: var(--catalogue-line);
}

body.single-product .single-commerce-page .product-information .woocommerce-tabs .panel {
  max-width: 52rem;
  color: var(--catalogue-muted);
  font-size: .9rem;
  line-height: 1.7;
}

@media (prefers-reduced-motion: no-preference) {
  body.woocommerce-shop .shop-page .shop-intro,
  body.tax-product_cat .shop-page .shop-intro,
  body.single-product .single-commerce-page .breadcrumbs,
  body.single-product .single-commerce-page .product-backbar {
    animation: bad-mafia-catalogue-enter .5s cubic-bezier(.16, 1, .3, 1) both;
  }

  body.woocommerce-shop .shop-page .catalogue-toolbar,
  body.tax-product_cat .shop-page .catalogue-toolbar,
  body.single-product .single-commerce-page .product-layout {
    animation: bad-mafia-catalogue-enter .58s .06s cubic-bezier(.16, 1, .3, 1) both;
  }

  body.woocommerce-shop .shop-page .catalogue-toolbar,
  body.tax-product_cat .shop-page .catalogue-toolbar {
    position: relative;
  }

  body.woocommerce-shop .shop-page .catalogue-toolbar::after,
  body.tax-product_cat .shop-page .catalogue-toolbar::after {
    position: absolute;
    right: 0;
    bottom: -1px;
    left: 0;
    height: 1px;
    background: var(--catalogue-signal);
    content: "";
    animation: bad-mafia-catalogue-rule .55s .14s cubic-bezier(.16, 1, .3, 1) both;
  }

  body.woocommerce-shop .shop-page .product-card,
  body.tax-product_cat .shop-page .product-card {
    animation: bad-mafia-catalogue-enter .55s cubic-bezier(.16, 1, .3, 1) both;
  }

  body.woocommerce-shop .shop-page .product-card:nth-child(2),
  body.tax-product_cat .shop-page .product-card:nth-child(2) { animation-delay: .045s; }
  body.woocommerce-shop .shop-page .product-card:nth-child(3),
  body.tax-product_cat .shop-page .product-card:nth-child(3) { animation-delay: .09s; }
  body.woocommerce-shop .shop-page .product-card:nth-child(4),
  body.tax-product_cat .shop-page .product-card:nth-child(4) { animation-delay: .135s; }
  body.woocommerce-shop .shop-page .product-card:nth-child(5),
  body.tax-product_cat .shop-page .product-card:nth-child(5) { animation-delay: .18s; }
  body.woocommerce-shop .shop-page .product-card:nth-child(6),
  body.tax-product_cat .shop-page .product-card:nth-child(6) { animation-delay: .225s; }
}

@media (max-width: 760px) {
  body.woocommerce-shop .shop-page .section-shell,
  body.tax-product_cat .shop-page .section-shell,
  body.single-product .single-commerce-page .product-page > .section-shell {
    width: calc(100% - 2rem);
  }

  body.woocommerce-shop .shop-page .shop-intro,
  body.tax-product_cat .shop-page .shop-intro {
    min-height: 0;
    padding-block: 2rem 1.4rem;
    align-items: flex-start;
    gap: 1rem;
  }

  body.woocommerce-shop .shop-page .shop-intro h1,
  body.tax-product_cat .shop-page .shop-intro h1 {
    max-width: 8ch;
    font-size: clamp(3rem, 15vw, 5rem);
  }

  body.woocommerce-shop .shop-page .shop-intro__description,
  body.tax-product_cat .shop-page .shop-intro__description {
    max-width: 19rem;
    margin-top: .8rem;
    font-size: .78rem;
  }

  body.woocommerce-shop .shop-page .shop-intro__count,
  body.tax-product_cat .shop-page .shop-intro__count {
    min-width: 4.2rem;
    display: block;
    text-align: right;
  }

  body.woocommerce-shop .shop-page .shop-intro__count strong,
  body.tax-product_cat .shop-page .shop-intro__count strong {
    display: block;
    font-size: 3.4rem;
  }

  body.woocommerce-shop .shop-page .shop-intro__count span,
  body.tax-product_cat .shop-page .shop-intro__count span {
    display: block;
    max-width: none;
    margin-top: .25rem;
    font-size: .5rem;
  }

  body.woocommerce-shop .shop-page .shop-layout,
  body.tax-product_cat .shop-page .shop-layout {
    padding-block: 1rem 3.5rem;
    display: block;
  }

  body.woocommerce-shop .shop-page .filter-rail,
  body.tax-product_cat .shop-page .filter-rail {
    position: static;
    margin-bottom: .8rem;
  }

  body.woocommerce-shop .shop-page .filter-rail__label,
  body.tax-product_cat .shop-page .filter-rail__label {
    display: block;
    margin-bottom: .45rem;
    font-size: .52rem;
  }

  body.woocommerce-shop .shop-page .filter-list,
  body.tax-product_cat .shop-page .filter-list {
    display: flex;
    gap: .35rem;
    overflow-x: auto;
    scrollbar-width: none;
  }

  body.woocommerce-shop .shop-page .filter-list::-webkit-scrollbar,
  body.tax-product_cat .shop-page .filter-list::-webkit-scrollbar {
    display: none;
  }

  body.woocommerce-shop .shop-page .filter-chip,
  body.tax-product_cat .shop-page .filter-chip {
    width: max-content;
    min-width: max-content;
    min-height: 2.75rem;
    padding-inline: .75rem;
    border-color: var(--catalogue-line);
    font-size: .53rem;
  }

  body.woocommerce-shop .shop-page .catalogue-toolbar,
  body.tax-product_cat .shop-page .catalogue-toolbar {
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: .35rem;
  }

  body.woocommerce-shop .shop-page .shop-search-control,
  body.tax-product_cat .shop-page .shop-search-control {
    min-height: 3.3rem;
    gap: .35rem;
  }

  body.woocommerce-shop .shop-page .shop-search-control input,
  body.tax-product_cat .shop-page .shop-search-control input {
    min-height: 2.75rem;
    font-size: .78rem;
  }

  body.woocommerce-shop .shop-page .shop-search-control button,
  body.tax-product_cat .shop-page .shop-search-control button {
    display: none;
  }

  body.woocommerce-shop .shop-page .woocommerce-ordering,
  body.tax-product_cat .shop-page .woocommerce-ordering {
    min-width: 6.7rem;
  }

  body.woocommerce-shop .shop-page .woocommerce-ordering::before,
  body.tax-product_cat .shop-page .woocommerce-ordering::before {
    font-size: .46rem;
    letter-spacing: .06em;
  }

  body.woocommerce-shop .shop-page .woocommerce-ordering select,
  body.tax-product_cat .shop-page .woocommerce-ordering select {
    min-height: 2.75rem;
    padding-inline: .1rem 1rem;
    font-size: .5rem;
    letter-spacing: .035em;
  }

  body.woocommerce-shop .shop-page .shop-grid.product-index-grid,
  body.tax-product_cat .shop-page .shop-grid.product-index-grid {
    padding-top: 1.2rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.8rem .6rem;
  }

  body.woocommerce-shop .shop-page .product-card__image,
  body.tax-product_cat .shop-page .product-card__image {
    aspect-ratio: .86;
  }

  body.woocommerce-shop .shop-page .product-card__body,
  body.tax-product_cat .shop-page .product-card__body {
    padding-top: .6rem;
  }

  body.woocommerce-shop .shop-page .product-card__meta,
  body.tax-product_cat .shop-page .product-card__meta {
    font-size: .47rem;
    letter-spacing: .07em;
  }

  body.woocommerce-shop .shop-page .product-card__title-row,
  body.tax-product_cat .shop-page .product-card__title-row {
    align-items: flex-start;
    gap: .35rem;
  }

  body.woocommerce-shop .shop-page .product-card__title-row h2,
  body.tax-product_cat .shop-page .product-card__title-row h2 {
    font-size: clamp(.95rem, 4.6vw, 1.25rem);
  }

  body.woocommerce-shop .shop-page .product-card__price,
  body.tax-product_cat .shop-page .product-card__price {
    font-size: .67rem;
  }

  body.woocommerce-shop .shop-page .product-card__footer,
  body.tax-product_cat .shop-page .product-card__footer {
    min-height: 2.75rem;
    gap: .3rem;
  }

  body.woocommerce-shop .shop-page .product-card__stock,
  body.tax-product_cat .shop-page .product-card__stock {
    gap: .25rem;
    font-size: .46rem;
    letter-spacing: .055em;
  }

  body.woocommerce-shop .shop-page .product-card__add,
  body.tax-product_cat .shop-page .product-card__add {
    min-height: 2.75rem;
    font-size: .47rem;
    letter-spacing: .055em;
  }

  body.single-product .single-commerce-page .product-page {
    padding-block: .9rem 3.5rem;
  }

  body.single-product .single-commerce-page .breadcrumbs {
    margin-bottom: .25rem;
    font-size: .5rem;
  }

  body.single-product .single-commerce-page .product-backbar {
    margin-bottom: .9rem;
  }

  body.single-product .single-commerce-page .product-layout {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  body.single-product .single-commerce-page .product-gallery.detail-gallery {
    margin-inline: 0;
  }

  body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery {
    display: block;
  }

  body.single-product .single-commerce-page .detail-gallery .flex-viewport,
  body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery__wrapper {
    display: block;
  }

  body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery__image,
  body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery__image img {
    aspect-ratio: 1;
  }

  body.single-product .single-commerce-page .detail-gallery .flex-control-thumbs {
    width: 100%;
    margin-top: .6rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .45rem;
  }

  body.single-product .single-commerce-page .detail-gallery .flex-control-thumbs li {
    width: 100%;
  }

  body.single-product .single-commerce-page .detail-gallery .flex-control-thumbs img {
    aspect-ratio: 1;
  }

  body.single-product .single-commerce-page .purchase-panel {
    width: 100%;
    padding: 1.5rem 0 0;
    border-top: 1px solid var(--catalogue-line);
    border-left: 0;
  }

  body.single-product .single-commerce-page .purchase-panel h1.product_title,
  body.single-product .single-commerce-page .purchase-panel h1.entry-title {
    max-width: 9ch;
    font-size: clamp(2.7rem, 12.5vw, 4.5rem) !important;
  }

  body.single-product .single-commerce-page .purchase-panel p.price {
    margin-block: .65rem 1rem !important;
  }

  body.single-product .single-commerce-page .detail-after-summary.product-information {
    margin-top: 3.5rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.woocommerce-shop .shop-page .shop-intro,
  body.tax-product_cat .shop-page .shop-intro,
  body.woocommerce-shop .shop-page .catalogue-toolbar,
  body.tax-product_cat .shop-page .catalogue-toolbar,
  body.woocommerce-shop .shop-page .product-card,
  body.tax-product_cat .shop-page .product-card,
  body.single-product .single-commerce-page .breadcrumbs,
  body.single-product .single-commerce-page .product-backbar,
  body.single-product .single-commerce-page .product-layout {
    animation: none;
  }
}

/* T599: native V9 interaction polish. The archive and PDP templates remain
 * the only consumers of these rules; the homepage, shared header and footer
 * are intentionally not part of this surface. */
.shop-page .filter-rail__hint,
.shop-page .filter-rail__filter-link {
  display: block;
}

.shop-page .filter-rail__hint {
  margin: 2.3rem 0 .65rem;
  color: var(--catalogue-muted, #65615b);
  font-size: .62rem;
  line-height: 1.45;
}

.shop-page .filter-rail__filter-link {
  width: max-content;
  padding-bottom: .3rem;
  border-bottom: 1px solid var(--catalogue-ink, var(--black));
  color: var(--catalogue-ink, var(--black));
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
}

.shop-page .filter-rail__filter-link span {
  margin-right: .35rem;
  color: var(--catalogue-signal, var(--red));
}

.shop-page .filter-rail__filter-link:hover,
.shop-page .filter-rail__filter-link:focus-visible {
  color: var(--catalogue-signal, var(--red));
}

.shop-page .product-card__media {
  border-color: var(--catalogue-line, #c7bfb3);
}

.shop-page .product-card__media:hover,
.shop-page .product-card__media:focus-visible {
  /* Keep the hover state from introducing a second, heavier frame. */
  box-shadow: inset 0 0 0 1px var(--catalogue-line, #c7bfb3);
}

.shop-page .product-card__image img {
  object-fit: contain;
  object-position: center;
  transform-origin: center;
}

.shop-page .product-card__media:hover .product-card__image img,
.shop-page .product-card__media:focus-visible .product-card__image img {
  transform: scale(1.04);
}

.shop-page .product-card__badge {
  max-width: calc(100% - 1.4rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shop-page .product-card__action {
  min-height: 2.75rem;
}

.shop-page .product-card__arrow,
.product-review-summary__arrow {
  width: 1rem;
  height: .65rem;
  flex: 0 0 auto;
  display: block;
}

.shop-page .product-card__title-row h2 {
  font-size: clamp(1rem, 1.3vw, 1.28rem);
}

.shop-page .shop-empty {
  min-height: 12rem;
  padding-block: 2rem;
}

.shop-page .shop-empty .woocommerce-info {
  margin: 0;
  padding: 1rem 0;
  border-top: 1px solid var(--catalogue-signal, var(--red));
  border-bottom: 1px solid var(--catalogue-line, #c7bfb3);
  color: var(--catalogue-muted, #65615b);
}

/* V9-style scroll reveals use a JS-added class so a failed script never hides
 * catalogue content. */
html.v9-motion-ready .shop-page [data-reveal],
html.v9-motion-ready .single-commerce-page .product-page [data-reveal] {
  opacity: 0;
  transform: translate3d(0, 1rem, 0);
  transition: opacity .62s cubic-bezier(.16, 1, .3, 1), transform .62s cubic-bezier(.16, 1, .3, 1);
}

html.v9-motion-ready .shop-page [data-reveal].is-visible,
html.v9-motion-ready .single-commerce-page .product-page [data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

html.v9-motion-ready .shop-page .product-index-grid > [data-reveal]:nth-child(2) { transition-delay: .045s; }
html.v9-motion-ready .shop-page .product-index-grid > [data-reveal]:nth-child(3) { transition-delay: .09s; }
html.v9-motion-ready .shop-page .product-index-grid > [data-reveal]:nth-child(4) { transition-delay: .135s; }
html.v9-motion-ready .shop-page .product-index-grid > [data-reveal]:nth-child(5) { transition-delay: .18s; }
html.v9-motion-ready .shop-page .product-index-grid > [data-reveal]:nth-child(6) { transition-delay: .225s; }

.single-commerce-page .product-gallery__grid {
  min-width: 0;
}

.single-commerce-page .product-gallery__note {
  margin: .75rem 0 0 5.3rem;
  color: var(--catalogue-muted, #65615b);
  font-size: .62rem;
  line-height: 1.45;
}

.single-commerce-page .bad-mafia-fit-guide-trigger {
  min-height: 2.75rem;
  margin: .35rem 0 1rem;
  padding: .5rem 0;
  border: 0;
  border-bottom: 1px solid var(--catalogue-line, #c7bfb3);
  background: transparent;
  color: var(--catalogue-ink, var(--black));
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-align: left;
  text-transform: uppercase;
}

.single-commerce-page .bad-mafia-fit-guide-trigger::after {
  margin-left: .35rem;
  color: var(--catalogue-signal, var(--red));
  content: "↗";
}

.single-commerce-page .bad-mafia-fit-guide-trigger:hover,
.single-commerce-page .bad-mafia-fit-guide-trigger:focus-visible {
  color: var(--catalogue-signal, var(--red));
}

.single-commerce-page .bad-mafia-size-chart {
  margin-top: 1.25rem;
  border-top: 1px solid var(--catalogue-line, #c7bfb3);
  border-bottom: 1px solid var(--catalogue-line, #c7bfb3);
}

.single-commerce-page .bad-mafia-size-chart summary {
  min-height: 3rem;
  padding: .85rem 0;
  color: var(--catalogue-ink, var(--black));
  cursor: pointer;
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.single-commerce-page .bad-mafia-size-chart p {
  margin: 0 0 1rem;
  color: var(--catalogue-muted, #65615b);
  font-size: .8rem;
  line-height: 1.65;
}

.single-commerce-page .product-review-summary {
  margin-top: 1.5rem;
  padding: 1rem 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem;
  border-top: 1px solid var(--catalogue-line, #c7bfb3);
  border-bottom: 1px solid var(--catalogue-line, #c7bfb3);
}

.single-commerce-page .product-review-summary__eyebrow {
  margin: 0 0 .35rem;
  color: var(--catalogue-signal, var(--red));
  font-size: .55rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.single-commerce-page .product-review-summary h2 {
  margin: 0;
  color: var(--catalogue-ink, var(--black));
  font-size: .8rem;
  line-height: 1.35;
}

.single-commerce-page .product-review-summary__link {
  min-height: 2.75rem;
  padding: .65rem 0;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: var(--catalogue-ink, var(--black));
  font-size: .56rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-align: right;
  text-transform: uppercase;
}

.single-commerce-page .product-review-summary__link:hover,
.single-commerce-page .product-review-summary__link:focus-visible {
  color: var(--catalogue-signal, var(--red));
}

.single-commerce-page .product-review-summary__closed {
  margin: 0;
  color: var(--catalogue-muted, #65615b);
  font-size: .7rem;
  line-height: 1.4;
  text-align: right;
}

.single-commerce-page .product-information .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem 1.25rem;
}

.single-commerce-page .product-information .woocommerce-tabs ul.tabs li a {
  min-height: 2.75rem;
  padding: .75rem 0;
}

.single-commerce-page .product-information .woocommerce-tabs .panel {
  scroll-margin-top: 5rem;
}

.single-commerce-page .mobile-add-bar {
  display: none;
}

@media (max-width: 760px) {
  .shop-page .shop-intro h1 {
    max-width: 9ch;
    font-size: clamp(2.8rem, 14vw, 4.4rem);
  }

  .shop-page .shop-intro__description {
    max-width: 17rem;
  }

  .shop-page .filter-rail__hint {
    margin-top: 1rem;
  }

  .shop-page .filter-rail__filter-link {
    display: none;
  }

  .shop-page .product-card__title-row {
    align-items: flex-start;
  }

  .shop-page .product-card__title-row h2 {
    font-size: clamp(.92rem, 4.2vw, 1.08rem);
  }

  .shop-page .product-card__price {
    font-size: .67rem;
  }

  .shop-page .product-card__footer {
    min-height: 2.9rem;
    gap: .25rem;
  }

  .shop-page .product-card__stock,
  .shop-page .product-card__action {
    font-size: .46rem;
    letter-spacing: .055em;
  }

  .single-commerce-page .product-gallery__note {
    margin-left: 0;
    font-size: .58rem;
  }

  .single-commerce-page .product-review-summary {
    align-items: flex-start;
    flex-direction: column;
    gap: .45rem;
  }

  .single-commerce-page .product-review-summary__link,
  .single-commerce-page .product-review-summary__closed {
    text-align: left;
  }

  .single-commerce-page .mobile-add-bar {
    position: fixed;
    z-index: 45;
    right: 0;
    bottom: 0;
    left: 0;
    min-height: 4.5rem;
    padding: .65rem 1rem calc(.65rem + env(safe-area-inset-bottom));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    border-top: 1px solid var(--black);
    background: var(--paper);
    box-shadow: 0 -1rem 2rem rgba(8, 8, 8, .08);
    opacity: 0;
    pointer-events: none;
    transform: translateY(110%);
    transition: opacity .3s ease, transform .45s cubic-bezier(.16, 1, .3, 1);
  }

  .single-commerce-page .mobile-add-bar.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .single-commerce-page .mobile-add-bar__copy {
    min-width: 0;
    display: grid;
    gap: .2rem;
  }

  .single-commerce-page .mobile-add-bar__copy span,
  .single-commerce-page .mobile-add-bar__copy strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .single-commerce-page .mobile-add-bar__copy span {
    color: var(--catalogue-ink, var(--black));
    font: 400 .95rem/.95 var(--display);
    letter-spacing: .02em;
    text-transform: uppercase;
  }

  .single-commerce-page .mobile-add-bar__copy strong {
    color: var(--catalogue-muted, #65615b);
    font-size: .68rem;
  }

  .single-commerce-page .mobile-add-bar button {
    min-width: 8.5rem;
    min-height: 2.75rem;
    padding: .7rem .8rem;
    border: 1px solid var(--black);
    background: var(--black);
    color: var(--paper);
    font-size: .55rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .single-commerce-page .mobile-add-bar button:disabled {
    border-color: var(--catalogue-line, #c7bfb3);
    background: var(--catalogue-field, #e4dcd1);
    color: var(--catalogue-muted, #65615b);
    cursor: not-allowed;
  }
}

@media (prefers-reduced-motion: reduce) {
  html.v9-motion-ready .shop-page [data-reveal],
  html.v9-motion-ready .single-commerce-page .product-page [data-reveal],
  .single-commerce-page .mobile-add-bar {
    opacity: 1;
    transform: none;
    transition: none;
  }

  html.v9-motion-ready .shop-page [data-reveal]:not(.is-visible),
  html.v9-motion-ready .single-commerce-page .product-page [data-reveal]:not(.is-visible) {
    opacity: 1;
  }
}

/* T600 final cascade: the earlier catalogue rules gave the old gallery a
 * thumbnail column. Keep one main frame and a horizontal thumbnail rail at
 * every breakpoint. */
body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery {
  display: block;
  grid-template-columns: none;
  gap: 0;
}

body.single-product .single-commerce-page .detail-gallery .flex-viewport,
body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery__wrapper {
  grid-column: auto;
  grid-row: auto;
}

body.single-product .single-commerce-page .detail-gallery .flex-control-thumbs {
  width: 100%;
  margin: .7rem 0 0;
  padding-inline-start: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: .5rem;
  overflow-x: auto;
  list-style: none;
}

body.single-product .single-commerce-page .detail-gallery .flex-control-thumbs li {
  width: clamp(4.25rem, 8vw, 5.25rem);
  min-width: clamp(4.25rem, 8vw, 5.25rem);
}

body.single-product .single-commerce-page .detail-gallery .flex-control-thumbs li::before {
  display: none;
  content: none;
}

body.single-product .single-commerce-page .detail-gallery .product-gallery__note {
  margin-left: 0;
}

@media (max-width: 760px) {
  body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery__image,
  body.single-product .single-commerce-page .detail-gallery .woocommerce-product-gallery__image img {
    aspect-ratio: .92;
  }
}

/* T603 — keep the category rail discoverable on phones. The search control
 * is the catalogue filter; it must remain an explicit, reachable action
 * instead of disappearing below the category chips. */
@media (max-width: 760px) {
  body.woocommerce-shop .shop-page .filter-rail__filter-link,
  body.tax-product_cat .shop-page .filter-rail__filter-link {
    min-height: 2.75rem;
    margin-top: .7rem;
    padding: .65rem .75rem;
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--catalogue-line);
    color: var(--catalogue-ink);
    font-size: .53rem;
    letter-spacing: .1em;
  }

  body.woocommerce-shop .shop-page .filter-rail__filter-link:hover,
  body.tax-product_cat .shop-page .filter-rail__filter-link:hover,
  body.woocommerce-shop .shop-page .filter-rail__filter-link:focus-visible,
  body.tax-product_cat .shop-page .filter-rail__filter-link:focus-visible {
    border-color: var(--catalogue-signal);
    background: var(--catalogue-ink);
    color: var(--catalogue-paper);
  }
}

/* T609 account mobile guard: the legacy desktop rule below the first mobile
 * block must not widen the guest heading beyond the viewport. */
@media (max-width: 760px) {
  body.woocommerce-account:not(.logged-in) .bad-mafia-account-guest__intro h1 {
    min-width: 0;
    max-width: 7ch;
    font-size: clamp(3.45rem, 14.5vw, 4.6rem);
    line-height: .82;
    overflow-wrap: normal;
  }
}
