/*
Theme Name: Roordastate
Theme URI: https://roordastate.test
Description: Child theme of Twenty Twenty-Five for Biologische Zuivelboerderij Roordastate. Heritage (Erfgoed) direction: parchment, editorial serif, hand-written touches, dramatic farm photography.
Author: Doublebyte
Template: twentytwentyfive
Version: 0.6.0
Requires at least: 6.7
Requires PHP: 8.1
Text Domain: roordastate
*/

:root {
	--rs-photo-filter: none;
	--rs-border-soft: rgba(42, 37, 32, 0.10);
	--rs-border-base: rgba(42, 37, 32, 0.18);
	--rs-border-firm: rgba(42, 37, 32, 0.30);
	--rs-on-dark-rule: rgba(232, 224, 208, 0.20);
	--rs-deckle: 8px 80px 12px 60px / 60px 14px 80px 10px;
	--rs-deckle-mobile: 6px 40px 8px 32px / 32px 8px 40px 6px;
	--rs-content-max: 1280px;
	--rs-side-pad: 64px;
}

/* ---------- section system ----------
   .rs-section          → full-width container (allows full-bleed bg)
   .rs-section__inner   → constrained 1280px content with side padding
*/
.rs-section {
	width: 100%;
}

.rs-section__inner {
	max-width: var(--rs-content-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--rs-side-pad);
	padding-right: var(--rs-side-pad);
	box-sizing: border-box;
}

/* Checkout head + body: responsive side padding via --rs-side-pad
   (was hardcoded inline at 64px, far too wide on mobile). */
.rs-checkout-head,
.rs-checkout-body {
	padding-left: var(--rs-side-pad);
	padding-right: var(--rs-side-pad);
	box-sizing: border-box;
}

.rs-section--parchment {
	background: var(--wp--preset--color--parchment);
}

.rs-section--cream {
	background: var(--wp--preset--color--cream);
}

/* When TT5 wraps main in is-layout-constrained, undo that for our sections */
.wp-block-group.is-layout-constrained > .rs-section,
main.is-layout-constrained > .rs-section,
main > .rs-section,
.entry-content > .rs-section,
.wp-block-post-content > .rs-section {
	max-width: none;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
}

/* Trim the top gap between the header and the first section's content.
   Pages hardcode padding-top:80px inline on .rs-section__inner, so override with !important.
   Only the first section per page is affected. Covers regular pages (.entry-content) and
   archive/shop templates where .rs-section sits directly in <main>. */
.entry-content > .rs-section:first-child > .rs-section__inner,
.wp-block-post-content > .rs-section:first-child > .rs-section__inner,
main > .rs-section:first-child > .rs-section__inner {
	padding-top: 40px !important;
}

/* Strip TT5's global padding from main/entry-content so .rs-section can bleed full-width */
main.has-global-padding,
.entry-content.has-global-padding {
	padding-left: 0;
	padding-right: 0;
}

main.is-layout-constrained > .entry-content,
main > .entry-content {
	max-width: none;
}

/* ---------- typographic primitives ---------- */
.rs-hero-xl {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: clamp(56px, 8vw, 110px);
	line-height: 0.98;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--ink);
	margin: 24px 0 56px;
}

.rs-hero-l {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: clamp(48px, 7vw, 96px);
	line-height: 0.98;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--ink);
	margin: 16px 0 24px;
}

.rs-body-lead {
	font-family: var(--wp--preset--font-family--body);
	font-size: 17px;
	line-height: 1.7;
	color: var(--wp--preset--color--ink-soft);
	margin: 0 0 16px;
}

.rs-quote {
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-size: 28px;
	line-height: 1.3;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--ink);
	margin: 0 0 32px;
}

.rs-bullet-list {
	list-style: none;
	padding: 0;
	margin: 16px 0 0;
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.9;
}

.rs-maps-link {
	margin-top: 20px;
	display: inline-block;
}

.rs-section-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 32px;
	margin-bottom: 56px;
	flex-wrap: wrap;
}

.rs-section-head__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: clamp(40px, 5vw, 56px);
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--ink);
	margin: 12px 0 0;
}

.rs-section-head__title--standalone {
	margin: 12px 0 56px;
}

.rs-section-head__link {
	color: var(--wp--preset--color--terra);
	text-decoration: none;
	white-space: nowrap;
}

.rs-section-head__link:hover {
	color: var(--wp--preset--color--terra-dark);
}

/* ---------- deckle ---------- */
.rs-deckle {
	margin: 0;
}

.rs-deckle img {
	display: block;
	width: 100%;
	height: 500px;
	object-fit: cover;
	border-radius: var(--rs-deckle);
	filter: var(--rs-photo-filter);
}

.rs-deckle--tall img {
	height: 560px;
}

/* ---------- buttons ---------- */
.rs-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--terra);
	color: var(--wp--preset--color--cream);
	padding: 14px 22px;
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0.04em;
	text-decoration: none;
	border: 1px solid transparent;
	transition: background 200ms ease;
	box-sizing: border-box;
	vertical-align: middle;
}

.rs-btn:hover,
.rs-btn:focus-visible {
	background: var(--wp--preset--color--terra-dark);
	color: var(--wp--preset--color--cream);
}

.rs-btn--ghost {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border-color: var(--rs-border-firm);
}

.rs-btn--ghost:hover,
.rs-btn--ghost:focus-visible {
	background: rgba(42, 37, 32, 0.06);
	color: var(--wp--preset--color--ink);
}

/* ---------- HERO: home ---------- */
.rs-hero-home__grid {
	display: grid;
	grid-template-columns: 1.05fr 1fr;
	gap: 64px;
	align-items: center;
}

