/*
Theme Name: RCVMD Child Theme
Template: twentytwentyfive
Description: A modern block-based child theme for Ranked Choice Voting Maryland, built on Twenty Twenty-Five with full site editing capabilities.
Author: RCVMD
Version: 1.0.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: rcvmd
Tags: block-themes, one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, rtl-language-support, threaded-comments, translation-ready, wide-blocks
*/

/* Additional styles will be loaded via theme.json and functions.php */

/**
 * Modern CSS Reset
 * Based on Josh Comeau's CSS Reset with WordPress-specific additions
 */

/* Box sizing rules */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Remove default margin and padding */
* {
  margin: 0;
  padding: 0;
}

/* Remove list styles on ul, ol elements with a list role */
ul[role='list'],
ol[role='list'] {
  list-style: none;
}

/* Set core root defaults */
html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}

/* Set core body defaults */
body {
  min-height: 100vh;
  text-rendering: optimizeSpeed;
  line-height: var(--wp--custom--typography--line-heights--base);
  font-family: var(--wp--custom--typography--font-families--primary);
  font-size: var(--wp--preset--font-size--medium);
  color: var(--wp--custom--colors--text);
  background-color: var(--wp--custom--colors--background);
  overflow-x: hidden;
}

/* Remove default button styles */
button {
  cursor: pointer;
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

/* H1 elements are handled by theme.json typography settings */
/* Removed display: none as it was breaking editor preview */

/* A elements that don't have a class get default styles */
a:not([class]) {
  text-decoration-skip-ink: auto;
  color: var(--wp--custom--colors--primary);
}

a:not([class]):hover,
a:not([class]):focus {
  text-decoration: underline;
}

/* Make images easier to work with */
img,
picture,
svg {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Inherit fonts for inputs and buttons */
input,
button,
textarea,
select {
  font: inherit;
}

/* WordPress-specific resets */

/* Remove WordPress admin bar spacing for logged-in users */
.admin-bar {
  margin-top: 0 !important;
}

/* Reset WordPress default styles */
.wp-block-image {
  margin: 0;
}

.wp-block-group,
.wp-block-cover {
  margin-top: 0;
  margin-bottom: 0;
}

/* Fullwidth and fullscreen support */
.alignfull {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* Ensure images within fullwidth blocks scale properly */
.alignfull img {
  width: 100%;
  height: auto;
  max-width: 100%;
}

/* More selective fullscreen approach - only for alignwide class, but exclude columns */
.alignwide:not(.wp-block-columns) {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* Safe approach for alignwide columns - use theme.json spacing system */
.wp-block-columns.alignwide {
  max-width: var(--wp--style--global--content-size, 1200px);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--wp--custom--layout--sectionPaddingX, 4rem);
  padding-right: var(--wp--custom--layout--sectionPaddingX, 4rem);
  width: 100%;
  box-sizing: border-box;
}

/* Responsive adjustments for alignwide columns */
@media (max-width: 1024px) {
  .wp-block-columns.alignwide {
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

@media (max-width: 768px) {
  .wp-block-columns.alignwide {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

/* Ensure images within wide blocks scale properly */
.alignwide img {
  width: 100%;
  height: auto;
  max-width: 100%;
}

/* Custom fullscreen class for manual application */
.is-style-fullscreen,
.fullscreen {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

.is-style-fullscreen img,
.fullscreen img {
  width: 100%;
  height: auto;
  max-width: 100%;
}

/* Accessibility improvements */

/* Skip link styling */
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: var(--wp--custom--colors--surface);
  border-radius: var(--wp--custom--borders--radius--sm);
  box-shadow: var(--wp--custom--effects--shadows--lg);
  clip: auto !important;
  color: var(--wp--custom--colors--text);
  display: block;
  font-size: var(--wp--custom--typography--font-sizes--small);
  font-weight: var(--wp--custom--typography--font-weights--bold);
  height: auto;
  left: var(--wp--custom--spacing--sm);
  line-height: normal;
  padding: var(--wp--custom--spacing--sm) var(--wp--custom--spacing--md);
  text-decoration: none;
  top: var(--wp--custom--spacing--sm);
  width: auto;
  z-index: var(--wp--custom--z-index--modal);
}

/* Focus styles */
:focus {
  outline: 2px solid var(--wp--custom--colors--focus);
  outline-offset: 2px;
}

:focus:not(:focus-visible) {
  outline: none;
}

:focus-visible {
  outline: 2px solid var(--wp--custom--colors--focus);
  outline-offset: 2px;
}

/* === Standard Button Classes === */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--wp--custom--spacing--sm) var(--wp--custom--spacing--lg);
  font-weight: var(--wp--custom--typography--font-weights--medium);
  border-radius: var(--wp--custom--borders--radius--sm);
  transition: all var(--wp--custom--effects--transitions--fast);
  min-height: 2.75rem;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: inherit;
  text-decoration: none;
}

.btn:hover {
  box-shadow: var(--wp--custom--effects--shadows--md);
}

.btn-primary {
  background-color: var(--wp--preset--color--cerise-red);
  color: var(--wp--preset--color--neutral-white);
}

.btn-login {
  background-color: var(--wp--preset--color--biscay);
  color: var(--wp--preset--color--neutral-white);
  padding: var(--wp--custom--spacing--xs) var(--wp--custom--spacing--sm);
}

.btn-learn {
  background-color: var(--wp--preset--color--saffron);
  color: var(--wp--preset--color--biscay-darkest);
  padding: var(--wp--custom--spacing--xs) var(--wp--custom--spacing--sm);
}

/* WordPress Block Button Overrides */
.wp-block-button .wp-block-button__link {
  font-weight: var(--wp--custom--typography--font-weights--medium);
  border-radius: var(--wp--custom--borders--radius--sm);
  transition: all var(--wp--custom--effects--transitions--fast);
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.wp-block-button .wp-block-button__link:hover {
  box-shadow: var(--wp--custom--effects--shadows--md);
}

/**
 * SIMPLIFIED BUTTON SYSTEM - FRONTEND ONLY
 * Scoped to prevent editor conflicts
 */

/* Only apply to frontend, not WordPress editor */
body:not(.wp-admin):not([class*="editor"]):not(.block-editor):not(.edit-post):not(.site-editor) {
  
  /* Consistent border radius for all buttons */
  button,
  .btn,
  .wp-element-button,
  .wp-block-button__link,
  .load-more-events,
  .county-event-link,
  a[role="button"] {
    border-radius: 0.25rem;
    font-family: var(--wp--preset--font-family--poppins, 'Poppins', sans-serif);
    cursor: pointer;
    text-decoration: none;
  }

  /* Navbar donate button - Large red button */
  .btn-donate {
    background-color: var(--wp--preset--color--cerise-red, #DB394E);
    color: var(--wp--preset--color--neutral-white, #ffffff);
    padding: 1rem 2.25rem;
    font-size: 1.125rem;
    font-weight: 600;
    min-height: 3rem;
    border-radius: 0.25rem;
  }

  .btn-donate:hover {
    background-color: var(--wp--preset--color--cerise-red-dark, #AF2D3E);
  }

  /* Navbar login button - Standard blue button */
  .btn-login {
    background-color: var(--wp--preset--color--biscay, #18365d);
    color: var(--wp--preset--color--neutral-white, #ffffff);
    padding: 0.5rem 1rem;
    font-size: 1rem;
    font-weight: 500;
    min-height: 2.5rem;
    border-radius: 0.25rem;
  }

  .btn-login:hover {
    background-color: var(--wp--preset--color--biscay-dark, #0f243f);
  }

  /* Blue buttons (Get Involved, etc) */
  .wp-element-button.has-biscay-background-color,
  .wp-block-button__link.has-biscay-background-color {
    background-color: var(--wp--preset--color--biscay, #18365d);
    color: var(--wp--preset--color--neutral-white, #ffffff);
    padding: 0.5rem 1rem;
    font-size: 1rem;
    font-weight: 500;
    min-height: 2.5rem;
  }

  .wp-element-button.has-biscay-background-color:hover,
  .wp-block-button__link.has-biscay-background-color:hover {
    background-color: var(--wp--preset--color--biscay-dark, #0f243f);
  }

  /* Yellow buttons (Learn More, etc) */
  .wp-element-button.has-saffron-background-color,
  .wp-block-button__link.has-saffron-background-color {
    background-color: var(--wp--preset--color--saffron, #f3d245);
    color: var(--wp--preset--color--biscay-darkest, #151616);
    padding: 0.5rem 1rem;
    font-size: 1rem;
    font-weight: 500;
    min-height: 2.5rem;
  }

  .wp-element-button.has-saffron-background-color:hover,
  .wp-block-button__link.has-saffron-background-color:hover {
    background-color: var(--wp--preset--color--saffron-dark, #c2a837);
  }

  /* Default red buttons */
  .wp-element-button.has-cerise-red-background-color,
  .wp-block-button__link.has-cerise-red-background-color {
    background-color: var(--wp--preset--color--cerise-red, #DB394E);
    color: var(--wp--preset--color--neutral-white, #ffffff);
    padding: 0.5rem 1rem;
    font-size: 1rem;
    font-weight: 500;
    min-height: 2.5rem;
  }

  .wp-element-button.has-cerise-red-background-color:hover,
  .wp-block-button__link.has-cerise-red-background-color:hover {
    background-color: var(--wp--preset--color--cerise-red-dark, #AF2D3E);
  }

  /* Button style variations - ensuring theme.json styles work */
  .wp-block-button.is-style-outline .wp-block-button__link {
    background-color: transparent !important;
    color: var(--wp--preset--color--cerise-red, #DB394E) !important;
    border: 2px solid var(--wp--preset--color--cerise-red, #DB394E) !important;
    border-radius: 0.29rem !important;
    padding: 0.75rem 0.9375rem !important;
    font-family: var(--wp--preset--font-family--poppins) !important;
    font-size: var(--wp--preset--font-size--medium) !important;
    font-weight: 500 !important;
  }

  .wp-block-button.is-style-outline .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--cerise-red, #DB394E) !important;
    color: var(--wp--preset--color--neutral-white, #ffffff) !important;
  }

  .wp-block-button.is-style-login-button .wp-block-button__link {
    background-color: var(--wp--preset--color--biscay, #18365d) !important;
    color: var(--wp--preset--color--neutral-white, #ffffff) !important;
    border-radius: 0.29rem !important;
    padding: 0.675rem 0.844rem !important;
    font-family: var(--wp--preset--font-family--poppins) !important;
    font-size: 1.013rem !important;
    font-weight: 500 !important;
  }

  .wp-block-button.is-style-login-button .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--biscay-dark, #0f243f) !important;
  }

  .wp-block-button.is-style-learn-button .wp-block-button__link {
    background-color: var(--wp--preset--color--saffron, #f3d245) !important;
    color: var(--wp--preset--color--biscay-darkest, #151616) !important;
    border-radius: 0.29rem !important;
    padding: 0.675rem 0.844rem !important;
    font-family: var(--wp--preset--font-family--poppins) !important;
    font-size: 1.013rem !important;
    font-weight: 500 !important;
  }

  .wp-block-button.is-style-learn-button .wp-block-button__link:hover {
    background-color: var(--wp--preset--color--saffron-dark, #c2a837) !important;
  }

  /* Update default button radius */
  .wp-block-button__link {
    border-radius: 0.29rem !important;
  }

  /* Text link style buttons with color classes */
  .wp-element-button.has-transparent-background-color.has-biscay-color,
  .wp-block-button__link.has-transparent-background-color.has-biscay-color {
    background-color: transparent;
    color: var(--wp--preset--color--biscay, #18365d);
    text-decoration: underline;
    text-decoration-color: var(--wp--preset--color--biscay, #18365d);
  }

  .wp-element-button.has-transparent-background-color.has-biscay-color:hover,
  .wp-block-button__link.has-transparent-background-color.has-biscay-color:hover {
    color: var(--wp--preset--color--biscay-dark, #0f243f);
    text-decoration-color: var(--wp--preset--color--biscay-dark, #0f243f);
  }

  .wp-element-button.has-transparent-background-color.has-saffron-color,
  .wp-block-button__link.has-transparent-background-color.has-saffron-color {
    background-color: transparent;
    color: var(--wp--preset--color--saffron-darker, #483f14);
    text-decoration: underline;
    text-decoration-color: var(--wp--preset--color--saffron-darker, #483f14);
  }

  .wp-element-button.has-transparent-background-color.has-saffron-color:hover,
  .wp-block-button__link.has-transparent-background-color.has-saffron-color:hover {
    color: var(--wp--preset--color--saffron-darkest, #483f14);
    text-decoration-color: var(--wp--preset--color--saffron-darkest, #483f14);
  }
}

/**
 * WORDPRESS EDITOR FIXES
 * Prevent styling issues in editor
 */

/* Button fixes */
.block-editor .wp-block-button__link,
.edit-post .wp-block-button__link,
.site-editor .wp-block-button__link,
[class*="editor"] .wp-block-button__link {
  min-height: auto !important;
  height: auto !important;
  max-height: 3rem !important;
  padding: 0.75rem 1rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

/* SVG/Image aspect ratio fixes */
.block-editor .wp-block-image img,
.edit-post .wp-block-image img,
.site-editor .wp-block-image img,
[class*="editor"] .wp-block-image img {
  height: auto !important;
  max-width: 100% !important;
  object-fit: contain !important;
}

.block-editor .wp-block-image svg,
.edit-post .wp-block-image svg,
.site-editor .wp-block-image svg,
[class*="editor"] .wp-block-image svg {
  height: auto !important;
  max-width: 100% !important;
  width: auto !important;
  display: block !important;
}

/* Force aspect ratio preservation for resizable boxes */
.block-editor .components-resizable-box__container,
.edit-post .components-resizable-box__container,
.site-editor .components-resizable-box__container {
  aspect-ratio: var(--wp--aspect-ratio, auto) !important;
}

.block-editor .components-resizable-box__container img,
.block-editor .components-resizable-box__container svg {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

/**
 * HEADER
 */

.navbar {
  padding: 1rem;
}

/**
 * HERO SECTION
 */

.rcvmd-hero {
  padding: 4rem 0;
  background-color: var(--wp--preset--color--neutral-white);
}

.rcvmd-hero .container {
  max-width: 75rem;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.rcvmd-hero-text {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.rcvmd-hero-title {
  font-size: var(--wp--preset--font-size--xx-large);
  font-weight: var(--wp--custom--typography--font-weights--bold);
  color: var(--wp--preset--color--neutral-darkest);
  line-height: 1.2;
}

.rcvmd-hero-description {
  font-size: var(--wp--preset--font-size--medium);
  color: var(--wp--preset--color--cape-cod);
  line-height: 1.6;
}

.rcvmd-hero-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.rcvmd-newsletter-form {
  margin-top: 1rem;
}

.rcvmd-form-group {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: wrap;
}

.rcvmd-form-input {
  flex: 1;
  min-width: 15.625rem;
  padding: var(--wp--custom--spacing--sm);
  border: 1px solid var(--wp--custom--colors--border);
  border-radius: var(--wp--custom--borders--radius--sm);
  font-size: var(--wp--preset--font-size--medium);
}

.rcvmd-hero-image {
  display: flex;
  align-items: center;
  justify-content: center;
}

/**
 * UNDERSTANDING SECTION
 */

.rcvmd-understanding {
  padding: 4rem 0;
  background-color: var(--wp--preset--color--neutral-lightest);
}

.rcvmd-understanding .container {
  max-width: 75rem;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.rcvmd-understanding-text {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.rcvmd-understanding-title {
  font-size: var(--wp--preset--font-size--x-large);
  font-weight: var(--wp--custom--typography--font-weights--bold);
  color: var(--wp--preset--color--neutral-darkest);
  line-height: 1.3;
}

.rcvmd-understanding-description {
  font-size: var(--wp--preset--font-size--medium);
  color: var(--wp--preset--color--cape-cod);
  line-height: 1.6;
}

.rcvmd-understanding-actions {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.rcvmd-understanding-image {
  display: flex;
  align-items: center;
  justify-content: center;
}

.rcvmd-understanding-image img {
  width: 100%;
  height: auto;
  border-radius: var(--wp--custom--borders--radius--md);
}

.rcvmd-understanding-image figcaption {
  margin-top: 0.5rem;
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--cape-cod-light);
  text-align: center;
}

/**
 * DEMOCRACY SECTION
 */

.rcvmd-democracy-new {
  background-color: var(--wp--preset--color--cape-cod-lightest);
  padding: 7rem 4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
}

.rcvmd-democracy-new .container {
  max-width: 75rem;
  margin: 0 auto;
}

.rcvmd-democracy-component {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}

.rcvmd-democracy-content {
  display: flex;
  gap: 2rem;
}

.rcvmd-democracy-section-title {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  align-items: flex-start;
}

.rcvmd-partner-exchange-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.rcvmd-partner-exchange-icon svg {
  width: 5rem;
  height: 3.8125rem;
}

.rcvmd-democracy-text-content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.rcvmd-democracy-title {
  font-family: 'Poppins', sans-serif;
  font-size: 3rem;
  font-weight: 600;
  line-height: 3rem;
  letter-spacing: -0.06rem;
  color: var(--wp--preset--color--neutral-darkest);
  margin: 0;
}

.rcvmd-democracy-description {
  font-family: 'Poppins', sans-serif;
  font-size: 1.125rem;
  font-weight: 400;
  line-height: 1.625rem;
  color: var(--wp--preset--color--neutral-dark);
  margin: 0;
}

.rcvmd-democracy-list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.rcvmd-democracy-list-item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.rcvmd-ballot-icon,
.rcvmd-mail-icon {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rcvmd-ballot-icon svg,
.rcvmd-mail-icon svg {
  width: 3rem;
  height: 3rem;
}

.rcvmd-list-item-title {
  font-family: 'Poppins', sans-serif;
  font-size: 1.25rem;
  font-weight: 600;
  line-height: 1.5rem;
  color: var(--wp--preset--color--neutral-darkest);
  margin: 0 0 0.5rem 0;
}

.rcvmd-list-item-description {
  font-family: 'Poppins', sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.375rem;
  color: var(--wp--preset--color--neutral-dark);
  margin: 0;
}

.rcvmd-democracy-image-new {
  display: flex;
  align-items: center;
  justify-content: center;
}

.rcvmd-democracy-image-new img {
  width: 100%;
  max-width: 31.25rem;
  height: auto;
}

/**
 * MOVEMENT SECTION
 */

.rcvmd-movement {
  background-color: var(--wp--preset--color--neutral-lightest);
  padding: 5rem 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.rcvmd-movement-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}

.rcvmd-movement-action {
  margin-top: auto;
}

.rcvmd-movement-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-family: 'Poppins', sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: var(--wp--preset--color--neutral-darkest);
  text-decoration: none;
  transition: color 0.2s ease;
}

.rcvmd-movement-link:hover {
  color: var(--wp--preset--color--neutral-darker);
}

.rcvmd-movement-link svg {
  transition: transform 0.2s ease;
}

.rcvmd-movement-link:hover svg {
  transform: translateX(0.25rem);
}

/**
 * FOOTER SECTION
 */

/* Footer Component - From Figma */
.wp-block-template-part {
  z-index: 1;
}

.rcvmd-footer {
  background-color: var(--wp--preset--color--neutral-darkest);
  color: var(--wp--preset--color--neutral-white);
  padding: 3rem 0 1rem;
}

.rcvmd-footer .container {
  max-width: 75rem;
  margin: 0 auto;
  padding: 0 2rem;
}

.rcvmd-footer-content {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 2rem;
}

.rcvmd-footer-brand {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.rcvmd-footer-logo {
  font-size: var(--wp--preset--font-size--x-large);
  font-weight: var(--wp--custom--typography--font-weights--bold);
  color: var(--wp--preset--color--neutral-white);
}

.rcvmd-footer-description {
  font-size: var(--wp--preset--font-size--medium);
  color: var(--wp--preset--color--neutral-light);
  line-height: 1.6;
  max-width: 18.75rem;
}

.rcvmd-footer-social {
  display: flex;
  gap: 1rem;
}

.rcvmd-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background-color: var(--wp--preset--color--neutral-darker);
  color: var(--wp--preset--color--neutral-white);
  text-decoration: none;
  transition: background-color var(--wp--custom--effects--transitions--fast);
}

.rcvmd-social-link:hover {
  background-color: var(--wp--preset--color--cerise-red);
}

.rcvmd-footer-column {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.rcvmd-footer-column-title {
  font-size: var(--wp--preset--font-size--medium);
  font-weight: var(--wp--custom--typography--font-weights--semibold);
  color: var(--wp--preset--color--neutral-white);
  margin-bottom: 0.5rem;
}

.rcvmd-footer-link {
  color: var(--wp--preset--color--neutral-light);
  text-decoration: none;
  font-size: var(--wp--preset--font-size--small);
  transition: color var(--wp--custom--effects--transitions--fast);
}

.rcvmd-footer-link:hover {
  color: var(--wp--preset--color--neutral-white);
}

.rcvmd-footer-bottom {
  padding-top: 2rem;
  border-top: 1px solid var(--wp--preset--color--neutral-darker);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}

.rcvmd-footer-copyright {
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--neutral-light);
}

.rcvmd-footer-legal {
  display: flex;
  gap: 2rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.rcvmd-footer-legal a {
  font-size: var(--wp--preset--font-size--small);
  color: var(--wp--preset--color--neutral-light);
  text-decoration: none;
  transition: color var(--wp--custom--effects--transitions--fast);
}

.rcvmd-footer-legal a:hover {
  color: var(--wp--preset--color--neutral-white);
}

/**
 * INTERNAL PAGES
 */

.page-id-44 main div:first-child {
  padding: 0;
}

/**
 * MEDIA QUERIES
 */

/* Tablet Layout (64rem and below) */
@media (max-width: 64rem) {
  /* Hero Section */
  .rcvmd-hero .container {
    grid-template-columns: 1fr;
    gap: 3rem;
    text-align: center;
  }
  
  /* Understanding Section */
  .rcvmd-understanding .container {
    grid-template-columns: 1fr;
    gap: 3rem;
    text-align: center;
  }
  
  /* Democracy Section */
  .rcvmd-democracy-new {
    padding: 5rem 2rem;
  }
  
  .rcvmd-democracy-component {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  
  .rcvmd-democracy-title {
    font-size: 2.25rem;
    line-height: 2.5rem;
  }
  
  /* Movement Section */
  .rcvmd-movement-row {
    grid-template-columns: repeat(2, 1fr);
  }
  
  /* Support Section */
  .rcvmd-support-component {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  
  .rcvmd-support-title-new {
    font-size: 2.25rem;
    line-height: 2.75rem;
  }
  
  /* Testimonials Section */
  .rcvmd-testimonials-row {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .rcvmd-testimonials-title-new {
    font-size: 2.25rem;
    line-height: 2.75rem;
  }
  
  /* Footer */
  .rcvmd-footer-content {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}

/* Mobile Layout (48rem and below) */
@media (max-width: 48rem) {
  /* Hero Section */
  .rcvmd-hero {
    padding: 3rem 0;
  }
  
  .rcvmd-hero .container {
    padding: 0 1rem;
    gap: 2rem;
  }
  
  .rcvmd-hero-title {
    font-size: var(--wp--preset--font-size--x-large);
  }
  
  .rcvmd-hero-actions {
    flex-direction: column;
    align-items: center;
  }
  
  .rcvmd-form-group {
    flex-direction: column;
    align-items: stretch;
  }
  
  .rcvmd-form-input {
    min-width: auto;
  }
  
  /* Understanding Section */
  .rcvmd-understanding {
    padding: 3rem 0;
  }
  
  .rcvmd-understanding .container {
    padding: 0 1rem;
    gap: 2rem;
  }
  
  .rcvmd-understanding-title {
    font-size: var(--wp--preset--font-size--large);
  }
  
  .rcvmd-understanding-actions {
    flex-direction: column;
    align-items: center;
  }
  
  /* Democracy Section */
  .rcvmd-democracy-new {
    padding: 3rem 1rem;
  }
  
  .rcvmd-democracy-title {
    font-size: 1.75rem;
    line-height: 2rem;
  }
  
  .rcvmd-democracy-description {
    font-size: 1rem;
    line-height: 1.5rem;
  }
  
  .rcvmd-democracy-list-item {
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }
  
  /* Movement Section */
  .rcvmd-movement {
    padding: 3rem 0;
  }
  
  .rcvmd-movement-container {
    padding: 0 1rem;
  }
  
  .rcvmd-movement-row {
    grid-template-columns: 1fr;
  }
  
  /* Support Section */
  .rcvmd-support-new {
    padding: 3rem 0;
  }
  
  .rcvmd-support-container {
    padding: 0 1rem;
  }
  
  .rcvmd-support-title-new {
    font-size: 1.75rem;
    line-height: 2.125rem;
  }
  
  .rcvmd-support-description-new {
    font-size: 1rem;
    line-height: 1.5rem;
  }
  
  .rcvmd-support-actions-new {
    flex-direction: column;
    align-items: center;
  }
  
  /* Newsletter Section */
  .rcvmd-newsletter {
    padding: 3rem 0;
  }
  
  .rcvmd-newsletter .container {
    padding: 0 1rem;
  }
  
  .rcvmd-newsletter-title {
    font-size: var(--wp--preset--font-size--large);
  }
  
  /* Testimonials Section */
  .rcvmd-testimonials-new {
    padding: 3rem 0;
  }
  
  .rcvmd-testimonials-container {
    padding: 0 1rem;
  }
  
  .rcvmd-testimonials-row {
    grid-template-columns: 1fr;
  }
  
  .rcvmd-testimonials-title-new {
    font-size: 1.75rem;
    line-height: 2.125rem;
  }
  
  /* Footer */
  .rcvmd-footer {
    padding: 2rem 0 1rem;
  }
  
  .rcvmd-footer .container {
    padding: 0 1rem;
  }
  
  .rcvmd-footer-content {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  
  .rcvmd-footer-bottom {
    flex-direction: column;
    text-align: center;
    gap: 1rem;
  }
  
  .rcvmd-footer-legal {
    flex-direction: column;
    gap: 0.5rem;
  }
}

/* Small Mobile Layout (30rem and below) */
@media (max-width: 30rem) {
  /* Hero Section */
  .rcvmd-hero-title {
    font-size: var(--wp--preset--font-size--large);
  }
  
  /* Democracy Section */
  .rcvmd-democracy-title {
    font-size: 1.5rem;
    line-height: 1.75rem;
  }
  
  /* Support Section */
  .rcvmd-support-title-new {
    font-size: 1.5rem;
    line-height: 1.875rem;
  }
  
  /* Testimonials Section */
  .rcvmd-testimonials-title-new {
    font-size: 1.5rem;
    line-height: 1.875rem;
  }
}

/* Accessibility and Preference Queries */

/* High contrast mode support */
@media (prefers-contrast: high) {
  :focus-visible {
    outline: 3px solid;
  }
  
  .btn {
    border-width: var(--wp--custom--borders--widths--thick);
  }
  
  .btn:focus {
    outline-width: 3px;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  
  .btn {
    transition: none;
  }
  
  .btn:hover {
    transform: none;
  }
}

/**
 * EQUAL HEIGHT CONTAINERS
 * Forces equal height for movement section columns regardless of content
 */

/* Target the specific columns layout with equal height groups */
.wp-block-columns .wp-block-column .wp-block-group.is-vertical {
  height: 100%;
  display: flex !important;
  flex-direction: column;
  justify-content: flex-start;
}

/* Ensure the button container pushes to bottom */
.wp-block-columns .wp-block-column .wp-block-group.is-vertical .wp-block-buttons {
  margin-top: auto;
  margin-bottom: 0;
}

/* Additional specificity for movement section containers */
.wp-block-columns .wp-block-column .wp-block-group[style*="padding-top:2rem"] {
  min-height: 100%;
  display: flex !important;
  flex-direction: column;
}

/* Ensure parent columns have equal stretch */
.wp-block-columns.is-layout-flex {
  align-items: stretch !important;
}

.wp-block-columns.is-layout-flex .wp-block-column {
  display: flex;
  flex-direction: column;
}

/* ===========================================
   Equal Height Column Cards
   =========================================== */

/* Make inner groups fill their column containers */
.wp-block-columns > .wp-block-column > .wp-block-group {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

/* Push buttons to the bottom of each card with minimum spacing */
.wp-block-columns > .wp-block-column > .wp-block-group > .wp-block-buttons {
    margin-top: auto;
    padding-top: 1rem;
}

/* Large screen optimization */
@media screen and (min-width: 100rem) {
  body {
    font-size: var(--wp--preset--font-size--large);
  }
}

/* ==========================================================================
   News Page - Equal Height Cards
   ========================================================================== */

/* Make the post template grid items stretch to fill row height */
.news-page .wp-block-post-template.is-layout-grid {
  align-items: stretch;
}

/* Make each post item a flex container so children can stretch */
.news-page .wp-block-post-template .wp-block-post {
  display: flex;
  flex-direction: column;
}

/* Make the card box fill the full height of its parent */
.news-page .wp-block-post-template .wp-block-post > .wp-block-group {
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* Push the "Read More" link to the bottom of each card */
.news-page .wp-block-post-template .wp-block-post > .wp-block-group > .wp-block-group:last-child {
  margin-top: auto;
}

/* Alternative more specific selectors for WordPress block themes if needed */
.wp-block-group.news-page .wp-block-query .wp-block-post-template.is-layout-grid {
  align-items: stretch !important;
}

.wp-block-group.news-page .wp-block-post-template.is-layout-grid .wp-block-post {
  display: flex !important;
  flex-direction: column !important;
}

.wp-block-group.news-page .wp-block-post-template.is-layout-grid .wp-block-post > .wp-block-group {
  flex: 1;
  display: flex !important;
  flex-direction: column !important;
}

/* Ensure proper spacing inside cards */
.news-page .wp-block-post-template .wp-block-post-excerpt {
  flex-grow: 1;
}

/* ==========================================================================
   News Home Page - Equal Height Cards (Blog Posts Index)
   ========================================================================== */

/* Apply same equal height rules to news-home-page class */
.news-home-page .wp-block-post-template.is-layout-grid {
  align-items: stretch;
}

.news-home-page .wp-block-post-template .wp-block-post {
  display: flex;
  flex-direction: column;
}

.news-home-page .wp-block-post-template .wp-block-post > .wp-block-group {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.news-home-page .wp-block-post-template .wp-block-post > .wp-block-group > .wp-block-group:last-child {
  margin-top: auto;
}

.news-home-page .wp-block-post-template .wp-block-post-excerpt {
  flex-grow: 1;
}

/* ===================================
   WPForms Newsletter Signup Form (ID 160)
   =================================== */

/* Completely hide field labels - using placeholders instead */
#wpforms-160 .wpforms-field-label,
.wpforms-form[data-formid="160"] .wpforms-field-label,
#wpforms-160 .wpforms-field-sublabel,
.wpforms-form[data-formid="160"] .wpforms-field-sublabel {
  display: none !important;
}

/* Main form container - display as flex to align field-container and submit-container inline */
#wpforms-160,
.wpforms-form[data-formid="160"] {
  margin: 0;
  padding: 0;
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 0.5rem !important;
  align-items: flex-start !important;
  width: 100%;
}

/* Field container - contains the email fields - MUST expand */
#wpforms-160 .wpforms-field-container,
.wpforms-form[data-formid="160"] .wpforms-field-container {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
}

/* Email field - full width of field container */
#wpforms-160 .wpforms-field,
#wpforms-160 .wpforms-field-email,
.wpforms-form[data-formid="160"] .wpforms-field,
.wpforms-form[data-formid="160"] .wpforms-field-email {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Field row - contains both email inputs - MUST be full width */
#wpforms-160 .wpforms-field-row,
.wpforms-form[data-formid="160"] .wpforms-field-row {
  display: flex !important;
  gap: 0.5rem !important;
  margin: 0 !important;
  width: 100% !important;
}

/* Individual half-width containers for email inputs - equal flexible space */
#wpforms-160 .wpforms-one-half,
.wpforms-form[data-formid="160"] .wpforms-one-half {
  flex: 1 1 50% !important;
  min-width: 0 !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Remove the clear fix on first half */
#wpforms-160 .wpforms-one-half.wpforms-first,
.wpforms-form[data-formid="160"] .wpforms-one-half.wpforms-first {
  clear: none !important;
}

/* Input field styling to match .rcvmd-form-input - MUST be full width */
#wpforms-160 input[type="email"],
#wpforms-160 input[type="text"],
.wpforms-form[data-formid="160"] input[type="email"],
.wpforms-form[data-formid="160"] input[type="text"] {
  width: 100% !important;
  box-sizing: border-box !important;
  padding: var(--wp--custom--spacing--sm, 0.75rem);
  border: 1px solid var(--wp--custom--colors--border, #e5e5e5);
  border-radius: var(--wp--custom--borders--radius--sm, 0.375rem);
  font-size: var(--wp--preset--font-size--medium, 1rem);
  font-family: inherit;
  background-color: var(--wp--preset--color--neutral-white, #ffffff);
  color: var(--wp--preset--color--cape-cod, #3e4444);
  transition: all 0.3s ease;
  margin: 0 !important;
}

/* Input focus state */
#wpforms-160 input[type="email"]:focus,
#wpforms-160 input[type="text"]:focus,
.wpforms-form[data-formid="160"] input[type="email"]:focus,
.wpforms-form[data-formid="160"] input[type="text"]:focus {
  outline: none;
  border-color: var(--wp--preset--color--biscay, #18365d);
  box-shadow: 0 0 0 2px rgba(24, 54, 93, 0.1);
}

/* Placeholder text styling */
#wpforms-160 input::placeholder,
.wpforms-form[data-formid="160"] input::placeholder {
  color: var(--wp--preset--color--cape-cod-light, #798383);
  opacity: 1;
}

/* Submit button container - aligned with input fields */
#wpforms-160 .wpforms-submit-container,
.wpforms-form[data-formid="160"] .wpforms-submit-container {
  margin: 0 !important;
  padding: 0 !important;
  flex-shrink: 0 !important;
  flex-grow: 0 !important;
  align-self: flex-start !important;
}

/* Submit button styling to match .btn.btn-login */
#wpforms-160 .wpforms-submit,
.wpforms-form[data-formid="160"] .wpforms-submit,
#wpforms-160 button[type="submit"],
.wpforms-form[data-formid="160"] button[type="submit"] {
  background-color: var(--wp--preset--color--biscay, #18365d) !important;
  color: var(--wp--preset--color--neutral-white, #ffffff) !important;
  padding: var(--wp--custom--spacing--sm, 0.75rem) var(--wp--custom--spacing--md, 1.25rem) !important;
  border: 1px solid var(--wp--preset--color--biscay, #18365d) !important;
  border-radius: var(--wp--custom--borders--radius--sm, 0.375rem) !important;
  font-size: var(--wp--preset--font-size--medium, 1rem) !important;
  font-weight: 500 !important;
  font-family: inherit !important;
  cursor: pointer !important;
  transition: background-color 0.3s ease !important;
  text-transform: none !important;
  height: auto !important;
  min-height: unset !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  white-space: nowrap !important;
}

/* Submit button hover state */
#wpforms-160 .wpforms-submit:hover,
.wpforms-form[data-formid="160"] .wpforms-submit:hover,
#wpforms-160 button[type="submit"]:hover,
.wpforms-form[data-formid="160"] button[type="submit"]:hover {
  background-color: var(--wp--preset--color--biscay-dark, #0f243f) !important;
  color: var(--wp--preset--color--neutral-white, #ffffff) !important;
}

/* Hide any field descriptions that might cause layout issues */
#wpforms-160 .wpforms-field-description,
.wpforms-form[data-formid="160"] .wpforms-field-description {
  display: none !important;
}

/* Error messages should appear below the form */
#wpforms-160 .wpforms-error,
.wpforms-form[data-formid="160"] .wpforms-error {
  position: absolute !important;
  bottom: -1.5rem !important;
  left: 0 !important;
  font-size: 0.75rem !important;
  color: var(--wp--preset--color--cerise-red, #e63946) !important;
  margin: 0 !important;
}

/* Remove WPForms confirmation container default styling */
#wpforms-160 .wpforms-confirmation-container,
.wpforms-form[data-formid="160"] .wpforms-confirmation-container {
  margin: 1rem 0 0 0;
  padding: 1rem;
  background-color: var(--wp--preset--color--saffron-lightest, #fef9e7);
  border: 1px solid var(--wp--preset--color--saffron, #f3d245);
  border-radius: var(--wp--custom--borders--radius--sm, 0.375rem);
  width: 100%;
}

/* Footer-specific form styling - inherits inline layout from main styles */
.rcvmd-footer-newsletter-form #wpforms-160,
.rcvmd-footer-newsletter-form .wpforms-form[data-formid="160"] {
  width: 100%;
}

/* Ensure footer form maintains inline layout */
.rcvmd-footer-newsletter-form #wpforms-160 .wpforms-field-container,
.rcvmd-footer-newsletter-form .wpforms-form[data-formid="160"] .wpforms-field-container {
  flex: 1 !important;
}

.rcvmd-footer-newsletter-form #wpforms-160 .wpforms-submit-container,
.rcvmd-footer-newsletter-form .wpforms-form[data-formid="160"] .wpforms-submit-container {
  flex-shrink: 0 !important;
}

/* Privacy text styling */
.rcvmd-privacy-text {
  font-size: var(--wp--preset--font-size--small, 0.875rem);
  color: var(--wp--preset--color--cape-cod-light, #798383);
  margin-top: 0.5rem;
  line-height: 1.4;
}

.rcvmd-privacy-text a {
  color: var(--wp--preset--color--biscay, #18365d);
  text-decoration: underline;
}

.rcvmd-privacy-text a:hover {
  color: var(--wp--preset--color--biscay-dark, #0f243f);
}

/* Responsive adjustments */
@media (max-width: 768px) {
  /* Stack form elements vertically on mobile */
  #wpforms-160,
  .wpforms-form[data-formid="160"],
  .rcvmd-footer-newsletter-form #wpforms-160,
  .rcvmd-footer-newsletter-form .wpforms-form[data-formid="160"] {
    flex-wrap: wrap !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.75rem !important;
  }

  /* Field container full width */
  #wpforms-160 .wpforms-field-container,
  .wpforms-form[data-formid="160"] .wpforms-field-container {
    width: 100% !important;
  }

  /* Stack email inputs vertically */
  #wpforms-160 .wpforms-field-row,
  .wpforms-form[data-formid="160"] .wpforms-field-row {
    flex-direction: column !important;
    gap: 0.5rem !important;
  }

  /* Email inputs full width */
  #wpforms-160 .wpforms-one-half,
  .wpforms-form[data-formid="160"] .wpforms-one-half {
    width: 100% !important;
  }

  /* Submit button full width */
  #wpforms-160 .wpforms-submit-container,
  .wpforms-form[data-formid="160"] .wpforms-submit-container {
    width: 100% !important;
  }

  #wpforms-160 .wpforms-submit,
  .wpforms-form[data-formid="160"] .wpforms-submit {
    width: 100% !important;
  }
}

/* Additional breakpoint for very small screens */
@media (max-width: 480px) {
  #wpforms-160 input[type="email"],
  #wpforms-160 input[type="text"],
  .wpforms-form[data-formid="160"] input[type="email"],
  .wpforms-form[data-formid="160"] input[type="text"] {
    font-size: 16px !important; /* Prevent zoom on iOS */
  }
}

/* ===================================
   Newsletter Signup Form - Inline Layout Fix
   Overrides to ensure proper inline display
   =================================== */

/* Newsletter Signup Form - Inline Layout */
#wpforms-160,
.wpforms-form[data-formid="160"] {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 12px !important;
}

/* Field container takes available space */
#wpforms-160 .wpforms-field-container,
.wpforms-form[data-formid="160"] .wpforms-field-container {
  flex: 1 !important;
  min-width: 0 !important;
}

/* Email field wrapper */
#wpforms-160 .wpforms-field-email,
.wpforms-form[data-formid="160"] .wpforms-field-email {
  width: 100% !important;
}

/* Field row - contains both email inputs */
#wpforms-160 .wpforms-field-row,
.wpforms-form[data-formid="160"] .wpforms-field-row {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 12px !important;
  max-width: none !important;
  width: 100% !important;
}

/* Each email input container takes equal space */
#wpforms-160 .wpforms-one-half,
.wpforms-form[data-formid="160"] .wpforms-one-half {
  flex: 1 !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
}

/* Inputs fill their container */
#wpforms-160 input[type="email"],
.wpforms-form[data-formid="160"] input[type="email"] {
  width: 100% !important;
}

/* Submit container stays auto width */
#wpforms-160 .wpforms-submit-container,
.wpforms-form[data-formid="160"] .wpforms-submit-container {
  flex-shrink: 0 !important;
}

/* ===================================
   Footer Newsletter Form Alignment Fix
   =================================== */

/* Footer newsletter form - align inputs and button vertically */
.rcvmd-footer-newsletter-form .wpforms-form {
  align-items: center !important;
}

.rcvmd-footer-newsletter-form .wpforms-submit-container {
  align-self: center !important;
}

.rcvmd-footer-newsletter-form .wpforms-submit-container br {
  display: none !important;
}

.rcvmd-footer-newsletter-form .wpforms-field-container {
  align-self: center !important;
}

/* Add spacing between newsletter section and footer link columns */
.rcvmd-footer-newsletter {
  margin-right: 40px !important;
}