/* ==========================================================================
   Roids24 — design system
   Inter · one brand accent · neutral surfaces · 8px spacing grid
   Radii: 8 controls · 12 cards · 16 panels
   ========================================================================== */

:root {
	--r24-accent: #0F8265;
	--r24-accent-deep: #0b5e49;
	--r24-accent-soft: rgba(15, 130, 101, .07);
	--r24-accent-tint: rgba(15, 130, 101, .10);
	--r24-accent-line: rgba(15, 130, 101, .18);

	--r24-ink: #16181D;
	--r24-ink-2: #23262D;
	--r24-slate: #5B6472;
	--r24-text: #2B2F36;
	--r24-text-2: #4A4F59;
	--r24-muted: #6B7079;
	--r24-faint: #8A8E96;
	--r24-border: #E4E5E8;
	--r24-border-2: #D4D6DA;
	--r24-border-3: #C9CBD0;
	--r24-divider: #EEEFF1;
	--r24-surface: #F4F4F5;
	--r24-surface-2: #F7F7F8;
	--r24-well: #F6F6F7;
	--r24-white: #FFFFFF;

	/* Names used by the product page brief (aliases of the tokens above). */
	--r24-border-strong: var(--r24-border-3);
	--r24-image-well: var(--r24-well);
	--r24-r-control: 8px;
	--r24-r-option: 10px;
	--r24-r-card: 12px;
	--r24-r-panel: 16px;
	--r24-container: var(--r24-max);

	--r24-radius-sm: 8px;
	--r24-radius: 12px;
	--r24-radius-lg: 16px;
	--r24-shadow-hover: 0 12px 28px rgba(22, 24, 29, .08);
	--r24-shadow-overlay: 0 20px 48px rgba(22, 24, 29, .14);

	--r24-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
	--r24-gutter: 40px;
	--r24-max: 1360px;
}

/* --------------------------------------------------------------------------
   Base
   ----------------------------------------------------------------------- */

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

html { -webkit-text-size-adjust: 100%; scroll-padding-top: 16px; }

body {
	margin: 0;
	font-family: var(--r24-font);
	font-size: 16px;
	line-height: 1.5;
	color: var(--r24-ink);
	background: var(--r24-white);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	/* Footer sits at the bottom of the window on short pages. */
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	min-height: 100dvh;
}
body > * { flex-shrink: 0; }
body.admin-bar { min-height: calc(100vh - 32px); min-height: calc(100dvh - 32px); }
@media screen and (max-width: 782px) { body.admin-bar { min-height: calc(100vh - 46px); min-height: calc(100dvh - 46px); } }

body.r24-locked { overflow: hidden; }

img, svg, video { max-width: 100%; height: auto; }
svg.r24-icon { flex-shrink: 0; height: auto; }

a { color: var(--r24-ink); text-decoration: none; }
a:hover { color: #000; }

button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }

h1, h2, h3, h4, h5, h6 { margin: 0; font-weight: 700; letter-spacing: -0.02em; line-height: 1.2; }
p { margin: 0; }

:focus-visible { outline: 2px solid var(--r24-ink); outline-offset: 2px; }

[hidden] { display: none !important; }

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

.r24-skip {
	position: absolute; left: 16px; top: -60px; z-index: 1000;
	padding: 12px 16px; border-radius: var(--r24-radius-sm);
	background: var(--r24-ink); color: #fff; font-weight: 600;
}
.r24-skip:focus { top: 16px; color: #fff; }

.wrap {
	width: 100%;
	max-width: var(--r24-max);
	margin-inline: auto;
	padding-inline: var(--r24-gutter);
}

.r24-scrollx { overflow-x: auto; scrollbar-width: none; }
.r24-scrollx::-webkit-scrollbar { display: none; }

.r24-hp { position: absolute; left: -9999px; }

/* --------------------------------------------------------------------------
   Typography
   ----------------------------------------------------------------------- */

.r24-h1 { font-size: 42px; line-height: 48px; font-weight: 700; letter-spacing: -0.025em; }
.r24-h2 { font-size: 28px; line-height: 34px; font-weight: 700; letter-spacing: -0.02em; }

.r24-eyebrow {
	display: block;
	font-size: 12px; font-weight: 600; line-height: 1.4;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--r24-muted);
}
.r24-eyebrow--accent { color: var(--r24-accent-deep); }

.r24-brandlabel {
	display: block;
	font-size: 11px; font-weight: 600; line-height: 1.4;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--r24-muted);
}

.r24-textlink {
	background: none; border: 0; padding: 0; min-height: 32px;
	display: inline-flex; align-items: center;
	font-size: 13px; font-weight: 500; color: var(--r24-text-2);
	text-decoration: underline; text-underline-offset: 3px;
}
.r24-textlink--accent { font-weight: 600; color: var(--r24-accent-deep); }

.r24-more-link {
	display: inline-flex; align-items: center; gap: 6px;
	min-height: 44px;
	font-size: 14px; font-weight: 600; white-space: nowrap;
}
.r24-more-link .r24-icon { transition: transform .18s ease; }
.r24-more-link:hover .r24-icon { transform: translateX(3px); }

/* --------------------------------------------------------------------------
   Buttons
   ----------------------------------------------------------------------- */