.rs-hero-home__headline {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: clamp(56px, 7.5vw, 96px);
	line-height: 0.98;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--ink);
	margin: 24px 0;
}

.rs-hero-home__lead {
	font-family: var(--wp--preset--font-family--body);
	font-size: 17px;
	line-height: 1.65;
	color: var(--wp--preset--color--ink-soft);
	max-width: 56ch;
	margin: 0 0 32px;
}

.rs-hero-home__cta {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
}

/* WP's is-layout-flow injects margin-block between siblings — reset it for our flex CTA row */
.rs-hero-home__cta > * + * {
	margin-top: 0;
	margin-block-start: 0;
}

/* Use flex+gap on the hero copy column so all children get even spacing,
   instead of WP's is-layout-flow which only adds margin between siblings (skipping the first). */
.rs-hero-home__copy {
	display: flex;
	flex-direction: column;
	gap: 24px;
	align-items: flex-start;
}

/* WP prints `:root :where(.is-layout-flow) > * { margin-block-start: ... }` inline AFTER
   this stylesheet. Match its structure but with real (non-:where) specificity so our reset
   wins regardless of source order. */
.rs-hero-home__copy.is-layout-flow > *,
.rs-hero-home__copy > * {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	margin-block-start: 0 !important;
	margin-block-end: 0 !important;
}

.rs-hero-home__image {
	position: relative;
}

.rs-hero-home__image .rs-deckle img {
	height: 620px;
}

.rs-hero-home__image .rs-testimonial-pin {
	position: absolute;
	right: -20px;
	bottom: -28px;
	max-width: 320px;
}

/* ---------- STATS strip ---------- */
.rs-stats-strip {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	border-top: 1px solid var(--rs-border-base);
	border-bottom: 1px solid var(--rs-border-base);
	padding: 32px 0;
	align-items: start;
}

/* WP's is-layout-flow adds margin-block-start to every tile except the first,
   pushing tiles 2-4 down while 'Sinds' stays at the top. Grid gap already handles
   spacing, so zero the injected top-margin on the tiles and their inner paragraphs.
   (We only kill margin-block-start; the explicit margin-bottom on key/value stays.) */
.rs-stats-strip > *,
.rs-stat-tile > * {
	margin-top: 0 !important;
	margin-block-start: 0 !important;
}

/* ---------- featured products grid ---------- */
.rs-product-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	align-items: stretch;
}

.rs-product-card {
	background: var(--wp--preset--color--card-bg);
	border: 1px solid var(--rs-border-soft);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transition: border-color 200ms ease, transform 200ms ease;
	height: 100%;
}

.rs-product-card:hover {
	border-color: var(--rs-border-base);
	transform: translateY(-2px);
}

.rs-product-card__image {
	position: relative;
	display: block;
	overflow: hidden;
	background: var(--wp--preset--color--cream);
	aspect-ratio: 4 / 5;
}

.rs-product-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 400ms ease;
	filter: var(--rs-photo-filter);
}

.rs-product-card:hover .rs-product-card__image img {
	transform: scale(1.03);
}

.rs-product-card__weeks {
	position: absolute;
	top: 16px;
	left: 16px;
	background: var(--wp--preset--color--cream);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 6px 12px;
	border-radius: 999px;
}

.rs-product-card__body {
	padding: 20px 20px 24px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex: 1;
}

.rs-product-card__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: 22px;
	letter-spacing: -0.015em;
	line-height: 1.15;
	margin: 0;
	min-height: 2.3em;
}

.rs-product-card__title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.rs-product-card__title a:hover {
	color: var(--wp--preset--color--terra);
}

.rs-product-card__tag {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	margin: 4px 0 12px;
	min-height: 1.4em;
}

.rs-product-card__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: auto;
	padding-top: 4px;
}

.rs-product-card__price {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: 22px;
	color: var(--wp--preset--color--ink);
}

.rs-product-card__price .woocommerce-Price-amount,
.rs-product-card__price bdi {
	font-family: inherit;
}

.rs-product-card__add {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	border-radius: 999px;
	border: 1px solid var(--rs-border-firm);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	font-family: var(--wp--preset--font-family--body);
	font-size: 12px;
	letter-spacing: 0.04em;
	line-height: 1;
	background: transparent;
	box-sizing: border-box;
	max-width: 100%;
	white-space: nowrap;
	transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
}

.rs-product-card__add span {
	font-size: 14px;
	line-height: 1;
}

.rs-product-card__add:hover,
.rs-product-card__add:focus-visible {
	background: var(--wp--preset--color--terra);
	border-color: var(--wp--preset--color--terra);
	color: var(--wp--preset--color--cream);
}

/* ---------- story split ---------- */
.rs-story-split {
	display: grid;
	grid-template-columns: 1fr 1.2fr;
	gap: 64px;
	align-items: center;
}

.rs-story-split__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: clamp(40px, 5vw, 64px);
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--ink);
	margin: 16px 0 24px;
}

/* ---------- gift grid ---------- */
.rs-gift-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 32px;
	align-items: stretch;
}

.rs-gift-cta {
	margin-top: 8px;
	text-align: center;
	display: inline-block;
}

/* ---------- about page ---------- */
.rs-about-body {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	margin-top: 80px;
}

/* ---------- process steps ---------- */
.rs-process-step {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
	padding: 40px 0;
	border-top: 1px solid var(--rs-border-base);
}

.rs-process-step--image-right .rs-process-step__image {
	order: 2;
}

.rs-process-step__image img {
	height: 380px;
}

