/*
Theme Name: Rollins Wood Community
Theme URI: https://RollinsWoodCommunity.org
Author: Rollins Wood Community
Author URI: https://RollinsWoodCommunity.org
Description: A lightweight, accessible theme for the Rollins Wood Community forest and community garden. Features excellent blog/news UX and seamless integration with the RW Trail plugin.
Version: 1.0.3
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rollins-wood-community
Tags: blog, community, nature, accessibility-ready, block-patterns, custom-colors, custom-logo, editor-style, featured-images, wide-blocks
*/

/* ==========================================================================
   CSS Custom Properties (Design Tokens)
   ========================================================================== */

:root {
  /* Brand Colors - Bridged to theme.json presets as Source of Truth */
  --rw-ink: var(--wp--preset--color--ink, #26251f);
  --rw-forest: var(--wp--preset--color--forest, #1a3c34);
  --rw-forest-hover: var(--wp--preset--color--forest-hover, #143029);
  --rw-forest-rgb: 26, 60, 52;
  --rw-sky: var(--wp--preset--color--sky, #1a3c34);
  --rw-sky-rgb: 26, 60, 52;
  /* Sky now maps to forest for backwards compatibility */
  --rw-leaf: var(--wp--preset--color--leaf, #1a3c34);
  /* Legacy → Forest */
  --rw-bark: var(--wp--preset--color--bark, #8B7355);
  --rw-brown-1: var(--wp--preset--color--brown-1, #6B5A42);
  --rw-brown-2: var(--wp--preset--color--brown-2, #4B3C2A);
  --rw-teal: var(--wp--preset--color--teal, #1a3c34);
  /* Legacy → Forest */
  --rw-berry: var(--wp--preset--color--berry, #1a3c34);
  /* Legacy → Forest */
  --rw-white: var(--wp--preset--color--white, #FFFFFF);
  --rw-cream: var(--wp--preset--color--cream, #fefefe);
  --rw-base: var(--wp--preset--color--base, var(--rw-brown-2));
  --rw-facebook: var(--wp--preset--color--facebook, #1877F2);
  --rw-whatsapp: var(--wp--preset--color--whatsapp, #25D366);
  --rw-x: var(--wp--preset--color--x, #000000);
  --rw-leaf-hover: color-mix(in srgb, var(--rw-leaf) 85%, var(--rw-ink));
  --rw-badge-open-bg: color-mix(in srgb, var(--rw-leaf) 20%, transparent);
  --rw-badge-open-text: color-mix(in srgb, var(--rw-leaf) 80%, var(--rw-brown-2));
  --rw-badge-member-bg: color-mix(in srgb, var(--rw-forest) 15%, transparent);
  --rw-badge-volunteer-bg: color-mix(in srgb, var(--rw-bark) 25%, transparent);

  /* Semantic Colors - bridged to customizer tokens with primary fallbacks */
  --rw-text: var(--rwc-color-text-primary, var(--rw-ink));
  --rw-text-muted: var(--rwc-color-text-muted, var(--wp--preset--color--text-muted, #5A4D3C));
  /* Darkened for robust WCAG AAA compliance on light backgrounds */
  --rw-link: var(--rwc-color-primary, var(--rw-forest));
  --rw-link-hover: var(--rwc-color-accent, var(--rw-forest-hover));
  --rw-bg: var(--rwc-color-background, var(--wp--preset--color--background, #f7f6f3));
  --rw-bg-alt: var(--rwc-color-surface, var(--wp--preset--color--background-alt, #f0efeb));
  --rw-border: var(--rwc-color-border, var(--wp--preset--color--ui-border, #e5e4df));
  --rw-accent: var(--rwc-color-secondary, var(--rw-forest));

  /* Additional mapped tokens */
  --rw-header-width: var(--rwc-header-width, var(--rw-container-xl));
  --rw-menu-gap: var(--rwc-menu-gap, 1.5rem);
  --rw-logo-height: var(--rwc-logo-height, 64px);
  --rw-footer-bg: var(--rwc-footer-bg, var(--rw-ink));
  --rw-border-radius: var(--rwc-border-radius, 0.5rem);

  --rw-button-radius: var(--rwc-button-radius, 0.5rem);
  --rw-button-padding: var(--rwc-button-padding, 0.625rem 1.25rem);
  --rw-button-font-size: var(--rwc-button-font-size, 0.9375rem);

  /* Typography Scale */
  --rw-font-sans: "Lunasima", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --rw-font-display: var(--rw-font-sans);

  --rw-text-xs: 0.75rem;
  --rw-text-sm: 0.875rem;
  --rw-text-base: 1rem;
  --rw-text-lg: 1.125rem;
  --rw-text-xl: 1.25rem;
  --rw-text-2xl: 1.5rem;
  --rw-text-3xl: 1.875rem;
  --rw-text-4xl: 2.25rem;
  --rw-text-5xl: 3rem;

  --rw-leading-tight: 1.25;
  --rw-leading-normal: 1.6;
  --rw-leading-relaxed: 1.75;

  /* Spacing Scale - Bridged to theme.json presets */
  --rw-space-1: 0.25rem;
  --rw-space-2: var(--wp--preset--spacing--10, 0.5rem);
  --rw-space-3: 0.75rem;
  --rw-space-4: var(--wp--preset--spacing--20, 1rem);
  --rw-space-5: 1.25rem;
  --rw-space-6: var(--wp--preset--spacing--30, 1.5rem);
  --rw-space-8: var(--wp--preset--spacing--40, 1.75rem);
  --rw-space-10: 2rem;
  --rw-space-12: var(--wp--preset--spacing--50, 2.5rem);
  --rw-space-16: var(--wp--preset--spacing--60, 3rem);
  --rw-space-20: var(--wp--preset--spacing--70, 4rem);
  --rw-space-24: var(--wp--preset--spacing--80, 5rem);
  --rw-space-32: 6rem;

  /* Layout */
  --rw-container-sm: 40rem;
  --rw-container-md: 48rem;
  --rw-container-lg: 76rem;
  --rw-container-xl: 96rem;

  /* Transitions */
  --rw-transition-fast: 150ms ease;
  --rw-transition-base: 250ms ease;

  /* Shadows - Subtle for traditional feel */
  --rw-shadow-sm: 0 1px 2px rgba(26, 60, 52, 0.03);
  --rw-shadow-md: 0 2px 4px rgba(26, 60, 52, 0.05);
  --rw-shadow-lg: 0 4px 8px rgba(26, 60, 52, 0.06);

  /* Border Radius - Unified across all components */
  --rw-radius: 0.5rem;
  --rw-radius-sm: 0.5rem;
  --rw-radius-md: 0.5rem;
  --rw-radius-lg: 0.5rem;
  --rw-radius-full: 9999px;
  /* Shared Tokens */
  --rw-focus-ring: 0 0 0 3px rgba(var(--rw-forest-rgb), 0.25);
}

/* ==========================================================================
   Base Reset & Typography
   ========================================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Inherit fonts for form elements */
button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}

/* Targeted Reset for UI components */
.menu-toggle,
.mobile-nav__close,
.search-inline__submit,
.search-modal .search-submit,
.search-modal__close {
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
  border: 0;
  padding: 0;
}

html {
  font-size: 100%;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  scrollbar-gutter: stable;
}

html,
body {
  overflow-x: hidden;
}

body {
  margin: 0;
  padding-top: 5.5rem;
  /* Match mobile header height */
  font-family: var(--rwc-body-font, var(--rw-font-sans));
  font-size: var(--rwc-base-font-size, var(--rw-text-base));
  line-height: var(--rwc-line-height, var(--rw-leading-normal));
  font-weight: var(--rwc-body-weight, 400);
  color: var(--rw-text);
  background-color: var(--rw-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  max-width: 100%;
}

.has-sticky-header body {
  padding-top: 5.5rem;
  /* Only add padding if sticky */
}

body:not(.has-sticky-header) {
  padding-top: 0;
}

@media (min-width: 1024px) {
  body {
    padding-top: 6.5rem;
    /* Match desktop header height */
  }
}

/* Consistent focus ring across interactive elements */
:where(a, button, input, textarea, select, summary, [role="button"], [tabindex]):focus-visible {
  outline: 2px solid var(--rw-forest);
  outline-offset: 2px;
}

/* Headings - All in dark forest green */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 var(--rw-space-3);
  font-family: var(--rwc-heading-font, var(--rw-font-display));
  font-weight: var(--rwc-heading-weight, 700);
  line-height: var(--rw-leading-tight);
  color: var(--rw-forest);
}

h1 {
  font-size: calc(clamp(2.25rem, 5vw, 3rem) * var(--rwc-heading-scale, 1));
}

h2 {
  font-size: calc(clamp(1.5rem, 3vw, 2rem) * var(--rwc-heading-scale, 1));
}

h3 {
  font-size: calc(clamp(1.5rem, 2.2vw, 1.875rem) * var(--rwc-heading-scale, 1));
}

h4 {
  font-size: calc(var(--rw-text-xl) * var(--rwc-heading-scale, 1));
}

h5 {
  font-size: calc(var(--rw-text-lg) * var(--rwc-heading-scale, 1));
}

h6 {
  font-size: calc(var(--rw-text-base) * var(--rwc-heading-scale, 1));
}



/* Paragraphs & Text */
p {
  margin: 0 0 var(--rw-space-4);
}

.lead {
  font-size: var(--rw-text-xl);
  line-height: var(--rw-leading-relaxed);
  color: var(--rw-text-muted);
}

small,
.text-sm {
  font-size: var(--rw-text-sm);
}

.text-muted {
  color: var(--rw-text-muted);
}

/* Links - Global Defaults: Dark green, underlined */
a {
  color: var(--rw-forest);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--rw-transition-fast);
}

/* Nav links specifically SHOULD NOT be underlined */
.primary-nav__link,
.primary-nav__list>li>a,
.mobile-nav__link,
.mobile-nav__list>li>a,
.footer-nav a,
.site-logo {
  text-decoration: none;
  box-shadow: none;
  border-bottom: none;
}

a:hover,
a:focus-visible {
  color: var(--rw-forest-hover);
  text-decoration: underline;
}

.primary-nav__link:focus-visible,
.mobile-nav__link:focus-visible,
.footer-nav a:focus-visible,
.site-logo:focus-visible {
  border-radius: var(--rw-radius-md);
  outline-offset: 4px;
}

/* Images */
img {
  max-width: 100%;
  height: auto;
  display: block;
}

figure {
  margin: 0 0 var(--rw-space-6);
}

figcaption {
  margin-top: var(--rw-space-2);
  font-size: var(--rw-text-sm);
  color: var(--rw-text-muted);
}

/* Lists */
ul,
ol {
  margin: 0 0 var(--rw-space-4);
  padding-left: var(--rw-space-6);
}

li {
  margin-bottom: var(--rw-space-2);
}

/* Blockquotes */
blockquote {
  margin: var(--rw-space-8) 0;
  padding: var(--rw-space-6);
  background: var(--rw-bg-alt);
  border-left: 4px solid var(--rw-leaf);
  font-size: var(--rw-text-lg);
  font-style: italic;
}

blockquote p:last-child {
  margin-bottom: 0;
}

blockquote cite {
  display: block;
  margin-top: var(--rw-space-4);
  font-size: var(--rw-text-sm);
  font-style: normal;
  color: var(--rw-text-muted);
}

/* Code */
code {
  padding: var(--rw-space-1) var(--rw-space-2);
  font-family: "SF Mono", Monaco, "Cascadia Code", monospace;
  font-size: 0.875em;
  background: var(--rw-bg-alt);
  border-radius: var(--rw-radius-sm);
}

pre {
  margin: var(--rw-space-6) 0;
  padding: var(--rw-space-4);
  overflow-x: auto;
  background: var(--rw-ink);
  color: var(--rw-bg);
  border-radius: var(--rw-radius-md);
}

pre code {
  padding: 0;
  background: transparent;
}

/* ==========================================================================
   Breadcrumb Utility Bar
   ==========================================================================*/
.rwc-breadcrumb-bar {
  display: none;
  background-color: var(--wp--preset--color--mist);
  padding: var(--wp--preset--spacing--20) 0;
  font-size: var(--wp--preset--font-size--xs);
  border-bottom: 1px solid var(--wp--preset--color--border);
}

.rwc-breadcrumb-bar__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.rwc-breadcrumb-bar__item {
  display: flex;
  align-items: center;
  color: var(--rw-text-muted);
}

.rwc-breadcrumb-bar__item+.rwc-breadcrumb-bar__item::before {
  content: "›";
  margin-right: 0.5rem;
  opacity: 0.5;
}

.rwc-breadcrumb-bar__item a {
  color: var(--rw-text-color);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease;
}

.rwc-breadcrumb-bar__item a:hover {
  border-color: currentColor;
}

.rwc-breadcrumb-bar__item [aria-current="page"] {
  color: var(--rw-text-muted);
}

/* ==========================================================================
   Layout Components
   ========================================================================== */

.container {
  width: 100%;
  max-width: var(--rwc-content-width, 76rem);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--rw-space-4);
  padding-right: var(--rw-space-4);
}

@media (min-width: 768px) {
  .container {
    padding-left: var(--rw-space-8);
    padding-right: var(--rw-space-8);
  }
}

.container--narrow {
  max-width: var(--rw-container-sm);
}

.container--wide,
.alignwide {
  max-width: var(--rw-container-lg);
  margin-left: auto;
  margin-right: auto;
}

/* Alignfull - safe full-width (no 100vw scrollbar hack) */
.alignfull {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* ==========================================================================
   WordPress Block Layout Support
   ========================================================================== */

/* Wide: rely on theme.json wide size */
.wp-site-blocks .alignwide {
  max-width: var(--wp--style--global--wide-size);
  margin-left: auto;
  margin-right: auto;
}

/* Full: safe full-width (avoids scrollbar overflow) */
.wp-site-blocks .alignfull {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* ==========================================================================
   Layout Helper Classes
   ========================================================================== */

/* Constrained reading width */
.rwc-layout-content {
  max-width: var(--wp--style--global--content-size, 76rem);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--rw-space-4);
  padding-right: var(--rw-space-4);
}

@media (min-width: 768px) {
  .rwc-layout-content {
    padding-left: var(--rw-space-8);
    padding-right: var(--rw-space-8);
  }
}

/* Wide layout for grids/features */
.rwc-layout-wide {
  max-width: var(--wp--style--global--wide-size, 96rem);
  margin-left: auto;
  margin-right: auto;
}

/* Card grid spacing */
.rwc-card-grid {
  display: grid;
  gap: var(--rw-space-6);
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}

@media (min-width: 768px) {
  .rwc-card-grid {
    gap: var(--rw-space-8);
  }
}

/* Columns as card grids (apply .rwc-card-columns to Columns blocks) */
.rwc-card-columns.wp-block-columns {
  column-gap: var(--rw-space-8);
  row-gap: var(--rw-space-8);
}

.rwc-card-columns .wp-block-column>.wp-block-group {
  width: 100%;
}

/* Section Spacing - Reduced for traditional, tighter layout */
.section {
  padding: calc(var(--rw-space-6) * var(--rwc-spacing-multiplier, 1)) 0;
}

@media (min-width: 768px) {
  .section {
    padding: calc(var(--rw-space-10) * var(--rwc-spacing-multiplier, 1)) 0;
  }
}

.section--alt {
  background: var(--rw-bg-alt);
}

/* Grid */
.grid {
  display: grid;
  gap: var(--rw-space-6);
}

.grid--2,
.grid--3 {
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {

  .grid--2,
  .grid--3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* ==========================================================================
   Page Header (Standard Title - Non-Hero)
   ========================================================================== */

.page-header,
.wp-block-group.page-header {
  padding: var(--wp--preset--spacing--60) var(--rw-space-4) var(--wp--preset--spacing--40);
  background: var(--rw-bg-alt);
  border-bottom: 1px solid var(--rw-border);
  margin-bottom: var(--wp--preset--spacing--50);
}

/* Make page header full width when used in block editor */
.wp-block-group.page-header {
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  width: 100vw;
  max-width: 100vw;
}

.page-title,
.page-header .wp-block-heading,
h1.page-title {
  margin: 0 0 var(--rw-space-2);
  font-size: var(--rw-text-3xl);
  font-weight: 700;
  color: var(--rw-forest);
}

.page-subtitle,
.page-header p.page-subtitle {
  margin: 0;
  font-size: var(--rw-text-lg);
  color: var(--rw-text-muted);
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 768px) {

  .page-title,
  .page-header .wp-block-heading,
  h1.page-title {
    font-size: var(--rw-text-4xl);
  }
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
  position: relative;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.86);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
  transition: all var(--rw-transition-base);
}

.has-sticky-header .site-header {
  position: fixed;
}

.site-header .container {
  max-width: var(--rw-header-width, var(--rwc-content-width));
}

.site-header.is-scrolled {
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 16px 30px rgba(15, 23, 42, 0.12);
  border-bottom-color: rgba(15, 23, 42, 0.12);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 5.5rem;
  /* Taller header for better logo visibility */
  gap: var(--rw-space-4);
}

@media (min-width: 1200px) {
  .site-header__inner {
    height: 6.5rem;
    /* Larger on desktop */
  }
}

/* Home page header specifically */
body.home .site-header {
  background: rgba(255, 255, 255, 0.9);
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}


.site-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
  z-index: 101;
}

.site-logo img {
  height: var(--rw-logo-height);
  width: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  transition: transform var(--rw-transition-fast);
}

.site-logo:hover img {
  transform: scale(1.05);
}

/* @media removed as size is now controlled by variable */

/* Header button - prevent text wrapping */
.header-btn {
  white-space: nowrap;
  flex-shrink: 0;
}

/* Mobile Toggle refinements */
.header-actions {
  display: flex;
  align-items: center;
  gap: var(--rw-space-2);
  min-width: 3rem;
  justify-content: flex-end;
}

.site-logo__text {
  margin-left: var(--rw-space-3);
  font-family: var(--rw-font-display);
  font-size: var(--rw-text-lg);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--rw-ink);
}

/* Main Navigation (Desktop) */
.primary-nav {
  display: none;
  /* Force hide on mobile to prevent overlap */
}

@media (min-width: 1200px) {
  .primary-nav {
    display: flex;
    flex: 1;
    justify-content: center;
  }
}

.primary-nav__list {
  display: flex;
  align-items: center;
  gap: var(--rw-menu-gap, 2rem);
  /* Uses customizer setting with fallback */
  margin: 0;
  padding: 0;
  list-style: none;
}

.primary-nav__list>li {
  position: relative;
}

.primary-nav__link,
.primary-nav__list>li>a {
  font-family: var(--rw-font-sans);
  font-size: var(--rw-text-base);
  font-weight: 600;
  color: var(--rw-ink);
  text-decoration: none;
  padding: 0.45rem 1.1rem;
  border-radius: var(--rw-radius-full);
  border: 1px solid transparent;
  background: rgba(15, 23, 42, 0.02);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, color 0.3s ease;
  position: relative;
  display: inline-block;
}

.primary-nav__link:hover,
.primary-nav__link:focus-visible,
.primary-nav__link[aria-current="page"],
.primary-nav__list>li>a:hover,
.primary-nav__list>li>a:focus-visible,
.primary-nav__list>li>a[aria-current="page"],
.primary-nav__list>li.current-menu-item>a,
.primary-nav__list>li.current-menu-ancestor>a {
  color: var(--rw-white);
  background: var(--rw-forest);
  border-color: var(--rw-forest);
  box-shadow: 0 4px 12px rgba(var(--rw-forest-rgb), 0.2);
  transform: translateY(-1px);
}

/* Submenus (Dropdowns) */
.primary-nav__list .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 200;
  min-width: 220px;
  background: var(--rw-white);
  padding: 0.5rem 0;
  margin-top: 0.5rem;
  border-radius: var(--rw-radius-md);
  box-shadow: var(--rw-shadow-lg);
  border: 1px solid rgba(15, 23, 42, 0.08);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: all 0.2s ease;
  list-style: none;
}

.primary-nav__list li:hover>.sub-menu,
.primary-nav__list li:focus-within>.sub-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.primary-nav__list .sub-menu li {
  margin: 0;
  display: block;
}

.primary-nav__list .sub-menu a {
  display: block;
  padding: 0.5rem 1.25rem;
  color: var(--rw-ink);
  text-decoration: none;
  font-size: var(--rw-text-sm);
  transition: background 0.15s, color 0.15s;
}

.primary-nav__list .sub-menu a:hover,
.primary-nav__list .sub-menu a:focus-visible {
  background: var(--rw-bg-alt);
  color: var(--rw-forest);
}

/* Sub-sub-menus (third level – flyout to the right) */
.primary-nav__list .sub-menu li {
  position: relative;
}

.primary-nav__list .sub-menu .sub-menu {
  top: 0;
  left: 100%;
  margin-top: 0;
  margin-left: 0.25rem;
}

/* Indicator arrow for items with children */
.primary-nav__list .sub-menu .menu-item-has-children>a::after {
  content: '›';
  float: right;
  margin-left: 0.5rem;
  font-weight: 700;
  opacity: 0.5;
}

/* Mobile Submenus */
.mobile-nav__list .sub-menu {
  margin-left: 1rem;
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
  padding-left: 1rem;
  border-left: 2px solid var(--rw-border);
  list-style: none;
  display: none;
  /* JS toggle would be ideal, but for now show on default or rely on simple layout */
  display: block;
  /* Always show in mobile for simplicity unless JS toggle added */
}

.mobile-nav__list .sub-menu li {
  margin-bottom: 0.5rem;
}

.mobile-nav__list .sub-menu a {
  font-size: 0.95rem;
  /* Slightly smaller than main items */
  color: var(--rw-text-muted);
}



/* Header Actions (Desktop Right) */
@media (min-width: 1200px) {
  .header-actions {
    display: flex;
    align-items: center;
    gap: var(--rw-space-4);
    min-width: 200px;
    justify-content: flex-end;
  }
}

.site-header .header-btn {
  display: none;
}

@media (min-width: 1200px) {
  .site-header .header-btn {
    display: inline-flex;
    padding: 0.5rem 1.25rem;
    font-size: var(--rw-text-sm);
    border-radius: var(--rw-radius-full);
  }
}

/* Inline Search (Amazon-style) */
.search-inline {
  display: none;
  position: relative;
}

@media (min-width: 1200px) {
  .search-inline {
    display: flex;
    align-items: center;
  }
}

.search-inline .search-form {
  display: flex;
  align-items: center;
  background: var(--rw-bg-alt);
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: var(--rw-radius-full);
  overflow: hidden;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.search-inline .search-form:focus-within {
  border-color: var(--rw-forest);
  box-shadow: 0 0 0 3px rgba(var(--rw-forest-rgb), 0.15);
}

/* Mobile Shortcuts (News, Events, Join) */
.mobile-shortcuts {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-right: 0.5rem;
}

.mobile-shortcuts a {
  justify-content: center;
  font-family: var(--rw-font-sans);
  font-size: var(--rw-text-sm);
  font-weight: 700;
  color: var(--rw-ink);
  text-decoration: none;
  background: rgba(15, 23, 42, 0.05);
  /* Subtle grey bg */
  padding: 0.5rem 1rem;
  border-radius: var(--rw-radius-full);
  line-height: 1;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.mobile-shortcuts a.highlight {
  background: color-mix(in srgb, var(--rw-forest) 15%, transparent);
  color: var(--rw-forest);
}

.mobile-shortcuts a:hover {
  background: var(--rw-ink);
  color: var(--rw-white);
}

.mobile-shortcuts a.highlight:hover {
  background: var(--rw-forest);
  color: var(--rw-white);
}

/* Hide shortcuts on desktop (when primary nav appears) */
@media (min-width: 1200px) {
  .mobile-shortcuts {
    display: none !important;
  }
}

.search-inline__icon {
  width: 1.25rem;
  height: 1.25rem;
  margin-left: 0.75rem;
  color: var(--rw-text-muted);
  flex-shrink: 0;
}

.search-inline .search-field {
  flex: 1;
  min-width: 180px;
  max-width: 240px;
  padding: 0.5rem 0.75rem;
  border: none;
  background: transparent;
  font-size: var(--rw-text-sm);
  color: var(--rw-ink);
  outline: none;
}

.search-inline .search-field::placeholder {
  color: var(--rw-text-muted);
}

.search-inline__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  margin: 2px;
  background: var(--rw-forest);
  border: none;
  border-radius: 50%;
  color: var(--rw-white);
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
}

.search-inline__submit:hover,
.search-inline__submit:focus {
  background: var(--rw-forest-hover);
  transform: scale(1.05);
}

.search-inline__submit svg {
  width: 1rem;
  height: 1rem;
}

/* Search Results Dropdown */
.search-inline .search-suggestions {
  position: absolute;
  top: calc(100% + 0.5rem);
  left: 0;
  right: 0;
  min-width: 280px;
  z-index: 200;
}

.search-suggestions {
  display: none;
  background: var(--rw-white);
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: var(--rw-radius-md);
  box-shadow: 0 10px 40px rgba(15, 23, 42, 0.12);
  max-height: 20rem;
  overflow-y: auto;
}

.search-suggestions.is-visible {
  display: block;
}

.search-results__list {
  list-style: none;
  margin: 0;
  padding: 0.5rem;
}

.search-results__item {
  margin: 0;
}

.search-results__link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 0.75rem;
  border-radius: var(--rw-radius-sm);
  color: var(--rw-ink);
  text-decoration: none;
  transition: background 0.15s;
}

.search-results__link:hover,
.search-results__link:focus-visible {
  background: rgba(var(--rw-forest-rgb), 0.08);
  color: var(--rw-forest);
}

.search-results__icon {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  color: var(--rw-text-muted);
}

.search-results__icon svg {
  width: 100%;
  height: 100%;
}

.search-results__text {
  flex: 1;
  font-size: var(--rw-text-sm);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.search-results__empty {
  padding: 1rem;
  color: var(--rw-text-muted);
  font-size: var(--rw-text-sm);
  text-align: center;
}

/* Mobile Menu Toggle */
.menu-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  padding: 0;
  background: transparent;
  border: none;
  cursor: pointer;
  z-index: 105;
}

@media (min-width: 1200px) {
  .menu-toggle {
    display: none;
  }
}

.menu-toggle__box {
  position: relative;
  width: 24px;
  height: 24px;
}

.menu-toggle__inner {
  top: 50%;
  margin-top: -1px;
}

.menu-toggle__inner,
.menu-toggle__inner::before,
.menu-toggle__inner::after {
  position: absolute;
  width: 24px;
  height: 2px;
  background-color: var(--rw-ink);
  border-radius: 2px;
  transition: transform 0.15s ease;
}

.menu-toggle__inner::before,
.menu-toggle__inner::after {
  content: "";
  display: block;
}

.menu-toggle__inner::before {
  top: -8px;
  transition:
    top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1),
    transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

.menu-toggle__inner::after {
  top: 8px;
  /* Fallback positioning */
  bottom: -8px;
  transition:
    top 0.1s 0.2s cubic-bezier(0.33333, 0.66667, 0.66667, 1),
    transform 0.13s cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

/* Active State (X shape) */
.menu-toggle[aria-expanded="true"] .menu-toggle__inner {
  transition-delay: 0.12s;
  transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  transform: rotate(225deg);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__inner::before {
  top: 0;
  transition:
    top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333),
    transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
  transform: rotate(450deg);
  background-color: var(--rw-ink);
}

.menu-toggle[aria-expanded="true"] .menu-toggle__inner::after {
  top: 0;
  bottom: 0;
  transition:
    top 0.1s 0.15s cubic-bezier(0.33333, 0, 0.66667, 0.33333),
    transform 0.13s 0.22s cubic-bezier(0.215, 0.61, 0.355, 1);
  transform: rotate(-450deg);
  background-color: var(--rw-ink);
}

/* Mobile Navigation (Drawer) */
.mobile-nav {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  max-width: 320px;
  /* Slimmer drawer */
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-left: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: -20px 0 40px rgba(15, 23, 42, 0.14);
  transform: translateX(100%);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 200;
  overflow-y: auto;
  will-change: transform;

  /* Fallback & Safe Area */
  padding-top: 5rem;
}

@supports (padding-top: env(safe-area-inset-top)) {
  .mobile-nav {
    padding-top: calc(5rem + env(safe-area-inset-top));
  }
}

.mobile-nav__backdrop {
  position: fixed;
  inset: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: rgba(15, 23, 42, 0.3);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  z-index: 190;
  will-change: opacity;
}

body.nav-open {
  overflow: hidden;
  touch-action: none;
  overscroll-behavior: none;
}

/* No pointer-events hack needed with correct z-index */
/* Overlay stack: header(100) < backdrop(190) < drawer(200) < close(210) < modal(300) */

.site-header {
  z-index: 100;
}

.mobile-nav {
  z-index: 200;
}



.search-modal {
  z-index: 300;
}

.mobile-nav__backdrop.is-visible {
  opacity: 1;
  pointer-events: auto;
}

.mobile-nav__close {
  position: absolute;
  z-index: 210;
  top: 1rem;
  right: 1rem;
  width: 3rem;
  height: 3rem;
  background: rgba(15, 23, 42, 0.06);
  border: 1px solid rgba(15, 23, 42, 0.08);
  color: var(--rw-ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.2s;
}

@supports (padding-top: env(safe-area-inset-top)) {
  .mobile-nav__close {
    top: calc(1rem + env(safe-area-inset-top));
    right: calc(1rem + env(safe-area-inset-right));
  }
}

.mobile-nav__close:hover {
  background: rgba(var(--rw-forest-rgb), 0.12);
  color: var(--rw-forest);
}

.mobile-nav__close svg {
  width: 1.5rem;
  height: 1.5rem;
}



.mobile-nav.is-open {
  transform: translateX(0);
}

.mobile-nav__container {
  display: flex;
  flex-direction: column;
  padding: var(--rw-space-6) var(--rw-space-5);
  height: 100%;
  gap: var(--rw-space-4);
  position: relative;
  z-index: 1;
}

@media (min-width: 1200px) {
  .mobile-nav {
    display: none !important;
  }
}

@media (max-width: 480px) {
  .mobile-nav {
    max-width: 100%;
  }
}

.mobile-nav__quicklinks {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rw-space-2);
  margin-bottom: var(--rw-space-2);
}

.quicklink-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.85rem;
  border-radius: var(--rw-radius-full);
  background: rgba(15, 23, 42, 0.06);
  border: 1px solid rgba(15, 23, 42, 0.08);
  color: var(--rw-ink);
  font-size: var(--rw-text-sm);
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.quicklink-chip:hover,
.quicklink-chip:focus {
  background: rgba(var(--rw-forest-rgb), 0.12);
  color: var(--rw-forest);
  transform: translateY(-1px);
}

/* Mobile Search Bar (Top) */
.mobile-search {
  margin-bottom: var(--rw-space-6);
  background: var(--rw-bg-alt);
  border-radius: var(--rw-radius-full);
  padding: 2px 2px 2px 1rem;
}

.mobile-search .search-suggestions {
  margin-top: var(--rw-space-3);
}

.mobile-search .search-form {
  display: flex;
  align-items: center;
}

.mobile-search .search-field {
  flex: 1;
  border: none;
  background: transparent;
  padding: 0.5rem 0;
  font-size: var(--rw-text-base);
  outline: none;
}

.mobile-search .search-submit {
  flex: 0 0 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--rw-white);
  border: none;
  border-radius: 50%;
  color: var(--rw-ink);
  cursor: pointer;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
}

.mobile-search .search-submit svg {
  width: 1.25rem;
  height: 1.25rem;
}

/* Mobile Menu List */
.mobile-nav__list {
  margin: 0;
  padding: 0;
  list-style: none;
  flex: 1;
}

.mobile-nav__list>li {
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
}

.mobile-nav__link,
.mobile-nav__list>li>a:not(.btn) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--rw-space-3) 0;
  font-size: var(--rw-text-lg);
  font-weight: 600;
  color: var(--rw-ink);
  text-decoration: none;
  transition: color 0.2s ease, transform 0.2s ease;
}

.mobile-nav__link::after,
.mobile-nav__list>li>a:not(.btn)::after {
  content: "→";
  opacity: 0.3;
}

.mobile-nav__link:hover,
.mobile-nav__link:focus-visible,
.mobile-nav__link[aria-current="page"],
.mobile-nav__list>li>a:not(.btn):hover,
.mobile-nav__list>li>a:not(.btn):focus-visible,
.mobile-nav__list>li>a:not(.btn)[aria-current="page"] {
  color: var(--rw-forest) !important;
  transform: translateX(4px);
}

/* Mobile Actions (Bottom) */
.mobile-nav__actions {
  display: flex;
  flex-direction: column;
  gap: var(--rw-space-3);
  margin-top: var(--rw-space-4);
  padding-top: var(--rw-space-4);
  padding-bottom: var(--rw-space-4);
  border-top: 1px solid var(--rw-border);
}



/* ==========================================================================
   Search Modal
   ========================================================================== */

.search-modal {
  position: fixed;
  inset: 0;
  z-index: 300;

  visibility: hidden;
  opacity: 0;
  pointer-events: none;

  display: flex;
  align-items: center;
  justify-content: center;

  transition: opacity var(--rw-transition-base), visibility 0s var(--rw-transition-base);
}

.search-modal.is-open {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition: opacity var(--rw-transition-base), visibility 0s;
}

.search-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(38, 37, 31, 0.35);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.search-modal__content {
  position: relative;
  z-index: 1;
  width: min(800px, 100%);
  margin: 0 var(--rw-space-4);
  padding: var(--rw-space-8);
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border-radius: var(--rw-radius-lg);
  box-shadow: var(--rw-shadow-lg);
  transform: translateY(-12px) scale(0.98);
  transition: transform var(--rw-transition-base);
}

.search-modal.is-open .search-modal__content {
  transform: translateY(0) scale(1);
}

.search-modal .search-form__inner {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--rw-space-4);
  border-bottom: 3px solid var(--rw-ink);
  padding-bottom: var(--rw-space-2);
}

.search-modal .search-field {
  flex: 1;
  width: 100%;
  border: none;
  background: transparent;
  padding: var(--rw-space-4) 0;
  font-size: var(--rw-text-3xl);
  font-family: var(--rw-font-display);
  font-weight: 700;
  color: var(--rw-ink);
  outline: none;
  box-shadow: none;
}

.search-modal .search-field::placeholder {
  color: var(--rw-text-muted);
  opacity: 0.5;
}

.search-modal .search-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  padding: 0;
  background: transparent;
  border: none;
  color: var(--rw-ink);
  cursor: pointer;
  transition: color var(--rw-transition-fast), transform var(--rw-transition-fast);
}

.search-modal .search-submit:hover {
  color: var(--rw-forest);
  transform: scale(1.08);
}

.search-modal__close {
  position: absolute;
  top: var(--rw-space-4);
  right: var(--rw-space-4);
  width: 3.5rem;
  height: 3.5rem;
  background: transparent;
  border: none;
  color: var(--rw-ink);
  cursor: pointer;
  border-radius: 50%;
  transition: background var(--rw-transition-fast), color var(--rw-transition-fast), transform var(--rw-transition-fast);
  display: flex;
  align-items: center;
  justify-content: center;
}

.search-modal__close:hover {
  background: var(--rw-bg-alt);
  color: var(--rw-forest);
  transform: rotate(90deg);
}

.search-modal__close svg {
  width: 2rem;
  height: 2rem;
}

/* ==========================================================================
   Gutenberg & Pattern Standardisation
   Equal-height cards and uniform button alignment.
   ========================================================================== */

/* Improved card standardisation */
.wp-block-columns {
  align-items: stretch !important;
}

.wp-block-columns .wp-block-column {
  display: flex !important;
  flex-direction: column;
}

/* Any group directly inside a column becomes a stretching card */
.wp-block-columns .wp-block-column>.wp-block-group,
.wp-block-columns .wp-block-column>.card,
.wp-block-columns .wp-block-column>.rwc-card,
.wp-block-column.rwc-card {
  flex-grow: 1;
  display: flex !important;
  flex-direction: column;
  height: 100%;
  gap: var(--rw-space-4);
  /* Ensure consistent spacing */
}

/* Push actions to the bottom */
.wp-block-columns .wp-block-column>.wp-block-buttons,
.wp-block-columns .wp-block-column>.wp-block-group>.wp-block-buttons,
.wp-block-columns .wp-block-column>.wp-block-group>p:last-child:has(a),
/* Target "Learn more" paragraphs */
.card>.wp-block-buttons,
.rwc-card>.wp-block-buttons,
.activity-card>.wp-block-buttons {
  margin-top: auto !important;
}

/* Specific fix for "What We Do" links in Section 4 (groups with white bg on mist bg) */
.has-mist-background-color .wp-block-group p:last-child {
  margin-top: auto !important;
}

/* ==========================================================================
   Contrast Safety & Accessibility
   Prevents unreadable light text on white backgrounds.
   ========================================================================== */

/* Force neutral/light colors to be darker if used as text on white */
.has-white-background-color .has-neutral-color,
.has-background-background-color .has-neutral-color,
.wp-block-group.has-white-background-color p.has-sm-font-size,
.wp-block-group.has-white-background-color p:not([class*="has-"]) {
  color: var(--rw-text);
  /* Ensure base readability */
}

/* Darken muted text further when used in small formats on white */
.has-white-background-color .has-text-muted-color,
.has-background-background-color .has-text-muted-color {
  color: var(--rw-base);
  /* Fallback to a very dark brown if muted is still too light */
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
  position: relative;
  background-color: var(--rw-footer-bg);
  color: var(--rw-ink);
  padding: var(--rw-space-16) 0 var(--rw-space-8);
  width: 100%;
}

.rwc-footer-content {
  padding-top: var(--wp--preset--spacing--60);
  padding-bottom: var(--wp--preset--spacing--40);
}

/* Ensure footer template parts and central group blocks inherit background from .site-footer */
.site-footer .rwc-footer-content,
.site-footer .wp-block-group.has-background {
  background-color: transparent !important;
}

.has-dark-footer .site-footer {
  color: var(--rw-white);
  --rw-link: var(--rw-white);
  --rw-link-hover: color-mix(in srgb, var(--rw-white) 80%, transparent);
  --rw-text: var(--rw-white);
  --rw-text-muted: color-mix(in srgb, var(--rw-white) 70%, transparent);
  --rw-ink: var(--rw-white);
  /* Force headings to white */
}

.site-footer::before {
  content: "";
  position: absolute;
  inset: 0;
  background: transparent;
  z-index: -1;
}

.site-footer .container {
  max-width: var(--rw-container-xl);
  /* Wider containment */
}

/* Use dynamic text color for footer */
.site-footer,
.site-footer p {
  color: var(--rwc-footer-text, var(--rw-white));
}

.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer h5,
.site-footer h6,
.site-footer .wp-block-heading {
  color: var(--rwc-footer-title, var(--rw-white));
}

.site-footer a {
  color: var(--rw-white);
  text-decoration: none;
  transition: text-decoration var(--rw-transition-fast), font-weight var(--rw-transition-fast), background-color var(--rw-transition-fast);
}

.site-footer a:hover {
  color: var(--rw-white);
  text-decoration: underline;
  font-weight: 500;
}

.site-footer a:focus,
.site-footer a:focus-visible {
  color: var(--rw-white);
  text-decoration: underline;
  background-color: rgba(26, 60, 52, 0.5);
  outline: 2px solid rgba(255, 255, 255, 0.3);
  outline-offset: 2px;
  border-radius: var(--rw-radius, 0.5rem);
  padding: 0.125em 0.25em;
  margin: -0.125em -0.25em;
}

/* Ensure social icons use white and inherit focus styling */
.site-footer .wp-block-social-link a,
.site-footer .wp-block-social-link a svg {
  color: var(--rw-white) !important;
  fill: currentColor !important;
}

.site-footer .wp-block-social-link a:hover,
.site-footer .wp-block-social-link a:hover svg {
  color: var(--rw-white) !important;
  fill: var(--rw-white) !important;
  opacity: 0.8;
}

.site-footer .wp-block-social-link a:focus,
.site-footer .wp-block-social-link a:focus-visible,
.site-footer .wp-block-social-link a:focus svg,
.site-footer .wp-block-social-link a:focus-visible svg {
  color: var(--rw-white) !important;
  fill: var(--rw-white) !important;
  background-color: rgba(26, 60, 52, 0.5);
  border-radius: var(--rw-radius, 0.5rem);
}

.footer-copyright,
.footer-credit {
  font-size: var(--rw-text-xs);
  text-align: center;
  opacity: 0.7;
  margin: 0;
}

.footer-credit a {
  color: inherit;
  text-decoration: underline;
  opacity: 0.8;
}

.footer-credit a:hover {
  opacity: 1;
}

.footer-grid {
  display: grid;
  gap: var(--rw-space-12);
  /* Wider gap for less "cramped" look */
  margin-bottom: var(--rw-space-16);
}

@media (min-width: 768px) {
  .footer-grid {
    grid-template-columns: 1.5fr 1fr 1fr;
    /* Asymmetric grid for visual interest */
  }
}

.footer-section__title {
  margin-bottom: var(--rw-space-4);
  font-size: var(--rw-text-sm);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--rwc-footer-title, var(--rw-white));

}

.footer-nav {
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-nav li {
  margin-bottom: var(--rw-space-2);
}

.footer-nav a {
  font-size: var(--rw-text-sm);
  text-decoration: none;
}

.footer-email-link {
  color: var(--rw-white);
  text-decoration: underline;
}

.site-footer .footer-email-link:hover,
.site-footer .footer-email-link:focus {
  color: var(--rw-white);
}

/* Social Links */
.social-links {
  display: flex;
  gap: var(--rw-space-4);
  margin: 0;
  padding: 0;
  list-style: none;
}

.social-links a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  background: color-mix(in srgb, var(--rw-white) 10%, transparent);
  color: var(--rw-white) !important;
  border-radius: var(--rw-radius-full);
  transition: background var(--rw-transition-fast), transform var(--rw-transition-fast);
}

.social-links a:hover,
.social-links a:focus {
  background: var(--rw-forest);
  color: var(--rw-white) !important;
  transform: translateY(-2px);
}

.social-links svg {
  width: 1.25rem;
  height: 1.25rem;
  fill: currentColor;
}

/* Footer Bottom */
.footer-bottom {
  padding-top: var(--rw-space-6);
  border-top: 1px solid color-mix(in srgb, var(--rw-white) 10%, transparent);
  font-size: var(--rw-text-sm);
  color: color-mix(in srgb, var(--rw-white) 60%, transparent);
}

/* ==========================================================================
   Buttons
   ========================================================================== */

/* ==========================================================================
   Buttons
   ========================================================================== */

/* Base Button Styles */
.btn,
.wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--rw-space-2);
  padding: var(--rw-button-padding, 0.6em 1.25em);
  min-height: 2.75rem;
  /* Ensure 44px+ touch target */
  font-family: var(--rw-font-sans);
  font-size: var(--rw-button-font-size, var(--rw-text-sm));
  font-weight: 600;
  line-height: normal;
  text-decoration: none !important;
  border: 2px solid transparent;
  border-radius: var(--rw-button-radius, var(--rw-radius-md));
  cursor: pointer;
  transition:
    background var(--rw-transition-fast),
    border-color var(--rw-transition-fast),
    color var(--rw-transition-fast),
    transform var(--rw-transition-fast),
    box-shadow var(--rw-transition-fast);
}

/* Shared Focus Polish */
.btn:focus-visible,
.wp-block-button__link:focus-visible {
  box-shadow: var(--rw-focus-ring);
}

/* Primary Styles - Default for WP Button - Forest Green */
.wp-block-button__link {
  background: var(--rw-forest);
  color: var(--rw-white);
  border-color: var(--rw-forest);
}

.btn--primary {
  background: var(--rw-forest);
  color: var(--rw-white);
  border-color: var(--rw-forest);
}

.btn--primary:hover,
.btn--primary:focus-visible,
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible {
  background: var(--rw-forest-hover);
  border-color: var(--rw-forest-hover);
  color: var(--rw-white);
  transform: translateY(-1px);
}

/* Secondary: Outline - Forest Green Border */
.btn--secondary {
  background: transparent;
  color: var(--rw-forest);
  border-color: var(--rw-forest);
}

.btn--secondary:hover,
.btn--secondary:focus-visible {
  background: var(--rw-forest);
  color: var(--rw-white);
  transform: translateY(-1px);
}

/* Tertiary: Ghost / Text-Only */
.btn--tertiary {
  background: transparent;
  color: var(--rw-ink);
  border-color: transparent;
  padding-left: var(--rw-space-3);
  padding-right: var(--rw-space-3);
}

.btn--tertiary:hover,
.btn--tertiary:focus-visible {
  background: rgba(15, 23, 42, 0.05);
  /* Very light grey shift */
  color: var(--rw-forest);
}

/* Accent Variant (Keep for specific use cases like Donate/Volunteer) */
.btn--accent {
  background: var(--rw-leaf);
  color: var(--rw-ink);
  border-color: var(--rw-leaf);
}

.btn--accent:hover,
.btn--accent:focus-visible {
  background: var(--rw-leaf-hover);
  border-color: var(--rw-leaf-hover);
  color: var(--rw-ink);
  transform: translateY(-1px);
}

.btn--lg {
  padding: 0.8em 1.5em;
  font-size: var(--rw-text-base);
  min-height: 3.25rem;
}

.btn--full {
  width: 100%;
}

/* ==========================================================================
   WP Block Button Overrides (Strict Design System Enforcement)
   ========================================================================== */

/* .wp-block-button__link inherits base styles from .btn above */

.btn--outline-white {
  background: transparent;
  color: var(--rw-white);
  border-color: var(--rw-white);
}

.btn--outline-white:hover,
.btn--outline-white:focus-visible {
  background: var(--rw-white);
  color: var(--rw-ink);
}

/* Map 'Outline' style to .btn--secondary - Forest Green */
.is-style-outline .wp-block-button__link,
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--rw-forest);
  border-color: var(--rw-forest);
}

.is-style-outline .wp-block-button__link:hover,
.is-style-outline .wp-block-button__link:focus-visible,
.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
  background: var(--rw-forest);
  color: var(--rw-white);
  transform: translateY(-1px);
}

/* ==========================================================================
   Cards
   ========================================================================== */

.card,
.rwc-card {
  background: var(--rw-cream);
  border: 1px solid var(--rw-border);
  border-radius: var(--rw-radius);
  overflow: hidden;
  box-shadow: var(--rw-shadow-sm);
  transition: box-shadow var(--rw-transition-base), transform var(--rw-transition-base);
  position: relative;
  display: flex;
  flex-direction: column;
}

.card:hover {
  box-shadow: var(--rw-shadow-md);
  transform: translateY(-2px);
}

.card__image {
  aspect-ratio: 16/9;
  object-fit: cover;
  width: 100%;
}

.card__body {
  padding: var(--rw-space-5);
}

.card__title {
  margin-bottom: var(--rw-space-2);
  font-size: var(--rw-text-xl);
}

.card__title a {
  color: inherit;
  text-decoration: none;
}

.card__title a:hover,
.card__title a:focus {
  color: var(--rw-forest);
}

/* Stretched Link */
.card__title a::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}

.card__meta {
  display: flex;
  gap: var(--rw-space-4);
  margin-bottom: var(--rw-space-3);
  font-size: var(--rw-text-sm);
  color: var(--rw-text-muted);
}

.card__excerpt {
  margin: 0;
  color: var(--rw-text-muted);
}

.card__read-more {
  color: var(--rw-forest);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
}

.card__read-more:hover,
.card__read-more:focus {
  color: var(--rw-forest-hover);
  text-decoration: underline;
}

/* Activity Card */
.activity-card {
  text-align: center;
  padding: var(--rw-space-5);
}

.activity-card h3 {
  hyphens: auto;
  overflow-wrap: break-word;
}

.activity-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  margin: 0 auto var(--rw-space-4);
  background: var(--rw-bg-alt);
  border-radius: var(--rw-radius-full);
}

.activity-card__icon svg {
  width: 2rem;
  height: 2rem;
  stroke: var(--rw-forest);
}

.activity-card__title {
  margin-bottom: var(--rw-space-2);
  font-size: var(--rw-text-xl);
}

.activity-card__description {
  margin: 0;
  color: var(--rw-text-muted);
}

/* ==========================================================================
   News & Social Section
   ========================================================================== */

.news-social-grid {
  display: grid;
  gap: var(--rw-space-10);
  grid-template-columns: 1fr;
}

@media (min-width: 1024px) {
  .news-social-grid {
    grid-template-columns: 1fr 380px;
    gap: var(--rw-space-12);
  }
}

.news-column h2,
.social-column h2 {
  font-size: var(--rw-text-2xl);
}

/* Align Latest News and Facebook headings on same baseline */
.wp-block-columns.alignwide>.wp-block-column:first-child>h2,
.wp-block-columns.alignwide>.wp-block-column:last-child h3 {
  margin-top: 0;
  margin-bottom: var(--rw-space-6);
}

/* ==========================================================================
   Query Loop Cards - Uniform Heights
   ========================================================================== */

/* Make query loop flex container stretch cards to equal heights */
.wp-block-query.is-flex-container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--rw-space-6);
}

@media (max-width: 639px) {
  .wp-block-query.is-flex-container {
    grid-template-columns: 1fr;
  }
}

/* Cards in query loop should fill available height */
.wp-block-query .wp-block-post-template {
  display: contents;
}

.wp-block-query .card {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.wp-block-query .card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.wp-block-query .card__excerpt {
  flex: 1;
}



/* News Actions (View All button) */
.news-actions {
  margin-top: var(--rw-space-8);
}

/* Facebook Feed Column */
.facebook-column {
  display: flex;
  align-items: flex-start;
  min-width: 0;
  /* Prevent flex item from overflowing */
}

.facebook-feed {
  text-align: center;
  width: 100%;
  overflow: hidden;
  /* Clip content if it exceeds width */
}

.facebook-feed iframe {
  border-radius: var(--rw-radius-lg);
  max-width: 100%;
  width: 100%;
  /* Force fluid width */
  min-width: 280px;
  /* Prevent total collapse */
  box-shadow: var(--rw-shadow-sm);
}

@media (max-width: 639px) {
  .facebook-feed iframe {
    width: 100% !important;
    max-width: 100%;
  }
}

.facebook-embed-iframe {
  border: none;
  overflow: hidden;
  max-width: 100%;
  width: 100%;
}

/* Facebook feed responsive controls */
.facebook-embed-desktop {
  width: 100%;
}

.facebook-embed-mobile {
  display: none;
  width: 100%;
}

.facebook-mobile-card {
  text-align: left;
}

.facebook-mobile-actions {
  margin-top: var(--rw-space-6);
}

/* Facebook CTA Section (static, cookie-free) */
.facebook-cta-section {
  text-align: center;
}

.facebook-cta-card {
  text-align: center;
  max-width: 480px;
  margin: 0 auto;
}

.facebook-cta-icon {
  color: var(--rw-facebook);
  width: 48px;
  height: 48px;
  margin-bottom: var(--rw-space-4);
}

.map-container {
  position: relative;
  padding-bottom: 56.25%;
  /* 16:9 Aspect Ratio */
  height: 0;
  overflow: hidden;
  max-width: 100%;
  border-radius: var(--rw-radius-lg);
  box-shadow: var(--rw-shadow-md);
  background: var(--rw-bg-alt);
}

.map-iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ==========================================================================
   Hero Section
   ========================================================================== */

/* Hero Section - Reduced height for traditional feel */
.hero {
  position: relative;
  padding: var(--rw-space-10) 0 var(--rw-space-12);
  /* Reduced from space-16/space-20 */
  background: linear-gradient(135deg, var(--rw-forest) 0%, var(--rw-ink) 100%);
  color: var(--rw-white);
  overflow: hidden;
}

@media (min-width: 768px) {
  .hero {
    padding: var(--rw-space-12) 0 var(--rw-space-16);
    /* Reduced from space-24/space-32 */
  }
}

.hero--with-image {
  min-height: 50vh;
  max-height: 500px;
  display: flex;
  align-items: center;
}

.hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.hero__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.3;
}

.hero__content {
  position: relative;
  z-index: 1;
  max-width: var(--rw-container-md);
}

.rwc-hero h1,
.hero__title {
  font-size: clamp(2rem, 10vw, 3.5rem) !important;
  line-height: 1.1;
  margin-bottom: var(--rw-space-4);
}

.hero__subtitle {
  margin-bottom: var(--rw-space-8);
  font-size: var(--rw-text-xl);
  opacity: 0.9;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rw-space-4);
}

/* ==========================================================================
   CTA Band
   ========================================================================== */

.cta-band {
  background: var(--rw-forest);
  color: var(--rw-white);
  padding: var(--rw-space-8) 0;
  text-align: center;
}

.cta-band__title {
  margin-bottom: var(--rw-space-2);
  color: var(--rw-white);
}

.cta-band__text {
  margin-bottom: var(--rw-space-4);
  font-size: var(--rw-text-lg);
  opacity: 0.9;
}

.cta-band .btn--secondary {
  color: var(--rw-white);
  border-color: var(--rw-white);
}

.cta-band .btn--secondary:hover,
.cta-band .btn--secondary:focus {
  background: var(--rw-white);
  color: var(--rw-forest);
}

/* Ensure centering is respected on mobile */
@media (max-width: 767px) {

  .wp-block-group.has-text-align-center .wp-block-buttons,
  .has-text-align-center .wp-block-buttons {
    justify-content: center !important;
  }
}

/* ==========================================================================
   Blog / News Styles
   ========================================================================== */

.posts-grid {
  display: grid;
  gap: var(--rw-space-8);
}

@media (min-width: 768px) {
  .posts-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .posts-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Archive Header */
.archive-header {
  margin-bottom: var(--rw-space-10);
}

.archive-header__title {
  margin-bottom: var(--rw-space-2);
}

.archive-header__description {
  color: var(--rw-text-muted);
  font-size: var(--rw-text-lg);
}

/* News Filters Row */
.news-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--rw-space-4);
  margin-bottom: var(--rw-space-6);
}

/* Category Filter */
.category-filter {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rw-space-2);
  padding: 0;
  list-style: none;
  margin: 0;
}

.category-filter a {
  display: block;
  padding: var(--rw-space-2) var(--rw-space-4);
  font-size: var(--rw-text-sm);
  font-weight: 500;
  text-decoration: none;
  background: var(--rw-bg-alt);
  border-radius: var(--rw-radius-full);
  transition: background var(--rw-transition-fast), color var(--rw-transition-fast);
}

.category-filter a:hover,
.category-filter a:focus,
.category-filter a.is-active {
  background: var(--rw-forest);
  color: var(--rw-white);
}

/* Date Filter Dropdown */
.date-filter {
  margin-left: auto;
}

/* Scoped Modifier */
.news-filters .form-select {
  padding: var(--rw-space-2) var(--rw-space-4);
  font-size: var(--rw-text-sm);
  font-family: inherit;
  background: var(--rw-white);
  border: 1px solid var(--rw-border);
  border-radius: var(--rw-radius-md);
  cursor: pointer;
  min-width: 160px;
}

.form-select:hover,
.form-select:focus {
  border-color: var(--rw-forest);
  outline: none;
}

/* News Search */
.news-tools-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--rw-space-4);
  margin-bottom: var(--rw-space-8);
  flex-wrap: wrap;
}

