/*
Theme Name: RaptClub
Theme URI: https://example.com/raptclub
Author: Codex
Author URI: https://openai.com/
Description: A premium Swiss modernist WooCommerce theme for RaptClub, a contemporary latex menswear and design brand.
Version: 1.9.25
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: raptclub
Tags: e-commerce, portfolio, custom-logo, custom-menu, featured-images, block-styles
*/

/* BDO Grotesk: SIL Open Font License 1.1, source LCTipografi/BDO-Grotesk. */
@font-face {
	font-family: "BDO Grotesk";
	src: url("https://cdn.jsdelivr.net/gh/LCTipografi/BDO-Grotesk@bbabafbd7bbddb106852d4a5e138fffcc1d3d9ef/Fonts/Webfont/BDOGrotesk-Regular.woff2") format("woff2");
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	ascent-override: 88%;
	descent-override: 22%;
	line-gap-override: 0%;
}

@font-face {
	font-family: "BDO Grotesk";
	src: url("https://cdn.jsdelivr.net/gh/LCTipografi/BDO-Grotesk@bbabafbd7bbddb106852d4a5e138fffcc1d3d9ef/Fonts/Webfont/BDOGrotesk-DemiBold.woff2") format("woff2");
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	ascent-override: 88%;
	descent-override: 22%;
	line-gap-override: 0%;
}

@font-face {
	font-family: "BDO Grotesk";
	src: url("https://cdn.jsdelivr.net/gh/LCTipografi/BDO-Grotesk@bbabafbd7bbddb106852d4a5e138fffcc1d3d9ef/Fonts/Webfont/BDOGrotesk-Bold.woff2") format("woff2");
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	ascent-override: 88%;
	descent-override: 22%;
	line-gap-override: 0%;
}

:root {
	--rc-paper: #f7f7f7;
	--rc-paper-soft: #ececec;
	--rc-ink: #0a0a0a;
	--rc-graphite: #3f3f3f;
	--rc-muted: #6d6d6d;
	--rc-line: #d2d2d2;
	--rc-line-strong: #8b8b8b;
	--rc-inverse: #111111;
	--rc-inverse-text: #f4f4f4;
	--rc-font: "BDO Grotesk", "Neue Haas Grotesk Text", "Helvetica Neue", Arial, sans-serif;
	--rc-frame: 1680px;
	--rc-gutter: clamp(1rem, 2.6vw, 2.75rem);
	--rc-section: clamp(5rem, 10vw, 10rem);
	--rc-header-height: 4.75rem;
	--rc-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--wc-primary: var(--rc-ink);
	--wc-primary-text: var(--rc-paper);
	--wc-secondary: var(--rc-paper-soft);
	--wc-secondary-text: var(--rc-ink);
	--wc-highlight: var(--rc-ink);
	--wc-content-bg: var(--rc-paper);
	--wc-subtext: var(--rc-muted);
	--wp--preset--color--vivid-purple: var(--rc-ink);
	--wp--preset--color--pale-purple: var(--rc-paper-soft);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--rc-header-height);
}

body {
	position: relative;
	min-width: 320px;
	margin: 0;
	background:
		linear-gradient(90deg, rgba(11, 11, 10, 0.035) 1px, transparent 1px) 0 0 / calc(100% / 12) 100%,
		var(--rc-paper);
	color: var(--rc-ink);
	font-family: var(--rc-font);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.45;
	text-rendering: geometricPrecision;
	-webkit-font-smoothing: antialiased;
}

body::after {
	position: fixed;
	inset: 0;
	z-index: -1;
	background-image:
		linear-gradient(rgba(11, 11, 10, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(11, 11, 10, 0.04) 1px, transparent 1px);
	background-size: 4rem 4rem;
	content: "";
	opacity: 0.16;
	pointer-events: none;
}

a {
	color: inherit;
	text-decoration: none;
}

a:hover {
	color: var(--rc-graphite);
}

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

button {
	cursor: pointer;
}

button,
input,
select,
textarea {
	border-radius: 0;
}

button:not(.rc-menu-toggle),
input[type="button"],
input[type="reset"],
input[type="submit"],
.button,
.wp-element-button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.wc-block-components-button,
.wc-block-cart__submit-button {
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 3.2rem;
	padding: 0.92rem 1.15rem;
	border: 1px solid var(--rc-ink);
	border-radius: 0 !important;
	background: var(--rc-ink) !important;
	box-shadow: none !important;
	color: var(--rc-paper) !important;
	font-size: 0.73rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
	transition: background 180ms var(--rc-ease), color 180ms var(--rc-ease), border-color 180ms var(--rc-ease);
}

button:not(.rc-menu-toggle):hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.button:hover,
.wp-element-button:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce #respond input#submit.alt:hover,
.wc-block-components-button:hover,
.wc-block-cart__submit-button:hover {
	border-color: var(--rc-graphite);
	background: var(--rc-graphite) !important;
	color: var(--rc-paper) !important;
}

select {
	appearance: none;
	background-image:
		linear-gradient(45deg, transparent 50%, currentColor 50%),
		linear-gradient(135deg, currentColor 50%, transparent 50%);
	background-position:
		calc(100% - 1.05rem) 50%,
		calc(100% - 0.72rem) 50%;
	background-size: 0.36rem 0.36rem, 0.36rem 0.36rem;
	background-repeat: no-repeat;
}

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

figure {
	margin: 0;
}

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

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus,
.skip-link:focus {
	top: 1rem;
	left: 1rem;
	z-index: 1000;
	display: block;
	width: auto;
	height: auto;
	padding: 0.75rem 1rem;
	clip: auto;
	background: var(--rc-ink);
	color: var(--rc-paper);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	white-space: normal;
}

.rc-frame {
	width: min(calc(100% - clamp(1.25rem, 5vw, 5rem)), var(--rc-frame));
	margin-inline: auto;
}

.rc-page {
	min-height: 70vh;
}

.rc-kicker {
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.73rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
}

.rc-text-link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	min-height: 2.75rem;
	padding: 0.78rem 0;
	border: 0;
	border-bottom: 1px solid currentColor;
	background: transparent;
	color: var(--rc-ink);
	font-size: 0.77rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
	transition: color 180ms var(--rc-ease), border-color 180ms var(--rc-ease);
}

.rc-text-link::after {
	margin-left: 2rem;
	content: "\2192";
	font-size: 0.9rem;
	transition: transform 260ms var(--rc-ease);
}

.rc-text-link:hover::after {
	transform: translateX(0.35rem);
}

.rc-site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	min-height: var(--rc-header-height);
	border-bottom: 1px solid rgba(11, 11, 10, 0.1);
		background: rgba(247, 247, 247, 0.88);
	backdrop-filter: blur(18px);
	transition: border-color 220ms var(--rc-ease), background 220ms var(--rc-ease);
}

.rc-site-header.is-scrolled {
	border-color: rgba(11, 11, 10, 0.2);
	background: rgba(247, 247, 247, 0.95);
}

.rc-site-header__inner {
	display: grid;
	grid-template-columns: minmax(8rem, 1fr) minmax(0, auto) minmax(8rem, 1fr);
	align-items: center;
	min-height: var(--rc-header-height);
	gap: var(--rc-gutter);
}

.rc-wordmark {
	display: inline-grid;
	grid-template-columns: auto auto;
	gap: 0.08em;
	color: var(--rc-ink);
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 0.92;
	text-transform: uppercase;
}

.rc-wordmark span:last-child {
	color: var(--rc-muted);
}

.custom-logo-link img {
	width: auto;
	max-height: 2.2rem;
}

.rc-menu {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: clamp(1rem, 2vw, 2.25rem);
	padding: 0;
	margin: 0;
	list-style: none;
}

.rc-menu a,
.rc-shop-link,
.rc-cart-link {
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
	color: var(--rc-graphite);
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: color 180ms var(--rc-ease);
}

.rc-menu a:hover,
.rc-shop-link:hover,
.rc-cart-link:hover {
	color: var(--rc-ink);
}

.rc-header-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 1rem;
}

.rc-cart-link {
	gap: 0.45rem;
}

.rc-cart-count {
	display: inline-grid;
	place-items: center;
	min-width: 1.35rem;
	height: 1.35rem;
	padding-inline: 0.35rem;
	border: 1px solid var(--rc-line-strong);
	color: var(--rc-ink);
	font-size: 0.68rem;
	line-height: 1;
}

.rc-menu-toggle {
	display: none;
	width: 2.6rem;
	height: 2.6rem;
	padding: 0;
	border: 1px solid var(--rc-line-strong);
	background: transparent;
	color: var(--rc-ink);
}

.rc-menu-toggle span[aria-hidden="true"] {
	display: block;
	width: 1.1rem;
	height: 1px;
	margin: 0.25rem auto;
	background: currentColor;
	transition: transform 220ms var(--rc-ease);
}

.rc-hero {
	position: relative;
	isolation: isolate;
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--rc-gutter);
	min-height: calc(100svh - var(--rc-header-height));
	padding-block: clamp(3rem, 8vw, 8rem) clamp(3rem, 7vw, 7rem);
	border-bottom: 1px solid var(--rc-line);
}

.rc-hero__statement {
	position: relative;
	z-index: 4;
	grid-column: 1 / 9;
	align-self: center;
}

.rc-hero__statement h1 {
	position: relative;
	z-index: 5;
	max-width: 8ch;
	margin: 1.2rem 0 0;
	font-size: 4.5rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 0.84;
	text-transform: uppercase;
}

.rc-hero__statement h1 span {
	display: block;
}

.rc-hero__statement h1 > span:nth-child(2) {
	margin-left: 2.2ch;
	color: transparent;
	-webkit-text-stroke: 1px var(--rc-ink);
}

.rc-hero-title-swap {
	--rc-hero-swap-line: 0.84em;
	--rc-hero-swap-dim: 0.82;
	position: relative;
	z-index: 6;
	height: calc(var(--rc-hero-swap-line) * 3);
}

.rc-hero-title-swap__word {
	position: absolute;
	left: 0;
	display: block;
	line-height: var(--rc-hero-swap-line);
	will-change: transform, opacity;
}

.rc-hero-title-swap__word--rapt {
	top: 0;
	animation:
		rc-hero-title-rapt-motion 6s var(--rc-ease) infinite,
		rc-hero-title-opacity 6s linear infinite;
}

.rc-hero-title-swap__word--when {
	top: var(--rc-hero-swap-line);
	z-index: 2;
}

.rc-hero-title-swap__word--wrapped {
	top: calc(var(--rc-hero-swap-line) * 2);
	animation:
		rc-hero-title-wrapped-motion 6s var(--rc-ease) infinite,
		rc-hero-title-opacity 6s linear infinite;
}

.rc-hero-title-swap__word--rapt,
.rc-hero-title-swap__word--wrapped {
	z-index: 1;
}

.rc-hero-title-swap > .rc-hero-title-swap__word--when {
	color: transparent;
	-webkit-text-stroke: 1px var(--rc-ink);
}

.rc-hero-title-swap > .rc-hero-title-swap__word--rapt,
.rc-hero-title-swap > .rc-hero-title-swap__word--wrapped {
	margin-left: 0;
	color: var(--rc-ink);
	-webkit-text-stroke: 0;
	text-stroke: 0;
}

@keyframes rc-hero-title-rapt-motion {
	0%,
	35% {
		transform: translate3d(0, 0, 0);
	}

	50%,
	85% {
		transform: translate3d(0, calc(var(--rc-hero-swap-line) * 2), 0);
	}

	100% {
		transform: translate3d(0, 0, 0);
	}
}

@keyframes rc-hero-title-wrapped-motion {
	0%,
	35% {
		transform: translate3d(0, 0, 0);
	}

	50%,
	85% {
		transform: translate3d(0, calc(var(--rc-hero-swap-line) * -2), 0);
	}

	100% {
		transform: translate3d(0, 0, 0);
	}
}

@keyframes rc-hero-title-opacity {
	0%,
	35% {
		opacity: 1;
	}

	40% {
		opacity: 0.9;
	}

	44% {
		opacity: var(--rc-hero-swap-dim);
	}

	48% {
		opacity: 0.9;
	}

	50%,
	85% {
		opacity: 1;
	}

	90% {
		opacity: 0.9;
	}

	94% {
		opacity: var(--rc-hero-swap-dim);
	}

	98% {
		opacity: 0.9;
	}

	100% {
		opacity: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.rc-hero-title-swap__word--rapt,
	.rc-hero-title-swap__word--wrapped {
		animation: none;
	}
}

.rc-hero__image {
	position: relative;
	z-index: 1;
	grid-column: 9 / 13;
	align-self: stretch;
	min-height: 34rem;
	overflow: hidden;
	background: var(--rc-inverse);
}

.rc-hero__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0) contrast(1.08);
	transform: scale(1.02);
	transition: transform 1200ms var(--rc-ease);
}

.rc-hero__image:hover img {
	transform: scale(1.07);
}

.rc-hero__image figcaption {
	position: absolute;
	right: 1rem;
	bottom: 1rem;
	left: 1rem;
	color: var(--rc-inverse-text);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.35;
	text-transform: uppercase;
}

.rc-hero__copy {
	position: relative;
	z-index: 2;
	grid-column: 2 / 6;
	align-self: end;
	max-width: 32rem;
}

.rc-hero__copy p {
	margin: 0 0 1.6rem;
	color: var(--rc-graphite);
	font-size: 1.08rem;
	line-height: 1.55;
}

.rc-section {
	padding-block: var(--rc-section);
	border-bottom: 1px solid var(--rc-line);
}

.rc-section__header {
	max-width: 56rem;
	margin-bottom: clamp(2rem, 5vw, 5rem);
}

.rc-section__header h2,
.rc-editorial-band__text h2,
.rc-footer-statement h2,
.rc-page-hero h1 {
	margin: 0.8rem 0 0;
	font-size: 2.65rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 0.98;
	text-transform: uppercase;
}

.rc-section__header--split {
	display: grid;
	grid-template-columns: minmax(0, 0.72fr) auto;
	align-items: end;
	max-width: none;
	gap: var(--rc-gutter);
}

.rc-index-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--rc-line-strong);
	border-left: 1px solid var(--rc-line);
}

.rc-index-item {
	display: grid;
	grid-template-rows: auto 1fr auto;
	min-height: 22rem;
	padding: 1.1rem;
	border-right: 1px solid var(--rc-line);
	border-bottom: 1px solid var(--rc-line);
	transition: background 220ms var(--rc-ease), color 220ms var(--rc-ease);
}

.rc-index-item:hover {
	background: var(--rc-ink);
	color: var(--rc-paper);
}

.rc-index-item span {
	color: var(--rc-muted);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rc-index-item strong {
	align-self: end;
	font-size: 2.15rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 0.96;
	text-transform: uppercase;
}

.rc-index-item em {
	max-width: 16rem;
	margin-top: 1rem;
	color: inherit;
	font-size: 0.9rem;
	font-style: normal;
	line-height: 1.45;
	opacity: 0.78;
}

.rc-product-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	overflow: hidden;
	border: 1px solid var(--rc-line);
	background: var(--rc-line);
}

.rc-product-card {
	min-width: 0;
	background: var(--rc-paper);
}

.rc-product-card a {
	display: grid;
	grid-template-rows: auto 1fr;
	height: 100%;
}

.rc-product-card figure {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--rc-paper-soft);
}

.rc-product-card img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0);
	transition: transform 700ms var(--rc-ease), filter 700ms var(--rc-ease);
}

.rc-product-card:hover img {
	filter: saturate(0) contrast(1.1);
	transform: scale(1.045);
}

.rc-product-card__body {
	display: grid;
	grid-template-rows: auto 1fr auto;
	min-height: 11rem;
	padding: 1.1rem;
}

.rc-product-card__body p,
.rc-product-card__body span {
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.25;
	text-transform: uppercase;
}

.rc-product-card__body h3 {
	align-self: end;
	margin: 1.6rem 0 1rem;
	font-size: 1.45rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.02;
	text-transform: uppercase;
}

.rc-editorial-band {
	padding-block: var(--rc-section);
	background: var(--rc-inverse);
	color: var(--rc-inverse-text);
}

.rc-editorial-band__grid {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	align-items: stretch;
	gap: var(--rc-gutter);
}

.rc-editorial-band__media {
	grid-column: 1 / 8;
	min-height: 38rem;
	overflow: hidden;
}

.rc-editorial-band__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0) contrast(1.05);
}

.rc-editorial-band__text {
	grid-column: 8 / 13;
	align-self: end;
	padding-bottom: 1rem;
}

.rc-editorial-band__text p:not(.rc-kicker) {
	max-width: 34rem;
	margin: 1.8rem 0 0;
	color: #d8d8d8;
	font-size: 1.05rem;
	line-height: 1.58;
}

.rc-journal-grid,
.rc-entry-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	background: var(--rc-line);
	border: 1px solid var(--rc-line);
}

.rc-journal-card,
.rc-entry-card,
.rc-empty-state {
	background: var(--rc-paper);
}

.rc-journal-card a,
.rc-entry-card a {
	display: block;
	height: 100%;
}

.rc-journal-card {
	min-height: 20rem;
	padding: 1.1rem;
}

.rc-journal-card span,
.rc-entry-meta {
	display: block;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rc-journal-card h3,
.rc-entry-card h2 {
	margin: 3.8rem 0 1rem;
	font-size: 1.75rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
	text-transform: uppercase;
}

.rc-journal-card p,
.rc-entry-card p,
.rc-empty-state p {
	max-width: 28rem;
	margin: 0;
	color: var(--rc-graphite);
	line-height: 1.55;
}

.rc-page-hero {
	padding-block: clamp(3.25rem, 7vw, 6.25rem) clamp(2.25rem, 5vw, 4.25rem);
	border-bottom: 1px solid var(--rc-line);
}

.rc-page-hero--compact {
	padding-bottom: clamp(2rem, 4vw, 4rem);
}

.rc-page-hero h1 {
	max-width: min(100%, 1280px);
	font-size: clamp(2.7rem, 5.8vw, 4rem);
}

.rc-archive-description,
.rc-page-hero > p:not(.rc-kicker),
.rc-error-page > p {
	max-width: 58rem;
	margin: 1.2rem 0 0;
	color: var(--rc-graphite);
	font-size: 1.1rem;
	line-height: 1.55;
}

.rc-entry-card__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--rc-paper-soft);
}

.rc-entry-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0);
}

.rc-entry-card__body {
	min-height: 17rem;
	padding: 1.1rem;
}

.rc-singular-page {
	padding-bottom: var(--rc-section);
}

.rc-page-content,
.rc-single-entry {
	max-width: 1120px;
}

.rc-content {
	max-width: 880px;
	padding-block: clamp(2rem, 5vw, 4.5rem);
}

.rc-content > * {
	margin-top: 0;
	margin-bottom: 1.35rem;
}

.rc-content h2,
.rc-content h3,
.rc-content h4 {
	margin-top: 2.8rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.05;
	text-transform: uppercase;
}

.rc-content h2 {
	font-size: 2.2rem;
}

.rc-content p,
.rc-content li {
	color: var(--rc-graphite);
	font-size: 1.08rem;
	line-height: 1.65;
}

.rc-content ul,
.rc-content ol,
.woocommerce div.product .woocommerce-product-details__short-description ul,
.woocommerce div.product .woocommerce-product-details__short-description ol,
.woocommerce-Tabs-panel ul,
.woocommerce-Tabs-panel ol {
	display: grid;
	gap: 0.55rem;
	padding-left: 1.15rem;
}

.rc-content li::marker,
.woocommerce div.product li::marker {
	color: var(--rc-ink);
}

.rc-content a {
	border-bottom: 1px solid currentColor;
}

.rc-content blockquote {
	margin: 2rem 0;
	padding: 0 0 0 1.5rem;
	border-left: 1px solid var(--rc-ink);
	color: var(--rc-ink);
	font-size: 1.35rem;
	line-height: 1.35;
}

.rc-single-entry__media {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--rc-paper-soft);
}

.rc-single-entry__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rc-post-navigation {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding-top: 2rem;
	border-top: 1px solid var(--rc-line);
}

.rc-post-navigation a {
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rc-info-page {
	padding-bottom: var(--rc-section);
}

.rc-info-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1px;
	margin-top: clamp(2rem, 5vw, 5rem);
	background: var(--rc-line);
	border: 1px solid var(--rc-line);
}

