/* ==========================================================================
   Rudvana — WordPress rebuild of the RUDVANA Shopify (Dawn) storefront
   ========================================================================== */

:root {
	--rv-bg: #fbf8f3;
	--rv-text: #2c3a2e;
	--rv-accent: #4f6b45;
	--rv-accent-2: #8a9a5b;
	--rv-soft: #efe8dc;
	--rv-border: rgba(44, 58, 46, .14);
	--rv-muted: rgba(44, 58, 46, .72);
	--rv-white: #fff;
	--rv-sale: #4f6b45;
	--rv-font: "Assistant", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--rv-page: 1200px;
	--rv-gutter: 20px;
	--rv-radius: 0px;
	--rv-card-radius: 0px;
	--rv-section-y: 64px;
}
@media (min-width: 750px) {
	:root { --rv-gutter: 50px; --rv-section-y: 80px; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { font-size: 62.5%; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: var(--rv-bg);
	color: var(--rv-text);
	font-family: var(--rv-font);
	font-size: 1.6rem;
	line-height: 1.8;
	letter-spacing: .06rem;
	-webkit-font-smoothing: antialiased;
}
@media (min-width: 750px) { body { font-size: 1.6rem; } }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-underline-offset: .3rem; }
a:hover { text-decoration-thickness: .2rem; }
h1, h2, h3, h4, h5, h6, .rv-h1 {
	font-family: var(--rv-font);
	font-weight: 600;
	letter-spacing: .06rem;
	line-height: 1.3;
	margin: 0 0 1.2rem;
	color: var(--rv-text);
	word-break: break-word;
}
h1, .rv-h1 { font-size: 3rem; }
h2 { font-size: 2.4rem; }
h3 { font-size: 1.8rem; }
@media (min-width: 750px) {
	h1, .rv-h1 { font-size: 4rem; }
	h2 { font-size: 2.8rem; }
	h3 { font-size: 1.9rem; }
}
p { margin: 0 0 1.5rem; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-to-content-link:focus {
	clip: auto; width: auto; height: auto; z-index: 999; padding: 1rem 2rem;
	background: var(--rv-white); left: 1rem; top: 1rem; margin: 0;
}
:focus-visible { outline: .2rem solid var(--rv-accent); outline-offset: .3rem; }

.rv-container { max-width: var(--rv-page); margin: 0 auto; padding: 0 var(--rv-gutter); }
.rv-container--narrow { max-width: 780px; }
.rv-container--page { max-width: 820px; }
.rv-center { text-align: center; }
.rv-section { padding: var(--rv-section-y) 0; }
.rv-section + .rv-section:not([class*="rv-scheme"]) { padding-top: calc(var(--rv-section-y) * .5); }
.rv-section__title { margin-bottom: 3rem; }
.rv-eyebrow {
	text-transform: uppercase; letter-spacing: .25rem; font-size: 1.3rem; font-weight: 600;
	color: var(--rv-accent); margin-bottom: 1rem;
}
.rv-lead { font-size: 1.8rem; color: var(--rv-muted); max-width: 680px; margin-left: auto; margin-right: auto; }
.rv-display { font-size: 4rem; line-height: 1.15; }
.rv-display em { font-style: italic; color: var(--rv-accent); font-weight: 600; }
@media (min-width: 750px) { .rv-display { font-size: 5.6rem; } }

/* colour schemes */
.rv-scheme-soft { background: var(--rv-soft); }
.rv-scheme-accent { background: var(--rv-accent); color: #f6f3ec; }
.rv-scheme-accent h1, .rv-scheme-accent h2, .rv-scheme-accent h3, .rv-scheme-accent .rv-eyebrow { color: #fff; }
.rv-scheme-accent p { color: rgba(255,255,255,.88); }

/* ---------- Buttons ---------- */
.rv-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce a.button.alt, .woocommerce button.button.alt,
.wc-block-components-button:not(.is-link) {
	display: inline-flex; align-items: center; justify-content: center; gap: .8rem;
	min-height: 4.6rem; min-width: 12rem; padding: 0 3rem;
	border: 0; border-radius: var(--rv-radius);
	background: var(--rv-accent); color: #fff;
	font-family: var(--rv-font); font-size: 1.5rem; font-weight: 500; letter-spacing: .1rem; line-height: 1.2;
	text-decoration: none; cursor: pointer;
	box-shadow: 0 0 0 .1rem var(--rv-accent);
	transition: box-shadow .1s ease, background-color .15s ease, color .15s ease;
}
.rv-button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
	background: var(--rv-accent); color: #fff; box-shadow: 0 0 0 .2rem var(--rv-accent); text-decoration: none;
}
.rv-button--outline { background: transparent; color: var(--rv-text); box-shadow: 0 0 0 .1rem var(--rv-text); }
.rv-button--outline:hover { background: transparent; color: var(--rv-text); box-shadow: 0 0 0 .2rem var(--rv-text); }
.rv-button--light { background: #fff; color: var(--rv-accent); box-shadow: 0 0 0 .1rem #fff; }
.rv-button--light:hover { background: #fff; color: var(--rv-accent); box-shadow: 0 0 0 .2rem #fff; }
.rv-button--ghost { background: transparent; color: #fff; box-shadow: 0 0 0 .1rem #fff; }
.rv-button--ghost:hover { background: transparent; color: #fff; box-shadow: 0 0 0 .2rem #fff; }
.rv-button--full { width: 100%; }
.rv-button[disabled] { opacity: .5; cursor: not-allowed; }
.rv-buttons { display: flex; flex-wrap: wrap; gap: 1.5rem; justify-content: center; margin: 2.5rem 0; }

/* ---------- Announcement ---------- */
.rv-announcement { background: var(--rv-accent); color: #fff; text-align: center; border-bottom: 1px solid var(--rv-border); }
.rv-announcement p { margin: 0; padding: 1rem var(--rv-gutter); font-size: 1.3rem; letter-spacing: .1rem; }

/* ---------- Header ---------- */
.rv-header { background: var(--rv-bg); border-bottom: 1px solid var(--rv-border); position: sticky; top: 0; z-index: 50; }
.admin-bar .rv-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rv-header { top: 0; } }
.rv-header__inner {
	display: grid; align-items: center; min-height: 7.2rem; gap: 1rem;
	grid-template-columns: 1fr auto 1fr; grid-template-areas: "left brand icons";
}
.rv-header__burger { grid-area: left; justify-self: start; }
.rv-header__brand { grid-area: brand; text-align: center; }
.rv-header__nav { display: none; }
.rv-header__icons { grid-area: icons; justify-self: end; display: flex; align-items: center; }
@media (min-width: 990px) {
	.rv-header__inner { grid-template-columns: auto 1fr auto; grid-template-areas: "brand nav icons"; min-height: 8.8rem; }
	.rv-header__icon.rv-header__burger { display: none; }
	.rv-header__brand { text-align: left; }
	.rv-header__nav { display: block; grid-area: nav; padding-left: 2rem; }
}
.rv-header__heading { margin: 0; font-size: inherit; line-height: 1; }
.rv-header__title { font-size: 2.4rem; font-weight: 600; text-decoration: none; letter-spacing: .06rem; color: var(--rv-text); }
.rv-header .custom-logo { max-height: 6rem; width: auto; }
.rv-header__icon {
	display: inline-flex; align-items: center; justify-content: center; position: relative;
	width: 4.4rem; height: 4.4rem; background: none; border: 0; padding: 0; cursor: pointer; color: var(--rv-text);
}
.rv-header__icon:hover .rv-icon { transform: scale(1.07); }
.rv-icon { display: inline-flex; transition: transform .1s ease; }
.rv-icon svg { width: 2rem; height: 2rem; }
.rv-icon--cart svg { width: 4.4rem; height: 4.4rem; }
.rv-header__account { display: none; }
@media (min-width: 990px) { .rv-header__account { display: inline-flex; } }
.rv-cart-count {
	position: absolute; bottom: .8rem; right: .4rem; min-width: 1.7rem; height: 1.7rem; padding: 0 .4rem;
	border-radius: 2rem; background: var(--rv-accent); color: #fff; font-size: 1rem; line-height: 1.7rem; text-align: center;
}
.rv-cart-count.is-empty { display: none; }

.rv-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.rv-menu > li { position: relative; }
.rv-menu a { display: block; padding: 1.2rem; font-size: 1.5rem; text-decoration: none; color: var(--rv-muted); }
.rv-menu a:hover, .rv-menu .current-menu-item > a, .rv-menu .current_page_item > a { color: var(--rv-text); text-decoration: underline; }
.rv-menu .current-menu-item > a, .rv-menu .current_page_item > a { text-decoration-thickness: .1rem; }
.rv-menu .sub-menu {
	display: none; position: absolute; left: 0; top: 100%; min-width: 20rem; list-style: none; margin: 0; padding: 1rem 0;
	background: var(--rv-bg); border: 1px solid var(--rv-border); z-index: 10;
}
.rv-menu li:hover > .sub-menu, .rv-menu li:focus-within > .sub-menu { display: block; }

/* ---------- Drawers & modal ---------- */
.rv-drawer { position: fixed; inset: 0; z-index: 200; visibility: hidden; }
.rv-drawer.is-open { visibility: visible; }
.rv-drawer__overlay { position: absolute; inset: 0; background: rgba(18, 24, 19, .5); opacity: 0; transition: opacity .25s ease; }
.rv-drawer.is-open .rv-drawer__overlay { opacity: 1; }
.rv-drawer__panel {
	position: absolute; top: 0; bottom: 0; width: min(40rem, 90vw); background: var(--rv-bg);
	padding: 2.4rem; overflow-y: auto; transition: transform .3s ease; display: flex; flex-direction: column;
}
.rv-drawer--left .rv-drawer__panel { left: 0; transform: translateX(-100%); }
.rv-drawer--right .rv-drawer__panel { right: 0; transform: translateX(100%); }
.rv-drawer.is-open .rv-drawer__panel { transform: none; }
.rv-drawer__close { background: none; border: 0; cursor: pointer; padding: .8rem; align-self: flex-end; color: var(--rv-text); }
.rv-drawer__close svg { width: 1.8rem; height: 1.8rem; }
.rv-menu--drawer { flex-direction: column; margin: 1rem 0 2rem; }
.rv-menu--drawer a { font-size: 1.8rem; padding: 1.1rem 0; color: var(--rv-text); }
.rv-menu--drawer .sub-menu { position: static; display: block; border: 0; padding: 0 0 0 1.5rem; }
.rv-drawer__utility { margin-top: auto; border-top: 1px solid var(--rv-border); padding-top: 2rem; }
.rv-drawer__utility > a { display: inline-flex; gap: 1rem; align-items: center; text-decoration: none; margin-bottom: 1.5rem; }
body.rv-lock { overflow: hidden; }

.rv-search-modal { position: fixed; inset: 0; z-index: 210; visibility: hidden; }
.rv-search-modal.is-open { visibility: visible; }
.rv-search-modal__overlay { position: absolute; inset: 0; background: rgba(18,24,19,.35); }
.rv-search-modal__content {
	position: relative; background: var(--rv-bg); border-bottom: 1px solid var(--rv-border);
	display: flex; align-items: center; gap: 1rem; padding: 2rem var(--rv-gutter); min-height: 8.8rem;
}
.rv-search-form { flex: 1; max-width: 74rem; margin: 0 auto; display: flex; position: relative; }
.rv-search-form input[type=search] {
	width: 100%; height: 4.6rem; padding: 0 5rem 0 1.5rem; font: inherit; font-size: 1.6rem; letter-spacing: .04rem;
	border: 1px solid var(--rv-text); background: transparent; color: var(--rv-text); border-radius: var(--rv-radius);
}
.rv-search-form__submit { position: absolute; right: 0; top: 0; height: 4.6rem; width: 4.6rem; background: none; border: 0; cursor: pointer; color: var(--rv-text); }
.rv-search-modal__close { background: none; border: 0; cursor: pointer; padding: 1rem; color: var(--rv-text); }
.rv-search-modal__close svg { width: 1.8rem; height: 1.8rem; }

/* ---------- Hero (Dawn image banner) ---------- */
.rv-hero { position: relative; display: flex; align-items: center; min-height: 40rem; overflow: hidden; }
@media (min-width: 750px) { .rv-hero { min-height: 62rem; } }
.rv-hero__media { position: absolute; inset: 0; }
.rv-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.rv-hero.has-image .rv-hero__media::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.18); }
.rv-hero__content { position: relative; z-index: 1; width: 100%; padding-top: 5rem; padding-bottom: 5rem; display: flex; justify-content: center; }
.rv-hero__box { max-width: 72rem; text-align: center; }
.rv-hero.has-image .rv-hero__box { color: #fff; }
.rv-hero.has-image .rv-hero__box h2 { color: #fff; }
.rv-hero__text { font-size: 1.8rem; margin: 1.5rem auto 3rem; max-width: 56rem; }
.rv-hero.has-image .rv-button { background: #fff; color: var(--rv-text); box-shadow: 0 0 0 .1rem #fff; }
.rv-hero:not(.has-image) { background: var(--rv-soft); }
@media (max-width: 749px) {
	.rv-hero.has-image { flex-direction: column; min-height: 0; }
	.rv-hero.has-image .rv-hero__media { position: relative; height: 32rem; }
	.rv-hero.has-image .rv-hero__media::after { display: none; }
	.rv-hero.has-image .rv-hero__box, .rv-hero.has-image .rv-hero__box h2 { color: var(--rv-text); }
	.rv-hero.has-image .rv-button { background: var(--rv-accent); color: #fff; box-shadow: 0 0 0 .1rem var(--rv-accent); }
	.rv-hero__content { padding-top: 3rem; padding-bottom: 3rem; }
}

/* ---------- Product grid & cards ---------- */
.rv-grid, .woocommerce ul.products {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.4rem .8rem;
}
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none; }
@media (min-width: 750px) {
	.rv-grid, .woocommerce ul.products { gap: 3.6rem 2.4rem; }
	.rv-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 990px) {
	.woocommerce ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.woocommerce ul.products li.product, .rv-card { width: auto !important; float: none !important; margin: 0 !important; padding: 0; position: relative; display: flex; flex-direction: column; }
.rv-card__media { position: relative; overflow: hidden; background: var(--rv-soft); aspect-ratio: 2 / 3; border-radius: var(--rv-card-radius); }
.rv-card__link { display: block; height: 100%; }
.rv-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease, opacity .5s ease; }
.rv-card__img--hover { position: absolute; inset: 0; opacity: 0; }
@media (hover: hover) {
	.rv-card.has-hover:hover .rv-card__img--hover { opacity: 1; }
	.rv-card:hover .rv-card__media img { transform: scale(1.03); }
}
.rv-card__badge { position: absolute; left: 1rem; bottom: 1rem; z-index: 2; }
.rv-badge {
	display: inline-block; padding: .4rem 1.3rem .6rem; border-radius: 4rem; font-size: 1.2rem; line-height: 1; letter-spacing: .1rem;
	background: var(--rv-text); color: #fff; border: 1px solid transparent;
}
.rv-badge--sale { background: var(--rv-sale); color: #fff; }
.rv-card__info { padding: 1.3rem 0 0; }
.rv-card__title { font-size: 1.5rem; font-weight: 400; letter-spacing: .06rem; margin: 0 0 .6rem; line-height: 1.5; }
.rv-card__title a { text-decoration: none; }
.rv-card__title a:hover { text-decoration: underline; }
.rv-card__quick { margin-top: 1.4rem; }
.rv-card__quick .added_to_cart { display: none !important; }
.rv-card__quick .loading { opacity: .6; }

/* prices: sale price first, then compare-at struck through (Dawn order) */
.rv-price, .woocommerce div.product p.price, .woocommerce div.product span.price { font-size: 1.6rem; letter-spacing: .1rem; color: var(--rv-text); }
.rv-price .price, .rv-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem 1rem; }
.rv-price del, .woocommerce div.product p.price del { order: 2; color: var(--rv-muted); opacity: 1; font-size: 1.3rem; }
.rv-price ins, .woocommerce div.product p.price ins { order: 1; text-decoration: none; font-weight: 400; }
.woocommerce div.product p.price { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 0 1rem; margin: 0; }

/* ---------- Columns / features ---------- */
.rv-columns, .rv-features { list-style: none; margin: 0 0 3rem; padding: 0; display: grid; gap: 3rem; grid-template-columns: 1fr; }
@media (min-width: 750px) { .rv-columns, .rv-features { grid-template-columns: repeat(3, 1fr); } }
.rv-columns__item { text-align: center; }
.rv-columns__item h3 { font-size: 2rem; margin-bottom: .6rem; }
.rv-columns__item p { color: var(--rv-muted); margin: 0; }
.rv-features { margin-top: 4rem; }
.rv-feature { background: var(--rv-bg); padding: 3.6rem 2.8rem; text-align: center; }
.rv-feature__icon { font-size: 3.4rem; display: block; margin-bottom: 1.4rem; line-height: 1; }
.rv-feature p { color: var(--rv-muted); margin-bottom: .8rem; }
.rv-feature a { text-decoration: none; color: var(--rv-accent); }

/* ---------- Testimonials slider ---------- */
.rv-slider { max-width: 82rem; margin: 0 auto; position: relative; }
.rv-slider__track { list-style: none; margin: 0; padding: 0; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; }
.rv-slider__track::-webkit-scrollbar { display: none; }
.rv-slider__slide { flex: 0 0 100%; scroll-snap-align: start; padding: 0 .5rem; }
.rv-testimonial { margin: 0; background: var(--rv-soft); padding: 4rem 3rem; text-align: center; }
.rv-testimonial p { font-size: 1.8rem; line-height: 1.7; margin: 0; font-style: italic; }
.rv-testimonial__name { font-size: 1.6rem; color: var(--rv-accent); text-transform: none; margin-bottom: 1.4rem; }
.rv-slider__controls { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-top: 1.6rem; }
.rv-slider__btn { background: none; border: 0; width: 4.4rem; height: 4.4rem; cursor: pointer; color: var(--rv-muted); display: inline-flex; align-items: center; justify-content: center; }
.rv-slider__btn:hover { color: var(--rv-text); }
.rv-slider__btn svg { width: 1rem; height: 1rem; }
.rv-slider__counter { font-size: 1.4rem; color: var(--rv-muted); }

/* ---------- Rich text / newsletter ---------- */
.rv-richtext p { font-size: 1.7rem; }
.rv-newsletter__form { max-width: 36rem; margin: 3rem auto 0; }
.rv-newsletter__field { position: relative; }
.rv-newsletter__field input {
	width: 100%; height: 4.6rem; padding: 0 5rem 0 1.5rem; border: 1px solid var(--rv-text); background: transparent;
	font: inherit; font-size: 1.6rem; color: var(--rv-text); border-radius: var(--rv-radius);
}
.rv-newsletter__button { position: absolute; right: 0; top: 0; width: 4.6rem; height: 4.6rem; background: none; border: 0; cursor: pointer; color: var(--rv-text); }
.rv-newsletter__button svg { width: 1.4rem; height: 1.4rem; }
.rv-hp { position: absolute !important; left: -9999px !important; }

/* ---------- Contact strip & footer ---------- */
.rv-contact-strip { border-top: 1px solid var(--rv-border); background: var(--rv-soft); text-align: center; padding: 3rem 0; }
.rv-contact-strip p { margin: 0; line-height: 2; }
.rv-contact-strip a { text-decoration: none; }
.rv-footer { background: var(--rv-accent); color: rgba(255,255,255,.88); padding: 5rem 0 3rem; }
.rv-footer a { color: #fff; }
.rv-footer__brand { text-align: center; max-width: 64rem; margin: 0 auto 4rem; }
.rv-footer__logo { max-width: 22rem; margin: 0 auto 2rem; }
.rv-footer__heading { color: #fff; font-size: 2rem; letter-spacing: .2rem; }
.rv-footer__text { margin: 0; }
.rv-footer__bottom { border-top: 1px solid rgba(255,255,255,.2); padding-top: 3rem; display: flex; flex-direction: column; align-items: center; gap: 2rem; text-align: center; }
.rv-social { list-style: none; margin: 0; padding: 0; display: flex; gap: .4rem; }
.rv-social a { display: inline-flex; width: 4.4rem; height: 4.4rem; align-items: center; justify-content: center; }
.rv-social svg { width: 2rem; height: 2rem; }
.rv-footer .rv-social a:hover svg { transform: scale(1.07); }
.rv-drawer .rv-social { margin-left: -1.2rem; }
.rv-payments__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .8rem; justify-content: center; }
.rv-payments__list li { font-size: 1.1rem; font-weight: 700; letter-spacing: .05rem; padding: .3rem .8rem; border-radius: .3rem; background: #fff; color: var(--rv-text); }
.rv-footer__copyright { font-size: 1.2rem; display: flex; flex-wrap: wrap; gap: .4rem 1.6rem; justify-content: center; }
.rv-footer__copyright a { text-decoration: none; }
.rv-policies { list-style: none; margin: 0; padding: 0; display: flex; gap: 1.6rem; }
.rv-policies a { font-size: 1.2rem; text-decoration: none; }
.rv-policies a:hover { text-decoration: underline; }

/* ---------- Pages ---------- */
.rv-page__title { padding-top: 4rem; margin-bottom: 3rem; }
.rv-rte > *:last-child { margin-bottom: 0; }
.rv-page__content { padding-bottom: var(--rv-section-y); }
.rv-rte ul, .rv-rte ol { padding-left: 2rem; }
.rv-rte img { margin: 2rem 0; }
.rv-container--page .rv-rte, .rv-page__content > p, .rv-page__content > h2, .rv-page__content > ul { max-width: 820px; }
.rv-page__content > :not(.rv-about):not(.rv-contact):not(.rv-faq):not(.rv-policy):not(.woocommerce):not(.wp-block-woocommerce-cart):not(.wp-block-woocommerce-checkout) { max-width: 820px; margin-left: auto; margin-right: auto; padding-left: var(--rv-gutter); padding-right: var(--rv-gutter); }
.rv-page__content.rv-container > * { padding-left: 0 !important; padding-right: 0 !important; max-width: none !important; }

/* About */
.rv-banner { position: relative; min-height: 46rem; display: flex; align-items: center; }
.rv-banner > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; margin: 0; }
.rv-banner::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.28); }
.rv-banner__overlay { position: relative; z-index: 1; width: 100%; display: flex; justify-content: center; }
.rv-banner__box { max-width: 70rem; text-align: center; color: #fff; padding: 5rem 0; }
.rv-banner__box h2, .rv-banner__box .rv-eyebrow { color: #fff; }
.rv-banner__box p { font-size: 1.8rem; }
.rv-split { display: grid; gap: 4rem; align-items: center; }
@media (min-width: 750px) { .rv-split { grid-template-columns: 1fr 1fr; gap: 6rem; } }
.rv-split__media img { width: 100%; margin: 0; aspect-ratio: 1 / 1; object-fit: cover; }
.rv-trust { font-size: 1.4rem; letter-spacing: .1rem; margin-top: 3rem; }

/* FAQ */
.rv-faq { padding-top: 0; padding-bottom: 2rem; }
.rv-faq__intro { margin-bottom: 4rem; }
.rv-faq__group { font-size: 1.4rem; text-transform: uppercase; letter-spacing: .2rem; color: var(--rv-accent); margin: 4rem 0 1rem; }
.rv-faq__item { border-bottom: 1px solid var(--rv-border); }
.rv-faq__item summary {
	cursor: pointer; list-style: none; padding: 1.8rem 4rem 1.8rem 0; font-weight: 600; font-size: 1.7rem; position: relative;
}
.rv-faq__item summary::-webkit-details-marker { display: none; }
.rv-faq__item summary::after { content: "+"; position: absolute; right: .4rem; top: 50%; transform: translateY(-50%); font-size: 2.2rem; font-weight: 400; color: var(--rv-accent); }
.rv-faq__item[open] summary::after { content: "−"; }
.rv-faq__answer { padding: 0 0 1.8rem; color: var(--rv-muted); }
.rv-faq__form { margin-top: 6rem; }

/* Contact */
.rv-contact-hero { padding-top: 2rem; }
.rv-contact-hero__grid { display: grid; gap: 4rem; align-items: center; }
@media (min-width: 990px) { .rv-contact-hero__grid { grid-template-columns: 1.2fr 1fr; gap: 6rem; } }
.rv-contact-hero .rv-lead { margin-left: 0; }
.rv-brand-card { background: var(--rv-soft); padding: 4rem 3.4rem; }
.rv-brand-card__mono {
	width: 6.4rem; height: 6.4rem; border-radius: 50%; background: var(--rv-accent); color: #fff;
	display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 2rem; letter-spacing: .2rem; margin-bottom: 2rem;
}
.rv-brand-card h3 { letter-spacing: .15rem; }
.rv-brand-card > p { color: var(--rv-muted); }
.rv-brand-card__list { margin: 2.4rem 0 0; display: grid; gap: 1.6rem; }
.rv-brand-card__list div { border-top: 1px solid var(--rv-border); padding-top: 1.4rem; }
.rv-brand-card__list dt { font-size: 1.2rem; text-transform: uppercase; letter-spacing: .2rem; color: var(--rv-accent); font-weight: 600; }
.rv-brand-card__list dd { margin: .2rem 0 0; font-weight: 600; }
.rv-contact-form-wrap { display: grid; gap: 4rem; }
@media (min-width: 990px) { .rv-contact-form-wrap { grid-template-columns: 1fr 1.4fr; gap: 6rem; align-items: start; } }
.rv-form-card { background: var(--rv-white); padding: 4rem 3.4rem; border: 1px solid var(--rv-border); }
.rv-form-card > p { color: var(--rv-muted); }

/* Forms */
.rv-form { margin-top: 2rem; }
.rv-form__title { margin-bottom: 2rem; }
.rv-form__row { display: grid; gap: 0 2rem; }
@media (min-width: 750px) { .rv-form__row { grid-template-columns: 1fr 1fr; } }
.rv-field { margin-bottom: 2rem; }
.rv-field label { display: block; font-size: 1.4rem; margin-bottom: .6rem; color: var(--rv-muted); }
.rv-field input, .rv-field select, .rv-field textarea {
	width: 100%; padding: 1.3rem 1.5rem; font: inherit; font-size: 1.6rem; color: var(--rv-text);
	background: transparent; border: 1px solid rgba(44,58,46,.55); border-radius: var(--rv-radius);
}
.rv-field input:focus, .rv-field select:focus, .rv-field textarea:focus { outline: none; box-shadow: 0 0 0 .1rem var(--rv-text); border-color: var(--rv-text); }
.rv-form__notice { padding: 1.2rem 1.6rem; margin-bottom: 2rem; }
.rv-form__notice--ok { background: #e6efe1; color: #2f5226; }
.rv-form__notice--error { background: #f8e5e2; color: #8a2b20; }
.rv-newsletter .rv-form__notice { margin: 1.5rem 0 0; }

/* ---------- WooCommerce ---------- */
.rv-wc { padding-top: 4rem; padding-bottom: var(--rv-section-y); }
.woocommerce-products-header__title { margin-bottom: 2.4rem; }
.woocommerce .woocommerce-result-count { float: none; margin: 0; font-size: 1.4rem; color: var(--rv-muted); }
.woocommerce .woocommerce-ordering { float: none; margin: 0; }
.rv-wc--archive .woocommerce-notices-wrapper + .woocommerce-result-count,
.rv-wc--archive .woocommerce-result-count { display: inline-block; }
.rv-wc--archive form.woocommerce-ordering { display: inline-block; float: right; }
.rv-wc--archive .woocommerce-ordering select, .woocommerce .quantity .qty {
	font: inherit; font-size: 1.5rem; color: var(--rv-text); background: transparent; border: 1px solid rgba(44,58,46,.55); padding: .8rem 1.2rem; border-radius: var(--rv-radius);
}
.rv-wc--archive ul.products { clear: both; margin-top: 2.4rem; border-top: 1px solid var(--rv-border); padding-top: 2.4rem; }
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; }

/* single product */
.woocommerce div.product { display: grid; gap: 3rem; }
@media (min-width: 990px) { .woocommerce div.product { grid-template-columns: 55% 1fr; gap: 6rem; } }
.woocommerce div.product div.images, .woocommerce div.product div.summary { width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce div.product .related, .woocommerce div.product .upsells { grid-column: 1 / -1; margin-top: 6rem; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 1rem; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto !important; float: none !important; }
.woocommerce div.product div.images img { background: var(--rv-soft); }
.rv-product__vendor { font-size: 1.2rem; text-transform: uppercase; letter-spacing: .13rem; color: var(--rv-muted); margin-bottom: .6rem; }
.woocommerce div.product .product_title { font-size: 3rem; margin-bottom: 1.6rem; }
@media (min-width: 750px) { .woocommerce div.product .product_title { font-size: 4rem; } }
.woocommerce div.product p.price { font-size: 1.8rem; color: var(--rv-text); }
.woocommerce div.product p.price del { font-size: 1.5rem; }
.rv-product__badge { margin-left: 1rem; vertical-align: middle; }
.rv-product__tax { font-size: 1.3rem; color: var(--rv-muted); margin: .6rem 0 2rem; }
.rv-product__option { border: 0; padding: 0; margin: 0 0 2rem; }
.rv-product__option legend { font-size: 1.4rem; margin-bottom: .8rem; color: var(--rv-muted); }
.rv-pills { display: flex; flex-wrap: wrap; gap: .8rem; }
.rv-pill { border: 1px solid var(--rv-text); border-radius: 4rem; padding: 1rem 2rem; font-size: 1.4rem; }
.rv-pill.is-active { background: var(--rv-text); color: #fff; }
.rv-product__qty-label { font-size: 1.4rem; color: var(--rv-muted); margin-bottom: .8rem; width: 100%; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 3rem; }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0 0 1rem; width: 100%; }
.woocommerce .quantity .qty { width: 14rem; height: 4.6rem; text-align: center; }
.woocommerce div.product form.cart .button.single_add_to_cart_button {
	float: none; width: 100%; background: transparent; color: var(--rv-text); box-shadow: 0 0 0 .1rem var(--rv-text);
}
.woocommerce div.product form.cart .button.single_add_to_cart_button:hover { box-shadow: 0 0 0 .2rem var(--rv-text); background: transparent; color: var(--rv-text); }
.rv-buy-now { margin-top: .4rem; }
.rv-product__description { border-top: 1px solid var(--rv-border); padding-top: 2.4rem; }
.rv-product__description h2 { font-size: 2.2rem; }
.rv-product__description h3 { font-size: 1.7rem; margin-top: 2rem; }
.woocommerce div.product .related > h2 { font-size: 2.4rem; margin-bottom: 3rem; }
.woocommerce div.product form.cart.is-loading .single_add_to_cart_button { opacity: .6; pointer-events: none; }

/* notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error { border-top-color: var(--rv-accent); background: var(--rv-soft); font-size: 1.5rem; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--rv-accent); }

/* cart drawer */
.rv-cart-drawer { width: min(40rem, 92vw); }
.rv-cart-drawer__header { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--rv-border); padding-bottom: 1.6rem; margin-bottom: 1.6rem; }
.rv-cart-drawer__header h2 { margin: 0; font-size: 2rem; }
.rv-cart-drawer__header .rv-drawer__close { align-self: center; }
.rv-cart-drawer .widget_shopping_cart_content { display: flex; flex-direction: column; flex: 1; }
.woocommerce-mini-cart__empty-message { display: none; }
.rv-cart-empty { text-align: center; margin: auto 0; padding: 4rem 0; }
.rv-cart-empty h2 { font-size: 2.4rem; margin-bottom: 2.4rem; }
.rv-cart-empty__login { margin-top: 4rem; font-size: 1.5rem; }
.woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.woocommerce-mini-cart-item { position: relative; display: grid; grid-template-columns: 8rem 1fr; gap: .4rem 1.6rem; padding: 1.6rem 3rem 1.6rem 0; border-bottom: 1px solid var(--rv-border); font-size: 1.4rem; }
.woocommerce-mini-cart-item > a:not(.remove) { display: contents; text-decoration: none; }
.woocommerce-mini-cart-item img { grid-row: span 3; width: 8rem; height: auto; background: var(--rv-soft); }
.woocommerce-mini-cart-item .remove { position: absolute; right: 0; top: 1.4rem; text-decoration: none; font-size: 2.2rem; line-height: 1; color: var(--rv-muted); }
.woocommerce-mini-cart-item .quantity { grid-column: 2; color: var(--rv-muted); }
.woocommerce-mini-cart__total { display: flex; justify-content: space-between; margin: 2rem 0 .4rem; font-size: 1.6rem; }
.rv-cart-note { font-size: 1.3rem; color: var(--rv-muted); }
.woocommerce-mini-cart__buttons { display: flex; flex-direction: column-reverse; gap: 1rem; margin: 0; }
.woocommerce-mini-cart__buttons .button { width: 100%; }
.woocommerce-mini-cart__buttons .button:not(.checkout) { background: transparent !important; color: var(--rv-text) !important; box-shadow: none !important; text-decoration: underline; min-height: 3rem; }

/* cart / checkout blocks */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { font-family: var(--rv-font); }
.wc-block-components-button:not(.is-link) { width: 100%; }

/* blog / misc */
.rv-posts { display: grid; gap: 4rem; grid-template-columns: repeat(auto-fill, minmax(28rem, 1fr)); }
.rv-post-card__title { font-size: 2rem; margin-top: 1.4rem; }
.rv-post-card__title a { text-decoration: none; }
.rv-meta { color: var(--rv-muted); font-size: 1.4rem; }
.rv-404 .rv-subtitle { font-size: 1.4rem; letter-spacing: .3rem; color: var(--rv-muted); }
.rv-404 .rv-button { margin-top: 2rem; }

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