/*
Theme Name: Bad Mafia 2024
Theme URI: https://runlo.in/
Author: Runlo Digital Services
Description: Client-specific, server-rendered WooCommerce storefront for Bad Mafia 2024.
Version: 1.0.0
Requires at least: 6.9
Tested up to: 7.0
Requires PHP: 8.3
Text Domain: bad-mafia
*/

/* stylelint-disable no-descending-specificity -- Client theme intentionally overrides WooCommerce component selectors after the recovered base styles. */

@font-face {
	font-family: Inter;
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("assets/fonts/Inter-Variable.ttf") format("truetype");
}

@font-face {
	font-family: "Bebas Neue";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("assets/fonts/BebasNeue-Regular.ttf") format("truetype");
}

:root {
	--paper: #f8f4ef;
	--paper-2: #eee7df;
	--ink: #151312;
	--muted: #6c625c;
	--line: #d9cec3;
	--orange: #e97120;
	--burnt: #a54817;
	--dark: #181615;
	--white: #fff;

	font-family: Inter, Arial, sans-serif;
	color: var(--ink);
	background: var(--paper);
	font-synthesis: none;
	text-rendering: optimizelegibility;
	-webkit-font-smoothing: antialiased;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	min-width: 320px;
	margin: 0;
	overflow-x: clip;
	background: var(--paper);
	color: var(--ink);
}

body.nav-open {
	overflow: hidden;
}

button,
input,
select,
textarea {
	font: inherit;
}

button {
	color: inherit;
}

a {
	color: inherit;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

::selection {
	background: var(--orange);
	color: var(--ink);
}

.site-shell {
	min-height: 100vh;
	overflow: clip;
	background: var(--paper);
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.skip-link {
	position: fixed;
	z-index: 1000;
	top: -100px;
	left: 14px;
	background: var(--white);
	color: var(--ink);
	padding: 12px 16px;
	font-weight: 800;
}

.skip-link:focus {
	top: 14px;
}

.demo-notice {
	display: flex;
	min-height: 35px;
	align-items: center;
	justify-content: center;
	background: #17120f;
	color: var(--white);
	padding: 7px 16px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.18em;
	line-height: 1.25;
	text-align: center;
	text-transform: uppercase;
}

.site-header {
	position: sticky;
	top: 0;
	z-index: 30;
	display: flex;
	min-height: 68px;
	align-items: center;
	gap: 35px;
	border-bottom: 1px solid var(--line);
	background: rgb(248 244 239 / 96%);
	padding: 0 clamp(18px, 4.5vw, 66px);
	backdrop-filter: blur(12px);
}

.admin-bar .site-header {
	top: 32px;
}

.wordmark,
.footer-wordmark {
	border: 0;
	background: transparent;
	color: var(--ink);
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 30px;
	line-height: 0.85;
	letter-spacing: 0.02em;
	text-align: left;
	text-decoration: none;
}

.wordmark span,
.footer-wordmark span {
	color: var(--burnt);
}

.primary-nav {
	display: flex;
	flex: 1;
	align-items: stretch;
}

.primary-nav ul {
	display: flex;
	align-items: stretch;
	gap: 30px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-nav li {
	display: flex;
	align-items: stretch;
}

.primary-nav a {
	position: relative;
	display: flex;
	align-items: center;
	color: var(--ink);
	padding: 0;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-decoration: none;
	text-transform: uppercase;
}

.primary-nav a::after {
	position: absolute;
	right: 100%;
	bottom: 0;
	left: 0;
	height: 2px;
	background: var(--orange);
	content: "";
	transition: right 0.2s;
}

.primary-nav a:hover::after,
.primary-nav .current-menu-item > a::after {
	right: 0;
}

.nav-contact {
	position: relative;
}

.nav-contact__toggle {
	position: relative;
	border: 0;
	background: transparent;
	color: var(--ink);
	padding: 0;
	font: inherit;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	cursor: pointer;
}

.nav-contact__toggle::after {
	display: inline-block;
	margin-left: 6px;
	content: '↓';
	font-size: 10px;
}

.nav-contact.is-open .nav-contact__toggle::after {
	content: '↑';
}

.nav-contact__menu {
	position: absolute;
	z-index: 40;
	top: calc(100% + 18px);
	right: -14px;
	display: grid;
	min-width: 205px;
	border: 1px solid var(--ink);
	background: var(--paper);
	padding: 8px;
	box-shadow: 6px 6px 0 var(--orange);
}

.nav-contact__menu[hidden] {
	display: none;
}

.nav-contact__menu a {
	min-height: 40px;
	border-bottom: 1px solid var(--line);
	padding: 11px 9px;
	font-size: 9px;
}

.nav-contact__menu a:last-child {
	border-bottom: 0;
}

.nav-contact__menu a::after {
	display: none;
}

.header-actions {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-left: auto;
}

.header-icon,
.header-search-toggle,
.account-button,
.bag-button,
.mobile-menu {
	border: 0;
	background: transparent;
	cursor: pointer;
	font-size: 23px;
	line-height: 1;
	text-decoration: none;
}

.account-button {
	display: grid;
	width: 34px;
	height: 38px;
	place-items: center;
	color: var(--ink);
}

.account-button svg {
	fill: none;
	stroke: currentcolor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.65;
}

.account-button:hover,
.account-button:focus-visible {
	color: var(--burnt);
}

.header-search-toggle {
	font-size: 25px;
}

.header-icon {
	font-size: 25px;
}

.bag-button {
	position: relative;
	display: grid;
	width: 32px;
	height: 38px;
	place-items: center;
	font-size: 27px;
}

.bag-button b {
	position: absolute;
	top: 1px;
	right: -4px;
	display: grid;
	min-width: 16px;
	height: 16px;
	place-items: center;
	border-radius: 50%;
	background: var(--orange);
	color: var(--ink);
	font-size: 9px;
	line-height: 1;
}

.mobile-menu {
	display: none;
}

.header-search {
	position: absolute;
	top: 100%;
	right: clamp(18px, 4.5vw, 66px);
	width: min(430px, calc(100vw - 32px));
	border: 1px solid var(--ink);
	background: var(--paper);
	padding: 12px;
	box-shadow: 7px 7px 0 var(--orange);
}

.search-form,
.header-search .woocommerce-product-search {
	display: flex;
	gap: 8px;
}

.search-form label,
.header-search .woocommerce-product-search label {
	min-width: 0;
	flex: 1;
}

.search-field {
	width: 100%;
	height: 46px;
	border: 1px solid var(--line);
	background: var(--white);
	padding: 0 13px;
}

.search-form button,
.header-search .woocommerce-product-search button {
	border: 1px solid var(--ink);
	background: var(--ink);
	color: var(--white);
	cursor: pointer;
	padding: 0 18px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.orange-label,
.section-kicker {
	margin: 0 0 13px;
	color: var(--burnt);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.13em;
	line-height: 1.3;
	text-transform: uppercase;
}

.orange-label {
	display: inline-block;
	background: var(--orange);
	color: var(--ink);
	padding: 7px 9px;
}

.section-kicker::before {
	display: inline-block;
	width: 25px;
	height: 2px;
	margin: 0 8px 3px 0;
	background: var(--orange);
	content: "";
	vertical-align: middle;
}

.section-kicker.light {
	color: var(--white);
}

.action {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	gap: 13px;
	border: 1px solid var(--ink);
	cursor: pointer;
	padding: 0 18px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.13em;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	transition: transform 0.2s, background 0.2s, color 0.2s;
}

.action:hover {
	transform: translateY(-2px);
}

.action-ink {
	background: var(--ink);
	color: var(--white);
}

.action-ink:hover {
	border-color: var(--burnt);
	background: var(--burnt);
}

.action-orange {
	border-color: var(--orange);
	background: var(--orange);
	color: var(--ink);
}

.action-orange:hover {
	background: #f28b45;
}

.action-outline-light {
	border-color: var(--white);
	background: transparent;
	color: var(--white);
}

.action-outline-light:hover {
	background: var(--white);
	color: var(--ink);
}

.underlined-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	border-bottom: 1px solid currentcolor;
	color: inherit;
	padding: 6px 0;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-decoration: none;
	text-transform: uppercase;
}

.underlined-link:hover {
	color: var(--burnt);
}

.heritage-hero {
	position: relative;
	height: min(66vw, 680px);
	min-height: min(66vw, 680px);
	overflow: hidden;
	background: #111313;
	color: var(--white);
}

.heritage-hero > img {
	display: block;
	width: 100%;
	height: 100%;
	min-height: 0;
	object-fit: cover;
	object-position: center;
	filter: saturate(0.82) contrast(1.05);
}

.heritage-hero-shade {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgb(21 19 18 / 91%), rgb(21 19 18 / 54%) 51%, rgb(21 19 18 / 14%));
}

.heritage-copy {
	position: absolute;
	z-index: 1;
	top: 50%;
	left: clamp(22px, 5vw, 72px);
	width: min(680px, 52vw);
	transform: translateY(-50%);
}

.heritage-copy h1,
.section-intro h2,
.drops-heading h2,
.store-proof h2,
.stitch-visit-card h2,
.entry-header h1,
.error-page h1,
.woocommerce-products-header h1,
.woocommerce div.product .product_title {
	margin: 0;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(38px, 4.5vw, 58px);
	font-weight: 400;
	letter-spacing: 0.01em;
	line-height: 0.84;
	text-transform: uppercase;
}

.heritage-copy h1 span,
.section-intro h2 span,
.store-proof h2 span,
.stitch-visit-card h2 span {
	color: var(--orange);
}

.heritage-copy > p:not(.orange-label) {
	max-width: 470px;
	margin: 23px 0 0;
	color: #dfdfdf;
	font-size: 14px;
	line-height: 1.65;
}

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 29px;
}

.heritage-side-note {
	position: absolute;
	z-index: 1;
	right: 24px;
	bottom: 33px;
	display: block;
	color: rgb(255 255 255 / 42%);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.3em;
	transform: rotate(-90deg);
	transform-origin: right bottom;
}

.marquee {
	display: flex;
	height: 39px;
	align-items: center;
	overflow: hidden;
	border-block: 1px solid #444;
	background: #000;
	color: var(--white);
	white-space: nowrap;
}

.marquee > div {
	width: max-content;
	animation: marquee 25s linear infinite;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.19em;
	text-transform: uppercase;
}

@keyframes marquee {
	to {
		transform: translateX(-33.33%);
	}
}

.shop-by-section {
	padding: clamp(78px, 9vw, 125px) clamp(18px, 5vw, 72px) clamp(78px, 10vw, 145px);
}

.section-intro {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 60px;
	margin-bottom: 36px;
}

.section-intro h2 {
	font-size: clamp(58px, 6.2vw, 96px);
}

.section-intro > p {
	max-width: 400px;
	margin: 0;
	color: var(--muted);
	font-size: 14px;
	line-height: 1.65;
}

.category-strip {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
}

.category-tile {
	position: relative;
	display: flex;
	min-height: 340px;
	align-items: flex-start;
	justify-content: flex-end;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--ink);
	background: #222;
	color: var(--white);
	padding: 16px;
	text-align: left;
	text-decoration: none;
}

.category-tile::after {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 38%, rgb(0 0 0 / 91%));
	content: "";
}

.category-tile img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.75);
	transition: transform 0.5s;
}

.category-tile:hover img {
	transform: scale(1.05);
}

.category-tile span,
.category-tile strong,
.category-tile small {
	position: relative;
	z-index: 1;
}

.category-tile span {
	position: absolute;
	top: 13px;
	left: 13px;
	color: var(--orange);
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 25px;
}

.category-tile strong {
	max-width: 170px;
	margin-bottom: 12px;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 32px;
	font-weight: 400;
	letter-spacing: 0.03em;
	line-height: 0.85;
	text-transform: uppercase;
}

.category-tile small {
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.sample-stitch {
	background: var(--dark);
	color: var(--white);
	padding: clamp(78px, 9vw, 125px) clamp(18px, 5vw, 72px);
}

.drops-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 35px;
}

.drops-heading h2 {
	color: var(--white);
	font-size: clamp(65px, 7.2vw, 108px);
}

.drops-note {
	margin: 13px 0 28px;
	color: #bdbdbd;
	font-size: 10px;
	letter-spacing: 0.04em;
}

.store-empty {
	min-height: 180px;
	border: 1px solid currentcolor;
	padding: 36px;
	color: inherit;
}

.store-empty p {
	max-width: 540px;
	margin: 0;
	font-size: 14px;
	line-height: 1.65;
}

