/*
Theme Name: RGS Arcade
Theme URI: https://retro-game-and-setup.store/
Author: Retro Game and Setup
Description: Lightweight dark block theme for Retro Game and Setup. One stylesheet, self-hosted fonts, no page builder. Works with WooCommerce block templates and the members-only store setup.
Version: 1.3.8
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rgs-arcade
WC requires at least: 8.0
*/

/* ---------- Tokens (dark default, light via toggle) ---------- */
:root {
	--rgs-bg: #060a13;
	--rgs-bg-2: #0a1120;
	--rgs-surface: #0f1729;
	--rgs-surface-2: #15203a;
	--rgs-line: #1f2c47;
	--rgs-line-strong: #2d3f66;
	--rgs-text: #e9eef8;
	--rgs-muted: #97a3bf;
	--rgs-accent: #2f7bff;
	--rgs-accent-hover: #4b8eff;
	--rgs-accent-text: #6ea4ff;
	--rgs-accent-soft: rgba(47, 123, 255, 0.14);
	--rgs-grid: rgba(110, 164, 255, 0.06);
	--rgs-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
	--rgs-radius: 12px;
	--rgs-header-h: 64px;
	color-scheme: dark;
}
:root[data-theme="light"] {
	--rgs-bg: #f3f6fb;
	--rgs-bg-2: #e9eef7;
	--rgs-surface: #ffffff;
	--rgs-surface-2: #f2f5fb;
	--rgs-line: #dbe2ef;
	--rgs-line-strong: #c2cde3;
	--rgs-text: #0c1426;
	--rgs-muted: #56627c;
	--rgs-accent: #1f63e0;
	--rgs-accent-hover: #174fb6;
	--rgs-accent-text: #1f63e0;
	--rgs-accent-soft: rgba(31, 99, 224, 0.1);
	--rgs-grid: rgba(31, 99, 224, 0.07);
	--rgs-shadow: 0 10px 30px rgba(15, 30, 60, 0.08);
	color-scheme: light;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--rgs-header-h) + 16px); }
body { background: var(--rgs-bg); color: var(--rgs-text); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
::selection { background: var(--rgs-accent); color: #fff; }
:focus-visible { outline: 2px solid var(--rgs-accent); outline-offset: 2px; }
a { text-underline-offset: 3px; }
.wp-site-blocks { min-height: 100vh; display: flex; flex-direction: column; }
.wp-site-blocks > main, .wp-site-blocks > .rgs-main { flex: 1; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; animation: none !important; } }

/* ---------- Header ---------- */
.rgs-header {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--rgs-bg) 86%, transparent);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--rgs-line);
}
.admin-bar .rgs-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rgs-header { top: 0; } }
.rgs-header__bar { min-height: var(--rgs-header-h); gap: 1rem; }
.rgs-brand { gap: 0.6rem; flex-shrink: 0; }
.rgs-brand .wp-block-site-logo img { width: 44px; height: 44px; object-fit: cover; border-radius: 8px; }
.rgs-brand .wp-block-site-title { margin: 0; font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 0.95rem; letter-spacing: 0.04em; text-transform: uppercase; }
.rgs-brand .wp-block-site-title a { color: var(--rgs-text); text-decoration: none; }

.rgs-nav { font-size: 0.9rem; font-weight: 600; gap: 0.25rem 1.4rem; }
.rgs-nav .wp-block-navigation-item__content { color: var(--rgs-muted); text-decoration: none; padding: 0.35rem 0; }
.rgs-nav .wp-block-navigation-item__content:hover,
.rgs-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--rgs-text); }
.rgs-nav .wp-block-navigation__submenu-container {
	background: var(--rgs-surface) !important; color: var(--rgs-text) !important;
	border: 1px solid var(--rgs-line) !important; border-radius: 10px; padding: 0.4rem !important;
	box-shadow: var(--rgs-shadow); min-width: 220px !important;
}
.rgs-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.5rem 0.7rem; border-radius: 6px; }
.rgs-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--rgs-accent-soft); }
.rgs-nav .wp-block-navigation__responsive-container.is-menu-open { background: var(--rgs-bg) !important; color: var(--rgs-text) !important; padding: 1.5rem; }
.rgs-nav .wp-block-navigation__responsive-container-open, .rgs-nav .wp-block-navigation__responsive-container-close { color: var(--rgs-text); }

.rgs-actions { gap: 0.5rem; flex-shrink: 0; }
.rgs-theme-toggle {
	display: inline-grid; place-items: center; width: 38px; height: 38px; padding: 0;
	border: 1px solid var(--rgs-line); border-radius: 8px; background: var(--rgs-surface);
	color: var(--rgs-text); cursor: pointer;
}
.rgs-theme-toggle:hover { border-color: var(--rgs-line-strong); }
.rgs-theme-toggle svg { width: 18px; height: 18px; }
.rgs-theme-toggle .rgs-icon-sun { display: none; }
:root[data-theme="light"] .rgs-theme-toggle .rgs-icon-sun { display: block; }
:root[data-theme="light"] .rgs-theme-toggle .rgs-icon-moon { display: none; }
.rgs-actions .wc-block-mini-cart__button { color: var(--rgs-text); border: 1px solid var(--rgs-line); border-radius: 8px; height: 38px; padding: 0 0.6rem; background: var(--rgs-surface); }
.rgs-btn-sm .wp-block-button__link { padding: 0.5rem 0.95rem; font-size: 0.875rem; }
@media (max-width: 600px) { .rgs-brand .wp-block-site-title, .rgs-hide-sm { display: none !important; } }

/* ---------- Buttons ---------- */
.wp-block-button__link { transition: background-color .15s, border-color .15s, color .15s; }
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent; color: var(--rgs-text); border: 1px solid var(--rgs-line-strong);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { border-color: var(--rgs-accent); color: var(--rgs-text); background: var(--rgs-accent-soft); }

/* ---------- Sections ---------- */
.rgs-main { background-image: linear-gradient(var(--rgs-grid) 1px, transparent 1px), linear-gradient(90deg, var(--rgs-grid) 1px, transparent 1px); background-size: 48px 48px; background-position: center top; }
.rgs-section { padding-top: clamp(3rem, 7vw, 5.5rem); padding-bottom: clamp(3rem, 7vw, 5.5rem); }
.rgs-section + .rgs-section { border-top: 1px solid var(--rgs-line); }
.rgs-section--alt { background: color-mix(in srgb, var(--rgs-bg-2) 85%, transparent); }
.rgs-eyebrow {
	margin: 0 0 0.75rem; font-family: var(--wp--preset--font-family--display); font-size: 0.72rem;
	font-weight: 500; letter-spacing: 0.22em; text-transform: uppercase; color: var(--rgs-accent-text);
}
.rgs-section h2 { margin-top: 0; }
.rgs-lead { color: var(--rgs-muted); font-size: 1.0625rem; max-width: 68ch; }
.rgs-rule { width: 48px; height: 2px; background: var(--rgs-accent); border: 0; margin: 1rem 0 1.5rem; }