.news-search {
  flex: 1 1 20rem;
  max-width: 25rem;
  margin-bottom: 0;
}

.news-search__row {
  display: flex;
  gap: var(--rw-space-2);
  max-width: 24rem;
}

/* Single Post */
article.single-post {
  max-width: var(--rw-container-md);
  margin: 0 auto;
}

.single-post__header {
  margin-bottom: var(--rw-space-8);
  text-align: center;
}

.single-post__meta {
  display: flex;
  justify-content: center;
  gap: var(--rw-space-4);
  margin-bottom: var(--rw-space-4);
  font-size: var(--rw-text-sm);
  color: var(--rw-text-muted);
}

.single-post__title {
  margin-bottom: 0;
}

.single-post__featured-image {
  margin-bottom: var(--rw-space-8);
  border-radius: var(--rw-radius-lg);
  overflow: hidden;
}

.single-post__featured-image img {
  width: 100%;
  height: auto;
}

/* Post Content */
.post-content {
  font-size: var(--rw-text-lg);
  line-height: var(--rw-leading-relaxed);
}

.post-content>*:first-child {
  margin-top: 0;
}

.post-content>*:last-child {
  margin-bottom: 0;
}

.post-content h2 {
  margin-top: var(--rw-space-10);
}

.post-content h3 {
  margin-top: var(--rw-space-8);
}