/* ---------- certification grid ---------- */
.rs-cert-grid-list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	border-top: 1px solid var(--rs-border-base);
	padding-top: 32px;
}

.rs-cert-card {
	padding: 0 24px;
	border-left: 1px solid var(--rs-border-base);
}

.rs-cert-card:first-child {
	border-left: 0;
	padding-left: 0;
}

/* ---------- visit info ---------- */
.rs-visit-info {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 64px;
	margin-bottom: 80px;
}

/* ---------- contact ---------- */
.rs-contact-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: start;
}

.rs-contact-rows {
	margin-top: 48px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}

.rs-contact-row-value {
	font-size: 17px;
	line-height: 1.6;
	margin: 8px 0 0;
	color: var(--wp--preset--color--ink-soft);
}

.rs-contact-row-value a {
	color: var(--wp--preset--color--terra);
	text-decoration: none;
}

/* Social icon buttons (Contact page, under "Volgen"). */
.rs-socials {
	display: flex;
	gap: 10px;
	margin-top: 8px;
}

.rs-social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 999px;
	border: 1px solid var(--rs-border-firm);
	color: var(--wp--preset--color--ink);
	background: transparent;
	text-decoration: none;
	transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
}

.rs-social:hover,
.rs-social:focus-visible {
	background: var(--wp--preset--color--terra);
	border-color: var(--wp--preset--color--terra);
	color: var(--wp--preset--color--cream);
}

/* =============================================================
   CART / MAND — Woo block overrides
   ============================================================= */

.rs-shipping-note {
	margin-top: 24px;
	font-size: 22px;
	color: var(--wp--preset--color--terra);
	transform: rotate(-1deg);
	display: block;
}


/* Wrap the right-column "Samenvatting" totals in a card */
.wp-block-woocommerce-cart-totals-block {
	background: var(--wp--preset--color--card-bg);
	border: 1px solid var(--rs-border-soft);
	padding: 28px 28px 32px;
}

.wp-block-woocommerce-cart-totals-block > * + * {
	margin-top: 4px;
}

/* "Samenvatting" / Order summary heading sits at top of the card */
.wp-block-woocommerce-cart-order-summary-heading-block,
.wc-block-components-totals-wrapper {
	background: transparent;
}

/* Tighten internal padding of the nested Woo wrappers since the card already has it */
.wp-block-woocommerce-cart-totals-block .wc-block-components-totals-wrapper {
	padding-left: 0;
	padding-right: 0;
}

/* "Verder naar afrekenen" button — make it our terra pill */
.wp-block-woocommerce-cart-totals-block .wc-block-components-checkout-button,
.wc-block-cart__submit-button {
	background: var(--wp--preset--color--terra) !important;
	color: var(--wp--preset--color--cream) !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 16px 24px !important;
	font-family: var(--wp--preset--font-family--body) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	letter-spacing: 0.04em !important;
	min-height: 52px;
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-checkout-button:hover,
.wc-block-cart__submit-button:hover {
	background: var(--wp--preset--color--terra-dark) !important;
}

/* Subtle divider lines between rows */
.wp-block-woocommerce-cart-order-summary-block hr {
	border: 0;
	border-top: 1px solid var(--rs-border-base);
	margin: 12px 0;
}

/* =============================================================
   SHOP / ARCHIVE
   ============================================================= */

.rs-shop-filters {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
}

.rs-shop-filters__chips {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.rs-shop-filters__sort {
	display: flex;
	align-items: center;
	gap: 12px;
}

.rs-shop-filters__sort-label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	margin: 0;
}

.rs-shop-filters__sort select {
	background: transparent;
	border: 0;
	border-bottom: 1px solid var(--rs-border-firm);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	padding: 8px 24px 8px 4px;
	appearance: none;
	-webkit-appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, var(--wp--preset--color--ink) 50%),
	                  linear-gradient(135deg, var(--wp--preset--color--ink) 50%, transparent 50%);
	background-position: calc(100% - 12px) 50%, calc(100% - 7px) 50%;
	background-size: 5px 5px, 5px 5px;
	background-repeat: no-repeat;
	cursor: pointer;
}

.rs-shop-filters__sort select:focus-visible {
	outline: 2px solid var(--wp--preset--color--terra);
	outline-offset: 2px;
}

/* ---------- pagination ---------- */
.rs-pagination {
	margin-top: 56px;
	display: flex;
	justify-content: center;
}

.rs-pagination .page-numbers {
	list-style: none;
	display: flex;
	gap: 8px;
	padding: 0;
	margin: 0;
	flex-wrap: wrap;
}

.rs-pagination .page-numbers li > * {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--rs-border-firm);
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	background: transparent;
}

.rs-pagination .page-numbers li > .current {
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--cream);
	border-color: var(--wp--preset--color--forest);
}

.rs-pagination .page-numbers li > a:hover {
	background: rgba(42, 37, 32, 0.06);
}

/* =============================================================
   PRODUCT DETAIL
   ============================================================= */

.rs-product-detail__crumbs {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 32px;
}

.rs-product-detail__crumbs a {
	color: var(--wp--preset--color--ink-faint);
	text-decoration: none;
}

.rs-product-detail__crumbs a:hover {
	color: var(--wp--preset--color--terra);
}

.rs-product-detail__crumbs-current {
	color: var(--wp--preset--color--ink);
}

.rs-product-detail__grid {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	gap: 64px;
	align-items: start;
}

/* ---------- gallery ---------- */
.rs-gallery {
	position: relative;
}

.rs-gallery__stage {
	position: relative;
	background: var(--wp--preset--color--card-bg);
	border-radius: var(--rs-deckle);
	overflow: hidden;
	aspect-ratio: 4 / 5;
}