/* Hero */
.rgs-hero { position: relative; padding-top: clamp(4rem, 10vw, 7.5rem); padding-bottom: clamp(2rem, 5vw, 3rem); text-align: center; overflow: hidden; }
.rgs-hero::before {
	content: ""; position: absolute; inset: -20% 10% auto; height: 70%; z-index: 0; pointer-events: none;
	background: radial-gradient(closest-side, rgba(47, 123, 255, 0.22), transparent 70%);
}
.rgs-hero > * { position: relative; z-index: 1; }
.rgs-hero .rgs-hero__title { max-width: 18ch; margin-left: auto; margin-right: auto; font-weight: 800; letter-spacing: 0.005em; }
.rgs-hero .rgs-hero__title em { font-style: normal; color: var(--rgs-accent-text); }
.rgs-hero .rgs-lead { margin-left: auto; margin-right: auto; }
.rgs-hero .wp-block-buttons { justify-content: center; margin-top: 1.75rem; }
.rgs-pill {
	display: inline-block; margin: 0 auto 1.25rem; padding: 0.35rem 0.85rem; border: 1px solid var(--rgs-line-strong);
	border-radius: 999px; background: var(--rgs-surface); font-size: 0.78rem; font-weight: 600; color: var(--rgs-muted);
}

/* Stats */
.rgs-stats { margin-top: clamp(2.5rem, 6vw, 3.5rem) !important; gap: 0 !important; border: 1px solid var(--rgs-line); border-radius: var(--rgs-radius); background: var(--rgs-surface); overflow: hidden; }
.rgs-stat { padding: 1.25rem 1rem; text-align: center; }
.rgs-stat + .rgs-stat { border-left: 1px solid var(--rgs-line); }
.rgs-stat__num { margin: 0; font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: clamp(1.4rem, 3vw, 1.9rem); color: var(--rgs-text); line-height: 1.1; }
.rgs-stat__label { margin: 0.35rem 0 0; font-size: 0.8rem; color: var(--rgs-muted); }
@media (max-width: 700px) {
	.rgs-stats { grid-template-columns: 1fr 1fr !important; }
	.rgs-stat:nth-child(3) { border-left: 0; }
	.rgs-stat:nth-child(n+3) { border-top: 1px solid var(--rgs-line); }
}

/* Cards */
.rgs-cards { gap: 1rem !important; margin-top: 2rem !important; }
.rgs-card {
	height: 100%; padding: 1.5rem; border: 1px solid var(--rgs-line); border-radius: var(--rgs-radius);
	background: var(--rgs-surface); transition: border-color .15s, transform .15s;
}
.rgs-card:hover { border-color: var(--rgs-line-strong); }
.rgs-card h3 { margin: 0 0 0.5rem; font-size: 1rem; letter-spacing: 0.02em; }
.rgs-card p { margin: 0; color: var(--rgs-muted); font-size: 0.925rem; }
.rgs-card__num { margin: 0 0 0.9rem !important; font-family: var(--wp--preset--font-family--display); font-size: 0.75rem !important; letter-spacing: 0.18em; color: var(--rgs-accent-text) !important; }
a.rgs-card-link, .rgs-card-link a { text-decoration: none; color: inherit; }
.rgs-card--link { position: relative; }
.rgs-card--link h3 a { color: var(--rgs-text); text-decoration: none; }
.rgs-card--link h3 a::after { content: ""; position: absolute; inset: 0; border-radius: var(--rgs-radius); }
.rgs-card--link:hover { border-color: var(--rgs-accent); transform: translateY(-2px); }
.rgs-card--link h3::after { content: " \2192"; color: var(--rgs-accent-text); }

/* Chips */
.rgs-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.25rem; }
.rgs-chip { margin: 0 !important; padding: 0.3rem 0.7rem; border: 1px solid var(--rgs-line); border-radius: 6px; background: var(--rgs-accent-soft); color: var(--rgs-accent-text); font-size: 0.78rem; font-weight: 600; }

/* Call-to-action band */
.rgs-cta {
	padding: clamp(2rem, 5vw, 3rem); border: 1px solid var(--rgs-line-strong); border-radius: 16px; text-align: center;
	background: radial-gradient(120% 140% at 50% 0%, rgba(47, 123, 255, 0.18), transparent 60%), var(--rgs-surface);
}
.rgs-cta h2 { margin-bottom: 0.5rem; }
.rgs-cta .wp-block-buttons { justify-content: center; margin-top: 1.5rem; }

/* Shortcode areas from the store's own snippets */
.rgs-embed { margin-top: 2rem; }

/* ---------- Page and posts ---------- */
.rgs-page-head { padding-top: clamp(2.5rem, 6vw, 4rem); padding-bottom: 1.5rem; border-bottom: 1px solid var(--rgs-line); }
.rgs-page-head .wp-block-post-title { margin: 0; }
.rgs-page-body { padding-top: 2.5rem; padding-bottom: 4rem; }
.wp-block-post-content > * + * { margin-top: 1.1em; }
.wp-block-post-content table { border-collapse: collapse; width: 100%; }
.wp-block-post-content th, .wp-block-post-content td { border: 1px solid var(--rgs-line); padding: 0.6rem 0.8rem; }
.wp-block-post-template { gap: 1rem; }
.wp-block-post-template > li { padding: 1.25rem; border: 1px solid var(--rgs-line); border-radius: var(--rgs-radius); background: var(--rgs-surface); }
.wp-block-post-template .wp-block-post-title { font-size: 1.1rem; margin: 0 0 0.4rem; }
.wp-block-post-template .wp-block-post-title a { color: var(--rgs-text); text-decoration: none; }
.wp-block-post-date, .wp-block-post-excerpt { color: var(--rgs-muted); font-size: 0.9rem; }
.wp-block-query-pagination a { color: var(--rgs-accent-text); }

/* ---------- Forms ---------- */
input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="tel"], input[type="number"], input[type="url"], select, textarea {
	background: var(--rgs-surface); color: var(--rgs-text); border: 1px solid var(--rgs-line-strong); border-radius: 8px; padding: 0.6rem 0.75rem; font: inherit;
}
input:focus, select:focus, textarea:focus { border-color: var(--rgs-accent); outline: none; box-shadow: 0 0 0 3px var(--rgs-accent-soft); }
button, input[type="submit"] { font: inherit; }