/* Related Posts */
.related-posts {
  margin-top: var(--rw-space-16);
  padding-top: var(--rw-space-12);
  border-top: 1px solid var(--rw-border);
}

.related-posts__title {
  margin-bottom: var(--rw-space-6);
}

/* Share Links */
.share-links {
  display: flex;
  align-items: center;
  gap: var(--rw-space-3);
  margin-top: var(--rw-space-10);
  padding-top: var(--rw-space-6);
  border-top: 1px solid var(--rw-border);
}

.share-links__label {
  font-size: var(--rw-text-sm);
  font-weight: 600;
  color: var(--rw-text-muted);
}

.share-links__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  background: var(--rw-bg-alt);
  border-radius: var(--rw-radius-full);
  color: var(--rw-text-muted);
  transition: background 0.2s, color 0.2s, transform 0.2s;
}

.share-links__btn:hover,
.share-links__btn:focus {
  transform: translateY(-2px);
  color: var(--rw-white);
}

/* Brand-specific colors */
.share-links__btn--facebook:hover,
.share-links__btn--facebook:focus {
  background: var(--rw-facebook);
}

.share-links__btn--whatsapp:hover,
.share-links__btn--whatsapp:focus {
  background: var(--rw-whatsapp);
}

.share-links__btn--x:hover,
.share-links__btn--x:focus {
  background: var(--rw-x);
}

