/*
Theme Name: Regions
Theme URI: https://regionscoffeesupply.com
Author: Regions Coffee Supply
Description: The Regions Coffee Supply theme. Specialty coffee, organized by where it grows.
Version: 0.9.2
Requires at least: 6.6
Requires PHP: 8.0
Text Domain: regions
License: GNU General Public License v2 or later
*/

/* ---------- Tokens ---------- */
:root {
	--rc-highland: #1E3B30;
	--rc-cherry: #B3262E;
	--rc-cherry-bright: #E0484F;
	--rc-mist: #F3F5F0;
	--rc-paper: #F7F7F2;
	--rc-cream: #F1EFE6;
	--rc-night: #16231C;
	--rc-muted: #56655B;
	--rc-line: #D5DBD1;
	--rc-ridge-1: #BFC6C0;
	--rc-ridge-2: #8B9991;
	--rc-ridge-3: #566C62;
	--rc-radius: 12px;
	--rc-display: "Archivo", "Helvetica Neue", Arial, sans-serif;
	--rc-mono: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;
}

/* ---------- Base ---------- */
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
h1, h2, h3, h4, .wp-block-post-title, .wp-block-query-title { font-variation-settings: "wdth" 106; text-wrap: balance; }
p, li { text-wrap: pretty; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
	outline: 2px solid var(--rc-cherry); outline-offset: 3px; border-radius: 4px;
}
img { max-width: 100%; height: auto; }
.rc-eyebrow {
	font-family: var(--rc-mono); font-weight: 500; font-size: 0.75rem; letter-spacing: 0.16em;
	text-transform: uppercase; color: var(--rc-cherry); margin: 0;
}
.rc-condensed { font-family: var(--rc-display); font-weight: 800; font-variation-settings: "wdth" 62; text-transform: uppercase; letter-spacing: 0.03em; }
.rc-muted { color: var(--rc-muted); }
.rc-main { padding-bottom: clamp(3rem, 7vw, 5rem); }

/* ---------- Announcement + header ---------- */
.rc-announce { background: var(--rc-highland); color: var(--rc-cream); }
.rc-announce p { margin: 0; padding: 0.55rem 0; font-size: 0.8rem; letter-spacing: 0.02em; }
.rc-header-wrap { background: var(--rc-paper); border-bottom: 1px solid var(--rc-line); position: sticky; top: 0; z-index: 50; }
.admin-bar .rc-header-wrap { top: var(--wp-admin--admin-bar--height, 32px); }
.rc-header { max-width: 1200px; margin-inline: auto; padding-block: 0.85rem; gap: 1.5rem; }
.rc-logo { display: block; line-height: 0; flex: none; }
.rc-logo img { height: 46px; width: auto; }
.rc-nav { flex: 1 1 auto; }
.rc-nav .wp-block-navigation-item__content { color: var(--rc-night); text-decoration: none; }
.rc-nav .wp-block-navigation-item__content:hover { color: var(--rc-cherry); }
.rc-nav .wp-block-navigation__submenu-container { border: 1px solid var(--rc-line) !important; border-radius: 10px; padding: 0.4rem 0 !important; background: var(--rc-paper) !important; box-shadow: 0 16px 34px -20px rgba(22, 35, 28, 0.35); }
.rc-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.45rem 1rem; font-weight: 500; }
.rc-header-tools { gap: 0.9rem; flex: none; }
.rc-header-tools .wp-block-search__button { background: transparent; color: var(--rc-night); border: 0; padding: 0.35rem; }
.rc-header-tools .wc-block-mini-cart__button, .rc-header-tools .wc-block-customer-account a { color: var(--rc-night); }
.rc-header-tools .wc-block-mini-cart__badge { background: var(--rc-cherry); color: #fff; }

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

/* ---------- Coffee belt map ---------- */

/* The map image (Natural Earth land, equirectangular, 120°W–160°E, 40°N–35°S) draws the band and the tropic and equator lines. */

/* ---------- Region cards ---------- */

/* Phones: compact cards with the photo on the left. The credits line under the cards covers attribution. */

/* ---------- Why Regions ---------- */

/* ---------- Field Notes band ---------- */

/* ---------- WooCommerce: product grids ---------- */
.woocommerce ul.products, .woocommerce-page ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin: 0 0 1.5rem !important; padding: 0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1000px) { .woocommerce ul.products, .woocommerce ul.products.columns-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .woocommerce ul.products, .woocommerce ul.products.columns-3 { grid-template-columns: minmax(0, 1fr); } }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; background: var(--rc-paper); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); padding: 0.9rem 0.9rem 1.1rem; display: flex; flex-direction: column; }
.woocommerce ul.products li.product a img { border-radius: 8px; margin-bottom: 0.8rem; background: var(--rc-cream); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--rc-display); font-weight: 800; font-variation-settings: "wdth" 100; font-size: 1.1rem !important; color: var(--rc-highland); padding: 0 !important; margin: 0 0 0.25rem; }
.woocommerce ul.products li.product .price { color: var(--rc-night) !important; font-weight: 600; font-size: 1rem !important; margin-top: auto !important; padding-top: 0.4rem; }
.woocommerce ul.products li.product .button { margin-top: 0.75rem !important; }
.rc-loop-origin { font-family: var(--rc-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rc-muted); margin: 0 0 0.35rem; }
.rc-loop-notes { font-size: 0.88rem; color: var(--rc-muted); margin: 0; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.wc-block-components-button:not(.is-link) {
	background: var(--rc-cherry) !important; color: #fff !important; border-radius: 8px !important; font-weight: 600 !important; border: 0 !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .wc-block-components-button:not(.is-link):hover { background: var(--rc-highland) !important; }
.woocommerce span.onsale { background: var(--rc-cherry); }
.woocommerce .woocommerce-breadcrumb { font-family: var(--rc-mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rc-muted); margin: 1.5rem 0 1rem; }
.woocommerce .woocommerce-breadcrumb a { color: var(--rc-muted); text-decoration: none; }
.woocommerce-products-header__title { margin: 0.5rem 0 0.5rem; font-size: var(--wp--preset--font-size--xx-large); }
.woocommerce .term-description { max-width: 46rem; color: var(--rc-muted); font-size: 1.05rem; margin-bottom: 1.5rem; }
.woocommerce .woocommerce-result-count { color: var(--rc-muted); font-size: 0.9rem; }
.woocommerce .woocommerce-ordering select { border: 1px solid var(--rc-line); border-radius: 8px; padding: 0.45rem 0.6rem; background: var(--rc-paper); }
.woocommerce-info, .woocommerce-message, .woocommerce-error { border-top-color: var(--rc-highland) !important; background: var(--rc-paper) !important; }
.woocommerce-info::before, .woocommerce-message::before { color: var(--rc-highland) !important; }

/* ---------- WooCommerce: single product ---------- */
.rc-product .woocommerce div.product, .woocommerce div.product { margin-top: 0.5rem; }
.woocommerce div.product div.images img { border-radius: var(--rc-radius); background: var(--rc-cream); }
.woocommerce div.product .product_title { font-size: var(--wp--preset--font-size--xx-large); margin-bottom: 0.4rem; font-variation-settings: "wdth" 106; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--rc-night) !important; font-weight: 600; font-size: 1.35rem !important; }
.woocommerce div.product form.cart .button { padding: 0.9rem 1.6rem !important; font-size: 1rem !important; }
.woocommerce div.product form.cart div.quantity .qty { border: 1px solid var(--rc-line); border-radius: 8px; padding: 0.6rem; width: 4.2rem; }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0 !important; border-bottom: 1px solid var(--rc-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent !important; border: 0 !important; border-radius: 0 !important; margin: 0 1.2rem 0 0 !important; padding: 0 !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-weight: 600; color: var(--rc-muted); padding: 0.7rem 0 !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--rc-highland); box-shadow: inset 0 -2px 0 var(--rc-cherry); }
.woocommerce table.shop_attributes { border-top: 1px solid var(--rc-line); }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { border-bottom: 1px solid var(--rc-line); background: transparent !important; padding: 0.6rem 0.8rem; font-style: normal; }
.related.products > h2, .upsells.products > h2 { font-size: var(--wp--preset--font-size--x-large); margin-top: 2.5rem; }