/* ---------- WooCommerce ---------- */
.woocommerce, .wc-block-components-main, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { color: var(--rgs-text); }
.wc-block-product-template, ul.products { gap: 1rem !important; }
.wc-block-product, ul.products li.product {
	padding: 1rem !important; border: 1px solid var(--rgs-line); border-radius: var(--rgs-radius); background: var(--rgs-surface); transition: border-color .15s;
}
.wc-block-product:hover, ul.products li.product:hover { border-color: var(--rgs-line-strong); }
.wc-block-components-product-image img, ul.products li.product img { border-radius: 8px; background: var(--rgs-surface-2); }
.wp-block-post-title a, .woocommerce-loop-product__title { color: var(--rgs-text); text-decoration: none; }
.wc-block-components-product-price, .price, .woocommerce-Price-amount { color: var(--rgs-text); font-weight: 700; }
.price del, .wc-block-components-product-price del { color: var(--rgs-muted); font-weight: 400; }
.wc-block-components-product-sale-badge, .onsale { background: var(--rgs-accent) !important; color: #fff !important; border: 0 !important; border-radius: 6px !important; }
.wc-block-components-button:not(.is-link), .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .single_add_to_cart_button, .wp-block-button.wc-block-components-product-button .wp-block-button__link {
	background: var(--rgs-accent) !important; color: #fff !important; border: 0 !important; border-radius: 8px !important; font-weight: 600 !important;
}
.wc-block-components-button:not(.is-link):hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--rgs-accent-hover) !important; }
.wc-block-components-panel, .wc-block-components-totals-wrapper, .wc-block-components-sidebar, .wc-block-checkout__form, .wc-block-components-order-summary, .woocommerce-MyAccount-navigation, .woocommerce-MyAccount-content, .woocommerce form.login, .woocommerce form.register {
	border-color: var(--rgs-line) !important;
}
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; margin: 0; border: 1px solid var(--rgs-line); border-radius: var(--rgs-radius); background: var(--rgs-surface); overflow: hidden; }
.woocommerce-MyAccount-navigation li a { display: block; padding: 0.7rem 1rem; color: var(--rgs-muted); text-decoration: none; border-bottom: 1px solid var(--rgs-line); }
.woocommerce-MyAccount-navigation li.is-active a, .woocommerce-MyAccount-navigation li a:hover { color: var(--rgs-text); background: var(--rgs-accent-soft); }
.woocommerce form.login, .woocommerce form.register { padding: 1.5rem !important; border: 1px solid var(--rgs-line) !important; border-radius: var(--rgs-radius) !important; background: var(--rgs-surface); }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner { background: var(--rgs-surface) !important; color: var(--rgs-text) !important; border: 1px solid var(--rgs-line-strong) !important; border-left: 3px solid var(--rgs-accent) !important; border-radius: 8px !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select .wc-blocks-components-select__select {
	background: var(--rgs-surface) !important; color: var(--rgs-text) !important; border-color: var(--rgs-line-strong) !important;
}
.wc-block-components-text-input label, .wc-blocks-components-select__label { color: var(--rgs-muted) !important; }
.woocommerce-tabs .tabs { border-bottom: 1px solid var(--rgs-line); }
.woocommerce-tabs .tabs li a, .wc-tabs li a { color: var(--rgs-muted); }
.woocommerce-tabs .tabs li.active a { color: var(--rgs-text); }
.wc-block-breadcrumbs, .woocommerce-breadcrumb { color: var(--rgs-muted); font-size: 0.85rem; }
.wc-block-mini-cart__drawer .components-modal__content, .wc-block-mini-cart__drawer { background: var(--rgs-bg) !important; color: var(--rgs-text); }

/* ---------- Footer ---------- */
.rgs-footer { margin-top: auto; border-top: 1px solid var(--rgs-line); background: var(--rgs-bg-2); }
.rgs-footer__inner { padding-top: 3rem; padding-bottom: 2rem; }
.rgs-footer__cols { gap: 2rem !important; }
.rgs-footer h2 { font-size: 0.75rem !important; letter-spacing: 0.2em; text-transform: uppercase; color: var(--rgs-muted); margin: 0 0 0.9rem; }
.rgs-footer ul { list-style: none; padding: 0; margin: 0; }
.rgs-footer li { margin: 0 0 0.45rem; }
.rgs-footer li a, .rgs-footer p a { color: var(--rgs-text); text-decoration: none; font-size: 0.9rem; }
.rgs-footer li a:hover { color: var(--rgs-accent-text); }
.rgs-footer__about p { color: var(--rgs-muted); font-size: 0.9rem; max-width: 34ch; }
.rgs-footer__legal { margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid var(--rgs-line); color: var(--rgs-muted); font-size: 0.8rem; }
.rgs-footer__legal p { margin: 0; }

/* ---------- Layout fixes ---------- */
.wp-site-blocks > * + * { margin-block-start: 0; }
.rgs-intro > * { margin-left: 0 !important; margin-right: 0 !important; }
.rgs-intro .rgs-lead { margin-top: 0.5rem; }

/* ---------- v1.1: brand art, front-ends, side rails, scroll reveal ---------- */
.rgs-brand-art {
	width: 100%; max-width: 980px; aspect-ratio: 3 / 2; max-height: 44vh; margin: 0 auto clamp(1.5rem, 4vw, 2.5rem);
	background: var(--rgs-brand-img) center / cover no-repeat, var(--rgs-surface);
	border-radius: 18px; border: 1px solid var(--rgs-line-strong);
	box-shadow: 0 0 0 1px rgba(47, 123, 255, 0.15), 0 30px 80px rgba(47, 123, 255, 0.18), var(--rgs-shadow);
	-webkit-mask-image: linear-gradient(#000 72%, transparent);
	mask-image: linear-gradient(#000 72%, transparent);
}
.rgs-hero { padding-top: clamp(1.5rem, 4vw, 3rem); }

.rgs-frontends { margin-top: 1.5rem !important; text-align: center; }
.rgs-frontends__label { margin: 0 0 0.9rem; font-size: 0.8rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--rgs-muted); }
.rgs-frontends__list { gap: 0.75rem !important; }
.rgs-fe {
	margin: 0 !important; padding: 1rem 0.75rem; border: 1px solid var(--rgs-line); border-radius: var(--rgs-radius);
	background: linear-gradient(180deg, var(--rgs-surface-2), var(--rgs-surface));
	font-family: var(--wp--preset--font-family--display); font-weight: 800; font-size: clamp(1rem, 2vw, 1.25rem); letter-spacing: 0.04em; color: var(--rgs-text);
}
.rgs-fe span { display: block; margin-top: 0.3rem; font-family: var(--wp--preset--font-family--body); font-weight: 400; font-size: 0.78rem; letter-spacing: 0; color: var(--rgs-muted); }
@media (max-width: 700px) { .rgs-frontends__list { grid-template-columns: 1fr 1fr !important; } }

/* Side rails: only where there is room beside the content */
.rgs-rails { display: none; }
@media (min-width: 1460px) {
	.rgs-rails { display: block; position: fixed; inset: var(--rgs-header-h) 0 0 0; z-index: 0; pointer-events: none; }
	.admin-bar .rgs-rails { top: calc(var(--rgs-header-h) + 32px); }
	.wp-site-blocks { position: relative; z-index: 1; }
	.rgs-main, .rgs-section--alt { background-color: transparent; }
	.rgs-rail {
		position: absolute; top: 0; bottom: 0; width: clamp(100px, calc((100vw - 1200px) / 2 - 28px), 160px); overflow: hidden;
		-webkit-mask-image: linear-gradient(transparent, #000 12%, #000 88%, transparent);
		mask-image: linear-gradient(transparent, #000 12%, #000 88%, transparent);
		opacity: 0; transition: opacity .6s;
	}
	.rgs-rails.is-ready .rgs-rail { opacity: 0.55; }
	.rgs-rail--left { left: 12px; }
	.rgs-rail--right { right: 12px; }
	.rgs-rail__inner { will-change: transform; }
	.rgs-rail__track { display: flex; flex-direction: column; gap: 12px; animation: rgs-rail-up 140s linear infinite; }
	.rgs-rail--right .rgs-rail__track { animation-name: rgs-rail-down; animation-duration: 170s; }
	.rgs-tile {
		aspect-ratio: 4 / 3; display: grid; place-items: center; padding: 8px; text-align: center; border-radius: 10px;
		border: 1px solid rgba(255, 255, 255, 0.08);
		background:
			repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.18) 0 2px, transparent 2px 4px),
			linear-gradient(135deg, hsl(var(--h) 70% 38%), hsl(var(--h2) 75% 16%));
	}
	.rgs-tile span { font-family: var(--wp--preset--font-family--display); font-weight: 700; font-size: 0.72rem; line-height: 1.3; letter-spacing: 0.04em; color: #fff; text-shadow: 0 2px 0 rgba(0, 0, 0, 0.45); }
	:root[data-theme="light"] .rgs-rails.is-ready .rgs-rail { opacity: 0.4; }
}
@keyframes rgs-rail-up { from { transform: translateY(0); } to { transform: translateY(-50%); } }
@keyframes rgs-rail-down { from { transform: translateY(-50%); } to { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .rgs-rail__track { animation: none !important; } }

/* Scroll reveal (only when JavaScript runs) */
.rgs-js .rgs-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; transition-delay: var(--rgs-delay, 0ms); }
.rgs-js .rgs-reveal.is-in { opacity: 1; transform: none; }

/* ---------- v1.1.1: fixes found on the live store preview ---------- */
/* The store's old global nav (from a Code Snippet) is replaced by this theme's header */
#rgns-global-nav { display: none !important; }
/* Product names: theme colors instead of the old cyan */
.wc-block-components-product-name, .wc-block-grid__product-title, .wp-block-post-title a, .woocommerce-loop-product__title,
.wc-block-product .wp-block-post-title a { color: var(--rgs-text) !important; }
.wc-block-product .wp-block-post-title, .wc-block-product .wp-block-post-title a { font-family: var(--wp--preset--font-family--body) !important; font-weight: 700 !important; font-size: 1rem !important; line-height: 1.35 !important; letter-spacing: 0 !important; }
.wc-block-product .wp-block-post-title a:hover { color: var(--rgs-accent-text) !important; }
/* Single product title sized for long product names */
.single-product .wp-block-post-title { font-size: clamp(1.4rem, 2.6vw, 2.1rem) !important; line-height: 1.25; }
.single-product .wp-block-woocommerce-product-price, .single-product .wc-block-components-product-price { font-size: 1.5rem; }
/* Video gallery plugin: shown inside the product's image column (moved there by theme.js) */
.rgs-gallery-moved .woocommerce-product-gallery { display: none !important; }

/* ---------- v1.1.2 ---------- */
/* Beat the old site's leftover cyan button/link styles on product pages */
html body .wp-site-blocks .single_add_to_cart_button,
html body .wp-site-blocks .wc-block-components-product-button__button,
html body .wp-site-blocks button.single_add_to_cart_button.button.alt {
	background: var(--rgs-accent) !important; color: #fff !important; border: 0 !important; box-shadow: none !important; border-radius: 8px !important; font-family: var(--wp--preset--font-family--body) !important;
}
html body .wp-site-blocks .single_add_to_cart_button:hover { background: var(--rgs-accent-hover) !important; }
html body .wp-site-blocks .wp-block-post-terms a, html body .wp-site-blocks .tagged_as a, html body .wp-site-blocks .posted_in a { color: var(--rgs-accent-text) !important; }
html body .wp-site-blocks .quantity .qty { background: var(--rgs-surface); color: var(--rgs-text); border: 1px solid var(--rgs-line-strong); border-radius: 8px; }
/* Formatted short description */
.rgs-summary p { margin: 0 0 0.6em; color: var(--rgs-muted); }
.rgs-summary ul, .rgs-summary ol { padding-left: 1.2em; color: var(--rgs-muted); }
/* Sticky header below the admin bar, whatever its height */
.admin-bar .rgs-header { top: var(--wp-admin--admin-bar--height, 32px); }

/* ---------- v1.1.3: WooCommerce pages use their own header wrapper, so style it too ---------- */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky; top: 0; z-index: 50;
	background: color-mix(in srgb, var(--rgs-bg) 86%, transparent);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--rgs-line);
}
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: var(--wp-admin--admin-bar--height, 32px); }
.wp-site-blocks > footer.wp-block-template-part { margin-top: auto; border-top: 1px solid var(--rgs-line); background: var(--rgs-bg-2); }