.share-links__btn--email:hover,
.share-links__btn--email:focus {
  background: var(--rw-ink);
}

.share-links svg {
  width: 1.125rem;
  height: 1.125rem;
}

/* ==========================================================================
   Trail Styles
   ========================================================================== */

.trail-card {
  display: grid;
  grid-template-columns: 4rem 1fr;
  gap: var(--rw-space-4);
  padding: var(--rw-space-5);
  background: var(--rw-white);
  border-radius: var(--rw-radius-lg);
  box-shadow: var(--rw-shadow-sm);
  text-decoration: none;
  color: inherit;
  transition: box-shadow var(--rw-transition-base), transform var(--rw-transition-base);
}

.trail-card:hover {
  box-shadow: var(--rw-shadow-md);
  transform: translateY(-2px);
  color: inherit;
}

.trail-card__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  background: var(--rw-leaf);
  color: var(--rw-ink);
  font-family: var(--rw-font-display);
  font-size: var(--rw-text-2xl);
  font-weight: 700;
  border-radius: var(--rw-radius-full);
}

.trail-card__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.trail-card__title {
  margin: 0 0 var(--rw-space-1);
  font-size: var(--rw-text-lg);
}

.trail-card__excerpt {
  margin: 0;
  font-size: var(--rw-text-sm);
  color: var(--rw-text-muted);
}

/* Trail Progress */
.trail-progress {
  display: flex;
  align-items: center;
  gap: var(--rw-space-4);
  padding: var(--rw-space-4);
  background: var(--rw-bg-alt);
  border-radius: var(--rw-radius-md);
  margin-bottom: var(--rw-space-8);
}

.trail-progress__bar {
  flex: 1;
  height: 0.5rem;
  background: var(--rw-border);
  border-radius: var(--rw-radius-full);
  overflow: hidden;
}

.trail-progress__fill {
  height: 100%;
  background: var(--rw-leaf);
  border-radius: var(--rw-radius-full);
  transition: width var(--rw-transition-base);
}

.trail-progress__text {
  font-size: var(--rw-text-sm);
  font-weight: 600;
  color: var(--rw-text-muted);
  white-space: nowrap;
}

/* Trail Navigation */
.trail-nav {
  display: flex;
  justify-content: space-between;
  gap: var(--rw-space-4);
  margin-top: var(--rw-space-10);
  padding-top: var(--rw-space-6);
  border-top: 1px solid var(--rw-border);
}

.trail-nav__link {
  display: flex;
  align-items: center;
  gap: var(--rw-space-2);
  font-size: var(--rw-text-sm);
  font-weight: 500;
  text-decoration: none;
}