.rc-info-block {
	min-height: 24rem;
	padding: clamp(1.1rem, 2vw, 1.6rem);
	background: var(--rc-paper);
}

.rc-info-block span {
	display: block;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rc-info-block h2 {
	max-width: 22rem;
	margin: clamp(4rem, 8vw, 7rem) 0 1rem;
	font-size: clamp(1.35rem, 2vw, 2.05rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.02;
	text-transform: uppercase;
}

.rc-info-block p {
	max-width: 28rem;
	margin: 0;
	color: var(--rc-graphite);
	font-size: 0.98rem;
	line-height: 1.58;
}

.rc-search-form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	max-width: 48rem;
	margin-top: 2rem;
	border: 1px solid var(--rc-line-strong);
}

.rc-search-form label {
	min-width: 0;
}

.rc-search-form input,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select {
	width: 100%;
	min-height: 3.25rem;
	padding: 0.9rem 1rem;
	border: 1px solid var(--rc-line-strong);
	border-radius: 0;
	background: transparent;
	color: var(--rc-ink);
	outline: none;
}

.rc-search-form input {
	border: 0;
}

.rc-search-form button {
	min-height: 3.25rem;
	padding-inline: 1rem;
	border: 0;
	border-left: 1px solid var(--rc-line-strong);
	background: var(--rc-ink);
	color: var(--rc-paper);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rc-empty-state {
	grid-column: 1 / -1;
	padding: clamp(2rem, 5vw, 4rem);
}

.rc-empty-state h2,
.rc-empty-state h3 {
	margin: 0 0 1rem;
	font-size: 2rem;
	line-height: 1;
	text-transform: uppercase;
}

.rc-error-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1.5rem;
	margin-top: 2rem;
}

.rc-site-footer {
	border-top: 1px solid var(--rc-line);
	background: var(--rc-paper-soft);
}

.rc-footer-grid {
	display: grid;
	grid-template-columns: minmax(0, 4fr) repeat(3, minmax(8rem, 1fr));
	gap: clamp(2rem, 5vw, 5rem);
	padding-block: clamp(3rem, 6vw, 5.5rem) 1.5rem;
}

.rc-footer-statement {
	max-width: 36rem;
}

.rc-footer-statement h2 {
	max-width: 28rem;
	margin: 1.6rem 0 0.8rem;
	font-size: 1.12rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.18;
	text-transform: uppercase;
}

.rc-footer-statement p {
	max-width: 34rem;
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.92rem;
	line-height: 1.55;
}

.rc-wordmark--footer {
	font-size: 1.32rem;
}

.rc-footer-column h2 {
	margin: 0 0 1.1rem;
	color: var(--rc-ink);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.rc-footer-column ul {
	display: grid;
	gap: 0.7rem;
	padding: 0;
	margin: 0;
	list-style: none;
}

.rc-footer-column a {
	color: var(--rc-graphite);
	font-size: 0.86rem;
	line-height: 1.25;
	transition: color 180ms var(--rc-ease);
}

.rc-footer-column a:hover {
	color: var(--rc-ink);
}

.rc-footer-meta {
	grid-column: 1 / -1;
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 1rem;
	padding-top: clamp(2.5rem, 5vw, 4.5rem);
	color: var(--rc-muted);
	font-size: 0.68rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rc-footer-meta p {
	margin: 0;
	line-height: 1.45;
}

.rc-footer-meta a {
	color: inherit;
	transition: color 180ms var(--rc-ease);
}

.rc-footer-meta a:hover {
	color: var(--rc-ink);
}

.rc-footer-meta p:first-child {
	max-width: 54rem;
}

.rc-reveal {
	opacity: 0;
	transform: translateY(1.4rem);
	transition: opacity 760ms var(--rc-ease), transform 760ms var(--rc-ease);
}

.rc-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.rc-reveal:nth-child(2) {
	transition-delay: 80ms;
}

.rc-reveal:nth-child(3) {
	transition-delay: 150ms;
}

.rc-reveal:nth-child(4) {
	transition-delay: 220ms;
}

.woocommerce-notices-wrapper,
.woocommerce-result-count,
.woocommerce-ordering,
.woocommerce-breadcrumb {
	color: var(--rc-muted);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.woocommerce a:not(.button):not(.woocommerce-LoopProduct-link):not(.woocommerce-product-gallery__trigger),
.wc-block-components-product-name,
.wc-block-components-totals-coupon-link {
	color: var(--rc-ink);
	text-decoration-color: var(--rc-line-strong);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

.rc-commerce__body {
	padding-block: clamp(2rem, 5vw, 4rem) var(--rc-section);
}

.rc-page-hero--commerce-product {
	padding-block: clamp(1.5rem, 3vw, 2.4rem) 1rem;
}

.rc-page-hero--commerce-product + .rc-commerce__body {
	padding-top: clamp(1.5rem, 3vw, 2.5rem);
}

.woocommerce .woocommerce-products-header,
.woocommerce-products-header__title.page-title,
.woocommerce-page .page-title {
	display: none;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	float: none;
	margin: 0 0 1.2rem;
}

.woocommerce .woocommerce-result-count {
	display: inline-flex;
	align-items: center;
	min-height: 2.9rem;
	margin-right: 1rem;
}

.woocommerce .woocommerce-ordering {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
}

.woocommerce .woocommerce-ordering select {
	min-height: 2.9rem;
	min-width: 15rem;
	padding: 0.68rem 2.5rem 0.68rem 0.85rem;
	border: 1px solid var(--rc-line-strong);
	border-radius: 0;
	background-color: transparent;
	color: var(--rc-ink);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.1;
	text-transform: uppercase;
}

.woocommerce ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1px;
	padding: 0;
	margin: 2rem 0 0;
	background: var(--rc-line);
	border: 1px solid var(--rc-line);
	list-style: none;
}

.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
	float: none !important;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
	padding: 0;
	background: var(--rc-paper);
}

.woocommerce ul.products li.product a {
	display: block;
}

.woocommerce ul.products li.product a img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 5;
	margin: 0;
	object-fit: cover;
	filter: saturate(0);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	padding: 1rem 1rem 0.35rem;
	margin: 0;
	color: var(--rc-ink);
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.05;
	text-transform: uppercase;
}

.woocommerce ul.products li.product .price {
	display: block;
	padding: 0 1rem 1rem;
	color: var(--rc-muted);
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.woocommerce ul.products li.product .button {
	margin: 0 1rem 1rem;
}

.woocommerce-notices-wrapper:empty {
	display: none;
}

.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.wc-block-components-notice-banner {
	border: 1px solid var(--rc-line-strong) !important;
	border-radius: 0 !important;
	background: var(--rc-paper-soft) !important;
	color: var(--rc-ink) !important;
	font-size: 0.86rem;
	line-height: 1.45;
}

.woocommerce-error::before,
.woocommerce-info::before,
.woocommerce-message::before {
	color: var(--rc-ink) !important;
}

.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(20rem, 5fr);
	gap: var(--rc-gutter);
}

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

.woocommerce div.product div.images img {
	width: 100%;
	filter: saturate(0);
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	margin: 0;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	top: 1rem !important;
	right: 1rem !important;
	display: grid !important;
	place-items: center;
	width: 2.75rem !important;
	height: 2.75rem !important;
	padding: 0 !important;
	border: 1px solid var(--rc-line-strong);
	border-radius: 0 !important;
	background: var(--rc-paper) !important;
	box-shadow: none;
	color: var(--rc-ink);
	line-height: 1;
	overflow: hidden;
	text-indent: -9999px;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before,
.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after {
	content: "";
	position: absolute;
	display: block;
	box-sizing: border-box;
	margin: 0;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before {
	top: 50%;
	left: 50%;
	width: 1.05rem;
	height: 1.05rem;
	border: 0.17rem solid currentColor;
	border-radius: 50%;
	background: transparent !important;
	transform: translate(-58%, -58%);
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after {
	top: 50%;
	left: 50%;
	width: 0.75rem;
	height: 0.17rem;
	border: 0 !important;
	background: currentColor;
	transform: translate(0.14rem, 0.26rem) rotate(45deg);
	transform-origin: center;
}

.woocommerce div.product .product_title {
	margin: 0 0 1rem;
	font-size: 3.4rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 0.95;
	text-transform: uppercase;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--rc-ink);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.woocommerce div.product .woocommerce-product-details__short-description,
.woocommerce div.product .woocommerce-tabs,
.woocommerce table.shop_table {
	color: var(--rc-graphite);
	line-height: 1.6;
}

.woocommerce div.product form.cart {
	--rc-product-cart-control-height: 3.75rem;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 1.45rem 0 1rem !important;
	padding: 0;
	clear: both;
}

.woocommerce div.product form.cart::before,
.woocommerce div.product form.cart::after {
	display: none;
	content: none;
}

.woocommerce div.product form.cart .quantity {
	display: flex;
	align-items: stretch;
	float: none !important;
	margin: 0 !important;
}

.woocommerce div.product form.cart .button,
.woocommerce div.product form.cart .single_add_to_cart_button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 10.5rem;
	height: var(--rc-product-cart-control-height);
	min-height: var(--rc-product-cart-control-height);
	margin: 0 !important;
	padding: 0 1.25rem !important;
	align-self: center;
	line-height: 1 !important;
}

.woocommerce .quantity .qty {
	width: 5rem;
	min-height: 3.25rem;
	padding: 0.2rem 0.65rem;
	border: 1px solid var(--rc-line-strong);
	background: transparent;
	color: var(--rc-ink);
	font-size: 0.9rem;
	font-weight: 600;
	text-align: center;
}

.woocommerce div.product .product_meta {
	margin: 0.85rem 0 0;
	padding-top: 1rem;
	border-top: 1px solid var(--rc-line);
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.5;
	text-transform: uppercase;
}

.woocommerce div.product .product_meta > span {
	display: block;
	margin: 0.25rem 0;
}

.woocommerce div.product .product_meta a {
	color: var(--rc-ink);
	text-decoration: none;
}

.woocommerce div.product .woocommerce-tabs {
	grid-column: 1 / -1;
	margin-top: clamp(3rem, 7vw, 6.5rem);
	border-top: 1px solid var(--rc-line-strong);
	border-bottom: 1px solid var(--rc-line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: 0;
	padding: 0 !important;
	margin: 0 !important;
	border: 0;
	overflow: visible;
	list-style: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs::after,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none !important;
	border: 0 !important;
	box-shadow: none !important;
	content: none !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs a {
	display: flex;
	align-items: center;
	min-height: 3.55rem;
	padding: 0.9rem 1rem !important;
	border-right: 1px solid var(--rc-line);
	border-bottom: 1px solid var(--rc-line);
	color: var(--rc-muted);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	background: var(--rc-paper-soft);
	color: var(--rc-ink);
}

.woocommerce div.product .woocommerce-tabs .panel {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	gap: var(--rc-gutter);
	margin: 0 !important;
	padding: clamp(1.5rem, 3vw, 2.75rem) 0 0;
	color: var(--rc-graphite);
}

.woocommerce div.product .woocommerce-tabs .panel > h2 {
	margin: 0;
	color: var(--rc-ink);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.woocommerce div.product .woocommerce-tabs .panel > :not(h2) {
	grid-column: 2;
}

.woocommerce div.product .woocommerce-tabs .panel p,
.woocommerce div.product .woocommerce-tabs .panel li {
	max-width: 48rem;
}

.woocommerce div.product .woocommerce-tabs table.shop_attributes {
	grid-column: 2;
	border: 0;
}

.woocommerce div.product .woocommerce-tabs table.shop_attributes th,
.woocommerce div.product .woocommerce-tabs table.shop_attributes td {
	padding: 0.85rem 0;
	border: 0;
	border-bottom: 1px solid var(--rc-line);
	background: transparent !important;
	color: var(--rc-ink);
	font-style: normal;
}

.woocommerce table.shop_table,
.woocommerce-cart-form,
.woocommerce-checkout-review-order {
	border: 1px solid var(--rc-line);
	border-radius: 0;
	background: var(--rc-paper);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	border-top: 1px solid var(--rc-line);
}

.wc-block-cart,
.wc-block-checkout,
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	color: var(--rc-ink);
}

.wc-block-cart__main,
.wc-block-cart__sidebar,
.wc-block-checkout__main,
.wc-block-checkout__sidebar,
.wc-block-components-sidebar,
.wc-block-components-main {
	background: transparent;
}

.wc-block-cart-items,
.wc-block-components-totals-wrapper,
.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-components-sidebar-layout .wc-block-components-sidebar,
.wc-block-checkout__shipping-method,
.wc-block-checkout__payment-method,
.wc-block-checkout__order-notes,
.wc-block-checkout__contact-fields,
.wc-block-checkout__shipping-fields,
.wc-block-checkout__billing-fields {
	border-color: var(--rc-line) !important;
}

.wc-block-components-product-name,
.wc-block-cart-item__total,
.wc-block-components-order-summary-item__description,
.wc-block-components-totals-item__label,
.wc-block-components-title {
	color: var(--rc-ink);
	font-family: var(--rc-font);
	font-weight: 700;
	letter-spacing: 0;
	text-transform: uppercase;
}

.wc-block-components-product-metadata,
.wc-block-components-totals-item__description,
.wc-block-components-radio-control__description,
.wc-block-components-checkout-step__description {
	color: var(--rc-muted);
	font-size: 0.86rem;
	line-height: 1.5;
}

.wc-block-components-button,
.wp-block-button__link,
.wc-block-cart__submit-button {
	min-height: 3.2rem;
	box-shadow: none !important;
	border-radius: 0 !important;
	background: var(--rc-ink) !important;
	color: var(--rc-paper) !important;
	font-size: 0.73rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.wc-block-components-button__text {
	color: inherit;
	line-height: 1;
}

.wc-block-components-button:not(.is-link):disabled,
.woocommerce button.button:disabled,
.woocommerce button.button:disabled[disabled],
.woocommerce a.button.disabled {
	border-color: var(--rc-line-strong) !important;
	background: var(--rc-paper-soft) !important;
	color: var(--rc-muted) !important;
	opacity: 1 !important;
}

.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	border-color: var(--rc-line-strong) !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--rc-ink) !important;
}

.wc-block-components-quantity-selector {
	border-color: var(--rc-line-strong) !important;
	border-radius: 0 !important;
	background: transparent;
}

.wc-block-components-quantity-selector button,
.wc-block-components-quantity-selector input,
.wc-block-components-checkbox .wc-block-components-checkbox__input,
.wc-block-components-radio-control__input,
.components-form-token-field__input-container,
.wc-block-components-combobox-control .components-combobox-control__suggestions-container {
	border-radius: 0 !important;
}

.wc-block-components-checkbox .wc-block-components-checkbox__input:checked,
.wc-block-components-radio-control__input:checked {
	border-color: var(--rc-ink) !important;
	background-color: var(--rc-ink) !important;
}

.woocommerce-account .u-column2.col-2,
.woocommerce-account form.register,
.woocommerce-account .woocommerce-form-register {
	display: none !important;
}

.woocommerce-account .u-column1.col-1 {
	width: 100% !important;
}

.rc-status-page {
	padding-bottom: var(--rc-section);
}

.rc-status-grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(18rem, 5fr);
	gap: var(--rc-gutter);
	align-items: end;
	min-height: calc(100svh - var(--rc-header-height));
	padding-block: clamp(4rem, 9vw, 9rem);
}

.rc-status-panel {
	border-top: 1px solid var(--rc-ink);
	padding-top: 1.25rem;
}

.rc-status-panel dl {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 0.85rem 1.5rem;
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.78rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.rc-status-panel dt {
	color: var(--rc-ink);
	font-weight: 700;
}

#comments,
.comments-area,
.comment-respond,
.comment-list,
.comment-form {
	display: none !important;
}

@media (min-width: 48rem) {
	.rc-hero__statement h1 {
		font-size: 7.2rem;
	}

	.rc-section__header h2,
	.rc-editorial-band__text h2 {
		font-size: 3.7rem;
	}
}

@media (min-width: 75rem) {
	.rc-hero__statement h1 {
		font-size: 11rem;
	}

	.rc-section__header h2,
	.rc-editorial-band__text h2 {
		font-size: 5.2rem;
	}

	.rc-page-hero h1 {
		font-size: 4rem;
	}
}

@media (min-width: 100rem) {
	.rc-hero__statement h1 {
		font-size: 14.5rem;
	}
}

@media (max-width: 74.99rem) {
	.rc-site-header__inner {
		grid-template-columns: auto 1fr auto;
	}

	.rc-primary-nav {
		position: fixed;
		top: var(--rc-header-height);
		right: 0;
		left: 0;
		display: none;
		padding: 1rem clamp(1.25rem, 5vw, 5rem) 2rem;
		border-bottom: 1px solid var(--rc-line);
		background: var(--rc-paper);
	}

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

	.rc-primary-nav .rc-menu {
		display: grid;
		justify-content: stretch;
		gap: 0;
	}

	.rc-primary-nav .rc-menu a {
		min-height: 3.5rem;
		border-bottom: 1px solid var(--rc-line);
	}

	.rc-menu-toggle {
		display: block;
	}

	.rc-menu-is-open .rc-menu-toggle span[aria-hidden="true"]:first-of-type {
		transform: translateY(0.25rem) rotate(45deg);
	}

	.rc-menu-is-open .rc-menu-toggle span[aria-hidden="true"]:last-of-type {
		transform: translateY(-0.25rem) rotate(-45deg);
	}

	.rc-hero {
		grid-template-columns: repeat(8, minmax(0, 1fr));
	}

	.rc-hero__statement {
		grid-column: 1 / -1;
	}

	.rc-hero__image {
		grid-column: 4 / -1;
		min-height: 28rem;
	}

	.rc-hero__copy {
		grid-column: 1 / 6;
	}

	.rc-index-grid,
	.rc-product-grid,
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rc-section__header--split {
		grid-template-columns: 1fr;
	}

	.rc-editorial-band__grid {
		grid-template-columns: repeat(8, minmax(0, 1fr));
	}

	.rc-editorial-band__media {
		grid-column: 1 / 6;
	}

	.rc-editorial-band__text {
		grid-column: 4 / -1;
	}

	.rc-journal-grid,
	.rc-entry-grid,
	.rc-info-grid {
		grid-template-columns: 1fr;
	}

	.woocommerce div.product {
		grid-template-columns: 1fr;
	}

	.woocommerce div.product .woocommerce-tabs .panel {
		grid-template-columns: 1fr;
	}

	.woocommerce div.product .woocommerce-tabs .panel > :not(h2),
	.woocommerce div.product .woocommerce-tabs table.shop_attributes {
		grid-column: 1;
	}

	.rc-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rc-footer-statement,
	.rc-footer-meta {
		grid-column: 1 / -1;
	}

	.rc-status-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 47.99rem) {
	body {
		background: var(--rc-paper);
	}

	.rc-frame {
		width: min(calc(100% - 1.25rem), var(--rc-frame));
	}

	.rc-header-actions {
		gap: 0.55rem;
	}

	.rc-cart-link span:first-child {
		display: none;
	}

	.rc-hero {
		display: block;
		min-height: auto;
		padding-top: 3rem;
	}

	.rc-hero__statement h1 {
		font-size: 4rem;
	}

	.rc-hero__statement h1 > span:nth-child(2) {
		margin-left: 1.25ch;
	}

	.rc-hero__image {
		min-height: auto;
		aspect-ratio: 4 / 5;
		margin-top: 2rem;
	}

	.rc-hero__copy {
		margin-top: 1.5rem;
	}

	.rc-section__header h2,
	.rc-editorial-band__text h2,
	.rc-page-hero h1 {
		font-size: 2.65rem;
	}

	.rc-index-grid,
	.rc-product-grid,
	.woocommerce ul.products {
		grid-template-columns: 1fr;
	}

	.rc-index-item {
		min-height: 14rem;
	}

	.rc-editorial-band__grid {
		display: block;
	}

	.rc-editorial-band__media {
		min-height: auto;
		aspect-ratio: 4 / 5;
		margin-bottom: 2rem;
	}

	.rc-page-hero {
		padding-top: 3rem;
	}

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

	.rc-search-form button {
		border-top: 1px solid var(--rc-line-strong);
		border-left: 0;
	}

	.woocommerce div.product form.cart {
		display: grid;
		grid-template-columns: 5.25rem minmax(0, 1fr);
	}

	.woocommerce div.product form.cart .button,
	.woocommerce div.product form.cart .single_add_to_cart_button {
		min-width: 0;
		width: 100%;
	}

	.woocommerce div.product .product_title {
		font-size: 2.75rem;
	}

	.rc-footer-grid {
		display: grid;
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.rc-footer-meta {
		margin-top: 3rem;
	}

	.rc-footer-meta {
		display: block;
	}
}

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

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

	.rc-reveal {
		opacity: 1;
		transform: none;
	}
}

/* ============================================================
 * RaptClub — additions for editable pages + design polish
 * Appended at the end of style.css so it overrides earlier rules.
 * ============================================================ */

/* ---------- Editable page scaffold (rc-info-page via page.php) ---------- */

.rc-info-page {
	padding-bottom: var(--rc-section);
}

.rc-page-article {
	display: contents;
}

.rc-page-body {
	padding-block: clamp(1.75rem, 4vw, 3.5rem) 0;
}

.rc-page-body > * + * {
	margin-top: clamp(1.4rem, 2.4vw, 2rem);
}

/* "Lead" paragraph that follows the H1 — restored to the editorial scale
 * that used to live inside .rc-page-hero. */
.rc-page-body .rc-lead,
.rc-page-body > p.rc-lead {
	max-width: 58rem;
	margin-top: 0;
	color: var(--rc-graphite);
	font-size: 1.1rem;
	line-height: 1.55;
}

/* ---------- Gutenberg Columns → info-grid mapping ---------- */

.wp-block-columns.rc-info-grid,
.rc-page-body .wp-block-columns.rc-info-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	flex-wrap: nowrap;
	gap: 1px;
	margin: clamp(2rem, 5vw, 5rem) 0 0;
	background: var(--rc-line);
	border: 1px solid var(--rc-line);
	align-items: stretch;
}

.wp-block-column.rc-info-block {
	min-height: 24rem;
	padding: clamp(1.1rem, 2vw, 1.6rem);
	margin: 0;
	background: var(--rc-paper);
	word-break: normal;
	overflow-wrap: normal;
}

/* Reset Gutenberg's auto margin-block-start so the first child sits at the top. */
.wp-block-column.rc-info-block > :first-child {
	margin-top: 0;
}

/* Kicker label paragraph inside a card. */
.rc-info-block__label,
.rc-info-block .rc-info-block__label,
.wp-block-column.rc-info-block > p.rc-info-block__label {
	display: block;
	max-width: none;
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Heading inside a card — generous top margin to push the title down so the
 * card has a tall editorial feel like before. */
.wp-block-column.rc-info-block > h2,
.wp-block-column.rc-info-block > .wp-block-heading {
	max-width: 22rem;
	margin: clamp(4rem, 8vw, 7rem) 0 1rem;
	font-size: clamp(1.35rem, 2vw, 2.05rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.02;
	text-transform: uppercase;
}

/* Description paragraph inside a card. */
.wp-block-column.rc-info-block > p:not(.rc-info-block__label) {
	max-width: 28rem;
	margin: 0;
	color: var(--rc-graphite);
	font-size: 0.98rem;
	line-height: 1.58;
}

/* ---------- #5 Home — Selected Releases card body ---------- */
/* Switch from grid-with-empty-middle-row to a tight flex column so the
 * kicker / title / price flow directly under the image without a phantom
 * gap. */
.rc-product-card__body {
	display: flex;
	flex-direction: column;
	min-height: 0;
	gap: 0.45rem;
	padding: 1.1rem 1.1rem 1.35rem;
}

.rc-product-card__body p,
.rc-product-card__body span {
	margin: 0;
}

.rc-product-card__body h3 {
	margin: 0.45rem 0 0.15rem;
	align-self: auto;
	font-size: 1.45rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.04;
	text-transform: uppercase;
}

/* ---------- #3 Single product — constrain hero image to viewport ---------- */
/* The product gallery image is at 1200x1500 (4:5). Without a height cap it
 * over-runs the viewport on common screens. Cap it so the whole image is
 * visible in the initial viewport. */
.woocommerce div.product div.images {
	min-width: 0;
}

.woocommerce div.product div.images .woocommerce-product-gallery,
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper,
.woocommerce div.product div.images .woocommerce-product-gallery__image {
	max-width: 100%;
}

.woocommerce div.product div.images .woocommerce-product-gallery__image img,
.woocommerce div.product div.images > img,
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > a,
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image {
	max-height: calc(100svh - var(--rc-header-height) - 4rem);
}

.woocommerce div.product div.images .woocommerce-product-gallery__image img,
.woocommerce div.product div.images > img {
	width: auto;
	max-width: 100%;
	height: auto;
	margin-inline: auto;
	object-fit: contain;
}

/* ---------- #2.2 Single product — Product Notes tab gap ---------- */
/* The panel used to be a 4fr/8fr grid that reserved an empty left column
 * because the panel heading is filtered to an empty string. Flow naturally
 * instead — heading (if present) sits above, content runs full width. */
.woocommerce div.product .woocommerce-tabs .panel {
	display: block;
	grid-template-columns: none;
	padding: clamp(1.25rem, 2.4vw, 2rem) 0 0;
	margin: 0 !important;
}

.woocommerce div.product .woocommerce-tabs .panel > h2 {
	margin: 0 0 1rem;
}

.woocommerce div.product .woocommerce-tabs .panel > :not(h2),
.woocommerce div.product .woocommerce-tabs table.shop_attributes {
	grid-column: auto;
}

.woocommerce div.product .woocommerce-tabs .panel p:first-child,
.woocommerce div.product .woocommerce-tabs .panel > :first-child {
	margin-top: 0;
}

.woocommerce div.product .woocommerce-tabs .panel p,
.woocommerce div.product .woocommerce-tabs .panel li {
	max-width: 64rem;
}

/* ---------- Responsive ---------- */

@media (max-width: 74.99rem) {
	.wp-block-columns.rc-info-grid,
	.rc-page-body .wp-block-columns.rc-info-grid {
		grid-template-columns: 1fr;
	}

	.wp-block-column.rc-info-block {
		min-height: 0;
	}

	.wp-block-column.rc-info-block > h2,
	.wp-block-column.rc-info-block > .wp-block-heading {
		margin-top: clamp(1.5rem, 4vw, 3rem);
	}
}

@media (max-width: 47.99rem) {
	.rc-product-card__body {
		padding: 0.9rem 0.9rem 1.1rem;
	}

	.woocommerce div.product div.images .woocommerce-product-gallery__image img,
	.woocommerce div.product div.images > img {
		max-height: 78svh;
	}
}
/* ============================================================
 * RaptClub — fixes v2: shop empty-cell + bottom-edge alignment
 * Appended after the v1 additions so it wins on the cascade.
 * ============================================================ */

/* ---------- #2.a Shop grid first/last cell empty ---------- */
/* WooCommerce's woocommerce.css adds ::before / ::after pseudo-elements
 * on ul.products for legacy clearfix support. With our grid layout these
 * pseudos become grid items and steal the first (and potentially last)
 * cells, shifting products by one. Neutralise them. */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after,
.woocommerce .products ul::before,
.woocommerce .products ul::after {
	display: none !important;
	content: none !important;
}

/* ---------- #4 Bottom-edge alignment across cards in a row ---------- */
/* Currently the H2 top edges align across cards in an info-grid (each card
 * starts the H2 at a fixed y-position via a clamp() top margin). Because
 * H2s vary in line-count, the descriptions below them don't end at the
 * same y. We want the opposite: the bottoms of the H2 + description block
 * should line up across the row.
 *
 * Approach: make each card a flex column, keep the label pinned to the top
 * (default flow) and push the H2 + following paragraph to the bottom via
 * margin-top: auto on the H2. With the grid's default align-items: stretch
 * all cards share the same height, so every card's last paragraph ends at
 * the same y-coordinate. */

.wp-block-column.rc-info-block {
	display: flex;
	flex-direction: column;
}

.wp-block-column.rc-info-block > h2,
.wp-block-column.rc-info-block > .wp-block-heading {
	margin: auto 0 1rem;   /* top:auto pushes h2 + following siblings down */
}

/* Same treatment for the homepage Journal cards which use the same
 * "label at top, big gap, h3, description" pattern. */
.rc-journal-card,
.rc-entry-card {
	display: flex;
	flex-direction: column;
}

.rc-journal-card > a,
.rc-entry-card > a {
	display: flex;
	flex: 1;
	flex-direction: column;
}

.rc-journal-card h3,
.rc-entry-card h2 {
	margin: auto 0 1rem;   /* push title + paragraph to the bottom */
}
/* ============================================================
 * RaptClub — fixes v3: WC element spacing + tab layout
 * Targets the user-reported asymmetric bottom gaps.
 * ============================================================ */

/* ---------- Single-product tabs: grid → flex ---------- */
/* The ul.tabs used `grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr))`.
 * With only one tab, the grid still allocated up to 8 columns and the active
 * tab's right/bottom border + the body grid background showed through the
 * empty cells, reading as an "empty bordered box" under the tab label.
 * Switch to flex so only the actual tabs occupy space. */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	padding: 0 !important;
	margin: 0 !important;
	border: 0;
	list-style: none;
	background: var(--rc-paper);   /* opaque so body grid doesn't bleed through */
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	flex: 0 0 auto;
	min-width: 14rem;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}

/* Active tab gets a continuous bottom border across its full width.
 * For multiple tabs, the row would still tile cleanly. */
.woocommerce div.product .woocommerce-tabs ul.tabs a {
	display: flex;
	align-items: center;
	justify-content: flex-start;
	width: 100%;
	min-height: 3.55rem;
	padding: 0.9rem 1.25rem !important;
	border-right: 1px solid var(--rc-line);
	border-bottom: 1px solid var(--rc-line);
}

/* ---------- Tab panel: tighter top padding to match tab's internal padding ---------- */
/* Was clamp(1.25rem, 2.4vw, 2rem) which rendered as 32px on wide viewports
 * vs the tab's 14.4px internal padding — asymmetric. */
.woocommerce div.product .woocommerce-tabs .panel {
	display: block;
	padding: 1rem 0 0 !important;
	margin: 0 !important;
	background: transparent;
}

.woocommerce div.product .woocommerce-tabs .panel > *:first-child {
	margin-top: 0;
}

.woocommerce div.product .woocommerce-tabs .panel > *:last-child {
	margin-bottom: 0;
}

/* Tighten the wrapper bottom border distance so the section ends cleanly. */
.woocommerce div.product .woocommerce-tabs {
	padding-bottom: 0;
}

/* ---------- Shop loop: equal margins around Add to Cart, proper centering ---------- */
/* WC sets `.woocommerce ul.products li.product .button { display: inline-block }`
 * which beats my generic `display: inline-flex` on `.woocommerce a.button`.
 * Force inline-flex here so align-items/justify-content actually center text.
 * Also make the top/bottom margins equal so the button sits with symmetric
 * space rather than 6px above and 16px below. */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .add_to_cart_button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	margin: 1rem 1rem !important;   /* equal top/bottom */
}

/* The `.added_to_cart wc-forward` link that appears after a successful AJAX
 * add-to-cart was inheriting some background but no text colour, reading as
 * a "phantom black box" in earlier screenshots. Style it as an inline text
 * link (consistent with .rc-text-link). */
.woocommerce ul.products li.product .added_to_cart,
.woocommerce ul.products li.product a.added_to_cart {
	display: inline-flex;
	align-items: center;
	margin: 0.25rem 1rem 1rem !important;
	padding: 0.5rem 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid currentColor !important;
	color: var(--rc-ink) !important;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	line-height: 1;
	min-height: 0 !important;
}

/* Tighten the gap between price and Add to Cart so the card reads cleanly:
 * price has 0 bottom margin, button gets a small top margin via the rule
 * above. Match the top/bottom values. */
.woocommerce ul.products li.product .price {
	padding-bottom: 0;
	margin-bottom: 0;
}

/* ---------- Shop loop: kill the empty row of grid lines below products ---------- */
/* The body has a 12-column vertical-line background + a 4rem dotted grid
 * overlay on body::after. Below the products UL these grid lines show
 * through the empty page area and read as "empty grid cells". We don't want
 * to remove the body pattern (it's a design feature), but we can give the
 * commerce body a paper background so the visible grid doesn't extend past
 * the actual content within this section. */
.rc-commerce__body {
	background: var(--rc-paper);
	padding-bottom: clamp(2rem, 5vw, 3rem);
}

/* Add equal vertical padding inside the products grid so the row sits with
 * breathing space without extra phantom cells. */
.woocommerce ul.products {
	margin-bottom: 0;
}
/* ============================================================
 * RaptClub — fixes v4: clean tabs, home cards, no phantom cells
 * ============================================================ */

/* ---------- Single-product Product Notes tab: radical simplification ---------- */
/* Strip every potential source of phantom borders/cells:
 *   - wrap loses its border-top/border-bottom (no full-width horizontal lines)
 *   - ul.tabs stays flex but with no min-width on li (tab is content-sized)
 *   - the active tab's right border is removed (no orphan vertical line)
 *   - only the active tab gets a single underline (the visual tab indicator)
 *   - panel sits directly below with tight padding
 *   - wrap + panel are given an opaque paper background so the body's
 *     12-col grid lines and 4rem dot grid can't bleed through. */
.woocommerce div.product .woocommerce-tabs {
	margin-top: clamp(3rem, 7vw, 6rem);
	padding: 0;
	border: 0 !important;
	background: var(--rc-paper);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	padding: 0 !important;
	margin: 0 0 0.85rem !important;
	border: 0;
	border-bottom: 1px solid var(--rc-line);
	list-style: none;
	background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	flex: 0 0 auto;
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs a {
	display: inline-flex;
	align-items: center;
	min-width: 0;
	width: auto;
	min-height: 2.6rem;
	padding: 0.55rem 1rem !important;
	border: 0 !important;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1;
	text-transform: uppercase;
	background: transparent !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li[aria-selected="true"] a {
	color: var(--rc-ink);
	box-shadow: inset 0 -1px 0 0 var(--rc-ink);
}

.woocommerce div.product .woocommerce-tabs ul.tabs a:hover {
	color: var(--rc-ink);
}

/* Panel sits cleanly under the tab nav with tight top padding. */
.woocommerce div.product .woocommerce-tabs .panel {
	display: block;
	padding: 0.5rem 0 0 !important;
	margin: 0 !important;
	background: transparent !important;
	grid-template-columns: none;
}

.woocommerce div.product .woocommerce-tabs .panel > h2 {
	display: none;   /* heading was filtered to empty earlier; no need for it */
}

.woocommerce div.product .woocommerce-tabs .panel > *:first-child {
	margin-top: 0;
}

.woocommerce div.product .woocommerce-tabs .panel > *:last-child {
	margin-bottom: 0;
}

/* ---------- Home Selected Releases cards ---------- */
/* The previous markup nested <a> tags (an outer <a> wrapping figure + body,
 * with category <a> links inside body). Browsers auto-close the outer <a>
 * on nesting, breaking the DOM and leaving empty placeholder <a> elements.
 * front-page.php is being updated to split the markup into:
 *   <a class="rc-product-card__media">...image...</a>
 *   <div class="rc-product-card__body">kicker (plain), title <a>, price</div>
 * CSS below targets the new structure.
 */
.rc-product-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: var(--rc-paper);
}

.rc-product-card__media {
	display: block;
}

.rc-product-card__media figure {
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--rc-paper-soft);
}

.rc-product-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0);
	transition: transform 700ms var(--rc-ease), filter 700ms var(--rc-ease);
}

.rc-product-card:hover .rc-product-card__media img {
	filter: saturate(0) contrast(1.1);
	transform: scale(1.045);
}

.rc-product-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
	padding: 1.1rem 1.1rem 1.35rem;
}

.rc-product-card__body p,
.rc-product-card__body .rc-product-card__kicker,
.rc-product-card__body span {
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.25;
	text-transform: uppercase;
}

.rc-product-card__body h3 {
	margin: 0.45rem 0 0.15rem;
	font-size: 1.3rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.05;
	text-transform: uppercase;
}

.rc-product-card__body h3 a {
	color: var(--rc-ink);
}

.rc-product-card__body h3 a:hover {
	color: var(--rc-graphite);
}

.rc-product-card__body .rc-product-card__price {
	color: var(--rc-ink);
	font-weight: 600;
}

/* Old rule .rc-product-card a was applying display:grid + height:100% to
 * EVERY descendant link (including the category link), which combined with
 * the broken nesting was crushing layout. Limit it to direct media link. */
.rc-product-card > a:first-child,
.rc-product-card .rc-product-card__media {
	display: block;
	height: auto;
}
/* ============================================================
 * RaptClub — fixes v5: brand mark (SVG logo) sizing + smoothing
 * ============================================================ */

/* Header / footer brand mark — inlined SVG that follows currentColor */
.rc-brand-mark {
	display: inline-flex;
	align-items: center;
	color: var(--rc-ink);
	line-height: 0;
	text-decoration: none;
}

.rc-brand-mark svg {
	display: block;
	width: auto;
	height: 1.35rem;
	fill: currentColor;
}

.rc-brand-mark:hover {
	color: var(--rc-graphite);
}

/* ============================================================
 * RaptClub v1.4.9 — language, currency and editable About page
 * ============================================================ */

.rc-header-tools {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
}

.rc-language-switcher,
.rc-currency-switcher {
	position: relative;
	display: inline-flex;
	align-items: center;
	margin: 0;
}

button.rc-disclosure__button {
	display: inline-grid !important;
	grid-template-columns: auto auto 0.42rem;
	align-items: center;
	justify-content: start !important;
	gap: 0.42rem;
	min-height: 2.42rem !important;
	padding: 0.48rem 0.6rem;
	border: 1px solid var(--rc-line-strong);
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--rc-ink) !important;
	font-family: var(--rc-font);
	font-size: 0.66rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.18;
	text-transform: uppercase;
	cursor: pointer;
	transition:
		background-color 180ms ease,
		color 180ms ease,
		border-color 180ms ease;
}

