/**
 * RenewTech theme styles.
 *
 * Palette is sampled from the RenewTech Systems logo:
 *   blue  #1B75F3  navy #1F2C39  green #92BB26
 * The blue is deepened slightly for solid buttons so white text keeps a 5:1
 * contrast ratio. The green is never used as text on white (it only reaches
 * 2.2:1) - it sits behind dark text as a fill, or as a rule.
 *
 * Every colour below reads from a CSS variable published by RenewTech Core,
 * so the palette is changed in the admin, not here.
 */

/* --------------------------------------------------------------- tokens */

:root {
	--rt-brand: #1668E0;
	--rt-brand-dark: #1153B8;
	--rt-brand-bright: #1B75F3;
	--rt-brand-rgb: 22, 104, 224;
	--rt-ink: #1F2C39;
	--rt-ink-rgb: 31, 44, 57;
	--rt-accent: #92BB26;
	--rt-accent-rgb: 146, 187, 38;
	--rt-surface: #ffffff;
	--rt-surface-2: #f4f6f8;
	--rt-line: #e2e7ec;

	--rt-muted: #5a6873;
	--rt-radius: 8px;
	--rt-radius-sm: 5px;
	--rt-container: 1240px;
	--rt-gutter: 1.25rem;

	--rt-font: "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--rt-font-display: "Barlow Semi Condensed", "Barlow", -apple-system, BlinkMacSystemFont, sans-serif;
}

/* ----------------------------------------------------------------- base */

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

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--rt-surface);
	color: var(--rt-ink);
	font-family: var(--rt-font);
	font-size: 1rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

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

a {
	color: var(--rt-brand);
	text-decoration-thickness: 1px;
	text-underline-offset: 2px;
}

a:hover {
	color: var(--rt-brand-dark);
}

h1,
h2,
h3,
h4 {
	font-family: var(--rt-font-display);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.005em;
	margin: 0 0 0.6em;
	color: var(--rt-ink);
	text-wrap: balance;
}

h1 { font-size: clamp(2rem, 1.35rem + 2.6vw, 3.15rem); }
h2 { font-size: clamp(1.55rem, 1.25rem + 1.3vw, 2.2rem); }
h3 { font-size: clamp(1.15rem, 1.05rem + 0.45vw, 1.4rem); }

p { margin: 0 0 1rem; }

p,
li {
	max-width: 74ch;
}

.rt-container {
	width: 100%;
	max-width: var(--rt-container);
	margin: 0 auto;
	padding: 0 var(--rt-gutter);
}

.rt-section {
	padding: clamp(2.75rem, 2rem + 3vw, 4.75rem) 0;
}

.rt-section--alt {
	background: var(--rt-surface-2);
}

.rt-section__cta {
	margin-top: 2rem;
}

.rt-main {
	min-height: 50vh;
}

.rt-link {
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid rgba(var(--rt-brand-rgb), 0.35);
}

.rt-link:hover {
	border-bottom-color: var(--rt-brand);
}

/* Section headings carry a short green rule: the one place the logo green
   appears structurally, tying the page back to the mark. */
.rt-section > .rt-container > h2::after,
.rt-section__title::after {
	content: "";
	display: block;
	width: 46px;
	height: 3px;
	margin-top: 0.7rem;
	background: var(--rt-accent);
	border-radius: 2px;
}

/* -------------------------------------------------------------- buttons */

.rt-btn--lg {
	min-height: 54px;
	padding: 0.85rem 1.7rem;
	font-size: 1rem;
}

.rt-btn--outline {
	background: transparent;
	border-color: rgba(var(--rt-ink-rgb), 0.25);
	color: var(--rt-ink);
}

.rt-btn--outline:hover,
.rt-btn--outline:focus {
	border-color: var(--rt-ink);
	color: var(--rt-ink);
}

.rt-btn--light {
	background: #fff;
	color: var(--rt-ink);
}

.rt-btn--light:hover,
.rt-btn--light:focus {
	background: var(--rt-surface-2);
	color: var(--rt-ink);
}

/* ------------------------------------------------------- announcement bar */

.rt-announce {
	background: var(--rt-ink);
	color: #fff;
	font-size: 0.83rem;
	line-height: 1.4;
	padding: 0.5rem 0;
	text-align: center;
}

.rt-announce a {
	color: #fff;
}

/* --------------------------------------------------------------- header */

.rt-header {
	background: var(--rt-surface);
	border-bottom: 1px solid var(--rt-line);
	position: relative;
	z-index: 50;
}

.rt-header.is-stuck {
	position: sticky;
	top: 0;
	box-shadow: 0 6px 20px -14px rgba(var(--rt-ink-rgb), 0.5);
}

.rt-header__inner {
	display: flex;
	align-items: center;
	gap: 1rem;
	min-height: 74px;
	padding-top: 0.6rem;
	padding-bottom: 0.6rem;
}

.rt-header__brand {
	flex: none;
}

.rt-logo,
.rt-header__brand a {
	display: inline-flex;
	align-items: center;
	text-decoration: none;
	color: var(--rt-ink);
	font-family: var(--rt-font-display);
	font-weight: 700;
	font-size: 1.3rem;
}

.rt-logo__img,
.rt-header__brand img {
	display: block;
	width: auto;
	height: 42px;
	max-height: 42px;
}

.rt-header__search {
	flex: 1;
	min-width: 0;
}

.rt-search {
	position: relative;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	background: var(--rt-surface-2);
	border: 1px solid var(--rt-line);
	border-radius: 999px;
	padding: 0.3rem 0.4rem 0.3rem 1rem;
}

