/*
Theme Name: GMIA Theme
Template: blocksy
Theme URI: https://gmia.net
Author: GMIA Development Team
Author URI: https://gmia.net
Description: Custom child theme for GMIA built on Blocksy. Configure header, footer, colors, and typography via Blocksy Customizer.
Version: 2.2.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: gmia-theme
*/

/* ==========================================================================
   GMIA Color Palette Reference

   Configure these colors in Blocksy Customizer > General > Colors.
   These CSS variables are provided as a reference for custom elements.
   ========================================================================== */
:root {
  /* Primary: Green (logo #3A5438) */
  --gmia-green-50: #f3f9f2;
  --gmia-green-100: #e2f0e1;
  --gmia-green-200: #c8e2c6;
  --gmia-green-300: #a3cca0;
  --gmia-green-400: #7dae78;
  --gmia-green-500: #5f8a5b;
  --gmia-green-600: #4a6b47;
  --gmia-green-700: #3a5438; /* Logo green - use as Color 1 in Blocksy */
  --gmia-green-800: #233a20;
  --gmia-green-900: #162413;
  --gmia-green-950: #0f1a0e;

  /* Warm Neutral (logo #010101) */
  --gmia-neutral-50: #f7f6f3;
  --gmia-neutral-100: #eae8e4;
  --gmia-neutral-200: #d4d1cc;
  --gmia-neutral-300: #b0aca6;
  --gmia-neutral-400: #8a8680;
  --gmia-neutral-500: #64615b;
  --gmia-neutral-600: #474541;
  --gmia-neutral-700: #302f2c;
  --gmia-neutral-800: #1c1b19;
  --gmia-neutral-900: #0c0c0b;
  --gmia-neutral-950: #010101;

  /* Accent: Gold */
  --gmia-gold-50: #fcf7e8;
  --gmia-gold-100: #f7edcc;
  --gmia-gold-200: #f0dda0;
  --gmia-gold-300: #e3c76a;
  --gmia-gold-400: #d4ad3e;
  --gmia-gold-500: #c4941a; /* Primary accent */
  --gmia-gold-600: #a87818;
  --gmia-gold-700: #8c6310;
  --gmia-gold-800: #6b4b0c;
  --gmia-gold-900: #4a3408;

  /* ---- Font-Size Scale ----
       Override here to resize all custom elements globally.
       Body + heading base sizes remain under Blocksy Customizer control. */
  --gmia-text-2xs: 0.75rem; /* 12px — tiny badge labels */
  --gmia-text-xs: 0.8125rem; /* 13px — event badges */
  --gmia-text-sm: 0.875rem; /* 14px — meta labels, form hints */
  --gmia-text-caption: 0.9375rem; /* 15px — nav items, captions, labels */
  --gmia-text-secondary: 1rem; /* 16px — meta values, excerpts */
  --gmia-text-body: 1.0625rem; /* 17px — body text */
  --gmia-text-lg: 1.1875rem; /* 19px — CTA buttons, field headings */
  --gmia-text-xl: 1.3125rem; /* 21px — card titles */
  --gmia-text-2xl: 1.5rem; /* 24px — widget titles */
  --gmia-text-3xl: 2rem; /* 32px — large initials */
  --gmia-text-4xl: 2.5rem; /* 40px — price display */

  /* ---- Heading Scale (fluid, for custom components) ---- */
  --gmia-heading-page: clamp(2rem, 5vw, 3rem); /* subpage banner titles */
  --gmia-heading-section: clamp(1.75rem, 4vw, 2.5rem); /* section H2s */
  --gmia-heading-sub: clamp(1.5rem, 3vw, 2rem); /* subsection headings */
  --gmia-heading-compact: clamp(
    1.25rem,
    3vw,
    1.75rem
  ); /* compact CTA headings */
  --gmia-heading-subtitle: clamp(1rem, 2vw, 1.1875rem); /* subtitles */

  /* ---- Functional Colors ---- */
  --gmia-color-error: #c0392b;
  --gmia-color-error-dark: #922820;
  --gmia-color-error-bg: #fef8f7;
  --gmia-color-warning: #e67e22;
  --gmia-color-warning-dark: #7a4310;
  --gmia-color-warning-bg: #fef9ee;
  --gmia-color-muted: #888888;
  --gmia-color-required: #c4694a; /* Earthy terracotta — required-field markers */

  /* ---- Social Brand Colors ---- */
  --gmia-color-facebook: #1877f2;
  --gmia-color-x: #0f1419;
  --gmia-color-linkedin: #0a66c2;

  /* ---- Season Colors (Viewpoints archive badges) ---- */
  --gmia-season-spring: #4a6b47; /* green-600 */
  --gmia-season-summer: #c4941a; /* gold-500 / paletteColor2 */
  --gmia-season-fall: #c4694a; /* earthy terracotta */
  --gmia-season-winter: #3b7cb5; /* steel blue */
  --gmia-season-spring-bg: #e2f0e1; /* green-100 */
  --gmia-season-summer-bg: #f7edcc; /* gold-100 */
  --gmia-season-fall-bg: #fceee8; /* warm peach */
  --gmia-season-winter-bg: #e4f0fa; /* sky blue */

  /* ---- Component Colors ---- */
  --gmia-white: #ffffff; /* Reliable white — Blocksy overrides --paletteColor8 in various contexts */
  --gmia-cream: #fdfbf5; /* Warm cream for award/special page backgrounds */
  --gmia-header-bg: var(--gmia-white); /* Header pill — must be opaque */

  /* ---- Blocksy Form Field Overrides ---- */
  /* Blocksy skips outputting these when Customizer uses defaults (transparent fields).
       Set explicitly so form fields always have white backgrounds. */
  --theme-form-field-background-initial-color: var(--gmia-white);
  --theme-form-field-background-focus-color: var(--gmia-white);

  /* ---- Border-Radius Scale ---- */
  --gmia-radius-sm: 4px;
  --gmia-radius-md: 4px;
  --gmia-radius-lg: 4px;
  --gmia-radius-xl: 4px;
  --gmia-radius-pill: 100px;
  --gmia-radius-full: 50%;

  /* ---- Shadow Scale ---- */
  --gmia-shadow-card: 0 2px 12px rgba(0, 0, 0, 0.08);
  --gmia-shadow-card-hover: 0 8px 30px rgba(0, 0, 0, 0.12);

  /* Heading color — track primary palette so headings are green site-wide */
  --theme-heading-color: var(--paletteColor1, #3a5438);
}

/* ==========================================================================
   Global Mobile Safety Net

   Prevent horizontal overflow from full-bleed 100vw elements on browsers
   with visible scrollbars (100vw includes scrollbar width). clip is
   preferred over hidden — it does not create a new scroll context or
   break position: sticky.
   ========================================================================== */
html {
  overflow-x: clip;
}

img {
  max-width: 100%;
  height: auto;
}

/* Responsive video embeds: override the iframe's fixed HTML width/height
   attributes so it scales fluidly and stays in normal document flow.
   This ensures parent containers expand to contain the video. */
.wp-block-embed.wp-has-aspect-ratio .wp-block-embed__wrapper iframe {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  display: block;
}

/* ==========================================================================
   Unified Content Width

   Make "alignwide" blocks use the same max-width as standard content
   so all sections (patterns, shortcodes, footer, header) share the
   same left/right content edges. Full-width backgrounds (alignfull)
   are unaffected and still extend edge-to-edge.
   ========================================================================== */
.is-layout-constrained > .alignwide {
  max-width: var(
    --wp--style--global--content-size,
    var(--theme-block-max-width)
  );
}

/* ==========================================================================
   Floating Header

   Creates a pill-shaped floating header that overlays the hero/banner.
   CSS-only transparent header — no Blocksy transparent header toggle needed.
   Applied site-wide so every page has the same floating nav.
   ========================================================================== */

/* Position header absolutely so it overlays the hero/banner.
   #header id-selector CSS generated by Blocksy beats this on specificity
   alone, so match it with #header.ct-header rather than relying on source
   order. */
#header.ct-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
}

/* Blocksy only generates the [data-transparent] CSS that makes this row
   float (position: absolute) for singular templates — see
   maybe_get_single_post_styles_descriptor() in Blocksy's dynamic-css.php,
   gated behind is_singular(). Archive templates (shop, blog, category,
   search) never get it, so the row stays in normal flow and pushes page
   content down by its own height. Force it here so every page floats the
   same way, regardless of Blocksy's per-singular detection. */
header.ct-header > [data-device="desktop"] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

/* Make the middle row background transparent so the container floats */
header.ct-header [data-row="middle"] {
  background: transparent;
  border: none;
  box-shadow: none;
}

/* Style the inner container as the floating pill bar */
header.ct-header [data-row="middle"] > .ct-container,
header.ct-header [data-row="middle"] > .ct-container-fluid {
  background: var(--gmia-header-bg);
  border-radius: var(--gmia-radius-pill);

  margin-top: 20px;
  padding-top: 10px;
  padding-bottom: 10px;
  padding-left: 30px;
  padding-right: 30px;
  max-width: calc(100% - 60px);
  margin-left: auto;
  margin-right: auto;
}

/* Menu items styling for the floating bar */
header.ct-header [data-row="middle"] .ct-header-menu > li > a {
  text-transform: uppercase;
  font-weight: 600;
  font-size: var(--gmia-text-caption);
  letter-spacing: 0.5px;
}

/* CTA button in header - pill shape */
header.ct-header [data-row="middle"] .ct-header-cta {
  border-radius: var(--gmia-radius-pill);
}

/* Dim header cart icon when cart is empty */
.ct-header-cart:has(.ct-dynamic-count-cart[data-count="0"]) .ct-cart-item {
  opacity: 0.35;
  pointer-events: auto;
}

/* Cart dropdown — white background with dark text.
   Override background and color directly to beat Blocksy's dynamic inline styles. */