.trail-nav__link--prev::before {
  content: "←";
}

.trail-nav__link--next::after {
  content: "→";
}

/* Trail Checklist */
.trail-checklist {
  margin: var(--rw-space-8) 0;
  padding: var(--rw-space-5);
  background: var(--rw-bg-alt);
  border-radius: var(--rw-radius-md);
}

.trail-checklist__title {
  margin-bottom: var(--rw-space-4);
  font-size: var(--rw-text-base);
  font-weight: 600;
}

.trail-checklist__list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.trail-checklist__item {
  display: flex;
  align-items: center;
  gap: var(--rw-space-3);
  padding: var(--rw-space-2) var(--rw-space-3);
  margin: 0 calc(-1 * var(--rw-space-3));
  border-radius: var(--rw-radius-sm);
  transition: background-color 0.2s ease;
}

.trail-checklist__item:hover {
  background-color: color-mix(in srgb, var(--rw-leaf) 15%, transparent);
}

.trail-checklist__item label {
  transition: text-decoration 0.2s ease, color 0.2s ease, opacity 0.2s ease;
  user-select: none;
  width: 100%;
  cursor: pointer;
}

.trail-checklist__checkbox {
  width: 1.25rem;
  height: 1.25rem;
  accent-color: var(--rw-leaf);
  cursor: pointer;
}

.trail-checklist__checkbox:checked+label {
  text-decoration: line-through;
  color: var(--rw-text-muted);
  opacity: 0.8;
}

/* ==========================================================================
   Forms
   ========================================================================== */

.form-group {
  margin-bottom: var(--rw-space-5);
}

.form-label {
  display: block;
  margin-bottom: var(--rw-space-2);
  font-size: var(--rw-text-sm);
  font-weight: 600;
}

.form-input,
.form-textarea,
.form-select {
  width: 100%;
  padding: var(--rw-space-3) var(--rw-space-4);
  font-family: inherit;
  font-size: var(--rw-text-base);
  color: var(--rw-text);
  background: var(--rw-white);
  border: 1px solid var(--rw-border);
  border-radius: var(--rw-radius-md);
  transition: border-color var(--rw-transition-fast), box-shadow var(--rw-transition-fast);
}

.form-input:focus,
.form-textarea:focus,
.form-select:focus {
  outline: none;
  border-color: var(--rw-forest);
  box-shadow: 0 0 0 3px rgba(var(--rw-forest-rgb), 0.1);
}

.form-textarea {
  min-height: 8rem;
  resize: vertical;
}

/* ==========================================================================
   Utilities
   ========================================================================== */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

.mb-0 {
  margin-bottom: 0;
}

.mb-4 {
  margin-bottom: var(--rw-space-4);
}

.mb-8 {
  margin-bottom: var(--rw-space-8);
}

.mt-8 {
  margin-top: var(--rw-space-8);
}

/* ==========================================================================
   Block Support
   ========================================================================== */

/* Post Content Hardening */
.post-content {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.post-content table {
  display: block;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.wp-block-embed,
.wp-block-embed__wrapper {
  max-width: 100%;
}

/* Forms Baseline */
input,
select,
textarea {
  border-radius: var(--rw-radius-md);
}

input[type="search"] {
  -webkit-appearance: none;
  appearance: none;
}

/* Layout Utilities */
.wp-block-image img {
  height: auto;
  border-radius: var(--rw-radius-md);
  /* Subtle rounded corners */
}

.wp-block-image {
  margin-bottom: var(--rw-space-6);
}

.wp-element-caption {
  font-size: var(--rw-text-sm);
  color: var(--rw-text-muted);
  margin-top: var(--rw-space-2);
  text-align: center;
}

.wp-block-embed iframe {
  max-width: 100%;
}

.wp-block-separator {
  border: none;
  border-top: 1px solid var(--rw-border);
  margin: var(--rw-space-8) 0;
}

table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--rw-space-6) 0;
  font-size: var(--rw-text-sm);
}

th,
td {
  border: 1px solid var(--rw-border);
  padding: var(--rw-space-3);
  text-align: left;
}

th {
  background: var(--rw-bg-alt);
  font-weight: 600;
}

/* ==========================================================================
   Skip Link
   ========================================================================== */

.skip-link {
  position: absolute;
  top: -100%;
  left: var(--rw-space-4);
  z-index: 1000;
  padding: var(--rw-space-3) var(--rw-space-6);
  background: var(--rw-ink);
  color: var(--rw-white);
  text-decoration: none;
  border-radius: var(--rw-radius-md);
  transition: top var(--rw-transition-fast);
}

.skip-link:focus-visible {
  top: var(--rw-space-4);
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {

  .site-header,
  .site-footer,
  .mobile-nav,
  .share-links,
  .trail-nav,
  .skip-link {
    display: none !important;
  }

  body {
    font-size: 12pt;
    line-height: 1.5;
    color: black;
    background: var(--rw-white);
  }

  a {
    color: black;
    text-decoration: underline;
  }

  .container {
    max-width: 100%;
    padding: 0;
  }
}

/* ==========================================================================
   Reduced Motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Debug (Uncomment to find overflow) */
/* * { outline: 1px solid rgba(255, 0, 0, 0.15) !important; } */

/* ==========================================================================
   Fluent Forms Overrides
   ========================================================================== */

.fluentform .ff-btn-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--rw-space-2);
  padding: 0.6em 1.25em;
  min-height: 2.75rem;
  font-family: var(--rw-font-sans) !important;
  font-size: var(--rw-text-sm) !important;
  font-weight: 600;
  line-height: normal;
  text-decoration: none !important;
  border: 2px solid var(--rw-forest) !important;
  border-radius: var(--rw-radius-md) !important;
  cursor: pointer;
  background: var(--rw-forest) !important;
  color: var(--rw-white);
  transition:
    background var(--rw-transition-fast),
    border-color var(--rw-transition-fast),
    color var(--rw-transition-fast),
    transform var(--rw-transition-fast),
    box-shadow var(--rw-transition-fast) !important;
}

.fluentform .ff-btn-submit:hover,
.fluentform .ff-btn-submit:focus-visible {
  background: var(--rw-teal) !important;
  border-color: var(--rw-teal) !important;
  color: var(--rw-white) !important;
  transform: translateY(-1px) !important;
}

.fluentform .ff-btn-submit:focus-visible {
  box-shadow: var(--rw-focus-ring) !important;
  outline: none !important;
}



/* Hero Button Visibility */
/* Fix outline button on dark backgrounds */
.has-text-color.has-white-color .wp-block-button.is-style-outline .wp-block-button__link,
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link {
  color: var(--rw-white) !important;
  border-color: var(--rw-white) !important;
}

.has-text-color.has-white-color .wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-cover .wp-block-button.is-style-outline .wp-block-button__link:hover {
  background-color: var(--rw-white) !important;
  color: var(--rw-ink) !important;
  border-color: var(--rw-white) !important;
  /* Keep border white so it doesn't disappear */
}

/* Visit CTA Button Contrast */
/* Buttons inside Sky Blue background */
.has-sky-background-color .wp-block-button__link:not(:hover):not(:focus) {
  background-color: var(--rw-white);
  color: var(--rw-forest);
  border: 2px solid var(--rw-white);
}

/* ==========================================================================
   Sky Background Text Contrast
   ========================================================================== */

/* Ensure readable text on sky backgrounds */
.has-sky-background-color h1,
.has-sky-background-color h2,
.has-sky-background-color h3,
.has-sky-background-color h4 {
  color: var(--rw-white);
}

.has-sky-background-color p:not(.has-text-color) {
  color: var(--rw-white);
}

/* Override text-muted on sky backgrounds for readability */
.has-sky-background-color .has-text-muted-color {
  color: rgba(255, 255, 255, 0.75) !important;
}

/* ==========================================================================
   Professional Gallery Styling (Native WordPress Blocks)
   ========================================================================== */

/* Gallery block hover effects */
.rwc-gallery-block .wp-block-image,
.wp-block-gallery .wp-block-image {
  overflow: hidden;
  border-radius: var(--rw-radius-lg);
  box-shadow: var(--rw-shadow-md);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.rwc-gallery-block .wp-block-image:hover,
.wp-block-gallery .wp-block-image:hover {
  box-shadow: var(--rw-shadow-lg);
}

.rwc-gallery-block .wp-block-image img,
.wp-block-gallery .wp-block-image img {
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: var(--rw-radius-lg);
}

.rwc-gallery-block .wp-block-image:hover img,
.wp-block-gallery .wp-block-image:hover img {
  transform: scale(1.05);
}

/* Feature image styling */
.rwc-feature-image {
  overflow: hidden;
  border-radius: var(--rw-radius-lg);
  box-shadow: var(--rw-shadow-lg);
}

.rwc-feature-image img {
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: var(--rw-radius-lg);
}

.rwc-feature-image:hover img {
  transform: scale(1.03);
}

/* Gallery caption styling */
.wp-block-gallery figcaption,
.rwc-feature-image figcaption {
  font-size: var(--rw-text-sm);
  color: var(--rw-text-muted);
  text-align: center;
  margin-top: var(--rw-space-3);
}

/* Lightbox cursor indicator */
.wp-block-image[data-wp-lightbox-enabled="true"] img,
.wp-lightbox-container img {
  cursor: zoom-in;
}

/* ==========================================================================
   Lightbox Modal
   ========================================================================== */

.rwc-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--rw-space-4);
  background: rgba(0, 0, 0, 0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.rwc-lightbox.is-active {
  opacity: 1;
  visibility: visible;
}

.rwc-lightbox__content {
  position: relative;
  max-width: 90vw;
  max-height: 85vh;
  animation: rwc-lightbox-zoom 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes rwc-lightbox-zoom {
  from {
    opacity: 0;
    transform: scale(0.9);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.rwc-lightbox__image {
  max-width: 100%;
  max-height: 85vh;
  border-radius: var(--rw-radius-md);
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
  object-fit: contain;
}

.rwc-lightbox__close {
  position: absolute;
  top: -3rem;
  right: 0;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--rw-white) 15%, transparent);
  border: none;
  border-radius: 50%;
  color: var(--rw-white);
  font-size: 1.5rem;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.rwc-lightbox__close:hover {
  background: color-mix(in srgb, var(--rw-white) 25%, transparent);
  transform: scale(1.1);
}

.rwc-lightbox__close:focus-visible {
  outline: 2px solid var(--rw-white);
  outline-offset: 2px;
}

.rwc-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--rw-white) 15%, transparent);
  border: none;
  border-radius: 50%;
  color: var(--rw-white);
  font-size: 1.5rem;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.rwc-lightbox__nav:hover {
  background: color-mix(in srgb, var(--rw-white) 25%, transparent);
}

.rwc-lightbox__nav--prev {
  left: -4rem;
}

.rwc-lightbox__nav--next {
  right: -4rem;
}

@media (max-width: 768px) {
  .rwc-lightbox__nav--prev {
    left: 0.5rem;
  }

  .rwc-lightbox__nav--next {
    right: 0.5rem;
  }

  .rwc-lightbox__close {
    top: 0.5rem;
    right: 0.5rem;
    position: fixed;
  }
}

.rwc-lightbox__counter {
  position: absolute;
  bottom: -2.5rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.7);
  font-size: var(--rw-text-sm);
  font-weight: 500;
}

/* Hide scrollbar when lightbox is open */
body.rwc-lightbox-open {
  overflow: hidden;
}

/* ==========================================================================
   Photo Gallery Page
   ========================================================================== */

.gallery-page {
  padding-top: var(--rw-space-12);
  padding-bottom: var(--rw-space-16);
}

/* Filter Bar */
.photo-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--rw-space-4);
  margin-bottom: var(--rw-space-8);
  padding-bottom: var(--rw-space-4);
  border-bottom: 1px solid var(--rw-border);
}

.photo-filters__seasons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rw-space-2);
}

.photo-filter {
  padding: 0.5rem 1.25rem;
  background: var(--rw-bg-alt);
  border: 2px solid transparent;
  border-radius: var(--rw-radius-full);
  font-size: var(--rw-text-sm);
  font-weight: 500;
  color: var(--rw-text);
  cursor: pointer;
  transition: all var(--rw-transition-fast);
}

.photo-filter:hover {
  background: var(--rw-border);
}

.photo-filter.is-active {
  background: var(--rw-forest);
  color: var(--rw-white);
  border-color: var(--rw-forest);
}

.photo-filter:focus-visible {
  outline: 2px solid var(--rw-forest);
  outline-offset: 2px;
}

.photo-filter-select {
  padding: 0.5rem 2rem 0.5rem 1rem;
  background: var(--rw-bg-alt);
  border: 2px solid var(--rw-border);
  border-radius: var(--rw-radius-md);
  font-size: var(--rw-text-sm);
  font-weight: 500;
  color: var(--rw-text);
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2326251f' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
}

.photo-filter-select:focus-visible {
  outline: 2px solid var(--rw-forest);
  outline-offset: 2px;
}

/* Photo Grid */
.photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--rw-space-4);
}

.photo-grid__item {
  position: relative;
  overflow: hidden;
  border-radius: var(--rw-radius-lg);
  background: var(--rw-bg-alt);
  box-shadow: var(--rw-shadow-md);
  transition: transform 0.3s ease, box-shadow 0.3s ease, opacity 0.3s ease;
  margin: 0;
}

.photo-grid__item:hover {
  transform: translateY(-4px);
  box-shadow: var(--rw-shadow-lg);
}

.photo-grid__item[hidden] {
  display: none;
}

.photo-grid__link {
  display: block;
  aspect-ratio: 4/3;
  overflow: hidden;
}

.photo-grid__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.photo-grid__item:hover .photo-grid__image {
  transform: scale(1.05);
}

.photo-grid__caption {
  padding: var(--rw-space-3) var(--rw-space-4);
  font-size: var(--rw-text-sm);
  color: var(--rw-text-muted);
  background: var(--rw-white);
}

.photo-grid__caption p {
  margin: 0;
}

.photo-grid__empty {
  text-align: center;
  padding: var(--rw-space-16) var(--rw-space-4);
  color: var(--rw-text-muted);
}

/* Photo Lightbox */
.photo-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
}

.photo-lightbox[hidden] {
  display: none;
}

.photo-lightbox__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.photo-lightbox__content {
  position: relative;
  max-width: 90vw;
  max-height: 85vh;
  z-index: 1;
  animation: photo-lightbox-zoom 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes photo-lightbox-zoom {
  from {
    opacity: 0;
    transform: scale(0.9);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.photo-lightbox__image {
  max-width: 100%;
  max-height: 85vh;
  border-radius: var(--rw-radius-md);
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
  object-fit: contain;
}

.photo-lightbox__close {
  position: absolute;
  top: -3rem;
  right: 0;
  width: 2.5rem;
  height: 2.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--rw-white) 15%, transparent);
  border: none;
  border-radius: 50%;
  color: var(--rw-white);
  font-size: 1.5rem;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}

.photo-lightbox__close:hover {
  background: color-mix(in srgb, var(--rw-white) 25%, transparent);
  transform: scale(1.1);
}

.photo-lightbox__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--rw-white) 15%, transparent);
  border: none;
  border-radius: 50%;
  color: var(--rw-white);
  font-size: 1.5rem;
  cursor: pointer;
  transition: background 0.2s ease;
}