.rt-search:focus-within {
	border-color: var(--rt-brand);
	background: var(--rt-surface);
}

.rt-search input[type="search"],
.rt-search input[type="text"] {
	flex: 1;
	min-width: 0;
	border: 0;
	background: transparent;
	font: inherit;
	font-size: 0.92rem;
	color: var(--rt-ink);
	padding: 0.35rem 0;
}

.rt-search input:focus {
	outline: none;
}

.rt-search button {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 0;
	border-radius: 50%;
	background: var(--rt-brand);
	color: #fff;
	cursor: pointer;
}

.rt-search button:hover {
	background: var(--rt-brand-dark);
}

.rt-header__actions {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	flex: none;
}

.rt-header__cta {
	display: none;
	align-items: center;
	gap: 0.4rem;
	padding: 0.55rem 1rem;
	border: 1px solid var(--rt-line);
	border-radius: 999px;
	font-size: 0.86rem;
	font-weight: 600;
	text-decoration: none;
	color: var(--rt-ink);
	white-space: nowrap;
}

.rt-header__cta:hover {
	border-color: var(--rt-brand);
	color: var(--rt-brand);
}

.rt-header__icon {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	color: var(--rt-ink);
	text-decoration: none;
}

.rt-header__icon:hover {
	background: var(--rt-surface-2);
	color: var(--rt-brand);
}

.rt-header__badge {
	position: absolute;
	top: 2px;
	right: 2px;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 9px;
	background: var(--rt-brand);
	color: #fff;
	font-size: 0.68rem;
	font-weight: 700;
	line-height: 18px;
	text-align: center;
}

.rt-header__badge.is-empty {
	display: none;
}

.rt-header__burger {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 0;
	background: transparent;
	color: var(--rt-ink);
	cursor: pointer;
	flex: none;
}

/* ------------------------------------------------------------ main nav */

.rt-nav {
	display: none;
	border-top: 1px solid var(--rt-line);
	background: var(--rt-surface);
}

.rt-nav ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.rt-nav li {
	position: relative;
	max-width: none;
}

.rt-nav a {
	display: block;
	padding: 0.85rem 0.9rem;
	font-size: 0.92rem;
	font-weight: 600;
	color: var(--rt-ink);
	text-decoration: none;
	border-bottom: 2px solid transparent;
}

.rt-nav a:hover,
.rt-nav .current-menu-item > a {
	color: var(--rt-brand);
	border-bottom-color: var(--rt-brand);
}

.rt-nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 40;
	min-width: 230px;
	flex-direction: column;
	background: var(--rt-surface);
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	padding: 0.35rem;
	box-shadow: 0 18px 40px -24px rgba(var(--rt-ink-rgb), 0.45);
}

.rt-nav li:hover > .sub-menu,
.rt-nav li.is-open > .sub-menu,
.rt-nav li:focus-within > .sub-menu {
	display: flex;
}

.rt-nav .sub-menu a {
	padding: 0.55rem 0.7rem;
	border-bottom: 0;
	border-radius: var(--rt-radius-sm);
	font-weight: 500;
}

.rt-nav .sub-menu a:hover {
	background: var(--rt-surface-2);
}

/* --------------------------------------------------------- mobile menu */

.rt-mobile {
	position: fixed;
	inset: 0;
	z-index: 100;
	background: rgba(var(--rt-ink-rgb), 0.5);
}