.rs-gallery__slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 250ms ease;
}

.rs-gallery__slide.is-active {
	opacity: 1;
	visibility: visible;
}

.rs-gallery__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	filter: var(--rs-photo-filter);
	border-radius: 0; /* stage owns the deckle */
}

/* When deckle wraps the slide, the img should NOT also clip */
.rs-gallery__slide.rs-deckle {
	border-radius: 0;
}

.rs-gallery__arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border-radius: 999px;
	border: 1px solid var(--rs-border-firm);
	background: rgba(244, 237, 225, 0.92);
	color: var(--wp--preset--color--ink);
	font-size: 18px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	transition: background 150ms ease, transform 150ms ease;
	font-family: var(--wp--preset--font-family--body);
	backdrop-filter: blur(4px);
}

.rs-gallery__arrow:hover,
.rs-gallery__arrow:focus-visible {
	background: var(--wp--preset--color--terra);
	color: var(--wp--preset--color--cream);
	border-color: var(--wp--preset--color--terra);
}

.rs-gallery__arrow--prev { left: 16px; }
.rs-gallery__arrow--next { right: 16px; }

.rs-gallery--single .rs-gallery__arrow {
	display: none;
}

.rs-gallery__thumbs {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-top: 16px;
}

.rs-gallery--single .rs-gallery__thumbs {
	display: none;
}

.rs-gallery__thumb {
	padding: 0;
	border: 1px solid transparent;
	background: var(--wp--preset--color--card-bg);
	cursor: pointer;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	transition: border-color 150ms ease, transform 150ms ease;
}

.rs-gallery__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	filter: var(--rs-photo-filter);
	opacity: 0.78;
	transition: opacity 150ms ease;
}

.rs-gallery__thumb:hover img,
.rs-gallery__thumb:focus-visible img,
.rs-gallery__thumb.is-active img {
	opacity: 1;
}

.rs-gallery__thumb.is-active {
	border-color: var(--wp--preset--color--terra);
}

/* ---------- info column ---------- */
.rs-product-detail__info {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.rs-product-detail__meta {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--terra);
	margin: 0;
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.rs-product-detail__meta-cat {
	color: var(--wp--preset--color--ink-faint);
}

.rs-product-detail__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: clamp(40px, 5.5vw, 76px);
	line-height: 0.98;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--ink);
	margin: 0;
}

.rs-product-detail__title--stacked em {
	font-style: italic;
	display: inline;
}

.rs-product-detail__short {
	margin: 0;
}

.rs-product-detail__desc {
	color: var(--wp--preset--color--ink-soft);
	font-size: 15px;
	line-height: 1.7;
}

.rs-product-detail__desc p {
	margin: 0 0 12px;
}

/* ---------- spec list ---------- */
.rs-spec-list {
	margin: 8px 0 0;
	padding: 0;
	border-top: 1px solid var(--rs-border-base);
}

.rs-spec-list__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: 14px 0;
	border-bottom: 1px solid var(--rs-border-base);
	gap: 24px;
}

.rs-spec-list dt {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	margin: 0;
}

.rs-spec-list dd {
	font-family: var(--wp--preset--font-family--body);
	font-size: 15px;
	color: var(--wp--preset--color--ink);
	margin: 0;
	text-align: right;
}

/* ---------- buy block ---------- */
.rs-buy-block {
	margin-top: 16px;
	padding: 24px;
	background: var(--wp--preset--color--card-bg);
	border: 1px solid var(--rs-border-soft);
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.rs-buy-block__price-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

.rs-buy-block__price {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: 48px;
	line-height: 1;
	color: var(--wp--preset--color--ink);
	letter-spacing: -0.02em;
}

.rs-buy-block__price .woocommerce-Price-amount,
.rs-buy-block__price bdi {
	font-family: inherit;
}

.rs-buy-block__price-meta {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
}

.rs-buy-block__form {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 12px;
	align-items: stretch;
}

/* ---------- variation (gewicht) selector ---------- */
.rs-variations {
	grid-column: 1 / -1;
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 4px;
}

.rs-variations__label {
	color: var(--wp--preset--color--ink-faint);
}

.rs-variations__options {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.rs-variation-chip {
	padding: 10px 18px;
	border: 1px solid var(--rs-border-firm);
	border-radius: 999px;
	background: transparent;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
	transition: background 150ms ease, color 150ms ease, border-color 150ms ease;
}

.rs-variation-chip:hover:not(:disabled) {
	border-color: var(--wp--preset--color--terra);
}

.rs-variation-chip.is-active {
	background: var(--wp--preset--color--terra);
	border-color: var(--wp--preset--color--terra);
	color: var(--wp--preset--color--cream);
}

.rs-variation-chip:disabled {
	opacity: 0.4;
	cursor: not-allowed;
	text-decoration: line-through;
}

.rs-buy-block__cta:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

/* ---------- quantity stepper ---------- */
.rs-qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--rs-border-firm);
	border-radius: 999px;
	overflow: hidden;
	background: transparent;
}

.rs-qty__btn {
	width: 44px;
	height: 52px;
	border: 0;
	background: transparent;
	font-size: 18px;
	font-family: var(--wp--preset--font-family--body);
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	line-height: 1;
}

.rs-qty__btn:hover,
.rs-qty__btn:focus-visible {
	background: rgba(42, 37, 32, 0.06);
}

.rs-qty__input {
	width: 36px;
	height: 52px;
	border: 0;
	background: transparent;
	font-family: var(--wp--preset--font-family--body);
	font-size: 15px;
	color: var(--wp--preset--color--ink);
	text-align: center;
	appearance: textfield;
	-moz-appearance: textfield;
}