.photo-lightbox__nav:hover {
  background: color-mix(in srgb, var(--rw-white) 25%, transparent);
}

.photo-lightbox__nav--prev {
  left: -4rem;
}

.photo-lightbox__nav--next {
  right: -4rem;
}

.photo-lightbox__counter {
  position: absolute;
  bottom: -2.5rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, 0.7);
  font-size: var(--rw-text-sm);
  font-weight: 500;
}

@media (max-width: 768px) {
  .photo-filters {
    flex-direction: column;
    align-items: flex-start;
  }

  .photo-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: var(--rw-space-3);
  }

  .photo-lightbox__nav--prev {
    left: 0.5rem;
  }

  .photo-lightbox__nav--next {
    right: 0.5rem;
  }

  .photo-lightbox__close {
    top: 0.5rem;
    right: 0.5rem;
    position: fixed;
  }
}

@media (max-width: 480px) {
  .photo-grid {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Join CTA Pattern - Forest Green
   ========================================================================== */

.rwc-join-cta {
  background-color: var(--rw-forest);
  padding: var(--rw-space-10) var(--rw-space-4);
  text-align: center;
}

.rwc-join-cta__icon img {
  filter: brightness(0) invert(1);
}

.rwc-join-cta__title {
  color: var(--rw-white);
  margin-bottom: var(--rw-space-2);
}

.rwc-join-cta__text {
  color: rgba(255, 255, 255, 0.9);
  font-size: var(--rw-text-lg);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--rw-space-4);
}

/* ---- Bark (Brown Fill) ---- */
.wp-block-button.is-style-rwc-btn-bark .wp-block-button__link {
  background-color: var(--rw-bark) !important;
  color: var(--rw-white) !important;
  border-color: var(--rw-bark) !important;
}

.wp-block-button.is-style-rwc-btn-bark .wp-block-button__link:hover,
.wp-block-button.is-style-rwc-btn-bark .wp-block-button__link:focus-visible {
  background-color: var(--rw-brown-1) !important;
  border-color: var(--rw-brown-1) !important;
  color: var(--rw-white) !important;
}

/* ---- Bark (Brown Outline) ---- */
.wp-block-button.is-style-rwc-btn-bark-outline .wp-block-button__link {
  background-color: transparent !important;
  color: var(--rw-bark) !important;
  border: 2px solid var(--rw-bark) !important;
}

.wp-block-button.is-style-rwc-btn-bark-outline .wp-block-button__link:hover,
.wp-block-button.is-style-rwc-btn-bark-outline .wp-block-button__link:focus-visible {
  background-color: var(--rw-bark) !important;
  color: var(--rw-white) !important;
  border-color: var(--rw-bark) !important;
}

/* ---- Ink (Charcoal Fill) ---- */
.wp-block-button.is-style-rwc-btn-ink .wp-block-button__link {
  background-color: var(--rw-ink) !important;
  color: var(--rw-white) !important;
  border-color: var(--rw-ink) !important;
}

.wp-block-button.is-style-rwc-btn-ink .wp-block-button__link:hover,
.wp-block-button.is-style-rwc-btn-ink .wp-block-button__link:focus-visible {
  background-color: var(--rw-brown-2) !important;
  border-color: var(--rw-brown-2) !important;
  color: var(--rw-white) !important;
}

/* ---- White (Fill) — for dark/hero backgrounds ---- */
.wp-block-button.is-style-rwc-btn-light .wp-block-button__link,
.wp-block-button.rwc-btn-light .wp-block-button__link {
  background-color: var(--rw-white) !important;
  color: var(--rw-forest) !important;
  border-color: var(--rw-white) !important;
}

.wp-block-button.is-style-rwc-btn-light .wp-block-button__link:hover,
.wp-block-button.is-style-rwc-btn-light .wp-block-button__link:focus-visible,
.wp-block-button.rwc-btn-light .wp-block-button__link:hover {
  background-color: var(--rw-bg-alt) !important;
  border-color: var(--rw-bg-alt) !important;
  color: var(--rw-forest) !important;
}

/* ---- White (Outline) — ghost button for dark backgrounds ---- */
.wp-block-button.is-style-rwc-btn-light-outline .wp-block-button__link,
.wp-block-button.rwc-btn-light-outline .wp-block-button__link {
  background-color: transparent !important;
  color: var(--rw-white) !important;
  border: 2px solid var(--rw-white) !important;
}

.wp-block-button.is-style-rwc-btn-light-outline .wp-block-button__link:hover,
.wp-block-button.is-style-rwc-btn-light-outline .wp-block-button__link:focus-visible,
.wp-block-button.rwc-btn-light-outline .wp-block-button__link:hover {
  background-color: color-mix(in srgb, var(--rw-white) 15%, transparent) !important;
  border-color: var(--rw-white) !important;
  color: var(--rw-white) !important;
}

/* ---- Ink (Charcoal Outline) ---- */
.wp-block-button.is-style-rwc-btn-dark .wp-block-button__link,
.wp-block-button.rwc-btn-dark .wp-block-button__link {
  background-color: transparent !important;
  color: var(--rw-ink) !important;
  border: 2px solid var(--rw-ink) !important;
}

.wp-block-button.is-style-rwc-btn-dark .wp-block-button__link:hover,
.wp-block-button.is-style-rwc-btn-dark .wp-block-button__link:focus-visible,
.wp-block-button.rwc-btn-dark .wp-block-button__link:hover {
  background-color: var(--rw-ink) !important;
  color: var(--rw-white) !important;
  border-color: var(--rw-ink) !important;
}

/* ==========================================================================
   FAQ Pattern
   ========================================================================== */

.rwc-faq {
  padding: var(--rw-space-12) var(--rw-space-4);
}

.rwc-faq__title {
  margin-bottom: var(--rw-space-8);
}

.rwc-faq__item {
  background: var(--rw-white);
  border: 2px solid var(--rw-forest);
  border-radius: var(--rw-radius-lg);
  margin-bottom: var(--rw-space-3);
  overflow: hidden;
}

.rwc-faq__item summary {
  padding: var(--rw-space-4) var(--rw-space-5);
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  gap: var(--rw-space-3);
}

.rwc-faq__item summary::before {
  content: "▶";
  font-size: 0.75em;
  color: var(--rw-forest);
  transition: transform 0.2s ease;
}

.rwc-faq__item[open] summary::before {
  transform: rotate(90deg);
}

.rwc-faq__item summary::-webkit-details-marker {
  display: none;
}

.rwc-faq__item p {
  padding: 0 var(--rw-space-5) var(--rw-space-4);
  margin: 0;
  color: var(--rw-text-muted);
  line-height: 1.7;
}

/* ==========================================================================
   Event Card Pattern
   ========================================================================== */

.rwc-event-card {
  background: var(--rw-white);
  border: 1px solid var(--rw-border);
  border-radius: var(--rw-radius-lg);
  padding: var(--rw-space-5);
  box-shadow: var(--rw-shadow-sm);
}

.rwc-event-card__header {
  margin-bottom: var(--rw-space-3);
}

.rwc-event-card__date {
  background: var(--rw-leaf);
  color: var(--rw-white);
  padding: var(--rw-space-2) var(--rw-space-3);
  border-radius: var(--rw-radius-md);
  min-width: 60px;
  text-align: center;
  flex-shrink: 0;
}

.rwc-event-card__day {
  font-size: var(--rw-text-xl);
  font-weight: 700;
  line-height: 1.2;
  margin: 0;
}

.rwc-event-card__month {
  font-size: var(--rw-text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 0;
}

.rwc-event-card__title {
  margin: 0 0 var(--rw-space-1) 0;
  font-size: var(--rw-text-lg);
}

.rwc-event-card__meta {
  font-size: var(--rw-text-sm);
  color: var(--rw-text-muted);
  margin: 0;
}

.rwc-event-card__desc {
  color: var(--rw-text-muted);
  margin-bottom: var(--rw-space-4);
}

/* ==========================================================================
   Generic CTA Patterns
   ========================================================================== */

.rwc-cta {
  padding: var(--rw-space-16) var(--rw-space-4);
  text-align: center;
}

.rwc-cta__title {
  margin-bottom: var(--rw-space-3);
}

.rwc-cta__text {
  font-size: var(--rw-text-lg);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--rw-space-2);
}

.rwc-cta__subtext {
  font-size: var(--rw-text-sm);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: var(--rw-space-4);
  opacity: 0.8;
}

/* Forest variant (primary dark green background) */
.rwc-cta--forest {
  background-color: var(--rw-forest);
}

.rwc-cta--forest .rwc-cta__title,
.rwc-cta--forest .rwc-cta__text,
.rwc-cta--forest .rwc-cta__subtext {
  color: var(--rw-white);
}

/* Sky variant (decorative only - consider using forest instead) */
.rwc-cta--sky {
  background-color: var(--rw-forest);
}

.rwc-cta--sky .rwc-cta__title,
.rwc-cta--sky .rwc-cta__text,
.rwc-cta--sky .rwc-cta__subtext {
  color: var(--rw-white);
}

/* Leaf variant (green background) */
.rwc-cta--leaf {
  background-color: var(--rw-leaf);
}

.rwc-cta--leaf .rwc-cta__title,
.rwc-cta--leaf .rwc-cta__text {
  color: var(--rw-ink);
}

/* ==========================================================================
   Hero Patterns
   ========================================================================== */

/* Base hero styles - Simplified to restore block flow */
.rwc-hero {
  position: relative;
  width: 100%;
}

.rwc-hero h1 {
  margin-bottom: var(--rw-space-4);
}

.rwc-hero p {
  margin-bottom: 0;
}

/* Optional balanced layout for heroes with long intro text */
@media (min-width: 1024px) {
  .rwc-hero--balanced {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--rw-space-12);
    text-align: left;
  }

  .rwc-hero--balanced h1 {
    flex: 0 0 45%;
    margin-bottom: 0;
  }

  .rwc-hero--balanced p {
    flex: 1;
    max-width: 700px;
  }

  /* Override center-align if balanced */
  .rwc-hero--balanced .has-text-align-center {
    text-align: inherit !important;
  }
}

/* Height variants - Reduced for traditional feel */
.rwc-hero--short {
  min-height: 150px;
}

.rwc-hero--medium,
.rwc-hero--text {
  min-height: 220px;
}

.rwc-hero--tall {
  min-height: 350px;
}

@media (min-width: 768px) {
  .rwc-hero--short {
    min-height: 180px;
  }

  .rwc-hero--medium,
  .rwc-hero--text {
    min-height: 280px;
  }

  .rwc-hero--tall {
    min-height: 400px;
  }
}

@media (min-width: 1024px) {
  .rwc-hero--tall {
    min-height: 50vh;
    max-height: 550px;
  }
}