.rt-mobile__panel {
	width: min(340px, 88vw);
	height: 100%;
	overflow-y: auto;
	background: var(--rt-surface);
	padding: 1.1rem;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.rt-mobile__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.rt-mobile__head img {
	height: 34px;
	width: auto;
}

.rt-mobile__close {
	border: 0;
	background: transparent;
	color: var(--rt-ink);
	cursor: pointer;
	padding: 0.4rem;
}

.rt-mobile ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.rt-mobile > .rt-mobile__panel > ul > li > a,
.rt-mobile__panel .menu > li > a {
	display: block;
	padding: 0.8rem 0.25rem;
	border-bottom: 1px solid var(--rt-line);
	font-weight: 600;
	font-size: 1rem;
	color: var(--rt-ink);
	text-decoration: none;
}

.rt-mobile .sub-menu a {
	display: block;
	padding: 0.55rem 0.25rem 0.55rem 1.1rem;
	font-size: 0.92rem;
	color: var(--rt-muted);
	text-decoration: none;
}

.rt-mobile__contact {
	display: grid;
	gap: 0.6rem;
	margin-top: auto;
}

/* ------------------------------------------------------------------ hero */

.rt-hero {
	background: var(--rt-ink);
	color: #fff;
	overflow: hidden;
}

.rt-hero__inner {
	display: grid;
	gap: 2rem;
	align-items: center;
	padding-top: clamp(2.5rem, 2rem + 3vw, 4.5rem);
	padding-bottom: clamp(2.5rem, 2rem + 3vw, 4.5rem);
}

.rt-hero__eyebrow {
	display: inline-block;
	margin: 0 0 1rem;
	padding: 0.32rem 0.75rem;
	border-radius: 999px;
	background: var(--rt-accent);
	color: var(--rt-ink);
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.02em;
}

.rt-hero__title {
	color: #fff;
	margin-bottom: 0.75rem;
	font-size: clamp(2.1rem, 1.4rem + 3vw, 3.5rem);
}

.rt-hero__text {
	color: rgba(255, 255, 255, 0.82);
	font-size: clamp(1rem, 0.95rem + 0.3vw, 1.15rem);
	max-width: 52ch;
	margin-bottom: 1.75rem;
}

.rt-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.rt-hero__popular {
	margin-top: 1.75rem;
	font-size: 0.88rem;
	color: rgba(255, 255, 255, 0.62);
}

.rt-hero__popular a {
	color: #fff;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, 0.3);
	margin-right: 0.85rem;
	display: inline-block;
}

.rt-hero__popular a:hover {
	border-bottom-color: var(--rt-accent);
	color: #fff;
}

.rt-hero__media img,
.rt-hero__media svg {
	display: block;
	width: 100%;
	border-radius: var(--rt-radius);
}

/* ----------------------------------------------------------- trust strip */

.rt-trust {
	border-bottom: 1px solid var(--rt-line);
	background: var(--rt-surface);
	padding: 1.5rem 0;
}

.rt-trust__list {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.rt-trust__item {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	max-width: none;
}

.rt-trust__icon {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: var(--rt-radius-sm);
	background: rgba(var(--rt-brand-rgb), 0.08);
	color: var(--rt-brand);
}

.rt-trust__body strong {
	display: block;
	font-size: 0.93rem;
	line-height: 1.3;
}

.rt-trust__body span {
	display: block;
	font-size: 0.82rem;
	color: var(--rt-muted);
	line-height: 1.4;
}

/* ------------------------------------------------------------ categories */

.rt-categories__grid,
.rt-collections__grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rt-cat {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 0.2rem;
	min-height: 128px;
	padding: 1.1rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	background: var(--rt-surface);
	text-decoration: none;
	color: var(--rt-ink);
	transition: border-color 0.18s ease, transform 0.18s ease;
}

.rt-cat:hover {
	border-color: var(--rt-brand);
	color: var(--rt-ink);
}

.rt-cat strong {
	font-family: var(--rt-font-display);
	font-size: 1.1rem;
	font-weight: 700;
}

.rt-cat span {
	font-size: 0.82rem;
	color: var(--rt-muted);
}

/* ----------------------------------------------------------- collections */

.rt-collection {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	overflow: hidden;
	background: var(--rt-surface);
}

.rt-collection__media img,
.rt-collection__media svg {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.rt-collection__body {
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	align-items: flex-start;
}

.rt-collection__title {
	margin: 0;
	font-size: 1.25rem;
}

.rt-collection__link {
	font-weight: 600;
	text-decoration: none;
	color: var(--rt-brand);
	border-bottom: 1px solid rgba(var(--rt-brand-rgb), 0.35);
}

/* --------------------------------------------------------------- grades */

.rt-grades__grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

.rt-grade {
	position: relative;
	padding: 1.35rem 1.35rem 1.35rem 1.6rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	background: var(--rt-surface);
}

.rt-grade__flag {
	position: absolute;
	left: 0;
	top: 1.35rem;
	bottom: 1.35rem;
	width: 4px;
	border-radius: 0 3px 3px 0;
	background: var(--rt-line);
}

.rt-grade--primary .rt-grade__flag {
	background: var(--rt-accent);
}

.rt-grade__title {
	margin: 0 0 0.35rem;
	font-size: 1.05rem;
}

.rt-grade__text {
	margin: 0;
	font-size: 0.92rem;
	color: var(--rt-muted);
}

.rt-grades__note {
	margin-top: 1.5rem;
	font-size: 0.88rem;
	color: var(--rt-muted);
}

/* -------------------------------------------------------------- process */

/* Numbered markers are used here only, because this genuinely is a sequence. */
.rt-process__list {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1fr;
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: rt-step;
}

.rt-process__step {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	max-width: none;
}

.rt-process__num {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 2px solid var(--rt-accent);
	font-family: var(--rt-font-display);
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--rt-ink);
}

.rt-process__title {
	margin: 0 0 0.2rem;
	font-size: 1.05rem;
}

.rt-process__text {
	margin: 0;
	font-size: 0.92rem;
	color: var(--rt-muted);
}

/* ------------------------------------------------------------- warranty */

.rt-warranty {
	background: var(--rt-ink);
	color: #fff;
}

.rt-warranty__inner {
	display: grid;
	gap: 1.75rem;
	align-items: center;
}

.rt-warranty__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 96px;
	height: 96px;
	border-radius: 50%;
	border: 3px solid var(--rt-accent);
	font-family: var(--rt-font-display);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.05;
	text-align: center;
	color: #fff;
}

.rt-warranty__title {
	color: #fff;
	margin-bottom: 0.5rem;
}

.rt-warranty__copy p {
	color: rgba(255, 255, 255, 0.82);
	margin-bottom: 1.25rem;
}

/* ------------------------------------------------------------- upcoming */

.rt-upcoming__banner {
	display: grid;
	gap: 1.5rem;
	align-items: center;
	padding: 1.75rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	background: var(--rt-surface);
	margin-bottom: 2rem;
}

.rt-upcoming__title {
	margin: 0 0 0.4rem;
}

.rt-upcoming__copy p {
	margin: 0 0 1rem;
	color: var(--rt-muted);
}

/* ---------------------------------------------------------------- value */

.rt-value__inner {
	display: grid;
	gap: 2rem;
	align-items: center;
}

.rt-value__title {
	margin-bottom: 0.75rem;
}

.rt-value__text {
	color: var(--rt-muted);
}

.rt-value__points {
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.75rem;
}

.rt-value__points li {
	position: relative;
	padding-left: 1.75rem;
	font-size: 0.95rem;
	max-width: 62ch;
}

.rt-value__points li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.55em;
	width: 10px;
	height: 10px;
	border-radius: 2px;
	background: var(--rt-accent);
}