/* ---------- v1.1.5: override leftover page backgrounds so the side rails and light mode show ---------- */
html body { background: var(--rgs-bg) !important; }
html body .wp-site-blocks { background: transparent !important; }

/* ---------- v1.1.7: leftover CSS also paints <main>; clear it so the side rails show ---------- */
html body .wp-site-blocks > main, html body .wp-site-blocks main.rgs-main, html body .wp-site-blocks > .woocommerce > main { background-color: transparent !important; }

/* ---------- v1.1.8: the store's old global footer (from a Code Snippet) is replaced by this theme's footer ---------- */
#rgns-footer { display: none !important; }

/* ---------- v1.2.0: footer social links + copyright ---------- */
.rgs-footer .rgs-footer__about > p { margin-bottom: 0 !important; }
html body .rgs-footer ul.rgs-social { display: flex; flex-wrap: wrap; gap: 0.55rem !important; margin: 1.1rem 0 0 !important; padding: 0 !important; }
html body .rgs-footer ul.rgs-social li { margin: 0 !important; }
html body .rgs-footer ul.rgs-social .wp-social-link { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff !important; transition: transform .15s ease, filter .15s ease; }
html body .rgs-footer ul.rgs-social .wp-social-link a { padding: 0 !important; color: #fff !important; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
html body .rgs-footer ul.rgs-social .wp-social-link svg { width: 17px; height: 17px; fill: currentColor; }
html body .rgs-footer ul.rgs-social .wp-social-link:hover { transform: translateY(-2px); filter: brightness(1.12); }
.rgs-footer__legal p + p { margin-top: 0.4rem; }
/* Leave room so floating buttons (chat, notifications) don't sit on the legal text */
.rgs-footer__legal { padding-bottom: 4.5rem; }

/* ---------- v1.2.0: readable text everywhere (legacy colour overrides are removed in functions.php) ---------- */
/* Old store modules (.rgns-*), the System List and Elementor-built pages were designed dark-only:
   in light mode they stay dark panels so their text keeps its contrast. */
.rgns-section :is(h1, h2, h3, h4, h5, h6) { color: inherit; }
:root[data-theme="light"] :is(.rgns-vc, .rgns-fe, .rgns-fq, .rgns-collection, #rgs-systems, .wp-block-post-content > .elementor) {
	--rgs-bg: #060a13; --rgs-bg-2: #0a1120; --rgs-surface: #0f1729; --rgs-surface-2: #15203a;
	--rgs-line: #1f2c47; --rgs-line-strong: #2d3f66; --rgs-text: #e9eef8; --rgs-muted: #97a3bf;
	--rgs-accent: #2f7bff; --rgs-accent-hover: #4b8eff; --rgs-accent-text: #6ea4ff; --rgs-accent-soft: rgba(47, 123, 255, 0.14);
	background-color: #0b0e14 !important; color: var(--rgs-text); color-scheme: dark; border-radius: var(--rgs-radius);
}
:root[data-theme="light"] :is(.rgns-vc, .rgns-fe, .rgns-fq, .rgns-collection, #rgs-systems, .wp-block-post-content > .elementor) :is(h1, h2, h3, h4, h5, h6) { color: #ffffff; }
/* Classic checkout country/state dropdowns (select2) */
html body .select2-container--default .select2-selection--single { background: var(--rgs-surface) !important; border: 1px solid var(--rgs-line-strong) !important; border-radius: 8px !important; height: auto !important; min-height: 2.6rem; display: flex; align-items: center; }
html body .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--rgs-text) !important; line-height: 1.4 !important; padding: 0.55rem 2rem 0.55rem 0.8rem !important; }
html body .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100% !important; }
html body .select2-dropdown { background: var(--rgs-surface) !important; border-color: var(--rgs-line-strong) !important; color: var(--rgs-text) !important; }
html body .select2-search--dropdown .select2-search__field { background: var(--rgs-bg) !important; color: var(--rgs-text) !important; border-color: var(--rgs-line-strong) !important; }
html body .select2-results__option { color: var(--rgs-text) !important; }
html body .select2-results__option--highlighted[aria-selected], html body .select2-results__option--highlighted[data-selected] { background: var(--rgs-accent) !important; color: #fff !important; }
/* Classic WooCommerce form fields */
html body .woocommerce form .form-row :is(input.input-text, textarea, select) { background: var(--rgs-surface) !important; color: var(--rgs-text) !important; border: 1px solid var(--rgs-line-strong) !important; border-radius: 8px; }
html body .woocommerce form .form-row label { color: var(--rgs-muted); }
/* Notices: every piece of text inside follows the notice colour */
html body :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner) :is(p, span, div, li, strong) { color: inherit !important; }
html body :is(.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner) a:not(.button) { color: var(--rgs-accent-text) !important; }
/* NotificationX sales popups: match the site surface in both modes */
html body .notificationx-frontend .nx-notification { background: var(--rgs-surface) !important; color: var(--rgs-text) !important; border: 1px solid var(--rgs-line-strong) !important; box-shadow: var(--rgs-shadow) !important; }
html body .notificationx-frontend .nx-notification :is(p, span, a, div) { color: inherit !important; }
html body .notificationx-frontend .nx-notification .nx-first-row, html body .notificationx-frontend .nx-notification .nx-first-row span { font-weight: 600; }
html body .notificationx-frontend .nx-notification :is(.nx-third-row, .nx-third-row span, .nx-branding) { color: var(--rgs-muted) !important; }
html body .notificationx-frontend .nx-notification :is(.notificationx-close, .nx-close) { color: var(--rgs-muted) !important; }
html body .notificationx-frontend .nx-notification :is(.notificationx-close, .nx-close) svg { fill: currentColor; stroke: currentColor; }
/* Elementor-built page content (e.g. About Us): links follow the theme accent, not the old kit colour */
html body .wp-block-post-content > .elementor a:not(.elementor-button):not([class*="elementor-icon"]):not(.woocommerce *):not(.button) { color: var(--rgs-accent-text) !important; }
/* Checkout phone field country code */
html body .iti__selected-dial-code { color: var(--rgs-text) !important; }
/* Pages whose content already has its own main heading: hide the template title (no double H1) */
.rgs-main:has(.wp-block-post-content h1) > .rgs-page-head { display: none; }
/* Checkout page spacing */
.rgs-checkout { padding-top: 1.5rem; padding-bottom: 3rem; }
.rgs-checkout .rgs-checkout-title { margin: 0 0 1.25rem; }
/* Checkout payment methods: WooCommerce's default lavender boxes replaced with the site surface
   (card fields from WooPayments are drawn for a dark page, so their labels need a dark box) */