/* Image hero specific styles */
.rwc-hero--image {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.rwc-hero--image .wp-block-cover__inner-container {
  max-width: var(--rw-container-lg);
  width: 100%;
  padding: 0 var(--rw-space-4);
}

/* Overlay strength utilities */
.rwc-hero--overlay-light .wp-block-cover__background {
  opacity: 0.3;
}

.rwc-hero--overlay-medium .wp-block-cover__background {
  opacity: 0.5;
}

.rwc-hero--overlay-strong .wp-block-cover__background {
  opacity: 0.7;
}

/* Gradient overlay option - Forest green */
.rwc-hero--gradient .wp-block-cover__background {
  background: linear-gradient(180deg,
      rgba(26, 60, 52, 0.3) 0%,
      rgba(26, 60, 52, 0.7) 100%);
  opacity: 1;
}

/* Hero CTA buttons */
.rwc-hero .wp-block-buttons {
  margin-top: var(--rw-space-6);
}

.rwc-hero .wp-block-button__link {
  font-weight: 600;
  transition: all var(--rw-transition-base);
}

.rwc-hero .wp-block-button__link:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Outline button on hero */
.rwc-hero .is-style-outline .wp-block-button__link {
  border-color: currentColor;
  color: var(--rw-white);
}

.rwc-hero .is-style-outline .wp-block-button__link:hover {
  background: rgba(255, 255, 255, 0.1);
}

/* Text alignment for left-aligned heroes */
.rwc-hero--left .wp-block-cover__inner-container {
  text-align: left;
}

.rwc-hero--left h1,
.rwc-hero--left p {
  text-align: left;
}

.rwc-hero--left .wp-block-buttons {
  justify-content: flex-start;
}

/* ==========================================================================
   Utilities & Scoped Component Styles
   ========================================================================== */

/* Scoped Component Styles */
.rwc-card,
.rwc-panel,
.rwc-notice-banner,
.rwc-cta-single,
.news-card,
.activity-card,
.rwc-news-card,
.rwc-featured-card,
.rwc-activity-card,
.rwc-event-card {
  border: 1px solid var(--rw-border);
  /* Move border width here */
  border-radius: var(--rw-border-radius, var(--rw-radius-lg));
  padding: var(--rw-space-6);
  /* Default padding (1.5rem / ~24px) - roughly Spacing 30 */
  overflow: hidden;
  /* Ensure content obeys radius */
}

/* Modifier for larger padding if needed */
.rwc-card--large,
.rwc-panel--large {
  padding: var(--rw-space-10);
  /* 2.5rem / Spacing 40-50 approx */
}


/* Form Fields */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
textarea,
select {
  border-radius: var(--rw-border-radius, var(--rw-radius-md));
}

/* Rounded Images */
.wp-block-image.is-style-rounded img,
.wp-block-image.is-style-circle-mask img {
  border-radius: var(--rw-border-radius, var(--rw-radius-lg));
}

/* Pills */
.is-style-pill {
  border-radius: 9999px !important;
  padding: 0.25em 0.75em !important;
}

/* Section Spacing Utilities - Reduced for tighter layout */
.rwc-section-padded {
  padding-top: var(--wp--preset--spacing--40);
  padding-bottom: var(--wp--preset--spacing--40);
}

.rwc-section-margin {
  margin-top: var(--wp--preset--spacing--30);
  margin-bottom: var(--wp--preset--spacing--30);
}

@media (min-width: 768px) {
  .rwc-section-padded {
    padding-top: var(--wp--preset--spacing--60);
    padding-bottom: var(--wp--preset--spacing--60);
  }

  .rwc-section-margin {
    margin-top: var(--wp--preset--spacing--40);
    margin-bottom: var(--wp--preset--spacing--40);
  }
}

/* Granular Spacing Utilities - Synced with theme.json presets */
.rwc-mb-10 {
  margin-bottom: var(--wp--preset--spacing--10);
}

.rwc-mb-20 {
  margin-bottom: var(--wp--preset--spacing--20);
}

.rwc-mb-30 {
  margin-bottom: var(--wp--preset--spacing--30);
}

.rwc-mb-40 {
  margin-bottom: var(--wp--preset--spacing--40);
}

.rwc-mb-50 {
  margin-bottom: var(--wp--preset--spacing--50);
}

.rwc-mb-60 {
  margin-bottom: var(--wp--preset--spacing--60);
}

.rwc-mt-10 {
  margin-top: var(--wp--preset--spacing--10);
}

.rwc-mt-20 {
  margin-top: var(--wp--preset--spacing--20);
}

.rwc-mt-30 {
  margin-top: var(--wp--preset--spacing--30);
}

.rwc-mt-40 {
  margin-top: var(--wp--preset--spacing--40);
}

.rwc-mt-50 {
  margin-top: var(--wp--preset--spacing--50);
}

.rwc-mt-60 {
  margin-top: var(--wp--preset--spacing--60);
}

.rwc-my-0 {
  margin-top: 0;
  margin-bottom: 0;
}

.rwc-mt-0 {
  margin-top: 0;
}

.rwc-mb-0 {
  margin-bottom: 0;
}

.rwc-pad-40 {
  padding-top: var(--wp--preset--spacing--40);
  padding-bottom: var(--wp--preset--spacing--40);
}

.rwc-pad-30 {
  padding: var(--wp--preset--spacing--30);
}

.rwc-pad-40-all {
  padding: var(--wp--preset--spacing--40);
}

.rwc-pad-30-40 {
  padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.rwc-pad-x-20 {
  padding-left: var(--wp--preset--spacing--20);
  padding-right: var(--wp--preset--spacing--20);
}

.rwc-pad-x-40 {
  padding-left: var(--wp--preset--spacing--40);
  padding-right: var(--wp--preset--spacing--40);
}

.rwc-pad-50 {
  padding-top: var(--wp--preset--spacing--50);
  padding-bottom: var(--wp--preset--spacing--50);
}

.rwc-pb-30 {
  padding-bottom: var(--wp--preset--spacing--30);
}

/* Font Weight */
.rwc-fw-bold {
  font-weight: 700;
}

/* Gap Utilities */
.rwc-gap-30 {
  gap: var(--wp--preset--spacing--30);
}

.rwc-gap-20 {
  gap: var(--wp--preset--spacing--20);
}

.rwc-gap-40 {
  gap: var(--wp--preset--spacing--40);
}

/* Min Height */
.rwc-min-h-400 {
  min-height: 400px;
}

/* Border Utilities */
.rwc-border-0 {
  border: 0 !important;
}

/* Height Utilities */
.rwc-h-20 {
  height: 20px !important;
}

/* Image Utilities */
.rwc-img-cover,
.rwc-img-cover-4-3 img,
.rwc-img-cover-1-1 img,
.rwc-img-cover-16-9 img,
.rwc-img-cover-3-4 img {
  object-fit: cover;
}

.rwc-img-cover-4-3 img {
  aspect-ratio: 4/3;
}

.rwc-img-cover-1-1 img {
  aspect-ratio: 1/1;
}

.rwc-img-cover-16-9 img {
  aspect-ratio: 16/9;
}

.rwc-img-cover-3-4 img {
  aspect-ratio: 3/4;
}

/* Icon Utilities */
.rwc-icon-lg img {
  width: 64px;
  height: 64px;
}

.rwc-icon-md img {
  width: 48px;
  height: 48px;
}

/* Text Utilities */
.rwc-text-italic {
  font-style: italic;
}

/* Timeline Utility */
.rwc-timeline-content {
  border-left: 2px solid var(--rw-border);
  /* was neutral color, which maps to border fallback */
  padding-left: var(--rw-space-10);
  /* Spacing 40 */
}


/* Generic Image Radius (optional, scope to entry content?) */
.entry-content img:not(.alignfull):not(.alignwide) {
  border-radius: var(--rw-border-radius, var(--rw-radius-lg));
}

/* ==========================================================================
   Events
   ========================================================================== */

/* Stretched Link Utility */
.rwc-stretched-link::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  content: "";
}

/* Ensure relative positioning for containers using stretched link */
.rwc-card,
.rwc-event-card {
  position: relative;
}

/* Raise nested interactive elements above stretched link */
.rwc-event-card__action,
.rwc-event-card a:not(.rwc-stretched-link) {
  position: relative;
  z-index: 2;
}


/* Event Grid */
.rwc-event-grid {
  display: grid;
  gap: var(--rw-space-6);
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
}

/* Event Card */
.rwc-event-card {
  display: flex;
  flex-direction: row;
  /* Ensure row alignment */
  align-items: flex-start;
  /* Prevent date box from stretching if height is ignored */
  gap: var(--rw-space-4);
  padding: var(--rw-space-5);
  background: var(--rw-white);
  border: 1px solid var(--rw-border);
  border-radius: var(--rw-radius-lg);
  transition: box-shadow var(--rw-transition-base), transform var(--rw-transition-base);
  /* Added absolute position handling above */
}

.rwc-event-card:hover {
  box-shadow: var(--rw-shadow-md);
  transform: translateY(-2px);
}

.rwc-event-card--past {
  opacity: 0.75;
}

.rwc-event-card--past:hover {
  opacity: 1;
}

/* Past Events Section Styling */
.events-archive__section--past {
  background: var(--rw-bg-alt);
  /* Explicitly set background if not already */
  padding: var(--rw-space-8) var(--rw-space-5);
  border-radius: var(--rw-radius-xl);
  margin-bottom: var(--rw-space-10);
  /* Gap between this and CTA */
  margin-top: var(--rw-space-10);
  /* Ensure it looks distinct */
}

.rwc-event-card__date {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  background: var(--rw-forest);
  color: var(--rw-white);
  border-radius: var(--rw-radius, 0.5rem);
  text-align: center;
}

.rwc-event-card--past .rwc-event-card__date {
  background: var(--rw-bg-alt);
  color: var(--rw-text-muted);
}

.rwc-event-card__day {
  font-size: var(--rw-text-2xl);
  font-weight: 700;
  line-height: 1;
}

.rwc-event-card__month {
  font-size: var(--rw-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 2px;
}

.rwc-event-card__content {
  flex: 1;
  min-width: 0;
}

.rwc-event-card__title {
  margin: 0 0 var(--rw-space-2);
  font-size: var(--rw-text-lg);
  font-weight: 600;
  line-height: 1.3;
}

.rwc-event-card__title a {
  color: var(--rw-ink);
  text-decoration: none;
}

.rwc-event-card__title a:hover {
  color: var(--rw-forest);
}

.rwc-event-card__meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--rw-space-2);
  margin: 0 0 var(--rw-space-3);
  font-size: var(--rw-text-sm);
  color: var(--rw-text-muted);
}

.rwc-event-card__excerpt {
  margin: 0 0 var(--rw-space-4);
  font-size: var(--rw-text-sm);
  color: var(--rw-text);
  line-height: var(--rw-leading-normal);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.rwc-event-card__action {
  display: inline-block;
  width: auto;
  font-size: var(--rw-text-sm);
  padding: 0.5rem 1rem;
}

.rwc-event-card__action:hover,
.rwc-event-card__action:focus-visible {
  color: var(--rw-white);
  text-decoration: none;
}

/* Event Badges */
.rwc-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.6rem;
  font-size: var(--rw-text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-radius: var(--rw-radius-full);
}

.rwc-badge--open {
  /* Forest green tinted badge */
  background: rgba(26, 60, 52, 0.15);
  color: var(--rw-forest);
}

.rwc-badge--members {
  background: rgba(26, 60, 52, 0.15);
  color: var(--rw-forest);
}

.rwc-badge--volunteers {
  /* Use original volunteer badge color (lighter tan) instead of bark-based token */
  background: rgba(210, 163, 122, 0.25);
  color: var(--rw-brown-2);
}

/* Single Event Template */
.single-event {
  padding-bottom: var(--rw-space-16);
}

.single-event__header {
  margin-bottom: var(--rw-space-8);
}

.single-event__past-badge {
  display: inline-block;
  padding: 0.3rem 0.75rem;
  margin-bottom: var(--rw-space-4);
  background: var(--rw-bg-alt);
  border: 1px solid var(--rw-border);
  border-radius: var(--rw-radius-full);
  font-size: var(--rw-text-sm);
  color: var(--rw-text-muted);
}

.single-event__title {
  margin-bottom: var(--rw-space-4);
  color: var(--rw-forest);
}

.single-event__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--rw-space-4);
  font-size: var(--rw-text-base);
  color: var(--rw-text-muted);
}

.single-event__date {
  display: inline-flex;
  align-items: center;
  gap: var(--rw-space-2);
}

.single-event__date svg {
  flex-shrink: 0;
}

.single-event__type {
  padding: 0.2rem 0.6rem;
  background: var(--rw-bg-alt);
  border-radius: var(--rw-radius-sm);
  font-size: var(--rw-text-sm);
}

.single-event__featured-image {
  margin-bottom: var(--rw-space-8);
}

.single-event__featured-image img {
  width: 100%;
  border-radius: var(--rw-radius-lg);
}

.single-event__content {
  margin-bottom: var(--rw-space-10);
}

.single-event__practical {
  padding: var(--rw-space-6);
  background: var(--rw-bg-alt);
  border-radius: var(--rw-radius-lg);
  margin-bottom: var(--rw-space-8);
}

.single-event__practical h2 {
  font-size: var(--rw-text-xl);
  margin-bottom: var(--rw-space-4);
}

.single-event__notes {
  font-size: var(--rw-text-base);
  line-height: var(--rw-leading-relaxed);
}

.single-event__registration {
  margin-bottom: var(--rw-space-8);
}

.single-event__registration-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--rw-space-3);
  padding: var(--rw-space-5);
  border-radius: var(--rw-radius-lg);
}

.single-event__registration-info svg {
  flex-shrink: 0;
}

.single-event__registration-info p {
  margin: 0;
}

.single-event__registration-info--open {
  background: rgba(127, 166, 50, 0.1);
  border: 1px solid rgba(127, 166, 50, 0.3);
}

.single-event__registration-info--email,
.single-event__registration-info--external {
  background: rgba(11, 95, 140, 0.08);
  border: 1px solid rgba(11, 95, 140, 0.2);
}

.single-event__reflection {
  padding: var(--rw-space-5);
  background: var(--rw-bg-alt);
  border-radius: var(--rw-radius-lg);
  text-align: center;
}

.single-event__reflection-note {
  margin: 0;
  color: var(--rw-text-muted);
  font-style: italic;
}

.single-event__back {
  padding: var(--rw-space-8) 0;
  border-top: 1px solid var(--rw-border);
}

.single-event__back-link {
  display: inline-flex;
  align-items: center;
  gap: var(--rw-space-2);
  color: var(--rw-text-muted);
  text-decoration: none;
  font-size: var(--rw-text-sm);
  transition: color var(--rw-transition-fast);
}

.single-event__back-link:hover {
  color: var(--rw-forest);
}

/* Events Archive Specific */
.events-archive__intro {
  max-width: 48rem;
  padding: var(--wp--preset--spacing--60) 0;
}

.events-archive__section {
  border-top: 1px solid var(--rw-border);
  padding: var(--wp--preset--spacing--60) 0;
}

.events-archive__section--past {
  background: var(--rw-bg-alt);
  margin-left: calc(-1 * var(--rw-space-4));
  margin-right: calc(-1 * var(--rw-space-4));
  padding-left: var(--rw-space-4);
  padding-right: var(--rw-space-4);
  border-radius: var(--rw-radius, 0.5rem);
}

@media (min-width: 768px) {
  .events-archive__section--past {
    margin-left: calc(-1 * var(--rw-space-8));
    margin-right: calc(-1 * var(--rw-space-8));
    padding-left: var(--rw-space-8);
    padding-right: var(--rw-space-8);
  }
}

.events-archive__empty {
  max-width: 32rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  padding: var(--wp--preset--spacing--60);
  background: var(--wp--preset--color--mist);
  border-radius: var(--wp--preset--spacing--10);
}

.rwc-cta-dual {
  padding: var(--wp--preset--spacing--70) 0;
}

.rwc-cta-dual .container {
  text-align: center;
}

.rwc-cta-dual .wp-block-buttons {
  justify-content: center;
  gap: var(--wp--preset--spacing--30);
  display: flex;
  flex-wrap: wrap;
}

/* ==========================================================================
   Image Crop Styles
   ========================================================================== */

.wp-block-image.is-style-rwc-crop-1x1,
.wp-block-image.is-style-rwc-crop-4x5,
.wp-block-image.is-style-rwc-crop-3x2,
.wp-block-image.is-style-rwc-crop-21x9 {
  overflow: hidden;
}

.wp-block-image.is-style-rwc-crop-1x1 {
  aspect-ratio: 1 / 1;
}

.wp-block-image.is-style-rwc-crop-4x5 {
  aspect-ratio: 4 / 5;
}

.wp-block-image.is-style-rwc-crop-3x2 {
  aspect-ratio: 3 / 2;
}

.wp-block-image.is-style-rwc-crop-21x9 {
  aspect-ratio: 21 / 9;
}

.wp-block-image.is-style-rwc-crop-1x1 img,
.wp-block-image.is-style-rwc-crop-4x5 img,
.wp-block-image.is-style-rwc-crop-3x2 img,
.wp-block-image.is-style-rwc-crop-21x9 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  /* Prevents baseline gap in some inline contexts */
}

/* ==========================================================================
   Card Component Spacing
   ========================================================================== */

/* Add spacing between text and buttons in card-like groups */
.rwc-card .wp-block-buttons,
.wp-block-column>.wp-block-group.has-background .wp-block-buttons {
  margin-top: var(--wp--preset--spacing--30);
}

/* Reduce gap between card image and content/heading */
.rwc-card .wp-block-image,
.rwc-card figure,
.rwc-card__media {
  margin-bottom: var(--rw-space-3) !important;
}

.rwc-card h3.wp-block-heading {
  margin-top: 0 !important;
}

/* ==========================================================================
   Alignwide Sections with Background
   ========================================================================== */

/* Rounded corners and side padding for colored sections */
.wp-block-group.alignwide.has-background {
  border-radius: var(--rw-radius, 0.5rem);
  padding-left: var(--wp--preset--spacing--40);
  padding-right: var(--wp--preset--spacing--40);
}

/* ==========================================================================
   Multi-Column Card Grids (5+ columns)
   ========================================================================== */

/* Force columns to wrap for readable headings on medium screens */
.wp-block-columns.rwc-gap-30 {
  flex-wrap: wrap;
}

.wp-block-columns.rwc-gap-30>.wp-block-column.rwc-card {
  flex-basis: calc(33.333% - var(--wp--preset--spacing--30));
  flex-grow: 0;
  min-width: 220px;
}

@media (max-width: 768px) {
  .wp-block-columns.rwc-gap-30>.wp-block-column.rwc-card {
    flex-basis: calc(50% - var(--wp--preset--spacing--30));
  }
}

@media (max-width: 480px) {
  .wp-block-columns.rwc-gap-30>.wp-block-column.rwc-card {
    flex-basis: 100%;
  }
}

/* ==========================================================================
   Global Cover Block Height Reductions
   ========================================================================== */

/* Reduce cover block heights globally for tighter layout */
.wp-block-cover {
  min-height: 300px;
}

@media (min-width: 768px) {
  .wp-block-cover {
    min-height: 350px;
  }
}

/* Homepage cover - even more compact */
.home .wp-block-cover.alignfull:first-child {
  min-height: 350px;
  max-height: 450px;
}

@media (min-width: 768px) {
  .home .wp-block-cover.alignfull:first-child {
    min-height: 380px;
    max-height: 500px;
  }
}

/* ==========================================================================
   Headings on Dark Backgrounds - Ensure White Text
   ========================================================================== */