.rt-value__media img,
.rt-value__media svg {
	width: 100%;
	border-radius: var(--rt-radius);
}

/* -------------------------------------------------------------- reviews */

.rt-reviews__grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr;
}

.rt-review {
	padding: 1.35rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	background: var(--rt-surface);
}

.rt-review__rating {
	display: flex;
	gap: 0.15rem;
	margin-bottom: 0.6rem;
	color: var(--rt-accent);
}

.rt-review__star {
	width: 16px;
	height: 16px;
}

.rt-review__text {
	font-size: 0.95rem;
	margin-bottom: 0.75rem;
}

.rt-review__author {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--rt-muted);
}

/* ------------------------------------------------------------ SEO block */

.rt-seotext {
	background: var(--rt-surface-2);
}

.rt-seotext__inner {
	max-width: 78ch;
}

.rt-seotext__title {
	font-size: clamp(1.3rem, 1.15rem + 0.7vw, 1.7rem);
}

.rt-seotext p {
	color: var(--rt-muted);
	font-size: 0.95rem;
}

/* -------------------------------------------------------------- CTA band */

.rt-cta {
	background: var(--rt-brand);
	color: #fff;
}

.rt-cta__inner {
	display: grid;
	gap: 1.25rem;
	align-items: center;
	padding: clamp(2rem, 1.5rem + 2vw, 3rem) 0;
}

.rt-cta__title {
	color: #fff;
	margin-bottom: 0.35rem;
}

.rt-cta__text {
	color: rgba(255, 255, 255, 0.88);
	margin: 0;
}

.rt-cta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.rt-cta__phone {
	font-family: var(--rt-font-display);
	font-size: 1.5rem;
	font-weight: 700;
	color: #fff;
	text-decoration: none;
	white-space: nowrap;
}

/* ----------------------------------------------------------- newsletter */

.rt-newsletter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.rt-newsletter input[type="email"] {
	flex: 1 1 220px;
	min-width: 0;
	padding: 0.75rem 1rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius-sm);
	background: var(--rt-surface);
	font: inherit;
	font-size: 0.95rem;
	color: var(--rt-ink);
}

/* --------------------------------------------------------------- footer */

.rt-footer {
	background: var(--rt-ink);
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.92rem;
}

.rt-footer__newsletter {
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	padding: 2.25rem 0;
}

.rt-footer__newsletter-inner {
	display: grid;
	gap: 1.25rem;
	align-items: center;
}

.rt-footer__newsletter h2 {
	color: #fff;
	margin-bottom: 0.35rem;
	font-size: 1.4rem;
}

.rt-footer__newsletter p {
	margin: 0;
	color: rgba(255, 255, 255, 0.72);
}

.rt-footer__main {
	display: grid;
	gap: 2rem;
	padding: 2.75rem 0;
}

.rt-footer__brand img {
	height: 40px;
	width: auto;
	margin-bottom: 1rem;
}

.rt-footer__brand p {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.9rem;
}

.rt-footer__heading {
	color: #fff;
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin-bottom: 0.9rem;
}

.rt-footer__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.55rem;
}

.rt-footer__list a,
.rt-footer__contact a {
	color: rgba(255, 255, 255, 0.74);
	text-decoration: none;
}

.rt-footer__list a:hover,
.rt-footer__contact a:hover {
	color: #fff;
}

.rt-footer__contact {
	display: grid;
	gap: 0.55rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.rt-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 1.25rem 0 0;
	padding: 0;
}

.rt-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 50%;
	color: #fff;
	text-decoration: none;
}

.rt-footer__social a:hover {
	border-color: var(--rt-accent);
	background: rgba(var(--rt-accent-rgb), 0.15);
}

.rt-footer__base {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	padding: 1.25rem 0;
	font-size: 0.85rem;
}

.rt-footer__base-inner {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	align-items: center;
	justify-content: space-between;
}

.rt-footer__base p {
	margin: 0;
}

/* ---------------------------------------------------------------- pages */

.rt-page {
	padding: clamp(2rem, 1.5rem + 2vw, 3.25rem) 0;
}

.rt-page--narrow .rt-page__body,
.rt-prose {
	max-width: 74ch;
}

.rt-page__head {
	margin-bottom: 2rem;
}

.rt-page__title {
	margin-bottom: 0.5rem;
}

.rt-page__intro {
	font-size: 1.08rem;
	color: var(--rt-muted);
	max-width: 68ch;
}

.rt-prose h2 {
	margin-top: 2.25rem;
}

.rt-prose h3 {
	margin-top: 1.75rem;
}

.rt-prose ul,
.rt-prose ol {
	padding-left: 1.25rem;
}

.rt-prose li {
	margin-bottom: 0.4rem;
}

.rt-prose img {
	border-radius: var(--rt-radius);
}

.rt-prose blockquote {
	margin: 1.5rem 0;
	padding: 0.25rem 0 0.25rem 1.25rem;
	border-left: 3px solid var(--rt-accent);
	color: var(--rt-muted);
}

/* ----------------------------------------------------------------- blog */

.rt-posts {
	display: grid;
	gap: 1.5rem;
	grid-template-columns: 1fr;
}

.rt-post {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	overflow: hidden;
	background: var(--rt-surface);
}