.sample-stitch ul.products,
.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 13px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.sample-stitch ul.products li.product,
.woocommerce ul.products li.product {
	position: relative;
	float: none;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	border: 1px solid var(--line);
	background: var(--white);
	color: var(--ink);
	transition: transform 0.2s, box-shadow 0.2s;
}

.woocommerce ul.products li.product:hover {
	z-index: 1;
	box-shadow: 5px 5px 0 var(--orange);
	transform: translateY(-3px);
}

.woocommerce ul.products li.product a {
	color: inherit;
	text-decoration: none;
}

.woocommerce ul.products li.product a img {
	width: 100%;
	margin: 0;
	aspect-ratio: 3 / 4;
	background: #ddd;
	/* Product photography is an inspection surface: never crop the garment
	 * or accessory just to fill a legacy WooCommerce card ratio. */
	object-fit: contain;
	filter: saturate(0.82);
	transition: transform 0.45s;
}

.woocommerce ul.products li.product:hover a img {
	transform: scale(1.015);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	min-height: 54px;
	margin: 0;
	padding: 14px 12px 5px;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 25px;
	font-weight: 400;
	letter-spacing: 0.02em;
	line-height: 0.87;
	text-transform: uppercase;
}

.woocommerce ul.products li.product .price {
	min-height: 38px;
	margin: 0;
	padding: 5px 12px 14px;
	color: var(--ink);
	font-size: 14px;
	font-weight: 800;
}