/* Headings inside cover blocks, dark groups, or forest backgrounds should be white */
.wp-block-cover h1,
.wp-block-cover h2,
.wp-block-cover h3,
.wp-block-cover h4,
.wp-block-cover h5,
.wp-block-cover h6,
.has-forest-background-color h1,
.has-forest-background-color h2,
.has-forest-background-color h3,
.has-forest-background-color h4,
.has-forest-background-color h5,
.has-forest-background-color h6,
.has-ink-background-color h1,
.has-ink-background-color h2,
.has-ink-background-color h3,
.has-ink-background-color h4,
.has-ink-background-color h5,
.has-ink-background-color h6,
.rwc-cta--forest h1,
.rwc-cta--forest h2,
.rwc-cta--forest h3,
.rwc-cta--forest h4,
.rwc-cta--forest h5,
.rwc-cta--forest h6,
.site-footer h1,
.site-footer h2,
.site-footer h3,
.site-footer h4,
.site-footer h5,
.site-footer h6 {
  color: var(--rw-white);
}

/* ==========================================================================
   Image Border Radius Override
   ========================================================================== */

/* Ensure all images get consistent rounded corners */
.wp-block-image img,
.wp-block-cover__image-background,
figure img {
  border-radius: var(--rw-radius);
}

/* Except for cover backgrounds which should fill */
.wp-block-cover .wp-block-cover__image-background {
  border-radius: 0;
}

/* ==========================================================================
   Sky to Forest Colour Override
   Converts all legacy sky blue elements to forest green
   ULTRA-HIGH SPECIFICITY to override WordPress-generated inline styles
   ========================================================================== */

/* Override WordPress preset colour - catches all usages */
:root {
  --wp--preset--color--sky: #1a3c34 !important;
}

/* Base override with high specificity */
.has-sky-background-color,
.wp-block-group.has-sky-background-color,
.wp-block-cover.has-sky-background-color,
div.has-sky-background-color,
section.has-sky-background-color,
header.has-sky-background-color,
.rwc-hero.has-sky-background-color,
[class*="has-sky-background-color"] {
  background-color: var(--rw-forest) !important;
}

/* Button specific overrides - all variations */
.wp-block-button__link.has-sky-background-color,
.has-sky-background-color .wp-block-button__link,
a.wp-block-button__link.has-sky-background-color,
a.has-sky-background-color,
.wp-block-button .has-sky-background-color,
button.has-sky-background-color {
  background-color: var(--rw-forest) !important;
  border-color: var(--rw-forest) !important;
}

.wp-block-button__link.has-sky-background-color:hover,
.wp-block-button__link.has-sky-background-color:focus,
a.wp-block-button__link.has-sky-background-color:hover,
a.wp-block-button__link.has-sky-background-color:focus,
a.has-sky-background-color:hover,
a.has-sky-background-color:focus {
  background-color: var(--rw-forest-hover) !important;
  border-color: var(--rw-forest-hover) !important;
}

/* Text colour - if sky was used for text, keep it accessible */
.has-sky-color {
  color: var(--rw-forest) !important;
}

/* Border overrides */
.has-sky-border-color {
  border-color: var(--rw-forest) !important;
}

/* ==========================================================================
   BLACK → INK COLOUR OVERRIDES
   Black has been removed from the palette. Redirect to Ink (Owl Brown).
   ========================================================================== */

/* Background: any black backgrounds should use ink */
.has-black-background-color,
div.has-black-background-color,
.wp-block-group.has-black-background-color {
  background-color: var(--rw-ink) !important;
}

/* Text: any black text should use ink */
.has-black-color,
p.has-black-color,
h1.has-black-color,
h2.has-black-color,
h3.has-black-color,
h4.has-black-color,
h5.has-black-color,
h6.has-black-color {
  color: var(--rw-ink) !important;
}

/* Border overrides */
.has-black-border-color {
  border-color: var(--rw-ink) !important;
}

/* Primary colour class (maps to forest) */
.has-primary-background-color {
  background-color: var(--rw-forest) !important;
}

.has-primary-color {
  color: var(--rw-forest) !important;
}

/* Ensure buttons inherit forest green */
.wp-block-button.is-style-fill .wp-block-button__link:not(.has-background),
.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-background) {
  background-color: var(--rw-forest);
  border-color: var(--rw-forest);
}

.wp-block-button.is-style-fill .wp-block-button__link:not(.has-background):hover,
.wp-block-button.is-style-fill .wp-block-button__link:not(.has-background):focus,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-background):hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-background):focus {
  background-color: var(--rw-forest-hover);
  border-color: var(--rw-forest-hover);
}

/* ==========================================================================
   GLOBAL BORDER RADIUS UNIFORMITY
   Forces 0.5rem rounded corners on ALL card/panel/box elements
   ========================================================================== */

/* WordPress Group blocks with backgrounds */
.wp-block-group.has-background,
.wp-block-group[class*="-background-color"],
.wp-block-columns.has-background,
.wp-block-column.has-background {
  border-radius: var(--rw-radius, 0.5rem) !important;
}

/* All card-like elements */
.card,
.rwc-card,
.rwc-panel,
.rwc-notice-banner,
.rwc-cta-single,
.news-card,
.activity-card,
.rwc-news-card,
.rwc-featured-card,
.rwc-activity-card,
.rwc-event-card,
.wp-block-column.has-background,
.wp-block-group.has-background,
[class*="has-background"]:not(.wp-block-cover):not(.alignfull):not(.wp-block-cover__background) {
  border-radius: var(--rw-radius, 0.5rem) !important;
}

/* Nested columns inside groups - ensure inner cards match */
.wp-block-columns .wp-block-column .wp-block-group.has-background,
.wp-block-group .wp-block-group.has-background {
  border-radius: var(--rw-radius, 0.5rem) !important;
}

/* Details/Accordion blocks */
.wp-block-details,
details {
  border-radius: var(--rw-radius, 0.5rem) !important;
}

/* Query loop cards */
.wp-block-post,
.wp-block-query .wp-block-post {
  border-radius: var(--rw-radius, 0.5rem);
  overflow: hidden;
}

/* Figure/Image containers */
.wp-block-image,
.wp-block-image figure {
  border-radius: var(--rw-radius, 0.5rem);
  overflow: hidden;
}

/* Ensure all images inside get rounded */
.wp-block-image img,
figure img,
.card img,
.rwc-card img,
.news-card img,
.activity-card img {
  border-radius: var(--rw-radius, 0.5rem);
}

/* Form inputs maintain consistency */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
textarea,
select {
  border-radius: var(--rw-radius, 0.5rem) !important;
}

/* Search block */
.wp-block-search__input,
.wp-block-search__button {
  border-radius: var(--rw-radius, 0.5rem) !important;
}

/* Search button - Force forest green */
.wp-block-search__button,
button.wp-block-search__button,
.wp-block-search .wp-block-search__button {
  background-color: var(--rw-forest) !important;
  color: var(--rw-white) !important;
  border-color: var(--rw-forest) !important;
}

.wp-block-search__button:hover,
.wp-block-search__button:focus,
button.wp-block-search__button:hover,
button.wp-block-search__button:focus,
.wp-block-search .wp-block-search__button:hover,
.wp-block-search .wp-block-search__button:focus {
  background-color: var(--rw-forest-hover) !important;
  border-color: var(--rw-forest-hover) !important;
  color: var(--rw-white) !important;
}

/* Search button SVG icon */
.wp-block-search__button svg,
.wp-block-search__button-inside .wp-block-search__button svg {
  fill: var(--rw-white) !important;
}

/* Tables */
.wp-block-table table,
table {
  border-radius: var(--rw-radius, 0.5rem);
  overflow: hidden;
}

/* Quote blocks */
.wp-block-quote,
blockquote {
  border-radius: var(--rw-radius, 0.5rem);
}

/* Code blocks */
.wp-block-code,
pre {
  border-radius: var(--rw-radius, 0.5rem);
}

/* Full width sections should NOT have rounded corners */
.alignfull,
.wp-block-cover.alignfull,
.wp-block-group.alignfull:not(.has-background) {
  border-radius: 0 !important;
}

/* But nested groups inside full width CAN have rounded corners */
.alignfull .wp-block-group.has-background,
.alignfull .wp-block-column.has-background {
  border-radius: var(--rw-radius, 0.5rem) !important;
}

/* ==========================================================================
   Leaf to Forest Colour Override for Full-Width Sections
   Converts light green leaf banners to dark green with white text
   ========================================================================== */

/* Full-width sections with leaf background → convert to forest */
.wp-block-group.alignfull.has-leaf-background-color,
.alignfull.has-leaf-background-color,
div.alignfull.has-leaf-background-color {
  background-color: var(--rw-forest) !important;
}

/* Ensure all text inside is white */
.wp-block-group.alignfull.has-leaf-background-color h1,
.wp-block-group.alignfull.has-leaf-background-color h2,
.wp-block-group.alignfull.has-leaf-background-color h3,
.wp-block-group.alignfull.has-leaf-background-color h4,
.wp-block-group.alignfull.has-leaf-background-color p,
.wp-block-group.alignfull.has-leaf-background-color li,
.alignfull.has-leaf-background-color h1,
.alignfull.has-leaf-background-color h2,
.alignfull.has-leaf-background-color h3,
.alignfull.has-leaf-background-color h4,
.alignfull.has-leaf-background-color p,
.alignfull.has-leaf-background-color li {
  color: var(--rw-white) !important;
}

/* Buttons on these sections should be white with forest text */
.wp-block-group.alignfull.has-leaf-background-color .wp-block-button__link,
.alignfull.has-leaf-background-color .wp-block-button__link {
  background-color: var(--rw-white) !important;
  color: var(--rw-forest) !important;
  border-color: var(--rw-white) !important;
}

.wp-block-group.alignfull.has-leaf-background-color .wp-block-button__link:hover,
.wp-block-group.alignfull.has-leaf-background-color .wp-block-button__link:focus,
.alignfull.has-leaf-background-color .wp-block-button__link:hover,
.alignfull.has-leaf-background-color .wp-block-button__link:focus {
  background-color: var(--rw-bg-alt) !important;
  color: var(--rw-forest) !important;
}

/* ==========================================================================
   News Shortcode Styles
   ========================================================================== */

.rwc-news-shortcode {
  max-width: var(--wp--style--global--content-size);
  margin: 0 auto;
  padding: 0 var(--rw-space-4);
}

.news-tools-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--rw-space-4);
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--wp--preset--spacing--50);
  padding: var(--rw-space-4);
  background: var(--rw-bg-alt);
  border-radius: var(--rw-radius-md);
}

.news-search {
  flex: 1;
  min-width: 200px;
  max-width: 400px;
}

.news-search__row {
  display: flex;
  gap: var(--rw-space-2);
}

.news-search__row .form-input {
  flex: 1;
  min-width: 0;
}

.news-search__row .btn {
  flex-shrink: 0;
  white-space: nowrap;
}

.date-filter {
  flex-shrink: 0;
}

.date-filter .form-select {
  min-width: 160px;
}

@media (max-width: 600px) {
  .news-tools-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .news-search {
    max-width: 100%;
  }

  .date-filter {
    width: 100%;
  }

  .date-filter .form-select {
    width: 100%;
  }
}

/* ==========================================================================
   Trail Shortcode Styles
   ========================================================================== */

.rwc-trail-shortcode {
  max-width: var(--wp--style--global--content-size);
  margin: 0 auto;
  padding: 0 var(--rw-space-4);
}

/* Trail Progress Bar */
.trail-progress {
  text-align: center;
}

.trail-progress__bar {
  height: 8px;
  background: var(--rw-border, #e5e4df);
  border-radius: var(--rw-radius-full);
  overflow: hidden;
  margin-bottom: var(--rw-space-2);
}

.trail-progress__fill {
  height: 100%;
  background: var(--rw-forest);
  border-radius: var(--rw-radius-full);
  transition: width 0.3s ease;
}

.trail-progress__text {
  font-size: var(--rw-text-sm);
  color: var(--rw-text-muted);
}

/* Trail Cards */
.trail-card {
  display: flex;
  align-items: center;
  gap: var(--rw-space-4);
  padding: var(--rw-space-4);
  background: var(--rw-white);
  border: 1px solid var(--rw-border);
  border-radius: var(--rw-radius-md);
  text-decoration: none;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.trail-card:hover,
.trail-card:focus {
  border-color: var(--rw-forest);
  box-shadow: var(--rw-shadow-lift);
  text-decoration: none;
}

.trail-card__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  color: var(--rw-white);
  font-family: var(--rw-font-display);
  font-size: var(--rw-text-2xl);
  font-weight: 700;
  background: var(--rw-forest);
  border-radius: var(--rw-radius-full);
  box-sizing: border-box;
  flex-shrink: 0;
}

.trail-card__content {
  flex: 1;
  min-width: 0;
}

.trail-card__title {
  margin: 0 0 var(--rw-space-1);
  font-size: var(--rw-text-lg);
  font-weight: 600;
  color: var(--rw-forest);
  line-height: 1.3;
}

.trail-card__excerpt {
  margin: 0;
  font-size: var(--rw-text-sm);
  color: var(--rw-ink);
  line-height: 1.5;
}

.trail-card__visited {
  color: var(--rw-forest) !important;
  font-size: var(--rw-text-xl);
  flex-shrink: 0;
}

/* Trail Pagination */
.trail-pagination {
  margin-top: var(--rw-space-8);
}

/* ==========================================================================
   Section Hub Shortcode
   ========================================================================== */

.rwc-section-hub {
  display: grid;
  gap: var(--rw-space-6);
  margin: var(--rw-space-8) 0;
}

.rwc-section-hub--cols-2 {
  grid-template-columns: repeat(2, 1fr);
}

.rwc-section-hub--cols-3 {
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 768px) {

  .rwc-section-hub--cols-2,
  .rwc-section-hub--cols-3 {
    grid-template-columns: 1fr;
  }
}

.rwc-section-hub__card {
  display: flex;
  flex-direction: column;
  background: var(--rw-white);
  border: 1px solid var(--rw-border);
  border-radius: var(--rw-radius-md);
  overflow: hidden;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.rwc-section-hub__card:hover {
  border-color: var(--rw-forest);
  box-shadow: var(--rw-shadow-lift);
}

.rwc-section-hub__image {
  display: block;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.rwc-section-hub__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.rwc-section-hub__card:hover .rwc-section-hub__image img {
  transform: scale(1.03);
}

.rwc-section-hub__content {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: var(--rw-space-5);
}

.rwc-section-hub__title {
  margin: 0 0 var(--rw-space-2);
  font-size: var(--rw-text-xl);
  font-weight: 600;
  line-height: 1.3;
}

.rwc-section-hub__title a {
  color: var(--rw-forest);
  text-decoration: none;
}

.rwc-section-hub__title a:hover,
.rwc-section-hub__title a:focus {
  color: var(--rw-forest-hover);
  text-decoration: underline;
}

.rwc-section-hub__excerpt {
  margin: 0 0 var(--rw-space-4);
  font-size: var(--rw-text-sm);
  color: var(--rw-ink);
  line-height: 1.6;
  flex: 1;
}

.rwc-section-hub__link {
  display: inline-block;
  font-size: var(--rw-text-sm);
  font-weight: 600;
  color: var(--rw-forest);
  text-decoration: none;
  margin-top: auto;
}

.rwc-section-hub__link:hover,
.rwc-section-hub__link:focus {
  color: var(--rw-forest-hover);
  text-decoration: underline;
}

.trail-pagination__info {
  color: var(--rw-text-muted);
}