.rt-post__media img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.rt-post > div:last-child {
	padding: 1.25rem;
}

.rt-post h2,
.rt-post h3 {
	font-size: 1.15rem;
	margin-bottom: 0.4rem;
}

.rt-post h2 a,
.rt-post h3 a {
	color: var(--rt-ink);
	text-decoration: none;
}

.rt-post h2 a:hover,
.rt-post h3 a:hover {
	color: var(--rt-brand);
}

.rt-post__meta {
	font-size: 0.82rem;
	color: var(--rt-muted);
	margin-bottom: 0.5rem;
}

.rt-post__comments {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid var(--rt-line);
}

.rt-pagelinks {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: 2.5rem;
}

.rt-pagelinks .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 0.6rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius-sm);
	text-decoration: none;
	color: var(--rt-ink);
	font-weight: 600;
	font-size: 0.9rem;
}

.rt-pagelinks .page-numbers.current,
.rt-pagelinks .page-numbers:hover {
	background: var(--rt-brand);
	border-color: var(--rt-brand);
	color: #fff;
}

/* --------------------------------------------------------------- grids */

.rt-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

/* --------------------------------------------------------- breakpoints */

@media (min-width: 600px) {
	.rt-trust__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.rt-categories__grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

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

	.rt-grades__grid,
	.rt-reviews__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

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

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

	.rt-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	:root {
		--rt-gutter: 2rem;
	}

	.rt-nav {
		display: block;
	}

	.rt-header__burger {
		display: none;
	}

	.rt-header__cta {
		display: inline-flex;
	}

	.rt-hero__inner {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
		gap: 3rem;
	}

	.rt-warranty__inner {
		grid-template-columns: auto minmax(0, 1fr) auto;
		gap: 2.5rem;
	}

	.rt-upcoming__banner {
		grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
		padding: 2.25rem;
	}

	.rt-value__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 3rem;
	}

	.rt-cta__inner {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 2rem;
	}

	.rt-footer__newsletter-inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 2.5rem;
	}

	.rt-footer__main {
		grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
		gap: 2.5rem;
	}

	.rt-process__list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.rt-posts {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.rt-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (min-width: 1100px) {
	.rt-collections__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Long product names must never force a horizontal scrollbar on small
   screens, which is the most common failure mode on a spec-heavy catalogue. */
@media (max-width: 599px) {
	body {
		overflow-x: hidden;
	}

	.rt-header__search {
		display: none;
	}

	.rt-hero__actions .rt-btn {
		flex: 1 1 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}

/* =====================================================================
   WooCommerce
   ===================================================================== */

.rt-breadcrumb {
	padding: 0.9rem 0;
	font-size: 0.84rem;
	color: var(--rt-muted);
	border-bottom: 1px solid var(--rt-line);
}

.rt-breadcrumb a {
	color: var(--rt-muted);
	text-decoration: none;
}

.rt-breadcrumb a:hover {
	color: var(--rt-brand);
}

.rt-breadcrumb__sep {
	margin: 0 0.45rem;
	opacity: 0.5;
}

/* ------------------------------------------------------------ shop head */

.rt-shop__head {
	margin-bottom: 1.75rem;
}

.rt-shop__title {
	margin-bottom: 0.5rem;
}

.rt-shop__intro {
	max-width: 70ch;
	color: var(--rt-muted);
}

.rt-shop__intro p {
	margin-bottom: 0.5rem;
}

.rt-shop__layout {
	display: grid;
	gap: 2rem;
	align-items: start;
}

.rt-shop__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding-bottom: 1rem;
	margin-bottom: 1.25rem;
	border-bottom: 1px solid var(--rt-line);
}

.rt-shop__bar .woocommerce-result-count {
	margin: 0;
	font-size: 0.86rem;
	color: var(--rt-muted);
}

.rt-shop__bar .woocommerce-ordering select,
.woocommerce-ordering select {
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius-sm);
	background: var(--rt-surface);
	font: inherit;
	font-size: 0.88rem;
	color: var(--rt-ink);
}

/* -------------------------------------------------------------- filters */

.rt-filter-toggle {
	width: 100%;
	margin-bottom: 1.25rem;
}

.rt-filters {
	position: fixed;
	inset: 0;
	z-index: 100;
	background: rgba(var(--rt-ink-rgb), 0.5);
	visibility: hidden;
	opacity: 0;
	transition: opacity 0.2s ease, visibility 0.2s ease;
}

.rt-filters.is-open {
	visibility: visible;
	opacity: 1;
}

.rt-filters__panel {
	width: min(340px, 88vw);
	height: 100%;
	overflow-y: auto;
	background: var(--rt-surface);
	padding: 1.25rem;
}

.rt-filters__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1rem;
}

.rt-filters__head h2 {
	margin: 0;
	font-size: 1.2rem;
}

.rt-filters__close {
	border: 0;
	background: transparent;
	font-size: 1.7rem;
	line-height: 1;
	cursor: pointer;
	color: var(--rt-ink);
	padding: 0.2rem 0.4rem;
}

.rt-filter {
	border-bottom: 1px solid var(--rt-line);
	padding: 0.35rem 0;
}