html body.woocommerce-checkout #payment { background: var(--rgs-surface) !important; border: 1px solid var(--rgs-line) !important; border-radius: var(--rgs-radius) !important; }
html body.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--rgs-line) !important; }
html body.woocommerce-checkout #payment ul.payment_methods li label { color: var(--rgs-text) !important; }
html body.woocommerce-checkout #payment div.payment_box { background: var(--rgs-bg-2) !important; color: var(--rgs-text) !important; border: 1px solid var(--rgs-line-strong) !important; border-radius: 10px !important; }
html body.woocommerce-checkout #payment div.payment_box :is(p, span, label, li, div:not([class*="StripeElement"])) { color: inherit; }
html body.woocommerce-checkout #payment div.payment_box a { color: var(--rgs-accent-text) !important; }
html body.woocommerce-checkout #payment div.payment_box::before { border-bottom-color: var(--rgs-bg-2) !important; }
html body.woocommerce-checkout #payment div.payment_box fieldset { border-color: var(--rgs-line-strong) !important; background: transparent !important; }
html body.woocommerce-checkout #payment .place-order, html body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper { color: var(--rgs-muted); }
/* "View Available Coupons" button (Power Coupons) on cart and checkout */
html body .power-coupons-view-coupons-btn { background: transparent !important; color: var(--rgs-accent-text) !important; border: 1px dashed var(--rgs-line-strong) !important; border-radius: 8px !important; font-weight: 600; }
html body .power-coupons-view-coupons-btn:hover { border-color: var(--rgs-accent) !important; background: var(--rgs-accent-soft) !important; }
/* Cart icon: WooCommerce hides it on the Cart and Checkout pages; keep it visible so the header is the same everywhere */
html body:is(.woocommerce-cart, .woocommerce-checkout) .wp-site-blocks > header .wc-block-mini-cart,
html body:is(.woocommerce-cart, .woocommerce-checkout) .wp-site-blocks > header .wc-block-mini-cart__button,
html body:is(.woocommerce-cart, .woocommerce-checkout) .wp-site-blocks > header .wc-block-mini-cart__button * { visibility: visible !important; }
/* Product page: variation dropdown text was clipped (fixed height + tall line-height) */
html body.single-product table.variations select { height: auto !important; min-height: 2.6rem; line-height: 1.4 !important; padding: 0.55rem 2.2rem 0.55rem 0.8rem !important; min-width: 220px; max-width: 100%; background-color: var(--rgs-surface) !important; color: var(--rgs-text) !important; border: 1px solid var(--rgs-line-strong) !important; border-radius: 8px !important; }
html body.single-product table.variations th, html body.single-product table.variations td { vertical-align: middle; padding-top: 0.35rem; padding-bottom: 0.35rem; }
/* Product page: SKU / categories / tags row wraps instead of squeezing the SKU */
html body.single-product .wp-block-woocommerce-product-meta .wp-block-group.is-nowrap { flex-wrap: wrap !important; column-gap: 2rem; row-gap: 0.5rem; }
html body.single-product .wp-block-woocommerce-product-meta .wc-block-components-product-sku, html body.single-product .wp-block-woocommerce-product-meta .product_meta { white-space: nowrap; flex-shrink: 0; }
/* Contact form (Contact Form 7) and order tracking form */
html body .wpcf7-form :is(input.wpcf7-text, input.wpcf7-email, input.wpcf7-tel, textarea.wpcf7-textarea) { width: 100%; max-width: 640px; background: var(--rgs-surface) !important; color: var(--rgs-text) !important; border: 1px solid var(--rgs-line-strong) !important; border-radius: 8px; padding: 0.65rem 0.8rem; }
html body .wpcf7-form :is(input, textarea):focus { border-color: var(--rgs-accent) !important; outline: none; box-shadow: 0 0 0 3px var(--rgs-accent-soft); }
html body .wpcf7-form .wpcf7-submit { background: var(--rgs-accent) !important; color: #fff !important; border: 0 !important; border-radius: 8px; padding: 0.75rem 1.6rem !important; font-weight: 600; font-size: 0.95rem; cursor: pointer; }
html body .wpcf7-form .wpcf7-submit:hover { background: var(--rgs-accent-hover) !important; }
.rgs-track-intro { color: var(--rgs-muted); max-width: 60ch; }
html body form.woocommerce-form-track-order { max-width: 640px; padding: 1.5rem; border: 1px solid var(--rgs-line); border-radius: var(--rgs-radius); background: var(--rgs-surface); }
html body form.woocommerce-form-track-order input.input-text { width: 100%; background: var(--rgs-bg) !important; color: var(--rgs-text) !important; border: 1px solid var(--rgs-line-strong) !important; border-radius: 8px; padding: 0.65rem 0.8rem; }
/* Mobile: nothing may push the page wider than the screen (clip keeps the sticky header working) */
html body { overflow-x: clip; }
.single-product .wp-block-woocommerce-product-image-gallery, .single-product .nickx_product_images_with_video { overflow: hidden; max-width: 100%; }
@media (max-width: 768px) {
	html body .woocommerce table.shop_table_responsive { width: 100% !important; min-width: 0 !important; table-layout: auto; }
	html body .woocommerce table.shop_table_responsive td { word-break: break-word; }
	html body .woocommerce table.cart td.actions .coupon { display: flex; flex-wrap: wrap; gap: 0.5rem; float: none; width: 100%; }
	html body .woocommerce table.cart td.actions .coupon .input-text { flex: 1 1 140px; width: auto !important; min-width: 0; }
	html body .woocommerce table.cart td.actions .coupon .button { flex: 0 0 auto; }
	html body .woocommerce table.cart td.actions > .button { width: 100%; margin-top: 0.5rem; }
}
/* Light/dark toggle: hidden (site runs dark). Delete this rule to offer light mode again. */
html body .rgs-theme-toggle { display: none !important; }
/* My Account: Log out item has a red background, so its text is white */
html body .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a { color: #ffffff !important; }
/* PayPal buttons and "Pay in 4" message: their iframes inherited the page's dark color-scheme, which makes
   the browser paint an opaque white box behind them. Match the iframe's own (light) scheme instead. */
html body :is(.ppc-button-wrapper, .paypal-buttons, .ppcp-messages, [id^="ppc-button"], [id^="zoid-paypal"]) iframe { color-scheme: light !important; }
/* Express checkout row: PayPal's buttons stop at 750px wide, so WooPay and the Pay in 4 box use the same width and the edges line up */
html body.single-product :is(.wcpay-express-checkout-wrapper, .ppcp-messages, .ppc-button-wrapper) { max-width: 750px !important; box-sizing: border-box; }
html body .ppc-button-wrapper { padding-left: 0 !important; padding-right: 0 !important; }
html body .ppcp-messages { background: #f3f6fb !important; border: 0 !important; border-radius: 8px !important; padding: 0.55rem 0.8rem !important; margin: 0.6rem 0 !important; }
/* ---------- Build finder quiz ---------- */
.rgs-finder { position: relative; max-width: 920px; margin: 0 auto; padding: clamp(1.25rem, 3vw, 2rem); background: var(--rgs-surface); border: 1px solid var(--rgs-line); border-radius: var(--rgs-radius); }
.rgs-finder__bar { height: 4px; border-radius: 4px; background: var(--rgs-line); overflow: hidden; margin-bottom: 1.4rem; }
.rgs-finder__bar span { display: block; height: 100%; width: 0; background: var(--rgs-accent); transition: width .3s ease; }
.rgs-finder__step { border: 0; margin: 0; padding: 0; min-width: 0; }
.rgs-finder__step legend, .rgs-finder__title { font-family: var(--wp--preset--font-family--display); font-size: clamp(1.15rem, 2.4vw, 1.5rem); font-weight: 700; color: var(--rgs-text); margin: 0 0 1rem; padding: 0; }
.rgs-finder__num { display: block; font-family: var(--wp--preset--font-family--body); font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--rgs-accent-text); margin: 0 0 .4rem; font-weight: 600; }
.rgs-finder__opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .65rem; }
html body .rgs-finder__opt { text-align: left; padding: .9rem 1rem; border-radius: 10px; border: 1px solid var(--rgs-line-strong); background: var(--rgs-bg-2); color: var(--rgs-text); font: inherit; font-weight: 600; cursor: pointer; transition: border-color .15s, background .15s, transform .15s; }
html body .rgs-finder__opt:hover, html body .rgs-finder__opt:focus-visible { border-color: var(--rgs-accent); background: var(--rgs-accent-soft); transform: translateY(-1px); }
html body .rgs-finder__opt.is-picked { border-color: var(--rgs-accent); background: var(--rgs-accent-soft); }
html body :is(.rgs-finder__back, .rgs-finder__restart) { margin-top: 1rem; background: none; border: 0; color: var(--rgs-muted); font: inherit; font-size: .9rem; cursor: pointer; padding: .25rem 0; }
html body :is(.rgs-finder__back, .rgs-finder__restart):hover { color: var(--rgs-text); }
.rgs-finder__summary { color: var(--rgs-muted); margin: -.4rem 0 1.1rem; }
.rgs-finder__cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .9rem; margin-bottom: 1.1rem; }
.rgs-fcard { display: flex; flex-direction: column; gap: .5rem; padding: .7rem; border: 1px solid var(--rgs-line); border-radius: 10px; background: var(--rgs-bg-2); color: var(--rgs-text) !important; text-decoration: none; transition: border-color .15s, transform .15s; }
a.rgs-fcard:hover { border-color: var(--rgs-accent); transform: translateY(-2px); }
.rgs-fcard__media, .rgs-mcard__media { position: relative; display: block; aspect-ratio: 1; border-radius: 8px; overflow: hidden; background: var(--rgs-bg); }
.rgs-fcard__media img, .rgs-mcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rgs-fcard__name { font-weight: 600; font-size: .9rem; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rgs-fcard__price { color: var(--rgs-accent-text); font-weight: 700; font-size: .95rem; }
.is-locked .rgs-fcard__media img, .is-locked .rgs-mcard__media img { filter: blur(10px) saturate(.8); transform: scale(1.08); }
.rgs-mcard__lock { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); padding: .35rem .7rem; border-radius: 999px; background: rgba(6, 10, 19, .78); color: #fff; font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.rgs-finder__actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; }
.rgs-finder__actions p { margin: 0; color: var(--rgs-muted); }

/* ---------- Members area cards with sample product photo ---------- */
.rgs-mcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 1rem; }
.rgs-mcard { display: flex; flex-direction: column; border: 1px solid var(--rgs-line); border-radius: var(--rgs-radius); background: var(--rgs-surface); overflow: hidden; color: var(--rgs-text) !important; text-decoration: none !important; transition: border-color .15s, transform .15s; }
.rgs-mcard:hover { border-color: var(--rgs-accent); transform: translateY(-2px); }
.rgs-mcard__media { border-radius: 0; aspect-ratio: 4 / 3; }
.rgs-mcard__body { display: flex; flex-direction: column; gap: .2rem; padding: .85rem 1rem 1rem; }
.rgs-mcard__body strong { font-family: var(--wp--preset--font-family--display); font-size: 1rem; }
.rgs-mcard__body span { color: var(--rgs-muted); font-size: .88rem; }