button.rc-disclosure__button:hover,
.rc-disclosure.is-open button.rc-disclosure__button {
	background: var(--rc-paper-soft) !important;
	border-color: var(--rc-line-strong);
	color: var(--rc-ink) !important;
}

button.rc-disclosure__button:focus-visible {
	outline: 1px solid var(--rc-ink);
	outline-offset: 2px;
}

.rc-disclosure__kicker {
	color: var(--rc-graphite);
	font-size: 0.56rem;
	font-weight: 600;
	letter-spacing: 0.1em;
}

button.rc-disclosure__button:hover .rc-disclosure__kicker,
.rc-disclosure.is-open button.rc-disclosure__button .rc-disclosure__kicker {
	color: var(--rc-muted);
}

.rc-disclosure__value {
	min-width: 1.35rem;
	text-align: left;
}

.rc-disclosure__mark {
	width: 0.42rem;
	height: 0.42rem;
	border-right: 1px solid currentColor;
	border-bottom: 1px solid currentColor;
	transform: translateY(-0.12rem) rotate(45deg);
	transition: transform 180ms ease;
}

.rc-disclosure.is-open .rc-disclosure__mark {
	transform: translateY(0.1rem) rotate(225deg);
}

.rc-disclosure__panel {
	position: absolute;
	top: calc(100% + 0.55rem);
	right: 0;
	z-index: 150;
	display: grid;
	min-width: 11.5rem;
	max-height: min(26rem, calc(100vh - var(--rc-header-height) - 2rem));
	overflow: auto;
	overscroll-behavior: contain;
	padding: 0.42rem;
	border: 1px solid var(--rc-line-strong);
	background: var(--rc-paper);
	box-shadow: 0 1rem 2rem rgba(0, 0, 0, 0.045);
	opacity: 0;
	pointer-events: none;
	transform: translateY(-0.35rem);
	visibility: hidden;
	scrollbar-color: var(--rc-line-strong) transparent;
	scrollbar-width: thin;
	transition:
		opacity 160ms ease,
		transform 160ms ease,
		visibility 0ms linear 160ms;
}

.rc-disclosure.is-open .rc-disclosure__panel {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	visibility: visible;
	transition-delay: 0ms;
}