.rs-qty__input::-webkit-outer-spin-button,
.rs-qty__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* ---------- big CTA ---------- */
.rs-btn--xl {
	padding: 18px 28px;
	font-size: 15px;
	min-height: 52px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border-radius: 999px;
	font-weight: 500;
	letter-spacing: 0.04em;
	transition: background 200ms ease, transform 100ms ease;
}

.rs-btn--xl:active {
	transform: translateY(1px);
}

.rs-buy-block__cta {
	width: 100%;
}

.rs-buy-block__cta-sep {
	opacity: 0.5;
}

.rs-buy-block__cta-price {
	font-family: var(--wp--preset--font-family--display);
	font-size: 18px;
	letter-spacing: 0;
}

.rs-buy-block__cta.is-loading {
	opacity: 0.7;
	pointer-events: none;
}

.rs-buy-block__cta.is-success {
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--cream);
}

.rs-buy-block__cta.is-error {
	background: var(--wp--preset--color--clay);
}

.rs-buy-block__oos {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	margin: 0;
}

.rs-buy-block__helper {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	margin: 0;
	text-align: center;
}

/* ---------- toast / confirmation dialog ---------- */
.rs-toast {
	border: 0;
	padding: 0;
	background: transparent;
	max-width: 420px;
	width: calc(100% - 32px);
	position: fixed;
	top: 50%;
	left: 50%;
	right: auto;
	bottom: auto;
	margin: 0;
	transform: translate(-50%, -50%);
}

.rs-toast::backdrop {
	background: rgba(42, 37, 32, 0.45);
	backdrop-filter: blur(4px);
}

.rs-toast[open] {
	animation: rs-toast-in 240ms cubic-bezier(0.32, 0.72, 0, 1);
}

@keyframes rs-toast-in {
	from { transform: translate(-50%, calc(-50% + 8px)); opacity: 0; }
	to   { transform: translate(-50%, -50%); opacity: 1; }
}

.rs-toast__form {
	background: var(--wp--preset--color--card-bg);
	border: 1px solid var(--rs-border-soft);
	padding: 32px;
	position: relative;
	margin: 0;
}

.rs-toast__close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 36px;
	height: 36px;
	border-radius: 999px;
	border: 0;
	background: transparent;
	font-size: 24px;
	line-height: 1;
	color: var(--wp--preset--color--ink-mute);
	cursor: pointer;
}

.rs-toast__close:hover,
.rs-toast__close:focus-visible {
	background: rgba(42, 37, 32, 0.06);
	color: var(--wp--preset--color--ink);
}

.rs-toast__eyebrow {
	margin: 0 0 12px;
	color: var(--wp--preset--color--terra) !important;
}

.rs-toast__eyebrow::before {
	display: none;
}

.rs-toast__title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: 36px;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--ink);
	margin: 0 0 16px;
}

.rs-toast__line {
	font-family: var(--wp--preset--font-family--body);
	font-size: 15px;
	line-height: 1.55;
	color: var(--wp--preset--color--ink-soft);
	margin: 0 0 24px;
}

.rs-toast__actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.rs-toast__actions .rs-btn {
	flex: 1;
	text-align: center;
}

/* ---------- mobile sticky buy bar ---------- */
.rs-buy-bar-mobile {
	display: none;
}

@media (max-width: 767px) {
	.rs-product-detail__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.rs-gallery__stage {
		aspect-ratio: 4 / 4.4;
		border-radius: var(--rs-deckle-mobile);
	}

	.rs-gallery__thumbs {
		gap: 8px;
	}

	.rs-buy-block {
		padding: 20px;
	}

	.rs-buy-block__price {
		font-size: 40px;
	}

	.rs-buy-block__form {
		grid-template-columns: 1fr;
	}

	.rs-qty {
		justify-self: start;
	}

	/* Hide the in-flow CTA, show sticky bar instead */
	.rs-buy-block .rs-buy-block__cta {
		/* keep visible too for redundancy; sticky reinforces */
	}

	.rs-buy-bar-mobile {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 60;
		padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
		background: var(--wp--preset--color--cream);
		border-top: 1px solid var(--rs-border-base);
		box-shadow: 0 -8px 24px rgba(42, 37, 32, 0.08);
		gap: 12px;
		align-items: center;
	}

	.rs-buy-bar-mobile .rs-buy-bar-mobile__price {
		font-family: var(--wp--preset--font-family--display);
		font-size: 24px;
		color: var(--wp--preset--color--ink);
		flex: 0 0 auto;
	}

	.rs-buy-bar-mobile .rs-btn {
		flex: 1;
		text-align: center;
	}

	body.rs-has-mobile-buy-bar {
		padding-bottom: 96px;
	}
}