.rt-filter__title {
	padding: 0.7rem 0;
	font-family: var(--rt-font-display);
	font-weight: 700;
	font-size: 0.98rem;
	cursor: pointer;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.rt-filter__title::-webkit-details-marker {
	display: none;
}

.rt-filter__title::after {
	content: "+";
	color: var(--rt-brand);
	font-size: 1.15rem;
}

.rt-filter[open] .rt-filter__title::after {
	content: "\2212";
}

.rt-filter__list {
	list-style: none;
	margin: 0 0 0.75rem;
	padding: 0;
	display: grid;
	gap: 0.1rem;
	max-height: 260px;
	overflow-y: auto;
}

.rt-filter__list li {
	max-width: none;
}

.rt-filter__link {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	padding: 0.4rem 0.35rem;
	border-radius: var(--rt-radius-sm);
	font-size: 0.9rem;
	color: var(--rt-ink);
	text-decoration: none;
}

.rt-filter__link:hover {
	background: var(--rt-surface-2);
	color: var(--rt-ink);
}

.rt-filter__box {
	flex: none;
	width: 17px;
	height: 17px;
	border: 1px solid var(--rt-line);
	border-radius: 3px;
	background: var(--rt-surface);
}

.rt-filter__link.is-active .rt-filter__box {
	background: var(--rt-brand);
	border-color: var(--rt-brand);
	position: relative;
}

.rt-filter__link.is-active .rt-filter__box::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 1px;
	width: 5px;
	height: 10px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.rt-filter__name {
	flex: 1;
	min-width: 0;
}

.rt-filter__count {
	font-size: 0.78rem;
	color: var(--rt-muted);
}

.rt-filters__clear {
	display: inline-block;
	margin-top: 1rem;
	font-size: 0.88rem;
	font-weight: 600;
}

/* ---------------------------------------------------------- product card */

ul.products {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	list-style: none;
	margin: 0;
	padding: 0;
}

.rt-card {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	background: var(--rt-surface);
	overflow: hidden;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.rt-card:hover {
	border-color: rgba(var(--rt-brand-rgb), 0.5);
	box-shadow: 0 14px 32px -26px rgba(var(--rt-ink-rgb), 0.55);
}

.rt-card__media {
	position: relative;
	background: var(--rt-surface-2);
}

.rt-card__image {
	display: block;
}

.rt-card__image img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: contain;
	padding: 0.75rem;
}

.rt-card__badges {
	position: absolute;
	top: 0.6rem;
	left: 0.6rem;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.3rem;
	max-width: calc(100% - 4rem);
}

.rt-card__tools {
	position: absolute;
	top: 0.6rem;
	right: 0.6rem;
	z-index: 2;
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
}

.rt-card__tool {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border: 1px solid var(--rt-line);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.94);
	color: var(--rt-ink);
	cursor: pointer;
	padding: 0;
}

.rt-card__tool:hover {
	border-color: var(--rt-brand);
	color: var(--rt-brand);
}

.rt-card__tool.is-active {
	background: var(--rt-brand);
	border-color: var(--rt-brand);
	color: #fff;
}

.rt-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	padding: 0.9rem;
	flex: 1;
}

.rt-card__title {
	margin: 0;
	font-size: 0.98rem;
	line-height: 1.3;
}

.rt-card__title a {
	color: var(--rt-ink);
	text-decoration: none;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.rt-card__title a:hover {
	color: var(--rt-brand);
}

.rt-card__specs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.rt-card__specs li {
	max-width: none;
	padding: 0.15rem 0.45rem;
	border: 1px solid var(--rt-line);
	border-radius: 3px;
	font-size: 0.74rem;
	color: var(--rt-muted);
	white-space: nowrap;
}

.rt-card__availability {
	font-size: 0.82rem;
}

.rt-card__foot {
	margin-top: auto;
	padding-top: 0.65rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.rt-card__price {
	font-family: var(--rt-font-display);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--rt-ink);
}

.rt-card__price del {
	color: var(--rt-muted);
	font-weight: 500;
	font-size: 0.9rem;
	margin-right: 0.35rem;
}

.rt-card .button,
.rt-card .add_to_cart_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 42px;
	padding: 0.55rem 1rem;
	border: 1px solid var(--rt-brand);
	border-radius: var(--rt-radius-sm);
	background: var(--rt-brand);
	color: #fff;
	font: inherit;
	font-weight: 600;
	font-size: 0.9rem;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

.rt-card .button:hover {
	background: var(--rt-brand-dark);
	border-color: var(--rt-brand-dark);
	color: #fff;
}

/* --------------------------------------------------------- single product */

.rt-single__top {
	display: grid;
	gap: 2rem;
	margin-bottom: 3rem;
}

.rt-single__gallery img {
	border-radius: var(--rt-radius);
	background: var(--rt-surface-2);
}

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

.flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0.75rem 0 0;
	padding: 0;
}

.flex-control-thumbs li {
	max-width: none;
	width: calc(25% - 0.375rem);
}

.flex-control-thumbs img {
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius-sm);
	cursor: pointer;
}

.flex-control-thumbs img.flex-active {
	border-color: var(--rt-brand);
}

.rt-single__grade {
	margin: 0 0 0.6rem;
}

.rt-single__title {
	font-size: clamp(1.5rem, 1.25rem + 1.2vw, 2.1rem);
	margin-bottom: 0.6rem;
}

.rt-single__availability {
	margin-bottom: 1rem;
}

.rt-single .price,
.woocommerce-Price-amount {
	font-family: var(--rt-font-display);
}

.rt-single .price {
	display: block;
	font-size: 1.65rem;
	font-weight: 700;
	color: var(--rt-ink);
	margin-bottom: 1rem;
}

.rt-single .price del {
	color: var(--rt-muted);
	font-size: 1.1rem;
	font-weight: 500;
	margin-right: 0.4rem;
}