.woocommerce ul.products li.product .button {
	display: flex;
	min-height: 43px;
	align-items: center;
	justify-content: center;
	margin: 0 12px 12px;
	border-radius: 0;
	background: var(--ink);
	color: var(--white);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.sample-stitch ul.products li.product {
	border-color: #4b4b4b;
	background: var(--dark);
	color: var(--white);
}

.sample-stitch ul.products li.product .price {
	color: var(--white);
}

.sample-stitch ul.products li.product .button {
	border: 1px solid #777;
	background: transparent;
}

.sample-stitch ul.products li.product .button:hover {
	border-color: var(--orange);
	background: var(--orange);
	color: var(--ink);
}

.product-verification {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
	margin: 12px 0;
}

.product-verification--compact {
	position: absolute;
	z-index: 4;
	top: 9px;
	left: 9px;
	max-width: calc(100% - 18px);
	margin: 0;
}

.verification-badge {
	display: inline-flex;
	min-height: 23px;
	align-items: center;
	background: var(--ink);
	color: var(--white);
	padding: 4px 7px;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.25;
	text-transform: uppercase;
}

.verification-badge--demo {
	background: var(--orange);
	color: var(--ink);
}

.verification-badge--inventory,
.verification-badge--price {
	background: var(--ink);
}

.bad-mafia-product-facts,
.bad-mafia-size-chart,
.bad-mafia-product-returns {
	margin: 22px 0 0;
	padding-top: 18px;
	border-top: 1px solid var(--line);
}

.bad-mafia-product-facts h2,
.bad-mafia-size-chart summary,
.bad-mafia-product-returns h2 {
	margin: 0 0 11px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.bad-mafia-size-chart summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 44px;
	cursor: pointer;
	list-style: none;
}

/* Keep the fit-guide affordance beside the size controls, like a premium
 * retail PDP, instead of spending a full-width row on a large accordion
 * label. The summary remains the accessible disclosure control. */
.bad-mafia-size-chart summary {
	font-size: 0;
	margin: 0;
	border-bottom: 1px solid var(--line);
}

.bad-mafia-size-chart summary::before {
	content: 'Size';
	color: var(--ink);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.bad-mafia-size-chart summary::-webkit-details-marker {
	display: none;
}

.bad-mafia-size-chart summary::after {
	color: var(--orange);
	content: 'Size chart';
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	line-height: 1.2;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-transform: uppercase;
}

.bad-mafia-size-chart summary:focus-visible {
	outline: 3px solid var(--orange);
	outline-offset: 3px;
}

.bad-mafia-size-chart p {
	margin: 4px 0 0;
	max-width: 58ch;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.6;
	white-space: pre-line;
}

.bad-mafia-product-facts ul {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px 20px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bad-mafia-product-facts li {
	position: relative;
	padding-left: 16px;
	font-size: 13px;
	line-height: 1.5;
}

.bad-mafia-product-facts li::before {
	position: absolute;
	left: 0;
	color: var(--orange);
	content: '✓';
	font-weight: 800;
}

.bad-mafia-product-returns__status {
	margin: 0 0 6px;
	font-weight: 700;
}

.bad-mafia-product-returns p:last-child {
	margin: 0;
	max-width: 58ch;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.55;
}

.store-proof {
	display: grid;
	grid-template-columns: minmax(340px, 0.95fr) minmax(0, 1.05fr);
	align-items: center;
	gap: clamp(34px, 8vw, 132px);
	padding: clamp(80px, 10vw, 145px) clamp(18px, 5vw, 72px);
	background: var(--paper);
}

.store-proof-media {
	position: relative;
}

.store-proof figure {
	position: relative;
	margin: 0;
	background: #1b1b1b;
	box-shadow: 9px 9px 0 var(--orange);
}

.store-proof figure img {
	width: 100%;
	aspect-ratio: 2.18 / 1;
	object-fit: cover;
	object-position: center 52%;
}

.store-proof figcaption {
	position: absolute;
	right: 0;
	bottom: 0;
	max-width: 75%;
	background: #111313;
	color: var(--white);
	padding: 8px 10px;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.store-proof-inset {
	position: absolute;
	top: -36px;
	right: -28px;
	width: 22%;
	min-width: 82px;
	aspect-ratio: 0.77;
	border: 5px solid var(--paper);
	object-fit: cover;
	box-shadow: 5px 5px 0 var(--ink);
}

.store-proof-copy {
	max-width: 500px;
}

.store-proof h2,
.stitch-visit-card h2 {
	font-size: clamp(58px, 6vw, 100px);
}

.store-proof-copy > p:not(.section-kicker) {
	margin: 23px 0 0;
	color: var(--muted);
	font-size: 14px;
	line-height: 1.7;
}

.address-callout {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 28px 0;
	border-left: 2px solid var(--ink);
	padding: 11px 0 11px 16px;
}

.address-callout strong {
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 24px;
	font-weight: 400;
	letter-spacing: 0.03em;
}

.address-callout span {
	color: var(--muted);
	font-size: 11px;
	line-height: 1.5;
}

.stitch-visit {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(26px, 6vw, 90px);
	border-top: 4px solid var(--orange);
	background: var(--paper);
	padding: clamp(78px, 9vw, 125px) clamp(18px, 5vw, 72px);
}

.stitch-visit-card {
	align-self: center;
	max-width: 530px;
	border: 1px solid var(--line);
	background: var(--white);
	padding: clamp(24px, 5vw, 50px);
	box-shadow: 8px 8px 0 var(--paper-2);
}

.visit-detail {
	margin: 27px 0;
	border-top: 1px solid var(--line);
	padding-top: 16px;
}

.visit-detail strong {
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 25px;
	font-weight: 400;
}

.visit-detail p {
	margin: 8px 0 0;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.6;
}

.stitch-visit-card .action {
	width: 100%;
}

.map-art {
	position: relative;
	display: flex;
	min-height: 450px;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border: 1px solid var(--line);
	background-color: #e9e5e2;
	background-image: linear-gradient(rgb(0 0 0 / 7%) 1px, transparent 1px), linear-gradient(90deg, rgb(0 0 0 / 7%) 1px, transparent 1px);
	background-size: 43px 43px;
	text-decoration: none;
}

.map-art::after,
.map-art::before {
	position: absolute;
	background: var(--white);
	content: '';
	box-shadow: 0 0 0 1px #ddd;
}

.map-art::before {
	width: 135%;
	height: 39px;
	transform: rotate(-15deg);
}

.map-art::after {
	width: 32px;
	height: 135%;
	transform: rotate(24deg);
}

.map-label {
	position: absolute;
	z-index: 2;
	right: 20px;
	bottom: 20px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	border-left: 3px solid var(--orange);
	background: rgb(255 255 255 / 90%);
	padding: 12px;
}

.map-label strong {
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 22px;
	font-weight: 400;
}

.map-label small {
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.map-pin {
	position: relative;
	z-index: 3;
	display: grid;
	width: 59px;
	height: 59px;
	overflow: hidden;
	place-items: center;
	border: 4px solid var(--white);
	border-radius: 50%;
	background: var(--orange);
	box-shadow: 0 0 0 1px #000;
}

.map-pin img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.site-footer {
	border-top: 4px solid var(--orange);
	background: #151110;
	color: var(--white);
	padding: 65px clamp(18px, 4.5vw, 66px) 20px;
}

.footer-main {
	display: grid;
	grid-template-columns: 1.4fr 0.9fr 0.9fr 1.4fr;
	gap: 35px;
	padding-bottom: 60px;
}

.footer-wordmark {
	display: inline-block;
	color: var(--white);
	font-size: 54px;
}

.footer-brand > p {
	max-width: 250px;
	margin: 20px 0 0;
	color: #aaa;
	font-size: 11px;
	line-height: 1.6;
}

.footer-main > div:not(:first-child),
.footer-main address {
	display: flex;
	flex-direction: column;
	gap: 10px;
	font-size: 11px;
	font-style: normal;
	line-height: 1.55;
}

.footer-main strong {
	margin-bottom: 4px;
	color: var(--orange);
	font-size: 9px;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.footer-main a {
	color: var(--white);
	font-size: 11px;
	text-align: left;
	text-decoration: none;
}

.footer-main ul {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.footer-main a:hover {
	color: var(--orange);
}

.footer-bottom {
	display: flex;
	justify-content: space-between;
	gap: 15px;
	border-top: 1px solid #333;
	padding-top: 19px;
	color: #888;
	font-size: 9px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* WordPress pages and search. */
.content-page,
.commerce-page {
	min-height: 72vh;
	padding: clamp(50px, 6vw, 86px) clamp(18px, 4.5vw, 66px) clamp(80px, 9vw, 130px);
}

.entry-header,
.woocommerce-products-header {
	max-width: 950px;
	margin-bottom: 48px;
}

.entry-header h1,
.woocommerce-products-header h1,
.error-page h1 {
	font-size: clamp(38px, 4.5vw, 58px);
}

.entry-content {
	font-size: 15px;
	line-height: 1.7;
}

.entry-content > * {
	max-width: 820px;
}

.entry-content > .woocommerce,
.entry-content > .wp-block-woocommerce-cart,
.entry-content > .wp-block-woocommerce-checkout {
	max-width: none;
}

.search-results-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.search-result-card {
	border: 1px solid var(--line);
	background: var(--white);
}

.search-result-card a {
	display: block;
	height: 100%;
	padding: 20px;
	text-decoration: none;
}

.search-result-card img {
	width: calc(100% + 40px);
	max-width: none;
	margin: -20px -20px 18px;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.search-result-card small {
	color: var(--burnt);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.search-result-card h2 {
	margin: 10px 0;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 34px;
	font-weight: 400;
	line-height: 0.9;
	text-transform: uppercase;
}

.search-result-card p {
	margin: 0;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.6;
}

.error-page > p:not(.section-kicker) {
	max-width: 550px;
	color: var(--muted);
	font-size: 16px;
	line-height: 1.65;
}

.error-page .search-form {
	max-width: 550px;
	margin: 28px 0 18px;
}

/* WooCommerce archive. */
.commerce-page .woocommerce-breadcrumb {
	margin: 0 0 25px;
	color: var(--muted);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.woocommerce-products-header .term-description {
	max-width: 680px;
	margin-top: 22px;
	color: var(--muted);
	font-size: 15px;
	line-height: 1.65;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin-bottom: 24px;
}

.woocommerce .woocommerce-result-count {
	color: var(--muted);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.woocommerce .woocommerce-ordering select {
	min-height: 42px;
	border: 1px solid var(--line);
	border-radius: 0;
	background: var(--paper);
	padding: 0 12px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.woocommerce nav.woocommerce-pagination {
	margin-top: 42px;
}

.woocommerce nav.woocommerce-pagination ul {
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 1px solid var(--line);
	margin: 0 3px;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	min-width: 42px;
	padding: 13px;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--orange);
	color: var(--ink);
}

/* WooCommerce single product. */
.single-commerce-page .product {
	margin-top: 22px;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	margin-bottom: 70px;
}

.woocommerce div.product div.images {
	width: 51%;
}

.woocommerce div.product div.summary {
	width: 42%;
}

.woocommerce div.product div.images img {
	background: #ddd;
}

.woocommerce div.product .product_title {
	font-size: clamp(58px, 5.2vw, 84px);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--burnt);
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 35px;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	color: var(--muted);
	font-size: 14px;
	line-height: 1.7;
}

.woocommerce div.product form.cart,
.woocommerce div.product form.variations_form {
	margin-top: 28px;
}

.woocommerce .quantity .qty {
	height: 48px;
	border: 1px solid var(--line);
	border-radius: 0;
}

.woocommerce div.product form.cart .button,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	min-height: 48px;
	border-radius: 0;
	background: var(--ink);
	color: var(--white);
	padding: 0 20px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.woocommerce div.product form.cart .button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
	background: var(--burnt);
	color: var(--white);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding-left: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border-radius: 0;
	background: var(--paper-2);
}

.woocommerce div.product .woocommerce-tabs .panel {
	max-width: 850px;
	color: var(--muted);
	font-size: 14px;
	line-height: 1.7;
}

.woocommerce div.product .related.products > h2,
.woocommerce div.product .upsells.products > h2 {
	margin: 85px 0 28px;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(52px, 5vw, 76px);
	font-weight: 400;
	line-height: 0.9;
	text-transform: uppercase;
}

/* Cart, checkout and account remain native WooCommerce UI. */
.woocommerce table.shop_table,
.wc-block-cart-items,
.wc-block-components-sidebar {
	border: 1px solid var(--line);
	border-radius: 0;
	background: var(--white);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 15px;
}

.woocommerce table.shop_table img {
	width: 88px;
}

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-checkout #payment {
	border-radius: 0;
	background: var(--paper-2);
	padding: 24px;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.select2-container--default .select2-selection--single {
	min-height: 46px;
	border: 1px solid var(--line);
	border-radius: 0;
	background: var(--white);
	padding: 10px 12px;
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	border: 1px solid var(--line);
	border-radius: 0;
	background: var(--white);
}

.bad-mafia-auth {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(20px, 4vw, 48px);
}

.bad-mafia-auth__panel {
	border-top: 2px solid var(--ink);
	background: var(--white);
	padding: clamp(22px, 4vw, 40px);
}

.bad-mafia-auth__panel h2 {
	margin: 4px 0 12px;
	font-size: clamp(40px, 5vw, 64px);
}

.bad-mafia-auth__intro {
	min-height: 44px;
	margin-bottom: 24px;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.65;
}

.bad-mafia-auth form.login,
.bad-mafia-auth form.register {
	margin: 0;
	border: 0;
	padding: 0;
}

.bad-mafia-auth .form-row label:not(.woocommerce-form__label-for-checkbox) {
	display: block;
	margin-bottom: 7px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.bad-mafia-auth .woocommerce-button {
	min-height: 46px;
	margin-top: 8px;
	padding: 0 24px;
}

.bad-mafia-auth__submit-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.bad-mafia-auth__submit-row .woocommerce-form-login__rememberme {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
}

.bad-mafia-auth .lost_password {
	margin-top: 20px;
	font-size: 12px;
}

.bad-mafia-auth__privacy {
	margin-top: 22px;
	border-top: 1px solid var(--line);
	padding-top: 16px;
	color: var(--muted);
	font-size: 11px;
	line-height: 1.55;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: flex;
	justify-content: space-between;
	border-bottom: 1px solid var(--line);
	padding: 13px 10px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-top-color: var(--orange);
	background: var(--white);
}

.woocommerce-info::before,
.woocommerce-message::before {
	color: var(--burnt);
}

.woocommerce-checkout .bad-mafia-coupon-toggle {
	margin-bottom: 18px;
	font-size: 12px;
}

.woocommerce-checkout .bad-mafia-coupon-toggle .bad-mafia-coupon-link {
	color: var(--burnt);
	font-weight: 800;
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
}

.woocommerce-checkout .bad-mafia-coupon-toggle .bad-mafia-coupon-link:hover,
.woocommerce-checkout .bad-mafia-coupon-toggle .bad-mafia-coupon-link:focus-visible {
	color: var(--ink);
}

/* Keep native add-to-cart feedback as a composed notice, not a loosely floated
 * button. WooCommerce ships the action floated to the top edge by default. */
.woocommerce-message {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	min-height: 72px;
	align-items: center;
	gap: 16px;
}

/* WooCommerce's `.woocommerce .woocommerce-message .button` rule has higher
 * specificity than the usual theme selector. Match it explicitly so the
 * action remains a real grid action at the notice edge instead of reverting
 * to a floated, mid-message button. */
.woocommerce .woocommerce-message .button,
.woocommerce-page .woocommerce-message .button {
	float: none;
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding-inline: 22px;
	line-height: 1;
	white-space: nowrap;
}

/* Empty account states use the same composed notice treatment. Without this,
 * WooCommerce's legacy float puts “Browse products” over the message on a
 * narrow account view. */
.woocommerce-account .woocommerce-info {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	min-height: 72px;
	align-items: center;
	gap: 16px;
}

.woocommerce .woocommerce-info .button,
.woocommerce-page .woocommerce-info .button {
	float: none;
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	margin: 0;
	line-height: 1;
	white-space: nowrap;
}

@media (width <= 520px) {
	.woocommerce-message {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 12px;
		padding-right: 12px;
	}

	.woocommerce .woocommerce-message .button,
	.woocommerce-page .woocommerce-message .button {
		min-width: 104px;
		padding-inline: 12px;
	}

	.woocommerce-account .woocommerce-info {
		grid-template-columns: 1fr;
		gap: 12px;
		padding-right: 12px;
	}

	.woocommerce-account .woocommerce-info .button {
		justify-self: start;
	}
}

/* Native empty-cart states use WooCommerce's lightweight fallback markup.
 * Keep its recovery action aligned with the notice/content edge and centre the
 * label within the fixed-height shared button treatment. */
body.woocommerce-cart .content-page {
	/* An empty cart is a recovery state, not a landing page; avoid a full
	 * viewport shell that strands the footer far below the next action. */
	min-height: 0;
	padding-bottom: clamp(48px, 6vw, 88px);
}

.woocommerce-cart .woocommerce-notices-wrapper,
.woocommerce-cart .cart-empty,
.woocommerce-cart .return-to-shop {
	max-width: 950px;
}

.woocommerce-cart .return-to-shop {
	display: flex;
	align-items: center;
	margin: 28px 0 0;
}

.woocommerce-cart .return-to-shop .button.wc-backward {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	line-height: 1;
	white-space: nowrap;
}

/* Recovered catalogue composition and custom Woo product cards. */
.catalog-layout {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	gap: clamp(34px, 5vw, 72px);
	margin-top: 60px;
}

.catalog-filter {
	align-self: start;
	border-top: 1px solid var(--ink);
}

.filter-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--line);
	padding: 20px 0 14px;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 25px;
	text-transform: uppercase;
}

.filter-choice {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 9px 0;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.filter-choice i {
	display: inline-block;
	width: 14px;
	height: 14px;
	border: 1px solid var(--ink);
}

.filter-choice.selected {
	color: var(--burnt);
}

.filter-choice.selected i {
	background: var(--orange);
	box-shadow: inset 0 0 0 3px var(--paper);
}

.filter-disclaimer {
	margin-top: 18px;
	border-block: 1px solid var(--line);
	padding: 18px 0;
}

.filter-disclaimer strong {
	font-size: 9px;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.filter-disclaimer p {
	margin: 8px 0 0;
	color: var(--muted);
	font-size: 11px;
	line-height: 1.55;
}

.catalog-tools {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--line);
	padding-bottom: 12px;
}

.catalog-tools .woocommerce-product-search {
	display: flex;
	width: min(100%, 380px);
}

.catalog-tools .search-field {
	min-width: 0;
	flex: 1;
}

.catalog-tools .woocommerce-product-search button {
	border: 0;
	background: var(--ink);
	color: var(--white);
	padding: 0 14px;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.catalog-tools > div {
	display: flex;
	align-items: center;
	gap: 18px;
}

.catalog-tools .woocommerce-result-count,
.catalog-tools .woocommerce-ordering {
	float: none;
	margin: 0;
}

.bad-mafia-product-card__media,
.bad-mafia-product-card__copy,
.bad-mafia-product-card__category,
.bad-mafia-product-card__price {
	display: block;
}

.bad-mafia-product-card__media {
	position: relative;
	overflow: hidden;
	background: #ddd;
}

.bad-mafia-product-card__copy {
	padding: 12px;
}

.bad-mafia-product-card__category {
	margin: 0 0 7px;
	color: var(--muted);
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.bad-mafia-product-card__category a {
	color: inherit;
}

.bad-mafia-product-card__price {
	display: flex;
	min-height: 0;
	align-items: baseline;
	justify-content: space-between;
	gap: 6px;
	padding: 14px 0 0;
	font-size: 14px;
	font-weight: 800;
}

.bad-mafia-product-card__price > span,
.bad-mafia-product-card__price > span > .price {
	min-height: 0;
	margin: 0;
	padding: 0;
	color: inherit;
	font-size: inherit;
}

.bad-mafia-product-card__price small {
	color: var(--muted);
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.bad-mafia-product-card .woocommerce-loop-product__title {
	min-height: 34px !important;
	padding: 0 !important;
}

.bad-mafia-product-card__concept {
	position: absolute;
	z-index: 3;
	top: 10px;
	left: 10px;
	background: var(--orange);
	color: var(--ink);
	padding: 6px 7px;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.bad-mafia-product-card__heart {
	position: absolute;
	z-index: 3;
	top: 10px;
	right: 10px;
	display: grid;
	width: 32px;
	height: 32px;
	place-items: center;
	border: 1px solid currentcolor;
	background: rgb(0 0 0 / 48%);
	color: var(--white);
	font-size: 20px;
}

.sample-stitch .bad-mafia-product-card__category {
	color: #bdbdbd;
}

.sample-stitch .bad-mafia-product-card__price {
	color: var(--white);
}

.sample-stitch .bad-mafia-product-card__price small {
	color: #bdbdbd;
}

/* Recovered product-detail composition. */
.detail-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 32px;
}

.detail-nav > a {
	border-bottom: 1px solid var(--ink);
	padding: 7px 0;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-decoration: none;
	text-transform: uppercase;
}

.detail-nav .woocommerce-breadcrumb {
	margin: 0;
}

.detail-layout {
	display: grid;
	grid-template-columns: minmax(390px, 1.12fr) minmax(330px, 0.88fr);
	gap: clamp(42px, 7vw, 105px);
}

.detail-gallery .woocommerce-product-gallery {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 12px;
	float: none;
	width: 100%;
	margin: 0;
}

.detail-copy.summary {
	float: none;
	width: 100%;
	margin: 0;
}

.detail-gallery .flex-viewport {
	grid-column: 2;
	grid-row: 1;
}

.detail-gallery .woocommerce-product-gallery__wrapper {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
}

.detail-gallery .woocommerce-product-gallery__image img {
	width: 100%;
	aspect-ratio: 4 / 5;
	/* Product photography must remain fully visible. Editorial crop rules
	 * belong to collection cards; the PDP is the inspection surface. */
	object-fit: contain;
	background: var(--paper);
}

.detail-gallery .woocommerce-product-gallery__trigger {
	display: none;
}

.detail-gallery .flex-control-thumbs {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 72px;
	margin: 0 12px 0 0;
}

.detail-gallery .flex-control-thumbs li {
	width: 100%;
	margin: 0;
	border: 1px solid var(--line);
}

.detail-gallery .flex-control-thumbs img {
	width: 100%;
	aspect-ratio: 1 / 1.26;
	object-fit: contain;
	background: var(--paper);
	opacity: 1;
}

.product-reference {
	margin: 0 0 12px;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
}

.detail-copy .product-verification {
	margin: 15px 0 9px;
}

.detail-copy .cart {
	border-top: 1px solid var(--line);
	padding-top: 24px;
}

.detail-copy .variations {
	width: 100%;
	margin: 0;
	border-bottom: 1px solid var(--line);
}

.detail-copy .variations tr {
	display: block;
	padding: 20px 0;
}

.detail-copy .variations tr + tr {
	border-top: 1px solid var(--line);
}

.detail-copy .variations th,
.detail-copy .variations td {
	display: block;
	padding: 0;
	text-align: left;
}

.detail-copy .variations label,
.detail-copy .variations th {
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.detail-copy .variations td {
	margin-top: 12px;
}

.detail-copy select[data-enhanced] {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	white-space: nowrap;
	clip-path: inset(50%);
}

.bad-mafia-variation-options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(54px, 1fr));
	gap: 7px;
}

.bad-mafia-variation-options button {
	min-height: 45px;
	border: 1px solid var(--line);
	background: transparent;
	color: var(--ink);
	font: inherit;
	font-size: 11px;
	font-weight: 800;
	cursor: pointer;
}

.bad-mafia-variation-options button:hover:not(:disabled) {
	border-color: var(--ink);
	background: var(--paper-2);
}

.bad-mafia-variation-options button:focus-visible,
.detail-copy .bad-mafia-quantity-button:focus-visible {
	position: relative;
	z-index: 1;
	outline: 3px solid var(--orange);
	outline-offset: 2px;
}

.bad-mafia-variation-options button.is-selected {
	border-color: var(--ink);
	background: var(--ink);
	color: var(--white);
}

.bad-mafia-variation-options button.is-selected:hover:not(:disabled) {
	background: var(--dark);
}

.bad-mafia-variation-options button:disabled {
	cursor: not-allowed;
	opacity: 0.35;
}

/* Colours are a tactile choice, so they should read as compact labelled
 * swatches rather than the full-width size-selector treatment. */
.bad-mafia-variation-options--colour {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
}

.bad-mafia-variation-options--colour button {
	display: inline-flex;
	width: auto;
	min-width: 154px;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
	padding: 0 14px;
	text-align: left;
}

.bad-mafia-variation-options--colour button::before {
	width: 14px;
	height: 14px;
	flex: 0 0 14px;
	border: 1px solid rgb(0 0 0 / 18%);
	border-radius: 50%;
	background: var(--bad-mafia-swatch, #c5b7a9);
	box-shadow: inset 0 0 0 2px rgb(255 255 255 / 28%);
	content: '';
}

.bad-mafia-variation-options--colour button.is-selected::before {
	border-color: rgb(255 255 255 / 65%);
}

.detail-copy .woocommerce-variation-add-to-cart,
.detail-copy form.cart:not(.variations_form) {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: stretch;
}

.detail-copy .woocommerce-variation-add-to-cart {
	display: grid;
	width: 100%;
	grid-template-columns: 132px minmax(0, 1fr) minmax(0, 1fr);
}

.detail-copy .reset_variations {
	display: inline-block;
	margin-top: 8px;
	color: var(--muted);
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.detail-copy form.cart .quantity {
	margin-right: 0;
}

.detail-copy .quantity[data-enhanced='true'] {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--line);
}

.detail-copy .quantity[data-enhanced='true'] .qty {
	width: 44px;
	min-width: 44px;
	min-height: 44px;
	height: 46px;
	flex: 0 0 44px;
	border: 0;
	border-inline: 1px solid var(--line);
	padding: 0;
	text-align: center;
	appearance: textfield;
}

.detail-copy .bad-mafia-quantity-button {
	width: 44px;
	min-height: 44px;
	border: 0;
	background: transparent;
	color: var(--ink);
	font-size: 18px;
	cursor: pointer;
}

.detail-copy .bad-mafia-quantity-button:hover:not(:disabled) {
	background: var(--paper-2);
}

.detail-copy .bad-mafia-quantity-button:disabled {
	color: var(--muted);
	cursor: not-allowed;
	opacity: 0.45;
}

.detail-copy form.cart .single_add_to_cart_button {
	margin: 0;
}

.detail-copy form.cart .single_add_to_cart_button:not(.bad-mafia-buy-now-button) {
	border-color: var(--orange);
	background: var(--orange) !important;
	color: var(--ink) !important;
}

.detail-copy form.cart .bad-mafia-buy-now-button {
	border-color: var(--ink);
	background: var(--ink) !important;
	color: var(--white) !important;
}

.detail-copy form.cart .single_add_to_cart_button:not(:disabled, .disabled):hover {
	background: var(--burnt) !important;
	color: var(--white) !important;
}

.detail-copy form.cart .bad-mafia-buy-now-button:not(:disabled, .disabled):hover {
	border-color: var(--orange);
	background: var(--orange) !important;
	color: var(--ink) !important;
}

.detail-copy form.cart .single_add_to_cart_button:focus-visible {
	outline: 3px solid var(--orange);
	outline-offset: 3px;
}

.detail-copy form.cart .single_add_to_cart_button:disabled,
.detail-copy form.cart .single_add_to_cart_button.disabled {
	border-color: var(--line);
	background: var(--line) !important;
	color: var(--muted) !important;
	cursor: not-allowed;
	opacity: 1;
}

.detail-copy .product_meta {
	border-top: 1px solid var(--line);
	padding-top: 18px;
	color: var(--muted);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.7;
	text-transform: uppercase;
}

.detail-after-summary {
	margin-top: clamp(80px, 9vw, 130px);
}

.detail-after-summary .woocommerce-tabs ul.tabs {
	display: flex;
	gap: 24px;
	margin: 0 0 28px;
	border-bottom: 1px solid var(--line);
	padding: 0;
	list-style: none;
}

.detail-after-summary .woocommerce-tabs ul.tabs::before,
.detail-after-summary .woocommerce-tabs ul.tabs::after,
.detail-after-summary .woocommerce-tabs ul.tabs li::before,
.detail-after-summary .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.detail-after-summary .woocommerce-tabs ul.tabs li {
	margin: 0;
	border: 0;
	background: transparent;
	padding: 0;
}

.detail-after-summary .woocommerce-tabs ul.tabs li a {
	display: block;
	border-bottom: 3px solid transparent;
	padding: 13px 0 11px;
	color: var(--muted);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.detail-after-summary .woocommerce-tabs ul.tabs li.active a {
	border-color: var(--orange);
	color: var(--ink);
}

.detail-after-summary .woocommerce-tabs .panel {
	max-width: 820px;
	color: var(--muted);
	font-size: 14px;
	line-height: 1.7;
}

.detail-after-summary .related.products > h2 {
	margin: 80px 0 28px;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(52px, 5vw, 76px);
	font-weight: 400;
	line-height: 0.9;
	text-transform: uppercase;
}

/* Recovered bag/cart composition. */
.bad-mafia-cart-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 35px;
	border-bottom: 1px solid var(--line);
	padding-bottom: 34px;
}

.bad-mafia-cart-heading h2,
.bad-mafia-checkout h2 {
	margin: 0;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(58px, 6vw, 94px);
	font-weight: 400;
	line-height: 0.85;
	text-transform: uppercase;
}

.bad-mafia-cart-heading > p {
	max-width: 370px;
	margin: 0;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.65;
}

.bad-mafia-cart-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(310px, 0.42fr);
	gap: clamp(35px, 7vw, 100px);
}

.bad-mafia-cart-lines {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.bad-mafia-cart-line {
	display: grid;
	grid-template-columns: 176px minmax(0, 1fr);
	gap: 24px;
	border: 1px solid var(--line);
	background: var(--white);
	padding: 18px;
}

.bad-mafia-cart-line__image img {
	width: 176px;
	aspect-ratio: 3 / 4;
	/* Cart imagery is still an inspection surface: never trim a garment or
	 * accessory simply to fill the legacy portrait frame. */
	object-fit: contain;
	object-position: center;
}

.bad-mafia-cart-line__copy {
	position: relative;
	display: flex;
	align-items: flex-start;
	flex-direction: column;
}

.bad-mafia-cart-line__copy > .remove {
	position: absolute;
	top: -7px;
	right: 0;
	color: #777;
	font-size: 30px;
	text-decoration: none;
}

.bad-mafia-cart-line__eyebrow {
	margin: 3px 34px 8px 0;
	color: var(--muted);
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.bad-mafia-cart-line h3 {
	margin: 0;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 32px;
	font-weight: 400;
	line-height: 0.9;
	text-transform: uppercase;
}

.bad-mafia-cart-line h3 a {
	text-decoration: none;
}

.bad-mafia-cart-line .product-verification--compact {
	position: static;
	max-width: none;
	margin-top: 10px;
}

.bad-mafia-cart-line .variation {
	margin: 0;
	color: var(--muted);
	font-size: 10px;
}

.bad-mafia-cart-line__variations {
	margin-top: 12px;
}

.bad-mafia-cart-line__variations .variation {
	display: flex;
	flex-wrap: wrap;
	gap: 5px 12px;
}

.bad-mafia-cart-line__variations .variation dt,
.bad-mafia-cart-line__variations .variation dd {
	margin: 0;
	line-height: 1.45;
}

.bad-mafia-cart-line__variations .variation dt {
	color: var(--muted);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.bad-mafia-cart-line__variations .variation dd {
	margin-right: 8px;
	color: var(--ink);
	font-size: 10px;
	font-weight: 700;
}

.bad-mafia-cart-line__variations .variation dd p {
	margin: 0;
}

.bad-mafia-cart-line__unit-price {
	margin-top: 10px;
	color: var(--muted);
	font-size: 11px;
}

.bad-mafia-cart-line__bottom {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	width: 100%;
	gap: 15px;
	margin-top: auto;
}

.bad-mafia-cart-line__bottom strong {
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 22px;
	font-weight: 400;
	color: #4f4a45;
}

.bad-mafia-cart-line .quantity[data-enhanced='true'] {
	display: inline-flex;
	min-height: 44px;
	align-items: stretch;
	border: 1px solid var(--line);
	background: var(--white);
}

.bad-mafia-cart-line .quantity[data-enhanced='true'] .qty {
	width: 44px;
	min-height: 44px;
	border: 0;
	border-inline: 1px solid var(--line);
	padding: 0;
	background: transparent;
	text-align: center;
	appearance: textfield;
}

.bad-mafia-cart-line .bad-mafia-quantity-button {
	width: 44px;
	min-height: 44px;
	border: 0;
	background: transparent;
	color: var(--ink);
	font-size: 18px;
	cursor: pointer;
}

.bad-mafia-cart-line .bad-mafia-quantity-button:hover:not(:disabled) {
	background: var(--paper-2);
}

.bad-mafia-cart-line .bad-mafia-quantity-button:focus-visible {
	position: relative;
	z-index: 1;
	outline: 3px solid var(--orange);
	outline-offset: 2px;
}

.bad-mafia-cart-line .bad-mafia-quantity-button:disabled {
	color: var(--muted);
	cursor: not-allowed;
	opacity: 0.45;
}

.bad-mafia-cart-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	margin-top: 18px;
}

.bad-mafia-cart-actions .coupon {
	display: flex;
}

.bad-mafia-cart-actions .input-text {
	min-height: 48px;
	border: 1px solid var(--line);
	padding: 0 11px;
}

.bad-mafia-cart-actions button:disabled {
	border-color: var(--line);
	background: var(--paper-2);
	color: var(--muted);
	cursor: not-allowed;
	opacity: 1;
}

.woocommerce-cart .bad-mafia-cart-form.has-unsaved-changes button[name="update_cart"] {
	border-color: var(--orange);
	background: var(--orange);
	color: var(--ink);
	cursor: pointer;
	opacity: 1;
}

.bad-mafia-cart-dirty-notice {
	margin: 18px 0 0;
	border-left: 4px solid var(--orange);
	background: var(--white);
	padding: 12px 14px;
	color: var(--ink);
	font-size: 11px;
	line-height: 1.5;
}

.bad-mafia-cart-summary {
	align-self: start;
	position: sticky;
	top: 92px;
	border: 1px solid var(--line);
	background: var(--paper-2);
	padding: clamp(22px, 2.3vw, 32px);
}

/* WooCommerce's base cart rule floats a narrow totals table to the right.
 * The storefront summary is intentionally a full-width key/value panel. */
.woocommerce-cart .bad-mafia-cart-summary .cart-collaterals .cart_totals {
	float: none;
	width: 100%;
	margin: 0;
	padding: 0;
}

.bad-mafia-cart-summary .cart_totals > h2 {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.bad-mafia-cart-summary table.shop_table {
	width: 100%;
	border: 0;
	background: transparent;
}

.bad-mafia-cart-summary .cart_totals th,
.bad-mafia-cart-summary .cart_totals td {
	border-bottom: 1px solid var(--line);
	padding: 13px 0;
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.bad-mafia-cart-summary .cart_totals th {
	text-align: left;
}

.bad-mafia-cart-summary .cart_totals td {
	text-align: right;
}

.bad-mafia-cart-summary .cart_totals .order-total th,
.bad-mafia-cart-summary .cart_totals .order-total td {
	border-bottom: 0;
	padding-top: 18px;
	color: #4f4a45;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 22px;
	font-weight: 400;
	letter-spacing: 0.02em;
}

.woocommerce-cart .bad-mafia-cart-summary .wc-proceed-to-checkout {
	margin: 24px 0 0;
	padding: 0;
}

.woocommerce-cart .bad-mafia-cart-summary .wc-proceed-to-checkout a.checkout-button.button.alt {
	display: flex;
	min-height: 54px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--ink);
	border-radius: 0;
	background: var(--ink) !important;
	color: var(--white) !important;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.woocommerce-cart .bad-mafia-cart-summary .wc-proceed-to-checkout a.checkout-button.button.alt:hover {
	border-color: var(--orange);
	background: var(--orange) !important;
	color: var(--ink) !important;
}

.woocommerce-cart .bad-mafia-cart-summary .wc-proceed-to-checkout a.checkout-button.button.alt:focus-visible {
	outline: 3px solid var(--orange);
	outline-offset: 3px;
}

.woocommerce-cart .bad-mafia-cart-summary .wc-proceed-to-checkout a.checkout-button.button.alt.is-disabled {
	border-color: var(--line);
	background: var(--line) !important;
	color: var(--muted) !important;
	cursor: not-allowed;
	opacity: 1;
}

/* Recovered checkout and account composition. */
.bad-mafia-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(340px, 0.48fr);
	gap: clamp(42px, 7vw, 105px);
}

.bad-mafia-checkout h2 {
	margin-bottom: 30px;
	font-size: clamp(53px, 5vw, 78px);
}

.bad-mafia-checkout .col2-set,
.bad-mafia-checkout .col2-set .col-1,
.bad-mafia-checkout .col2-set .col-2 {
	float: none;
	width: 100%;
}

.bad-mafia-checkout--transaction #customer_details.bad-mafia-address-sequence,
.bad-mafia-checkout--transaction #customer_details {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 22px;
}

.bad-mafia-checkout--transaction #customer_details > .col-1,
.bad-mafia-checkout--transaction #customer_details > .col-2 {
	border: 1px solid var(--line);
	background: var(--white);
	padding: clamp(20px, 3vw, 32px);
}

.bad-mafia-checkout__review {
	align-self: start;
	border: 1px solid var(--line);
	background: var(--paper-2);
	padding: clamp(22px, 3vw, 36px);
}

.bad-mafia-checkout__review table.shop_table {
	border: 0;
	background: transparent;
}

/*
 * A checkout review can be rendered before WooCommerce has received the
 * delivery fields. Keep cached/default rates, totals and payment controls out
 * of that state; native checkout AJAX reveals them once a real shipping method
 * is returned for the entered address.
 */
.bad-mafia-checkout__review-pending {
	display: none;
	margin: 0 0 20px;
	color: var(--muted);
	font-size: 12px;
	line-height: 1.6;
}

.bad-mafia-checkout--transaction:has(.bad-mafia-delivery-address .validate-required :invalid) .bad-mafia-checkout__review-pending,
.bad-mafia-checkout--transaction[data-delivery-needs-shipping="1"] .bad-mafia-checkout__review:has(#order_review:not(:has(.woocommerce-shipping-totals.shipping #shipping_method input))) .bad-mafia-checkout__review-pending {
	display: block;
}

.bad-mafia-checkout--transaction:has(.bad-mafia-delivery-address .validate-required :invalid) #order_review .woocommerce-checkout-review-order-table .shipping,
.bad-mafia-checkout--transaction:has(.bad-mafia-delivery-address .validate-required :invalid) #order_review .woocommerce-checkout-review-order-table .order-total,
.bad-mafia-checkout--transaction:has(.bad-mafia-delivery-address .validate-required :invalid) #order_review .woocommerce-checkout-payment,
.bad-mafia-checkout--transaction[data-delivery-needs-shipping="1"] #order_review:not(:has(.woocommerce-shipping-totals.shipping #shipping_method input)) .woocommerce-checkout-review-order-table .order-total,
.bad-mafia-checkout--transaction[data-delivery-needs-shipping="1"] #order_review:not(:has(.woocommerce-shipping-totals.shipping #shipping_method input)) .woocommerce-checkout-payment {
	display: none;
}

.bad-mafia-checkout-review-order-table--pending td,
.bad-mafia-checkout-payment--pending p {
	color: var(--muted);
	font-size: 12px;
	line-height: 1.6;
}

.bad-mafia-checkout-payment--pending p {
	margin: 0;
}

.checkout-local-test-notice {
	margin-bottom: 30px;
	border-left: 5px solid var(--orange);
	background: #fff4e9;
	padding: 16px 20px;
	font-size: 12px;
	line-height: 1.6;
}

.checkout-local-test-notice strong {
	display: block;
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.bad-mafia-checkout--transaction .woocommerce-billing-fields > h3,
.bad-mafia-checkout--transaction .woocommerce-shipping-fields h3,
.bad-mafia-checkout--transaction .woocommerce-additional-fields > h3 {
	margin: 28px 0 16px;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 30px;
	font-weight: 400;
	text-transform: uppercase;
}

.bad-mafia-checkout--transaction .bad-mafia-address-help {
	max-width: 680px;
	margin: -4px 0 22px;
	color: var(--muted);
	font-size: 12px;
	line-height: 1.6;
}

.bad-mafia-checkout--transaction .bad-mafia-billing-same {
	margin: 22px 0 8px;
	padding: 13px 15px;
	border: 1px solid var(--line);
	background: var(--paper-2);
}

.bad-mafia-checkout--transaction .bad-mafia-billing-same label {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	margin: 0;
	font-size: 12px;
	font-weight: 800;
	line-height: 1.45;
}

.bad-mafia-checkout--transaction .bad-mafia-billing-same input {
	flex: 0 0 auto;
	margin-top: 2px;
	accent-color: var(--orange);
}

.bad-mafia-checkout--transaction .bad-mafia-billing-fields__same-note {
	margin: 0 0 18px;
	color: var(--muted);
	font-size: 11px;
	line-height: 1.5;
}

.bad-mafia-checkout--transaction .bad-mafia-delivery-phone {
	margin-top: 20px;
	border-top: 1px solid var(--line);
	padding-top: 20px;
}

.bad-mafia-payment-cancelled {
	margin: 26px 0;
	border: 1px solid #d99b94;
	border-top: 3px solid #b52b25;
	background: #fff5f3;
	padding: clamp(20px, 3vw, 30px);
}

.bad-mafia-payment-cancelled h2 {
	margin: 7px 0 12px;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(34px, 4vw, 52px);
	font-weight: 400;
	text-transform: uppercase;
}

.bad-mafia-payment-cancelled p:last-child {
	max-width: 650px;
	margin: 0;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.65;
}

.bad-mafia-checkout--transaction .bad-mafia-separate-delivery > h3 {
	margin-top: 34px;
	border-top: 1px solid var(--line);
	padding-top: 24px;
}

.bad-mafia-checkout--transaction .bad-mafia-separate-delivery > h3 label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: inherit;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.4;
	text-transform: uppercase;
}

.bad-mafia-checkout--transaction .bad-mafia-separate-delivery > h3 input {
	accent-color: var(--orange);
}

.bad-mafia-checkout--transaction .bad-mafia-separate-delivery > .bad-mafia-address-help {
	margin-top: 0;
}

.bad-mafia-checkout--transaction .form-row {
	margin-bottom: 14px;
}

.bad-mafia-checkout--transaction .bad-mafia-checkout__review h2 {
	margin-bottom: 18px;
	font-size: clamp(42px, 4vw, 58px);
}

.bad-mafia-checkout--transaction #payment {
	margin-top: 20px;
	padding: 20px;
}

.bad-mafia-checkout--transaction .place-order .button.alt {
	width: 100%;
	background: var(--orange);
	color: var(--ink);
}

.checkout-preview-lead {
	max-width: 680px;
	font-size: clamp(20px, 2.2vw, 31px);
	line-height: 1.25;
}

.checkout-preview-steps {
	display: grid;
	gap: 1px;
	margin: 40px 0;
	background: var(--line);
}

.checkout-preview-steps p {
	display: grid;
	grid-template-columns: 54px 1fr;
	gap: 18px;
	align-items: center;
	margin: 0;
	background: var(--paper);
	padding: 20px 0;
}

.checkout-preview-steps b {
	color: var(--orange);
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 28px;
	font-weight: 400;
}

.checkout-preview-disclaimer {
	border-left: 5px solid var(--orange);
	background: var(--paper-2);
	padding: 18px 22px;
}

.checkout-preview-disclaimer strong {
	display: block;
	margin-bottom: 4px;
	text-transform: uppercase;
}

.checkout-preview-table td,
.checkout-preview-table th {
	padding: 16px 4px;
}

.checkout-preview-table td:last-child,
.checkout-preview-table th:last-child {
	text-align: right;
}

.checkout-preview-table .variation {
	margin: 5px 0 0;
	font-size: 12px;
}

.checkout-whatsapp {
	display: flex;
	justify-content: center;
	margin-top: 24px;
	text-align: center;
}

.checkout-edit-cart {
	display: block;
	margin-top: 18px;
	font-size: 12px;
	font-weight: 800;
	text-align: center;
	text-decoration: underline;
	text-transform: uppercase;
}

.bad-mafia-account {
	display: block;
}

.bad-mafia-account__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 28px;
	margin-bottom: clamp(30px, 4vw, 52px);
	border-bottom: 1px solid var(--line);
	padding-bottom: clamp(24px, 3vw, 34px);
}

.bad-mafia-account__header h1 {
	margin: 0;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(58px, 6vw, 94px);
	font-weight: 400;
	line-height: 0.82;
	text-transform: uppercase;
}

.bad-mafia-account__header > p:last-child {
	max-width: 310px;
	margin: 0 0 4px;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.6;
}

.bad-mafia-account__body {
	display: grid;
	grid-template-columns: minmax(190px, 240px) minmax(0, 1fr);
	gap: clamp(28px, 5vw, 74px);
}

.bad-mafia-account__body--overview {
	display: block;
}

.bad-mafia-account .woocommerce-MyAccount-navigation,
.bad-mafia-account .woocommerce-MyAccount-content {
	float: none;
	width: 100%;
}

.bad-mafia-account__navigation {
	align-self: start;
	border-top: 1px solid var(--ink);
	padding-top: 18px;
}

.bad-mafia-account__back {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	gap: 9px;
	color: var(--ink);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	text-decoration: none;
	text-transform: uppercase;
}

.bad-mafia-account__back span {
	color: var(--burnt);
	font-size: 18px;
	line-height: 1;
}

.bad-mafia-account__back:hover,
.bad-mafia-account__back:focus-visible {
	color: var(--burnt);
}

.bad-mafia-account__nav-label {
	margin: 0 0 13px;
	color: var(--burnt);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
	background: var(--ink);
	color: var(--white);
}

.bad-mafia-account__content {
	min-height: 320px;
	border: 1px solid var(--line);
	background: var(--white);
	padding: clamp(22px, 4vw, 46px);
	color: var(--muted);
	font-size: 14px;
	line-height: 1.7;
}

.bad-mafia-account__content h2,
.bad-mafia-account__content h3 {
	color: var(--ink);
	font-family: "Bebas Neue", Impact, sans-serif;
	font-weight: 400;
	text-transform: uppercase;
}

.bad-mafia-account__content > p:first-child {
	margin-top: 0;
}

/* WooCommerce's orders table leaves the action link aligned to the text
 * baseline. Give the single primary action a stable touch target and center
 * it in its cell at desktop and mobile widths. */
.woocommerce-account .woocommerce-orders-table {
	width: 100%;
	border-collapse: collapse;
}

.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account .woocommerce-orders-table td {
	vertical-align: middle;
}

.woocommerce-account .woocommerce-orders-table .woocommerce-orders-table__cell-order-actions {
	text-align: right;
	white-space: nowrap;
}

.woocommerce-account .woocommerce-orders-table .woocommerce-button.view,
.woocommerce-account .woocommerce-orders-table .woocommerce-button.pay {
	display: inline-flex;
	box-sizing: border-box;
	min-width: 84px;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0 18px;
	overflow: visible;
	line-height: 1;
	white-space: nowrap;
	text-align: center;
}

@media (max-width: 767px) {
	.woocommerce-account .woocommerce-orders-table .woocommerce-orders-table__cell-order-actions {
		text-align: left;
	}

	.woocommerce-account .woocommerce-orders-table .woocommerce-button.view,
	.woocommerce-account .woocommerce-orders-table .woocommerce-button.pay {
		width: 100%;
	}
}

/* WooCommerce's bundled responsive stylesheet turns order actions into
 * block-level links and aligns them to the text baseline. The result is the
 * visibly floating VIEW/PAY button seen in the order history row. Keep the
 * action cell vertically centred and the action itself an inline flex target
 * at every breakpoint without changing the native order endpoint or label. */
.woocommerce-account .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions {
	vertical-align: middle;
	text-align: right;
}

.woocommerce-account .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions a,
.woocommerce-account .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions a.button {
	display: inline-flex !important;
	width: auto;
	min-width: 92px;
	min-height: 48px;
	box-sizing: border-box;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	padding: 0 18px;
	line-height: 1;
	text-align: center;
	white-space: nowrap;
}

@media (max-width: 767px) {
	.woocommerce-account .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions {
		display: block;
		text-align: left;
	}

	.woocommerce-account .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions a,
	.woocommerce-account .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions a.button {
		min-width: 0;
		width: min(100%, 12rem);
	}
}

.bad-mafia-account-overview {
	margin: 0;
}

.bad-mafia-account-overview__welcome {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 28px;
	border-bottom: 1px solid var(--line);
	padding-bottom: 24px;
}

.bad-mafia-account-overview__welcome h2 {
	margin: 2px 0 10px;
	color: var(--ink);
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(36px, 4vw, 56px);
	font-weight: 400;
	line-height: 0.9;
	text-transform: uppercase;
}

.bad-mafia-account-overview__welcome p:last-child {
	max-width: 520px;
	margin: 0;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.65;
}

.bad-mafia-account-overview__logout {
	display: inline-flex;
	min-height: 44px;
	flex: 0 0 auto;
	align-items: center;
	gap: 10px;
	border-bottom: 1px solid var(--ink);
	color: var(--ink);
	padding: 7px 0;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.bad-mafia-account-overview__logout:hover,
.bad-mafia-account-overview__logout:focus-visible {
	border-color: var(--orange);
	color: var(--burnt);
}

.bad-mafia-account-overview__actions {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
}

.bad-mafia-account-overview__action {
	position: relative;
	display: flex;
	min-height: 184px;
	flex-direction: column;
	align-items: flex-start;
	border: 1px solid var(--line);
	background: var(--paper);
	padding: 19px;
	color: var(--ink);
	text-decoration: none;
	transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.bad-mafia-account-overview__action:hover,
.bad-mafia-account-overview__action:focus-visible {
	border-color: var(--ink);
	background: var(--paper-2);
	transform: translateY(-2px);
}

.bad-mafia-account-overview__action:focus-visible,
.bad-mafia-account-overview__logout:focus-visible {
	outline: 2px solid var(--orange);
	outline-offset: 3px;
}

.bad-mafia-account-overview__action-label {
	margin-bottom: 27px;
	color: var(--burnt);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.bad-mafia-account-overview__action strong {
	max-width: 185px;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(25px, 2.5vw, 34px);
	font-weight: 400;
	line-height: 0.92;
	text-transform: uppercase;
}

.bad-mafia-account-overview__action-copy {
	max-width: 210px;
	margin-top: 11px;
	color: var(--muted);
	font-size: 11px;
	line-height: 1.5;
}

.bad-mafia-account-overview__arrow {
	position: absolute;
	right: 17px;
	bottom: 16px;
	color: var(--burnt);
	font-size: 18px;
}

.bad-mafia-address-hub,
.bad-mafia-address-editor {
	max-width: 860px;
}

.bad-mafia-address-hub__header,
.bad-mafia-address-editor__header {
	margin-bottom: 28px;
	border-bottom: 1px solid var(--line);
	padding-bottom: 24px;
}

.bad-mafia-address-hub__header h2,
.bad-mafia-address-editor__header h2 {
	margin: 0 0 10px;
	color: var(--ink);
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(36px, 4vw, 56px);
	font-weight: 400;
	line-height: .9;
	text-transform: uppercase;
}

.bad-mafia-address-hub__header p,
.bad-mafia-address-editor__header p {
	max-width: 530px;
	margin: 0;
	color: var(--muted);
	font-size: 13px;
	line-height: 1.65;
}

.bad-mafia-address-editor__header .bad-mafia-account__back {
	margin-bottom: 20px;
}

.bad-mafia-address-hub__list {
	display: grid;
	gap: 10px;
}

.bad-mafia-address-hub__card {
	display: flex;
	min-height: 170px;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	border: 1px solid var(--line);
	background: var(--paper);
	padding: 20px;
}

.bad-mafia-address-hub__label {
	margin: 0 0 18px;
	color: var(--burnt);
	font-size: 9px;
	font-weight: 800;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.bad-mafia-address-hub__card h3 {
	margin: 0 0 13px;
	color: var(--ink);
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 29px;
	font-weight: 400;
	line-height: .92;
	text-transform: uppercase;
}

.bad-mafia-address-hub__card address {
	max-width: 420px;
	color: var(--muted);
	font-size: 13px;
	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: 10px;
	border-bottom: 1px solid var(--ink);
	color: var(--ink);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: .08em;
	text-decoration: none;
	text-transform: uppercase;
}

.bad-mafia-address-hub__action span { color: var(--burnt); font-size: 17px; }
.bad-mafia-address-hub__action:hover,
.bad-mafia-address-hub__action:focus-visible { border-color: var(--burnt); color: var(--burnt); }

.bad-mafia-address-editor__actions { margin: 26px 0 0; }
.bad-mafia-address-editor__actions .button { min-height: 48px; }

/* Keep native Woo blocks on the same visual system if an editor inserts one. */
.wc-block-components-button,
.wc-block-cart__submit-button {
	border-radius: 0;
	background: var(--ink);
	color: var(--white);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	border-radius: 0;
}

@media (width <= 1080px) {
	.category-strip,
	.sample-stitch ul.products,
	.woocommerce ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.footer-main {
		grid-template-columns: 1.4fr 1fr 1fr;
	}

	.footer-main address {
		grid-column: 1 / -1;
	}

	/* A two-column cart becomes cramped before the mobile breakpoint. Keep the
	 * order summary full-width here instead of squeezing titles and totals. */
	.bad-mafia-cart-layout {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.bad-mafia-cart-summary {
		position: static;
	}
}

@media (width <= 820px) {
	.admin-bar .site-header {
		top: 46px;
	}

	.site-header {
		min-height: 60px;
		gap: 10px;
		padding-inline: 16px;
	}

	.mobile-menu {
		display: block;
		width: 28px;
		height: 36px;
		padding: 0;
		font-size: 20px;
	}

	.wordmark {
		font-size: 25px;
	}

	.primary-nav {
		display: none;
	}

	.primary-nav.is-open {
		position: fixed;
		z-index: 29;
		top: 95px;
		right: 0;
		left: 0;
		display: block;
		max-height: calc(100vh - 95px);
		overflow-y: auto;
		border-bottom: 1px solid var(--ink);
		background: var(--paper);
		padding: 8px 17px 18px;
		box-shadow: 0 14px 27px rgb(0 0 0 / 14%);
	}

	.admin-bar .primary-nav.is-open {
		top: 141px;
	}

	.primary-nav.is-open ul {
		display: flex;
		align-items: stretch;
		flex-direction: column;
		gap: 0;
	}

	.primary-nav.is-open li {
		display: block;
	}

	.primary-nav.is-open a {
		display: block;
		border-bottom: 1px solid var(--line);
		padding: 15px 0;
		font-family: "Bebas Neue", Impact, sans-serif;
		font-size: 25px;
		letter-spacing: 0.04em;
	}

	.primary-nav.is-open a::after {
		display: none;
	}

	.primary-nav.is-open .nav-contact__toggle {
		display: block;
		width: 100%;
		border-bottom: 1px solid var(--line);
		padding: 15px 0;
		font-family: "Bebas Neue", Impact, sans-serif;
		font-size: 25px;
		letter-spacing: 0.04em;
		text-align: left;
	}

	.primary-nav.is-open .nav-contact__menu {
		position: static;
		min-width: 0;
		border: 0;
		border-bottom: 1px solid var(--line);
		box-shadow: none;
		padding: 0 0 6px 14px;
	}

	.primary-nav.is-open .nav-contact__menu a {
		min-height: 42px;
		padding: 11px 0;
		font-family: Inter, sans-serif;
		font-size: 11px;
		letter-spacing: 0.05em;
	}

	.header-actions {
		gap: 5px;
	}

	.desktop-only {
		display: none;
	}

	.header-search {
		right: 16px;
	}

	.heritage-hero {
		display: flex;
		height: auto;
		min-height: 0;
		flex-direction: column;
		background: #111313;
	}

	.heritage-hero > img {
		width: 100%;
		height: auto;
		min-height: 0;
		aspect-ratio: 2.18 / 1;
		object-fit: cover;
		object-position: center;
	}

	.heritage-hero-shade {
		top: 0;
		bottom: auto;
		height: calc(100% - 424px);
		background: linear-gradient(0deg, rgb(0 0 0 / 32%), transparent 65%);
	}

	.heritage-copy {
		position: relative;
		top: auto;
		left: auto;
		width: auto;
		padding: 38px 20px 46px;
		transform: none;
	}

	.heritage-copy h1 {
		font-size: clamp(60px, 16.2vw, 78px);
	}

	.heritage-copy > p:not(.orange-label) {
		margin-top: 18px;
		font-size: 13px;
	}

	.hero-actions {
		align-items: stretch;
		flex-direction: column;
		margin-top: 27px;
	}

	.hero-actions .action {
		width: 100%;
	}

	.heritage-side-note {
		display: none;
	}

	.shop-by-section {
		padding: 72px 17px 75px;
	}

	.section-intro {
		align-items: flex-start;
		flex-direction: column;
		gap: 20px;
	}

	.section-intro h2 {
		font-size: clamp(62px, 16vw, 80px);
	}

	.section-intro > p {
		font-size: 13px;
	}

	.category-strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.category-tile {
		min-height: 260px;
		padding: 12px;
	}

	.category-tile strong {
		font-size: 25px;
	}

	.sample-stitch {
		padding: 75px 17px;
	}

	.drops-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 22px;
	}

	.drops-heading .action {
		width: 100%;
	}

	.sample-stitch ul.products,
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		min-height: 48px;
		padding: 11px 9px 4px;
		font-size: 21px;
	}

	.woocommerce ul.products li.product .price {
		padding: 4px 9px 11px;
		font-size: 12px;
	}

	.woocommerce ul.products li.product .button {
		margin: 0 9px 9px;
		padding: 0 7px;
	}

	.product-verification--compact {
		top: 6px;
		left: 6px;
		gap: 3px;
		max-width: calc(100% - 12px);
	}

	.verification-badge {
		min-height: 19px;
		padding: 3px 5px;
		font-size: 6px;
	}

	.store-proof {
		grid-template-columns: 1fr;
		gap: 36px;
		padding: 75px 17px;
	}

	.store-proof figure {
		box-shadow: 6px 6px 0 var(--orange);
	}

	.store-proof-inset {
		top: -18px;
		right: 4px;
		width: 20%;
		border-width: 3px;
	}

	.store-proof h2,
	.stitch-visit-card h2 {
		font-size: clamp(56px, 16vw, 78px);
	}

	.stitch-visit {
		grid-template-columns: 1fr;
		gap: 30px;
		padding: 75px 17px;
	}

	.stitch-visit-card {
		padding: 24px;
	}

	.map-art {
		min-height: 320px;
	}

	.content-page,
	.commerce-page {
		padding: 42px 16px 75px;
	}

	.entry-header h1,
	.woocommerce-products-header h1,
	.error-page h1 {
		font-size: 40px;
	}

	.search-results-grid {
		grid-template-columns: 1fr;
	}

	.woocommerce .woocommerce-result-count,
	.woocommerce .woocommerce-ordering {
		float: none;
	}

	.woocommerce div.product div.images,
	.woocommerce div.product div.summary {
		float: none;
		width: 100%;
	}

	.woocommerce div.product .product_title {
		font-size: clamp(52px, 14vw, 72px);
	}

	.woocommerce div.product .related.products > h2,
	.woocommerce div.product .upsells.products > h2 {
		font-size: 51px;
	}

	.footer-main {
		grid-template-columns: 1fr 1fr;
		gap: 34px;
		padding-bottom: 43px;
	}

	.footer-brand {
		grid-column: 1 / -1;
	}

	.footer-wordmark {
		font-size: 48px;
	}

	.footer-main address {
		grid-column: 1 / -1;
	}

	.footer-bottom {
		align-items: flex-start;
		flex-direction: column;
		font-size: 8px;
	}
}

@media (width <= 820px) {
	.catalog-layout {
		display: block;
		margin-top: 28px;
	}

	.catalog-filter {
		display: flex;
		overflow-x: auto;
		gap: 8px;
		margin-bottom: 18px;
		border: 0;
		padding-bottom: 6px;
	}

	.catalog-filter .filter-title,
	.catalog-filter .filter-disclaimer {
		display: none;
	}

	.filter-choice {
		width: auto;
		flex: 0 0 auto;
		border: 1px solid var(--line);
		padding: 10px;
	}

	.filter-choice i {
		display: none;
	}

	.filter-choice.selected {
		border-color: var(--ink);
		background: var(--ink);
		color: var(--white);
	}

	.catalog-tools {
		align-items: stretch;
		flex-direction: column;
	}

	.catalog-tools .woocommerce-product-search {
		width: 100%;
	}

	.catalog-tools > div {
		justify-content: space-between;
	}

	.bad-mafia-product-card__copy {
		padding-inline: 9px;
	}

	.bad-mafia-product-card__category {
		margin-top: 9px;
		font-size: 7px;
	}

	.bad-mafia-product-card__price {
		padding-bottom: 9px;
		font-size: 12px;
	}

	.detail-nav {
		margin-bottom: 15px;
	}

	.detail-nav > span {
		display: none;
	}

	.detail-layout {
		display: flex;
		flex-direction: column;
		gap: 0;
	}

	.detail-gallery {
		margin-inline: -16px;
	}

	.detail-gallery .woocommerce-product-gallery {
		display: block;
	}

	.detail-gallery .flex-control-thumbs {
		display: none;
	}

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

	.detail-copy .product_title {
		font-size: clamp(51px, 14vw, 72px);
	}

	.detail-copy .variations tr {
		padding: 16px 0;
	}

	.detail-copy .woocommerce-variation-add-to-cart {
		margin-top: 14px;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.detail-copy .woocommerce-variation-add-to-cart .quantity {
		grid-column: 1 / -1;
	}

	.bad-mafia-product-facts ul {
		grid-template-columns: 1fr;
	}

	.detail-copy form.cart .single_add_to_cart_button {
		flex: 1 1 150px;
	}

	.detail-after-summary {
		margin-top: 70px;
	}

	.detail-after-summary .woocommerce-tabs ul.tabs {
		gap: 14px;
		overflow-x: auto;
	}

	.bad-mafia-cart-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 14px;
	}

	.bad-mafia-cart-layout {
		display: block;
	}

	.bad-mafia-cart-line {
		grid-template-columns: 120px minmax(0, 1fr);
		gap: 16px;
		border-width: 0 0 1px;
		background: transparent;
		padding: 20px 0;
	}

	.bad-mafia-cart-line__image img {
		width: 120px;
	}

	.bad-mafia-cart-line h3 {
		font-size: 25px;
	}

	.bad-mafia-cart-line__bottom {
		align-items: center;
		flex-flow: row wrap;
		gap: 12px;
		margin-top: 16px;
	}

	.bad-mafia-cart-line__bottom strong {
		position: static;
		margin-left: auto;
		align-self: center;
		font-size: 20px;
	}

	.bad-mafia-cart-line__variations {
		margin-top: 8px;
	}

	.bad-mafia-cart-line__variations .variation {
		gap: 3px 8px;
	}

	.bad-mafia-cart-line .quantity[data-enhanced='true'],
	.bad-mafia-cart-line .quantity[data-enhanced='true'] .qty,
	.bad-mafia-cart-line .bad-mafia-quantity-button {
		min-height: 44px;
	}

	.bad-mafia-cart-actions {
		align-items: stretch;
		flex-direction: column;
	}

	.bad-mafia-cart-actions .coupon {
		display: grid;
		grid-template-columns: 1fr auto;
	}

	.bad-mafia-cart-summary {
		position: static;
		margin-top: 30px;
		padding: 22px;
	}

	.woocommerce-cart .bad-mafia-cart-summary .wc-proceed-to-checkout a.checkout-button.button.alt {
		width: 100%;
		min-height: 56px;
	}

	.woocommerce-cart .return-to-shop .button.wc-backward {
		width: 100%;
		min-height: 52px;
	}

	.bad-mafia-checkout,
	.bad-mafia-account,
	.bad-mafia-auth {
		display: block;
	}

	.bad-mafia-account__header {
		align-items: flex-start;
		flex-direction: column;
		gap: 14px;
		margin-bottom: 28px;
	}

	.bad-mafia-account__header h1 {
		font-size: clamp(58px, 16vw, 78px);
	}

	.bad-mafia-account__header > p:last-child {
		max-width: 420px;
		margin: 0;
	}

	.bad-mafia-account__body {
		display: block;
	}

	.bad-mafia-account__body--overview .bad-mafia-account__content {
		margin-top: 0;
	}

	.bad-mafia-auth__panel + .bad-mafia-auth__panel {
		margin-top: 24px;
	}

	.bad-mafia-checkout__review,
	.bad-mafia-account__content {
		margin-top: 24px;
	}

	.bad-mafia-account-overview__welcome {
		gap: 16px;
		flex-direction: column;
	}

	.bad-mafia-account-overview__welcome h2 {
		font-size: clamp(36px, 11vw, 52px);
	}

	.bad-mafia-account-overview__logout {
		align-self: flex-start;
	}

	.bad-mafia-account-overview__actions {
		grid-template-columns: 1fr;
	}

	.bad-mafia-account-overview__action {
		min-height: 145px;
	}

	.bad-mafia-account__navigation {
		border: 0;
		padding-top: 0;
	}

	.bad-mafia-account__back {
		margin-bottom: 18px;
	}

	.bad-mafia-address-hub__header,
	.bad-mafia-address-editor__header {
		margin-bottom: 20px;
		padding-bottom: 18px;
	}

	.bad-mafia-address-hub__card {
		min-height: 0;
		flex-direction: column;
		gap: 18px;
		padding: 17px;
	}

	.bad-mafia-address-hub__label { margin-bottom: 13px; }
	.bad-mafia-address-hub__action { width: 100%; justify-content: space-between; }
}

@media (width <= 390px) {
	.demo-notice {
		font-size: 8px;
	}

	.wordmark {
		font-size: 22px;
	}

	.header-search-toggle {
		font-size: 21px;
	}

	.category-tile {
		min-height: 230px;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		font-size: 20px;
	}

	.footer-main {
		grid-template-columns: 1fr;
	}

	.footer-brand,
	.footer-main address {
		grid-column: auto;
	}
}

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

/* Verified customer access and checkout contact gate. */
.bad-mafia-auth__tabs {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0 0 24px;
	border-bottom: 1px solid var(--line);
}

.bad-mafia-auth__tabs button {
	min-height: 48px;
	border: 0;
	border-bottom: 3px solid transparent;
	background: transparent;
	color: var(--muted);
	font: inherit;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
}

.bad-mafia-auth__tabs button[aria-selected='true'] {
	border-bottom-color: var(--orange);
	color: var(--ink);
}

.bad-mafia-auth__tabs button:disabled {
	color: var(--muted);
	cursor: not-allowed;
	opacity: 0.55;
}

.bad-mafia-auth__tabs button:focus-visible {
	outline: 2px solid var(--burnt);
	outline-offset: 2px;
}

.bad-mafia-auth__tab-panel[hidden],
.runlo-mobile-auth [hidden] {
	display: none;
}

.runlo-mobile-auth {
	margin: 0 0 28px;
	border: 1px solid var(--line);
	border-top: 3px solid var(--orange);
	background: var(--white);
	padding: clamp(20px, 3vw, 30px);
}

.bad-mafia-auth__tab-panel .runlo-mobile-auth {
	margin-bottom: 0;
	border-right: 0;
	border-bottom: 0;
	border-left: 0;
	padding-right: 0;
	padding-bottom: 0;
	padding-left: 0;
}

.runlo-mobile-auth__heading,
.bad-mafia-recipient__heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
}

.runlo-mobile-auth__heading h3,
.bad-mafia-recipient h3 {
	margin: 3px 0 0;
	color: var(--ink);
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: clamp(30px, 3vw, 42px);
	font-weight: 400;
	line-height: 1;
	text-transform: uppercase;
}

.runlo-mobile-auth__badge,
.bad-mafia-recipient__heading > span {
	flex: 0 0 auto;
	border: 1px solid var(--line);
	padding: 6px 8px;
	color: var(--muted);
	font-size: 8px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.runlo-mobile-auth__badge[data-tone='success'] {
	border-color: #8ab49a;
	background: #eff8f1;
	color: #175b34;
}

.runlo-mobile-auth__badge[data-tone='attention'] {
	border-color: #efad72;
	background: #fff4e9;
	color: #7c2f0d;
}

.runlo-mobile-auth__badge[data-tone='error'] {
	border-color: #d99b94;
	background: #fff1ef;
	color: #8e2118;
}

.runlo-mobile-auth__purpose,
.bad-mafia-recipient > p {
	max-width: 690px;
	margin: 14px 0 20px;
	color: var(--muted);
	font-size: 12px;
	line-height: 1.65;
}

.runlo-mobile-auth__verified {
	display: flex;
	align-items: center;
	gap: 14px;
	border: 1px solid #a6c6b1;
	background: #f3faf5;
	padding: 15px 17px;
}

.runlo-mobile-auth__verified > span {
	display: grid;
	width: 34px;
	height: 34px;
	flex: 0 0 34px;
	place-items: center;
	border-radius: 50%;
	background: #175b34;
	color: var(--white);
	font-weight: 900;
}

.runlo-mobile-auth__verified p {
	display: grid;
	gap: 2px;
	margin: 0;
}

.runlo-mobile-auth__verified strong {
	font-size: 11px;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.runlo-mobile-auth__verified p span {
	color: var(--muted);
	font-size: 12px;
}

.runlo-mobile-auth__verified button {
	min-height: 44px;
	margin-left: auto;
	border: 0;
	background: transparent;
	color: var(--burnt);
	font: inherit;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	cursor: pointer;
}

.runlo-mobile-auth__verified button:focus-visible {
	outline: 2px solid var(--burnt);
	outline-offset: 2px;
}

.runlo-mobile-auth__form label {
	display: block;
	margin-bottom: 7px;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.runlo-mobile-auth__field-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
}

.runlo-mobile-auth__field-row input {
	width: 100%;
	min-height: 48px;
	border: 1px solid var(--line);
	border-radius: 0;
	background: var(--white);
	padding: 0 13px;
	font: inherit;
}

.runlo-mobile-auth__field-row button,
.runlo-mobile-auth__change,
.runlo-mobile-auth__resend {
	min-height: 48px;
	border: 1px solid var(--ink);
	border-radius: 0;
	background: var(--ink);
	color: var(--white);
	padding: 0 18px;
	font: inherit;
	font-size: 9px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
}

.runlo-mobile-auth__field-row button:disabled {
	cursor: wait;
	opacity: 0.55;
}

.runlo-mobile-auth__field-row input:focus,
.runlo-mobile-auth__field-row button:focus-visible,
.runlo-mobile-auth__change:focus-visible,
.runlo-mobile-auth__resend:focus-visible {
	outline: 2px solid var(--burnt);
	outline-offset: 2px;
}

.runlo-mobile-auth__secondary-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin-top: 7px;
}

.runlo-mobile-auth__change,
.runlo-mobile-auth__resend {
	min-height: 44px;
	border-color: transparent;
	background: transparent;
	color: var(--burnt);
	padding: 0;
}

.runlo-mobile-auth__resend:disabled {
	cursor: not-allowed;
	color: var(--muted);
	opacity: .78;
}

.runlo-mobile-auth__status {
	margin: 12px 0 0;
	color: var(--muted);
	font-size: 11px;
	line-height: 1.55;
}

.runlo-mobile-auth__status[data-tone='error'] {
	color: #8e2118;
}

.runlo-mobile-auth__status[data-tone='success'] {
	color: #175b34;
}

.bad-mafia-checkout-shell > .runlo-mobile-auth {
	margin-bottom: 30px;
}

.bad-mafia-checkout-gate-layout {
	display: grid;
	max-width: 1160px;
	grid-template-columns: minmax(0, 1.15fr) minmax(330px, 0.85fr);
	gap: clamp(22px, 4vw, 52px);
	align-items: start;
	margin: 20px auto;
}

.bad-mafia-checkout-gate {
	border-top: 4px solid var(--orange);
	background: var(--white);
	padding: clamp(28px, 6vw, 64px);
}

.bad-mafia-checkout-gate h2 {
	margin: 6px 0 16px;
	font-size: clamp(52px, 7vw, 86px);
}

.bad-mafia-checkout-gate > p:not(.section-kicker) {
	max-width: 610px;
	margin-bottom: 28px;
	color: var(--muted);
	font-size: 15px;
	line-height: 1.65;
}

.bad-mafia-checkout-gate .action {
	display: inline-flex;
	min-height: 48px;
	align-items: center;
}

.bad-mafia-checkout-gate__bag {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	margin-left: 18px;
	color: var(--ink);
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.bad-mafia-checkout-gate__summary {
	border: 1px solid var(--line);
	background: var(--paper-2);
	padding: clamp(22px, 3vw, 34px);
}

.bad-mafia-checkout-gate__summary h2 {
	margin: 4px 0 20px;
	font-size: clamp(38px, 4vw, 54px);
}

.bad-mafia-checkout-gate__summary ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bad-mafia-checkout-gate__summary li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 18px;
	align-items: start;
	border-top: 1px solid var(--line);
	padding: 18px 0;
}

.bad-mafia-checkout-gate__summary li strong {
	display: block;
	font-size: 13px;
	line-height: 1.4;
}

.bad-mafia-checkout-gate__summary li b {
	min-width: 76px;
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 22px;
	font-weight: 400;
	text-align: right;
	white-space: nowrap;
}

.bad-mafia-checkout-gate__summary li .woocommerce-Price-amount {
	white-space: nowrap;
}

.bad-mafia-checkout-gate__summary li b .woocommerce-Price-amount,
.bad-mafia-checkout-gate__summary li b .woocommerce-Price-currencySymbol {
	display: inline;
	margin: 0;
	color: inherit;
	font: inherit;
	line-height: inherit;
}

.bad-mafia-checkout-gate__summary li span,
.bad-mafia-checkout-gate__summary .variation {
	display: block;
	margin: 5px 0 0;
	color: var(--muted);
	font-size: 10px;
	line-height: 1.5;
}

.bad-mafia-checkout-gate__summary .variation dt,
.bad-mafia-checkout-gate__summary .variation dd,
.bad-mafia-checkout-gate__summary .variation p {
	display: inline;
	float: none;
	margin: 0;
}

.bad-mafia-checkout-gate__summary .variation dd::after {
	content: ' · ';
}

.bad-mafia-checkout-gate__subtotal {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	border-top: 2px solid var(--ink);
	padding-top: 17px;
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.bad-mafia-checkout-gate__subtotal strong {
	font-family: "Bebas Neue", Impact, sans-serif;
	font-size: 29px;
	font-weight: 400;
	letter-spacing: 0;
}

.bad-mafia-checkout-gate__summary-note {
	margin: 18px 0 0;
	color: var(--muted);
	font-size: 10px;
	line-height: 1.55;
}

.bad-mafia-recipient {
	margin-top: 32px;
	border-top: 1px solid var(--ink);
	padding-top: 24px;
}

.bad-mafia-recipient__fields::after {
	display: table;
	clear: both;
	content: '';
}

.bad-mafia-checkout-shell[data-mobile-gate-state='blocked'] [id='place_order'],
.bad-mafia-checkout-shell[data-mobile-gate-state='pending'] [id='place_order'],
.bad-mafia-checkout-shell[data-mobile-gate-state='blocked'] .checkout-whatsapp,
.bad-mafia-checkout-shell[data-mobile-gate-state='pending'] .checkout-whatsapp {
	cursor: not-allowed;
	opacity: 0.45;
}

@media (width <= 620px) {
	.bad-mafia-auth__tabs,
	.runlo-mobile-auth__field-row {
		grid-template-columns: 1fr;
	}

	.bad-mafia-auth__tabs {
		border: 1px solid var(--line);
	}

	.bad-mafia-auth__tabs button {
		border-bottom-width: 1px;
	}

	.bad-mafia-auth__tabs button[aria-selected='true'] {
		background: var(--ink);
		color: var(--white);
	}

	.runlo-mobile-auth__heading {
		align-items: flex-start;
		flex-direction: column;
	}

	.runlo-mobile-auth__verified {
		align-items: flex-start;
		flex-wrap: wrap;
	}

	.runlo-mobile-auth__verified button {
		width: 100%;
		margin-left: 0;
		text-align: left;
	}

	.runlo-mobile-auth__secondary-actions {
		display: grid;
		grid-template-columns: 1fr;
		gap: 0;
	}

	.runlo-mobile-auth__secondary-actions .runlo-mobile-auth__change,
	.runlo-mobile-auth__secondary-actions .runlo-mobile-auth__resend {
		width: 100%;
		text-align: left;
	}

	.runlo-mobile-auth__field-row button {
		width: 100%;
	}

	.bad-mafia-checkout-gate .action,
	.bad-mafia-checkout-gate__bag {
		display: flex;
		width: 100%;
		justify-content: center;
		margin: 0;
	}

	.bad-mafia-checkout-gate__bag {
		margin-top: 10px;
	}
}

@media (width <= 900px) {
	.bad-mafia-checkout-gate-layout {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	.marquee > div {
		animation-duration: 0.01ms;
		animation-iteration-count: 1;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms;
		animation-iteration-count: 1;
		scroll-behavior: auto;
		transition-duration: 0.01ms;
	}
}

/* Product purchase controls: keep price hierarchy quiet and make the
 * WooCommerce quantity/add-to-cart row read as one intentional control. */
.woocommerce div.product .detail-copy p.price,
.woocommerce div.product .detail-copy span.price {
	margin: 1rem 0 1.2rem !important;
	color: #77736d !important;
	font-family: var(--body), Arial, sans-serif !important;
	font-size: clamp(1rem, 1.8vw, 1.4rem) !important;
	font-weight: 600 !important;
	letter-spacing: .01em;
	line-height: 1.1;
}

.detail-copy .woocommerce-variation-add-to-cart .quantity,
.detail-copy form.cart:not(.variations_form) .quantity {
	width: 132px;
	min-width: 132px;
	height: 48px;
	min-height: 48px;
	justify-self: start;
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--line);
}

.detail-copy .quantity[data-enhanced='true'] .bad-mafia-quantity-button {
	width: 44px;
	min-width: 44px;
	height: 46px;
	min-height: 46px;
	padding: 0;
	flex: 0 0 44px;
	border: 0;
	background: transparent;
	color: var(--ink);
	text-align: center;
}

.detail-copy .woocommerce-variation-add-to-cart .single_add_to_cart_button,
.detail-copy .woocommerce-variation-add-to-cart .bad-mafia-buy-now-button {
	min-width: 0;
	width: 100%;
}

/* The enhanced control already supplies its own minus/plus buttons. Suppress
 * Chrome/WebKit's second native number spinner without removing keyboard
 * entry or the semantic numeric input. */
.detail-copy .quantity[data-enhanced='true'] .qty::-webkit-outer-spin-button,
.detail-copy .quantity[data-enhanced='true'] .qty::-webkit-inner-spin-button,
.bad-mafia-cart-line .quantity[data-enhanced='true'] .qty::-webkit-outer-spin-button,
.bad-mafia-cart-line .quantity[data-enhanced='true'] .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.detail-copy .quantity[data-enhanced='true'] .qty,
.bad-mafia-cart-line .quantity[data-enhanced='true'] .qty {
	-moz-appearance: textfield;
}

@media (min-width: 821px) {
	/* Desktop keeps quantity and the two actions on one optical baseline. */
	.detail-copy .woocommerce-variation-add-to-cart {
		grid-template-columns: 132px minmax(0, 1fr) minmax(0, 1fr);
	}

	.detail-copy .woocommerce-variation-add-to-cart .quantity {
		grid-column: auto;
	}
}

.bad-mafia-complete-look__heading .arrow-link {
	width: auto;
	min-width: 96px;
	height: 44px;
	padding: 0 0 .2rem;
	justify-content: flex-end;
	gap: .55rem;
	border: 0;
	border-bottom: 1px solid var(--ink);
	font-size: .58rem;
	font-weight: 900;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.bad-mafia-complete-look__heading .arrow-link b { color: var(--red); }

.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: #77736d;
	font-size: .7rem;
	font-weight: 600;
}

@media (width <= 760px) {
	.detail-copy .woocommerce-variation-add-to-cart,
	.detail-copy form.cart:not(.variations_form) {
		gap: 8px;
	}

	.detail-copy .woocommerce-variation-add-to-cart .quantity,
	.detail-copy form.cart:not(.variations_form) .quantity {
		grid-column: 1 / -1;
		justify-self: start;
	}

	.bad-mafia-complete-look__heading {
		align-items: end;
		gap: .8rem;
	}
	.bad-mafia-complete-look__heading h2 { font-size: clamp(2.65rem, 12.5vw, 3.8rem); }
	.bad-mafia-complete-look__heading .arrow-link { min-width: 88px; }
}

/* Purchase reassurance stays close to the decision point without becoming a
 * promotional banner. Rows are data-backed and disappear when their policy
 * source is not configured. */
.bad-mafia-purchase-trust {
	margin: 18px 0 0;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	background: color-mix(in srgb, var(--paper-2) 72%, transparent);
}

.bad-mafia-purchase-trust__list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

.bad-mafia-purchase-trust__list li {
	min-width: 0;
	border-right: 1px solid var(--line);
}

.bad-mafia-purchase-trust__list li:nth-child(3n) { border-right: 0; }

/* Four compact items still fit one row on a wide PDP; the smaller breakpoint
 * lets them breathe instead of forcing an orphaned fourth tile below. */
.bad-mafia-purchase-trust--count-4 .bad-mafia-purchase-trust__list {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.bad-mafia-purchase-trust--count-4 .bad-mafia-purchase-trust__list li:nth-child(3n) { border-right: 1px solid var(--line); }
.bad-mafia-purchase-trust--count-4 .bad-mafia-purchase-trust__list li:nth-child(4n) { border-right: 0; }

.bad-mafia-purchase-trust__item {
	display: flex;
	min-height: 68px;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	color: var(--ink);
	text-decoration: none;
	transition: background-color .18s ease;
}

a.bad-mafia-purchase-trust__item:hover,
a.bad-mafia-purchase-trust__item:focus-visible { background: var(--white); }

.bad-mafia-purchase-trust__icon {
	display: inline-grid;
	flex: 0 0 28px;
	width: 28px;
	height: 28px;
	place-items: center;
	border: 1px solid var(--orange);
	border-radius: 50%;
	color: var(--orange);
}

.bad-mafia-purchase-trust__icon svg {
	width: 16px;
	height: 16px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.5;
}

.bad-mafia-purchase-trust__copy {
	display: grid;
	min-width: 0;
	gap: 3px;
}

.bad-mafia-purchase-trust__copy strong {
	font-size: 10px;
	font-weight: 900;
	letter-spacing: .07em;
	line-height: 1.25;
	text-transform: uppercase;
}

.bad-mafia-purchase-trust__copy small {
	color: var(--muted);
	font-size: 11px;
	line-height: 1.4;
}

.bad-mafia-delivery-note--cart ul {
	display: grid;
	gap: 4px;
	margin: 4px 0 0;
	padding: 0;
	list-style: none;
}

.bad-mafia-delivery-note--cart li {
	color: var(--muted);
	font-size: 12px;
	line-height: 1.5;
}

@media (width <= 600px) {
	.bad-mafia-purchase-trust__list { grid-template-columns: 1fr; }
	.bad-mafia-purchase-trust__list li,
	.bad-mafia-purchase-trust__list li:nth-child(3n) { border-right: 0; border-bottom: 1px solid var(--line); }
	.bad-mafia-purchase-trust--count-4 .bad-mafia-purchase-trust__list { grid-template-columns: 1fr; }
	.bad-mafia-purchase-trust--count-4 .bad-mafia-purchase-trust__list li:nth-child(3n) { border-right: 0; }
	.bad-mafia-purchase-trust__list li:last-child { border-bottom: 0; }
	.bad-mafia-purchase-trust__item { min-height: 62px; padding: 11px 12px; }
}