/* ---------- responsive ---------- */
@media (max-width: 1279px) {
	:root {
		--rs-side-pad: 36px;
	}

	.rs-hero-home__grid,
	.rs-story-split,
	.rs-about-body,
	.rs-contact-grid,
	.rs-process-step {
		gap: 48px;
	}

	.rs-product-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.rs-cert-grid-list {
		grid-template-columns: repeat(2, 1fr);
		gap: 32px 0;
	}

	.rs-cert-card:nth-child(3) {
		border-left: 0;
		padding-left: 0;
	}

	.rs-visit-info {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 767px) {
	:root {
		--rs-side-pad: 20px;
	}

	.entry-content > .rs-section:first-child > .rs-section__inner,
	.wp-block-post-content > .rs-section:first-child > .rs-section__inner,
	main > .rs-section:first-child > .rs-section__inner {
		padding-top: 16px !important;
	}

	.rs-deckle img {
		border-radius: var(--rs-deckle-mobile);
		height: 360px;
	}

	.rs-hero-home__grid,
	.rs-story-split,
	.rs-about-body,
	.rs-contact-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.rs-hero-home__image .rs-testimonial-pin {
		position: static;
		margin-top: 16px;
	}

	.rs-stats-strip {
		grid-template-columns: 1fr 1fr;
		gap: 24px;
	}

	.rs-product-grid {
		grid-template-columns: 1fr 1fr;
		gap: 24px;
	}

	.rs-product-card__image img {
		height: 200px;
	}

	.rs-product-card__body {
		padding: 16px 14px 18px;
	}

	.rs-product-card__row {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}

	.rs-product-card__add {
		justify-content: center;
		padding: 10px 12px;
		width: 100%;
	}

	.rs-gift-grid {
		grid-template-columns: 1fr;
	}

	.rs-process-step {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.rs-process-step--image-right .rs-process-step__image {
		order: 0;
	}

	.rs-process-step__image img {
		height: 280px;
	}

	.rs-visit-info {
		grid-template-columns: 1fr;
	}

	.rs-cert-grid-list {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.rs-cert-card,
	.rs-cert-card:nth-child(3) {
		border-left: 0;
		padding-left: 0;
		padding-bottom: 24px;
		border-bottom: 1px solid var(--rs-border-base);
	}

	.rs-cert-card:last-child {
		border-bottom: 0;
		padding-bottom: 0;
	}

	.rs-contact-rows {
		grid-template-columns: 1fr;
	}

	.rs-section-head {
		flex-direction: column;
		align-items: flex-start;
	}
}

/* ---------- global photo filter ---------- */
.rs-photofilter img,
.wp-block-image img.rs-photo,
.is-style-rs-deckle img {
	filter: var(--rs-photo-filter);
}

/* ---------- deckle image ---------- */
.is-style-rs-deckle img {
	border-radius: var(--rs-deckle);
}

@media (max-width: 767px) {
	.is-style-rs-deckle img {
		border-radius: var(--rs-deckle-mobile);
	}
}

/* ---------- MonoLabel ---------- */
.is-style-rs-mono {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	font-weight: 500;
	line-height: 1.4;
	position: relative;
}

.is-style-rs-mono::before {
	content: '—';
	color: inherit;
	position: absolute;
	right: 100%;
	margin-right: 6px;
	top: 0;
}

.is-style-rs-mono.has-terra-color::before {
	color: var(--wp--preset--color--terra);
}

.is-style-rs-mono-plain {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	font-weight: 500;
}

/* ---------- HandNote ---------- */
.is-style-rs-hand {
	font-family: var(--wp--preset--font-family--hand);
	font-size: 22px;
	color: var(--wp--preset--color--terra);
	transform: rotate(-2deg);
	display: inline-block;
	line-height: 1.2;
}

.is-style-rs-hand-pin {
	font-family: var(--wp--preset--font-family--hand);
	font-size: 22px;
	color: var(--wp--preset--color--terra);
	transform: rotate(2deg);
	display: inline-block;
	line-height: 1.2;
}

/* ---------- pill button variants ---------- */
.wp-block-button.is-style-rs-ghost .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--ink);
	border: 1px solid var(--rs-border-firm);
	border-radius: 999px;
	padding: 13px 21px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.04em;
}

.wp-block-button.is-style-rs-ghost .wp-block-button__link:hover,
.wp-block-button.is-style-rs-ghost .wp-block-button__link:focus {
	background: rgba(42, 37, 32, 0.06);
}

/* ---------- chips ---------- */
.is-style-rs-chip {
	display: inline-block;
	padding: 6px 12px;
	border: 1px solid rgba(42, 37, 32, 0.2);
	border-radius: 999px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
	background: transparent;
}

.is-style-rs-chip.is-active,
.is-style-rs-chip:hover {
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--cream);
	border-color: var(--wp--preset--color--forest);
}

/* ---------- card ---------- */
.is-style-rs-card {
	background: var(--wp--preset--color--card-bg);
	border: 1px solid var(--rs-border-soft);
	border-radius: 0;
}

/* ---------- focus rings ---------- */
:where(a, button, input, select, textarea):focus-visible {
	outline: 2px solid var(--wp--preset--color--terra);
	outline-offset: 2px;
	border-radius: 2px;
}

/* ---------- site header ---------- */
.rs-site-header {
	background: var(--wp--preset--color--cream);
	border-bottom: 1px solid var(--rs-border-soft);
	position: sticky;
	top: 0;
	z-index: 50;
}

.rs-site-header__inner {
	max-width: var(--rs-content-max);
	margin: 0 auto;
	padding: 24px var(--rs-side-pad);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: nowrap;
}

.rs-site-header__inner > * { flex-shrink: 0; }
.rs-site-header__inner > .rs-nav { flex-shrink: 1; }

.rs-nav {
	display: flex;
	gap: 32px;
}

.rs-nav a {
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	padding-bottom: 2px;
}

.rs-nav a:hover,
.rs-nav a[aria-current="page"] {
	border-bottom: 1px solid var(--wp--preset--color--ink);
}

.rs-site-header__right {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: nowrap;
}

/* Constrain the Woo mini-cart so it doesn't blow up the header on mobile */
.rs-site-header__right .wp-block-woocommerce-mini-cart,
.rs-site-header__right .wc-block-mini-cart {
	margin: 0;
	padding: 0;
}

.rs-site-header__right .wc-block-mini-cart__button {
	padding: 0;
	background: transparent;
	border: 0;
	min-width: 0;
}