.rt-assurance {
	list-style: none;
	margin: 1.5rem 0;
	padding: 1rem 1.15rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	background: var(--rt-surface-2);
	display: grid;
	gap: 0.7rem;
}

.rt-assurance li {
	max-width: none;
	display: grid;
	gap: 0.1rem;
}

.rt-assurance strong {
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--rt-muted);
}

.rt-assurance span {
	font-size: 0.93rem;
}

.rt-single form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	align-items: center;
	margin: 1.25rem 0;
}

.rt-single .quantity input {
	width: 74px;
	padding: 0.65rem 0.5rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius-sm);
	font: inherit;
	text-align: center;
}

.rt-single form.cart .button,
.rt-single .single_add_to_cart_button {
	flex: 1 1 220px;
	min-height: 52px;
	padding: 0.8rem 1.5rem;
	border: 0;
	border-radius: var(--rt-radius-sm);
	background: var(--rt-brand);
	color: #fff;
	font: inherit;
	font-weight: 700;
	font-size: 1rem;
	cursor: pointer;
}

.rt-single form.cart .button:hover {
	background: var(--rt-brand-dark);
}

.rt-single__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 1rem 0;
}

.rt-single__actions .rt-btn {
	flex: 1 1 220px;
}

.rt-single__request {
	margin-top: 1.75rem;
	padding: 1.35rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	background: var(--rt-surface-2);
}

.rt-single__request-title {
	margin: 0 0 0.35rem;
	font-size: 1.15rem;
}

.rt-single__request-text {
	font-size: 0.9rem;
	color: var(--rt-muted);
	margin-bottom: 1rem;
}

.product_meta {
	font-size: 0.85rem;
	color: var(--rt-muted);
	padding-top: 1rem;
	border-top: 1px solid var(--rt-line);
}

/* --------------------------------------------------------------- specs */

.rt-specs {
	margin: 0 0 3rem;
}

.rt-specs__table {
	width: 100%;
	border-collapse: collapse;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	overflow: hidden;
}

.rt-specs__table th,
.rt-specs__table td {
	padding: 0.75rem 1rem;
	text-align: left;
	font-size: 0.92rem;
	border-bottom: 1px solid var(--rt-line);
}

.rt-specs__table th {
	width: 40%;
	background: var(--rt-surface-2);
	font-weight: 600;
	color: var(--rt-muted);
}

.rt-specs__table tr:last-child th,
.rt-specs__table tr:last-child td {
	border-bottom: 0;
}

/* -------------------------------------------------------------- tabs */

.woocommerce-tabs {
	margin-bottom: 3rem;
}

.woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	border-bottom: 1px solid var(--rt-line);
}

.woocommerce-tabs ul.tabs li {
	max-width: none;
}

.woocommerce-tabs ul.tabs a {
	display: block;
	padding: 0.7rem 1rem;
	font-weight: 600;
	font-size: 0.93rem;
	color: var(--rt-muted);
	text-decoration: none;
	border-bottom: 2px solid transparent;
}

.woocommerce-tabs ul.tabs li.active a {
	color: var(--rt-ink);
	border-bottom-color: var(--rt-brand);
}

.woocommerce-Tabs-panel h2 {
	font-size: 1.3rem;
}

/* ------------------------------------------------------------- related */

.rt-related,
.related,
.upsells {
	margin-bottom: 3rem;
}

.rt-related h2,
.related > h2,
.upsells > h2 {
	font-size: 1.5rem;
	margin-bottom: 1.25rem;
}

/* --------------------------------------------------------- compare bar */

.rt-compare-bar {
	position: fixed;
	left: 50%;
	bottom: 16px;
	z-index: 88;
	transform: translate(-50%, 130%);
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 0.7rem 0.7rem 0.7rem 1.2rem;
	border-radius: 999px;
	background: var(--rt-ink);
	color: #fff;
	box-shadow: 0 18px 40px -20px rgba(0, 0, 0, 0.6);
	transition: transform 0.25s ease;
	max-width: calc(100vw - 32px);
}

.rt-compare-bar.is-visible {
	transform: translate(-50%, 0);
}

.rt-compare-bar p {
	margin: 0;
	font-size: 0.86rem;
	white-space: nowrap;
}

/* --------------------------------------------- cart, checkout, account */

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0.9rem 1.15rem;
	border-radius: var(--rt-radius);
	border-left: 3px solid var(--rt-brand);
	background: var(--rt-surface-2);
	font-size: 0.93rem;
}

.woocommerce-error {
	border-left-color: #a3341f;
}

.woocommerce-message .button,
.woocommerce-info .button {
	float: right;
	margin-left: 1rem;
}

.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5rem;
}

.shop_table th,
.shop_table td {
	padding: 0.85rem 0.6rem;
	border-bottom: 1px solid var(--rt-line);
	text-align: left;
	font-size: 0.92rem;
}

.shop_table th {
	font-family: var(--rt-font-display);
	font-weight: 700;
}

.cart_totals,
.woocommerce-checkout-review-order {
	padding: 1.25rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius);
	background: var(--rt-surface-2);
}

.woocommerce form .form-row {
	display: grid;
	gap: 0.3rem;
	margin-bottom: 1rem;
}

.woocommerce form .form-row label {
	font-size: 0.86rem;
	font-weight: 600;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container .select2-selection--single {
	width: 100%;
	padding: 0.65rem 0.8rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius-sm);
	background: var(--rt-surface);
	font: inherit;
	font-size: 0.95rem;
	color: var(--rt-ink);
	height: auto;
}