.rc-disclosure__panel::-webkit-scrollbar {
	width: 0.45rem;
}

.rc-disclosure__panel::-webkit-scrollbar-track {
	background: transparent;
}

.rc-disclosure__panel::-webkit-scrollbar-thumb {
	background: var(--rc-line-strong);
}

.rc-disclosure__panel--language {
	width: min(16.5rem, calc(100vw - 2rem));
}

.rc-disclosure__panel--currency {
	width: min(16rem, calc(100vw - 2rem));
}

button.rc-disclosure__option {
	display: grid !important;
	grid-template-columns: 2.8rem 1fr;
	align-items: center;
	justify-content: stretch !important;
	gap: 0.65rem;
	width: 100%;
	min-height: 2.78rem !important;
	padding: 0.66rem 0.68rem !important;
	border: 0 !important;
	border-bottom: 1px solid var(--rc-line) !important;
	border-radius: 0;
	background: transparent !important;
	color: var(--rc-ink) !important;
	font-family: var(--rc-font);
	font-size: 0.72rem;
	font-weight: 600;
	line-height: 1.34;
	text-align: left;
	cursor: pointer;
	transition:
		background-color 140ms ease,
		color 140ms ease;
}

button.rc-disclosure__option:hover,
button.rc-disclosure__option:focus-visible,
button.rc-disclosure__option[aria-selected="true"] {
	background: var(--rc-paper-soft) !important;
	color: var(--rc-ink) !important;
	outline: none;
}

.rc-disclosure__option:last-child {
	border-bottom: 0 !important;
}