.rs-locale {
	user-select: none;
	display: inline-block;
}

.rs-hamburger {
	display: none;
	width: 36px;
	height: 36px;
	border-radius: 999px;
	border: 1px solid var(--rs-border-firm);
	background: transparent;
	cursor: pointer;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	padding: 0;
}

.rs-hamburger span {
	display: block;
	width: 14px;
	height: 1px;
	background: var(--wp--preset--color--ink);
	transition: transform 200ms ease, opacity 200ms ease;
}

.rs-hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
.rs-hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.rs-hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }

.rs-mobile-nav {
	display: none;
	flex-direction: column;
	padding: 16px var(--rs-side-pad) 32px;
	border-top: 1px solid var(--rs-border-soft);
	background: var(--wp--preset--color--cream);
}

.rs-mobile-nav a {
	display: block;
	padding: 14px 0;
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-size: 24px;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	border-bottom: 1px solid var(--rs-border-soft);
}

.rs-mobile-nav a:hover,
.rs-mobile-nav a[aria-current="page"] {
	color: var(--wp--preset--color--terra);
}

.rs-mobile-nav[data-rs-mobile-nav]:not([hidden]) {
	display: flex;
}

@media (max-width: 1023px) {
	.rs-nav { display: none; }
	.rs-hamburger { display: inline-flex; }
	.rs-locale { display: none; }
}

@media (max-width: 767px) {
	.rs-wordmark { gap: 10px; }
	.rs-wordmark img.rs-wordmark__mark { height: 44px; }
	.rs-wordmark__name { font-size: 19px; }
	.rs-wordmark__sub { display: none; }
}

.rs-wordmark {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	line-height: 1;
}

.rs-wordmark img.rs-wordmark__mark {
	height: 56px;
	width: auto;
	max-width: none;
	display: block;
	flex-shrink: 0;
}

.rs-wordmark__text {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.rs-wordmark__name {
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-weight: 400;
	font-size: 22px;
	letter-spacing: -0.01em;
	line-height: 1;
}

.rs-wordmark__sub {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 9.5px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(42, 37, 32, 0.55);
	line-height: 1;
}

.rs-wordmark--accent {
	color: var(--wp--preset--color--terra);
}

/* ---------- site footer ---------- */
.rs-site-footer {
	background: var(--wp--preset--color--parchment);
	color: var(--wp--preset--color--ink);
	padding: 64px;
	margin-top: 80px;
	border-top: 1px solid rgba(42, 37, 32, 0.18);
}

.rs-site-footer a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
	opacity: 0.85;
	display: block;
	font-size: 14px;
	line-height: 1.95;
}

.rs-site-footer a:hover {
	opacity: 1;
	color: var(--wp--preset--color--terra);
}

.rs-site-footer__grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr;
	gap: 48px;
}

.rs-site-footer__brand {
	display: block;
}

.rs-site-footer__wordmark {
	display: flex;
	align-items: center;
	gap: 14px;
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-weight: 400;
	font-size: 32px;
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin-bottom: 16px;
	color: var(--wp--preset--color--ink);
}

.rs-site-footer img.rs-site-footer__mark {
	height: 56px;
	width: auto;
	max-width: none;
	display: block;
	flex-shrink: 0;
}

.rs-site-footer__wordmark > span span {
	color: var(--wp--preset--color--terra);
}

.rs-site-footer__intro {
	font-size: 13px;
	line-height: 1.7;
	max-width: 360px;
	color: rgba(42, 37, 32, 0.7);
	margin: 0 0 22px;
}

.rs-site-footer__chip {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 8px 14px;
	border-radius: 999px;
	background: rgba(42, 37, 32, 0.08);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink);
}

.rs-site-footer__col h4 {
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-weight: 400;
	font-size: 14px;
	margin: 0 0 16px;
	color: rgba(42, 37, 32, 0.55);
}

.rs-site-footer__rule {
	height: 1px;
	background: rgba(42, 37, 32, 0.18);
	margin: 44px 0 22px;
}

.rs-site-footer__legal {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	font-size: 12px;
	color: rgba(42, 37, 32, 0.55);
	flex-wrap: wrap;
}

.rs-site-footer__hand {
	font-family: var(--wp--preset--font-family--hand);
	font-size: 16px;
	color: var(--wp--preset--color--terra);
}

/* ---------- stat tile ---------- */
.rs-stat-tile {
	padding: 24px 0;
}

.rs-stat-tile .rs-stat-key {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	margin-bottom: 12px;
}

.rs-stat-tile .rs-stat-value {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: 56px;
	letter-spacing: -0.02em;
	line-height: 1;
	color: var(--wp--preset--color--ink);
	margin: 0 0 8px;
}

.rs-stat-tile .rs-stat-sub {
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	color: var(--wp--preset--color--ink-mute);
}

/* ---------- testimonial note ---------- */
.rs-testimonial-pin {
	background: var(--wp--preset--color--card-bg);
	border: 1px solid var(--rs-border-soft);
	padding: 24px 28px;
	max-width: 320px;
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-size: 18px;
	line-height: 1.3;
	transform: rotate(2deg);
}

.rs-testimonial-pin .rs-testimonial-attr {
	font-style: normal;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	display: block;
	margin-top: 16px;
}

/* ---------- process step children (used by new .rs-process-step grid above) ---------- */
.rs-process-step .rs-step-number {
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-weight: 400;
	font-size: 80px;
	color: var(--wp--preset--color--terra);
	line-height: 1;
	margin-bottom: 16px;
}