.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0.7rem 1.35rem;
	border: 1px solid var(--rt-brand);
	border-radius: var(--rt-radius-sm);
	background: var(--rt-brand);
	color: #fff;
	font: inherit;
	font-weight: 600;
	font-size: 0.95rem;
	text-decoration: none;
	cursor: pointer;
}

.woocommerce .button:hover {
	background: var(--rt-brand-dark);
	border-color: var(--rt-brand-dark);
	color: #fff;
}

.woocommerce .button.alt,
.woocommerce #place_order {
	width: 100%;
	min-height: 54px;
	font-size: 1rem;
	font-weight: 700;
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	display: grid;
	gap: 0.2rem;
}

.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.6rem 0.8rem;
	border-radius: var(--rt-radius-sm);
	color: var(--rt-ink);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.92rem;
}

.woocommerce-MyAccount-navigation a:hover,
.woocommerce-MyAccount-navigation .is-active a {
	background: var(--rt-surface-2);
	color: var(--rt-brand);
}

/* ------------------------------------------------------- shop breakpoints */

@media (min-width: 600px) {
	ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.rt-shop__layout {
		grid-template-columns: 260px minmax(0, 1fr);
	}

	.rt-filter-toggle {
		display: none;
	}

	/* On desktop the filter panel is a normal sidebar, not an overlay. */
	.rt-filters {
		position: static;
		background: none;
		visibility: visible;
		opacity: 1;
	}

	.rt-filters__panel {
		width: auto;
		height: auto;
		overflow: visible;
		padding: 0;
	}

	.rt-filters__head {
		display: none;
	}

	.rt-single__top {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		gap: 3rem;
	}

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

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

@media (min-width: 1100px) {
	ul.products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* =====================================================================
   Section wrappers, widgets and comments
   ===================================================================== */

/* These are layout wrappers around the homepage bands. They inherit their
   vertical rhythm from .rt-section and only need local overrides. */
.rt-featured,
.rt-categories,
.rt-collections,
.rt-grades,
.rt-process,
.rt-reviews,
.rt-upcoming,
.rt-value,
.rt-blog,
.rt-faq {
	position: relative;
}

.rt-hero__copy,
.rt-value__copy,
.rt-upcoming__copy {
	min-width: 0;
}

.rt-shop {
	min-height: 40vh;
}

.rt-shop__results {
	min-width: 0;
}

.rt-single__summary {
	min-width: 0;
}

.rt-header__cart {
	position: relative;
}

.rt-footer__col {
	min-width: 0;
}

.rt-nav__list {
	margin: 0;
	padding: 0;
}

.rt-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
}

/* --------------------------------------------------------------- widgets */

.rt-widget {
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid var(--rt-line);
}

.rt-widget:last-child {
	border-bottom: 0;
}

.rt-widget__title {
	font-family: var(--rt-font-display);
	font-size: 1.05rem;
	font-weight: 700;
	margin-bottom: 0.85rem;
}

.rt-widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}

.rt-widget a {
	color: var(--rt-ink);
	text-decoration: none;
	font-size: 0.93rem;
}

.rt-widget a:hover {
	color: var(--rt-brand);
}

/* ------------------------------------------------------------ breadcrumbs */

.rt-crumbs {
	padding: 0.9rem 0;
	font-size: 0.84rem;
	color: var(--rt-muted);
}

.rt-crumbs a {
	color: var(--rt-muted);
	text-decoration: none;
}

.rt-crumbs a:hover {
	color: var(--rt-brand);
}

/* ------------------------------------------------------------ search form */

.rt-searchform {
	display: flex;
	gap: 0.5rem;
	max-width: 520px;
}

.rt-searchform input[type="search"] {
	flex: 1;
	min-width: 0;
	padding: 0.7rem 1rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius-sm);
	font: inherit;
	font-size: 0.95rem;
	color: var(--rt-ink);
	background: var(--rt-surface);
}

/* -------------------------------------------------------------- comments */

.rt-comments {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid var(--rt-line);
}

.rt-comments__title {
	font-size: 1.35rem;
	margin-bottom: 1.5rem;
}

.rt-comments__list {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	display: grid;
	gap: 1.5rem;
}

.rt-comments__list .children {
	list-style: none;
	margin: 1.25rem 0 0 1.5rem;
	padding-left: 1.25rem;
	border-left: 2px solid var(--rt-line);
	display: grid;
	gap: 1.25rem;
}

.rt-comments__list .comment-meta {
	font-size: 0.83rem;
	color: var(--rt-muted);
	margin-bottom: 0.4rem;
}

.rt-comments__list .comment-author {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-weight: 600;
	margin-bottom: 0.3rem;
}

.rt-comments__list .avatar {
	border-radius: 50%;
}

.rt-comments__closed {
	font-size: 0.9rem;
	color: var(--rt-muted);
}

.comment-form {
	display: grid;
	gap: 1rem;
	max-width: 640px;
}

.comment-form p {
	margin: 0;
	display: grid;
	gap: 0.3rem;
}

.comment-form label {
	font-size: 0.86rem;
	font-weight: 600;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	padding: 0.65rem 0.8rem;
	border: 1px solid var(--rt-line);
	border-radius: var(--rt-radius-sm);
	font: inherit;
	font-size: 0.95rem;
	color: var(--rt-ink);
	background: var(--rt-surface);
}

.comment-form .form-submit {
	display: block;
}