header.ct-header .ct-header-cart .ct-cart-content {
  background: var(--gmia-white);
  --mini-cart-background-color: var(--gmia-white);
  --mini-cart-divider-color: var(--paletteColor6, #d4d1cc);
  --theme-text-color: var(--paletteColor4, #302f2c);
  --theme-link-initial-color: var(--paletteColor4, #302f2c);
  --theme-link-hover-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor4, #302f2c);
}

/* Subtotal row */
header.ct-header .ct-header-cart .ct-cart-content .total {
  --theme-text-color: var(--paletteColor4, #302f2c);
  color: var(--paletteColor4, #302f2c);
}

/* Product titles and prices */
header.ct-header .ct-header-cart .ct-cart-content .woocommerce-mini-cart-item a,
header.ct-header .ct-header-cart .ct-cart-content .quantity {
  color: var(--paletteColor4, #302f2c);
}

/* Remove item icon */
header.ct-header .ct-header-cart .ct-cart-content .remove {
  color: var(--paletteColor5, #64615b);
}

header.ct-header .ct-header-cart .ct-cart-content .remove:hover {
  color: var(--gmia-color-error, #c0392b);
}

/* Admin bar: offset floating header so it doesn't sit under the WP admin bar */
.admin-bar header.ct-header {
  top: var(--wp-admin--admin-bar--height, 32px);
}

/* Mobile: solid bar instead of floating pill.
   Header becomes position:relative so it sits above the content
   rather than overlaying the hero. Blocksy's sticky JS will still
   switch to position:fixed on scroll, which is fine. */
@media (max-width: 689px) {
  header.ct-header {
    position: relative;
  }

  header.ct-header [data-row="middle"] {
    background: var(--gmia-header-bg);
  }

  header.ct-header [data-row="middle"] > .ct-container,
  header.ct-header [data-row="middle"] > .ct-container-fluid {
    background: var(--gmia-white, #ffffff);
    border-radius: 0;
    margin-top: 0;
    padding-left: 15px;
    padding-right: 10px;
    max-width: none;
    width: 100%;
  }
}

/* ==========================================================================
   WooCommerce Notices — Floating Toast

   The absolute-positioned floating header overlaps the top of the
   page content. WooCommerce notices (add-to-cart success, errors)
   display as a fixed toast bar below the header so they are always
   visible and clickable. z-index must stay above #header.ct-header's
   z-index: 100 (line ~196) or the toast renders behind the nav.
   ========================================================================== */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-info {
  position: fixed;
  top: 90px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 101;
  max-width: 640px;
  width: calc(100% - 40px);
  margin: 0;
  opacity: 1;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  border-radius: var(--gmia-radius-md);
  animation: gmia-notice-slide-in 0.3s ease-out;
  cursor: pointer;
}

/* Dismiss animation */
.woocommerce-notices-wrapper .gmia-notice--dismissing {
  animation: gmia-notice-slide-out 0.25s ease-in forwards;
}

@keyframes gmia-notice-slide-out {
  to {
    opacity: 0;
    transform: translateX(-50%) translateY(-10px);
  }
}

@keyframes gmia-notice-slide-in {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}

@media (max-width: 689px) {
  .woocommerce-notices-wrapper .woocommerce-message,
  .woocommerce-notices-wrapper .woocommerce-error,
  .woocommerce-notices-wrapper .woocommerce-info {
    top: 70px;
    width: calc(100% - 20px);
  }
}

/* ==========================================================================
   CF7 Toast Notifications

   Floating toast that replaces the inline .wpcf7-response-output banner.
   Reuses the gmia-notice-slide-in keyframes from WooCommerce notices above.
   ========================================================================== */
.gmia-toast {
  position: fixed;
  top: 90px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 101;
  display: flex;
  align-items: center;
  gap: 1rem;
  max-width: 640px;
  width: calc(100% - 40px);
  padding: 1rem 1.25rem;
  border-radius: var(--gmia-radius-md);
  border-left: 4px solid;
  font-size: var(--gmia-text-secondary);
  font-weight: 500;
  line-height: 1.5;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
  animation: gmia-notice-slide-in 0.3s ease-out;
}

.gmia-toast--out {
  animation: gmia-toast-slide-out 0.25s ease-in forwards;
}

@keyframes gmia-toast-slide-out {
  to {
    opacity: 0;
    transform: translateX(-50%) translateY(-10px);
  }
}

.gmia-toast__message {
  flex: 1;
}

.gmia-toast__close {
  flex-shrink: 0;
  background: none;
  border: none;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.25rem;
  opacity: 0.6;
  transition: opacity 0.15s ease;
  color: inherit;
}

.gmia-toast__close:hover {
  opacity: 1;
}

/* --- Toast variants --- */
.gmia-toast--error {
  background-color: var(--gmia-color-error-bg);
  border-color: var(--gmia-color-error);
  color: var(--gmia-color-error-dark);
}

.gmia-toast--success {
  background-color: var(--gmia-green-50, #f3f9f2);
  border-color: var(--gmia-green-700, #3a5438);
  color: var(--gmia-green-800, #233a20);
}

.gmia-toast--warning {
  background-color: var(--gmia-color-warning-bg);
  border-color: var(--gmia-color-warning);
  color: var(--gmia-color-warning-dark);
}

/* Hide the original inline CF7 response banner — toast replaces it */
.wpcf7-form .wpcf7-response-output {
  display: none;
}

@media (max-width: 689px) {
  .gmia-toast {
    top: 70px;
    width: calc(100% - 20px);
  }
}

/* ==========================================================================
   Hero Bottom Bar (Frosted Glass)

   Usage: Inside a Cover block, add a Group block at the bottom.
   Set the Group's CSS class to "gmia-hero-bottom-bar".
   Add any content (text, logos, columns) inside the Group.
   ========================================================================== */

.gmia-hero-bottom-bar {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding: 20px 40px;
  margin-top: auto;

  /* Break out of Cover block's inner container padding — use 100% to avoid scrollbar */
  width: 100%;
  max-width: none;
  margin-left: 0;
  /* Pull bar flush with bottom of Cover block */
  margin-bottom: calc(-1 * var(--wp--preset--spacing--60, 3rem));
}

.gmia-hero-bottom-bar,
.gmia-hero-bottom-bar p,
.gmia-hero-bottom-bar h1,
.gmia-hero-bottom-bar h2,
.gmia-hero-bottom-bar h3 {
  color: var(--gmia-white);
}

@media (max-width: 689px) {
  .gmia-hero-bottom-bar {
    padding: 15px 20px;
  }
}

/* ==========================================================================
   Hero Background Slideshow

   Managed via "Hero Slideshow" meta box on the homepage.
   JavaScript creates .gmia-slideshow inside the Cover block.
   ========================================================================== */

.gmia-slideshow {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  overflow: hidden;
}

.gmia-slideshow__layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* Fade transition */
.gmia-slideshow--fade .gmia-slideshow__layer {
  opacity: 0;
  transition: opacity 1.2s ease-in-out;
}

.gmia-slideshow--fade .gmia-slideshow__layer--active {
  opacity: 1;
}

/* Crossfade transition (longer, smoother overlap) */
.gmia-slideshow--crossfade .gmia-slideshow__layer {
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
}

.gmia-slideshow--crossfade .gmia-slideshow__layer--active {
  opacity: 1;
}

/* Slide transition */
.gmia-slideshow--slide .gmia-slideshow__layer {
  opacity: 1;
  transform: translateX(100%);
  transition: transform 1.2s ease-in-out;
}

.gmia-slideshow--slide .gmia-slideshow__layer--active {
  transform: translateX(0);
}

.gmia-slideshow--slide .gmia-slideshow__layer--exit-left {
  transform: translateX(-100%);
}

/* Keep Cover block overlay and content above the slideshow layers.
   The overlay is position:absolute by default — do NOT change that. */
.wp-block-cover .wp-block-cover__background {
  z-index: 1;
}

.wp-block-cover .wp-block-cover__inner-container {
  z-index: 1;
  position: relative;
}

.wp-block-cover .wp-block-cover__inner-container h1,
.wp-block-cover .wp-block-cover__inner-container h2,
.wp-block-cover .wp-block-cover__inner-container h3,
.wp-block-cover .wp-block-cover__inner-container p {
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

.wp-block-cover .wp-block-cover__inner-container .wp-block-button__link:hover,
.wp-block-cover
  .wp-block-cover__inner-container
  .wp-block-button__link:focus-visible {
  border-color: var(--gmia-gold-500, #c4941a);
}

/* Section dividers */
.wp-block-separator:not(.is-style-dots) {
  height: 1px;
  border: none;
  background-color: var(--gmia-neutral-200, #d4d1cc);
  opacity: 0.7;
}

/* ==========================================================================
   Next Events: Two-Row Container + Featured Countdown

   Usage: Place [gmia_next_events] inside a Group block with
   class "gmia-hero-bottom-bar" for the frosted glass look,
   or use standalone anywhere.

   Row 1: Featured event with live countdown timer
   Row 2: Upcoming events ribbon (compact list)
   ========================================================================== */

.gmia-next-events {
  max-width: var(
    --wp--style--global--content-size,
    var(--theme-block-max-width, 1200px)
  );
  margin: 0 auto;
}

/* ---------- Row 1: Featured Event + Countdown ---------- */

/* 3-column layout: label (left) | event+countdown (center) | CTA (right) */
.gmia-next-events__featured {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 20px;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

/* Left column: label — two-line text with large icon */
.gmia-next-events__featured-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: var(--gmia-text-caption);
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--paletteColor2);
  line-height: 1.4;
}

.gmia-next-events__featured-label i {
  font-size: 1.8em;
}

/* Center column: event info + countdown grouped */
.gmia-next-events__featured-center {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
}

.gmia-next-events__featured-link {
  display: flex;
  flex-direction: column;
  gap: 2px;
  color: var(--gmia-white);
  text-decoration: none;
  min-width: 0;
  text-align: left;
  padding: 4px 10px;
  border-radius: var(--gmia-radius-sm);
  transition: background-color 0.3s ease;
}

.gmia-next-events__featured-link:hover {
  background-color: var(--paletteColor1);
}

.gmia-next-events__featured-title {
  font-size: var(--gmia-text-lg);
  font-weight: 700;
  line-height: 1.2;
}

.gmia-next-events__featured-date {
  font-size: var(--gmia-text-base);
  color: rgba(255, 255, 255, 0.85);
}

/* Right column: CTA */
.gmia-next-events__cta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  color: var(--gmia-white);
  text-decoration: none;
  font-size: var(--gmia-text-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  white-space: nowrap;
  padding: 6px 14px;
  border-radius: var(--gmia-radius-pill);
  transition: background-color 0.3s ease;
}

.gmia-next-events__cta:hover {
  background-color: var(--paletteColor1);
}

.gmia-next-events__cta i {
  font-size: 0.7em;
  transition: transform 0.3s ease;
}

.gmia-next-events__cta:hover i {
  transform: translateX(3px);
}

/* Countdown: row of unit pills */
.gmia-next-events__countdown {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

.gmia-countdown__unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: rgba(255, 255, 255, 0.12);
  border-radius: var(--gmia-radius-sm);
  padding: 6px 10px;
  min-width: 52px;
}

.gmia-countdown__value {
  font-variant-numeric: tabular-nums;
  font-size: var(--gmia-text-xl);
  font-weight: 700;
  line-height: 1;
  color: var(--paletteColor2);
}

.gmia-countdown__label {
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--gmia-white);
  margin-top: 2px;
}

.gmia-countdown__now {
  font-size: var(--gmia-text-sm);
  font-weight: 700;
  color: var(--paletteColor2);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.gmia-countdown__gallery-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: 12px;
  color: var(--gmia-white);
  text-decoration: none;
  font-size: var(--gmia-text-sm);
  font-weight: 600;
  padding: 4px 10px;
  border-radius: var(--gmia-radius-pill);
  transition: background-color 0.3s ease;
}

.gmia-countdown__gallery-link:hover {
  background-color: var(--paletteColor1);
}

.gmia-countdown__gallery-link i {
  font-size: 0.7em;
}

/* Zero state: no events */
.gmia-next-events__featured-empty {
  color: rgba(255, 255, 255, 0.8);
  font-size: var(--gmia-text-sm);
}

/* Below 689px this is also the only viable layout on a phone; above it,
   up to ~991px, the 3-column grid (auto label | 1fr center | auto CTA) no
   longer has room for the label and center columns, so the label wraps to
   ~7 lines and the event title to ~4 lines instead of both staying compact.
   Same stacked treatment removes that wrapping across the whole range. */
@media (max-width: 991px) {
  /* Two-row layout:
       Row 1: event name + date (full width, centered)
       Row 2: countdown pills + CTA side-by-side */
  .gmia-next-events__featured {
    grid-template-columns: 1fr;
    gap: 12px;
    text-align: center;
  }

  .gmia-next-events__featured-label {
    display: none;
  }

  .gmia-next-events__featured-center {
    flex-direction: column;
    gap: 12px;
  }

  .gmia-next-events__featured-link {
    text-align: center;
    align-items: center;
  }

  .gmia-next-events__featured-title {
    font-size: var(--gmia-text-xl);
  }

  .gmia-next-events__countdown {
    gap: 8px;
    justify-content: center;
  }

  .gmia-countdown__unit {
    flex: 1;
    min-width: 0;
    padding: 6px 8px;
  }

  .gmia-next-events__cta {
    justify-content: center;
  }
}

/* ---------- Row 2: Upcoming Events Ribbon ---------- */

.gmia-next-events-ribbon {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  max-width: 1200px;
  margin: 0 auto;
}

.gmia-next-events-ribbon__label {
  font-weight: 700;
  font-size: var(--gmia-text-caption);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--gmia-white);
  white-space: nowrap;
  display: flex;
  align-items: center;
  gap: 6px;
}

.gmia-next-events-ribbon__label::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E")
    no-repeat center;
  flex-shrink: 0;
}

.gmia-next-events-ribbon__divider {
  width: 1px;
  height: 20px;
  background: rgba(255, 255, 255, 0.35);
  flex-shrink: 0;
}

.gmia-next-events-ribbon__event {
  display: flex;
  align-items: center;
  gap: 6px;
  color: rgba(255, 255, 255, 0.9);
  text-decoration: none;
  font-size: var(--gmia-text-secondary);
  white-space: nowrap;
  padding: 4px 10px;
  border-radius: var(--gmia-radius-sm);
  transition:
    color 0.3s ease,
    background-color 0.3s ease,
    transform 0.3s ease;
}

.gmia-next-events-ribbon__event:hover {
  color: var(--gmia-white);
  background-color: var(--paletteColor1, #3a5438);
  transform: translateY(-2px);
}

.gmia-next-events-ribbon__date {
  font-weight: 700;
  color: var(--gmia-white);
}

.gmia-next-events-ribbon__title {
  font-weight: 400;
}

@media (max-width: 689px) {
  .gmia-next-events-ribbon {
    gap: 12px;
    font-size: var(--gmia-text-sm);
  }

  .gmia-next-events-ribbon__divider {
    display: none;
  }

  .gmia-next-events-ribbon__label {
    width: 100%;
    margin-bottom: 4px;
  }

  .gmia-next-events-ribbon__event {
    font-size: var(--gmia-text-sm);
  }

  /* Stack events vertically with bullet separators on mobile */
  .gmia-next-events-ribbon__event::before {
    content: "\2022";
    color: rgba(255, 255, 255, 0.5);
  }
}

/* ==========================================================================
   Button Styles

   Usage: Add CSS class to a Button block in the editor.
   - "gmia-btn-outline-white" = white outline, green fill on hover
   ========================================================================== */

/* White outline button — for use on dark/image backgrounds */
.gmia-btn-outline-white .wp-block-button__link {
  background: transparent;
  color: var(--gmia-white);
  border: 2px solid var(--gmia-white);
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

.gmia-btn-outline-white .wp-block-button__link:hover {
  background-color: var(--paletteColor2, #c4941a);
  border-color: var(--paletteColor2, #c4941a);
  color: var(--gmia-white);
}

/* ==========================================================================
   Gold Accent Heading

   Adds a short gold bar beneath a heading for editorial polish.
   Applied automatically to .gmia-about-section h2.
   Add class "gmia-gold-accent" to any heading block via the block
   editor's "Additional CSS class(es)" field to apply manually.
   ========================================================================== */
.gmia-gold-accent::after,
.gmia-about-section h2::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  background: var(--gmia-gold-500, #c4941a);
  margin: 0.75rem 0 0;
  border-radius: var(--gmia-radius-sm, 2px);
}

/* ==========================================================================
   Button Utility System

   Standardized button styles for consistency across custom components.
   Uses double-class selectors (e.g. .gmia-btn.gmia-btn--primary) so
   hover states reliably beat Blocksy's .entry-content link colors.

   Variants:
     --primary    Gold filled — main CTAs (Read Now, Subscribe, Join)
     --secondary  Green filled — form submits, secondary actions
     --outline    Border only — transparent bg, fills on hover
     --ghost      Subtle pill — archive links, tertiary actions

   Sizes:
     --sm   Small pill  (0.4rem 0.85rem, 14px) — archive links
     --md   Medium      (0.6rem 1.5rem,  15px) — featured buttons
     --lg   Large       (0.875rem 2rem,  16px) — section CTAs
   ========================================================================== */

.gmia-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: var(--gmia-radius-md);
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

/* --- Sizes --- */
.gmia-btn--sm {
  padding: 0.4rem 0.85rem;
  font-size: var(--gmia-text-sm);
  gap: 0.35rem;
  min-height: 44px;
}

.gmia-btn--md {
  padding: 0.6rem 1.5rem;
  font-size: var(--gmia-text-caption);
}

.gmia-btn--lg {
  padding: 0.875rem 2rem;
  font-size: var(--gmia-text-secondary);
}

/* --- Primary (Gold filled) --- */
.gmia-btn.gmia-btn--primary {
  background: var(--paletteColor2, #c4941a);
  border-color: var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
}

.gmia-btn.gmia-btn--primary:hover,
.gmia-btn.gmia-btn--primary:focus-visible {
  background: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

/* --- Secondary (Green filled) --- */
.gmia-btn.gmia-btn--secondary {
  background: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

.gmia-btn.gmia-btn--secondary:hover,
.gmia-btn.gmia-btn--secondary:focus-visible {
  background: var(--gmia-green-600, #4a6b47);
  border-color: var(--gmia-green-600, #4a6b47);
  color: var(--paletteColor8, #fff);
}

/* --- Outline (border only, fills on hover) --- */
.gmia-btn.gmia-btn--outline {
  background: transparent;
  border-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor1, #3a5438);
}

.gmia-btn.gmia-btn--outline:hover,
.gmia-btn.gmia-btn--outline:focus-visible {
  background: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

/* --- Ghost (subtle pill, tertiary actions) --- */
.gmia-btn.gmia-btn--ghost {
  background-color: var(--gmia-white);
  border-color: var(--paletteColor6, #e0e0e0);
  color: var(--paletteColor1, #3a5438);
  font-weight: 500;
}

.gmia-btn.gmia-btn--ghost:hover,
.gmia-btn.gmia-btn--ghost:focus-visible {
  background: var(--paletteColor2, #c4941a);
  border-color: var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
}

/* ==========================================================================
   Smart Slider Compatibility
   ========================================================================== */
.n2-section-smartslider.alignfull,
.wp-block-group.alignfull .n2-section-smartslider {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(-50vw + 50%);
  overflow: hidden;
}

/* ==========================================================================
   Viewpoints Archive — Gold Canvas Layout
   Used by: [viewpoints_repeater] shortcode (viewpoints-repeater plugin)
   3-section layout: Editorial Masthead → Cover Story → Spine Archive
   Full-bleed gold-50 background across entire page.
   ========================================================================== */

/* Remove subpage header bottom margin on newsletters page */
.gmia-subpage-header:has(~ .gmia-viewpoints-archive) {
  margin-bottom: 0;
}

/* Full-bleed gold-50 canvas behind entire archive */
.gmia-viewpoints-archive {
  position: relative;
  padding-bottom: 0;
  margin-bottom: 0;
}

.gmia-viewpoints-archive::before {
  content: "";
  position: absolute;
  inset: 0;
  width: 100vw;
  left: 50%;
  transform: translateX(-50%);
  background: var(--gmia-gold-50, #fcf7e8);
  z-index: -1;
  pointer-events: none;
}

/* ==========================================================================
   SECTION 1: HERO — Editorial masthead
   Left: heading + description — Right: actions column with left border
   ========================================================================== */
.gmia-viewpoints-hero {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0;
  padding: 6.25rem 0;
  border-bottom: 1px solid var(--gmia-gold-400, #d4ad3e);
}

.gmia-viewpoints-hero__text {
  flex: 1;
  padding-right: 50px;
}

.gmia-viewpoints-hero__heading {
  margin: 0 0 1.25rem;
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(1.7rem, 3.2vw, 2.5rem);
  font-weight: 400;
  color: var(--gmia-green-950, #0f1a0e);
  line-height: 1.05;
}

.gmia-viewpoints-hero__desc {
  margin: 0;
  color: var(--gmia-neutral-600, #474541);
  font-size: 1.15rem;
  line-height: 1.7;
}

/* Hero CTA links */
.gmia-viewpoints-hero__ctas {
  display: flex;
  gap: 1.5rem;
  margin-top: 1.25rem;
}

.gmia-viewpoints-hero__cta-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--gmia-green-700, #3a5438);
  text-decoration: none;
  font-size: 1.05rem;
  font-weight: 600;
  padding: 0.5rem 0;
  transition: color 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}

.gmia-viewpoints-hero__cta-link:hover {
  color: var(--gmia-green-950, #0f1a0e);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Actions column — left border, no card */
.gmia-viewpoints-hero__actions {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 35px;
  border-left: 1px solid var(--gmia-gold-400, #d4ad3e);
  padding-left: 50px;
}

/* Shared group heading + description */
.gmia-viewpoints-hero__group-heading {
  margin: 0 0 0.375rem;
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: 1.6rem;
  font-weight: 400;
  color: var(--gmia-green-950, #0f1a0e);
}

.gmia-viewpoints-hero__group-desc {
  margin: 0 0 1rem;
  font-size: 0.95rem;
  color: var(--gmia-neutral-600, #474541);
  line-height: 1.5;
}

/* Newsletter form overrides — strip widget chrome */
.gmia-viewpoints-hero__email-group .gmia-newsletter-widget {
  background: transparent;
  box-shadow: none;
  border: none;
  padding: 0;
}

/* Inline row: input + button side-by-side */
.gmia-viewpoints-hero__email-group .ct-newsletter-subscribe-form-elements {
  display: flex;
  flex-direction: row;
  gap: 15px;
  align-items: flex-end;
}

/* Bottom-border-only input */
.gmia-viewpoints-hero__email-group
  .ct-newsletter-subscribe-form
  input[type="email"] {
  flex: 1;
  padding: 8px 0;
  min-height: 44px;
  background: transparent;
  border: none;
  border-bottom: 2px solid var(--gmia-neutral-400, #9e9c98);
  border-radius: 0;
  font-size: 1rem;
  color: var(--gmia-neutral-950, #010101);
  transition: border-color 0.3s ease;
}

.gmia-viewpoints-hero__email-group
  .ct-newsletter-subscribe-form
  input[type="email"]::placeholder {
  color: var(--gmia-neutral-400, #9e9c98);
}

.gmia-viewpoints-hero__email-group
  .ct-newsletter-subscribe-form
  input[type="email"]:focus {
  outline: none;
  border-bottom-color: var(--gmia-green-700, #3a5438);
  box-shadow: none;
}

/* Ghost button — auto-width, sits beside input */
.gmia-viewpoints-hero__email-group .ct-newsletter-subscribe-form button,
.gmia-viewpoints-hero__email-group
  .ct-newsletter-subscribe-form
  .wp-element-button {
  padding: 10px 24px;
  min-height: 44px;
  background: transparent;
  border: 2px solid var(--gmia-green-700, #3a5438);
  border-radius: var(--gmia-radius-md, 4px);
  color: var(--gmia-green-700, #3a5438);
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition:
    background-color 0.2s ease,
    color 0.2s ease;
}

.gmia-viewpoints-hero__email-group .ct-newsletter-subscribe-form button:hover,
.gmia-viewpoints-hero__email-group
  .ct-newsletter-subscribe-form
  .wp-element-button:hover {
  background: var(--gmia-gold-500, #c4941a);
  border-color: var(--gmia-gold-500, #c4941a);
  color: var(--gmia-white, #ffffff);
}

/* "Become a Member" solid green button */
.gmia-viewpoints-hero__member-btn {
  display: inline-block;
  background: var(--gmia-green-700, #3a5438);
  color: var(--gmia-white, #ffffff);
  text-decoration: none;
  padding: 12px 28px;
  font-weight: 600;
  border-radius: var(--gmia-radius-md, 4px);
  transition: background-color 0.2s ease;
}

.gmia-viewpoints-hero__member-btn:hover {
  background: var(--gmia-gold-500, #c4941a);
  color: var(--gmia-white, #ffffff);
}

/* ==========================================================================
   SECTION 2: COVER STORY — Featured latest issue
   Paper-stack box-shadow effect, centered layout
   ========================================================================== */
.gmia-viewpoints-featured {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5rem;
  padding: 6rem 0 4rem;
  position: relative;
  z-index: 2;
}

/* Cover thumbnail — paper stack via box-shadow */
.gmia-viewpoints-featured__thumb {
  width: 320px;
  aspect-ratio: 8.5 / 11;
  background: var(--gmia-white, #ffffff);
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  box-shadow:
    6px 6px 0px var(--gmia-gold-100, #f7edcc),
    12px 12px 0px var(--gmia-gold-400, #d4ad3e);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}

.gmia-viewpoints-featured__thumb-img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.gmia-viewpoints-featured__thumb--placeholder {
  color: var(--gmia-neutral-600, #474541);
  font-weight: 500;
}

.gmia-viewpoints-featured__thumb-icon {
  fill: var(--gmia-neutral-300, #b0aca6);
  opacity: 0.5;
}

/* Info column */
.gmia-viewpoints-featured__info {
  max-width: 400px;
}

.gmia-viewpoints-featured__badge {
  display: inline-block;
  background: var(--gmia-green-700, #3a5438);
  color: var(--gmia-white, #ffffff);
  padding: 6px 14px;
  border-radius: var(--gmia-radius-pill, 100px);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 20px;
}

.gmia-viewpoints-featured__title {
  margin: 0 0 1.25rem;
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(1.75rem, 4vw, 3rem);
  font-weight: 400;
  color: var(--gmia-green-950, #0f1a0e);
  line-height: 1.15;
}

.gmia-viewpoints-featured__desc {
  margin: 0 0 2rem;
  color: var(--gmia-neutral-600, #474541);
  font-size: 1.1rem;
  line-height: 1.6;
}

.gmia-viewpoints-featured__actions {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.gmia-viewpoints-featured__read-btn {
  display: inline-block;
  background: var(--gmia-green-700, #3a5438);
  color: var(--gmia-white, #ffffff);
  text-decoration: none;
  padding: 14px 32px;
  font-weight: 600;
  border-radius: var(--gmia-radius-md, 4px);
  transition: background-color 0.2s ease;
}

.gmia-viewpoints-featured__read-btn:hover {
  background: var(--gmia-gold-500, #c4941a);
  color: var(--gmia-white, #ffffff);
}

.gmia-viewpoints-featured__download-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--gmia-neutral-600, #474541);
  text-decoration: none;
  font-size: 1rem;
  font-weight: 400;
  transition: color 0.2s ease;
}

.gmia-viewpoints-featured__download-btn:hover {
  color: var(--gmia-green-700, #3a5438);
}

/* ==========================================================================
   SECTION 3: SPINE ARCHIVE — Vertical timeline
   Central spine line, year marker pills, alternating season cards
   ========================================================================== */
.gmia-viewpoints-spine {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  padding: 2.5rem 0 6rem;
}

/* Central spine line */
.gmia-viewpoints-spine::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--gmia-gold-400, #d4ad3e);
}

/* Year marker — centered pill on the spine */
.gmia-viewpoints-spine__year-marker {
  text-align: center;
  position: relative;
  padding: 3.75rem 0;
}

.gmia-viewpoints-spine__year-marker span {
  display: inline-block;
  background: var(--gmia-green-700, #3a5438);
  color: var(--gmia-white, #ffffff);
  padding: 8px 26px;
  border-radius: var(--gmia-radius-pill, 100px);
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: 1.3rem;
  position: relative;
  z-index: 2;
}

/* Season grid — 2-column alternating layout */
.gmia-viewpoints-spine__season-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  position: relative;
}

/* Season card base */
.gmia-viewpoints-spine__card {
  padding: 30px 60px;
  position: relative;
}

/* Left card — text aligned right (toward spine) */
.gmia-viewpoints-spine__card--left {
  text-align: right;
}

/* Right card — text aligned left (toward spine), offset for stagger */
.gmia-viewpoints-spine__card--right {
  text-align: left;
  grid-column: 2;
  margin-top: 80px;
}

/* Spine dot on each card */
.gmia-viewpoints-spine__card::after {
  content: "";
  position: absolute;
  top: 45px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--gmia-gold-400, #d4ad3e);
  transition:
    background-color 0.3s ease,
    transform 0.3s ease;
}

.gmia-viewpoints-spine__card--left::after {
  right: -5px;
}

.gmia-viewpoints-spine__card--right::after {
  left: -5px;
}

.gmia-viewpoints-spine__card:hover::after {
  background: var(--gmia-gold-500, #c4941a);
  transform: scale(1.3);
}

/* Card title */
.gmia-viewpoints-spine__card-title {
  margin: 0 0 0.5rem;
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  font-weight: 400;
  color: var(--gmia-green-950, #0f1a0e);
  transition: color 0.3s ease;
}

.gmia-viewpoints-spine__card:hover .gmia-viewpoints-spine__card-title {
  color: var(--gmia-green-700, #3a5438);
}

/* Card date */
.gmia-viewpoints-spine__card-date {
  margin: 0;
  color: var(--gmia-neutral-600, #474541);
  font-size: 1rem;
}

/* Card actions — links */
.gmia-viewpoints-spine__card-actions {
  margin-top: 0;
  display: flex;
  align-items: center;
  gap: 15px;
}

.gmia-viewpoints-spine__card--left .gmia-viewpoints-spine__card-actions {
  justify-content: flex-end;
}

.gmia-viewpoints-spine__card--right .gmia-viewpoints-spine__card-actions {
  justify-content: flex-start;
}

/* Read in Browser link */
.gmia-viewpoints-spine__read-link {
  color: var(--gmia-green-700, #3a5438);
  text-decoration: none;
  font-weight: 400;
  font-size: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0.5rem 0;
  transition: color 0.2s ease;
}

.gmia-viewpoints-spine__read-link:hover {
  color: var(--gmia-green-950, #0f1a0e);
}

/* Download link */
.gmia-viewpoints-spine__download-link {
  color: var(--gmia-neutral-600, #474541);
  text-decoration: none;
  font-size: 1rem;
  font-weight: 400;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0.5rem 0;
  transition: color 0.2s ease;
}

.gmia-viewpoints-spine__download-link:hover {
  color: var(--gmia-green-700, #3a5438);
}

/* Details/Summary accordion for older years */
.gmia-viewpoints-spine__details {
  position: relative;
  width: 100%;
  margin: 20px 0;
}

/* Spine continuation through details */
.gmia-viewpoints-spine__details::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--gmia-gold-400, #d4ad3e);
  z-index: 1;
}

.gmia-viewpoints-spine__details > summary {
  display: block;
  text-align: center;
  cursor: pointer;
  list-style: none;
  padding: 2.5rem 0;
  position: relative;
  z-index: 2;
}

.gmia-viewpoints-spine__details > summary::-webkit-details-marker {
  display: none;
}

.gmia-viewpoints-spine__details > summary span {
  display: inline-block;
  background: var(--gmia-gold-50, #fcf7e8);
  color: var(--gmia-green-700, #3a5438);
  border: 2px solid var(--gmia-green-700, #3a5438);
  padding: 8px 30px;
  border-radius: var(--gmia-radius-pill, 100px);
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: 1.2rem;
  transition:
    background-color 0.3s ease,
    color 0.3s ease;
}

.gmia-viewpoints-spine__details > summary:hover span {
  background: var(--gmia-green-50, #f3f9f2);
}

.gmia-viewpoints-spine__details[open] > summary span {
  background: var(--gmia-green-700, #3a5438);
  color: var(--gmia-white, #ffffff);
}

.gmia-viewpoints-spine__details > summary:focus-visible span {
  outline: 2px solid var(--gmia-green-600, #4a6b47);
  outline-offset: 2px;
}

/* ==========================================================================
   FLOATING YEAR NAV — Fixed sidebar during spine scroll
   Slides in/out based on spine visibility. Active year highlighted.
   ========================================================================== */
.gmia-viewpoints-yearnav {
  position: fixed;
  right: 0.75rem;
  top: 50%;
  transform: translateY(-50%) translateX(12px);
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 100;
}

.gmia-viewpoints-yearnav.is-visible {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
  pointer-events: auto;
}

.gmia-viewpoints-yearnav__list {
  list-style: none;
  margin: 0;
  padding: 4px 0;
  background: transparent;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0;
}

.gmia-viewpoints-yearnav__list li {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition:
    max-height 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: max-height, opacity;
}

.gmia-viewpoints-yearnav__list li.is-windowed {
  max-height: 52px;
  opacity: 1;
}

.gmia-viewpoints-yearnav__link {
  display: block;
  padding: 6px 12px;
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: 1rem;
  color: var(--gmia-neutral-600, #474541);
  text-decoration: none;
  border-radius: var(--gmia-radius-pill, 100px);
  transition:
    background-color 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    color 0.25s cubic-bezier(0.22, 1, 0.36, 1),
    font-size 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    padding 0.3s cubic-bezier(0.22, 1, 0.36, 1);
  white-space: nowrap;
  will-change: background-color, color, font-size;
}

.gmia-viewpoints-yearnav__link:hover {
  color: var(--gmia-green-700, #3a5438);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.gmia-viewpoints-yearnav__link.is-near {
  font-size: 1.15rem;
}

.gmia-viewpoints-yearnav__link.is-active {
  color: var(--gmia-green-700, #3a5438);
  font-size: 1.35rem;
}

/* Chevron arrows above/below list */
.gmia-viewpoints-yearnav__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 115%;
  padding: 6px 0;
  background: none;
  border: none;
  color: var(--gmia-neutral-400, #9e9c98);
  font-size: 0.85rem;
  cursor: pointer;
  transition:
    color 0.25s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}

.gmia-viewpoints-yearnav__arrow:hover {
  color: var(--gmia-green-700, #3a5438);
  transform: scale(1.15);
}

.gmia-viewpoints-yearnav__arrow:disabled {
  opacity: 0;
  pointer-events: none;
  transform: scale(0.8);
}

/* ==========================================================================
   SCROLL-REVEAL ANIMATIONS — Spine Timeline
   IntersectionObserver adds .is-revealed; CSS handles the transition.
   Respects prefers-reduced-motion.
   ========================================================================== */

/* --- Initial hidden states (before IntersectionObserver fires) --- */
.gmia-viewpoints-spine__year-marker,
.gmia-viewpoints-spine__details > summary {
  opacity: 0;
  transform: translateY(24px) scale(0.92);
  transition:
    opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.gmia-viewpoints-spine__card--left {
  opacity: 0;
  transform: translateX(-40px);
  transition:
    opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.gmia-viewpoints-spine__card--right {
  opacity: 0;
  transform: translateX(40px);
  transition:
    opacity 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Spine dot starts invisible, scales up after card reveals */
.gmia-viewpoints-spine__card::after {
  opacity: 0;
  transform: scale(0);
  transition:
    opacity 0.3s ease 0.35s,
    transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) 0.35s,
    background-color 0.3s ease;
}

/* --- Revealed states --- */
.gmia-viewpoints-spine__year-marker.is-revealed,
.gmia-viewpoints-spine__details > summary.is-revealed {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.gmia-viewpoints-spine__card--left.is-revealed,
.gmia-viewpoints-spine__card--right.is-revealed {
  opacity: 1;
  transform: translateX(0);
}

.gmia-viewpoints-spine__card.is-revealed::after {
  opacity: 1;
  transform: scale(1);
}

/* Stagger delay for cards within a year group (set via inline --reveal-delay) */
.gmia-viewpoints-spine__card {
  transition-delay: var(--reveal-delay, 0s);
}

/* Hover still works on revealed dots (override the reveal transition) */
.gmia-viewpoints-spine__card.is-revealed:hover::after {
  background: var(--gmia-gold-500, #c4941a);
  transform: scale(1.3);
  transition-delay: 0s;
}

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .gmia-viewpoints-spine__year-marker,
  .gmia-viewpoints-spine__details > summary,
  .gmia-viewpoints-spine__card--left,
  .gmia-viewpoints-spine__card--right,
  .gmia-viewpoints-spine__card::after {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ==========================================================================
   PDF VIEWER MODAL — Full-viewport overlay for reading PDFs in-page.
   Triggered by "Read" buttons in featured section and spine archive.
   ========================================================================== */

/* Root overlay — covers full viewport, hidden by default */
.gmia-pdf-viewer {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.3s cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.gmia-pdf-viewer.is-open {
  opacity: 1;
  visibility: visible;
}

/* Dark backdrop */
.gmia-pdf-viewer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(12, 12, 11, 0.75);
  cursor: pointer;
}

/* Container — white frame with toolbar + iframe */
.gmia-pdf-viewer__container {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 90vw;
  height: 90vh;
  max-width: 1200px;
  background: var(--gmia-white, #ffffff);
  border-radius: var(--gmia-radius-lg, 4px);
  box-shadow: 0 16px 64px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  transform: translateY(12px) scale(0.98);
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.gmia-pdf-viewer.is-open .gmia-pdf-viewer__container {
  transform: translateY(0) scale(1);
}

/* Toolbar — thin bar at top */
.gmia-pdf-viewer__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1.25rem;
  background: var(--gmia-green-700, #3a5438);
  color: var(--gmia-white, #ffffff);
  flex-shrink: 0;
}

.gmia-pdf-viewer__title {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: 1.1rem;
  font-weight: 400;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.gmia-pdf-viewer__toolbar-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

/* Download link in toolbar */
.gmia-pdf-viewer__download {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--gmia-white, #ffffff);
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 400;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}

.gmia-pdf-viewer__download:hover {
  opacity: 1;
  color: var(--gmia-white, #ffffff);
}

/* Close button */
.gmia-pdf-viewer__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  padding: 0;
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: var(--gmia-radius-sm, 4px);
  color: var(--gmia-white, #ffffff);
  font-size: 1.1rem;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.gmia-pdf-viewer__close:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.5);
}

.gmia-pdf-viewer__close:focus-visible {
  outline: 2px solid var(--gmia-gold-400, #d4ad3e);
  outline-offset: 2px;
}

/* iframe body — fills remaining space */
.gmia-pdf-viewer__body {
  flex: 1;
  min-height: 0;
  background: var(--gmia-neutral-200, #d4d1cc);
}

.gmia-pdf-viewer__iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: none;
}

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .gmia-pdf-viewer,
  .gmia-pdf-viewer__container {
    transition: none;
  }
}

/* ==========================================================================
   RESPONSIVE — Viewpoints Archive
   ========================================================================== */

/* Tablet: stack hero, adjust featured and spine */
@media (max-width: 960px) {
  .gmia-viewpoints-hero {
    flex-direction: column;
    padding: 3rem 0;
    gap: 2.5rem;
  }

  .gmia-viewpoints-hero__text {
    max-width: none;
    padding-right: 0;
  }

  .gmia-viewpoints-hero__ctas {
    flex-direction: column;
    gap: 0;
  }

  .gmia-viewpoints-hero__cta-link {
    display: flex;
    justify-content: center;
    width: 100%;
    padding: 0.75rem 0;
    border: 1px solid var(--gmia-green-700, #3a5438);
    border-radius: var(--gmia-radius-md);
    margin-top: 0.5rem;
  }

  .gmia-viewpoints-hero__actions {
    border-left: none;
    border-top: 1px solid var(--gmia-gold-400, #d4ad3e);
    padding-left: 0;
    padding-top: 2.5rem;
    width: 100%;
  }

  .gmia-viewpoints-yearnav {
    display: none;
  }

  .gmia-viewpoints-featured {
    flex-direction: column;
    gap: 2.5rem;
    padding: 4rem 0 3rem;
  }

  .gmia-viewpoints-featured__thumb {
    width: 260px;
  }

  .gmia-viewpoints-featured__info {
    max-width: none;
    text-align: center;
  }

  .gmia-viewpoints-spine__card {
    padding: 20px 40px;
  }

  .gmia-viewpoints-spine__card--right {
    margin-top: 40px;
  }

  /* PDF viewer: tighter margins on tablet */
  .gmia-pdf-viewer__container {
    width: 96vw;
    height: 94vh;
  }
}

/* Mobile: stack everything, collapse spine */
@media (max-width: 689px) {
  .gmia-viewpoints-hero {
    padding: 2rem 0;
  }

  .gmia-viewpoints-hero__email-group .ct-newsletter-subscribe-form-elements {
    flex-direction: column;
    gap: 12px;
  }

  .gmia-viewpoints-hero__email-group .ct-newsletter-subscribe-form button,
  .gmia-viewpoints-hero__email-group
    .ct-newsletter-subscribe-form
    .wp-element-button {
    width: 100%;
  }

  .gmia-viewpoints-hero__member-btn {
    display: block;
    width: 100%;
    text-align: center;
  }

  .gmia-viewpoints-featured__thumb {
    width: 220px;
    box-shadow:
      4px 4px 0px var(--gmia-gold-100, #f7edcc),
      8px 8px 0px var(--gmia-gold-400, #d4ad3e);
  }

  .gmia-viewpoints-featured__actions {
    justify-content: center;
  }

  .gmia-viewpoints-featured__read-btn {
    display: block;
    text-align: center;
  }

  /* Remove spine on mobile */
  .gmia-viewpoints-spine::before {
    display: none;
  }

  .gmia-viewpoints-spine__details::before {
    display: none;
  }

  .gmia-viewpoints-spine__season-grid {
    grid-template-columns: 1fr;
  }

  .gmia-viewpoints-spine__card {
    padding: 20px 0;
    text-align: center;
  }

  .gmia-viewpoints-spine__card--left,
  .gmia-viewpoints-spine__card--right {
    text-align: center;
  }

  .gmia-viewpoints-spine__card--right {
    grid-column: auto;
    margin-top: 0;
  }

  /* On mobile: uniform slide-up instead of left/right */
  .gmia-viewpoints-spine__card--left,
  .gmia-viewpoints-spine__card--right {
    transform: translateY(20px);
  }

  .gmia-viewpoints-spine__card--left.is-revealed,
  .gmia-viewpoints-spine__card--right.is-revealed {
    transform: translateY(0);
  }

  .gmia-viewpoints-spine__card::after {
    display: none;
  }

  .gmia-viewpoints-spine__card-actions,
  .gmia-viewpoints-spine__card--left .gmia-viewpoints-spine__card-actions,
  .gmia-viewpoints-spine__card--right .gmia-viewpoints-spine__card-actions {
    justify-content: center;
  }

  /* font-size now handled by clamp(1.4rem, 2.5vw, 1.8rem) in base rule */

  .gmia-viewpoints-spine__year-marker {
    padding: 2rem 0;
  }

  /* PDF viewer: full screen on mobile */
  .gmia-pdf-viewer__container {
    width: 100vw;
    height: 100vh;
    max-width: none;
    border-radius: 0;
  }

  .gmia-pdf-viewer__toolbar {
    padding: 0.625rem 1rem;
  }

  .gmia-pdf-viewer__title {
    font-size: 0.95rem;
  }

  .gmia-pdf-viewer__download {
    font-size: 0;
    gap: 0;
  }

  .gmia-pdf-viewer__download .fa-download {
    font-size: 1rem;
  }
}

/* ==========================================================================
   Newsletter Widget/Shortcode
   Used by: [gmia_newsletter] shortcode
   ========================================================================== */
.gmia-newsletter-widget {
  margin-top: 10px;
}

.gmia-newsletter-label {
  font-weight: 600;
  margin-bottom: 10px;
  font-size: var(--gmia-text-caption);
}

.gmia-newsletter-form input[type="email"] {
  width: 100%;
  padding: 12px;
  margin-bottom: 10px;
  border: none;
  border-radius: var(--gmia-radius-sm);
  font-size: var(--gmia-text-caption);
}

.gmia-newsletter-form button {
  width: 100%;
  padding: 12px;
  background: var(--gmia-gold-500);
  color: var(--gmia-green-950);
  border: none;
  border-radius: var(--gmia-radius-md);
  cursor: pointer;
  font-weight: 600;
  font-size: var(--gmia-text-caption);
  transition: background 0.2s ease;
}

.gmia-newsletter-form button:hover {
  background: var(--gmia-gold-400);
}

/* ==========================================================================
   Event Shortcode Styles
   Used by: [gmia_events]
   ========================================================================== */
.full_event_section {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 30px;
  margin-bottom: 40px;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--paletteColor6, #e5e4e0);
}

.full_event_section:last-child {
  border-bottom: none;
}

.full_event_section .event-image img {
  width: 100%;
  height: auto;
  border-radius: var(--gmia-radius-md);
}

.full_event_section .section-title h2 {
  margin-top: 0;
  margin-bottom: 1rem;
}

.full_event_section .section-title h2 a {
  color: var(--paletteColor4, #302f2c);
  text-decoration: none;
  transition: color 0.2s ease;
}

.full_event_section .section-title h2 a:hover {
  color: var(--paletteColor1, #3a5438);
}

.full_event_section .sidule {
  display: flex;
  gap: 20px;
  margin-bottom: 1rem;
}

.full_event_section .sidule .date,
.full_event_section .sidule .time {
  display: flex;
  align-items: center;
  gap: 10px;
}

.full_event_section .sidule i {
  color: var(--paletteColor1, #3a5438);
}

@media (max-width: 768px) {
  .full_event_section {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Event Cards - Blog-Style Card Layout for Content Blocks
   Used by: [gmia_event_cards]
   ========================================================================== */
.gmia-event-cards {
  display: grid;
  gap: 2rem;
}

.gmia-event-cards--cols-1 {
  grid-template-columns: 1fr;
}
.gmia-event-cards--cols-2 {
  grid-template-columns: repeat(2, 1fr);
}
.gmia-event-cards--cols-3 {
  grid-template-columns: repeat(3, 1fr);
}
.gmia-event-cards--cols-4 {
  grid-template-columns: repeat(4, 1fr);
}

.gmia-event-card {
  background: var(--gmia-white);
  border-radius: var(--gmia-radius-xl);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.gmia-event-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--gmia-shadow-card-hover);
}

.gmia-event-card__image {
  display: block;
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.gmia-event-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.gmia-event-card:hover .gmia-event-card__image img {
  transform: scale(1.05);
}

.gmia-event-card__content {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

/* Body wrapper (meta + title) — grows to push divider/footer to bottom */
.gmia-event-card__body {
  flex-grow: 1;
}

.gmia-event-card__meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.75rem;
  font-size: var(--gmia-text-caption);
}

.gmia-event-card__date,
.gmia-event-card__meta .gmia-event-card__time {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--gmia-neutral-600, #4a4843);
}

.gmia-event-card__date {
  font-weight: 500;
}

.gmia-event-card__date svg,
.gmia-event-card__meta .gmia-event-card__time svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

.gmia-event-card__title {
  font-size: var(--gmia-text-xl);
  font-weight: 700;
  line-height: 1.35;
  margin: 0;
}

/* Clickable card — title link covers entire card via ::after */
.gmia-event-card__title a {
  color: var(--paletteColor1, #3a5438);
  text-decoration: none;
  transition: color 0.2s ease;
}

.gmia-event-card__title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
}

.gmia-event-card:hover .gmia-event-card__title a {
  color: var(--paletteColor2, #c4941a);
}

.gmia-event-card__divider {
  border: none;
  border-top: 1px solid var(--paletteColor6, #e5e4e0);
  margin: 1rem 0;
}

/* Footer — locked height so dividers align across the grid row */
.gmia-event-card__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-top: auto;
  min-height: 2.75rem;
}

/* Footer links — sit above the clickable card overlay */
.gmia-event-card__link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--paletteColor1, #3a5438);
  font-weight: 600;
  font-size: var(--gmia-text-secondary);
  text-decoration: none;
  white-space: nowrap;
  transition:
    color 0.2s ease,
    gap 0.2s ease;
  position: relative;
  z-index: 1;
}

.gmia-event-card__link:hover {
  color: var(--paletteColor2, #c4941a);
  gap: 0.5rem;
}

.gmia-event-card__link svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

/* "Buy Tickets" — primary button */
.gmia-event-card__link--tickets {
  background-color: var(--paletteColor2, #c4941a);
  color: var(--gmia-white);
  padding: 0.4rem 0.75rem;
  min-height: 44px;
  border-radius: var(--gmia-radius-md);
  font-weight: 600;
  font-size: var(--gmia-text-caption);
  gap: 0.3rem;
  transition: background-color 0.2s ease;
}

.gmia-event-card__link--tickets:hover {
  background-color: var(--paletteColor1, #3a5438);
  color: var(--gmia-white);
  gap: 0.4rem;
}

.gmia-no-events {
  text-align: center;
  padding: 2rem;
  color: var(--paletteColor5, var(--gmia-neutral-500));
}

/* Responsive: 2 columns on tablet */
@media (max-width: 991px) {
  .gmia-event-cards--cols-3,
  .gmia-event-cards--cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Responsive: 1 column on mobile */
@media (max-width: 575px) {
  .gmia-event-cards--cols-2,
  .gmia-event-cards--cols-3,
  .gmia-event-cards--cols-4 {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Event Badge & Date TBD Styles
   Used by: [gmia_events], [gmia_event_cards], [gmia_next_events]
   ========================================================================== */

/* --- Special Event Badge --- */
.gmia-event-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.25rem 0.75rem;
  border-radius: var(--gmia-radius-sm);
  font-size: var(--gmia-text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.75px;
  line-height: 1;
}

.gmia-event-badge--special {
  background-color: var(--paletteColor2, #c4941a);
  color: var(--gmia-white);
}

/* Badge overlay on event card image */
.gmia-event-card--special {
  position: relative;
}

.gmia-event-card--special .gmia-event-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 2;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* Badge inline in full listing view */
.full_event_section .gmia-event-badge {
  margin-left: 0.75rem;
  vertical-align: middle;
  font-size: var(--gmia-text-2xs);
}

/* --- Date TBD styling --- */
.gmia-event-card__date--tbd {
  color: var(--paletteColor2, #c4941a);
  font-style: italic;
}

.gmia-event-date--tbd {
  color: var(--paletteColor2, #c4941a);
  font-style: italic;
}

.full_event_section .gmia-event-date--tbd span {
  color: var(--paletteColor2, #c4941a);
}

/* --- Ribbon badge (compact, for hero section) --- */
.gmia-next-events-ribbon__badge {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  background-color: var(--paletteColor2, #c4941a);
  color: var(--gmia-white);
  font-size: var(--gmia-text-2xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  border-radius: var(--gmia-radius-sm);
  line-height: 1;
  margin-left: 0.4rem;
}

/* ==========================================================================
   Team Shortcode Styles
   Used by: [gmia_team]
   ========================================================================== */
.team_details {
  display: flex;
  gap: 20px;
  margin-bottom: 30px;
  padding-bottom: 30px;
  border-bottom: 1px solid var(--gmia-neutral-200);
}

.team_details:last-child {
  border-bottom: none;
}

.team_member_img img {
  width: 150px;
  height: 150px;
  object-fit: cover;
  border-radius: var(--gmia-radius-full);
}

.team_member_description h4 {
  margin-top: 0;
  margin-bottom: 0.5rem;
}

.team_member_description .member_position {
  color: var(--gmia-neutral-500);
  font-style: italic;
  margin-bottom: 0.5rem;
}

@media (max-width: 480px) {
  .team_details {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
}

/* ==========================================================================
   Board of Directors
   Used by: [gmia_board]
   ========================================================================== */

.gmia-board {
  margin: 0 auto;
  padding-bottom: 4rem;
}

.gmia-board__section {
  margin-bottom: 3rem;
}

.gmia-board__section:last-child {
  margin-bottom: 0;
}

.gmia-board__section-title {
  font-size: var(--gmia-heading-sub);
  font-weight: 700;
  color: var(--theme-heading-color, #010101);
  margin-bottom: 1.5rem;
}

/* Grid layout */
.gmia-board__grid {
  display: grid;
  gap: 1.5rem;
}

.gmia-board__grid--cols-1 {
  grid-template-columns: 1fr;
}
.gmia-board__grid--cols-2 {
  grid-template-columns: repeat(2, 1fr);
}
.gmia-board__grid--cols-3 {
  grid-template-columns: repeat(3, 1fr);
}
.gmia-board__grid--cols-4 {
  grid-template-columns: repeat(4, 1fr);
}
.gmia-board__grid--cols-5 {
  grid-template-columns: repeat(5, 1fr);
}
.gmia-board__grid--cols-6 {
  grid-template-columns: repeat(6, 1fr);
}

/* Card base */
.gmia-board-card {
  background: var(--gmia-white);
  border-radius: var(--gmia-radius-lg);
  padding: 1.75rem 1.25rem;
  text-align: center;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.gmia-board-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.1);
}

/* Photo / Avatar */
.gmia-board-card__photo {
  width: 120px;
  height: 120px;
  aspect-ratio: 1 / 1;
  border-radius: var(--gmia-radius-full);
  overflow: hidden;
  margin-bottom: 1rem;
  flex-shrink: 0;
  background: var(--paletteColor1, #3a5438);
}

.gmia-board-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.gmia-board-card__photo--small {
  width: 80px;
  height: 80px;
}

/* Initials avatar */
.gmia-board-card__initials {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: var(--gmia-white);
  font-size: var(--gmia-text-3xl);
  font-weight: 700;
  letter-spacing: 1px;
  user-select: none;
}

.gmia-board-card__photo--small .gmia-board-card__initials {
  font-size: var(--gmia-text-2xl);
}

/* Name */
.gmia-board-card__name {
  font-size: var(--gmia-text-lg);
  font-weight: 700;
  color: var(--theme-heading-color, #010101);
  margin: 0 0 0.25rem;
  line-height: 1.3;
}

/* Role */
.gmia-board-card__role {
  font-size: var(--gmia-text-caption);
  color: var(--paletteColor1, #3a5438);
  font-weight: 600;
  margin: 0 0 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Contact info */
.gmia-board-card__contact {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-top: auto;
}

.gmia-board-card__phone,
.gmia-board-card__email {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  color: var(--paletteColor5, #64615b);
  font-size: var(--gmia-text-sm);
  text-decoration: none;
  transition: color 0.2s ease;
}

.gmia-board-card__phone:hover,
.gmia-board-card__email:hover {
  color: var(--paletteColor1, #3a5438);
}

.gmia-board-card__phone svg,
.gmia-board-card__email svg {
  width: 14px;
  height: 14px;
  fill: currentColor;
  flex-shrink: 0;
}

/* Director cards: more compact */
.gmia-board-card--director {
  padding: 1.25rem 1rem;
}

.gmia-board-card--director .gmia-board-card__name {
  font-size: var(--gmia-text-body);
}

/* Empty state */
.gmia-board-empty {
  text-align: center;
  padding: 2rem;
  color: var(--paletteColor5, #64615b);
}

/* Responsive: Tablet */
@media (max-width: 991px) {
  .gmia-board__grid--cols-3,
  .gmia-board__grid--cols-4 {
    grid-template-columns: repeat(2, 1fr);
  }
  .gmia-board__grid--cols-5,
  .gmia-board__grid--cols-6 {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Responsive: Small tablet */
@media (max-width: 767px) {
  .gmia-board__grid--cols-3,
  .gmia-board__grid--cols-4,
  .gmia-board__grid--cols-5,
  .gmia-board__grid--cols-6 {
    grid-template-columns: repeat(2, 1fr);
  }

  .gmia-board-card__photo {
    width: 100px;
    height: 100px;
  }
}

/* Responsive: Mobile */
@media (max-width: 575px) {
  .gmia-board__grid--cols-2,
  .gmia-board__grid--cols-3,
  .gmia-board__grid--cols-4,
  .gmia-board__grid--cols-5,
  .gmia-board__grid--cols-6 {
    grid-template-columns: 1fr;
  }

  .gmia-board-card {
    flex-direction: row;
    text-align: left;
    padding: 1.25rem;
    gap: 1rem;
  }

  .gmia-board-card__photo {
    width: 72px;
    height: 72px;
    margin-bottom: 0;
  }

  .gmia-board-card__photo--small {
    width: 56px;
    height: 56px;
  }

  .gmia-board-card__initials {
    font-size: var(--gmia-text-xl);
  }

  .gmia-board-card__contact {
    align-items: flex-start;
  }

  .gmia-board-card__phone,
  .gmia-board-card__email {
    justify-content: flex-start;
  }
}

/* ==========================================================================
   Block Pattern: About/Mission Section
   Used by: gmia/about-mission pattern
   ========================================================================== */
.gmia-about-section {
  background: var(--gmia-white, #ffffff);
  padding: 8.4rem var(--wp--preset--spacing--50, 1.5rem);
}

body.home .gmia-about-section {
  padding-top: 8.4rem;
}

body.home .gmia-hero-cover {
  margin: 0;
}

.gmia-about-image-wrapper,
.gmia-about-media-wrapper {
  position: relative;
}

.gmia-about-image img {
  border-radius: var(--gmia-radius-lg);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
}

.gmia-about-video .wp-block-embed__wrapper {
  border-radius: var(--gmia-radius-lg);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);
  overflow: hidden;
}

.gmia-about-video .wp-block-embed__wrapper iframe {
  display: block;
}

.gmia-image-badge {
  position: absolute;
  bottom: -12px;
  right: 20px;
  background: var(--gmia-green-700, #3a5438);
  color: var(--gmia-white);
  padding: 8px 20px;
  border-radius: var(--gmia-radius-pill);
  font-weight: 600;
  font-size: var(--gmia-text-caption);
  letter-spacing: 0.5px;
  box-shadow: 0 4px 15px rgba(58, 84, 56, 0.3);
  margin: 0;
}

.gmia-about-label {
  color: var(--gmia-green-700, #3a5438);
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 0.5rem;
}

.gmia-about-section h2 {
  font-size: var(--gmia-heading-section);
  margin-top: 0;
  margin-bottom: 1rem;
  color: var(--gmia-green-700, #3a5438);
}

.gmia-about-section p:not(.gmia-image-badge):not(.gmia-about-label) {
  color: #000000;
}

.gmia-feature-list {
  list-style: none;
  padding-left: 0;
  margin: 1.5rem 0;
}

.gmia-feature-list li {
  position: relative;
  padding-left: 1.75rem;
  margin-bottom: 0.75rem;
  line-height: 1.5;
}

.gmia-feature-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.25rem;
  width: 18px;
  height: 18px;
  background: var(--gmia-green-700, #3a5438);
  border-radius: 50%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z'/%3E%3C/svg%3E");
  background-size: 12px;
  background-position: center;
  background-repeat: no-repeat;
}

/* Responsive: Stack columns on tablet */
@media (max-width: 782px) {
  body.home .gmia-about-section {
    padding-top: 2rem;
  }

  /* No flex-direction/flex-basis override needed here — WordPress core
     already stacks columns on narrow viewports via `.wp-block-columns
     { flex-wrap: wrap !important; }` plus `flex-basis: 100% !important`
     per column. Forcing flex-direction: column on top of that fought core's
     flex-wrap: wrap (which survives, since !important can't be beaten),
     producing a mixed column-direction/wrap layout where the video column
     collapsed to 0 height and its embed visually overlapped the next
     section below. */

  .gmia-about-image-wrapper,
  .gmia-about-media-wrapper {
    margin-top: 2rem;
  }

  .gmia-image-badge {
    bottom: -10px;
    right: 50%;
    transform: translateX(50%);
  }
}

/* ==========================================================================
   Block Pattern: What We Do
   Used by: gmia/what-we-do pattern
   ========================================================================== */
.gmia-wwd__heading {
  font-size: var(--gmia-heading-section);
  margin-bottom: 0.5rem;
}

.gmia-wwd__intro {
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2.5rem;
}

.gmia-wwd__grid.wp-block-columns {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.gmia-wwd__card.wp-block-column {
  background: var(--gmia-white, #fff);
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  border-radius: var(--gmia-radius-lg);
  padding: 1.75rem 1.5rem;
  text-align: center;
  transition:
    transform 200ms ease,
    box-shadow 200ms ease;
}

.gmia-wwd__card.wp-block-column:hover {
  transform: translateY(-4px);
  box-shadow: var(--gmia-shadow-card-hover);
}

.gmia-wwd__icon {
  width: 72px;
  height: 72px;
  border-radius: var(--gmia-radius-full, 50%);
  background: var(--gmia-green-100, #e2f0e1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gmia-green-600, #4a6b47);
  font-size: 1.75rem;
  margin: 0 auto 1.25rem;
}

.gmia-wwd__title {
  font-size: var(--gmia-text-xl, 1.3125rem);
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 0.75rem;
}

.gmia-wwd__desc {
  font-size: var(--gmia-text-sm, 0.875rem);
  color: var(--gmia-neutral-600, #474541);
  line-height: 1.6;
  margin-bottom: 1.25rem;
}

.gmia-wwd__link {
  display: inline-block;
  font-size: var(--gmia-text-sm, 0.875rem);
  font-weight: 600;
  color: var(--gmia-green-700, #3a5438);
  text-decoration: none;
  transition: color 200ms ease;
}

.gmia-wwd__link:hover {
  color: var(--gmia-gold-500, #c4941a);
}

/* Responsive: 2-column on tablet */
@media (max-width: 782px) {
  .gmia-wwd__grid.wp-block-columns {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Responsive: 1-column on mobile */
@media (max-width: 480px) {
  .gmia-wwd__grid.wp-block-columns {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Block Pattern: Membership CTA Section
   Used by: gmia/membership-cta pattern
   ========================================================================== */
.gmia-membership-section {
  text-align: center;
}

.gmia-membership-section h2 {
  font-size: var(--gmia-heading-section);
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.gmia-membership-label {
  color: var(--gmia-gold-500, #c4941a);
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 0.5rem;
}

.gmia-membership-benefits {
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.gmia-benefit {
  text-align: center;
}

.gmia-benefit-icon {
  margin-bottom: 0.75rem;
  font-size: 2.5rem;
  color: var(--gmia-gold-500, #c4941a);
}

.gmia-benefit-title {
  font-weight: 600;
  font-size: var(--gmia-text-xl);
  margin-bottom: 0.25rem;
}

.gmia-benefit .has-small-font-size {
  font-size: var(--gmia-text-body);
}

.gmia-membership-button .wp-block-button__link {
  font-weight: 600;
  font-size: var(--gmia-text-lg);
  transition:
    background-color 0.2s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

.gmia-membership-button .wp-block-button__link:hover {
  background-color: var(--gmia-gold-500, #c4941a);
  border-color: var(--gmia-gold-500, #c4941a);
  color: var(--gmia-white);
}

/* Responsive: 2x2 grid on tablet, stack on mobile */
@media (max-width: 782px) {
  .gmia-membership-benefits {
    flex-wrap: wrap;
  }

  .gmia-membership-benefits .wp-block-column {
    flex-basis: 50%;
    margin-bottom: 1.5rem;
  }
}

@media (max-width: 480px) {
  .gmia-membership-benefits .wp-block-column {
    flex-basis: 100%;
  }
}

/* ==========================================================================
   Block Pattern: Donate CTA Section
   Used by: gmia/donate-cta pattern
   ========================================================================== */
.gmia-donate-section {
  background: var(--gmia-gold-500, #c4941a);
}

.gmia-donate-content {
  gap: 1.5rem;
}

.gmia-donate-icon {
  margin: 0;
  flex-shrink: 0;
  font-size: 3rem;
  color: var(--gmia-white);
}

.gmia-donate-label {
  color: var(--gmia-white, #ffffff);
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin: 0 0 0.25rem 0;
  opacity: 0.85;
}

.gmia-donate-heading {
  font-size: var(--gmia-heading-compact);
  margin: 0 0 0.25rem 0;
  line-height: 1.3;
}

.gmia-donate-text {
  margin: 0;
  font-size: var(--gmia-text-body);
  line-height: 1.5;
}

.gmia-donate-section
  .gmia-donate-button.is-style-outline
  .wp-block-button__link {
  color: var(--gmia-white, #ffffff);
  border: 2px solid var(--gmia-white, #ffffff);
  background-color: transparent;
  font-weight: 600;
  font-size: var(--gmia-text-lg);
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
  white-space: nowrap;
}

.gmia-donate-section
  .gmia-donate-button.is-style-outline
  .wp-block-button__link:hover,
.gmia-donate-section
  .gmia-donate-button.is-style-outline
  .wp-block-button__link:focus {
  background-color: var(--gmia-green-700, #3a5438);
  border-color: var(--gmia-green-700, #3a5438);
  color: var(--gmia-white, #ffffff);
}

/* Responsive: Stack on mobile */
@media (max-width: 782px) {
  .gmia-donate-section .wp-block-columns {
    flex-direction: column;
    text-align: center;
  }

  .gmia-donate-section .wp-block-column {
    flex-basis: 100%;
  }

  .gmia-donate-content {
    flex-direction: column;
    align-items: center;
  }

  .gmia-donate-heading,
  .gmia-donate-text,
  .gmia-donate-label {
    text-align: center;
  }
}

/* ==========================================================================
   Block Pattern: Newsletter Signup Section (Dark Cover)
   Used by: gmia/newsletter-signup pattern
   Background image + overlay handled via CSS (avoids Cover block validation)
   ========================================================================== */

/* Section container — background image + dark overlay */
.gmia-newsletter-section {
  position: relative;
  background: var(
    --gmia-green-800,
    #233a20
  ); /* Fallback color; override with inline style or Customizer */
  padding: 5rem 1rem;
  min-height: 420px;
}

.gmia-newsletter-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
}

/* Ensure all content sits above the overlay */
.gmia-newsletter-section > * {
  position: relative;
  z-index: 1;
}

/* Heading with CSS divider underneath */
.gmia-newsletter-section__heading {
  color: var(--gmia-white);
  font-weight: 400;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
}

.gmia-newsletter-section__heading::after {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  background: rgba(255, 255, 255, 0.6);
  margin: 1rem auto 0;
}

/* Description text */
.gmia-newsletter-section__desc {
  color: var(--gmia-neutral-200);
  margin-bottom: 2rem;
  line-height: 1.7;
}

/* Strip Blocksy's default widget card styling */
.gmia-newsletter-section .gmia-newsletter-widget {
  max-width: 520px;
  margin: 0 auto;
  background: transparent;
  box-shadow: none;
  border: none;
  padding: 0;
  color: var(--gmia-white);
}

/* Force inline layout — override Blocksy's grid (needs high specificity) */
.gmia-newsletter-section
  .ct-newsletter-subscribe-form
  .ct-newsletter-subscribe-form-elements,
.gmia-newsletter-section
  .ct-newsletter-subscribe-form
  .ct-newsletter-subscribe-form-elements[data-columns],
.gmia-newsletter-section
  .ct-newsletter-subscribe-form
  .ct-newsletter-subscribe-form-elements[data-columns="2"] {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  max-width: 100%;
}

/* Email input — transparent with solid white border */
.gmia-newsletter-section .ct-newsletter-subscribe-form input[type="email"] {
  padding: 0.875rem 1.25rem;
  border: 2px solid var(--gmia-white);
  border-radius: var(--gmia-radius-sm);
  background: rgba(255, 255, 255, 0.1);
  color: var(--gmia-white);
  font-size: var(--gmia-text-secondary);
  width: 100%;
  box-sizing: border-box;
  transition: background-color 0.2s ease;
}

.gmia-newsletter-section
  .ct-newsletter-subscribe-form
  input[type="email"]::placeholder {
  color: var(--gmia-white);
  opacity: 1;
}

.gmia-newsletter-section
  .ct-newsletter-subscribe-form
  input[type="email"]:focus {
  background: rgba(255, 255, 255, 0.15);
  outline: 2px solid var(--gmia-white);
  outline-offset: 2px;
  box-shadow: none;
}

/* Subscribe button — gold accent */
.gmia-newsletter-section .ct-newsletter-subscribe-form button,
.gmia-newsletter-section .ct-newsletter-subscribe-form .wp-element-button {
  padding: 0.875rem 2rem;
  background-color: var(--paletteColor2, #c4941a);
  border: 2px solid var(--paletteColor2, #c4941a);
  border-radius: var(--gmia-radius-md);
  color: var(--gmia-white);
  font-weight: 600;
  font-size: var(--gmia-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  white-space: nowrap;
  transition: background-color 0.2s ease;
}

.gmia-newsletter-section .ct-newsletter-subscribe-form button:hover,
.gmia-newsletter-section
  .ct-newsletter-subscribe-form
  .wp-element-button:hover {
  background-color: var(--gmia-gold-400);
  border-color: var(--gmia-gold-400);
}

/* Responsive: Stack form on narrow screens */
@media (max-width: 480px) {
  .gmia-newsletter-section .ct-newsletter-subscribe-form-elements,
  .gmia-newsletter-section
    .ct-newsletter-subscribe-form-elements[data-columns] {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }

  .gmia-newsletter-section .ct-newsletter-subscribe-form input[type="email"],
  .gmia-newsletter-section .ct-newsletter-subscribe-form button,
  .gmia-newsletter-section .ct-newsletter-subscribe-form .wp-element-button {
    border-radius: var(--gmia-radius-md);
  }
}

/* ==========================================================================
   Block Pattern: News Grid Section
   Used by: gmia/news-grid pattern
   ========================================================================== */
.gmia-news-section {
  background: var(--gmia-neutral-50, #f7f6f3);
}

.gmia-news-section h2 {
  font-size: var(--gmia-heading-section);
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}

.gmia-news-label {
  color: var(--gmia-green-700, #3a5438);
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 0.5rem;
}

.gmia-news-grid .wp-block-post-template {
  gap: 2rem;
}

.gmia-news-card {
  background: var(--gmia-white);
  border-radius: var(--gmia-radius-lg);
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  transition:
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.gmia-news-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
}

.gmia-news-card__image img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.gmia-news-card__date {
  margin-bottom: 0.5rem;
}

.gmia-news-card__title {
  margin-top: 0;
  margin-bottom: 0.75rem;
  line-height: 1.35;
}

.gmia-news-card__title a {
  color: var(--gmia-neutral-950, #010101);
  text-decoration: none;
  transition: color 0.2s ease;
}

.gmia-news-card__title a:hover {
  color: var(--gmia-green-700, #3a5438);
}

.gmia-news-card__excerpt {
  color: var(--gmia-neutral-500, #64615b);
  font-size: var(--gmia-text-secondary);
  line-height: 1.6;
  margin: 0;
}

/* Responsive: 2 columns on tablet, 1 on mobile */
@media (max-width: 991px) {
  .gmia-news-grid .wp-block-post-template {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .gmia-news-grid .wp-block-post-template {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Footer Topographic Background (Top + Middle Rows)
   Green with topo contour pattern overlay
   ========================================================================== */
footer.ct-footer [data-row="top"],
footer.ct-footer [data-row="middle"] {
  background-color: var(--gmia-green-700, #3a5438);
  background-image: url("assets/images/topo-pattern.png");
  background-size: cover;
  background-position: center;
  background-blend-mode: soft-light;
}

/* ==========================================================================
   Footer Bottom Row Fix
   Forces colors when Blocksy settings don't apply
   ========================================================================== */
[data-row="bottom"] {
  background-color: var(--gmia-green-700, #3a5438);
}

[data-row="bottom"],
[data-row="bottom"] p,
[data-row="bottom"] .ct-footer-copyright,
[data-row="bottom"] .ct-footer-copyright p {
  color: var(--gmia-white);
}

[data-row="bottom"] a {
  color: var(--gmia-white);
}

[data-row="bottom"] a:hover {
  color: var(--gmia-gold-300, #e3c76a);
}

footer.ct-footer .widget-title,
footer.ct-footer .has-medium-font-size {
  font-size: var(--gmia-text-2xl);
}

/* Newsletter widget button */
.ct-footer .ct-newsletter-subscribe-form button,
.ct-footer .ct-newsletter-subscribe-form .ct-button {
  background-color: var(--gmia-gold-500, #c4941a);
  border-color: var(--gmia-gold-500, #c4941a);
}

.ct-footer .ct-newsletter-subscribe-form button:hover,
.ct-footer .ct-newsletter-subscribe-form .ct-button:hover {
  background-color: var(--gmia-gold-300, #e3c76a);
  border-color: var(--gmia-gold-300, #e3c76a);
}

/* Newsletter email input */
.ct-footer .ct-newsletter-subscribe-form input[type="email"] {
  background-color: var(--gmia-green-500);
  border-color: transparent;
}

.ct-footer .ct-newsletter-subscribe-form input[type="email"]:focus {
  border-color: var(--gmia-green-100);
}

/* ==========================================================================
   Subpage Header Banner
   Used by: inc/subpage-header.php (auto-prepended) and gmia/subpage-header pattern

   Full-width banner with background image, dark overlay,
   breadcrumbs, and page title. Shows automatically on all
   non-homepage pages.
   ========================================================================== */
.gmia-subpage-header {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 350px;
  overflow: hidden;

  /* Break out of Blocksy's content container to go full-width */
  width: 100%;
  max-width: 100%;
  margin-left: calc(-50vw + 50%);
  margin-right: calc(-50vw + 50%);
  margin-bottom: 2rem;

  /* Pull banner up so it sits behind the absolute-positioned header */
  margin-top: -2rem;
}

.gmia-subpage-header__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.gmia-subpage-header__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 1;
}

/* Solid color fallback when no featured image is set */
.gmia-subpage-header--no-image {
  background-color: var(--gmia-green-800, #233a20);
}

.gmia-subpage-header__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--theme-normal-container-max-width, 1290px);
  margin: 0 auto;
  /* Extra top padding to clear the floating header bar */
  padding: calc(var(--wp--preset--spacing--60, 3rem) + 100px)
    var(--wp--preset--spacing--50, 2rem) var(--wp--preset--spacing--60, 3rem);
  text-align: center;
}

.gmia-subpage-header__title {
  margin: 0.25rem 0 0;
  font-size: var(--gmia-heading-page);
  font-weight: 700;
  color: var(--gmia-white);
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.4);
}

.gmia-subpage-header__title::after {
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  background: var(--gmia-gold-500, #c4941a);
  margin: 0.75rem auto 0;
  border-radius: var(--gmia-radius-sm, 2px);
  text-shadow: none;
}

.gmia-subpage-header__subtitle {
  margin: 0.75rem auto 0;
  max-width: 720px;
  font-size: var(--gmia-heading-subtitle);
  font-weight: 400;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.9);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

/* Breadcrumbs */
.gmia-breadcrumbs {
  text-align: center;
  font-size: var(--gmia-text-caption);
  line-height: 1.5;
}

.gmia-breadcrumbs__link {
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  transition: color 0.2s ease;
}

.gmia-breadcrumbs__link:hover {
  color: var(--gmia-white);
  text-decoration: underline;
}

.gmia-breadcrumbs__sep {
  color: rgba(255, 255, 255, 0.5);
  margin: 0 0.15rem;
}

.gmia-breadcrumbs__current {
  color: var(--gmia-gold-300, #e3c76a);
  font-weight: 500;
}

@media (max-width: 689px) {
  .gmia-subpage-header {
    min-height: 250px;
    /* Header is position:relative on mobile, so no overlap to compensate for */
    margin-top: 0;
  }

  .gmia-subpage-header__title {
    font-size: 1.75rem;
  }
}

/* --- Events bar font size --- */
.tribe-events-header__events-bar #tribe-events-events-bar-keyword,
.tribe-events-header__events-bar
  .tribe-common-c-btn.tribe-events-c-search__button,
.tribe-events-header__events-bar
  .tribe-common-c-btn.tribe-events-c-search__button:hover,
.tribe-events-header__events-bar .tribe-events-c-view-selector__list-item-text {
  font-size: var(--gmia-text-base, 16px);
}

/* --- Today button — green outline, gold hover --- */
.tribe-common a.tribe-common-c-btn-border-small {
  font-size: var(--gmia-text-base, 16px);
  background: transparent;
  border: 2px solid var(--paletteColor1, #3a5438);
  color: var(--paletteColor1, #3a5438);
  border-radius: var(--gmia-radius-md, 6px);
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.tribe-common a.tribe-common-c-btn-border-small:hover,
.tribe-common a.tribe-common-c-btn-border-small:focus-visible {
  background: var(--paletteColor2, #c4941a);
  border-color: var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
}

/* --- Subscribe dropdown button radius --- */
.single-tribe_events
  .tribe-events-c-subscribe-dropdown
  .tribe-events-c-subscribe-dropdown__button-text,
.single-tribe_events
  .tribe-events-c-subscribe-dropdown
  button.tribe-events-c-subscribe-dropdown__button-text,
.tribe-events
  .tribe-events-c-subscribe-dropdown
  .tribe-events-c-subscribe-dropdown__button-text,
.tribe-events
  .tribe-events-c-subscribe-dropdown
  button.tribe-events-c-subscribe-dropdown__button-text {
  border-radius: var(--gmia-radius-md, 6px);
}

/* ==========================================================================
   Single Event Page — TEC Restyling

   Two-column layout for single event pages: content left, event details
   sidebar right. Styles TEC's existing HTML output via our template
   override at tribe-events/single-event.php.
   Applied via WordPress body class .single-tribe_events.
   ========================================================================== */

/* --- TEC wrapper reset ---
   TEC's #tribe-events-content has padding:2px 0 which adds unwanted
   space above the subpage header. */
.single-tribe_events #tribe-events-content {
  padding-top: 0;
  padding-bottom: 75px;
}

/* --- Subpage header inside TEC wrapper ---
   Force full-viewport width (TEC lacks .is-layout-constrained so the
   .alignfull breakout doesn't apply) and adjust top margin to match
   the vertical position of regular page subpage headers. */
.tribe-events-single > .gmia-subpage-header {
  width: 100vw;
  max-width: 100vw;
  margin-top: 0;
}

/* --- Back link (hidden — breadcrumbs in subpage header serve this purpose) --- */
.single-tribe_events .tribe-events-back {
  display: none;
}

/* --- Two-column layout --- */
.gmia-event-layout {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 2rem 2.5rem;
  align-items: start;
}

/* --- Main content column --- */
.gmia-event-content {
  min-width: 0;
}

/* Unified content card: image + description + share as one element */
.gmia-event-content .gmia-event-content-card {
  background: var(--gmia-white);
  border-radius: var(--gmia-radius-lg);
  border: 1px solid var(--gmia-neutral-100, #eae8e4);
  overflow: hidden;
}

/* Featured image — flush to top of card, no margin */
.gmia-event-content .tribe-events-event-image {
  margin: 0;
}

.gmia-event-content .tribe-events-event-image img {
  width: 100%;
  height: auto;
  display: block;
}

/* Content area typography — padded inside card */
.gmia-event-content .tribe-events-single-event-description {
  font-size: var(--gmia-text-body);
  line-height: 1.8;
  color: var(--gmia-neutral-700, #302f2c);
  padding: 2rem;
}

.gmia-event-content .tribe-events-single-event-description h2,
.gmia-event-content .tribe-events-single-event-description h3 {
  margin-top: 2rem;
  margin-bottom: 1rem;
  color: var(--gmia-neutral-900, #0c0c0b);
}

.gmia-event-content .tribe-events-single-event-description h2:first-child,
.gmia-event-content .tribe-events-single-event-description h3:first-child {
  margin-top: 0;
}

.gmia-event-content .tribe-events-single-event-description p {
  margin-bottom: 1.25rem;
}

.gmia-event-content .tribe-events-single-event-description p:last-child {
  margin-bottom: 0;
}

/* --- Share buttons --- */
.gmia-share {
  padding: 1.5rem 2rem 2rem;
  border-top: 1px solid var(--gmia-neutral-100, #eae8e4);
}

.gmia-share__heading {
  font-size: var(--gmia-text-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.75px;
  color: var(--gmia-neutral-500, #64615b);
  margin: 0 0 0.75rem;
}

.gmia-share__buttons {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.gmia-share__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--gmia-radius-full);
  color: var(--gmia-white);
  text-decoration: none;
  transition:
    transform 0.2s ease,
    opacity 0.2s ease;
}

.gmia-share__btn:hover {
  transform: scale(1.1);
  opacity: 0.85;
}

.gmia-share__btn svg {
  display: block;
}

.gmia-share__btn--facebook,
.gmia-share__btn--x,
.gmia-share__btn--email {
  background: var(--gmia-green-700, #3a5438);
}

/* --- Content footer (share + series history) --- */
.gmia-event-content-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.5rem 2rem 2rem;
  border-top: 1px solid var(--gmia-neutral-100, #eae8e4);
}

.gmia-event-content-footer .gmia-share {
  padding: 0;
  border-top: none;
}

/* --- Series history CTA --- */

.gmia-series-history__link {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.75rem 1rem;
  border: 2px solid
    var(--theme-button-background-initial-color, var(--gmia-green-700, #3a5438));
  border-radius: var(--gmia-radius-md);
  --theme-button-text-initial-color: var(
    --theme-button-background-initial-color,
    var(--gmia-green-700, #3a5438)
  );
  color: var(--theme-button-text-initial-color);
  font-weight: 600;
  text-decoration: none;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.gmia-series-history__link:hover {
  background-color: var(--paletteColor2, #c4941a);
  border-color: var(--paletteColor2, #c4941a);
  color: var(--gmia-white, #fff);
}

.gmia-series-history__icon {
  flex-shrink: 0;
}

.gmia-series-history__text {
  flex: 1;
  font-size: var(--gmia-text-sm);
  font-weight: 600;
  line-height: 1.3;
}

.gmia-series-history__arrow {
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.gmia-series-history__link:hover .gmia-series-history__arrow {
  transform: translateX(2px);
}

/* --- Hide series info from sidebar details --- */
.gmia-event-sidebar .tec-events-pro-series-meta-detail--label,
.gmia-event-sidebar .tec-events-pro-series-meta-detail--link {
  display: none;
}

/* --- Sidebar --- */
.gmia-event-sidebar {
  position: sticky;
  top: 2rem;
}

/* Override TEC flex/float layout — stack all sections vertically in sidebar */
.gmia-event-sidebar .tribe-events-event-meta {
  display: block;
}

/* Unified sidebar card — single white pane wrapping all sections */
.gmia-event-sidebar-card {
  background: var(--gmia-white);
  border-radius: var(--gmia-radius-lg);
  padding: 1.5rem;
  border: 1px solid var(--gmia-neutral-100, #eae8e4);
}

/* Meta groups are now internal sections — no individual card styling */
.gmia-event-sidebar .tribe-events-meta-group {
  display: block;
  float: none;
  width: 100%;
  background: none;
  border-radius: 0;
  padding: 0;
  margin: 0;
  border: none;
}

/* Divider between sections (Details → Tickets → Venue → Organizer) */
.gmia-event-sidebar-card > .tribe-events-meta-group + .tribe-events-meta-group,
.gmia-event-sidebar-card > .event-tickets + .tribe-events-meta-group,
.gmia-event-sidebar-card > .tribe-events-meta-group + .event-tickets,
.gmia-event-sidebar-card
  > .tribe-events-meta-group
  + .gmia-event-sidebar-card__map,
.gmia-event-sidebar-card > .event-tickets + .gmia-event-sidebar-card__map,
.gmia-event-sidebar-card
  > .gmia-event-sidebar-card__map
  + .tribe-events-meta-group {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--gmia-neutral-100, #eae8e4);
}

/* Venue section — no borders at all */
.gmia-event-sidebar .tribe-events-meta-group.tribe-events-meta-group-venue,
.gmia-event-sidebar-card
  > .tribe-events-meta-group.tribe-events-meta-group-venue {
  border: none;
  padding-top: 0;
}

/* Reset the outer section wrapper and strip any TEC default rules/borders */
.gmia-event-sidebar .tribe-events-single-section {
  padding: 0;
  margin: 0;
  border: none;
  background: none;
}

.gmia-event-sidebar .tribe-events-single-section::before,
.gmia-event-sidebar .tribe-events-single-section::after {
  display: none;
}

.gmia-event-sidebar hr,
.gmia-event-sidebar .tribe-events-event-meta hr {
  display: none;
}

/* Section titles inside unified card (DETAILS, TICKETS) */
.gmia-event-sidebar .tribe-events-single-section-title {
  font-size: 1.25rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--paletteColor1, #3a5438);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--paletteColor2, #c4941a);
}

/* Venue label — map pin icon (inherits all styling from .tribe-events-meta-label) */
.gmia-event-sidebar .tribe-venue-label::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A5438'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E")
    no-repeat center;
  background-size: contain;
}

/* Meta list reset */
.gmia-event-sidebar .tribe-events-meta-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.gmia-event-sidebar .tribe-events-meta-group-details .tribe-events-meta-list {
  margin: 0.25rem 0 0 0;
}

.gmia-event-sidebar .tribe-events-meta-group-venue .tribe-events-meta-list {
  margin: 0.25rem 0 0 1.5rem;
}

/* Individual meta items */
.gmia-event-sidebar .tribe-events-meta-item {
  padding: 0.625rem 0;
  margin-bottom: 0.25rem;
  border-bottom: none;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.gmia-event-sidebar .tribe-events-meta-item:last-child {
  padding-bottom: 0;
}

.gmia-event-sidebar .tribe-events-meta-item:first-child {
  padding-top: 0;
}

/* Base font size for all meta list text */
.gmia-event-sidebar .tribe-events-meta-list {
  font-size: var(--rootFontSize, 18px);
}

/* Meta labels */
.gmia-event-sidebar .tribe-events-meta-label {
  font-size: var(--rootFontSize, 18px);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--paletteColor1, #3a5438);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* Meta values */
.gmia-event-sidebar .tribe-events-meta-value {
  font-size: var(--rootFontSize, 18px);
  color: var(--gmia-neutral-800, #1c1b19);
  line-height: 1.5;
  margin: 0.25rem 0 0 1.5rem;
}

.gmia-event-sidebar .tribe-events-meta-value a {
  color: var(--paletteColor1, #3a5438);
  text-decoration: none;
  transition: color 0.2s ease;
}

.gmia-event-sidebar .tribe-events-meta-value a:hover {
  color: var(--paletteColor2, #c4941a);
}

/* Venue name styling */
.gmia-event-sidebar .tribe-venue {
  font-weight: 600;
  font-size: 1rem;
  color: var(--gmia-neutral-800, #1c1b19);
  padding: 0.5rem 0 0 0;
  border: none;
}

.gmia-event-sidebar .tribe-venue-location {
  padding: 0;
}

/* Venue address */
.gmia-event-sidebar .tribe-events-address {
  font-style: normal;
  line-height: 1.6;
  font-size: var(--gmia-text-secondary);
  color: var(--gmia-neutral-700, #302f2c);
}

/* Google Maps link */
.gmia-event-sidebar .tribe-events-gmap {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  margin-top: 0.5rem;
  color: var(--paletteColor1, #3a5438);
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  text-decoration: none;
}

.gmia-event-sidebar .tribe-events-gmap:hover {
  color: var(--paletteColor2, #c4941a);
}

/* --- Meta icons (inline SVG) --- */
.gmia-event-sidebar .tribe-events-meta-label::before {
  content: "";
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  display: inline-block;
}

/* Date icon */
.gmia-event-sidebar .tribe-events-start-date-label::before,
.gmia-event-sidebar .tribe-events-start-datetime-label::before,
.gmia-event-sidebar .tribe-events-end-date-label::before,
.gmia-event-sidebar .tribe-events-end-datetime-label::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A5438'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11zM9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2z'/%3E%3C/svg%3E")
    no-repeat center;
  background-size: contain;
}

/* Time icon */
.gmia-event-sidebar .tribe-events-start-time-label::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A5438'%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm.5-13H11v6l5.2 3.2.8-1.3-4.5-2.7V7z'/%3E%3C/svg%3E")
    no-repeat center;
  background-size: contain;
}

/* Cost icon */
.gmia-event-sidebar .tribe-events-event-cost-label::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A5438'%3E%3Cpath d='M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z'/%3E%3C/svg%3E")
    no-repeat center;
  background-size: contain;
}

/* Category icon */
.gmia-event-sidebar .tribe-events-event-categories-label::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A5438'%3E%3Cpath d='M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z'/%3E%3C/svg%3E")
    no-repeat center;
  background-size: contain;
}

/* Phone icon */
.gmia-event-sidebar .tribe-venue-tel-label::before,
.gmia-event-sidebar .tribe-organizer-tel-label::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A5438'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E")
    no-repeat center;
  background-size: contain;
}

/* Email icon */
.gmia-event-sidebar .tribe-organizer-email-label::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A5438'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E")
    no-repeat center;
  background-size: contain;
}

/* Website icon */
.gmia-event-sidebar .tribe-events-event-url-label::before,
.gmia-event-sidebar .tribe-venue-url-label::before,
.gmia-event-sidebar .tribe-organizer-url-label::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A5438'%3E%3Cpath d='M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z'/%3E%3C/svg%3E")
    no-repeat center;
  background-size: contain;
}

/* Tags icon */
.gmia-event-sidebar .tribe-events-event-tags-label::before {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A5438'%3E%3Cpath d='M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z'/%3E%3C/svg%3E")
    no-repeat center;
  background-size: contain;
}

/* --- Google Map in sidebar (flush within unified card) --- */
.gmia-event-sidebar-card__map {
  overflow: hidden;
}

.gmia-event-sidebar .tribe-events-venue-map {
  width: 100%;
  margin-top: 0;
  border-radius: var(--gmia-radius-md);
  overflow: hidden;
}

.gmia-event-sidebar .tribe-events-venue-map iframe,
.gmia-event-sidebar .tribe-events-meta-group-gmap iframe {
  width: 100%;
  height: 250px;
  display: block;
  border: none;
}

/* --- Event Location Map (inside venue card) --- */
.gmia-event-sidebar .gmia-event-map {
  height: 200px;
  border-radius: var(--gmia-radius-md);
  overflow: hidden;
  margin-top: 1rem;
}

/* --- Member-Free Ticket Badge & Gate --- */

.gmia-member-ticket-badge {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  margin: 1rem 0 0.5rem;
  background: var(--gmia-green-50, #f0f4f0);
  border-left: 3px solid var(--gmia-green-600, #3a5438);
  border-radius: var(--gmia-radius-sm, 4px);
  font-size: var(--gmia-text-sm, 0.875rem);
  color: var(--gmia-green-800, #2a3e28);
  line-height: 1.4;
}

.gmia-member-ticket-badge__icon {
  flex-shrink: 0;
  color: var(--gmia-green-600, #3a5438);
}

.gmia-member-ticket-gate {
  padding: 1.25rem 1.5rem;
  margin: 1rem 0 0.5rem;
  background: var(--gmia-neutral-50, #fafaf8);
  border: 1px solid var(--gmia-neutral-200, #e5e2dc);
  border-radius: var(--gmia-radius-md, 8px);
  text-align: center;
}

.gmia-member-ticket-gate__heading {
  font-size: var(--gmia-text-base, 1rem);
  font-weight: 600;
  color: var(--gmia-green-800, #2a3e28);
  margin: 0 0 0.5rem;
}

.gmia-member-ticket-gate__action {
  font-size: var(--gmia-text-sm, 0.875rem);
  color: var(--gmia-neutral-600, #6b6560);
  margin: 0;
}

.gmia-member-ticket-gate__action a {
  color: var(--gmia-green-600, #3a5438);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.gmia-member-ticket-gate__action a:hover {
  color: var(--gmia-green-800, #2a3e28);
}

.gmia-member-price {
  font-weight: 600;
  color: var(--gmia-green-600, #3a5438);
}

/* --- Event Tickets section (inside unified sidebar card) --- */
.gmia-event-sidebar .event-tickets {
  background: none;
  border-radius: 0;
  padding: 0;
  margin: 0;
  border: none;
}

.gmia-event-sidebar .tribe-tickets__tickets-title,
.tribe-common-h4.tribe-common-h--alt.tribe-tickets__tickets-title {
  font-family: Georgia, serif;
  font-size: 1.25rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--paletteColor1, #3a5438);
  margin: 0 0 1rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--paletteColor2, #c4941a);
}

.gmia-event-sidebar .tribe-tickets__tickets-form,
.entry .entry-content .event-tickets .tribe-tickets__tickets-form,
.event-tickets .tribe-tickets__tickets-form {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0 0 1rem 0;
}

/* Ticket item — stacked layout for sidebar */
.gmia-event-sidebar .tribe-tickets__tickets-item,
.event-tickets .tribe-tickets__tickets-item {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  align-items: start;
  gap: 0.5rem 1rem;
  padding: 0.75rem 0;
  border-bottom: none;
  border-top: none;
}

.gmia-event-sidebar .tribe-tickets__tickets-item:last-of-type {
  border-bottom: none;
}

/* Content (name + description) — left column */
.gmia-event-sidebar .tribe-tickets__tickets-item-content {
  grid-column: 1;
  grid-row: 1;
  align-self: start;
}

.event-tickets .tribe-tickets__tickets-item-content-title-container {
  align-self: start;
}

/* Ticket name */
.gmia-event-sidebar .tribe-tickets__tickets-item-content-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--gmia-neutral-800, #1c1b19);
  margin: 0;
}

/* Ticket description */
.gmia-event-sidebar .tribe-tickets__tickets-item-content-description {
  font-size: var(--gmia-text-caption);
  color: var(--gmia-neutral-500, #64615b);
  margin: 0.125rem 0 0;
}

.gmia-event-sidebar .tribe-tickets__tickets-item-details-content,
.tribe-common-b2.tribe-common-b3--min-medium.tribe-tickets__tickets-item-details-content {
  font-size: var(--tec-font-size-3);
  color: black;
  margin: 0.125rem 0 0;
}

.event-tickets .tribe-common-b2 {
  font-size: var(--tec-font-size-3);
}

@media (min-width: 768px) {
  .gmia-event-sidebar .event-tickets .tribe-common-b2,
  .tribe-events-single .event-tickets .tribe-common-b2 {
    font-size: var(--tec-font-size-3);
  }
}

/* Extra (price + availability) — right column, top row */
.gmia-event-sidebar .tribe-tickets__tickets-item-extra,
.event-tickets .tribe-tickets__tickets-item-extra {
  grid-column: 2;
  grid-row: 1;
  text-align: right;
  padding-right: 0;
  align-self: start;
}

/* Price */
.gmia-event-sidebar .tribe-tickets__tickets-item-extra-price {
  font-size: 1rem;
  font-weight: 700;
  color: var(--paletteColor1, #3a5438);
}

/* Availability */
.gmia-event-sidebar .tribe-tickets__tickets-item-extra-available {
  font-size: var(--gmia-text-caption);
  color: var(--gmia-neutral-500, #64615b);
  margin-top: 0.125rem;
}

/* Quantity controls — right column, bottom row */
.gmia-event-sidebar .tribe-tickets__tickets-item-quantity {
  grid-column: 2;
  grid-row: 2;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0;
}

.gmia-event-sidebar .tribe-tickets__tickets-item-quantity-remove,
.gmia-event-sidebar .tribe-tickets__tickets-item-quantity-add,
.gmia-event-sidebar button.tribe-tickets__tickets-item-quantity-remove,
.gmia-event-sidebar button.tribe-tickets__tickets-item-quantity-add {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--paletteColor1, #3a5438);
  background: var(--paletteColor1, #3a5438);
  color: var(--gmia-white, #fff);
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease;
}

.gmia-event-sidebar .tribe-tickets__tickets-item-quantity-remove {
  border-radius: var(--gmia-radius-sm) 0 0 var(--gmia-radius-sm);
}

.gmia-event-sidebar .tribe-tickets__tickets-item-quantity-add {
  border-radius: 0 var(--gmia-radius-sm) var(--gmia-radius-sm) 0;
}

.gmia-event-sidebar .tribe-tickets__tickets-item-quantity-remove:hover,
.gmia-event-sidebar .tribe-tickets__tickets-item-quantity-add:hover,
.gmia-event-sidebar button.tribe-tickets__tickets-item-quantity-remove:hover,
.gmia-event-sidebar button.tribe-tickets__tickets-item-quantity-add:hover {
  background: var(--paletteColor2, #c4941a);
  border-color: var(--paletteColor2, #c4941a);
  color: var(--gmia-white, #fff);
}

.gmia-event-sidebar .tribe-tickets__tickets-item-quantity-number input {
  width: 40px;
  height: 32px;
  text-align: center;
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  border-left: none;
  border-right: none;
  font-size: var(--gmia-text-secondary);
  font-weight: 600;
  color: var(--gmia-neutral-800, #1c1b19);
  -moz-appearance: textfield;
}

.gmia-event-sidebar
  .tribe-tickets__tickets-item-quantity-number
  input::-webkit-outer-spin-button,
.gmia-event-sidebar
  .tribe-tickets__tickets-item-quantity-number
  input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Footer (total + button) */
.gmia-event-sidebar .tribe-tickets__tickets-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-top: 1rem;
  margin-top: 0.25rem;
  border-top: 1px solid var(--gmia-neutral-100, #eae8e4);
}

/* Get Tickets button */
.gmia-event-sidebar .tribe-tickets__tickets-buy {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.625rem 1.25rem;
  border: none;
  border-radius: var(--gmia-radius-md);
  background: var(--paletteColor1, #3a5438);
  color: var(--gmia-white, #fff);
  font-size: var(--gmia-text-sm);
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.2s ease;
  width: 100%;
}

.gmia-event-sidebar .tribe-tickets__tickets-buy:hover,
.event-tickets .tribe-tickets__tickets-buy.tribe-common-c-btn:hover {
  background: var(--paletteColor2, #c4941a);
}

.gmia-event-sidebar .tribe-tickets__tickets-buy:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

#tribe-tickets__tickets-submit {
  width: 100%;
  margin: 1rem 0 0 0;
}

#tribe-tickets__tickets-buy {
  width: 100%;
  margin: 0;
}

/* --- Add to Calendar dropdown (inside Details card, after date/time) --- */
.gmia-event-sidebar .gmia-calendar-links {
  padding-top: 0.25rem;
  border-bottom: none;
}

.gmia-cal-dropdown {
  position: relative;
  margin-left: 1.5rem;
}

.gmia-cal-dropdown__toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  border-radius: var(--gmia-radius-md);
  font-size: var(--gmia-text-sm);
  font-weight: 600;
  cursor: pointer;
  border: 2px solid var(--paletteColor1, #3a5438);
  background: transparent;
  color: var(--paletteColor1, #3a5438);
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
  font-family: inherit;
  line-height: 1.4;
}

.gmia-cal-dropdown__toggle:hover {
  background: var(--paletteColor2, #c4941a);
  border-color: var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
}

.gmia-cal-dropdown__icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A5438'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11zM9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2z'/%3E%3C/svg%3E")
    no-repeat center / contain;
}

.gmia-cal-dropdown__arrow {
  width: 25px;
  height: 25px;
  flex-shrink: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%233A5438'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E")
    no-repeat center / contain;
  transition:
    transform 0.2s ease,
    background 0.2s ease;
}

.gmia-cal-dropdown__toggle:hover .gmia-cal-dropdown__icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11zM9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2z'/%3E%3C/svg%3E");
}

.gmia-cal-dropdown__toggle:hover .gmia-cal-dropdown__arrow {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
}

.gmia-cal-dropdown.is-open .gmia-cal-dropdown__arrow {
  transform: rotate(180deg);
}

.gmia-cal-dropdown__menu {
  display: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 200px;
  background: var(--gmia-white);
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  border-radius: var(--gmia-radius-md);
  padding: 0.25rem 0;
  z-index: 10;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.gmia-cal-dropdown.is-open .gmia-cal-dropdown__menu {
  display: block;
}

.gmia-cal-dropdown__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  font-size: var(--gmia-text-sm);
  font-weight: 500;
  color: var(--gmia-neutral-700, #302f2c);
  text-decoration: none;
  transition:
    background-color 0.15s ease,
    color 0.15s ease;
}

.gmia-cal-dropdown__item:hover {
  background: var(--gmia-green-50, #f3f9f2);
  color: var(--gmia-green-700, #3a5438);
}

.gmia-cal-dropdown__item-icon {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
}

.gmia-cal-dropdown__item-icon--gcal {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2364615B'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11zM9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2z'/%3E%3C/svg%3E")
    no-repeat center / contain;
}

.gmia-cal-dropdown__item-icon--ical {
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2364615B'%3E%3Cpath d='M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H6V4h2v4h8V4h2v16zm-5-8v5h-2v-5H8l4-4 4 4h-3z'/%3E%3C/svg%3E")
    no-repeat center / contain;
}

/* Hide TEC's default calendar links if they still render elsewhere */
.gmia-event-sidebar .tribe-events-cal-links {
  display: none;
}

/* --- Footer navigation --- */
.single-tribe_events #tribe-events-footer {
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--gmia-neutral-200, #d4d1cc);
}

.single-tribe_events #tribe-events-footer .tribe-events-sub-nav {
  display: flex;
  justify-content: space-between;
  list-style: none;
  padding: 0;
  margin: 0;
}

.single-tribe_events #tribe-events-footer .tribe-events-nav-previous a,
.single-tribe_events #tribe-events-footer .tribe-events-nav-next a {
  --theme-button-text-initial-color: var(
    --theme-button-background-initial-color
  );
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--theme-button-text-initial-color);
  font-weight: 600;
  font-size: var(--gmia-text-secondary);
  text-decoration: none;
  padding: 0.75rem 1.25rem;
  border-radius: var(--gmia-radius-md);
  border-width: 2px;
  border-style: solid;
  border-color: var(--theme-button-background-initial-color);
  background-color: rgba(0, 0, 0, 0);
  transition: all 0.2s ease;
}

.tribe-events-single .tribe-events-sub-nav .tribe-events-nav-previous a::before,
.tribe-events-single .tribe-events-sub-nav .tribe-events-nav-previous a::after,
.tribe-events-single .tribe-events-sub-nav .tribe-events-nav-next a::before,
.tribe-events-single .tribe-events-sub-nav .tribe-events-nav-next a::after,
.single-tribe_events #tribe-events-footer .tribe-events-nav-previous a span,
.single-tribe_events #tribe-events-footer .tribe-events-nav-next a span {
  color: var(--theme-button-background-initial-color);
}

.single-tribe_events #tribe-events-footer .tribe-events-nav-previous a:hover,
.single-tribe_events #tribe-events-footer .tribe-events-nav-next a:hover {
  background-color: var(--paletteColor2, #c4941a);
  border-color: var(--paletteColor2, #c4941a);
  color: var(--gmia-white, #fff);
}

.tribe-events-single
  .tribe-events-sub-nav
  .tribe-events-nav-previous
  a:hover::before,
.tribe-events-single
  .tribe-events-sub-nav
  .tribe-events-nav-previous
  a:hover::after,
.tribe-events-single
  .tribe-events-sub-nav
  .tribe-events-nav-next
  a:hover::before,
.tribe-events-single
  .tribe-events-sub-nav
  .tribe-events-nav-next
  a:hover::after,
.single-tribe_events
  #tribe-events-footer
  .tribe-events-nav-previous
  a:hover
  span,
.single-tribe_events #tribe-events-footer .tribe-events-nav-next a:hover span {
  color: var(--gmia-white, #fff);
}

/* --- Responsive: Tablet --- */
@media (max-width: 991px) {
  .gmia-event-layout {
    grid-template-columns: 1fr 300px;
    gap: 1.5rem 2rem;
  }
}

/* --- Responsive: Mobile --- */
@media (max-width: 689px) {
  .gmia-event-layout {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }

  .gmia-event-content .tribe-events-single-event-description {
    padding: 1.25rem;
  }

  .gmia-event-content-footer {
    flex-direction: column;
    align-items: flex-start;
    padding: 1.25rem;
  }

  .gmia-event-sidebar {
    position: static;
  }

  .gmia-event-sidebar-card {
    padding: 1.25rem;
  }

  .single-tribe_events #tribe-events-footer .tribe-events-sub-nav {
    flex-direction: column;
    gap: 0.75rem;
  }

  .single-tribe_events #tribe-events-footer .tribe-events-nav-previous a,
  .single-tribe_events #tribe-events-footer .tribe-events-nav-next a {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   Contact Form 7
   Integrates with Blocksy's form variable system. We override Blocksy's
   --theme-form-* and --theme-button-* custom properties on .wpcf7-form
   so Blocksy's own form rendering picks up GMIA green colors.
   ========================================================================== */
.wpcf7-form {
  --theme-form-field-border-initial-color: var(--gmia-neutral-200, #d4d1cc);
  --theme-form-field-border-focus-color: var(--gmia-green-700, #3a5438);
  --theme-button-background-initial-color: var(--gmia-green-700, #3a5438);
  --theme-button-background-hover-color: var(--gmia-green-600, #4a6b47);
  --theme-button-text-initial-color: var(--gmia-white);
  --theme-button-text-hover-color: var(--gmia-white);
}

.wpcf7-form p {
  margin-block-end: 0;
}

.wpcf7-form label {
  display: block;
  margin-bottom: 1.75rem;
  font-weight: 500;
}

.wpcf7-form .gmia-required {
  color: var(--gmia-color-required);
  font-weight: 600;
  margin-left: 0.15em;
}

.wpcf7-form .gmia-optional {
  color: var(--gmia-color-muted);
  font-size: var(--gmia-text-sm);
  font-weight: 300;
  margin-left: 0.25em;
  opacity: 0.75;
}

.wpcf7-form .gmia-required-note {
  color: var(--gmia-color-required);
  font-size: var(--gmia-text-sm);
  margin-bottom: 0.5rem;
}

.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form select,
.wpcf7-form textarea {
  width: 100%;
  margin-top: 0.125rem;
  padding: 0.75rem 1rem;
  background-color: var(--gmia-neutral-50, #f7f6f3);
  border: 1px solid var(--theme-form-field-border-initial-color);
  border-radius: var(--gmia-radius-md);
  font-size: var(--gmia-text-body);
  font-weight: 400;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background-color 0.2s ease;
}

.wpcf7-form input[type="text"]:focus-visible,
.wpcf7-form input[type="email"]:focus-visible,
.wpcf7-form input[type="tel"]:focus-visible,
.wpcf7-form select:focus-visible,
.wpcf7-form textarea:focus-visible {
  border-color: var(--theme-form-field-border-focus-color);
  background-color: var(--gmia-white);
  outline: 2px solid transparent; /* Preserves outline in Windows High Contrast mode */
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.05),
    0 0 0 1px var(--theme-form-field-border-focus-color),
    0 0 0 4px rgba(58, 84, 56, 0.1);
}

.wpcf7-form textarea {
  min-height: 160px;
}

.wpcf7-form .wpcf7-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  padding: 0.875rem 2.5rem;
  background: linear-gradient(
    to bottom,
    var(--gmia-green-600, #4a6b47),
    var(--gmia-green-700, #3a5438)
  );
  color: var(--theme-button-text-initial-color);
  border: none;
  border-radius: var(--gmia-radius-md);
  font-size: var(--gmia-text-body);
  font-weight: 600;
  letter-spacing: 0.025em;
  cursor: pointer;
  transition:
    background 0.25s ease,
    transform 0.15s ease,
    opacity 0.2s ease;
}

.wpcf7-form .wpcf7-submit::after {
  content: "\2192";
  margin-left: 0.15em;
  font-size: 1.15em;
  transition: transform 0.2s ease;
}

.wpcf7-form .wpcf7-submit:hover {
  background: linear-gradient(
    to bottom,
    var(--gmia-green-500, #5f8a5b),
    var(--gmia-green-600, #4a6b47)
  );
  color: var(--theme-button-text-hover-color);
  transform: translateY(-1px);
}

.wpcf7-form .wpcf7-submit:hover::after {
  transform: translateX(3px);
}

/* Hide arrow during submit — spinner takes over */
.wpcf7-form.submitting .wpcf7-submit::after {
  display: none;
}

/* Hide CF7's default spinner dot — we show our own inside the button */
.wpcf7-form .wpcf7-spinner {
  display: none;
}

/* Submitting state: JS swaps <input> for <button> and injects .gmia-spinner */
.wpcf7-form.submitting .wpcf7-submit {
  opacity: 0.85;
  cursor: wait;
  pointer-events: none;
}

.gmia-spinner {
  display: inline-block;
  width: 1em;
  height: 1em;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: var(--gmia-white);
  border-radius: 50%;
  animation: gmia-spin 0.6s linear infinite;
  vertical-align: -0.125em;
}

@keyframes gmia-spin {
  to {
    transform: rotate(360deg);
  }
}

/* --- Validation: Invalid fields --- */
.wpcf7-form input[type="text"].wpcf7-not-valid,
.wpcf7-form input[type="email"].wpcf7-not-valid,
.wpcf7-form input[type="tel"].wpcf7-not-valid,
.wpcf7-form select.wpcf7-not-valid,
.wpcf7-form textarea.wpcf7-not-valid {
  border-color: var(--gmia-color-error);
  box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.1);
}

.wpcf7-form input[type="text"].wpcf7-not-valid:focus,
.wpcf7-form input[type="email"].wpcf7-not-valid:focus,
.wpcf7-form input[type="tel"].wpcf7-not-valid:focus,
.wpcf7-form select.wpcf7-not-valid:focus,
.wpcf7-form textarea.wpcf7-not-valid:focus {
  border-color: var(--gmia-color-error);
  outline: none;
  box-shadow: 0 0 0 4px rgba(192, 57, 43, 0.12);
}

.wpcf7-form .wpcf7-not-valid-tip {
  display: flex;
  align-items: center;
  gap: 0.4em;
  color: var(--gmia-color-error);
  font-size: var(--gmia-text-sm);
  font-weight: 600;
  font-style: normal;
  margin-top: 0.375rem;
  line-height: 1.4;
}

.wpcf7-form .wpcf7-not-valid-tip::before {
  content: "";
  flex-shrink: 0;
  width: 1.1em;
  height: 1.1em;
  background-color: var(--gmia-color-error);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E")
    center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3E%3C/svg%3E")
    center/contain no-repeat;
}

/* Recipient banner — shown via PHP shortcode when arriving from a board member card link */
.gmia-contact-recipient-banner {
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  background-color: var(--gmia-green-50, #f3f9f2);
  border-left: 4px solid var(--gmia-green-700, #3a5438);
  border-radius: var(--gmia-radius-sm);
  font-size: var(--gmia-text-body);
  line-height: 1.5;
}

.gmia-contact-recipient-banner__name {
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
}

.gmia-contact-recipient-banner__role {
  color: var(--paletteColor5, #64615b);
}

/* ==========================================================================
   Award Introduction — Al Platt Community Service Award
   Split-layout feature section with hero (60/40), value props row, and
   CTA bridge. Sits above the nomination form on the award page.
   Used by: gmia/award-intro pattern
   ========================================================================== */

/* --- Full-page cream background on award pages ---
   Uses :has() to detect the pattern and apply cream to the entire page.
   The subpage header keeps its dark overlay; everything below is cream. */
body:has(.gmia-award-intro) {
  background-color: var(--gmia-gold-50, #fcf7e8);
}

/* --- Wrapper: no card background (page is already cream) --- */
.gmia-award-intro {
  padding: 3.5rem 0 2.5rem;
  margin-bottom: 2rem;
}

/* Close the gap between the subpage header and the award intro.
   The subpage header has margin-bottom: 2rem and Gutenberg adds block gap. */
.gmia-subpage-header + .gmia-award-intro {
  margin-top: -2rem;
  margin-bottom: 0;
}

/* Hide the label + title when a subpage header already shows the page name.
   On pages without a subpage header the title remains visible. */
.gmia-subpage-header + .gmia-award-intro .gmia-award-intro__label,
.gmia-subpage-header + .gmia-award-intro .gmia-award-intro__title {
  display: none;
}

/* --- Hero: two-column split --- */
.gmia-award-intro__hero {
  margin-bottom: 2.5rem;
}

/* --- Label above the title --- */
.gmia-award-intro__label {
  color: var(--gmia-gold-600, #a87818);
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 0.5rem;
}

/* --- Title: serif font for prestige --- */
.gmia-award-intro__title {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  line-height: 1.15;
  margin-top: 0;
  margin-bottom: 1.25rem;
}

/* --- Body text --- */
.gmia-award-intro__text {
  font-size: var(--gmia-text-body);
  line-height: 1.7;
  color: var(--gmia-neutral-600, #474541);
  margin-bottom: 1rem;
}

/* --- Right column: decorative trophy frame --- */
.gmia-award-intro__frame {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 2.5rem 1.5rem;
  background: var(--gmia-white);
  border-radius: var(--gmia-radius-lg);
  border: 2px solid var(--gmia-gold-200, #f0dda0);
  box-shadow: var(--gmia-shadow-card);
}

.gmia-award-intro__icon-wrap {
  width: 100px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(
    135deg,
    var(--gmia-gold-100, #f7edcc),
    var(--gmia-gold-200, #f0dda0)
  );
  border-radius: var(--gmia-radius-full);
  margin-bottom: 1.25rem;
}

.gmia-award-intro__icon-wrap i {
  font-size: 2.5rem;
  color: var(--gmia-gold-600, #a87818);
}

.gmia-award-intro__frame-label {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: var(--gmia-text-sm);
  font-weight: 600;
  color: var(--gmia-green-700, #3a5438);
  letter-spacing: 0.5px;
  line-height: 1.4;
  margin: 0;
}

/* --- Value Props Row --- */
.gmia-award-intro__props {
  margin-bottom: 2rem;
}

.gmia-award-intro__prop {
  text-align: center;
  padding: 1.25rem 1rem;
}

.gmia-award-intro__prop-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin: 0 auto 0.75rem;
  background: var(--gmia-white);
  border-radius: var(--gmia-radius-full);
  border: 2px solid var(--gmia-gold-300, #e3c76a);
}

.gmia-award-intro__prop-icon i {
  font-size: 1.25rem;
  color: var(--gmia-gold-500, #c4941a);
}

.gmia-award-intro__prop-title {
  font-size: var(--gmia-text-lg);
  font-weight: 600;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 0.4rem;
}

.gmia-award-intro__prop-desc {
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-500, #64615b);
  line-height: 1.5;
  margin: 0;
}

/* --- CTA Bridge Heading --- */
.gmia-award-intro__bridge {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: var(--gmia-heading-compact);
  font-weight: 600;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0.5rem;
  margin-bottom: 0;
  padding-bottom: 0;
}

/* --- Responsive: stack on mobile --- */
@media (max-width: 782px) {
  .gmia-award-intro {
    padding: 2.5rem 1.25rem 2rem;
  }

  .gmia-award-intro__hero .wp-block-columns {
    flex-direction: column;
  }

  .gmia-award-intro__hero .wp-block-column {
    flex-basis: 100%;
  }

  .gmia-award-intro__visual-col {
    margin-top: 2rem;
  }

  .gmia-award-intro__frame {
    max-width: 280px;
    margin: 0 auto;
  }

  .gmia-award-intro__props .wp-block-columns {
    flex-direction: column;
  }

  .gmia-award-intro__prop {
    padding: 1rem 0;
  }
}

/* ==========================================================================
   Award Introduction — Curb Appeal Modifier
   Overrides gold accents with botanical greens. Replaces the trophy frame
   with a polaroid-style image placeholder. Applied via --curb-appeal class.
   Used by: gmia/curb-appeal-intro pattern
   ========================================================================== */

/* Page-level cream — slightly warmer/neutral than the gold-50 variant */
body:has(.gmia-award-intro--curb-appeal) {
  background-color: var(--gmia-cream);
}

/* Label — deep sage instead of gold */
.gmia-award-intro--curb-appeal .gmia-award-intro__label {
  color: var(--gmia-green-600, #4a6b47);
}

/* --- Polaroid-style image frame --- */
.gmia-award-intro__polaroid {
  background: var(--gmia-white);
  padding: 0.75rem 0.75rem 1.25rem;
  border-radius: var(--gmia-radius-sm);
  box-shadow:
    0 20px 40px rgba(0, 0, 0, 0.03),
    0 4px 12px rgba(0, 0, 0, 0.06);
  transform: rotate(1.5deg);
}

.gmia-award-intro__polaroid-image {
  margin: 0;
}

.gmia-award-intro__polaroid-image img {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: var(--gmia-radius-sm);
  display: block;
  width: 100%;
  height: auto;
}

/* Placeholder when no image is set */
.gmia-award-intro__polaroid-image:not(:has(img[src]:not([src=""]))) {
  aspect-ratio: 4 / 3;
  background: linear-gradient(
    160deg,
    var(--gmia-green-100, #e2f0e1),
    var(--gmia-green-200, #c8e2c6)
  );
  border-radius: var(--gmia-radius-sm);
}

.gmia-award-intro__polaroid-caption {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-500, #64615b);
  text-align: center;
  margin: 0.75rem 0 0;
  line-height: 1.4;
}

.gmia-award-intro__polaroid-caption em {
  color: var(--gmia-green-700, #3a5438);
}

/* --- Value prop icons — green instead of gold --- */
.gmia-award-intro--curb-appeal .gmia-award-intro__prop-icon {
  border-color: var(--gmia-green-300, #a3cca0);
}

.gmia-award-intro--curb-appeal .gmia-award-intro__prop-icon i {
  color: var(--gmia-green-600, #4a6b47);
}

/* --- Form cards — soft botanical shadow --- */
.gmia-award-intro--curb-appeal
  + .wp-block-columns:has(.wpcf7)
  > .wp-block-column {
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.03);
}

/* --- Responsive: constrain polaroid on mobile --- */
@media (max-width: 782px) {
  .gmia-award-intro__polaroid {
    max-width: 260px;
    margin: 0 auto;
    transform: rotate(0deg);
  }
}

/* ==========================================================================
   Awards Hub — Dual-Card Landing Page
   Heritage intro ("The Why") followed by dual nomination cards ("The How")
   for the Al Platt and Curb Appeal awards.
   Used by: gmia/awards-hub pattern
   ========================================================================== */

/* Page-level cream background */
body:has(.gmia-awards-hub) {
  background-color: var(--gmia-cream);
}

/* --- Header section --- */
.gmia-awards-hub {
  padding: 3rem 0 2rem;
}

.gmia-awards-hub__label {
  color: var(--gmia-green-600, #4a6b47);
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 0.5rem;
}

.gmia-awards-hub__heading {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 0.75rem;
}

.gmia-awards-hub__subtitle {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-500, #64615b);
  max-width: 560px;
  margin: 0 auto 2.5rem;
  line-height: 1.6;
}

/* --- Dual-card container --- */
.gmia-awards-hub__cards {
  position: relative;
  gap: 2rem;
  align-items: stretch;
}

/* --- Individual cards --- */
.gmia-awards-hub__card {
  background: var(--gmia-white);
  border-radius: 12px;
  padding: 2.5rem 2rem;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.03);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.gmia-awards-hub__card:hover {
  transform: scale(1.02);
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.07);
}

/* --- Card icons --- */
.gmia-awards-hub__card-icon {
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--gmia-radius-full);
  margin-bottom: 1.25rem;
}

.gmia-awards-hub__card-icon i {
  font-size: 2rem;
}

/* Al Platt icon — gold gradient */
.gmia-awards-hub__card-icon--platt {
  background: linear-gradient(
    135deg,
    var(--gmia-gold-100, #f7edcc),
    var(--gmia-gold-200, #f0dda0)
  );
}

.gmia-awards-hub__card-icon--platt i {
  color: var(--gmia-gold-600, #a87818);
}

/* Curb Appeal icon — green gradient */
.gmia-awards-hub__card-icon--curb {
  background: linear-gradient(
    135deg,
    var(--gmia-green-100, #e2f0e1),
    var(--gmia-green-200, #c8e2c6)
  );
}

.gmia-awards-hub__card-icon--curb i {
  color: var(--gmia-green-600, #4a6b47);
}

/* --- Card label --- */
.gmia-awards-hub__card-label {
  font-size: var(--gmia-text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 0.4rem;
}

.gmia-awards-hub__card--platt .gmia-awards-hub__card-label {
  color: var(--gmia-gold-600, #a87818);
}

.gmia-awards-hub__card--curb .gmia-awards-hub__card-label {
  color: var(--gmia-green-600, #4a6b47);
}

/* --- Card title --- */
.gmia-awards-hub__card-title {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: var(--gmia-heading-sub);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 0.75rem;
}

/* --- Card description --- */
.gmia-awards-hub__card-text {
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-500, #64615b);
  line-height: 1.6;
  margin-bottom: 1.5rem;
  flex-grow: 1;
}

/* --- CTA Buttons --- */
.gmia-awards-hub__card-cta {
  margin-top: auto;
}

/* Al Platt button — mirrors .gmia-btn.gmia-btn--primary (--md size) */
.gmia-awards-hub__btn--platt .wp-block-button__link {
  background: var(--paletteColor2, #c4941a);
  border: 1px solid var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-md);
  padding: 0.6rem 1.5rem;
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.gmia-awards-hub__btn--platt .wp-block-button__link:hover,
.gmia-awards-hub__btn--platt .wp-block-button__link:focus-visible {
  background: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

/* Curb Appeal button — mirrors .gmia-btn.gmia-btn--secondary (--md size) */
.gmia-awards-hub__btn--curb .wp-block-button__link {
  background: var(--paletteColor1, #3a5438);
  border: 1px solid var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-md);
  padding: 0.6rem 1.5rem;
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.gmia-awards-hub__btn--curb .wp-block-button__link:hover,
.gmia-awards-hub__btn--curb .wp-block-button__link:focus-visible {
  background: var(--gmia-green-600, #4a6b47);
  border-color: var(--gmia-green-600, #4a6b47);
  color: var(--paletteColor8, #fff);
}

/* --- "Why We Honor" section --- */
.gmia-awards-hub__why {
  margin-top: 3.5rem;
  padding-top: 2.5rem;
}

.gmia-awards-hub__why-heading {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: var(--gmia-heading-compact);
  font-weight: 600;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 2rem;
}

.gmia-awards-hub__why-prop {
  text-align: center;
  padding: 1rem;
}

.gmia-awards-hub__why-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 0.75rem;
  background: var(--gmia-white);
  border: 2px solid var(--gmia-neutral-200, #d4d1cc);
  border-radius: var(--gmia-radius-full);
}

.gmia-awards-hub__why-icon i {
  font-size: 1.15rem;
  color: var(--gmia-green-600, #4a6b47);
}

.gmia-awards-hub__why-title {
  font-size: var(--gmia-text-lg);
  font-weight: 600;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 0.4rem;
}

.gmia-awards-hub__why-desc {
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-500, #64615b);
  line-height: 1.5;
  margin: 0;
}

/* --- Responsive: stack cards on mobile --- */
@media (max-width: 782px) {
  .gmia-awards-hub__cards {
    flex-direction: column;
    gap: 1.5rem;
  }

  .gmia-awards-hub__card {
    flex-basis: 100%;
  }

  .gmia-awards-hub__why-props {
    flex-direction: column;
  }

  .gmia-awards-hub__why-prop {
    padding: 0.75rem 0;
  }
}

/* Hide label + title when subpage header is present */
.gmia-subpage-header + .gmia-awards-hub .gmia-awards-hub__label,
.gmia-subpage-header + .gmia-awards-hub .gmia-awards-hub__heading {
  display: none;
}

.gmia-subpage-header + .gmia-awards-hub {
  margin-top: -2rem;
}

/* --- Award page: single-column form layout ---
   Overrides the default 2-column contact page layout.
   Form is the primary focus (full-width card), mail info stacks below. */
.gmia-award-intro + .wp-block-columns:has(.wpcf7) {
  flex-direction: column;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  gap: 2.5rem;
  padding-bottom: 1.25rem;
}

.gmia-award-intro + .wp-block-columns:has(.wpcf7) > .wp-block-column {
  flex-basis: 100%;
  width: 100%;
}

/* Mail section below the form — same width as the form card above */
.gmia-award-intro
  + .wp-block-columns:has(.wpcf7)
  > .wp-block-column:last-child {
  text-align: center;
}

/* ==========================================================================
   Contact Page — Form + Sidebar Card Layout
   When a WP Columns block wraps a CF7 form, the left column becomes a white
   card and the right column (e.g. "Contact by Mail") becomes a neutral well.
   ========================================================================== */
.wp-block-columns:has(.wpcf7) {
  gap: 2.5rem;
  align-items: start;
}

/* Form column — white card */
.wp-block-columns:has(.wpcf7) > .wp-block-column:first-child {
  background: var(--gmia-white);
  padding: 2.5rem;
  border-radius: var(--gmia-radius-lg);
  border: 1px solid rgba(0, 0, 0, 0.04);
}

/* Sidebar column — warm neutral well, sized to content */
.wp-block-columns:has(.wpcf7) > .wp-block-column:last-child {
  align-self: start;
  background: var(--gmia-white);
  padding: 2rem;
  border-radius: var(--gmia-radius-lg);
}

/* Headings inside the sidebar well — envelope icon via Font Awesome */
.wp-block-columns:has(.wpcf7) > .wp-block-column:last-child :is(h2, h3, h4) {
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
}

.wp-block-columns:has(.wpcf7)
  > .wp-block-column:last-child
  :is(h2, h3, h4)::before {
  content: "\f0e0";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  margin-right: 0.5em;
  font-size: 0.85em;
  color: var(--gmia-gold-500, #c4941a);
}

/* --- Mobile: full-width button, adjust card padding --- */
@media (max-width: 689px) {
  .wpcf7-form .wpcf7-submit {
    width: 100%;
  }

  .wp-block-columns:has(.wpcf7) > .wp-block-column:first-child {
    padding: 1.5rem;
  }

  .wp-block-columns:has(.wpcf7) > .wp-block-column:last-child {
    padding: 1.5rem;
  }
}

/* Space between checkout/cart content and the footer.
   Blocksy controls vertical spacing via `data-vertical-spacing` on a parent wrapper,
   so padding on inner elements gets absorbed. Target the Blocksy cart/checkout grid
   wrapper directly with margin-bottom to push the footer down. */
.ct-woocommerce-cart-form,
.ct-woocommerce-checkout {
  margin-bottom: 4rem;
}

/* Same Blocksy vertical-spacing quirk on the shop archive: the product
   loop sits directly against the footer with no gap. */
.woocommerce ul.products {
  margin-bottom: 4rem;
}

/* Square up product images in the shop grid. WooCommerce/Blocksy set an
   inline `aspect-ratio: 4/3` directly on the <img> (stale from a previous
   image-cropping setting), which a stylesheet can't override without
   !important. Setting aspect-ratio on the container instead, plus explicit
   width/height on the image, sidesteps that: an explicit height takes
   precedence over the inline aspect-ratio's influence on sizing. */
.woocommerce ul.products li.product .ct-media-container {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.woocommerce ul.products li.product .ct-media-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Same fix for the single-product gallery image (inline aspect-ratio: 3/4 there). */
.woocommerce-product-gallery .ct-media-container {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}

.woocommerce-product-gallery .ct-media-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Blocksy hardcodes label { font-size: 15px } in the parent theme.
   Bump form labels to body-text size for better readability. */
label {
  font-size: var(--gmia-text-body);
}

/* Cart product table — white card, pinned to top of grid cell */
.woocommerce-cart .woocommerce-cart-form {
  align-self: start;
  background: var(--gmia-white);
  padding: 1.5rem;
  border-radius: var(--gmia-radius-lg);
  border: 1px solid rgba(0, 0, 0, 0.04);
}

.woocommerce-cart .woocommerce-cart-form .shop_table thead th {
  padding-top: 0;
  font-size: var(--gmia-text-body);
  font-weight: 700;
}

/* Cart totals panel — override Blocksy's `--cart-totals-border` variable */
.woocommerce-cart .ct-woocommerce-cart-form .cart_totals {
  --cart-totals-border: none;
  background: var(--gmia-white);
  border: none;
  border-radius: var(--gmia-radius-lg);
  padding: 1.5rem;
}

/* "Cart totals" heading — match the table header font (body/sans-serif, not serif headings).
   Blocksy hardcodes `font-size: 15px` in `.ct-woocommerce-cart-form .cart_totals h2`. */
.woocommerce-cart .ct-woocommerce-cart-form .cart_totals h2 {
  margin-top: 9px;
  font-family: inherit;
  font-size: var(--gmia-text-body);
  font-weight: 700;
  text-transform: none;
  letter-spacing: normal;
}

@media (max-width: 689px) {
  .woocommerce-cart .woocommerce-cart-form {
    padding: 1.5rem;
  }
}

/* ==========================================================================
   Multi-Step Checkout — Single-Column Layout
   Overrides Blocksy's 2-column grid. All content flows in one column.
   JS creates .gmia-step containers and toggles .gmia-step--active.
   ========================================================================== */

/* Single-column override */
.ct-woocommerce-checkout {
  grid-template-columns: minmax(0, 1fr);
  max-width: 640px;
  margin-inline: auto;
}

/* No-JS fallback: white card on the whole form when multi-step isn't active */
.ct-woocommerce-checkout:not(.gmia-multistep-active) {
  background: var(--gmia-white);
  padding: 2.5rem;
  border-radius: var(--gmia-radius-lg);
  border: 1px solid rgba(0, 0, 0, 0.04);
}

/* Force full-width fields */
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
  width: 100%;
  float: none;
}

/* ---------- Checkout Form Fields (match Contact Form styling) ---------- */

.woocommerce-checkout .form-row label {
  font-weight: 500;
}

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row select,
.woocommerce-checkout .form-row textarea {
  background-color: var(--gmia-neutral-50, #f7f6f3);
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  border-radius: var(--gmia-radius-md);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background-color 0.2s ease;
}

.woocommerce-checkout .form-row input.input-text:focus-visible,
.woocommerce-checkout .form-row select:focus-visible,
.woocommerce-checkout .form-row textarea:focus-visible {
  border-color: var(--gmia-green-700, #3a5438);
  background-color: var(--gmia-white);
  outline: 2px solid transparent;
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.05),
    0 0 0 1px var(--gmia-green-700, #3a5438),
    0 0 0 4px rgba(58, 84, 56, 0.1);
}

/* Validation error state */
.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid select {
  border-color: var(--gmia-color-error);
  box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.1);
}

/* Place Order button — match CF7 submit gradient + arrow */
.woocommerce-checkout #place_order {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5em;
  padding: 0.875rem 2.5rem;
  background: linear-gradient(
    to bottom,
    var(--gmia-green-600, #4a6b47),
    var(--gmia-green-700, #3a5438)
  );
  color: var(--gmia-white);
  border: none;
  border-radius: var(--gmia-radius-md);
  font-size: var(--gmia-text-body);
  font-weight: 600;
  letter-spacing: 0.025em;
  cursor: pointer;
  transition:
    background 0.25s ease,
    transform 0.15s ease;
}

.woocommerce-checkout #place_order::after {
  content: "\2192";
  margin-left: 0.15em;
  font-size: 1.15em;
  transition: transform 0.2s ease;
}

.woocommerce-checkout #place_order:hover {
  background: linear-gradient(
    to bottom,
    var(--gmia-green-500, #5f8a5b),
    var(--gmia-green-600, #4a6b47)
  );
  transform: translateY(-1px);
}

.woocommerce-checkout #place_order:hover::after {
  transform: translateX(3px);
}

/* Hide Place Order button when PayPal smart buttons are active */
.woocommerce-checkout:has(.ppc-button-wrapper) #place_order {
  display: none;
}

/* ---------- Progress Indicator ---------- */

.gmia-checkout-progress {
  max-width: 640px;
  margin: 0 auto 2rem;
}

.gmia-checkout-steps {
  display: flex;
  justify-content: space-between;
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}

/* Connecting line between step circles */
.gmia-checkout-steps::before {
  content: "";
  position: absolute;
  top: 18px;
  left: 18px;
  right: 18px;
  height: 2px;
  background: var(--paletteColor6, #d4d1cc);
  z-index: 0;
}

.gmia-checkout-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  z-index: 1;
  flex: 1;
}

.gmia-checkout-step__number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--gmia-radius-full);
  background: var(--paletteColor6, #d4d1cc);
  color: var(--paletteColor5, #64615b);
  font-weight: 600;
  font-size: var(--gmia-text-secondary);
  margin-bottom: 0.5rem;
  transition:
    background-color 0.3s ease,
    color 0.3s ease;
}

.gmia-checkout-step__label {
  font-size: var(--gmia-text-sm);
  color: var(--paletteColor5, #64615b);
  transition: color 0.3s ease;
}

/* Active step */
.gmia-checkout-step--active .gmia-checkout-step__number {
  background: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

.gmia-checkout-step--active .gmia-checkout-step__label {
  color: var(--paletteColor1, #3a5438);
  font-weight: 600;
}

/* Completed step */
.gmia-checkout-step--completed .gmia-checkout-step__number {
  background: var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
}

.gmia-checkout-step--completed .gmia-checkout-step__label {
  color: var(--paletteColor4, #302f2c);
}

/* ---------- Step Visibility ---------- */

.gmia-multistep-active .gmia-step {
  display: none;
}

.gmia-multistep-active .gmia-step--active {
  display: block;
  width: 100%;
}

/* White card wrapper for steps 1-3 (Step 0 has its own .gmia-account-card) */
.gmia-step[data-step="1"],
.gmia-step[data-step="2"],
.gmia-step[data-step="3"] {
  background: var(--gmia-white);
  padding: 2.5rem;
  border-radius: var(--gmia-radius-lg);
  border: 1px solid rgba(0, 0, 0, 0.04);
}

/* Remove redundant inner white background on payment step */
.gmia-step[data-step="3"] #payment {
  background: transparent;
  padding: 0;
  border-radius: 0;
}

/* Step 2 inner panels — matching bordered cards */
.gmia-step[data-step="2"] .gmia-billing-summary,
.gmia-step[data-step="2"] .ct-order-review {
  background: transparent;
  border: 1px solid var(--paletteColor6, #d4d1cc);
  border-radius: var(--gmia-radius-md);
  padding: 1.5rem;
}

/* Remove the default table border so the container border is the only one */
.gmia-step[data-step="2"] .ct-order-review .shop_table {
  border: none;
}

/* ---------- Step Navigation Buttons ---------- */

.gmia-step-next {
  width: 100%;
  margin-top: 1.5rem;
  background: linear-gradient(
    to bottom,
    var(--gmia-green-600, #4a6b47),
    var(--gmia-green-700, #3a5438)
  );
  color: var(--gmia-white);
  border: none;
  border-radius: var(--gmia-radius-md);
  font-weight: 600;
  letter-spacing: 0.025em;
  transition:
    background 0.25s ease,
    transform 0.15s ease;
}

.gmia-step-next:hover {
  background: linear-gradient(
    to bottom,
    var(--gmia-green-500, #5f8a5b),
    var(--gmia-green-600, #4a6b47)
  );
  transform: translateY(-1px);
}

.gmia-step-prev {
  margin-top: 1.5rem;
  background: transparent;
  color: var(--paletteColor1, #3a5438);
  border: 1px solid var(--paletteColor1, #3a5438);
  border-radius: var(--gmia-radius-md);
}

.gmia-step-prev:hover {
  background: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

.gmia-step-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 1.5rem;
  gap: 1rem;
}

.gmia-step-nav .gmia-step-next {
  width: auto;
  flex: 1;
  margin-top: 0;
}

.gmia-step-nav .gmia-step-prev {
  margin-top: 0;
}

/* ---------- Billing Summary (Review Step) ---------- */

.gmia-billing-summary {
  background: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-lg);
  padding: 1.5rem;
  margin-bottom: 1.25rem;
}

.gmia-billing-summary h3 {
  margin: 0 0 1rem;
  font-size: var(--gmia-text-body);
  font-weight: 600;
}

.gmia-billing-summary__list {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 1rem;
  margin: 0;
}

.gmia-billing-summary__list dt {
  font-weight: 600;
  color: var(--paletteColor5, #64615b);
  font-size: var(--gmia-text-sm);
}

.gmia-billing-summary__list dd {
  margin: 0;
  font-size: var(--gmia-text-secondary);
}

.gmia-edit-details {
  margin-top: 1rem;
  font-size: var(--gmia-text-sm);
  background: transparent;
  border: none;
  color: var(--paletteColor1, #3a5438);
  text-decoration: underline;
  cursor: pointer;
  padding: 0;
}

.gmia-edit-details:hover {
  color: var(--paletteColor2, #c4941a);
}

/* ---------- Order Review Panel (Step 2) ---------- */

.ct-order-review {
  background: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-lg);
}

.ct-order-review .shop_table tfoot th {
  text-align: right;
  padding-right: 1rem;
}

/* Bold the total price for emphasis */
.ct-order-review .shop_table tfoot .order-total td {
  font-weight: 700;
  font-size: var(--gmia-text-body);
}

/* ---------- Payment Step (Step 3) ---------- */

.gmia-step-header {
  margin-bottom: 1.25rem;
}

.gmia-step-back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  background: none;
  border: none;
  padding: 0;
  margin-bottom: 0.5rem;
  font-size: var(--gmia-text-sm);
  color: var(--paletteColor5, #64615b);
  cursor: pointer;
  text-decoration: none;
}

.gmia-step-back-link::before {
  content: "\2190";
  font-size: 1em;
}

.gmia-step-back-link:hover {
  color: var(--gmia-white, #fff);
}

.gmia-step[data-step="3"] .gmia-step-header {
  margin-top: 0;
}

.gmia-payment-heading {
  margin: 0;
  font-size: var(--gmia-heading-sub);
}

.gmia-step[data-step="3"] #payment {
  background: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-lg);
  padding: 1.5rem;
}

/* Payment method labels — consistent styling for radio options */
.gmia-step[data-step="3"] .wc_payment_methods .wc_payment_method label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 500;
  cursor: pointer;
}

/* Payment method description boxes */
.gmia-step[data-step="3"] .wc_payment_methods .payment_box {
  padding: 1rem;
  margin: 0.5rem 0 1rem;
}

/* Separator between payment methods */
.gmia-step[data-step="3"] .wc_payment_methods .wc_payment_method {
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--paletteColor6, #d4d1cc);
}

.gmia-step[data-step="3"] .wc_payment_methods .wc_payment_method:last-child {
  border-bottom: none;
}

/* ---------- 501(c)(4) Tax Disclaimer ---------- */

.gmia-tax-notice {
  margin: 1rem 0;
  padding: 0.625rem 1rem;
  background: var(--paletteColor8, #ffffff);
  border: 1px solid var(--gmia-neutral-200, #d6d3ce);
  border-radius: var(--gmia-radius-sm);
  font-size: var(--gmia-text-xs);
  line-height: 1.5;
  color: var(--gmia-neutral-600, #64615b);
  text-align: center;
}

.gmia-tax-notice p {
  margin: 0;
}

.gmia-donate-form .gmia-tax-notice,
.gmia-membership-cards + .gmia-tax-notice {
  margin-top: 1.25rem;
}

tfoot .gmia-tax-notice {
  text-align: left;
}

tfoot .gmia-tax-notice-row > td {
  padding: 0;
  border: none;
}

/* ==========================================================================
   Step 0: Account Check (Guest Checkout Flow)
   Shown when user is not logged in. Contains email entry, login,
   and account creation states.
   ========================================================================== */

.gmia-step-account {
  max-width: 640px;
  margin-inline: auto;
}

.gmia-account-card {
  background: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-lg);
  padding: 2rem;
}

.gmia-account-card__heading {
  margin: 0 0 1.5rem;
  font-size: var(--gmia-heading-sub);
  color: var(--paletteColor4, #302f2c);
}

.gmia-account-card__subheading {
  margin: 0 0 0.5rem;
  font-size: var(--gmia-text-xl);
  color: var(--paletteColor4, #302f2c);
}

/* ---------- Account Field Group ---------- */

.gmia-account-field-group {
  margin-bottom: 1.25rem;
}

.gmia-account-label {
  display: block;
  margin-bottom: 0.375rem;
  font-size: var(--gmia-text-sm);
  font-weight: 600;
  color: var(--paletteColor4, #302f2c);
}

.gmia-account-input {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: var(--gmia-text-secondary);
  background-color: var(--gmia-neutral-50, #f7f6f3);
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  border-radius: var(--gmia-radius-md);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background-color 0.2s ease;
}

.gmia-account-input:focus-visible {
  border-color: var(--gmia-green-700, #3a5438);
  background-color: var(--gmia-white);
  outline: 2px solid transparent;
  box-shadow:
    inset 0 1px 2px rgba(0, 0, 0, 0.05),
    0 0 0 1px var(--gmia-green-700, #3a5438),
    0 0 0 4px rgba(58, 84, 56, 0.1);
}

.gmia-account-field-hint {
  display: block;
  margin-top: 0.25rem;
  font-size: var(--gmia-text-xs);
  color: var(--paletteColor5, #64615b);
}

/* ---------- Account Buttons ---------- */

.gmia-account-btn {
  width: 100%;
  margin-top: 0.5rem;
  padding: 0.75rem 1.5rem;
  font-size: var(--gmia-text-secondary);
  background: linear-gradient(
    to bottom,
    var(--gmia-green-600, #4a6b47),
    var(--gmia-green-700, #3a5438)
  );
  color: var(--gmia-white);
  border: none;
  border-radius: var(--gmia-radius-md);
  font-weight: 600;
  letter-spacing: 0.025em;
  cursor: pointer;
  transition:
    background 0.25s ease,
    transform 0.15s ease;
}

.gmia-account-btn:hover {
  background: linear-gradient(
    to bottom,
    var(--gmia-green-500, #5f8a5b),
    var(--gmia-green-600, #4a6b47)
  );
  transform: translateY(-1px);
}

.gmia-account-btn:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

/* ---------- Error & Success Messages ---------- */

.gmia-account-error {
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  background: var(--gmia-color-error-bg, #fef8f7);
  border-left: 4px solid var(--gmia-color-error, #c0392b);
  border-radius: var(--gmia-radius-sm);
  color: var(--gmia-color-error, #c0392b);
  font-size: var(--gmia-text-sm);
}

.gmia-account-success {
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
  background: var(--gmia-green-50, #f3f9f2);
  border-left: 4px solid var(--paletteColor1, #3a5438);
  border-radius: var(--gmia-radius-sm);
  color: var(--paletteColor1, #3a5438);
  font-size: var(--gmia-text-sm);
}

/* ---------- Links & Hints ---------- */

.gmia-account-hint {
  margin-top: 1rem;
  text-align: center;
  font-size: var(--gmia-text-sm);
  color: var(--paletteColor5, #64615b);
}

.gmia-account-link {
  background: none;
  border: none;
  padding: 0;
  font-size: var(--gmia-text-sm);
  color: var(--paletteColor1, #3a5438);
  text-decoration: underline;
  cursor: pointer;
}

.gmia-account-link:hover {
  color: var(--paletteColor2, #c4941a);
}

.gmia-account-link--back {
  display: block;
  margin-top: 1rem;
  text-align: center;
}

.gmia-account-links {
  display: flex;
  justify-content: space-between;
  margin-top: 1rem;
}

.gmia-account-welcome {
  margin: 0 0 1.25rem;
  font-size: var(--gmia-text-secondary);
  color: var(--paletteColor5, #64615b);
}

.gmia-account-email-display {
  margin: 0 0 1rem;
  font-size: var(--gmia-text-sm);
  color: var(--paletteColor5, #64615b);
}

/* ---------- Membership Notice ---------- */

.gmia-account-notice {
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  background: var(--gmia-gold-50, #fcf7e8);
  border-left: 4px solid var(--gmia-gold-500, #c4941a);
  border-radius: var(--gmia-radius-sm);
  font-size: var(--gmia-text-sm);
  line-height: 1.6;
  color: var(--gmia-neutral-700, #302f2c);
}

.gmia-account-notice p {
  margin: 0;
}

/* ---------- Option Cards (Create Account vs Guest) ---------- */

.gmia-account-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.gmia-account-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1.5rem 1rem;
  background: var(--paletteColor7, #f5f3ef);
  border: 2px solid var(--paletteColor6, #d4d1cc);
  border-radius: var(--gmia-radius-lg);
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.gmia-account-option:hover {
  border-color: var(--paletteColor1, #3a5438);
  box-shadow: var(--gmia-shadow-card-hover);
}

.gmia-account-option__icon {
  font-size: var(--gmia-text-3xl);
  margin-bottom: 0.5rem;
  line-height: 1;
}

.gmia-account-option__title {
  font-size: var(--gmia-text-body);
  font-weight: 600;
  color: var(--paletteColor4, #302f2c);
  margin-bottom: 0.25rem;
}

.gmia-account-option__desc {
  font-size: var(--gmia-text-sm);
  color: var(--paletteColor5, #64615b);
  line-height: 1.4;
}

/* ---------- Step 0 Responsive ---------- */

@media (max-width: 689px) {
  .gmia-step[data-step="1"],
  .gmia-step[data-step="2"],
  .gmia-step[data-step="3"] {
    padding: 1.5rem;
  }
}

@media (max-width: 480px) {
  .gmia-account-options {
    grid-template-columns: 1fr;
  }

  .gmia-account-card {
    padding: 1.5rem;
  }

  .gmia-account-links {
    flex-direction: column;
    gap: 0.5rem;
    align-items: center;
  }
}

/* ---------- Step 0 Focus & Motion ---------- */

.gmia-account-btn:focus-visible,
.gmia-account-link:focus-visible,
.gmia-account-option:focus-visible {
  outline: 2px solid var(--paletteColor1, #3a5438);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .gmia-account-input,
  .gmia-account-option {
    transition: none;
  }
}

/* ---------- Donation Checkout — Simplified Layout ---------- */

.woocommerce-checkout .gmia-donation-notice {
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  background: var(--gmia-gold-50, #fcf7e8);
  border-left: 4px solid var(--gmia-gold-500, #c4941a);
  border-radius: var(--gmia-radius-sm);
  font-size: var(--gmia-text-secondary);
  line-height: 1.5;
  color: var(--gmia-neutral-700, #302f2c);
}

/* ---------- Focus & Accessibility ---------- */

.gmia-step-next:focus-visible,
.gmia-step-prev:focus-visible,
.gmia-step-back-link:focus-visible,
.gmia-edit-details:focus-visible {
  outline: 2px solid var(--paletteColor1, #3a5438);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .gmia-checkout-step__number,
  .gmia-checkout-step__label,
  .woocommerce-checkout .form-row input.input-text,
  .woocommerce-checkout .form-row select,
  .woocommerce-checkout .form-row textarea,
  .woocommerce-checkout #place_order,
  .gmia-step-next {
    transition: none;
  }

  .woocommerce-checkout #place_order:hover,
  .gmia-step-next:hover {
    transform: none;
  }
}

/* Screen reader text (may already be defined by WordPress/Blocksy) */
.screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  width: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  word-wrap: normal;
}

/* ==========================================================================
   Membership Page
   Used by: gmia/membership-page block pattern + [gmia_membership_form] shortcode
   @since 1.0.57

   Typography: DM Serif Display (headings) + DM Sans (body/UI).
   Layout: Hero → Pricing Cards → Divider → Benefits Grid → Pullquote → CTA.
   Cream page background. Cards get white for contrast.
   Mirrors volunteer page conventions for visual consistency.
   ========================================================================== */

/* Body background — warm cream to match parent /get-involved */
body:has(.gmia-membership-page) {
  background-color: var(--gmia-cream);
}

/* ---- Membership: scoped typography + page background ---- */
.gmia-membership-page {
  font-family: "DM Sans", sans-serif;
  color: var(--gmia-neutral-900);
  line-height: 1.6;
  background: var(--gmia-cream);
}

.gmia-membership-page h1,
.gmia-membership-page h2,
.gmia-membership-page h3 {
  font-family: "DM Serif Display", serif;
  line-height: 1.2;
}

/* Reset WP default block margins inside benefit cards */
.gmia-mp-benefit p,
.gmia-mp-benefit .wp-block-heading {
  margin-top: 0;
  margin-bottom: 0;
}

/* ---- Membership: Hero ---- */
.gmia-mp-hero {
  padding: clamp(3rem, 6vw, 6rem) clamp(1.25rem, 4vw, 3rem);
}

/* Override wp:columns flex → CSS Grid for hero layout */
.gmia-mp-hero__cols.wp-block-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 4vw, 4rem);
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}

.gmia-mp-hero__tag {
  display: inline-block;
  font-family: "DM Sans", sans-serif;
  font-size: var(--gmia-text-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gmia-gold-600);
  background: var(--gmia-gold-50);
  padding: 0.25rem 0.75rem;
  border-radius: var(--gmia-radius-pill);
  margin-bottom: 1rem;
}

.gmia-mp-hero__heading {
  font-size: clamp(2rem, 5vw, 3.25rem);
  color: var(--gmia-green-800);
  margin: 0 0 1rem;
}

.gmia-mp-hero__text {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-600);
  margin: 0;
  max-width: 520px;
  line-height: 1.65;
}

/* Hero image */
.gmia-mp-hero__img img {
  border-radius: var(--gmia-radius-xl);
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* ---- Membership: Pricing Section ---- */
.gmia-mp-pricing {
  padding: clamp(2rem, 4vw, 3.5rem) clamp(1.25rem, 4vw, 3rem);
  text-align: center;
}

.gmia-mp-pricing__heading {
  font-size: var(--gmia-heading-section);
  color: var(--gmia-green-800);
  margin-bottom: 0.75rem;
}

.gmia-mp-pricing__sub {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-600);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

/* --- Pricing Cards ([gmia_membership_form] shortcode) --- */
.gmia-membership-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  max-width: 720px;
  margin: 0 auto 1.5rem;
}

.gmia-membership-card {
  position: relative;
  background: var(--gmia-white);
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  border-radius: var(--gmia-radius-lg);
  padding: 2rem 1.5rem;
  text-align: center;
  transition:
    transform 200ms ease,
    border-color 200ms ease,
    box-shadow 200ms ease;
}

.gmia-membership-card:hover {
  transform: translateY(-4px);
  border-color: var(--gmia-neutral-400, #8a8680);
  box-shadow: var(--gmia-shadow-card-hover);
}

/* Featured card (3-Year "Best Value") */
.gmia-membership-card.gmia-membership-card--featured {
  border: 2px solid var(--gmia-gold-400, #d4ad3e);
  box-shadow: var(--gmia-shadow-card);
}

.gmia-membership-card.gmia-membership-card--featured:hover {
  border-color: var(--paletteColor2, #c4941a);
  box-shadow: var(--gmia-shadow-card-hover);
}

.gmia-membership-card__badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--gmia-gold-500, #c4941a);
  color: var(--gmia-white);
  font-size: var(--gmia-text-2xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 0.25rem 0.75rem;
  border-radius: var(--gmia-radius-pill);
  white-space: nowrap;
}

.gmia-membership-card__term {
  font-size: var(--gmia-text-caption);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--gmia-green-600, #4a6b47);
  margin-bottom: 0.75rem;
}

.gmia-membership-card__price {
  margin-bottom: 0.25rem;
}

.gmia-membership-card__amount {
  font-family: "DM Serif Display", serif;
  font-size: var(--gmia-text-4xl);
  font-weight: 800;
  color: var(--gmia-green-950, #0f1a0e);
  line-height: 1;
}

.gmia-membership-card__detail {
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-600, #474541);
  margin-bottom: 1.25rem;
  min-height: 1.5em;
}

.gmia-membership-card__btn {
  display: block;
  width: 100%;
  padding: 0.75rem 1.5rem;
  background: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
  border: none;
  border-radius: var(--gmia-radius-md);
  font-family: "DM Sans", sans-serif;
  font-size: var(--gmia-text-body);
  font-weight: 600;
  cursor: pointer;
  transition:
    background-color 0.2s,
    box-shadow 0.2s;
}

.gmia-membership-card__btn:hover {
  background: var(--gmia-green-800, #233a20);
}

.gmia-membership-card__btn:focus-visible {
  outline: 2px solid var(--paletteColor1, #3a5438);
  outline-offset: 2px;
}

/* Featured card retains gold button */
.gmia-membership-card--featured .gmia-membership-card__btn {
  background: var(--paletteColor2, #c4941a);
}

.gmia-membership-card--featured .gmia-membership-card__btn:hover {
  background: var(--gmia-gold-600, #a87818);
}

.gmia-membership-card--featured .gmia-membership-card__btn:focus-visible {
  outline-color: var(--paletteColor2, #c4941a);
}

/* --- Disclaimers below pricing --- */
.gmia-mp-pricing__disclaimer {
  color: var(--gmia-neutral-400, #8a8680);
  max-width: 540px;
  margin-left: auto;
  margin-right: auto;
}

/* ---- Membership: Seedling Divider ---- */
.gmia-mp-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: clamp(2rem, 4vw, 3.5rem) auto;
  max-width: 1060px;
  padding: 0 clamp(1.25rem, 4vw, 3rem);
  position: relative;
}

.gmia-mp-divider::before,
.gmia-mp-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--gmia-neutral-200, #d4d1cc);
}

.gmia-mp-divider__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: var(--gmia-radius-full);
  background: var(--gmia-green-100, #e2f0e1);
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  margin: 0 1.25rem;
  flex-shrink: 0;
}

.gmia-mp-divider__icon i {
  font-size: 1rem;
  color: var(--gmia-green-600, #4a6b47);
}

/* ---- Membership: Benefits Section (compact card grid) ---- */
.gmia-mp-benefits {
  padding: clamp(1rem, 3vw, 2rem) 0 clamp(2rem, 4vw, 3rem);
}

.gmia-mp-benefits__header {
  text-align: center;
  padding-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

.gmia-mp-section-heading {
  font-size: var(--gmia-heading-section);
  color: var(--gmia-green-800);
  margin-bottom: 0.75rem;
}

.gmia-mp-section-sub {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-600);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* Override wp:columns flex → CSS Grid for 3-column benefit layout */
.gmia-mp-benefits__row.wp-block-columns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}

.gmia-mp-benefits__row.wp-block-columns:last-of-type {
  margin-bottom: 0;
}

/* Benefit cards — match volunteer opportunity card style */
.gmia-mp-benefit.wp-block-column {
  background: var(--gmia-white);
  border: 1px solid var(--gmia-neutral-200);
  border-radius: var(--gmia-radius-lg);
  padding: 1.5rem;
  transition:
    transform 200ms ease,
    box-shadow 200ms ease;
}

.gmia-mp-benefit.wp-block-column:hover {
  transform: translateY(-4px);
  box-shadow: var(--gmia-shadow-card-hover);
}

.gmia-mp-benefit__icon {
  width: 56px;
  height: 56px;
  border-radius: var(--gmia-radius-md);
  background: var(--gmia-green-50);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1rem;
  color: var(--gmia-green-700);
  font-size: 1.5rem;
}

.gmia-mp-benefit__title {
  font-family: "DM Sans", sans-serif;
  font-size: var(--gmia-text-lg);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  margin: 0 0 0.5rem;
  line-height: 1.3;
}

.gmia-mp-benefit__desc {
  font-size: var(--theme-font-size, 1rem);
  color: var(--gmia-neutral-950, #010101);
  line-height: 1.55;
  margin: 0;
  padding-top: 0.5rem;
}

/* ---- Membership: Pullquote ---- */
.gmia-mp-pullquote {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-style: italic;
  font-size: clamp(1.1rem, 2.5vw, 1.35rem);
  line-height: 1.7;
  color: var(--gmia-green-700, #3a5438);
  text-align: center;
  max-width: 640px;
  margin: 2rem auto 0;
  padding: 2rem 2.5rem;
  border: none;
  position: relative;
}

.gmia-mp-pullquote::before {
  content: "\201C";
  display: block;
  font-size: 3.5rem;
  line-height: 1;
  color: var(--paletteColor2, #c4941a);
  opacity: 0.4;
  margin-bottom: 0.25rem;
}

.gmia-mp-pullquote p {
  margin: 0;
}

/* ---- Membership: Pay by Check CTA Card ---- */
.gmia-mp-check {
  text-align: center;
  background: #fff;
  border-radius: var(--gmia-radius-lg);
  max-width: 640px;
  margin: clamp(1rem, 2vw, 1.5rem) auto clamp(2.5rem, 5vw, 4rem);
  padding: 2rem;
}

.gmia-mp-check__heading {
  font-size: var(--gmia-heading-section);
  margin-top: 0;
  margin-bottom: 1rem;
}

.gmia-mp-check__text {
  font-size: var(--gmia-text-body);
  line-height: 1.65;
  padding: 0 0 1rem 0;
}

/* CTA card buttons — high specificity to override .wp-element-button defaults */
.gmia-mp-check .wp-block-button .wp-block-button__link.wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-weight: 600;
  padding: 0.75rem 1.75rem;
  font-size: var(--gmia-text-secondary);
  border-radius: var(--gmia-radius-md);
  text-decoration: none;
  cursor: pointer;
  box-sizing: border-box;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

/* Outline buttons */
.gmia-mp-check
  .gmia-mp-check__btn--outline.is-style-outline
  .wp-block-button__link {
  background: transparent;
  border: 1px solid var(--paletteColor1, #3a5438);
  color: var(--paletteColor1, #3a5438);
}

.gmia-mp-check
  .gmia-mp-check__btn--outline.is-style-outline
  .wp-block-button__link:hover,
.gmia-mp-check
  .gmia-mp-check__btn--outline.is-style-outline
  .wp-block-button__link:focus-visible {
  background: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

.gmia-mp-check .wp-block-button__link:focus-visible {
  outline: 2px solid var(--paletteColor1, #3a5438);
  outline-offset: 2px;
}

/* ---- Membership: Responsive ---- */

/* Tablet: 2-column benefits */
@media (max-width: 960px) {
  .gmia-mp-benefits__row.wp-block-columns {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobile: stack everything */
@media (max-width: 689px) {
  .gmia-mp-hero__cols.wp-block-columns {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .gmia-mp-hero__text {
    margin-left: auto;
    margin-right: auto;
  }

  .gmia-mp-hero__img img {
    max-width: 480px;
    margin: 0 auto;
  }

  .gmia-mp-benefits__row.wp-block-columns {
    grid-template-columns: 1fr;
  }

  .gmia-membership-cards {
    grid-template-columns: 1fr;
    max-width: 320px;
    margin: 0 auto 1.5rem;
  }

  .gmia-mp-pullquote {
    padding: 1.5rem 1rem;
  }

  .gmia-mp-divider {
    margin: 1.5rem auto;
  }
}

/* ==========================================================================
   Donation Form (Amount Selector)
   Used by: [gmia_donate_form] shortcode
   ========================================================================== */
.gmia-donate-form {
  max-width: 480px;
  margin: 0 auto;
}

.gmia-donate-amounts {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.gmia-donate-amount {
  padding: 0.875rem 0.5rem;
  background: var(--gmia-white);
  border: 2px solid var(--gmia-green-200, #c8e2c6);
  border-radius: var(--gmia-radius-md);
  font-size: var(--gmia-text-lg);
  font-weight: 600;
  color: var(--gmia-green-700, #3a5438);
  cursor: pointer;
  transition: all 0.2s ease;
}

.gmia-donate-amount:hover {
  border-color: var(--gmia-green-500, #5f8a5b);
  background: var(--gmia-green-50, #f3f9f2);
}

.gmia-donate-amount--selected {
  background: var(--gmia-green-700, #3a5438);
  border-color: var(--gmia-green-700, #3a5438);
  color: var(--gmia-white);
}

.gmia-donate-custom {
  margin-bottom: 1.25rem;
}

.gmia-donate-custom label {
  display: block;
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  color: var(--gmia-neutral-500, #64615b);
  margin-bottom: 0.375rem;
}

.gmia-donate-custom-wrap {
  display: flex;
  align-items: center;
  border: 2px solid var(--gmia-green-200, #c8e2c6);
  border-radius: var(--gmia-radius-md);
  overflow: hidden;
  background: var(--gmia-white);
  transition: border-color 0.15s;
}

.gmia-donate-custom-wrap:focus-within {
  border-color: var(--gmia-green-500, #5f8a5b);
  box-shadow: 0 0 0 3px rgba(58, 84, 56, 0.1);
}

.gmia-donate-currency {
  padding: 0.75rem;
  font-size: var(--gmia-text-lg);
  font-weight: 700;
  color: var(--gmia-neutral-400, #8a8680);
  background: var(--gmia-neutral-50, #f7f6f3);
  border-right: 1px solid var(--gmia-green-200, #c8e2c6);
}

.gmia-donate-custom-wrap input {
  flex: 1;
  padding: 0.75rem;
  border: none;
  font-size: var(--gmia-text-lg);
  background: transparent;
}

.gmia-donate-custom-wrap input:focus-visible {
  outline: 2px solid var(--gmia-gold-500, #c4941a);
  outline-offset: -2px;
}

.gmia-donate-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  padding: 1rem 2rem;
  background: var(--gmia-gold-500, #c4941a);
  color: var(--gmia-white);
  border: none;
  border-radius: var(--gmia-radius-md);
  font-size: var(--gmia-text-lg);
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s;
}

.gmia-donate-btn:hover {
  background: var(--gmia-gold-600, #a87818);
}

@media (max-width: 480px) {
  .gmia-donate-amounts {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ==========================================================================
   Positions Accordion

   Styles for the Positions page using native wp:details blocks.
   All selectors scoped under .gmia-positions to avoid leaking globally.
   ========================================================================== */

.gmia-positions {
  max-width: 800px;
  margin: 0 auto 2rem;
}

.gmia-positions__intro {
  font-size: var(--gmia-text-body);
  color: var(--paletteColor5, #64615b);
  margin-bottom: 2rem;
  line-height: 1.7;
}

/* --- Each accordion item --- */
.gmia-positions .wp-block-details {
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  border-left: 4px solid var(--paletteColor2, #c4941a);
  border-radius: var(--gmia-radius-md);
  margin-bottom: 1rem;
  background: var(--paletteColor8, #fff);
  overflow: hidden;
  transition:
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

.gmia-positions .wp-block-details:last-of-type {
  margin-bottom: 0;
}

.gmia-positions .wp-block-details:hover {
  box-shadow: var(--gmia-shadow-card);
}

.gmia-positions .wp-block-details[open] {
  border-color: var(--paletteColor2, #c4941a);
  border-left-color: var(--paletteColor2, #c4941a);
  box-shadow: var(--gmia-shadow-card);
}

/* --- Summary (clickable header) --- */
.gmia-positions .wp-block-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.125rem 1.5rem;
  font-size: var(--gmia-text-xl, 1.3125rem);
  font-weight: 600;
  color: var(--paletteColor1, #3a5438);
  cursor: pointer;
  list-style: none;
  user-select: none;
  line-height: 1.3;
}

.gmia-positions .wp-block-details summary::-webkit-details-marker {
  display: none;
}

.gmia-positions .wp-block-details summary::marker {
  content: "";
}

.gmia-positions .wp-block-details summary:focus-visible {
  outline: 2px solid var(--paletteColor1, #3a5438);
  outline-offset: -2px;
  border-radius: var(--gmia-radius-sm);
}

/* Chevron arrow (right side) */
.gmia-positions .wp-block-details summary::after {
  content: "";
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin-left: 1rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233A5438' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  transition: transform 0.25s ease;
}

.gmia-positions .wp-block-details[open] > summary::after {
  transform: rotate(180deg);
}

/* --- Content area (below summary) --- */
.gmia-positions .wp-block-details > *:not(summary) {
  padding: 0 1.5rem;
}

.gmia-positions .wp-block-details > *:nth-child(2) {
  padding-top: 0.25rem;
}

.gmia-positions .wp-block-details > *:last-child {
  padding-bottom: 1.5rem;
}

.gmia-positions .wp-block-details p {
  font-size: var(--gmia-text-body, 1.0625rem);
  color: var(--paletteColor4, #302f2c);
  line-height: 1.7;
  margin-bottom: 1rem;
}

.gmia-positions .wp-block-details p:last-child {
  margin-bottom: 0;
}

.gmia-positions .wp-block-details ul,
.gmia-positions .wp-block-details ol {
  padding-left: 1.25rem;
  margin-bottom: 1rem;
  color: var(--paletteColor4, #302f2c);
}

.gmia-positions .wp-block-details li {
  margin-bottom: 0.5rem;
  line-height: 1.6;
}

.gmia-positions .wp-block-details h3,
.gmia-positions .wp-block-details h4 {
  color: var(--paletteColor1, #3a5438);
  margin-top: 0.5rem;
  margin-bottom: 0.75rem;
}

@media (max-width: 600px) {
  .gmia-positions .wp-block-details summary {
    padding: 1rem 1.25rem;
    font-size: var(--gmia-text-lg, 1.1875rem);
  }

  .gmia-positions .wp-block-details > *:not(summary) {
    padding: 0 1.25rem;
  }
}

/* ==========================================================================
   TEC V2 List/Archive View

   Restyles The Events Calendar Pro V2 list view to match the GMIA design
   system: card-based event rows, refined date column, scaled images,
   branded search bar, and "Learn More" links.

   Scoped to .tribe-events-calendar-list to avoid affecting month/day views.
   ========================================================================== */

/* --- Events archive: header overlay so subpage header is flush with viewport top --- */
body.gmia-events-archive #header {
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  z-index: 50;
}

/* --- Constrain TEC archive and series pages to site content width --- */
body.gmia-events-archive .tribe-common-l-container.tribe-events-l-container,
.single-tribe_event_series .tribe-common-l-container.tribe-events-l-container {
  width: var(--theme-container-width, min(100%, 90vw));
  max-width: 1250px;
  margin-inline: auto;
}

/* --- Event List Container --- */
.tribe-events .tribe-events-calendar-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* --- Card-Style Event Rows --- */
.tribe-common--breakpoint-medium.tribe-events
  .tribe-events-calendar-list__event-row {
  background: var(--gmia-white);
  border: none;
  border-radius: var(--gmia-radius-lg);
  box-shadow: var(--gmia-shadow-card);
  padding: 1.5rem 0;
  min-height: 200px;
  margin: 0 0 1.5rem;
  list-style: none;
  overflow: hidden;
  transition:
    box-shadow 0.25s ease,
    transform 0.25s ease;
}

.tribe-events .tribe-events-calendar-list__event-row:hover {
  box-shadow: var(--gmia-shadow-card-hover);
  transform: translateY(-3px);
}

/* Remove TEC's default row separators */
.tribe-events
  .tribe-events-calendar-list__event-row
  + .tribe-events-calendar-list__event-row {
  border-top: none;
}

/* --- Date Column — flush left, full height --- */
.tribe-events .tribe-events-calendar-list__event-date-tag {
  text-align: center;
  min-width: 52px;
  max-width: 52px;
  flex-shrink: 0;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  background: var(--paletteColor1, #3a5438);
  border-radius: 0;
  margin: -1.5rem 0 -1.5rem 0;
  padding: 1.5rem 0 0.75rem;
}

.tribe-events .tribe-events-calendar-list__event-date-tag-weekday {
  display: block;
  font-size: var(--gmia-text-2xs, 0.6875rem);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--paletteColor8, #fff);
  line-height: 1;
}

.tribe-events .tribe-events-calendar-list__event-date-tag-daynum {
  display: block;
  font-size: 1.375rem;
  font-weight: 800;
  color: var(--paletteColor8, #fff);
  line-height: 1;
  margin-top: 0.3rem;
}

/* Override TEC's .tribe-common-h5 / .tribe-common-h4--min-medium sizing */
.tribe-events
  .tribe-events-calendar-list__event-date-tag-daynum.tribe-common-h5,
.tribe-events
  .tribe-events-calendar-list__event-date-tag-daynum.tribe-common-h4--min-medium {
  font-size: 1.375rem;
}

/* Gap between date column and event content */
.tribe-common--breakpoint-medium.tribe-events
  .tribe-events-calendar-list__event-wrapper {
  padding-left: 1.25rem;
}

/* --- Featured Image --- */
/* Specificity (0,5,0) needed to beat TEC's gutter rule:
   .tribe-common--breakpoint-medium.tribe-common .tribe-common-g-row--gutters>.tribe-common-g-col (0,4,0) */
.tribe-common--breakpoint-medium.tribe-events
  .tribe-events-calendar-list__event
  .tribe-events-calendar-list__event-featured-image-wrapper.tribe-common-g-col {
  width: 300px;
  flex-shrink: 0;
  overflow: hidden;
  align-self: stretch;
  margin: -1.5rem 0;
  padding: 0;
  border-radius: 0;
}

/* Details column fills remaining space so image is pushed to right edge.
   TEC's row-reverse + justify-content:flex-end pushes items left, leaving a gap
   on the right. flex:1 eliminates that gap. */
.tribe-common--breakpoint-medium.tribe-events
  .tribe-events-calendar-list__event-details {
  flex: 1 1 0%;
}

.tribe-events .tribe-events-calendar-list__event-featured-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition:
    transform 0.4s ease,
    filter 0.3s ease;
}

.tribe-events
  .tribe-events-calendar-list__event-row:hover
  .tribe-events-calendar-list__event-featured-image {
  transform: scale(1.03);
  filter: brightness(1.1);
}

/* --- Event Title --- */
.tribe-events .tribe-events-calendar-list__event-title {
  font-size: var(--gmia-text-xl);
  font-weight: 700;
  line-height: 1.35;
  margin: 0 0 0.5rem;
}

/* Stretched link: title anchor covers the entire card */
.tribe-events .tribe-events-calendar-list__event-row {
  position: relative;
}

.tribe-events .tribe-events-calendar-list__event-title a {
  color: var(--paletteColor4, #010101);
  text-decoration: none;
  transition: color 0.2s ease;
}

.tribe-events .tribe-events-calendar-list__event-title a::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

.tribe-events .tribe-events-calendar-list__event-title a:hover {
  color: var(--paletteColor1, #3a5438);
}

/* --- Event Date/Time Line --- */
.tribe-events .tribe-events-calendar-list__event-datetime-wrapper {
  font-size: var(--gmia-text-body, 0.9375rem);
  font-weight: 500;
  color: var(--paletteColor5, #64615b);
  margin-bottom: 0.35rem;
}

/* --- Event Venue / Location --- */
.tribe-events .tribe-events-calendar-list__event-venue.tribe-common-b2 {
  display: flex;
  flex-direction: column;
  font-style: normal;
  font-size: var(--gmia-text-base, 16px);
  color: var(--gmia-neutral-950, #000);
  margin-top: 0.15rem;
  padding-bottom: 1rem;
}

.tribe-events .tribe-events-calendar-list__event-venue .tribe-common-b2--bold,
.tribe-events
  .tribe-events-calendar-list__event-venue
  .tribe-events-calendar-list__event-venue-address {
  font-size: var(--gmia-text-base, 16px);
  color: var(--gmia-neutral-950, #000);
  padding-bottom: 0;
}

.tribe-events .tribe-events-calendar-list__event-venue-title {
  font-weight: 600;
}

/* --- Event Description --- */
.tribe-common--breakpoint-medium.tribe-events
  .tribe-events-calendar-list__event-description {
  font-size: var(--gmia-text-secondary);
  color: var(--paletteColor4, #302f2c);
  line-height: 1.6;
  margin-top: 0;
}

/* --- Event Cost / Tickets CTA --- */
.tribe-events .tribe-events-calendar-list__event-cost {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  margin-top: 1rem;
}

.tribe-events
  .tribe-events-calendar-list__event-cost
  .tribe-events-c-small-cta__link {
  display: inline-block;
  background: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
  padding: 0.5rem 1.25rem;
  border-radius: var(--gmia-radius-md, 6px);
  font-size: var(--gmia-text-base, 16px);
  font-weight: 700;
  text-decoration: none;
  transition: background 0.2s ease;
}

.tribe-events
  .tribe-events-calendar-list__event-cost
  .tribe-events-c-small-cta__link:hover,
.tribe-events
  .tribe-events-calendar-list__event-cost
  .tribe-events-c-small-cta__link:focus-visible {
  background: var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
}

.tribe-events
  .tribe-events-calendar-list__event-cost
  .tribe-events-c-small-cta__price {
  display: inline-block;
  font-size: var(--gmia-text-base, 1rem);
  font-weight: 700;
  color: var(--paletteColor1, #3a5438);
  background: var(--gmia-green-50, #f3f9f2);
  border: 1px solid var(--gmia-green-200, #c8e2c6);
  border-radius: var(--gmia-radius-md, 6px);
  padding: 0.35rem 0.85rem;
  margin-left: 0.65rem;
}

/* When price is the only child (no CTA link), add a label */
.tribe-events
  .tribe-events-calendar-list__event-cost
  .tribe-events-c-small-cta__price:first-child::before {
  content: "Tickets: ";
  font-weight: 600;
  color: var(--gmia-neutral-600, #474541);
}

.tribe-events
  .tribe-events-calendar-list__event-cost
  .tribe-events-c-small-cta__stock {
  font-size: var(--gmia-text-sm, 0.875rem);
  color: var(--gmia-neutral-600, #474541);
  font-weight: 400;
}

.tribe-events
  .tribe-events-calendar-list__event-cost
  .tribe-events-c-small-cta__stock::before {
  content: "(";
}

.tribe-events
  .tribe-events-calendar-list__event-cost
  .tribe-events-c-small-cta__stock::after {
  content: ")";
}

/* --- "Learn More" Link --- */
.gmia-tec-list__learn-more {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--paletteColor1, #3a5438);
  font-weight: 600;
  font-size: var(--gmia-text-secondary);
  text-decoration: none;
  margin-top: 1rem;
  transition:
    color 0.2s ease,
    gap 0.2s ease;
}

.gmia-tec-list__learn-more:hover {
  color: var(--paletteColor2, #c4941a);
  gap: 0.5rem;
}

.gmia-tec-list__learn-more svg {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

/* --- Month Separator --- */
.tribe-events .tribe-events-calendar-list__month-separator {
  list-style: none;
  padding: 0.25rem 0 0.5rem;
  margin: 0;
}

.tribe-events .tribe-events-calendar-list__month-separator-text {
  font-size: var(--gmia-text-lg);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--paletteColor1, #3a5438);
  border-bottom: 2px solid var(--paletteColor2, #c4941a);
  padding-bottom: 0.5rem;
  display: inline-block;
}

.tribe-events .tribe-events-calendar-list__month-separator::after,
.tribe-events .tribe-events-calendar-list__month-separator h3::after {
  display: none;
}

/* --- Search/Events Bar --- */
.tribe-events .tribe-events-c-search__input:focus-visible {
  box-shadow: 0 0 0 3px rgba(58, 84, 56, 0.15);
  border-color: var(--paletteColor1, #3a5438);
  outline: none;
}

.tribe-events .tribe-events-c-search__button {
  background: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
  border: 1px solid var(--paletteColor1, #3a5438);
  border-radius: var(--gmia-radius-md);
  font-weight: 600;
  padding: 0.6rem 1.5rem;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
  cursor: pointer;
}

.tribe-events .tribe-events-c-search__button:hover,
.tribe-events .tribe-events-c-search__button:focus-visible {
  background: var(--gmia-green-600, #4a6b47);
  border-color: var(--gmia-green-600, #4a6b47);
}

/* Top bar — tighter grouping of datepicker + nav arrows */
.tribe-events .tribe-events-c-top-bar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

/* Sticky events header */
.tribe-events .tribe-events-header {
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--gmia-white);
  padding-top: 1rem;
  padding-bottom: 0.5rem;
}

.tribe-common--breakpoint-medium.tribe-events
  .tribe-events-header
  .tribe-events-header__top-bar {
  margin-bottom: 0;
}

/* --- Subscribe to Calendar (relocated to top-bar) --- */

/* Right-justify inside the top-bar flex row */
.tribe-events
  .tribe-events-c-top-bar
  .tribe-events-c-subscribe-dropdown__container,
.tribe-events .tribe-events-c-top-bar .tribe-events-c-ical {
  margin-left: auto;
}

/* Dropdown wrapper needs relative positioning for the absolute menu */
.tribe-events .tribe-events-c-top-bar .tribe-events-c-subscribe-dropdown {
  position: relative;
}

/* Style the subscribe button — matches .gmia-btn.gmia-btn--secondary */
.tribe-events
  .tribe-events-c-top-bar
  .tribe-events-c-subscribe-dropdown__button {
  border-radius: var(--gmia-radius-md, 6px);
  background: var(--paletteColor1, #3a5438);
  border: 2px solid transparent;
  color: var(--gmia-white);
  padding: 0.35rem 1rem;
  margin-top: 5px;
  font-size: var(--gmia-text-sm);
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.tribe-events
  .tribe-events-c-top-bar
  .tribe-events-c-subscribe-dropdown__button
  .tribe-events-c-subscribe-dropdown__button-text {
  color: var(--gmia-white);
}

.tribe-events
  .tribe-events-c-top-bar
  .tribe-events-c-subscribe-dropdown__button
  .tribe-events-c-subscribe-dropdown__button-icon {
  fill: var(--gmia-white);
}

.tribe-events
  .tribe-events-c-top-bar
  .tribe-events-c-subscribe-dropdown__button
  svg {
  fill: var(--gmia-white);
}

.tribe-events
  .tribe-events-c-top-bar
  .tribe-events-c-subscribe-dropdown__button:hover {
  background: var(--paletteColor2, #c4941a);
}

.tribe-events
  .tribe-events-c-top-bar
  .tribe-events-c-subscribe-dropdown__button:hover
  .tribe-events-c-subscribe-dropdown__button-text,
.tribe-events
  .tribe-events-c-top-bar
  .tribe-events-c-subscribe-dropdown__button:hover
  svg {
  color: var(--gmia-white);
  fill: var(--gmia-white);
}

/* Float the menu over content instead of pushing layout */
.tribe-events
  .tribe-events-c-top-bar
  .tribe-events-c-subscribe-dropdown__content {
  position: absolute;
  top: 100%;
  right: 0;
  left: auto;
  z-index: 20;
  min-width: 200px;
  background: var(--gmia-white);
  border-radius: var(--gmia-radius-md);
  box-shadow: var(--gmia-shadow-card-hover);
  border: 1px solid var(--gmia-neutral-100, #eae8e4);
  margin-top: 0.25rem;
}

/* Hide the original bottom-positioned subscribe links */
.tribe-common-l-container > .tribe-events-c-subscribe-dropdown__container,
.tribe-common-l-container > .tribe-events-c-ical {
  display: none;
}

/* --- Bottom Pagination Nav --- */
.tribe-events .tribe-events-calendar-list-nav.tribe-events-c-nav {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--gmia-neutral-100, #eae8e4);
}

.tribe-events .tribe-events-c-nav__list {
  display: flex;
  justify-content: space-between;
  align-items: center;
  list-style: none;
  padding: 0;
  margin: 0;
}

.tribe-events .tribe-events-c-nav__prev,
.tribe-events .tribe-events-c-nav__next {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.25rem;
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  color: var(--paletteColor1, #3a5438);
  background: transparent;
  border: 2px solid var(--paletteColor1, #3a5438);
  border-radius: var(--gmia-radius-md, 6px);
  text-decoration: none;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.tribe-events .tribe-events-c-nav__prev:hover,
.tribe-events .tribe-events-c-nav__next:hover {
  background: var(--paletteColor2, #c4941a);
  border-color: var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
}

.tribe-events .tribe-events-c-nav__prev:hover svg,
.tribe-events .tribe-events-c-nav__next:hover svg {
  fill: var(--gmia-white);
}

.tribe-events .tribe-events-c-nav__prev svg,
.tribe-events .tribe-events-c-nav__next svg {
  width: 14px;
  height: 14px;
  fill: var(--paletteColor1, #3a5438);
  transition: fill 0.2s ease;
}

/* --- TEC V2 List View — Responsive --- */

@media (max-width: 991px) {
  .tribe-events .tribe-events-calendar-list__event-featured-image-wrapper {
    max-width: 220px;
  }
}

@media (max-width: 689px) {
  /* Stack date tag above event details */
  .tribe-events .tribe-events-calendar-list__event-row .tribe-common-g-row {
    flex-direction: column;
  }

  .tribe-events .tribe-events-calendar-list__event-date-tag {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    align-items: baseline;
    max-width: none;
    margin: 0 0 0.75rem;
    padding: 0;
    background: transparent;
    border-radius: 0;
    color: var(--paletteColor1, #3a5438);
  }

  .tribe-events .tribe-events-calendar-list__event-date-tag-weekday {
    display: inline;
    color: var(--paletteColor1, #3a5438);
  }

  .tribe-events .tribe-events-calendar-list__event-date-tag-daynum,
  .tribe-events
    .tribe-events-calendar-list__event-date-tag-daynum.tribe-common-h5,
  .tribe-events
    .tribe-events-calendar-list__event-date-tag-daynum.tribe-common-h4--min-medium {
    font-size: var(--gmia-text-2xl);
    color: var(--paletteColor1, #3a5438);
  }

  /* Full-width image on mobile — reset desktop flush styling */
  .tribe-events .tribe-events-calendar-list__event-featured-image-wrapper,
  .tribe-common--breakpoint-medium.tribe-events
    .tribe-events-calendar-list__event
    .tribe-events-calendar-list__event-featured-image-wrapper.tribe-common-g-col {
    width: 100%;
    max-width: 100%;
    margin: 0 0 1rem;
    border-radius: var(--gmia-radius-md);
    overflow: hidden;
  }

  .tribe-common--breakpoint-medium.tribe-events
    .tribe-events-calendar-list__event-wrapper {
    padding-left: 0;
  }

  .tribe-events .tribe-events-calendar-list__event-featured-image {
    aspect-ratio: 16 / 9;
  }

  /* Card styling on mobile — auto height, visible content */
  .tribe-events .tribe-events-calendar-list__event-row {
    padding: 1.25rem;
    height: auto;
    background: var(--gmia-white);
    border-radius: var(--gmia-radius-lg);
    box-shadow: var(--gmia-shadow-card);
    overflow: hidden;
  }

  /* Disable sticky header on mobile */
  .tribe-events .tribe-events-header {
    position: static;
  }

  /* Disable hover lift on touch devices */
  .tribe-events .tribe-events-calendar-list__event-row:hover {
    transform: none;
  }

  /* Full-width stacked nav buttons */
  .tribe-events .tribe-events-c-nav__list {
    flex-direction: column;
    gap: 0.75rem;
  }

  .tribe-events .tribe-events-c-nav__prev,
  .tribe-events .tribe-events-c-nav__next {
    width: 100%;
    justify-content: center;
    padding: 0.75rem 1.5rem;
  }
}

/* ==========================================================================
   404 Page

   Centers the "not found" content both horizontally and vertically.
   ========================================================================== */
.error404 .ct-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 60vh;
}

.error404 .ct-no-results {
  text-align: center;
  max-width: 600px;
  width: 100%;
}

/* ==========================================================================
   Volunteer Page — gmia/volunteer-page block pattern
   @since 1.0.52

   Typography: DM Serif Display (headings) + DM Sans (body/UI).
   Layout: Hero → Impact Grid → Opportunity Cards → CF7 Form → Dark CTA.
   Single green-50 page background. Cards/form get white for contrast.
   All colors reference existing --gmia-* design tokens.

   Pattern uses wp:columns + wp:group blocks. CSS overrides WP's default
   flex layout with display:grid where needed. All wp:columns use
   isStackedOnMobile:false so we control responsive breakpoints.
   ========================================================================== */

/* Body background matches volunteer content so the subpage header gap is invisible */
body:has(.gmia-vol) {
  background-color: var(--gmia-green-50, #f3f9f2);
}

/* ---- Volunteer: scoped typography + page background ---- */
.gmia-vol {
  font-family: "DM Sans", sans-serif;
  color: var(--gmia-neutral-900);
  line-height: 1.6;
  background: var(--gmia-green-50);
}

.gmia-vol h1,
.gmia-vol h2,
.gmia-vol h3 {
  font-family: "DM Serif Display", serif;
  line-height: 1.2;
}

/* Reset WP default block margins inside volunteer sections */
.gmia-vol__stat p,
.gmia-vol__stat .wp-block-heading,
.gmia-vol__card p,
.gmia-vol__card .wp-block-heading {
  margin-top: 0;
  margin-bottom: 0;
}

/* ---- Volunteer: Hero ---- */
.gmia-vol__hero {
  padding: clamp(3rem, 6vw, 6rem) clamp(1.25rem, 4vw, 3rem);
}

/* Override wp:columns flex → CSS Grid for precise hero layout */
.gmia-vol__hero-cols.wp-block-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 4vw, 4rem);
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}

.gmia-vol__hero-tag {
  display: inline-block;
  font-family: "DM Sans", sans-serif;
  font-size: var(--gmia-text-xs);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gmia-gold-600);
  background: var(--gmia-gold-50);
  padding: 0.25rem 0.75rem;
  border-radius: var(--gmia-radius-pill);
  margin-bottom: 1rem;
}

.gmia-vol__hero-heading {
  font-size: clamp(2rem, 5vw, 3.25rem);
  color: var(--gmia-green-800);
  margin: 0 0 1rem;
}

.gmia-vol__hero-sub {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-600);
  margin: 0 0 2rem;
  max-width: 520px;
}

/* Hero CTA — mirrors .gmia-btn.gmia-btn--primary (--lg size) */
.gmia-vol__hero-cta .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  font-size: var(--gmia-text-secondary);
  padding: 0.875rem 2rem;
  border-radius: var(--gmia-radius-md);
  background: var(--paletteColor2, #c4941a);
  border: 1px solid var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.gmia-vol__hero-cta .wp-block-button__link:hover,
.gmia-vol__hero-cta .wp-block-button__link:focus-visible {
  background: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

.gmia-vol__hero-cta .wp-block-button__link:focus-visible {
  outline: 2px solid var(--gmia-green-700);
  outline-offset: 2px;
}

/* Hero image — wp:image outputs <figure><img></figure> */
.gmia-vol__hero-img img {
  border-radius: var(--gmia-radius-xl);
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* ---- Volunteer: Impact Grid ---- */
.gmia-vol__impact {
  padding: clamp(2rem, 4vw, 3.5rem) clamp(1.25rem, 4vw, 3rem);
}

/* Override wp:columns flex gap for impact stats */
.gmia-vol__impact-cols.wp-block-columns {
  gap: 1.5rem;
  max-width: 900px;
  margin: 0 auto;
}

.gmia-vol__stat {
  text-align: center;
  background: var(--gmia-white);
  border-radius: var(--gmia-radius-lg);
  padding: clamp(1.25rem, 3vw, 2rem) 1rem;
}

.gmia-vol__stat-num {
  font-family: "DM Serif Display", serif;
  font-size: clamp(2rem, 5vw, 3rem);
  color: var(--gmia-green-700);
  line-height: 1.1;
  margin-bottom: 0.35rem;
}

.gmia-vol__stat-label {
  font-family: "DM Sans", sans-serif;
  font-size: var(--gmia-text-sm);
  font-weight: 500;
  color: var(--gmia-neutral-600);
  letter-spacing: 0.02em;
}

/* ---- Volunteer: Opportunity Cards ---- */
.gmia-vol__opps {
  padding: clamp(3rem, 5vw, 5rem) clamp(1.25rem, 4vw, 3rem);
}

.gmia-vol__opps-header {
  text-align: center;
  padding-bottom: clamp(1.25rem, 2.5vw, 1.75rem);
}

.gmia-vol__section-heading {
  font-size: var(--gmia-heading-section);
  color: var(--gmia-green-800);
  margin-bottom: 0.75rem;
}

.gmia-vol__section-sub {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-600);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* Override wp:columns flex → CSS Grid for 4-column card layout */
.gmia-vol__cards-row.wp-block-columns {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  margin-bottom: 1.25rem;
}

.gmia-vol__cards-row.wp-block-columns:last-of-type {
  margin-bottom: 0;
}

/* Card styling — targets wp:column elements */
.gmia-vol__card.wp-block-column {
  background: var(--gmia-white);
  border: 1px solid var(--gmia-neutral-200);
  border-radius: var(--gmia-radius-lg);
  padding: 1.5rem;
  transition:
    transform 200ms ease,
    box-shadow 200ms ease;
}

.gmia-vol__card.wp-block-column:hover {
  transform: translateY(-4px);
  box-shadow: var(--gmia-shadow-card-hover);
}

.gmia-vol__card-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--gmia-radius-md);
  background: var(--gmia-green-50);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  color: var(--gmia-green-700);
  font-size: 1.125rem;
}

.gmia-vol__card-title {
  font-family: "DM Sans", sans-serif;
  font-size: var(--gmia-text-lg);
  font-weight: 700;
  color: var(--gmia-green-700);
  margin: 0 0 0.5rem;
  line-height: 1.3;
}

.gmia-vol__card-desc {
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-600);
  line-height: 1.55;
  margin: 0;
}

.gmia-vol__card-badge {
  display: inline-block;
  font-family: "DM Sans", sans-serif;
  font-size: var(--gmia-text-2xs);
  font-weight: 600;
  color: var(--gmia-gold-800);
  background: var(--gmia-gold-100);
  padding: 0.2rem 0.6rem;
  border-radius: var(--gmia-radius-pill);
  margin-top: 0.75rem;
  letter-spacing: 0.02em;
}

/* ---- Volunteer: Form Section ---- */
.gmia-vol__form-section {
  padding: clamp(3rem, 5vw, 5rem) clamp(1.25rem, 4vw, 3rem)
    clamp(1.5rem, 3vw, 2rem);
}

.gmia-vol__form-header {
  text-align: center;
  padding-bottom: clamp(1rem, 2vw, 1.5rem);
}

.gmia-vol__form-wrap .wpcf7 {
  background: var(--gmia-white);
  border-radius: var(--gmia-radius-lg);
  padding: clamp(1.5rem, 4vw, 2.5rem);
}

/* CF7 field overrides inside volunteer form */
.gmia-vol__form-wrap .wpcf7 label,
.gmia-vol__form-wrap .wpcf7 .gmia-checkbox-wrap {
  font-family: "DM Sans", sans-serif;
  font-size: var(--gmia-text-caption);
  font-weight: 500;
  color: var(--gmia-neutral-900);
  display: block;
  margin-bottom: 1.25rem;
}

.gmia-vol__form-wrap .wpcf7 input[type="text"],
.gmia-vol__form-wrap .wpcf7 input[type="email"],
.gmia-vol__form-wrap .wpcf7 input[type="tel"],
.gmia-vol__form-wrap .wpcf7 textarea {
  width: 100%;
  background: var(--gmia-neutral-50);
  border: 1px solid var(--gmia-neutral-200);
  border-radius: var(--gmia-radius-sm);
  padding: 0.75rem 1rem;
  font-family: "DM Sans", sans-serif;
  font-size: var(--gmia-text-secondary);
  color: var(--gmia-neutral-900);
  transition:
    border-color 200ms ease,
    box-shadow 200ms ease;
  margin-top: 0.35rem;
}

.gmia-vol__form-wrap .wpcf7 input[type="text"]:focus-visible,
.gmia-vol__form-wrap .wpcf7 input[type="email"]:focus-visible,
.gmia-vol__form-wrap .wpcf7 input[type="tel"]:focus-visible,
.gmia-vol__form-wrap .wpcf7 textarea:focus-visible {
  border-color: var(--gmia-green-700);
  box-shadow: 0 0 0 3px rgba(58, 84, 56, 0.12);
  outline: none;
}

.gmia-vol__form-wrap .wpcf7 textarea {
  min-height: 120px;
  resize: vertical;
}

/* Checkbox group */
.gmia-vol__form-wrap .wpcf7 .wpcf7-checkbox {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.gmia-vol__form-wrap .wpcf7 .wpcf7-checkbox .wpcf7-list-item {
  margin: 0;
  cursor: pointer;
}

.gmia-vol__form-wrap .wpcf7 .wpcf7-checkbox .wpcf7-list-item label {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: var(--gmia-text-sm);
  font-weight: 400;
  color: var(--gmia-neutral-600);
  margin-bottom: 0;
  cursor: pointer;
}

/* Submit button */
.gmia-vol__form-wrap .wpcf7 input[type="submit"] {
  display: block;
  width: 100%;
  font-family: "DM Sans", sans-serif;
  font-size: var(--gmia-text-lg);
  font-weight: 600;
  color: var(--gmia-white);
  background: var(--gmia-gold-500);
  border: none;
  border-radius: var(--gmia-radius-pill);
  padding: 0.875rem 2rem;
  cursor: pointer;
  transition:
    background 200ms ease,
    transform 200ms ease;
  margin-top: 0.5rem;
}

.gmia-vol__form-wrap .wpcf7 input[type="submit"]:hover {
  background: var(--gmia-gold-600);
  transform: translateY(-1px);
}

.gmia-vol__form-wrap .wpcf7 input[type="submit"]:focus-visible {
  outline: 2px solid var(--gmia-green-700);
  outline-offset: 2px;
}

/* Required/optional markers */
.gmia-vol__form-wrap .gmia-required {
  color: var(--gmia-color-required);
}

.gmia-vol__form-wrap .gmia-optional {
  color: var(--gmia-neutral-400);
  font-weight: 400;
  font-size: var(--gmia-text-sm);
}

.gmia-vol__form-wrap .gmia-required-note {
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-400);
  margin: 0 0 1.5rem;
}

/* CF7 response messages */
.gmia-vol__form-wrap .wpcf7-response-output {
  border-radius: var(--gmia-radius-sm);
  font-family: "DM Sans", sans-serif;
}

/* ---- Volunteer: CTA Card (white card on light-green page) ---- */
.gmia-vol__cta-card {
  text-align: center;
  background-color: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-lg);
  max-width: 640px;
  margin: clamp(1rem, 2vw, 1.5rem) auto clamp(2.5rem, 5vw, 4rem);
}

.gmia-vol__cta-card-heading {
  font-size: var(--gmia-heading-section);
}

.gmia-vol__cta-card-text {
  line-height: 1.65;
  padding-bottom: 1.25rem;
}

/* CTA card buttons — high specificity to override .wp-element-button defaults */
.gmia-vol__cta-card .wp-block-button .wp-block-button__link.wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  font-weight: 600;
  padding: 0.75rem 1.75rem;
  font-size: var(--gmia-text-secondary);
  border-radius: var(--gmia-radius-md);
  text-decoration: none;
  cursor: pointer;
  box-sizing: border-box;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

/* Gold — mirrors .gmia-btn.gmia-btn--primary */
.gmia-vol__cta-card .gmia-vol__cta-btn--gold .wp-block-button__link {
  background: var(--paletteColor2, #c4941a);
  border: 1px solid var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
}

.gmia-vol__cta-card .gmia-vol__cta-btn--gold .wp-block-button__link:hover,
.gmia-vol__cta-card
  .gmia-vol__cta-btn--gold
  .wp-block-button__link:focus-visible {
  background: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

/* Outline — mirrors .gmia-btn.gmia-btn--outline */
.gmia-vol__cta-card
  .gmia-vol__cta-btn--outline.is-style-outline
  .wp-block-button__link {
  background: transparent;
  border: 1px solid var(--paletteColor1, #3a5438);
  color: var(--paletteColor1, #3a5438);
}

.gmia-vol__cta-card
  .gmia-vol__cta-btn--outline.is-style-outline
  .wp-block-button__link:hover,
.gmia-vol__cta-card
  .gmia-vol__cta-btn--outline.is-style-outline
  .wp-block-button__link:focus-visible {
  background: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

.gmia-vol__cta-card .wp-block-button__link:focus-visible {
  outline: 2px solid var(--paletteColor1, #3a5438);
  outline-offset: 2px;
}

/* ---- Volunteer: Responsive ---- */

/* Tablet: 2-column cards */
@media (max-width: 960px) {
  .gmia-vol__cards-row.wp-block-columns {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* Mobile: stack everything */
@media (max-width: 689px) {
  .gmia-vol__hero-cols.wp-block-columns {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .gmia-vol__hero-sub {
    margin-left: auto;
    margin-right: auto;
  }

  .gmia-vol__hero-img img {
    max-width: 480px;
    margin: 0 auto;
  }

  .gmia-vol__impact-cols.wp-block-columns {
    flex-direction: column;
  }

  .gmia-vol__cards-row.wp-block-columns {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Get Involved Portal

   Dual-card hub page linking to Membership and Volunteer sub-pages.
   Pattern: gmia/get-involved — all text is Gutenberg-editable.
   ========================================================================== */
body:has(.gmia-involved) {
  background-color: var(--gmia-cream);
}

/* --- Header section --- */
.gmia-involved {
  padding: 3rem 0 3.5rem;
}

.gmia-involved__label {
  color: var(--gmia-green-600, #4a6b47);
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 0.5rem;
}

.gmia-involved__heading {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 0.75rem;
}

/* subtitle removed — text moved to pullquote below CTAs */

/* --- Dual-card container --- */
.gmia-involved__cards {
  position: relative;
  gap: 2rem;
  align-items: stretch;
}

/* --- Individual cards --- */
.gmia-involved__card {
  background: var(--gmia-white);
  border-radius: 12px;
  padding: 2.5rem 2rem;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.03);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.gmia-involved__card:hover {
  transform: scale(1.02);
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.07);
}

/* --- Card icons --- */
.gmia-involved__icon {
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--gmia-radius-full);
  margin-bottom: 1.25rem;
}

.gmia-involved__icon i {
  font-size: 2rem;
}

/* Membership icon — gold gradient */
.gmia-involved__icon--membership {
  background: linear-gradient(
    135deg,
    var(--gmia-gold-100, #f7edcc),
    var(--gmia-gold-200, #f0dda0)
  );
}

.gmia-involved__icon--membership i {
  color: var(--gmia-gold-600, #a87818);
}

/* Volunteer icon — green gradient */
.gmia-involved__icon--volunteer {
  background: linear-gradient(
    135deg,
    var(--gmia-green-100, #e2f0e1),
    var(--gmia-green-200, #c8e2c6)
  );
}

.gmia-involved__icon--volunteer i {
  color: var(--gmia-green-600, #4a6b47);
}

/* --- Card label --- */
.gmia-involved__card-label {
  font-size: var(--gmia-text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 0.4rem;
}

.gmia-involved__card--membership .gmia-involved__card-label {
  color: var(--gmia-gold-600, #a87818);
}

.gmia-involved__card--volunteer .gmia-involved__card-label {
  color: var(--gmia-green-600, #4a6b47);
}

/* --- Card title --- */
.gmia-involved__card-title {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: var(--gmia-heading-sub);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 0.75rem;
}

/* --- Card description --- */
.gmia-involved__card-text {
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-500, #64615b);
  line-height: 1.6;
  margin-bottom: 1.5rem;
  flex-grow: 1;
}

/* --- CTA Buttons --- */
.gmia-involved__card-cta {
  margin-top: auto;
}

/* Membership button — gold with green hover */
.gmia-involved__btn--membership .wp-block-button__link {
  background: var(--paletteColor2, #c4941a);
  border: 1px solid var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-md);
  padding: 0.6rem 1.5rem;
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.gmia-involved__btn--membership .wp-block-button__link:hover,
.gmia-involved__btn--membership .wp-block-button__link:focus-visible {
  background: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

/* Volunteer button — green with darker-green hover */
.gmia-involved__btn--volunteer .wp-block-button__link {
  background: var(--paletteColor1, #3a5438);
  border: 1px solid var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-md);
  padding: 0.6rem 1.5rem;
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.gmia-involved__btn--volunteer .wp-block-button__link:hover,
.gmia-involved__btn--volunteer .wp-block-button__link:focus-visible {
  background: var(--gmia-green-600, #4a6b47);
  border-color: var(--gmia-green-600, #4a6b47);
  color: var(--paletteColor8, #fff);
}

/* --- Community photo + narrative section --- */
.gmia-involved__community {
  margin-top: 1rem;
  margin-bottom: 2.5rem;
}

.gmia-involved__community-cols {
  gap: 2.5rem;
  align-items: center;
}

.gmia-involved__community-img-col {
  flex-basis: 50%;
}

.gmia-involved__community-img img {
  border-radius: var(--gmia-radius-lg);
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.gmia-involved__community-text-col {
  flex-basis: 50%;
}

.gmia-involved__community-heading {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: var(--gmia-heading-compact);
  font-weight: 600;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 1rem;
  line-height: 1.3;
}

.gmia-involved__community-desc {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-500, #64615b);
  line-height: 1.75;
  margin-top: 0;
  margin-bottom: 1.15rem;
}

.gmia-involved__community-desc:last-child {
  margin-bottom: 0;
}

/* --- Icon divider between community section and CTAs --- */
.gmia-involved__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 5rem 0;
  position: relative;
}

.gmia-involved__divider::before,
.gmia-involved__divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--gmia-neutral-200, #d4d1cc);
}

.gmia-involved__divider-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: var(--gmia-radius-full);
  background: var(--gmia-green-100, #e2f0e1);
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  margin: 0 1.25rem;
  flex-shrink: 0;
}

.gmia-involved__divider-icon i {
  font-size: 1rem;
  color: var(--gmia-green-600, #4a6b47);
}

/* --- Pullquote below CTAs --- */
.gmia-involved__pullquote {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-style: italic;
  font-size: clamp(1.1rem, 2.5vw, 1.35rem);
  line-height: 1.7;
  color: var(--gmia-green-700, #3a5438);
  text-align: center;
  max-width: 640px;
  margin: 3.5rem auto 0;
  padding: 2rem 2.5rem;
  border: none;
  position: relative;
}

.gmia-involved__pullquote::before {
  content: "\201C";
  display: block;
  font-size: 3.5rem;
  line-height: 1;
  color: var(--paletteColor2, #c4941a);
  opacity: 0.4;
  margin-bottom: 0.25rem;
}

.gmia-involved__pullquote p {
  margin: 0;
}

/* Hide label + heading when subpage header is present */
.gmia-subpage-header + .gmia-involved .gmia-involved__label,
.gmia-subpage-header + .gmia-involved .gmia-involved__heading {
  display: none;
}

.gmia-subpage-header + .gmia-involved {
  margin-top: -2rem;
}

/* --- Responsive: stack cards on mobile --- */
@media (max-width: 782px) {
  .gmia-involved__cards {
    flex-direction: column;
    gap: 1.5rem;
  }

  .gmia-involved__card {
    flex-basis: 100%;
  }

  .gmia-involved__community-cols {
    flex-direction: column;
    gap: 1.5rem;
  }

  .gmia-involved__community-heading {
    text-align: center;
  }

  .gmia-involved__community-desc {
    text-align: center;
  }

  .gmia-involved__divider {
    margin: 2rem 0;
  }

  .gmia-involved__pullquote {
    margin-top: 2.5rem;
    padding: 1.5rem 1rem;
  }
}

/* ==========================================================================
   Fire Safety Resource Page

   Full-page block pattern for wildfire preparedness resources.
   Pattern: gmia/fire-safety — all text is Gutenberg-editable.

   Structure:
     .gmia-fs                        — outer constrained wrapper (880px)
       .gmia-fs__alert               — emergency alert hero banner
       .gmia-fs__action-cols         — 2-column action card grid
         .gmia-fs__card              — individual action card
           .gmia-fs__card--prep      — Home Prep card variant
           .gmia-fs__card--space     — Defensible Space card variant
       .gmia-fs__diagram             — diagram placeholder section
       .gmia-fs__vendors             — vendor directory with wp:details
       .gmia-fs__resources           — resource link buttons
       .gmia-fs__callout             — dark callout box (PDS 199)
   ========================================================================== */

/* --- Typography: DM Serif Display for headings --- */
.gmia-fs h2,
.gmia-fs h3 {
  font-family: "DM Serif Display", serif;
  line-height: 1.2;
}

.gmia-fs p,
.gmia-fs li,
.gmia-fs summary {
  font-family: "DM Sans", sans-serif;
}

/* Reset WP block margins inside cards and alert */
.gmia-fs__card p,
.gmia-fs__card .wp-block-heading,
.gmia-fs__alert p,
.gmia-fs__alert .wp-block-heading {
  margin-top: 0;
  margin-bottom: 0;
}

/* --- Section 1: Alert Hero --- */
.gmia-fs__alert {
  background: var(--gmia-gold-50);
  border-radius: var(--gmia-radius-lg);
  padding: 2rem 2.5rem;
  text-align: center;
  margin-bottom: 2.5rem;
}

.gmia-fs__alert-icon {
  font-size: 2.5rem;
  color: var(--gmia-gold-600);
  margin-bottom: 1rem;
}

.gmia-fs__alert-heading {
  font-size: var(--gmia-heading-sub);
  margin-bottom: 0.5rem;
}

.gmia-fs__alert-sub {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-600);
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}

/* --- Section 2: Action Grid --- */
.gmia-fs__action-cols.wp-block-columns {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2rem;
  margin-bottom: 2.5rem;
}

.gmia-fs__card.wp-block-column {
  background: var(--gmia-white);
  border: 1px solid var(--gmia-neutral-200);
  border-radius: var(--gmia-radius-lg);
  padding: 2rem;
}

.gmia-fs__card-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--gmia-radius-md);
  background: var(--gmia-green-50);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
  color: var(--gmia-green-600);
  font-size: 1.25rem;
}

.gmia-fs__card-title {
  font-size: var(--gmia-text-xl);
  font-weight: 700;
  margin: 0 0 0.75rem;
}

.gmia-fs__card-text {
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-600);
  line-height: 1.6;
  margin-bottom: 1rem;
}

/* Highlight zone distances in defensible space card */
.gmia-fs__card-text strong {
  color: var(--gmia-green-950);
  font-weight: 700;
}

/* Checklist: custom green checkmark bullets via Font Awesome */
.gmia-fs__checklist {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

.gmia-fs__checklist li {
  position: relative;
  padding-left: 1.75rem;
  margin-bottom: 0.75rem;
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-700);
  line-height: 1.55;
}

.gmia-fs__checklist li::before {
  content: "\f00c";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  position: absolute;
  left: 0;
  top: 0.15em;
  color: var(--gmia-green-500);
  font-size: var(--gmia-text-sm);
}

.gmia-fs__checklist li strong {
  color: var(--gmia-green-950);
}

/* --- Section 3: Diagram Placeholder --- */
.gmia-fs__diagram {
  text-align: center;
  margin-bottom: 2.5rem;
}

.gmia-fs__diagram-img img {
  border-radius: var(--gmia-radius-lg);
  max-width: 100%;
  height: auto;
}

.gmia-fs__diagram-caption {
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-500);
  font-style: italic;
  margin-top: 0.75rem;
}

/* --- Section 4: Vendor Directory --- */
.gmia-fs__vendors {
  background: var(--gmia-neutral-50);
  border-radius: var(--gmia-radius-lg);
  padding: 2.5rem 2rem;
  margin-bottom: 2.5rem;
}

.gmia-fs__section-heading {
  font-size: var(--gmia-heading-section);
  margin-bottom: 0.5rem;
}

.gmia-fs__section-sub {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-600);
  margin-bottom: 2rem;
  line-height: 1.6;
}

.gmia-fs__vendors .wp-block-details {
  border: 1px solid var(--gmia-neutral-200);
  border-left: 4px solid var(--gmia-green-700);
  border-radius: var(--gmia-radius-md);
  margin-bottom: 0.75rem;
  background: var(--gmia-white);
  overflow: hidden;
  transition: box-shadow 0.2s ease;
}

.gmia-fs__vendors .wp-block-details:last-of-type {
  margin-bottom: 0;
}

.gmia-fs__vendors .wp-block-details:hover {
  box-shadow: var(--gmia-shadow-card);
}

.gmia-fs__vendors .wp-block-details[open] {
  border-color: var(--gmia-green-400);
  border-left-color: var(--gmia-green-700);
  box-shadow: var(--gmia-shadow-card);
}

.gmia-fs__vendors .wp-block-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  font-size: var(--gmia-text-lg);
  font-weight: 600;
  color: var(--gmia-green-700);
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.gmia-fs__vendors .wp-block-details summary::-webkit-details-marker {
  display: none;
}

.gmia-fs__vendors .wp-block-details summary::marker {
  content: "";
}

.gmia-fs__vendors .wp-block-details summary:focus-visible {
  outline: 2px solid var(--gmia-green-700);
  outline-offset: -2px;
  border-radius: var(--gmia-radius-sm);
}

.gmia-fs__vendors .wp-block-details summary::after {
  content: "";
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin-left: 1rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233A5438' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
  transition: transform 0.25s ease;
}

.gmia-fs__vendors .wp-block-details[open] > summary::after {
  transform: rotate(180deg);
}

.gmia-fs__vendors .wp-block-details > *:not(summary) {
  padding: 0 1.25rem;
}

.gmia-fs__vendors .wp-block-details > *:nth-child(2) {
  padding-top: 0.25rem;
}

.gmia-fs__vendors .wp-block-details > *:last-child {
  padding-bottom: 1.25rem;
}

.gmia-fs__vendors .wp-block-details p {
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-700);
  line-height: 1.6;
  margin-bottom: 0.75rem;
}

.gmia-fs__vendors .wp-block-details p:last-child {
  margin-bottom: 0;
}

.gmia-fs__vendors .wp-block-details a {
  color: var(--gmia-green-700);
  text-decoration: none;
  transition: color 0.15s ease;
}

.gmia-fs__vendors .wp-block-details a:hover {
  color: var(--gmia-green-400);
  text-decoration: underline;
}

/* --- Section 5: Resource Links --- */
.gmia-fs__resources {
  text-align: center;
  margin-bottom: 2.5rem;
}

.gmia-fs__resources .gmia-fs__section-heading {
  margin-bottom: 1.5rem;
}

.gmia-fs__resource-btns.wp-block-buttons {
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
}

.gmia-fs__resource-btn.is-style-outline .wp-block-button__link {
  border: 1px solid var(--gmia-green-700);
  color: var(--gmia-green-700);
  background: transparent;
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  font-size: var(--gmia-text-sm);
  padding: 0.6rem 1.25rem;
  border-radius: var(--gmia-radius-md);
  transition:
    background-color 0.2s ease,
    color 0.2s ease;
}

.gmia-fs__resource-btn.is-style-outline .wp-block-button__link:hover,
.gmia-fs__resource-btn.is-style-outline .wp-block-button__link:focus-visible {
  background: var(--gmia-green-50);
  color: var(--gmia-green-700);
}

.gmia-fs__resource-btn.is-style-outline .wp-block-button__link:focus-visible {
  outline: 2px solid var(--gmia-green-700);
  outline-offset: 2px;
}

/* --- Section 6: PDS 199 Callout --- */
.gmia-fs__callout {
  background: var(--gmia-green-700);
  border-radius: var(--gmia-radius-lg);
  padding: 2.5rem 2rem;
  text-align: center;
}

.gmia-fs__callout-icon {
  font-size: 2rem;
  color: var(--gmia-neutral-50);
  margin-bottom: 1rem;
}

.gmia-fs__callout-heading {
  font-size: var(--gmia-heading-compact);
  margin-bottom: 0.75rem;
}

.gmia-fs__callout-text {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-200);
  max-width: 640px;
  margin: 0 auto 1.5rem;
  line-height: 1.65;
}

.gmia-fs__callout
  .gmia-fs__callout-btn.is-style-outline
  .wp-block-button__link {
  border: 2px solid #fff;
  color: #fff;
  background: transparent;
  font-family: "DM Sans", sans-serif;
  font-weight: 600;
  padding: 0.7rem 1.75rem;
  border-radius: var(--gmia-radius-md);
  transition:
    background-color 0.2s ease,
    color 0.2s ease;
}

.gmia-fs__callout-btn.is-style-outline .wp-block-button__link:hover,
.gmia-fs__callout-btn.is-style-outline .wp-block-button__link:focus-visible {
  background: var(--gmia-neutral-50);
  color: var(--gmia-green-950);
}

.gmia-fs__callout-btn.is-style-outline .wp-block-button__link:focus-visible {
  outline: 2px solid var(--gmia-neutral-50);
  outline-offset: 2px;
}

/* --- Fire Safety: Responsive --- */
@media (max-width: 689px) {
  .gmia-fs__action-cols.wp-block-columns {
    grid-template-columns: 1fr;
  }

  .gmia-fs__alert {
    padding: 1.5rem 1.25rem;
  }

  .gmia-fs__card.wp-block-column {
    padding: 1.5rem;
  }

  .gmia-fs__vendors {
    padding: 2rem 1.25rem;
  }

  .gmia-fs__vendors .wp-block-details summary {
    padding: 0.875rem 1rem;
    font-size: var(--gmia-text-secondary);
  }

  .gmia-fs__vendors .wp-block-details > *:not(summary) {
    padding: 0 1rem;
  }

  .gmia-fs__callout {
    padding: 2rem 1.25rem;
  }
}

/* ==========================================================================
   Block Pattern: Google Map (Standalone)
   Used by: gmia/google-map pattern + [gmia_google_map] shortcode
   ========================================================================== */

/* Section wrapper — constrain to site content width */
.gmia-map-section.alignfull {
  max-width: var(
    --wp--style--global--content-size,
    var(--theme-block-max-width, 1200px)
  );
  margin-left: auto;
  margin-right: auto;
}

/* Map container */
.gmia-google-map {
  width: 100%;
  min-height: 300px;
  border-radius: var(--gmia-radius-md);
  overflow: hidden;
}

/* Section wrapper typography */
.gmia-map-section .wp-block-heading {
  font-size: var(--gmia-heading-section);
  margin-bottom: 0.75rem;
}

.gmia-map-section > .wp-block-group > p {
  margin-bottom: 2rem;
}

/* Admin notice when API key is missing */
.gmia-map-admin-notice {
  padding: 1rem 1.5rem;
  background: #fef3cd;
  border-left: 4px solid #c4941a;
  color: #664d03;
  border-radius: var(--gmia-radius-sm);
  font-size: var(--gmia-text-sm);
}

/* ==========================================================================
   Block Pattern: Contact with Map
   Used by: gmia/contact-map pattern
   ========================================================================== */

/* Info column layout */
.gmia-contact-map__info {
  display: flex;
  flex-direction: column;
}

.gmia-contact-map__heading {
  font-size: var(--gmia-heading-section);
  margin-bottom: 1.25rem;
}

.gmia-contact-map__subheading {
  font-size: var(--gmia-heading-subtitle);
  margin-top: 0;
  margin-bottom: 0.75rem;
}

/* Social links spacing */
.gmia-contact-map__socials {
  margin-bottom: 0.5rem;
}

/* Section dividers */
.gmia-contact-map__divider {
  margin: 1.25rem 0;
  opacity: 0.3;
}

/* Contact details with FA icons */
.gmia-contact-map__details p {
  margin-bottom: 1rem;
  line-height: 1.6;
  color: var(--gmia-neutral-500);
}

.gmia-contact-map__details i {
  color: var(--gmia-green-600);
  width: 1.25em;
  margin-right: 0.5rem;
}

.gmia-contact-map__details a {
  color: var(--gmia-green-700);
  text-decoration: underline;
  text-decoration-color: var(--gmia-green-200);
  text-underline-offset: 2px;
}

.gmia-contact-map__details a:hover {
  text-decoration-color: var(--gmia-green-700);
}

/* Map column — fill full height */
.gmia-contact-map__map-col .gmia-google-map {
  height: 100%;
  min-height: 450px;
}

/* Responsive: stack on tablet */
@media (max-width: 782px) {
  .gmia-contact-map .wp-block-columns {
    flex-direction: column;
  }

  .gmia-contact-map .wp-block-column {
    flex-basis: 100%;
  }

  .gmia-contact-map__map-col .gmia-google-map {
    height: 400px;
    min-height: 350px;
  }
}

/* ==========================================================================
   About Us Page

   Full About Us page with hero, stats, history narrative, focus area cards,
   coverage map, and membership CTA.
   Pattern: gmia/about-page — all text is Gutenberg-editable.
   ========================================================================== */

/* --- Light green background scoped to about page --- */
body:has(.gmia-about) {
  background-color: var(--gmia-cream);
}

.gmia-about {
  font-family: "DM Sans", sans-serif;
}

/* --- Hero section --- */
.gmia-about__hero {
  padding: clamp(2rem, 5vw, 4rem) clamp(1.5rem, 5vw, 10%);
}

.gmia-about__hero-cols.wp-block-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 4vw, 4rem);
  align-items: center;
  max-width: 1060px;
  margin: 0 auto;
}

.gmia-about__hero-tag {
  display: inline-block;
  background: var(--gmia-gold-100, #f7edcc);
  color: var(--gmia-gold-800, #6b4b0c);
  font-size: var(--gmia-text-xs);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  padding: 0.35rem 0.9rem;
  border-radius: var(--gmia-radius-sm);
  margin-bottom: 1rem;
}

.gmia-about__hero-heading {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  color: var(--gmia-green-800, #2d4030);
  line-height: 1.2;
  margin-bottom: 1.25rem;
}

.gmia-about__hero-sub {
  font-size: var(--gmia-text-body);
  line-height: 1.75;
  color: var(--gmia-neutral-950, #000);
  max-width: 540px;
}

/* --- Hero CTA buttons --- */
.gmia-about__hero-btns {
  margin-top: 1.5rem;
}

.gmia-about .gmia-about__hero-btn .wp-block-button__link {
  box-sizing: border-box;
  display: inline-block;
  border: 1px solid var(--paletteColor1, #3a5438);
  border-radius: var(--gmia-radius-md);
  padding: 0.65rem 1.5rem;
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.gmia-about
  .gmia-about__hero-btn:not(.is-style-outline)
  .wp-block-button__link {
  background: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

.gmia-about
  .gmia-about__hero-btn:not(.is-style-outline)
  .wp-block-button__link:hover,
.gmia-about
  .gmia-about__hero-btn:not(.is-style-outline)
  .wp-block-button__link:focus-visible {
  background: var(--gmia-green-600, #4a6b47);
  border-color: var(--gmia-green-600, #4a6b47);
}

.gmia-about .gmia-about__hero-btn.is-style-outline .wp-block-button__link {
  background: transparent;
  color: var(--paletteColor1, #3a5438);
}

.gmia-about .gmia-about__hero-btn.is-style-outline .wp-block-button__link:hover,
.gmia-about
  .gmia-about__hero-btn.is-style-outline
  .wp-block-button__link:focus-visible {
  background: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

/* --- Smooth scroll for anchor links --- */
html:has(.gmia-about) {
  scroll-behavior: smooth;
}

.gmia-about__hero-video .wp-block-embed__wrapper {
  border-radius: var(--gmia-radius-lg);
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
}

/* --- Stats bar --- */
.gmia-about__stats {
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 5vw, 10%);
}

.gmia-about__stats-cols {
  gap: 1.5rem;
  max-width: 1060px;
  margin: 0 auto;
}

.gmia-about__stat {
  background: var(--gmia-white, #fff);
  border-radius: var(--gmia-radius-lg);
  padding: clamp(1.25rem, 3vw, 2rem) 1rem;
  text-align: center;
}

.gmia-about__stat-num {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  margin: 0 0 0.25rem;
  line-height: 1.2;
}

.gmia-about__stat-label {
  font-size: var(--gmia-text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--gmia-neutral-500, #64615b);
  margin: 0;
}

/* --- Our Story narrative --- */
.gmia-about__story {
  padding: clamp(3rem, 5vw, 5rem) clamp(1.5rem, 5vw, 10%);
}

.gmia-about__story-heading {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  margin-bottom: 0.5rem;
}

.gmia-about__story-sub {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-500, #64615b);
  margin-bottom: 2rem;
}

.gmia-about__story-text {
  font-size: var(--gmia-text-body);
  line-height: 1.8;
  color: var(--gmia-neutral-950, #000);
  margin-bottom: 1.25rem;
}

/* --- What We Do focus cards --- */
.gmia-about__focus {
  padding: clamp(3rem, 5vw, 5rem) clamp(1.5rem, 5vw, 10%);
}

.gmia-about__focus-heading {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: var(--gmia-heading-section);
  margin-bottom: 0.5rem;
}

.gmia-about .gmia-about__focus-sub {
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1rem;
  color: var(--gmia-neutral-500, #64615b);
}

.gmia-about__focus-grid.wp-block-columns {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.gmia-about__focus-card.wp-block-column {
  background: var(--gmia-white, #fff);
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  border-radius: var(--gmia-radius-lg);
  padding: 1.75rem 1.5rem;
  text-align: center;
  transition:
    transform 200ms ease,
    box-shadow 200ms ease;
  position: relative;
  cursor: pointer;
}

.gmia-about__focus-card.wp-block-column:hover {
  transform: translateY(-4px);
  box-shadow: var(--gmia-shadow-card-hover);
}

.gmia-about__focus-icon {
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--gmia-green-100, #e2f0e1);
  border-radius: var(--gmia-radius-full);
  margin: 0 auto 1rem;
  font-size: 1.75rem;
  color: var(--gmia-green-600, #4a6b47);
}

.gmia-about__focus-title {
  font-size: var(--gmia-text-xl, 1.3125rem);
  color: var(--gmia-green-700, #3a5438);
  margin-bottom: 0.75rem;
  margin-top: 0;
}

.gmia-about__focus-desc {
  font-size: var(--gmia-text-sm, 0.875rem);
  color: var(--gmia-neutral-950, #000);
  line-height: 1.6;
  margin-bottom: 1rem;
}

.gmia-about__focus-link {
  display: inline-block;
  font-size: var(--gmia-text-sm, 0.875rem);
  font-weight: 600;
  color: var(--gmia-green-700, #3a5438);
  text-decoration: none;
  transition: color 200ms ease;
}

.gmia-about__focus-link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}

.gmia-about__focus-card.wp-block-column:hover .gmia-about__focus-link {
  color: var(--gmia-gold-500, #c4941a);
}

/* --- Coverage Area --- */
.gmia-about__coverage {
  padding: clamp(3rem, 5vw, 5rem) clamp(1.5rem, 5vw, 10%);
}

.gmia-about__coverage-heading {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  margin-bottom: 0.5rem;
}

.gmia-about .gmia-about__coverage-sub {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-500, #64615b);
  margin-bottom: 1rem;
}

.gmia-about__coverage-text p {
  font-size: var(--gmia-text-body);
  line-height: 1.8;
  color: var(--gmia-neutral-950, #000);
  margin-bottom: 1rem;
}

.gmia-about__coverage-map .gmia-google-map {
  border-radius: var(--gmia-radius-lg);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
}

/* --- CTA card --- */
.gmia-about__cta {
  background: var(--gmia-white, #fff);
  border-radius: var(--gmia-radius-lg);
  max-width: 640px;
  margin: 0 auto clamp(2rem, 4vw, 4rem);
  text-align: center;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.03);
}

.gmia-about__cta-heading {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  margin-bottom: 0.75rem;
}

.gmia-about .gmia-about__cta-text {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-950, #000);
  line-height: 1.6;
  margin-bottom: 1rem;
}

.gmia-about__cta-btn--gold .wp-block-button__link {
  background: var(--paletteColor2, #c4941a);
  border: 1px solid var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-md);
  padding: 0.7rem 1.75rem;
  font-weight: 600;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}

.gmia-about__cta-btn--gold .wp-block-button__link:hover,
.gmia-about__cta-btn--gold .wp-block-button__link:focus-visible {
  background: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
}

.gmia-about__cta-btn--outline .wp-block-button__link {
  color: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
  border-radius: var(--gmia-radius-md);
  padding: 0.7rem 1.75rem;
  font-weight: 600;
  transition:
    background-color 0.2s ease,
    color 0.2s ease;
}

.gmia-about__cta-btn--outline .wp-block-button__link:hover,
.gmia-about__cta-btn--outline .wp-block-button__link:focus-visible {
  background: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

/* --- Subpage header integration --- */
.gmia-subpage-header + .gmia-about .gmia-about__hero-tag {
  display: none;
}

.gmia-subpage-header + .gmia-about .gmia-about__hero {
  padding-top: 0;
}

/* --- Responsive: tablet --- */
@media (max-width: 782px) {
  .gmia-about__hero-cols.wp-block-columns {
    display: flex;
    flex-direction: column;
    gap: 2rem;
  }

  .gmia-about__hero-heading {
    text-align: center;
  }

  .gmia-about__hero-sub {
    text-align: center;
    max-width: none;
  }

  .gmia-about__hero-tag {
    display: block;
    text-align: center;
  }

  .gmia-about__stats-cols {
    flex-wrap: wrap;
  }

  .gmia-about__stat {
    flex: 1 1 calc(50% - 0.75rem);
    min-width: calc(50% - 0.75rem);
  }

  .gmia-about__story-cols {
    flex-direction: column;
    gap: 0;
  }

  .gmia-about__focus-grid.wp-block-columns {
    grid-template-columns: repeat(2, 1fr);
  }

  .gmia-about__coverage-cols {
    flex-direction: column;
    gap: 2rem;
  }

  .gmia-about__coverage-text {
    flex-basis: auto;
  }

  .gmia-about__coverage-map {
    flex-basis: auto;
  }
}

/* --- Responsive: mobile --- */
@media (max-width: 480px) {
  .gmia-about__focus-grid.wp-block-columns {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Our Mission Hub

   Landing page hub with community narrative, YouTube video, and three cards
   linking to About Us, Our Positions, and Board of Directors.
   Pattern: gmia/our-mission — all text is Gutenberg-editable.
   ========================================================================== */

/* --- Cream background scoped to mission page --- */
body:has(.gmia-mission) {
  background-color: var(--gmia-cream);
}

/* --- Page wrapper --- */
.gmia-mission {
  padding: 3rem 0 3.5rem;
}

/* --- Header: label + heading --- */
.gmia-mission__label {
  color: var(--gmia-green-600, #4a6b47);
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 2px;
  margin-bottom: 0.5rem;
}

.gmia-mission__heading {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: clamp(2rem, 5vw, 2.75rem);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 0.75rem;
}

/* --- Community narrative section --- */
.gmia-mission__community {
  margin-top: 1rem;
  margin-bottom: 2.5rem;
}

.gmia-mission__community-cols {
  gap: 2.5rem;
  align-items: center;
}

.gmia-mission__community-text-col {
  flex-basis: 50%;
}

.gmia-mission__community-video-col {
  flex-basis: 50%;
}

.gmia-mission__community-video .wp-block-embed__wrapper {
  border-radius: var(--gmia-radius-lg);
  overflow: hidden;
}

.gmia-mission__community-heading {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: var(--gmia-heading-compact);
  font-weight: 600;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 1rem;
  line-height: 1.3;
}

.gmia-mission__community-desc {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-500, #64615b);
  line-height: 1.75;
  margin-top: 0;
  margin-bottom: 1.15rem;
}

.gmia-mission__community-desc:last-child {
  margin-bottom: 0;
}

/* --- Icon divider --- */
.gmia-mission__divider {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 5rem 0;
  position: relative;
}

.gmia-mission__divider::before,
.gmia-mission__divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--gmia-neutral-200, #d4d1cc);
}

.gmia-mission__divider-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: var(--gmia-radius-full);
  background: var(--gmia-green-100, #e2f0e1);
  border: 1px solid var(--gmia-neutral-200, #d4d1cc);
  margin: 0 1.25rem;
  flex-shrink: 0;
}

.gmia-mission__divider-icon i {
  font-size: 1rem;
  color: var(--gmia-green-600, #4a6b47);
}

/* --- Three-card container --- */
.gmia-mission__cards {
  position: relative;
  gap: 2rem;
  align-items: stretch;
}

/* --- Individual cards --- */
.gmia-mission__card {
  background: var(--gmia-white);
  border-radius: 12px;
  padding: 2.5rem 2rem;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.03);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}

.gmia-mission__card:hover {
  transform: scale(1.02);
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.07);
}

/* --- Card icons (72px circles) --- */
.gmia-mission__icon {
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--gmia-radius-full);
  margin-bottom: 1.25rem;
}

.gmia-mission__icon i {
  font-size: 2rem;
}

/* About Us icon — green gradient */
.gmia-mission__icon--about {
  background: linear-gradient(
    135deg,
    var(--gmia-green-100, #e2f0e1),
    var(--gmia-green-200, #c8e2c6)
  );
}

.gmia-mission__icon--about i {
  color: var(--gmia-green-600, #4a6b47);
}

/* Our Positions icon — gold gradient */
.gmia-mission__icon--positions {
  background: linear-gradient(
    135deg,
    var(--gmia-gold-100, #f7edcc),
    var(--gmia-gold-200, #f0dda0)
  );
}

.gmia-mission__icon--positions i {
  color: var(--gmia-gold-600, #a87818);
}

/* Board of Directors icon — green gradient */
.gmia-mission__icon--board {
  background: linear-gradient(
    135deg,
    var(--gmia-green-100, #e2f0e1),
    var(--gmia-green-200, #c8e2c6)
  );
}

.gmia-mission__icon--board i {
  color: var(--gmia-green-600, #4a6b47);
}

/* --- Card labels --- */
.gmia-mission__card-label {
  font-size: var(--gmia-text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 0.4rem;
}

.gmia-mission__card--about .gmia-mission__card-label {
  color: var(--gmia-green-600, #4a6b47);
}

.gmia-mission__card--positions .gmia-mission__card-label {
  color: var(--gmia-gold-600, #a87818);
}

.gmia-mission__card--board .gmia-mission__card-label {
  color: var(--gmia-green-600, #4a6b47);
}

/* --- Card titles --- */
.gmia-mission__card-title {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-size: var(--gmia-heading-sub);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  margin-top: 0;
  margin-bottom: 0.75rem;
}

/* --- Card descriptions --- */
.gmia-mission__card-text {
  font-size: var(--gmia-text-sm);
  color: var(--gmia-neutral-500, #64615b);
  line-height: 1.6;
  margin-bottom: 1.5rem;
  flex-grow: 1;
}

/* --- Card CTA buttons --- */
.gmia-mission__card-cta {
  margin-top: auto;
}

/* About Us + Board buttons — green */
.gmia-mission__btn--about .wp-block-button__link,
.gmia-mission__btn--board .wp-block-button__link {
  background: var(--paletteColor1, #3a5438);
  border: 1px solid var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-md);
  padding: 0.6rem 1.5rem;
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.gmia-mission__btn--about .wp-block-button__link:hover,
.gmia-mission__btn--about .wp-block-button__link:focus-visible,
.gmia-mission__btn--board .wp-block-button__link:hover,
.gmia-mission__btn--board .wp-block-button__link:focus-visible {
  background: var(--gmia-green-600, #4a6b47);
  border-color: var(--gmia-green-600, #4a6b47);
  color: var(--paletteColor8, #fff);
}

/* Our Positions button — gold */
.gmia-mission__btn--positions .wp-block-button__link {
  background: var(--paletteColor2, #c4941a);
  border: 1px solid var(--paletteColor2, #c4941a);
  color: var(--paletteColor8, #fff);
  border-radius: var(--gmia-radius-md);
  padding: 0.6rem 1.5rem;
  font-size: var(--gmia-text-caption);
  font-weight: 600;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}

.gmia-mission__btn--positions .wp-block-button__link:hover,
.gmia-mission__btn--positions .wp-block-button__link:focus-visible {
  background: var(--paletteColor1, #3a5438);
  border-color: var(--paletteColor1, #3a5438);
  color: var(--paletteColor8, #fff);
}

/* --- Pullquote --- */
.gmia-mission__pullquote {
  font-family: Georgia, "Times New Roman", Times, serif;
  font-style: italic;
  font-size: clamp(1.1rem, 2.5vw, 1.35rem);
  line-height: 1.7;
  color: var(--gmia-green-700, #3a5438);
  text-align: center;
  max-width: 640px;
  margin: 3.5rem auto 0;
  padding: 2rem 2.5rem;
  border: none;
  position: relative;
}

.gmia-mission__pullquote::before {
  content: "\201C";
  display: block;
  font-size: 3.5rem;
  line-height: 1;
  color: var(--paletteColor2, #c4941a);
  opacity: 0.4;
  margin-bottom: 0.25rem;
}

.gmia-mission__pullquote p {
  margin: 0;
}

/* --- Subpage header integration --- */
.gmia-subpage-header + .gmia-mission .gmia-mission__label,
.gmia-subpage-header + .gmia-mission .gmia-mission__heading {
  display: none;
}

.gmia-subpage-header + .gmia-mission {
  margin-top: -2rem;
}

/* --- Responsive: stack on tablet/mobile --- */
@media (max-width: 782px) {
  .gmia-mission__cards {
    flex-direction: column;
    gap: 1.5rem;
  }

  .gmia-mission__card {
    flex-basis: 100%;
  }

  .gmia-mission__community-cols {
    flex-direction: column;
    gap: 1.5rem;
  }

  .gmia-mission__community-heading {
    text-align: center;
  }

  .gmia-mission__community-desc {
    text-align: center;
  }

  .gmia-mission__divider {
    margin: 2rem 0;
  }

  .gmia-mission__pullquote {
    margin-top: 2.5rem;
    padding: 1.5rem 1rem;
  }
}

/* ==========================================================================
   Block Pattern: Community Info
   Used by: gmia/community-info pattern on /community-info page

   Structure:
     .gmia-ci                          — outer constrained wrapper (960px)
       .gmia-ci__section-heading       — reusable section heading
       .gmia-ci__gov-links             — 3-column government website cards
         .gmia-ci__gov-card            — individual government card
       .gmia-ci__directory             — 2-column resource directory grid
         .gmia-ci__card                — individual resource category card
           .gmia-ci__card-header       — icon + title + description
           .gmia-ci__card-entries      — jurisdiction contact list
             .gmia-ci__entry           — single jurisdiction entry
       .gmia-ci__footer                — bottom help note
   ========================================================================== */

/* --- Typography --- */
.gmia-ci h2,
.gmia-ci h3 {
  font-family: "DM Serif Display", serif;
  line-height: 1.2;
}

.gmia-ci p,
.gmia-ci a,
.gmia-ci span {
  font-family: "DM Sans", sans-serif;
}

/* --- Section Headings --- */
.gmia-ci__section-heading {
  font-size: var(--gmia-heading-section);
  margin-top: 2.5rem;
  margin-bottom: 0.5rem;
}

.gmia-ci__section-sub {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-600);
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 2rem;
}

/* --- Government Links: 3-column card grid --- */
.gmia-ci__gov-links.wp-block-columns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 1rem;
}

.gmia-ci__gov-card.wp-block-column {
  background: var(--gmia-white, #fff);
  border: 1px solid var(--gmia-neutral-200);
  border-radius: var(--gmia-radius-lg);
  padding: 1.75rem 1.5rem;
  text-align: center;
  transition:
    transform 200ms ease,
    box-shadow 200ms ease;
}

.gmia-ci__gov-card.wp-block-column:hover {
  transform: translateY(-4px);
  box-shadow: var(--gmia-shadow-card-hover);
}

.gmia-ci__gov-icon {
  width: 56px;
  height: 56px;
  border-radius: var(--gmia-radius-full, 50%);
  background: var(--gmia-green-100, #e2f0e1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gmia-green-600, #4a6b47);
  font-size: 1.5rem;
  margin: 0 auto 1rem;
}

.gmia-ci__gov-title {
  font-size: var(--gmia-text-lg, 1.1875rem);
  color: var(--gmia-green-700, #3a5438);
  margin: 0 0 0.5rem;
}

.gmia-ci__gov-link {
  font-size: var(--gmia-text-sm, 0.875rem);
  font-weight: 600;
  color: var(--gmia-green-700, #3a5438);
  text-decoration: none;
  transition: color 200ms ease;
}

.gmia-ci__gov-link:hover {
  color: var(--gmia-gold-500, #c4941a);
}

/* --- Directory: 2-column resource card grid --- */
.gmia-ci__directory.wp-block-columns {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

.gmia-ci__card.wp-block-column {
  background: var(--gmia-white, #fff);
  border: 1px solid var(--gmia-neutral-200);
  border-radius: var(--gmia-radius-lg);
  padding: 0;
  overflow: hidden;
  transition:
    transform 200ms ease,
    box-shadow 200ms ease;
}

.gmia-ci__card.wp-block-column:hover {
  transform: translateY(-4px);
  box-shadow: var(--gmia-shadow-card-hover);
}

/* Card Header: icon + title + description */
.gmia-ci__card-header {
  padding: 1.75rem 1.5rem 1.25rem;
  border-bottom: 1px solid var(--gmia-neutral-200);
}

.gmia-ci__card-icon {
  width: 48px;
  height: 48px;
  border-radius: var(--gmia-radius-md);
  background: var(--gmia-green-50);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  color: var(--gmia-green-600);
  font-size: 1.25rem;
}

.gmia-ci__card-title {
  font-size: var(--gmia-text-xl, 1.3125rem);
  color: var(--gmia-green-700, #3a5438);
  margin: 0 0 0.5rem;
  font-weight: 700;
}

.gmia-ci__card-desc {
  font-size: var(--gmia-text-sm, 0.875rem);
  color: var(--gmia-neutral-600);
  line-height: 1.5;
  margin: 0;
}

/* Card Entries: jurisdiction contact list */
.gmia-ci__card-entries {
  padding: 0;
}

.gmia-ci__entry {
  padding: 1rem 1.5rem;
  border-bottom: 1px dashed var(--gmia-neutral-200);
}

.gmia-ci__entry:last-child {
  border-bottom: none;
}

.gmia-ci__entry--sub {
  padding-top: 0;
  margin-top: -0.5rem;
}

.gmia-ci__entry-label {
  display: block;
  font-size: var(--gmia-text-caption, 0.8125rem);
  font-weight: 600;
  color: var(--gmia-neutral-600);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.25rem;
}

.gmia-ci__entry-phone {
  display: inline-block;
  font-size: var(--gmia-text-lg, 1.1875rem);
  font-weight: 700;
  color: var(--gmia-green-700, #3a5438);
  text-decoration: none;
  transition: color 200ms ease;
}

.gmia-ci__entry-phone:hover {
  color: var(--gmia-gold-500, #c4941a);
}

.gmia-ci__entry-note {
  display: block;
  font-size: var(--gmia-text-xs, 0.8125rem);
  color: var(--gmia-neutral-400);
  margin-top: 0.125rem;
}

/* --- Footer Note --- */
.gmia-ci__footer {
  text-align: center;
  padding-top: 1rem;
}

.gmia-ci__footer-text {
  font-size: var(--gmia-text-body);
  color: var(--gmia-neutral-600);
}

.gmia-ci__footer-text a {
  color: var(--gmia-green-700, #3a5438);
  font-weight: 600;
  text-decoration: none;
  transition: color 200ms ease;
}

.gmia-ci__footer-text a:hover {
  color: var(--gmia-gold-500, #c4941a);
}

/* --- Responsive: Government links stack on tablet --- */
@media (max-width: 782px) {
  .gmia-ci__gov-links.wp-block-columns {
    grid-template-columns: 1fr;
  }

  .gmia-ci__directory.wp-block-columns {
    grid-template-columns: 1fr;
  }
}

/* ==========================================================================
   Photo Gallery

   Styles for the main photo gallery index page and individual gallery pages.
   Uses native WordPress Gallery blocks with lightbox.
   ========================================================================== */

/* --- Index page: gallery cards in columns --- */
.page-id-347 .wp-block-columns {
  gap: 1.5rem;
}

.page-id-347 .wp-block-column .wp-block-image {
  overflow: hidden;
  border-radius: var(--gmia-radius-md);
  box-shadow: var(--gmia-shadow-card);
  transition:
    box-shadow 0.25s ease,
    transform 0.25s ease;
}

.page-id-347 .wp-block-column .wp-block-image:hover {
  box-shadow: var(--gmia-shadow-card-hover);
  transform: translateY(-2px);
}

.page-id-347 .wp-block-column .wp-block-image img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  aspect-ratio: 4 / 3;
}

.page-id-347 .wp-block-column .wp-block-heading {
  margin-bottom: 0.15rem;
}

.page-id-347 .wp-block-column .has-small-font-size {
  --wp--preset--font-size--small: 1.078rem;
  margin-top: 0;
}

/* --- Individual gallery pages: thumbnail grid --- */
.parent-pageid-347 .wp-block-gallery {
  gap: 0.75rem;
}

.parent-pageid-347 .wp-block-gallery .wp-block-image {
  overflow: hidden;
  border-radius: var(--gmia-radius-md);
  box-shadow: var(--gmia-shadow-card);
  transition:
    box-shadow 0.25s ease,
    transform 0.25s ease;
}

.parent-pageid-347 .wp-block-gallery .wp-block-image:hover {
  box-shadow: var(--gmia-shadow-card-hover);
  transform: translateY(-2px);
}

.parent-pageid-347 .wp-block-gallery .wp-block-image img {
  width: 300px;
  max-width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
  aspect-ratio: 1 / 1;
}

/* --- Responsive --- */
@media (max-width: 781px) {
  .page-id-347 .wp-block-column .wp-block-image img,
  .parent-pageid-347 .wp-block-gallery .wp-block-image img {
    width: 100%;
  }
}

/* ==========================================================================
   Reduced Motion

   Disables animations and transitions for users who prefer reduced motion.
   Slideshow is handled in hero-slideshow.js (skips entirely).
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms;
    animation-iteration-count: 1;
    transition-duration: 0.01ms;
    scroll-behavior: auto;
  }

  .gmia-slideshow__layer {
    transition: none;
  }
}

/* ==========================================================================
   Single Viewpoint Template
   Used by: single-viewpoints.php
   ========================================================================== */

.gmia-viewpoint-single {
  max-width: 1100px;
  margin: 2.5rem auto;
  padding: 0 1.25rem;
}

.gmia-viewpoint-single__actions {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 1.25rem;
}

.gmia-viewpoint-single__embed {
  position: relative;
  width: 100%;
  height: 85vh;
  min-height: 600px;
  border: 1px solid var(--paletteColor6, #e0e0e0);
  border-radius: var(--gmia-radius-md, 6px);
  overflow: hidden;
  background: #f5f5f5;
}

.gmia-viewpoint-single__embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.gmia-viewpoint-single__no-pdf {
  padding: 2rem;
  text-align: center;
  background: #fff8e5;
  border: 1px dashed #d9b665;
  border-radius: var(--gmia-radius-md, 6px);
  color: #7a5a14;
}

@media (max-width: 600px) {
  .gmia-viewpoint-single__embed {
    height: 70vh;
    min-height: 480px;
  }
}