.rs-process-step .rs-step-title {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: 48px;
	line-height: 1;
	letter-spacing: -0.02em;
	color: var(--wp--preset--color--ink);
	margin: 0 0 20px;
}

/* ---------- certification card children (grid layout is up top) ---------- */
.rs-cert-card .rs-cert-numeral {
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-weight: 400;
	font-size: 64px;
	color: var(--wp--preset--color--terra);
	line-height: 1;
	margin-bottom: 24px;
}

.rs-cert-card .rs-cert-name {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: 26px;
	line-height: 1.1;
	letter-spacing: -0.015em;
	color: var(--wp--preset--color--ink);
	margin: 0 0 12px;
}

.rs-cert-card .rs-cert-body {
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-mute);
}

/* ---------- gift card ---------- */
.rs-gift-card {
	background: var(--wp--preset--color--card-bg);
	border: 1px solid var(--rs-border-soft);
	display: flex;
	flex-direction: column;
}

.rs-gift-card img {
	width: 100%;
	height: 260px;
	object-fit: cover;
}

.rs-gift-card .rs-gift-body {
	padding: 24px 24px 28px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1;
}

.rs-gift-card .rs-gift-name {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: 28px;
	letter-spacing: -0.015em;
	line-height: 1.1;
	margin: 0;
}

.rs-gift-card .rs-gift-sub {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
}

.rs-gift-card .rs-gift-contents {
	font-family: var(--wp--preset--font-family--body);
	font-size: 14px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink-mute);
}

.rs-gift-card .rs-gift-price {
	font-family: var(--wp--preset--font-family--display);
	font-weight: 400;
	font-size: 32px;
	color: var(--wp--preset--color--ink);
	margin: 8px 0 4px;
}

/* ---------- hours table ---------- */
.rs-hours-table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--wp--preset--font-family--body);
	font-size: 15px;
}

.rs-hours-table td {
	padding: 12px 0;
	border-bottom: 1px solid var(--rs-border-base);
	color: var(--wp--preset--color--ink-soft);
}

.rs-hours-table td:last-child {
	text-align: right;
}

.rs-hours-table tr.is-closed td {
	color: var(--wp--preset--color--ink-faint);
}

/* ---------- map ---------- */
.rs-map {
	width: 100%;
	min-height: 420px;
	background: var(--wp--preset--color--parchment);
	border: 1px solid var(--rs-border-base);
	position: relative;
	margin-top: 48px;
}

@media (max-width: 767px) {
	.rs-map { min-height: 320px; }
}

.rs-map-pincard {
	background: var(--wp--preset--color--card-bg);
	border: 1px solid var(--rs-border-soft);
	padding: 20px 28px;
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-size: 20px;
	color: var(--wp--preset--color--ink);
	text-align: center;
}

.rs-map-pincard .rs-map-pincard-sub {
	display: block;
	font-style: normal;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	margin-top: 8px;
}

/* ---------- contact form (CF7) ---------- */
.wpcf7 {
	background: var(--wp--preset--color--card-bg);
	border: 1px solid var(--rs-border-soft);
	padding: 32px;
}

.wpcf7 label {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint);
	display: block;
	margin-top: 24px;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 textarea {
	width: 100%;
	border: 0;
	border-bottom: 1px solid var(--rs-border-firm);
	background: transparent;
	padding: 8px 0;
	font-family: var(--wp--preset--font-family--body);
	font-size: 16px;
	color: var(--wp--preset--color--ink);
	margin-top: 8px;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus {
	outline: none;
	border-bottom-color: var(--wp--preset--color--terra);
}

.wpcf7 input[type="submit"] {
	margin-top: 32px;
	background: var(--wp--preset--color--terra);
	color: var(--wp--preset--color--cream);
	border: 0;
	border-radius: 999px;
	padding: 14px 22px;
	font-family: var(--wp--preset--font-family--body);
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0.04em;
	cursor: pointer;
}

.wpcf7 input[type="submit"]:hover {
	background: var(--wp--preset--color--terra-dark);
}

/* ---------- WooCommerce overrides (light touch) ---------- */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.wc-block-grid__product-title,
.wc-block-components-product-name {
	font-family: var(--wp--preset--font-family--display) !important;
	font-size: 24px !important;
	font-weight: 400 !important;
	letter-spacing: -0.015em !important;
	line-height: 1.1 !important;
	color: var(--wp--preset--color--ink) !important;
}

.woocommerce ul.products li.product .price,
.wc-block-components-product-price {
	font-family: var(--wp--preset--font-family--display) !important;
	font-size: 20px !important;
	font-weight: 400 !important;
	color: var(--wp--preset--color--ink) !important;
}

.woocommerce-breadcrumb {
	font-family: var(--wp--preset--font-family--mono) !important;
	font-size: 11px !important;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-faint) !important;
}

/* ---------- breakpoints ---------- */
@media (max-width: 1279px) {
	.rs-site-header,
	.rs-site-footer,
	.rs-cert-grid {
		padding-left: 36px;
		padding-right: 36px;
	}

	.rs-site-footer__grid {
		grid-template-columns: 1fr 1fr;
		gap: 40px;
	}

	.rs-site-footer__brand {
		grid-column: 1 / -1;
	}
}

@media (max-width: 767px) {
	.rs-site-header,
	.rs-site-footer,
	.rs-cert-grid {
		padding-left: 20px;
		padding-right: 20px;
	}

	.rs-site-footer {
		padding-top: 48px;
		padding-bottom: 32px;
	}

	.rs-site-footer__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.rs-site-footer__wordmark {
		font-size: 26px;
	}

	.rs-site-footer__legal {
		flex-direction: column;
		gap: 8px;
	}
}