.r24-btn,
.button,
button.button,
input[type="submit"].button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	height: 44px; padding: 0 20px;
	border-radius: var(--r24-radius-sm);
	border: 1px solid var(--r24-ink);
	background: var(--r24-ink); color: #fff;
	font-size: 14px; font-weight: 600; line-height: 1;
	text-decoration: none; white-space: nowrap;
	cursor: pointer;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.r24-btn:hover, .button:hover { background: #000; border-color: #000; color: #fff; }

.r24-btn--lg { height: 52px; padding: 0 24px; border-radius: 10px; font-size: 15px; }
.r24-btn--sm { height: 40px; padding: 0 16px; }
.r24-btn--block { width: 100%; }

.r24-btn--primary,
.button.alt, button.button.alt, .single_add_to_cart_button, .checkout-button {
	background: var(--r24-accent); border-color: var(--r24-accent); color: #fff;
}
.r24-btn--primary:hover,
.button.alt:hover, .single_add_to_cart_button:hover, .checkout-button:hover {
	background: var(--r24-accent-deep); border-color: var(--r24-accent-deep); color: #fff;
}

.r24-btn--dark { background: var(--r24-ink); border-color: var(--r24-ink); color: #fff; }

.r24-btn--secondary { background: #fff; color: var(--r24-ink); border-color: var(--r24-ink); }
.r24-btn--secondary:hover { background: var(--r24-ink); color: #fff; }

.r24-btn--light { background: #fff; color: var(--r24-ink); border-color: #fff; }
.r24-btn--light:hover { background: var(--r24-surface); border-color: var(--r24-surface); color: var(--r24-ink); }

.button:disabled, .button.disabled, .r24-btn:disabled {
	background: var(--r24-surface); border-color: var(--r24-border); color: var(--r24-faint); cursor: not-allowed;
}

.r24-iconbtn {
	width: 44px; height: 44px; padding: 0;
	display: inline-flex; align-items: center; justify-content: center;
	border: 0; border-radius: var(--r24-radius-sm);
	background: transparent; color: var(--r24-ink);
}
.r24-iconbtn:hover { background: var(--r24-surface); }

/* --------------------------------------------------------------------------
   Form controls
   ----------------------------------------------------------------------- */

input[type="text"], input[type="email"], input[type="password"], input[type="tel"],
input[type="number"], input[type="url"], input[type="search"], input[type="date"],
select, textarea {
	width: 100%;
	min-height: 44px;
	padding: 0 14px;
	border: 1px solid var(--r24-border-2);
	border-radius: var(--r24-radius-sm);
	background: #fff;
	font-size: 15px; color: var(--r24-ink);
	outline: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
textarea { padding: 12px 14px; min-height: 120px; line-height: 1.5; }
select {
	appearance: none; -webkit-appearance: none;
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2316181D' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}
input:focus, select:focus, textarea:focus {
	border-color: var(--r24-ink);
	box-shadow: 0 0 0 1px var(--r24-ink), 0 0 0 4px rgba(22, 24, 29, .08);
}
input::placeholder, textarea::placeholder { color: var(--r24-muted); }

input[type="checkbox"], input[type="radio"] {
	width: 18px; height: 18px; margin: 0; flex-shrink: 0;
	accent-color: var(--r24-accent);
}

label { font-size: 14px; }

/* --------------------------------------------------------------------------
   Badges, pills, counts
   ----------------------------------------------------------------------- */

.r24-badge {
	display: inline-flex; align-items: center;
	height: 24px; padding: 0 9px;
	border-radius: 6px; border: 1px solid transparent;
	font-size: 12px; font-weight: 600; line-height: 1; white-space: nowrap;
}
.r24-badge--sale { background: var(--r24-accent); color: #fff; }
.r24-badge--new { background: var(--r24-ink); color: #fff; }
.r24-badge--best { background: #fff; color: var(--r24-ink); border-color: var(--r24-ink); }
.r24-badge--oos { background: var(--r24-border); color: var(--r24-text); }
.r24-badge--featured { background: var(--r24-accent-soft); color: var(--r24-accent-deep); }

.r24-origin {
	display: inline-flex; align-items: center; gap: 6px;
	height: 24px; padding: 0 8px;
	border-radius: 6px;
	font-size: 12px; font-weight: 600; white-space: nowrap;
	background: var(--r24-surface); color: var(--r24-text);
}
.r24-origin--us-domestic { background: var(--r24-accent-tint); color: var(--r24-accent-deep); }

.r24-pill {
	display: inline-flex; align-items: center; gap: 6px;
	height: 30px; padding: 0 12px;
	border-radius: var(--r24-radius-sm);
	background: var(--r24-surface);
	font-size: 13px; font-weight: 600; color: var(--r24-text);
	white-space: nowrap;
}
.r24-pill--link {
	height: 40px; padding: 0 16px; border-radius: 20px;
	background: #fff; border: 1px solid var(--r24-border-2);
	font-size: 14px; font-weight: 500; color: var(--r24-ink);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.r24-pill--link:hover { border-color: #B9BCC2; box-shadow: 0 8px 20px rgba(22, 24, 29, .06); }
.r24-pill--sm { height: 36px; padding: 0 14px; border-color: var(--r24-border); font-size: 13px; }
.r24-pills { display: flex; flex-wrap: wrap; gap: 8px; }

.r24-count {
	position: absolute;
	min-width: 18px; height: 18px; padding: 0 4px;
	border-radius: 9px;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 11px; font-weight: 700; line-height: 1; color: #fff;
}
.r24-count--ink { background: var(--r24-ink); top: 4px; right: 2px; }
.r24-count--accent { background: var(--r24-accent); top: -6px; right: -8px; }
.r24-count--inline { position: static; min-width: 20px; height: 20px; border-radius: 10px; font-size: 12px; }

/* --------------------------------------------------------------------------
   Top bar
   ----------------------------------------------------------------------- */

.r24-topbar {
	position: relative;
	z-index: 60; /* stays above the menu backdrop, like the header */
	background: var(--r24-surface);
	border-bottom: 1px solid var(--r24-border);
	font-size: 13px; color: var(--r24-text-2);
}
.r24-topbar__inner {
	height: 38px;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.r24-topbar__text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.r24-topbar__links { display: flex; align-items: center; gap: 22px; flex-shrink: 0; }
.r24-topbar__links a { color: var(--r24-text-2); }
.r24-topbar__links a:hover { color: var(--r24-ink); }
.r24-topbar__sep { width: 1px; height: 14px; background: var(--r24-border-2); }
.r24-topbar__currency { white-space: nowrap; }

.r24-inline-menu { display: flex; align-items: center; gap: 22px; margin: 0; padding: 0; list-style: none; }

/* --------------------------------------------------------------------------
   Header
   ----------------------------------------------------------------------- */

.r24-header { position: relative; z-index: 60; background: #fff; }

.r24-header__main {
	display: flex; align-items: center; flex-wrap: wrap; gap: 32px;
	padding-block: 18px;
}

.r24-logo { display: flex; align-items: center; flex-shrink: 0; }
.r24-logo .r24-logo__img, .r24-logo img { display: block; height: 64px; width: auto; }

.r24-search {
	position: relative;
	flex: 1 1 420px;
	display: flex; align-items: stretch;
	height: 52px;
	border: 2px solid var(--r24-border);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}
.r24-search .r24-search__input {
	flex: 1; min-width: 0; height: auto; min-height: 0;
	border: 0; border-radius: 0; box-shadow: none;
	padding: 0 16px;
	font-size: 15px;
	background: transparent;
}
.r24-search .r24-search__input:focus { box-shadow: none; }
.r24-search:focus-within { box-shadow: 0 0 0 4px rgba(22, 24, 29, .08); }
.r24-search__btn {
	width: 60px; border: 0; padding: 0;
	display: flex; align-items: center; justify-content: center;
	background: var(--r24-accent); color: #fff;
}
.r24-search__btn:hover { background: var(--r24-accent-deep); }

.r24-hactions { display: flex; align-items: center; gap: 8px; margin-left: auto; }

.r24-hact {
	position: relative;
	display: flex; align-items: center; gap: 10px;
	min-height: 44px; padding: 6px 10px;
	border-radius: var(--r24-radius-sm);
	color: var(--r24-ink);
}
.r24-hact:hover { background: var(--r24-surface); color: var(--r24-ink); }
.r24-hact--icon { width: 44px; height: 44px; padding: 0; justify-content: center; }
.r24-hact__icon { position: relative; display: flex; }
.r24-hact__label { display: flex; flex-direction: column; line-height: 1.2; }
.r24-hact__small { font-size: 12px; color: var(--r24-muted); }
.r24-hact__big { font-size: 14px; font-weight: 600; white-space: nowrap; }
.r24-hact__big small, .r24-hact__big .tax_label { display: none; }

/* Navigation row */
.r24-header__nav { border-top: 1px solid var(--r24-border); border-bottom: 1px solid var(--r24-border); background: #fff; }
.r24-header__navinner { display: flex; align-items: center; gap: 28px; min-height: 56px; }

.r24-catbtn {
	display: flex; align-items: center; gap: 10px; flex-shrink: 0;
	height: 40px; padding: 0 16px;
	border: 0; border-radius: var(--r24-radius-sm);
	background: var(--r24-ink); color: #fff;
	font-size: 14px; font-weight: 600;
	transition: background-color .18s ease;
}
.r24-catbtn__open { display: flex; }
.r24-catbtn__close { display: none; }
.r24-catbtn.is-open { background: var(--r24-accent); }
.r24-catbtn.is-open .r24-catbtn__open { display: none; }
.r24-catbtn.is-open .r24-catbtn__close { display: flex; }
.r24-catbtn__chev { transition: transform .22s ease; }
.r24-catbtn.is-open .r24-catbtn__chev { transform: rotate(180deg); }

.r24-nav { flex: 1; min-width: 0; }
.r24-nav__list, .r24-nav__pages ul {
	display: flex; align-items: center; flex-wrap: wrap; gap: 0 28px;
	margin: 0; padding: 0; list-style: none;
	font-size: 15px; font-weight: 500; white-space: nowrap;
}
.r24-nav__list > li { position: relative; }
.r24-nav__list > li > a { display: flex; align-items: center; gap: 4px; min-height: 44px; }
.r24-nav__list > li > a:hover { text-decoration: underline; text-underline-offset: 6px; }
.r24-nav__list > li.current-menu-item > a,
.r24-nav__list > li.current-menu-ancestor > a {
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--r24-accent);
	text-decoration-thickness: 2px;
	text-underline-offset: 8px;
}
.r24-nav__list > li.r24-accent > a { color: var(--r24-accent); font-weight: 600; }

.r24-nav__list .sub-menu {
	position: absolute; left: -16px; top: 100%; z-index: 70;
	min-width: 220px;
	margin: 0; padding: 8px; list-style: none;
	background: #fff;
	border: 1px solid var(--r24-border); border-radius: var(--r24-radius);
	box-shadow: var(--r24-shadow-overlay);
	opacity: 0; visibility: hidden; transform: translateY(4px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.r24-nav__list > li:hover > .sub-menu,
.r24-nav__list > li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.r24-nav__list .sub-menu a {
	display: flex; align-items: center; min-height: 40px; padding: 0 12px;
	border-radius: var(--r24-radius-sm);
	font-size: 14px; color: var(--r24-text);
}
.r24-nav__list .sub-menu a:hover { background: var(--r24-surface); color: var(--r24-ink); }
.r24-nav__list .r24-sub-all a { font-weight: 600; color: var(--r24-ink); }

/* Region switch */
.r24-region {
	display: flex; gap: 4px; flex-shrink: 0;
	padding: 4px;
	background: var(--r24-surface);
	border-radius: 10px;
}
.r24-region__opt {
	display: flex; align-items: center; gap: 7px;
	height: 40px; padding: 0 14px;
	border-radius: 7px;
	font-size: 14px; font-weight: 500; color: var(--r24-text-2); white-space: nowrap;
}
.r24-region__opt:hover { color: var(--r24-ink); }
.r24-region__opt.is-active {
	background: #fff; color: var(--r24-ink); font-weight: 600;
	box-shadow: 0 1px 2px rgba(22, 24, 29, .12);
}

.r24-backdrop {
	position: fixed; inset: 0; z-index: 50;
	background: rgba(22, 24, 29, .55);
	opacity: 0;
	transition: opacity .22s ease;
}
.r24-backdrop.is-visible { opacity: 1; }
.r24-mnav-open .r24-backdrop { z-index: 75; } /* dim the header too while the mobile drawer is open */

/* --------------------------------------------------------------------------
   Mobile navigation drawer
   ----------------------------------------------------------------------- */

.r24-burger { display: none; margin-left: -10px; }

.r24-mnav {
	position: fixed; top: 0; bottom: 0; left: 0; z-index: 80;
	width: min(380px, 88vw);
	display: flex; flex-direction: column;
	background: #fff;
	box-shadow: var(--r24-shadow-overlay);
	transform: translateX(-100%);
	transition: transform .28s cubic-bezier(.2, .8, .2, 1);
}
.r24-mnav.is-visible { transform: none; }
.admin-bar .r24-mnav { top: 46px; }

.r24-mnav__head {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding: 10px 8px 10px 16px;
	border-bottom: 1px solid var(--r24-border);
}
.r24-mnav__logo .r24-logo__img, .r24-mnav__logo img { height: 36px; }

.r24-mnav__body {
	flex: 1; min-height: 0;
	overflow-y: auto; overscroll-behavior: contain;
	padding: 4px 16px 24px;
}
.r24-mnav__label { margin: 20px 0 8px; }

.r24-mnav .r24-region { width: 100%; }
.r24-mnav .r24-region__opt { flex: 1; justify-content: center; }

.r24-mcats, .r24-mnav__menu ul, .r24-mnav__utility ul { margin: 0; padding: 0; list-style: none; }
.r24-mcats__row { display: flex; align-items: center; gap: 4px; }
.r24-mcats__link {
	flex: 1; min-width: 0;
	display: flex; align-items: center; gap: 12px;
	min-height: 52px; padding: 0 8px;
	border-radius: 10px;
}
.r24-mcats__link:hover { background: var(--r24-surface); }
.r24-mcats__sub { padding: 2px 0 8px 56px; }
.r24-mcats__sub a {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	min-height: 40px;
	font-size: 15px; color: var(--r24-text);
}
.r24-mcats__sub a span { font-size: 13px; color: var(--r24-muted); }
.r24-mcats__sub .r24-mcats__all { justify-content: flex-start; gap: 6px; font-weight: 600; color: var(--r24-ink); }

.r24-acc {
	flex-shrink: 0;
	width: 44px; height: 44px; padding: 0;
	display: flex; align-items: center; justify-content: center;
	border: 0; border-radius: var(--r24-radius-sm);
	background: transparent; color: var(--r24-text-2);
}
.r24-acc:hover { background: var(--r24-surface); color: var(--r24-ink); }
.r24-acc svg { transition: transform .2s ease; }
.r24-acc[aria-expanded="true"] svg { transform: rotate(180deg); }

/* Primary menu, restyled as a vertical list inside the drawer. */
.r24-mnav__menu .r24-nav__list { display: block; font-size: 16px; white-space: normal; }
.r24-mnav__menu .r24-nav__list > li {
	display: flex; flex-wrap: wrap; align-items: center;
	border-bottom: 1px solid var(--r24-divider);
}
.r24-mnav__menu .r24-nav__list > li > a { flex: 1; min-height: 52px; padding: 0 8px; }
.r24-mnav__menu .r24-nav__list > li > a:hover { text-decoration: none; }
.r24-mnav__menu .r24-nav__list > li.current-menu-item > a { text-underline-offset: 6px; }
.r24-mnav__menu .r24-nav__list .sub-menu {
	position: static; flex-basis: 100%;
	min-width: 0; padding: 0 0 10px 12px;
	border: 0; border-radius: 0; box-shadow: none;
	opacity: 1; visibility: visible; transform: none;
}
.r24-mnav__menu .r24-nav__list .sub-menu a { min-height: 40px; font-size: 15px; }

.r24-mnav__utility .r24-inline-menu { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
.r24-mnav__utility a { display: flex; align-items: center; min-height: 40px; padding: 0 8px; font-size: 15px; color: var(--r24-text-2); }

.r24-mnav__foot {
	display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
	padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--r24-border);
	background: var(--r24-surface-2);
}
.r24-mnav__footlink {
	display: inline-flex; align-items: center; gap: 8px;
	height: 44px; padding: 0 14px;
	border: 1px solid var(--r24-border); border-radius: var(--r24-radius-sm);
	background: #fff;
	font-size: 14px; font-weight: 600;
}
.r24-mnav__foot .r24-topbar__currency { margin-left: auto; font-size: 13px; color: var(--r24-text-2); }

/* --------------------------------------------------------------------------
   Mega menu
   ----------------------------------------------------------------------- */

.r24-mega {
	position: absolute; left: 0; right: 0; top: 100%;
	max-height: calc(100vh - 160px); overflow-y: auto;
	background: #fff;
	border-bottom: 1px solid var(--r24-border);
	box-shadow: 0 24px 48px rgba(22, 24, 29, .16);
	opacity: 0;
	transform: translateY(-8px);
	transition: opacity .22s ease, transform .22s cubic-bezier(.2, .8, .2, 1);
}
.r24-mega.is-visible { opacity: 1; transform: none; }

/* Gentle cross-fade when hovering between categories. */
@keyframes r24-panel-in {
	from { opacity: 0; transform: translateX(6px); }
	to { opacity: 1; transform: none; }
}
.r24-mega__grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); }

.r24-mega__cats {
	display: flex; flex-direction: column; gap: 2px;
	padding: 20px 20px 24px 0;
	border-right: 1px solid var(--r24-border);
}
.r24-mega__cat {
	display: flex; align-items: center; gap: 14px;
	min-height: 56px; padding: 0 14px;
	border-radius: 10px;
	transition: background-color .15s ease;
}
.r24-mega__caticon { transition: background-color .15s ease, color .15s ease; }
.r24-mega__cat:hover, .r24-mega__cat.is-active { background: var(--r24-surface); }
.r24-mega__caticon {
	width: 36px; height: 36px; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
	border-radius: var(--r24-radius-sm);
	background: var(--r24-surface); color: var(--r24-ink);
	overflow: hidden;
}
.r24-mega__cat.is-active .r24-mega__caticon { background: var(--r24-accent); color: #fff; }
.r24-mega__caticon img { width: 100%; height: 100%; object-fit: cover; }
.r24-mega__cattext { display: flex; flex-direction: column; gap: 1px; flex: 1; min-width: 0; }
.r24-mega__catname { font-size: 15px; font-weight: 500; }
.r24-mega__cat.is-active .r24-mega__catname { font-weight: 700; }
.r24-mega__catcount { font-size: 12px; color: var(--r24-muted); }
.r24-mega__chev { color: var(--r24-muted); }
.r24-mega__all {
	display: flex; align-items: center; gap: 6px;
	min-height: 44px; margin-top: 10px; padding: 0 14px;
	font-size: 14px; font-weight: 600;
}

.r24-mega__panel { display: grid; grid-template-columns: minmax(0, 1fr) 320px; animation: r24-panel-in .2s ease; }
.r24-mega__detail { display: flex; flex-direction: column; gap: 24px; min-width: 0; padding: 28px 36px 32px; }
.r24-mega__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.r24-mega__title { font-size: 24px; line-height: 30px; font-weight: 700; letter-spacing: -0.02em; }
.r24-mega__sub { font-size: 14px; color: var(--r24-text-2); }

.r24-mega__regions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.r24-mega__region {
	display: flex; align-items: center; gap: 12px;
	padding: 14px 16px;
	border: 1px solid var(--r24-border); border-radius: 10px;
	transition: border-color .18s ease;
}
.r24-mega__region:hover { border-color: #B9BCC2; }
.r24-mega__regicon {
	width: 36px; height: 36px; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
	border-radius: 18px; background: var(--r24-surface);
}
.r24-mega__region--us-domestic .r24-mega__regicon { background: var(--r24-accent-tint); color: var(--r24-accent-deep); }
.r24-mega__regtext { display: flex; flex-direction: column; gap: 1px; }
.r24-mega__regname { font-size: 14px; font-weight: 600; }
.r24-mega__regcount { font-size: 12px; color: var(--r24-muted); }

.r24-mega__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.r24-mega__col { display: flex; flex-direction: column; gap: 4px; }
.r24-mega__col .r24-eyebrow { margin-bottom: 6px; }
.r24-mega__link {
	display: flex; align-items: center; justify-content: space-between;
	min-height: 36px;
	font-size: 15px; color: var(--r24-text);
}
.r24-mega__link span { font-size: 13px; color: var(--r24-muted); }
.r24-mega__link:hover { color: #000; text-decoration: underline; text-underline-offset: 4px; }
.r24-mega__link--accent { color: var(--r24-accent-deep); font-weight: 600; }
.r24-mega__brands { display: flex; flex-direction: column; gap: 10px; }

.r24-mega__feat { padding: 28px 0 32px; }
.r24-featcard {
	height: 100%;
	display: flex; flex-direction: column; gap: 6px;
	padding: 22px;
	border-radius: 14px;
	background: var(--r24-surface);
}
.r24-featcard .r24-badge { align-self: flex-start; }
.r24-featcard__media {
	height: 190px; margin: 8px 0;
	display: flex; align-items: center; justify-content: center;
}
.r24-featcard__media img { max-height: 100%; width: auto; object-fit: contain; mix-blend-mode: multiply; }
.r24-featcard__media .r24-pkg { width: 104px; height: 156px; }
.r24-featcard__title { font-size: 17px; font-weight: 600; }
.r24-featcard__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 6px; }
.r24-featcard__price { font-size: 19px; font-weight: 700; }
.r24-featcard__price del { font-size: 14px; font-weight: 400; color: var(--r24-muted); }
.r24-featcard__price ins { text-decoration: none; }
.r24-featcard__view { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; }

/* --------------------------------------------------------------------------
   Illustrated package (placeholder for products / brands without images)
   ----------------------------------------------------------------------- */

.r24-pkg {
	--r24-band: var(--r24-accent);
	display: flex; flex-direction: column;
	overflow: hidden;
	background: #fff;
	border: 1px solid #DADCE0;
	border-radius: 4px;
	box-shadow: 0 12px 24px rgba(22, 24, 29, .10);
	transition: transform .18s ease;
}
.r24-pkg--tall { width: 42%; height: 64%; }
.r24-pkg--wide { width: 64%; height: 44%; }
.r24-pkg--bottle { width: 34%; height: 62%; border-radius: 14px 14px 6px 6px; }
.r24-pkg--square { width: 52%; height: 54%; }
.r24-pkg__band {
	height: 26%; min-height: 22px;
	display: flex; align-items: center;
	padding: 0 12%;
	background: var(--r24-band); color: #fff;
	font-size: 9px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
	white-space: nowrap; overflow: hidden;
}
.r24-pkg__lines { display: flex; flex-direction: column; gap: 6px; padding: 12%; }
.r24-pkg__lines i { display: block; height: 4px; border-radius: 2px; background: #C4C7CD; }
.r24-pkg__lines i:first-child { height: 6px; width: 78%; background: var(--r24-ink); }
.r24-pkg__lines i:nth-child(2) { width: 52%; }
.r24-pkg__lines i:nth-child(3) { width: 64%; }

/* --------------------------------------------------------------------------
   Sections
   ----------------------------------------------------------------------- */

.r24-main { display: block; flex: 1 0 auto; }
.r24-section { padding-top: 48px; }
.r24-section--hero { padding-top: 28px; }
.r24-section--products { padding-top: 56px; }
.r24-section--trust { padding-top: 64px; padding-bottom: 72px; }

.r24-section__head {
	display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 16px;
	margin-bottom: 20px;
}
.r24-section__head--center { align-items: center; }
.r24-section__sub { margin-top: 4px; font-size: 15px; color: var(--r24-text-2); }

/* --------------------------------------------------------------------------
   Hero
   ----------------------------------------------------------------------- */

.r24-hero {
	position: relative;
	border-radius: var(--r24-radius-lg);
	overflow: hidden;
	background: var(--r24-ink);
}
.r24-hero__slide { display: flex; flex-wrap: wrap; min-height: 440px; }
.r24-hero__panel {
	flex: 1 1 520px;
	display: flex; flex-direction: column; justify-content: center; gap: 20px;
	padding: 64px;
	color: #fff;
}
.r24-hero--multi .r24-hero__panel { padding-bottom: 96px; }
.r24-hero__badge {
	align-self: flex-start;
	display: flex; align-items: center; gap: 8px;
	height: 30px; padding: 0 12px;
	border-radius: 15px;
	background: rgba(255, 255, 255, .10);
	font-size: 13px; font-weight: 600;
}
.r24-hero__dot { width: 8px; height: 8px; border-radius: 4px; background: var(--r24-accent); }
.r24-hero__title {
	max-width: 600px;
	font-size: 52px; line-height: 58px; font-weight: 700; letter-spacing: -0.03em;
	color: #fff;
}
.r24-hero__text { max-width: 500px; font-size: 17px; line-height: 27px; color: var(--r24-border-3); }
.r24-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }

.r24-hero__dots { position: absolute; left: 64px; bottom: 48px; display: flex; gap: 8px; }
.r24-hero__dotbtn {
	width: 8px; height: 8px; padding: 0;
	border: 0; border-radius: 4px;
	background: rgba(255, 255, 255, .35);
	transition: width .2s ease, background-color .2s ease;
}
.r24-hero__dotbtn::after { content: ""; position: absolute; inset: -18px -4px; }
.r24-hero__dotbtn { position: relative; }
.r24-hero__dotbtn.is-active { width: 28px; background: #fff; }

.r24-hero__art {
	flex: 1 1 520px;
	position: relative;
	display: flex; align-items: flex-end; justify-content: center; gap: 24px;
	padding: 48px 40px 64px;
	background: var(--r24-accent);
	overflow: hidden;
}
.r24-hero__art--image { padding: 0; }
.r24-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.r24-hero__wm {
	position: absolute; right: -20px; top: -70px;
	font-size: 380px; line-height: 1; font-weight: 800; letter-spacing: -0.06em;
	color: rgba(255, 255, 255, .08);
	pointer-events: none; user-select: none;
}
.r24-hero__shelf { position: absolute; left: 10%; right: 10%; bottom: 62px; height: 2px; background: rgba(255, 255, 255, .35); }

.r24-hpkg {
	position: relative;
	display: flex; flex-direction: column;
	overflow: hidden;
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 20px 40px rgba(0, 0, 0, .22);
}
.r24-hpkg__band {
	display: flex; align-items: center;
	color: #fff; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
	white-space: nowrap; overflow: hidden;
}
.r24-hpkg__lines { display: flex; flex-direction: column; }
.r24-hpkg__lines i { display: block; border-radius: 2px; background: #C4C7CD; }
.r24-hpkg__lines i:first-child { background: var(--r24-ink); width: 80%; }
.r24-hpkg__lines i:nth-child(2) { width: 55%; }
.r24-hpkg__lines i:nth-child(3) { width: 65%; }

.r24-hpkg--sm { width: 132px; height: 198px; }
.r24-hpkg--sm .r24-hpkg__band { height: 48px; padding: 0 12px; font-size: 10px; }
.r24-hpkg--sm .r24-hpkg__lines { gap: 7px; padding: 16px 12px; }
.r24-hpkg--sm .r24-hpkg__lines i { height: 5px; }
.r24-hpkg--sm .r24-hpkg__lines i:first-child { height: 8px; }

.r24-hpkg--lg { width: 172px; height: 262px; box-shadow: 0 24px 48px rgba(0, 0, 0, .26); }
.r24-hpkg--lg .r24-hpkg__band { height: 64px; padding: 0 16px; font-size: 12px; }
.r24-hpkg--lg .r24-hpkg__lines { gap: 9px; padding: 20px 16px; }
.r24-hpkg--lg .r24-hpkg__lines i { height: 6px; }
.r24-hpkg--lg .r24-hpkg__lines i:first-child { height: 10px; width: 82%; }
.r24-hpkg__label { position: absolute; bottom: 16px; left: 16px; right: 16px; height: 24px; border: 1px solid var(--r24-border); border-radius: 3px; }

.r24-hpkg--bottle { width: 106px; height: 176px; border-radius: 18px 18px 8px 8px; box-shadow: 0 18px 36px rgba(0, 0, 0, .22); }
.r24-hpkg__cap { height: 20px; background: var(--r24-ink); }
.r24-hpkg--bottle .r24-hpkg__band { height: 40px; padding: 0 10px; font-size: 9px; }
.r24-hpkg--bottle .r24-hpkg__lines { gap: 6px; padding: 12px 10px; }
.r24-hpkg--bottle .r24-hpkg__lines i { height: 5px; }
.r24-hpkg--bottle .r24-hpkg__lines i:first-child { height: 6px; }

.r24-hero__arrows { position: absolute; right: 24px; bottom: 16px; display: flex; gap: 8px; }
.r24-hero__arrow {
	width: 44px; height: 44px; padding: 0;
	display: flex; align-items: center; justify-content: center;
	border-radius: 22px;
	border: 1px solid rgba(255, 255, 255, .45);
	background: transparent; color: #fff;
}
.r24-hero__arrow--next { border: 0; background: #fff; color: var(--r24-ink); }

/* --------------------------------------------------------------------------
   Category tiles
   ----------------------------------------------------------------------- */

.r24-cat-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 16px; }

.r24-tile {
	display: flex; flex-direction: column; gap: 14px;
	padding: 20px;
	border: 1px solid var(--r24-border); border-radius: var(--r24-radius);
	background: #fff;
	transition: border-color .18s ease, box-shadow .18s ease;
}
.r24-tile:hover { border-color: #B9BCC2; box-shadow: 0 8px 20px rgba(22, 24, 29, .06); }
.r24-tile__icon {
	width: 48px; height: 48px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 10px;
	background: var(--r24-surface); color: var(--r24-ink);
	overflow: hidden;
}
.r24-tile__icon img { width: 100%; height: 100%; object-fit: cover; }
.r24-tile__text { display: flex; flex-direction: column; gap: 2px; }
.r24-tile__name { font-size: 15px; font-weight: 600; }
.r24-tile__count { font-size: 13px; color: var(--r24-muted); }

/* --------------------------------------------------------------------------
   Featured brand cards
   ----------------------------------------------------------------------- */

.r24-brand-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }

.r24-bcard {
	position: relative;
	display: flex; flex-direction: column; gap: 10px;
	min-height: 240px; padding: 32px;
	border-radius: var(--r24-radius-lg);
	overflow: hidden;
}
.r24-bcard__eyebrow { font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.r24-bcard__name { font-size: 26px; line-height: 32px; }
.r24-bcard__logo img { max-height: 48px; width: auto; }
.r24-bcard__text { max-width: 220px; font-size: 14px; line-height: 21px; }
.r24-bcard__cta { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; }
.r24-bcard:hover .r24-bcard__cta .r24-icon { transform: translateX(3px); }
.r24-bcard__cta .r24-icon { transition: transform .18s ease; }

.r24-bcard--dark { background: var(--r24-ink); color: #fff; }
.r24-bcard--dark:hover { color: #fff; }
.r24-bcard--dark .r24-bcard__eyebrow { color: #B9BCC2; }
.r24-bcard--dark .r24-bcard__name { font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.r24-bcard--dark .r24-bcard__text { color: var(--r24-border-3); }

.r24-bcard--neutral { background: var(--r24-surface); color: var(--r24-ink); }
.r24-bcard--neutral .r24-bcard__eyebrow, .r24-bcard--neutral .r24-bcard__text { color: var(--r24-text-2); }
.r24-bcard--neutral .r24-bcard__name { font-size: 30px; font-weight: 400; font-style: italic; font-family: Georgia, 'Times New Roman', serif; letter-spacing: 0; }

.r24-bcard--accent { background: var(--r24-accent-soft); border: 1px solid var(--r24-accent-line); color: var(--r24-ink); }
.r24-bcard--accent .r24-bcard__eyebrow, .r24-bcard--accent .r24-bcard__cta { color: var(--r24-accent-deep); }
.r24-bcard--accent .r24-bcard__text { color: var(--r24-text-2); }
.r24-bcard--accent .r24-bcard__name { font-size: 28px; font-weight: 700; letter-spacing: -0.03em; text-transform: lowercase; }

.r24-bcard__decor { position: absolute; right: 28px; bottom: 28px; display: flex; align-items: flex-end; gap: 10px; }
.r24-bcard__decor i { display: block; background: #fff; border-radius: 4px; }
.r24-bcard--dark .r24-bcard__decor i:first-child { width: 56px; height: 86px; border-top: 22px solid var(--r24-accent); }
.r24-bcard--dark .r24-bcard__decor i:last-child { width: 70px; height: 110px; border-top: 28px solid var(--r24-accent); }
.r24-bcard--neutral .r24-bcard__decor i { border: 1px solid #DADCE0; }
.r24-bcard--neutral .r24-bcard__decor i:first-child { width: 50px; height: 96px; border-radius: 12px 12px 6px 6px; border-top: 30px solid var(--r24-ink-2); }
.r24-bcard--neutral .r24-bcard__decor i:last-child { width: 84px; height: 64px; border-top: 18px solid var(--r24-slate); }

.r24-bcard__offer {
	position: absolute; right: 28px; top: 28px;
	width: 72px; height: 72px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 36px;
	background: var(--r24-accent); color: #fff;
	font-size: 18px; font-weight: 800;
}

.r24-also { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.r24-also__label { margin-right: 4px; font-size: 14px; color: var(--r24-text-2); }

/* --------------------------------------------------------------------------
   Product grid + card
   ----------------------------------------------------------------------- */

ul.products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin: 0; padding: 0; list-style: none;
}
ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
ul.products::before, ul.products::after { display: none; }

.r24-pcard {
	display: flex; flex-direction: column;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--r24-border); border-radius: var(--r24-radius);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.r24-pcard:hover { border-color: var(--r24-border-3); box-shadow: var(--r24-shadow-hover); }

.r24-pcard__media { position: relative; }
.r24-pcard__img {
	aspect-ratio: 1 / 1;
	display: flex; align-items: center; justify-content: center;
	background: var(--r24-well);
	overflow: hidden;
}
.r24-pcard__photo {
	width: 100%; height: 100%;
	object-fit: contain;
	padding: 8%;
	mix-blend-mode: multiply;
	transition: transform .18s ease;
}
.r24-pcard:hover .r24-pkg, .r24-pcard:hover .r24-pcard__photo { transform: scale(1.03); }
.r24-pcard.is-oos .r24-pcard__img > * { opacity: .55; }
.r24-pcard__badge { position: absolute; top: 12px; left: 12px; }

.r24-wish {
	position: absolute; top: 6px; right: 6px;
	width: 44px; height: 44px; padding: 0;
	display: flex; align-items: center; justify-content: center;
	border: 0; background: transparent;
}
.r24-wish__dot {
	width: 34px; height: 34px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 17px;
	background: #fff; border: 1px solid var(--r24-border);
	color: var(--r24-ink);
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.r24-wish:hover .r24-wish__dot { border-color: var(--r24-ink); }
.r24-wish.is-on .r24-wish__dot { background: var(--r24-ink); border-color: var(--r24-ink); color: #fff; }
.r24-wish.is-on .r24-icon path { fill: currentColor; }

.r24-pcard__info { flex: 1; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 18px; }
.r24-pcard__title { font-size: 16px; line-height: 22px; font-weight: 600; letter-spacing: 0; }
.r24-pcard__title a { color: var(--r24-ink); }
.r24-pcard__meta { font-size: 13px; color: var(--r24-muted); }
.r24-pcard__origin { display: flex; margin-top: 8px; }

.r24-pcard__price, .price {
	display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 8px;
	font-size: 19px; font-weight: 700; color: var(--r24-ink);
}
.r24-pcard__price { margin: 10px 0 14px; }
.price del, .r24-pcard__price del { order: 2; font-size: 14px; font-weight: 400; color: var(--r24-muted); }
.price ins, .r24-pcard__price ins { order: 1; text-decoration: none; color: var(--r24-accent-deep); }
.price .screen-reader-text { order: 3; }

.r24-pcard__action { margin-top: auto; display: flex; flex-direction: column; gap: 8px; }

.r24-cta {
	width: 100%; height: 44px;
	display: flex; align-items: center; justify-content: center; gap: 8px;
	border-radius: var(--r24-radius-sm);
	border: 1px solid var(--r24-ink);
	background: #fff; color: var(--r24-ink);
	font-size: 14px; font-weight: 600;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
.r24-pcard .r24-cta.button { background: #fff; color: var(--r24-ink); }
.r24-pcard:hover .r24-cta:not(.r24-cta--muted),
.r24-pcard .r24-cta:not(.r24-cta--muted):focus-visible { background: var(--r24-ink); color: #fff; border-color: var(--r24-ink); }
.r24-cta--muted { border-color: var(--r24-border); background: var(--r24-surface); color: var(--r24-text-2); }
.r24-cta--muted:hover { color: var(--r24-ink); border-color: var(--r24-border-3); }
.r24-cta.loading { opacity: .6; pointer-events: none; }
.r24-cta.added .r24-icon { display: none; }
.r24-cta.added::before {
	content: "";
	width: 14px; height: 8px;
	border-left: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(-45deg) translateY(-2px);
}
.added_to_cart {
	align-self: center;
	font-size: 13px; font-weight: 600;
	text-decoration: underline; text-underline-offset: 3px;
}

/* List view */
.r24-results.is-list ul.products { grid-template-columns: 1fr; }
.r24-results.is-list .r24-pcard { flex-direction: row; }
.r24-results.is-list .r24-pcard__media { flex: 0 0 220px; }
.r24-results.is-list .r24-pcard__info { padding: 20px 24px; }
.r24-results.is-list .r24-pcard__action { flex-direction: row; align-items: center; }
.r24-results.is-list .r24-cta { width: auto; padding: 0 24px; }

/* Segmented tabs */
.r24-seg { display: flex; gap: 4px; padding: 4px; background: var(--r24-surface); border-radius: 10px; }
.r24-seg__btn {
	height: 40px; padding: 0 16px;
	border: 0; border-radius: 7px;
	background: transparent;
	font-size: 14px; font-weight: 500; color: var(--r24-text-2); white-space: nowrap;
}
.r24-seg__btn[aria-selected="true"] { background: #fff; color: var(--r24-ink); font-weight: 600; box-shadow: 0 1px 2px rgba(22, 24, 29, .10); }

/* --------------------------------------------------------------------------
   Trust strip
   ----------------------------------------------------------------------- */

.r24-trust {
	display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px;
	margin: 0; padding: 0; list-style: none;
	border: 1px solid var(--r24-border); border-radius: var(--r24-radius);
	background: var(--r24-border);
	overflow: hidden;
}
.r24-trust__item { display: flex; align-items: flex-start; gap: 14px; padding: 24px; background: #fff; }
.r24-trust__icon {
	width: 40px; height: 40px; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
	border-radius: 10px; background: var(--r24-surface);
}
.r24-trust__body { display: flex; flex-direction: column; gap: 3px; }
.r24-trust__title { font-size: 15px; font-weight: 600; }
.r24-trust__text { font-size: 13px; line-height: 19px; color: var(--r24-text-2); }

/* --------------------------------------------------------------------------
   Footer
   ----------------------------------------------------------------------- */

.r24-footer { background: var(--r24-ink); color: var(--r24-border-3); }
.r24-home { padding-bottom: 72px; }
.r24-home:has(.r24-section--trust:last-child) { padding-bottom: 0; }
.r24-footer .wrap { padding-top: 56px; padding-bottom: 32px; }
.r24-footer__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 32px; }
.r24-footer__brand { display: flex; flex-direction: column; gap: 16px; }
.r24-logo--light img { height: 54px; }
.r24-footer__text { font-size: 14px; line-height: 21px; color: #B9BCC2; }
.r24-footer__col { display: flex; flex-direction: column; gap: 12px; }
.r24-footer__title {
	font-size: 13px; font-weight: 600; line-height: 1.4;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: #fff;
}
.r24-footer__links { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.r24-footer__links a, .r24-footer a { color: var(--r24-border-3); font-size: 14px; }
.r24-footer__links a:hover { color: #fff; }

.r24-news { display: flex; flex-direction: column; gap: 12px; }
.r24-news__field { display: flex; height: 44px; border: 1px solid #3A3E46; border-radius: var(--r24-radius-sm); overflow: hidden; }
.r24-news__field input {
	flex: 1; min-width: 0; height: auto; min-height: 0;
	border: 0; border-radius: 0;
	background: var(--r24-ink-2); color: #fff;
	padding: 0 12px; font-size: 14px;
}
.r24-news__field input:focus { box-shadow: inset 0 0 0 2px #fff; }
.r24-news__field input::placeholder { color: var(--r24-faint); }
.r24-news__field button { border: 0; padding: 0 16px; background: var(--r24-accent); color: #fff; font-size: 14px; font-weight: 600; }
.r24-news__field button:hover { background: var(--r24-accent-deep); }
.r24-news__msg { font-size: 13px; color: #F5B7A8; }
.r24-news__msg.is-ok { color: #9FE0CB; }

.r24-footer__bottom {
	display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px;
	margin-top: 48px; padding-top: 24px;
	border-top: 1px solid #2D3038;
	font-size: 13px; color: #9A9EA6;
}
.r24-pay { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.r24-pay li { height: 28px; padding: 0 10px; display: flex; align-items: center; border: 1px solid #3A3E46; border-radius: 6px; }

/* --------------------------------------------------------------------------
   Breadcrumbs
   ----------------------------------------------------------------------- */

.r24-crumbs {
	display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
	font-size: 13px; color: var(--r24-muted);
}
.r24-crumbs a { color: var(--r24-text-2); }
.r24-crumbs a:hover { color: var(--r24-ink); text-decoration: underline; text-underline-offset: 3px; }
.r24-crumbs > :last-child, .r24-crumbs .breadcrumb_last { color: var(--r24-ink); font-weight: 500; }
.r24-crumbs--yoast > span { display: contents; }
.r24-crumbs--yoast span span { margin-right: 4px; }

/* --------------------------------------------------------------------------
   Catalog
   ----------------------------------------------------------------------- */

.r24-shop { padding-top: 24px; padding-bottom: 72px; }

.r24-cat-head { display: flex; flex-direction: column; gap: 8px; max-width: 720px; margin-top: 14px; }
.r24-cat-head__title { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.r24-cat-head .term-description, .r24-cat-head .page-description { font-size: 16px; line-height: 25px; color: var(--r24-text-2); }
.r24-cat-head .term-description p + p { margin-top: 8px; }

.r24-subcats { display: flex; gap: 8px; margin-top: 20px; padding-bottom: 4px; }
.r24-chiplink {
	flex-shrink: 0;
	display: flex; align-items: center; gap: 8px;
	height: 40px; padding: 0 16px;
	border-radius: 20px;
	border: 1px solid var(--r24-border-2);
	background: #fff;
	font-size: 14px; font-weight: 500; white-space: nowrap;
}
.r24-chiplink:hover { border-color: var(--r24-ink); }
.r24-chiplink.is-active { background: var(--r24-ink); border-color: var(--r24-ink); color: #fff; }
.r24-chiplink__n { font-size: 12px; opacity: .7; }

.r24-catalog { display: flex; align-items: flex-start; gap: 40px; margin-top: 28px; }
.r24-side { flex: 0 0 280px; }
.r24-results { flex: 1 1 560px; min-width: 0; }

/* Filters */
.r24-filters__head {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--r24-ink);
}
.r24-filters__title { font-size: 18px; font-weight: 700; letter-spacing: 0; }
.r24-filters__head .r24-textlink { margin-left: auto; }
.r24-filters__close { display: none; }

.r24-fgroup { margin: 0; padding: 18px 0; border: 0; border-bottom: 1px solid var(--r24-border); min-width: 0; }
.r24-fgroup__sum {
	display: flex; align-items: center; justify-content: space-between;
	width: 100%; min-height: 32px; padding: 0;
	font-size: 15px; font-weight: 600; color: var(--r24-ink);
	cursor: pointer; list-style: none;
}
.r24-fgroup__sum::-webkit-details-marker { display: none; }
.r24-fgroup--static .r24-fgroup__sum { cursor: default; float: left; }
.r24-fgroup--static .r24-shipcards { clear: both; }
.r24-fgroup__chev { transition: transform .18s ease; }
.r24-fgroup[open] .r24-fgroup__chev { transform: rotate(180deg); }
.r24-fgroup__body { display: flex; flex-direction: column; gap: 4px; margin-top: 10px; }

.r24-check {
	display: flex; align-items: center; gap: 12px;
	min-height: 34px;
	font-size: 14px; color: var(--r24-text);
	cursor: pointer;
}
.r24-check__label { flex: 1; min-width: 0; }
.r24-check__n { font-size: 13px; color: var(--r24-muted); }

.r24-shipcards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding-top: 10px; }
.r24-shipcard {
	position: relative;
	display: flex; flex-direction: column; gap: 4px;
	padding: 12px;
	border: 1px solid var(--r24-border-2); border-radius: 10px;
	cursor: pointer;
}
.r24-shipcard:has(input:checked) { border: 2px solid var(--r24-ink); padding: 11px; }
.r24-shipcard:has(input:focus-visible) { outline: 2px solid var(--r24-ink); outline-offset: 2px; }
.r24-shipcard input { position: absolute; top: 12px; right: 12px; width: 16px; height: 16px; }
.r24-shipcard__name { margin-top: 4px; font-size: 14px; font-weight: 600; }
.r24-shipcard__n { font-size: 12px; color: var(--r24-muted); }

.r24-more .r24-more__extra { display: none; }
.r24-more.is-expanded .r24-more__extra { display: block; }
.r24-more__toggle { margin-top: 4px; }

.r24-price__slider { position: relative; height: 20px; margin: 10px 9px 8px; }
.r24-price__track, .r24-price__fill { position: absolute; top: 8px; height: 4px; border-radius: 2px; }
.r24-price__track { left: 0; right: 0; background: var(--r24-border); }
.r24-price__fill { left: 0; right: 0; background: var(--r24-accent); }
.r24-price__slider input[type="range"] {
	position: absolute; left: -9px; right: -9px; top: 0;
	width: calc(100% + 18px); height: 20px; margin: 0;
	background: none; pointer-events: none;
	-webkit-appearance: none; appearance: none;
}
.r24-price__slider input[type="range"]::-webkit-slider-runnable-track { background: none; height: 20px; }
.r24-price__slider input[type="range"]::-moz-range-track { background: none; }
.r24-price__slider input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none; pointer-events: auto; cursor: grab;
	width: 20px; height: 20px; border-radius: 10px;
	background: #fff; border: 2px solid var(--r24-ink);
	box-shadow: 0 1px 3px rgba(22, 24, 29, .2);
}
.r24-price__slider input[type="range"]::-moz-range-thumb {
	pointer-events: auto; cursor: grab;
	width: 16px; height: 16px; border-radius: 10px;
	background: #fff; border: 2px solid var(--r24-ink);
	box-shadow: 0 1px 3px rgba(22, 24, 29, .2);
}
.r24-price__inputs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.r24-price__label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--r24-text-2); }
.r24-price__field {
	display: flex; align-items: center; gap: 4px;
	height: 40px; padding: 0 10px;
	border: 1px solid var(--r24-border-2); border-radius: var(--r24-radius-sm);
}
.r24-price__field:focus-within { border-color: var(--r24-ink); box-shadow: 0 0 0 1px var(--r24-ink); }
.r24-price__field span { font-size: 14px; color: var(--r24-muted); }
.r24-price__field input {
	min-height: 0; height: 38px; padding: 0;
	border: 0; box-shadow: none;
	font-size: 14px;
	-moz-appearance: textfield;
}
.r24-price__field input:focus { box-shadow: none; }
.r24-price__field input::-webkit-inner-spin-button, .r24-price__field input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

.r24-opts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
.r24-opt span {
	display: inline-flex; align-items: center;
	height: 36px; padding: 0 14px;
	border: 1px solid var(--r24-border-2); border-radius: var(--r24-radius-sm);
	background: #fff;
	font-size: 13px; font-weight: 500;
	cursor: pointer;
	transition: border-color .15s ease;
}
.r24-opt:hover span { border-color: var(--r24-ink); }
.r24-opt input:checked + span { background: var(--r24-ink); border-color: var(--r24-ink); color: #fff; }
.r24-opt input:focus-visible + span { outline: 2px solid var(--r24-ink); outline-offset: 2px; }

/* In-place catalog updates: top progress bar, dimmed results while loading, fade-in after. */
.r24-progress {
	position: fixed; top: 0; left: 0; z-index: 200;
	width: 0; height: 3px;
	background: var(--r24-accent);
	opacity: 0;
	pointer-events: none;
	transition: width .3s ease, opacity .3s ease;
}
.admin-bar .r24-progress { top: 32px; }
html.r24-loading .r24-progress { width: 80%; opacity: 1; transition: width 6s cubic-bezier(.1, .7, .2, 1), opacity .1s ease; }
.r24-progress.is-done { width: 100%; opacity: 0; transition: width .2s ease, opacity .3s ease .2s; }

.r24-results { transition: opacity .15s ease; }
html.r24-loading .r24-results { opacity: .45; transition: opacity .2s ease .12s; }

@keyframes r24-results-in {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}
.r24-shop.is-swapped ul.products,
.r24-shop.is-swapped .r24-pager { animation: r24-results-in .28s ease; }
.r24-results:focus { outline: none; }

.r24-filters__apply { display: none; padding-top: 18px; }
.no-js .r24-filters__apply { display: block; }

/* Toolbar */
.r24-toolbar {
	display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--r24-border);
}
.r24-toolbar__filters { display: none; }
.r24-toolbar__count { font-size: 15px; color: var(--r24-text-2); }
.r24-toolbar__count strong { font-weight: 700; color: var(--r24-ink); }
.r24-toolbar__right { display: flex; align-items: center; gap: 12px; }
.r24-toolbar__sortlabel { font-size: 14px; color: var(--r24-text-2); }
.r24-toolbar__sep { width: 1px; height: 24px; background: var(--r24-border); }
.woocommerce-ordering { margin: 0; }
.woocommerce-ordering select { width: auto; min-height: 40px; height: 40px; font-size: 14px; font-weight: 600; }

.r24-view { display: flex; gap: 4px; }
.r24-view__btn {
	width: 40px; height: 40px; padding: 0;
	display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--r24-border-2); border-radius: var(--r24-radius-sm);
	background: #fff; color: var(--r24-ink);
}
.r24-view__btn.is-active { background: var(--r24-ink); border-color: var(--r24-ink); color: #fff; }

/* Active filter chips */
.r24-active { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 14px 0 20px; }
.r24-fchip {
	display: inline-flex; align-items: center; gap: 4px;
	height: 34px; padding: 0 4px 0 12px;
	border: 1px solid var(--r24-border); border-radius: 17px;
	background: var(--r24-surface);
	font-size: 13px;
}
.r24-fchip__k { color: var(--r24-text-2); }
.r24-fchip__v { font-weight: 600; }
.r24-fchip__x {
	width: 28px; height: 28px;
	display: flex; align-items: center; justify-content: center;
	border-radius: 14px;
	color: var(--r24-text-2);
}
.r24-fchip__x:hover { background: var(--r24-border); color: var(--r24-ink); }
.r24-toolbar + ul.products { margin-top: 20px; }

/* Pagination */
.r24-pager { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: 40px; }
.r24-pager__info { font-size: 14px; color: var(--r24-text-2); }
.r24-pager__bar { width: 240px; height: 4px; border-radius: 2px; background: var(--r24-border); overflow: hidden; }
.r24-pager__bar span { display: block; height: 4px; background: var(--r24-ink); }

.r24-pagination, .r24-pagination .nav-links { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 6px; }
.r24-pagination .page-numbers, .r24-pagination__step {
	min-width: 44px; height: 44px; padding: 0 14px;
	display: flex; align-items: center; justify-content: center; gap: 6px;
	border: 1px solid var(--r24-border); border-radius: var(--r24-radius-sm);
	font-size: 14px; font-weight: 600; color: var(--r24-ink);
}
.r24-pagination a.page-numbers:hover, .r24-pagination a.r24-pagination__step:hover { border-color: var(--r24-ink); }
.r24-pagination .page-numbers.current { background: var(--r24-ink); border-color: var(--r24-ink); color: #fff; }
.r24-pagination .page-numbers.dots { min-width: 32px; padding: 0; border: 0; color: var(--r24-muted); }
.r24-pagination__step { border-color: var(--r24-border-2); }
.r24-pagination__step.is-disabled { border-color: var(--r24-border); color: #B0B3B9; font-weight: 500; }
.r24-pagination .screen-reader-text { position: absolute !important; }

/* Category guide */
.r24-about {
	display: flex; align-items: flex-start; flex-wrap: wrap; gap: 56px;
	margin-top: 72px; padding-top: 48px;
	border-top: 1px solid var(--r24-border);
}
.r24-about__body { flex: 999 1 560px; min-width: 0; max-width: 820px; }
.r24-about__side { flex: 1 1 300px; display: flex; flex-direction: column; gap: 20px; }
.r24-about--compact .r24-about__side { flex-direction: row; flex-wrap: wrap; }
.r24-about--compact .r24-about__side > * { flex: 1 1 300px; }

.r24-glance { display: flex; flex-direction: column; gap: 14px; padding: 24px; border-radius: var(--r24-radius); background: var(--r24-surface); }
.r24-glance__title { font-size: 15px; font-weight: 700; letter-spacing: 0; }
.r24-glance dl { display: flex; flex-direction: column; margin: 0; font-size: 14px; }
.r24-glance dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--r24-border); }
.r24-glance dl > div:last-child { border-bottom: 0; }
.r24-glance dt { color: var(--r24-text-2); }
.r24-glance dd { margin: 0; font-weight: 600; text-align: right; }
.r24-related-cats { display: flex; flex-direction: column; gap: 12px; }

.r24-help {
	display: flex; align-items: center; gap: 14px;
	padding: 18px;
	border: 1px solid var(--r24-border); border-radius: var(--r24-radius);
}
.r24-help:hover { border-color: #B9BCC2; }
.r24-help__icon {
	width: 44px; height: 44px; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
	border-radius: 10px; background: var(--r24-accent); color: #fff;
}
.r24-help__text { display: flex; flex-direction: column; gap: 2px; }
.r24-help__title { font-size: 15px; font-weight: 600; }
.r24-help__sub { font-size: 13px; color: var(--r24-text-2); }

.r24-empty-reset { margin-top: 16px; }

/* --------------------------------------------------------------------------
   Prose (page content, category guides, posts)
   ----------------------------------------------------------------------- */

.r24-prose { max-width: 820px; font-size: 16px; line-height: 26px; color: var(--r24-text); }
.r24-prose--wide { max-width: none; }
.r24-prose > * + * { margin-top: 16px; }
.r24-prose h2 { margin-top: 24px; font-size: 30px; line-height: 36px; color: var(--r24-ink); }
.r24-about__body .r24-eyebrow + h2 { margin-top: 16px; }
.r24-prose h3 { margin-top: 32px; font-size: 20px; line-height: 26px; font-weight: 600; letter-spacing: 0; color: var(--r24-ink); }
.r24-prose h4 { margin-top: 24px; font-size: 17px; font-weight: 600; letter-spacing: 0; color: var(--r24-ink); }
.r24-prose h2 + *, .r24-prose h3 + *, .r24-prose h4 + * { margin-top: 8px; }
.r24-prose > p:first-of-type { font-size: 17px; line-height: 28px; }
.r24-prose a { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.r24-prose strong { font-weight: 600; color: var(--r24-ink); }
.r24-prose ul, .r24-prose ol { padding-left: 22px; }
.r24-prose li + li { margin-top: 8px; }
.r24-prose blockquote { margin-left: 0; padding-left: 20px; border-left: 3px solid var(--r24-ink); font-size: 18px; }
.r24-prose img, .r24-prose figure { border-radius: var(--r24-radius); }
.r24-prose figure { margin-inline: 0; }
.r24-prose table { width: 100%; border-collapse: collapse; font-size: 15px; }
.r24-prose th, .r24-prose td { padding: 10px 12px; border-bottom: 1px solid var(--r24-border); text-align: left; }
.r24-prose hr { border: 0; border-top: 1px solid var(--r24-border); margin-block: 32px; }

/* FAQ blocks: <details><summary> */
.r24-prose details { border-bottom: 1px solid var(--r24-border); padding: 4px 0; }
.r24-prose details:first-of-type, .r24-prose h3 + details { border-top: 1px solid var(--r24-border); }
.r24-prose details + details { margin-top: 0; }
.r24-prose summary {
	min-height: 52px;
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	list-style: none; cursor: pointer;
	font-size: 16px; font-weight: 600; color: var(--r24-ink);
}
.r24-prose summary::-webkit-details-marker { display: none; }
.r24-prose summary::after {
	content: "";
	width: 18px; height: 18px; flex-shrink: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform .18s ease;
}
.r24-prose details[open] summary::after { transform: rotate(180deg); }
.r24-prose details > :not(summary) { margin: 0 0 16px; font-size: 15px; line-height: 24px; color: var(--r24-text-2); }

/* --------------------------------------------------------------------------
   Pages, posts, misc
   ----------------------------------------------------------------------- */

.r24-page { padding-top: 24px; padding-bottom: 72px; }
.r24-page__head { display: flex; flex-direction: column; gap: 8px; margin: 14px 0 28px; }
.r24-page__lead { max-width: 720px; font-size: 16px; line-height: 25px; color: var(--r24-text-2); }

.r24-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.r24-postcard { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--r24-border); border-radius: var(--r24-radius); }
.r24-postcard__img img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.r24-postcard__body { display: flex; flex-direction: column; gap: 8px; flex: 1; padding: 20px; }
.r24-postcard__title { font-size: 20px; line-height: 26px; font-weight: 600; letter-spacing: -0.01em; }
.r24-postcard__excerpt { font-size: 14px; line-height: 21px; color: var(--r24-text-2); }
.r24-postcard .r24-more-link { margin-top: auto; }

.r24-article { max-width: 820px; }
.r24-article__img { margin: 0 0 28px; }
.r24-article__img img { border-radius: var(--r24-radius-lg); }

.post-navigation { max-width: 820px; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--r24-border); }
.post-navigation .nav-links { display: flex; justify-content: space-between; gap: 24px; }
.post-navigation a { display: flex; flex-direction: column; gap: 4px; font-weight: 600; }
.post-navigation .nav-next { text-align: right; margin-left: auto; }

.r24-comments { max-width: 820px; margin-top: 56px; display: flex; flex-direction: column; gap: 24px; }
.r24-comments__list { margin: 0; padding: 0; list-style: none; }
.r24-comments__list .comment-body { padding: 20px 0; border-bottom: 1px solid var(--r24-border); }
.r24-comments__list .children { list-style: none; padding-left: 32px; }
.comment-author { display: flex; align-items: center; gap: 10px; font-weight: 600; }
.comment-author img { border-radius: 50%; }
.comment-metadata { font-size: 13px; color: var(--r24-muted); }
.comment-form p { margin-bottom: 16px; }
.comment-form label { display: block; margin-bottom: 6px; font-weight: 500; }

.r24-empty {
	display: flex; flex-direction: column; align-items: center; gap: 12px;
	padding: 56px 24px;
	border: 1px dashed var(--r24-border-2); border-radius: var(--r24-radius);
	text-align: center; color: var(--r24-text-2);
}
.r24-empty .r24-search { width: 100%; max-width: 520px; flex: none; }
.r24-empty__icon { width: 56px; height: 56px; display: flex; align-items: center; justify-content: center; border-radius: 28px; background: var(--r24-surface); color: var(--r24-ink); }
.r24-empty__title { font-size: 18px; font-weight: 600; color: var(--r24-ink); }

/* 404 */
.r24-404 { padding-top: 32px; padding-bottom: 80px; }
.r24-404__hero {
	display: flex; align-items: center; gap: 48px;
	padding: 56px;
	border-radius: var(--r24-r-panel);
	background: var(--r24-surface);
	overflow: hidden;
}
.r24-404__body { flex: 1 1 560px; min-width: 0; max-width: 640px; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.r24-404__lead { margin: 0; max-width: 560px; font-size: 17px; line-height: 26px; color: var(--r24-text-2); }
.r24-404 .r24-search { flex: none; align-self: stretch; height: 52px; margin-top: 8px; background: #fff; }
.r24-404__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.r24-404__actions .r24-btn--secondary { background: transparent; }
.r24-404__actions .r24-btn--secondary:hover { background: var(--r24-ink); }

.r24-404__art {
	flex: 1 1 360px;
	display: flex; align-items: center; justify-content: center; gap: 12px;
	font-size: 184px; line-height: 1; font-weight: 800; letter-spacing: -0.06em;
	color: var(--r24-ink);
	user-select: none;
}
.r24-404__box {
	width: 118px; height: 168px;
	display: flex; align-items: center; justify-content: center;
	transform: rotate(-8deg);
}
.r24-404__box .r24-pkg { width: 100%; height: 100%; box-shadow: 0 20px 40px rgba(22, 24, 29, .14); }
.r24-404__box .r24-pkg__band { font-size: 13px; }

.r24-404__cats { margin-top: 56px; }
.r24-404__h2 { margin-bottom: 20px; font-size: 22px; line-height: 28px; }
.r24-404__catlist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.r24-404__cat {
	display: flex; align-items: center; gap: 14px;
	min-height: 64px; padding: 12px 16px;
	border: 1px solid var(--r24-border); border-radius: var(--r24-radius);
	background: #fff;
	font-size: 15px; font-weight: 600; color: var(--r24-ink);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.r24-404__cat:hover { border-color: var(--r24-border-3); box-shadow: 0 8px 20px rgba(22, 24, 29, .06); color: var(--r24-ink); }
.r24-404__caticon {
	width: 40px; height: 40px; flex-shrink: 0;
	display: flex; align-items: center; justify-content: center;
	border-radius: 10px;
	background: var(--r24-surface);
	overflow: hidden;
}
.r24-404__caticon img { width: 100%; height: 100%; object-fit: cover; }
.r24-404__catname { flex: 1; min-width: 0; }
.r24-404__catgo { color: var(--r24-muted); transition: transform .18s ease; }
.r24-404__cat:hover .r24-404__catgo { transform: translateX(3px); color: var(--r24-ink); }

.r24-404__popular { margin-top: 56px; }

/* Brands page */
.r24-brands { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: 0; padding: 0; list-style: none; }
.r24-brandcard {
	display: flex; flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--r24-border); border-radius: var(--r24-radius);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.r24-brandcard:hover { border-color: var(--r24-border-3); box-shadow: var(--r24-shadow-hover); }
.r24-brandcard__mark {
	height: 112px; padding: 16px;
	display: flex; align-items: center; justify-content: center;
	font-size: 18px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; text-align: center;
}
.r24-brandcard__mark img { max-height: 64px; width: auto; object-fit: contain; }
.r24-brandcard__foot { display: flex; justify-content: space-between; gap: 12px; padding: 12px 16px; border-top: 1px solid var(--r24-divider); font-size: 14px; }
.r24-brandcard__name { font-weight: 600; }
.r24-brandcard__n { font-size: 13px; color: var(--r24-muted); }

/* WordPress core alignment / captions */
.alignleft { float: left; margin: 0 24px 16px 0; }
.alignright { float: right; margin: 0 0 16px 24px; }
.aligncenter { display: block; margin-inline: auto; }
.wp-caption-text, figcaption { font-size: 13px; color: var(--r24-muted); margin-top: 8px; }

/* --------------------------------------------------------------------------
   WooCommerce: notices
   ----------------------------------------------------------------------- */

.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews, p.no-comments {
	display: flex; align-items: center; flex-wrap: wrap; gap: 12px 16px;
	margin: 0 0 20px; padding: 14px 18px;
	border: 1px solid var(--r24-border); border-radius: var(--r24-radius);
	background: var(--r24-surface);
	font-size: 15px; list-style: none;
}
.woocommerce-message { border-color: var(--r24-accent-line); background: var(--r24-accent-soft); }
.woocommerce-error { border-color: #F2C4BA; background: #FDF3F1; color: #8A2A16; flex-direction: column; align-items: flex-start; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; height: 40px; }
.woocommerce-info a:not(.button) { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* --------------------------------------------------------------------------
   WooCommerce: shared bits (single product page itself → assets/css/product.css)
   ----------------------------------------------------------------------- */

.quantity { display: inline-flex; }
.quantity .qty { width: 88px; height: 52px; text-align: center; font-weight: 600; }

.star-rating {
	position: relative; display: inline-block;
	width: 5.4em; height: 1em;
	font-size: 15px; line-height: 1; letter-spacing: .1em;
	overflow: hidden;
}
.star-rating::before { content: "\2605\2605\2605\2605\2605"; position: absolute; top: 0; left: 0; color: var(--r24-border-2); }
.star-rating span { position: absolute; top: 0; left: 0; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { content: "\2605\2605\2605\2605\2605"; position: absolute; top: 0; left: 0; color: var(--r24-ink); }

/* --------------------------------------------------------------------------
   WooCommerce: cart, checkout, account (classic shortcodes + blocks)
   ----------------------------------------------------------------------- */

.r24-store-content { min-width: 0; }

.shop_table { width: 100%; border-collapse: collapse; font-size: 15px; }
.shop_table th, .shop_table td { padding: 14px 12px; border-bottom: 1px solid var(--r24-border); text-align: left; vertical-align: middle; }
.shop_table thead th { font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--r24-text-2); }
.shop_table .product-thumbnail img { width: 72px; border-radius: var(--r24-radius-sm); background: var(--r24-well); }
.shop_table .product-name a { font-weight: 600; }
.shop_table .product-remove a { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 16px; font-size: 20px; color: var(--r24-text-2); }
.shop_table .product-remove a:hover { background: var(--r24-surface); color: var(--r24-ink); }
.shop_table .actions { padding-top: 20px; }
.shop_table .coupon { display: inline-flex; gap: 8px; }
.shop_table .coupon input { width: 200px; }
.cart-collaterals { display: flex; justify-content: flex-end; margin-top: 32px; }
.cart_totals { width: 100%; max-width: 440px; padding: 24px; border-radius: var(--r24-radius); background: var(--r24-surface); }
.cart_totals h2 { font-size: 20px; margin-bottom: 8px; }
.cart_totals .shop_table th, .cart_totals .shop_table td { padding-inline: 0; }
.wc-proceed-to-checkout { margin-top: 16px; }
.wc-proceed-to-checkout .checkout-button { width: 100%; height: 52px; }

.woocommerce-checkout .col2-set, .woocommerce-account .col2-set, .u-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.woocommerce form .form-row { display: flex; flex-direction: column; gap: 6px; margin: 0 0 16px; }
.woocommerce form .form-row label { font-weight: 500; }
.woocommerce form .form-row .required { color: #B42318; text-decoration: none; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { display: inline-flex; width: calc(50% - 8px); }
.woocommerce form .form-row-first { margin-right: 12px; }
.woocommerce-invalid input { border-color: #B42318; }
#order_review { padding: 24px; border-radius: var(--r24-radius); background: var(--r24-surface); }
#order_review_heading { margin: 32px 0 12px; font-size: 22px; }
.wc_payment_methods { margin: 16px 0; padding: 0; list-style: none; }
.wc_payment_method { padding: 12px 0; border-bottom: 1px solid var(--r24-border); }
.payment_box { margin-top: 8px; padding: 12px; border-radius: var(--r24-radius-sm); background: #fff; font-size: 14px; }
#place_order { width: 100%; height: 52px; background: var(--r24-accent); border-color: var(--r24-accent); }

/* My account pages: assets/css/account.css */
.woocommerce-form-login, .woocommerce-form-register { max-width: 480px; padding: 28px; border: 1px solid var(--r24-border); border-radius: var(--r24-radius); }
.woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: 10px; }
.woocommerce-LostPassword { margin-top: 12px; font-size: 14px; }

/* Cart & Checkout blocks: align their components with the design system. */
.wc-block-components-button:not(.is-link) {
	min-height: 52px;
	border-radius: 10px !important;
	background: var(--r24-accent) !important; color: #fff !important;
	font-weight: 600;
}
.wc-block-components-button:not(.is-link):hover { background: var(--r24-accent-deep) !important; }
.wc-block-components-text-input input, .wc-block-components-select select, .wc-blocks-components-select__select {
	border-radius: var(--r24-radius-sm) !important;
	border-color: var(--r24-border-2) !important;
}
.wc-block-components-sidebar-layout .wc-block-components-sidebar .wc-block-components-totals-wrapper,
.wp-block-woocommerce-checkout-order-summary-block { border-color: var(--r24-border) !important; }
.wc-block-components-product-name { font-weight: 600; color: var(--r24-ink); }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked { background: var(--r24-ink); border-color: var(--r24-ink); }

/* --------------------------------------------------------------------------
   Shared by the product and cart pages
   ----------------------------------------------------------------------- */

.r24-ulink { color: var(--r24-ink); text-decoration: underline; text-underline-offset: 3px; }
.r24-ulink:hover { color: #000; }

.r24-assure { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; border: 1px solid var(--r24-border); border-radius: var(--r24-r-card); }
.r24-assure li { display: flex; align-items: center; gap: 14px; padding: 14px 16px; font-size: 14px; }
.r24-assure li + li { border-top: 1px solid var(--r24-border); }
.r24-assure strong { font-weight: 600; }
.r24-assure__sub { color: var(--r24-text-2); }

.r24-related { margin-top: 80px; }
.r24-related__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.r24-related__title { font-size: 28px; line-height: 34px; font-weight: 700; letter-spacing: -0.02em; }
.r24-related__all { gap: 6px; min-height: 44px; font-size: 14px; font-weight: 600; color: var(--r24-ink); text-decoration: none; }
.r24-related__all:hover { color: #000; text-decoration: underline; }
.r24-related ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }

/* --------------------------------------------------------------------------
   Mobile sticky bar
   ----------------------------------------------------------------------- */

.r24-stickybar { display: none; }

/* Checkout flow (cart, checkout, order received) — shared */
/* --------------------------------------------------------------------------
   Checkout steps (template-parts/checkout-steps.php)
   ----------------------------------------------------------------------- */

.r24-steps { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; padding: 0; list-style: none; }
.r24-steps__step { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--r24-text-2); }
.r24-steps__num {
	width: 28px; height: 28px;
	display: flex; align-items: center; justify-content: center;
	border: 1px solid var(--r24-border-strong); border-radius: 14px;
	font-size: 13px; font-weight: 600; color: var(--r24-text-2);
}
.r24-steps__step.is-current { font-weight: 600; color: var(--r24-ink); }
.r24-steps__step.is-current .r24-steps__num,
.r24-steps__step.is-done .r24-steps__num { border-color: var(--r24-accent); background: var(--r24-accent); color: #fff; font-weight: 700; }
.r24-steps__bar { width: 48px; height: 2px; background: var(--r24-border); }

/* --------------------------------------------------------------------------
   Cart and checkout heading
   ----------------------------------------------------------------------- */

.r24-cart__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.r24-cart__title { font-size: 38px; line-height: 44px; font-weight: 700; letter-spacing: -0.025em; }
.r24-cart__title:focus { outline: none; }
.r24-cart__count { font-size: 16px; color: var(--r24-text-2); }


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

@media (max-width: 1200px) {
	.r24-mega__panel { grid-template-columns: minmax(0, 1fr); }
	.r24-mega__feat { display: none; }
}

@media (max-width: 1100px) {
	.r24-404__hero { flex-direction: column-reverse; align-items: stretch; gap: 24px; padding: 40px; }
	.r24-404__art { flex-basis: auto; font-size: 128px; }
	.r24-404__box { width: 82px; height: 118px; }
	.r24-404__body { max-width: none; flex-basis: auto; }
	.r24-404__catlist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.r24-related ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.r24-cat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	ul.products, ul.products.columns-4, ul.products.columns-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.r24-results ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.r24-brand-grid { grid-template-columns: 1fr; }
	.r24-hero__art { display: none; }
	.r24-hero__arrows { display: none; }
	.r24-trust { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.r24-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.r24-footer__brand { grid-column: 1 / -1; }
	.r24-mega__grid { grid-template-columns: 240px minmax(0, 1fr); }
	.r24-header__navinner { flex-wrap: wrap; gap: 12px 24px; padding-block: 8px; }
	.r24-region { margin-left: auto; }
	.r24-nav { order: 3; flex-basis: 100%; }
	.r24-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.r24-brands { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.r24-catalog { display: block; }
	.r24-side {
		position: fixed; top: 0; bottom: 0; left: 0; z-index: 70;
		width: min(380px, 92vw);
		padding: 16px 20px 24px;
		overflow-y: auto;
		background: #fff;
		box-shadow: var(--r24-shadow-overlay);
		transform: translateX(-105%);
		visibility: hidden;
		transition: transform .22s ease, visibility .22s;
	}
	.r24-side.is-open { transform: none; visibility: visible; }
	.r24-filters__close { display: inline-flex; margin-right: -10px; }
	.r24-filters__apply { display: block; position: sticky; bottom: -24px; margin: 0 -20px -24px; padding: 16px 20px 24px; background: #fff; border-top: 1px solid var(--r24-border); }
	.r24-toolbar__filters { display: inline-flex; }
	.r24-toolbar__count { order: 3; flex-basis: 100%; }
	.r24-toolbar__sortlabel, .r24-toolbar__sep, .r24-view { display: none; }
	.r24-results.is-list ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.r24-results.is-list .r24-pcard { flex-direction: column; }
	.r24-results.is-list .r24-pcard__media { flex: none; }
}

@media (max-width: 760px) {
	.r24-steps { gap: 8px; }
	.r24-steps__label { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
	.r24-steps__bar { width: 32px; }
	.r24-cart__head { margin-top: 20px; gap: 8px 14px; }
	.r24-cart__title { font-size: 28px; line-height: 34px; }

	.r24-404 { padding-top: 16px; padding-bottom: 64px; }
	.r24-404__hero { padding: 28px 20px; }
	.r24-404__art { font-size: 88px; gap: 8px; }
	.r24-404__box { width: 58px; height: 84px; }
	.r24-404__box .r24-pkg__band { font-size: 0; min-height: 16px; }
	.r24-404__lead { font-size: 15px; line-height: 23px; }
	.r24-404 .r24-search { order: 0; flex-basis: auto; }
	.r24-404__actions .r24-btn { flex: 1 1 100%; }
	.r24-404__cats, .r24-404__popular { margin-top: 40px; }
	.r24-404__catlist { grid-template-columns: 1fr; gap: 8px; }
	.r24-404__cat { min-height: 56px; }
	.r24-related { margin-top: 56px; }
	.r24-related__head { align-items: center; }
	.r24-related__title { font-size: 24px; line-height: 30px; }
	.r24-related ul.products { gap: 12px; }

	.r24-stickybar {
		position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
		display: flex; align-items: center; gap: 12px;
		padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
		background: #fff; border-top: 1px solid var(--r24-border);
		box-shadow: 0 -8px 24px rgba(22, 24, 29, .08);
		transform: translateY(110%);
		visibility: hidden;
		transition: transform .2s ease, visibility .2s;
	}
	.r24-stickybar[hidden] { display: none !important; }
	.r24-stickybar.is-visible { transform: none; visibility: visible; }
	.r24-stickybar__info { display: flex; flex-direction: column; flex: 1; min-width: 0; }
	.r24-stickybar__name { font-size: 13px; color: var(--r24-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	.r24-stickybar__price { font-size: 17px; font-weight: 700; color: var(--r24-accent-deep); }
	.r24-stickybar__price del { display: none; }
	.r24-stickybar__price ins { text-decoration: none; }
	.r24-stickybar__btn { height: 48px; padding: 0 18px; border-radius: var(--r24-r-option); }

	:root { --r24-gutter: 16px; }

	.r24-topbar__links { display: none; }
	.r24-topbar__inner { justify-content: center; }

	.r24-topbar__inner { height: 32px; font-size: 12px; }

	/* Compact header: ☰ · logo · icons, then search. The nav row moves into the drawer. */
	.r24-header__main { flex-wrap: wrap; gap: 10px 4px; padding-block: 8px 12px; }
	.r24-burger { display: inline-flex; }
	.r24-logo .r24-logo__img, .r24-logo img { height: 40px; }
	.r24-search { order: 3; flex-basis: 100%; height: 46px; }
	.r24-hact__label { display: none; }
	.r24-hactions { gap: 0; margin-right: -10px; }
	.r24-hact { padding: 0; width: 44px; justify-content: center; }
	.r24-header__nav { display: none; }

	.r24-mega { max-height: calc(100vh - 200px); }
	.r24-mega__grid { grid-template-columns: 1fr; }
	.r24-mega__cats { padding: 12px 0 16px; border-right: 0; }
	.r24-mega__panel { display: none !important; }

	.r24-h1 { font-size: 30px; line-height: 36px; }
	.r24-h2 { font-size: 24px; line-height: 30px; }

	.r24-section { padding-top: 40px; }
	.r24-section--hero { padding-top: 16px; }
	.r24-hero__panel { padding: 28px 20px; }
	.r24-hero--multi .r24-hero__panel { padding-bottom: 64px; }
	.r24-hero__dots { left: 20px; bottom: 28px; }
	.r24-hero__title { font-size: 32px; line-height: 38px; }
	.r24-hero__text { font-size: 16px; line-height: 25px; }
	.r24-hero__slide { min-height: 0; }
	.r24-hero__ctas .r24-btn { flex: 1 1 100%; }

	.r24-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.r24-tile { padding: 16px; }

	ul.products, ul.products.columns-3, ul.products.columns-4, ul.products.columns-5,
	.r24-results ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.r24-pcard__info { padding: 12px; }
	.r24-pcard__title { font-size: 15px; line-height: 20px; }
	.r24-pcard__price { font-size: 17px; }
	.r24-cta { font-size: 13px; }
	.r24-cta .r24-icon { display: none; }

	.r24-bcard { min-height: 200px; padding: 24px; }
	.r24-bcard__decor { transform: scale(.75); transform-origin: bottom right; right: 20px; bottom: 20px; }

	.r24-seg { width: 100%; overflow-x: auto; }
	.r24-seg__btn { flex: 1; padding: 0 10px; }

	.r24-trust { grid-template-columns: 1fr; }
	.r24-trust__item { padding: 18px; }

	.r24-footer__grid { grid-template-columns: 1fr; }

	.r24-about { gap: 32px; margin-top: 48px; padding-top: 32px; }
	.r24-prose h2 { font-size: 24px; line-height: 30px; }

	.r24-posts, .r24-brands { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }


	.shop_table_responsive thead { display: none; }
	.shop_table_responsive tr { display: block; padding: 12px 0; border-bottom: 1px solid var(--r24-border); }
	.shop_table_responsive td { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border: 0; text-align: right; }
	.shop_table_responsive td::before { content: attr(data-title); font-weight: 600; text-align: left; }
	.shop_table_responsive td.product-remove::before, .shop_table_responsive td.product-thumbnail::before, .shop_table_responsive td.actions::before { content: none; }
	.shop_table .coupon { display: flex; width: 100%; }
	.shop_table .coupon input { width: auto; flex: 1; }
	.woocommerce-checkout .col2-set, .woocommerce-account .col2-set, .u-columns { grid-template-columns: 1fr; }
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; margin-right: 0; }
}

@media (max-width: 360px) {
	.r24-logo .r24-logo__img, .r24-logo img { height: 34px; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