/* ---------- Origin card ---------- */
.rc-origin { background: var(--rc-paper); border: 1px solid var(--rc-line); border-radius: 14px; padding: 1.2rem 1.25rem 1.1rem; margin: 1.25rem 0 1.5rem; box-shadow: 0 10px 30px -18px rgba(16, 30, 22, 0.25); }
.rc-origin-top { display: flex; justify-content: space-between; gap: 0.75rem; font-family: var(--rc-mono); font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rc-muted); }
.rc-origin-place { margin: 0.55rem 0 0.7rem; font-family: var(--rc-display); font-weight: 800; font-variation-settings: "wdth" 100; font-size: 1.2rem; color: var(--rc-highland); }
.rc-notes { display: flex; flex-wrap: wrap; gap: 0.4rem; list-style: none; padding: 0; margin: 0 0 1rem; }
.rc-notes li { margin: 0; font-size: 0.78rem; font-weight: 600; padding: 0.4rem 0.65rem; border-radius: 999px; background: #E8ECE4; color: var(--rc-highland); }
.rc-alt { margin: 0 0 0.9rem; }
.rc-alt-label { display: flex; justify-content: space-between; font-family: var(--rc-mono); font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rc-muted); margin-bottom: 0.35rem; }
.rc-alt-label b { color: var(--rc-highland); font-weight: 600; }
.rc-alt-bar { position: relative; height: 10px; border-radius: 5px; background: #E1E6DD; }
.rc-alt-band { position: absolute; top: 0; bottom: 0; background: var(--rc-cherry); border-radius: 5px; min-width: 8px; }
.rc-alt-ticks { position: relative; height: 16px; font-family: var(--rc-mono); font-size: 0.62rem; color: #7A877F; }
.rc-alt-ticks span { position: absolute; top: 3px; transform: translateX(-50%); }
.rc-alt-ticks span:first-child { transform: none; }
.rc-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 0.65rem 1rem; margin: 0; padding-top: 0.8rem; border-top: 1px solid #DDE2D8; }
.rc-facts dt { font-family: var(--rc-mono); font-size: 0.64rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rc-muted); }
.rc-facts dd { margin: 0.1rem 0 0; font-weight: 600; font-size: 0.92rem; color: var(--rc-night); }
.rc-roast { display: inline-flex; gap: 3px; vertical-align: 1px; margin-right: 0.4rem; }
.rc-roast i { width: 12px; height: 6px; border-radius: 2px; background: #D3D9CE; }
.rc-roast i.on { background: #6B4A2E; }

/* ---------- Posts and pages ---------- */
.rc-page-head { padding-block: clamp(2rem, 5vw, 3.5rem) 1rem; }
.rc-page-head h1 { margin: 0.4rem 0 0; }
.rc-content { font-size: 1.05rem; }
.rc-content h2 { margin-top: 2.2rem; }
.rc-post-grid .wp-block-post { background: var(--rc-paper); border: 1px solid var(--rc-line); border-radius: var(--rc-radius); padding: 1rem 1rem 1.2rem; }
.rc-post-grid .wp-block-post-featured-image img { border-radius: 8px; }
.rc-post-grid .wp-block-post-title { font-size: 1.2rem; margin: 0.6rem 0 0.4rem; }
.rc-post-grid .wp-block-post-title a { text-decoration: none; color: var(--rc-highland); }
.rc-post-meta { font-family: var(--rc-mono); font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--rc-muted); }
.rc-draft { background: #FFF6E5; border: 1px solid #E8C98A; border-radius: 10px; padding: 0.8rem 1rem; font-size: 0.92rem; color: #6B4A12; }
.rc-faq details { border-bottom: 1px solid var(--rc-line); padding: 0.9rem 0; }
.rc-faq summary { font-weight: 700; cursor: pointer; color: var(--rc-highland); }
.rc-faq details p { margin: 0.6rem 0 0; }

/* ---------- Footer ---------- */
.rc-footer { background: var(--rc-highland); color: #C9D2CB; margin-top: 0; }
.rc-footer-inner { max-width: 1200px; margin-inline: auto; padding-block: clamp(2.5rem, 6vw, 4rem) 1.5rem; display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(4, minmax(0, 1fr)); gap: 2rem; }
.rc-footer img { height: 54px; width: auto; }
.rc-footer p { margin: 0.8rem 0 0; font-size: 0.92rem; max-width: 22rem; }
.rc-footer h4 { color: var(--rc-cream); font-family: var(--rc-mono); font-weight: 600; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; margin: 0.3rem 0 0.8rem; font-variation-settings: normal; }
.rc-footer ul { list-style: none; padding: 0; margin: 0; }
.rc-footer li { margin: 0 0 0.45rem; }
.rc-footer a { color: var(--rc-cream); text-decoration: none; font-size: 0.92rem; }
.rc-footer a:hover { color: #fff; text-decoration: underline; }
.rc-footer-base { max-width: 1200px; margin-inline: auto; border-top: 1px solid rgba(241, 239, 230, 0.15); padding-block: 1.1rem 1.6rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 1.5rem; font-size: 0.8rem; }
@media (max-width: 900px) { .rc-footer-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rc-footer-brand { grid-column: 1 / -1; } }

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

/* ---------- Home layout ---------- */
.rc-home > * { padding-inline: clamp(1rem, 4vw, 2rem); }

/* ---------- Page frame ---------- */
*, *::before, *::after { box-sizing: border-box; }
:root { --rc-gutter: clamp(1rem, 4vw, 2rem); --rc-announce-h: 2.25rem; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.rc-site-header { position: sticky; top: calc(-1 * var(--rc-announce-h)); z-index: 50; }
.admin-bar .rc-site-header { top: calc(var(--wp-admin--admin-bar--height, 32px) - var(--rc-announce-h)); }
@media (max-width: 600px) { .admin-bar .rc-site-header { top: calc(-1 * var(--rc-announce-h)); } }
.rc-site-header > * { margin-block: 0; }
.rc-announce { height: var(--rc-announce-h); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.rc-announce p { padding: 0; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rc-header-wrap { position: static; padding-inline: var(--rc-gutter); }
.rc-footer-shell { padding-inline: var(--rc-gutter); }
.rc-home > * { box-sizing: content-box; padding-inline: var(--rc-gutter); margin-block: 0; }
.rc-empty { color: var(--rc-muted); background: var(--rc-paper); border: 1px dashed var(--rc-line); border-radius: var(--rc-radius); padding: 1.1rem 1.25rem; margin: 0; }
@media (max-width: 600px) {
	.rc-logo img { height: 38px; }
	.rc-header { gap: 0.75rem; }
	.rc-header-tools { gap: 0.4rem; }
}

/* ---------- Placeholders to confirm before launch ---------- */
mark.rc-tbc { background: #FFE9B8; color: #6B4A12; border-radius: 4px; padding: 0 0.3em; font-size: 0.85em; font-family: var(--rc-mono); letter-spacing: 0.02em; }
.rc-content .rc-draft { margin-bottom: 1.5rem; }
.rc-content .wp-block-details { border-bottom: 1px solid var(--rc-line); padding: 0.95rem 0; }
.rc-content .wp-block-details summary { font-weight: 700; color: var(--rc-highland); cursor: pointer; }
.rc-content .wp-block-details p { margin: 0.6rem 0 0; }

/* ---------- Review fixes (0.1.1) ---------- */
/* Section dividers line up with the content, not the gutters. */

/* Coffee belt on small screens: short names, no overlapping labels. */

/* Phones: the map is too short for labels, so pins become dots. Their names stay readable to screen readers. */

/* Phone header: logo left, tools and menu button right. */
@media (max-width: 599px) {
	.rc-nav { flex: 0 0 auto; order: 3; }
	.rc-header-tools { margin-left: auto; }
}

/* Phone menu overlay. */
.rc-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--rc-paper) !important; color: var(--rc-night) !important; padding: 1rem var(--rc-gutter) 2rem !important; }
.rc-nav .is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start !important; padding-top: 3rem !important; }
.rc-nav .is-menu-open .wp-block-navigation__container,
.rc-nav .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; width: 100%; }
.rc-nav .is-menu-open .wp-block-navigation__container { gap: 0.4rem !important; }
.rc-nav .is-menu-open .wp-block-navigation-item__content { font-family: var(--rc-display); font-weight: 800; font-variation-settings: "wdth" 100; font-size: 1.6rem; color: var(--rc-highland) !important; padding: 0.2rem 0 !important; }
.rc-nav .is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none !important; background: transparent !important; padding: 0.2rem 0 0.6rem !important; gap: 0.1rem !important; }
.rc-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-family: inherit; font-weight: 500; font-size: 1.05rem; color: var(--rc-night) !important; padding: 0.3rem 0 !important; }
.rc-nav .wp-block-navigation__responsive-container-close { top: 1rem; right: var(--rc-gutter); }

/* FAQ: plus/minus instead of the default triangle. */
.rc-content .wp-block-details summary { list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.rc-content .wp-block-details summary::-webkit-details-marker { display: none; }
.rc-content .wp-block-details summary::after { content: "+"; font-family: var(--rc-mono); font-weight: 600; color: var(--rc-cherry); }
.rc-content .wp-block-details[open] summary::after { content: "\2013"; }

/* WooCommerce notices in brand colors. */
.wc-block-components-notice-banner { border-radius: var(--rc-radius) !important; }
.wc-block-components-notice-banner.is-info { background: var(--rc-paper) !important; border-color: var(--rc-line) !important; color: var(--rc-night) !important; }
.wc-block-components-notice-banner.is-info > svg { background: var(--rc-highland) !important; }
.woocommerce div.product .woocommerce-Tabs-panel { max-width: 760px; font-size: 1.02rem; }
.woocommerce div.product .woocommerce-Tabs-panel h2 { font-size: var(--wp--preset--font-size--x-large); margin: 1.6rem 0 0.5rem; }

/* ---------- Phase 3: products and guides ---------- */
.rc-coming-soon { font-family: var(--rc-mono); font-size: 0.78rem !important; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rc-cherry); font-weight: 600; }
.woocommerce div.product p.price .rc-coming-soon { font-size: 0.9rem !important; }
.rc-soon-note { background: var(--rc-paper); border: 1px dashed var(--rc-ridge-1); border-radius: 10px; padding: 0.85rem 1rem; font-size: 0.95rem; margin: 0 0 1.25rem; }

/* Region and roast chips on collection pages */
.rc-chips { display: flex; flex-wrap: wrap; gap: 0.6rem 1.75rem; margin: 0.5rem 0 1.75rem; }
.rc-chip-group { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem; }
.rc-chips-label { font-family: var(--rc-mono); font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rc-muted); margin-right: 0.2rem; }
.rc-chip { display: inline-block; padding: 0.38rem 0.8rem; border: 1px solid var(--rc-line); border-radius: 999px; background: var(--rc-paper); color: var(--rc-night); text-decoration: none; font-size: 0.86rem; font-weight: 600; }
.rc-chip:hover { border-color: var(--rc-highland); color: var(--rc-highland); }
.rc-chip.is-current { background: var(--rc-highland); border-color: var(--rc-highland); color: #fff; }
@media (max-width: 600px) { .rc-chip-group { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 0.2rem; scrollbar-width: none; } .rc-chip { white-space: nowrap; } }

/* Guides */
.rc-post-meta { gap: 0.25rem 0.6rem; align-items: baseline; margin-top: 0.6rem; }
.rc-post-meta > * + *::before { content: "\00B7"; margin-right: 0.6rem; color: var(--rc-ridge-2); }
.rc-byline::before { content: "By "; }
.rc-post-meta > .rc-byline + *::before { content: "\00B7"; }
.rc-updated time::before { content: "Updated "; }
.rc-disclosure { font-size: 0.85rem; color: var(--rc-muted); border-left: 3px solid var(--rc-line); padding-left: 0.85rem; }
.rc-shop-link a { display: inline-block; font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--rc-cherry); padding-bottom: 1px; }
.rc-shop-link a::after { content: " \2197"; font-size: 0.85em; }
.rc-content .rc-inline-img img { border-radius: var(--rc-radius); }
.rc-content .wp-block-table { margin: 1.5rem 0; overflow-x: auto; }
.rc-content .wp-block-table table { border-collapse: collapse; width: 100%; min-width: 560px; font-size: 0.92rem; background: var(--rc-paper); border-radius: var(--rc-radius); overflow: hidden; }
.rc-content .wp-block-table th { text-align: left; font-family: var(--rc-mono); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rc-muted); background: #E8ECE4; }
.rc-content .wp-block-table th, .rc-content .wp-block-table td { padding: 0.65rem 0.8rem; border-bottom: 1px solid var(--rc-line); vertical-align: top; }
.rc-content .wp-block-table td:first-child { font-weight: 700; color: var(--rc-highland); }
.rc-content .wp-block-table figcaption { font-size: 0.85rem; color: var(--rc-muted); margin-top: 0.5rem; }
.rc-content ol.wp-block-list li, .rc-content ul.wp-block-list li { margin-bottom: 0.4rem; }
.wp-block-post-featured-image img { border-radius: var(--rc-radius); }
/* Not for sale yet: a quiet outline button instead of the red buy button. */
.woocommerce ul.products li.product a.button:not(.add_to_cart_button) { background: transparent !important; color: var(--rc-highland) !important; box-shadow: inset 0 0 0 1.5px var(--rc-highland); }
.woocommerce ul.products li.product a.button:not(.add_to_cart_button):hover { background: var(--rc-highland) !important; color: #fff !important; }
.rc-content .wp-block-table thead { border-bottom: 0; }
.rc-content .wp-block-table table th, .rc-content .wp-block-table table td { border: 0; border-bottom: 1px solid var(--rc-line); }
.rc-content .wp-block-table table tr:last-child td { border-bottom: 0; }
.rc-content .wp-block-table table { border: 1px solid var(--rc-line); border-collapse: separate; border-spacing: 0; }

/* ---------- Cart and checkout ---------- */
.rc-checkout-bar { background: var(--rc-paper); border-bottom: 1px solid var(--rc-line); padding-inline: var(--rc-gutter); }
.rc-checkout-header { max-width: 1200px; margin-inline: auto; padding-block: 0.85rem; }
.rc-secure { margin: 0; font-family: var(--rc-mono); font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rc-muted); }
.rc-secure::before { content: ""; display: inline-block; width: 0.7rem; height: 0.8rem; margin-right: 0.45rem; vertical-align: -1px; background: var(--rc-highland); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M3 7V5a4 4 0 0 1 8 0v2h1a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1zm2 0h4V5a2 2 0 0 0-4 0z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 16'%3E%3Cpath d='M3 7V5a4 4 0 0 1 8 0v2h1a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1zm2 0h4V5a2 2 0 0 0-4 0z'/%3E%3C/svg%3E") center / contain no-repeat; }
.rc-checkout { padding-top: clamp(1.25rem, 3vw, 2.5rem); }
.rc-cart .rc-page-head, .rc-checkout .rc-page-head { padding-bottom: 0.25rem; }
.wc-block-components-text-input input[type], .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-textarea { border-radius: 8px !important; border-color: #C3CCC0 !important; background-color: #fff !important; }
.wc-block-components-text-input input[type]:focus, .wc-block-components-combobox .wc-block-components-combobox-control input:focus { border-color: var(--rc-highland) !important; box-shadow: 0 0 0 1px var(--rc-highland) !important; }
.wc-block-components-checkout-step__title, .wc-block-cart__totals-title, .wc-block-components-order-summary__button-text { font-family: var(--rc-display) !important; font-weight: 800 !important; color: var(--rc-highland); text-transform: none !important; letter-spacing: 0 !important; }
.wc-block-checkout__sidebar .wc-block-components-panel, .wp-block-woocommerce-checkout-order-summary-block { background: var(--rc-paper); border-radius: var(--rc-radius); border-color: var(--rc-line) !important; }
.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option { border-radius: 10px !important; }
.wc-block-components-checkbox .wc-block-components-checkbox__input[type=checkbox]:checked { background: var(--rc-highland); border-color: var(--rc-highland); }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value, .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-weight: 800; color: var(--rc-highland); }

/* ---------- 0.4.0: accessibility ---------- */
.rc-footer h2.rc-footer-h { color: var(--rc-cream); font-family: var(--rc-mono); font-weight: 600; font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; margin: 0.3rem 0 0.8rem; font-variation-settings: normal; text-wrap: initial; }

.rc-alt-ticks { color: #64716A; }

/* ==========================================================================
   Homepage (0.6.0): full-bleed hero, coffee-belt globe, photo region cards,
   coffee shelf. Classes start with rh-. The body gets .rc-front on this page.
   ========================================================================== */
:root { --rh-night: #0E1813; --rh-blush: #F38C90; --rh-cherry-hi: #E0484F; --rh-sage: #A6BE98; --rh-max: calc(1200px + 2 * var(--rc-gutter)); }
.rc-home > .rh-block { padding-inline: 0; box-sizing: border-box; max-width: none; }
.rh-wrap { max-width: var(--rh-max); margin-inline: auto; padding-inline: var(--rc-gutter); box-sizing: border-box; }
.rh-eyebrow { font-family: var(--rc-mono); font-weight: 600; font-size: 0.74rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--rc-cherry); margin: 0 0 0.9rem; }
.rh-eyebrow.rh-on-dark { color: var(--rh-blush); }
.rh-block h2 { font-family: var(--rc-display); font-size: clamp(2rem, 4.4vw, 3.4rem); font-weight: 800; font-variation-settings: "wdth" 112; line-height: 1.04; letter-spacing: -0.01em; margin: 0; color: var(--rc-night); text-wrap: balance; }
.rh-block h2 em { font-style: normal; color: var(--rh-blush); }
.rh-arrow { font-weight: 700; text-decoration: none; white-space: nowrap; color: var(--rc-highland); }
.rh-arrow::after { content: " \2192"; display: inline-block; transition: transform 0.2s ease; }
.rh-arrow:hover::after { transform: translateX(4px); }
.rh-arrow.rh-on-dark { color: var(--rh-blush); }
.rh-btns { display: flex; flex-wrap: wrap; gap: 0.8rem; }
.rh-btn { display: inline-flex; align-items: center; padding: 0.95rem 1.5rem; border-radius: 999px; font-weight: 700; font-size: 1rem; line-height: 1; text-decoration: none; transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease; }
.rh-btn:hover { transform: translateY(-2px); }
.rh-btn-cherry { background: var(--rc-cherry); color: #fff; }
.rh-btn-cherry:hover { background: #9C1F27; color: #fff; }
.rh-btn-ghost { border: 1.5px solid rgba(255, 255, 255, 0.75); color: #fff; }
.rh-btn-ghost:hover { background: #fff; color: var(--rc-night); }

/* Header over the hero */
.rc-front .rc-site-header { position: fixed; top: 0; left: 0; right: 0; }
.admin-bar.rc-front .rc-site-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar.rc-front .rc-site-header { top: 0; } }
.rc-front .rc-announce { display: none; }
.rc-front .rc-main { padding-bottom: 0; }
.rc-front .rc-header-wrap { transition: background-color 0.3s ease, border-color 0.3s ease; }
.rc-front .rc-site-header:not(.is-solid) .rc-header-wrap { background: transparent; border-bottom-color: transparent; }
.rc-front .rc-site-header.is-solid .rc-header-wrap { background: rgba(247, 247, 242, 0.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.rc-front .rc-site-header:not(.is-solid) :is(.rc-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content, .rc-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation__submenu-icon, .rc-nav .wp-block-navigation__responsive-container-open, .rc-header-tools .wp-block-search__button, .rc-header-tools .wc-block-mini-cart__button, .rc-header-tools .wc-block-customer-account a) { color: #fff; }
.rc-front .rc-site-header:not(.is-solid) .rc-nav .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content:hover { color: var(--rh-blush); }
.rc-logo .rc-logo-rev { display: none; }
.rc-front .rc-site-header:not(.is-solid) .rc-logo .rc-logo-rev { display: block; }
.rc-front .rc-site-header:not(.is-solid) .rc-logo .rc-logo-color { display: none; }

/* Hero */
.rh-hero { position: relative; min-height: max(640px, 94svh); display: flex; flex-direction: column; justify-content: flex-end; color: #fff; overflow: hidden; background: var(--rh-night); }
.rh-hero picture, .rh-hero-img { position: absolute; inset: 0; width: 100%; height: 100%; }
.rh-hero-img { object-fit: cover; transform: scale(1.05); animation: rh-zoom 14s ease-out forwards; }
@keyframes rh-zoom { to { transform: scale(1); } }
.rh-hero-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 24, 19, 0.6) 0%, rgba(14, 24, 19, 0.05) 28%, rgba(14, 24, 19, 0.25) 55%, rgba(14, 24, 19, 0.92) 100%), linear-gradient(90deg, rgba(14, 24, 19, 0.55), rgba(14, 24, 19, 0) 65%); }
.rh-hero-copy { position: relative; width: 100%; max-width: var(--rh-max); margin: 0 auto; padding: 8rem var(--rc-gutter) 2.5rem; box-sizing: border-box; }
.rh-hero h1 { font-family: var(--rc-display); font-size: clamp(3rem, 8.4vw, 7rem); font-weight: 850; font-variation-settings: "wdth" 118; line-height: 0.95; letter-spacing: -0.01em; max-width: 12ch; margin: 0; color: #fff; text-wrap: balance; }
.rh-hero h1 em { font-style: normal; color: var(--rh-blush); }
.rh-lede { font-size: clamp(1.05rem, 1.6vw, 1.25rem); max-width: 36rem; margin: 1.4rem 0 2rem; color: rgba(255, 255, 255, 0.9); }
.rh-strip { position: relative; border-top: 1px solid rgba(255, 255, 255, 0.18); }
.rh-strip-in { max-width: var(--rh-max); margin: 0 auto; padding: 1.1rem var(--rc-gutter) 1.4rem; box-sizing: border-box; display: grid; grid-template-columns: auto repeat(3, minmax(0, 1fr)) auto; gap: 1.5rem; align-items: center; }
.rh-strip-label { font-family: var(--rc-mono); font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255, 255, 255, 0.78); }
.rh-strip-item { display: flex; gap: 0.85rem; align-items: center; text-decoration: none; color: #fff; padding-left: 1.5rem; border-left: 1px solid rgba(255, 255, 255, 0.14); }
.rh-strip-item:hover .rh-strip-n { text-decoration: underline; }
.rh-thumb { width: 54px; height: 54px; border-radius: 12px; display: grid; place-items: center; flex: none; overflow: hidden; }
.rh-thumb img { height: 46px; width: auto; }
.rh-strip-o { display: block; font-family: var(--rc-mono); font-size: 0.66rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rh-blush); }
.rh-strip-n { display: block; font-weight: 700; line-height: 1.25; }
.rh-strip-t { display: block; font-size: 0.84rem; color: rgba(255, 255, 255, 0.75); }
.rh-strip-all { color: #fff; }
@media (max-width: 980px) {
	.rh-strip-in { grid-template-columns: repeat(3, minmax(230px, 1fr)); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--rc-gutter); scrollbar-width: none; }
	.rh-strip-label, .rh-strip-all { display: none; }
	.rh-strip-item { scroll-snap-align: start; border-left: 0; padding-left: 0; }
}
@media (max-width: 700px) { .rh-hero { min-height: max(600px, 92svh); } .rh-hero-copy { padding-top: 6.5rem; } }

/* Coffee belt and globe */
.rh-belt { position: relative; background: var(--rh-night) url(assets/topo-light.svg) 0 0 / 1000px auto; color: #fff; padding: clamp(4.5rem, 9vw, 7rem) 0 2rem; }
.rh-belt h2 { color: #fff; }
.rh-belt-head { max-width: 46rem; }
.rh-belt-head > p:last-child { color: rgba(255, 255, 255, 0.8); font-size: 1.1rem; margin: 1rem 0 0; }
.rh-scrolly { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(1.5rem, 4vw, 4rem); margin-top: 2rem; }
.rh-chapters { position: relative; z-index: 2; }
.rh-chapter { min-height: 92vh; display: flex; align-items: center; }
.rh-chapter:first-child { min-height: 80vh; }
.rh-card { transition: opacity 0.4s ease, transform 0.4s ease; }
.rh-belt.is-live .rh-chapter:not(.is-active) .rh-card { opacity: 0.32; transform: translateY(8px); }
.rh-ch-num { font-family: var(--rc-mono); font-size: 0.74rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--rh-blush); display: flex; gap: 0.8rem; align-items: center; margin: 0 0 1rem; }
.rh-ch-num::before { content: ""; width: 28px; height: 1.5px; background: currentColor; }
.rh-chapter h3 { font-family: var(--rc-display); font-size: clamp(1.8rem, 3.4vw, 2.7rem); font-weight: 800; font-variation-settings: "wdth" 110; line-height: 1.05; color: #fff; margin: 0 0 0.9rem; }
.rh-chapter p { color: rgba(255, 255, 255, 0.82); margin: 0 0 1.3rem; max-width: 34rem; }
.rh-facts { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.4rem; padding: 0; list-style: none; }
.rh-facts li { font-size: 0.82rem; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 999px; padding: 0.3rem 0.75rem; color: rgba(255, 255, 255, 0.85); margin: 0; }
.rh-facts b { color: #fff; font-weight: 600; }
.rh-ch-coffees { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-bottom: 1.4rem; }
.rh-ch-coffees a { display: flex; align-items: center; gap: 0.6rem; text-decoration: none; color: #fff; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 12px; padding: 0.4rem 0.8rem 0.4rem 0.45rem; font-weight: 600; font-size: 0.9rem; transition: background-color 0.2s ease; }
.rh-ch-coffees a:hover { background: rgba(255, 255, 255, 0.14); }
.rh-b { width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; overflow: hidden; flex: none; }
.rh-b img { height: 30px; width: auto; }
.rh-globe-col { position: relative; }
.rh-globe-sticky { position: sticky; top: 0; height: 100vh; display: flex; align-items: center; justify-content: center; }
.rh-globe { position: relative; width: min(100%, 640px); aspect-ratio: 1; touch-action: pan-y; }
.rh-globe canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.rh-globe-hint { position: absolute; left: 50%; bottom: -0.4rem; transform: translateX(-50%); font-family: var(--rc-mono); font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255, 255, 255, 0.55); white-space: nowrap; opacity: 0; transition: opacity 0.4s ease; }
.rh-globe.is-ready .rh-globe-hint { opacity: 1; }
.rh-pins { position: absolute; inset: 0; }
.rh-pin { position: absolute; left: 0; top: 0; display: flex; align-items: center; gap: 0.45rem; border: 0; background: none; color: #fff; font: 600 0.82rem/1 "Public Sans", sans-serif; padding: 6px; margin: -13px 0 0 -13px; cursor: pointer; transition: opacity 0.2s ease; will-change: transform; }
.rh-pin-dot { position: relative; width: 14px; height: 14px; border-radius: 50%; background: var(--rh-cherry-hi); box-shadow: 0 0 0 3px rgba(224, 72, 79, 0.28), 0 0 14px rgba(224, 72, 79, 0.6); flex: none; }
.rh-pin.is-hot .rh-pin-dot::after { content: ""; position: absolute; inset: -6px; border-radius: 50%; border: 1.5px solid var(--rh-cherry-hi); animation: rh-ping 1.8s ease-out infinite; }
@keyframes rh-ping { from { transform: scale(0.6); opacity: 1; } to { transform: scale(2.1); opacity: 0; } }
.rh-pin-label { background: rgba(14, 24, 19, 0.8); padding: 0.28rem 0.5rem; border-radius: 6px; white-space: nowrap; }
.rh-pin:hover .rh-pin-label, .rh-pin.is-on .rh-pin-label, .rh-pin:focus-visible .rh-pin-label { background: var(--rc-cherry); }
.rh-pin:focus-visible { outline: 2px solid #fff; outline-offset: 2px; border-radius: 8px; }
.rh-pop { position: absolute; left: 0; top: 0; z-index: 5; width: 300px; box-sizing: border-box; background: var(--rc-paper); color: var(--rc-night); border-radius: 16px; padding: 1.1rem 1.1rem 1rem; box-shadow: 0 18px 50px rgba(0, 0, 0, 0.45); opacity: 0; pointer-events: none; transition: opacity 0.18s ease; }
.rh-pop.is-open { opacity: 1; pointer-events: auto; }
.rh-pop-x { position: absolute; right: 0.6rem; top: 0.5rem; border: 0; background: none; font-size: 1.4rem; line-height: 1; color: var(--rc-muted); cursor: pointer; padding: 0.2rem 0.4rem; }
.rh-pop-eyebrow { font-family: var(--rc-mono); font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rc-cherry); margin: 0 0 0.3rem; }
.rh-pop h4 { font-family: var(--rc-display); font-size: 1.3rem; font-weight: 800; font-variation-settings: "wdth" 108; margin: 0 0 0.7rem; padding-right: 1.5rem; color: var(--rc-night); }
.rh-alt { background: var(--rc-cream); border-radius: 10px; padding: 0.6rem 0.7rem 0.5rem; margin-bottom: 0.75rem; }
.rh-alt-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 0.3rem; }
.rh-alt-top b { font-family: var(--rc-display); font-size: 1.05rem; white-space: nowrap; }
.rh-alt-top span { color: var(--rc-muted); font-size: 0.72rem; text-align: right; line-height: 1.3; margin-left: 0.6rem; }
.rh-alt svg { width: 100%; height: auto; display: block; font-family: var(--rc-mono); }
.rh-pop dl { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 0.8rem; margin: 0 0 0.8rem; font-size: 0.84rem; }
.rh-pop dt { color: var(--rc-muted); }
.rh-pop dd { margin: 0; font-weight: 600; }
.rh-pop-sub { font-family: var(--rc-mono); font-size: 0.64rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rc-muted); margin: 0 0 0.4rem; }
.rh-pop ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.rh-pop li { margin: 0; }
.rh-pop li a { display: flex; align-items: center; gap: 0.6rem; text-decoration: none; color: var(--rc-night); border-radius: 10px; padding: 0.25rem; transition: background-color 0.15s ease; }
.rh-pop li a:hover { background: var(--rc-cream); }
.rh-pop .rh-b { width: 38px; height: 38px; }
.rh-pop .rh-b img { height: 34px; }
.rh-pop li b { display: block; font-size: 0.9rem; line-height: 1.2; }
.rh-pop li small { color: var(--rc-muted); font-size: 0.76rem; }
@media (max-width: 900px) {
	.rh-scrolly { display: flex; flex-direction: column; margin-top: 1rem; }
	.rh-globe-col { order: -1; position: sticky; top: 64px; height: 46vh; z-index: 1; }
	.rh-globe-sticky { position: relative; height: 100%; }
	.rh-globe { width: min(100%, calc(46vh - 16px), 460px); }
	.rh-globe-hint { bottom: -1.1rem; }
	.rh-chapters { margin-top: -6vh; }
	.rh-chapter, .rh-chapter:first-child { min-height: 86vh; align-items: flex-end; padding-bottom: 3vh; }
	.rh-card, .rh-belt.is-live .rh-chapter:not(.is-active) .rh-card { background: rgba(14, 24, 19, 0.92); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: var(--rc-radius); padding: 1.1rem 1.1rem 1.15rem; opacity: 1; transform: none; }
	.rh-chapter h3 { font-size: 1.5rem; margin-bottom: 0.5rem; }
	.rh-ch-num { margin-bottom: 0.6rem; }
	.rh-chapter p { font-size: 0.92rem; margin-bottom: 0.9rem; }
	.rh-facts { display: none; }
	.rh-ch-coffees { gap: 0.4rem; margin-bottom: 0.9rem; }
	.rh-ch-coffees a { font-size: 0.82rem; padding: 0.3rem 0.6rem 0.3rem 0.35rem; }
	.rh-ch-coffees .rh-b { width: 28px; height: 28px; }
	.rh-ch-coffees .rh-b img { height: 25px; }
	.rh-pin-label { display: none; }
	.rh-pin.is-on .rh-pin-label, .rh-pin.is-hot .rh-pin-label { display: block; }
	.rh-pop { position: fixed; left: 12px; right: 12px; top: auto; bottom: 12px; width: auto; transform: none !important; z-index: 1000; max-height: 70vh; overflow: auto; }
}

/* Sections */
.rh-section { padding-block: clamp(4.5rem, 9vw, 7.5rem); }
.rh-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem 2rem; margin-bottom: 2.2rem; }
.rh-sub { color: var(--rc-muted); max-width: 34rem; margin: 0.8rem 0 0; font-size: 1.05rem; }

/* Region photo cards */
.rh-regions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.rh-region { position: relative; aspect-ratio: 3 / 4; border-radius: 14px; overflow: hidden; color: #fff; text-decoration: none; isolation: isolate; }
.rh-region img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rh-region::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14, 24, 19, 0) 28%, rgba(14, 24, 19, 0.55) 60%, rgba(14, 24, 19, 0.92) 100%); }
.rh-region:hover img { transform: scale(1.06); }
.rh-region-body { position: absolute; inset: auto 0 0; padding: 1.3rem 1.25rem 1.2rem; }
.rh-c { font-family: var(--rc-mono); font-size: 0.64rem; letter-spacing: 0.13em; text-transform: uppercase; color: rgba(255, 255, 255, 0.85); }
.rh-region h3 { font-family: var(--rc-display); font-size: 1.65rem; font-weight: 800; font-variation-settings: "wdth" 108; line-height: 1.05; color: #fff; margin: 0.35rem 0 0.45rem; }
.rh-region p { margin: 0; font-size: 0.9rem; line-height: 1.45; color: rgba(255, 255, 255, 0.85); max-height: 0; opacity: 0; overflow: hidden; transition: max-height 0.4s ease, opacity 0.3s ease, margin 0.3s ease; }
.rh-region:hover p, .rh-region:focus-visible p { max-height: 5rem; opacity: 1; margin-bottom: 0.6rem; }
@media (hover: none) { .rh-region p { max-height: none; opacity: 1; margin-bottom: 0.6rem; } }
.rh-go { font-weight: 700; font-size: 0.92rem; }
.rh-cr { position: absolute; right: 0.6rem; top: 0.6rem; font-family: var(--rc-mono); font-size: 0.56rem; letter-spacing: 0.04em; line-height: 1.5; color: #fff; background: rgba(14, 24, 19, 0.7); padding: 1px 6px; border-radius: 4px; }
@media (max-width: 980px) { .rh-regions { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
	.rh-regions { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 78%; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--rc-gutter); margin-inline: calc(-1 * var(--rc-gutter)); padding: 0 var(--rc-gutter) 0.5rem; scrollbar-width: none; }
	.rh-region { scroll-snap-align: start; }
}

/* Coffee shelf */
.rh-shelf-sec { background: var(--rc-paper); border-block: 1px solid var(--rc-line); }
.rh-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; }
.rh-chip { border: 1.5px solid var(--rc-line); background: #fff; border-radius: 999px; padding: 0.45rem 1rem; font-weight: 600; font-size: 0.9rem; color: var(--rc-night); text-decoration: none; }
.rh-chip:hover { border-color: var(--rc-night); }
.rh-chip.is-on { background: var(--rc-night); border-color: var(--rc-night); color: #fff; }
.rh-shelf { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.rh-coffee { background: #fff; border: 1px solid var(--rc-line); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; transition: box-shadow 0.25s ease, transform 0.25s ease; }
.rh-coffee[hidden] { display: none; }
.rh-coffee:hover { box-shadow: 0 18px 40px rgba(22, 35, 28, 0.12); transform: translateY(-3px); }
.rh-art { position: relative; height: 290px; display: flex; align-items: flex-end; justify-content: center; padding-bottom: 20px; overflow: hidden; box-sizing: border-box; }
.rh-art img { height: 212px; width: auto; filter: drop-shadow(0 18px 18px rgba(22, 35, 28, 0.28)); transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rh-coffee:hover .rh-art img { transform: translateY(-8px) rotate(-3deg); }
.rh-kind, .rh-soon { position: absolute; top: 1rem; font-family: var(--rc-mono); font-size: 0.64rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 0.25rem 0.55rem; border-radius: 999px; color: var(--rc-night); }
.rh-kind { left: 1rem; background: rgba(255, 255, 255, 0.78); }
.rh-soon { right: 1rem; background: var(--rc-night); color: #fff; }
.rh-coffee-body { padding: 1.1rem 1.2rem 1.25rem; display: flex; flex-direction: column; gap: 0.55rem; flex: 1; }
.rh-o { font-family: var(--rc-mono); font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rc-muted); }
.rh-coffee h3 { font-family: var(--rc-display); font-size: 1.4rem; font-weight: 800; font-variation-settings: "wdth" 106; line-height: 1.1; margin: 0; }
.rh-coffee h3 a { color: var(--rc-night); text-decoration: none; }
.rh-coffee h3 a:hover { color: var(--rc-cherry); }
.rh-notes { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.rh-notes span { font-size: 0.78rem; background: var(--rc-mist); border-radius: 999px; padding: 0.2rem 0.6rem; }
.rh-meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.3rem 1rem; margin-top: auto; padding-top: 0.6rem; border-top: 1px solid var(--rc-line); font-size: 0.8rem; color: var(--rc-muted); }
.rh-roast { display: flex; align-items: center; gap: 0.5rem; }
.rh-meta > span { white-space: nowrap; }
.rh-bars { display: flex; gap: 3px; }
.rh-bars b { width: 14px; height: 6px; border-radius: 3px; background: #E1E5DC; }
.rh-bars b.on.r1 { background: #C9A777; } .rh-bars b.on.r2 { background: #A97C4F; } .rh-bars b.on.r3 { background: #8A5B35; } .rh-bars b.on.r4 { background: #6B4226; } .rh-bars b.on.r5 { background: #4A2C1A; }
.rh-buy { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.rh-price { font-weight: 700; }
@media (max-width: 980px) { .rh-shelf { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
	.rh-shelf { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 80%; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--rc-gutter); margin-inline: calc(-1 * var(--rc-gutter)); padding: 0 var(--rc-gutter) 0.75rem; scrollbar-width: none; }
	.rh-coffee { scroll-snap-align: start; }
	.rh-art { height: 250px; }
	.rh-art img { height: 180px; }
}

/* Why Regions */
.rh-why { background: url(assets/topo-dark.svg) 0 0 / 1000px auto; }
.rh-why-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.rh-why-photo { position: relative; margin: 0; border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 5; }
.rh-why-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rh-stamp { position: absolute; left: 1rem; bottom: 1rem; background: var(--rc-paper); border-radius: 14px; padding: 0.8rem 1rem; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); }
.rh-stamp b { display: block; font-family: var(--rc-display); font-size: 1.6rem; font-weight: 850; font-variation-settings: "wdth" 112; line-height: 1; }
.rh-stamp span { font-size: 0.78rem; color: var(--rc-muted); }
.rh-steps { list-style: none; margin: 2rem 0 0; padding: 0; }
.rh-steps li { display: grid; grid-template-columns: 4.2rem 1fr; gap: 1rem; padding: 1.3rem 0; border-top: 1px solid var(--rc-line); margin: 0; }
.rh-steps li:last-child { border-bottom: 1px solid var(--rc-line); }
.rh-k { font-family: var(--rc-display); font-weight: 850; font-size: 2.4rem; line-height: 1; color: var(--rc-cherry); font-variation-settings: "wdth" 112; }
.rh-steps h3 { font-family: var(--rc-display); font-size: 1.25rem; font-weight: 800; margin: 0 0 0.3rem; }
.rh-steps p { margin: 0; color: var(--rc-muted); }
@media (max-width: 860px) { .rh-why-grid { grid-template-columns: minmax(0, 1fr); } .rh-why-photo { aspect-ratio: 16 / 11; } }

/* Learn rail */
.rh-learn { padding-top: 0; }
.rh-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 30%); gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 1rem; scrollbar-width: thin; }
.rh-guide { scroll-snap-align: start; text-decoration: none; display: flex; flex-direction: column; gap: 0.8rem; color: var(--rc-night); }
.rh-cv { display: block; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 9; background: var(--rc-highland); }
.rh-cv img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.rh-guide:hover .rh-cv img { transform: scale(1.04); }
.rh-tag { font-family: var(--rc-mono); font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rc-cherry); }
.rh-guide-t { font-size: 1.12rem; font-weight: 700; line-height: 1.3; }
.rh-guide:hover .rh-guide-t { text-decoration: underline; }
@media (max-width: 560px) { .rh-rail { grid-auto-columns: 82%; margin-inline: calc(-1 * var(--rc-gutter)); padding: 0 var(--rc-gutter) 1rem; scroll-padding-inline: var(--rc-gutter); } }

/* Field notes */
.rh-notes-band { background: var(--rh-night) url(assets/topo-light.svg) 0 0 / 1000px auto; color: #fff; }
.rh-notes-band h2 { color: #fff; }
.rh-nb { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 2rem; align-items: center; padding-block: clamp(3.5rem, 7vw, 5.5rem) 2.5rem; }
.rh-nb p { color: rgba(255, 255, 255, 0.82); margin: 0.9rem 0 0; max-width: 30rem; }
.rh-form { display: flex; gap: 0.6rem; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 999px; padding: 0.4rem; }
.rh-form input { flex: 1; min-width: 0; background: none; border: 0; color: #fff; font: inherit; padding: 0.6rem 0.9rem; }
.rh-form input::placeholder { color: rgba(255, 255, 255, 0.62); }
.rh-form button { border: 0; border-radius: 999px; background: #fff; color: var(--rc-night); font: 700 0.92rem "Public Sans", sans-serif; padding: 0.7rem 1.2rem; }
.rh-nb small { display: block; margin-top: 0.6rem; color: rgba(255, 255, 255, 0.65); font-size: 0.78rem; }
.rh-credits { margin: 0 auto; padding-block: 0 2rem; font-size: 0.74rem; color: rgba(255, 255, 255, 0.6); }
.rh-credits a { color: rgba(255, 255, 255, 0.8); text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 820px) { .rh-nb { grid-template-columns: minmax(0, 1fr); } }

/* Reveals (only once the page script can show them again) */
.rh-js .rh-rv { opacity: 0; transform: translateY(22px); transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rh-js .rh-rv.is-in { opacity: 1; transform: none; }
.rh-js .rh-d1 { transition-delay: 0.08s; } .rh-js .rh-d2 { transition-delay: 0.16s; } .rh-js .rh-d3 { transition-delay: 0.24s; }
@media (prefers-reduced-motion: reduce) {
	.rh-js .rh-rv { opacity: 1; transform: none; transition: none; }
	.rh-hero-img { animation: none; transform: none; }
	.rh-pin.is-hot .rh-pin-dot::after { animation: none; }
	.rh-region img, .rh-art img, .rh-cv img, .rh-btn, .rh-coffee { transition: none; }
}

/* ==========================================================================
   Shop pages (0.7.0): collection banner, filter bar and grid, coffee product page.
   Classes start with rs-; coffee cards reuse the homepage's rh- cards.
   ========================================================================== */
.rs-shop .rc-main { padding-bottom: 0; }
.rs-shop .rc-main > .alignfull { margin-block: 0; }
.rs-crumbs { font-family: var(--rc-mono); font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rc-muted); margin: 0 0 1.3rem; }
.rs-crumbs a { color: inherit; text-decoration: none; }
.rs-crumbs a:hover { text-decoration: underline; }
.rs-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.rs-shop .rh-head h2, .rs-origin h2 { font-family: var(--rc-display); font-size: clamp(1.8rem, 3.6vw, 2.8rem); font-weight: 800; font-variation-settings: "wdth" 110; line-height: 1.05; letter-spacing: -0.01em; margin: 0; text-wrap: balance; }
.rs-shop .rh-head h2 { color: var(--rc-night); }

/* Collection banner */
.rs-banner { position: relative; overflow: hidden; color: #fff; background: var(--rh-night); }
.rs-banner-photo, .rs-banner-photo picture, .rs-banner-photo img { position: absolute; inset: 0; width: 100%; height: 100%; }
.rs-banner-photo img { object-fit: cover; }
.rs-banner-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(14, 24, 19, 0.92) 0%, rgba(14, 24, 19, 0.72) 45%, rgba(14, 24, 19, 0.25) 100%), linear-gradient(0deg, rgba(14, 24, 19, 0.6), rgba(14, 24, 19, 0) 50%); }
.rs-banner-cr { top: auto; bottom: 0.6rem; right: 0.7rem; z-index: 2; }
.rs-banner-in { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); gap: 2rem; align-items: center; padding-block: clamp(2.5rem, 6vw, 4.5rem); }
.rs-banner .rs-crumbs { color: rgba(255, 255, 255, 0.72); }
.rs-banner h1 { font-family: var(--rc-display); font-size: clamp(2.8rem, 7vw, 5.4rem); font-weight: 850; font-variation-settings: "wdth" 116; line-height: 0.95; letter-spacing: -0.01em; color: #fff; margin: 0; }
.rs-desc { color: rgba(255, 255, 255, 0.88); font-size: 1.08rem; max-width: 36rem; margin: 1.1rem 0 1.4rem; }
.rs-facts { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.rs-facts li { margin: 0; font-size: 0.82rem; border: 1px solid rgba(255, 255, 255, 0.24); background: rgba(14, 24, 19, 0.35); border-radius: 999px; padding: 0.32rem 0.8rem; color: rgba(255, 255, 255, 0.9); }
.rs-facts b { color: #fff; font-weight: 600; }
.rs-locator { justify-self: end; width: min(100%, 300px); margin: 0; text-align: center; }
.rs-locator img { width: 100%; height: auto; display: block; }
.rs-locator figcaption { font-family: var(--rc-mono); font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255, 255, 255, 0.72); margin-top: 0.4rem; }
.rs-banner-all { background: var(--rh-night) url(assets/topo-light.svg) 0 0 / 1000px auto; }
.rs-banner-all .rs-banner-in { grid-template-columns: minmax(0, 1fr); padding-bottom: 1.25rem; }
.rs-belt { position: relative; height: clamp(190px, 23vw, 330px); }
.rs-belt img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rs-belt::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, var(--rh-night) 0%, rgba(14, 24, 19, 0) 45%); }
@media (max-width: 820px) {
	.rs-banner-in { grid-template-columns: minmax(0, 1fr); }
	.rs-locator { justify-self: start; width: 150px; order: -1; margin-bottom: -0.5rem; }
	.rs-locator figcaption { display: none; }
	.rs-banner-shade { background: linear-gradient(180deg, rgba(14, 24, 19, 0.55) 0%, rgba(14, 24, 19, 0.88) 55%, rgba(14, 24, 19, 0.95) 100%); }
	.rs-belt { height: 150px; }
}

/* Filter bar */
.rs-filters { --rs-head: 74px; position: sticky; top: var(--rs-head); z-index: 30; background: rgba(243, 245, 240, 0.94); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-bottom: 1px solid var(--rc-line); }
.admin-bar .rs-filters { top: calc(var(--wp-admin--admin-bar--height, 32px) + var(--rs-head)); }
@media (max-width: 600px) { .rs-filters { --rs-head: 66px; } .admin-bar .rs-filters { top: var(--rs-head); } }
.rs-filters .rh-wrap { display: flex; gap: 1.25rem; align-items: center; padding-block: 0.8rem; overflow-x: auto; scrollbar-width: none; }
.rs-fgroup { display: flex; gap: 0.4rem; align-items: center; flex: none; }
.rs-fgroup > span { font-family: var(--rc-mono); font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rc-muted); margin-right: 0.2rem; }
.rs-filters .rh-chip { white-space: nowrap; font-size: 0.86rem; padding: 0.38rem 0.9rem; }
.rs-count { margin-left: auto; font-size: 0.82rem; color: var(--rc-muted); white-space: nowrap; flex: none; }
@media (max-width: 820px) { .rs-count { display: none; } }

/* Grid */
.rs-grid { padding-block: 2.2rem 4.5rem; }
@media (max-width: 560px) {
	.rs-grid .rh-shelf { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-columns: auto; overflow: visible; margin-inline: 0; padding: 0; gap: 0.75rem; }
	.rs-grid .rh-art { height: 180px; padding-bottom: 12px; }
	.rs-grid .rh-art img { height: 138px; }
	.rs-grid .rh-kind { display: none; }
	.rs-grid .rh-soon { top: 0.6rem; right: 0.6rem; font-size: 0.56rem; padding: 0.2rem 0.45rem; }
	.rs-grid .rh-coffee-body { padding: 0.75rem 0.8rem 0.9rem; gap: 0.35rem; }
	.rs-grid .rh-coffee h3 { font-size: 1.05rem; }
	.rs-grid .rh-o { font-size: 0.6rem; }
	.rs-grid .rh-notes span:nth-child(n+3) { display: none; }
	.rs-grid .rh-notes span { font-size: 0.7rem; padding: 0.15rem 0.5rem; }
	.rs-grid .rh-meta { flex-direction: column; align-items: flex-start; font-size: 0.72rem; }
	.rs-grid .rh-meta > span { white-space: normal; }
	.rs-grid .rh-bars b { width: 9px; height: 5px; }
	.rs-grid .rh-arrow { font-size: 0.82rem; }
}

/* Below the grid */
.rs-more { padding-block: 0 5rem; }
.rs-guides { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; margin-bottom: 4.5rem; }
.rs-guide { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 1.1rem; align-items: center; background: #fff; border: 1px solid var(--rc-line); border-radius: 14px; padding: 0.8rem; text-decoration: none; color: var(--rc-night); transition: box-shadow 0.2s ease; }
.rs-guide:hover { box-shadow: 0 12px 30px rgba(22, 35, 28, 0.1); }
.rs-guide-cv img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 10px; }
.rs-guide-t { display: block; font-weight: 700; font-size: 1.05rem; line-height: 1.3; margin-top: 0.3rem; }
.rs-regions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.rs-regions.rs-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rs-region { position: relative; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; color: #fff; text-decoration: none; isolation: isolate; }
.rs-region img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1); }
.rs-region::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14, 24, 19, 0) 30%, rgba(14, 24, 19, 0.9) 100%); }
.rs-region:hover img { transform: scale(1.06); }
.rs-region div { position: absolute; inset: auto 0 0; padding: 1rem 1.1rem; }
.rs-region div > span { font-family: var(--rc-mono); font-size: 0.6rem; letter-spacing: 0.13em; text-transform: uppercase; color: rgba(255, 255, 255, 0.85); }
.rs-region h3 { font-family: var(--rc-display); font-size: 1.4rem; font-weight: 800; color: #fff; margin: 0.25rem 0 0; }
@media (max-width: 820px) {
	.rs-guides { grid-template-columns: minmax(0, 1fr); }
	.rs-guide { grid-template-columns: 120px minmax(0, 1fr); }
	.rs-regions, .rs-regions.rs-four { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 72%; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--rc-gutter); margin-inline: calc(-1 * var(--rc-gutter)); padding: 0 var(--rc-gutter) 0.5rem; scrollbar-width: none; }
	.rs-region { scroll-snap-align: start; }
}

/* Product page: top */
.rs-p-top { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); gap: clamp(1.5rem, 4vw, 3.5rem); padding-block: 1.6rem 4rem; align-items: start; }
.rs-gallery { position: sticky; top: 96px; }
.rs-g-main { position: relative; border-radius: 22px; overflow: hidden; aspect-ratio: 1; display: grid; place-items: center; isolation: isolate; }
.rs-g-main::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url(assets/topo-dark.svg) 0 0 / 700px auto; }
.rs-g-main .rs-bag { height: 78%; width: auto; filter: drop-shadow(0 30px 30px rgba(22, 35, 28, 0.3)); }
.rs-g-main .rs-ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rs-g-main .rh-cr { top: auto; bottom: 0.7rem; right: 0.7rem; }
.rs-g-thumbs { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 0.8rem; }
.rs-g-thumbs button { width: 76px; height: 76px; border-radius: 12px; overflow: hidden; border: 2px solid transparent; padding: 0; cursor: pointer; background: var(--rc-cream); display: grid; place-items: center; }
.rs-g-thumbs button.is-on { border-color: var(--rc-night); }
.rs-g-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.rs-g-thumbs .rs-t-bag img { height: 84%; width: auto; object-fit: contain; }
.rs-info h1 { font-family: var(--rc-display); font-size: clamp(2.4rem, 5vw, 3.8rem); font-weight: 850; font-variation-settings: "wdth" 112; line-height: 0.98; letter-spacing: -0.01em; margin: 0.2rem 0 0.6rem; }
.rs-kind { font-weight: 600; color: var(--rc-muted); margin: 0 0 1rem; }
.rs-flavors { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 1.2rem; }
.rs-flavors span { display: inline-flex; align-items: center; gap: 0.45rem; background: #fff; border: 1px solid var(--rc-line); border-radius: 999px; padding: 0.4rem 0.9rem 0.4rem 0.5rem; font-weight: 600; font-size: 0.92rem; }
.rs-flavors i { width: 18px; height: 18px; border-radius: 50%; display: block; }
.rs-short { color: #33423A; margin: 0 0 1.4rem; }
.rs-specs { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--rc-line); border-radius: 14px; overflow: hidden; background: #fff; margin: 0 0 1.2rem; }
.rs-specs > div { padding: 0.9rem 1rem; border-bottom: 1px solid var(--rc-line); }
.rs-specs > div:nth-child(odd) { border-right: 1px solid var(--rc-line); }
.rs-specs > div:nth-last-child(-n+2):nth-child(odd), .rs-specs > div:last-child { border-bottom: 0; }
.rs-specs dt { font-family: var(--rc-mono); font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rc-muted); margin-bottom: 0.3rem; }
.rs-specs dd { margin: 0; font-weight: 700; font-size: 0.98rem; }
.rs-specs dd a { color: inherit; }
.rs-roast { display: flex; align-items: center; gap: 0.5rem; }
.rs-altbar { position: relative; display: block; height: 6px; border-radius: 3px; background: #E1E5DC; margin-top: 0.5rem; }
.rs-altbar i { position: absolute; top: 0; bottom: 0; background: var(--rc-cherry); border-radius: 3px; }
.rs-altbar-l { display: flex; justify-content: space-between; font-family: var(--rc-mono); font-size: 0.58rem; font-weight: 400; color: var(--rc-muted); margin-top: 0.25rem; }
.rs-buy { background: var(--rc-night); color: #fff; border-radius: 14px; padding: 1.2rem 1.2rem 1.1rem; scroll-margin-top: 110px; }
.rs-buy-top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 0.8rem; }
.rs-status { font-family: var(--rc-mono); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; background: var(--rc-cherry); padding: 0.25rem 0.6rem; border-radius: 999px; }
.rs-buy p { margin: 0 0 0.8rem; color: rgba(255, 255, 255, 0.85); font-size: 0.92rem; }
.rs-notify { display: flex; gap: 0.5rem; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.22); border-radius: 999px; padding: 0.35rem; }
.rs-notify input[type="email"] { flex: 1; min-width: 0; background: none; border: 0; color: #fff; font: inherit; padding: 0.55rem 0.85rem; }
.rs-notify input[type="email"]::placeholder { color: rgba(255, 255, 255, 0.62); }
.rs-notify button { border: 0; border-radius: 999px; background: #fff; color: var(--rc-night); font: 700 0.9rem "Public Sans", sans-serif; padding: 0.65rem 1.1rem; cursor: pointer; }
.rs-notify button:disabled { opacity: 0.6; cursor: wait; }
.rs-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rs-notify-msg { margin: 0.6rem 0 0 !important; font-weight: 600; }
.rs-notify-msg:empty { display: none; }
.rs-buy small { display: block; margin-top: 0.55rem; color: rgba(255, 255, 255, 0.62); font-size: 0.76rem; }
.rs-buy.is-buyable { background: #fff; color: var(--rc-night); border: 1px solid var(--rc-line); }
.rs-buy.is-buyable .rs-price { color: var(--rc-night); font-family: var(--rc-display); font-size: 1.8rem; font-weight: 800; margin: 0 0 0.8rem; }
.rs-buy.is-buyable form.cart { display: flex; flex-wrap: wrap; gap: 0.6rem; align-items: center; margin: 0; }
.rs-buy.is-buyable .single_add_to_cart_button { border-radius: 999px !important; background: var(--rc-cherry) !important; color: #fff !important; padding: 0.85rem 1.4rem !important; font-weight: 700 !important; }
.rs-perks { display: flex; flex-wrap: wrap; gap: 0.4rem 1.2rem; margin: 1rem 0 0; padding: 0; list-style: none; font-size: 0.84rem; color: var(--rc-muted); }
.rs-perks li { display: flex; align-items: center; gap: 0.4rem; margin: 0; }
.rs-perks svg { width: 16px; height: 16px; stroke: var(--rc-highland); fill: none; stroke-width: 2; }
@media (max-width: 900px) { .rs-p-top { grid-template-columns: minmax(0, 1fr); } .rs-gallery { position: static; } }

/* Product page: taste, origin, brew, related */
.rs-two { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: start; }
.rs-taste { padding-block: 4.5rem; border-top: 1px solid var(--rc-line); }
.rs-quote { font-family: var(--rc-display); font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 800; font-variation-settings: "wdth" 108; line-height: 1.15; margin: 0; text-wrap: balance; }
.rs-taste p { color: #33423A; }
.rs-ftiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; margin-top: 1.5rem; }
.rs-ftile { border-radius: 14px; padding: 1rem; min-height: 120px; display: flex; flex-direction: column; justify-content: space-between; }
.rs-ftile i { width: 14px; height: 14px; border-radius: 50%; display: block; }
.rs-ftile b { font-family: var(--rc-display); font-size: 1.15rem; line-height: 1.15; }
.rs-origin { background: var(--rh-night) url(assets/topo-light.svg) 0 0 / 1000px auto; color: #fff; padding-block: clamp(4rem, 8vw, 6rem); }
.rs-origin .rs-two { align-items: center; }
.rs-origin h2 { color: #fff; }
.rs-origin-text p { color: rgba(255, 255, 255, 0.84); }
.rs-origin-text a { color: var(--rh-blush); }
.rs-ridge { background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 14px; padding: 1rem 1.1rem; margin-top: 1.4rem; }
.rs-ridge-top { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: 0.4rem; }
.rs-ridge-top b { font-family: var(--rc-display); font-size: 1.4rem; white-space: nowrap; }
.rs-ridge-top span { font-size: 0.8rem; color: rgba(255, 255, 255, 0.68); text-align: right; }
.rs-ridge svg { width: 100%; height: auto; max-height: 90px; display: block; }
.rs-o-photo { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 0.9rem; align-items: center; margin-top: 1rem; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.12); border-radius: 14px; padding: 0.6rem; text-decoration: none; }
.rs-o-photo img { border-radius: 10px; aspect-ratio: 1; object-fit: cover; width: 120px; height: 120px; }
.rs-o-photo span { font-size: 0.86rem; color: rgba(255, 255, 255, 0.82); }
.rs-o-photo small { display: block; font-family: var(--rc-mono); font-size: 0.6rem; color: rgba(255, 255, 255, 0.58); margin-top: 0.3rem; }
.rs-o-loc { margin: 0; text-align: center; }
.rs-o-loc img { width: min(100%, 420px); height: auto; margin: 0 auto; display: block; }
.rs-origin .rs-two:has(.is-belt) { grid-template-columns: minmax(0, 1fr); }
.rs-o-loc.is-belt img { width: 100%; height: clamp(170px, 24vw, 320px); object-fit: cover; border-radius: 14px; }
.rs-o-loc figcaption { font-family: var(--rc-mono); font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255, 255, 255, 0.72); margin-top: 0.6rem; }
@media (max-width: 860px) { .rs-two { grid-template-columns: minmax(0, 1fr); } .rs-o-loc { order: -1; } .rs-o-loc img { width: 240px; } .rs-o-loc.is-belt { order: 0; } .rs-o-loc.is-belt img { width: 100%; } }
.rs-brew { padding-block: 4.5rem; }
.rs-methods { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.rs-method { background: #fff; border: 1px solid var(--rc-line); border-radius: 18px; padding: 1.3rem 1.3rem 1.2rem; }
.rs-method svg { width: 44px; height: 44px; stroke: var(--rc-highland); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.rs-method h3 { font-family: var(--rc-display); font-size: 1.25rem; font-weight: 800; margin: 0.8rem 0 0.6rem; }
.rs-big { font-family: var(--rc-display); font-size: 2rem; font-weight: 850; font-variation-settings: "wdth" 112; color: var(--rc-cherry); line-height: 1; margin: 0 0 0.7rem; }
.rs-method p:last-child { margin: 0; font-size: 0.92rem; color: #33423A; }
.rs-brew-note { margin-top: 1.4rem; color: var(--rc-muted); }
.rs-brew-note a { color: var(--rc-highland); font-weight: 700; }
@media (max-width: 860px) {
	.rs-methods { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 82%; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--rc-gutter); margin-inline: calc(-1 * var(--rc-gutter)); padding: 0 var(--rc-gutter) 0.5rem; scrollbar-width: none; }
	.rs-method { scroll-snap-align: start; }
}
.rs-also { padding-block: 0 5rem; }
.rs-desc-plain { max-width: 760px; }

/* Sticky "Notify me" / "Add to cart" bar on phones */
.rs-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: none; align-items: center; gap: 0.75rem; padding: 0.6rem var(--rc-gutter); background: rgba(247, 247, 242, 0.97); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border-top: 1px solid var(--rc-line); transform: translateY(110%); transition: transform 0.3s ease; }
.rs-sticky.is-on { transform: none; }
.rs-sticky-b { width: 42px; height: 42px; border-radius: 10px; display: grid; place-items: center; flex: none; overflow: hidden; }
.rs-sticky-b img { height: 36px; width: auto; }
.rs-sticky div { flex: 1; min-width: 0; line-height: 1.25; }
.rs-sticky b { display: block; font-size: 0.92rem; }
.rs-sticky div span { font-size: 0.75rem; color: var(--rc-cherry); font-family: var(--rc-mono); letter-spacing: 0.1em; text-transform: uppercase; }
.rs-sticky a { background: var(--rc-night); color: #fff; text-decoration: none; font-weight: 700; font-size: 0.88rem; border-radius: 999px; padding: 0.6rem 1rem; white-space: nowrap; }
@media (max-width: 900px) { .rs-sticky { display: flex; } }
@media (prefers-reduced-motion: reduce) { .rs-region img, .rs-sticky { transition: none; } }

/* ==========================================================================
   Quick wins (0.8.0): search results, phone menu, cart drawer and empty cart.
   ========================================================================== */

/* Search results */
.rs-banner-search .rs-banner-in { padding-bottom: clamp(2.5rem, 6vw, 4rem); }
.rs-search { display: flex; gap: 0.5rem; max-width: 34rem; margin: 1.3rem 0 1.2rem; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.22); border-radius: 999px; padding: 0.35rem; }
.rs-search input[type="search"] { flex: 1; min-width: 0; background: none; border: 0; color: #fff; font: inherit; padding: 0.6rem 0.9rem; }
.rs-search input[type="search"]::placeholder { color: rgba(255, 255, 255, 0.62); }
.rs-search input[type="search"]:focus { outline: none; }
.rs-search:focus-within { border-color: rgba(255, 255, 255, 0.6); }
.rs-search button { border: 0; border-radius: 999px; background: #fff; color: var(--rc-night); font: 700 0.92rem "Public Sans", sans-serif; padding: 0.7rem 1.2rem; cursor: pointer; }
.rs-results { padding-block: 3rem 1rem; }
.rs-search-page .rc-main > .alignfull:last-child { padding-bottom: 5rem; }
.rs-results.rs-grid { padding-block: 3rem 1rem; }
.rs-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.75rem 1.25rem; }
.rs-excerpt { color: var(--rc-muted); font-size: 0.92rem; line-height: 1.5; }
.rs-page-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.rs-page-list li { margin: 0; }
.rs-page-list a { display: block; background: #fff; border: 1px solid var(--rc-line); border-radius: 14px; padding: 1rem 1.2rem; text-decoration: none; color: var(--rc-night); transition: box-shadow 0.2s ease; }
.rs-page-list a:hover { box-shadow: 0 12px 30px rgba(22, 35, 28, 0.1); }
.rs-page-list b { display: block; font-family: var(--rc-display); font-size: 1.15rem; }
.rs-page-list span { color: var(--rc-muted); font-size: 0.9rem; }
@media (max-width: 860px) { .rs-guide-grid { grid-template-columns: minmax(0, 1fr); } }

/* Phone menu: dark, with the logo, region photo tiles and help links */
.rc-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .rc-nav-extra { display: none !important; }
.rc-nav .wp-block-navigation__responsive-container.is-menu-open { background: #0E1813 url(assets/topo-light.svg) 0 0 / 900px auto !important; color: #fff !important; padding: 1.1rem var(--rc-gutter) 2rem !important; }
.rc-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0 !important; }
.rc-nav .is-menu-open .wp-block-navigation__responsive-container-content::before { content: ""; display: block; flex: none; width: 140px; height: 40px; margin: 0.1rem 0 1.6rem; background: url(assets/regions-lockup-reversed.svg) no-repeat left center / contain; }
.rc-nav .is-menu-open .wp-block-navigation__responsive-container-close { color: #fff !important; top: 1.35rem !important; }
.rc-nav .is-menu-open .wp-block-navigation__container { gap: 0.15rem !important; }
.rc-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { color: #fff !important; font-size: 1.9rem !important; font-variation-settings: "wdth" 110 !important; }
.rc-nav .is-menu-open .wp-block-navigation__submenu-container { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem !important; width: 100% !important; padding: 0.6rem 0 1.3rem !important; }
.rc-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { width: auto !important; }
.rc-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item .wp-block-navigation-item__content { display: flex !important; align-items: flex-end; width: 100%; height: 86px; box-sizing: border-box; border-radius: 12px; overflow: hidden; padding: 0.6rem 0.75rem !important; color: #fff !important; font-family: "Public Sans", sans-serif !important; font-weight: 700 !important; font-size: 0.95rem !important; line-height: 1.2; background: rgba(255, 255, 255, 0.07) center / cover no-repeat; border: 1px solid rgba(255, 255, 255, 0.14); }
.rc-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item a.wp-block-navigation-item__content[href*="/collections/central-america"] { background-image: linear-gradient(180deg, rgba(14, 24, 19, 0) 25%, rgba(14, 24, 19, 0.88)), url(assets/photos/region-central-america-tall-420.webp); }
.rc-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item a.wp-block-navigation-item__content[href*="/collections/south-america"] { background-image: linear-gradient(180deg, rgba(14, 24, 19, 0) 25%, rgba(14, 24, 19, 0.88)), url(assets/photos/region-south-america-tall-420.webp); }
.rc-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item a.wp-block-navigation-item__content[href*="/collections/africa"] { background-image: linear-gradient(180deg, rgba(14, 24, 19, 0) 25%, rgba(14, 24, 19, 0.88)), url(assets/photos/region-africa-tall-420.webp); }
.rc-nav .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item a.wp-block-navigation-item__content[href*="/collections/indonesia"] { background-image: linear-gradient(180deg, rgba(14, 24, 19, 0) 25%, rgba(14, 24, 19, 0.88)), url(assets/photos/region-indonesia-tall-420.webp); }
.rc-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item.rc-nav-extra > .wp-block-navigation-item__content { font-family: "Public Sans", sans-serif !important; font-weight: 500 !important; font-size: 1.02rem !important; color: rgba(255, 255, 255, 0.78) !important; }
.rc-nav .is-menu-open .wp-block-navigation__container > .rc-nav-extra { padding-top: 0.15rem; }
.rc-nav .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item:not(.rc-nav-extra) + .rc-nav-extra { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, 0.16); }

/* Cart drawer */
.wc-block-mini-cart__drawer .wc-block-components-drawer__content { background: var(--rc-paper); }
.wc-block-mini-cart__drawer .wc-block-components-drawer__close { color: var(--rc-night) !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
.wc-block-mini-cart__drawer .wc-block-components-drawer__close:focus-visible { outline: 2px solid var(--rc-night); outline-offset: 2px; }
.wc-block-mini-cart__title { font-family: var(--rc-display); font-weight: 800; font-size: 1.5rem; }
.wc-block-mini-cart__footer .wc-block-mini-cart__footer-actions a { border-radius: 999px !important; font-weight: 700; }
.wc-block-mini-cart__footer .wc-block-mini-cart__footer-checkout { background: var(--rc-cherry) !important; border-color: var(--rc-cherry) !important; color: #fff !important; }
.wc-block-mini-cart__empty-cart-wrapper { overflow-y: auto; }

/* Empty cart (drawer and Cart page) */
.rs-cart-empty { padding: 2.2rem 1.25rem 1.5rem; text-align: left; }
.rs-cart-empty .rh-eyebrow { margin-bottom: 0.5rem; }
.rs-ce-title { font-family: var(--rc-display); font-weight: 800; font-variation-settings: "wdth" 110; font-size: 1.9rem; line-height: 1.05; margin: 0 0 0.6rem; color: var(--rc-night); }
.rs-ce-text { color: var(--rc-muted); margin: 0 0 1.2rem; font-size: 0.95rem; }
.rs-ce-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; margin: 0 0 1.2rem; }
.rs-ce-tile { position: relative; display: flex; align-items: flex-end; height: 112px; border-radius: 12px; overflow: hidden; padding: 0.6rem 0.75rem; color: #fff; font-weight: 700; text-decoration: none; isolation: isolate; }
.rs-ce-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 0.5s ease; }
.rs-ce-tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14, 24, 19, 0) 30%, rgba(14, 24, 19, 0.88)); }
.rs-ce-tile:hover img { transform: scale(1.05); }
.rs-ce-all { display: block; text-align: center; background: var(--rc-night); color: #fff; border-radius: 999px; padding: 0.85rem 1rem; font-weight: 700; text-decoration: none; }
.rs-ce-all:hover { background: var(--rc-highland); color: #fff; }
.wp-block-woocommerce-empty-cart-block .rs-cart-empty { max-width: 860px; margin: 0 auto; padding: 1rem 0 3rem; text-align: center; }
.wp-block-woocommerce-empty-cart-block .rs-ce-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.wp-block-woocommerce-empty-cart-block .rs-ce-tile { height: 180px; }
.wp-block-woocommerce-empty-cart-block .rs-ce-all { display: inline-block; padding-inline: 2rem; }
@media (max-width: 700px) { .wp-block-woocommerce-empty-cart-block .rs-ce-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .wp-block-woocommerce-empty-cart-block .rs-ce-tile { height: 130px; } }
@media (prefers-reduced-motion: reduce) { .rs-ce-tile img { transition: none; } }

/* ==========================================================================
   Learn (0.9.0): hub and topic pages (rl-), guide articles (ra-).
   ========================================================================== */
.rl-learn .rc-main { padding-bottom: 0; }
.rl-learn .rc-main > .alignfull { margin-block: 0; }
.rl-learn .rh-head h2 { font-family: var(--rc-display); font-size: clamp(1.8rem, 3.6vw, 2.6rem); font-weight: 800; font-variation-settings: "wdth" 110; line-height: 1.05; letter-spacing: -0.01em; margin: 0; color: var(--rc-night); }
.rl-meta { font-family: var(--rc-mono); font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--rc-muted); }

/* Hub banner */
.rl-banner { background: var(--rh-night) url(assets/topo-light.svg) 0 0 / 1000px auto; color: #fff; }
.rl-banner .rh-wrap { padding-block: clamp(2.6rem, 6vw, 4.2rem) 2rem; }
.rl-banner .rs-crumbs { color: rgba(255, 255, 255, 0.72); }
.rl-banner h1 { font-family: var(--rc-display); font-size: clamp(2.6rem, 6.4vw, 5rem); font-weight: 850; font-variation-settings: "wdth" 116; line-height: 0.96; letter-spacing: -0.01em; color: #fff; max-width: 14ch; margin: 0; }
.rl-banner h1 em { font-style: normal; color: var(--rh-blush); }
.rl-desc { color: rgba(255, 255, 255, 0.88); font-size: 1.08rem; max-width: 36rem; margin: 1rem 0 1.6rem; }
.rl-topics { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.rl-topic { display: inline-flex; align-items: center; gap: 0.5rem; border: 1.5px solid rgba(255, 255, 255, 0.3); background: rgba(14, 24, 19, 0.35); color: #fff; border-radius: 999px; padding: 0.45rem 0.95rem; font-weight: 600; font-size: 0.9rem; text-decoration: none; }
.rl-topic:hover { border-color: #fff; color: #fff; }
.rl-topic i { font-style: normal; font-family: var(--rc-mono); font-size: 0.7rem; opacity: 0.75; }
.rl-topic.is-on { background: #fff; color: var(--rc-night); border-color: #fff; }
.rl-sw { width: 10px; height: 10px; border-radius: 50%; display: inline-block; flex: none; }

/* Featured guide */
.rl-feature { padding-block: 3rem 0; }
.rl-fcard { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr); background: #fff; border: 1px solid var(--rc-line); border-radius: 22px; overflow: hidden; text-decoration: none; color: var(--rc-night); transition: box-shadow 0.25s ease; }
.rl-fcard:hover { box-shadow: 0 18px 40px rgba(22, 35, 28, 0.12); color: var(--rc-night); }
.rl-fcard .rl-cv { aspect-ratio: 16 / 9; overflow: hidden; display: block; }
.rl-fcard .rl-cv img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; }
.rl-fcard:hover .rl-cv img { transform: scale(1.03); }
.rl-fbody { padding: clamp(1.4rem, 3vw, 2.4rem); display: flex; flex-direction: column; justify-content: center; gap: 0.7rem; }
.rl-fbody .rh-eyebrow { margin: 0; }
.rl-ftitle { font-family: var(--rc-display); font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; font-variation-settings: "wdth" 108; line-height: 1.08; }
.rl-fdek { color: var(--rc-muted); }
.rl-btn { align-self: flex-start; background: var(--rc-night); color: #fff; border-radius: 999px; padding: 0.75rem 1.2rem; font-weight: 700; margin-top: 0.4rem; }
@media (max-width: 860px) { .rl-fcard { grid-template-columns: minmax(0, 1fr); } }

/* Start here */
.rl-start { padding-block: 3.5rem 0; }
.rl-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.rl-step { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 1rem; align-items: center; background: #fff; border: 1px solid var(--rc-line); border-radius: 14px; padding: 0.75rem; text-decoration: none; color: var(--rc-night); transition: box-shadow 0.2s ease; }
.rl-step:hover { box-shadow: 0 12px 30px rgba(22, 35, 28, 0.1); color: var(--rc-night); }
.rl-step img { width: 96px; height: 72px; object-fit: cover; border-radius: 10px; display: block; }
.rl-step b { display: block; font-size: 1rem; line-height: 1.3; }
.rl-stepn { display: block; font-family: var(--rc-mono); font-size: 0.64rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rc-cherry); }
@media (max-width: 860px) { .rl-steps { grid-template-columns: minmax(0, 1fr); } }

/* Guide grid */
.rl-all { padding-block: 3.5rem 4.5rem; }
.rl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem 1.25rem; }
.rl-card { display: flex; flex-direction: column; gap: 0.6rem; text-decoration: none; color: var(--rc-night); }
.rl-card[hidden] { display: none; }
.rl-card:hover { color: var(--rc-night); }
.rl-card .rl-cv { display: block; border-radius: 14px; overflow: hidden; aspect-ratio: 16 / 9; border: 1px solid rgba(22, 35, 28, 0.06); background: var(--rc-cream); }
.rl-card .rl-cv img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.5s ease; }
.rl-card:hover .rl-cv img { transform: scale(1.04); }
.rl-card h3 { font-family: "Public Sans", sans-serif; font-size: 1.15rem; font-weight: 700; letter-spacing: 0; line-height: 1.3; margin: 0; }
.rl-card:hover h3 { text-decoration: underline; text-underline-offset: 3px; }
.rl-card p { margin: 0; color: var(--rc-muted); font-size: 0.92rem; line-height: 1.5; }
.rl-tag { font-family: var(--rc-mono); font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; display: flex; gap: 0.5rem; align-items: center; }
.rl-tag .rl-sw { width: 9px; height: 9px; }
.rl-t-gear { color: #8E1E25; } .rl-t-brew { color: #9A4A26; } .rl-t-origin { color: #2E5B47; } .rl-t-guide { color: var(--rc-muted); }
@media (max-width: 980px) { .rl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .rl-grid { grid-template-columns: minmax(0, 1fr); } }

/* Region band */
.rl-band { background: var(--rc-highland) url(assets/topo-light.svg) 0 0 / 1000px auto; color: #fff; padding-block: clamp(3rem, 6vw, 4.5rem); }
.rl-band .rh-head h2 { color: #fff; }
.rl-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.75rem; }
.rl-tile { position: relative; height: 150px; border-radius: 12px; overflow: hidden; display: flex; align-items: flex-end; padding: 0.8rem 1rem; color: #fff; font-weight: 700; text-decoration: none; isolation: isolate; }
.rl-tile:hover { color: #fff; }
.rl-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 0.5s ease; }
.rl-tile::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(14, 24, 19, 0) 30%, rgba(14, 24, 19, 0.88)); }
.rl-tile:hover img { transform: scale(1.05); }
@media (max-width: 820px) { .rl-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rl-tile { height: 120px; } }
.rl-more { padding-block: 0 4.5rem; }

/* Article */
.ra-progress { position: fixed; left: 0; top: 0; z-index: 70; width: 100%; height: 3px; background: var(--rc-cherry); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }
.admin-bar .ra-progress { top: var(--wp-admin--admin-bar--height, 32px); }
.ra-head { background: var(--rc-cream) url(assets/topo-dark.svg) 0 0 / 1000px auto; border-bottom: 1px solid var(--rc-line); }
.ra-head-in { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; padding-block: clamp(2rem, 5vw, 3.5rem); }
.ra-head h1 { font-family: var(--rc-display); font-size: clamp(2.1rem, 4.4vw, 3.5rem); font-weight: 850; font-variation-settings: "wdth" 110; line-height: 1.02; letter-spacing: -0.01em; margin: 0; text-wrap: balance; }
.ra-dek { font-size: 1.15rem; color: #33423A; margin: 1rem 0 1.2rem; max-width: 36rem; }
.ra-byline { display: flex; align-items: center; gap: 0.75rem; font-size: 0.92rem; color: var(--rc-muted); }
.ra-byline b { color: var(--rc-night); }
.ra-avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--rc-highland); color: #fff; display: grid; place-items: center; font-family: var(--rc-display); font-weight: 800; font-size: 0.95rem; flex: none; }
.ra-cover { margin: 0; border-radius: 18px; overflow: hidden; aspect-ratio: 16 / 9; box-shadow: 0 18px 40px rgba(22, 35, 28, 0.12); }
.ra-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 860px) { .ra-head-in { grid-template-columns: minmax(0, 1fr); } }
.ra-body { display: grid; grid-template-columns: 230px minmax(0, 720px); justify-content: center; gap: clamp(2rem, 5vw, 4.5rem); padding-block: 2.5rem 4rem; }
.ra-toc { position: sticky; top: 100px; align-self: start; font-size: 0.88rem; }
.ra-toc p { font-family: var(--rc-mono); font-size: 0.66rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rc-muted); margin: 0 0 0.7rem; }
.ra-toc ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--rc-line); }
.ra-toc li { margin: 0; }
.ra-toc a { display: block; padding: 0.35rem 0 0.35rem 0.9rem; margin-left: -2px; border-left: 2px solid transparent; text-decoration: none; color: var(--rc-muted); line-height: 1.35; }
.ra-toc a:hover { color: var(--rc-night); }
.ra-toc a.is-on { color: var(--rc-night); font-weight: 700; border-left-color: var(--rc-cherry); }
.ra-toc-m { display: none; }
@media (max-width: 1060px) { .ra-body { grid-template-columns: minmax(0, 720px); } .ra-toc { display: none; } .ra-toc-m { display: block; } }
.ra-toc-m details { background: #fff; border: 1px solid var(--rc-line); border-radius: 12px; padding: 0.8rem 1rem; margin-bottom: 1.6rem; }
.ra-toc-m summary { font-weight: 700; cursor: pointer; list-style: none; display: flex; justify-content: space-between; }
.ra-toc-m summary::-webkit-details-marker { display: none; }
.ra-toc-m summary::after { content: "+"; font-family: var(--rc-mono); color: var(--rc-cherry); }
.ra-toc-m details[open] summary::after { content: "\2013"; }
.ra-toc-m ol { margin: 0.6rem 0 0; padding-left: 1.1rem; }
.ra-toc-m li { margin: 0.3rem 0; }
.ra-toc-m a { text-decoration: none; }
html:has(.ra-content) { scroll-padding-top: 96px; }

.ra-content { font-size: 1.06rem; line-height: 1.7; min-width: 0; }
.ra-content > *:first-child { margin-top: 0; }
.ra-content h2 { font-family: var(--rc-display); font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 800; font-variation-settings: "wdth" 108; line-height: 1.1; margin: 3rem 0 1rem; }
.ra-content h3 { font-family: var(--rc-display); font-size: 1.35rem; font-weight: 800; line-height: 1.2; margin: 2.2rem 0 0.7rem; }
.ra-content p { margin: 0 0 1.1rem; }
.ra-content a { color: var(--rc-highland); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
.ra-content .rc-disclosure { font-size: 0.84rem; color: var(--rc-muted); background: #fff; border: 1px solid var(--rc-line); border-left: 1px solid var(--rc-line); border-radius: 10px; padding: 0.7rem 0.9rem; margin: 0 0 2rem; }
.ra-quick { background: var(--rc-highland) url(assets/topo-light.svg) 0 0 / 800px auto; color: #fff; border-radius: 18px; padding: 1.4rem 1.5rem 1.2rem; margin: 0 0 2.5rem; }
.ra-content .ra-quick h2 { font-family: var(--rc-mono); font-size: 0.74rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--rh-blush); margin: 0 0 0.6rem; line-height: 1.4; }
.ra-quick p { font-size: 1.12rem; line-height: 1.6; margin: 0 0 0.7rem; }
.ra-quick p:last-child { margin-bottom: 0; }
.ra-content .ra-quick a { color: #fff; text-decoration-color: var(--rh-blush); }

.ra-picks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.9rem; margin: 1.2rem 0 1rem; }
.ra-pick { background: #fff; border: 1px solid var(--rc-line); border-radius: 16px; padding: 1rem 1rem 1.05rem; display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 0.4rem 1rem; align-content: start; }
.ra-ic { grid-row: 1 / 4; width: 72px; height: 72px; border-radius: 12px; background: var(--rc-cream); display: grid; place-items: center; }
.ra-ic svg { width: 48px; height: 48px; fill: none; stroke: var(--rc-highland); stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.ra-badge { justify-self: start; font-size: 0.76rem; font-weight: 700; line-height: 1.35; background: #EBCFBE; color: #7A2E1E; border-radius: 6px; padding: 0.18rem 0.5rem; }
.ra-pick.is-top .ra-badge { background: var(--rc-cherry); color: #fff; }
.ra-content .ra-pname { font-size: 1.05rem; font-weight: 800; line-height: 1.25; margin: 0; color: var(--rc-night); }
.ra-content .ra-spec { font-size: 0.86rem; color: var(--rc-muted); line-height: 1.45; margin: 0; }
.ra-row { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.9rem; margin-top: 0.5rem; padding-top: 0.7rem; border-top: 1px solid var(--rc-line); }
.ra-price { font-family: var(--rc-mono); font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rc-muted); white-space: nowrap; background: var(--rc-mist); border-radius: 999px; padding: 0.2rem 0.55rem; }
.ra-content .ra-take { font-size: 0.84rem; font-weight: 700; white-space: nowrap; }
.ra-content .ra-check { margin-left: auto; display: inline-flex; align-items: center; gap: 0.35rem; background: var(--rc-cherry); color: #fff; text-decoration: none; font-weight: 700; font-size: 0.86rem; border-radius: 999px; padding: 0.5rem 0.9rem; white-space: nowrap; }
.ra-content .ra-check::after { content: "\2197"; }
.ra-content .ra-check:hover { background: #9C1F27; color: #fff; }
.ra-content .ra-picks-note { font-size: 0.84rem; color: var(--rc-muted); }
@media (max-width: 620px) { .ra-picks { grid-template-columns: minmax(0, 1fr); } }

.ra-content h3:has(.ra-n) { display: flex; gap: 0.8rem; align-items: baseline; padding-top: 1.4rem; border-top: 1px solid var(--rc-line); }
.ra-n { font-family: var(--rc-display); font-weight: 850; color: var(--rc-cherry); font-size: 1.5rem; font-variation-settings: "wdth" 112; flex: none; }
.ra-content .rc-shop-link { margin-top: -0.2rem; }
.ra-content .rc-shop-link a { display: inline-flex; align-items: center; gap: 0.35rem; background: var(--rc-night); color: #fff; text-decoration: none; font-weight: 700; font-size: 0.9rem; border-radius: 999px; padding: 0.55rem 1rem; border: 0; }
.ra-content .rc-shop-link a::after { content: "\2197"; font-size: 1em; }
.ra-content .rc-shop-link a:hover { background: var(--rc-highland); color: #fff; }

.ra-scale { background: #fff; border: 1px solid var(--rc-line); border-radius: 16px; padding: 1.3rem 1.2rem 1rem; margin: 1rem 0 1.2rem; }
.ra-scale-ends { display: flex; justify-content: space-between; font-family: var(--rc-mono); font-size: 0.64rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rc-muted); }
.ra-scale-bar { position: relative; height: 10px; border-radius: 5px; background: linear-gradient(90deg, #4A2C1A, #8A5B35 45%, #C9A777); margin: 2.6rem 0.5rem 2.2rem; }
.ra-mark { position: absolute; top: 50%; transform: translate(-50%, -50%); width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 3px solid var(--rc-night); }
.ra-mark > span { position: absolute; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 0.78rem; font-weight: 700; line-height: 1.2; text-align: center; }
.ra-mark.is-up > span { bottom: 24px; } .ra-mark.is-down > span { top: 24px; }
.ra-mark small { display: block; font-weight: 500; color: var(--rc-muted); font-size: 0.7rem; }

.ra-faq .wp-block-details { background: #fff; border: 1px solid var(--rc-line); border-radius: 12px; padding: 0.85rem 1rem; margin: 0 0 0.6rem; }
.ra-faq .wp-block-details p { margin: 0.6rem 0 0; font-size: 0.98rem; }

.ra-brewit { background: var(--rh-night) url(assets/topo-light.svg) 0 0 / 800px auto; color: #fff; border-radius: 20px; padding: 1.6rem 1.5rem 0.6rem; margin-top: 3rem; }
.ra-content .ra-brewit h2 { color: #fff; margin: 0 0 0.7rem; }
.ra-brewit p { color: rgba(255, 255, 255, 0.86); }
.ra-content .ra-brewit a { color: #fff; }
.ra-brewit ul { color: rgba(255, 255, 255, 0.86); }
.ra-bags { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.7rem; margin: 1.2rem 0 1.2rem; }
.ra-content .ra-bag { display: flex; flex-direction: column; align-items: center; gap: 0.4rem; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 14px; padding: 0.9rem 0.6rem 0.8rem; text-decoration: none; text-align: center; line-height: 1.3; }
.ra-bag:hover { background: rgba(255, 255, 255, 0.12); }
.ra-b { width: 84px; height: 100px; border-radius: 12px; display: grid; place-items: center; flex: none; }
.ra-b img { height: 88px; width: auto; filter: drop-shadow(0 8px 8px rgba(0, 0, 0, 0.3)); }
.ra-bag b { display: block; font-size: 0.9rem; color: #fff; }
.ra-bag small { display: block; font-family: var(--rc-mono); font-size: 0.58rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--rh-blush); margin-top: 0.15rem; }
@media (max-width: 560px) { .ra-bags { grid-template-columns: minmax(0, 1fr); } .ra-content .ra-bag { flex-direction: row; text-align: left; } .ra-b { width: 56px; height: 64px; } .ra-b img { height: 56px; } }

.ra-author { display: flex; gap: 1rem; align-items: flex-start; background: #fff; border: 1px solid var(--rc-line); border-radius: 16px; padding: 1.1rem 1.2rem; margin-top: 2.5rem; }
.ra-author .ra-avatar { width: 52px; height: 52px; font-size: 1.15rem; }
.ra-author p { margin: 0.2rem 0 0; font-size: 0.92rem; color: var(--rc-muted); line-height: 1.5; }
.ra-author b { font-size: 1rem; }
@media (prefers-reduced-motion: reduce) { .rl-card .rl-cv img, .rl-fcard .rl-cv img, .rl-tile img { transition: none; } }