/* ---------- v1.3.1 customer experience ---------- */
/* Hero: smaller brand art so the headline and buttons sit higher on laptops */
.rgs-brand-art { max-height: 34vh; }
@media (max-width: 640px) { .rgs-brand-art { max-height: 26vh; } }
/* Scroll reveal: start a little before a section enters the screen, shorter and subtler */
.rgs-js .rgs-reveal { transform: translateY(10px); transition-duration: .4s; }

/* Header search (icon that opens a field) */
.rgs-header .rgs-search { margin: 0; }
.rgs-header .rgs-search .wp-block-search__inside-wrapper { border: 1px solid var(--rgs-line-strong); border-radius: 8px; background: var(--rgs-surface); padding: 2px; }
.rgs-header .rgs-search.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper { border-color: transparent; background: transparent; }
.rgs-header .rgs-search .wp-block-search__input { background: transparent; border: 0; color: var(--rgs-text); min-width: 200px; padding: .45rem .6rem; font-size: .9rem; }
.rgs-header .rgs-search .wp-block-search__input::placeholder { color: var(--rgs-muted); }
html body .rgs-header .rgs-search .wp-block-search__button { background: transparent !important; color: var(--rgs-text) !important; border: 0; padding: .45rem; margin: 0; min-width: 38px; min-height: 38px; border-radius: 8px; }
html body .rgs-header .rgs-search .wp-block-search__button:hover { background: var(--rgs-accent-soft) !important; }
.rgs-header .rgs-search .wp-block-search__button svg { fill: currentColor; width: 20px; height: 20px; }
@media (max-width: 600px) { .rgs-header .rgs-search .wp-block-search__input { min-width: 140px; } }