.rc-disclosure__code {
	display: inline-flex;
	align-items: center;
	min-height: 1.5em;
	padding-block: 0.05em;
	line-height: 1.34;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.rc-disclosure__label {
	display: inline-flex;
	align-items: center;
	min-width: 0;
	min-height: 1.5em;
	padding-block: 0.05em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: inherit;
	line-height: 1.34;
}

.rc-translation-engine,
.gtranslate_wrapper,
.gt_float_switcher,
.gt_container,
.goog-te-gadget,
.rc-translation-engine .gtranslate_wrapper,
.rc-translation-engine .gt_float_switcher,
.rc-translation-engine .gt_container,
.rc-translation-engine a.glink {
	position: absolute !important;
	left: -9999px !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	pointer-events: none !important;
	opacity: 0 !important;
}

.goog-te-banner-frame,
.goog-te-balloon-frame,
#goog-gt-tt,
.skiptranslate iframe,
iframe.skiptranslate {
	display: none !important;
	visibility: hidden !important;
}

html.translated-ltr body,
html.translated-rtl body,
body {
	top: 0 !important;
}

.goog-text-highlight,
font,
font font {
	background: transparent !important;
	box-shadow: none !important;
	color: inherit !important;
	font: inherit !important;
	position: static !important;
}

.page-id-18 .rc-page-hero {
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	gap: var(--rc-gutter);
	padding-bottom: clamp(2rem, 5vw, 4rem);
}

.page-id-18 .rc-page-hero .rc-kicker {
	padding-top: 0.4rem;
}

.page-id-18 .rc-page-hero h1 {
	max-width: 20ch;
	font-size: clamp(3.25rem, 8.2vw, 9.6rem);
	line-height: 0.88;
}

.rc-about-experience {
	display: grid;
	gap: clamp(3rem, 7vw, 7rem);
	padding-bottom: clamp(4rem, 8vw, 7rem);
}

.rc-about-intro {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: var(--rc-gutter);
	align-items: end;
	min-height: clamp(22rem, 44vw, 38rem);
	border-top: 1px solid var(--rc-line-strong);
}

.rc-about-intro__mark {
	align-self: stretch;
	display: flex;
	align-items: flex-end;
	padding-top: 1rem;
	color: var(--rc-muted);
	font-size: clamp(3rem, 7vw, 6.4rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 0.86;
	text-transform: uppercase;
}

.rc-about-intro__text {
	padding-top: clamp(2rem, 5vw, 5rem);
}

.rc-about-intro__text p {
	max-width: 44rem;
	margin: 0;
	color: var(--rc-graphite);
	font-size: clamp(1.15rem, 2vw, 1.65rem);
	line-height: 1.35;
}

.rc-about-ledger {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border: 1px solid var(--rc-line);
	background: var(--rc-line);
	gap: 1px;
}

.rc-about-ledger__item {
	min-height: 18rem;
	padding: clamp(1rem, 2vw, 1.5rem);
	background: var(--rc-paper);
}

.rc-about-ledger__item p:first-child {
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.7rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rc-about-ledger__item h2 {
	max-width: 11rem;
	margin: clamp(5rem, 9vw, 8rem) 0 0.8rem;
	font-size: clamp(1.45rem, 2.5vw, 2.35rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 0.98;
	text-transform: uppercase;
}

.rc-about-ledger__item p:last-child {
	margin: 0;
	color: var(--rc-graphite);
	font-size: 0.92rem;
	line-height: 1.55;
}

.rc-about-split {
	display: grid;
	grid-template-columns: minmax(0, 3fr) minmax(0, 9fr);
	gap: var(--rc-gutter);
	border-top: 1px solid var(--rc-line-strong);
	padding-top: clamp(1rem, 2.5vw, 2rem);
}

.rc-about-split__index {
	position: sticky;
	top: calc(var(--rc-header-height) + 1.5rem);
	align-self: start;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1.5;
	text-transform: uppercase;
}

.rc-about-split__body {
	display: grid;
	gap: clamp(1.4rem, 2.2vw, 2.2rem);
}

.rc-about-split__body h2 {
	max-width: 18ch;
	margin: 0;
	font-size: clamp(2.5rem, 5.6vw, 6.8rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 0.9;
	text-transform: uppercase;
}

.rc-about-split__body p {
	max-width: 46rem;
	margin: 0;
	color: var(--rc-graphite);
	font-size: clamp(1rem, 1.45vw, 1.22rem);
	line-height: 1.62;
}

.rc-about-manifesto {
	padding-block: clamp(2.5rem, 7vw, 6rem);
	border-block: 1px solid var(--rc-line-strong);
}

.rc-about-manifesto p {
	max-width: 18ch;
	margin: 0;
	font-size: clamp(3rem, 7.4vw, 7.8rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 0.9;
	text-transform: uppercase;
}

.rc-about-principles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	border: 1px solid var(--rc-line);
	background: var(--rc-line);
}

.rc-about-principle {
	min-height: 20rem;
	padding: clamp(1.2rem, 2.6vw, 2rem);
	background: var(--rc-paper);
}

.rc-about-principle p:first-child {
	margin: 0 0 clamp(4rem, 9vw, 8rem);
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rc-about-principle h3 {
	margin: 0 0 0.9rem;
	font-size: clamp(1.4rem, 2.4vw, 2.35rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 0.98;
	text-transform: uppercase;
}

.rc-about-principle p:last-child {
	max-width: 34rem;
	margin: 0;
	color: var(--rc-graphite);
	line-height: 1.58;
}

.rc-about-closing {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: var(--rc-gutter);
	align-items: start;
	padding-top: clamp(1.5rem, 3vw, 2.25rem);
	border-top: 1px solid var(--rc-line-strong);
}

.rc-about-closing h2 {
	margin: 0;
	font-size: clamp(2rem, 4.8vw, 5rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 0.92;
	text-transform: uppercase;
}

.rc-about-closing p {
	margin: 0;
	color: var(--rc-graphite);
	font-size: 1rem;
	line-height: 1.65;
}

.rc-sizing-note {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: var(--rc-gutter);
	align-items: start;
	padding-top: clamp(1.5rem, 3vw, 2.25rem);
	border-top: 1px solid var(--rc-line-strong);
}

.rc-sizing-note__label {
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rc-sizing-note__body {
	display: grid;
	gap: 1rem;
}

.rc-sizing-note__body p {
	max-width: 48rem;
	margin: 0;
	color: var(--rc-graphite);
	font-size: 1.06rem;
	line-height: 1.62;
}

@media (max-width: 74.99rem) {
	.rc-header-tools {
		gap: 0.35rem;
	}

	button.rc-disclosure__button {
		min-height: 2.75rem !important;
		padding-right: 0.48rem;
		padding-left: 0.48rem;
		font-size: 0.62rem;
	}

	.rc-disclosure__panel {
		max-height: min(22rem, calc(100vh - var(--rc-header-height) - 2rem));
	}

	.page-id-18 .rc-page-hero,
	.rc-about-intro,
	.rc-about-split,
	.rc-about-closing,
	.rc-sizing-note {
		grid-template-columns: 1fr;
	}

	.rc-about-ledger {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rc-about-split__index {
		position: static;
	}
}

@media (max-width: 47.99rem) {
	.rc-header-tools {
		display: none;
	}

	.rc-menu-is-open .rc-header-tools {
		position: fixed;
		top: var(--rc-header-height);
		right: 0;
		left: 0;
		z-index: 102;
		display: flex;
		justify-content: flex-start;
		gap: 0.55rem;
		padding: 0.75rem clamp(1.25rem, 5vw, 5rem);
		border-bottom: 1px solid var(--rc-line);
		background: var(--rc-paper);
	}

	.rc-menu-is-open .rc-disclosure__panel {
		top: calc(100% + 0.42rem);
		width: min(15.5rem, calc(100vw - 2.5rem));
	}

	.rc-menu-is-open .rc-language-switcher .rc-disclosure__panel {
		right: auto;
		left: 0;
	}

	.rc-menu-is-open .rc-primary-nav {
		top: calc(var(--rc-header-height) + 3.55rem);
	}

	.page-id-18 .rc-page-hero h1 {
		font-size: clamp(3rem, 16vw, 5.6rem);
	}

	.rc-about-intro__mark {
		min-height: 10rem;
	}

	.rc-about-ledger,
	.rc-about-principles {
		grid-template-columns: 1fr;
	}

	.rc-about-ledger__item,
	.rc-about-principle {
		min-height: 15rem;
	}
}

.rc-brand-mark--footer svg {
	height: 1.85rem;
}

/* Constrain WP custom_logo image to the same height as the SVG mark
 * so user-uploaded logos via Customize → Site Identity don't blow out
 * the header layout. */
.custom-logo-link {
	display: inline-flex;
	align-items: center;
	line-height: 0;
}

.custom-logo-link img {
	width: auto;
	height: 1.35rem;
	max-height: 1.35rem;
}

/* Body smoothing — explicitly set to subpixel-antialiased on macOS so
 * Chrome and Safari match (some Chrome builds use grayscale by default
 * which renders thinner). */
body {
	-webkit-font-smoothing: subpixel-antialiased;
	-moz-osx-font-smoothing: auto;
}
/* ============================================================
 * RaptClub v1.5.4 — proper CJK-safe disclosure typography
 *
 * The previous attempt used line-height 1.1 on the disclosure button
 * and 1.34 on options/codes/labels. CJK glyphs (Chinese, Japanese,
 * Korean) occupy the full em-box: there is no cap-height + ascender
 * cushion the way Latin glyphs have. With a tight line-height the
 * glyph tops protrude above the line-box. The .rc-disclosure__label
 * also has `overflow: hidden` for ellipsis safety on long names,
 * which then visibly clips those protruding glyph tops.
 *
 * Fix:
 *   - Lift line-height to 1.6 everywhere in the disclosure UI so the
 *     line-box always fully contains the CJK em-box plus a small
 *     visual cushion.
 *   - Add explicit padding-block on the wrappers so vertical centring
 *     inside the grid cell never lands the glyph against the box edge.
 *   - Reset display: block on the .__code / .__label wrappers so they
 *     don't depend on grid/inline-flex centring quirks across browsers.
 *   - Keep `overflow: hidden` on the label so long names still ellipsis
 *     truncate horizontally — the vertical breathing room from the new
 *     line-height + padding means the glyph top no longer hits the
 *     clipping box.
 *
 * Tested with: 简体中文 / 繁體中文 / 日本語 / 한국어 (in dropdown options),
 * and EN / JA / KO / DE (in the header switcher value).
 * ============================================================ */

/* Header switcher button (LANG / CUR pill). */
button.rc-disclosure__button {
	line-height: 1.5 !important;
	padding-block: 0.55rem !important;
	min-height: 2.55rem !important;
	align-items: center !important;
}

.rc-disclosure__button .rc-disclosure__kicker,
.rc-disclosure__button .rc-disclosure__value {
	display: inline-block;
	line-height: 1.5;
	padding-block: 0.06em;
	min-height: 0;
	overflow: visible;
}

/* Dropdown option row (e.g. "ZH-S 简体中文"). */
button.rc-disclosure__option {
	line-height: 1.6 !important;
	padding-block: 0.7rem !important;
	min-height: 2.95rem !important;
	align-items: center !important;
}

/* Left column: the language/currency code (always Latin, e.g. "ZH-S"). */
.rc-disclosure__option .rc-disclosure__code,
.rc-disclosure__code {
	display: block;
	align-items: initial;
	line-height: 1.6;
	padding-block: 0.1em;
	min-height: 0;
	overflow: visible;
}

/* Right column: the localised label (can be CJK like "简体中文"). */
.rc-disclosure__option .rc-disclosure__label,
.rc-disclosure__label {
	display: block;
	align-items: initial;
	line-height: 1.6;
	padding-block: 0.1em;
	min-height: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
/* ============================================================
 * RaptClub v1.5.5 — grid border weight + block-grid cell alignment
 *
 * Two reported visual inconsistencies, plus a global audit pass.
 *
 * (1) Home page category index grid — the top horizontal line was
 *     rendered with --rc-line-strong while every interior line used
 *     --rc-line, so the top edge read as thicker/darker than the
 *     rest of the frame. Unify to one stroke weight.
 *
 * (2) About-page ledger + principles + split — cards/items 2-N sat
 *     24px lower than item 1, leaving a gray strip above them.
 *     Root cause: the wrapper is a `wp-block-group` with the
 *     `is-layout-flow` class. The WordPress flow rule
 *
 *         :where(.is-layout-flow) > * { margin-block-start: 24px }
 *
 *     adds 24px top margin to every child except the first. The
 *     wrappers themselves are CSS grids though, so that margin
 *     pushes the inner card down inside its grid cell and exposes
 *     the parent's --rc-line background as a phantom top band.
 *
 *     Same pattern can hit any future block-edited grid. We
 *     defensively scope a `margin-block: 0` override to every
 *     block-group descendant that is itself a CSS-grid layout, so
 *     the same kind of grid will Just Work in future authoring.
 *
 * Bonus: subtle hover state on .rc-about-ledger__item and
 * .rc-about-principle. The user asked whether the gray band was
 * meant to be a hover micro-interaction. It wasn't (it was a
 * layout bug), but giving these editorial blocks a soft hover
 * background shift answers that question — and matches the
 * existing color-shift pattern used elsewhere in the design system.
 * No translateY lift because the 1px gap-and-background separator
 * pattern would visually fight a transform.
 * ============================================================ */

/* (1) Home index grid: unify border weight. */
.rc-index-grid {
	border-top-color: var(--rc-line);
}

/* (2) About-page block-edited grids: reset the WP flow margin so
 * every cell starts at the same y. Both the immediate item wrapper
 * and the inner theme-styled container are reset, since either
 * could be the direct grid item depending on the block markup. */
.rc-about-ledger > *,
.rc-about-ledger__item,
.rc-about-principles > *,
.rc-about-principle,
.rc-about-split > * {
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

/* Defensive: any future block-group that's authored as a CSS grid
 * gets the same treatment for its direct children, so editors can
 * compose new ledger-style grids without re-discovering this bug. */
.wp-block-group.is-layout-flow[style*="display: grid"] > *,
.wp-block-group.is-layout-flow[style*="display:grid"] > * {
	margin-block-start: 0 !important;
}

/* Subtle hover state on editorial cards. Background shift only, no
 * translateY (it would reveal the 1px separator line below). */
.rc-about-ledger__item,
.rc-about-principle {
	transition:
		background-color 240ms var(--rc-ease),
		color 240ms var(--rc-ease);
}

.rc-about-ledger__item:hover,
.rc-about-principle:hover {
	background-color: var(--rc-paper-soft);
}
/* ============================================================
 * RaptClub v1.5.6 — suppress doubled divider on About-style pages
 *
 * The generic .rc-page-hero adds a `border-bottom: 1px solid --rc-line`
 * as a section separator between the hero (kicker + h1) and the body
 * content. That works for info pages whose first body block has no
 * border-top of its own (Discover, Sizing, Care, etc.).
 *
 * The About page is different: its first body block is .rc-about-intro
 * which already provides a `border-top: 1px solid --rc-line-strong`.
 * Stacking the two produced the visible doubled divider — a faint
 * --rc-line line 56px above a stronger --rc-line-strong line.
 *
 * Suppress the hero's border-bottom on any page whose body content
 * begins with an About-section wrapper, using :has() so the rule
 * scales to future About-style layouts without hard-coding a page id.
 * ============================================================ */

.rc-page-article:has(.rc-page-body > .rc-about-experience) .rc-page-hero,
.rc-page-article:has(.rc-page-body > .rc-about-intro) .rc-page-hero {
	border-bottom: 0;
}
/* ============================================================
 * RaptClub v1.7.0 — user account system styling
 *
 * Targets WooCommerce My Account templates that the theme overrides
 * under /woocommerce/myaccount/. Style hooks are scoped under
 * .rc-account or .rc-account-body so they cannot bleed into other
 * WC surfaces (shop / cart / checkout / single product).
 *
 * Reuses existing design tokens (--rc-paper, --rc-ink, --rc-line,
 * --rc-line-strong, --rc-muted, --rc-graphite, --rc-frame, --rc-ease)
 * and the existing layout primitives (.rc-page-hero, .rc-info-grid,
 * .rc-info-block) so the account UI feels native to the site.
 * ============================================================ */

/* ---------- Account page scaffold ---------- */

.rc-account .rc-page-hero--account {
	padding-block: clamp(2.25rem, 5vw, 4rem) clamp(1.5rem, 3.5vw, 3rem);
	border-bottom: 1px solid var(--rc-line);
}

.rc-account .rc-page-hero--account h1 {
	font-size: clamp(2.4rem, 5vw, 3.5rem);
}

.rc-account-body {
	padding-block: 0 var(--rc-section);
}

/* ---------- Navigation: underline tabs across the top ---------- */

.woocommerce-MyAccount-navigation {
	margin: 0 0 clamp(1.5rem, 3vw, 2.5rem);
	padding: 0;
	border-bottom: 1px solid var(--rc-line);
}

.woocommerce-MyAccount-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce-MyAccount-navigation li {
	margin: 0;
	padding: 0;
}

.woocommerce-MyAccount-navigation a {
	display: inline-flex;
	align-items: center;
	padding: 0.85rem 1.25rem 0.85rem 0;
	margin-right: 1.5rem;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	transition: color 180ms var(--rc-ease), box-shadow 180ms var(--rc-ease);
}

.woocommerce-MyAccount-navigation a:hover {
	color: var(--rc-ink);
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation a[aria-current="page"] {
	color: var(--rc-ink);
	box-shadow: inset 0 -1px 0 0 var(--rc-ink);
}

.woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--rc-muted);
}

@media (max-width: 47.99rem) {
	.woocommerce-MyAccount-navigation ul {
		gap: 0;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		flex-wrap: nowrap;
	}
	.woocommerce-MyAccount-navigation a {
		white-space: nowrap;
	}
}

/* ---------- Dashboard layout ---------- */

.rc-account-dashboard {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
}

.rc-account-dashboard__greeting p {
	max-width: 56rem;
	margin: 0 0 0.5rem;
	color: var(--rc-graphite);
	font-size: 1.05rem;
	line-height: 1.55;
}

.rc-account-dashboard__greeting p:last-child {
	margin-bottom: 0;
}

/* Client ID prominent display */
.rc-client-id-block {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: clamp(0.75rem, 2vw, 1.5rem);
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--rc-line);
	background: var(--rc-paper);
}

.rc-client-id-block__label {
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
}

.rc-client-id-block__value {
	margin: 0;
	color: var(--rc-ink);
	font-size: clamp(1.6rem, 3.4vw, 2.4rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

/* Recent-orders preview block on the dashboard */
.rc-account-recent {
	display: grid;
	gap: clamp(1rem, 2vw, 1.5rem);
}

.rc-account-recent__header {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: baseline;
	justify-content: space-between;
}

.rc-account-recent__header p {
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rc-account-recent__header h2 {
	margin: 0;
	color: var(--rc-ink);
	font-size: clamp(1.4rem, 2.5vw, 1.85rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.05;
	text-transform: uppercase;
}

.rc-account-recent__list {
	display: grid;
	gap: 0;
	border-top: 1px solid var(--rc-line);
}

.rc-account-recent__row {
	display: grid;
	grid-template-columns: minmax(0, 5rem) minmax(0, 1fr) minmax(0, 7rem) minmax(0, 6rem) auto;
	gap: clamp(0.75rem, 2vw, 1.5rem);
	align-items: center;
	padding: 0.9rem 0;
	border-bottom: 1px solid var(--rc-line);
	font-size: 0.86rem;
	color: var(--rc-ink);
}

.rc-account-recent__row a.rc-text-link {
	min-height: 0;
	padding: 0;
	border: 0;
	font-size: 0.72rem;
}

.rc-account-recent__row code {
	font-family: var(--rc-font);
	font-variant-numeric: tabular-nums;
	color: var(--rc-muted);
	font-size: 0.78rem;
}

.rc-account-recent__row .rc-status-pill {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.5rem;
	border: 1px solid var(--rc-line-strong);
	background: var(--rc-paper-soft);
	color: var(--rc-ink);
	font-size: 0.66rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1;
	text-transform: uppercase;
}

.rc-account-recent__empty {
	margin: 0;
	padding: 1.5rem 0;
	color: var(--rc-muted);
	font-size: 0.92rem;
}

@media (max-width: 47.99rem) {
	.rc-account-recent__row {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-rows: auto auto auto;
		gap: 0.25rem 1rem;
		padding: 1rem 0;
	}
	.rc-account-recent__row > code { grid-row: 1; grid-column: 1; }
	.rc-account-recent__row > time { grid-row: 1; grid-column: 2; text-align: right; }
	.rc-account-recent__row > .rc-status-pill { grid-row: 2; grid-column: 1; }
	.rc-account-recent__row > .rc-total { grid-row: 2; grid-column: 2; text-align: right; }
	.rc-account-recent__row > a.rc-text-link { grid-row: 3; grid-column: 1 / -1; padding-top: 0.5rem; }
}

/* Dashboard quick-links grid uses the existing .rc-info-grid */
.rc-account-dashboard .rc-info-grid {
	margin-top: 0;
}

.rc-account-dashboard .rc-info-block {
	min-height: 16rem;
}

.rc-account-dashboard .rc-info-block h2 {
	margin: clamp(2rem, 5vw, 4rem) 0 0.75rem;
	font-size: clamp(1.25rem, 2vw, 1.65rem);
}

/* ---------- Orders list (full page) ---------- */

.woocommerce-orders-table,
.woocommerce-MyAccount-content table.shop_table {
	width: 100%;
	border: 0;
	background: transparent;
	border-collapse: collapse;
}

.woocommerce-orders-table thead th,
.woocommerce-MyAccount-content table.shop_table thead th {
	padding: 0.85rem 0;
	border: 0;
	border-bottom: 1px solid var(--rc-line-strong);
	background: transparent;
	color: var(--rc-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-align: left;
	text-transform: uppercase;
}

.woocommerce-orders-table tbody td,
.woocommerce-MyAccount-content table.shop_table tbody td {
	padding: 1.1rem 0.5rem 1.1rem 0;
	border: 0;
	border-bottom: 1px solid var(--rc-line);
	background: transparent;
	color: var(--rc-ink);
	font-size: 0.92rem;
}

.woocommerce-orders-table tbody tr:last-child td {
	border-bottom: 1px solid var(--rc-line-strong);
}

.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions {
	text-align: right;
}

.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions .button {
	min-height: 2.4rem;
	padding: 0.55rem 0.85rem;
	font-size: 0.66rem;
}

/* Pagination */
.woocommerce-pagination ul.page-numbers {
	display: flex;
	gap: 0.25rem;
	padding: 0;
	margin: clamp(1.5rem, 3vw, 2.5rem) 0 0;
	list-style: none;
}

.woocommerce-pagination ul.page-numbers a,
.woocommerce-pagination ul.page-numbers span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.4rem;
	min-height: 2.4rem;
	padding: 0 0.6rem;
	border: 1px solid var(--rc-line);
	color: var(--rc-ink);
	font-size: 0.78rem;
	font-weight: 600;
	text-decoration: none;
}

.woocommerce-pagination ul.page-numbers span.current,
.woocommerce-pagination ul.page-numbers a:hover {
	border-color: var(--rc-ink);
	background: var(--rc-ink);
	color: var(--rc-paper);
}

/* ---------- View order ---------- */

.rc-view-order {
	display: grid;
	gap: clamp(2rem, 4vw, 3rem);
}

.rc-view-order__summary {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: 0 clamp(1.5rem, 3vw, 2.5rem);
	padding: 1.25rem 0;
	border-top: 1px solid var(--rc-line-strong);
	border-bottom: 1px solid var(--rc-line);
}

.rc-view-order__summary > div { display: grid; gap: 0.25rem; }

.rc-view-order__summary dt {
	color: var(--rc-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rc-view-order__summary dd {
	margin: 0;
	color: var(--rc-ink);
	font-size: 1rem;
	font-weight: 600;
}

.rc-view-order__tracking {
	padding: clamp(1rem, 2vw, 1.5rem);
	border: 1px solid var(--rc-line);
	background: var(--rc-paper);
}

.rc-view-order__tracking p {
	margin: 0;
	color: var(--rc-graphite);
	font-size: 0.92rem;
}

.rc-view-order__tracking strong {
	display: block;
	margin-bottom: 0.35rem;
	color: var(--rc-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rc-view-order__tracking a {
	color: var(--rc-ink);
	font-weight: 600;
	border-bottom: 1px solid currentColor;
}

.rc-view-order__addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
	gap: 1px;
	background: var(--rc-line);
	border: 1px solid var(--rc-line);
}

.rc-view-order__addresses > * {
	padding: clamp(1rem, 2vw, 1.5rem);
	background: var(--rc-paper);
}

.rc-view-order__addresses h3 {
	margin: 0 0 0.85rem;
	color: var(--rc-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rc-view-order__addresses address {
	margin: 0;
	font-size: 0.92rem;
	font-style: normal;
	line-height: 1.55;
	color: var(--rc-ink);
}

/* ---------- Edit account / Profile ---------- */

.woocommerce-EditAccountForm,
.woocommerce-ResetPassword,
.woocommerce-Address__edit form {
	display: grid;
	gap: 1rem;
	max-width: 36rem;
}

.woocommerce-form-row,
.woocommerce-EditAccountForm p,
.woocommerce-ResetPassword p {
	display: grid;
	gap: 0.4rem;
	margin: 0;
}

.woocommerce-form-row label,
.woocommerce-EditAccountForm label {
	color: var(--rc-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.woocommerce-form-row .required {
	color: var(--rc-graphite);
	text-decoration: none;
}

.woocommerce-form-row span em,
.woocommerce-EditAccountForm em {
	display: block;
	margin-top: 0.35rem;
	color: var(--rc-muted);
	font-size: 0.78rem;
	font-style: normal;
	line-height: 1.45;
}

.woocommerce-EditAccountForm fieldset {
	margin: clamp(1rem, 2vw, 1.5rem) 0 0;
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--rc-line);
	background: var(--rc-paper);
}

.woocommerce-EditAccountForm fieldset legend {
	padding: 0;
	color: var(--rc-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

/* ---------- Addresses page ---------- */

.woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
	gap: 1px;
	background: var(--rc-line);
	border: 1px solid var(--rc-line);
}

.woocommerce-Address {
	padding: clamp(1.25rem, 2.5vw, 2rem);
	background: var(--rc-paper);
}

.woocommerce-Address-title {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	margin: 0 0 1rem;
}

.woocommerce-Address-title h2,
.woocommerce-Address-title h3 {
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.woocommerce-Address-title a {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--rc-ink);
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	padding-bottom: 0.1rem;
}

.woocommerce-Address address {
	margin: 0;
	font-size: 0.95rem;
	font-style: normal;
	line-height: 1.55;
	color: var(--rc-ink);
}

/* ---------- Login + Register forms ---------- */

.rc-account-auth {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
	gap: clamp(1.5rem, 3vw, 3rem);
	max-width: 56rem;
}

.rc-account-auth__panel {
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--rc-line);
	background: var(--rc-paper);
}

.rc-account-auth__panel h2 {
	margin: 0 0 0.5rem;
	color: var(--rc-ink);
	font-size: clamp(1.3rem, 2.5vw, 1.75rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
	text-transform: uppercase;
}

.rc-account-auth__panel p.rc-lede {
	margin: 0 0 1.25rem;
	color: var(--rc-graphite);
	font-size: 0.95rem;
	line-height: 1.5;
}

.rc-account-auth__panel .woocommerce-form-row {
	margin: 0 0 0.85rem;
}

.rc-account-auth__panel .woocommerce-form-row:last-of-type {
	margin: 0;
}

.rc-account-auth__panel .button {
	margin-top: 1rem;
	width: auto;
}

.rc-account-auth__panel .lost-password {
	margin: 0.75rem 0 0;
	font-size: 0.78rem;
}

.rc-account-auth__panel .lost-password a {
	color: var(--rc-muted);
	border-bottom: 1px solid currentColor;
	text-decoration: none;
}

.rc-account-auth__terms {
	margin: 0.5rem 0 0;
	color: var(--rc-muted);
	font-size: 0.78rem;
	line-height: 1.5;
}

.rc-account-auth__terms a {
	color: var(--rc-ink);
	border-bottom: 1px solid currentColor;
	text-decoration: none;
}

/* ---------- Notices on My Account ---------- */

.woocommerce-MyAccount-content .woocommerce-notices-wrapper:empty {
	display: none;
}

.rc-account .woocommerce-notices-wrapper {
	margin-bottom: 1.25rem;
}

/* ---------- Header: icon-link combo (ACCOUNT + CART) ---------- */

.rc-icon-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--rc-ink);
	text-decoration: none;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
	min-height: 2rem;
	transition: color 180ms var(--rc-ease);
}

.rc-icon-link:hover {
	color: var(--rc-graphite);
}

.rc-icon-link svg {
	display: block;
	width: 1rem;
	height: 1rem;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
	fill: none;
}

.rc-icon-link__label {
	white-space: nowrap;
}

.rc-cart-link.rc-icon-link {
	gap: 0.5rem;
}

/* Cart count badge stays next to the label */
.rc-cart-link .rc-cart-count {
	margin-left: 0.25rem;
}

@media (max-width: 47.99rem) {
	.rc-icon-link__label {
		display: none;
	}
	.rc-cart-link .rc-cart-count {
		margin-left: 0.35rem;
	}
}

/* ============================================================
 * RaptClub v1.7.1 — account polish, icon header and copy-safe UI
 * ============================================================ */

.rc-page-hero h1:has(.rc-title-pill) {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.55rem 0.85rem;
}

.rc-title-pill {
	display: inline-flex;
	align-items: center;
	min-height: 1.55rem;
	padding: 0.25rem 0.5rem 0.2rem;
	border: 1px solid var(--rc-line-strong);
	color: var(--rc-muted);
	font-size: clamp(0.64rem, 1vw, 0.72rem);
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1;
	text-transform: uppercase;
	white-space: nowrap;
}

.rc-header-actions {
	gap: 0.55rem;
}

.rc-icon-link {
	position: relative;
	display: inline-grid;
	place-items: center;
	width: 2.55rem;
	min-width: 2.55rem;
	height: 2.55rem;
	min-height: 2.55rem;
	padding: 0;
	border: 1px solid var(--rc-line-strong);
	background: transparent;
	color: var(--rc-ink);
	line-height: 1;
	transition:
		background-color 180ms var(--rc-ease),
		border-color 180ms var(--rc-ease),
		color 180ms var(--rc-ease);
}

.rc-icon-link:hover,
.rc-icon-link:focus-visible {
	border-color: var(--rc-ink);
	background: var(--rc-paper-soft);
	color: var(--rc-ink);
	outline: none;
}

.rc-icon-link svg {
	width: 1.08rem;
	height: 1.08rem;
}

.rc-icon-link__label {
	display: none !important;
}

.rc-cart-link .rc-cart-count {
	position: absolute;
	top: -0.45rem;
	right: -0.45rem;
	display: inline-grid;
	place-items: center;
	min-width: 1.18rem;
	height: 1.18rem;
	margin: 0;
	padding-inline: 0.28rem;
	border: 1px solid var(--rc-line-strong);
	background: var(--rc-paper);
	color: var(--rc-ink);
	font-size: 0.56rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger {
	display: grid !important;
	place-items: center !important;
	width: 2.75rem !important;
	height: 2.75rem !important;
	padding: 0 !important;
	font-size: 0 !important;
	line-height: 0 !important;
	text-indent: 0 !important;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::before {
	top: 50%;
	left: 50%;
	width: 1.05rem;
	height: 1.05rem;
	border-width: 0.14rem;
	transform: translate(-50%, -50%);
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger::after {
	top: 50%;
	left: 50%;
	width: 0.72rem;
	height: 0.14rem;
	transform: translate(0.2rem, 0.32rem) rotate(45deg);
	transform-origin: left center;
}

.woocommerce-MyAccount-navigation {
	margin: 0 0 clamp(1.75rem, 3vw, 2.5rem);
	border: 1px solid var(--rc-line);
	background: var(--rc-line);
	overflow: hidden;
}

.woocommerce-MyAccount-navigation ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(8.5rem, 1fr));
	gap: 1px;
	background: var(--rc-line);
}

.woocommerce-MyAccount-navigation li {
	background: var(--rc-paper);
}

.woocommerce-MyAccount-navigation a {
	justify-content: center;
	width: 100%;
	min-height: 3.15rem;
	margin: 0;
	padding: 0.85rem 1rem;
	text-align: center;
	box-shadow: none !important;
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation a[aria-current="page"],
.woocommerce-MyAccount-navigation a:hover,
.woocommerce-MyAccount-navigation a:focus-visible {
	background: var(--rc-paper-soft);
	color: var(--rc-ink);
	outline: none;
}

.rc-account-dashboard {
	gap: clamp(1.5rem, 3vw, 2.25rem);
}

.rc-account-dashboard__greeting {
	display: grid;
	gap: 0.45rem;
	padding-bottom: clamp(1.1rem, 2.4vw, 1.6rem);
	border-bottom: 1px solid var(--rc-line);
}

.rc-account-dashboard__greeting p {
	max-width: 44rem;
	margin: 0;
}

.rc-account-dashboard__eyebrow {
	color: var(--rc-muted) !important;
	font-size: 0.72rem !important;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2 !important;
	text-transform: uppercase;
}

.rc-account-dashboard__greeting p:nth-child(2) {
	color: var(--rc-ink);
	font-size: clamp(1.25rem, 2.2vw, 1.7rem);
	font-weight: 600;
	line-height: 1.15;
}

.rc-account-dashboard__greeting p:last-child {
	color: var(--rc-graphite);
	font-size: 0.96rem;
	line-height: 1.5;
}

.rc-client-id-block {
	display: inline-grid;
	grid-template-columns: auto auto;
	align-items: baseline;
	justify-content: start;
	width: fit-content;
	max-width: 100%;
	gap: 0.85rem;
	padding: 0.82rem 0.95rem;
	border-color: var(--rc-line);
	background: transparent;
}

.rc-client-id-block__label {
	font-size: 0.68rem;
}

.rc-client-id-block__value {
	font-size: clamp(1.25rem, 2vw, 1.55rem);
	line-height: 1.05;
}

.rc-account-recent {
	gap: 0.9rem;
}

.rc-account-recent__header {
	padding-bottom: 0.85rem;
	border-bottom: 1px solid var(--rc-line);
}

.rc-account-recent__header h2 {
	font-size: clamp(1.25rem, 2vw, 1.55rem);
}

.rc-account-recent__empty {
	padding: 1rem 1.1rem;
	border: 1px solid var(--rc-line);
	background: transparent;
	color: var(--rc-graphite);
}

.rc-account-dashboard .rc-info-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 0;
}

.rc-account-dashboard .rc-info-block {
	display: flex;
	flex-direction: column;
	min-height: 11.5rem;
	padding: clamp(1rem, 1.8vw, 1.35rem);
	transition:
		background-color 180ms var(--rc-ease),
		color 180ms var(--rc-ease);
}

.rc-account-dashboard .rc-info-block:hover {
	background: var(--rc-paper-soft);
	color: var(--rc-ink);
}

.rc-account-dashboard .rc-info-block h2 {
	max-width: none;
	margin: auto 0 0.55rem;
	font-size: clamp(1.05rem, 1.5vw, 1.25rem);
	line-height: 1.05;
}

.rc-account-dashboard .rc-info-block p {
	max-width: 24rem;
	font-size: 0.9rem;
	line-height: 1.5;
}

.rc-account-empty {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem;
	border: 1px solid var(--rc-line);
	background: transparent;
}

.rc-account-empty p {
	margin: 0;
	color: var(--rc-graphite);
	font-size: 0.95rem;
}

.woocommerce-EditAccountForm,
.woocommerce-Address__edit form {
	max-width: 64rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.1rem 1.5rem;
}

.woocommerce-EditAccountForm .form-row-first,
.woocommerce-EditAccountForm .form-row-last {
	float: none;
	width: auto;
}

.woocommerce-EditAccountForm .form-row-wide,
.woocommerce-EditAccountForm fieldset,
.woocommerce-EditAccountForm > p:last-child,
.woocommerce-Address__edit form h2,
.woocommerce-address-fields,
.woocommerce-address-fields__field-wrapper,
.woocommerce-address-fields p {
	grid-column: 1 / -1;
}

.woocommerce-EditAccountForm .clear {
	display: none;
}

.woocommerce-EditAccountForm fieldset {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1rem 1.25rem;
	margin: 0.65rem 0 0;
	padding: 1.25rem 0 0;
	border: 0;
	border-top: 1px solid var(--rc-line);
	background: transparent;
}

.woocommerce-EditAccountForm fieldset legend {
	display: block;
	width: 100%;
	margin: 0 0 0.15rem;
	padding: 0;
	color: var(--rc-ink);
	font-size: 0.72rem;
	line-height: 1.3;
}

.woocommerce-EditAccountForm .rc-form-note {
	grid-column: 1 / -1;
	margin: 0 0 0.25rem;
	color: var(--rc-muted);
	font-size: 0.82rem;
	line-height: 1.45;
}

.woocommerce-form-row label,
.woocommerce-EditAccountForm label {
	line-height: 1.35;
}

.woocommerce form .password-input {
	position: relative;
	display: block;
}

.woocommerce form .password-input input.input-text,
.woocommerce form .password-input input[type="password"],
.woocommerce form .password-input input[type="text"] {
	padding-right: 3.55rem;
}

.woocommerce form .show-password-input,
.woocommerce form button.show-password-input {
	position: absolute;
	top: 1px;
	right: 1px;
	bottom: 1px;
	width: 3.15rem;
	min-height: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-left: 1px solid var(--rc-line-strong) !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--rc-ink) !important;
	font-size: 0 !important;
	line-height: 0 !important;
	text-indent: 0 !important;
}

.woocommerce form .show-password-input::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.05rem;
	height: 0.72rem;
	border: 0.13rem solid currentColor;
	border-radius: 50%;
	transform: translate(-50%, -50%);
}

.woocommerce form .show-password-input::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.25rem;
	height: 0.12rem;
	background: currentColor;
	transform: translate(-50%, -50%) rotate(-35deg);
}

.woocommerce form .show-password-input:hover,
.woocommerce form .show-password-input:focus-visible {
	background: var(--rc-paper-soft) !important;
	outline: none;
}

.woocommerce-form__label-for-checkbox {
	display: inline-flex !important;
	align-items: center;
	gap: 0.45rem;
	color: var(--rc-graphite);
	font-size: 0.86rem;
	line-height: 1.35;
}

.woocommerce-form__input-checkbox,
.woocommerce form input[type="checkbox"] {
	appearance: none;
	display: inline-grid;
	place-items: center;
	width: 1rem;
	height: 1rem;
	margin: 0;
	border: 1px solid var(--rc-line-strong);
	background: transparent;
}

.woocommerce-form__input-checkbox:checked,
.woocommerce form input[type="checkbox"]:checked {
	background: var(--rc-ink);
	box-shadow: inset 0 0 0 0.22rem var(--rc-paper);
}

.rc-account-auth {
	width: min(100%, 44rem);
	max-width: 44rem;
	grid-template-columns: 1fr;
}

.rc-account-auth__panel {
	background: transparent;
}

.rc-account-auth__panel h2 {
	font-size: clamp(1.3rem, 2vw, 1.6rem);
}

.rc-account-auth__panel .form-row {
	margin: 0 0 0.9rem;
}

.rc-account-auth__panel .form-row:last-of-type {
	margin-bottom: 0;
}

.woocommerce-Addresses > p,
.woocommerce-MyAccount-content > p {
	max-width: 44rem;
	color: var(--rc-graphite);
	line-height: 1.55;
}

.woocommerce-Address-title {
	align-items: center;
	gap: 1rem;
}

.woocommerce-Address-title a {
	display: inline-flex;
	align-items: center;
	min-height: 2rem;
}

.select2-container .select2-selection--single {
	height: 3.25rem;
	border: 1px solid var(--rc-line-strong);
	border-radius: 0;
	background: transparent;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0.88rem 2.25rem 0.88rem 1rem;
	color: var(--rc-ink);
	font-size: 0.95rem;
	line-height: 1.35;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	top: 0;
	right: 0.6rem;
	height: 3.25rem;
}

button.rc-disclosure__option {
	overflow: visible;
}

.rc-disclosure__option .rc-disclosure__code,
.rc-disclosure__option .rc-disclosure__label {
	line-height: 1.78;
	padding-block: 0.16em;
}

.rc-disclosure__option .rc-disclosure__label {
	overflow-y: visible;
}

@media (min-width: 75rem) {
	.rc-account-auth:has(.rc-account-auth__panel + .rc-account-auth__panel) {
		width: min(100%, 64rem);
		max-width: 64rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 74.99rem) {
	.rc-account-dashboard .rc-info-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 47.99rem) {
	.rc-icon-link {
		width: 2.45rem;
		min-width: 2.45rem;
		height: 2.45rem;
		min-height: 2.45rem;
	}

	.woocommerce-MyAccount-navigation ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		overflow: visible;
	}

	.woocommerce-MyAccount-navigation a {
		min-height: 3rem;
		font-size: 0.68rem;
	}

	.rc-client-id-block {
		width: 100%;
		justify-content: space-between;
	}

	.woocommerce-EditAccountForm,
	.woocommerce-EditAccountForm fieldset,
	.woocommerce-Address__edit form {
		grid-template-columns: 1fr;
	}

	.rc-account-empty {
		display: grid;
	}

	.rc-title-pill {
		margin-top: 0.2rem;
	}
}

/* ============================================================
 * RaptClub v1.8.0 — rebuilt account workspace
 * ============================================================ */

.rc-cart-link .rc-cart-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.22rem;
	width: auto;
	height: 1.22rem;
	box-sizing: border-box;
	padding: 0.06rem 0.28rem 0;
	text-align: center;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.rc-account .rc-page-hero--account {
	padding-block: clamp(2.75rem, 5vw, 4.75rem) clamp(2rem, 3.5vw, 3rem);
	border-bottom: 0;
}

.rc-account .rc-page-hero--account h1 {
	font-size: clamp(3rem, 7vw, 5.25rem);
	line-height: 0.95;
}

.rc-account-body {
	padding-block: 0 clamp(4rem, 7vw, 7rem);
}

.rc-account-shell {
	display: grid;
	grid-template-columns: minmax(12rem, 15.5rem) minmax(0, 1fr);
	gap: clamp(2rem, 4vw, 4.5rem);
	align-items: start;
	padding-top: clamp(2.25rem, 4vw, 3.25rem);
	border-top: 1px solid var(--rc-line-strong);
}

.woocommerce-MyAccount-content.rc-account-panel {
	min-width: 0;
	max-width: 78rem;
	margin: 0;
	padding: 0;
}

.woocommerce-MyAccount-content.rc-account-panel > *:first-child {
	margin-top: 0;
}

.woocommerce-MyAccount-navigation.rc-account-nav {
	position: sticky;
	top: 6rem;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	overflow: visible;
}

.woocommerce-MyAccount-navigation.rc-account-nav ul {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	width: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	border-top: 1px solid var(--rc-line);
	list-style: none;
}

.woocommerce-MyAccount-navigation.rc-account-nav li {
	margin: 0;
	padding: 0;
	background: transparent;
	border-bottom: 1px solid var(--rc-line);
}

.woocommerce-MyAccount-navigation.rc-account-nav a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 3.35rem;
	margin: 0;
	padding: 0.95rem 0;
	border: 0;
	background: transparent;
	box-shadow: none !important;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-align: left;
	text-decoration: none;
	text-transform: uppercase;
	transition:
		background-color 180ms var(--rc-ease),
		color 180ms var(--rc-ease),
		padding-inline 180ms var(--rc-ease);
}

.woocommerce-MyAccount-navigation.rc-account-nav a::after {
	content: "";
	width: 0.38rem;
	height: 0.38rem;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	opacity: 0;
	transform: rotate(45deg) translateX(-0.18rem);
	transition:
		opacity 180ms var(--rc-ease),
		transform 180ms var(--rc-ease);
}

.woocommerce-MyAccount-navigation.rc-account-nav li.is-active a,
.woocommerce-MyAccount-navigation.rc-account-nav a[aria-current="page"],
.woocommerce-MyAccount-navigation.rc-account-nav a:hover,
.woocommerce-MyAccount-navigation.rc-account-nav a:focus-visible {
	background: transparent;
	color: var(--rc-ink);
	outline: none;
}

.woocommerce-MyAccount-navigation.rc-account-nav li.is-active a::after,
.woocommerce-MyAccount-navigation.rc-account-nav a[aria-current="page"]::after,
.woocommerce-MyAccount-navigation.rc-account-nav a:hover::after,
.woocommerce-MyAccount-navigation.rc-account-nav a:focus-visible::after {
	opacity: 1;
	transform: rotate(45deg) translateX(0);
}

.woocommerce-MyAccount-navigation.rc-account-nav .woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: 1.35rem;
	border-bottom: 0;
}

.woocommerce-MyAccount-navigation.rc-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a {
	min-height: 3.2rem;
	padding-inline: 1rem;
	border: 1px solid var(--rc-ink);
	background: var(--rc-ink);
	color: var(--rc-paper) !important;
	-webkit-text-fill-color: var(--rc-paper) !important;
}

.woocommerce-MyAccount-navigation.rc-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a:hover,
.woocommerce-MyAccount-navigation.rc-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a:focus-visible {
	background: transparent;
	color: var(--rc-ink) !important;
	-webkit-text-fill-color: var(--rc-ink) !important;
}

.woocommerce-MyAccount-navigation.rc-account-nav .woocommerce-MyAccount-navigation-link--customer-logout a span {
	display: block !important;
	visibility: visible !important;
	color: inherit !important;
	-webkit-text-fill-color: currentColor !important;
	opacity: 1 !important;
	font-size: 0.72rem;
	line-height: 1.2;
}

.rc-account-section,
.rc-account-dashboard {
	display: grid;
	gap: clamp(1.4rem, 2.5vw, 2rem);
}

.rc-account-section + .rc-account-section {
	margin-top: clamp(2.25rem, 4vw, 3.5rem);
}

.rc-account-section__header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(16rem, 0.42fr);
	gap: clamp(1.5rem, 3vw, 3rem);
	align-items: end;
	padding-bottom: clamp(1rem, 2vw, 1.35rem);
	border-bottom: 1px solid var(--rc-line);
}

.rc-account-section__header h2,
.rc-account-dashboard__intro h2 {
	margin: 0;
	color: var(--rc-ink);
	font-size: clamp(1.55rem, 2.8vw, 2.35rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
	text-transform: uppercase;
}

.rc-account-section__header > p,
.rc-account-dashboard__intro p,
.rc-account-link-card__body span,
.rc-account-note {
	margin: 0;
	color: var(--rc-graphite);
	font-size: 0.96rem;
	line-height: 1.5;
}

.rc-account-eyebrow {
	margin: 0 0 0.45rem;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
}

.rc-account-dashboard__intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: clamp(1.5rem, 3vw, 3rem);
	align-items: end;
	padding-bottom: clamp(1.35rem, 2.5vw, 2rem);
	border-bottom: 1px solid var(--rc-line);
}

.rc-client-id-block {
	display: grid;
	grid-template-columns: auto auto;
	gap: 0.85rem;
	align-items: baseline;
	justify-content: start;
	width: auto;
	min-width: 0;
	padding: 0.85rem 1rem;
	border: 1px solid var(--rc-line);
	background: transparent;
}

.rc-client-id-block__label,
.rc-client-id-block__value {
	margin: 0;
}

.rc-client-id-block__label {
	color: var(--rc-muted);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.2;
	text-transform: uppercase;
}

.rc-client-id-block__value {
	color: var(--rc-ink);
	font-size: clamp(1.25rem, 2vw, 1.7rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}

.rc-account-recent__list {
	display: grid;
	border-top: 0;
}

.rc-account-recent__row {
	grid-template-columns: minmax(5rem, 0.6fr) minmax(0, 1fr) minmax(6rem, 0.8fr) minmax(5rem, 0.7fr) auto;
	padding: 1rem 0;
	border-bottom: 1px solid var(--rc-line);
}

.rc-account-empty {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 5.75rem;
	margin: 0;
	padding: 1.35rem clamp(1.15rem, 2vw, 1.5rem);
	border: 1px solid var(--rc-line);
	background: transparent;
}

.rc-account-empty p {
	margin: 0;
	color: var(--rc-graphite);
	font-size: 1rem;
	line-height: 1.45;
}

.rc-account-empty--page {
	min-height: 6.5rem;
}

.rc-account-links {
	display: grid;
	border-top: 1px solid var(--rc-line);
}

.rc-account-link-card {
	display: grid;
	grid-template-columns: 3.2rem minmax(0, 1fr) auto;
	gap: clamp(1rem, 2vw, 1.5rem);
	align-items: center;
	min-height: 6rem;
	padding: 1.2rem 0;
	border-bottom: 1px solid var(--rc-line);
	color: var(--rc-ink);
	text-decoration: none;
	transition: color 180ms var(--rc-ease), padding-inline 180ms var(--rc-ease);
}

.rc-account-link-card:hover,
.rc-account-link-card:focus-visible {
	padding-inline: 0.6rem;
	color: var(--rc-ink);
	outline: none;
}

.rc-account-link-card__index {
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1;
}

.rc-account-link-card__body {
	display: grid;
	gap: 0.25rem;
}

.rc-account-link-card__body strong {
	color: var(--rc-ink);
	font-size: clamp(1rem, 1.4vw, 1.2rem);
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.1;
	text-transform: uppercase;
}

.rc-address-list.woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 26rem), 1fr));
	gap: 1px;
	background: transparent;
	border: 1px solid var(--rc-line);
}

.rc-address-card.woocommerce-Address {
	display: grid;
	align-content: space-between;
	gap: clamp(2rem, 4vw, 4rem);
	min-height: 13rem;
	padding: clamp(1.35rem, 2.5vw, 2rem);
	background: var(--rc-paper);
}

.rc-address-card .woocommerce-Address-title {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	margin: 0;
}

.rc-address-card .woocommerce-Address-title h2 {
	margin: 0;
	color: var(--rc-ink);
	font-size: clamp(1.15rem, 1.7vw, 1.45rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.05;
	text-transform: uppercase;
}

.rc-address-card address {
	margin: 0;
	max-width: 30rem;
	color: var(--rc-graphite);
	font-size: 1rem;
	font-style: normal;
	line-height: 1.55;
}

.rc-account-form,
.woocommerce-EditAccountForm.rc-account-form,
.woocommerce-Address__edit .rc-address-edit-form {
	display: grid;
	width: 100%;
	max-width: 68rem;
	gap: 1.35rem clamp(1.35rem, 3vw, 2rem);
	margin: 0;
}

.rc-profile-form,
.woocommerce-Address__edit .rc-address-edit-form .woocommerce-address-fields__field-wrapper {
	grid-template-columns: repeat(2, minmax(16rem, 1fr));
}

.woocommerce-Address__edit .rc-address-edit-form,
.woocommerce-Address__edit .rc-address-edit-form .woocommerce-address-fields {
	max-width: 68rem;
}

.woocommerce-Address__edit .rc-address-edit-form .woocommerce-address-fields,
.woocommerce-Address__edit .rc-address-edit-form .woocommerce-address-fields__field-wrapper,
.woocommerce-Address__edit .rc-address-edit-form .rc-account-form__actions {
	display: grid;
	gap: 1.35rem clamp(1.35rem, 3vw, 2rem);
}

.rc-account-panel .form-row-first,
.rc-account-panel .form-row-last {
	float: none;
	width: auto;
}

.woocommerce .rc-account-panel form .form-row-first,
.woocommerce .rc-account-panel form .form-row-last,
.woocommerce-page .rc-account-panel form .form-row-first,
.woocommerce-page .rc-account-panel form .form-row-last {
	float: none !important;
	width: auto !important;
}

.rc-account-panel .form-row-wide,
.rc-account-panel .clear,
.rc-profile-form fieldset,
.rc-profile-form .rc-account-form__actions,
.rc-address-edit-form .form-row-wide,
.rc-address-edit-form .rc-account-form__actions {
	grid-column: 1 / -1;
}

.rc-account-panel .clear {
	display: none;
}

.rc-account-panel .form-row,
.rc-account-panel .woocommerce-form-row,
.rc-profile-form p,
.rc-address-edit-form p {
	display: grid;
	gap: 0.55rem;
	margin: 0;
}

.rc-account-panel label,
.rc-account-panel .woocommerce-form-row label,
.rc-account-panel .form-row label {
	color: var(--rc-muted);
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	line-height: 1.35;
	text-transform: uppercase;
}

.rc-account-panel input.input-text,
.rc-account-panel input[type="text"],
.rc-account-panel input[type="email"],
.rc-account-panel input[type="tel"],
.rc-account-panel input[type="password"],
.rc-account-panel select,
.rc-account-panel textarea {
	width: 100%;
	min-height: 3.35rem;
	padding: 0.9rem 1rem;
	border: 1px solid var(--rc-line-strong);
	border-radius: 0;
	background: transparent;
	color: var(--rc-ink);
	font-family: var(--rc-font);
	font-size: 1rem;
	line-height: 1.35;
	box-shadow: none;
}

.rc-account-panel input:focus,
.rc-account-panel select:focus,
.rc-account-panel textarea:focus {
	border-color: var(--rc-ink);
	outline: 1px solid var(--rc-ink);
	outline-offset: 0;
}

.rc-profile-form fieldset {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.1rem clamp(1rem, 2vw, 1.4rem);
	margin: 0.4rem 0 0;
	padding: 1.45rem 0 0;
	border: 0;
	border-top: 1px solid var(--rc-line);
	background: transparent;
}

.rc-profile-form fieldset legend {
	display: block;
	width: 100%;
	margin: 0 0 0.15rem;
	padding: 0;
	color: var(--rc-ink);
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	line-height: 1.2;
	text-transform: uppercase;
}

.rc-profile-form .rc-form-note {
	grid-column: 1 / -1;
	margin: 0;
	color: var(--rc-graphite);
	font-size: 0.94rem;
	line-height: 1.5;
}

.rc-account-form__actions {
	justify-content: start;
	padding-top: 0.4rem;
}

.rc-account-form__actions .button {
	width: auto;
}

.rc-account-auth {
	width: min(100%, 46rem);
	max-width: 46rem;
}

.rc-account-auth__panel {
	padding: 0;
	border: 0;
	background: transparent;
}

@media (max-width: 74.99rem) {
	.rc-account-shell {
		grid-template-columns: 1fr;
		gap: clamp(1.5rem, 4vw, 2.5rem);
	}

	.woocommerce-MyAccount-navigation.rc-account-nav {
		position: static;
	}

	.woocommerce-MyAccount-navigation.rc-account-nav ul {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		border-left: 1px solid var(--rc-line);
	}

	.woocommerce-MyAccount-navigation.rc-account-nav li {
		border-right: 1px solid var(--rc-line);
	}

	.woocommerce-MyAccount-navigation.rc-account-nav a {
		min-height: 3.1rem;
		padding: 0.9rem 1rem;
	}

	.woocommerce-MyAccount-navigation.rc-account-nav .woocommerce-MyAccount-navigation-link--customer-logout {
		margin-top: 0;
	}

	.rc-account-section__header,
	.rc-account-dashboard__intro {
		grid-template-columns: 1fr;
		align-items: start;
	}
}

@media (max-width: 47.99rem) {
	.rc-account .rc-page-hero--account h1 {
		font-size: clamp(2.6rem, 16vw, 4rem);
	}

	.rc-address-list.woocommerce-Addresses,
	.rc-profile-form,
	.rc-profile-form fieldset,
	.woocommerce-Address__edit .rc-address-edit-form .woocommerce-address-fields__field-wrapper {
		grid-template-columns: 1fr;
	}

	.rc-account-empty {
		display: grid;
		align-items: start;
	}

	.rc-account-link-card {
		grid-template-columns: 2.4rem minmax(0, 1fr) auto;
	}

	.woocommerce-MyAccount-navigation.rc-account-nav ul {
		grid-template-columns: 1fr;
	}
}
/* ============================================================
 * RaptClub v1.8.3 — account UX fixes
 *
 * 1. Account content should fill the full grid column width.
 *    WC's `woocommerce-layout.css` sets a legacy `width: 68%` on
 *    `.woocommerce-account .woocommerce-MyAccount-content`. That made
 *    sense for the old "nav 30% + content 68%" float layout but our
 *    .rc-account-shell is a CSS grid where the content column already
 *    sizes itself via 1fr. Force width to 100% so the column fills.
 *
 * 2. Password show/hide button position. The default WC markup wraps
 *    the input in `<span class="password-input" style="position:
 *    relative">`. Because the span is `display: inline`, its
 *    bounding box for the absolutely-positioned `.show-password-input`
 *    child is the LINE BOX, not the input rect. The button ends up
 *    ~25px above the input. Switch the wrapper to inline-block so the
 *    containing block matches the visible input.
 * ============================================================ */

/* (1) Account content fills the column */
.woocommerce-account .woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-content.rc-account-panel {
	width: 100%;
}

/* (2) Password input wrapper becomes a proper positioning context */
.password-input,
.woocommerce-form-row .password-input,
.woocommerce-EditAccountForm .password-input {
	display: inline-block;
	position: relative;
	width: 100%;
}

.password-input input[type="password"],
.password-input input[type="text"] {
	width: 100%;
}

/* ---------- Contact form (v1.8.3) ---------- */

.rc-contact-block {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
	margin-top: clamp(2rem, 5vw, 4rem);
}

@media (max-width: 56rem) {
	.rc-contact-block {
		grid-template-columns: 1fr;
		gap: clamp(2rem, 4vw, 3rem);
	}
}

.rc-contact-block__email {
	display: grid;
	gap: 0.5rem;
	padding: clamp(1.25rem, 2.5vw, 2rem);
	border: 1px solid var(--rc-line);
	background: var(--rc-paper);
}

.rc-contact-block__email .rc-account-eyebrow,
.rc-contact-block__email > p:first-child {
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rc-contact-block__email h2,
.rc-contact-block__email > h2 {
	margin: 0.25rem 0 0;
	font-size: clamp(1.25rem, 2vw, 1.65rem);
	font-weight: 700;
	line-height: 1.1;
	text-transform: uppercase;
}

.rc-contact-block__email a.rc-contact-mail {
	display: inline-block;
	margin-top: 0.5rem;
	color: var(--rc-ink);
	font-size: clamp(1rem, 1.4vw, 1.15rem);
	font-weight: 600;
	letter-spacing: 0;
	text-decoration: none;
	border-bottom: 1px solid currentColor;
	word-break: break-word;
}

.rc-contact-block__email a.rc-contact-mail:hover {
	color: var(--rc-graphite);
}

.rc-contact-block__email > p:last-child {
	margin: 0.75rem 0 0;
	color: var(--rc-graphite);
	font-size: 0.92rem;
	line-height: 1.55;
}

.rc-contact-form {
	display: grid;
	gap: 1rem;
}

.rc-contact-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

@media (max-width: 36rem) {
	.rc-contact-form__grid {
		grid-template-columns: 1fr;
	}
}

.rc-contact-form__field {
	display: grid;
	gap: 0.4rem;
}

.rc-contact-form__field label {
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rc-contact-form__field input,
.rc-contact-form__field textarea {
	width: 100%;
	min-height: 3.2rem;
	padding: 0.85rem 1rem;
	border: 1px solid var(--rc-line-strong);
	border-radius: 0;
	background: transparent;
	color: var(--rc-ink);
	font-family: var(--rc-font);
	font-size: 0.95rem;
	line-height: 1.4;
}

.rc-contact-form__field textarea {
	min-height: 12rem;
	resize: vertical;
}

.rc-contact-form__field input:focus,
.rc-contact-form__field textarea:focus {
	outline: 1px solid var(--rc-ink);
	outline-offset: 2px;
}

.rc-contact-form__honeypot {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.rc-contact-form__actions {
	margin-top: 0.75rem;
}

.rc-contact-form__submit {
	min-width: 12rem;
}

.rc-contact-form__notice {
	margin: 0;
	padding: 0.85rem 1rem;
	border: 1px solid var(--rc-line-strong);
	background: var(--rc-paper-soft);
	color: var(--rc-ink);
	font-size: 0.92rem;
	line-height: 1.5;
}

.rc-contact-form__notice--ok {
	border-color: var(--rc-ink);
}

.rc-contact-form__notice--error {
	border-color: #cf222e;
	color: #cf222e;
}

/* ============================================================
 * RaptClub v1.8.5 — cart coupon + slide-in cart drawer
 * ============================================================ */

/* ---------- Coupon input on /cart/ ---------- */
.woocommerce-cart .coupon {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.woocommerce-cart .coupon label[for="coupon_code"] {
	flex: 0 0 auto;
	color: var(--rc-muted);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.woocommerce-cart .coupon input#coupon_code,
.woocommerce-cart .coupon input[name="coupon_code"] {
	flex: 1 1 14rem;
	min-height: 3.2rem;
	height: auto;
	width: auto;
	max-width: 18rem;
	padding: 0.9rem 1rem;
	border: 1px solid var(--rc-line-strong);
	border-radius: 0;
	background: transparent;
	color: var(--rc-ink);
	font-family: var(--rc-font);
	font-size: 0.92rem;
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-transform: uppercase;
}

.woocommerce-cart .coupon input#coupon_code::placeholder {
	color: var(--rc-muted);
	letter-spacing: 0.04em;
}

.woocommerce-cart .coupon button[name="apply_coupon"] {
	flex: 0 0 auto;
}

/* ---------- Slide-in cart drawer ---------- */

.rc-cart-drawer {
	position: fixed;
	inset: 0;
	z-index: 9000;
	pointer-events: none;
}

.rc-cart-drawer.is-open {
	pointer-events: auto;
}

.rc-cart-drawer__overlay {
	position: absolute;
	inset: 0;
	background: rgba(10, 10, 10, 0.45);
	opacity: 0;
	transition: opacity 240ms var(--rc-ease);
}

.rc-cart-drawer.is-open .rc-cart-drawer__overlay {
	opacity: 1;
}

.rc-cart-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(28rem, 100vw);
	background: var(--rc-paper);
	box-shadow: -1.5rem 0 3rem rgba(10, 10, 10, 0.08);
	transform: translateX(100%);
	transition: transform 260ms var(--rc-ease);
	overflow: hidden;
}

.rc-cart-drawer.is-open .rc-cart-drawer__panel {
	transform: translateX(0);
}

.rc-cart-drawer__content,
.rc-cart-drawer__inner {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
}

.rc-cart-drawer__header {
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-rows: auto auto;
	align-items: center;
	gap: 0.25rem 1rem;
	padding: clamp(1.25rem, 3vw, 1.75rem);
	border-bottom: 1px solid var(--rc-line);
}

.rc-cart-drawer__eyebrow {
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rc-cart-drawer__header h2 {
	grid-row: 2;
	grid-column: 1;
	margin: 0;
	color: var(--rc-ink);
	font-size: clamp(1.2rem, 2.2vw, 1.55rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
	text-transform: uppercase;
}

.rc-cart-drawer__close {
	grid-row: 1 / span 2;
	grid-column: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--rc-ink);
	cursor: pointer;
	transition: color 180ms var(--rc-ease);
}

.rc-cart-drawer__close:hover,
.rc-cart-drawer__close:focus-visible {
	color: var(--rc-graphite);
	outline: none;
}

.rc-cart-drawer__close svg {
	display: block;
	width: 1.05rem;
	height: 1.05rem;
}

.rc-cart-drawer__items {
	flex: 1 1 auto;
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-y: auto;
	overscroll-behavior: contain;
}

.rc-cart-drawer__item {
	display: grid;
	grid-template-columns: 4rem 1fr auto;
	gap: 0.95rem;
	align-items: start;
	padding: 1rem clamp(1.25rem, 3vw, 1.75rem);
	border-bottom: 1px solid var(--rc-line);
}

.rc-cart-drawer__item-media img,
.rc-cart-drawer__item-media a {
	display: block;
	width: 4rem;
	height: 4rem;
	object-fit: cover;
	background: var(--rc-paper-soft);
}

.rc-cart-drawer__item-body {
	min-width: 0;
}

.rc-cart-drawer__item-name {
	margin: 0 0 0.3rem;
	color: var(--rc-ink);
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.25;
	text-transform: uppercase;
}

.rc-cart-drawer__item-name a {
	color: inherit;
	text-decoration: none;
}

.rc-cart-drawer__item-name a:hover {
	text-decoration: underline;
}

.rc-cart-drawer__item-meta {
	display: flex;
	align-items: baseline;
	gap: 0.4rem;
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.78rem;
}

.rc-cart-drawer__item-price {
	color: var(--rc-ink);
	font-weight: 600;
}

.rc-cart-drawer__item-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.75rem;
	height: 1.75rem;
	color: var(--rc-muted);
	border: 0;
	background: transparent;
	transition: color 180ms var(--rc-ease);
}

.rc-cart-drawer__item-remove:hover {
	color: var(--rc-ink);
}

.rc-cart-drawer__item-remove svg {
	display: block;
	width: 0.85rem;
	height: 0.85rem;
}

.rc-cart-drawer__totals {
	padding: 1.1rem clamp(1.25rem, 3vw, 1.75rem) 0;
	border-top: 1px solid var(--rc-line);
}

.rc-cart-drawer__totals-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	color: var(--rc-ink);
	font-size: 1rem;
	font-weight: 600;
}

.rc-cart-drawer__totals-row .woocommerce-Price-amount {
	color: inherit;
}

.rc-cart-drawer__totals-note {
	margin: 0.45rem 0 0;
	color: var(--rc-muted);
	font-size: 0.78rem;
	line-height: 1.4;
}

.rc-cart-drawer__actions {
	display: grid;
	gap: 0.85rem;
	padding: 1.25rem clamp(1.25rem, 3vw, 1.75rem) clamp(1.25rem, 3vw, 1.75rem);
}

.rc-cart-drawer__checkout {
	width: 100%;
	justify-content: center;
}

.rc-cart-drawer__view-full {
	justify-self: center;
	min-height: 0;
	padding: 0.25rem 0;
}

.rc-cart-drawer__empty {
	display: grid;
	gap: 1rem;
	padding: clamp(2rem, 5vw, 3rem) clamp(1.25rem, 3vw, 1.75rem);
	text-align: left;
}

.rc-cart-drawer__empty p {
	margin: 0;
	color: var(--rc-graphite);
	font-size: 0.96rem;
	line-height: 1.5;
}

.rc-cart-drawer__empty .button {
	width: 100%;
	justify-content: center;
}

/* Body lock while drawer is open */
body.rc-cart-drawer-open {
	overflow: hidden;
}

@media (max-width: 30rem) {
	.rc-cart-drawer__panel {
		width: 100vw;
	}
}

/* ============================================================
 * RaptClub v1.8.7 — bulletproof hero image fill
 *
 * The .rc-hero__image img rule already set width: 100%; height: 100%;
 * object-fit: cover, which should fill the figure on every viewport.
 * But some breakpoints + browser combos rendered the image at its
 * natural aspect ratio with the figure's --rc-inverse background
 * showing through underneath. Switching to position: absolute +
 * inset: 0 takes the image out of the document flow and pins all
 * four edges to the figure's edges directly — there's no way the
 * image can fail to fill the container regardless of media-query
 * cascades, parent display modes, or aspect-ratio interactions.
 * ============================================================ */

.rc-hero__image {
	position: relative;
	overflow: hidden;
	background: var(--rc-inverse);
	display: block;
	isolation: isolate;
}

.rc-hero__image > picture,
.rc-hero__image > a {
	position: absolute;
	inset: 0;
	display: block;
}

.rc-hero__image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	max-height: none;
	min-width: 100%;
	min-height: 100%;
	object-fit: cover;
	object-position: 50% 50%;
	filter: saturate(0) contrast(1.08);
	transform: scale(1.02);
	transform-origin: center;
	transition: transform 1200ms var(--rc-ease);
}

.rc-hero__image:hover img {
	transform: scale(1.07);
}

/* Figcaption sits above the image */
.rc-hero__image figcaption {
	position: absolute;
	z-index: 2;
}


/* ============================================================
 * RaptClub v1.8.8 — cart drawer close + cart page redesign +
 * password eye final fix
 *
 * Process note: this round consolidates four button issues that
 * had been re-fixed multiple times. Root cause for each is
 * specificity: a low-specificity `.rc-*` rule was losing to a
 * WC default or a stale conflicting rule elsewhere in this
 * stylesheet. Fixes here use selector chains that match or
 * exceed the conflicting rule's specificity, and add a CSS
 * version stamp at the top of the file so verifying the
 * deployed version is one DevTools click away.
 * ============================================================ */

/* ---------- Visible version stamp ----------
 * Read in DevTools via getComputedStyle(document.body, '::after').content
 * to confirm which CSS version the browser actually loaded. */
body::after {
	content: "raptclub-css-v1.8.9";
	display: none;
}

/* ---------- Cart drawer close button + ghost button utility ----------
 * Root cause for repeating "button looks like a primary" bugs: the
 * global reset at the top of this file declares
 *   background: var(--rc-ink) !important;
 *   color:      var(--rc-paper) !important;
 *   border-radius: 0 !important;
 *   box-shadow: none !important;
 * on every `button:not(.rc-menu-toggle)`. That's necessary to beat WC's
 * inline styles for the *primary* button class, but it also forces every
 * ghost/icon button to look like a primary unless we explicitly defeat
 * !important with !important.
 *
 * Going forward, prefer the `.rc-button-reset` utility class below for
 * any new ghost/icon button — it nukes the primary look in one place. */

.rc-button-reset,
button.rc-button-reset,
.rc-cart-drawer button.rc-cart-drawer__close,
button.rc-cart-drawer__close,
button.rc-cart-drawer__item-remove,
.rc-cart-drawer__item-remove {
	min-height: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--rc-ink) !important;
	box-shadow: none !important;
	font-size: 0 !important;
	line-height: 0 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	appearance: none !important;
}

.rc-cart-drawer button.rc-cart-drawer__close,
button.rc-cart-drawer__close {
	width: 2.4rem !important;
	height: 2.4rem !important;
}

.rc-cart-drawer button.rc-cart-drawer__close:hover,
.rc-cart-drawer button.rc-cart-drawer__close:focus-visible,
.rc-button-reset:hover,
button.rc-button-reset:hover {
	background: transparent !important;
	color: var(--rc-graphite) !important;
	box-shadow: none !important;
	outline: none !important;
	border: 0 !important;
}

.rc-cart-drawer button.rc-cart-drawer__close svg,
.rc-button-reset svg {
	display: block;
	width: 1.05rem;
	height: 1.05rem;
	flex: 0 0 auto;
}

.rc-cart-drawer__item-remove {
	color: var(--rc-muted) !important;
}

.rc-cart-drawer__item-remove:hover {
	color: var(--rc-ink) !important;
}

/* ---------- Password show/hide eye button (final consolidation) ----------
 * Old `.password-input .show-password-input` block deleted above. The
 * canonical rule lives at line ~4389 (`.woocommerce form
 * .show-password-input`). Reinforce here with explicit height:auto
 * so the height stretches between top:1 and bottom:1 even when a
 * future rule tries to constrain it.
 *
 * Also override the WC plugin's own positioning (`position:absolute;
 * right:.5em; top:.5em; …`) which has equal specificity to ours
 * with extra selector chain. */
.woocommerce form .password-input,
.woocommerce-page form .password-input,
form .password-input {
	position: relative;
	display: block;
	width: 100%;
}

.woocommerce form .password-input input,
.woocommerce-page form .password-input input,
form .password-input input.input-text,
form .password-input input[type="password"],
form .password-input input[type="text"] {
	padding-right: 3.55rem;
	width: 100%;
}

.woocommerce form button.show-password-input,
.woocommerce-page form button.show-password-input,
form .password-input button.show-password-input,
form button.show-password-input {
	position: absolute !important;
	top: 1px !important;
	right: 1px !important;
	bottom: 1px !important;
	left: auto !important;
	width: 3.15rem !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-left: 1px solid var(--rc-line-strong) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--rc-ink) !important;
	font-size: 0 !important;
	line-height: 0 !important;
	letter-spacing: 0 !important;
	text-indent: 0 !important;
	text-transform: none !important;
	transform: none !important;
}

/* ---------- Cart page (/cart/) redesign ----------
 * Issues:
 *   (a) `form.woocommerce-cart-form` was rendering with a 1px border AND
 *       `table.shop_table` inside it ALSO with a 1px border — doubled
 *       lines on top/left/right.
 *   (b) The default WC `<a class="remove">×</a>` is a red × glyph,
 *       jarring against the b/w design language.
 *   (c) Coupon input + apply button were stacking vertically because
 *       flex-wrap:wrap + max-width on the input forced the button to
 *       a new line.
 *   (d) The .quantity div is wider than its number input because WC
 *       reserves space for ± buttons it doesn't render — collapse it.
 */

/* a. Strip border off the wrapping form so the table border alone wins */
.woocommerce-cart .woocommerce-cart-form,
form.woocommerce-cart-form {
	border: 0;
	padding: 0;
	background: transparent;
}

.woocommerce-cart table.shop_table.cart {
	margin: 0 0 1.5rem;
}

/* b. Remove (×) link — restyle to brand */
.woocommerce-cart table.shop_table .product-remove a.remove,
.woocommerce table.shop_table .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.6rem;
	height: 1.6rem;
	padding: 0;
	color: var(--rc-muted);
	background: transparent;
	border: 1px solid var(--rc-line-strong);
	border-radius: 50%;
	font-size: 0.95rem;
	font-weight: 400;
	line-height: 1;
	text-decoration: none;
	transition: color 180ms var(--rc-ease), border-color 180ms var(--rc-ease);
}

.woocommerce-cart table.shop_table .product-remove a.remove:hover,
.woocommerce table.shop_table .product-remove a.remove:hover {
	color: var(--rc-ink);
	border-color: var(--rc-ink);
	background: transparent;
}

/* c. Coupon row — input + apply in one line, label small/uppercase */
.woocommerce-cart .actions {
	padding: 1rem 1.5rem;
}

.woocommerce-cart .coupon {
	display: flex !important;
	flex-wrap: nowrap !important;
	align-items: stretch;
	gap: 0.5rem;
	width: auto;
	max-width: 28rem;
}

.woocommerce-cart .coupon label[for="coupon_code"] {
	position: absolute;
	left: -9999px;
}

.woocommerce-cart .coupon input#coupon_code,
.woocommerce-cart .coupon input[name="coupon_code"] {
	flex: 1 1 auto !important;
	max-width: none !important;
	width: auto !important;
	min-height: 3.2rem;
	height: auto;
	margin: 0;
}

.woocommerce-cart .coupon button[name="apply_coupon"] {
	flex: 0 0 auto !important;
	margin: 0 !important;
}

/* d. Quantity column — collapse the extra space WC reserves */
.woocommerce-cart table.shop_table .product-quantity .quantity {
	display: inline-block;
	width: auto;
	max-width: none;
}

.woocommerce-cart table.shop_table .product-quantity input.qty {
	width: 4.5rem;
	min-height: 3.2rem;
	height: auto;
	text-align: center;
}

/* ============================================================
 * RaptClub v1.9.0 — drawer header alignment, empty-state
 * centering, cart X hover, empty cart brand styling,
 * footer social icons
 * ============================================================ */

body::after {
	content: "raptclub-css-v1.9.0";
	display: none;
}

/* ---------- Cart drawer header alignment with page menu divider ----------
 * The page <header class="rc-site-header"> total height in this design
 * is approximately 77px (intrinsic). The drawer is position: fixed; top: 0
 * and sits under the WP admin bar when present. To make the drawer's
 * bottom-border line up with the page header's bottom-border:
 *   - no admin bar: drawer-header height = page header height (≈77px)
 *   - desktop admin bar: drawer-header height = 77 + 32 = 109, with
 *     padding-top: 32 to push content below the admin bar so the title
 *     remains visually centered in the visible (32→109) area.
 *   - mobile admin bar (≤782px): admin bar is 46px tall.
 *
 * Vertical centering of the title block is done with align-items:end
 * + small bottom padding so the eyebrow + h2 cluster sits visually
 * centered between the top of the visible area and the divider. */
.rc-cart-drawer__header {
	min-height: 4.8rem;          /* ≈ page header total */
	padding-top: 0;
	padding-bottom: 0;
	align-items: center;
	align-content: center;
}

body.admin-bar .rc-cart-drawer__header {
	min-height: calc(4.8rem + 32px);
	padding-top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .rc-cart-drawer__header {
		min-height: calc(4.8rem + 46px);
		padding-top: 46px;
	}
}

/* ---------- Empty-state in cart drawer — vertically center ----------
 * Flex column with inner empty growing to fill, centering its content. */
.rc-cart-drawer__inner {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.rc-cart-drawer__empty {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: stretch;
	gap: 1rem;
}

/* ---------- Cart page X-remove hover — red fill (visible) ----------
 * Previous hover used color:var(--rc-ink) + transparent bg which
 * disappeared against the cell's white background. Switch to a brand
 * brick red, white glyph for unambiguous affordance. */
.woocommerce-cart table.shop_table .product-remove a.remove:hover,
.woocommerce-cart table.shop_table .product-remove a.remove:focus,
.woocommerce table.shop_table .product-remove a.remove:hover,
.woocommerce table.shop_table .product-remove a.remove:focus {
	color: #ffffff !important;
	background: #b91c1c !important;
	border-color: #b91c1c !important;
	outline: none;
}

/* ---------- Empty cart page (/cart/) brand styling ----------
 * Overrides the WC default "Your cart is empty" notice + return-to-shop
 * with a centered editorial block: small eyebrow / large headline /
 * supportive paragraph / primary CTA. */
.rc-cart-empty {
	display: grid;
	justify-items: start;
	align-content: start;
	gap: 1rem;
	max-width: 36rem;
	padding: clamp(2.5rem, 6vw, 4rem) 0;
}

.rc-cart-empty__eyebrow {
	margin: 0;
	color: var(--rc-muted);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.rc-cart-empty__heading {
	margin: 0;
	color: var(--rc-ink);
	font-size: clamp(2rem, 5vw, 3rem);
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
	text-transform: uppercase;
}

.rc-cart-empty__body {
	margin: 0;
	color: var(--rc-graphite);
	font-size: 1rem;
	line-height: 1.5;
}

.rc-cart-empty__action {
	margin-top: 1rem;
}

/* Suppress the default WC notice ("Your cart is currently empty.")
 * that fires on woocommerce_cart_is_empty — our override replaces it. */
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .cart-empty.woocommerce-info {
	display: none;
}

/* But keep removal notices ("X removed. Undo?") visible — they have
 * a different class chain (.woocommerce-message). */
.woocommerce-cart .woocommerce-message {
	display: flex;
}

/* ---------- Footer social icons ----------
 * Lives at the bottom-left of the statement section. Doesn't
 * increase the footer height because the statement column already
 * has empty space below the tagline (the grid row is taller than
 * the copy stack). */
.rc-footer-social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
}

.rc-footer-social li {
	margin: 0;
	padding: 0;
}

.rc-footer-social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.4rem;
	height: 2.4rem;
	color: var(--rc-graphite);
	background: transparent;
	border: 1px solid var(--rc-line-strong);
	border-radius: 50%;
	transition: color 180ms var(--rc-ease), border-color 180ms var(--rc-ease);
	text-decoration: none;
}

.rc-footer-social a:hover,
.rc-footer-social a:focus-visible {
	color: var(--rc-ink);
	border-color: var(--rc-ink);
	outline: none;
}

.rc-footer-social svg {
	width: 0.95rem;
	height: 0.95rem;
	display: block;
}

/* ============================================================
 * RaptClub v1.9.1 — single-line cart table top border
 * ============================================================
 * Symptom: full /cart/ table appeared to have a 2-line top edge.
 * Root cause: `table.shop_table` ships with
 * `border-collapse: separate; border-spacing: 0`, so the table's
 * own 1px top border AND each <th>'s 1px top border render as TWO
 * parallel hairline rules one px apart. Left/right/bottom edges
 * look fine because there are no adjacent cell borders along those
 * runs.
 *
 * Fix: switch to `border-collapse: collapse`. Adjacent borders
 * merge into a single rule, so the top edge is one line. Same
 * applied to subsequent rows so nothing else looks off. */

body::after { content: "raptclub-css-v1.9.1"; display: none; }

.woocommerce-cart table.shop_table.cart,
.woocommerce-cart table.shop_table {
	border-collapse: collapse !important;
	border-spacing: 0 !important;
}

/* Belt and braces: keep the cell borders intact at 1px, color
 * matching the table border, so the collapse cascade resolves to
 * the same line weight everywhere. */
.woocommerce-cart table.shop_table.cart thead th,
.woocommerce-cart table.shop_table.cart tbody td {
	border-color: var(--rc-line);
}

/* ============================================================
 * RaptClub v1.9.2 — WC notice button right-align
 * ============================================================
 * Symptom: on /cart/ after adding a product, the "X has been
 * added to your cart" notice's VIEW CART button rendered
 * immediately after the text, overlapping the trailing period.
 *
 * Root cause: WC default ships the message as a single block
 * with float:right on the button. My v1.8.x rules set
 * display:flex on the .woocommerce-message — float is ignored
 * in flex layout, so the button became a normal flex item that
 * sits at its natural position right after the text node, not
 * pushed to the end. The container was much wider than the text+
 * button combined, leaving the button in the middle with a sea
 * of whitespace on the right.
 *
 * Fix: nuke float; use `margin-left: auto` to push the button
 * to the right edge. Apply to .woocommerce-message,
 * .woocommerce-info, .woocommerce-error so all WC notice
 * variants get the same treatment. Pin gap + align-items so
 * the layout is consistent. */

body::after { content: "raptclub-css-v1.9.2"; display: none; }

.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1rem;
}

.woocommerce-cart .woocommerce-message > a.button,
.woocommerce-cart .woocommerce-message > .button,
.woocommerce-message > a.button,
.woocommerce-message > .button,
.woocommerce-info > a.button,
.woocommerce-info > .button {
	margin-left: auto !important;
	float: none !important;
	flex: 0 0 auto;
}

/* ============================================================
 * RaptClub v1.9.3 — quantity stepper (always-visible) +
 *                    auto-update + drawer qty edit
 * ============================================================ */

body::after { content: "raptclub-css-v1.9.3"; display: none; }

/* Hide native browser spinners — replaced by custom stepper */
.woocommerce input.qty::-webkit-inner-spin-button,
.woocommerce input.qty::-webkit-outer-spin-button,
.woocommerce .quantity input[type="number"]::-webkit-inner-spin-button,
.woocommerce .quantity input[type="number"]::-webkit-outer-spin-button,
.woocommerce-cart input.qty::-webkit-inner-spin-button,
.woocommerce-cart input.qty::-webkit-outer-spin-button,
.rc-qty-stepper input[type="number"]::-webkit-inner-spin-button,
.rc-qty-stepper input[type="number"]::-webkit-outer-spin-button,
.rc-cart-drawer-qty::-webkit-inner-spin-button,
.rc-cart-drawer-qty::-webkit-outer-spin-button,
.wc-block-components-quantity-selector input[type="number"]::-webkit-inner-spin-button,
.wc-block-components-quantity-selector input[type="number"]::-webkit-outer-spin-button {
	margin: 0 !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}

.woocommerce input.qty,
.woocommerce .quantity input[type="number"],
.woocommerce-cart input.qty,
.rc-qty-stepper input[type="number"],
.rc-cart-drawer-qty,
.wc-block-components-quantity-selector input,
.wc-block-components-quantity-selector input[type="number"] {
	-moz-appearance: textfield !important;
	appearance: textfield !important;
	text-align: center !important;
}

/* ---------- Stepper shell (shared) ---------- */
.rc-qty-stepper {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid var(--rc-line-strong);
	background: var(--rc-paper);
	overflow: hidden;
}

.rc-qty-stepper input.qty,
.woocommerce-cart .rc-qty-stepper input.qty,
.rc-qty-stepper input.rc-cart-drawer-qty,
.rc-qty-stepper > input[type="number"] {
	border: 0 !important;
	background: transparent !important;
	min-width: 0;
	margin: 0;
	text-align: center;
	font-weight: 600;
	color: var(--rc-ink);
	outline: none;
	box-shadow: none;
}

.rc-qty-stepper input.qty,
.woocommerce-cart .rc-qty-stepper input.qty {
	width: 3.25rem !important;
	min-height: 3rem;
	height: auto;
	padding: 0 0.25rem;
	font-size: 0.95rem;
}

.rc-qty-stepper__btn,
button.rc-qty-stepper__btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 2.25rem !important;
	height: auto !important;
	min-height: 3rem !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--rc-graphite) !important;
	font-size: 1.05rem !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	cursor: pointer;
	transition: color 180ms var(--rc-ease), background 180ms var(--rc-ease);
}

.rc-qty-stepper__btn:hover,
button.rc-qty-stepper__btn:hover,
.rc-qty-stepper__btn:focus-visible,
button.rc-qty-stepper__btn:focus-visible {
	color: var(--rc-ink) !important;
	background: var(--rc-paper-soft) !important;
	outline: none !important;
}

.rc-qty-stepper__minus { border-right: 1px solid var(--rc-line) !important; }
.rc-qty-stepper__plus  { border-left:  1px solid var(--rc-line) !important; }

/* ---------- Compact variant for drawer ---------- */
.rc-qty-stepper--compact input[type="number"],
.rc-qty-stepper--compact input.rc-cart-drawer-qty {
	width: 2.25rem !important;
	min-height: 2rem !important;
	font-size: 0.85rem !important;
	padding: 0 0.15rem !important;
}

.rc-qty-stepper--compact .rc-qty-stepper__btn,
.rc-qty-stepper--compact button.rc-qty-stepper__btn {
	width: 1.7rem !important;
	min-height: 2rem !important;
	font-size: 0.9rem !important;
}

/* ---------- Drawer meta row layout ---------- */
.rc-cart-drawer__item-meta {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0.3rem 0 0;
	color: var(--rc-muted);
	font-size: 0.78rem;
}

.rc-cart-drawer__item-meta .rc-qty-stepper {
	flex: 0 0 auto;
}

.rc-cart-drawer__item-price {
	color: var(--rc-ink);
	font-weight: 600;
	white-space: nowrap;
}

/* ---------- Hide UPDATE CART button ---------- */
.woocommerce-cart button[name="update_cart"],
.woocommerce-cart input[name="update_cart"] {
	position: absolute !important;
	left: -9999px !important;
	pointer-events: none;
	opacity: 0;
}

.woocommerce-cart .actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

/* ============================================================
 * RaptClub v1.9.4 — cart layout repair + product page stepper
 *                    + magnifier sizing + drawer item restack
 *                    + notice icon alignment
 * ============================================================ */

body::after { content: "raptclub-css-v1.9.6"; display: none; }

/* ---------- Cart page LAYOUT REPAIR ----------
 * v1.9.3 set `display: flex` on `td.actions` to host the coupon
 * + apply layout. That broke the cell's `colspan="6"` behaviour
 * (a flex td is no longer a regular table cell), so column widths
 * recomputed from the actions cell's intrinsic width — leaving
 * the first column (product-remove) absurdly wide (~510px) and
 * pushing the rest of the row to the right.
 *
 * Fix: revert .actions to a plain block-default cell. The
 * `.coupon` flex already gives us the inline coupon+apply layout
 * we need; .actions itself doesn't need to be flex. Then pin
 * explicit widths on the small columns (remove, thumbnail) so
 * the rest of the row distributes naturally.  */

.woocommerce-cart .actions {
	display: table-cell !important;
	flex-wrap: initial !important;
	align-items: initial !important;
}

.woocommerce-cart table.shop_table.cart .product-remove,
.woocommerce-cart table.shop_table.cart th.product-remove {
	width: 3rem !important;
	padding-left: 0.75rem;
	padding-right: 0.75rem;
}

.woocommerce-cart table.shop_table.cart .product-thumbnail,
.woocommerce-cart table.shop_table.cart th.product-thumbnail {
	width: 5rem !important;
	padding-left: 0.5rem;
	padding-right: 0.5rem;
}

.woocommerce-cart table.shop_table.cart .product-name {
	text-align: left;
}

/* ---------- Stepper compact on the cart page ----------
 * Was 126×53 (3.25rem input + 2.25rem × 2 buttons). Shrink to
 * match the drawer compact variant so the cart page row reads
 * lighter and the qty column doesn't dominate. */
.woocommerce-cart .rc-qty-stepper {
	height: auto;
}

.woocommerce-cart .rc-qty-stepper input.qty,
.woocommerce-cart .rc-qty-stepper > input[type="number"] {
	width: 2.5rem !important;
	min-height: 2.25rem !important;
	font-size: 0.88rem !important;
	padding: 0 0.15rem !important;
}

.woocommerce-cart .rc-qty-stepper__btn,
.woocommerce-cart button.rc-qty-stepper__btn {
	width: 1.8rem !important;
	min-height: 2.25rem !important;
	font-size: 0.95rem !important;
}

/* ---------- Drawer item: stack name / price / stepper ----------
 * New PHP template puts these in three vertical lines. CSS makes
 * the body column a flex column with explicit gaps and adjusts
 * the existing styles so name / price / qty cluster cleanly. */
.rc-cart-drawer__item {
	grid-template-columns: 4rem 1fr auto;
	gap: 1rem;
	align-items: start;
	padding: 1.1rem clamp(1.25rem, 3vw, 1.75rem);
}

.rc-cart-drawer__item-body {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	min-width: 0;
}

.rc-cart-drawer__item-name {
	margin: 0;
	color: var(--rc-ink);
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.25;
	text-transform: uppercase;
}

.rc-cart-drawer__item-name a {
	color: inherit;
	text-decoration: none;
}

.rc-cart-drawer__item-name a:hover {
	text-decoration: underline;
}

.rc-cart-drawer__item-price {
	margin: 0;
	color: var(--rc-ink);
	font-size: 0.92rem;
	font-weight: 600;
	letter-spacing: 0;
	line-height: 1.2;
	white-space: nowrap;
}

.rc-cart-drawer__item-price .woocommerce-Price-amount {
	color: inherit;
}

.rc-cart-drawer__item-qty {
	display: flex;
	margin-top: 0.1rem;
}

/* ---------- Product page magnifier trigger ----------
 * The existing high-specificity rule (.woocommerce div.product
 * div.images .woocommerce-product-gallery__trigger) had set
 * width/height to 2.75rem !important. To override we must
 * MATCH its selector chain — same specificity but our rule
 * is later in the cascade so it wins. */
.woocommerce div.product div.images .woocommerce-product-gallery__trigger,
.woocommerce-product-gallery__trigger {
	top: 0.75rem !important;
	right: 0.75rem !important;
	width: 2rem !important;
	height: 2rem !important;
	padding: 0 !important;
	border: 1px solid var(--rc-line-strong) !important;
	background: var(--rc-paper) !important;
	color: var(--rc-ink) !important;
	display: grid !important;
	place-items: center !important;
	font-size: 0 !important;
	line-height: 1 !important;
	text-indent: -9999px;
	overflow: hidden;
}

.woocommerce div.product div.images .woocommerce-product-gallery__trigger:hover,
.woocommerce-product-gallery__trigger:hover {
	background: var(--rc-paper-soft) !important;
	border-color: var(--rc-ink) !important;
}

/* ---------- Single product qty stepper — same compact metrics ----------
 * The product page form.cart's qty input gets wrapped by our stepper JS
 * with the new selector. Apply consistent compact metrics. */
body.single-product form.cart .rc-qty-stepper input.qty {
	width: 2.75rem !important;
	height: calc(var(--rc-product-cart-control-height) - 2px) !important;
	min-height: calc(var(--rc-product-cart-control-height) - 2px) !important;
	font-size: 0.95rem !important;
	padding: 0 0.2rem !important;
}

body.single-product form.cart .rc-qty-stepper__btn,
body.single-product form.cart button.rc-qty-stepper__btn {
	width: 2rem !important;
	height: calc(var(--rc-product-cart-control-height) - 2px) !important;
	min-height: calc(var(--rc-product-cart-control-height) - 2px) !important;
	font-size: 1rem !important;
}

/* ---------- WC notice ::before icon alignment ----------
 * The ::before pseudo is positioned absolute by WC defaults at the
 * top of the notice. Existing chain `.woocommerce .woocommerce-message
 * ::before` has higher specificity than our flat rule, so we match
 * the chain here. */
.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	top: 50% !important;
	transform: translateY(-50%) !important;
}

.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info,
.woocommerce-cart .woocommerce-error {
	min-height: 3.2rem;
	padding-top: 0.85rem;
	padding-bottom: 0.85rem;
}

/* ---------- Hide VIEW CART button when already on cart page ----------
 * The PHP filter approach didn't work because the message is queued
 * BEFORE the cart page renders (is_cart() is false at queue time).
 * Pure CSS does the job cleanly: on body.woocommerce-cart any
 * notice with a wc-forward / button link inside it has those links
 * suppressed. The notice text is unaffected. */
body.woocommerce-cart .woocommerce-message a.wc-forward,
body.woocommerce-cart .woocommerce-message a.button,
body.woocommerce-cart .woocommerce-info a.wc-forward,
body.woocommerce-cart .woocommerce-info a.button {
	display: none !important;
}

/* ============================================================
 * RaptClub v1.9.7 — real SVG logo sizing + WC customer details
 *                    email/phone icon alignment
 * ============================================================
 *
 * Logo: the actual brand SVG now lives at assets/images/logo.svg
 * (3684 × 672 viewBox, ratio ~5.48:1). header.php / footer.php
 * already do `if file_exists(logo.svg) { readfile() } else
 * { wordmark fallback }`, so dropping the file in is enough to
 * swap rendering. CSS here sizes the inline SVG to the same
 * visual weight as the old wordmark.
 *
 * Email icon: WC's `.woocommerce-customer-details--email::before`
 * is `position: absolute` with no `top:` — defaults to top of
 * line box, so the envelope glyph floats above the email text.
 * Fix: convert the row to flex layout with align-items: center,
 * drop the absolute positioning, let the icon flow inline. */

body::after { content: "raptclub-css-v1.9.8"; display: none; }

/* ---------- Brand mark — inline SVG sizing ----------
 * Hide the .rc-wordmark text when the SVG is rendering (the
 * theme outputs ONE OR THE OTHER, never both, but the
 * `:not(:has(svg))` guard keeps the rule safe even on browsers
 * that don't expose :has — the text wordmark only renders when
 * file_exists() is false, in which case there is no SVG child). */
.rc-brand-mark {
\tdisplay: inline-flex;
\talign-items: center;
}

.rc-brand-mark > svg {
\tdisplay: block;
\twidth: auto;
\theight: 1.35rem;
\tcolor: var(--rc-ink);
}

.rc-brand-mark--footer > svg {
\theight: 1.65rem;
}

@media (max-width: 47.99rem) {
\t.rc-brand-mark > svg { height: 1.2rem; }
\t.rc-brand-mark--footer > svg { height: 1.45rem; }
}

/* ---------- WC customer details email / phone icon alignment ----------
 * Switch from WC's `padding-left + absolute ::before` pattern to a
 * flex row so the icon and the value share the same baseline.
 * Targets ALL contexts: view-order page, order-received page,
 * admin order detail, address card billing block. */
.woocommerce-customer-details--email,
.woocommerce-customer-details--phone,
.woocommerce-customer-details .woocommerce-customer-details--email,
.woocommerce-customer-details .woocommerce-customer-details--phone {
\tdisplay: flex !important;
\talign-items: center !important;
\tgap: 0.5rem !important;
\tpadding-left: 0 !important;
\tmargin-left: 0 !important;
}

.woocommerce-customer-details--email::before,
.woocommerce-customer-details--phone::before,
.woocommerce-customer-details .woocommerce-customer-details--email::before,
.woocommerce-customer-details .woocommerce-customer-details--phone::before {
\tposition: static !important;
\tmargin-left: 0 !important;
\tdisplay: inline-flex !important;
\talign-items: center !important;
\tflex: 0 0 auto !important;
\tline-height: 1 !important;
\tfont-size: 1em !important;
\ttop: auto !important;
\ttransform: none !important;
}

/* ============================================================
 * RaptClub v1.9.9 — header logo optical-center + footer
 *                    symmetric top/bottom padding
 * ============================================================
 *
 * Header logo: the brand SVG's viewBox is 0 0 3684 672 but the
 * actual letter content only goes to y≈543. ~130 viewBox units
 * of empty space at the bottom of the SVG box. With `align-items:
 * center` on the header grid, the SVG BOX is centered but the
 * visible glyphs sit in the top portion of that box — so the
 * logo appears above center optically. Compensate by shifting
 * the SVG down ~2.5px (130/672 × 1.35rem ÷ 2 ≈ 2.1px).
 *
 * Footer spacing: user wants compact, symmetric vertical rhythm.
 *   - Logo → heading gap (h2 margin-top): 1.6rem → 0.8rem.
 *   - Grid padding-top (footer top → logo top): clamp(3rem, 6vw,
 *     5.5rem) → clamp(2rem, 4vw, 3rem).
 *   - Meta padding-top (social bottom → copyright top): clamp(
 *     2.5rem, 5vw, 4.5rem) → clamp(2rem, 4vw, 3rem) — matches
 *     the new grid top so the green-box and footer-top-gap are
 *     visually identical. */

body::after { content: "raptclub-css-v1.9.14"; display: none; }

/* ---------- Header logo optical centering ----------
 * .rc-brand-mark is an inline-flex container with align-items: center,
 * which means margin-top on the SVG child is absorbed by flex
 * realignment. Use transform: translateY instead — it shifts the
 * visible pixels without affecting layout / alignment math. */
.rc-brand-mark:not(.rc-brand-mark--footer) > svg {
	transform: translateY(3px);
}

/* ============================================================
 * RaptClub v1.9.15 — suppress duplicate border-top above footer
 * ============================================================ */

body::after { content: "raptclub-css-v1.9.16"; display: none; }

/* The journal section + similar content frames live inside <main>
 * while .rc-site-footer is a body-level sibling. So the journal's
 * NEXT SIBLING is null, not the footer — :has(+ footer) can't match.
 * Target the last child of <main> instead. */
main > *:last-child,
main > .rc-frame:last-child,
.site-main > *:last-child,
.site-main > .rc-frame:last-child {
	border-bottom: 0 !important;
}

/* ============================================================
 * RaptClub v1.9.25 — Customizer-controlled closed-site switch
 * ============================================================ */

body::after { content: "raptclub-css-v1.9.25"; display: none; }

.rc-hero-title-swap > .rc-hero-title-swap__word--when,
.rc-about-intro__mark {
	color: transparent;
	-webkit-text-stroke: 1px var(--rc-ink);
	text-stroke: 1px var(--rc-ink);
}
