/*
Theme Name: RIVERRISE Guide
Theme URI: https://riverriseagency.com/guide-theme/
Author: RIVERRISE
Author URI: https://riverriseagency.com
Description: A booking-first block theme for fishing guides, charters and outfitters. Change your logo, colors and fonts from the Site Editor, build pages from ready-made sections for trips, rates, waters, seasons and reviews, and take bookings with RIVERRISE BOOKINGS.
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: riverrise-guide
Tags: block-patterns, block-styles, full-site-editing, style-variations, custom-colors, custom-logo, custom-menu, editor-style, wide-blocks, one-column, two-columns, three-columns, four-columns, translation-ready, blog, portfolio
*/

/* Every color, font and size below reads from the Site Editor settings
   (--wp--preset--*), so changes in Appearance > Editor > Styles flow everywhere. */

:root {
	--rrg-accent: var(--wp--preset--color--accent);
	--rrg-dark: var(--wp--preset--color--dark);
	--rrg-line: var(--wp--preset--color--line);
	--rrg-radius: var(--wp--custom--radius, 0px);
	--rrg-header-h: 96px;
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { height: auto; }
.wp-site-blocks { overflow-x: clip; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.rrg-main > .wp-block-post-content > *:first-child { margin-block-start: 0; }
:focus-visible { outline: 2px solid var(--rrg-accent); outline-offset: 3px; }
strong, b { font-weight: 600; }

/* ---------- eyebrow, script, lead ---------- */
.rrg-eyebrow {
	display: flex; align-items: center; gap: 0.85rem;
	margin: 0 0 0.9rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; line-height: 1.4;
	color: var(--wp--preset--color--accent-text);
}
.rrg-eyebrow::before { content: ""; width: 30px; height: 1px; background: currentColor; flex: none; }
.rrg-eyebrow.has-text-align-center { justify-content: center; }
.rrg-eyebrow.has-text-align-center::after { content: ""; width: 30px; height: 1px; background: currentColor; flex: none; }
.rrg-eyebrow-row .rrg-eyebrow::before { display: none; }
.rrg-on-dark .rrg-eyebrow, .rrg-hero .rrg-eyebrow, .rrg-band .rrg-eyebrow, .rrg-cta .rrg-eyebrow,
.has-dark-background-color .rrg-eyebrow, .has-dark-2-background-color .rrg-eyebrow { color: var(--rrg-accent); }
.rrg-script { font-family: var(--wp--preset--font-family--accent); font-weight: 600; line-height: 1.25; }
.rrg-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; color: var(--wp--preset--color--contrast-2); }
.has-dark-background-color .rrg-lead, .rrg-on-dark .rrg-lead { color: color-mix(in srgb, var(--wp--preset--color--on-dark) 78%, transparent); }
.rrg-center-head { max-width: 760px; margin-inline: auto; text-align: center; }
.rrg-center-head > * { margin-inline: auto; }
mark.has-inline-color { background: transparent; }

/* ---------- buttons ---------- */
.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: 0.6em; text-align: center; transition: background-color .2s, border-color .2s, color .2s, transform .2s; }
.wp-block-button__link:hover { transform: translateY(-1px); }
.wp-block-button.is-style-outline > .wp-block-button__link {
	background: transparent; color: var(--wp--preset--color--contrast); border: 1px solid currentColor; padding: 1.05rem 1.75rem;
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); border-color: var(--wp--preset--color--contrast); }
.rrg-hero .is-style-outline > .wp-block-button__link, .rrg-cta .is-style-outline > .wp-block-button__link, .rrg-band .is-style-outline > .wp-block-button__link,
.has-dark-background-color .is-style-outline > .wp-block-button__link, .rrg-on-dark .is-style-outline > .wp-block-button__link { color: #fff; border-color: rgba(255,255,255,.7); }
.rrg-hero .is-style-outline > .wp-block-button__link:hover, .rrg-cta .is-style-outline > .wp-block-button__link:hover, .rrg-band .is-style-outline > .wp-block-button__link:hover,
.has-dark-background-color .is-style-outline > .wp-block-button__link:hover, .rrg-on-dark .is-style-outline > .wp-block-button__link:hover { background: rgba(255,255,255,.12); color: #fff; border-color: #fff; }
.wp-block-button.is-style-rrg-link > .wp-block-button__link {
	background: none; border: 0; border-bottom: 2px solid var(--rrg-accent); border-radius: 0; padding: 0 0 3px; color: var(--wp--preset--color--contrast);
}
.has-dark-background-color .is-style-rrg-link > .wp-block-button__link, .rrg-on-dark .is-style-rrg-link > .wp-block-button__link, .rrg-tile .is-style-rrg-link > .wp-block-button__link { color: #fff; }
.wp-block-button.is-style-rrg-link > .wp-block-button__link:hover { transform: none; color: var(--wp--preset--color--accent-text); }
.rrg-btn-sm > .wp-block-button__link { padding: 0.8rem 1.15rem; font-size: 0.74rem; }
.wp-block-buttons { gap: 0.85rem; }

/* ---------- header ---------- */
.rrg-site-header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 60; }
.rrg-site-header:has(.is-overlay) { position: fixed; left: 0; right: 0; }
.rrg-header { transition: background-color .3s, box-shadow .3s, padding .3s; color: #fff; }
.rrg-header.is-solid-always, .rrg-site-header.is-scrolled .rrg-header { background: color-mix(in srgb, var(--rrg-dark) 97%, transparent); box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.rrg-site-header.is-scrolled .rrg-header { padding-top: 0.6rem !important; padding-bottom: 0.6rem !important; }
.rrg-header .wp-block-site-logo img { transition: width .3s; max-height: 72px; width: auto; object-fit: contain; }
.rrg-site-header.is-scrolled .wp-block-site-logo img { max-height: 54px; }
.rrg-header .wp-block-site-title a { color: #fff; }
.rrg-header .wp-block-site-logo + .wp-block-site-title { display: none; }
.rrg-header .wp-block-site-logo:empty + .wp-block-site-title, .rrg-brand:not(:has(img)) .wp-block-site-title { display: block; }
.rrg-header .wp-block-navigation a { color: #fff; opacity: .92; transition: color .2s, opacity .2s; }
.rrg-header .wp-block-navigation a:hover, .rrg-header .wp-block-navigation .current-menu-item > a { opacity: 1; color: var(--rrg-accent); }
.rrg-header .wp-block-navigation__submenu-container { background: var(--rrg-dark) !important; border: 0 !important; border-top: 2px solid var(--rrg-accent) !important; padding: 0.5rem 0; min-width: 230px !important; box-shadow: 0 18px 40px rgba(0,0,0,.35); }
.rrg-header .wp-block-navigation__submenu-container a { padding: 0.6rem 1.2rem !important; }
.rrg-header .wp-block-navigation__responsive-container-open { color: #fff; }
.rrg-header .wp-block-navigation__responsive-container.is-menu-open { padding: 2rem; }
.rrg-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; font-family: var(--wp--preset--font-family--heading); text-transform: var(--rrg-heading-transform, uppercase); }
.rrg-header-in { gap: 1.5rem; }
@media (max-width: 781px) {
	.rrg-header-nav .rrg-header-cta { order: -1; }
	.rrg-header-nav { gap: 0.9rem !important; }
	.rrg-header .wp-block-site-logo img { max-height: 54px; }
}

/* ---------- hero (cover) ---------- */
.rrg-hero { min-height: 92vh; min-height: 92svh; align-items: flex-end !important; padding-top: calc(var(--rrg-header-h) + 3rem) !important; padding-bottom: clamp(4rem, 8vw, 7rem) !important; }
.rrg-hero.is-sub { min-height: 68vh; min-height: 68svh; }
.rrg-hero .wp-block-cover__background,
.rrg-band .wp-block-cover__background,
.rrg-cta .wp-block-cover__background { opacity: 1 !important; background: none !important; }
.rrg-hero::after, .rrg-band::after, .rrg-cta::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.rrg-hero::after { background: linear-gradient(90deg, color-mix(in srgb, var(--rrg-dark) 80%, transparent) 0%, color-mix(in srgb, var(--rrg-dark) 40%, transparent) 48%, transparent 80%), linear-gradient(180deg, color-mix(in srgb, var(--rrg-dark) 55%, transparent) 0%, transparent 28%, color-mix(in srgb, var(--rrg-dark) 25%, transparent) 60%, color-mix(in srgb, var(--rrg-dark) 92%, transparent) 100%); }
.rrg-hero .wp-block-cover__inner-container, .rrg-band .wp-block-cover__inner-container, .rrg-cta .wp-block-cover__inner-container { z-index: 2; position: relative; }
.rrg-hero h1 { color: #fff; text-shadow: 0 2px 26px rgba(0,0,0,.4); margin: 0 0 0.25em; }
.rrg-hero h1 mark { display: inline-block; }
.rrg-hero .rrg-script { font-size: clamp(1.45rem, 2.6vw, 2.3rem); color: #eef3ee; margin: 0 0 1.4rem; max-width: 760px; }
.rrg-hero .rrg-hero-sub { font-size: var(--wp--preset--font-size--large); color: #e7ece8; max-width: 660px; margin: 0 0 1.4rem; text-shadow: 0 2px 16px rgba(0,0,0,.45); }
.rrg-loc { display: flex; flex-wrap: wrap; gap: 0.5rem 1.4rem; list-style: none; padding: 0; margin: 0 0 1.9rem; font-size: var(--wp--preset--font-size--small); color: #e2e8e3; }
.rrg-loc li { display: flex; align-items: center; margin: 0; }
.rrg-loc li::before { content: ""; display: inline-block; width: 7px; height: 7px; background: var(--rrg-accent); margin-right: 0.6rem; transform: rotate(45deg); flex: none; }
@media (max-width: 600px) {
	.rrg-hero { min-height: 86svh; }
	.rrg-hero .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.rrg-hero .wp-block-button { width: 100%; }
	.rrg-hero .wp-block-button__link { width: 100%; }
}

/* ---------- ribbon ---------- */
.rrg-ribbon { background: var(--rrg-accent); color: var(--wp--preset--color--on-accent); }
.rrg-ribbon .rrg-ribbon-in { gap: 0.8rem 2rem; }
.rrg-ribbon p { margin: 0; font-size: var(--wp--preset--font-size--small); font-weight: 500; display: flex; align-items: center; gap: 0.6rem; }
.rrg-ribbon p::before { content: ""; width: 6px; height: 6px; background: currentColor; transform: rotate(45deg); flex: none; }
.rrg-ribbon strong { font-family: var(--wp--preset--font-family--heading); font-size: 1.2rem; font-weight: 700; }

/* ---------- framed photo + checklist ---------- */
.rrg-frame { position: relative; margin: 0; padding: 0 1.25rem 1.25rem 0; }
.rrg-frame::before { content: ""; position: absolute; top: -14px; left: -14px; right: 1.75rem; bottom: 2.25rem; border: 1px solid var(--rrg-accent); pointer-events: none; }
.rrg-frame .wp-block-image { margin: 0; position: relative; }
.rrg-frame .wp-block-image img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; }
.rrg-frame-tag { position: absolute; right: 0; bottom: 0; max-width: 250px; background: var(--rrg-accent); color: var(--wp--preset--color--on-accent); padding: 1.1rem 1.25rem; z-index: 2; }
.rrg-frame-tag p { margin: 0; font-size: 0.74rem; letter-spacing: .1em; text-transform: uppercase; line-height: 1.5; }
.rrg-frame-tag p:first-child { font-family: var(--wp--preset--font-family--heading); font-size: 1.75rem; letter-spacing: .01em; line-height: 1; margin-bottom: 0.4rem; font-weight: 700; text-transform: none; }
.rrg-checks { list-style: none; padding: 0; margin: 1.4rem 0; display: grid; gap: 0.7rem; }
.rrg-checks.is-two-col { grid-template-columns: 1fr 1fr; gap: 0.7rem 1.5rem; }
.rrg-checks li { position: relative; padding-left: 1.6rem; font-weight: 400; line-height: 1.45; }
.rrg-checks li::before { content: ""; position: absolute; left: 0; top: 0.42em; width: 8px; height: 8px; background: var(--rrg-accent); transform: rotate(45deg); }
@media (max-width: 600px) { .rrg-checks.is-two-col { grid-template-columns: 1fr; } .rrg-frame-tag { max-width: 70%; } }

/* ---------- trip / rate cards ---------- */
.rrg-cards { gap: clamp(1.25rem, 2.5vw, 1.75rem) !important; }
.rrg-card { background: var(--wp--preset--color--surface); box-shadow: var(--wp--preset--shadow--card); display: flex; flex-direction: column; height: 100%; border-radius: var(--rrg-radius); overflow: hidden; }
.rrg-card > .wp-block-image { margin: 0; overflow: hidden; }
.rrg-card > .wp-block-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; transition: transform .6s; }
.rrg-card:hover > .wp-block-image img { transform: scale(1.04); }
.rrg-card-in { padding: clamp(1.5rem, 3vw, 2rem); display: flex; flex-direction: column; flex: 1; }
.rrg-card-in > * { margin-block: 0; }
.rrg-card-in > * + * { margin-block-start: 0.85rem; }
.rrg-card-in h3 { font-size: clamp(1.6rem, 2.4vw, 2rem); }
.rrg-card-in .rrg-eyebrow::before { display: none; }
.rrg-card-in > p:not(.rrg-eyebrow):not(.rrg-price) { color: var(--wp--preset--color--contrast-2); }
.rrg-card-foot { margin-top: auto !important; padding-top: 1.1rem; border-top: 1px solid var(--rrg-line); align-items: center !important; gap: 1rem !important; }
.rrg-card-in > .rrg-card-foot { margin-block-start: auto !important; }
.rrg-card-in > .rrg-checks { margin: 1rem 0 1.4rem; }
.rrg-price { margin: 0; color: var(--wp--preset--color--contrast-2); font-size: var(--wp--preset--font-size--small); }
.rrg-price strong { font-family: var(--wp--preset--font-family--heading); font-size: 2.2rem; font-weight: 700; color: var(--wp--preset--color--contrast); margin-right: 0.35rem; line-height: 1; }
.rrg-ratelist { list-style: none; padding: 0; margin: 0.6rem 0 1.4rem !important; border-top: 1px solid var(--rrg-line); }
.rrg-ratelist li { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.85rem 0; border-bottom: 1px solid var(--rrg-line); color: var(--wp--preset--color--contrast-2); }
.rrg-ratelist li strong { font-family: var(--wp--preset--font-family--heading); font-size: 1.5rem; color: var(--wp--preset--color--contrast); white-space: nowrap; }

/* ---------- area / species tiles (cover) ---------- */
.rrg-tiles { gap: 1rem !important; }
.rrg-tile { min-height: 440px !important; align-items: flex-end !important; padding: 1.6rem !important; overflow: hidden; height: 100%; }
.rrg-tile .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(180deg, transparent 28%, color-mix(in srgb, var(--rrg-dark) 60%, transparent) 58%, color-mix(in srgb, var(--rrg-dark) 95%, transparent) 100%) !important; }
.rrg-tile .wp-block-cover__image-background { transition: transform .8s; }
.rrg-tile:hover .wp-block-cover__image-background { transform: scale(1.05); }
.rrg-tile .wp-block-cover__inner-container > * { margin-block: 0; }
.rrg-tile .wp-block-cover__inner-container > * + * { margin-block-start: 0.6rem; }
.rrg-tile h3 { color: #fff; font-size: clamp(1.6rem, 2.2vw, 2rem); }
.rrg-tile p { color: #dfe5e1; font-size: var(--wp--preset--font-size--small); line-height: 1.55; }
.rrg-tile .rrg-tag { display: inline-block; background: var(--rrg-accent); color: var(--wp--preset--color--on-accent); font-size: 0.68rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; padding: 0.35rem 0.6rem; line-height: 1.3; }
.rrg-tile .rrg-num { color: var(--rrg-accent); font-size: 0.78rem; letter-spacing: .1em; position: absolute; top: 1.4rem; left: 1.6rem; margin: 0 !important; }
@media (max-width: 781px) { .rrg-tile { min-height: 360px !important; } }

/* ---------- services grid ---------- */
.rrg-services { border-top: 3px solid var(--rrg-accent); gap: 0 !important; }
.rrg-service { background: var(--wp--preset--color--surface); padding: clamp(1.5rem, 3vw, 2rem); border-right: 1px solid var(--rrg-line); border-bottom: 1px solid var(--rrg-line); display: flex; flex-direction: column; align-items: flex-start; height: 100%; }
.rrg-service > * { margin-block: 0; }
.rrg-service > * + * { margin-block-start: 0.6rem; }
.rrg-service .rrg-num { font-family: var(--wp--preset--font-family--heading); color: var(--wp--preset--color--accent-text); font-weight: 700; letter-spacing: .1em; font-size: 0.95rem; }
.rrg-service h3 { font-size: 1.55rem; }
.rrg-service p:not(.rrg-num) { color: var(--wp--preset--color--contrast-2); font-size: 0.97rem; }
.rrg-service .wp-block-buttons { margin-top: auto !important; padding-top: 0.6rem; }

/* ---------- pricing tiers ---------- */
.rrg-tiers { gap: 0 !important; border: 1px solid color-mix(in srgb, var(--rrg-accent) 30%, transparent); }
.rrg-tier { padding: clamp(2rem, 4vw, 2.75rem) clamp(1.5rem, 3vw, 2.25rem); text-align: center; border-right: 1px solid color-mix(in srgb, var(--rrg-accent) 30%, transparent); position: relative; height: 100%; display: flex; flex-direction: column; }
.rrg-tier:last-child { border-right: 0; }
.rrg-tier.is-featured { background: color-mix(in srgb, var(--rrg-accent) 12%, transparent); }
.rrg-tier > * { margin-block: 0; }
.rrg-tier > * + * { margin-block-start: 0.6rem; }
.rrg-tier .rrg-flag { position: absolute; top: 0; left: 50%; transform: translate(-50%, -50%); background: var(--rrg-accent); color: var(--wp--preset--color--on-accent); font-size: 0.66rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; padding: 0.35rem 0.7rem; margin: 0 !important; white-space: nowrap; }
.rrg-tier .rrg-tier-lab { font-size: 0.76rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 600; color: var(--rrg-accent); }
.rrg-tier .rrg-tier-price { font-family: var(--wp--preset--font-family--heading); font-size: clamp(3rem, 5vw, 4rem); font-weight: 700; line-height: 1; margin-block-start: 1rem; }
.rrg-tier .rrg-tier-price sup { font-size: 0.42em; vertical-align: 0.95em; margin-right: 2px; }
.rrg-tier .rrg-tier-note { font-size: var(--wp--preset--font-size--small); opacity: .8; }
.rrg-tier .wp-block-buttons { margin-top: auto !important; padding-top: 1.4rem; justify-content: center; }
.rrg-tier .wp-block-button { width: 100%; }
.rrg-tier .wp-block-button__link { width: 100%; }
@media (max-width: 781px) { .rrg-tier { border-right: 0; border-bottom: 1px solid color-mix(in srgb, var(--rrg-accent) 30%, transparent); } .rrg-tier:last-child { border-bottom: 0; } }

/* ---------- note (no booking fees) ---------- */
.rrg-note { background: var(--wp--preset--color--surface); border-left: 3px solid var(--rrg-accent); padding: 1.4rem 1.75rem !important; gap: 0.5rem 1.75rem !important; color: var(--wp--preset--color--contrast); }
.rrg-note > * { margin: 0 !important; }
.rrg-note .rrg-note-big { font-family: var(--wp--preset--font-family--heading); font-size: 1.6rem; font-weight: 700; line-height: 1.1; white-space: nowrap; color: var(--wp--preset--color--accent-text); }
@media (max-width: 600px) { .rrg-note .rrg-note-big { white-space: normal; } }

/* ---------- steps ---------- */
.rrg-steps { counter-reset: rrg-step; }
.rrg-step { counter-increment: rrg-step; border-top: 2px solid var(--rrg-accent); padding-top: 1.4rem; }
.rrg-step::before { content: counter(rrg-step, decimal-leading-zero); display: block; font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 2.6rem; line-height: 1; color: var(--wp--preset--color--accent-text); margin-bottom: 0.8rem; }
.has-dark-background-color .rrg-step::before { color: var(--rrg-accent); }
.rrg-step > * { margin-block: 0; }
.rrg-step > * + * { margin-block-start: 0.5rem; }
.rrg-step h3 { font-size: 1.45rem; }
.rrg-step p { color: var(--wp--preset--color--contrast-2); font-size: 0.97rem; }

/* ---------- reviews ---------- */
.rrg-quote { margin: 0; background: var(--wp--preset--color--surface); padding: clamp(1.75rem, 3vw, 2.4rem); height: 100%; display: flex; flex-direction: column; position: relative; box-shadow: var(--wp--preset--shadow--card); }
.rrg-quote > * { margin-block: 0; }
.rrg-quote > * + * { margin-block-start: 0.9rem; }
.rrg-quote .rrg-stars { color: var(--rrg-accent); letter-spacing: .14em; font-size: 1rem; line-height: 1; }
.rrg-quote .rrg-quote-text { font-size: 1.12rem; line-height: 1.6; font-weight: 400; }
.rrg-quote .rrg-quote-by { margin-top: auto !important; padding-top: 0.6rem; font-size: 0.78rem; letter-spacing: .16em; text-transform: uppercase; font-weight: 600; color: var(--wp--preset--color--accent-text); }

/* ---------- gallery ---------- */
.wp-block-gallery.is-style-rrg-mosaic { display: grid !important; grid-template-columns: repeat(4, 1fr); grid-auto-rows: clamp(140px, 20vw, 280px); grid-auto-flow: dense; gap: 0.6rem !important; }
.wp-block-gallery.is-style-rrg-mosaic > .wp-block-image { width: auto !important; margin: 0 !important; height: 100%; overflow: hidden; }
.wp-block-gallery.is-style-rrg-mosaic > .wp-block-image:first-child { grid-column: span 2; grid-row: span 2; }
.wp-block-gallery.is-style-rrg-mosaic > .wp-block-image img { width: 100% !important; height: 100% !important; object-fit: cover; transition: transform .6s; }
.wp-block-gallery.is-style-rrg-mosaic > .wp-block-image:hover img { transform: scale(1.04); }
@media (max-width: 781px) { .wp-block-gallery.is-style-rrg-mosaic { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 44vw; } }

/* ---------- FAQ ---------- */
.rrg-faq { border-top: 1px solid var(--rrg-line); }
.rrg-faq .wp-block-details summary { font-weight: 500; font-size: 1.08rem; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.rrg-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.rrg-faq .wp-block-details summary::after { content: ""; width: 9px; height: 9px; border-right: 2px solid var(--rrg-accent); border-bottom: 2px solid var(--rrg-accent); transform: rotate(45deg); transition: transform .25s; flex: none; margin-right: 4px; }
.rrg-faq .wp-block-details[open] summary::after { transform: rotate(225deg); }
.rrg-faq .wp-block-details[open] summary { color: var(--wp--preset--color--accent-text); }
.rrg-faq .wp-block-details > :not(summary) { color: var(--wp--preset--color--contrast-2); margin-top: 0.75rem; }

/* ---------- band + CTA (cover) ---------- */
.rrg-band::after { background: linear-gradient(90deg, color-mix(in srgb, var(--rrg-dark) 94%, transparent) 0%, color-mix(in srgb, var(--rrg-dark) 70%, transparent) 45%, color-mix(in srgb, var(--rrg-dark) 12%, transparent) 100%); }
.rrg-band h2, .rrg-cta h2 { color: #fff; }
.rrg-band .rrg-band-box { max-width: 560px; }
.rrg-band .rrg-band-box p:not(.rrg-eyebrow) { color: #e1e7e3; }
.rrg-cta::after { background: color-mix(in srgb, var(--rrg-dark) 84%, transparent); }
.rrg-cta { text-align: center; }
.rrg-cta p { color: #e1e7e3; max-width: 640px; margin-inline: auto; }
.rrg-cta .wp-block-site-logo { margin-inline: auto; margin-bottom: 1.4rem; }
.rrg-cta .wp-block-site-logo img { max-height: 120px; width: auto; }
@media (max-width: 600px) { .rrg-cta .wp-block-buttons, .rrg-band .wp-block-buttons { flex-direction: column; align-items: stretch; } .rrg-cta .wp-block-button__link, .rrg-band .wp-block-button__link { width: 100%; } }

/* ---------- article + facts aside ---------- */
.rrg-twocol { gap: clamp(2.5rem, 6vw, 4.5rem) !important; align-items: flex-start; }
.rrg-twocol > .wp-block-column { min-width: 0; }
.rrg-article h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); }
.rrg-article h3 { margin-top: 2rem; }
.rrg-facts { position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + 110px); background: var(--wp--preset--color--surface); border-top: 3px solid var(--rrg-accent); padding: 2rem !important; box-shadow: var(--wp--preset--shadow--card); }
.rrg-facts h3 { margin: 0 0 1rem; font-size: 1.5rem; }
.rrg-facts .wp-block-table { margin: 0; }
.rrg-facts table { border: 0; font-size: 0.95rem; }
.rrg-facts td { border: 0; padding: 0.4rem 0; vertical-align: top; }
.rrg-facts td:first-child { color: var(--wp--preset--color--contrast-2); padding-right: 1rem; white-space: nowrap; }
.rrg-facts td:last-child { font-weight: 500; }
.rrg-facts .wp-block-buttons, .rrg-facts .wp-block-button, .rrg-facts .wp-block-button__link { width: 100%; }
.rrg-facts .rrg-facts-call { text-align: center; font-size: var(--wp--preset--font-size--small); margin: 0.9rem 0 0; }
@media (max-width: 781px) { .rrg-facts { position: static; } }

/* ---------- tables ---------- */
.wp-block-table.is-style-rrg-rates { overflow-x: auto; }
.wp-block-table.is-style-rrg-rates table { border-collapse: collapse; min-width: 420px; width: 100%; }
.wp-block-table.is-style-rrg-rates thead { border: 0; }
.wp-block-table.is-style-rrg-rates th { text-align: left; font-size: 0.72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--wp--preset--color--contrast-2); border: 0; border-bottom: 2px solid var(--rrg-accent); padding: 0.7rem 0.9rem; font-weight: 600; }
.wp-block-table.is-style-rrg-rates td { border: 0; border-bottom: 1px solid var(--rrg-line); padding: 0.9rem; }
.wp-block-table.is-style-rrg-rates td:last-child { font-family: var(--wp--preset--font-family--heading); font-weight: 700; font-size: 1.25rem; white-space: nowrap; }

/* ---------- posts ---------- */
.rrg-post-card { background: var(--wp--preset--color--surface); height: 100%; box-shadow: var(--wp--preset--shadow--card); }
.rrg-post-card .wp-block-post-featured-image { margin: 0; }
.rrg-post-card-in { padding: 1.5rem 1.6rem 1.8rem; }
.rrg-post-card-in > * { margin-block: 0; }
.rrg-post-card-in > * + * { margin-block-start: 0.6rem; }
.rrg-post-card .wp-block-post-title a { text-decoration: none; color: var(--wp--preset--color--contrast); }
.rrg-post-card .wp-block-post-excerpt { color: var(--wp--preset--color--contrast-2); font-size: 0.97rem; }

/* ---------- footer ---------- */
.rrg-footer .rrg-footer-h { font-family: var(--wp--preset--font-family--body); font-size: 0.74rem; letter-spacing: .2em; text-transform: uppercase; color: var(--rrg-accent); font-weight: 600; margin-bottom: 1.1rem; }
.rrg-footer .wp-block-navigation { font-size: 0.92rem; text-transform: none; letter-spacing: 0; font-weight: 300; }
.rrg-footer .wp-block-navigation a { color: color-mix(in srgb, var(--wp--preset--color--on-dark) 82%, transparent); }
.rrg-footer .wp-block-navigation a:hover { color: var(--rrg-accent); }
.rrg-footer a { text-decoration: none; }
.rrg-footer .wp-block-site-logo img { max-height: 110px; width: auto; }
.rrg-footer .wp-block-site-title { font-size: 1.15rem; }
.rrg-footer .wp-block-site-logo + .wp-block-site-title { display: none; }
.rrg-footer-nap { line-height: 1.75; color: color-mix(in srgb, var(--wp--preset--color--on-dark) 82%, transparent); }
.rrg-footer-bar { margin-top: var(--wp--preset--spacing--50) !important; padding-top: 1.4rem; border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--on-dark) 14%, transparent); color: color-mix(in srgb, var(--wp--preset--color--on-dark) 60%, transparent); gap: 0.5rem 2rem !important; }
.rrg-footer-bar p { margin: 0; }
.rrg-footer-bar a { color: var(--rrg-accent) !important; }

/* ---------- utility ---------- */
.rrg-map iframe, iframe.rrg-map { width: 100%; height: 420px; border: 0; display: block; filter: grayscale(.15); }
.rrg-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.rrg-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .rrg-reveal { opacity: 1; transform: none; transition: none; } * { scroll-behavior: auto !important; } }
.editor-styles-wrapper .rrg-reveal { opacity: 1; transform: none; }
.editor-styles-wrapper .rrg-site-header:has(.is-overlay) { position: relative; }
.editor-styles-wrapper .rrg-header.is-overlay { background: var(--rrg-dark); }

/* ---------- refinements ---------- */
.rrg-tier .rrg-flag + * { margin-block-start: 0; }
.rrg-note { flex-wrap: nowrap !important; align-items: center !important; }
.rrg-note > p:last-child { flex: 1 1 320px; }
@media (max-width: 700px) { .rrg-note { flex-wrap: wrap !important; } }
.rrg-faq { border-top: 0; }
.rrg-faq > .wp-block-details:first-child { border-top: 1px solid var(--rrg-line); }
.wp-block-post-content > .alignfull, .wp-block-post-content > .rrg-section { margin-block-start: 0 !important; margin-block-end: 0 !important; }