/* Product rows (home "New arrivals", product page "You may also like") */
.rgs-section--tight { padding-top: clamp(1.5rem, 4vw, 2.5rem) !important; padding-bottom: clamp(1.5rem, 4vw, 2.5rem) !important; }
.rgs-row-head { margin-bottom: 1rem; gap: 1rem; }
.rgs-row-head h2 { margin: 0; }
.rgs-row-head p { margin: 0; }
.rgs-prow { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
@media (max-width: 900px) { .rgs-prow { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rgs-related { margin-top: 2.5rem; }
.rgs-related h2 { font-size: 2rem; margin: 0 0 1rem; }
@media (max-width: 781px) { .rgs-related h2 { font-size: 1.5rem; } }

/* Shop category chips */
.rgs-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: .9rem 0 .4rem; }
.rgs-chip { display: inline-flex; align-items: center; min-height: 36px; padding: .4rem .9rem; border: 1px solid var(--rgs-line-strong); border-radius: 999px; color: var(--rgs-text) !important; text-decoration: none !important; font-size: .85rem; font-weight: 600; background: var(--rgs-surface); transition: border-color .15s, background .15s; }
.rgs-chip:hover { border-color: var(--rgs-accent); }
.rgs-chip.is-on { background: var(--rgs-accent); border-color: var(--rgs-accent); color: #fff !important; }
@media (max-width: 640px) { .rgs-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-bottom: .2rem; } .rgs-chip { flex: 0 0 auto; } }

/* Product page: calmer title, short breadcrumb on phones */
html body.single-product .wp-block-post-title { font-size: clamp(1.35rem, 2.6vw, 2rem) !important; line-height: 1.25; }
@media (max-width: 640px) {
	.single-product .woocommerce-breadcrumb, .single-product .wc-block-breadcrumbs { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

/* Sign-in page for visitors */
.rgs-join { grid-column: 1 / -1; max-width: 760px; margin: 0 auto 2rem; padding: 1.4rem 1.6rem; border: 1px solid var(--rgs-line); border-left: 3px solid var(--rgs-accent); border-radius: var(--rgs-radius); background: var(--rgs-surface); }
.rgs-join h2 { margin: .2rem 0 .8rem; font-size: var(--wp--preset--font-size--large); }
.rgs-join__list { margin: 0; padding-left: 1.1rem; color: var(--rgs-muted); }
.rgs-join__list li { margin: .3rem 0; }
.rgs-join__back { margin: .8rem 0 0; font-size: .9rem; color: var(--rgs-accent-text); }
html body .woocommerce form :is(select, .select2-selection--single), html body .woocommerce-form-register select { min-height: 44px !important; }
html body .woocommerce form.woocommerce-form-register select, html body .woocommerce form.woocommerce-form-register select.input-text { height: 47px !important; min-height: 47px !important; padding: 0 .8rem !important; background-color: var(--rgs-surface) !important; color: var(--rgs-text) !important; border: 1px solid var(--rgs-line-strong) !important; border-radius: 8px !important; }
/* Sign-in page for visitors: remove the large empty gap above the panel */
body.woocommerce-account:not(.logged-in) .rgs-page-body :is(.e-con, .e-con-inner, .elementor-element) { padding-top: 0 !important; margin-top: 0 !important; }
body.woocommerce-account:not(.logged-in) .rgs-page-head { padding-bottom: .5rem !important; }

/* Back to top */
.rgs-totop { position: fixed; right: 18px; bottom: 90px; z-index: 60; width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--rgs-line-strong); background: var(--rgs-surface); color: var(--rgs-text); box-shadow: var(--rgs-shadow); cursor: pointer; opacity: 0; transform: translateY(8px); transition: opacity .2s, transform .2s; }
.rgs-totop.is-on { opacity: 1; transform: none; }
.rgs-totop:hover { border-color: var(--rgs-accent); color: var(--rgs-accent-text); }

/* My Account menu */
html body .woocommerce-MyAccount-navigation li a { color: var(--rgs-muted) !important; }
html body .woocommerce-MyAccount-navigation li.is-active a, html body .woocommerce-MyAccount-navigation li a:hover { color: var(--rgs-text) !important; }
/* Product prices and site title */
html body .wp-site-blocks :is(.woocommerce-Price-amount, .woocommerce-Price-amount bdi, .wc-block-components-product-price, .wps_sfw_interval) { color: inherit; }
html body .wp-site-blocks .wp-block-site-title a { color: var(--rgs-text); }
/* Old front-ends module button (gold) */
html body .rgns-fe-cta { color: #10141c !important; }

/* 1.3.4: Cart and checkout express buttons use the full column width; gap between PayPal and WooPay */
html body:is(.woocommerce-cart, .woocommerce-checkout) :is(.wcpay-express-checkout-wrapper, .ppcp-messages, .ppc-button-wrapper) { max-width: none !important; }
html body.woocommerce-cart .wcpay-express-checkout-wrapper { margin-top: 14px !important; }
/* Checkout order summary: product thumbnails */
html body .woocommerce-checkout-review-order-table td.product-name { vertical-align: middle; }
html body .rgs-co-thumb { display: inline-block; width: 56px; height: 56px; margin: 0 0.75rem 0 0; vertical-align: middle; border-radius: 8px; overflow: hidden; background: #fff; flex: none; }
html body .rgs-co-thumb img { width: 100% !important; height: 100% !important; object-fit: cover; display: block; margin: 0 !important; }
@media (max-width: 600px) { html body .rgs-co-thumb { width: 44px; height: 44px; margin-right: 0.5rem; } }

/* 1.3.5: Product page - "You may also like" uses the same wide width as "Related products"; both show one row of 4 */
html body.single-product .rgs-related { max-width: var(--wp--style--global--wide-size, 1320px) !important; }
html body.single-product .wp-block-woocommerce-product-collection .wc-block-product-template { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 16px !important; margin: 0 !important; padding: 0 !important; }
html body.single-product .wp-block-woocommerce-product-collection .wc-block-product-template > li { width: auto !important; max-width: none !important; margin: 0 !important; }
html body.single-product .wp-block-woocommerce-product-collection .wc-block-product-template > li:nth-child(n+5) { display: none !important; }
@media (max-width: 900px) { html body.single-product .wp-block-woocommerce-product-collection .wc-block-product-template { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }

/* 1.3.5: Klaviyo chat (Kai) - its colour settings are black text on a black panel; use the site's dark palette */
html:root {
	--atlas-text-primary: #e8ecf4;
	--atlas-text-secondary: rgba(232, 236, 244, 0.68);
	--atlas-heading-text-primary: #ffffff;
	--atlas-heading-text-secondary: rgba(255, 255, 255, 0.68);
	--atlas-text-primary-inverse: #ffffff;
	--atlas-background-main: #10141c;
	--atlas-background-content: #161c28;
	--atlas-button-primary: #2f7bff;
	--atlas-primary-color: #2f7bff;
	--atlas-favorites-hub-icon-color: #ffffff;
	--atlas-faq-font-color: #e8ecf4;
}
